{"version":3,"sources":["serviceWorker.js","theme/FontAwesome/RegularIcons.js","theme/FontAwesome/LightAndBrandIcons.js","theme/FontAwesome/SolidIcons.js","theme/css/GlobalStyle.js","common/UnauthorizedHeader.js","common/ErrorMsg.js","common/WarningComponent.js","common/GetInitialName.js","common/SuccessMsg.js","constants/ApiConstants.js","axios.js","api/AuthApi.js","constants/RouteConstants.js","constants/CustomerConstants.js","constants/OnboardingConstants.js","constants/OtherConstants.js","constants/AgreementSign.js","constants/AgreementFields.js","constants/CommanVariableConstants.js","constants/DashboardConstants.js","constants/CompanyPerformanceConstants.js","constants/DspSignOffConstants.js","constants/ReportsSectionConstant.js","constants/InvetoryReportsConstants.js","constants/AmcInsightsConstant.js","constants/AMCDashboardConstants.js","constants/PlaybookConstants.js","constants/SummaryDashabordConstants.js","constants/PageTitleForGA.js","constants/HorizontalGlobalMenu.js","constants/NotesConstants.js","constants/UserConstants.js","constants/ActivityConstant.js","constants/CreativeProjectConstant.js","constants/GoalsConstant.js","constants/FieldConstants.js","constants/CustomerFeedback.js","api/CustomerApi.js","api/DashboradApi.js","api/ChoicesApi.js","api/AgreementApi.js","api/ArticleApi.js","api/OnboardingCustomerApi.js","api/BrandAssestsApi.js","api/NotesApi.js","api/BillingApi.js","api/ProductCatalogApi.js","api/CompanyPerformanceApi.js","api/ReportsSectionApi.js","api/PlaybookApi.js","api/InventoryReportApi.js","api/AmcInsightsApi.js","api/SummaryDashboardApi.js","api/BillingOffBoardingApi.js","api/GoalsApi.js","api/COSApi.js","api/DSPAudienceApi.js","api/AMCInstanceApi.js","common/Styles/HeaderStyles.js","common/Button.js","common/DropDownSelect.js","common/PageLoader.js","common/SearchInput.js","common/InputText.js","common/FormField.js","common/Table.js","common/PageNotFound.js","common/SideBar.js","common/Pagination.js","common/ModalBox.js","common/TeamDropDown.js","common/TransparentSelect.js","common/CheckBox.js","common/ModalRadioCheck.js","common/InnerContainer.js","common/GreyCard.js","common/InputSearchWithRadius.js","common/InputFormField.js","common/ContractInputSelect.js","common/DropDownStatus.js","common/ActionDropDown.js","common/OnBoarding.js","common/CheckBoxList.js","common/BackToTop.js","common/WhiteCard.js","common/HeaderFunctionality.js","common/Tabs.js","common/Status.js","common/DropdownOptions.js","common/DropdownSingleValue.js","common/DropDownIndicator.js","common/CustomDateModal.js","common/CustomSingleDateModal.js","common/MonthPicket.js","common/CustomMonthRangeModal.js","hooks/useFormatNumber.js","common/Card.js","common/NoData.js","common/PdfLoadingMsg.js","common/PdfAnnotator.js","common/ToggleButton.js","common/CardMetrics.js","common/DropDownUncontained.js","common/AllocateBar.js","common/GrayMessageBar.js","common/ErrorMsgBox.js","common/TableGap.js","common/TableMobileView.js","common/GlobalNavbar.js","common/ViewData.js","common/ToogleMetrics.js","common/CustomDropDown.js","common/DesktopTable.js","common/Styles/ToggleSwitch.js","common/InfoMsg.js","common/ReportTextEditor.js","common/DropDowns.js","common/CustomMultiSelectDropDownFilter.js","common/AddThousandSeparator.js","common/SingleSelectDropdown.js","common/MultiSelectDropdown.js","common/MultiSelectSearchableDropdown.js","common/ImageToDataURL.js","common/NoRecordFound.js","common/VisibleScrollableTable.js","common/DropDownSelectMonthPicker.js","common/MultipleDashedLineLabel.js","common/MultiSelectDropdownWithoutAll.js","common/DailyWeeklyMonthlyToggle.js","common/BrandPartnerProfile.js","common/CollapseTableMobileView.js","components/Profile/EditPassword.js","store/actions/customerState.js","store/actions/actionTypes.js","store/actions/userState.js","common/CropUploadImage.js","common/CheckPhoneNumber.js","components/Profile/EditProfile.js","common/Modals/ProfileModal.js","common/Modals/ShareIdeaModal.js","common/Header.js","components/Customer/CustomerDetailView/Activity.js","hooks/useActivityLog.js","components/Customer/CustomerDetailView/EditCompanyDetails.js","components/Customer/CustomerDetailView/EditAmazonAccountDetails.js","components/Customer/CustomerDetailView/AmazonAccount.js","components/Customer/CustomerDetailView/CompanyDetail.js","common/InputSelect.js","components/Customer/CustomerDetailView/EditAccountDetails.js","components/Customer/CustomerDetailView/CustomerDetailStyles.js","components/Customer/CustomerDetailView/AccountDetails.js","components/Customer/CustomerDetailView/ShowTeamMembers.js","components/Customer/CustomerDetailView/CustomerTabDetails.js","components/Customer/CustomerDetailView/Playbook/PlaybookStyle.js","components/Customer/CustomerDetailView/Playbook/PlaybookSummaryDeliverableCollapse.js","components/Customer/CustomerDetailView/Playbook/CommonFunctions.js","components/Customer/CustomerDetailView/Playbook/PlaybookSummaryServiceCollapse.js","components/Customer/CustomerDetailView/Playbook/PlaybookSummary.js","components/Customer/CustomerDetailView/Playbook/PlaybookModals/ChangeTaskAssigneeModal.js","components/Customer/CustomerDetailView/Playbook/PlaybookDataTable/PlaybookTaskAssignee.js","components/Customer/CustomerDetailView/Playbook/PlaybookModals/PlaybookChangeStatusModal.js","components/Customer/CustomerDetailView/Playbook/PlaybookDataTable/PlaybookTaskStatus.js","components/Customer/CustomerDetailView/Playbook/PlaybookDataTable/PlaybookSubTask.js","components/Customer/CustomerDetailView/Playbook/PlaybookDataTable/PlaybookTaskCollapse.js","components/Customer/CustomerDetailView/Playbook/PlaybookDataTable/PlaybookDeliverableCollapse.js","components/Customer/CustomerDetailView/Playbook/PlaybookDataTable/PlaybookServicesCollapse.js","components/Customer/CustomerDetailView/Playbook/ServicesPlaybook.js","components/Customer/CustomerDetailView/Playbook/OnboardingPlaybook.js","components/Customer/CustomerDetailView/Playbook/PlaybookServicesTab.js","components/Customer/CustomerDetailView/Playbook/PlaybookTabDetails.js","components/Customer/CustomerDetailView/Playbook/PlaybookContainer.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/MetricsInvoices.js","components/Customer/CustomerDetailView/Modals/InvoiceBreakdownModal.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentModals/InvoiceAdjust.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentModals/InvoicePause.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentModals/InvoiceAdjustPauseConfirm/OneTimeInvoiceAdjustConfirm.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentModals/InvoiceAdjustPauseConfirm/InvoiceAdjustConfirm.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentModals/InvoiceAdjustPauseConfirm/InvoicePauseConfirm.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentModals/InvoiceAdjustPauseModal.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentModals/InvoiceRequestViewModal.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentList.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceAdjustmentsContainer.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/InvoiceList.js","components/Customer/CustomerDetailView/BillingContainer/Invoice/Invoice.js","components/Customer/CustomerDetailView/BillingContainer/BillingDetails/BillingContactList.js","components/Customer/CustomerDetailView/BillingContainer/BillingDetails/BillingDetails.js","components/Customer/CustomerDetailView/BillingContainer/BillingContainer.js","components/Customer/CustomerDetailView/SummaryView/SummaryPerformanceGraph.js","components/Customer/CustomerDetailView/SummaryView/SummaryPerformanceStyle.js","components/Customer/CustomerDetailView/SummaryView/SummaryPerformanceView.js","components/Customer/CustomerDetailView/SummaryView/SummaryInventoryView/RestockMobileView.js","components/Customer/CustomerDetailView/SummaryView/SummaryInventoryView/SummaryRestockLimits.js","components/Customer/CustomerDetailView/SummaryView/SummaryInventoryView/InventoryMetrics.js","components/Customer/CustomerDetailView/CompanyPerformance/DropDown.js","components/Customer/CustomerDetailView/SummaryView/SummaryInventoryView/SummaryInventoryView.js","components/Customer/CustomerDetailView/SummaryView/SummaryHealthView/SummaryInventoryScoreGraph.js","components/Customer/CustomerDetailView/SummaryView/SummaryHealthView/InventoryScoreCard.js","components/Customer/CustomerDetailView/SummaryView/SummaryHealthView/PositiveFeedbackCard.js","components/Customer/CustomerDetailView/SummaryView/SummaryHealthView/OrderIssuesCard.js","components/Customer/CustomerDetailView/SummaryView/SummaryHealthView/SummaryInvoicesCard.js","components/Customer/CustomerDetailView/SummaryView/SummaryHealthView/SummarySellerHealthView.js","components/Customer/CustomerDetailView/SummaryView/SummaryViewContainer.js","components/Customer/CustomerDetailView/GoalsAndCOS/COS/ChangeAssigneeModal.js","components/Customer/CustomerDetailView/GoalsAndCOS/COS/AddAssignee.js","components/Customer/CustomerDetailView/GoalsAndCOS/COS/COSMobileView.js","components/Customer/CustomerDetailView/GoalsAndCOS/COS/DeleteConfirmationModal.js","components/Customer/CustomerDetailView/GoalsAndCOS/GoalsStyle.js","components/Customer/CustomerDetailView/GoalsAndCOS/COS/COSTable.js","components/Customer/CustomerDetailView/GoalsAndCOS/COS/COSMonthPicker.js","components/Customer/CustomerDetailView/GoalsAndCOS/COS/CreativeOptimizationScheduleContainer.js","components/Customer/CustomerDetailView/GoalsAndCOS/COS/COSContainer.js","components/Customer/CustomerDetailView/GoalsAndCOS/Goals/GoalMobileView.js","components/Customer/CustomerDetailView/GoalsAndCOS/Goals/Goals.js","components/Customer/CustomerDetailView/GoalsAndCOS/Goals/MarketplaceDropdown.js","components/Customer/CustomerDetailView/GoalsAndCOS/Goals/GoalsAndStrategyFilters.js","components/Customer/CustomerDetailView/GoalsAndCOS/Goals/GoalsAndStrategyContainer.js","components/Customer/CustomerDetailView/GoalsAndCOS/GoalsAndCosContainer.js","components/Customer/CustomerDetailView/CustomerFeedback/CustomerFeedbackDetails.js","components/Customer/CustomerDetailView/CustomerFeedback/CustomerFeedbackList.js","components/Customer/CustomerDetailView/Agreement/PastAgreement.js","components/Customer/CustomerDetailView/Agreement/AgreementDetailTabMobView.js","components/Customer/CustomerDetailView/Agreement/AgreementDetailsStyled.js","common/ShowCurrencySymbol.js","components/Customer/CustomerDetailView/Modals/PendingAgreementModal.js","components/Customer/CustomerDetailView/Agreement/AgreementDetails.js","components/Contract/ContractModals/OneTimeAgreementCompletionDateComfirmationModal.js","store/actions/accountState.js","components/Customer/CustomerDetailView/Agreement/OneTimeAgreement.js","components/Customer/CustomerDetailView/Modals/AgreementPauseModal.js","components/Customer/CustomerDetailView/Modals/AddChildAgreementModal.js","components/Customer/CustomerDetailView/Modals/OtherModals.js","common/EditorComponent.js","components/Customer/CustomerDetailView/Notes.js","components/Customer/CustomerDetailView/Modals/NotesModal.js","components/Team/AddTeamMember.js","components/Team/TeamMembers.js","components/Customer/CustomerDetailView/Modals/TeamMemberModal.js","components/Customer/CustomerDetailView/CustomerStatus.js","components/Customer/CustomerDetailView/Modals/CustomerStatusModal.js","components/Customer/CustomerDetailView/Modals/AddNewContractModal.js","components/Customer/CustomerDetailView/Modals/AgreementCancelModal.js","components/Customer/CustomerDetailView/Agreement/AgreementDetailContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/AdPerformanceFilters.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/SponsoredAdPerformance/AdPerformanceChart.js","hooks/useValueWithChangeAndPercent.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/SponsoredAdPerformance/SponsoredAsinPerformance.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/SponsoredAdPerformance/SponsoredCampaignReport.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/SponsoredAdPerformance/SpCampaignAsinFilters.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/SponsoredAdPerformance/SpAsinAndCampaignContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/SponsoredAdPerformance/SponsoredAdPerformanceGoalsChart.js","components/BrandPartner/AdManagerAdminDashboard/DifferenceAdMetric.js","components/BrandPartner/AdManagerAdminDashboard/SponsoredDashboard/SponsoredAdMetrics.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/SponsoredAdPerformance/SponsoredPerformanceContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/BindSponsoredAdGraphData.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/BindSponsoredAdGoalsGraphData.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/AdPerformanceStyle.js","components/Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/AdPerformance.js","components/Customer/CustomerDetailView/CompanyPerformance/AmcInsights/DSPAudience/AddUpdateNewQuery.js","components/Customer/CustomerDetailView/CompanyPerformance/AmcInsights/DSPAudience/DSPAudienceMobileView.js","components/Customer/CustomerDetailView/CompanyPerformance/AmcInsights/DSPAudience/DSPAudienceTable.js","components/Customer/CustomerDetailView/CompanyPerformance/AmcInsights/DSPAudience/DSPAudienceContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/AwsQuicksight/AwsQuicksightContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/AmcInsights/AmcInsightStyle.js","components/Customer/CustomerDetailView/CompanyPerformance/AmcInsights/AmcInsightContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/CreativeProjects/ProjectAsinsTable.js","components/Customer/CustomerDetailView/CompanyPerformance/CreativeProjects/UploadCreativeAsins.js","components/Customer/CustomerDetailView/CompanyPerformance/CreativeProjects/CreativeProjectFilters.js","components/Customer/CustomerDetailView/CompanyPerformance/CreativeProjects/CardMetricsGraph.js","components/Customer/CustomerDetailView/CompanyPerformance/CreativeProjects/CreativeProjectChart.js","components/Customer/CustomerDetailView/CompanyPerformance/CreativeProjects/CreativeProjectPerformanceSummary.js","components/Customer/CustomerDetailView/CompanyPerformance/CreativeProjects/CreativeProjectContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/BindSalesGraphResponse.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/SellerASINPerformanceMobileView.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/VendorASINPerformanceMobileView.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/ASINPerformance.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/SalePerformanceChart.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/SalesPerformanceGoalsChart.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/SalesPerformancePanel.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/BbPercentChart.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/BuyBoxPercentPanel.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/InventoryScoreGraph.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/BindSalesGoalsGraphResponse.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/ASINPerformanceStyle.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/PerformanceReport.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/VendorReporting/BindVendorSalesGraphData.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/VendorReporting/BindVendorSalesGoalsGraphData.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/VendorReporting/VendorSalePerformanceChart.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/VendorReporting/VendorSalePerformanceGoalsChart.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/VendorReporting/VendorSalesPerformancePanel.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/VendorReporting/VendorSalesPerformanceFilters.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/VendorReporting/VendorSalesPerformanceContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SalesPerformanceContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspPacing/DspAdPacingOverlay.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspPacing/DspPacingBarGraph.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAdvertising/BindDspResponsData.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAdvertising/DspPerformanceChart.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAdvertising/DspPerformanceFilters.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspPacing/ConfirmMarketPlaceAllocation.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspPacing/EditMarketplaceAllocation.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspPacing/EscrowBudgetAllocationModal.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAdvertising/DspAdPerformanceGoalsChart.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAsinAndCampaign/DspAsinAndCampaignFilters.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAsinAndCampaign/DspAsinPerformanceTable.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAsinAndCampaign/DspCampaignPerformanceTable.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAsinAndCampaign/DspAsinAndCampaignContainer.js","components/BrandPartner/AdManagerAdminDashboard/DspDashboard/DspMetrics.js","components/Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspPerformanceContainer.js","components/Customer/CustomerDetailView/CompanyPerformance/CompanyPerformanceContainer.js","components/ReportsSection/CustomizedReports/ReportDropDown.js","components/ReportsSection/ReportSectionFilters.js","components/ReportsSection/StandardReports/PartnerOpportunitiesReportModal.js","components/ReportsSection/StandardReports/ReportSectionList.js","components/ReportsSection/StandardReports/StandardReportContainer.js","components/ReportsSection/CustomizedReports/ReportPDFStatusModal.js","components/ReportsSection/CustomizedReports/CustomizedReportsList.js","components/ReportsSection/CustomizedReports/CustomizedReportContainer.js","common/PdfViewer.js","components/ReportsSection/CustomizedReports/CreateReport/SaleAdDspPerformanceGraph.js","components/ReportsSection/CustomizedReports/CreateReport/CreateReportStyle.js","components/ReportsSection/CustomizedReports/CreateReport/ReportPDFWithHperlink.js","components/ReportsSection/CustomizedReports/CreateReport/ReportLeftSidePanel.js","components/ReportsSection/CustomizedReports/CreateReport/RenderSellerFields.js","components/ReportsSection/CustomizedReports/CreateReport/RenderVendorFields.js","theme/AgreementStyle.js","components/ReportsSection/CustomizedReports/CreateReport/ReportRightSidePanel.js","components/ReportsSection/CustomizedReports/ConfirmCloseReportModal.js","components/ReportsSection/CustomizedReports/CreateReport/BindGraphDataApiResponse.js","components/ReportsSection/CustomizedReports/CreateReport/CreateReportContainer.js","components/ReportsSection/DashboardReports/DashboardReportContainer.js","components/ReportsSection/ReportsSectionContainer.js","components/Customer/CustomerDetailView/InventoryManagement/InventoryManagementFilters.js","components/Customer/CustomerDetailView/InventoryManagement/InventoryManagementInfoIcon.js","components/Customer/CustomerDetailView/InventoryManagement/RestockLimitsGraph.js","components/Customer/CustomerDetailView/InventoryManagement/RestockLimitsContainer.js","components/Customer/CustomerDetailView/InventoryManagement/UnderStockOverStockASINMobileView.js","components/Customer/CustomerDetailView/InventoryManagement/InventoryStyle.js","components/Customer/CustomerDetailView/InventoryManagement/UnderStockOverStockASIN.js","components/Customer/CustomerDetailView/InventoryManagement/InventoryManagementStrandedTable.js","components/Customer/CustomerDetailView/InventoryManagement/EstimatedLostSales.js","components/Customer/CustomerDetailView/InventoryManagement/InventoryManagementContainer.js","components/BrandAssetGathering/BrandAssetsStyle.js","components/BrandAssetGathering/SetupCheckList.js","components/BrandAssetGathering/DelegationUpload.js","components/BrandAssetGathering/BrandAssetsPreview.js","components/BrandAssetGathering/BrandAssetUpload.js","components/BrandAssetGathering/BrandAssetSummary.js","components/BrandAssetGathering/DragNDrop.js","components/Customer/CustomerListView/CustomerListStyle.js","components/Customer/CustomerListView/CustomerListFilters.js","components/Customer/CustomerListView/CustomerListLeftSidePanel.js","components/Customer/CustomerListView/CustomerListTablet.js","components/Customer/CustomerListView/ChildCustomerListView.js","components/Customer/CustomerListView/CustomerListRightSidePanel.js","components/Customer/CustomerListView/CustomerList.js","components/Customer/ProductCatalog/ProductCatalog.js","components/Customer/ProductCatalog/ProductDelegation.js","components/Customer/CustomerDetailView/CustomerMainContainer.js","components/BBEGoalDashboard/BBEGoalChart.js","components/BBEGoalDashboard/BBEGoalHighLevelMetrics.js","components/BBEGoalDashboard/BBEGoalRevShareContribution.js","components/BBEGoalDashboard/BBEGoalDashboardContainer.js","components/OnBoardingCustomer/OnBoardingStyles.js","components/OnBoardingCustomer/NavigationHeader.js","components/OnBoardingCustomer/CreateAccount.js","components/OnBoardingCustomer/CompanyDigital.js","components/OnBoardingCustomer/AdditionalBillingContact.js","components/OnBoardingCustomer/BillingInfo.js","components/OnBoardingCustomer/Modals/AmazonVideo.js","components/OnBoardingCustomer/Marketplaces/SingleAccountMarketplaces.js","components/OnBoardingCustomer/Marketplaces/HybridAccountMarketplaces.js","components/OnBoardingCustomer/AmazonMerchant.js","components/OnBoardingCustomer/AmazonDeveloperAccess.js","components/OnBoardingCustomer/Summary.js","components/OnBoardingCustomer/Thanks.js","components/OnBoardingCustomer/Info.js","components/OnBoardingCustomer/AskSomeone.js","components/OnBoardingCustomer/CheckSteps.js","components/Contract/AgreementRightSideSections/ContractActivityLog.js","components/Contract/PropTypesConstants/AgreementSidePanelProptypes.js","common/ConditionsForStatementOfWork.js","components/Contract/AgreementRightSideSections/StatementOfWork/AdditionalOneTimeServicesSubTabs.js","components/Contract/AgreementRightSideSections/StatementOfWork/AdditionalOneTimeServices.js","components/Contract/AgreementRightSideSections/ServiceAgreement/ServiceAgreement.js","components/Contract/AgreementRightSideSections/StatementOfWork/MonthlyServicesSubTabs.js","components/Contract/AgreementRightSideSections/StatementOfWork/AdditionalMonthlyServices.js","components/Contract/AgreementRightSideSections/StatementOfWork/AdditionalMarketplaces.js","components/Contract/AgreementRightSideSections/StatementOfWork/ListingTranslation.js","components/Contract/AgreementRightSideSections/StatementOfWork/StandardServicesForNonUS.js","components/Contract/AgreementRightSideSections/StatementOfWork/StandardServices.js","components/Contract/AgreementRightSideSections/StatementOfWork/AdvertisingDashboards.js","components/Contract/AgreementRightSideSections/StatementOfWork/AdvertisingServices.js","components/Contract/AgreementRightSideSections/StatementOfWork/StatementOfWork.js","components/Contract/AgreementRightSideSections/DSPAdvertising/AdditionalDspMarketplaces.js","components/Contract/AgreementRightSideSections/DSPAdvertising/DspMarketplaceBudgetAllocations.js","components/Contract/AgreementRightSideSections/DSPAdvertising/MonthlyDSPBudgetAllocation.js","components/Contract/AgreementRightSideSections/DSPAdvertising/DspAdvertising.js","components/Contract/AgreementRightSideSections/Addendum/AddendumSection.js","components/Contract/AgreementRightSideSections/FeeStructure/RevenueShareThreshold.js","components/Contract/AgreementRightSideSections/FeeStructure/RevenueThreshold.js","components/Contract/AgreementRightSideSections/FeeStructure/RetainerOnly.js","components/Contract/AgreementRightSideSections/FeeStructure/SellerFeeStructure.js","components/Contract/AgreementRightSideSections/FeeStructure/VendorFeeStructure.js","components/Contract/AgreementRightSideSections/StatementOfWork/CombinedRevShare.js","components/Contract/AgreementRightSideSections/FeeStructure/FeeStructureContainer.js","components/Contract/AgreementRightSideSections/AgreementSidePanelContainer.js","components/Contract/ContractModals/ContractEditConfirmation.js","components/Contract/ContractModals/DiscardChangesConfirmation.js","components/Contract/AgreementRightSideSections/StatementOfWork/Discount.js","components/Contract/ContractModals/DiscountModal.js","components/Contract/ContractModals/PauseAgreementConfirmation.js","components/Contract/RequestSignatureModule/SendReminder.js","components/Contract/RequestSignatureModule/Contacts.js","components/Contract/RequestSignatureModule/AddNewContact.js","components/Contract/RequestSignatureModule/VerifyDocument.js","components/Contract/RequestSignatureModule/AgreementAprovalConditions.js","components/Contract/RequestSignatureModule/RequestApproval.js","components/Contract/ContractFooter/RequestSignature.js","components/Contract/ContractModals/RequestSignatureModal.js","components/Contract/PropTypesConstants/ContractFooterProptypes.js","components/Contract/ContractFooter/ContractFooter.js","constants/ThadSignImg.js","components/Contract/Common/commonFunctionsForUniqueServices.js","components/Contract/AgreementLeftSideSections/Addendum.js","common/OneTimeServiceSubTabFunctions.js","components/Contract/AgreementLeftSideSections/Agreement.js","components/Contract/AgreementLeftSideSections/DSPAddendum.js","components/Contract/AgreementLeftSideSections/Statement.js","components/Contract/ContractModals/AddedServicesEffectivityDatesModal.js","components/Contract/ContractContainer.js","components/KnowledgeBase/ArticleSearch.js","components/KnowledgeBase/ArticleList.js","components/KnowledgeBase/SuggestUpdateModal.js","components/KnowledgeBase/Article.js","components/KnowledgeBase/ArticleKBaseStyle.js","components/KnowledgeBase/ArticleDetailsStyle.js","components/KnowledgeBase/ArticleDetails.js","components/BrandPartner/AdManagerAdminDashboard/DspDashboard/DspDashboardFilter.js","components/BrandPartner/AdManagerAdminDashboard/DspDashboard/DspPacing.js","components/BrandPartner/AdManagerAdminDashboard/DspDashboard/DspKeyContributors.js","components/BrandPartner/AdManagerAdminDashboard/DspDashboard/DspPropTypes.js","components/BrandPartner/AdManagerAdminDashboard/DspDashboard/DspRightHandSideSection.js","hooks/useBindDspData.js","components/BrandPartner/AdManagerAdminDashboard/DspDashboard/DspDashboardContainer.js","components/BrandPartner/AdManagerAdminDashboard/DashboardStyle.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/SalesFilter.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/SellerReporting/SalesSellerMetrics.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/SellerReporting/SalesSellerContribution.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/SellerReporting/SalesSellerReporting.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/VendorReporting/VendorSalesPerformance.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/VendorReporting/SalesVendorContribution.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/VendorReporting/SalesVendorReporting.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/SalesPropTypes.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/SalesPerformanceContainer.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/VendorReporting/BindVendorSalesPerformanceData.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/SellerReporting/BindSellerSalesPerformanceData.js","components/BrandPartner/AdManagerAdminDashboard/SalesDashboard/SalesDashboardContainer.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/InventoryStyle.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/InventoryFilter.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/StrandedInventoryMobileView.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/StrandedInventory.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/StrandedAndRestockInventoryMobileView.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/StrandedAndRestockInventory.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/RestockLimitsMobileView.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/RestockLimits.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/InventoryRightHandSideSection.js","components/BrandPartner/AdManagerAdminDashboard/InventoryDashboard/InventoryDashboardContainer.js","components/BrandPartner/AdManagerAdminDashboard/SponsoredDashboard/SponsoredFilter.js","components/BrandPartner/AdManagerAdminDashboard/SponsoredDashboard/BindSponsoredAdData.js","components/BrandPartner/AdManagerAdminDashboard/SponsoredDashboard/SponsoredDashboardPropTypes.js","components/BrandPartner/AdManagerAdminDashboard/SponsoredDashboard/SponsoredKeyContribution.js","components/BrandPartner/AdManagerAdminDashboard/SponsoredDashboard/SponsoredRightHandSideSection.js","components/BrandPartner/AdManagerAdminDashboard/SponsoredDashboard/SponsoredDashboardContainer.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCDashboardLeftSidePanel.js","components/BrandPartner/AdManagerAdminDashboard/AWSQuicksight/AwsQuicksightContainer.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCAudienceSummary/AMCAudienceMetrics.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCAudienceSummary/AMCAudienceSummaryMobileView.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCAudienceSummary/AMCAudienceTable.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCAudienceSummary/AMCAudienceSummaryContainer.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCSelfServiceInstance/AMCSelfServiceMobileView.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCSelfServiceInstance/AMCSelfServiceTable.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCSelfServiceInstance/AMCSelfServiceInstanceStyle.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCSelfServiceInstance/AMCSelfServiceConstants.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCSelfServiceInstance/AMCSelfServiceInstanceContainer.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCDashboardRightPanel.js","components/BrandPartner/AdManagerAdminDashboard/AMCDashboard/AMCAggregatedDashboardContainer.js","components/BrandPartner/AdManagerAdminDashboard/PendingApprovalsDashboard/PendingApprovalsDashboardFilters.js","constants/PendingApprovalsConstant.js","components/BrandPartner/AdManagerAdminDashboard/PendingApprovalsDashboard/PendingApprovalsDashboardView.js","api/PendingApprovalsDashboardApi.js","components/BrandPartner/AdManagerAdminDashboard/PendingApprovalsDashboard/PendingApprovalsDashboardContainer.js","components/BrandPartner/AdManagerAdminDashboard/AdvertisingDashboardContainer.js","components/BrandPartner/FinanceDashboard/Invoice/InvoiceFilters.js","components/BrandPartner/FinanceDashboard/Invoice/InvoiceTabs.js","components/BrandPartner/FinanceDashboard/Invoice/InvoiceList.js","components/BrandPartner/FinanceDashboard/Invoice/PartnersList.js","components/BrandPartner/FinanceDashboard/Invoice/Invoice.js","components/BrandPartner/FinanceDashboard/Invoice/InvoiceContainer.js","components/BrandPartner/FinanceDashboard/DSPBilling/DSPBillingFilters.js","components/BrandPartner/FinanceDashboard/DSPBilling/DSPBillingContainer.js","components/BrandPartner/FinanceDashboard/FinanceDashboardContainer.js","components/BrandPartner/PendingApprovalsForOtherRole/PendingApprovalsContainerForOtherRole.js","components/BrandPartner/DashboardContainer.js","components/BrandPartner/index.js","components/BillingOffBoarding/Styles.js","components/BillingOffBoarding/BillingOffBoardingApproveReject.js","common/AuthenticationComponent.js","hooks/useGoogleAnalytics.js","components/OnBoardingCustomer/Modals/VideoModal.js","components/OnBoardingCustomer/MainContainer.js","components/DspBudgetApproval/DSPBudgetApprovalContainer.js","components/Contract/CustomerHellosignComponent/HelloSignComponent.js","components/Auth/Login.js","components/Auth/ForgotPassword.js","components/Auth/ResetPassword.js","components/Auth/AmazonLogin.js","App.js","store/reducers/accountStateReducer.js","store/reducers/customerStateReducer.js","store/reducers/userStateReducer.js","index.js","theme/Theme.js","theme/images/page-not-found.svg","theme/images/contract-voided.svg","theme/images/banner-bg.png","theme/images/icons/arrow-back.png","theme/images/logo.svg","theme/images/newLogo.png","theme/images/default-user.svg","theme/images/icons/sort-up.png","theme/images/icons/sort-down.png","theme/images/icons/edit-icon.svg","theme/images/icons/logout-icon.png","theme/images/icons/edit-file.svg","theme/images/icons/close.svg","theme/images/icons/eye.png","theme/images/icons/smallEye.png","theme/images/icons/closeEye.png","theme/images/icons/attchment.png","theme/images/icons/download.png","theme/images/icons/copy-paste.png","theme/images/icons/facebook.svg","theme/images/icons/linkedin.svg","theme/images/icons/twitter.svg","theme/images/icons/instagram.svg","theme/images/icons/trash.svg","theme/images/icons/smallClose.png","theme/images/icons/add.png","theme/images/icons/pinterest.png","theme/images/icons/right-arrow.png","theme/images/icons/plus.svg","theme/images/icons/white-cross.png","theme/images/icons/sad-icons.png","theme/images/icons/save.png","theme/images/icons/CompanyDefaultUser.svg","theme/images/icons/email.png","theme/images/icons/phone.png","theme/images/icons/WhiteSortDown.png","theme/images/icons/SortDown.png","theme/images/icons/info.png","theme/images/icons/telescope.svg","theme/images/icons/alarm-bell.png","theme/images/icons/Service-Agreement.png","theme/images/icons/Create-Addendum.png","theme/images/icons/sow.svg","theme/images/icons/add-contact.png","theme/images/icons/right-check.svg","theme/images/icons/save-check.svg","theme/images/icons/bell.png","theme/images/icons/orange-bell.png","theme/images/icons/noContact.png","theme/images/icons/link-icon.png","theme/images/icons/collapse-close-icon.png","theme/images/icons/master-card.svg","theme/images/icons/visa-card.svg","theme/images/icons/discover-card.svg","theme/images/icons/american-express-card.svg","theme/images/black-bg.png","theme/images/white-logo.svg","theme/images/amazon-account.svg","theme/images/company-details.svg","theme/images/lock-finish.svg","theme/images/icons/pdf-download.png","theme/images/icons/video-call.png","theme/images/icons/info-icon.svg","theme/images/icons/check-circle.svg","theme/images/Billing Icon.svg","theme/images/Account Setup Complete Icon.svg","theme/images/icons/user-group.png","theme/images/icons/user-groups-active.png","theme/images/icons/book-read.png","theme/images/icons/book-read-active.png","theme/images/icons/left-arrow-icon.png","theme/images/icons/right-arrow-icon.png","theme/images/icons/light-bulb.png","theme/images/icons/menu-icon.svg","theme/images/logo-mobile-view.svg","theme/images/icons/cross-search-icon.png","theme/images/icons/search-icons.svg","theme/images/icons/productivity-tool.svg","theme/images/icons/arrow-up.png","theme/images/banner-img.png","theme/images/icons/edit-orange-icon.svg","theme/images/icons/file-contract.png","theme/images/icons/organization.png","theme/images/icons/clock-icon.svg","theme/images/icons/copy-link-orange-icon.png","theme/images/icons/external-link-icon.svg","theme/images/icons/heart-monitor-icon.png","theme/images/icons/arrow-up-green.png","theme/images/icons/arrow-down-red.png","theme/images/icons/recurring-contact.svg","theme/images/icons/service-contact.svg","theme/images/icons/linkedin-icon.svg","theme/images/icons/instagram-icon.svg","theme/images/icons/twitter-icon.svg","theme/images/icons/slider-h-icon.png","theme/images/icons/expand-arrow-icon.png","theme/images/grey-bg.jpg","theme/images/icons/orange-solid-checked.svg","theme/images/icons/plus-icon.svg","theme/images/icons/minus-icon.png","theme/images/NextLogo.png","theme/images/icons/back-arrow-back.png","theme/images/ThadSignature.png","theme/images/icons/dsp-advertise.png","theme/images/icons/organization-icon.png","theme/images/icons/organization-active-icon.png","theme/images/icons/expand-arrow-back.png","theme/images/icons/caretUp.png","theme/images/icons/whiteCaretUp.png","theme/images/icons/red-cross.png","theme/images/icons/file-icon.png","theme/images/icons/check-file.png","theme/images/icons/edit-file.png","theme/images/icons/signature.png","theme/images/icons/count-days-clock.svg","theme/images/icons/speedometer-icon.png","theme/images/icons/speedometer-icon-disactive.png","theme/images/icons/orange-checkmark.svg","theme/images/icons/white-check-icon.svg","theme/images/icons/square-fb-icon.svg","theme/images/icons/gray-clock-icon.svg","theme/images/icons/arrow-right-icon.png","theme/images/icons/arrow-right-black-icon.png","theme/images/icons/dsp-only-icon.png","theme/images/thad.png","theme/images/icons/checkmark.svg","theme/images/icons/up-dow-gray-arrow.png","theme/images/icons/black-checkmark-icon.svg","theme/images/icons/times-circle.svg","theme/images/icons/download-icon.svg","theme/images/icons/security-lock-icon.png","theme/images/icons/calendar-back-arrow.png","theme/images/icons/gray-check.svg","theme/images/icons/gray-info-icon.svg","theme/images/icons/white-arrow-right.png","theme/images/icons/orange-download-pdf.png","theme/images/icons/red-trash-icon.svg","theme/images/icon_upload.svg","theme/images/icons/chat-box.svg","theme/images/icons/catalog-box.png","theme/images/icons/annotation-goal.png","theme/images/icons/forward-orange-icon.png","theme/images/icons/circle-pin.png","theme/images/icons/orange-chat-icon.png","theme/images/icons/pin-icon.png","theme/images/next-activity-logo.svg","theme/images/icons/request-plane.png","theme/images/icons/icons-sort-down.png","theme/images/faviconProd.ico","theme/images/icons/circle-bell-icon.png","theme/images/icons/help.png","theme/images/icons/contractEmail.png","theme/images/icons/helpdesk.png","theme/images/icons/external-link.svg","theme/images/icons/external-link-orange.svg","theme/images/icons/circle-cross.svg","theme/images/icons/hand-shake.png","theme/images/icons/pause.svg","theme/images/icons/cancel.svg","theme/images/icons/copy.svg","theme/images/icons/view-external-link.svg","theme/images/icons/delete.svg","theme/images/icons/icon_invoices.svg","theme/images/icons/icon_partners.svg","theme/images/icons/disabled-recurring.svg","theme/images/icons/info-red-icon.svg","theme/images/icons/fees.svg","theme/images/icons/helpCircleIcon.png","theme/images/icons/home-page.png","theme/images/icons/home-page-active.png","theme/images/icons/grey-clock-icon.svg","theme/images/icons/graphiconInactive.png","theme/images/icons/graphiconActive.png","theme/images/icons/fee-icon.svg","theme/images/icons/arrows-rotate-regular.svg","theme/images/icons/pen-to-square-regular.svg","theme/images/icons/table-columns.svg","theme/images/icons/tachometer-light.svg","theme/images/icons/box-alt-light.svg","theme/images/icons/circle-info-light.svg","theme/images/icons/authorizedSC.svg","theme/images/icons/unauthorizedSC.svg","theme/images/icons/authorizedVC.svg","theme/images/icons/unauthorizedVC.svg","theme/images/Next White Logo.svg","theme/Global.js","theme/images/Sponsored Ad Performance.svg","theme/images/DSP Ad Performance.svg","theme/images/Inventory Management.svg","theme/images/Sales Performance.svg","theme/images/danielWalls.png","theme/images/BBE_Standard_logo.png","theme/images/BBE_Standard_wide_logo.png","theme/images/monaSerenoImg.png","theme/images/BrokenFile.svg","theme/fonts/Noah/Noah/WEB/Noah-Medium.woff","theme/fonts/Noah/Noah/WEB/Noah-Bold.woff","theme/fonts/Noah/Noah/WEB/Noah-Regular.woff","theme/fonts/Noah/Noah/WEB/Noah-RegularItalic.woff","theme/fonts/Noah/Noah/WEB/Noah-BoldItalic.woff","theme/fonts/arial-mt-cufonfonts-webfont/ARIALMTEXTRABOLD.woff","theme/fonts/arial-mt-cufonfonts-webfont/ARIALMTMEDIUM.woff","theme/fonts/Helvetica-Font/Helvetica.ttf","theme/fonts/Helvetica-Font/Helvetica-Bold.ttf","theme/images/index.js"],"names":["Boolean","window","location","hostname","match","library","add","faPen","faAngleDown","faShareNodes","faCodeMerge","faClock","faChevronDown","faArrowToBottom","faQuestionCircle","faCheck","faUser","faRectangleAd","faNewspaper","farFaBuilding","faPenRuler","faUserHeadset","faChevronUp","faBookAtlas","faWarehouseFull","faMegaphone","faLocationQuestion","faScrewdriverWrench","faPiggyBank","faChartLineUp","faLaptopMobile","faBoxesStacked","faHandshakeAngle","faTrash","faPlus","fa1","fa2","fa3","faRepeat","faChevronRight","faMinus","faArrowRight","faArrowLeft","faMagnifyingGlass","faCircleXmark","faCalendar","faEye","faCircleInfo","faPenToSquare","faTimes","faCircleExclamation","faClockRotateLeft","faCalendarXmark","faTrashCanUndo","faFilePlus","faXmark","faHourglassStart","faFile","faAlarmExclamation","faThumbsUp","faCirclePause","faExclamation","faBarsProgress","faUpload","faRefresh","faArrowUpRightFromSquare","faPoll","faCopy","faFileInvoiceDollar","falFaBuilding","faFileContract","faInfoCircle","faBoxes","faMonitorWaveform","faExchange","faTachometerFast","faBox","faBook","faArrowsRotate","faAmazon","faShapes","faSquareArrowUpRight","faArrowUp","faArrowDown","faMessage","faDownload","faFileChartColumn","faBullseyeArrow","faArrowDownToLine","falFaPen","faBookOpen","faMapLocationDot","faLink","faCodeCommit","faChevronLeft","faHandshake","faSignature","faFilePen","faFileCircleXmark","faPause","faBan","faFileSignature","faFileCircleCheck","faEyeSlash","faCoins","faExclamationCircle","bodyStyles","createGlobalStyle","NoahMedium","NoahBold","NoahRegular","NoahRegularItalic","NoahBoldItalic","ArialBold","ArialRegular","HelveticaRegular","HelveticaBold","Theme","gray35","baseFontFamily","normal","white","gray5","largeTitleFontSize","titleFontFamily","black","secondaryTitleFontSize","largeTitleFontSizeRes","pageTitleFontSize","gray90","primaryTitleFontSize","MediumTitleFontSize","ExtraMediumTitleFontSize","small","smallTitleFontSize","subTitle","baseMediumFontFamily","smallTitleFontSizeRes","title","extraMedium","extraNormal","orange","gray25","gray85","extraSmall","gray80","gray40","regularArialTextFontFamily","gray2","gray9","smallRes","extraMediumRes","gray60","boldArialTextFontFamily","gray30","regularItalicFontFamily","gray10","gray4","gray3","gray11","verySmall","lightOrange","contactregularFontFamily","green","lightGreen","red","lightYellow","baseColor","gray8","CalendarFontBackArrow","lighterOrange","UnauthorizedHeader","className","HeaderVoided","role","onClick","href","src","NextLogo","alt","styled","div","gray7","ErrorMsg","WarningComponent","PageNotFounds","ContractVoided","getInitials","userInfo","type","join","first_name","charAt","last_name","GetInitialName","property","defaultProps","SuccessMsg","message","$","delay","fadeOut","id","style","textAlign","SuccessWrapper","JIRA_TICKET_BASE_URL","API_GET_SP_DATA","API_CHILD_BPS","API_ALL_MARKETPLACES","API_GOAL_ALL_MARKETPLACES","API_AD_PERFORMANCE","API_ALLOCATE_BALANCE","API_ESCROW_BALANCE_MARKETPLACE","API_ADM","API_ACCOUNT_MARKETPLACE","API_DSP_ASIN_PERFORMANCE","API_ASIN_PERFORMANCE_DATA_COUNT","API_DATA_AVAIBALE_CHILD_BRANDS","API_CREATIVE_PROJECT_TABLE_INFO","API_CREATIVE_PROJECT_MONTHS","API_CREATIVE_PROJECT_CSV","API_ESTIMATED_LOST_SALES_REASON_LIST","API_REPORTS_TYPES","API_PARTNER_OPPORTUNITY_DROPDOWN_LIST","API_CUSTOM_REPORTS_NOTIFICATION","API_MIN_DATE_DASHBOARD","API_KEY_CONTRIBUTORS_DOWNLOAD_REPORT","API_VENDOR_ORDERED_REVENUE_SALES_DASHBOARD","API_VENDOR_SHIPPED_COGS_SALES_DASHBOARD","API_BBE_GOAL_METRICS","API_BBE_GOAL_DASHBOARD_CONTRIBUTION","API_PLAYBOOK_QUARTER_DATA","API_PLAYBOOK_SERVICES_LIST","API_UPDATE_TASK_STATUS","API_CREATE_PLAYBOOK","API_GET_ASSIGNEE","API_UPDATE_ASSIGNEE","API_ONBOARDING_PLAYBOOK_DATA","API_PLAYBOOK_TEAM","API_PLAYBOOK_SUMMARY","API_PLAYBOOK_SERVICES","API_SEND_FOR_APPROVAL","API_MARKETPLACE_BULK_UPDATE","API_ADDITIONAL_SERVICE_BULK_UPDATE","API_SEND_REMINDER","API_SIGNATURE_STATUS","API_SERVICE_TYPE","API_CONTRACT_DESIGN","API_STANDARD_NON_US_SERVICES_OPTIONS","API_NON_US_MARKETPLACES","API_STANDARD_NON_US_SERVICES_FREQUENCY","API_AGREEMENT_APPROVERS_USER","API_ARTICLE_COLLECTIONS","API_ARTICLE_BOARDS","API_ARTICLE_CARDS","API_ARTICLE_SEARCH","API_UPDATE_ARTICLE","API_CREATE_ARTICLE","API_ACCOUNT_SUMMARY","API_VERIFY_TOKEN","API_PAYMENT_TERMS_OPTIONS","API_SAVE_PAYMENT_TERMS","API_EDIT_EMAIL","API_VERIFY_USER","API_AMAZON_ACCOUNT_DETAILS","API_AMAZON_SELLER_CENTRAL_BULK_UPDATE","API_AMAZON_VENDOR_CENTRAL_BULK_UPDATE","API_CUSTOMER_CSV","API_ACCOUNT_ASSIGNEE_COUNT","API_BRAND_ASSETS_SUMMARY","NON_AUTHORIZATION_APIS","axiosInstance","axios","create","baseURL","process","interceptors","request","use","includes","url","headers","Authorization","token","localStorage","getItem","ifMatch","requestHandler","response","error","status","removeItem","Promise","reject","getEmail","a","data","Object","keys","length","post","then","catch","result","resetPassword","patch","updateUserMe","getCustomerNames","email","params","get","customer","PATH_CUSTOMER_DETAILS","PATH_AGREEMENT","PATH_PAUSE_AGREEMENT","PATH_ACCOUNT_SETUP_CHOOSE","PATH_CREATE_PASSWORD","PATH_COMPANY_DETAILS","PATH_BILLING_DETAILS","PATH_AMAZON_MERCHANT","PATH_AMAZON_ACCOUNT","PATH_UNAUTHORIZED_COMPANY_DETAILS","PATH_UNAUTHORIZED_BILLING_DETAILS","PATH_UNAUTHORIZED_AMAZON_MERCHANT","PATH_UNAUTHORIZED_AMAZON_ACCOUNT","PATH_ARTICLE_DETAILS","PATH_CHOOSE_BRAND_DELEGATE","PATH_BRAND_ASSET","PATH_BRAND_ASSET_SUMMARY","PATH_BRAND_ASSET_PREVIEW","PATH_UNAUTHORIZED_CHOOSE_BRAND_DELEGATE","PATH_UNAUTHORIZED_BRAND_ASSET","PATH_UNAUTHROIZED_BRAND_ASSET_SUMMARY","PATH_UPLOAD_PRODUCT_ASSET","PATH_UNAUTHORIZED_CHOOSE_PRODUCT_DELEGATE","PATH_GOALS_AND_STRATEGY","sortOptions","value","label","performanceSortOptions","key","order","class","default","sortByOrderOptions","sadSortOptions","dadSortOptions","vendorSalesPerformanceOptions","dashboard","columnsForVendorSalesPerformance","ordered_revenue_tab","shipped_cogs_tab","columnsForSalesPerformance","columnsForSponsoredPerformance","info","columnsForDSPPerformance","timeFrameFilters","sub","options","editCompanyFields","choices","item","FaceBookIcons","TwitterIcons","LinkeDinIcons","InstagramIcons","PinterestIcon","editAccountFields","socialIcons","onboard","SquareFbIcon","TwitterIcon","LinkedinIcon","InstagramIcon","contractOptions","icon","ViewExternalLink","EditFileIcons","PauseIcon","CloseCircleIcon","contractOptionsWithAddendum","contractOptionsWithoutAddendum","contractOptionsWithoutPauseCancel","draftContractOptions","CopyIcon","DeleteIcon","draftAddendumOptions","contractOptionsWithPaused","contractOptionsWithActivePendingPaused","channelInvoiceTypeOptions","monthlyRetainer","revShare","upsell","financeTabsOptions","billingNavigationOptions","adjustInvoiceChoices","name","pipelineChoices","customerDetailsSideBarNavigationOptions","nav","invoiceTypes","inventoryTypes","feedbackOptions","requestDemoDetails","pattern","bpChannelTypes","bpAccountTypes","InvoiceIssueOptions","customerStatusNote","inactive","active","customerAgreementTableHeaders","width","billingStaticMessage","walmartRecipientMessage","billingAddress","section","paymentTermValueLabel","whichStep","stepof","skip","bar","path","video","back","stepPath","view","amazonSellerAccountDetails","amazonVendorAccountDetails","amazonSellerAccDetails","amazonVendorAccDetails","amazonDspAccDetails","customVideoStyle","marginRight","verticalAlign","cursor","billingInformation","part","array","filter","op","hasCheckbox","additional_label","amazonAccountManual","accountInfo","collectionDetails","brandSteps","step","subtitle","format","dspPacingTooltipConstants","totalAmountPaidTillDateInfo","text","dataCy","invoicePaidInfo","carryOverInfo","initialTotalbudgetInfo","initialDailyBudgetInfo","dayPassedInfo","plannedSpendToDateInfo","actualSpendToDateInfo","data_for","remainingBudgetInfo","escrowBalanceInfo","billingOffboardErrorMsg","oneTimeServicesTitle","dataScrappedMsg","SpreetailRoleRestrictMessage","AddendumSign","RecurringLanguage","Recurring90DaysLanguage","AgreementDetails","placeholder","isMandatory","field","sections","ListingOptimization","ListingTranslationFields","channelOptions","StatementDetails","DSPAddendumDetails","oneTimeAgreementOptions","channel","newAgreementTypes","accountTypeOptions","feeTypeOptions","feeStructureContainerDetails","revShareDetails","suffix","prefix","revShareAndRetainerDetails","quarterlyThresholdOptions","fieldOf","detail","monthlyThresholdOptions","vendorReportOptions","thadDetails","firstName","lastName","invoiceConstants","invoiceLabel","invoiceKey","invoiceType","infoId","invoiceTooltipMessages","lastBillDate","fromDate","toDate","monthlyRetainerAmount","dsp","amc","amcService","dspStandardInfo","pastBillDateMessageForPauseAgreement","pauseAgreementStaticMesssages","pastBillDateMessageForCancelAgreement","cancelAgreementStaticMesssages","futureInvoiceDateMessage","errorMessages","retainerAmount","monthSpan","isEndingEarlyNoMessage","quarterlyRetainerOptions","shortForm","range","monthlyRetainerOptions","agreementRetainer","subType","agreementRevShare","agreementRetainerRevShare","agreementDSP","agreementToggleFeeType","agreementDSPAdv","combinedRevOptions","newChildAgreementTypes","pendingPauseRequestOptions","offBoardedRadioButtons","pendingAgreementInvoiceDetails","subProperty","pausingRequestInvoiceDetails","pausingRequestInvoiceTypes","dbKey","contractStatusIcons","renewed","pause","cancel","completed","agreementStatusNames","inactiveContractStatus","displayFeeTypeInfo","displayRevenueShareInfo","displayFixedRetainerInfo","displayQuarterlyRetainerInfo","displayMonthlyRetainerInfo","displayFixedThresholdInfo","displayBillingCapInfo","displayBillingMinimumInfo","OptimizationArray","oneTimeServicesHavingSubType","VENDOR","SELLER","HYBRID","AMCINSIGHTS","CREATIVEPROJECTS","ADPERFORMANCE","SALEPERFORMANCE","DSPPERFORMANCE","PARENT","YEAROVERYEAR","CUSTOM","TRAFFIC","TACOS","REVENUETOTAL","REVENUEORGANIC","REVENUEPPC","REVENUEDSP","ORDEREDREVENUE","SHIPPEDCOGS","ADSALES","ADSPENDTOTAL","ADSPENDPPC","ADSPENDDSP","ADSPEND","NTBORDERS","NTBSALES","PERCENTAGENTBORDERS","PERCENTAGENTBSALES","ACOS","ADROAS","ADCOS","COSTPERCLICK","ASIN","CAMPAIGN","DSPADBUDGET","PERFORMANCE","financeNavigationOptions","pendingApprovalTab","dspColorSet","dspImpressions","dspSpend","dspTotalProductSales","dspTotalRoas","dspTotalDpvr","dspTtlNewBrandPurchases","dspProductSales","dspRoas","dspTabOptions","contributionColorSet","High","Medium","Low","InvoicesStatusOptions","PartnersStatusOptions","InvoicesSortByOptions","PartnersSortByOptions","FinanceDateTypeOptions","metricsNameForAPI","adSales","adSpend","adConversion","impressions","adCos","adRoas","adClicks","adClickRate","costPerClick","salesPerClick","revenue","traffic","unitsSold","conversion","orderedRevenue","shippedCOGs","glanceViews","conversionRate","orderedUnits","shippedUnits","percentageNtbOrders","percentageNtbSales","ntbOrders","ntbSales","goals","DSPFinanceMetrics","titleColor","postfix","DSPBillingMetrics","StatusColorSet","open","draft","overdue","paid","late","created","pending","refunded","voided","approved","rejected","void","cancelled","partially","paused","BillingVendorOptions","BillingSortByOptions","monthNames","roleURLs","dashboardRole","dashboardRolePaths","BGS","Finance","Spreetail","financeAPIRoutes","retainer","dspBilling","pendingApprovals","financeDefaultTab","advertisingDefaultTab","sales","sponsored","amcDashboard","awsQuicksight","inventory","performanceTypeOptions","performanceTypeOptionsForInventory","isDisabled","allValueObj","allBPObj","salesContributionTabOptions","salesGoalsTableHeader","showTooltip","tooltipId","tooltipInfo","vendorOrderedRevenueMetrics","metricsClass","vendorShippedCOGsMetrics","vendorOrderedRevenueMetricsTabs","vendorShippedCOGsMetricsTabs","contributionTableHeaderByTab","sponsoredTabOptions","dspPacingKeyTabOptions","dspPacingTableHeader","pendingApprovalOrderOptions","agreementTypes","recurring","pendingApprovalAccessEmails","dateOptions","sponoredMetricsList","sponosredMetricsTooltipInfo","acos","roas","sponsoredMetricsDetails","metricsKey","activeClassName","hasCurrency","hasPercentage","decimalDigits","hasGoals","differenceType","sponsoredMetricsActiveClasses","sponsoredMetricsClasses","0","1","2","3","4","5","6","7","dateOptionsWithYear","dateOptionsWithYearOverYear","vendorSalesMetricsTypeOptions","VendorMetricsNames","VendorMetricsColorSet","bbDateOptions","AdTypesOptions","sponsoredAdTypeOptions","sponsoredAsinTableConstant","isSortable","dspAsinTableConstant","dspMetricsConstants","dspPacingMetricsConstants","plannedSpend","metricsPercentKey","rangeClass","showPercentValue","actualSpend","changeSpend","remainingBudget","noGraphDataMessage","keyContributionConstant","noManagerSelected","managerSelected","metricsCurrency","tacos","adSpendTotal","adOrders","toogleMetricsData","CPCandSPCToggleMetrics","asinTabOptions","currentDate","Date","setDate","getDate","dayjs","subtract","salesMetricsResponseKey","revenueTotal","revenueOrganic","revenuePpc","revenueDsp","adSpendPpc","adSpendDsp","salesGraphColorSet","salesGraphTooltipNames","totalSales","parentASINTableheader","childASINTableheader","vendorOrderRevenueASINTableheader","vendorShippedCogsASINTableheader","showMetricsTooltipForSponsored","showMetricsTooltipForDSP","showMetricsTooltipForSales","revenuSubTypeKeys","sponsoredAdSpend","showMetricsTooltipForVendorSales","performanceInsightMessage","vendorSales","metricsVendorSalesKey","childBrandDataAvailableMessage","rivianaAndChildBrandIds","dailyWeeklyMonthlyOptions","dspId","spId","campaignSortingOptions","spCampaignAsinToggleOptions","dspCampaignAsinToggleOptions","asinStatiMessages","brand_campaign_report","television_campaign_report","campaignDataAvailabilityMessage","asinDataAvailabilityMessage","asinHistoricalDataMessage","asinTooltipMessage","asinOneJuneMessage","sponsoredTooltipDataHTML","InvoiceApprovalHeader","standard","InvoiceTypeNames","InvoiceCurrentMonthHeader","InvoiceNewMonthHeader","InvoiceInfo","mainHeading","boldHeading","mainHeading2","invoiceApprovalFlag","TotalInvoiceHeader","dspSignOffRoles","invoiceStatusIcons","iconColor","getInvoiceStatusKey","invoiceStatus","toLowerCase","split","invoiceBreakdownOptions","paymentsMethod","other","credit_card","cash","check","direct_debit","eft","paypal","wire_transfer","timeFrameOptions","standardReportMessages","finance","finance_custom","account_audit","sp_advertising","reconciliation","cashflowStandardReportsKeys","bpAccountType","Hybrid","Seller","Vendor","commanFieldConstant","customizedReportTableHeadConstants","customStyles","content","top","left","right","bottom","maxWidth","overlay","transform","sellerDetails","isSellerOpen","graphTitle","selectedMetrics","selectedMetricsData","graphFrequency","showPreviousDataPoint","showDataTable","graphDataTableView","showMetricsGraph","metricMessage","salesRevenueTotal","salesRevenuePpc","salesRevenueDsp","salesTacos","salesUnitSold","salesTraffic","salesConversion","salesAdSpendTotal","salesAdSpendPpc","salesAdSpendDsp","adPerformance","sponsoredType","adConversionRate","adConversionRateSp","adImpressions","adAcos","adCostPerClick","adClickThroughRate","adSalesSP","adSpendSP","adConversionRateSP","adConversionRateSpSP","adImpressionsSP","adAcosSP","adRoasSP","adCostPerClickSP","adClicksSP","adClickThroughRateSP","adSalesSB","adSpendSB","adConversionRateSB","adConversionRateSpSB","adImpressionsSB","adAcosSB","adRoasSB","adCostPerClickSB","adClicksSB","adClickThroughRateSB","adSalesSBV","adSpendSBV","adConversionRateSBV","adConversionRateSpSBV","adImpressionsSBV","adAcosSBV","adRoasSBV","adCostPerClickSBV","adClicksSBV","adClickThroughRateSBV","adSalesSD","adSpendSD","adConversionRateSD","adConversionRateSpSD","adImpressionsSD","adAcosSD","adRoasSD","adCostPerClickSD","adClicksSD","adClickThroughRateSD","dspTotalNewBrandPurchases","isParentTopAsins","isParentBottomAsins","isParentAllAsins","parentTopAsins","parentBottomAsins","parentAsinMessage","isChildTopAsins","isChildBottomAsins","isChildAllAsins","childTopAsins","childBottomAsins","childAsinMessage","showChildProductName","buyBoxGraph","showBuyBoxGraphTable","bbpTableView","showBuyBoxGraph","buyBoxGraphData","inventoryScore","positiveFeedback","orderIssue","sellerHeathMessge","strandedInventory","overstockInventory","understockInventory","inventoryManagementMessage","showInventoryProductName","footerMessage","vendorDetails","isVendorOpen","saleType","salesShippedCogs","salesShippedGlanceViews","salesShippedConversionRate","salesShippedUnits","salesOrderedRevenue","salesOrderedGlanceViews","salesOrderedConversionRate","salesOrderedUnits","sellerDetailsEditor","vendorDetailsEditor","groupByFields","sellerSalesMetricsFields","fieldName","keyName","spanClass","isMetrics","isSubType","sellerRevenueMetricsFields","sellerAdspendMetricsFields","vendorSalesMetricsFields","shippedCogs","graphToggleOptions","productNameToggleOption","inventoryProductNameToggleOption","sellerSponsoredMetricsFields","sellerDspMetricsFields","sellerHealthFields","buyBoxPercentFieldOptions","inventoryManagementFields","metricsTooltipArray","reportOrderOptions","reportTabOptions","saveReportOptions","isDefaultChecked","setTimeFrame","week","month","year","custom","sponoredDspKeys","inventoryKeys","initalStateBP","initalStateTimeFrame","initialStateReportType","initialStateAccountType","currencyAxis","percentageAxis","numberAxis","customReportGraphColorSet","customReportGraphTooltipNames","buttonDisabledMsg","selleCollapseIds","vendorCollapseIds","parentAsinTableFields","childAsinTableFields","strandedInventoryTableFields","overstockInventoryTableFields","understockInventoryTableFields","metricsDisabledOnAgreement","salesTacosBeforePpc","salesAdSpendTotalBeforePpc","salesAdSpendPpcBeforePpc","salesAdSpendDspBeforePpc","salesTacosBeforeDsp","salesAdSpendTotalBeforeDsp","salesAdSpendPpcBeforeDsp","salesAdSpendDspBeforeDsp","salesTacosBeforePpcDsp","salesAdSpendTotalBeforePpcDsp","salesAdSpendPpcBeforePpcDsp","salesAdSpendDspBeforePpcDsp","salesTacosAfterPpc","salesAdSpendTotalAfterPpc","salesAdSpendPpcAfterPpc","salesAdSpendDspAfterPpc","salesTacosAfterDsp","salesAdSpendTotalAfterDsp","salesAdSpendPpcAfterDsp","salesAdSpendDspAfterDsp","salesTacosAfterPpcDsp","salesAdSpendTotalAfterPpcDsp","salesAdSpendPpcAfterPpcDsp","salesAdSpendDspAfterPpcDsp","TITLE","productDefalutList","objectiveDefalutList","titleDefalutList","timeFilterOptions","dashboardTimeFilterOptions","inventoryNoDataMessage","restockLimit","stranded","strandedRestock","restockLimitTypeInfo","subLabel","defaultRestockInventoryOrderBy","utilization","max_shipment","open_shipment","on_hand","defaultStrandedInventoryOrderBy","available","change","percent_change","understock","overstock","company_name","defaultTimeFrameForInventory","storageTypeOptions","restockLimitTableheader","restockInventoryTableheader","strandedInventoryTableheader","underStockTableheader","sort","tooltip","OverStockTableheader","stockedTooltip","recommended_ship_date","recommended_replenishment_quantity","estimatedLostSalesTabsConstants","estimatedLostSalesDateFilterOptions","estimatedLostSalesStatusFilterOptions","estimatedLostSalesTableHeaderConstants","inactiveTableHeader","sorting","tooltipMessage","strandedTableHeader","archiveTableHeader","inventoryManagementInfoIconConstants","storageTypeConstants","restockLimitsColorCodes","onhand","openShipment","maximumShipment","previousOnhand","previousOpenShipment","previousMaximumShipment","current","previous","tooltipBackground","tooltipText","storageSubTypes","bgColor","isStacked","previousKey","previousLabel","previousBgColor","previousIsStacked","previousDx","currentEndMonth","currentStartMonth","setMonth","getMonth","currentStartMonthName","currentEndMonthName","secondLevelNavBar","secondLevelNavBarForCustomer","DSPAudienceHeaders","charLimit","autoPopulatedField","refreshRateDaysOptions","audienceExpansionTypeOptions","AMCDashboardNav","orderByFilterOptions","statusFilterOptions","timeFrameOptionsOfAMCAudience","AMCAudienceSummaryHeaders","AMCAudienceMetricsConstants","metricsId","metricsLabel","currentYear","getFullYear","playbookTabsConstants","playbookAccountTypeOptions","jiraStatus","playbookTableHeader","playbookTableHeaderBPView","onboardingPlaybookTableHeader","playbookSummaryMonthOptions","revenuMetricsSubTypes","adSpendMetricsSubTypesOptions","adSpendMetricsSubTypes","isShowTooltip","SummaryGraphColorSet","tooltipNames","metricsResponseKey","metricsClasses","salesMetricsClasses","metricsTootlNames","summaryRestockLimitHeader","summaryRestockLimitStorageType","asinMetrics","asinValue","percentChnage","pageTitle","found","returnPageTitle","param","forEach","document","queryString","parse","search","subNav","amcAudience","pageTitleConditions","entries","tab","board","pathname","colletionName","GlobalMenu","pathToRedirect","filtersOption","notes","teams","team","archived","userDetails","commonLog","dspSignOfflog","cancelPauseAggrementLog","customizedReportLog","creativeAfterDaysOptions","projectASINTableHeader","total","avg","show_info","asin_view","changedValueKey","isShow2Decimal","info_message","dataAfterCompletion","PerformanceSumarryTiles","color","symbol","dataAvailabletoolTip","decimal","daysConstant","vendorReportTypes","orderedVendorPerformanceSumarryTiles","shippedVendorPerformanceSumarryTiles","projectASINVendorTableHeader","projectASINVendorShippedCogsTableHeader","cosViewTypes","stickyColumnHeaders","columns","tableHeaders","valueKey","defaultCOSData","parent_asin","child_asin","sku","product_title","pdp_url","bp_url","link_to_assets","asset_recieved","assigned_designer","assigned_designer_info","design_project_type","design_optimization_level","assigned_production_designer","assigned_production_designer_info","design_notes","design_project_status","link_to_completed_design_deliverables","design_due_date","design_date_completed","design_link_to_jira_project","design_published","design_published_date","copy_project_type","copy_optimization_level","copy_notes","copy_project_status","link_to_completed_copy_deliverables","copy_link_to_jira_project","copy_due_date","copy_date_completed","copy_published","copy_published_date","dateFilterOptions","calculateMonthDifference","date1","date2","monthDiff","Math","abs","getTime","trunc","getPastAndfutureMonths","date","months","getPastAndfutureDate","vendorSubTabOptions","goalsTabConstant","goalsDataType","accountTypeOptionsForGoals","contractChoices","contractStatus","emailRecipientFields","classname","emailRecipientOption","customStylesForTableModal","getCustomerList","pageNumber","filterOptions","searchQuery","contractDetails","performance","dspAdPerformance","expiringSoon","dailyFacts","orderByFlag","selectedColumns","selectedVendorDashboard","isCsv","page","undefined","bp_list_view","bpAccount","expiring_soon","q","salesPerformanceDashboards","list","map","push","vendorColumnValues","sellerColumnValues","isAnyVendorDashboardFieldSelected","some","element","isAnySellerDashboardFieldSelected","dashboardList","stringify","customiseColumns","accountTypeParams","customer_account_type","statusParams","contractStatusParams","contract_status","index","indexOf","addendumStatusParams","addendum_status","bgsParams","cd_user","user","ad_user","dsp_user","contract","dspService","agreementType","contract_type","dspserveiceArray","ele","dsp_service","agreement_type","pipeline","account_type","channel_type","getCustomerDetails","getDocuments","docType","updateCustomerDetails","getDocumentList","document_type","updateAccountDetails","getAllMembers","findMembers","addCustomerMembers","getCustomerActivityLog","model","createContactInfo","updateContactInfo","deleteContactInfo","delete","replace","saveSPData","getSPData","getChildBps","marketplaceId","marketplace","getGoalPerformanceData","orderBy","brandPartner","marketplaces","startDate","endDate","managerUserString","bgsUserString","isBGS","isBGSManager","isBGSAdmin","includeInactiveBPs","includeSpreetailBrands","order_by","start_date","end_date","show_inactive_bps","show_third_party_potential_brands","bgs_manager","getLeadershipBrandPartners","dashboardName","managerUserId","userId","ad_team_manager","getKeyContributorsdownloadReport","isAdManagerAdmin","isAdTeamManager","isAdManager","metricName","managerUsers","users","accountType","daily_facts","metric","no_pagination","getAdManagerAdminGraphData","dashboardType","adType","groupBy","performanceType","managerUser","bgsUser","group_by","sponsored_type","getKeyContributionData","selectedMetric","spendingType","getSalesGraphData","getSalesKeyContributionData","vendorMetricsType","getVendorSalesPerformanceData","API","getFinanceInvoices","searchKey","sortBy","timeFilterType","timeFilter","selectedNavigation","invoice_type","sort_by","timeframe","start_month_year","end_month_year","invoice_status","vendor","monthYear","getManagersList","getBgsUserList","getOneTimeService","apiUrl","getMarketplaces","getMarketPlaceList","goalFlag","customer_id","goal","getDspMarketPlacesList","getGoalsMarketPlaceList","customerId","getBPsAllMArketplaceList","show_all","API_CHOICES","getCurrencyOptions","getStandardServices","getNonUSStandardServicesMarketplaces","getMinDateForDashboard","manager","dashboard_type","agreementTemplate","getcontract","expand","createMarketplaceBulk","createAdditionalServiceBulk","createAMCServicesBulk","createAddendum","getAddendum","updateAddendum","createTransactionData","createContractDesign","createContract","getBGSManagers","getAgreementData","isLiz","request_type","is_liz","getPauseAgreementDSPAmounts","agreementCancelPauseRequest","finalRequestOffboardedAnswers","requestType","reqData","invoice","pauseContractId","pauseId","contractId","startsWith","contract_addendum","saveDiscount","saveFeeStructure","saveStdServices","createStandardNonUSServiceBulk","createDSPMarketplacesBulk","saveDraftAddendum","contractType","contracts","getArticleBoards","collectionId","folderId","cardId","askSomeoneData","updateAskSomeoneData","customer_onboarding","accountSummary","getVideoLink","customerOnboarding","getBillingDetails","saveBillingInfo","getAmazonAccountDetails","saveAmazonSellerAccount","NoAmazonAccount","no_amazon_account","saveAmazonVendorAccount","saveSellerMarketplaces","noAmazonAccount","saveVendorMarketplaces","marketplaceName","marketplace_name","saveAmazonDspAccountdetails","getDSPContact","getAmazonAccount","getCustomerFeedback","fields","updateBrandAssetStep","getBrandAssetsSummary","brand_asset","getBrandAssetsDetail","documentId","reAssignedEmail","position","annotationNumber","showClickModal","re_assigned_email","x_coordinate","y_coordinate","annotation","pdf_page_number","getNotes","searchString","selectedFilters","filters","no_team","saveNotes","res","err","updateNotes","noteId","NoteId","adjustment_data","dspAdjustmentID","adjustType","appliedDate","dsp_invoice_subtype","applicable_from","budget_approved","pause_approved","invoiceData","dspInvoiceNote","todaysDate","day","finalInvoiceAdjust","is_sent_for_pause","adjustments","new_budget","newAmount","parseFloat","old_budget","marketplace_id","local_currency","getPerformance","goalsMarketplaceIds","childBrandId","marketplacesData","toString","goal_marketplace","getVendorReportingData","metricsType","api","goalMarketplacesIds","getBuyBoxChartData","bbDailyFact","bbep_interval","getAdPerformance","selectedMarketplace","sponsoredAdType","timeFrame","campaignSortBy","campaignSearchQuery","orderByApiKey","ads_report_type","campaign_status","campaignId","campaignStatus","asinCount","campaign_id","asin_count","getSponsoredAdAsinPerformanceData","downloadReport","download_report","getDspAdAsinPerformanceData","dspCampaignSearchQuery","dsp_campaign_report","campaignOrderId","order_id","getDSPPerformance","dsp_daily_facts","dsp_group_by","dsp_marketplace","dsp_start_date","dsp_end_date","dsp_pacing_graph","getDspPacingData","dsp_pacing","allocateMonths","option","escrow_allocated_converted_usd","Number","month_year","allocate_balance","getASINPerformanceData","orderByKey","asinType","timefilterType","selectedAccountType","asin_type","getSalesAndAdMinDate","getDataAvailabeleChildBrand","getCreativeProjectMonths","getCreativeProjectGlobalFilters","filteredData","modifiedMonthData","getCreativeProjectTableInfo","vendorReporting","asinCheckSum","asin","localAsinCheckSum","shift","vendor_reporting","asin_view_checksum","asins","treamObjectValuesInToArray","selectedDropdownList","allDropdownValues","getCreativeProjectGraphData","multiSelectedValues","afterDaysValue","creativeProjectGraphparams","days","monthParams","marketplaceParams","projectTypeParams","project_type","projectChecksumParams","projects","asinParams","project_checksum","viewType","modifiedMarketplaceData","modifiedProjectTypeData","view_type","project","completion_date","uploadCreativeSheet","asins_listings","query","availableStatus","no_page","reportType","date_range","report_type","selctedUser","reportID","selectedTitle","report","partner_opportunity","customDateState","selectedProduct","selectedObjective","product","objective","getCustomzedReportData","OrderBy","reportId","templateId","saveType","getSalesSponsoredDspMetricsData","selectedTimeFrame","checkReportStatusToEdit","changeReportStatus","reportStatus","report_status","getCutomReportASINPerformanceData","getCustomReportActivity","actions","report_id","updateTaskStatus","currentPage","search_user","updatePlaybookTaskAssignee","quarterId","getOnboardingPlaybookData","selectedMarketplaces","selectedService","selectedTeamMembers","customStartDate","mrktplc","teamsString","tempTeamMembers","find","service_name","createCustomerPlaybookFromSummary","playbookTab","service_duration","getRestockData","storageType","selectedDate","isDownloadReport","storage_type","ordering","bgs","getStrandedInventoryTableData","customDate","isRestockInventory","is_restockinventory_visible","getRestockLimitsData","seletedDate","getStrandedInventoryData","getRestockInventoryData","inventoryType","getEstimatedLostSalesAPIData","selectedTab","reason","action","stranded_reason","getEmbeddedQuicksightDashboardURL","getSummaryPerformanceData","updateBillingOffBoardingApproveReject","body","request_status","getCancellationBillingData","getGoals","customerID","primaryMarketplace","primary_marketplace","startDateStr","endDateStr","accType","getDSPAudienceData","showAMCAudienceLookalike","dsp_audience","amc_audience_lookalike","getDSPAudienceDashboardData","dsp_ad_manager","downloadFlag","getAMCInstances","getAMCAdvertisers","saveAMCInstance","saveAMCAdvertiser","MainHeader","commonShadow","textFontSizeRes","normalRes","FormContainer","gray6","PasswordFormContainer","Button","button","secondaryColor","props","login","DropDownSelect","gray15","gray45","inputColor","PageLoaderWrapper","DetailLoaderWrapper","SideBarLoader","ButtonLoaderCss","PageLoader","component","height","pageWidth","SearchInput","InputText","textarea","FormField","lightRed","Table","table","extraLightYellow","lighterGreen","yellow","lightPink","pink","extraLighOrange","gray12","medium","PageNotFound","PageNotFoundImg","extraSmallRes","CommonPagination","count","handlePageChange","marginStyle","showLessItems","PaginationStyled","marginLeft","showTotal","hideOnSinglePage","onChange","event","locale","ModalBox","gray20","mediumRes","textFontSize","CheckBox","ModalRadioCheck","GreyCard","gray1","InputSearchWithRadius","InputFormField","backgroundTransparent","ContractInputSelect","DropDownStatus","ActionDropDown","OnBoardingBody","CheckBoxList","WhiteCheckMark","CheckboxCheck","BackToTop","ScrollToTop","scrollTo","behavior","ArrowUp","WhiteCard","textExtraSmall","HeaderDownloadFuntionality","Tabs","Status","backgroundColor","pointColor","labelColor","marginBottom","marginTop","iconType","fontIcon","handleOnClick","iconAfterLabel","StatusWrapper","toUpperCase","slice","DropdownOptions","Option","components","data-cy","fontSize","DropdownSingleValue","SingleValue","DropDownIndicator","selectProps","indicatorColor","DropdownIndicator","menuIsOpen","minHeight","CustomDateModal","isOpen","onApply","minDate","ariaHideApp","contentLabel","CloseIcon","editableDateInputs","ranges","moveRangeOnFirstSelection","showDateDisplay","maxDate","rangeColors","weekdayDisplayFormat","enGB","CustomSingleDateModal","CustomDateRange","CustomMonthRangeModal","startMonth","endMonth","onDateChange","helperText","selected","selectsRange","inline","dateFormat","showMonthYearPicker","useFormatNumber","x","round","showPositiveSign","decimalPlace","isNaN","finalNumber","finalPrefix","toFixed","rendeTootipData","revshare","formatNumber","Card","heading","noBill","totalBill","noBillText","totalBillText","breakDown","CardWrapper","data-tip","data-html","data-for","aria-haspopup","place","effect","NoData","PdfLoadingMsg","setIsLoader","useEffect","loader","PdfAnnotator","pdf","loadingMsg","onPdfMouseDown","renderPDFAnnotations","clickOnAddNewAnnotation","useState","totalPages","setNumPages","isDesktopLarge","useMediaQuery","minWidth","isDesktop","isDesktopView","isTablet","isMobile","isMobileView","isMobileSmallView","file","workerSrc","loading","onLoadSuccess","numPages","Array","from","el","onMouseDown","e","selector","ToggleButton","CardMetrics","darkRed","DropDownUncontained","setSelectedOption","extraAction","multipleAgreement","history","useHistory","useSelector","state","userState","isSpreetailUser","ninetydays","walmartRecurring","walmartRecurringNinetyDays","disableAgreementOption","setDisableAgreementOption","checkAgreementType","useCallback","recurring90days","walmartRecurring90days","disableOption","IconOption","dataProps","fontWeight","paddingBottom","html","IconSingleOption","AddNewAgreement","AddNewAgreementDropDown","classNamePrefix","isSearchable","theme","colors","primary25","primary50","componentsValue","showAgreementOptions","AllocateBar","GrayMessageBar","ErrorMsgBox","font","TableMobileView","CompanyName","invoiceId","statusLabelColor","labelInfo","label1","label2","label3","label4","label5","label6","label7","label8","labelInfo1","sublabel","sublabel1","labelInfo2","labelInfo3","labelInfo4","labelInfo5","labelInfo6","labelInfo7","labelInfo8","statusColor","isColumnOnClick","isShowCopyIcon","onColumnClick","mainLabel","isShowPercentage","isLabelInfo2Positive","isLabelInfo5Positive","isBBEDashboard","isInventory","isCancelRequest","copyText","showBorder","statusIcon","col","renderTableView","CompanyDefaultUser","copy","toast","success","ArrowUpIcon","ArrowDownIcon","TableMobileViewWrapper","GlobalNavbar","isHavePendingApprovalAccess","is_primary_request_approvers","is_final_request_approvers","userRole","GlobalMenus","menu","ViewData","ToogleMetrics","onToogle","toggleName","Wrapper","checked","htmlFor","CustomDropDown","DesktopTable","lightGreenBg","textSmall","ToggleSwitch","InfoMsg","ReportTextEditor","setData","wrapperClassName","toolbarClassName","editorClassName","onFocusOut","isCharLimit","editorState","setEditorState","contentState","setContentState","editotIconOptions","fontFamilyOptions","hyperlinkOptions","inDropdown","defaultTargetOption","colorPickerOptions","listOptions","dropdownClassName","unordered","ordered","indent","outdent","contentBlock","htmlToDraft","ContentState","createFromBlockArray","contentBlocks","EditorState","createWithContent","onEditorStateChange","editorData","getCurrentContent","draftToHtml","convertToRaw","imageUploadOptions","popupClassName","urlEnabled","uploadEnabled","alignmentEnabled","uploadCallback","resolve","reader","FileReader","readAsDataURL","onload","link","onerror","previewImage","inputAccept","present","mandatory","defaultSize","EditorContainer","onBlur","_event","editorStates","handleBeforeInput","val","textLength","getPlainText","handlePastedText","newContent","Modifier","insertText","getSelection","stripPastedStyles","toolbar","fontFamily","colorPicker","image","DropDown","defaultValue","handleOnChange","reff","selectedValue","isLoading","YearOverYearOptionStyles","menuList","styles","maxHeight","ref","neutral50","primary","menuPortal","base","zIndex","isOptionDisabled","CustomMultiSelectDropDownFilter","filterId","customStyle","dropdownLabel","onChangeHandler","selectedValues","isDropdownMenuOpen","setIsDropdownMenuOpen","dropdownIconStyle","dropdownOptionClass","isDropdownMenuDisabled","dropdownRef","useRef","handleClickOutside","contains","target","addEventListener","removeEventListener","isOptionchecked","MultiSelectDropDown","stopPropagation","AddThousandSeparator","showPlusSign","propTypes","string","number","bool","SingleSelectDropdown","isApiCall","dropdownOptions","dropdownComponents","provided","renderSingleSelectDropdownFilter","MultiSelectDropdown","setMultiSelectedValues","handleMultiSelectChange","handleOnMenuClose","ValueContainer","selectOption","isSelected","disabled","valueContainer","children","getValue","updatedValue","isMulti","renderValue","closeMenuOnSelect","hideSelectedOptions","margin","isClearable","values","prevState","handleChange","onMenuClose","MultiSelectSearchableDropdown","allObjectOptionDisabled","allObj","inputValue","backspaceRemovesValue","userAction","convertImageToBase64","imgUrl","fetch","blob","base64Url","fileReader","NoRecordFound","titleClassName","subTitleClassName","imageClassName","NoRecord","TelescopeIcon","VisibleScrollableTable","tableMinWidth","DropDownSelectMonthPicker","MultipleDashedLineLabel","MultiSelectDropdownWithoutAll","defaultSelectionCount","multiselectLabel","DailyWeeklyMonthlyToggle","toggleId","toggleState","toggleOptions","toggleEventHandler","BrandPartnerProfile","bpName","assignedUser","logoURL","ProfileStyle","CollapseTableMobileView","EditPassword","useForm","register","handleSubmit","errors","watch","reset","setIsLoading","old_password","new_password","showPassword","setShowPassword","apiError","setApiError","checkFields","generateHTML","required","minLength","smallEyeIcon","CloseEyeIcon","onSubmit","updatePassword","Fragment","customerRequestSuccess","payload","setCustomerSelectedTab","customerRequestFail","showLoaderExceptGoals","dispatch","getContactDetails","contact","contactRequestFail","userRequestFail","clearToken","userMe","setItem","JSON","userMeSuccess","stringified","callback","assign","google_id","Cookies","onboardingId","re_assigned_user_details","userRequestSuccess","logout","showOnboardingMsg","showForgotMsg","dynamicErrorMsg","dynamicMsg","setKBtitle","CropUploadImage","setDocumentImage","useDispatch","cropData","setCropData","cropper","setCropper","setImage","showModal","setShowModal","fileDetails","setFileDetails","imageID","defaultPic","DefaultUser","cancelImageCrop","preview","newCrop","initialAspectRatio","aspectRatio","viewMode","guides","minCropBoxHeight","minCropBoxWidth","minCanvasHeight","minCanvasWidth","minContainerHeight","background","responsive","autoCropArea","checkOrientation","onInitialized","instance","getCroppedCanvas","toDataURL","base64ToBlob","b64toBlob","formData","original_name","entity_id","entity_type","mime_type","size","presigned_url","put","createDocument","UpdateProfile","EditIcons","accept","files","preventDefault","dataTransfer","onImageChanged","CheckPhoneNumber","on","code","shiftKey","EditProfile","showBtn","setShowBtn","maxLength","InfoIcon","updateUserInfo","documents","textTransform","ProfileModal","setShowSuccessMsg","showSuccessMsg","show","ShareIdeaModal","showArticle","setShowArticle","showArticleSuccess","setShowArticleSuccess","setFormData","saveArticle","createArticle","rows","description","Header","isBBEInternalUser","isInternalUser","customerData","customerState","hideHeader","showDropDown","setShowDropDown","profilePic","getElementById","closest","prop","hide","autoClose","pauseOnFocusLoss","classList","toggle","paddingTop","HandShake","HelpDeskIcon","amazon_dummy_contract_url","rel","download","FileIcon","walmart_dummy_contract_url","LogOutIcons","goal_set","PopOverMsg","Activity","viewComponent","childBPList","customerType","activityDetail","displayMixedLog","logUser","msg","header","oldValue","newValue","displayLog","splitMsg","showAllActivity","handleShowMoreLessEvents","activityMessage","mixedLog","customerSetupHeader","history_change_reason","showMore","isAllowForShowMoreAndLess","splittedReason","invoiceLog","dspNoteLog","splittedDspNoteLog","dspNoteString","invoiceInfoString","dspNoteWordsLimit","wordsToWrap","concat","regex","RegExp","log","dangerouslySetInnerHTML","__html","msg1","fromAmount","toAmount","rowAmount","temp","amt","splittedNewValue","oldMonth","newMonth","highLightLogs","logItem","lastAcitvityMessage","str","useActivityLog","activityData","setActivityData","activityCount","setActivityCount","setPageNumber","images","setImages","selectedCustomerId","setSelectedCustomerId","bindActivityLogData","responseData","tempActivityData","results","picResponse","itemIndex","updatedActivityData","handleChildBPFilterEvents","getSingleSelectComponents","random","history_user_id","NextActivityLogo","ContractEmailIcon","userDetail","getActivityInitials","history_date","opens","clicks","EditCompanyDetails","scrollDown","setScrollDown","setDetail","getContactData","contactInfo","contactFormData","setContactFormData","contactApiError","setContactApiError","checkChange","setCheckChange","contactDetails","setContactDetails","facebook","instagram","linkedin","pinterest","twitter","clearSocialInput","setClearSocialInput","animate","scrollTop","scrollHeight","modalScrollDown","generateSocialIcon","TrashIcons","clearSocialURL","mapInputValues","cols","generateTextArea","decimalScale","thousandSeparator","generateNumberFormat","generateInput","handleContactChange","mapContactValues","generateContactHTML","i","splice","removeContact","SaveIcon","contactId","responseContact","non_field_errors","phone_number","NoContactIcon","addNewContact","AddNewIcons","EditAmazonAccountDetails","dataLoader","generateDropdown","generateAccountHTML","dspData","amazonDetails","sellerVendorCall","setDspApiError","amazonDspDetails","sellerAdvertiserIds","vendorAdvertiserIds","generateDspAccountHTML","setSellerAdvertiserIdsError","setVendorAdvertiserIdsError","initialGetCallOfUseEffect","bindAdvertiserIdsError","tempData","advertiser_ids","afterSuccessAPI","handleAutoScrollEvents","saveAccountDetails","tempSellerAdvId","tempVendorAdvId","advertiser_id","seller","Dsp","dspvalue","isSellerCalls","isVendorCalls","isHybridCalls","isDspCalls","apiRequest","all","spread","sel","ven","getError","handleMultipleAPIRequest","saveDspAccountDetails","isEmptyOrSpaces","allEntries","isError","validateAdvertiserIds","AmazonAccount","marketplaceData","isAuthorized","marketplaceList","mounted","marketplaceChoices","setMarketplaceChoices","setSelectedMarketplace","setAmazonDetails","dspApiError","setSellerAdvertiserIds","setVendorAdvertiserIds","sellerAdvertiserIdsError","vendorAdvertiserIdsError","setAmazonDspDetails","setDspData","setDataLoader","sellerAuthenticationURL","vendorAuthenticationURL","showSPButton","lwa_authentication_button","convertDomainToName","checkLWAAuthorizationMsg","bindMultipleAdvertiserIdsData","AdvIdsData","obj","tempIdObj","getVendorDetails","sellerData","getAmazonVendor","mp_name","vendorAdvIds","getVendorAdvIds","getSellerDetails","getAmazonSeller","sellerAdvIds","getSellerAdvIds","getDspDetailsOfBP","getAmazonDspDetails","defaultMarketplace","is_primary","singleMarketplaceOption","handleAdvIdsChange","mapData","indexOfobj","addAdvertiserIdsObject","mapDefaultValues","updatedId","updatedError","sellerAdvIdsError","vendorAdvIdsError","removeAdvertiserIdInputField","renderAdditionalAdvertiserIdButton","advId","renderAdvertiserIdInputField","AddIcons","displaySellerVendorErrorMessage","errorObj","renderAdvertiserIdsError","generateEditHTML","errorMessage","CopyLinkIcon","getMarketplaceDetails","marketplaceURL","displayMarketplaceURL","merchant_id","encodeURI","border","getDropdownSelectComponents","EditOrangeIcon","CompanyDetail","isCustomer","setIsAuthorized","setContactInfo","setMarketplaceList","setMarketplaceData","getCustomerContactDetails","customerDetails","getAccountMarketplace","market","readMoreText","readLessText","InputSelect","EditAccountDetails","IsSaveDataClicked","setCustomer","countries","setCountries","categories","setCategories","CustomDropdownIndicator","SortDownIcon","getCountry","getCategories","category","menuPlacement","handleSelectChange","menuPortalTarget","substring","allowNegative","isAllowed","formattedValue","floatValue","CustomerDetailsBody","CustomerTabCollapse","CustomerTabList","NotesSideBar","BrandHeaderOption","labelSmall","darkGreen","darkYellow","InputDateDropDown","EditInput","AccountDetails","setStatusModal","getChildBpList","isCustomerStatusVisible","setIsCustomerStatusVisible","statusActions","can_change_status_to_collection","sellerCentral","sellerCentralMarketplaces","vendorCentral","vendorCentralMarketplaces","checkStatusColor","lightDarkBlue","displayMarketplaces","centralMarketplacesArray","childBrands","replaceAll","getAddressHTML","address","city","zip_code","country","showSPAuthentication","centralArray","authorizedImg","unauthorizedImg","statusChangeOption","renderCustomerStatus","customerStatus","isPending","isInactive","float","control","borderRadius","outline","boxShadow","outLine","singleValue","displayCompanyProfile","imageLink","ReactTooltip","parent_name","child_bp_of","AuthorizedSC","UnauthorizedSC","AuthorizedVC","UnauthorizedVC","displayBrandPartnerStatus","website","renderLinksSections","ShowTeamMembers","memberData","setShowMemberList","setShowNotesModal","isChildBPList","modal","role_group","PlusIcon","apiCall","CaretUp","CustomerTabDetails","showPlaybook","playbookTabActive","sidePanelToggle","customerAccountType","handleMenuOnclick","selectedNavTab","displayTooltipBox","isToggle","PlaybookStyle","TaskStatus","PlaybookNavbar","PlaybookMobileView","RefreshButton","InnerCollapseRow","tr","BorderLessDropDown","PlaybookSummaryMobileView","PlaybookSummaryLink","TableSummaryWrapper","SummaryMobileSelect","Select","PlaybookSummaryDeliverableCollapse","deliverableData","marketplacesList","setMonthDropdownValue","sub_tasks","task_name","renderPlaybookSummaryDeliverableData","renderCollapseDropdownIcon","showCollapse","handleMonthDropdown","listData","setUpdatedServicesOfPlaybookSummary","updatedServicesOfPlaybookSummary","findIndex","frequency","renderAssigneeTooltip","tooltipComponent","assignee_first_name","assignee_last_name","PlaybookSummaryServiceCollapse","serviceData","handleChangeOfServiceCheckbox","playbookCreateAccess","showTaskCollapse","setShowTaskCollpase","tableStyle","borderTop","borderBottom","service","defaultChecked","deliverable","renderPlaybookDeliverablesCollapse","PlaybookSummary","onCreatePlaybookClick","createPlaybookBtnLoader","playbookSummaryData","setPlaybookSummaryData","playbookSummaryLoader","setPlaybookSummaryLoader","collapseShowData","setCollapseShowData","setValue","summaryData","customer_playbook_data","getPlaybookSummaryData","isChecked","checkedList","uncheckedList","customerPlaybook","displayMonthData","task_start_date","dataItem","ChangeTaskAssigneeModal","ID","modalId","taskId","afterSubmitAPI","isSubmitApiCall","setIsSubmitApiCall","isDataLoading","setIsDataLoading","setSearchQuery","bbeUsersData","setBbeUsersData","totalCount","setTotalCount","selectedAssignee","setSelectedAssignee","getBBEUsers","getBBEUsersData","eventsBeforeAndAfterApi","updateNewPlaybookTaskAssignee","payloadData","task","assignee_email","payloadData2","onboarding","persist","setTimeout","handleSearch","debounceTimeout","SearchIcon","user_id","PlaybookTaskAssignee","assigneeData","playbookAPICall","isUserAssignedToBP","showChangeTaskAssigneeModal","setShowChangeTaskAssigneeModal","handleChangeTaskAsigneePermission","onboarding_playbook_access","renderTaskAssignee","display","renderGetInitialName","padding","PlaybookChangeStatusModal","changedTaskStatus","showChangeStatusModal","setShowChangeStatusModal","renderProgressLabelClassName","changeStatusLoader","setChangeStatusLoader","saveTaskStatus","newStatus","payloadData1","renderTaskStatusHTML","taskName","prevStatus","newStatusLabel","PlaybookTaskStatus","taskData","noAccess","showChangeStatusDropdown","setShowChangeStatusDropdown","showChangeTaskStatusModal","setShowChangeTaskStatusModal","setChangedTaskStatus","handleChangeStatus","renderChangeStatusDropdown","PlaybookSubTask","subTaskData","renderPlaybookTaskMobileDataHTML","isCurrentMonthTask","subTaskID","subTaskDataObj","sub_task_name","jira_status","jira_id","aria-label","due_date","assignee","maketplace","renderPlaybookSubTaskMobileView","PlaybookTaskCollapse","showSubTaskCollapse","setShowSubTaskCollpase","taskID","taskDataObj","renderPlaybookTaskMobileData","renderPlaybookTaskData","renderPlaybookSubTaskCollapse","renderPlaybookTaskMobileView","PlaybookDeliverableCollapse","deliverableID","deliverable_name","dataValue","tasks","renderDeliverableData","renderPlaybookTaskCollapse","renderPlaybookDeliverableMobileView","PlaybookServicesCollapse","isPlaybookTab","getUTCMonth","serviceID","deliverables","renderServiceData","ServicesPlaybook","playbookId","playbookTaskData","customEndDate","showSummaryPage","setShowSummaryPage","servicePlaybookErrorMsg","renderPlaybookServicesCollapse","deliverable_id","OnboardingPlaybook","onboardingPlaybookData","onboardingPBTaskUpdateID","renderPlaybookDeliverableCollapse","PlaybookServicesTab","singleSelectedMarketplaces","playbookServicesData","setPlaybookServicesData","playbookServicesLoader","setPlaybookServicesLoader","sendForApprovalBtnLoader","setSendForApprovalBtnLoader","selectedServicesForApproval","setSelectedServicesForApproval","isUserHaveAccessOtherServices","getPlaybookServices","getPlaybookServicesData","updatedDate","task_frequency","getListOfTeams","trim","setDisabledClass","classLabel","renderAssignee","onClicksendForApproval","sendForApprovalOfPlaybook","services","every","PlaybookTabDetails","dateType","playbookAPIError","playbookDataLoader","onboardingPlaybookLoader","getOnboardingPlaybook","getPlaybookTaskAndServices","PlaybookContainer","playbookEpicId","playbookTeamsList","playbookServiceList","originalMarketplaceList","playbookAccess","onboardingPlaybookAccess","dynamicMessages","showDynamicMsg","setCreatePlaybookBtnLoader","getAccountType","setPlaybookTab","setSelectedMarketplaces","setSingleSelectedMarteplace","setSelectedTeamMembers","setSelectedService","setAccountType","setOnboardingPlaybookLoader","setPlaybookDataLoader","setServicePlaybookErrorMsg","setOnboardingPlaybookData","setOnboardingPBTaskUpdateID","setPlaybookTaskData","setPlaybookId","setPlaybookAPIError","showCustomMonthModal","setShowCustomMonthModal","newDate","setCustomStartDate","setCustomEndDate","customMonthRange","setCustomMonthRange","setDateType","yesterday","getLastDayOfMonth","pastMonthDate","firstDay","lastDay","past3MonthDate","getChangeTaskStatusId","apiParams","getOnboardingPBTaskUpdateID","bindTaskNameWithDocUrl","hyperlink_text","nameWithLink","bindPlaybookTaskData","tempPlaybookdata","deliverableAssignee","taskAssignee","subTaskAssignee","subTasks","subTask","sub_task_id","task_id","deliverable_task_id","bindServicePlaybookTaskData","serviceAssignee","service_id","service_task_id","accountName","tempMarketplaces","marketplacesString","getPlaybookTaskAndServicesData","customer_playbook_id","tempServicesData","setSelectedtMarketplacesAccordingToActiveTab","createPlaybook","createCustomerPlaybook","reload","handleAccountTypeChangeEvents","handleDropdownChangeEvents","applyDateChangeEvents","handleDateChangeEvents","applyCustomMonthRange","dateFlag","newendDate","lastDayOfEndMonth","tempStartDate","tempEndDate","handleCustomDateRangeEvents","handleCustomMonthRangeEvents","filterCustomStyles","css","overflow","accountTypleFilterCustomStyles","customDropdownFilterSingleValue","customDropdownSingleFilterOption","customDropdownFilterComponents","renderAccountTypeFilter","handleChangeEventsFunction","filterStyle","renderCustomDropdownFilter","renderMarketplacesFilter","handleSingleSelectMarketplaceChangeEvents","renderServiceFilter","handleServiceChangeEvents","renderTeamMembersFilter","playbookTeams","teamMembers","singleFilterOption","filterOption","getTimeFilterSelectComponents","renderCustomDateFilter","setMaxDate","currentD","renderRefreshButton","renderPlaybookTabs","playbookTabsToShow","showRefreshButton","renderPlaybookTabHeaderFilter","playbookDynamicMessage","main_playbook_seller","main_playbook_vendor","onboarding_playbook","displayPlaybookDynamicMessage","currentMonth","renderCustomMonthRangeModal","selectedPlaybookQuarter","quarterMonths","playbookQuarterOptions","MetricsInvoices","returnFromatNumber","renderCard","total_outstanding","total_outstanding_cnt","amount_overdue","amount_overdue_cnt","avg_days_past_due","paid_by_due_date","InvoiceBreakdownModal","showInvoiceModal","setshowInvoiceModal","invoiceDetails","setInvoiceDetails","invoicesData","selectedCurrency","setSelectedCurrency","lineItems","setLineItems","calculateSumOfArrayValues","arrayData","reduce","prev","curr","invoiceTaxes","taxes","totalTaxAmount","subTotal","items","totalDiscount","discount","discounts","monthlyBudget","invoicelineItems","line_items","tempLineItems","service_type","quantity","amount","currency","note","displayNumber","num","getIndexOfInvoiceData","displayInvoiceField","isTextBold","dataId","dataText","dataFor","tooltipData","is_percent","generateTooltipHTML","inset","InvoiceBody","next","invoiced_id","invoice_item_id","amount_paid","amount_refunded","amountPaid","amountRefunded","invoiceBalance","displayInvoiceBalance","renderLineItems","payments","method","renderPaymentDetails","InvoiceAdjust","invoiceInputs","setInvoiceInputs","returnTotalAmount","parseNumber","currencySymbol","totalCurrentBudget","totalNewBudget","GrayTable","input","getSymbolFromCurrency","resultArray","onChangeInput","InvoicePause","invoiceChoices","setInvoiceChoices","inputIndex","textDecoration","OneTimeInvoiceAdjustConfirm","adjustmentData","textClass","InvoiceAdjustConfirm","onBackClick","selectedMonthYear","today","isPermanentAdditional","showError","setShoeError","returnInvoiceBillDate","totalChangeAmount","wordBreak","LeftArrowIcon","ArrowRightIcon","ArrowRightBlackIcon","InvoicePauseConfirm","InvoiceAdjustPauseModal","onModalClose","showConfirmationModal","setShowConfirmationModal","setLoader","setInvoiceType","setViewComponent","monthRange","setMonthRange","setselectedMonthYear","monthsYears","setMonthsYears","setCurrencySymbol","setDspInvoiceNote","getAdjustInvoices","getDSPBudgetAdjustData","global_currency","maxEndDate","max_end_date","getTimezoneOffset","setHours","getHours","totalMonths","returnMonthStart","monthIndex","monthsDropDown","renderToastMessage","onSendDSPBudgetAdjustInvoice","toastMsg","postDSPBudgetAdjustPauseInvoiceData","onSendInvoice","totalAmount","prototype","hasOwnProperty","call","helpCircleIcon","require","InvoiceRequestViewModal","adjustmentDetails","isOneTime","isPauseInvoice","previousMonth","generateAmount","valueFor","from_amount","to_amount","InvoiceAdjustmentList","isAllowToCreateAdjustment","invokeAdjustmentListApi","setAdjustmentDetails","invoiceRequestDataCount","setInvoiceRequestDataCount","invoicesAdjustmentData","setInvoicesAdjustmentData","invoiceAdjustmentLoader","setInvoiceAdjustmentLoader","setIsCancelRequest","showViewInvoiceRequestModal","setShowViewInvoiceRequestModal","showInvoiceCancelRequestModal","setShowInvoiceCancelRequestModal","invoiceCancelRequestDetails","setInvoiceCancelRequestDetails","getAdjustmentData","getInvoiceAdjustmentData","onCancelRequest","requestDetails","setAdjustmentsData","cancelInvoiceRequest","renderDateWithFormat","renderMobileInvoiceRequestList","numberFormat","to_date","selectedColumn","handleMobileViewORCancelRequest","renderTableData","InvoiceAdjustmentsContainer","showInvoiceAdjustmentModal","setShowInvoiceAdjustmentModal","setIsAllowToCreateAdjustment","adjustmentListApi","setAdjustmentListApi","dspButtonLoader","setDSPButtonLoader","getDSPContactInfo","allow_dsp_invoice_creation","apply","InvoiceList","channelInvoiceType","isDSPService","setInvoicesData","pastInvoiceLoader","setPastInvoiceLoader","isApicall","setIsApiCall","invoiceTotalCount","setInvoiceTotalCount","invoiceDataLength","getDSPInvoicesData","getInvoiceData","sentInvoiceType","invoiceMonth","budget_type","next_invoiced_id","monthly_budget","generated_at","payment_link","renderMobileView","pastInvoicetype","renderPastInvoiceTableData","Invoice","onLoading","invoiceMetricsData","setInvoiceMetricsData","getInvoiceMericsData","channelType","getMetricsInvoiceData","BillingContactList","onBoardingId","showContactModal","setShowContactModal","additionContactFormData","setAdditionContactFormData","selectedContact","setSelectedContact","showDeleteModal","setShowDeleteModal","contactForDelete","setContactForDelete","tempContact","uniqueKey","billing_contact","primary_contact","mapContactDetails","isNumericString","generateNumeric","displayBillingContactDetails","billingContacts","primaryContacts","CardOuter","renderContacts","AddContactButton","details","billing_address","contactType","toastTextMessage","saveBillingData","DeleteContent","billing_contact_id","BillingDetails","hasEditPaymentTermsAccess","payment_term_team","showPaymentTermsModal","setShowPaymentTermsModal","paymentTermsData","setPaymentTermsData","paymentTermsOptions","setPaymentTermsOptions","paymentTermsValue","setPaymentTermsValue","showDSPModal","setShowDSPModal","showDSPErrorTostr","setShowDSPErrorTostr","isAllowToEdit","setIsAllowToEdit","renderDspToolTipInfo","billingDetails","getPaymentTerms","getPaymentTermsDetails","getPaymentTermsOptions","renderPaymentTermLabel","mapPaymentTermsDefaultValues","payment_term","dropdownSingleFilterOption","dropdownFilterOption","paymentTerm","handlePaymentTermChange","mapPaymentTermsModalDetails","dsp_contact","saveDSPContact","billingContact","old_billinginfo_id","savePaymentTermsData","savePaymentTerms","opacity","BillingContainer","redirectType","billingDynamicMessage","billing_section_monthly_retainer","billing_section_rev_share","billing_section_upsell","billing_section_dsp","billing_section_amc","billing_section_billing_details","showChannelInvoiceTypeFilter","channelInvoiceTypes","setChannelInvoiceTypes","selectedChannelInvoiceType","setSelectedChannelInvoiceType","handleChannelInvoiceTypeFilterEvents","handleBillingTabClickEvents","displayBillingFilters","am4core","am4themes_dataviz","_","SummaryPerformanceChart","chartId","chartData","selectedDF","chart","sameAxisValue","generateToolTipHTML","tooltipValue","createValueAxis","localValueAxis","yAxes","am4charts","renderer","grid","template","cursorTooltipEnabled","baseGrid","numberFormatter","extraMax","min","bigNumberPrefixes","smallNumberPrefixes","renderTooltip","percent","formatter","bindValueAxisFormatter","paddingRight","logo","dateAxis","xAxes","minGridDistance","labels","dy","periodChangeDateFormats","setKey","gridIntervals","setAll","timeUnit","valueAxis","lineY","lineX","valueAxis2","snapToSeries","firstAxis","currentLabel","colorCode","colorSet","startCase","series","series2","currentValue","previousValue","seriesName","yAxis","opposite","dataFields","valueY","dateX","strokeWidth","stroke","fill","adapter","dateRange","tooltipDataItem","dataContext","circleBullet","bullets","circle","radius","strokeDasharray","previousDate","previousEndDate","square","createChild","horizontalCenter","verticalCenter","valueAxis3","valueAxis4","secondAxis","thirdAxis","line","strokeOpacity","dispose","BreakDown","SummaryPerformanceView","renderCustomDateSubLabel","selectedPeformanceMetrics","setSelectedPeformanceMetrics","handleTimeFrameFilter","showCustomDateModal","setShowCustomDateModal","setCustomDateState","applyCustomDate","handleGroupBy","performanceCurrentTotal","performanceDifference","performancePreviousTotal","performanceGraphLoader","summaryPerformanceGraphData","isMetricsDisabled","isDisabledTimeFrame","setIsDisabledTimeFrame","daysDiff","generateSingleSelectDropdownHTML","isRevenueDropDownOpen","setIsRevenueDropDownOpen","selectedRevenueSubType","setSelectedRevenueSubType","isAdSpendDropDownOpen","setIsAdSpendDropDownOpen","selectedAdSpendSubType","setSelectedAdSpendSubType","useOutsideAlerter","revenueRef","advertisingRef","getSelectComponents","bindValues","isShowCurrencySymbol","setPerformanceMetricsClass","classValue","ad_spend_total","setBoxToggle","omit","returnTooltipMessge","renderRevenueMetrics","metricsName","boxActiveClass","currentTotal","previousTotal","difference","dropdownName","responseKey","localSelectedSubType","pickBy","identity","dspCurrentTotal","revenue_dsp","dspPreviousTotal","revenue_ppc","firstSelectedMetrics","localMetrics","otherMetrics","intersectionWith","isEqual","setRevenueMetricsToggle","display_sales_performance","localSelectedSubype","drop","onHandleRevenueSubType","renderAdSpendMetrics","dsp_spends","sponsored_ad_spend","setAdSpendMetricsToggle","display_ad_performance","onHandleAdSpendeSubType","renderPeformanceMetrics","displayMetricsName","units_sold","dataForMetric","localDateOptionsWithYear","updatedOption","diff","renderFilterDropDown","selection","utlPercent","maxShip","maxShipPercent","openShip","openShipPercent","onhandPercent","SummaryRestockLimits","restockData","restockLoader","storage","utilization_change","max_shipment_change","open_shipment_change","on_hand_change","renderInventoryData","RestockMobileView","constructor","InventoryMetrics","metricsData","display_inventory_management","display_under_over_stocked_inventory","aria-hidden","SummaryInventoryView","selectedCustomDateState","setSelectedCustomDateState","setSelectedTimeFrame","setMetricsData","isCustomDateApply","setIsCustomDateApply","setRestockLoader","asinLoader","setAsinLoader","setRestockData","getASINMetricsData","getSummaryASIN","getRestockLimitsDataLocal","InventoryScoreGraph","pieData","createInventoryScoreGraph","resizable","hiddenState","properties","innerRadius","startAngle","endAngle","pieSeries","alignLabels","slices","ticks","states","getKey","shiftRadius","scale","PieChartDiv","am4themes_animated","InventoryScore","SummaryInventoryScoreGraph","latest_date","PositiveFeedback","displaySellerHealth","feedback_30","feedback_365","OrderIssuesCard","order_defect_fba","policy_issues","SummaryInvoicesCard","isSuperAdmin","SummarySellerHealthView","invScore","setInvScore","feeback","setFeeback","setInvoiceData","onGetSummaryInvoices","getSummaryInvoice","onGetSummaryHealthData","getSummarySellerPerformance","pf_oi_is","lastUpdated","ipiValue","inventory_performance_index","InventoryScoreCard","PositiveFeedbackCard","initialDisabledMetrics","SummaryViewContainer","isThirdPartyBrand","is_third_party_potential_brand","hidePerformanceSection","responseId","setResponseId","setCustomDate","setSummaryPerformanceGraphData","setGroupBy","marketplaceOptions","setMarketplaceOptions","setPerformanceCurrentTotal","setPerformancePreviousTotal","setPerformanceDifference","setPerformanceGraphLoader","setIsMetricsDisabled","isAppliedCustom","setIsAppliedCustom","selectedMarketplaceOption","setSelectedMarketplaceOption","summaryMinDate","setSummaryMinDate","minDateLoader","setMinDateLoader","getMinDate","sales_performance_date","bindPerformanceResponseData","nextReportDate","indexTemp","graphDataArray","dateParam","reportDateTemp","reportDateResultTemp","getOneDayBack","report_date","dates","revenueTotalPrevious","revenueOrganicPrevious","revenue_organic","revenuePpcPrevious","revenueDspPrevious","sponsoredAdSpendPrevious","dspSpendPrevious","adSpendTotalPrevious","unitsSoldPrevious","trafficPrevious","conversionPrevious","revenueTotalPreviousLabel","revenueOrganicPreviousLabel","revenuePpcPreviousLabel","revenueDspPreviousLabel","sponsoredAdSpendPreviousLabel","dspSpendPreviousLabel","adSpendTotalPreviousLabel","unitsSoldPreviousLabel","trafficPreviousLabel","conversionPreviousLabel","currentReportDate","indexNumber","revenueTotalCurrent","revenueOrganicCurrent","revenuePpcCurrent","revenueDspCurrent","sponsoredAdSpendCurrent","dspSpendCurrent","adSpendTotalCurrent","unitsSoldCurrent","trafficCurrent","conversionCurrent","revenueTotalCurrentLabel","revenueOrganicCurrentLabel","revenuePpcCurrentLabel","revenueDspCurrentLabel","sponsoredAdSpendCurrentLabel","dspSpendCurrentLabel","adSpendTotalCurrentLabel","unitsSoldCurrentLabel","trafficCurrentLabel","conversionCurrentLabel","revenueTotalDashLength","revenueOrganicDashLength","revenuePpcDashLength","revenueDspDashLength","sponsoredAdSpendDashLength","dspSpendDashLength","adSpendTotalDashLength","unitsSoldDashLength","trafficDashLength","conversionDashLength","localMetricDisabled","current_sum","previous_sum","is_active_dspagreement","getPerformanceData","selectedDailyFact","selectedGroupBy","performanceGraphData","difference_data","marketPlaceList","country_currency","initialMarketplace","checkDifferenceBetweenDates","flag","sd","ed","handleMarketplaceOptions","getSelectDropdownIndicator","daysDiffForSummary","groupByOption","isApliedCustom","ChangeAssigneeModal","handleAddAssignee","designerRoleGroupId","customerMembers","getDesignerMemberList","AddAssignee","isEditFlagOn","showChangeCOSAssigneeModal","setShowChangeCOSAssigneeModal","renderCOSAssignee","selectedMember","COSMobileView","cosData","asinsList","stickyColumns","tableColumns","displayInputBox","displayValues","selectedViewType","cosAccessOfBP","displayDownloadBtn","isSingleMonthSelected","displayAddNewRowBtn","viewMoreDetailsFlag","setViewMoreDetailsFlag","totalColumns","cos","cosIndex","displayTableData","DeleteConfirmationModal","handleDeleteSelection","selectedCosId","GoalsNav","DesktopStickyTable","TableWrapper","GoalsStyle","BorderLessField","AsinStatus","COSAsins","COSTable","setAsinsList","setError","setNewRowFlag","getAsinCountData","downloadLoader","setDownloadLoader","showDeleteConfirmationModal","setShowDeleteconfirmationModal","downloadUrl","setDownloadUrl","viewFor","showStatusDropdown","setShowStatusDropdown","flat","handleDownloadBtn","createElement","downloadCosReport","click","asinData","applyClassNameOfStatus","applyStatusIcons","iconName","onCancelOfAddNewRow","selectedDeleteCosId","filterListofCOSWithIds","deleteCos","deleteCOS","handleRadioBtn","statusOption","placeholderText","clearIcon","dayPlaceholder","monthPlaceholder","yearPlaceholder","formattedDate","handleDateChange","onKeyDown","handleInputChange","handleError","calculateHeight","getBoundingClientRect","displayValuesForTextInput","tableType","displayStickyEditableTable","displayEditableTable","displayStickyNonEditableTable","displayNonEditableTable","displayTableHeaders","InfoIcons","calculateHeaderHeight","tableLayout","COSMonthPicker","customMonth","setCustomMonth","setAppliedDate","showCustomMonthRangeModal","setShowCustomMonthRangeModal","singleFilterValue","onMonthChange","handleDateFilterEvents","CreativeOptimizationScheduleContainer","clickOnRefreshBtnFlag","setClickOnRefreshBtn","cosDynamicMessage","forecast_cos","useParams","cosLoader","setCOSLoader","setCOSAccessOfBP","setCOSResponse","total_asin","total_contractual_asin","totalAsinsCount","setTotalAsinsCountData","setSelectedViewType","setEditFlag","newRowFlag","defaultDate","autoScrollToElement","elId","scrollIntoView","getTotalAsinsCount","getCOSData","getCOS","getBPsCOSAccess","handleViewTypeFilterEvents","saveCOS","updateCOS","checkIfAllRowsHaveData","pointerEvents","COSContainer","GoalMobileView","editedGoalsData","marketplaceCollapse","changeCollapseFlag","newGoalsData","isEditGoals","displayAddNewGoalBtn","displaySaveAndCancelBtn","marketplaceForNewGoal","showAddNewGoalRow","displayGoalMilestoneLabel","displayGoalValueAndInputbox","displayMarketplaceCollapseIcon","milestoneId","viewMoreDetailsCount","setViewMoreDetailsCount","showMonthValues","milestones","monthData","milestone","displayMilestones","isCollapseOpened","collapse","isOpened","tabIndex","displayGoalMarketplaceCollapseHead","newGoal","Goals","goalsType","setEditedGoalsData","updateGoals","setNewGoalsData","deleteAddedGoal","isNewGoalAdded","setIsNewGoalAdded","setMarketplaceCollapse","setMarketplaceforNewGoal","isHavingPpc","having_contract_type","is_having_ppc","isHavingDsp","is_having_dsp","monthLength","cellTHWidth","cellWidth","handleNewGoalInput","newlyAddedGoalIndex","data_type","editedValue","listOfNewlyAddedGoalOfMarketplce","goalsExceptUpdatedGoal","finalGoalsData","goal_name","goalFromEditedGoalList","goalsData","milestonesToBeUpdated","milestonesIndex","milestonesData","milestoneData","parentMilestone","tacosMilestonesToBeUpdated","tacosMilestonesIndex","overallSalesMilestoneList","ppcAdMilestoneList","dspAdMilestoneList","overallSalesValue","ppcAdBudgetValue","dspAdBudgetValue","totalAdValue","tacosMilestoneList","tacosValue","updatedGoalObject","editedGoalIndex","editedListGoal","listtt","updatedMilestoneList","newlAddedMilestone","milestoneIndex","block","changedCollapseItem","collapseItem","updatedList","displayTooltipIcon","displayTooltipData","checkGoalInputValiadation","showNumberInputboxForNewGoals","dataType","decimalSeparator","handleGoalNameChange","updatedGoal","monthYearValue","goalName","milestoneNameString","isTextData","isTacos","isZeroNotAllowed","showNumberInputbox","goalValue","setDefaultMilestoneToNewGoal","originalGoalMilestone","renderNewGoalsDataTypeHTML","newlyAddedGoalsIndex","inputId","inputName","marketplaceID","handleNewGoalsDataTypeChangeEvents","saveNewGoal","newGoalsMarketplaceKeys","finalDataOfNewlyaddedGoal","goalsWithGoalName","newItem","updatedData","newlyAddedGoalsMilestones","originalGoal","originalGoalsMilestones","goalFromNewList","finalListOfMilestones","onCancelOfAddNewGoal","enableForClickedMarketplace","lastSequenceOfGoal","sequence","lengthOfNewGoalOFMarketplace","patchData","onClickAddNewGoal","colSpan","goalLabel","newGoalName","displayNewLable","displayMilestoneLabelTooltip","displayMarketplaceCollpaseBody","borderCollapse","showGoalsValuebyMonthNames","displayGoalsTable","contract_account_type","displayMarketplaceCollpaseHead","MarketplaceDropdown","isMarketplaceDropdownOpen","setIsMarketplaceDropdownOpen","isPPC","isDspOnlyBP","GoalFilterMarketPlace","uniqueId","GoalsAndStrategyFilters","newGoalsDataLength","editedGoalsDataLength","handleAccountTypeOnChange","handleOnChangeOfMarketplaces","isCustomMonthApply","setEditGoals","getAccountTypeDropdDownComponents","setSelectedAccountType","GoalsAndStrategyContainer","downloadReportLoader","goalsAccountTypeFlag","setIsDataAvailable","setDownloadReportLoader","goalsStartDate","goalsEndDate","goalsHybridMessage","forecast_hybrid","goalsSellerMessage","forecast_seller","goalsVendorMessage","forecast_vendor","sellerMarketplaceCollapse","setSellerMarketplaceCollapse","shippedCOGsMarketplaceCollapse","setShippedCOGsMarketplaceCollapse","orderedRevenueMarketplaceCollapse","setOrderedRevenueMarketplaceCollapse","isPrimaryMarketplaceSame","setIsPrimaryMarketplaceSame","isEditSellerGoals","setIsEditSellerGoals","isEditOrderedRevenueGoals","setIsEditOrderedRevenueGoals","isEditShippedCOGsGoals","setIsEditShippedCOGsGoals","marketplaceForSellerNewGoal","setMarketplaceForSellerNewGoal","marketplaceForOrderedRevenuNewGoal","setMarketplaceForOrderedRevenueNewGoal","marketplaceForShippedCOGsNewGoal","setMarketplaceForShippedCOGsNewGoal","goalLoader","setGoalLoader","goalsActivityLoader","setGoalsActivityLoader","editedSellerGoalsData","setEditedSellerGoalsData","editedShippedCOGsGoalsData","setEditedShippedCOGsGoalsData","editedOrderedRevenueGoalsData","setEditedOrderedRevenueGoalsData","sellerNewGoalsData","setSellerNewGoalsData","orderedRevenueNewGoalsData","setOrderedRevenueNewGoalsData","shippedCOGsNewGoalsData","setShippedCOGsNewGoalsData","setDropdownLabel","showMonthLimitMsg","setShowMonthLimitMsg","setIsCustomMonthApply","customMonthNames","setCustomMonthNames","accountTypeFilterOptions","setAccountTypeFilterOptions","hasSellerGoals","hybrid","hasVendorGoals","hasHybridGoals","InitialGoalsAccountType","BPsListToHideOrderedRevenue","hideOrderedRevenue","selectedVendorSubTab","setSelectedVendorSubTab","useMemo","contractStartDate","setContractstartDate","setCurrentMonth","goalsDataLoader","setGoalsDataLoader","bindCustomDateFilterData","startMonthDiff","endMonthDiff","tempMonthNames","minMonthLimit","maxMonthLimit","pastMonth","todaysMonth","newDate1","futureMonth","lastMonthElement","todayDate","todayMonth","todaysYear","sellerMarketplaces","vendorMarketplaces","bindAccountTypeFilterOptions","sellerFlag","vendorFlag","hybridFlag","tempOptions","generateMonthNames","timezoneOffset","milestoneDate","getMarketPlace","finalMarketplaces","isPrimary","sellerPrimaryMarketplace","vendorPrimaryMarketplace","getGoalsOfBP","sameMarketplaceFlag","sellerGoals","orderedRevenueGoals","vendor_sub_type","shippedCogsGoals","setMarketplaceLabel","downloadGoalsReport","getGoalsReport","csvLink","deleteGoal","saveGoalsData","updatedGoalsData","updateGoal","newEndDate","updatedEndMonth","updateGoalsData","updateNewGoalsData","updatedGoals","displayGoalsDashboard","displayGoalsSellerDashboard","displayVendorGoalsTab","displayOrderedRevenueDashboard","displayShippedCOGsDashboard","displayGoalsFilters","setDefaultDate","renderGoalsMonthRangeModals","GoalsAndCosContainer","isDataAvailable","datacy","SyncButton","CustomerFeedbackDetails","selectedFeedbackForm","surveyType","surveyData","setSurveyData","question","answer","ratings","feedback","questions","sent_on","completed_on","answers","ans","row_id","other_id","row_text","CustomerFeedbackList","emailRegex","isExtraLargeDesktop","showDetailedFeedback","setShowDetailedFeedback","setSelectedFeedbackForm","onboadingsurveyData","setOnboardingSurveyData","surveyCount","setSurveyCount","current_info","next_all_info","changeEmailRecipientData","setChangeEmailRecipientData","uniqueRecipients","setUniqueRecipients","flagsForModal","setFlagsForModal","modalConfig","setModalConfig","isAllowToEditOrSkipSurvey","setIsAllowToEditOrSkipSurvey","checkUserPermission","getOnboardingSurveyData","getSurveyData","getMonkeySurveyData","survey","recipient_details","survey_responses","qa","survey_name","recipient_email","recipient_first_name","recipient_last_name","skipSurvey","updateMonkeySurveyData","modalFor","updateRecipient","updateRecipientOfCustomerFeedback","sendReminderOfContract","sendReminderOfCustomerFeedback","object_id","displayAddNewContactForm","test","recipient","addNewContactFlag","returnRecipientDetails","clearAllFilters","checkConditionForEmailChangeConfirmBtn","succeeding_email","isSendReminderBtnEnabled","myDate","displayTable","tableData","displayTableContent","renderSendReminderModal","EmailIcon","handleEmailRecipientRadioBtn","recipientData","renderEditRecipientModal","PastAgreement","showPastAgreements","setShowPastAgreements","agreements","ExternalLink","contract_url","OrangeDownloadPdf","AgreementDetailTabMobView","agreementDetailsCollapse","setAgreementDetailsCollapse","toggleAccountType","showActionDropdown","generateBasicInfo","getPauseHTML","generateCardHTML","generateDSPAdvHTML","displayOptimization","displayStdServices","displayMonthlyServices","displayNonUSServices","checkTheCount","displayOneTimeServices","displayAddendumStatus","handleOnAgreementStatusClick","getAgreementName","displayContactSignLinkValidity","displayContractExpiryCountdown","agreement","marketplaceArray","dsp_marketplaces","additional_marketplaces","DisabledRecurring","DspOnlyIcon","RecurringIcon","in_collections","blue","out_of_contract","BrokenFile","seller_type","is_renewed","renewed_date","pause_contract","fee_structure","fee_type","additional_monthly_services","standard_us_services","standard_non_us_services","additional_one_time_services","AgreementDetailOuterContainer","ShowCurrencySymbol","PendingAgreementModal","selectedAgreement","isCancellationRquest","invoiceTypeLabel","cancellationBillingData","is_off_boarded","checkServiceDate","pop","cancelling_note","invoice_amount","renderCancellationRequestModal","overflowX","overflowY","invoiceTypeData","dataTip","insecure","displayTooltipWithInfoIcon","is_pause","lastInvoiceData","firstInvoiceData","invoiceAmountData","setDropdownOptions","handleContractOptions","showContractSignatureLinkIcon","displayRemainingDaysOfContractSign","showMoreCount","setShowMoreCount","setMarketplacesList","getCurrentMonth","displayMarketplacesName","vat","content_optimization","design_optimization","photography_optimization","copy_listing_translation","creative_listing_translation","counter","amc_services","to","FileContract","draft_from","active_contract","displayQuarterMonth","feeDetails","getQuarterMonthData","quarterly_monthly_retainer","quarterly_rev_share","monthly_monthly_retainer","monthly_rev_share","checkQuarterMonthType","showDSPMarketplace","dspMarketplaces","displayAdBudget","getAdBudgetData","monthly_budget_date","monthly_budget_second_date","monthly_budget_third_date","showDynamicDspMonthlyAdBudget","multiline","is_dynamic_dsp_fee","feeType","cardArray","isCombinedRevShare","checkMonthQuarterCondition","displayType","combined_rev_share","OrangeInfoIcon","threshold_type","qtrRange","showFirstValue","contractAddendum","addendum_signed_date","isAddendum","contract_signature_details","addendum_signature_details","contract_signature_url","addendum_signature_url","created_date","expiration_days","checkValueofArray","nonUSService","formatAmazonStorefront","storeFrontHome","storeFrontTab","storeFrontSubTab","formatAContent","serviceName","similar","original","premiumOriginal","premiumVariation","checkAmazonStoreFront","checkWalmartStoreFront","checkInfographics","checkAContent","checkEnhancedContent","infoOriginal","infoVariation","formatInforgraphics","agreementStatus","suspend_contract","displayAgreementName","out_of_contract_date","is_dsp_advertising","displayAdvertisingServices","OneTimeAgreementCompletionDateComfirmationModal","updateAgreement","saveCompletionDateLoader","getAccountDetails","latest","customerAccountRequestFail","OneTimeAgreement","accountState","editCompletionDate","setEditCompletionDate","showCompletionDateModal","setShowCompletionDateModal","saveCompletionDate","setSaveCompletionDate","setSaveCompletionDateLoader","allowedToComplete","allowed_to_completed_ontime_fe","signedDate","ServiceIcon","contract_signed_date","agreementId","showEditView","AgreementPauseModal","isBgs","isBgsManager","saveDetails","bgsManagerEmail","addBGSMangerEmail","modalContentRef","modalContentHeight","setModalContentHeight","bgsManagerCheck","setBgsManagerCheck","isDisabledRetainerEditOption","setIsDisabledRetainerEditOption","isAllowToEditRetainer","setIsAllowToEditRetainer","isAlreadyPaused","setIsAlreadyPaused","isRequestPending","setIsRequestPending","showPendingPauseRequestModal","setShowPendingPauseRequestModal","agreementData","setAgreementData","largerAmountErrorRetainer","setLargerAmountErrorRetainer","pauseModalStep","setPauseModalStep","setMonthlyRetainerAmount","startAmount","endAmount","dspAmount","setDspAmount","selectedPendingPauseRequestOption","setSelectedPendingPauseRequestOption","retainerDates","nullDateObj","initialPasueDate","pauseDateDetails","setPauseDateDetails","pendingPauseRequestData","setPendingPauseRequestData","updateContentHeight","clientHeight","observer","MutationObserver","mutationsList","mutation","observe","childList","subtree","disconnect","getPendingPauseRequestData","suspendContractId","tempInvoiceData","invoiceObj","isPause","bindInvoiceDataOfAgreement","invoiceAmount","isToDateDisabled","bindAgreementDataResponse","resData","dummyAgreementData","contract_start_date","suspend_contract_id","dateObj","tempContractStartDate","getPauseAgreementData","getDspAmounts","start_date_amount","end_date_amount","agreementPauseRequest","bindFinalInvoiceData","finalInvoiceObj","bindPauseRequest","finalRequestData","setMinDate","selectedFromDate","tempDate","filterRetainerAndAmcBillingDate","filterRevShareBillingDate","filterDSPBillingDate","checkButtonValidation","displayDiscardButton","getTooltipDataTip","displayInvoiceDatesHeaderHTML","displayInvoiceLabelWithTooltip","showPastDateMessage","getDatePickerforInvoices","filterDate","selectedToDate","previousMonthAriaLabel","renderAgreementDatesModal","getInvoiceLabelWithTooltipHTML","isFromDateDisabled","displayInputDatePickerDropdownForInvoice","renderAgreementAmountsModal","displayInvoiveAmount","displayIconForInvoice","iconLink","actualAmount","handleAmountChange","OrangeCheckMark","EditExternalLinkOrange","renderMonthlyRetainerAmountDetails","renderRavShareAmountDetails","renderDSPAmountDetails","renderAmcServiceAmountDetails","AddChildAgreementModal","setShowAgreementModal","clearErrors","selectedAgreements","setSelectedAgreements","childBrand","agreementDetails","createAgreement","newCustomerId","child_account","agreementRes","createCustomer","rules","render","generateNewBpHTML","OtherModals","showOnBoardingSuccessMsg","saveFeedback","saveCustomerFeedback","AccountSetupIcon","FeedbackContainer","resize","EditorComponent","inputLength","remainingLength","EditorToll","Notes","setNewNoteEditor","showNewNoteEditor","showNotesModal","customerName","noteContent","setNoteContent","showDelete","setShowDelete","showDropdown","setShowDropdown","setFilter","showNotesEditor","selectedNote","deleteNote","showEditor","showFilterDropdown","getData","debouncedSave","debounce","nextValue","renderEditor","postData","saveNote","onDeleteNote","showDeleteConfirmation","onUpdateNote","dataToPost","is_archieved","displayUserInfo","userData","renderArchiveHtml","isArchieved","renderPinnHtml","isPinned","is_pinned","handleFilters","my_notes","newList","OrangeChat","displayTooltip","teamFilter","noteType","note_type","insertShowMoreProp","created_at","onEditClick","hs_note_id","RedTrashIcon","PinIcons","displayNotes","NotesModal","AddTeamMember","getCustomerMemberList","showMemberList","setAgreementDetailModal","setShowCloseBtn","setCount","clear","filterDetails","userRoleId","setUserRoleId","disabledRoles","setdisabledRoles","getMembers","requestApproval","checkDisable","searchList","roleName","remove","removeRole","handleRoles","members","showAgreementModal","saveNewMember","TeamMembers","currentMembers","setLoading","buttonLoader","setButtonLoader","assignedMembers","setAssignedMembers","showCureentTeam","setShowCureentTeam","selectedRole","setSelectedRole","unassignedMembers","setUnassignedMembers","newMembers","setNewMembers","displayTeamMembers","member","membersAfterRemove","oldMember","tempMembers","removeTeamMember","showUnassignedMembers","newMembersData","saveTeamChanges","newlyAssigned","addNewMembers","TeamMemberModal","nextNemmber","memberIndex","nextMemberIndex","CustomerStatus","setStartDate","setSelectedAgreement","selectedInvoiceIssueOptions","setSelectedInvoiceIssueOptions","contractLoader","setContractLoader","multipleActiveAgreement","setMultipleActiveAgreement","getContractList","getcontractForIncollections","RightArrowIcon","saveStatus","CustomerStatusModal","statusModal","AddNewContractModal","showAddContractModal","setShowAddContractModal","typeOfNewAgreement","existingContracts","confirmContract","OrangeFieldSet","CheckBoxContract","AgreementCancelModal","agreementCount","isDisabledEdit","setIsDisabledEdit","cancelDateDetails","setCancelDateDetails","amcInvoiceAmount","setAmcInvoiceAmount","largerAmountError","setLargerAmountError","spanMonthError","setSpanMonthError","is_ending_early","last_service_date","offBordedAnswers","setOffBordedAnswers","isRetainerInvoiceHasFutureDate","setIsRetainerInvoiceHasFutureDate","isDspInvoiceHasFutureDate","setIsDspInvoiceHasFutureDate","isAmcInvoiceHasFutureDate","setIsAmcInvoiceHasFutureDate","requestDate","invoiceDayOfMonthlyRetainer","invoiceDayOfAmc","originalLastBillDate","getCancelAgreementData","renewdDate","outOfcontractDate","endDateOfContractFirstTerm","endDateOfContractSecondTerm","contractRenewedDate","isAgreementFirstTerm","isAgreementSecondTerm","isAgreementThirdTerm","agreementCancelRequest","bindCancelRequest","revisedInvoiceAmount","isEndingEarly","lastServiceDate","invoiceDate","dayOfInvoiceDate","monthOfLastServiceDate","yearOfLastServiceDate","dayOfLastServiceDate","expectedInvoiceDate","isSameInvoiceDate","calculateInvoiceAmount","spanMonthValidation","selectedDateDetails","retainerDate","revShareDate","dspDate","amcDate","set","isRetainerAndAMCBillingDate","dayOfLastBillDate","isRevShareBillingDate","isDSPBillingDate","compareAndSetDates","monthlyRetainerselectedDate","cloneDeep","dspSelectedDate","revShareSelectedDate","amcSelectedDate","amcInvoiceData","amcLastBillDate","getInvoiceDay","isInvoiceHasFutureDate","lastDate","getDefaultSelectedDateForInvoices","invoiceDay","monthLimit","getCurrentYear","getMaxDateForInvoices","getFutureMonths","getMinDateForInvoices","getMinDateLimitForLastServiceDate","tempMinDate","getMaxDateLimitForLastServiceDate","tempMaxDate","displayInvoiceStaticMessages","invoiceMessage","displayInvoiceTypeWithDates","invoiceTypeKey","invoiceLastDate","cancelDate","displayInvoiceWithAmount","renderRadioButtonsForCancelModal","radioName","radio","radioValue","lastServiceDateOfDsp","y","m","handleChangeRadioButtons","displayDatePickerForLastserviceDate","monthlyRetainerSelectedDate","isRetainerHasFutureDate","isDspHasFutureDate","isAmcHasFutureDate","handleLastServiceDate","backStepButton","pauseModalStepNumber","renderCancelAgreementReason","renderAgreementServicesAmount","isEmpty","AgreementDetailContainer","agreementMessage","recurring_agreements","one_time_agreements","setBgsManagerEmail","setTypeOfNewAgreement","setExistingContracts","replaceExisting","setReplaceExisting","replacedContract","setReplacedContract","isAllowToCancelAgreement","setIsAllowToCancelAgreement","cancelAgreementAccess","setCancelAgreementAccess","setIsBgsManager","setShowContractSignatureLinkIcon","tempContractOptions","setTempContractOptions","tempContractOptionsPendingPause","setTempContractOptionsPendingPause","tempContractOptionsWithoutPauseCancel","setTempContractOptionsWithoutPauseCancel","setIsBgs","finalRequestApprovalUser","firstRequestApprovalUser","checkPermission","checkCancelAgreementPermission","checkContractSignatureLinkAccess","filterAddendumOptions","setOptions","showAddendumOption","createNewContract","firstModal","contractAddendumId","deleteContractAddendum","deleteContract","agency_fee","contractSignatureDetails","signLink","remainingDays","signLinkCreatedDate","expirationDays","signLinkExpiryDate","remainingTime","floor","ClockIcon","isContractInactive","daysRemaining","diffTime","ceil","countDays","AddNewAgreementDropdown","filteredContracts","notActiveAddendum","is_approved","pause_length","ArrowIcons","checkActiveRenewedAgreementCount","pauseApproval","AdPerformanceFilters","dspPpcFlag","childBrandOptions","selectedChildBrand","setSelectedChildBrand","displayAccountTypeFilter","DropDowns","AdPerformanceChart","currencyAxisValue","axisColor","zoomOutButton","propertyFields","useValueWithChangeAndPercent","changeInValue","changeInPercent","isCustom","showPrefix","showSuffix","showValue","showChangeInValue","showChangeInPercent","changeType","upDownArrowHTML","UpDowGrayArrow","formatedMetricsValue","splitedValue","decimalValue","formattedChangeInValue","spliitedChangeInValue","formattedChangeInPercent","SponsoredAsinPerformance","isCallSPAsinApi","asinPerformanceLoader","adState","setIsCallSPAsinApi","setAsinPerformanceLoader","displayProductNameWithTooltip","displaySponsoredAsinTable","bindSpAsinPerformanceData","setOrderBy","setOrderByKey","pageCount","setPageCount","fieldsetCollapse","setFieldsetCollapse","sponsoredAsinData","setSponsoredAsinData","asinMessage","setAsinMessage","getAsinPerformanceData","startDateLocal","endDateLocal","fourMonthBeforeToday","handleDownloadReportEvents","spAdType","handlePaginationEvents","displaySortableUpDownArrow","DisplayAsinPerformnaceTable","tableCols","handleSortingEvents","displayAsinPerformanceMobileView","openCollapse","productName","pdpLink","adSpendCurrent","adSpendChangeInValue","adSpendChangeInPercent","adSalesCurrent","adSalesChangeInValue","adSalesChangeInPercent","acosCurrent","acosChangeInValue","acosChangeInPercent","roasCurrent","roasChangeInValue","roasChangeInPercent","ctrCurrent","ctrChangeInValue","ctrChangeInPercent","adConversionCurrent","adConversionChangeInValue","adConversionChangeInPercent","costPerClickCurrent","costPerClickChangeInValue","costPerClickChangeInPercent","salesPerClickCurrent","salesPerClickChangeInValue","salesPerClickChangeInPercent","clicksCurrent","clicksChangeInValue","clicksChangeInPercent","impressionsCurrent","impressionsChangeInValue","impressionsChangeInPercent","SponsoredCampaignReport","campaignDataLoader","campaignAsinDataLoader","selectedCampaignSortBy","setCampaignDataLoader","setIsAsinDataAvailable","setCampaignAsinDataLoader","asinPageCount","setAsinPageCount","asinPageNumber","setAsinPageNumber","spCampaignCollapseData","setSpCampaignCollapseData","campaignAsinData","campaignAsinTotal","spCampaignAsinData","setSpCampaignAsinData","selectedCampaignCollapse","setSelectedCampaignCollapse","bindSpCampaignAsinTotal","tempCampaignAsinTotal","adSpendCurrentTotal","ad_spend","adSalesCurrentTotal","ad_sales","acosCurrentTotal","roasCurrentTotal","ctrCurrentTotal","ctr","adConversionCurrentTotal","ad_conversion","clicksCurrentTotal","costPerClickCurrentTotal","cost_per_click","salesPerClickCurrentTotal","sales_per_click","impressionsCurrentTotal","adSpendChangeInValueTotal","adSalesChangeInValueTotal","acosChangeInValueTotal","roasChangeInValueTotal","ctrChangeInValueTotal","adConversionChangeInValueTotal","clicksChangeInValueTotal","costPerClickChangeInValueTotal","salesPerClickChangeInValueTotal","impressionsChangeInValueTotal","adSpendChangeInPercentTotal","per_change","adSalesChangeInPercentTotal","acosChangeInPercentTotal","roasChangeInPercentTotal","ctrChangeInPercentTotal","adConversionChangeInPercentTotal","clicksChangeInPercentTotal","costPerClickChangeInPercentTotal","salesPerClickChangeInPercentTotal","impressionsChangeInPercentTotal","getSponsoredCampaignAsinData","getSponsoredAdCampaignAsinData","adsReportType","bindSponsoredCampaignData","tempCampaignData","campaignName","campaign_name","asiCount","dataIndex","getSponsoredCampaignCollapseData","getSponsoredAdCampaignData","formattedResponseData","getSpAdCampaignDownloadReport","handleAsinPaginationEvents","displayPageLoader","displayStaticAsinMessageInsideTable","tableDivId","offsetWidth","asinTotal","handleCampaignCollapseEvents","displaySpCampaignCollapsePanel","SpCampaignAsinFilters","isAsinDataAvailable","selectedAsinToggle","displayReactTooltip","setCampaignSearchQuery","handleCampaignSearchEvents","handleCampaignAsinToggleEvents","handleCampaignStatusChangeEvents","spAsinMessage","sponsored_performance_seller_asin","sponsored_performance_vendor_asin","spCampaignMessage","sponsored_performance_seller_campaign","sponsored_performance_vendor_campaign","oneOctober2023","getDropdDownComponents","displayDownloadReportButton","displayStaticAsinMessage","onKeyPress","SpAsinAndCampaignContainer","setSelectedCampaignSortBy","setSelectedAsinToggle","tempAsinData","product_name","pdp_link","percentageNtbOrdersCurrent","ntb_orders_percent","percentageNtbSalesCurrent","ntb_sales_percent","ntbOrdersCurrent","ntb_orders","ntbSalesCurrent","ntb_sales","percentageNtbOrdersChangeInValue","percentageNtbSalesChangeInValue","ntbOrdersChangeInValue","ntbSalesChangeInValue","percentageNtbOrdersChangeInPercent","percentageNtbSalesChangeInPercent","ntbOrdersChangeInPercent","ntbSalesChangeInPercent","SponsoredAdPerformanceGoalsChart","goalsLabel","goalsValue","tooltipHTML","has","DifferenceAdMetric","isInteger","SponsoredAdMetrics","selectedAdMetrics","setSelectedAdMetrics","adCurrentTotal","addThousandComma","adPreviousTotal","adDifference","sponsoredGoalsMetricData","sponsoredGoalsToggle","sponsoredAdMultiSelected","currencySign","toogleMetrics","toggleCPCandSPCMetrics","returnDisbaledClass","setBoxClasses","selectedClass","metricsIndex","onToggleMetrics","handleCPCandSPCToggleEvents","displayGoalsInfoOnCardMetrics","sign","displayMetricsValue","metricsValue","displayAcosAndRoasToggleMetrics","displayCPCandSPCToggleMetrics","metricsNameKey","classNameKey","differenceValue","hasGoalsToggle","displayMetricsBoxHTML","SponsoredPerformanceContainer","setSelectedAdBox","selectedAdBox","adGraphLoader","adChartData","selectedAdDF","adGroupBy","handleAdGroupBy","handleAdType","selectedAdType","getAdTypesSelectComponents","customDateError","subViewComponent","handleAdDailyFact","currentDateForSponsored","setSponsoredGoalsToggle","sponsoredAdGoalChartData","renderDataAvailableChildList","setSponsoredAdMultiSelected","handledSponsoredMetricsOnMenuClose","dashboardDynamicError","sponsoredDynamicErrorMessage","sellerPlaceholder","sponsored_performance_seller","vendorPlaceholder","sponsored_performance_vendor","localAdType","getAdTypeOptions","o","renderSponsoredFilters","isAdSpend","isAdCos","handleSponsoredGoalsToggleEvents","showGoalsToggle","renderErrorMessage","previousClassName","renderAdGroupBy","BindSponsoredAdGraphData","revised_date","adSalesPrevious","adSpendPrevious","adConversionPrevious","ad_conversion_rate","impressionsPrevious","adCosPrevious","adRoasPrevious","adClicksPrevious","adClickRatePrevious","costPerClickPrevious","salesPerClickPrevious","percentageNtbOrdersPrevious","percentageNtbSalesPrevious","ntbOrdersPrevious","ntbSalesPrevious","adSalesPreviousLabel","adSpendPreviousLabel","adConversionPreviousLabel","impressionsPreviousLabel","adCosPreviousLabel","adRoasPreviousLabel","adClicksPreviousLabel","adClickRatePreviousLabel","costPerClickPreviousLabel","salesPerClickPreviousLabel","percentageNtbOrdersPreviousLabel","percentageNtbSalesPreviousLabel","ntbOrdersPreviousLabel","ntbSalesPreviousLabel","adCosCurrent","adRoasCurrent","adClicksCurrent","adClickRateCurrent","adSalesCurrentLabel","adSpendCurrentLabel","adConversionCurrentLabel","impressionsCurrentLabel","adCosCurrentLabel","adRoasCurrentLabel","adClicksCurrentLabel","adClickRateCurrentLabel","costPerClickCurrentLabel","salesPerClickCurrentLabel","percentageNtbOrdersCurrentLabel","percentageNtbSalesCurrentLabel","ntbOrdersCurrentLabel","ntbSalesCurrentLabel","BindSponsoredAdGoalsGraphData","finalData","adSpendGoals","goal_ad_spend","adRoasGoals","goal_roas","adCosGoals","goal_acos","adSpendGoalsLabel","adRoasGoalsLabel","adCosGoalsLabel","AdPerformanceNav","AdPerformance","setSelectedAdDF","setAdState","goalsMarketplaceOptions","adMinDate","setSelectedAdType","bindErrorMessage","getDataAvailabeleChildBrandList","createMarektplaceIdsListOfGoals","isSponsoredDashboardDisabled","setSponsoredAdGoalChartData","setAdGroupBy","setAdChartData","setAdCurrentTotal","setAdPreviousTotal","setAdDifference","setAdGraphLoader","setSponsoredGoalsMetricData","showAdCustomDateModal","setShowAdCustomDateModal","getAdData","goalsMarketplaces","onGroupByClick","adGraphData","goal_metric","sponsoredAdGoalsGraphData","ADYearAndCustomDateFilter","dailyFactFlag","adTypefilterOption","localSelectedMetrics","daysDiffForSponsored","renderCustomDateModal","AddUpdateNewQuery","setShowAddNewQueryModal","showAddNewQueryModal","QueryOptions","getQueriesData","btnType","queryData","setQueryData","selectedQuery","setSelectedQuery","QueryOptionsOnModal","saveNewQuery","createNewQuery","updateQuery","deleteSelectedQuery","deleteQuery","marketplaceIds","DSPAudienceMobileView","dspAudienceData","displayInputFields","displayValue","newDSPAudienceData","viewMoreDetailsForNewRow","setViewMoreDetailsForNewRow","dspAudienceItem","dspAudienceItemIndex","audienceHeader","headerIndex","displayNewlyAddedRow","displayNewlyAddedDSPAudienceRow","DSPAudienceTable","setNewDSPAudienceData","dspAudienceDefaultData","indexofRefreshRate","newDspAudienceHeaders","toSpliced","handleDropdownChange","expansionTypeDropdwonOptions","getDropdownComponentsForExpansionType","displayToggleOfRefreshTimeWindow","refresh_time_window","d","setFullYear","time_window_start","time_window_end","modifiedRefreshRateDaysOptions","displayQueryDropdown","rowIndex","InfoRedIcon","execution_description","displayStatus","instance_id","query_detail","dateSplitterarray","timeSplitterarray","timeValue","getMSTTime","created_by_details","DSPAudienceContainer","allowedToAddUpdateQuery","allowed_to_add_update_dsp_audience_query_fe","allowedToEditDspAudience","allowed_to_edit_dsp_audience_fe","amcAudienceMessage","amc_audience_bp_view","queryOptions","setQueryOptions","setDSPAudienceData","setDSPAudienceDefaultData","isAuthorizedUser","setIsAuthorizedUser","dspAudienceCount","setDSPAudienceCount","selectedStatusFilter","setSelectedStatusFilter","ViewDataFilterOptions","selectedViewDataFilter","setSelectedViewDataFilter","getQueries","intervalId","restrictMultipleApiCalls","setInterval","clearInterval","getAudienceData","audienceId","AMCAudienceLookalike","getDSPAudienceDefaultData","onSaveClick","saveDSPAudience","checkIfAllColumnHaveData","copyObjOfNew","refresh_rate_days","displayEditAndSaveButton","eleId","executeScroll","updatedNewDSPAudienceData","expansion_type","addNewRow","displayTableLabelRow","is_active","handleViewDataForFilterChange","handleStatusFilterChange","shape","AwsQuicksightContainer","dashboardId","dashboardLoader","setDashboardLoader","getQuicksightDashboard","URL","embeddedDashboardExperience","createEmbeddingContext","QuickSightEmbedding","embeddingContext","containerDiv","dashboardOptions","container","scrolling","otherOptions","parameters","dashboardParams","Name","Values","toolbarOptions","export","embedDashboard","setParameters","getDashboardURL","dashboard_id","EmbedUrl","AWSQuicksightsDashboard","AMCStyle","AmcInsightContainer","customized","sample","selectedSecondLevelNav","setSelectedSecondLevelNav","activeTabLoader","setActiveTabLoader","activeTabs","setActiveTabs","selectedDashboardFilterOption","setSelectedDashboardFilterOption","setShowAMCAudienceLookalike","getActiveTabs","displayNoData","standard_tab","customized_tab","advanced_tab","handleDashboardFilter","showLookalike","paramsData","setParams","displayAMCDashboards","ProjectAsinsTable","projectDetails","tableInfoDetails","filterationData","asinCounts","setShowProjectAsinTable","showProjectAsinTable","getTotalOfTable","setPaginationChecksum","paginationChecksum","selectedVendorReporting","orangeProjectHeader","grayAsinHeader","setShowCollapse","downloadCsv","setDownloadCsv","tableView","tableHeader","getDownloadedCsv","getCreativeProjectTableCSV","asin_checksum","project_view","returnASINChangeStyle","styleObj","bindUpDownArrow","isChangedValue","renderProjectViewRowDetail","completion","changedKey","changedValue","asins_view","ProductTableWrapper","renderProjectViewTotalRow","renderProjectViewAvgRow","renderAsinViewTableData","total_ordered_prod_sales","change_total_ordered_prod_sales","total_units_ordered","change_total_units_ordered","avg_average_units","change_avg_units_ordered","total_page_view","change_total_page_view","total_session","change_total_session","avg_bbe_percentage","change_avg_bbe_percentage","avg_conversion","change_avg_conversion","total_ordered_revenue","total_shipped_cogs","change_total_ordered_revenue","change_total_shipped_cogs","total_glance_views","change_total_glance_views","avg_conversion_rate","change_avg_conversion_rate","total_ordered_units","total_shipped_units","change_total_ordered_units","change_total_shipped_units","renderAsinViewTotalRow","renderTotalAfterCompletionRow","UploadCreativeAsins","setShowCreativeUploadScreen","getCreativeMonths","asinList","setAsinList","isEditable","setIsEditable","projectTypes","getDropdownOptions","setGetDropdownOptions","formCreativeData","setFormCreativeData","addProjectType","setAddProjectType","showUploadScreen","setShowUploadScreen","unformattedAsins","setUnformattedAsins","tableRows","setTableRows","setErrorMessage","disableSaveButton","setDisableSaveButton","disableSaveBtn","getProjectData","getProjectTypes","formattedAsins","asinListing","uploadData","creativeId","creative","duplicateAsins","duplicates","saveAsinsData","checkCreativeProjectTypes","saveProjectType","addCreativeProjectType","newProjectType","colIndex","invalidAsins","apiDuplicateAsins","errorAsins","newData","handleTableDataChange","lineHeight","handleAsinFormat","acc","handleUploadASINEvents","row","CreativeProjectFilters","hideFilters","isDropDownDisabled","globalFiltersOptions","setSelectedVendorReporting","getProjectsFilter","handleApplyOnClick","handleMonthFilterOnMenuClose","accountBasedCSS","generateViewData","CardMetricsGraph","selectedCreativeProjectMetrics","setSelectedCreativeProjectMetrics","creativeProjectData","isLoadingGraph","isAllowToDeleteProject","setIsSelectProjectDropdownOption","setGlobalFiltersOptions","setCallGraphApi","disableMetrics","setDisableMetrics","selectedSearchQuery","setSelectedSearchQuery","deleteInfo","setDeleteInfo","deleteLoader","setDeleteLoader","asinIds","originalAsinIds","setAsinData","setShowDeleteConfirmationModal","accountBasedArray","projectObject","totalChecksums","Set","marketplaceNames","projectForCurrency","pro","projectCurrencies","fieldsTemp","combinedAsins","arr","combinedItems","ordered_product_sales","ordered_revenue","shipped_cogs","parentAsinHandleChange","completionDate","projectType","isParentAsinChecked","asinChecksum","selectedProjectAsin","selectedAsins","selectedProjectLabels","projectLabels","uncheckedParentAsin","childAsinHandleChange","selectedAsin","handledOnDeleteIconClick","whatToDelete","deleteItemInfo","asinInfo","projectInfo","handledOnConfirmDeleteClick","deleteCreativeProject","apiParameter","local","localProject","searchAsinIds","searchedAsin","op1","finalSearchedAsin","currentSumValue","previousSumValue","removeMetricName","handleMetricsChange","renderCardMetrics","ProjectCheckList","selectedLabel","renderAsinCheckboxex","CreativeProjectChart","units_ordered","page_views","sessions","buy_box_percentage","glance_views","conversion_rate","ordered_units","shipped_units","compareTwoDates","startDateParam","startDateTemp","completionDateTemp","CreativeProjectPerformanceSummary","hideUploadCreativeProjectCTA","afterDaysDateDifference","setAfterDaysValue","creativeProjectChartData","allowedToUploadDeleteProject","assignedBGSManager","loggedInRole","selectedProjects","currencySymbolForGraph","creativeProjectMessage","creative_project_seller","creative_project_vendor","showAfterDaysMessage","infoToolTipMessage","getProjectNameOnCompletionDate","lattestProject","current_start_date","graph_country_currency","daysValue","disabledCondition","checkAfterDaysDisabledCondition","available_days","selectedProjectCompletionDates","showMessageForGraph","renderCompletionDateAndGroupBytoogleBtn","CreativeProjectContainer","resetCreativeProjectFilters","setResetCreativeProjectFilters","setIsDisabledRefreshBtn","allowed_to_upload_delete_creative_project_fe","callGraphApi","callTableApi","setCallTableApi","isItFirstTimeRender","setIsItFirstTimeRender","getMonthsList","setGetMonthsList","setTableInfoDetails","setCurrencySymbolForGraph","setGetTotalOfTable","setGetProjectsFilter","setCreativeProjectData","setCreativeProjectChartData","setAfterDaysDateDifference","setAsinCounts","isSelectProjectDropdownOption","setSelectedProjects","isTableLoading","setIsTableLoading","setIsLoadingGraph","getShortProjectNames","projectArray","bindCreativeProjectResponseData","buy_box_percentageCurrent","ordered_product_salesCurrent","page_viewsCurrent","sessionsCurrent","units_orderedCurrent","units_soldCurrent","buy_box_percentageCurrentLabel","ordered_product_salesCurrentLabel","page_viewsCurrentLabel","sessionsCurrentLabel","units_orderedCurrentLabel","units_soldCurrentLabel","conversionRateCurrent","ordered_revenueCurrent","glance_viewsCurrent","ordered_unitsCurrent","conversionRateCurrentLabel","ordered_revenueCurrentLabel","glance_viewsCurrentLabel","ordered_unitsCurrentLabel","shipped_cogsCurrent","shipped_unitsCurrent","shipped_cogsCurrentLabel","shipped_unitsCurrentLabel","b","utc1","UTC","utc2","dateDifference","creativeProjectGraphData","checkProjectList","isAllMonths","getCreativeDataOnMonths","filterData","monthOptions","callTableAPIFlag","uniqueProjectArray","cur","projectsBasedOnMarketplaces","localMultiselectProject","counts","getMonthsDropwonOptions","asinChecksumParam","multiSelectedValuesAsinTemp","multiSelectedValuesProjectLabelsTemp","removeAsinsonProjectChange","BindSalesGraphResponseData","adSpendPpcPrevious","adSpendDspPrevious","tacosPrevious","adSpendPpcPreviousLabel","adSpendDspPreviousLabel","tacosPreviousLabel","adSpendPpcCurrent","adSpendDspCurrent","tacosCurrent","adSpendPpcCurrentLabel","adSpendDspCurrentLabel","tacosCurrentLabel","adSpendPpcDashLength","adSpendDspDashLength","tacosDashLength","adSpendDashLength","SellerASINPerformanceMobileView","isParentASINActive","childBpName","revenueChange","revenuePercentChange","trafficChange","trafficPercentChange","units","unitsChange","unitsPercentChange","conversionChange","conversionPercentChange","buyBox","buyBoxChange","buyBoxPercentChange","VendorASINPerformanceMobileView","currencyLabel","currencyValue","current_ordered_revenue","currencyChange","ordered_revenue_change","currencyPercentChange","ordered_revenue_percent_change","unitLabel","unitValue","current_ordered_unit","unitChange","ordered_units_change","unitPercentChange","ordered_units_percent_change","current_shipped_cogs","shipped_cogs_change","shipped_cogs_percent_change","current_shipped_unit","shipped_unit_change","shipped_unit_percent_change","bp_name","current_glance_view","glance_views_change","glance_views_percent_change","current_conversion","conversion_change","conversion_percent_change","ASINPerformance","selectedPeriod","isSelectCustom","isAsinApiCallCustom","salesAsinMessage","sales_performance_seller_asin","sales_performance_vendor_asin","activeASINTab","setActiveASINTab","setASINLoader","asinPerformanceData","setAsinPerformanceData","asinPerformanceFlag","setASINPerformanceFlag","asinPerformanceCount","setASINPerformanceCount","asinPerformancePageNumber","setASINPerformancePageNumber","asinOrderByKey","setASINOrderByKey","getPerformanceASINData","orderKey","orderFlag","selectedMarketPlace","start","end","pagenumber","localCustomDate","localMaxDate","tableHeaderKeysForSorting","renderTableHeader","isAsin","textLimit","current_revenue","revenue_change","revenue_percent_change","current_traffic","traffic_change","traffic_percent_change","current_units_sold","units_sold_change","units_sold_percent_change","current_buy_box_percentage","buy_box_change","buy_box_percentage_change","renderSellerAsinTable","itemData","renderVendorAsinTable","onGetPerformanceASINData","SalePerformanceChart","isDashboard","SalesPerformanceGoalsChart","percentageAxisValue","SalesPerformancePanel","selectedSalesMetrics","setSelectedSalesMetrics","handleSalesDailyFact","salesCurrentTotal","salesDifference","salesPreviousTotal","salesGraphLoader","salesChartData","goalsMetricData","salesGoalsChartData","goalsToggle","setGoalsToggle","selecteAdSpendSubType","newState","shortTileName","tileName","tileNameTemp","screen","adSpendRef","displayGoalTargetHTML","setAdSpendMetricsClass","isAdSpendTotalSelected","onHandleAdSpendSubType","renderSalesBox","matricsKey","valueSymbol","showGoalsTarget","revenueKeys","adSpendKeys","exixtingKeys","alreadySelectedSubType","sales_performance_seller","FiveCardMetrics","borderColor","rednerSaleGroupBy","renderSalePerformancePanel","selectedRevenueType","salesMinDate","setSelectedRevenueType","setSelectedRevenueDropDownOption","BbPercentChart","averageValue","getValueAxisMaxValue","createBbPercentChart","max","strictMinMax","startLocation","endLocation","tensionX","getFillFromObject","fillOpacity","axisRanges","ChartDiv","BuyBoxPercentPanel","bBChartData","bBGraphLoader","handleBBDailyFact","bBDailyFact","showBBCustomDateModal","BBstate","setShowBBCustomDateModal","setBBState","bbFilterOption","bbSingleFilterOption","getBBSelectComponents","BBselection","BindSalesGoalsGraphResponse","adSpendTotalGoals","goal_sponsored_ad_spend","goal_dsp_spends","adSpendPpcGoals","adSpendDspGoals","revenueTotalGoals","goal_revenue","revenuePpcGoals","revenueDspGoals","tacosGoals","goal_tacos","trafficGoals","goal_traffic","conversionGoals","goal_conversion","adSpendTotalGoalsLabel","adSpendPpcGoalsLabel","adSpendDspGoalsLabel","revenueTotalGoalsLabel","revenuePpcGoalsLabel","revenueDspGoalsLabel","tacosGoalsLabel","trafficGoalsLabel","conversionGoalsLabel","SellerHealth","PerformanceReport","selectedState","setSelectedState","setCurrency","isDashboardDisabled","setBBChartData","isSPCustomDateApply","setIsSPCustomDateApply","isBBCustomDateApply","setIsBBCustomDateApply","setSalesChartData","performanceData","setPerformanceResponse","setGoalsMetricData","setSalesGoalChartData","BBGroupBy","setBBGroupBy","setSalesCurrentTotal","setSalesPreviousTotal","setSalesDifference","setSalesGraphLoader","setBbGraphLoader","setIsAsinApiCallCustom","setBBDailyFact","setPieData","bindSalesResponseData","isHavingDspPPC","lastElement","at","tacosData","getGoalTargetLabel","metricValue","twoPercentOfGoalValue","calculateAdSpendTotalGoal","goalMetric","ppcGoalValue","dspGoalValue","totalGoalValue","getBBData","BBdailyFact","bBGroupBy","bbep","record","tempBBData","getSalesPerformanceData","salesGraphData","BindSalesGraphResponse","adSpendTotalMetricsValue","tempGoalMetricData","salesGoalsGraphData","BBYearAndCustomDateFilter","diffDays","getDays","handleChildBrandOptions","daysDiffForSales","seller_health","BindVendorSalesGraphData","orderedRevenuePrevious","glanceViewsPrevious","conversionRatePrevious","orderedUnitsPrevious","orderedRevenuePreviousLabel","glanceViewsPreviousLabel","orderedUnitsPreviousLabel","conversionRatePreviousLabel","shippedCOGsPrevious","shippedUnitsPrevious","shippedCOGsPreviousLabel","shippedUnitsPreviousLabel","orderedRevenueCurrent","glanceViewsCurrent","orderedUnitsCurrent","orderedRevenueCurrentLabel","glanceViewsCurrentLabel","orderedUnitsCurrentLabel","shippedCOGsCurrent","shippedUnitsCurrent","shippedCOGsCurrentLabel","shippedUnitsCurrentLabel","BindVendorSalesGoalsGraphData","goal_ordered_revenue","glanceViewsGoals","goal_glance_views","conversionRateGoals","goal_conversion_rate","orderedRevenueGoalsLabel","glanceViewsGoalsLabel","conversionRateGoalsLabel","shippedCOGsGoals","goal_shipped_cogs","shippedCOGsGoalsLabel","VendorSalePerformanceChart","unitAxisValues","paddingLeft","lableName","VendorSalePerformanceGoalsChart","VendorSalesPerformancePanel","activeSales","salesGoalChartData","setActiveSales","handleMetricsType","metricsTypeFilterOption","metricsTypeSingleFilterOption","getMetricTypeSelectComponents","setSalesBoxClass","matricsName","displayMatricsName","sales_performance_vendor","VendorSalesPerformanceFilters","handleDailyFact","selectedSalesDF","getDropDownComponents","VendorSalesPerformanceContainer","setSelectedSalesDF","selectedVendorMetricsType","setSelectedVendorMetricsType","goalMarketplaces","tempGoalMetricsData","SalesPerformanceContainer","sellerSalesMinDate","vendorSalesMinDate","DspAdPacing","isDspPacingLoading","isAllowToSplitBalance","setShowEscrowReallocationModal","dspPacing","addThousandSeperator","showMinus","displayMonth","renderToolTipIcon","renderToolTipInfo","displayDspBreakdownFieldsHTML","fieldLabel","fieldInfoKey","fieldAmount","percentValue","showBoldLabel","useNumberFormatter","showBoldValue","dataCyLabel","dataCyValue","DspAdPacingModal","last_day","days_remains","dspPacingFlag","dsp_pacing_flag","pacingLabel","current_spend_status","renderDspPacingLabel","planed_to_spend","total_spend","calculateDspDiff","dsp_pacing_diff","dsp_pacing_diff_percentage","renderSpendDetails","suggested_spend","escrow_sum","DspPacingBarGraph","createDspPacingBarGraph","currentMonthYear","bindAmountAndCurrency","renderToolTip","carrOverAmount","totalInitialBudget","categoryAxis","inversed","series1","categoryY","valueX","stacked","column","cornerRadius","series3","clustered","pointerLength","_index","pointerOrientation","_dataContext","carryOver","valueLabel","align","valign","endCategory","isMeasured","axisFill","events","ev","chartObj","categoryAxisNew","getIndex","adjustHeight","pixelHeight","targetHeight","svgContainer","htmlElement","BindDspResponsData","dsp_spend","dspImpressionsPrevious","dspTotalProductSalesPrevious","total_product_sales","dspTotalRoasPrevious","total_roas","dspTotalDpvrPrevious","total_dpvr","dspTtlNewBrandPurchasesPrevious","ttl_new_brand_purchases","dspProductSalesPrevious","product_sales","dspRoasPrevious","dspImpressionsPreviousLabel","dspTotalProductSalesPreviousLabel","dspTotalRoasPreviousLabel","dspTotalDpvrPreviousLabel","dspTtlNewBrandPurchasesPreviousLabel","dspProductSalesPreviousLabel","dspRoasPreviousLabel","dspImpressionsCurrent","dspTotalProductSalesCurrent","dspTotalRoasCurrent","dspTotalDpvrCurrent","dspTtlNewBrandPurchasesCurrent","dspProductSalesCurrent","dspRoasCurrent","dspImpressionsCurrentLabel","dspTotalProductSalesCurrentLabel","dspTotalRoasCurrentLabel","dspTotalDpvrCurrentLabel","dspTtlNewBrandPurchasesCurrentLabel","dspProductSalesCurrentLabel","dspRoasCurrentLabel","DspPerformanceChart","unitAxisValue","lowerCase","DspPerformanceFilters","isDSPCustomDateApply","selectedDspDF","selectedDspMarketplace","dspState","dspMarketplacesList","handleDSPDailyFact","handleDspMarketplaceFilterEvents","singleDSPFilterOption","renderDSPCustomDateSubLabel","getDSPSelectComponents","renderTimeFrameFilter","ConfirmMarketPlaceAllocation","totalEscrowBalance","escrowBalanceMarketplace","getEscrowBalanceMarketplace","getDSPPacing","setShowMarketPlaceAllocation","showConfirmMarketplaceAllocation","setShowConfirmMarketplaceAllocation","setShowEscrowMonthlyAllocation","balanceChangeValue","submitEscrowReallocatedData","reallocatedData","filteReallocatedData","balanceChanged","from_marketplace","to_marketplace","escrow_reallocated_amount_usd","storeEscrowReallocation","renderReallocationDesktopView","escrowBalance","escrowReallocatedBalance","renderReallocationTableBody","renderReallocationMobileView","EditMarketplaceAllocation","setEscrowBalanceMarketplace","showMarketPlaceAllocation","isAllowToContinue","setIsAllowToContinue","isEscrowBalanceExceed","setIsEscrowBalanceExceed","newAllocatedBalance","oldEscrowBalance","newEscrowBalance","sumOfNewEscrowBalance","updatedBalance","splicedObj","renderMarketplace","func","EscrowBudgetAllocationModal","newCurrentDate","oldEscrowAllocation","setOldEscrowAllocation","setTotalEscrowBalance","selectedMarketplaceBalance","setSelectedMarketplaceBalance","showEscrowMonthlyAllocation","allocatedMonths","setAllocatedMonths","isMonthlyDataLoading","setIsMonthlyDataLoading","escrowAllocatedMonthIndex","setEscrowAllocatedMonthIndex","bindEscrowMarketplaceData","total_escrow","getEscrowBalanceMarketplaceData","bindEscrowAllocatedBalanceData","tempEscrowData","escrow_allocated","escrow_allocated_converted_usd_old","currentMarketplace","currentEscrowBalance","escrow_converted_usd","allocated_balance","submitAllocatedBudget","storeAllocatedBudget","handleEscrowAllocation","currentIndex","valueDiff","remainingAmount","monthAmount","changeInEscrow","sumOfFutureMonths","currentMonthAmount","renderMarketplaceTab","readOnly","lastRecord","nextMonth","handleOnAddAnotherMonth","DspAdPerformanceGoalsChart","isBindValueAxis2","isBindValueAxis3","isBindValueAxis4","DspAsinAndCampaignFilters","dspAsinData","showAsinTooltipMessage","handleSortByFilter","handleCampaignAsinToogle","isCallDSPAsinApi","selectedCampaignAsinToggle","selectedSortByOrder","setDspCampaignSearchQuery","handleCampaignSearch","dspAsinMessage","dsp_performance_asin","dspCampaignMessage","dsp_performance_campaign","DspAsinPerformanceTable","totalProductSalesCurrent","totalProductSalesChangeInValue","totalProductSalesChangeInPercent","ttlNewBrandPurchasesCurrent","ttlNewBrandPurchasesChangeInValue","ttlNewBrandPurchasesChangeInPercent","totalDetailPageViewsCurrent","totalDetailPageViewsChangeInValue","totalDetailPageViewsChangeInPercent","totalAddToCartCurrent","totalAddToCartChangeInValue","totalAddToCartChangeInPercent","renderTableRow","displayAsinPerformanceContent","DspCampaignPerformanceTable","campaignAsinLoader","campaignCollapseLoader","campaignListData","setCampaignListData","campaignPageCount","campaignPageNumber","campaignAsinPageCount","campaignAsinPageNumber","handleCampaignPaginationEvents","handleCampaignAsinPaginationEvents","handleCollapseClick","localDspCampaignData","displayCampaignCollpaseHead","campaignDetails","marketpalceValue","campaign","numberOfAsins","localCampaign","displayCollapseIcon","displayCampaignTable","tableId","campaignIndex","displayCampaignCollpaseBody","DspAsinAndCampaignContainer","setIsCallDSPAsinApi","setDspAsinData","setCampaignCollapseLoader","setCampaignAsinLoader","setCampaignAsinData","setCampaignPageCount","setCampaignPageNumber","setCampaignAsinPageCount","setCampaignAsinPageNumber","setSelectedSortByOrder","setSelectedCampaignAsinToggle","bindDspAsinPerformanceData","total_detail_page_views","total_add_to_cart","bindDspCampaignAsinTotal","bindCampaignListData","marketpalceLabel","order_name","getCampaignAsinPerformanceData","getDspCampaignPerformanceData","asin_data","asin_total","getCampaignListData","getDspCampaignList","localCampaignData","getDspCampaignDownloadReport","DspMetrics","dspDifference","dspGoalsMetricData","dspGoalsToggle","displayDspMetricsBoxHTML","metrics","customDspAdPacingStyles","DspPerformanceContainer","setIsDspDashboardDisabled","getGoalsMarketplaceIdBySelectedMarketplace","currentDateForDSP","setDateFilterOptions","dspGraphLoader","setDspGraphLoader","dspMarketplaceLoader","setDspMarketplaceLoader","setIsDspPacingLoading","performancePacingFlag","setPerformancePacingFlag","setDspGoalsToggle","selectedDspBox","setSelectedDspBox","showEscrowReallocationModal","showDspAdPacingModal","setShowDspAdPacingModal","showDSPCustomDateModal","setShowDSPCustomDateModal","dspAdGoalChartData","setDspAdGoalChartData","setDspGoalsMetricData","dspGroupBy","setDSPGroupBy","dspChartData","setDSPChartData","dspPacingChartData","setDSPPacingChartData","setDspCurrentTotal","setDspPreviousTotal","setDspDifference","setIsDSPCustomDateApply","setDspMarketplacesList","setSelectedDspMarketplace","dspGoalMarketplaceIds","setDspGoalMarketplaceIds","dspGoalsMarketplaceOptions","setDspGoalsMarketplaceOptions","dspCurrencySymbol","setDspCurrencySymbol","dspMinDate","setDspMinDate","setSelectedDspDF","defaultCustomDate","setDSPState","customDateErrorForDsp","setCustomDateErrorForDsp","setIsAllowToSplitBalance","DSPDynamicErrorMessage","dsp_performance_seller","dsp_performance_vendor","bindDspAdGoalsResData","dspSpendGoals","goal_dsp_spend","dspRoasGoals","dspSpendGoalsLabel","dspRoasGoalsLabel","getDSPData","dspGraphData","dspAdGoalsGraphData","getDspGoalMarketplaceIds","getDspGoalMarketPlacesData","bindDspMarketPlaces","tempMarketplacesList","isActive","unshift","getDspMarketPlaces","getStringOfCustomDate","DSPYearAndCustomDateFilter","dspMarketplace","goalMarketplaceId","remaining_budget","getPacingGraphData","getDSPPacingGraphData","dspPacingGraphData","skipData","invoiceAmountUsd","invoice_amount_converted_usd","carry_over","carryOverUsd","carry_over_converted_usd","total_budget","totalInitialbudgetUsd","total_budget_converted_usd","actualSpent","actualSpentUsd","total_spend_converted_usd","bindDSPPacingResponseData","generateDateFilterOptions","tempDateOptions","bindErrorMessageForDsp","customState","getMinDateForDsp","dsp_performance_date","handlePeformancePacingToggle","handleDspModalOnCloseEvents","displayDspPacingClassName","String","displayDspPacingMetricsValue","renderDspPacingData","displayDspPacingLabel","escrow","renderEscrowBudgetAllocationModal","renderPacingAndPerformanceToggleButton","renderDspAdHeaderSection","GraphType","graphType","handleDSPGroupBy","renderDSPGroupBy","CompanyPerformance","showCreativeUploadScreen","hideSalesAndSponsoredTab","hideCreativeProjectTab","isSeller","isVendor","isDspDashboardDisabled","setSellerSalesMinDate","sellerAdMinDate","setSellerAdMinDate","setVendorSalesMinDate","vendorAdMinDate","setVendorAdMinDate","setChildBrandOptions","actualChildList","setActualChildList","salesDataAvailableChildList","setSalesDataAvailableChildList","adsDataAvailableChildList","setAdsDataAvailableChildList","dspDataAvailableChildList","setDspDataAvailableChildList","setAssignedBGSManager","sellerViewComponent","setSellerViewComponent","setCustomDateError","vendorGoalsMarketplaceOptions","setVendorGoalsMarketplaceOptions","sellerGoalsMarketplaceOptions","setSellerGoalsMarketplaceOptions","sellerGoalsMarketplaceIds","setSellerGoalsMarketplaceIds","vendorGoalsMarketplaceIds","setVendorGoalsMarketplaceIds","showRefreshBtn","setShowRefreshBtn","isDisabledRefreshBtn","setPerformanceTab","defaultTab","scrollRight","scrollBarElement","querySelector","scrollBarElementWidth","clientWidth","scrollLeft","getGoalMarketPlacesData","localChildBrandList","bindMarketplaceOptions","localMarketplaceList","getMarketPlaceOnchild","custId","bindChidBrands","childBrandResponse","localChildBrand","messageFor","brandList","lengthOfbrand","isShowMessage","messageWord","clearingUseStateHooksForMinDateAPI","performanceDate","sponsered_performance_date","handlePerformanceTabClickEvents","displayPerformanceTabListHTML","tabLabel","displayRefreshButton","displayPerformanceTabList","AmcReports","displayPerformanceTabComponents","selectedReportType","ReportSectionFilter","bpList","handleBPList","handleTimeFrame","getTimeFrameSelectComponents","selectedBp","marketplaceDefaultValue","handleMarketplace","marketplaceLoader","handleAccountType","reportTypeLoader","reportTypeOptions","selectedReportTab","handleReportType","handleResetFilter","onCreateReport","bpLoader","isUsedReportTemplate","setIsUsedReportTemplate","selectedReportTemplate","setSelectedReportTemplate","reportTemplateOption","isCollapseOpen","setIsCollapseOpen","isFinanceReportSelected","customDropdownFilterOption","marketplaceDropdownFilterOption","marketplaceDropdownSingleFilterOption","renderBPDropdown","renderAccountTypeDropdown","renderReportTypeDropdown","renderMarketplaceDropDown","renderReportTemplate","renderReportTemplateOptions","PartnerOpportunitiesReportModal","isDownloading","setSelectedProduct","callToAction","setSelectedObjective","setSelectedTitle","setDescription","setCallToAction","onDownload","productList","setProductList","objectiveList","setObjectiveList","titleList","setTitleList","bindDropdownLabel","word","bindDropdownOptionsList","localList","getDropdownList","getPartnerOpportunitiesDropdownOptions","call_to_action","handleProductDropdown","handleObjectiveDropdown","handleTitleDropdown","ReportSectionList","selectedReportTypeValue","reportsData","generateCustomDate","openPartnerOpportunitiesReportModal","setOpenPartnerOpportunitiesReportModal","isMTDorCustomDate","itemLoader","setItemLoader","downloadedReportDetails","setDownloadedReportDetails","resetDropDownFilters","getReportDownload","oldLoadingState","is_data_available","report_name","sub_report_type","displayTooltipByReportType","reportKey","letter","report_description","ReportsMobiveView","StandardReportContainer","setReportsData","reportsLoader","setReportsLoader","reportCount","setReportCount","getReportsData","dailyFact","getReportsSectionData","ReportPDFStatusModal","isModalOpen","currentPDFUser","afterModalCloseAPI","CustomizedReportsList","onEditView","reportTableAPICall","setCurrentPDFUser","reportPDFstatusModal","setReportPDFStatusModal","onGetCustomReportActivity","renderDownloadReportHTML","reportName","customer_name","fileURL","createObjectURL","alink","renderReportPDFEditHTML","currenUser","current_user","handleIsReportPDFEditable","renderReportPDFViewOnlyHTML","renderReportCreationDate","UpdatedStatus","upsert_action","renderReportPDFStatus","is_editable","ServiceAgreementIcon","CustomizedReportContainer","onEditViewReport","customizedReportsData","setCustomizedReportsData","customizedReportsCount","setCustomizedReportsCount","selectedReportOrder","setSelectedReportOrder","onGetReportsData","ActivityReports","PdfViewer","setShowAddendum","contractAddendumDetails","isLoader","pdfFile","giveWidth","onDocumentLoadSuccess","displayPdf","notActive","pdfjs","GlobalWorkerOptions","version","SaleAdDspPerformanceGraph","showPrevoisPoint","dateFrequency","currentEndDate","chartDataWithDateRange","graphData","graphDataNewLength","tempGraphData","lastIndex","_tooltipDataItem","previousDateRange","CreateReportSidePanel","MainBodyReports","ReportPDFContainer","ReportPDFHeader","ReportPDFBody","ReportPDFWithHperlink","html2pdfRef","pdfHeader","renderReportPDFBodyContent","BBEStandardLogo","reportSummary","ReportLeftSidePanel","graphDetails","setGraphDetails","commanFieldsDetails","graphApiResponseData","dateToShow","showReportPDFTemplate","pdfName","reportTitle","renderEditComponent","_graphData","graphIndex","editorDetails","newEditorObject","setEditorDetails","newGraph","handleGraphDetailsOnChange","editorFor","renderMetricsValueChangeStyle","renderMetricsValueWithChange","valueChange","percentChange","showDecimalPoint","isMetricsTable","itemValue","changeInPercentage","showChangeInValueAndPercent","showMetricsTableChangeInValueAndPercent","renderSalesAdDspGraph","selectedFieldsData","selectedMetricCount","marketplaceCurrency","renderMetricsTable","showTableFor","showTotalFor","calculatedWidth","numberOfTableColumn","headerContent","TotalHeaderContent","tableRowContainer","tableTotalData","getLineGraphDataWithDateRange","columnHeaders","tableDataContainer","borderSpacing","renderParentChildAsinsTable","tableHeading","showParentASINsTable","showChildASINsTable","renderBBPgraph","bbepData","renderBBEPTable","renderPositiveFeedbackPanel","localData","pfoiData","renderOrderIssuesPanel","renderInventoryScorePanel","inventoryScoreData","renderStrandedInventoryTable","stranded_event_date","renderUnderstockOverstockTable","merchant_sku","sales_last_30_days","units_sold_last_30_days","total_days_of_supply","isSellerMFieldSelected","showChildAsins","showParentAsins","showSellerHealth","showInventory","isHybrid","applyPageBreak","renderPDFSellerPanelData","vendorData","renderPDFVendorPanelData","reportPresignedUrl","offset","pageYOffset","inventoryDatesMessage","renderSellerPanel","renderVendorPanel","RenderSellerFields","renderCheckBox","renderRadioButtons","renderNumberOfAsins","enabledGroupFrequencyList","checkSelectedKeys","showMetricsTooltip","renderDataTableViewButton","metricsLoader","renderMetricsTooltip","showRevenueMetrics","showSalesMetrics","showAdSpendMetrics","renderSalesPanelAndToggleOptions","renderAdPerformancePanel","renderSellerHealth","renderInventoryManagement","RenderVendorFields","isFocused","outlineColor","defaultStyles","SidePanel","AddendumParagraph","AgreementParagraph","ContractTab","Footer","DspAddendumParagraph","StatementParagraph","ReportRightSidePanel","setReportSummary","isTimeFrameDisabled","setIsTimeFrameDisabled","setShowReportPDFTemplate","templateTimeFrame","templateReportTitle","templateReportDescrition","indexToDeleteGraph","setIndexToDeleteGraph","editReportOptions","setEditReportOptions","showSaveModalErrorMessage","setShowSaveModalErrorMessage","showDeleteGraphConfirmationModal","setShowDeleteGraphConfirmationModal","setAutoScrollId","localAsinObject","graphApiResponce","topParentAsins","bottomParentAsins","topChildAsins","bottomChildAsins","setGraphApiResponseData","getSalesAsinsReportData","getMetricsReportData","unselectSelctedFields","sponoredDspInventoryKeys","objectName","arrayName","adTypesSingleFilterOption","CalenderIndicator","renderTimeFilterDropDown","groupByOptions","checkIsGroupFrequencyDisabled","setEnabledGroupFrequencyList","enabledList","bindMultipleApiRequest","setReportTitle","setReportDescription","handleTimeFramefilter","idName","labelName","metricsDataAvailabilityFlag","metricDataLoader","isBuyBoxGraph","labelClass","tableName","numberLimit","asinDataCount","parseInt","MinusIcon","selectedGraph","graphName","handleGraphCollapse","renderGraphFields","checkReportStatus","handleAddAdditonalGraph","setShowSaveReportModal","handleOnProceedClick","splitedTimer","countDownTimer","showSaveReportModal","isRemainderUp","saveDetailsLoader","customReportId","TimmerOut","reportDescription","saveReportDetails","renderSaveDetailsModal","reportSelection","setReportStatus","ConfirmCloseReportModal","modalConfirmButtonEvents","BindGraphDataApiResponse","acType","sellerVendorField","previous_seller","previous_vendor","currentKey","current_seller","current_vendor","previousTotalKey","previous_seller_total","previous_vendor_total","currentTotalKey","current_seller_total","current_vendor_total","currentChangeInValueKey","current_seller_change","current_vendor_change","currentChangeInPercentKey","current_seller_percent_change","current_vendor_percent_change","totalChangeInValueKey","seller_total_change_data","vendor_total_change_data","totalChangeInPercentKey","seller_total_percent_change_data","vendor_total_percent_change_data","getEndDate","reportDate","getYesterday","previous_end_date","salesRevenueTotalPrevious","salesRevenuePpcPrevious","salesRevenueDspPrevious","salesTacosPrevious","salesUnitSoldPrevious","salesTrafficPrevious","salesConversionPrevious","salesAdSpendTotalPrevious","salesAdSpendPpcPrevious","sales_ad_spend","salesAdSpendDspPrevious","sales_dsp_spends","salesRevenueTotalPreviousLabel","salesRevenuePpcPreviousLabel","salesRevenueDspPreviousLabel","salesTacosPreviousLabel","salesUnitSoldPreviousLabel","salesTrafficPreviousLabel","salesConversionPreviousLabel","salesAdSpendTotalPreviousLabel","salesAdSpendPpcPreviousLabel","salesAdSpendDspPreviousLabel","salesOrderedRevenuePrevious","salesOrderedGlanceViewsPrevious","salesOrderedConversionRatePrevious","SalesOrderedUnitsPrevious","salesShippedCogsPrevious","salesShippedGlanceViewsPrevious","salesShippedConversionRatePrevious","salesShippedCogsUnitPrevious","salesOrderedRevenuePreviousLabel","salesOrderedGlanceViewsPreviousLabel","salesOrderedConversionRatePreviousLabel","salesOrderedUnitsPreviousLabel","salesShippedCogsPreviousLabel","salesShippedGlanceViewsPreviousLabel","salesShippedUnitsPreviousLabel","salesShippedConversionRatePreviousLabel","all_ad_sales","all_ad_spend","adConversionRatePrevious","all_ad_conversion_rate","adImpressionsPrevious","all_impressions","adAcosPrevious","all_acos","all_roas","all_clicks","adClickThroughRatePrevious","all_ctr","adCostPerClickPrevious","all_cost_per_click","adSalesSPPrevious","product_campaign_report_ad_sales","adSpendSPPrevious","product_campaign_report_ad_spend","adConversionRateSPPrevious","product_campaign_report_ad_conversion_rate","adImpressionsSPPrevious","product_campaign_report_impressions","adAcosSPPrevious","product_campaign_report_acos","adRoasSPPrevious","product_campaign_report_roas","adClicksSPPrevious","product_campaign_report_clicks","adClickThroughRateSPPrevious","product_campaign_report_ctr","adCostPerClickSPPrevious","product_campaign_report_cost_per_click","adSalesSBPrevious","brand_campaign_report_ad_sales","adSpendSBPrevious","brand_campaign_report_ad_spend","adConversionRateSBPrevious","brand_campaign_report_ad_conversion_rate","adImpressionsSBPrevious","brand_campaign_report_impressions","adAcosSBPrevious","brand_campaign_report_acos","adRoasSBPrevious","brand_campaign_report_roas","adClicksSBPrevious","brand_campaign_report_clicks","adClickThroughRateSBPrevious","brand_campaign_report_ctr","adCostPerClickSBPrevious","brand_campaign_report_cost_per_click","adSalesSBVPrevious","brand_video_campaign_report_ad_sales","adSpendSBVPrevious","brand_video_campaign_report_ad_spend","adConversionRateSBVPrevious","brand_video_campaign_report_ad_conversion_rate","adImpressionsSBVPrevious","brand_video_campaign_report_impressions","adAcosSBVPrevious","brand_video_campaign_report_acos","adRoasSBVPrevious","brand_video_campaign_report_roas","adClicksSBVPrevious","brand_video_campaign_report_clicks","adClickThroughRateSBVPrevious","brand_video_campaign_report_ctr","adCostPerClickSBVPrevious","brand_video_campaign_report_cost_per_click","adSalesSDPrevious","sponsored_display_campaign_report_ad_sales","adSpendSDPrevious","sponsored_display_campaign_report_ad_spend","adConversionRateSDPrevious","sponsored_display_campaign_report_ad_conversion_rate","adImpressionsSDPrevious","sponsored_display_campaign_report_impressions","adAcosSDPrevious","sponsored_display_campaign_report_acos","adRoasSDPrevious","sponsored_display_campaign_report_roas","adClicksSDPrevious","sponsored_display_campaign_report_clicks","adClickThroughRateSDPrevious","sponsored_display_campaign_report_ctr","adCostPerClickSDPrevious","sponsored_display_campaign_report_cost_per_click","dsp_impressions","dsp_dsp_spend","total_dsp_roas","dspTotalNewBrandPurchasesPrevious","dsp_roas","adConversionRatePreviousLabel","adImpressionsPreviousLabel","adAcosPreviousLabel","adClickThroughRatePreviousLabel","adCostPerClickPreviousLabel","adSalesSPPreviousLabel","adSpendSPPreviousLabel","adConversionRateSPPreviousLabel","adImpressionsSPPreviousLabel","adAcosSPPreviousLabel","adRoasSPPreviousLabel","adClicksSPPreviousLabel","adClickThroughRateSPPreviousLabel","adCostPerClickSPPreviousLabel","adSalesSBPreviousLabel","adSpendSBPreviousLabel","adConversionRateSBPreviousLabel","adImpressionsSBPreviousLabel","adAcosSBPreviousLabel","adRoasSBPreviousLabel","adClicksSBPreviousLabel","adClickThroughRateSBPreviousLabel","adCostPerClickSBPreviousLabel","adSalesSBVPreviousLabel","adSpendSBVPreviousLabel","adConversionRateSBVPreviousLabel","adImpressionsSBVPreviousLabel","adAcosSBVPreviousLabel","adRoasSBVPreviousLabel","adClicksSBVPreviousLabel","adClickThroughRateSBVPreviousLabel","adCostPerClickSBVPreviousLabel","adSalesSDPreviousLabel","adSpendSDPreviousLabel","adConversionRateSDPreviousLabel","adImpressionsSDPreviousLabel","adAcosSDPreviousLabel","adRoasSDPreviousLabel","adClicksSDPreviousLabel","adClickThroughRateSDPreviousLabel","adCostPerClickSDPreviousLabel","dspTotalNewBrandPurchasesPreviousLabel","salesRevenueTotalCurrent","salesRevenuePpcCurrent","salesRevenueDspCurrent","salesTacosCurrent","salesUnitSoldCurrent","salesTrafficCurrent","salesConversionCurrent","salesAdSpendTotalCurrent","salesAdSpendPpcCurrent","salesAdSpendDspCurrent","salesRevenueTotalCurrentLabel","salesRevenuePpcCurrentLabel","salesRevenueDspCurrentLabel","salesTacosCurrentLabel","salesUnitSoldCurrentLabel","salesTrafficCurrentLabel","salesConversionCurrentLabel","salesAdSpendTotalCurrentLabel","salesAdSpendPpcCurrentLabel","salesAdSpendDspCurrentLabel","salesOrderedRevenueCurrent","salesOrderedGlanceViewsCurrent","salesOrderedUnitsCurrent","salesOrderedConversionRateCurrent","salesShippedCogsCurrent","salesShippedGlanceViewsCurrent","salesShippedConversionRateCurrent","salesShippedUnitsCurrent","salesOrderedRevenueCurrentLabel","salesOrderedGlanceViewsCurrentLabel","salesOrderedUnitsCurrentLabel","salesOrderedConversionRateCurrentLabel","salesShippedCogsCurrentLabel","salesShippedUnitsCurrentLabel","salesShippedGlanceViewsCurrentLabel","salesShippedConversionRateCurrentLabel","adConversionRateCurrent","adImpressionsCurrent","adAcosCurrent","adClickThroughRateCurrent","adCostPerClickCurrent","adSalesSPCurrent","adSpendSPCurrent","adConversionRateSPCurrent","adImpressionsSPCurrent","adAcosSPCurrent","adRoasSPCurrent","adClicksSPCurrent","adClickThroughRateSPCurrent","adCostPerClickSPCurrent","adSalesSBCurrent","adSpendSBCurrent","adConversionRateSBCurrent","adImpressionsSBCurrent","adAcosSBCurrent","adRoasSBCurrent","adClicksSBCurrent","adClickThroughRateSBCurrent","adCostPerClickSBCurrent","adSalesSBVCurrent","adSpendSBVCurrent","adConversionRateSBVCurrent","adImpressionsSBVCurrent","adAcosSBVCurrent","adRoasSBVCurrent","adClicksSBVCurrent","adClickThroughRateSBVCurrent","adCostPerClickSBVCurrent","adSalesSDCurrent","adSpendSDCurrent","adConversionRateSDCurrent","adImpressionsSDCurrent","adAcosSDCurrent","adRoasSDCurrent","adClicksSDCurrent","adClickThroughRateSDCurrent","adCostPerClickSDCurrent","dspTotalNewBrandPurchasesCurrent","adConversionRateCurrentLabel","adImpressionsCurrentLabel","adAcosCurrentLabel","adClickThroughRateCurrentLabel","adCostPerClickCurrentLabel","adSalesSPCurrentLabel","adSpendSPCurrentLabel","adConversionRateSPCurrentLabel","adImpressionsSPCurrentLabel","adAcosSPCurrentLabel","adRoasSPCurrentLabel","adClicksSPCurrentLabel","adClickThroughRateSPCurrentLabel","adCostPerClickSPCurrentLabel","adSalesSBCurrentLabel","adSpendSBCurrentLabel","adConversionRateSBCurrentLabel","adImpressionsSBCurrentLabel","adAcosSBCurrentLabel","adRoasSBCurrentLabel","adClicksSBCurrentLabel","adClickThroughRateSBCurrentLabel","adCostPerClickSBCurrentLabel","adSalesSBVCurrentLabel","adSpendSBVCurrentLabel","adConversionRateSBVCurrentLabel","adImpressionsSBVCurrentLabel","adAcosSBVCurrentLabel","adRoasSBVCurrentLabel","adClicksSBVCurrentLabel","adClickThroughRateSBVCurrentLabel","adCostPerClickSBVCurrentLabel","adSalesSDCurrentLabel","adSpendSDCurrentLabel","adConversionRateSDCurrentLabel","adImpressionsSDCurrentLabel","adAcosSDCurrentLabel","adRoasSDCurrentLabel","adClicksSDCurrentLabel","adClickThroughRateSDCurrentLabel","adCostPerClickSDCurrentLabel","dspTotalNewBrandPurchasesCurrentLabel","salesShippedUnitsPrevious","salesShippedGanceViewsPreviousLabel","adConversionSPPrevious","adConversionSBPrevious","adConversionSBVPrevious","adConversionSDPrevious","adConversionSPPreviousLabel","adConversionSBPreviousLabel","adConversionSBVPreviousLabel","adConversionSDPreviousLabel","salesRevenueTotalChangeInValue","salesRevenuePpcChangeInValue","salesRevenueDspChangeInValue","salesTacosChangeInValue","salesUnitSoldChangeInValue","salesTrafficChangeInValue","salesConversionChangeInValue","salesAdSpendTotalChangeInValue","salesAdSpendPpcChangeInValue","salesAdSpendDspChangeInValue","salesOrderedRevenueChangeInValue","salesOrderedGlanceViewsChangeInValue","salesOrderedUnitsChangeInValue","salesOrderedConversionRateChangeInValue","salesShippedCogsChangeInValue","salesShippedGlanceViewsChangeInValue","salesShippedConversionRateChangeInValue","salesShippedUnitsChangeInValue","adConversionRateChangeInValue","adImpressionsChangeInValue","adAcosChangeInValue","adRoasChangeInValue","adClicksChangeInValue","adClickThroughRateChangeInValue","adCostPerClickChangeInValue","adSalesSPChangeInValue","adSpendSPChangeInValue","adConversionRateSPChangeInValue","adImpressionsSPChangeInValue","adAcosSPChangeInValue","adRoasSPChangeInValue","adClicksSPChangeInValue","adClickThroughRateSPChangeInValue","adCostPerClickSPChangeInValue","adSalesSBChangeInValue","adSpendSBChangeInValue","adConversionRateSBChangeInValue","adImpressionsSBChangeInValue","adAcosSBChangeInValue","adRoasSBChangeInValue","adClicksSBChangeInValue","adClickThroughRateSBChangeInValue","adCostPerClickSBChangeInValue","adSalesSBVChangeInValue","adSpendSBVChangeInValue","adConversionRateSBVChangeInValue","adImpressionsSBVChangeInValue","adAcosSBVChangeInValue","adRoasSBVChangeInValue","adClicksSBVChangeInValue","adClickThroughRateSBVChangeInValue","adCostPerClickSBVChangeInValue","adSalesSDChangeInValue","adSpendSDChangeInValue","adConversionRateSDChangeInValue","adImpressionsSDChangeInValue","adAcosSDChangeInValue","adRoasSDChangeInValue","adClicksSDChangeInValue","adClickThroughRateSDChangeInValue","adCostPerClickSDChangeInValue","dspImpressionsChangeInValue","dspSpendChangeInValue","dspTotalProductSalesChangeInValue","dspTotalRoasChangeInValue","dspTotalDpvrChangeInValue","dspTotalNewBrandPurchasesChangeInValue","dspProductSalesChangeInValue","dspRoasChangeInValue","salesRevenueTotalChangeInPercent","salesRevenuePpcChangeInPercent","salesRevenueDspChangeInPercent","salesTacosChangeInPercent","salesUnitSoldChangeInPercent","salesTrafficChangeInPercent","salesConversionChangeInPercent","salesAdSpendTotalChangeInPercent","salesAdSpendPpcChangeInPercent","salesAdSpendDspChangeInPercent","salesOrderedRevenueChangeInPercent","salesOrderedGlanceViewsChangeInPercent","salesOrderedUnitsChangeInPercent","salesOrderedConversionRateChangeInPercent","salesShippedCogsChangeInPercent","salesShippedGlanceViewsChangeInPercent","salesShippedConversionRateChangeInPercent","salesShippedUnitsChangeInPercent","adConversionRateChangeInPercent","adImpressionsChangeInPercent","adAcosChangeInPercent","adRoasChangeInPercent","adClicksChangeInPercent","adClickThroughRateChangeInPercent","adCostPerClickChangeInPercent","adSalesSPChangeInPercent","adSpendSPChangeInPercent","adConversionRateSPChangeInPercent","adImpressionsSPChangeInPercent","adAcosSPChangeInPercent","adRoasSPChangeInPercent","adClicksSPChangeInPercent","adClickThroughRateSPChangeInPercent","adCostPerClickSPChangeInPercent","adSalesSBChangeInPercent","adSpendSBChangeInPercent","adConversionRateSBChangeInPercent","adImpressionsSBChangeInPercent","adAcosSBChangeInPercent","adRoasSBChangeInPercent","adClicksSBChangeInPercent","adClickThroughRateSBChangeInPercent","adCostPerClickSBChangeInPercent","adSalesSBVChangeInPercent","adSpendSBVChangeInPercent","adConversionRateSBVChangeInPercent","adImpressionsSBVChangeInPercent","adAcosSBVChangeInPercent","adRoasSBVChangeInPercent","adClicksSBVChangeInPercent","adClickThroughRateSBVChangeInPercent","adCostPerClickSBVChangeInPercent","adSalesSDChangeInPercent","adSpendSDChangeInPercent","adConversionRateSDChangeInPercent","adImpressionsSDChangeInPercent","adAcosSDChangeInPercent","adRoasSDChangeInPercent","adClicksSDChangeInPercent","adClickThroughRateSDChangeInPercent","adCostPerClickSDChangeInPercent","dspImpressionsChangeInPercent","dspSpendChangeInPercent","dspTotalProductSalesChangeInPercent","dspTotalRoasChangeInPercent","dspTotalDpvrChangeInPercent","dspTotalNewBrandPurchasesChangeInPercent","dspProductSalesChangeInPercent","dspRoasChangeInPercent","localCurrrentTotal","metricsTotal","CreateReportContainer","onCloseReport","customReportStatus","pdfURL","nonDraftCustomStyles","counterRef","dayLimit","setMarketplaceCurrency","setCustomReportId","setReportPresignedUrl","showTabResponsive","setShowTabResponsive","getSelectedFieldLoader","setGetSelectedFieldLoader","setSaveDetailsLoader","setMetricDataLoader","downloader","setDownloader","autoScrollId","setCountDownTimer","setInventoryDatesMessage","setIsRemainderUp","setMetricsDataAvailabilityFlag","setDateToShow","setCurrentEndDate","setTemplateTimeFrame","setTemplateReportTitle","setTemplateReportDescrition","showConfirmCloseReportModal","setShowConfirmCloseReportModal","setShowMetricsTooltip","getAsinDataCount","updateReportStatus","theReportStatus","reptId","startTimer","localReportStatus","seconds","minutes","hours","getTimeRemaining","clearTimer","deadline","setSeconds","getSeconds","getDeadTime","bindGraphDetails","localGrapgh","localEditor","handleDownload","handleTimezoneOffset","handleShowMetricsTooltip","tempMetricsData","checkTacosMetricsAvailability","selectedTime","august1st2022","setYear","metricsFlag","bindMetricsDataAvailability","localMetricsData","revenue_flag","revenue_ppc_flag","revenue_dsp_flag","tacos_flag","units_sold_flag","traffic_flag","conversion_flag","ad_spend_total_flag","sales_ad_spend_flag","sales_dsp_spends_flag","all_ad_sales_flag","all_ad_spend_flag","all_ad_conversion_rate_flag","all_impressions_flag","all_acos_flag","all_roas_flag","all_cost_per_click_flag","all_clicks_flag","all_ctr_flag","product_campaign_report_ad_sales_flag","product_campaign_report_ad_spend_flag","product_campaign_report_ad_conversion_rate_flag","product_campaign_report_impressions_flag","product_campaign_report_acos_flag","product_campaign_report_roas_flag","product_campaign_report_cost_per_click_flag","product_campaign_report_clicks_flag","product_campaign_report_ctr_flag","brand_campaign_report_ad_sales_flag","brand_campaign_report_ad_spend_flag","brand_campaign_report_ad_conversion_rate_flag","brand_campaign_report_impressions_flag","brand_campaign_report_acos_flag","brand_campaign_report_roas_flag","brand_campaign_report_cost_per_click_flag","brand_campaign_report_clicks_flag","brand_campaign_report_ctr_flag","brand_video_campaign_report_ad_sales_flag","brand_video_campaign_report_ad_spend_flag","brand_video_campaign_report_ad_conversion_rate_flag","brand_video_campaign_report_impressions_flag","brand_video_campaign_report_acos_flag","brand_video_campaign_report_roas_flag","brand_video_campaign_report_cost_per_click_flag","brand_video_campaign_report_clicks_flag","brand_video_campaign_report_ctr_flag","sponsored_display_campaign_report_ad_sales_flag","sponsored_display_campaign_report_ad_spend_flag","sponsored_display_campaign_report_ad_conversion_rate_flag","sponsored_display_campaign_report_impressions_flag","sponsored_display_campaign_report_acos_flag","sponsored_display_campaign_report_roas_flag","sponsored_display_campaign_report_cost_per_click_flag","sponsored_display_campaign_report_clicks_flag","sponsored_display_campaign_report_ctr_flag","dsp_impressions_flag","dsp_dsp_spend_flag","total_product_sales_flag","total_dsp_roas_flag","total_dpvr_flag","ttl_new_brand_purchases_flag","product_sales_flag","dsp_roas_flag","shipped_cogs_flag","shipped_glance_views_flag","shipped_conversion_rate_flag","shipped_units_flag","ordered_revenue_flag","glance_views_flag","conversion_rate_flag","ordered_units_flag","generatehtml2pdf","newPDF","output","doc","html2pdf","filename","quality","html2canvas","useCORS","imageTimeout","letterRendering","jsPDF","unit","orientation","compress","pagebreak","mode","after","toPdf","internal","getNumberOfPages","pageSize","setPage","setTextColor","setFontSize","getHeight","getWidth","editOption","localGraphDetails","seller_detail","vendor_detail","localGraphObject","summary","custom_report_graph","localSd","localEd","saveReport","apiDate","selectedField","bindSellerHealthData","localBbepData","pieChartData","saveApiRequests","apis","graphdata","isAddAdditional","responses","responseIndex","availableDataCount","dataAvailebleMetrics","sellerResponse","sellerTotalData","returnObject","seller_performance_availability","allParentAsins","allChildAsins","vendorResponse","vendorTotalData","returnVendorObject","vendor_performance_availability","current_end_date","customTemplateFlag","localApiRequests","localStartDate","localEndDate","_value","removeSBVtypeMetrics","Acctype","sponsoredBrnadVideoMetricsKeys","selectedMetricsKeys","getGraphSelectedFields","getReportGraphSelectedFileds","marketplace_detail","localEditorDetails","graph_details","vendorDetail","getGraphSelectedTemplateFields","getReportTemplate","dispalyTimeCounter","newGraphObject","existingObject","frequencyValue","DashboardReportContainer","frameBorder","allowFullScreen","ReportsSectionContainer","setIsUserAssignedToBP","setBpList","setMarketplaceLoader","setBpLoader","setReportTypeLoader","isCreateReport","setIsCreateReport","setSelectedBp","setReportTypesOptions","setMarketplaceDefaultValue","isEditViewReport","setIsEditViewReport","setReportTemplateOption","setSelectedReportType","setSelectedReportTab","getReportType","getReportTypes","reportOptions","getBpList","getBPUserList","getTemplateList","getReportTemplateList","tempMarketPlaceList","getCustomisedReportAccess","handleTab","timeFrameFilterOption","singleTimeFrameFilterOption","renderStandardReportContainer","selectedCustomDate","showCustomReport","customReportPDFName","ReportSectionFilters","exact","reportSection","InventoryManagementFilters","handleChildBrand","getDropdownComponents","InventoryManagementInfoIcon","infoIconId","RestockLimitsGraph","renderTooltipSeriesValue","showIndicator","maxTooltipDistance","cellStartLocation","cellEndLocation","wrap","axis","pixelWidth","endIndex","startIndex","currentSeriesName","previousSeriesName","createSeries","dx","categoryX","ignoreBounds","lastSeries","each","localSeries","isHidden","isHiding","RestockLimitsContainer","restockLimitsGraphData","noDataMessage","restock_limits","renderRestockDynamicMessasge","RestockStorageTypeInfo","UnderStockOverStockASINMobileView","label9","labelInfo9","labelProductName","labelInfoProductName","renderASINsHTML","valueClass","IventoryTableWrapper","UnderStockOverStockASIN","stockedData","stockedOrderByFlag","stockedOrderByKey","handleSortFilters","marketPlace","setStockedOrderByKey","setStockedOrderBy","reportLoader","onDownloadStockedReport","stockedRef","tabOptions","renderKeyContributionTabs","under_over_stock","available_in_stock","poos_date","s","InventoryManagementStrandedTable","strandedData","strandedOrderByFlag","strandedOrderByKey","stranded_inventory","EstimatedLostSales","isMST12to10AM","estimatedLostSalesReasonList","ELSDynamicMessage","estimated_lost_sales","selectedReason","setSelectedReason","selectedStatus","setSelectedStatus","estimatedLostSalesTab","setEstimatedLostSalesTab","sortedBy","setSortedBy","tableDataCount","setTableDataCount","estimatedLostSalesTableData","setEstimatedLostSalesTableData","totalAsins","totalFees","estimatedLostSalesMetricsData","setEstimatedLostSalesMetricsData","bindEstimatedLostSalesData","apiData","tempTableData","apiTableData","total_asins","total_estimate_lost_sales","lastSoldDate","last_sold_date","inactiveDayscount","inactive_day_count","strandedSince","stranded_since","total_sales","avgDailySales","average_daily_sales","estLostSales","getEstimatedLostSalesData","handleAsinArchiveAndRestoreEvents","activeTab","actionLabel","postAsinArchiveAndRestoreAPIData","getELSDateFilterOptions","getELSDateFilterValue","getELSDateFilterComponents","renderReasonFilter","handleReasonFilterEvents","renderELSDateFilter","renderArchiveStatusFilter","handleStatusFilterEvents","renderDownloadReportButton","renderEstimatedLostSalesMetricsBox","postValueLabel","renderEstimatedLostSalesTableHead","sortingValue","handleELSDataSortingEvents","handleELSTabChangeEvents","lassName","inactiveTab","strandedTab","archiveTab","renderEstimatedLostSalesTableBody","InventoryManagementContainer","hideEstimatedLostSales","restockMindate","setRestockLimitsGraphData","strandedInvetoryData","setStrandedInvetoryData","setStockedData","strandedDataCount","setStrandedDataCount","stockedCount","setStockedCount","setStrandedOrderBy","setStrandedOrderByKey","restockLimitsLoader","setRestockLimitsLoader","tableLoader","setTableLoader","stockedLoader","setStockedLoader","stockedReportLoader","setStockedReportLoader","dataAvailableDate","setDataAvailableDate","stockedPageNumber","setStockedPageNumber","setTab","setEstimatedLostSalesReasonList","todayDateInMST","toLocaleString","timeZone","getMSTHour","getMSTMinutes","getMinutes","isMST12to10AMForELS","noDataMessageForELS","bindRestockLimitGraphData","bindedRes","previous_on_hand","previous_open_shipment","previous_max_shipment","previousUtilization","previous_utilization","changeOnhand","changeOpenShipment","changeMaximumShipment","changeUtilization","onhandLabel","openShipmentLabel","maximumShipmentLabel","utilizationLabel","previousOnhandLabel","previousOpenShipmentLabel","previousMaximumShipmentLabel","previousUtilizationLabel","changeOnhandLabel","changeOpenShipmentLabel","changeMaximumShipmentLabel","changeUtilizationLabel","getRestockLimitsGraphData","isMSTTime","bindData","available_date","getStrandedData","orderBykey","getUnderOverStockedASINData","getUnderOverStockedReportData","custID","getRestockInventoryReportData","bindEstimatedLostSalesReasonList","tempReasonData","getEstimatedLostSalesReasonList","getEstimatedLostSalesReasonListAPIData","GreenCheckBox","ActiveAgreementTable","SetupCheckList","assigneeCount","getAgreementList","getAssigneeCount","checkList","re_assigned","total_steps","displatAgreementType","displayAgreementStatus","SignatureIcon","displayAgreementTable","displayAgreementDataMobileView","UploadDelegation","brandId","setIsChecked","ifStepsNull","setIfStepsNull","editEmail","setEditEmail","brandAssetData","steps","BackToStep","OnBoarding","sendEmail","brand_logo","font_files","brand_guidelines","iconography","additional_brand_material","last_visited_step","SecurityLock","BrandAssetsPreview","showAssetPreview","setShowAssetPreview","documentData","isDeleted","setIsImgDeleted","isImageLoading","setImageLoading","showCommentSection","setShowCommentSection","newCommentData","setNewCommentData","commentsCount","setCommentsCount","commentsLoader","setCommentsLoader","addCommentsLoader","setAddCommentsLoader","commentsData","setCommentData","storeCommentError","setStoreCommentError","maxAnnotationNumber","setMaxAnnotationNumber","setClickOnAddNewAnnotation","setShowClickModal","isClickedOnImage","setIsClickedOnImage","newAnnotationPosition","setNewAnnotationPosition","fileType","showTextArea","setShowTextArea","getComments","documnetId","getCommentsData","max_annotation","storeCommentData","newPosition","storeNewCommentData","selectedFile","showImg","onCommnetsLabelClick","onDeleteComment","deleteComment","pageNo","editComment","updateComment","renderComments","first","last","renderImageAnnotations","ChatBoxIcon","BrandAssetsPreviewBody","BrandAssetPdf","theThing","clickX","clientX","clickY","clientY","percentXImg","percentYImg","CommentAnnotationPanel","AnnotationGoal","viewOptions","customStylesForAlert","BrandAssetUpload","selectedStep","setSelectedStep","isLoadingDocument","setIsLoadingDocument","setDocumentData","showDeleteMsg","setShowDeleteMsg","setBrandAssetData","droppedFiles","setDroppedFiles","noImages","setNoImages","isImgDeleted","upload","showBtns","setShowBtns","selectedDropdown","setSelectedDropdown","downloadIds","setDownloadIds","downloadOptions","uploadCount","setUploadCount","formats","selectedFiles","convertBlobToText","blb","Blob","readAsText","handleDownloadOptions","ids","dropdownValue","setPreviewImageData","getAssetsSummary","tempCounts","total_images","tempKey","is_completed","createMetaData","fileList","documentError","destructureselectedFiles","matchedNameArray","object1","object2","filterFormData","getmatchedName","onUploadProgress","progress","meta","validFiles","loaded","r","newFiles","useDropzone","onDrop","acceptedFiles","getRootProps","getInputProps","redirectTo","deleteImage","imageId","deleteDocument","showDocuments","lastModified","CheckSelectImage","handleDownloadIds","onClickOfObject","BrandAssetSideBar","navigateStep","GrayCheckIcon","BrandAssetBody","DropDownBrandAsset","GrayInfoIcon","DragDropImg","FileCloud","BrandAssetFooter","data-test","only1File","responseType","brand_assets_id","document_ids","setAttribute","appendChild","downloadImage","WhiteArrowRight","onRequestClose","BrandAssetSummary","showDashboard","setShowDashboard","checkSkipped","GrayClockIcon","showBrandAssetMsg","CustomerListPage","CustomerLeftPannel","SideContent","CustomerListTabletView","showPerformance","EditColumn","CustomerListFilters","showContractDetails","showAdPerformance","showDspAdPerformance","showOrderOption","setSelectedColumns","showCustomizeColModal","setShowCustomiseColModal","setIsCsv","displayInputSearchWithRadius","displayManagerFilter","displayRadioCheckFilters","displayPartnerCheckboxesFilter","displayPartnerAgreementTypesFilters","setSelectedVendorDashboard","activeVendorTab","setActiveVendorTab","selectedAccountTypes","mapSelectedColumns","checkedItem","displayColumns","columnList","vendor_dashboard","handleSelectedColumns","getDifference","array1","array2","displayVendorSalesPerformanceView","orderedRevenueColumns","shippedCOGsColumns","handleToggleToggleBtn","handleSelectAllColumn","newColumnsToAdd","dateArray","uniqueColumns","arrayList","displayCustomiseColumnsFeature","TableColumns","displayCustomiseColumns","displyPartnerDropdownFilter","dropdownKey","displayPartnerDropdownFilterRow","onClickCapture","CustomerListLeftSidePanel","CustomerListTablet","generateLogoCompanyNameAndGs","generateCompanyStatus","generatePerformance","showContractsList","showCollapseButton","showChildContracts","displayAccountStatus","returnTooltipMessgeLWA","redirectToCustomerDetailView","generateContractDetails","child","brand_growth_strategist","lwa","displayMetricsData","metricsUnit","actualValue","grayArrow","matrics","renderAdPerformanceDifference","displayMetricsLabelWithValue","labelPrefix","renderCustomerDetails","dashboardSC","dashboardVC","parentCustomer","child_customer","renderChildContractHtml","ChildCustomerListView","colSpanValue","displaySPAdTableData","displaySalesPerformanceTableData","visibility","generateChildBrandTableHeader","thead","returnTableType","renderChildCustomerList","CustomerListRightSidePanel","totalPageCount","isCustomTimeFrame","customerListData","getCustomer","redirectIfContractExists","showContracts","setShowContracts","setShowChildContracts","colSpanCount","returnAccountStatusClass","statusClass","sellerArray","vendorArray","toolTip","classStatus","item1","showSellerVendorCentral","companyStatus","accountStatus","contractAccountType","FontIconWrapper","displayContractLabel","generateContractHTML","contract_id","CountDayClock","CheckFileIcon","EditFileIcon","contractLength","reduceContractLength","childBps","getChildActiveContracts","toFixedValue","isTwiceReplace","getTableHeaderLabel","SortUp","getTableData","selectedArrow","renderHeaders","ad_manager","salesSortOptions","sponsorAdSortOptions","dspAdSortOptions","CustomerList","selectInputRef","isBGSLoading","setIsBGSLoading","allowApiCall","setAllowApiCall","brandGrowthStrategist","setBrandGrowthStrategist","setStatus","setSelectedValue","setFilters","setShowContractDetails","setShowPerformance","setShowAdPerformance","setShowDspAdPerformance","setDefaultVendorDashboard","OrderedRevVendorValues","shippedCOGsVendorValues","isOrderedRevFieldSelected","isShippedCOGsFieldSelected","setColumns","setOrderByFlag","setShowOrderOption","customerAccountTypes","isShowPerformance","isShowAdPerformance","isShowDspAdPerformance","customDateData","setCustomDateData","showSortDropdown","setShowSortDropdown","setExpiringSoon","addendumStatus","setAddendumStatus","filterCollapse","setFilterCollapse","CustomDateFilter","customerList","warning","adm","brand","getGrowthStrategist","gs","getAddendumStatus","getStatus","statusResponse","getSellerType","orderByAccountType","selectedData","SortOption","salesDefaultDate","spAdDefaultDate","dspDefaultDate","setStartEndDateOfFilter","select","clearValue","getSelectPlaceholder","TimeFrameFilters","bindDropDownValue","selectedUserValue","getDropDownOptions","optionsFor","searchFor","displayFilterCollapseIcon","filterType","arrowColor","filterLabel","dataArray","displayPartnerAgreementTypesOption","checkboxId","filtereData","formattedData","addAnd","getContractNames","bgsSelection","AccountSetupcustomStyles","productStatusColor","scheduled","optimized","unoptimized","ProductCatalog","productAssetsRequest","setProductAssetsRequest","requestedProducts","setRequestedProducts","getProductCatalog","onRequestAssets","requestProductAssets","products","statusOptions","onRequestClick","onClickOfCheckbox","main_image","Logo","total_variant","RequestPlan","CustomerDetailsFooter","ProductDelegation","productAsset","setProductAsset","isAssignElse","setIsAssignElse","useLocation","splittedPath","productAssetsId","getProductAssetsData","getRequestedProducts","updateProductAsset","onAskSomeoneElse","products_detail","CustomerMainContainer","customerLoader","customerSelectedTab","onScrollPage","setOnScrollPage","setSidePanelToggle","isSaveData","allMarketplacesList","setAllMarketplacesList","setOriginalMarketplacesList","setMemberData","customerError","agreementDetailModal","setChildBPList","childBPAllList","setChildBPAllList","isCustomerActive","setGoalsAccountTypeFlag","playbook_epic_id","main_playbook_access","setShowPlaybook","setPlaybookTeamsList","setPlaybookServiceList","setPlaybookTabActive","windowsScrollEvents","scrollY","bindChildBPsList","tempChildBPList","filteredResponseData","spDetail","spapi_oauth_code","selling_partner_id","redirct_uri","redirectToSelectedTab","redirectToPerformanceTab","redirectToCustomerView","showSummaryDashboard","display_summary_dashboard","checkUserAssignedToBP","getCustomerMembers","isAssignedUser","tempList","bindBPsAllMarketplaceList","sortedResponseData","allObject","getBPsAllMarketplaces","formatedApidata","goalsAccountTypeFlagData","getGoalsAccountTypeFlag","bindPlaybookTeamData","tempTeamData","getPlaybookTeam","getPlaybookTeamData","bindPlaybookServiceListData","getPlaybookServiceList","getPlaybookServicesListData","checkOnboardingPlaybookTaskStatus","statusData","taskStatus","isCompleted","isOnboardingTab","sideBarMenu","displaySidePanelCollapseIcon","displayTabDropdown","brand_assets","product_assets","displayDashboardTabContainer","loggedInMail","showAdperformanceSpecificBP","showSalesReportSpecificBP","display_seller_health","customer_onboarding_id","displayCustomerTabContent","am4themesDataviz","BBEGoalChart","CHART_ID","chartRef","reverse","xAxis","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight","tooltipX","tooltipY","darkBlue","BBEGoalHighLevelMetrics","onSendDate","initialOnSendDateRef","last_updated","getKPIMetrics","getBBEGoalMetrics","returnClassName","actual","total_revenue","planned","graph_data","Dayjs","avg_billing_cap","rev_share","rev_per_employee","average_ltv","renderFinancial","net_new_customers","onboarded","offboarded","renderPartners","BBEGoalRevShareContribution","contributionLoader","setContributionLoader","selectedContributionOption","setSelectedContributionOption","contributionData","setContributionData","getContributionData","getRevShareContributionData","renderPositiveNegativeOptions","selectedContibutionData","positive","negative","previous_date","current_date","previous_rev_share","current_rev_share","change_in_percentage","contribution_bracket","renderDekstopView","BBEGoalDashboardContainer","setMonthYear","finalMonthYear","setFinalMonthYear","setUpdatedDate","displayTimeFilterOption","CollapseContainer","ThanksPage","AmazonAccountPermission","NavigationHeader","backStep","skipStep","stepData","verifiedStepData","stepName","redirect","originalEmail","stepResponse","CreateAccount","assignTo","setAssignTo","setGetEmail","listen","savePassword","loginData","is_reassigned","updateOnBoardCustomer","re_assigned_user_email","validate","multiple_customers","password","CompanyDigital","assignedToSomeone","getIncompleteStep","CheckStep","user_name","user_step","step_id","AdditionalBillingContact","disabledConditionForBillingContact","contactApiErrors","setContactApiErrors","contactIndex","tempBillingContact","tempBillingContactForDelete","deleteContact","uniqueKeyNew","displayNewErrorMessage","oldContacts","displayOldErrorMessage","showAPIErrors","generateBillingContactHTML","disableAddContactButton","BillingInfo","summaryDetails","showDSPContact","sameAsBilling","checkIfContactAlreadyPresent","billingContactWithoutPhone","currentValues","newContactDataDetails","newContactData","oldContactData","emptyObj","response1","contact1","tempContact1","existingContacts","newError","documentElement","postal_code","disableWhenError","AmazonVideo","showVideo","setShowVideo","videoData","marketplaceDetails","allow","seller_central_info","seller_ad_info","vendor_central_info","vendor_ad_info","mapVideoData","SingleAccountMarketplaces","accountDetails","mapSecondaryMarketplaceValues","setDefaultForSecondary","advertiseForMarketplace","mapApiErrors","localVendor","localSeller","accountRedirectURL","doesntAdvertise","setDoesntAdvertise","arrayToMap","mapMarketPlaceValues","tempValue","entry","seller_marketplace","vendor_marketplace","smallcaseAccountType","checkStatus","HybridAccountMarketplaces","checkCentralDetails","sellerAdvertiseForMarketplace","vendorAdvertiseForMarketplace","sellerDetailsCollapse","setSellerDetailsCollapse","vendorDetailsCollapse","setVendorDetailsCollapse","doesntSellerAdvertise","setDoesntSellerAdvertise","doesntVendorAdvertise","setDoesntVendorAdvertise","checkSuccessfulMsg","GreyClockIcon","ForwardOrangeIcon","AmazonMerchant","secondaryMarketplaces","setSellerMarketplaces","setVendorMarketplaces","localNoAmazonAccount","customVideostyle","throttleTimer","spData","clearTimeout","sellerID","vendorID","seller_central_name","vendor_central_name","vendor_code","sellerAccount","vendorAccount","apiCalls","sellerApi","vendorApi","sellerErrors","vendorErrors","generateAmazon","checkSuccessMsg","doesnt_advertise","mapAccountAdvertiseNames","accountID","advertiser_name","updateSellerMarketplaces","updatedMarketplaces","updateVendorMarketplaces","AccType","errorEle","updatedSellerError","errEle","setDefaultValues","isSameMarketplace","maketplaceName","sortedMarketplace","generateAccountType","VideoCall","validateMarketplaces","isMandetoryFieldsFilled","maketplace_name","generateAdvertiser","generateMarketplaces","btnDesign","AmazonDeveloperAccess","isSecondary","combinedMarketplaces","isPrimarySeller","isPrimaryVendor","saveAmazonAccount","seller_manual","vendor_manual","updateAmazonAccount","generateCheckBoxForNoAccount","no_seller_account","no_vendor_account","permitted","allPermitted","disableBtnUntilAllChecked","Summary","skipAmazonAccount","setSkipAmazonAccount","customerOnboardingId","isArray","step_not_applicable","getPath","Thanks","Info","alreadyUser","setAlreadyUser","reassignedData","setReassignedData","reassignedUser","setReassignedUser","alreadyAssigned","verifyStepUser","LockFinish","AskSomeone","setStepData","setDisableBtn","setOpenCollapse","editCustomerEmail","step_assigned_id","handleChanges","CheckSteps","disableBtn","checkOnceVisited","ContractActivityLog","isApicalled","activityLoader","checkContractStatus","getContractActivityLogInfo","loggedInuserInfo","getContractStatusData","statusSrc","dispalyStatus","displayActivityLogDetails","presignedURL","displayUserProfileImage","displayFormattedActivityDetail","displayActivityStatus","displayActivityLogFooter","renderContractActivityPanel","isRequired","additional_services","arrayOf","oneOfType","instanceOf","sales_threshold","yoy_percentage","fee","monthly_discount_amount","monthly_discount_type","one_time_discount_type","one_time_discount_amount","dsp_fee","dsp_length","monthly_retainer","objectOf","object","steps_completed","addendum","amazon_store_package_custom","dspAddendum","custom_amazon_store_price","billing_cap","statement","checkDisabledConditionForServices","disabledLimit","findItemInFormData","checkDisabledConditionForListing","AdditionalOneTimeServicesSubTabs","tabName","setUpdatedFormData","additionalOneTimeServicesLength","oneTimeService","updatedFormData","additionalOnetimeServices","setAdditionalOnetimeServices","showFooter","additionalOnetimeSerError","setAdditionalOnetimeSerError","updateAdditionalOnetimeServicesSelectedData","clearOneTimeQntyError","updateStatementErrorValue","sectionError","combinedOneTimeServices","filterNotIncludedOneTimeServices","showOneTimeServicesSubTabs","setShowOneTimeServicesSubTabs","oneTimeServiceSubTabOptions","setOneTimeServiceSubTabOptions","includesSubTabs","combined","clearOneTimeServiceError","objectKeys","remainingError","checkDisableCondition","limit","handleOneTimeServiceSubTabQuantity","oneServices","amazonStoreItem","itemQuantity","handleChangeOneTimeServicesSubTabs","defaultOneTimeServiceOptions","defaultAmazonStorefrontDeleteIds","combineOneTimeServices","combineadditionalOnetimeServices","combineadditionalOnetimeServicesNew","uniqueDeleteResult","obj2","getRemainingServices","containsAmazonStorefront","findRemainingOneTimeServicesOnCheck","remainingAmazonStorefrontCreatedData","oneTimeServiceTemp1","deletedOneTimeServiceId","oneTimeServiceTemp2","tempDeletedServices","returnSubTabName","existingUpdatedFormData","handleOneTimeServiceSubTabNumber","errorMsg","AdditionalOneTimeServices","onAddDiscount","changeQuantity","discountData","notIncludedOneTimeServices","setNotIncludedOneTimeServices","general","seo","photography","additionalOneTimeSerErrQuantityLength","generateHeading","showOneTimeSubTabs","generateCollapseHTML","oneTimeServiceData","showDiscountLabel","showAdditionalOneTimeServiceError","ServiceAgreement","serviceAgreementArray","agreementErrCount","statementErrCount","renderCollapseBtnErrorHtml","displayError","showRightTick","nextStep","additionalMonthlySerError","setShowAmazonPlanDropdown","amazonService","showAmazonPlanDropdown","AmazonStoreOptions","amazonStoreCustom","setAmazonStoreCustom","servicesFees","showAmazonStorefrontDropdown","setShowAmazonStorefrontDropdown","agreementWithCurrencyDetails","change_agreement_start_date","subFields","MonthlyServicesSubTabs","monthlyService","parentServiceName","originalData","additionalMonthlyServices","setMonthlyAdditionalServices","fetchUncommonOptions","showSubTabs","setShowSubTabs","subTabOptions","setSubTabOptions","parentServiceNameForDependencyArray","findSavedService","savedService","firstSubTabService","createService","contract_addendum_id","serviceInOriginalData","filterCreateServiceOfUpdatedFormData","deleteIdOfUpdatedFormData","handleChangeSubTabs","filteredServices","handleServices","AdditionalMonthlyServices","setShowCollpase","showSection","updateAdditionalMonthlyServices","addendumDetails","monthlyServiceEnhancedOrAPlus","comparableArray","itemInFormData","selectedItem","addendumNewData","updatedDeleteList","updatedCreateList","deletedUncheckedItemList","changedService","checkDspAdvertisingDisabledCondition","can_add_dsp_service","AdditionalMarketplaces","getOptions","additionalMarketplacesData","setAdditionalMarketplaces","updateAdditionalMarketplaces","setAdditionalMarketplace","setMarketPlaces","marketplacesResult","defaultData","setShowAdditionalMarketplace","showAdditionalMarketplace","originalDataAdditionalMarketplacesLength","getServicesAccordingToAccType","accntType","listOfSelectedMarketplace","vendorMarketplaceResult","itemsToBeDelete","choice","removedValue","otherList","otherFormDataList","generateMultiChoice","ListingTranslation","handleChangeListTranslation","StandardServicesForNonUS","setNonUSserviceError","nonUsServiceError","displayMarketplaceName","setVatMarketplaces","nonUSStandardServices","setNonUSStandardServices","nonUSStandardServiceMarketplaces","setNonUSStandardServicesMarketplaces","originalVATMarketplaces","setOriginalVATMarketplaces","nonUSMarketplacesForVATRegistration","setNonUSSMarketplacesForVATRegistration","selectedStandardServicesFrequency","setNonUSStandardServicesFrequency","vatFilingData","setVATFilingData","isCheckedService","tempVATFillingData","uniqueResult","getNonUSStandardServicesOptions","checkedServices","getNonUSStandardServicesFrequency","setCheckStatusOfService","setDefaultValueToVATREgistration","VATRegistrationServices","vatRegistrationMarketplaces","checkClickedElementAlreadyExists","clickedValue","contractData","displayVATRegistrationField","newContractData","newAddendumData","updatedVATData","handleVATRegistrationMarketplaceChange","errorHandling","handleVATFiling","updatedVATFilingData","unique_id","servicesExceptVATFiling","updatedMarketplace","displayVATFillingField","removeService","setDefaultCheckToService","itemsInFormData","deletedID","handleChangeOfStandardServices","onAddMoreService","StandardServices","stdServices","selectedStdServices","allSelected","setAllSelected","selectAllStdServices","originalServices","tempServices","addendumData","serviceLength","removeServicesWithId","serviceIds","deSelectAllStdServices","showServiceInTable","createServices","tempCreateServices","createContractData","AdvertisingDashboards","advertisingDashboards","monthlyAdBudget","amcServiceError","setAmcServiceError","getAddedOrRemovedAMCServices","is_amc_management","dataToBeSearchOn","standardDashboardObj","advancedDashboardObj","CustomizedDashboardObj","removedAMCServices","amcData","remainingamcServices","deletedServices","serviceItem","handleAmcDashboard","customizedDashboardData","AdvertisingServices","advertisingServices","dsp_fee_second","dsp_fee_third","p","v","handleAmcServices","deletedServicesIds","checkIfAllSelectedAMCServicesFOC","is_amc_service_discount","dataToUpdate","StatementOfWork","contractError","setContractError","savedMarketplaces","changeListOptimization","displayAdditionalMonthlyServices","StatementWork","agreementAccountType","AdditionalDspMarketplaces","dspAdditionalMarketplaces","setSectionError","dspMarketpalcesError","setDspMarketpalcesError","one_time_buget","originalItem","updatedFormItem","removeBudgetAllocations","displayMrketplaces","DspMarketplaceBudgetAllocations","setShowError","runValidateBudget","oneTimeBudget","dsp_one_time_fee","monthly_budget_distribution_equally","one_time_budget_distribution_equally","changed_dsp_start_date","one_time_budget","budgetValue","getErrorCount","oneTime","firstBudgetAllocationError","secondBudgetAllocationError","thirdBudgetAllocationError","budgetTypeValidation","budgetArray","totalBudget","adBudget","temp1","temp2","validateBudget","convertMarketplacesToNumber","updatedDspMarketplace","budget","MonthlyDSPBudgetAllocation","firstMonthDate","secondMonthDate","thirdMonthDate","returnDspMonthlyDates","budgetType","formattedFirstDateForBE","formattedSecondDateForBE","formattedThirdDateForBE","monthsList","formattedDateForBE","isDynamicMonthlyBudget","monthly_budget_second","monthly_budget_third","firstMonthDistributedValue","secondMonthDistributedValue","thirdMonthDistributedValue","monthlyBudgetFirst","monthlyBudgetSecond","monthlyBudgetThird","totalBudgetFirst","totalBudgetSecond","totalBudgetThird","DspAdvertising","dspErrCount","setCalculatedDate","setFirstMonthDate","setDspAdvertisingMaxDate","changedDspStartDateFlag","setChangedDspStartDateFlag","dynamicMonthlyBudget","setDspFields","updatedDspDetails","setupdatedDspDetails","monthly","currentMonthsFirstDate","updatedDSPAddendumDetails","zeroAcceptableField","addDaysNew","theDate","tempLastDate","calculateDspAdvertisingMaxDate","tempLastDSPDate","calculateDate","Advertise","removeOneTime","handleCheckboxChange","AddendumSection","onEditAddendum","setShowEditor","setNewAddendum","originalAddendumData","CreateAddendum","dspAdvertisingMaxDate","RevenueShareThreshold","thresholdTypeOptions","selectedThreshold","onThresholdTypeChange","contractErrorSalesThreshold","yoyPercentageOptions","yoyPercentage","threshold","RevenueThreshold","feeStructureErrors","thresholdOptions","generateThresholdOptions","RetainerOnly","retainerOptions","retainer_type","generateRetainerOptions","SellerFeeStructure","vendorSameAsSeller","setFeeStructureErrors","combinedRevShareFlag","checkAddendumData","addendumFeeType","isTriggered","setIsTriggered","monthlyRetainerValue","revShareLimitValue","revShareThresholdLimitValue","revShareAndRetainer","addendumOption","updateFeeTypeOptions","setUpdateFeeTypeOptions","tempKeys","feeTypes","rev","errorCount","vendor_billing_report","checkFixedRetainer","checkMandatoryFieldsOfFeeType","isCombined","vendor_same_as_seller","clearMonthlyServiceError","retainerType","noRetainerType","noRevShare","clearErrorCount","vendorId","billing_minimum","validateBillingCap","checkAllFieldsOFRetainerPresent","onValueChange","onFocus","VendorFeeStructure","setVendorSameAsSeller","clearError","handleCheckbox","CombinedRevShare","FeeStructureContainer","marketPlacesOptions","getMonthlyServices","getFeeStructureDetails","manageErrorCount","disableCombineRevShare","setCombinedRevShareFlag","feeStructure","displayErrorCount","CurrencyIcon","AgreementSidePanelContainer","additionalMarketplaceError","setAdditionalMarketplaceError","setAdditionalMonthlySerError","setOriginalAddendumData","setShowDiscountModal","setDiscountFlag","isEditContract","marketPlaces","additionalMarketplaces","getContractDetails","setIsEditContract","setContractLoading","setCustomerErrors","isDocRendered","setMarketplaceDropdownData","setSelectedDiscount","agencyFeeOptions","setEndDate","setCheckAddendumData","handleAddendumModal","accountLength","setAccountLength","setSelectedAmazonStorePackService","setSelectedThreshold","agreementCurrency","setAgreementCurrency","formDataAdditionalMarketplacesLength","originalDataAdditionalOneTimeServicesLength","additionalOneTimeServicesCreateLength","agreementDataContractStatusValue","setrunValidateBudget","updateAgreementErrorValue","updateAgreementErrorMinusValue","agreementErrvalue","updateStatementErrorMinusValue","statementErrValue","updateDspErrorValue","updateDspErrorMinusValue","dspErrorValue","updateAdditionalOnetimeServices","isCreate","handleAMCServices","eventName","eventValue","dspFee","dspFeeArray","dspFeeFirst","dspFeeSecond","dspFeeThird","getDSPMonthlyAdBudget","nonStandardServices","customizedData","deletedIdOfAdvancedData","advancedDashboardUpdatedData","handleUpdatedFormDataEvent","isCustomerId","getLength","len","change_addendum_start_date","addendum_start_date","itemFound","dspErrorCount","subItem","itemInOriginalData","listWithoutAmazonStorePack","itemInList","removedEle","tileDisabled","agreementStartDate","displayContractType","dateToday","isAMCService","serviceType","isOneTimeService","errorTypeCount","collapseType","collapseSection","GreenCheck","RedCross","displayEditFields","Props","sidebarSection","setSidebarSection","ContractEditConfirmation","showEditContractConfirmationModal","editAgreementChanges","DiscardChangesConfirmation","showDiscardModal","discardAgreementChanges","Discount","discountFlag","selectedDiscount","getDiscountData","showAmountInput","setShowAmountInput","selectedDiscountType","setSelectedDiscountType","enteredAmount","setAmount","handleSelectedDiscountType","discountType","setDefaultValue","handleNumberFormat","handleErrorMsg","apiErrorDiscountType","serviceResult","marketplaceResult","displayErrorMsg","handleModalRadioCheck","Title","handleRadioChange","contractPostData","addendumPostData","postAddendumData","postContractData","is_addendum_discount_changed","DiscountModal","showDiscountModal","closeDiscountModal","setDetails","PauseAgreementConfirmation","showPauseModal","onClickOfUpdatePauseContract","setShowPauseModal","getPauseAgreement","SendReminder","transactionalData","reminderError","renderbuttonHtml","removeParams","setReminderErrors","sendReminder","primary_email","Contact","Contacts","contactInfoLoading","setModalName","requestSignatureError","setHelloSignEnterDateTextFlag","selectedRecipient","onSelectContact","PhoneIcon","AddNewContact","contactModalName","contactFields","saveContact","VerifyDocument","pdfData","setRequestSignatureError","ccEmails","setCCEmails","ccEmailErrors","setccEmailErrors","sendContractCopy","setSendContractCopy","mapValue","emailList","isValid","handleCCEmailAddress","ValidateEmail","setDisabledReqSignBtn","cc","send_contract_copy","contract_data","contract_addendum_data","designURL","design_url","requestSignatureContractdata","cc_email_address","hellosign_request_id","sign_url","requestSignatureAddendumdata","verifyDocument","AgreementAprovalConditions","setApprovalCondition","monthlyRetainerLimitValue","monthlyRetainerLimitStringValue","revShareThresholdLimitStringValue","checkCondition","retainerObject","period","valueLimit","valueLimitInString","feeTypeStr","retainerArray","approvalConditionsTemp","feeStructureTemp","sellerOrHybrid","vendorOrHybrid","quartelyConditionSeller","quartelyConditionVendor","monthlyConditionSeller","monthlyConditionVendor","RequestApproval","dspOrAmcRequestApprovalUser","is_dsp_amc_primary_request_approvers","approvalNote","setApprovalNote","approvalCondition","contactOptions","setContactOptions","setSelectedRecipient","selectedPrimaryApprovalUser","setSelectedPrimaryApprovalUser","selectedFinalApprovalUser","setSelectedFinalApprovalUser","finalApprovalUsersList","setFinalApprovalUsersList","approvalUserOptions","setApprovalUserOptions","getPrimaryApprovalUser","getApprovalUserDetails","primaryApprovalUsers","finalApprovalUsers","dspAmcApprovalUsers","primary_request_approvers","picObject","final_request_approvers","dsp_amc_primary_request_approvers","contacts","noSignedAgreement","userlist","onRequestApprovalChange","displayApprovalInfo","requestApprovalData","suggested_recipient","sendRequestApproval","RequestSignature","agreementFormData","contactData","setTransactionalData","BGSManager","setBGSManagerData","draftFrom","getBGSManagersData","managerData","getTransactionData","disabledCon","onClickFunc","btnLabel","RequestSignatureModal","showCloseBtn","updated_at","clickedBtn","ContractFooter","onEditcontract","isFooter","setShowDiscardModal","checkApprovalCondition","renderEditContractBtn","createAgreementDoc","pauseAgreementData","setPauseAgreementData","agreementGetData","setAgreementGetData","BGSManagerOrAdmin","rightTickCondition","updateContractData","cancelStatus","saveContractData","updatePauseContract","pauseAgreementPauseData","TodaysDate","updatePauseAgreement","pauseRes","contractStatusData","getDataToUpdatePauseAgreement","pauseAgreement","is_extended","is_paused","renderContractButtonHtml","loaderLabel","renderRequestButtonHtml","btnClassName","checkIsEditContract","displayFooterForManagers","displayApprovalBtn","displayApprovalFooterForInternalUsers","itsDspOrAmcWithApprover","displayApprovalFooter","getPauseAgreementDetails","openAfterEffectivityDateModal","displayUnsavedChangesCount","displayRequestSignatureFooter","getNonUSStdServicesOfAddendum","data1","data2","saperateFormDataNonUsmarketplaces","dataInfo","filteredItem","addedRemovedStandardServices","uniqueNonUsServices","seperateVATFilingMarketplaces","addedVatFillingNonUsServices","seperateFormDataInternationalNonUsServices","formDataInternationalNonUsServices","originalDataInternationalNonUsServices","vatRegistration","vatFilling","internationalService","getUpdatedStrByReplacingChannelType","strData","Addendum","templateData","mapMonthlyServices","mapAdditionalMarketPlaces","mapMonthlyServiceTotal","mapVariableMonthlyService","displayBBELogo","styleForChangedValues","defaultEffectivityDateText","createEmpty","updatedAddendumm","ShowRetainerThresholdValues","quartelyKey","monthlyKey","renderAddendumStandardUsServices","returnData","servicesData","effective_date","mapStandardServicesTable","renderListingOptimizationServices","service1","service2","addendumService","originalservice","displayMonthlyServiceTable","serviceAddedResult","marketplacesAddedResult","serviceRemovedResult","marketplacesRemovedResult","accntTYpe","addendumMarketplaces","originalMarketplaces","renderAddendumAMCServices","existingServices","getObjectDifference","obj1","combinedObj","checkConditions","param1","param2","accountContractAddendum","formDataFixedThresholdType","isDiscountAdded","displayMontlyServiceAddendum","checkIsMonthSame","originalBudgetDate","formDataBudgetDate","displayOneTimebudgetAllocation","dspMarketplaceOfOriginalContract","originaldataDspMarketplace","displayDynamicMonthlyBudgetAllocation","nonAccountContractAddendum","listing_optimization_effective_date","listing_translation_effective_date","removedStandardUsServices","standardUsServicesUniqueResult","uniqueInternationalNonUsServices","formDataNonUsmarketplaces","originalDataNonUsmarketplaces","removedNonUsServices","formDataVATFilingMarketplaces","originalDataVATFilingMarketplaces","removedVatFillingNonUsServices","addedInternationalNonUsServices","remmovedInternationalNonUsServices","addedAMCServices","setDspAdvertisingEffectiveDate","mapVatRegistrationTable","renderNonUSStandardServices","vatReg","vatFiling","internationService","displayDynamicDspFeesForAddendum","showDspLength","DigitalSignature","contractAddendumChanges","oneTimeSpecificServices","oneTimeSpecificServicesFees","returnOneTimeServiceNames","serviceNames","oneTimeServiceShortNames","returnServiceFees","itemFees","returnOneTimeServiceFees","serviceFees","returnOneTimeServiceFeesTotal","serviceFeesTotal","Agreement","mapServiceTotal","customerAddress","customerCity","customerZipCode","getAgreementAccorType","OTSA","one_time_service_agreement","recurring_service_agreement","customAmazonStorePrice","tdService","showOneTimeServiceSubTabRow","oneTimeSpecificServicesTemp","mapOnetimeServiceTotal","oneTimeSubTotal","oneTimeDiscount","fixedFee","n","oneTimeDiscountData","oneTimeAmountAfterDiscount","oneTimeTotal","oneTimeDiscountType","calculateTodalFee","showOneTimeServiceTable","mapLanguage","DSPAddendum","endMonthDate","displayFirstMonthDateRange","returnDspMonthAndDays","handleNewDate","monthDateOrder","calculateTotalDays","firstMonthdays","totalDays","extraDays","secondMonthdays","thirdMonthdays","totaldays","renderDspMarketplaces","renderDspBudgetMarketplaces","displayMarketplace","showDynamicBudgetAllocation","dsp_addendum","mapDspDetails","displayMarketplacesTable","showAMCServiceTable","Statement","notIncludedMonthlyServices","displayListingOptimisationInfo","displayRevisionPolicyInfo","monthlySubTotal","monthlyDiscount","additionalMarketplacesTotal","monthlyDiscountData","monthlyAmountAfterDiscount","monthlyTotal","monthlyDiscountType","renderStdServiceRow","displayNumberOfASINs","checkIsAPlusService","showMonthlyServiceTable","statement_of_work","showRevTable","sellerResult","vendorResult","sellerMarketplaceResult","showMonthlyServiceTablesAccordingToAccType","design","mapStandardServices","showStandardServicesTable","mapVATRegistrationMarketplaces","mapVATFilingMarketplaces","customerService","logistics","mapRemainingServices","showStandardServicesNONUSMarketplacesTable","AddedServicesEffectivityDatesModal","showEffetivityDatesModal","setShowEffetivityDatesModal","feeStructureAddendumChanges","feeTypeChangeFromRetainer","feeTypechangeFromRevShare","revShareChanged","thresholdchangedNone","fixedThresholdType","quarterlyandMonthlyThresholdType","billingCapchanged","billingMinimumChanged","setFieldDate","dateValue","updatedServices","updatedMarketplacesFormData","updatedServiceFormData","updatedService","handleData","monthlyMarketplaceService","displayDateInputBox","EffectivityDateModalDatePicker","side","filteredMarketplace","displayServices","displayServiceName","sellerChanges","vendorChanges","checkFeeStructureContainsRevShare","displayServiceLabel","fieldSet","displayListingServices","renderMainSetOfServices","ContractContainer","setLogoURL","setOriginalData","setMarketplacesResult","editContractFlag","setEditContractFlag","setShowEditContractConfirmationModal","setPDFData","setNotIncludedMonthlyServices","downloadApiCall","setDownloadApiCall","setIsDocRendered","setDiscountData","showPageNotFound","setPageNotFoundFlag","loaderFlag","setLoaderFlag","contractDesignLoader","setContractDesignLoader","calculatedDate","setSecondMonthDate","setThirdMonthDate","tabInResponsive","setShowtabInResponsive","setDspAdditionalMarketplaces","setActivityLoader","setIsApicalled","showSignSuccessMsg","setShowSignSuccessMsg","setOneTimeService","setMonthlyService","setAmazonStoreOptions","setThresholdTypeOptions","setYoyPercentageOptions","setServicesFees","setStdServices","originalStandardServices","setOriginalStandardServices","setAgencyFeeOptions","setDisableCombineRevShare","setContractAddendumDetails","showAddendum","setAddendumDetails","helloSignEnterDateTextFlag","enableDownloadBtn","setEnableDownloadBtn","vatMarketplaces","setcombinedOneTimeServices","notIncludedOneTimeServicesNew","setNotIncludedOneTimeServicesNew","localDsp","localPrimaryRecurring","localAdditionalRecurring","setSavedMarketplaces","setAdvertisingService","detailsId","contractStatusValue","contractTypeDsp","contractTypeRecurring","contractTypeOne","primaryMarketplaceName","customerCompanyName","getBase64Image","imageToDataURL","checkAddendumStatusForMarketPlaces","formDataId","contractStatusForAddendum","checkAddendumStatusForMarketPlacesTemp","addendumStatusMarketPlaces","filteredAgreementTemp","filteredAgreementcancel","filteredAgreement","localAdditionalMarketplaces","additional","getSavedMarketplaces","dspMarketplacesInFormData","sameDspMarketPlacesTemp1","samePrimaryMarketPlacesTemp","sameAdditionalMarketPlacesTemp","sameDspMarketPlacesTemp","item2","elem","localAccountType","includedServices","servicesNotIncluded","availableAdditionalMarketplaces","addMonths","secondMonth","thirdMonth","findNotIncludedOneTimeServices","savedSubOneTimeServices","formattedSubService","mostUniqueResult","subTabNameTemp1","subTabNameTemp3","subTabNameTemp5","mostUniqueResult1","alreadySelected","resultDataForMonthly","SellerSelectedServices","VendorSelectedServices","notFoundSeller","notfoundVendor","isFound","o1","o2","getContractActivityLog","getServiceTypes","filteredMonthlyServices","is_deleted","getAdvertisingServices","fetchAdvertisingServices","getDiscount","prevErrors","sellerErrorcount","vendorErrorcount","mrktplaceData","multi","displayName","sellerType","getFeeStructure","isMounted","tempService","showTabInResponsive","monthlyServicesData","calculateTotalFee","showOneTimeTable","checkQuarterly","checkMonthly","checkMissinInfoForFeeStructure","checkMonthlyBudget","checkMonthlyOneTimBudget","getMonthlyServicesofContract","getDifferenceMarketplaces","ShowAddendumRetainerThresholdValues","changeAgreementStartDate","addendumStartDate","changeAddendumStartDate","agreementSignatureData","statmentData","dspAddendumSignature","newAddendumAddedData","addendumSignatureData","finalContractAgreement","finalAddendumAgreement","localAddendumDetails","sectionFlag","marketplacesWithoutPrimary","contractToFilter","flagDSPAdevertising","updateDiscount","typeOfService","handleDiscount","sellerTotalFees","vendorTotalFees","getUpdatedFeeStructure","updatedFields","selectedFeeType","selectedRetainerType","selectedThresholdType","checkThresholdLimitByAccType","thresholdLimit","checkForQuarterly","checkForMonthly","checkDSPFeeCondition","contractTermLength","checkRevShareApprovalCondition","isBillingCapExists","checkMonthlyRetainerApprovalCondition","checkForRetainerAgreement","updatedformFields","modalFields","retainerValueChanged","retainerValueChangedForMonthlyOrQuertery","combinedRevshareChanged","monthlyServicesChanges","handleErrorCount","agreementErrors","feeStructureErrorCount","dspErrors","setMandatoryFieldsErrors","checkEditFlagComeFromOuterFile","historyState","getContractAddendumDetails","addendumId","getContractAddendum","showSuccessToastr","lastIndexOf","createPrimaryMarketplace","statementData","updateMarketplace","updateMarketplaceRes","createMarketplace","createMarketplaceRes","saveChanges","additionalMonthlySerRes","additionalOneTimeServRes","addendumRes","updateCustomerRes","sellerFeeStructureRes","vendorFeeStructureRes","contractRes","standardServicesRes","standardNonUSServiceRes","dspMarketplacesRes","amcServicesRes","filteredRes","failApis","updatedKeys","fieldsToDeleteList","feeErrors","feeBEErros","errorKeys","updateMarketplaces","updateMarketplacesRes","additionalMonthlyApi","additionalOneTimeApi","AccountApi","AddendumApi","updateCustomerApi","sellerFeeStructureApi","vendorFeeStructureApi","stdServicesApi","standardNonUSServiceApi","dspMarketplacesApi","amcServicesApi","addendumDetail","contractDetail","updatedContractFields","openModal","sellerMonthlyAddedservices","vendorMonthlyAddedservices","listingOptimizationData","listingTranslationData","nonUSAddedServices","sellerMarketplacesAddedResult","sellerService","vendorMarketplacesAddedResult","vendorService","getThresholdType","thresholdType","getYoyPercentage","getServicesFee","getAgencyFee","viewContract","btnClass","displayRightSidePanel","displayFooter","renderContractTabHtml","renderHeaderDownloadFuntionality","dspServiceAdded","listingOptimizationAdded","listingTranslation","standardUSServicesAdded","standardNonUsServicesAdded","vendorServiceAddedResult","monthlyServices","feeStructureAdded","isShowEditIconInAddendum","baseUrl","handledOnCloseAgreement","discountUpdatedData","ArticleSearch","getArticle","setSelectedItems","setSubFolderData","setMobileView","setTabView","setFolderData","setBoardData","searchedData","setSearchedData","searchCount","setSearchCount","searchTerms","getArticleSearch","redirectToArticle","article","prevSelectedItems","boardId","getBoardData","collection","ReadBookIcon","preferredPhrase","boards","generateSearchHTML","RemoveIcon","ArticleList","getArticleCollections","GrayBody","cards","img","getImages","extraNormalRes","verySmallRes","SuggestUpdateModal","showContinueMsg","selectedArticle","setShowContinueMsg","updateArticle","article_title","card_id","slug","Article","sectionLoader","tabView","mobileView","articleLoader","owner","profilePicUrl","ArticleDetail","ArticleDetails","boardData","folderData","selectedItems","subFolderData","setKbArticleData","subSubFolderData","setSubSubFolderData","boardLoader","folderLoader","subFolderLoader","setSectionLoader","isSubFolderExists","articleItem","getArticleCards","cardResponse","folderType","folder","subFolder","getSubFolderData","selectedFolder","folderLevel","getCollectionData","paramString","handleArticleOnClick","selectedItemsToUpdate","queryStringData","handleBoard","handleFolderOnClick","showSubFolders","handleSubFolderClick","DSPFilter","isSpreetailRole","selectedBrandPartner","userList","managerUserList","selectedUser","selectedManagerUser","brandPartnerOptions","setSelectedUser","setSelectedManagerUser","handleUserFilterEvents","handleUserOnMenuCloseEvents","handleManagerUserFilterEvents","handleManagerUserOnMenuCloseEvents","handledBrandPartnerFilterEvents","renderFilters","borderLeft","DSPPacing","selectedOption","dspPacingData","handleSpendingOptions","dspPacingAllData","dsp_pacing_all","dspPacingTableData","isBBEInternalUserStatus","returnFormatedNumber","redirectToCutomerDetailsView","displayBrandPartnerProfile","renderDesktopDSPPacingData","spendLabel","spendObj","renderDspPacingTableHeader","planned_spend_to_date","actual_spend_to_date","change_to_date","remaining_to_date","renderDspPacingMetricsHTML","pacingMetrics","dsp_pacing_flag_all","displayDspPacingData","DSPKeyContributors","selectedTabMetrics","selectedDSPMatrics","handleOnMatricsTabChange","displayContributionTable","handleKeyContributorsDownloadReport","dsp_performance","contribution","selctedArray","isGrayMetrics","dispalyContributionDataTable","DspRightHandSideSection","contributionCount","dspPacingLoader","keyContributionLoader","selectedSpendingOption","selectedDspMetrics","dspDifferenceData","dspCustomDateState","handleDspDailyFact","setDspCustomDateState","setSelectedDspMetrics","renderRecentAndPreviousLabel","renderDspDailyFact","adSelection","useBindDSPResponseData","DspDashboardContainer","responseID","loggedInUser","setResponseID","bindBrandPartners","checkIsUserExist","bindUserListData","generateStringOfValues","bindMetricsContributionData","handleMultiSelectDropdownFilterEvents","setKeyContributionLoader","setDspPacingLoader","setSelectedBrandPartner","setUserList","userApiList","setUserApiList","setManagerUserList","managerUserApiList","setManagerUserApiList","isUsersSelected","setIsUsersSelected","isManagerUsersSelected","setIsManagerUsersSelected","setBrandPartnerOptions","tempDspChartData","setTempDSPChartData","setDspPacingData","isManagerAPICalled","setIsManagerAPICalled","isBGSAPICalled","setIsBGSAPICalled","setContributionCount","setSelectedSpendingOption","setSelectedTabMetrics","allBrandPartnerObj","getLeadershipBrandPartnersList","callType","managersUser","getBgsList","managers","managersString","formatedApiData","userListWithAll","isUserExist","getManagerUserList","localManagerUsers","localUsers","isManagerUserExist","callingBgsAndAdUserApi","inactiveBPs","spreetailBrands","selectedMatrics","formatedData","getDSPPacingData","spendingOption","getDspPacingDahboardData","getMinDateForSponsoredDashboard","selectedUserString","selectedManagerUserString","callingBPandDashboardAPI","userString","assignedMangerUser","userApiListWithAll","managerUserApiListWithAll","bgsManager","adManager","adTeamManager","isAllUser","userExisted","managerUserObject","localUser","DspDashboardFilter","DashboardStyle","SalesFilter","handleBgsUserFilterEvents","handleSellerVendorFilterEvents","handleBrandPartnerFilterEvents","showManagerUserFilter","showUserDropdownfilter","dropdownFilterSelectedValue","dropdownFilterOptions","generateSingleSelectDropdownFilterHTML","displayBrandPartnerFilter","displayMarketplaceFilter","renderUserDropdown","renderManagerUserDropdown","SalesSellerMetrics","selectedRevenueDropDownOption","selectedAdSpendDropDownOption","setSelectedAdSpendDropDownOption","selectedAdSpendType","setSelectedAdSpendType","revenueSubtypeComponentFilterOption","revenueSubtypeSingleFilterOption","revenueSubtypeComponent","commanElement","keyNameOptions","adSpendName","adSpendresponseKey","salesCurrentValue","salesPreviousValue","adSpendCurrentValue","adSpendPreviousValue","CardMetricsOuter","renderSalesMetrics","SalesSellerContribution","goalsPerformanceData","displaySalesPagination","handleOnMetricsTabChange","dispalyContributionSectionHeader","displayLoader","displayInfoIcon","displayCustomerProfile","customer_status","displayFormattedValues","displayGoalsCellValue","matricValue","diffPercentage","labelClassColor","diffArrowClass","diffPercentageClassColor","GoalsPerformance","GoalBubbles","GoalCount","getUTCDate","isRevShareDataAvailable","PercentValue","FontAwesomeIconStyle","displayMetricsAndGoalsValue","metric_value","goal_value","displayGoalsDesktopTable","displayMetricsLabelWithGoalsValue","tooltipObject","dispalySellerContributionTable","FontAwesomeIcon","span","SalesSellerReporting","salesGroupBy","displayPerformanceSectionHeader","displayDailyWeeklyMonthlyToggleButton","VendorSalesPerformance","vendorSalesDifference","vendorSalesCurrentTotal","vendorSalesPreviousTotal","selectedVendorMetrics","vendorSalesMetricsData","setSelectedVendorMetrics","renderMetricsTooltipMessge","renderSelectedMetricsBoxClass","displayMetricsBox","metricsKeyName","handleMetricsBoxToggleEvents","valueString","displayMetricsPreviousValue","displaySaleGroupBy","SalesVendorContribution","vendorContributionData","vendorContributionTabs","displayVendorContributionTabs","dispalyVendorContributionTable","SalesVendorReporting","showAdYearOverYearDateModal","currentDateForVendor","yearOverYearDateState","handleSalesGroupBy","setYearOverYearDateState","handleGoalsDateChangeEvents","setShowAdYearOverYearDateModal","handleVendorMetricsTypeFilterEvents","defaultCurrentDate","dateOptionsForGoals","renderCustomDateGoalsSubLabel","goalsSingleFilterValue","goalsFilterOption","getTimeFilterSelectGoalsComponents","displayPerformanceHeaderfilters","insightMessage","sales_performance","yearOverYearSelection","BindVendorSalesPerformanceData","previousData","currentdata","BindSellerSalesPerformanceData","SalesDashboardContainer","selectedPerformanceType","renderAllocateBar","setSelectedPerformanceType","setSalesGroupBy","setVendorSalesMetricsData","setVendorSalesCurrentTotal","setVendorSalesPreviousTotal","setVendorSalesDifference","setGoalsPerformanceData","sdd","edd","startDateOfGoalsForSalesApi","endDateOfGoalsForSalesApi","getMinDateForSalesDashboard","checkMetricsAvailability","handleBeforAndAfterApiCall","getSalesData","vendorMetrics","salesYearAndCustomDateFilter","getGoalsData","bgsManagerList","bgsList","inactiveBp","handleCustomDateStates","handleYOYDateStates","getcustomDatesForAPI","dateState","dateStateHandler","apiStartDate","apiEndDate","sellerDate","apiCustomDate","tempStartMonth","startDateOfGoal","endDateOfGoal","InventoryTableWrapper","InventoryStyle","InventoryFilter","getTimeFrameDropDownComponents","optionsList","StrandedInventoryMobileView","strandedInventoryData","displayCompanyNameLogoAndBGS","redirectingToCustomerDetailview","displayMetricsChangeValueWithArrow","divClass","StrandedInventory","orderByApi","onClickOrder","onHandlePageChange","displayNoDataMessage","displayPerformanceLoader","displayDownloadReportLoader","displayUpDownArrowforTableHeader","StrandedAndRestockInventoryMobileView","displayMetricsValueWithChange","displayMetricsNameAndValue","understocked","understocked_change","overstocked","overstocked_change","StrandedAndRestockInventory","strandedMessage","RestockLimitsMobileView","displayValueWithPercentChange","RestockLimits","restockCount","renderStorageTypeFilter","restockLimitMessage","inventory_restock_limit","postFix","InventoryRightHandSideSection","restockPageNumber","strandedInventoryCount","strandedInventoryPageNumber","strandedInventoryOrderByApi","strandedInventoryLoader","strandedInventoryOrderBy","handleOnClickOrderOfRestockLimit","handleRestockInventoryPagination","handleStrandedInventoryPagination","handleOnClickOrderOfStrandedAndRestockInventory","displayNumberWithArrow","valueClassName","keyBy","keyByApi","InventoryDashboardContainer","inventoryMindate","defaultRestockOrderByApi","setOrderByApi","selectedStorageType","setSelectedStorageType","isStorageTypeSelected","setIsStorageTypeSelected","setRestockCount","setRestockPageNumber","setStrandedInventoryLoader","setStrandedInventoryData","setStrandedInventoryCount","setStrandedInventoryPageNumber","setStrandedInventoryOrderBy","defaultStrandedOrderByKey","setStrandedInventoryOrderByApi","onGetRestockData","storageTypes","usersString","managerUsersString","storageTypeString","onGetStrandedInventoryData","handleDownloadApiRes","ResetFiltersToDefaultStates","handleStorageTypeFilterEvents","optionsWithoutAll","handleStorageTypeFilterOnMenuCloseEvents","stotageType","finalOrder","sku_change","SponsoredFilter","handleSponsoredAdTypeFilterEvents","handleAdTypeFilterOnMenuCloseEvents","renderBrandPartnerDropdownFilter","renderPerformanceDropdownFilter","renderMarketplaceDropdownFilter","afterRomeAlloption","localAdtypes","renderSponsoredAdTypesFilter","BindSponsoredAdData","SponsoredRightHandSideSectionDefaultProps","SponsoredKeyContribution","sponsored_performance","displayKeyContributorSection","SponsoredRightHandSideSection","displaySpAdPerformanceSectionHeader","SponsoredDashboardContainer","isAdTypeSelected","setIsAdTypeSelected","brandPratner","sponsoredAdTypeString","localSelectedAdType","adTypeSelected","AMCDashboardLeftSidePanel","selectedDSPManager","setSelectedDSPManager","defaultMarketPlace","dspManagerList","setDSPManagerList","dspManageApiList","setDSPManagerApiList","setBPList","bpApiList","setBPApiList","isBPSelected","setIsBPSelected","marketplaceOption","bpListLoader","setBpListLoader","dspManagerListLoader","setDspManagerListLoader","marketplaceListLoader","setMarketplaceListLoader","handleBPFilterEvents","handleBPOnMenuCloseEvents","bps","getBpListDropdownValues","getBpListInAMCAudienceDashboard","tempBPList","tempUserListWithAll","bindAllMarketplaces","handleResetFilterOfAmcDashboard","AMCAudienceMetrics","amcAudienceData","current_data","previous_data","percentage_change_data","AMCAudienceSummaryMobileView","amcAudienceSummaryData","displayamcAudienceCapsuleData","AMCAudienceTable","newAMCAudienceSummaryHeaders","imgIcon","AMCAudienceSummaryContainer","selectedTimeFilter","setSelectedTimeFilter","setAMCAudienceSummaryData","setAMCAudienceData","amc_audience","displayDropdownFilter","DownloadReport","renderModals","AMCSelfServiceMobileView","displayInputField","tableDataIndex","rowKey","AMCSelfServiceTable","amcInstances","deleteInstance","getAMCInstanceData","amcInstanceCount","checkAllMandatoryFieldsFilled","setIsEditModeOn","classesData","started","requested","running","in_progress","updating","submitted","failed","successful","deleted","lowerCaseStatus","creation_status","failed_reason","user_details","displayCreatedAtData","checkAdvertiserFieldsToDisable","instanceData","amc_instance","saveData","memo","AMCSelfService","requestTypeData","defaultCreateInstanceData","instance_name","customer_canonical_name","defaultUpdateInstanceData","aws_id","defaultDeleteInstanceData","defaultCreateAdvertiserData","advertiser_type","defaultDeleteAdvertiserData","AMCSelfServiceInstanceContainer","amcInstanceData","setAmcInstanceData","isEditModeOn","setAmcInstanceCount","amcInstance","collapseData","setCollapseData","updateTableData","requestKey","newlyAddedData","getDefaultData","requestTypeInfo","getSpecificAMCInstanceByRequestType","AMCDashboardRightPanel","displayAmcDashboard","AMCAggregatedDashboardContainer","PendingApprovalsDashboardFilters","apiCallLoader","handleRefreshClick","PendingApprovalFilters","PendingApprovalsTableHeader","PAStatusColorSet","PendingApprovalsDashboardView","pendingApprovalListData","setIdToArchiveRequest","setShowCancellationSummaryModal","setShowArchiveConfirmationModal","isShowActionCol","bgs_director","isShowSummaryIcon","is_summary_icon_visible","redirectToAgreementView","company_id","displayApprovalNeededFromValue","approvalNeededFrom","displayRequestDate","displayRequestStatus","requestStatus","displayRequestTypeSummaryIcon","contract_end_date","displayTooltipIconForArchiveAction","displayArchiveAction","canRequestArchive","requested_by","requested_at","approval_needed_from","renderApprovalListTable","getPendingApprovalRequests","searchBy","archive","PendingApprovalsDashboardContainer","setCallPendingApprovalAPI","setApiCallLoader","setPendingApprovalListData","pendingApprovalListDataCount","setPendingApprovalListDataCount","selectedPageNumber","setSelectedPageNumber","setSelectedRequestOrder","showArchiveConfirmationModal","showCancellationSummaryModal","archiveLoader","setArchiveLoader","idToArchiveRequest","getPendingApprovalData","requestOrder","handledOnConfirmArchiveClick","archivedPendingApprovalRequest","AdvertisingDashboardContainer","advertisingAdminAccess","ad_leadership_access","isShowAMCAudienceSummaryTab","showInventoryTab","advertisingTab","isSalesOrSponsoredTab","callPendingApprovalAPI","goalTargetInsightMsg","setGoalTargetInsightMsg","setIncludeInactiveBPs","setIncludeSpreetailBrands","setSelectedDF","tempBrandPartnerList","getGoalTargetMsg","getGoalTargetInsightMsg","dashboardHeaders","tempUserList","userListArray","selectedUserArray","filterUserList","tempDataString","tempSelectedValues","apiOptions","optionList","displayVendorMetricsValue","redirectingToSingleBPView","displayScVcIcon","altName","displayCustomerProfileWithUserName","showSellerTag","showVendorTag","isSellerUnauthorized","isVendorUnauthorized","tableBodyData","showContributionColumn","contributionLevel","tempContributionData","renderSalesDashboard","DSPInvoiceFilters","onHandleSearch","handleStatusChange","DSPInvoiceTabs","onTabClick","InvoiceIcon","PartnersIcon","InvoicesList","timeFrameType","isTimeFrameChange","setIsTimeFrameChange","invoiceLoader","setInvoiceLoader","invoiceCount","setInvoiceCount","selectedSortBy","setSelectedSortBy","getInvoices","bindAmount","orignalNumber","isRounded","no","renderSortByDropDown","cretaedDate","dueDate","profile_picture","PartnersList","partnerLoader","setPartnerLoader","partnerData","setPartnerData","partnerCount","setPartnerCount","getPartners","InvoiceTabs","total_overdue","setTimeFrameType","setDSPData","setState","setRange","selectedDateType","setSelectedDateType","dummyDateType","setDummayDateType","dummayDateRange","setDummayDateRange","getDSPdata","getDSPFinances","handleTimeTypeChange","handleApply","renderTimeFilterLabel","InvoiceContainer","React","URLSearchParams","isPathCorrect","DSPBillingFilters","selectedVendor","DSPBillingContainer","setSelectedVendor","billingLoader","setBillingLoader","billingData","setBillingData","billsCount","setBillsCount","total_bills","total_amount","dspMetricsData","setDSPMetricsData","dummyDateRange","setdummyDateRange","getBillingMetricsdata","getDSPBillingMetrics","getBillsData","getBills","bindCurrencySymbol","billDate","bill_date","bill_number","FinanceDashboardContainer","navigation","PendingApprovalsContainerForOtherRole","DashboardContainer","OffBoardingApproveReject","onUpdateBillingOffboardingApproveReject","AuthenticationComponent","isAuthenticated","KBTitleBoardDetails","ReactGA","initialize","pageview","useGoogleAnalytics","useIdleTimer","timeout","onIdle","generateHeader","DelegationUpload","VideoModal","step_4_video","step_2_video","MainContainer","setAssignedToSomeone","setVerifiedStepData","setUserInfo","setVideoData","setSummaryData","setMarketplaceDetails","showAmazonVideo","setShowAmazonVideo","setshowDSPContact","setNoAmazonAccount","setSecondaryMarketplaces","amazonAccountData","setAmazonAccountData","setLocalNoAmazonAccount","amazonLocalStorageValue","getStepName","showLoader","secondary_marketplaces","secondarySellerData","sortedSellerArray","sortedSellerData","primaryLocalSeller","primaryMarketplaceData","secondaryVendorData","sortedVendorArray","sortedVendorData","primaryLocalVendor","primaryVendorMarketplaceData","primaryVendorData","formattedSecondaryMarketplaces","finalSecondaryMarketplace","addSellerID","sellerFields","primarySellerData","addVendorID","vendorFields","getOnboardingStepData","is_dsp_contract","same_as_billing_contact","getStepsData","getStepDetails","verifyStepToken","verify","getUserData","dspContactDetail","getInformation","showNoAmazonAccountCheckbox","handleUpdate","showAmazonSubTitle","user_email","getVideo","DSPBudgetApprovalContainer","adjustmentId","setTotal","isAutherised","setIsAutherised","invoiceRejectMessage","setInvoiceRejectMessage","invoiceApprovalCondition","setInvoiceApprovalCondition","getDSPDetails","getDSPBudgetAdjustDetail","oldResult","newResult","calculateTotal","storeInvoiceProposal","rejection_note","updateDSPBudgetAdjustment","created_by","renderHeaderMessage","renderMainPage","HelloSignComponent","signURL","setSignURL","transactionalSignUp","request_id","SignPanel","min-height","Login","resetPasswordMsg","showResetMsg","customerApiError","setCustomerApiError","customerNames","setCustomerNames","getName","setGetName","forgotApiError","setforgotApiError","ForgotPassword","ResetPassword","confirm_password","AmazonLogin","registerForDemo","errorsForDemo","handleSubmitForDemo","requestDemo","setRequestDemo","NextWhiteLogo","LandingFooter","SponsoredAdPerformance","DSPAdPerformance","InventoryManagement","OverallSalesPerformance","saveRequestDemo","App","favicon","ProdFavicon","GlobalStyle","initialState","accountData","accountStateReducer","customerStateReducer","userStateReducer","dotenv","config","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","rootReducer","combineReducers","store","createStore","applyMiddleware","thunk","app","fallback","ReactDOM","navigator","serviceWorker","ready","registration","unregister","console","green20","lightBlue","titleRes","MediumPageTitleFontSize","primaryTitleFontSizeRes","pageTitleFontSizeRes","MediumTitleFontSizeRes","secondaryTitleFontSizeRes","boldItalicFontFamily","contactboldFontFamily","module","exports","GroupUser","BrandPartnerDashboard","DashboardCard","titleFontFamil","BannerBg","TabletViewManager","Icon","AccountStatus"],"mappings":"sLAeoBA,QACW,cAA7BC,OAAOC,SAASC,UAEe,UAA7BF,OAAOC,SAASC,UAEhBF,OAAOC,SAASC,SAASC,MACvB,2D,+DC2CSC,IAAQC,IACrBC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,KACAC,IACAC,IACAC,IACAC,IACAC,KACAC,IACAC,IACAC,KACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IAEAC,KACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,KACAC,IACAC,KACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,KACAC,IACAC,K,mBCvEa5D,IAAQC,IACrB4D,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAnC,IACAoC,IACAC,IACAC,IACAC,IACAC,IACA/C,IACAzB,IACAyE,IACAC,IACAC,IACAlF,IACAmF,IACA5B,IACA1B,IACAuD,IACAX,IACAY,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACA7C,IACAX,IACAyD,IACAC,K,WC7FanG,IAAQC,IAAImC,IAAcM,IAAc0D,K,s9rCCOvD,IA6kEeC,EA7kEIC,YAAH,IAIHC,IAKEC,IAKAC,IAIAC,IAIAC,IAIAC,IAIAC,IAKAC,IAKAC,IAUJC,IAAMC,OACAD,IAAME,eACRF,IAAMG,OACCH,IAAMI,MA8DJJ,IAAMI,MAGCJ,IAAMK,MAgBtBL,IAAMM,mBACJN,IAAMO,gBAMVP,IAAMQ,MACFR,IAAMS,uBAKNT,IAAMU,sBAORV,IAAMW,kBACVX,IAAMY,OAGAZ,IAAMa,qBACJb,IAAME,eAKRF,IAAMS,uBACJT,IAAME,eASVF,IAAMc,oBACJd,IAAMO,gBAEZP,IAAMQ,MAKAR,IAAMe,yBAKVf,IAAMY,OACAZ,IAAME,eAKVF,IAAMg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,IAAK,eACLF,MAAO,eACP0E,MAAO,OAET,CACExE,IAAK,0BACLF,MAAO,kBACP0E,MAAO,OAET,CACExE,IAAK,sBACLF,MAAO,eACP0E,MAAO,OAGT,CACExE,IAAK,uBACLF,MAAM,gBACN0E,MAAO,OAGT,CACExE,IAAK,qBACLF,MAAO,kBACP0E,MAAO,QAIE8W,GAAmC,CAC9C,CACEtb,IAAK,oBACLF,MAAO,OACP0E,MAAO,OAGT,CACExE,IAAK,eACLF,MAAO,eACP0E,MAAO,OAET,CACExE,IAAK,uBACLF,MAAO,eACP0E,MAAO,OAET,CACExE,IAAK,sBACLF,MAAO,eACP0E,MAAO,OAGT,CACExE,IAAK,uBACLF,MAAM,gBACN0E,MAAO,OAGT,CACExE,IAAK,qBACLF,MAAO,kBACP0E,MAAO,QAIE+W,GAAiC,CAC5C,WACA,WACA,qBACA,cACA,OACA,iBACA,SACA,MACA,wBACA,uBACA,aACA,aAGWC,GAA2B,CACtC,cACA,YACA,sBACA,aACA,aACA,0BACA,gBACA,QAGWC,GAA6B,CACxC,UACA,cACA,cACA,kBACA,aACA,UACA,aACA,qBACA,iBACA,aACA,SAGWC,GAAoB,CAC/BhB,aAAc,UACdE,WAAY,cACZC,WAAY,cACZF,eAAgB,kBAChBb,aAAc,iBACd3J,SAAU,aACVwL,iBAAkB,qBAClBb,WAAY,sBAGDc,GAAmC,CAC9C,kBACA,eACA,kBACA,kBACA,gBACA,eACA,iBAGWC,GAA4B,CACvC5G,MAAO,0CACP6G,YAAa,iDACb5G,UAAW,0DACXzK,IAAK,qDAGMsR,GAAwB,CACnC5J,eAAgB,kBAChBE,YAAa,eACbC,eAAgB,kBAChBC,aAAc,gBACdC,aAAc,gBACdJ,YAAa,gBAGF4J,GAAiC,CAC5C/G,MAAO,wBACPC,UAAW,wCACXzK,IAAK,mCAGMwR,GAA0B,CACrC,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAIWC,GAA4B,CACvC,CACEpc,MAAO,QACPD,MAAO,QACPxI,GAAI,YACJ8kB,MAAO,eACPC,KAAM,eAER,CACEtc,MAAO,SACPD,MAAO,SACPxI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AO,YAIEytB,GAA0B,CACrC,CACEttB,IAAK,WACLF,MAAO,WACP0E,MAAO,OAET,CACExE,IAAK,cACLF,MAAO,cACP0E,MAAO,OAET,CACExE,IAAK,eACLF,MAAO,eACP0E,MAAO,OAET,CACExE,IAAK,gBACLF,MAAO,gBACP0E,MAAO,OAET,CACExE,IAAK,UACLF,MAAO,SACP0E,MAAO,QAIE+oB,GAA8B,CACzC,CACEvtB,IAAK,WACLF,MAAO,WACP0E,MAAO,OAET,CACExE,IAAK,eACLF,MAAO,qBACP0E,MAAO,OAET,CACExE,IAAK,cACLF,MAAO,oBACP0E,MAAO,OAET,CACExE,IAAK,YACLF,MAAO,iBACP0E,MAAO,QAIEgpB,GAA+B,CAC1C,CACExtB,IAAK,WACLF,MAAO,WACP0E,MAAO,OAET,CACExE,IAAK,YACLF,MAAO,0BACP0E,MAAO,OAET,CACExE,IAAK,aACLF,MAAO,SACP0E,MAAO,OAET,CACExE,IAAK,iBACLF,MAAO,WACP0E,MAAO,QAIEipB,GAAwB,CACnC,CACEztB,IAAK,eACLF,MAAO,MACP0E,MAAO,QACPkpB,MAAM,GAER,CACE1tB,IAAK,OACLF,MAAO,OACP0E,MAAO,QACPkpB,MAAM,GAGR,CACE1tB,IAAK,eACLF,MAAO,eACP0E,MAAO,QACPkpB,MAAM,GAER,CACE1tB,IAAK,qBACLF,MAAM,yBACN0E,MAAO,QACPkpB,MAAM,GAER,CACE1tB,IAAK,0BACLF,MAAM,6BACN0E,MAAO,QACPkpB,MAAM,GAER,CACE1tB,IAAK,uBACLF,MAAM,wBACN0E,MAAO,QACPkpB,MAAM,GAER,CACE1tB,IAAK,qBACLF,MAAM,qBACN0E,MAAO,QACPkpB,MAAM,GAER,CACE1tB,IAAK,YACLF,MAAM,qBACN0E,MAAO,QACPkpB,MAAM,GAER,CACE1tB,IAAK,qCACLF,MAAM,sCACN0E,MAAO,QACPkpB,MAAM,GAER,CACE1tB,IAAK,wBACLF,MAAM,yBACN0E,MAAO,QACPkpB,MAAM,GAER,CACE5tB,MAAO,UACPE,IAAK,SACLwE,MAAO,QACPkpB,MAAM,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B,OAAmC9hN,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAMw4M,+BACzCryI,EAASzrC,GAAOqnL,iBAAhB,OAAmC/hN,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAM04M,+BACzCvyI,EAASzrC,GAAOsnL,0BAAhB,OACEhiN,QADF,IACEA,OADF,EACEA,EAAM44M,yCACRzyI,EAASzrC,GAAOunL,uBAAhB,OACEjiN,QADF,IACEA,OADF,EACEA,EAAM84M,kCACR3yI,EAASzrC,GAAOwnL,gBAAhB,OAAkCliN,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAMg5M,2BACxC7yI,EAASzrC,GAAOynL,gBAAhB,OAAkCniN,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAMk5M,2BACxC/yI,EAASzrC,GAAO0nL,kBAAhB,OAAoCpiN,QAApC,IAAoCA,OAApC,EAAoCA,EAAMo5M,6BAC1CjzI,EAASzrC,GAAO2nL,4BAAhB,OACEriN,QADF,IACEA,OADF,EACEA,EAAMs5M,0BACRnzI,EAASzrC,GAAO4nL,wBAAhB,OACEtiN,QADF,IACEA,OADF,EACEA,EAAMw5M,qCAGRrzI,EAASzrC,GAAO6nL,kBAAhB,OACEviN,QADF,IACEA,OADF,EACEA,EAAM05M,qCACRvzI,EAASzrC,GAAO8nL,kBAAhB,OACExiN,QADF,IACEA,OADF,EACEA,EAAM45M,qCACRzzI,EAASzrC,GAAO+nL,2BAAhB,OACEziN,QADF,IACEA,OADF,EACEA,EAAM85M,+CACR3zI,EAASzrC,GAAOgoL,wBAAhB,OACE1iN,QADF,IACEA,OADF,EACEA,EAAMg6M,wCACR7zI,EAASzrC,GAAOioL,iBAAhB,OACE3iN,QADF,IACEA,OADF,EACEA,EAAMk6M,iCACR/zI,EAASzrC,GAAOkoL,iBAAhB,OACE5iN,QADF,IACEA,OADF,EACEA,EAAMo6M,iCACRj0I,EAASzrC,GAAOmoL,mBAAhB,OACE7iN,QADF,IACEA,OADF,EACEA,EAAMs6M,mCACRn0I,EAASzrC,GAAOooL,6BAAhB,OACE9iN,QADF,IACEA,OADF,EACEA,EAAMw6M,gCACRr0I,E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GAAIo5D,YAENgjE,wBAAyBsqI,mBAAQpoG,iBAAM,KACvCphC,4BAA6BwpI,mBAAQpoG,iBAAM,KAC3CjhC,6BAA8BqpI,mBAAQpoG,iBAAM,KAC5ChqE,SAAUj7B,YAEgBilG,iBAAM,CAChC95J,OAAQkiQ,mBAAQpoG,iBAAM,KACtBz3H,OAAQ6/N,mBAAQttM,UAAQklG,iBAAM,OAEN40B,QACC50B,iBAAM,CAC/B95J,OAAQkiQ,mBAAQpoG,iBAAM,KACtBz3H,OAAQ6/N,mBAAQttM,UAAQklG,iBAAM,OAEF40B,QACFyzE,qBAAU,CAACvtM,UAAQouM,YAChBt0E,QACJyzE,qBAAU,CAACvtM,UAAQouM,YAChBt0E,QACH50B,iBAAM,CAC/BhqE,SAAUj7B,UACVwuM,0BAA2BxuM,YAEC65H,QACf50B,iBAAM,CACnBwpG,YAAanB,qBAAU,CAACvtM,UAAQC,YAChCytM,eAAgB1tM,UAChBytM,gBAAiBztM,UACjBguM,QAAShuM,YAEO85H,QACOA,QACb55H,QACEglG,iBAAM,CAClBriC,UAAW3iE,QACXyuM,UAAWzuM,QACXouM,SAAUpuM,QACVsuM,YAAatuM,UAEE45H,QACE55H,QACG45H,QACE55H,QACG45H,QACA50B,iBAAM,IACH40B,QACnByzE,qBAAU,CAACvtM,UAAQwtM,sBAAW7jP,QAC3BmwK,QACA50B,iBAAM,CAClBriC,UAAW5iE,UACXjmD,IAAKimD,UACL0uM,UAAW1uM,YAEI65H,QACFA,QACaA,QACZ55H,QACFotM,mBAAQpoG,iBAAM,KACpBooG,mBAAQpoG,iBAAM,KACPqoG,qBAAU,CAACD,mBAAQc,WAASnuM,YAC/BA,UACCC,QACO45H,QACJ55H,QACG45H,QACCA,QACLq0E,oBAASjpG,iBAAM,KACX40B,QACJ55H,QACCotM,mBAAQpoG,iBAAM,KACdooG,mBAAQpoG,iBAAM,KACVooG,mBAAQpoG,iBAAM,KACZ40B,QACAyzE,qBAAU,CAC9BttM,UACAkuM,oBAASC,WACTlpG,iBAAM,CACJt+J,GAAIo5D,cAGa85H,QACCA,QACLA,QACGwzE,mBAAQp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0B,EAAa,OACXs5K,QADW,IACXA,GADW,WACXA,EAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GAAoD,eACjD,EApDP,mCAqD2BN,EArD3B,eAqDuDniM,GArDvD,OAsDE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,eAC7C,EAxDP,mFA2DmCN,EA3DnC,eA2D+DniM,GA3D/D,OA4DE0B,EAAa,OACXs5K,QADW,IACXA,GADW,WACXA,EAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GAAoD,gBACjD,EA9DP,mCA+D2BN,EA/D3B,cA+DsDniM,GA/DtD,OAgEE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,gBAC7C,EAlEP,4EAqE6BN,EArE7B,cAqEwDniM,GArExD,OAsEE0B,EAAa,OACXs5K,QADW,IACXA,GADW,WACXA,EAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GAAoD,gBACjD,EAxEP,mCAyE2BN,EAzE3B,aAyEqDniM,GAzErD,OA0EE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,gBAC7C,EA5EP,8EA+E+BN,EA/E/B,cA+E0DniM,GA/E1D,OAgFE0B,EAAa,OACXs5K,QADW,IACXA,GADW,WACXA,EAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GACE,kBAEC,EApFP,mCAqF2BN,EArF3B,aAqFqDniM,GArFrD,OAsFE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,kBAC7C,EAxFP,kFA2FmCN,EA3FnC,cA2F8DniM,GA3F9D,OA4FE0B,EAAa,OACXs5K,QADW,IACXA,GADW,WACXA,EAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GACE,qBAEC,EAhGP,mCAiG2BN,EAjG3B,cAiGsDniM,GAjGtD,OAkGE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GACE,qBAEC,EAtGP,+EAyGgCN,EAzGhC,cAyG2DniM,GAzG3D,OA0GE0B,EAAa,OACXs5K,QADW,IACXA,GADW,WACXA,EAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GACE,mBAEC,EA9GP,mCA+G2BN,EA/G3B,eA+GuDniM,GA/GvD,OAgHE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,mBAC7C,EAlHP,gFAqHiCN,EArHjC,cAqH4DniM,GArH5D,OAsHE0B,EAAa,OACXs5K,QADW,IACXA,GADW,WACXA,EAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GACE,oBAEC,EA1HP,mCA2H2BN,EA3H3B,eA2HuDniM,GA3HvD,OA4HE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,oBAC7C,EA9HP,gFAiIiCN,EAjIjC,cAiI4DniM,GAjI5D,OAkIE0B,EAAa,OACXs5K,QADW,IACXA,GADW,WACXA,EAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GACE,oBAEC,EAtIP,mCAuI2BN,EAvI3B,cAuIsDniM,GAvItD,OAwIE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,oBAC7C,EA1IP,8BA6IA,KA+BFC,GAAmC,SAACpvR,EAAQu6G,GAChD,IAAM80K,EAAa,GAanB,OAZAA,EAAWhyP,KAAX,qKAKwB,UAAdk9E,EAAA,0BAAoD,GAL9D,0DAQc,OAANv6G,QAAM,IAANA,OAAA,EAAAA,EAAQJ,QArCe,SAAC0vR,EAAc/0K,GAC9C,IAAMpwE,EAAS,GAsBf,OArBAmlP,EAAalyP,KAAI,SAAC15B,GAmBhB,OAlBAymC,EAAO9M,KAAP,mFAEY35B,EAAKmC,KAFjB,oCAK2B,UAAd00G,EAAA,uFAGU,OAAJ72G,QAAI,IAAJA,OAAA,EAAAA,EAAMhK,MAAN,OAAYgK,QAAZ,IAAYA,OAAZ,EAAYA,EAAM6rR,gBAAlB,OACI7rR,QADJ,IACIA,OADJ,EACIA,EAAM6rR,gBACF,OAAJ7rR,QAAI,IAAJA,OAAA,EAAAA,EAAMhK,OAAM,OAACgK,QAAD,IAACA,OAAD,EAACA,EAAM6rR,gBAAnB,OACA7yN,QADA,IACAA,OADA,EACAA,EAAUoiE,qBACVgwJ,EAPV,gCAUI,GAfjB,4BAkBO,QAEF3kP,EAckBqlP,CAAyBxvR,EAAQu6G,GAAa,GARvE,2CAYO80K,GAGHI,GAAoC,SAACt6P,EAAOu6P,EAAUC,GAC1D,OAAID,IAAaC,EACT,UAAN,OAAiBx6P,EAAjB,sCAAoD05P,EAApD,cACe,OAAba,EAAoBA,EAAW,EADjC,mCAE2Bb,EAF3B,aAGe,OAAbc,EAAoBA,EAAW,EAHjC,2BAOK,IAGT,SAASxyC,GAAcC,EAAQC,EAAQ1yO,GACrC,cAAOyyO,QAAP,IAAOA,OAAP,EAAOA,EAAQ50O,QAAO,SAAC2vO,GACrB,QAAO,OAACkF,QAAD,IAACA,OAAD,EAACA,EAAQ5/M,MAAK,SAAC26M,GAAa,IAAD,IAChC,MAAc,gBAAVztO,GACY,OAAPwtO,QAAO,IAAPA,OAAA,EAAAA,EAAStyO,SAAT,OAAkBuyO,QAAlB,IAAkBA,OAAlB,EAAkBA,EAASvyO,OAEzB,OAAPsyO,QAAO,IAAPA,OAAA,EAAAA,EAASnqJ,aAAT,OAAsBoqJ,QAAtB,IAAsBA,OAAtB,EAAsBA,EAASpqJ,WACnB,OAAPmqJ,QAAO,IAAPA,OAAA,EAAAA,EAASnqJ,aAAT,OAAsBoqJ,QAAtB,IAAsBA,OAAtB,EAAsBA,EAASpqJ,WAC1B,OAAPmqJ,QAAO,IAAPA,GAAA,UAAAA,EAAS5+J,eAAT,eAAkB7/E,OAAlB,OAAyB0+O,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAS7+J,eAAlC,aAAyB,EAAkB7/E,WAKxD,IAAM0rC,GAAkB,SAACvsC,EAAMsG,GAC7B,IACM0jC,EAAuB,WAAThqC,EAAoB,SAAW,SAE7C+2R,EAAkBllB,EAA6B,OACnDhuM,QADmD,IACnDA,OADmD,EACnDA,EAAUo5D,wBACVjzF,GAEIgtP,EAAkBnlB,EAA6B,OACnDhD,QADmD,IACnDA,OADmD,EACnDA,EAAc5xI,wBACdjzF,GASF,MANe,UAAX1jC,EACOg+O,GAAcyyC,EAAiBC,EAAiB,eAEhD1yC,GAAc0yC,EAAiBD,EAAiB,gBAMvD7U,GAAqB,SAACliR,EAAMsG,GAChC,IACM0jC,EAAuB,WAAThqC,EAAoB,SAAW,SAE7C+2R,EAAkBllB,EAA6B,OACnDhuM,QADmD,IACnDA,OADmD,EACnDA,EAAUk6D,4BACV/zF,GAGIgtP,EAAkBnlB,EAA6B,OACnDhD,QADmD,IACnDA,OADmD,EACnDA,EAAc9wI,4BACd/zF,GAQF,MALe,UAAX1jC,EACOg+O,GAAcyyC,EAAiBC,GAE/B1yC,GAAc0yC,EAAiBD,IAKtC16J,GAAyB,SAACl1H,EAAQnH,GACtC,cAAImH,QAAJ,IAAIA,OAAJ,EAAIA,EAAQJ,QACGI,EAAOo9B,KAClB,SAAC15B,GAAD,8BAEa,QAAT7K,EACI4yQ,EAAsB,OAAC/nQ,QAAD,IAACA,GAAD,UAACA,EAAM61E,eAAP,aAAC,EAAe1zE,KAAM,MAAO,QACnD4lQ,EAAsB,OAAC/nQ,QAAD,IAACA,OAAD,EAACA,EAAMmC,KAAM,MAAO,QACtC,OAAJnC,QAAI,IAAJA,GAAA,UAAAA,EAAM61E,eAAN,eAAe1zE,QAAf,OAAuBnC,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAMmC,MALrC,aAOQ,OAAJnC,QAAI,IAAJA,GAAA,UAAAA,EAAM61E,eAAN,eAAe1zE,QAASsjQ,IACpB,OAAJzlQ,QAAI,IAAJA,OAAA,EAAAA,EAAMmC,QAASsjQ,EADf,YAEY,OAAJzlQ,QAAI,IAAJA,OAAA,EAAAA,EAAMsqF,WAAY,EAF1B,KAGI,GAVR,YAaU1gD,WAAWmmC,WAAW,IAAK,IAElC,IAGHq8M,GAA6B,SACjCC,EACAC,EACAC,EACAC,EACAC,EACA51K,GACI,IAAD,QACG13E,EAA4B,WAAdstP,EAAyB,SAAW,SAElDN,EAAkBnlB,EAA6B,OACnDhD,QADmD,IACnDA,OADmD,EACnDA,EAAc9wI,4BACd/zF,GAEI+sP,EAAkBllB,EAA6B,OACnDhuM,QADmD,IACnDA,OADmD,EACnDA,EAAUk6D,4BACV/zF,GAEIutP,EAAuB1lB,EAA6B,OACxDhuM,QADwD,IACxDA,OADwD,EACxDA,EAAUo5D,wBACVjzF,GAEIwtP,EAAuB3lB,EAA6B,OACxDhD,QADwD,IACxDA,OADwD,EACxDA,EAAc5xI,wBACdjzF,GAGIwsP,EAAa,GA8FnB,OA7FAA,EAAWhyP,KAAX,mHAIsB,YAAdk9E,GACI,UAAA4iI,GAAc0yC,EAAiBI,UAA/B,eAAsDrwR,UAAtD,UACAu9O,GACEkzC,EACAH,EACA,sBAJF,aACA,EAIGtwR,QALH,sIAWE,GAZN,iGAJR,uBAuBsB,YAAd26G,EACIi0K,EACE,8BACArxC,GAAc0yC,EAAiBI,IAEjC,GA5BZ,sBA+BqB,YAAd11K,EACIk0K,EACEtxC,GACEkzC,EACAH,EACA,gBAGJ,GAvCX,wCA2C4B,OAAlBH,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBnwR,UAApB,OAA8BowR,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAyBpwR,UAC1C,YAAd26G,EADA,oHAOI,GAlDb,yCAqDQi0K,EACA,8BACc,YAAdj0K,EAA0Bw1K,EAAqBE,EAC/C11K,GAxDR,sBA0DOk0K,EACc,YAAdl0K,EACIy1K,EACAE,EACJ31K,GA9DP,wBAkEqB,YAAdA,EAEM,KADF,UAAA4iI,GAAc0yC,EAAiBI,UAA/B,eAAsDrwR,SAMxC,KAJd,UAAAu9O,GACEkzC,EACAH,EACA,sBAHF,eAIGtwR,SACiC,KAAb,OAAvBowR,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBpwR,SACM,KAAb,OAAlBmwR,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBnwR,QAClB,GACA8uR,EACEkB,EACAQ,EACAD,GAEJ,GAlFX,uBAoFQxB,EACc,YAAdp0K,EACI4iI,GAAcyyC,EAAiBK,GAC/BA,EACJ11K,GAxFR,sCA6FO80K,EAAWzvR,OACdyvR,EAAW/hP,WAAWmmC,WAAW,MAAO,MACxC,IAGA68M,GAA4B,SAACv3M,EAAa87B,GAC9C,IAAMw6K,EAAa,GACbnf,EAAqBN,EAA4B,OACrDlI,QADqD,IACrDA,OADqD,EACrDA,EAAcnuI,aADuC,OAErD78D,QAFqD,IAErDA,OAFqD,EAErDA,EAAU68D,cAENg3J,EAAmB3gB,EAA4B,OACnDlI,QADmD,IACnDA,OADmD,EACnDA,EAAcnuI,aACd22I,GAkDF,OA/CAmf,EAAWhyP,KAAX,mHAIiB,UAATw3E,GACoB,OAAhB07K,QAAgB,IAAhBA,OAAA,EAAAA,EAAkB3wR,UACL,OAAZ8nQ,QAAY,IAAZA,OAAA,EAAAA,EAAcjqI,sBACL,OAAR/gE,QAAQ,IAARA,OAAA,EAAAA,EAAU+gE,uBAAV,OACEiqI,QADF,IACEA,OADF,EACEA,EAAcjqI,oBAHlB,sIASE,GAVN,iGAJR,yBAqBmB,YAAT5oB,EACI25K,EAAmB,eAAgB+B,EAAkB17K,GACrD,GAvBd,8CA4BoB,OAAX97B,QAAW,IAAXA,OAAA,EAAAA,EAAan5E,SAAmB,UAATi1G,EAAvB,oHAMI,GAlCb,yBAoCU25K,EAAmB,eAAgBz1M,EAAa87B,GApC1D,2CAwCiB,UAATA,EACI65K,EAAsB,OAAChyN,QAAD,IAACA,OAAD,EAACA,EAAU68D,aAAc,GAAI,IACnD,GA1CZ,qCA+CO81J,EAAWzvR,OACdyvR,EAAW/hP,WAAWmmC,WAAW,MAAO,MACxC,IAsGA+8M,GAAsB,SAACC,EAAMpsB,GAAU,IAAD,IACpCqsB,EAAW,6BAAQD,GAASpsB,GAC5Br7J,EAAI,OAAGtpG,aAAH,IAAGA,QAAH,UAAGA,OAAQk2B,QAAQ86P,UAAnB,aAAG,EAA8B1jM,QAAO,SAACg1E,EAAD,GAAwB,IAAD,oBAAhB3/J,EAAgB,KAAXH,EAAW,KAMvE,OAJGuuR,IAAS/wR,OAAO+0D,OAAOg8N,GAAMjyR,SAAS0D,IACtCmiQ,IAAS3kQ,OAAO+0D,OAAO4vM,GAAM7lQ,SAAS0D,MAEvC8/J,EAAI3/J,GAAOH,GACN8/J,IACN,IACH,SAAIh5D,IAAc,OAANtpG,aAAM,IAANA,QAAA,UAAAA,OAAQ+0D,OAAOu0C,UAAf,eAAsBppG,QAAS,IAMvC+wR,GAAkB,SAACC,EAAQC,GAG/B,OAFAD,EAAS3gP,OAAO2gP,GAChBC,EAAS5gP,OAAO4gP,IAEZD,EAAa9jP,WAAW8jP,EAAQ,IAAvB,MACTC,EAAa/jP,WAAW+jP,EAAQ,IAAvB,IAQTC,GAA0B,SAACj4R,GAAU,IAAD,sKAMtC,kBAgBA,kBAuBA,kBAyBA,kBA2BA,kBAkBA,YAlHIsxC,GAAS,GAGqC,mBAAtC,OAAZu9N,QAAY,IAAZA,GAAA,UAAAA,EAAchxI,qBAAd,mBAA8B79H,UAA9B,eAAqC89H,WACS,4BAAtC,OAARj6D,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiC89H,WAEjCxsF,GAAO9M,KAAP,0FACgFwxP,EADhF,iEAC8JA,EAD9J,cACyLniM,GADzL,OAC4M0B,GAChM,OAAR1xB,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCmoQ,mBAAoB,GAFzD,gCAG2BnoQ,EAH3B,oDAIY,OAAR6jE,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EARR,kFAS4Ej2R,EAT5E,kBAaiD,wBAAjD,UAAA6uQ,EAAahxI,qBAAb,mBAA6B79H,UAA7B,eAAoC89H,WACU,4BAAtC,OAARj6D,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiC89H,WAEjCxsF,GAAO9M,KAAP,0FACgFwxP,EADhF,4DACyJA,EADzJ,cACoLniM,GADpL,OACuM0B,GAC3L,OAAR1xB,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCmoQ,mBAAoB,GAFzD,gCAG2BnoQ,EAH3B,oDAIY,OAAR6jE,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EARR,mFAS6Ej2R,EAT7E,kBAeoD,WAA3C,OAAR6jE,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCs/Q,gBACmB,QAA3C,OAARz7M,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCs/Q,iBACjC,OAACz7M,QAAD,IAACA,GAAD,UAACA,EAAUg6D,qBAAX,iBAAC,EAA0B79H,UAA3B,aAAC,EAAiCs/Q,iBACpCwY,GAAe,OACbjpB,QADa,IACbA,GADa,UACbA,EAAchxI,qBADD,iBACb,EAA8B79H,UADjB,aACb,EAAqCmoQ,iBADxB,OAEbtkM,QAFa,IAEbA,GAFa,UAEbA,EAAUg6D,qBAFG,iBAEb,EAA0B79H,UAFb,aAEb,EAAiCmoQ,mBAGnC72N,GAAO9M,KAAP,iHACuGwxP,EADvG,cACkIniM,GADlI,OACqJ0B,GACzI,OAAR1xB,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCmoQ,mBAAoB,GAFzD,kDAIY,OAARtkM,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EARR,WAcoD,eAA3C,OAARpyN,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCs/Q,gBAChCqY,IACc,OAAZ9oB,QAAY,IAAZA,GAAA,UAAAA,EAAchxI,qBAAd,mBAA8B79H,UAA9B,eAAqCkhI,6BAA8B,IAC3D,OAARr9D,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCkhI,6BAA8B,KAEf,aAA3C,OAARr9D,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCs/Q,gBAChCqY,IACc,OAAZ9oB,QAAY,IAAZA,GAAA,UAAAA,EAAchxI,qBAAd,mBAA8B79H,UAA9B,eAAqCohI,2BAA4B,IACzD,OAARv9D,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCohI,2BAA4B,MAGjE9vF,GAAO9M,KAAP,+FACqFwxP,EADrF,aAEuD,eAA3C,OAARnyN,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCs/Q,eAC7B,YACA,UAJR,8CAKwCt/Q,EALxC,mDAMY,OAAR6jE,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EAVR,sDAWgDG,EAC5Cp2R,EACA,6BACA,2BACA,iBAfJ,cAsBA83R,GAAe,OACbjpB,QADa,IACbA,GADa,UACbA,EAAchxI,qBADD,iBACb,EAA8B79H,UADjB,aACb,EAAqC23P,UADxB,OAEb9zL,QAFa,IAEbA,GAFa,UAEbA,EAAUg6D,qBAFG,iBAEb,EAA0B79H,UAFb,aAEb,EAAiC23P,YAGnCrmN,GAAO9M,KAAP,sHAC4GwxP,EAD5G,cACuIzgM,GAC3H,OAAR1xB,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC23P,YAAa,GAFlD,mDAIY,OAAR9zL,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EARR,UAcoD,UAA5C,OAARpyN,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCwiI,iBACuB,UAA5C,OAAZqsI,QAAY,IAAZA,GAAA,UAAAA,EAAchxI,qBAAd,mBAA8B79H,UAA9B,eAAqCwiI,iBACmB,QAA5C,OAAZqsI,QAAY,IAAZA,GAAA,UAAAA,EAAchxI,qBAAd,mBAA8B79H,UAA9B,eAAqCwiI,iBAErClxF,GAAO9M,KAAP,wHAC8GwxP,EAD9G,0DAEY,OAARnyN,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EANR,UAUF,IAUE,kBAyBA,kBA2BA,kBAmBA,kBAuBO,MAxGHiC,IACiD,WAA5C,OAARr0N,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCwiI,iBACoB,QAA5C,OAAR3+D,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAiCwiI,mBADnC,OAEAqsI,QAFA,IAEAA,GAFA,WAEAA,EAAchxI,qBAFd,mBAEA,GAA8B79H,UAF9B,cAEA,GAAqC0nQ,iBAErCowB,GACEI,GADa,OAEbr0N,QAFa,IAEbA,GAFa,WAEbA,EAAUg6D,qBAFG,mBAEb,GAA0B79H,UAFb,cAEb,GAAiC0nQ,kBAEiB,WAA5C,OAAR7jM,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCwiI,iBAEjClxF,GAAO9M,KAAP,mHACyGwxP,EADzG,cACoIniM,GADpI,OACuJ0B,GAC3I,OAAR1xB,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC0nQ,kBAAmB,GAFxD,gCAG2B1nQ,EAH3B,qDAIY,OAAR6jE,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EARR,WAcqD,eAA5C,OAARpyN,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCwiI,iBAChCm1J,IACc,OAAZ9oB,QAAY,IAAZA,GAAA,WAAAA,EAAchxI,qBAAd,sBAA8B79H,UAA9B,iBAAqCmhI,sBAAuB,IACpD,OAARt9D,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCmhI,sBAAuB,KAEP,aAA5C,OAARt9D,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCwiI,iBAChCm1J,IACc,OAAZ9oB,QAAY,IAAZA,GAAA,WAAAA,EAAchxI,qBAAd,sBAA8B79H,UAA9B,iBAAqCqhI,oBAAqB,IAClD,OAARx9D,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCqhI,oBAAqB,MAG1D/vF,GAAO9M,KAAP,iGACuFwxP,EADvF,cAEwD,eAA5C,OAARnyN,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCwiI,gBAC7B,YACA,UAJR,oDAK8CxiI,EAL9C,mDAMY,OAAR6jE,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EAVR,sDAWgDG,EAC5Cp2R,EACA,sBACA,oBACA,kBAfJ,cAsBA83R,GAAe,OACbjpB,QADa,IACbA,GADa,WACbA,EAAchxI,qBADD,mBACb,GAA8B79H,UADjB,cACb,GAAqC2oQ,YADxB,OAEb9kM,QAFa,IAEbA,GAFa,WAEbA,EAAUg6D,qBAFG,mBAEb,GAA0B79H,UAFb,cAEb,GAAiC2oQ,cAGnCr3N,GAAO9M,KAAP,gHACsGwxP,EADtG,cACiIniM,GADjI,OACoJ0B,GACxI,OAAR1xB,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC2oQ,cAAe,GAFpD,gCAG2B3oQ,EAH3B,oDAIY,OAAR6jE,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EARR,UAcA6B,GAAe,OACbjpB,QADa,IACbA,GADa,WACbA,EAAchxI,qBADD,mBACb,GAA8B79H,UADjB,cACb,GAAqCshR,gBADxB,OAEbz9M,QAFa,IAEbA,GAFa,WAEbA,EAAUg6D,qBAFG,mBAEb,GAA0B79H,UAFb,cAEb,GAAiCshR,kBAGnChwO,GAAO9M,KAAP,mHACyGwxP,EADzG,cACoIniM,GADpI,OACuJ0B,GAC3I,OAAR1xB,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiCshR,kBAAmB,GAFxD,gCAG2BthR,EAH3B,oDAIY,OAAR6jE,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC02R,gBAC7B3yQ,KAAK,OAAC8/C,QAAD,IAACA,GAAD,WAACA,EAAUg6D,qBAAX,mBAAC,GAA0B79H,UAA3B,cAAC,GAAiC02R,gBAAgBrmR,OACrD,kBAEF4lR,EARR,WAeY,OAAZpnB,QAAY,IAAZA,OAAA,EAAAA,EAAcvsI,uBAAd,OAAqCz+D,QAArC,IAAqCA,OAArC,EAAqCA,EAAUy+D,qBACtC,WAATtiI,KAEA,OAAI6jE,QAAJ,IAAIA,OAAJ,EAAIA,EAAUy+D,oBACZhxF,GAAO9M,KAAP,4DACkDwxP,EADlD,0HAIA1kP,GAAO9M,KAAP,4DAA4DwxP,EAA5D,2EAAoJA,EAApJ,gGACyDniM,GADzD,OAC4E0B,GAClE,OAAR1xB,QAAQ,IAARA,GAAA,WAAAA,EAAUg6D,qBAAV,sBAA0B79H,UAA1B,iBAAiC0nQ,kBAAmB,GAFtD,0EAWJ,OAjXmC,SAAC1nQ,EAAMsxC,GAAY,IAAD,QA4CnD,EA3CI4lP,EAAqBhV,GAAmBliR,EAAM,SAC9Co3R,EAAuBlV,GAAmBliR,EAAM,WAChDm3R,EAA0B5qP,GAAgBvsC,EAAM,SAChDq3R,EAA4B9qP,GAAgBvsC,EAAM,WAClDgqC,EAAuB,WAAThqC,EAAoB,SAAW,SAE7Cm4R,EAAe,OAAG3rB,QAAH,IAAGA,OAAH,EAAGA,EAAc78P,QAAO,SAAC9E,GAC5C,OAAW,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM47B,gBAAiBuD,KAE1BgtP,EAAkBnlB,EAA6B,OACnDhD,QADmD,IACnDA,OADmD,EACnDA,EAAc9wI,4BACd/zF,GAGIwtP,EAAuB3lB,EAA6B,OACxDhD,QADwD,IACxDA,OADwD,EACxDA,EAAc5xI,wBACdjzF,MAIkB,OAAlBktP,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBnwR,UAApB,OACAqwR,QADA,IACAA,OADA,EACAA,EAAsBrwR,UADtB,OAEAowR,QAFA,IAEAA,OAFA,EAEAA,EAAyBpwR,UAFzB,OAGAswR,QAHA,IAGAA,OAHA,EAGAA,EAA2BtwR,UACX,OAAfoxR,QAAe,IAAfA,OAAA,EAAAA,EAAiBpxR,UAAjB,OACCoxR,QADD,IACCA,GADD,UACCA,EAAkB,UADnB,aACC,EAAsBrO,gCAExBx4O,EAAO9M,KAAP,sMAGa,WAATxkC,EAAoB,SAAW,SAHnC,0BAQ+B,KAAb,OAAlBk3R,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBnwR,SACgB,KAAb,OAAvBowR,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBpwR,SACwC,KAAjE,UAAAu9O,GAAc0yC,EAAiBI,UAA/B,eAAsDrwR,SAKxC,KAJd,UAAAu9O,GACEkzC,EACAH,EACA,sBAHF,eAIGtwR,UAIgB,OAAfoxR,QAAe,IAAfA,OAAA,EAAAA,EAAiBpxR,UAAjB,OACAoxR,QADA,IACAA,GADA,UACAA,EAAkB,UADlB,aACA,EAAsBrO,+BAGxBx4O,EAAO9M,KAAP,MAEc,OAAf2zP,QAAe,IAAfA,OAAA,EAAAA,EAAiBpxR,UAAjB,OACCoxR,QADD,IACCA,GADD,UACCA,EAAkB,UADnB,aACC,EAAsBrO,gCADxB,OAEAoN,QAFA,IAEAA,OAFA,EAEAA,EAAoBnwR,UAFpB,OAGAowR,QAHA,IAGAA,OAHA,EAGAA,EAAyBpwR,UAEzBuqC,EAAO9M,KAAP,6GACwFwxP,EADxF,kEAGKiB,GACAC,EACAC,EACAC,EACAC,EACAr3R,GARL,mBAasB,OAApBo3R,QAAoB,IAApBA,OAAA,EAAAA,EAAsBrwR,UAAtB,OAAgCswR,QAAhC,IAAgCA,OAAhC,EAAgCA,EAA2BtwR,UAC7DuqC,EAAO9M,KAAP,uGAC6FwxP,EAD7F,wHAGIiB,GACAC,EACAC,EACAC,EACAC,EACAr3R,EACA,WATJ,gBAcKsxC,EAAOvqC,QACVuqC,EACGmD,WACAmmC,WAAW,MAAO,MAClBA,WAAW,KAAM,KACjBA,WAAW,KAAM,IACjBA,WAAW,SAAK,cAChBA,WAAW,SAAU,QACrBA,WAAW,QAAS,QAiR3Bw9M,CAA6Bp4R,EAAMsxC,IAE5BA,GAAOvqC,OACVuqC,GACGmD,WACAmmC,WAAW,MAAO,MAClBA,WAAW,KAAM,KACjBA,WAAW,KAAM,IACjBA,WAAW,SAAK,cAChBA,WAAW,SAAU,QACrBA,WAAW,QAAS,QACpBA,WAAW,UAAW,UACzB,IAGAy9M,GAAmB,SAACC,EAAoBC,GAAwB,IAAD,IAGnE,OACE,cAAI30Q,KAHe00Q,GAAsBC,UAGzC,eAAwB9+P,eAAxB,UACA,IAAI7V,KAAK20Q,UADT,aACA,EAA8B9+P,aAO5B++P,GAAiC,SAACxwP,GAAiB,IAAD,IAepD,EAdIsJ,EAAS,GACXmnP,EAAmC,KAFe,sBAGb5pB,QAHa,IAGbA,OAHa,EAGbA,EAAc7xI,kBAHD,IAGtD,2BAAyE,CAAC,IAAD,IAA9D07J,EAA8D,SAE3C,OAA1BA,QAA0B,IAA1BA,GAAA,UAAAA,EAA4B78K,wBAA5B,eAA8C5gC,YAA9C,OACAjzC,QADA,IACAA,GADA,UACAA,EAAa6zE,wBADb,aACA,EAA+B5gC,WAE/Bw9M,EAAmCC,IARe,8BAapDthP,OAAM,UAACqhP,SAAD,aAAC,EAAkCxe,mBACzC7iO,OAAM,OAACpP,QAAD,IAACA,OAAD,EAACA,EAAaiyO,kBAEpB3oO,EAAO9M,KAAP,mJACwEqvD,GADxE,OAC2F0B,GACzD,QAAhC,EAAAkjM,SAAA,eAAkCxe,kBAAmB,GAFvD,oIAI0EpmL,GAJ1E,OAI6F0B,GAChF,OAAXvtD,QAAW,IAAXA,OAAA,EAAAA,EAAaiyO,kBAAmB,GALlC,iBAQF,OAAO3oO,GAGHqnP,GAAwC,SAAC3wP,GAAiB,IAAD,MAiB3D,EAME,EAUK,IAkBP,EAME,EAUK,IAkBP,EAME,EAUK,IApGHsJ,EAAS,GACXmnP,EAAmC,KACvC,UAAI5pB,QAAJ,IAAIA,OAAJ,EAAIA,EAAc7xI,iBAAkB,CAAC,IAAD,wBACO6xI,QADP,IACOA,OADP,EACOA,EAAc7xI,kBADrB,IAClC,2BAAyE,CAAC,IAAD,IAA9D07J,EAA8D,SAE3C,OAA1BA,QAA0B,IAA1BA,GAAA,UAAAA,EAA4B78K,wBAA5B,eAA8C5gC,YAA9C,OACAjzC,QADA,IACAA,GADA,UACAA,EAAa6zE,wBADb,aACA,EAA+B5gC,WAE/Bw9M,EAAmCC,IANL,+BAYlCthP,OAAM,UAACqhP,SAAD,aAAC,EAAkC74L,kBACzCxoD,OAAM,OAACpP,QAAD,IAACA,OAAD,EAACA,EAAa43D,kBAGlBy4L,GAAgB,UACdI,SADc,aACd,EAAkC92J,oBAClC65I,GAGFlqO,EAAO9M,KAAP,6BAAkCzgB,KAAMy3P,GAAyBnrQ,OAC/D,WADF,6HAGsEwjF,GAHtE,OAGyF0B,GACvD,QAAhC,EAAAkjM,SAAA,eAAkC74L,iBAAkB,GAJtD,oIAMwE/L,GANxE,OAM2F0B,EAAa,OACtGvtD,QADsG,IACtGA,OADsG,EACtGA,EAAa43D,gBAPf,iBAUAtuD,EAAO9M,KAAP,6BAAkCzgB,KAAK,UACrC00Q,SADqC,aACrC,EAAkC92J,qBAClCtxH,OAAO,WAFT,6HAGsEwjF,GAHtE,OAGyF0B,GACvD,QAAhC,EAAAkjM,SAAA,eAAkC74L,iBAAkB,GAJtD,sBAKe77E,KAAMy3P,GAAyBnrQ,OAC5C,WANF,0HAQwEwjF,GARxE,OAQ2F0B,EAAa,OACtGvtD,QADsG,IACtGA,OADsG,EACtGA,EAAa43D,gBATf,kBAeFxoD,OAAM,UAACqhP,SAAD,aAAC,EAAkC3c,yBACzC1kO,OAAM,OAACpP,QAAD,IAACA,OAAD,EAACA,EAAa8zO,yBAGlBuc,GAAgB,UACdI,SADc,aACd,EAAkC72J,2BAClC65I,GAGFnqO,EAAO9M,KAAP,6BAAkCzgB,KAChC03P,GACAprQ,OAAO,WAFT,6HAGsEwjF,GAHtE,OAGyF0B,GACvD,QAAhC,EAAAkjM,SAAA,eAAkC3c,wBAAyB,GAJ7D,oIAMwEjoL,GANxE,OAM2F0B,EAAa,OACtGvtD,QADsG,IACtGA,OADsG,EACtGA,EAAa8zO,uBAPf,iBAUAxqO,EAAO9M,KAAP,6BAAkCzgB,KAAK,UACrC00Q,SADqC,aACrC,EAAkC72J,4BAClCvxH,OAAO,WAFT,6HAGsEwjF,GAHtE,OAGyF0B,GACvD,QAAhC,EAAAkjM,SAAA,eAAkC3c,wBAAyB,GAJ7D,sBAKe/3P,KAAM03P,GAA0BprQ,OAC7C,WANF,0HAQwEwjF,GARxE,OAQ2F0B,EAAa,OACtGvtD,QADsG,IACtGA,OADsG,EACtGA,EAAa8zO,uBATf,kBAeF1kO,OAAM,UAACqhP,SAAD,aAAC,EAAkC1c,wBACzC3kO,OAAM,OAACpP,QAAD,IAACA,OAAD,EAACA,EAAa+zO,wBAGlBsc,GAAgB,UACdI,SADc,aACd,EAAkC52J,0BAClC65I,GAGFpqO,EAAO9M,KAAP,6BAAkCzgB,KAAM23P,GAAyBrrQ,OAC/D,WADF,6HAGsEwjF,GAHtE,OAGyF0B,GACvD,QAAhC,EAAAkjM,SAAA,eAAkC1c,uBAAwB,GAJ5D,oIAMwEloL,GANxE,OAM2F0B,EAAa,OACtGvtD,QADsG,IACtGA,OADsG,EACtGA,EAAa+zO,sBAPf,iBAUAzqO,EAAO9M,KAAP,6BAAkCzgB,KAAK,UACrC00Q,SADqC,aACrC,EAAkC52J,2BAClCxxH,OAAO,WAFT,6HAGsEwjF,GAHtE,OAGyF0B,GACvD,QAAhC,EAAAkjM,SAAA,eAAkC1c,uBAAwB,GAJ5D,sBAKeh4P,KAAM23P,GAAyBrrQ,OAC5C,WANF,0HAQwEwjF,GARxE,OAQ2F0B,EAAa,OACtGvtD,QADsG,IACtGA,OADsG,EACtGA,EAAa+zO,sBATf,kBAaJ,OAAOzqO,GA4EHsnP,GAA6B,WAAO,IAAD,gCACjCtnP,EAAS,IAIbwmP,GAAe,OACbjpB,QADa,IACbA,OADa,EACbA,EAAczuI,qBADD,OAEbv8D,QAFa,IAEbA,OAFa,EAEbA,EAAUu8D,uBAEZ03J,GAAe,OACbjpB,QADa,IACbA,OADa,EACbA,EAAcxuI,oBADD,OAEbx8D,QAFa,IAEbA,OAFa,EAEbA,EAAUw8D,sBAEZy3J,GAAe,OACbjpB,QADa,IACbA,OADa,EACbA,EAAcvuI,yBADD,OAEbz8D,QAFa,IAEbA,OAFa,EAEbA,EAAUy8D,4BAGZhvF,EAAO9M,KAAP,uGAC6FwxP,EAD7F,kGAEY,OAARnyN,QAAQ,IAARA,OAAA,EAAAA,EAAUg1N,qCACN90Q,KAAK,OAAC8/C,QAAD,IAACA,OAAD,EAACA,EAAUg1N,qCAAqCxoR,OACnD,kBAEF4lR,EANR,oCASIW,GACA,oBADiC,OAEjC/nB,QAFiC,IAEjCA,OAFiC,EAEjCA,EAAczuI,qBAFmB,OAGjCv8D,QAHiC,IAGjCA,OAHiC,EAGjCA,EAAUu8D,sBAZd,qBAcIw2J,GACA,sBADiC,OAEjC/nB,QAFiC,IAEjCA,OAFiC,EAEjCA,EAAcxuI,oBAFmB,OAGjCx8D,QAHiC,IAGjCA,OAHiC,EAGjCA,EAAUw8D,qBAjBd,qBAyBAy3J,GAAe,OACbjpB,QADa,IACbA,OADa,EACbA,EAActuI,yBADD,OAEb18D,QAFa,IAEbA,OAFa,EAEbA,EAAU08D,2BAEZu3J,GAAe,OACbjpB,QADa,IACbA,OADa,EACbA,EAAcruI,6BADD,OAEb38D,QAFa,IAEbA,OAFa,EAEbA,EAAU28D,gCAGZlvF,EAAO9M,KAAP,uGAC6FwxP,EAD7F,+FAEY,OAARnyN,QAAQ,IAARA,OAAA,EAAAA,EAAUi1N,oCACN/0Q,KAAK,OAAC8/C,QAAD,IAACA,OAAD,EAACA,EAAUi1N,oCAAoCzoR,OAClD,kBAEF4lR,EANR,gCASEW,GACA,mBADiC,OAEjC/nB,QAFiC,IAEjCA,OAFiC,EAEjCA,EAActuI,yBAFmB,OAGjC18D,QAHiC,IAGjCA,OAHiC,EAGjCA,EAAU08D,0BAZZ,mBAcEq2J,GACA,uBADiC,OAEjC/nB,QAFiC,IAEjCA,OAFiC,EAEjCA,EAAcruI,6BAFmB,OAGjC38D,QAHiC,IAGjCA,OAHiC,EAGjCA,EAAU28D,8BAjBZ,kBAuBF,IAAMu4J,EAAyB,OAC7BlqB,QAD6B,IAC7BA,GAD6B,UAC7BA,EAAc7wI,4BADe,aAC7B,EAAoCruH,QAAO,SAACykE,GAAS,IAAD,EAClD,QAAO,OAACvQ,QAAD,IAACA,GAAD,UAACA,EAAUm6D,4BAAX,aAAC,EAAgCp5F,MAAK,SAAC4mO,GAC5C,OAAU,OAAHp3L,QAAG,IAAHA,OAAA,EAAAA,EAAKpnE,SAAL,OAAcw+P,QAAd,IAAcA,OAAd,EAAcA,EAAMx+P,aAI7B+rR,IAAyB,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAA2BhyR,SAC1DuqC,EAAO9M,KAAP,uGAC6FwxP,EAD7F,2GAEIO,GACAwC,EACA,aAQN,IAAMC,EAA8B,OAClCn1N,QADkC,IAClCA,GADkC,UAClCA,EAAUm6D,4BADwB,aAClC,EAAgCruH,QAAO,SAACykE,GAAS,IAAD,EAC9C,QAAO,OAACy6L,QAAD,IAACA,GAAD,UAACA,EAAc7wI,4BAAf,aAAC,EAAoCp5F,MAAK,SAAC4mO,GAChD,OAAOp3L,EAAIpnE,OAASw+P,EAAKx+P,YAK7BgsR,IAA8B,OAC9BA,QAD8B,IAC9BA,OAD8B,EAC9BA,EAAgCjyR,SAEhCuqC,EAAO9M,KAAP,oGAC0FwxP,EAD1F,kDAEIO,GACAyC,EACA,SAJJ,eAYF,IAAMtE,EAAoC,SAAC9tR,GACzC,OACM,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMG,SACNH,EACG+I,QAAO,SAAC9E,GAAD,MAAwB,qBAAdA,EAAKmC,QACtBu3B,KAAI,SAACqwP,GAAD,OAAkBA,MAIvBG,EAAgC,SAACnuR,GACrC,IAAMwhC,GACA,OAAJxhC,QAAI,IAAJA,OAAA,EAAAA,EAAMG,SACNH,EAAK+I,QACH,SAAC9E,GAAD,MACgB,eAAdA,EAAKmC,MACgB,OAArBnC,EAAKm9B,aACc,OAAnBn9B,EAAK+0E,aAEX,OAAmB,OAAZx3C,QAAY,IAAZA,OAAA,EAAAA,EAAcrhC,QAASqhC,EAAe,IAGzC6sP,EAA6C,SAACruR,GAClD,OACM,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMG,SACNH,EAAK+I,QAAO,SAAC9E,GAAD,oBAAUA,QAAV,IAAUA,GAAV,UAAUA,EAAMmC,YAAhB,aAAU,EAAYrH,SAAS,qBAIzCkvR,EAA+B,SAACL,EAAOC,GAC3C,cAAOD,QAAP,IAAOA,OAAP,EAAOA,EAAO7kR,QAAO,SAAC9E,GACpB,OAAQ4pR,EAAM7vP,MAAK,SAACmkN,GAClB,OAAW,OAAJl+O,QAAI,IAAJA,OAAA,EAAAA,EAAMm9B,gBAAN,OAAsB+gN,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAO/gN,oBAKpCixP,EAAmC,SAACzE,EAAOC,GAAR,cACvCD,QADuC,IACvCA,OADuC,EACvCA,EAAO7kR,QAAO,SAAC9E,GACb,OAAQ4pR,EAAM7vP,MAAK,SAACmkN,GAClB,OAAOl+O,EAAKmC,OAAS+7O,EAAM/7O,YAI3BksR,EACJxE,GACU,OAAR7wN,QAAQ,IAARA,GAAA,UAAAA,EAAUo6D,gCAAV,eAAoCl3H,UAApC,OACE88D,QADF,IACEA,OADF,EACEA,EAAUo6D,4BACT,GAEDk7J,EACJzE,GACc,OAAZ7lB,QAAY,IAAZA,GAAA,UAAAA,EAAc5wI,gCAAd,eAAwCl3H,UAAxC,OACE8nQ,QADF,IACEA,OADF,EACEA,EAAc5wI,4BACb,GAED62J,EAAsBD,EAC1BqE,EACAC,GAGIC,EAAuBvE,EAC3BsE,EACAD,GAIIG,EACJtE,GACU,OAARlxN,QAAQ,IAARA,GAAA,UAAAA,EAAUo6D,gCAAV,eAAoCl3H,UAApC,OACE88D,QADF,IACEA,OADF,EACEA,EAAUo6D,4BACT,GAEDq7J,EACJvE,GACc,OAAZlmB,QAAY,IAAZA,GAAA,UAAAA,EAAc5wI,gCAAd,eAAwCl3H,UAAxC,OACE8nQ,QADF,IACEA,OADF,EACEA,EAAc5wI,4BACb,GAED+2J,EAA+BH,EACnCwE,EACAC,GAEIC,EAAiC1E,EACrCyE,EACAD,GAIInE,EACJD,GACU,OAARpxN,QAAQ,IAARA,GAAA,UAAAA,EAAUo6D,gCAAV,eAAoCl3H,UAApC,OACE88D,QADF,IACEA,OADF,EACEA,EAAUo6D,4BACT,GAEDk3J,EACJF,GACc,OAAZpmB,QAAY,IAAZA,GAAA,UAAAA,EAAc5wI,gCAAd,eAAwCl3H,UAAxC,OACE8nQ,QADF,IACEA,OADF,EACEA,EAAc5wI,4BACb,GAEDu7J,EAAkCP,EACtC/D,EACAC,GAEIsE,EAAqCR,EACzC9D,EACAD,GA+DIwE,EAAmB3iB,EAA4B,OACnDlzM,QADmD,IACnDA,OADmD,EACnDA,EAAU68D,aADyC,OAEnDmuI,QAFmD,IAEnDA,OAFmD,EAEnDA,EAAcnuI,cAEV22I,EAAqBN,EAA4B,OACrDlI,QADqD,IACrDA,OADqD,EACrDA,EAAcnuI,aADuC,OAErD78D,QAFqD,IAErDA,OAFqD,EAErDA,EAAU68D,gBAKD,OAAR78D,QAAQ,IAARA,OAAA,EAAAA,EAAU+gE,sBACD,OAAR/gE,QAAQ,IAARA,OAAA,EAAAA,EAAU+gE,uBAAV,OAAiCiqI,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAcjqI,sBADjD,OAEA80J,QAFA,IAEAA,OAFA,EAEAA,EAAkB3yR,UAFlB,OAGAylQ,QAHA,IAGAA,OAHA,EAGAA,EAAcxvN,MACZ,SAACnyC,GAAD,OACM,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMi/Q,+BACW,QAAb,OAAJj/Q,QAAI,IAAJA,OAAA,EAAAA,EAAMuqF,SACS,QAAX,OAAJvqF,QAAI,IAAJA,OAAA,EAAAA,EAAM7K,YAGVsxC,EAAO9M,KAAP,oGAC0FwxP,EAD1F,qDAEIyB,GAA0BiC,EAAkB,SAFhD,kBAOC,OAAC71N,QAAD,IAACA,OAAD,EAACA,EAAU+gE,sBACF,OAAR/gE,QAAQ,IAARA,OAAA,EAAAA,EAAU+gE,uBAAV,OAAiCiqI,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAcjqI,sBADjD,OAEAyyI,QAFA,IAEAA,OAFA,EAEAA,EAAoBtwQ,UAEpBuqC,EAAO9M,KAAP,uGAC6FwxP,EAD7F,qDAEIyB,GAA0BpgB,EAAoB,WAFlD,eAOF,IAmLE,IAzFyB0gB,EAAQC,EA1F7B2B,GAAiC,WACrC,cAAI91N,QAAJ,IAAIA,OAAJ,EAAIA,EAAUjtB,gBACL7yB,KAAK,OAAC8/C,QAAD,IAACA,OAAD,EAACA,EAAUjtB,gBAAgBvmC,OAAO,kBAEzC4lR,GAGH2D,GAA0B,SAACnD,EAAcz2R,EAAM0hH,GACnD,IAAM5vG,EAAQ,GAuCd,OAtCA2kR,EAAalyP,KAAI,SAAC15B,GAoChB,OAnCAiH,EAAM0yB,KAAN,mFAEmB,uBAATxkC,EAAgC6K,EAAKmC,KAAO,GAFtD,8BAKoB,oBAAThN,EAAA,4BACyB4yQ,EAAsB,OACzC/nQ,QADyC,IACzCA,OADyC,EACzCA,EAAMm9B,YACN,MACA,QAEF,GAXf,+BAcoB,cAAThoC,EAAA,sBACmB4yQ,EAAsB,OACnC/nQ,QADmC,IACnCA,OADmC,EACnCA,EAAMm9B,YACN,MACA,OAJN,oBAKUn9B,QALV,IAKUA,OALV,EAKUA,EAAM+0E,UALhB,KAMI,GApBf,sDAwByB,UAAd8hC,EAAA,8DAEU,OAAJ72G,QAAI,IAAJA,OAAA,EAAAA,EAAMhK,MAAN,OAAYgK,QAAZ,IAAYA,OAAZ,EAAYA,EAAM6rR,gBAAlB,OACI7rR,QADJ,IACIA,OADJ,EACIA,EAAM6rR,gBACF,OAAJ7rR,QAAI,IAAJA,OAAA,EAAAA,EAAMhK,OAAM,OAACgK,QAAD,IAACA,OAAD,EAACA,EAAM6rR,gBAAnB,OACA7yN,QADA,IACAA,OADA,EACAA,EAAUoiE,qBACVgwJ,EANV,UAQI,GAhCf,4BAmCO,QAEFnkR,GAGH+nR,GAA8B,SAClCC,EACAC,EACAC,EACAt4K,GAEA,IAAM80K,EAAa,GA+BnB,OA9BAA,EAAWhyP,KAAX,oKAKqB,UAAdk9E,EAAA,0BAAoD,GAL3D,0DASY,OAANo4K,QAAM,IAANA,OAAA,EAAAA,EAAQ/yR,QACJ6yR,GAAwBE,EAAQ,kBAAmBp4K,GACnD,GAXV,wBAce,OAATq4K,QAAS,IAATA,OAAA,EAAAA,EAAWhzR,QACP6yR,GAAwBG,EAAW,YAAar4K,GAChD,GAhBV,wBAmBwB,OAAlBs4K,QAAkB,IAAlBA,OAAA,EAAAA,EAAoBjzR,QAChB6yR,GACEI,EACA,qBACAt4K,GAEF,GAzBV,2CA8BO80K,MAsCY,OAAnB1B,QAAmB,IAAnBA,OAAA,EAAAA,EAAqB/tR,UAArB,OACAiuR,QADA,IACAA,OADA,EACAA,EAA8BjuR,UAD9B,OAEAyyR,QAFA,IAEAA,OAFA,EAEAA,EAAiCzyR,UAEjCuqC,EAAO9M,KAAP,oGAAoGwxP,EAApG,+EAEE6D,GACA/E,EACAE,EACAwE,EACA,SANF,eAaoB,OAApBJ,QAAoB,IAApBA,OAAA,EAAAA,EAAsBryR,UAAtB,OACAwyR,QADA,IACAA,OADA,EACAA,EAAgCxyR,UADhC,OAEA0yR,QAFA,IAEAA,OAFA,EAEAA,EAAoC1yR,UAEpCuqC,EAAO9M,KAAP,uGAAuGwxP,EAAvG,kIACG6D,GACAT,EACAG,EACAE,EACA,WALH,YAYY,OAAZ5qB,QAAY,IAAZA,OAAA,EAAAA,EAAc5G,YAAd,OAA0BpkM,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAUokM,WAC5B,OAARpkM,QAAQ,IAARA,OAAA,EAAAA,EAAUg2M,qBAAV,OAA+BhL,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAcgL,oBACpC,OAARh2M,QAAQ,IAARA,OAAA,EAAAA,EAAUm+D,uBACI,OAAZ6sI,QAAY,IAAZA,OAAA,EAAAA,EAAciJ,mBAAd,OAAiCj0M,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAUi0M,kBAC9B,OAAZjJ,QAAY,IAAZA,OAAA,EAAAA,EAAckJ,kBAAd,OAAgCl0M,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAUk0M,mBACjC,OAAZlJ,QAAY,IAAZA,GAAA,UAAAA,EAAc3G,kBAAd,eAA0B7+P,OAA1B,OACGwlQ,QADH,IACGA,GADH,UACGA,EAAc3G,kBADjB,aACG,EAA0B7+P,MAC1B,OACO,OAARw6D,QAAQ,IAARA,GAAA,UAAAA,EAAUqkM,kBAAV,eAAsB7+P,OAAtB,OACGw6D,QADH,IACGA,GADH,UACGA,EAAUqkM,kBADb,aACG,EAAsB7+P,OACd,OAARw6D,QAAQ,IAARA,OAAA,EAAAA,EAAUqkM,YAAV,OACArkM,QADA,IACAA,OADA,EACAA,EAAUqkM,WACV,MACO,OAAZ2G,QAAY,IAAZA,GAAA,UAAAA,EAAcpvH,kBAAd,eAA0Bp2I,OAA1B,OACGwlQ,QADH,IACGA,GADH,UACGA,EAAcpvH,kBADjB,aACG,EAA0Bp2I,MAC1B,OACO,OAARw6D,QAAQ,IAARA,GAAA,UAAAA,EAAU47E,kBAAV,eAAsBp2I,OAAtB,OACGw6D,QADH,IACGA,GADH,UACGA,EAAU47E,kBADb,aACG,EAAsBp2I,OACd,OAARw6D,QAAQ,IAARA,OAAA,EAAAA,EAAU47E,YAAV,OACA57E,QADA,IACAA,OADA,EACAA,EAAU47E,WACV,KAENnuG,EAAO9M,KAAP,oGAC0FwxP,EAD1F,yDAGY,OAARnyN,QAAQ,IAARA,OAAA,EAAAA,EAAUm+D,oBAtkBuB,WACvC,IAAM1wF,EAAS,GACf,OACEwmP,GAAe,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAc5G,QAAf,OAAwBpkM,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUokM,UACjD6vB,GAAe,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAciJ,eAAf,OAA+Bj0M,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAUi0M,iBACxDggB,GAAe,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAckJ,cAAf,OAA8Bl0M,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAUk0M,iBAEvC,OAAZlJ,QAAY,IAAZA,OAAA,EAAAA,EAAc5G,YAAd,OAA0BpkM,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAUokM,UACtC32N,EAAO9M,KAAP,6BAAkCzgB,KAAMy3P,GAAyBnrQ,OAC/D,WADF,6HAGsEwjF,GAHtE,OAGyF0B,GAC3E,OAAZs5K,QAAY,IAAZA,OAAA,EAAAA,EAAc5G,UAAW,GAJ3B,oIAMwEp0K,GANxE,OAM2F0B,EAAa,OACtG1xB,QADsG,IACtGA,OADsG,EACtGA,EAAUokM,SAPZ,kBAWc,OAAZ4G,QAAY,IAAZA,OAAA,EAAAA,EAAciJ,mBAAd,OAAiCj0M,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAUi0M,iBAC7CxmO,EAAO9M,KAAP,6BAAkCzgB,KAChC03P,GACAprQ,OAAO,WAFT,6HAGsEwjF,GAHtE,OAGyF0B,GAC3E,OAAZs5K,QAAY,IAAZA,OAAA,EAAAA,EAAciJ,iBAAkB,GAJlC,oIAMwEjkL,GANxE,OAM2F0B,EAAa,OACtG1xB,QADsG,IACtGA,OADsG,EACtGA,EAAUi0M,gBAPZ,kBAWc,OAAZjJ,QAAY,IAAZA,OAAA,EAAAA,EAAckJ,kBAAd,OAAgCl0M,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAUk0M,gBAC5CzmO,EAAO9M,KAAP,6BAAkCzgB,KAAM23P,GAAyBrrQ,OAC/D,WADF,6HAGsEwjF,GAHtE,OAGyF0B,GAC3E,OAAZs5K,QAAY,IAAZA,OAAA,EAAAA,EAAckJ,gBAAiB,GAJjC,oIAMwElkL,GANxE,OAM2F0B,EAAa,OACtG1xB,QADsG,IACtGA,OADsG,EACtGA,EAAUk0M,eAPZ,iBAUKzmO,GAEF,GA2hBG2oP,GAvhBNnC,GAAe,OAACjpB,QAAD,IAACA,OAAD,EAACA,EAAc5G,QAAf,OAAwBpkM,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUokM,UAC/C,OAAC4G,QAAD,IAACA,OAAD,EAACA,EAAc5G,UAWA,OAAZ4G,QAAY,IAAZA,OAAA,EAAAA,EAAc5G,YAAd,OAA0BpkM,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAUokM,SAApC,0IAEiEp0K,GAFjE,OAEoF0B,GACzE,OAAZs5K,QAAY,IAAZA,OAAA,EAAAA,EAAc5G,UAAW,GAHxB,sIAKqEp0K,GALrE,QAMO,OAARhwB,QAAQ,IAARA,OAAA,EAAAA,EAAUokM,SAAU1yK,EAAa,OAAC1xB,QAAD,IAACA,OAAD,EAACA,EAAUokM,SAAW,EANtD,gBAQH,IAlBiB,OAAZ4G,QAAY,IAAZA,OAAA,EAAAA,EAAc5G,YAAd,OAA0BpkM,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAUokM,SAApC,0IAE+Dp0K,GAF/D,OAEkF0B,GACvE,OAAZs5K,QAAY,IAAZA,OAAA,EAAAA,EAAc5G,UAAW,GAHxB,oIAKiEp0K,GALjE,OAKoF0B,EAAa,OAClG1xB,QADkG,IAClGA,OADkG,EAClGA,EAAUokM,SANT,gBAQH,GAYD,GA6fL,sBAQY,OAARpkM,QAAQ,IAARA,OAAA,EAAAA,EAAUg2M,qBAAV,OAA+BhL,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAcgL,mBAExB,OAACh2M,QAAD,IAACA,KAAUokM,QAAX,OAAoB4G,QAApB,IAAoBA,KAAc5G,SA/R3D,OAAIpkM,QAAJ,IAAIA,OAAJ,EAAIA,EAAUg2M,kBACN,GAAN,QACc,OAAZhL,QAAY,IAAZA,OAAA,EAAAA,EAAcgL,qBAAd,OAAmCh2M,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAUg2M,kBAA7C,mDACgDmc,EADhD,cAC2EniM,GAD3E,OAC8F0B,GAC5E,OAAZs5K,QAAY,IAAZA,OAAA,EAAAA,EAAcgL,mBAAoB,GAFxC,mCAGgCmc,EAHhC,aAG0DniM,GAH1D,OAG6E0B,GAC/D,OAAR1xB,QAAQ,IAARA,OAAA,EAAAA,EAAUg2M,mBAAoB,GAJpC,gBAMI,KAGJ,OAACh2M,QAAD,IAACA,OAAD,EAACA,EAAUg2M,kBAcR,GAbC,GAAN,SACG,OAAChL,QAAD,IAACA,OAAD,EAACA,EAAcgL,kBAAf,OAEGhL,QAFH,IAEGA,OAFH,EAEGA,EAAcgL,iBADd,OAEH,OAACh2M,QAAD,IAACA,OAAD,EAACA,EAAUg2M,kBAAX,OAAkCh2M,QAAlC,IAAkCA,OAAlC,EAAkCA,EAAUg2M,iBAAd,GAH/B,mDAIgDmc,EAJhD,aAI0EniM,GAJ1E,OAI6F0B,GAC3E,OAAZs5K,QAAY,IAAZA,OAAA,EAAAA,EAAcgL,mBAAoB,GALxC,oCAMiCmc,EANjC,cAM4DniM,GAN5D,OAM+E0B,GACjE,OAAR1xB,QAAQ,IAARA,OAAA,EAAAA,EAAUg2M,mBAAoB,GAPpC,gBASI,KA0QA,GAXR,sBAcY,OAARh2M,QAAQ,IAARA,GAAA,UAAAA,EAAU19B,qBAAV,mBAAyB1e,qBAAzB,eAAwC9hB,SAAS,cAtQjC,WAAO,IAAD,IACO,QAWC,MAXlC,cAAIk+D,QAAJ,IAAIA,GAAJ,UAAIA,EAAUqkM,kBAAd,aAAI,EAAsB7+P,OAClB,GAAN,QACc,OAAZwlQ,QAAY,IAAZA,GAAA,UAAAA,EAAc3G,kBAAd,eAA0B7+P,UAA1B,OAAoCw6D,QAApC,IAAoCA,GAApC,UAAoCA,EAAUqkM,kBAA9C,aAAoC,EAAsB7+P,OAA1D,mDACgD2sR,EADhD,cAEkB,OAAZnnB,QAAY,IAAZA,GAAA,UAAAA,EAAc3G,kBAAd,eAA0B7+P,SAA1B,OAAmCwlQ,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAc3G,aAAc,EAFrE,mCAG+B8tB,EAH/B,cAIc,OAARnyN,QAAQ,IAARA,GAAA,UAAAA,EAAUqkM,kBAAV,eAAsB7+P,SAAtB,OAA+Bw6D,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAUqkM,aAAc,EAJ7D,gBAMI,KAGJ,OAACrkM,QAAD,IAACA,GAAD,UAACA,EAAUqkM,kBAAX,aAAC,EAAsB7+P,OAcpB,GAbC,GAAN,SACG,OAACwlQ,QAAD,IAACA,GAAD,UAACA,EAAc3G,kBAAf,aAAC,EAA0B7+P,OAA3B,OAEGwlQ,QAFH,IAEGA,GAFH,UAEGA,EAAc3G,kBAFjB,aAEG,EAA0B7+P,MAD1B,OAEH,OAACw6D,QAAD,IAACA,OAAD,EAACA,EAAUqkM,YAAX,OAA4BrkM,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAUqkM,WAAd,GAHzB,mDAIgD8tB,EAJhD,cAKkB,OAAZnnB,QAAY,IAAZA,GAAA,UAAAA,EAAc3G,kBAAd,eAA0B7+P,SAA1B,OAAmCwlQ,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAc3G,aAAc,EALrE,mCAM+B8tB,EAN/B,cAOc,OAARnyN,QAAQ,IAARA,OAAA,EAAAA,EAAUqkM,cAAV,OAAwBrkM,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAUqkM,aAAc,EAPtD,gBASI,IAiPAgyB,CAAa,OAACr2N,QAAD,IAACA,KAAUokM,QAAX,OAAoB4G,QAApB,IAAoBA,KAAc5G,SAC/C,GAjBR,qBA1FyB8vB,EA6GL,OACjBl0N,QADiB,IACjBA,OADiB,EACjBA,EAAU47E,WA9GoBu4I,EA6Gb,OAEjBnpB,QAFiB,IAEjBA,OAFiB,EAEjBA,EAAcpvH,YA9GjB,OAAIs4I,QAAJ,IAAIA,OAAJ,EAAIA,EAAQ1uR,OACJ,GAAN,SAAiB,OAAN2uR,QAAM,IAANA,OAAA,EAAAA,EAAQ3uR,UAAR,OAAkB0uR,QAAlB,IAAkBA,OAAlB,EAAkBA,EAAQ1uR,OAA1B,2CAC6B2sR,EAD7B,cAEC,OAANgC,QAAM,IAANA,OAAA,EAAAA,EAAQ3uR,QAAS,EAAjB,iBACO2uR,QADP,IACOA,OADP,EACOA,EAAQ3uR,MADf,KAEI2uR,EAAM,UACHA,EADG,KAEN,EANC,mCAOoBhC,EAPpB,cAQC,OAAN+B,QAAM,IAANA,OAAA,EAAAA,EAAQ1uR,QAAS,EAAjB,iBACO0uR,QADP,IACOA,OADP,EACOA,EAAQ1uR,MADf,KAEI0uR,EAAM,UACHA,EADG,KAEN,EAZC,gBAcP,IACFn9M,WAAW,kBAAmB,KAE9B,OAACm9M,QAAD,IAACA,OAAD,EAACA,EAAQ1uR,OAWN,GAVC,GAAN,UAAY,OAAC2uR,QAAD,IAACA,OAAD,EAACA,EAAQ3uR,OAAT,OAAqB2uR,QAArB,IAAqBA,OAArB,EAAqBA,EAAQ3uR,MAAZ,MAC3B0uR,GAAS,GADA,2CAE6B/B,EAF7B,cAGC,OAANgC,QAAM,IAANA,OAAA,EAAAA,EAAQ3uR,OAAR,iBAAmB2uR,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAQ3uR,MAA3B,KAAsC2uR,EAAM,UAAMA,EAAN,KAAkB,EAHzD,mCAIoBhC,EAJpB,aAKL,UAAkB+B,EAAlB,KALK,gBAOP,IACFn9M,WAAW,kBAAmB,KA8DlC,+CAsByC++M,KAtBzC,qBA2BF,IACc,OAAZ9qB,QAAY,IAAZA,OAAA,EAAAA,EAAcmL,2BAAd,OACEn2M,QADF,IACEA,OADF,EACEA,EAAUm2M,0BACA,OAAZnL,QAAY,IAAZA,OAAA,EAAAA,EAAckL,yCAAd,OACEl2M,QADF,IACEA,OADF,EACEA,EAAUk2M,wCACA,OAAZlL,QAAY,IAAZA,OAAA,EAAAA,EAAcgL,qBAAd,OAAmCh2M,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAUg2M,kBAC7C,CACA,IAAI4e,GAAmC,KACvC,IAAY,OAAR50N,QAAQ,IAARA,OAAA,EAAAA,EAAUm5D,oBAAV,OAA8B6xI,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAc7xI,kBAAkB,CAAC,IAAD,0BACtCn5D,QADsC,IACtCA,OADsC,EACtCA,EAAUm5D,kBAD4B,IAChE,8BAAsD,CAAC,IAAD,MAYlD,MAZOh1F,GAA2C,gCACX6mO,QADW,IACXA,OADW,EACXA,EAAc7xI,kBADH,IACpD,8BAAyE,CAAC,IAAD,MAA9D07J,GAA8D,UAE3C,OAA1BA,SAA0B,IAA1BA,IAAA,WAAAA,GAA4B78K,wBAA5B,iBAA8C5gC,YAA9C,OACAjzC,SADA,IACAA,IADA,WACAA,GAAa6zE,wBADb,cACA,GAA+B5gC,WAE/Bw9M,GAAmCC,KANa,kCASpD,GACEthP,OAAM,WAACqhP,UAAD,cAAC,GAAkCxe,mBACzC7iO,OAAM,OAACpP,SAAD,IAACA,QAAD,EAACA,GAAaiyO,iBAEpB3oO,EAAO9M,KAAP,oGAC0FwxP,EAD1F,kEACyKA,EADzK,cAEe,OAAXhuP,SAAW,IAAXA,IAAA,WAAAA,GAAa6zE,wBAAb,iBAA+B5gC,SAA/B,OACIjzC,SADJ,IACIA,IADJ,WACIA,GAAa6zE,wBADjB,cACI,GAA+B5gC,QAC/B23L,EAAsB,OAAC5qO,SAAD,IAACA,QAAD,EAACA,GAAah7B,KAAM,GAAI,IAJtD,mDAMIwrR,GAA+BxwP,IANnC,yDAOkC2xP,KAPlC,sBAd4D,oCA6BpE,KACe,OAAZ9qB,QAAY,IAAZA,OAAA,EAAAA,EAAc5G,YAAd,OAA0BpkM,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAUokM,WAC1B,OAARpkM,QAAQ,IAARA,OAAA,EAAAA,EAAUm+D,uBACI,OAAZ6sI,QAAY,IAAZA,OAAA,EAAAA,EAAciJ,mBAAd,OAAiCj0M,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAUi0M,kBAC9B,OAAZjJ,QAAY,IAAZA,OAAA,EAAAA,EAAckJ,kBAAd,OAAgCl0M,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAUk0M,mBAHhD,OAIAl0M,QAJA,IAIAA,OAJA,EAIAA,EAAUm5D,kBACV,CAAC,IAAD,0BAC0Bn5D,QAD1B,IAC0BA,OAD1B,EAC0BA,EAAUm5D,kBADpC,IACA,8BAAsD,CAAC,IAAD,SAmBlD,MAnBOh1F,GAA2C,SAChDywP,GAAmC,KACvC,UAAI5pB,QAAJ,IAAIA,OAAJ,EAAIA,EAAc7xI,iBAAkB,CAAC,IAAD,0BACO6xI,QADP,IACOA,OADP,EACOA,EAAc7xI,kBADrB,IAClC,8BAAyE,CAAC,IAAD,MAA9D07J,GAA8D,UAE3C,OAA1BA,SAA0B,IAA1BA,IAAA,WAAAA,GAA4B78K,wBAA5B,iBAA8C5gC,YAA9C,OACAjzC,SADA,IACAA,IADA,WACAA,GAAa6zE,wBADb,cACA,GAA+B5gC,WAE/Bw9M,GAAmCC,KANL,mCAUpC,GACEthP,OAAM,WAACqhP,UAAD,cAAC,GAAkC74L,kBACvCxoD,OAAM,OAACpP,SAAD,IAACA,QAAD,EAACA,GAAa43D,iBACtBxoD,OAAM,WAACqhP,UAAD,cAAC,GAAkC3c,yBACvC1kO,OAAM,OAACpP,SAAD,IAACA,QAAD,EAACA,GAAa8zO,wBACtB1kO,OAAM,WAACqhP,UAAD,cAAC,GAAkC1c,wBACvC3kO,OAAM,OAACpP,SAAD,IAACA,QAAD,EAACA,GAAa+zO,sBAEtBzqO,EAAO9M,KAAP,oGAC0FwxP,EAD1F,iEACwKA,EADxK,cAEe,OAAXhuP,SAAW,IAAXA,IAAA,WAAAA,GAAa6zE,wBAAb,iBAA+B5gC,SAA/B,OACIjzC,SADJ,IACIA,IADJ,WACIA,GAAa6zE,wBADjB,cACI,GAA+B5gC,QAC/B23L,EAAsB,OAAC5qO,SAAD,IAACA,QAAD,EAACA,GAAah7B,KAAM,GAAI,IAJtD,oDAOS,OAAR62D,QAAQ,IAARA,KAAUm+D,mBACN22J,GAAsC3wP,KAR3C,yDAWoC2xP,KAXpC,sBArBJ,mCAwCF,IAAMzC,GAAqB5yC,GAAa,OACtCzgL,QADsC,IACtCA,OADsC,EACtCA,EAAUm5D,iBAD4B,OAEtC6xI,QAFsC,IAEtCA,OAFsC,EAEtCA,EAAc7xI,iBACd,eAEIo6J,GAAuB9yC,GAAa,OACxCuqB,QADwC,IACxCA,OADwC,EACxCA,EAAc7xI,iBAD0B,OAExCn5D,QAFwC,IAExCA,OAFwC,EAExCA,EAAUm5D,iBACV,eAwBF,QArBsB,OAAlBk6J,SAAkB,IAAlBA,QAAA,EAAAA,GAAoBnwR,UAApB,OAA8BqwR,SAA9B,IAA8BA,QAA9B,EAA8BA,GAAsBrwR,UACtDuqC,EAAO9M,KAAP,kMAKF,OAAI0yP,SAAJ,IAAIA,QAAJ,EAAIA,GAAoBnwR,SACtBuqC,EAAO9M,KAAP,qGAAqGwxP,EAArG,oEAAsL2D,KAAtL,0CAEKt9J,GAAuB66J,GAAoB,OAFhD,wBAMF,OAAIE,SAAJ,IAAIA,QAAJ,EAAIA,GAAsBrwR,SACxBuqC,EAAO9M,KAAP,uGAC6FwxP,EAD7F,uHAGI35J,GAAuB+6J,GAAsB,OAHjD,2BAOK9lP,EAAOvqC,OACVuqC,EACGmD,WACAmmC,WAAW,MAAO,MAClBA,WAAW,KAAM,KACjBA,WAAW,KAAM,IACjBA,WAAW,SAAK,cAChBA,WAAW,SAAU,QACrBA,WAAW,QAAS,IACvB,IA2BN,OACE,6BACE,kBAACo9H,GAAD,KACE,uBACEj5M,UAAU,YACVqrE,wBAAyB,CACvBC,OAAM,OAAEqrN,QAAF,IAAEA,GAAF,UAAEA,EAAcntB,gBAAhB,aAAE,EAAyB,GAC9B5gO,QAAQ,WAAYouP,KACpBpuP,QAAQ,gBAAiB8tC,EAAiB,iBAC1C9tC,QAAQ,iBAAkB8tC,EAAiB,eAC3C9tC,QACC,eACA8tC,EAAiB,2BAIxB+5D,EA51DH,kBAAC,GAAD,KACE,kBAAC,UAAD,CACEh8E,YAAaA,EACbE,aAAcA,EACdN,iBAAiB,mBACjBD,iBAAiB,mBACjBE,gBAAgB,kBAChB0B,oBAAqBA,EACrBoC,mBAAiB,EACjBvlD,YAAY,qEACZwlD,QAAS,CACP1sD,QAAS,CACP,SACA,YACA,WACA,aACA,OACA,YACA,cACA,OACA,SACA,WAEF2sD,WAAY,CACV3sD,QAAS,CACP,QACA,UACA,SACA,SACA,kBACA,UACA,YACA,0BA4zDwB,GAE/B8kI,EACC,GAEA,uBACEzwI,UAAU,YACVqrE,wBAAyB,CACvBC,QAAuB,OAAfoqM,QAAe,IAAfA,OAAA,EAAAA,EAAiBlM,WAAY,MAK3C,uBACExpQ,UAAU,YACVqrE,wBAAyB,CACvBC,OAAM,OAAEqrN,QAAF,IAAEA,GAAF,UAAEA,EAAcntB,gBAAhB,aAAE,EAAyB,GAC9B5gO,QAAQ,gBAAiB8tC,EAAiB,iBAC1C9tC,QAAQ,eAAgB8tC,EAAiB,eACzC9tC,QAAQ,WAAY8tC,EAAiB,iBACrC9tC,QAAQ,YA76DT,iNAIMwyP,IAJN,uEA86DCxyP,QACC,eANI,iBAODv0B,SAPC,IAODA,QAPC,EAODA,GAAaC,UAPZ,mBAOyBD,SAPzB,IAOyBA,QAPzB,EAOyBA,GAAaE,SAPtC,MASLq0B,QACC,4BAjEkB,WAC9B,UAAI8nK,QAAJ,IAAIA,OAAJ,EAAIA,EAAyBM,UAAW,CAAC,IAAD,QACtC,GAAqC,YAAzB,OAARlsI,QAAQ,IAARA,GAAA,UAAAA,EAAU45D,mBAAV,eAAuBn0H,OACzB,MAAM,GAAN,OAAU2uR,GAAwB,UAAlC,uBACIA,GAAwB,UAD5B,YACyCW,MAE3C,GAAqC,YAAzB,OAAR/0N,QAAQ,IAARA,GAAA,UAAAA,EAAU45D,mBAAV,eAAuBn0H,OACzB,MAAM,GAAN,OAAU2uR,GACR,UADF,YAEKW,MAEP,GAAqC,YAAzB,OAAR/0N,QAAQ,IAARA,GAAA,UAAAA,EAAU45D,mBAAV,eAAuBn0H,OACzB,MAAM,GAAN,OAAU2uR,GACR,UADF,YAEKW,MAEP,UAAI/0N,QAAJ,IAAIA,GAAJ,UAAIA,EAAU19B,qBAAd,aAAI,EAAyBxgC,SAAS,OACpC,MAAM,IAAN,OAAWizR,MAGf,MAAO,GA8CKwB,SAShB3E,GAASl1R,aAAe,CACtBsjE,SAAU,GACV6xN,aAAc,GACdjhB,gBAAiB,GACjB2J,eAAgB,aAChB5uI,YAAY,EACZ25H,mBAAoB,aACpBG,gBAAiB,GACjB75D,wBAAyB,GACzBo/D,aAAc,GACdh7K,iBAAkB,UAClBg+K,8BAA+B,aAC/B8jB,mBAAoB,aACpBC,0BAA2B,aAC3BC,uBAAwB,aACxBC,0BAA2B,aAC3BljB,uBAAwB,aACxBC,mBAAoB,aACpBrG,aAAc,GACdupB,eAAgB,aAChB1tP,UAAW,GACX8yO,eAAgB,GAChBC,gBAAiB,GACjBC,eAAgB,GAChBC,sBAAuB,aACvBvE,6BAA8B,cClkEhC,IAAMxhL,GAAgB,SAACC,GAAS,IAAD,EAE7B,OADS,OAAGA,QAAH,IAAGA,GAAH,UAAGA,EAAK/gD,kBAAR,aAAG,EAAiB9M,QAAQ,wBAAyB,MAqYnD0yP,GAA0B,SAACx2N,EAAU8/D,GAAiB,IAAD,EAChE,cAAO9/D,QAAP,IAAOA,GAAP,UAAOA,EAAUq6D,oCAAjB,aAAO,EAAwCvuH,QAAO,SAAC+wE,GAAD,iBAC7C,OAAPA,QAAO,IAAPA,OAAA,EAAAA,EAAS1zE,MAAT,OACI0zE,QADJ,IACIA,GADJ,UACIA,EAAS1zE,YADb,aACI,EAAerH,SAASg+H,GAD5B,OAEIjjD,QAFJ,IAEIA,GAFJ,UAEIA,EAASA,eAFb,iBAEI,EAAkB1zE,YAFtB,aAEI,EAAwBrH,SAASg+H,OAI5B22J,GAA8B,SAAClsB,EAAczqI,GACxD,cAAOyqI,QAAP,IAAOA,OAAP,EAAOA,EAAcz+P,QAAO,SAAC+wE,GAAD,iBACnB,OAAPA,QAAO,IAAPA,OAAA,EAAAA,EAAS1zE,MAAT,OACI0zE,QADJ,IACIA,GADJ,UACIA,EAAS1zE,YADb,aACI,EAAerH,SAASg+H,GAD5B,OAEIjjD,QAFJ,IAEIA,GAFJ,UAEIA,EAASA,eAFb,iBAEI,EAAkB1zE,YAFtB,aAEI,EAAwBrH,SAASg+H,OAI5B42J,GAA4B,SAACj+P,GAAW,IAAD,IAQxB,EAPtBk+P,EAAY,OAAGl+P,QAAH,IAAGA,OAAH,EAAGA,EAAOiI,KAAI,SAAC15B,GAAU,IAAD,EACtC,cAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAMsqF,UACF,GAAN,wBAAatqF,QAAb,IAAaA,OAAb,EAAaA,EAAMsqF,SAAnB,YA1DkC,SAAC74D,GACvC,OAAQA,GACN,IAAK,wBACH,MAAO,cACT,IAAK,yBACH,MAAO,eACT,IAAK,cACH,MAAO,cACT,IAAK,aACH,MAAO,aACT,IAAK,8BACH,MAAO,sBACT,IAAK,+BACH,MAAO,uBACT,IAAK,8BACH,MAAO,eACT,IAAK,wBACH,MAAO,oBACT,IAAK,4BACH,MAAO,qBACT,IAAK,oBACH,MAAO,cACT,IAAK,mBACH,MAAO,aACT,IAAK,qCACH,MAAO,uBACT,IAAK,oCACH,MAAO,sBACT,IAAK,6BACH,MAAO,qBACT,IAAK,yBACH,MAAO,oBACT,IAAK,+BACH,MAAO,eACT,QACE,MAAO,IAuBwBm+P,EACzB,OAAJ5vR,QAAI,IAAJA,OAAA,EAAAA,EAAMmC,MAAN,OAAanC,QAAb,IAAaA,OAAb,EAAaA,EAAMmC,KAAnB,OAA0BnC,QAA1B,IAA0BA,GAA1B,UAA0BA,EAAM61E,eAAhC,aAA0B,EAAe1zE,QAEtC,SAET,UAAIwtR,SAAJ,aAAI,EAAczzR,UAChByzR,EAAY,UAAGA,SAAH,aAAG,EAAc7qR,OAAOxb,UAEtC,MAAM,IAAN,iBAAWqmS,SAAX,aAAW,EAAc/lP,WAAWmmC,WAAW,IAAK,OAApD,MAGW8/M,GAAoB,SAACtsB,EAAczqI,GAAiB,IAAD,EACxDg3J,EAAQ,OAAGvsB,QAAH,IAAGA,OAAH,EAAGA,EAAcz+P,QAAO,SAACo5O,GAAD,OACpCplH,KAAW,OAAKolH,QAAL,IAAKA,OAAL,EAAKA,EAAO/7O,MAAvB,OAA8B+7O,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAO6e,IAAM,MAE7C,cAAI+yB,QAAJ,IAAIA,OAAJ,EAAIA,EAAU5zR,QAAQ,UAAO4zR,EAAS,UAAhB,aAAO,EAAa/yB,IACnC,IAGIgzB,GAA2B,SACtCxsB,EACAv6K,EACAnT,GACI,IAAD,IASsB,EARrBm6M,EAAW,OAAGn6M,QAAH,IAAGA,OAAH,EAAGA,EAASn8C,KAAI,SAAC15B,GACT,IAAD,EAApB,cAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAMsqF,UACF,IAAN,cAAWtqF,QAAX,IAAWA,OAAX,EAAWA,EAAMsqF,SAAjB,aAA8BtB,GAA9B,OAAiD0B,GAC/CmlM,GAAkBtsB,GAAkB,OAAJvjQ,QAAI,IAAJA,OAAA,EAAAA,EAAMmC,QAAN,OAAcnC,QAAd,IAAcA,GAAd,UAAcA,EAAM61E,eAApB,aAAc,EAAe1zE,QAD/D,KAIK,SAET,UAAI6tR,SAAJ,aAAI,EAAa9zR,UACf8zR,EAAW,UAAGA,SAAH,aAAG,EAAalrR,OAAOxb,UAEpC,MAAM,GAAN,iBAAU0mS,SAAV,aAAU,EAAapmP,WAAWmmC,WAAW,KAAM,SAGxCkgN,GAAgC,SAC3C1sB,EACAv6K,EACAnT,GAEA,IAAMq6M,EAAgB,OAAGr6M,QAAH,IAAGA,OAAH,EAAGA,EAASn8C,KAAI,SAAC15B,GAAU,IAAD,EAC9C,MAAM,GAAN,QACM,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMsqF,WACE,OAAJtqF,QAAI,IAAJA,OAAA,EAAAA,EAAMsqF,UACNulM,GAAkBtsB,GAAkB,OAAJvjQ,QAAI,IAAJA,OAAA,EAAAA,EAAMmC,QAAN,OAAcnC,QAAd,IAAcA,GAAd,UAAcA,EAAM61E,eAApB,aAAc,EAAe1zE,OAC7D,MAII+tR,EAAiB5mM,QAAO,SAACxtF,EAAGstK,GAAJ,OAAUttK,EAAIstK,IAAG,GACrD,MAAM,GAAN,OAAUpgF,GAAV,OAA6B0B,GAAa,OACxCwlM,QADwC,IACxCA,OADwC,EACxCA,EAAkB5mM,QAAO,SAACxtF,EAAGstK,GAAJ,OAAUunC,SAAS70M,EAAG,IAAM60M,SAASvnC,EAAG,MAAK,MChb3D,SAAS+mH,GAAT,GAUX,IATFn3N,EASC,EATDA,SACAq+B,EAQC,EARDA,QACAwzL,EAOC,EAPDA,aACAtnB,EAMC,EANDA,aACA5B,EAKC,EALDA,aACAyuB,EAIC,EAJDA,gBACApnM,EAGC,EAHDA,iBACAkiM,EAEC,EAFDA,eACA1tP,EACC,EADDA,UAEMyE,EAAU,OAAG+2B,QAAH,IAAGA,OAAH,EAAGA,EAAUn3B,YACvBwuP,EAAe,OAAGpuP,QAAH,IAAGA,OAAH,EAAGA,EAAYguC,QAC9BnU,EAAa,OAAG75B,QAAH,IAAGA,OAAH,EAAGA,EAAYggB,MAC5BquO,EAAY,OAAGruP,QAAH,IAAGA,OAAH,EAAGA,EAAYiuC,KAC3BqgN,EAAe,OAAGtuP,QAAH,IAAGA,OAAH,EAAGA,EAAYkuC,SAC9BtrC,EAAY,OAAGwyD,QAAH,IAAGA,OAAH,EAAGA,EAAS/7D,cAExBovD,EAAgB,SAACC,GAErB,OADYA,EAAI/gD,WAAW9M,QAAQ,wBAAyB,MAIxD8tC,EAAmB,SAACjsE,EAAKF,GAC7B,MAAY,iBAARE,EACKsjC,GAAc+2B,EAASn3B,YAAYljC,GACtCsjC,GAAc+2B,EAASn3B,YAAYljC,GADhC,cAIG,WAARA,GACa,OAARq6D,QAAQ,IAARA,GAAA,UAAAA,EAAU98D,cAAV,eAAkBuC,OACrBu6D,EAAS98D,OAAOuC,MAChBu6D,EAAS98D,OACT88D,EAAS98D,OACT,gBAEM,eAARyC,EACmB,OAAd6+B,EACHtkB,KAAMskB,GAAWh4B,OAAO,kBACxB,cAEM,iBAAR7G,EACKua,KAAMH,QAAQvT,OAAO,kBAGlB,YAAR7G,EAEqB,KAApB0xR,GAA8C,OAApBA,GACR,KAAlBv0N,GAA0C,OAAlBA,GACP,KAAjBw0N,GAAwC,OAAjBA,GACH,KAApBC,GAA8C,OAApBA,EAIvB,GAAN,OAAUF,GAAmB,IAA7B,OACEA,IAAoBv0N,GAAiBw0N,GAAgBC,GACjD,IACA,GAHN,mBAKED,GAAgB,IALlB,OAMEA,IAAiBx0N,GAAiBy0N,GAAmB,IAAM,GAN7D,mBAQEz0N,GAAiB,IARnB,OAQwBA,GAAiBy0N,EAAkB,IAAM,GARjE,mBASEA,GAAmB,GATrB,YAFQ,sBAeUp3P,IAAlB6/B,EAASr6D,IACS,KAAlBq6D,EAASr6D,IACS,OAAlBq6D,EAASr6D,GAEM,iBAARA,EAAA,8BAAkDF,GAEpDu6D,EAASr6D,GA5CO,IAAD,GA8ClB6xR,EAAwB,SAAC91P,GAAW,IAAD,EACjC+1P,EAAI,OAAG5F,QAAH,IAAGA,OAAH,EAAGA,EAAc6F,2BAC3B,cAAI7rP,QAAJ,IAAIA,GAAJ,UAAIA,EAAcjoB,qBAAlB,aAAI,EAA6B9hB,SAAS,QACjC21R,GAAQ5F,EAAa6F,2BAA2Bh2P,GAElD+1P,GAAQ5F,EAAa8F,4BAA4Bj2P,IAGpDk2P,EAAyB,SAAC7zB,GAC9B,MAAM,8HAAN,OAGMA,EAAG,UACI/zK,GADJ,OACuB0B,EAAcqyK,IADrC,UAEI/zK,EAFJ,KAHT,mCAUI6nM,EAAY,SAACh7M,EAASknL,GAC1B,MAAM,iIAAN,OAGQlnL,EAAQyU,UAAYyyK,EAApB,UACO/zK,GADP,OAC0B0B,EAAc7U,EAAQyU,SAAWyyK,IAD3D,UAEO/zK,EAFP,KAHR,iDAaI8nM,EAA8B,SAACrqP,EAAQqyF,GAC3C,IAAMi4J,EAA8BvB,GAClCx2N,EACA8/D,GAEsC22J,GACtClsB,EACAzqI,IAGF,OAAIi4J,QAAJ,IAAIA,OAAJ,EAAIA,EAA6B70R,SAC/BuqC,EAAO9M,KAAP,2JAI+B,OAA3Bo3P,QAA2B,IAA3BA,OAAA,EAAAA,EAA6B70R,QAAS,IAAM,GAJhD,+GASoB,OAAhB48H,EACI,aACgB,aAAhBA,EACA,mBACAA,EAbR,YAcM42J,GAA0BqB,GAdhC,qLAkBMhB,GACAxsB,EACAv6K,EACA+nM,GArBN,2KA6BEd,GACA1sB,EACAv6K,EACA+nM,GAhCF,iCAoMEC,EAAyB,WAAO,IAAD,EAC7B1sD,EApDkB,SAACnvO,GACzB,IAAI87R,EAAkB,EAClBC,EAAkB,EAEtB,GAAIl4N,GAES,YAAT7jE,GAC0C,OAA1C6jE,EAASq6D,6BACT,CACAr6D,EAASq6D,6BAA6B3hG,SAAQ,SAAC1xB,GAAU,IAC/CsqF,EAAatqF,EAAbsqF,SAER,GAAItqF,EAAK69P,0BACPozB,GAAmBjxR,EAAK69P,0BAA4BvzK,OAC/C,UAAItqF,QAAJ,IAAIA,OAAJ,EAAIA,EAAM61E,QACfo7M,GAAmBjxR,EAAK61E,QAAQknL,IAAMzyK,MACjC,CACL,IAAI6mM,EAAW5tB,EAAaz+P,QAAO,SAACssR,GAAD,OAAOA,EAAEp7R,KAAOgK,EAAKkkF,cACxDitM,EACEA,GAAYA,EAAS,IAAMA,EAAS,GAAGp0B,IAAMo0B,EAAS,GAAGp0B,IAAM,EACjEk0B,GAAmBE,EAAW7mM,MAIlC,IAAM+mM,EAAsB1vB,EAAaxvN,MACvC,SAACnyC,GAAD,MAAgC,qBAAtBA,EAAKqqF,gBAGjB,GAA4B,OAAxBgnM,EAA8B,CAChC,IAAMnT,EAAY,OAAGmT,QAAH,IAAGA,OAAH,EAAGA,EAAqBl8R,KACrB,eAAjB+oR,EACFgT,EACGD,GAAe,OAAGI,QAAH,IAAGA,OAAH,EAAGA,EAAqB9mM,QAAU,IAC1B,iBAAjB2zL,IACTgT,EAAe,OAAGG,QAAH,IAAGA,OAAH,EAAGA,EAAqB9mM,aAGzC2mM,EAAe,OAAGG,QAAH,IAAGA,OAAH,EAAGA,EAAqB9mM,OAGzC,MAAO,CACL0mM,kBACAK,2BAA4BJ,EAC5BK,aAAcN,EAAkBC,EAChCM,oBAAqBx4N,EAASkkM,uBAC9Bg0B,gBAAiBl4N,EAASmkM,0BAIhC,OAAO,EAGWs0B,CAAkB,WACpC,MAAM,SAAN,QAEW,OAATntD,QAAS,IAATA,OAAA,EAAAA,EAAWgtD,4BAAX,+bAKQtoM,GALR,OAK2B0B,EAAa,OAAC45I,QAAD,IAACA,OAAD,EAACA,EAAW2sD,iBALpD,4DASI,GAXN,sBAce,OAAT3sD,QAAS,IAATA,OAAA,EAAAA,EAAWgtD,4BAAX,uPAIe,OAAThtD,QAAS,IAATA,OAAA,EAAAA,EAAWgtD,6BACwB,gBAA1B,OAAThtD,QAAS,IAATA,OAAA,EAAAA,EAAWktD,qBADX,kBAEQltD,QAFR,IAEQA,OAFR,EAEQA,EAAW4sD,gBAFnB,MAGI,GAPV,uPAYKloM,GAZL,OAYwB0B,EAAa,OAC/B45I,QAD+B,IAC/BA,OAD+B,EAC/BA,EAAWgtD,4BAbjB,4DAkBI,GAhCV,qbAsCUtoM,GAtCV,OAsC6B0B,EAAa,OACxC45I,QADwC,IACxCA,GADwC,UACxCA,EAAWitD,oBAD6B,aACxC,EAAyBpzO,QAAQ,IAvCnC,yEA2EF,OACE,oCACE,kBAACivJ,GAAD,KACE,uBACEl5M,UAAU,kBACVqrE,wBAAyB,CACvBC,OACEgxN,EAAsB,IACtBA,EAAsB,GACnB1zP,QAAQ,WAAYouP,KACpBpuP,QACC,gBACA8tC,EAAiB,eAAgB,kBAElC9tC,QACC,eACA8tC,EAAiB,aAAc,eAEhC9tC,QACC,mBACA8tC,EAAiB,UAAW,YAE7B9tC,QACC,mBACA8tC,EAAiB,SAAU,oBAE5B9tC,QAAQ,yBAtDS,WAAO,IAAD,EACpC,cAAIk8B,QAAJ,IAAIA,GAAJ,UAAIA,EAAUq6D,oCAAd,aAAI,EAAwCn3H,QACpC,4nBAAN,OA/MuB,WACzB,IAAMuqC,EAAS,GAiFf,OAhFA,OAAIuyB,QAAJ,IAAIA,OAAJ,EAAIA,EAAUq6D,gCACZr6D,EAASq6D,6BACNvuH,QAAO,SAAC9E,GAAD,aACF,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMmC,OACDkK,GAA6BvR,SAA7B,OAAsCkF,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAMmC,OAC5CkK,GAA6BvR,SAA7B,OAAsCkF,QAAtC,IAAsCA,GAAtC,UAAsCA,EAAM61E,eAA5C,aAAsC,EAAe1zE,SAE3DuvB,SAAQ,SAACmkD,GAAa,IAAD,cACds7M,EAAQ,OAAG5tB,QAAH,IAAGA,OAAH,EAAGA,EAAcz+P,QAC7B,SAACssR,GAAD,OAAOA,EAAEp7R,KAAO6/E,EAAQqO,cAE1B,OAAOz9C,EAAO9M,KAAP,8KAIGk8C,EAAQyU,SAAWI,EAAc7U,EAAQyU,UAAY,EAJxD,kJASGzU,EAAQ1zE,KACJ0zE,EAAQ1zE,MACR,UAAA0zE,EAAQA,eAAR,eAAiB1zE,MACjB0zE,EAAQA,QAAQ1zE,KAChB,GAbP,mEAkBY,OAAP0zE,QAAO,IAAPA,OAAA,EAAAA,EAAS1zE,MACL0zE,EAAQ1zE,KAAKrH,SAAS,+BAD1B,OAEI+6E,QAFJ,IAEIA,GAFJ,UAEIA,EAASA,eAFb,aAEI,EAAkB1zE,KAAKrH,SACrB,gCAGJ+6E,EAAQgoL,0BAAR,iLAGU70K,GAHV,OAG6B0B,EACzB7U,EAAQgoL,2BAJZ,kDAOE+yB,EACEO,GAAYA,EAAS,IAAMA,EAAS,GAAGp0B,MAEpC,OAAPlnL,QAAO,IAAPA,GAAA,UAAAA,EAASA,eAAT,eAAkBknL,KAClB6zB,EAAsB,OAAC/6M,QAAD,IAACA,GAAD,UAACA,EAASA,eAAV,aAAC,EAAkBknL,KACzC6zB,EACEO,GAAYA,EAAS,IAAMA,EAAS,GAAGp0B,KArChD,iCA0CY,OAAPlnL,QAAO,IAAPA,OAAA,EAAAA,EAAS1zE,MACY,gCAAjB0zE,EAAQ1zE,KAER,iCADO,OAAP0zE,QAAO,IAAPA,GAAA,UAAAA,EAASA,eAAT,eAAkB1zE,OAGpB0zE,EAAQyU,WAAR,UAAoBzU,EAAQA,eAA5B,aAAoB,EAAiBknL,KACnC8zB,EAAUh7M,EAAD,UAAUA,EAAQA,eAAlB,aAAU,EAAiBknL,KACpC8zB,EACEh7M,EACAs7M,GAAYA,EAAS,IAAMA,EAAS,GAAGp0B,KAE3ClnL,EAAQyU,UAAYzU,EAAQgoL,0BAC5BgzB,EAAUh7M,EAASA,EAAQgoL,2BAC3BgzB,EACEh7M,EACAs7M,GAAYA,EAAS,IAAMA,EAAS,GAAGp0B,KAzDhD,0CA+DX+zB,EAA4BrqP,EAAQ,qBACpCqqP,EAA4BrqP,EAAQ,gBACpCqqP,EAA4BrqP,EAAQ,MACpCqqP,EAA4BrqP,EAAQ,YACpCqqP,EAA4BrqP,EAAQ,uBAE/BA,EAAOvqC,OACVuqC,EACGmD,WACAmmC,WAAW,MAAO,MAClBA,WAAW,KAAM,IACjBA,WAAW,MAAO,IACrB,GA+HI+6M,GARN,uBAYMkG,IAZN,oCAgBK,GAoCwCU,IAClC50P,QACC,qCApBJ,UAqBOszP,EAAgB,kCAEpBtzP,QACC,sCAxBJ,UAfQ,WAAO,IAAD,EACxB,cAAI+H,QAAJ,IAAIA,GAAJ,UAAIA,EAAcjoB,qBAAlB,aAAI,EAA6B9hB,SAAS,8BACjC+L,GAEFD,GAoCU+qR,QAKb,uBACEz9R,UAAU,YACVqrE,wBAAyB,CACvBC,OACEgxN,EAAsB,IACtBA,EAAsB,GACnB1zP,QACC,gBACA8tC,EAAiB,eAAgB,kBAElC9tC,QACC,eACA8tC,EAAiB,aAAc,eAEhC9tC,QACC,mBACA8tC,EAAiB,UAAW,YAE7B9tC,QAAQ,gBAAiB8tC,EAAiB,OAAQ,SAClD9tC,QAAQ,iBAAkB8tC,EAAiB,QAAS,UACpD9tC,QACC,kBACA8tC,EAAiB,WAAY,gBAE9B9tC,QACC,WACA8tC,EAAiB,eAAgB,iBAElC9tC,QAAQ,YA9MX,kNAIMwyP,IAJN,uEA+MGxyP,QACC,eAzBJ,iBA0BOv0B,SA1BP,IA0BOA,QA1BP,EA0BOA,GAAaC,UA1BpB,mBA0BiCD,SA1BjC,IA0BiCA,QA1BjC,EA0BiCA,GAAaE,SA1B9C,MA4BGq0B,QAAQ,QA5BX,iBA4BuBv0B,SA5BvB,IA4BuBA,QA5BvB,EA4BuBA,GAAavW,aC5dnC,SAAS4/R,GAAT,GAgBX,IAfF54N,EAeC,EAfDA,SACA6xN,EAcC,EAdDA,aACAva,EAaC,EAbDA,eACAC,EAYC,EAZDA,gBACAC,EAWC,EAXDA,eACAqhB,EAUC,EAVDA,aACA7oM,EASC,EATDA,iBACA8oM,EAQC,EARDA,2BACArhB,EAOC,EAPDA,sBACAshB,EAMC,EANDA,sBACAhqB,EAKC,EALDA,uBACAmjB,EAIC,EAJDA,eACA1tP,EAGC,EAHDA,UACAstP,EAEC,EAFDA,mBACAE,EACC,EADDA,uBAEMgH,EAAgB,SAACC,GAQrB,OAPgB,IAAIl5Q,KAClB,IAAIA,KACF,IAAIA,KAAKk5Q,GAAgBliQ,cACzB,IAAIhX,KAAKk5Q,GAAgBrjQ,WAAa,EACtC,KAMAsjQ,EAAqB,WAAgB,IAAf/gL,EAAc,uDAAP,GAC7BghL,EAAiB,EACrB,GAA2C,IAAvC,IAAIp5Q,KAAKu3P,GAAgBr3P,UAAiB,CAC5C,IAAMm5Q,EAAYJ,EAAc1hB,GAAgBr3P,UAC1CH,EAAc,IAAIC,KAAKu3P,GAAgBr3P,UAC7Ck5Q,EAAiBC,EAAYt5Q,OAE7Bq5Q,EAAiBH,EAAc1hB,GAAgBr3P,UAEjD,IAAIo5Q,EAAY,EAC2B,IAAvC,IAAIt5Q,KAAKu3P,GAAgBr3P,YAC3Bo5Q,EAAYL,EAAcH,GAAc54Q,WAE1C,IAAMq5Q,EAAkBN,EAAczhB,GAAiBt3P,UACjDs5Q,EAAiBP,EAAcxhB,GAAgBv3P,UAC/Cu5Q,EACJL,EAAiBE,EAAYC,EAAkBC,EACjD,MAAa,YAATphL,EACEqhL,EAAY,IACP,IAEF,MAGLA,EAAY,IACR,qBAEF,yBAGF5nN,EAAmB,SAACjsE,EAAKF,EAAOtJ,GACpC,MAAY,iBAARwJ,EACKua,KAAM,IAAIH,MAAQvT,OAAO,kBAEtB,iBAAR7G,EACKq6D,GAAYA,EAASn3B,aAAem3B,EAASn3B,YAAYljC,GAC5Dq6D,GAAYA,EAASn3B,aAAem3B,EAASn3B,YAAYljC,GADtD,cAIG,0BAARA,EACKuzR,IAEG,eAARvzR,EACmB,OAAd6+B,EAAA,6DAEDA,GAAatkB,KAAMskB,GAAWh4B,OAAO,kBAFpC,WAIH,cAGM,eAAR7G,GACF,OAAIq6D,QAAJ,IAAIA,GAAJ,UAAIA,EAAU19B,qBAAd,aAAI,EAAyB1e,cAAc9hB,SAAS,QAC3Co3R,EAAmB,gBAGR/4P,IAAlB6/B,EAASr6D,IACS,KAAlBq6D,EAASr6D,IACS,OAAlBq6D,EAASr6D,GAEH,SAAN,OAAgBF,IAEH,OAARu6D,QAAQ,IAARA,GAAA,UAAAA,EAAUqkM,kBAAV,eAAsB5+P,OACzBkyM,SAAS33I,EAASqkM,WAAW5+P,MAAO,IACpCkyM,SAAS33I,EAASqkM,WAAY,SAGhBlkO,IAAlB6/B,EAASr6D,IACS,KAAlBq6D,EAASr6D,IACS,OAAlBq6D,EAASr6D,GAGG,YAAVF,GACU,mBAAVA,GACU,kBAAVA,EAEM,mBAEF,SAAN,OAAgBA,GAGdtJ,GAAQA,EAAK2F,SAAS,UAClB,mBAAN,OAEW,oBAAT3F,EAA6B6zF,EAAmB,KAFlD,OAGEhwB,GAAYA,EAASr6D,GAArB,UACOq6D,EAASr6D,GAAKirC,WAAW9M,QAAQ,wBAAyB,MADjE,gBAEar+B,EAFb,MAKGu6D,EAASr6D,GAvCW,IAAD,KA0CtB+rF,EAAgB,SAACC,GAAS,IAAD,EAE7B,OADS,OAAGA,QAAH,IAAGA,GAAH,UAAGA,EAAK/gD,kBAAR,aAAG,EAAiB9M,QAAQ,wBAAyB,MA2J1D21P,EAAwB,SAACl1P,GAC7B,IAD8C,EACxCkJ,EAAS,GAD+B,eAE3BlJ,GAF2B,IAE9C,2BAAiC,CAAC,IAAvBv9B,EAAsB,QAC/BymC,EAAO9M,KAAP,eAEY,OAARq/B,QAAQ,IAARA,OAAA,EAAAA,EAAUm2M,wBAAV,cAAmD,GAFvD,4KAKUpH,EAAsB,OAAC/nQ,QAAD,IAACA,OAAD,EAACA,EAAMmC,KAAM,MAAO,OALpD,4CAH4C,8BAc9C,OAAOskC,GAGHisP,EAA8B,SAACn1P,GACnC,IADoD,EAC9CkJ,EAAS,GADqC,eAEjClJ,GAFiC,IAEpD,2BAAiC,CAAC,IAAvBv9B,EAAsB,QAC/BymC,EAAO9M,KAAP,WAEY,OAARq/B,QAAQ,IAARA,OAAA,EAAAA,EAAUm2M,wBAAV,sQAMHnmL,GANG,OAMgB0B,EAAc1qF,EAAKovQ,iBAAmB,GANtD,iCASI,GAXR,kSAkBCpmL,GAlBD,OAkBoB0B,EAAc1qF,EAAK+0F,gBAAkB,GAlBzD,mCAHkD,8BA2BpD,OAAOtuD,GAyDHksP,EAAqB,WAAO,IAAD,EACzBr2R,EAAS,GAETujE,EAAI,oBAAO7G,QAAP,IAAOA,OAAP,EAAOA,EAAUm5D,kBAC3B,UAAIn5D,QAAJ,IAAIA,GAAJ,UAAIA,EAAUm5D,wBAAd,aAAI,EAA4Bj2H,OAC9B,UAAI88D,QAAJ,IAAIA,OAAJ,EAAIA,EAAUm+D,mBACZ76H,EAAOq9B,KAAP,gLAKwB,OAARq/B,QAAQ,IAARA,OAAA,EAAAA,EAAUm2M,wBAAV,uHAGI,GARpB,kIAYgB,OAACn2M,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAEPsB,EAAsB,IAAI13P,KAAKu3P,GAAiB,GADhDp3P,KAAMo3P,GAAgB9qQ,OAAO,aAbjD,+GAiBgB,OAACwzD,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAEPsB,EAAsB,IAAI13P,KAAKw3P,GAAkB,GADjDr3P,KAAMq3P,GAAiB/qQ,OAAO,aAlBlD,+GAsBgB,OAACwzD,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAEPsB,EAAsB,IAAI13P,KAAKy3P,GAAiB,GADhDt3P,KAAMs3P,GAAgBhrQ,OAAO,aAvBjD,qBA7D8B,WAClC,IADwC,EAClCihC,EAAS,GADyB,sBAErBuyB,QAFqB,IAErBA,OAFqB,EAErBA,EAAUm5D,kBAFW,IAExC,2BAA+C,CAAC,IAArCnyH,EAAoC,QAC7CymC,EAAO9M,KAAP,oMAMeouO,EAAsB,OAAC/nQ,QAAD,IAACA,OAAD,EAACA,EAAMmC,KAAM,MAAO,OANzD,6DAYW,OAAR62D,QAAQ,IAARA,OAAA,EAAAA,EAAUm2M,wBAAV,uKAMFnmL,GANE,OAMiB0B,EAAc1qF,EAAKovQ,iBAAmB,GANvD,iCASI,GArBP,8KA4BCpmL,GA5BD,OA4BoB0B,EAAc1qF,EAAK+0F,gBAAkB,GA5BzD,2MAoCC/L,GApCD,OAoCoB0B,EAAc1qF,EAAKixQ,uBAAyB,GApChE,2MA4CCjoL,GA5CD,OA4CoB0B,EAAc1qF,EAAKkxQ,sBAAwB,GA5C/D,mDAHsC,8BAoDxC,OAAOzqO,EAkCwBmsP,SAEtB,CACL,IADK,EACCxuC,EAAgB,IAAInjM,MAAM9pB,KAAKs+G,KAAK51E,EAAK3jE,OAAS,IACrD+iG,OACAvlE,KAAI,kBAAMmmC,EAAK4E,OAAO,EAAG,MAHvB,eAKc2/K,GALd,IAKL,2BAAkC,CAAC,IAAxBpkP,EAAuB,QAChC1D,EAAOq9B,KAAP,0BACM84P,EAAsBzyR,GAD5B,iCAEM0yR,EAA4B1yR,GAFlC,sBANG,+BAaT,OAAO1D,EAAOJ,OAASI,EAAOstC,WAAWmmC,WAAW,KAAM,KAAO,IA+CnE,OACE,6BACE,kBAACw9H,GAAD,KACE,oCACE,uBACEr5M,UAAU,YACVqrE,wBAAyB,CACvBC,OACEqrN,EAAagI,cACbhI,EAAagI,aAAa,GACvB/1P,QAAQ,WAAYouP,KACpBpuP,QACC,gBACA8tC,EAAiB,eAAgB,kBAElC9tC,QACC,eACA8tC,EAAiB,aAAc,eAEhC9tC,QACC,mBAXJ,8XAkBW,OAARk8B,QAAQ,IAARA,OAAA,EAAAA,EAAUm+D,oBAAV,yIAKb,OAACn+D,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAEPsB,EAAsB,IAAI13P,KAAKu3P,GAAiB,GADhDp3P,KAAMo3P,GAAgB9qQ,OAAO,aANpB,4OAcW,OAACwzD,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAEPsB,EACE,IAAI13P,KAAKw3P,GACT,GAHFr3P,KAAMq3P,GAAiB/qQ,OAAO,aAf7C,2OA0BU,OAACwzD,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAEPsB,EACE,IAAI13P,KAAKy3P,GACT,GAHFt3P,KAAMs3P,GAAgBhrQ,OAAO,aA3B3C,4QAlBH,gCA4DY,OAARwzD,QAAQ,IAARA,OAAA,EAAAA,EAAUm2M,wBAAV,sHA5DJ,iBAlWQ,WAAO,IAAD,EAC1B,MAAM,4JAAN,OAIQmB,EACIp3P,KAAMo3P,GAAgB9qQ,OAAO,cAC7B,aANZ,mMAagB,OAARwzD,QAAQ,IAARA,OAAA,EAAAA,EAAUqkM,aACE,OAARrkM,QAAQ,IAARA,GAAA,UAAAA,EAAUqkM,kBAAV,eAAsB7+P,SAAtB,OAA+Bw6D,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAUqkM,YAD7C,yGAbR,iCAmBc,OAARrkM,QAAQ,IAARA,OAAA,EAAAA,EAAUm+D,oBAAV,iyBAnBN,yBAoDiB,OAARn+D,QAAQ,IAARA,OAAA,EAAAA,EAAUm2M,wBAAV,uMAQI,GA5Db,iBAiauB2jB,GACJ/iN,WACC,UACAnF,EACE,UACA,UACA,oBAGHmF,WACC,aACAnF,EACE,iBACA,UACA,oBAGHmF,WACC,YACAnF,EACE,gBACA,UACA,oBAGH9tC,QACC,mBACA8tC,EACE,mBACA,UACA,oBA9FV,aAkGG9tC,QACC,yBAnGJ,UA/RN,uIAAN,QAIU,OAARk8B,QAAQ,IAARA,OAAA,EAAAA,EAAUm2M,wBAAV,2FAGA2iB,IAHA,aAJF,oGAaE,OAAC94N,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAEPsB,EAAsB,IAAI13P,KAAKu3P,GAAiB,GADhDp3P,KAAMo3P,GAAgB9qQ,OAAO,aAdnC,uGAoBE+qQ,GACI,OAACv3M,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAETsB,EAAsB,IAAI13P,KAAKw3P,GAAkB,GADjDr3P,KAAMq3P,GAAiB/qQ,OAAO,aAEhC,aAxBN,2FA2BEgrQ,GACI,OAACx3M,QAAD,IAACA,OAAD,EAACA,EAAUm2M,wBAETsB,EAAsB,IAAI13P,KAAKy3P,GAAiB,GADhDt3P,KAAMs3P,GAAgBhrQ,OAAO,aAE/B,aA/BN,uCAmCU,OAARwzD,QAAQ,IAARA,OAAA,EAAAA,EAAUm2M,wBAAV,4MAQI,GA3CN,sVAmDqB,OAARn2M,QAAQ,IAARA,OAAA,EAAAA,EAAUm+D,oBAAqB,aAAe,UAnD3D,oOA2DmC,OAARn+D,QAAQ,IAARA,OAAA,EAAAA,EAAUm+D,oBACN,YACA,UA7D/B,uEAoYmBpnD,WACC,UACAnF,EACE,UACA,UACA,oBAGHmF,WACC,aACAnF,EACE,iBACA,UACA,oBAGHmF,WACC,YACAnF,EACE,gBACA,UACA,oBAGH9tC,QACC,mBACA8tC,EACE,mBACA,UACA,qBAlIV,OArDmB,WAAO,IAAD,MACrC,OAAe,OAAR5R,QAAQ,IAARA,GAAA,UAAAA,EAAUm5D,wBAAV,eAA4Bj2H,QAA5B,uwBAUEy2R,IAVF,mLAYG,OAAR35N,QAAQ,IAARA,GAAA,UAAAA,EAAU47E,kBAAV,eAAsBn2I,OAAtB,OACIu6D,QADJ,IACIA,GADJ,UACIA,EAAU47E,kBADd,aACI,EAAsBn2I,MAD1B,iBAEOu6D,QAFP,IAEOA,OAFP,EAEOA,EAAU47E,WAFjB,KAZK,wFAiBH,GAuKkBm+I,GAA2BhjN,WAAW,KAAM,MAEnDjzC,QAAQ,oBAvKG,WAAO,IAAD,EAChC,cAAIk8B,QAAJ,IAAIA,GAAJ,UAAIA,EAAU19B,qBAAd,aAAI,EAAyBxgC,SAAS,UACpC,OAAIk+D,QAAJ,IAAIA,OAAJ,EAAIA,EAAUmzM,mBACN,2kBAAN,OAUM2e,EAAmB,eAAD,OAAiB9xN,QAAjB,IAAiBA,OAAjB,EAAiBA,EAAU68D,cAVnD,uBAWIm1J,EAAsB,OAAChyN,QAAD,IAACA,OAAD,EAACA,EAAU68D,aAAc,GAAI,IAXvD,sCAkBG,GAkJqCm9J,IAC7Bl2P,QACC,2BACAi1P,GAAsB,IAEvBhiN,WAAW,kBAAmBgiN,GAAsB,OAG7D,uBACE79R,UAAU,YACVqrE,wBAAyB,CACvBC,OACEqrN,EAAagI,cACbhI,EAAagI,aAAa,GACvB/1P,QACC,gBACA8tC,EAAiB,eAAgB,kBAElC9tC,QACC,eACA8tC,EAAiB,aAAc,eAEhC9tC,QACC,WACA8tC,EAAiB,eAAgB,iBAElC9tC,QAAQ,YAvXb,iNAIMwyP,IAJN,uEAwXKxyP,QACC,eAfJ,iBAgBOv0B,SAhBP,IAgBOA,QAhBP,EAgBOA,GAAaC,UAhBpB,mBAgBiCD,SAhBjC,IAgBiCA,QAhBjC,EAgBiCA,GAAaE,SAhB9C,YChmBD,SAASwqR,GAAT,GAcX,IAAD,MAbDj6N,EAaC,EAbDA,SACA6xN,EAYC,EAZDA,aACAjpB,EAWC,EAXDA,2BACAsxB,EAUC,EAVDA,2BACA3vB,EASC,EATDA,aACA5B,EAQC,EARDA,aACA34K,EAOC,EAPDA,iBACA++K,EAMC,EANDA,uBACAorB,EAKC,EALDA,+BACAC,EAIC,EAJDA,0BACAlI,EAGC,EAHDA,eACA1tP,EAEC,EAFDA,UACAonK,EACC,EADDA,wBAEMzlK,EAAW,OAAG65B,QAAH,IAAGA,GAAH,UAAGA,EAAU45D,mBAAb,aAAG,EAAuBp0H,MACrCinQ,EACyB,YAArB,OAARzsM,QAAQ,IAARA,GAAA,UAAAA,EAAUvxD,eAAV,eAAmBjJ,OAAqB,aAAe,mBAEnDksF,EAAgB,SAACC,GAAS,IAAD,EAE7B,OADS,OAAGA,QAAH,IAAGA,GAAH,UAAGA,EAAK/gD,kBAAR,aAAG,EAAiB9M,QAAQ,wBAAyB,MAI1D8tC,EAAmB,SAACjsE,EAAKF,EAAOtJ,GAAU,IAAD,EAyBG,EAxBhD,GACW,WAATA,GACQ,gBAARwJ,GACiC,YAAzB,OAARq6D,QAAQ,IAARA,GAAA,UAAAA,EAAU45D,mBAAV,eAAuBn0H,OAEvB,MAAO,SACT,GAAY,iBAARE,EACF,OAAOq6D,GAAYA,EAASn3B,aAAem3B,EAASn3B,YAAYljC,GAAzD,iFAEDq6D,GAAYA,EAASn3B,aAAem3B,EAASn3B,YAAYljC,GAFxD,yBAMT,QAAsBw6B,IAAlB6/B,EAASr6D,IAAwC,KAAlBq6D,EAASr6D,GAC1C,MAAM,SAAN,OAAgBF,GAElB,GAAY,eAARE,EACF,OAAqB,OAAd6+B,EAAA,6DAEDA,GAAatkB,KAAMskB,GAAWh4B,OAAO,kBAFpC,WAIH,cAEN,GAAY,wBAAR7G,EACF,OAAIq6D,GAAYA,EAAS1kB,qBACR,OAAR0kB,QAAQ,IAARA,GAAA,UAAAA,EAAU1kB,2BAAV,eAA+BnyC,MAClC4lQ,EACE/uM,EAAS1kB,oBAAoBnyC,KAC7B,UACA,OAEF4lQ,EACE/uM,EAAS1kB,oBACT,UACA,OAGF,SAAN,OAAgB71C,GAElB,GAAY,mBAARE,EAA0B,CAC5B,GAAIq6D,GAA8B,QAAlBA,EAASr6D,GACvB,MAAO,4DAET,GAAIq6D,GAA8B,YAAlBA,EAASr6D,GACvB,MAAM,2GAAN,OACEq6D,GAAYA,EAAS8jM,eACjB9jM,GAAYA,EAAS8jM,eADzB,gBAEar+P,GAHf,kDAMF,GAAIu6D,GAA8B,UAAlBA,EAASr6D,GACvB,MAAM,+EAAN,OACEq6D,GAAYA,EAAS6jM,gBAArB,UACO7zK,EADP,YAC2B0B,EACrB1xB,GAAYA,EAAS6jM,kBAF3B,gBAIap+P,GALf,WASJ,OAAItJ,GAAQA,EAAK2F,SAAS,UAEpBk+D,GAAYA,EAASr6D,GACjB,GAAN,OACW,oBAATxJ,EAA6B6zF,EAAmB,IADlD,UAEM0B,EAAc1xB,EAASr6D,MAEzB,SAAN,OAAgBF,GAGH,cAARE,GAA+B,gBAARA,EAC1Bq6D,GAAYA,EAASr6D,IAAQq6D,EAASr6D,GAAKF,MACzCu6D,EAASr6D,GAAKF,MACdu6D,EAASr6D,GACTq6D,EAASr6D,GADT,gBAESF,GACXu6D,GAAYA,EAASr6D,IAGrB4sR,EAA8B,SAClCp2R,EACAwJ,EACA6sR,EACAC,EACAp/O,EACA5tC,GACI,IAAD,6IACH,MAAM,oBAAN,OAE2D,QAAtC,OAARu6D,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCk3C,KACa,UAAtC,OAAR2sB,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCk3C,KACzB,mBAAXA,EAEkD,WAAtC,OAAR2sB,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCk3C,KACY,QAAtC,OAAR2sB,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCk3C,IADlC,gHAG0C5tC,EAH1C,oHAIwEuqF,GAJxE,OAI2F0B,GACjF,OAAR1xB,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCwJ,KAAQ,GAL5C,6CASA+rR,GADM,cAAVjsR,EAEMwN,GAIAH,GAHAktD,GAXF,eAkB8C,eAAtC,OAARA,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCk3C,IAAlC,kHAE4C5tC,EAF5C,iJAIkFuqF,GAJlF,OAKE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCq2R,UADvB,aACX,EACE,mBAEC,EATP,+HAWoFxiM,GAXpF,OAYE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCq2R,UADvB,aACX,EACE,mBAEC,EAhBP,8HAkBmFxiM,GAlBnF,OAmBE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCq2R,UADvB,aACX,EACE,mBAEC,EAvBP,6HAyBmFxiM,GAzBnF,OA0BE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCq2R,UADvB,aACX,EACE,mBAEC,EA9BP,8DAmCFd,GADM,cAAVjsR,EAEMwN,GAIAF,GAHAitD,GArCA,yCA8C8C,aAAtC,OAARA,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCk3C,IAAlC,gHAE0C5tC,EAF1C,6IAI8EuqF,GAJ9E,OAKE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EACE,mBAEC,EATP,4HAWiFziM,GAXjF,OAYE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EACE,oBAEC,EAhBP,wHAkB6EziM,GAlB7E,OAmBE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EACE,iBAEC,EAvBP,uHAyB6EziM,GAzB7E,OA0BE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EACE,iBAEC,EA9BP,sHAgC4EziM,GAhC5E,OAiCE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EACE,eAEC,EArCP,wHAuC6EziM,GAvC7E,OAwCE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EACE,gBAEC,EA5CP,uHA8C4EziM,GA9C5E,OA+CE0B,EAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,kBACX,EAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GACE,gBAEC,EAnDP,wHAqD8EziM,GArD9E,OAsDE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GACE,kBAEC,EA1DP,4HA4DkFziM,GA5DlF,OA6DE0B,EAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H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ACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,oBAC7C,EAZP,wHAcuFziM,IAdvF,OAeE0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,iBAC7C,EAjBP,uHAmBuFziM,IAnBvF,OAoBE0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,iBAC7C,EAtBP,sHAwBsFziM,IAxBtF,OAyBE0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,eAC7C,EA3BP,uHA6BsFziM,IA7BtF,OA8BE0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,gBAC7C,EAhCP,uHAkCsFziM,IAlCtF,OAmCE0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,gBAC7C,EArCP,wHAuCwFziM,IAvCxF,OAwCE0B,GAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,kBAC7C,EA1CP,4HA4C4FziM,IA5C5F,OA6CE0B,GAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GACE,qBAEC,EAjDP,2HAmD0FziM,IAnD1F,OAoDE0B,GAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,mBAC7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AtC,OAAR2sB,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCk3C,IAAlC,0IAEsE28C,IAFtE,OAGM0B,GAAa,OACXs5K,SADW,IACXA,IADW,UACXA,GAAchxI,qBADH,iBACX,EAA8B79H,UADnB,iBACX,EAAsCq2R,UAD3B,aACX,EACE,mBAEC,EAPX,gIASsExiM,IATtE,OAUM0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCq2R,UADvB,aACX,EAAiD,mBAC9C,EAZX,wKAesExiM,IAftE,OAgBM0B,GAAa,OACXs5K,SADW,IACXA,IADW,UACXA,GAAchxI,qBADH,iBACX,EAA8B79H,UADnB,iBACX,EAAsCq2R,UAD3B,aACX,EACE,mBAEC,EApBX,gIAsBsExiM,IAtBtE,OAuBM0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCq2R,UADvB,aACX,EAAiD,mBAC9C,EAzBX,sKA4BsExiM,IA5BtE,OA6BM0B,GAAa,OACXs5K,SADW,IACXA,IADW,UACXA,GAAchxI,qBADH,iBACX,EAA8B79H,UADnB,iBACX,EAAsCq2R,UAD3B,aACX,EACE,mBAEC,EAjCX,iIAmCsExiM,IAnCtE,OAoCM0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCq2R,UADvB,aACX,EAAiD,mBAC9C,EAtCX,6KAyCsExiM,IAzCtE,OA0CM0B,GAAa,OACXs5K,SADW,IACXA,IADW,UACXA,GAAchxI,qBADH,iBACX,EAA8B79H,UADnB,iBACX,EAAsCq2R,UAD3B,aACX,EACE,mBAEC,EA9CX,iIAgDsExiM,IAhDtE,OAiDM0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCq2R,UADvB,aACX,EAAiD,mBAC9C,EAnDX,iCAsDkD,aAAtC,OAARxyN,QAAQ,IAARA,GAAA,UAAAA,EAAUg6D,qBAAV,mBAA0B79H,UAA1B,eAAkCk3C,IAAlC,yJAGmE28C,IAHnE,OAIE0B,GAAa,OACXs5K,SADW,IACXA,IADW,UACXA,GAAchxI,qBADH,iBACX,EAA8B79H,UADnB,iBACX,EAAsCs2R,UAD3B,aACX,EACE,mBAEC,EARP,iIAUmEziM,IAVnE,OAWE0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,mBAC7C,EAbP,oKAgBmEziM,IAhBnE,OAiBE0B,GAAa,OACXs5K,SADW,IACXA,IADW,UACXA,GAAchxI,qBADH,iBACX,EAA8B79H,UADnB,iBACX,EAAsCs2R,UAD3B,aACX,EACE,oBAEC,EArBP,kIAuBkEziM,IAvBlE,OAwBE0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,oBAC7C,EA1BP,kKA6BoEziM,IA7BpE,OA8BE0B,GAAa,OACXs5K,SADW,IACXA,IADW,UACXA,GAAchxI,qBADH,iBACX,EAA8B79H,UADnB,iBACX,EAAsCs2R,UAD3B,aACX,EACE,iBAEC,EAlCP,kIAoCoEziM,IApCpE,OAqCE0B,GAAa,OACX1xB,QADW,IACXA,GADW,UACXA,EAAUg6D,qBADC,iBACX,EAA0B79H,UADf,iBACX,EAAkCs2R,UADvB,aACX,EAAgD,iBAC7C,EAvCP,wKA0CoEziM,IA1CpE,OA2CE0B,GAAa,OACXs5K,SADW,IACXA,IADW,UACXA,GAAchxI,qBADH,iBACX,EAA8B79H,UADnB,iBACX,EAAsCs2R,UAD3B,aACX,EACE,iBAEC,EA/CP,iIAiDmEziM,IAjDnE,OAkDE0B,GAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,iBAC7C,EApDP,oKAuDoEziM,IAvDpE,OAwDE0B,GAAa,OACXs5K,SADW,IACXA,IADW,WACXA,GAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GAAoD,eACjD,EA1DP,mIA4DoEziM,IA5DpE,OA6DE0B,GAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,eAC7C,EA/DP,oKAkEoEziM,IAlEpE,OAmEE0B,GAAa,OACXs5K,SADW,IACXA,IADW,WACXA,GAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GAAoD,gBACjD,EArEP,iIAuEmEziM,IAvEnE,OAwEE0B,GAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,gBAC7C,EA1EP,qJA6EoEziM,IA7EpE,OA8EE0B,GAAa,OACXs5K,SADW,IACXA,IADW,WACXA,GAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GAAoD,gBACjD,EAhFP,gIAkFkEziM,IAlFlE,OAmFE0B,GAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,gBAC7C,EArFP,uJAwFoEziM,IAxFpE,OAyFE0B,GAAa,OACXs5K,SADW,IACXA,IADW,WACXA,GAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mBACX,GAAsCs2R,UAD3B,cACX,GACE,kBAEC,EA7FP,gIA+FkEziM,IA/FlE,OAgGE0B,GAAa,OACX1xB,QADW,IACXA,GADW,WACXA,EAAUg6D,qBADC,mBACX,GAA0B79H,UADf,mBACX,GAAkCs2R,UADvB,cACX,GAAgD,kBAC7C,EAlGP,2JAqGoEziM,IArGpE,OAsGE0B,GAAa,OACXs5K,SADW,IACXA,IADW,WACXA,GAAchxI,qBADH,mBACX,GAA8B79H,UADnB,mB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AOC,QAAU,IAA0B,mC,kBCA3CD,EAAOC,QAAU,8Q,kBCAjBD,EAAOC,QAAU,kN,kBCAjBD,EAAOC,QAAU,8tB,kBCAjBD,EAAOC,QAAU,sP,oBCAjBD,EAAOC,QAAU,IAA0B,kC,kBCA3CD,EAAOC,QAAU,8V,kBCAjBD,EAAOC,QAAU,sqG,kBCAjBD,EAAOC,QAAU,8nB,oBCAjBD,EAAOC,QAAU,IAA0B,gD,kBCA3CD,EAAOC,QAAU,k6B,kBCAjBD,EAAOC,QAAU,s6C,kBCAjBD,EAAOC,QAAU,8Q,kBCAjBD,EAAOC,QAAU,sW,kBCAjBD,EAAOC,QAAU,0uB,oBCAjBD,EAAOC,QAAU,IAA0B,uC,kBCA3CD,EAAOC,QAAU,szB,kBCAjBD,EAAOC,QAAU,8rG,kBCAjBD,EAAOC,QAAU,sgI,oBCAjBD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,00B,oBCAjBD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,kBCA3CD,EAAOC,QAAU,0f,kBCAjBD,EAAOC,QAAU,0e,kBCAjBD,EAAOC,QAAU,8oB,kBCAjBD,EAAOC,QAAU,88B,kBCAjBD,EAAOC,QAAU,0X,oBCAjBD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,mD,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,kBCA3CD,EAAOC,QAAU,kgB,kBCAjBD,EAAOC,QAAU,sqB,oBCAjBD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,yD,kBCA3CD,EAAOC,QAAU,0sH,kBCAjBD,EAAOC,QAAU,8yH,kBCAjBD,EAAOC,QAAU,0jB,kBCAjBD,EAAOC,QAAU,8iB,kBCAjBD,EAAOC,QAAU,kZ,kBCAjBD,EAAOC,QAAU,sb,kBCAjBD,EAAOC,QAAU,0iC,oBCAjBD,EAAOC,QAAU,IAA0B,uC,oBCA3CD,EAAOC,QAAU,IAA0B,8C,kBCA3CD,EAAOC,QAAU,kjB,oBCAjBD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,+C,kBCA3CD,EAAOC,QAAU,sf,oBCAjBD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,8C,kBCA3CD,EAAOC,QAAU,kyB,kBCAjBD,EAAOC,QAAU,8Y,oBCAjBD,EAAOC,QAAU,IAA0B,wC,kBCA3CD,EAAOC,QAAU,s+B,oBCAjBD,EAAOC,QAAU,IAA0B,gD,kBCA3CD,EAAOC,QAAU,0jD,kBCAjBD,EAAOC,QAAU,spB,kBCAjBD,EAAOC,QAAU,kiB,oBCAjBD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,kBCA3CD,EAAOC,QAAU,8e,kBCAjBD,EAAOC,QAAU,sS,oBCAjBD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,uC,kBCA3CD,EAAOC,QAAU,kL,oBCAjBD,EAAOC,QAAU,IAA0B,sC,kBCA3CD,EAAOC,QAAU,0b,oBCAjBD,EAAOC,QAAU,IAA0B,2C,kBCA3CD,EAAOC,QAAU,07D,kBCAjBD,EAAOC,QAAU,s2B,kBCAjBD,EAAOC,QAAU,03B,kBCAjBD,EAAOC,QAAU,8pB,kBCAjBD,EAAOC,QAAU,0Z,kBCAjBD,EAAOC,QAAU,kjB,kBCAjBD,EAAOC,QAAU,8gB,kBCAjBD,EAAOC,QAAU,sQ,kBCAjBD,EAAOC,QAAU,8iB,kBCAjBD,EAAOC,QAAU,8Z,kBCAjBD,EAAOC,QAAU,0hB,oBCAjBD,EAAOC,QAAU,IAA0B,8C,kBCA3CD,EAAOC,QAAU,syC,kBCAjBD,EAAOC,QAAU,0xC,oBCAjBD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,kBCA3CD,EAAOC,QAAU,knB,kBCAjBD,EAAOC,QAAU,kW,kBCAjBD,EAAOC,QAAU,87D,oBCAjBD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,uC,kBCA3CD,EAAOC,QAAU,sd,oBCAjBD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,kBCA3CD,EAAOC,QAAU,kxB,kBCAjBD,EAAOC,QAAU,0Q,oBCAjBD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,kBCA3CD,EAAOC,QAAU,8X,kBCAjBD,EAAOC,QAAU,kf,oBCAjBD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,yC,oBCA3CD,EAAOC,QAAU,IAA0B,sC,kBCA3CD,EAAOC,QAAU,kf,kBCAjBD,EAAOC,QAAU,0nI,kBCAjBD,EAAOC,QAAU,0c,kBCAjBD,EAAOC,QAAU,k0D,kBCAjBD,EAAOC,QAAU,sjB,kBCAjBD,EAAOC,QAAU,8d,oBCAjBD,EAAOC,QAAU,IAA0B,gD,kBCA3CD,EAAOC,QAAU,09F,kBCAjBD,EAAOC,QAAU,ke,oBCAjBD,EAAOC,QAAU,IAA0B,yC,kBCA3CD,EAAOC,QAAU,k6D,kBCAjBD,EAAOC,QAAU,03C,kBCAjBD,EAAOC,QAAU,s1E,kBCAjBD,EAAOC,QAAU,0rD,oBCAjBD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,0C,kBCA3CD,EAAOC,QAAU,0tD,oBCAjBD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,oC,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,gD,oBCA3CD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,Q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","file":"static/js/main.ddf7255f.chunk.js","sourcesContent":["/* eslint no-use-before-define: \"off\" */\n/* eslint no-console: \"off\" */\n\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/,\n ),\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA',\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.',\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.',\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import { library } from '@fortawesome/fontawesome-svg-core';\nimport {\n faPen,\n faAngleDown,\n faShareNodes,\n faCodeMerge,\n faClock,\n faChevronDown,\n faArrowToBottom,\n faQuestionCircle,\n faCheck,\n faUser,\n faRectangleAd,\n faNewspaper,\n faBuilding as farFaBuilding,\n faPenRuler,\n faUserHeadset,\n faChevronUp,\n faBookAtlas,\n faWarehouseFull,\n faMegaphone,\n faLocationQuestion,\n faScrewdriverWrench,\n faPiggyBank,\n faChartLineUp,\n faLaptopMobile,\n faBoxesStacked,\n faHandshakeAngle,\n // faTrash as farFaTrash,\n faPlus,\n faTrash,\n fa1,\n fa2,\n fa3,\n faRepeat,\n faChevronRight,\n faMinus,\n faArrowRight,\n faArrowLeft,\n faMagnifyingGlass,\n faCircleXmark,\n faCalendar,\n faEye,\n faCircleInfo,\n faPenToSquare,\n faTimes,\n faCircleExclamation,\n faClockRotateLeft,\n faCalendarXmark,\n faTrashCanUndo,\n faFilePlus,\n faXmark,\n faHourglassStart,\n faFile,\n faAlarmExclamation,\n faThumbsUp,\n faCirclePause,\n faExclamation,\n faBarsProgress,\n faUpload,\n faRefresh,\n faArrowUpRightFromSquare,\n} from '@fortawesome/pro-regular-svg-icons';\n\nexport default library.add(\n faPen,\n faAngleDown,\n faShareNodes,\n faCodeMerge,\n faClock,\n faChevronDown,\n faArrowToBottom,\n faQuestionCircle,\n faCheck,\n faUser,\n faRectangleAd,\n faNewspaper,\n farFaBuilding,\n faPenRuler,\n faUserHeadset,\n faChevronUp,\n faBookAtlas,\n faWarehouseFull,\n faMegaphone,\n faLocationQuestion,\n faScrewdriverWrench,\n faPiggyBank,\n faChartLineUp,\n faLaptopMobile,\n faBoxesStacked,\n faHandshakeAngle,\n // farFaTrash,\n faTrash,\n faPlus,\n fa1,\n fa2,\n fa3,\n faRepeat,\n faChevronRight,\n faMinus,\n faArrowRight,\n faArrowLeft,\n faMagnifyingGlass,\n faCircleXmark,\n faCalendar,\n faEye,\n faCircleInfo,\n faPenToSquare,\n faTimes,\n faCircleExclamation,\n faClockRotateLeft,\n faCalendarXmark,\n faTrashCanUndo,\n faFilePlus,\n faXmark,\n faHourglassStart,\n faFile,\n faAlarmExclamation,\n faThumbsUp,\n faCirclePause,\n faExclamation,\n faBarsProgress,\n faUpload,\n faRefresh,\n faArrowUpRightFromSquare,\n);\n","import { library } from '@fortawesome/fontawesome-svg-core';\n\nimport {\n faPoll,\n faInfoCircle,\n faCopy,\n faFileInvoiceDollar,\n faBuilding as falFaBuilding,\n faFileContract,\n faBoxes,\n faMonitorWaveform,\n faExchange,\n faTachometerFast,\n faBox,\n faBook,\n faArrowsRotate,\n faShapes,\n faSquareArrowUpRight,\n faArrowUp,\n faArrowDown,\n faMessage,\n faTimes,\n faDownload,\n faFileChartColumn,\n faBullseyeArrow,\n faArrowDownToLine,\n faPen as falFaPen,\n faArrowLeft,\n faRectangleAd,\n faBookOpen,\n faMapLocationDot,\n faLink,\n faCodeMerge,\n faCodeCommit,\n faArrowUpRightFromSquare,\n faChevronRight,\n faChevronLeft,\n faHandshake,\n faSignature,\n faFilePen,\n faFileCircleXmark,\n faPause,\n faBan,\n faFileSignature,\n faFileCircleCheck,\n faFile,\n faEye,\n faEyeSlash,\n faCoins,\n} from '@fortawesome/pro-light-svg-icons';\n\nimport { faAmazon } from '@fortawesome/free-brands-svg-icons';\n\nexport default library.add(\n faPoll,\n faCopy,\n faFileInvoiceDollar,\n falFaBuilding,\n faFileContract,\n faInfoCircle,\n faBoxes,\n faMonitorWaveform,\n faExchange,\n faTachometerFast,\n faBox,\n faBook,\n faArrowsRotate,\n faAmazon,\n faShapes,\n faSquareArrowUpRight,\n faArrowUp,\n faArrowDown,\n faMessage,\n faTimes,\n faDownload,\n faFileChartColumn,\n faBullseyeArrow,\n faArrowDownToLine,\n falFaPen,\n faArrowLeft,\n faRectangleAd,\n faBookOpen,\n faMapLocationDot,\n faLink,\n faCodeMerge,\n faCodeCommit,\n faArrowUpRightFromSquare,\n faChevronRight,\n faChevronLeft,\n faArrowDown,\n faHandshake,\n faSignature,\n faFilePen,\n faFileCircleXmark,\n faPause,\n faBan,\n faFileSignature,\n faFileCircleCheck,\n faFile,\n faEye,\n faEyeSlash,\n faCoins,\n);\n","import { library } from '@fortawesome/fontawesome-svg-core';\n\nimport {\n faArrowRight,\n faCircleInfo,\n faExclamationCircle,\n} from '@fortawesome/pro-solid-svg-icons';\n\nexport default library.add(faArrowRight, faCircleInfo, faExclamationCircle);\n","// globalStyles.js\nimport { createGlobalStyle } from 'styled-components';\n\nimport Theme from '../Theme';\nimport NoahMedium from '../fonts/Noah/Noah/WEB/Noah-Medium.woff';\nimport NoahBold from '../fonts/Noah/Noah/WEB/Noah-Bold.woff';\nimport NoahRegular from '../fonts/Noah/Noah/WEB/Noah-Regular.woff';\nimport NoahRegularItalic from '../fonts/Noah/Noah/WEB/Noah-RegularItalic.woff';\nimport NoahBoldItalic from '../fonts/Noah/Noah/WEB/Noah-BoldItalic.woff';\nimport ArialBold from '../fonts/arial-mt-cufonfonts-webfont/ARIALMTEXTRABOLD.woff';\nimport ArialRegular from '../fonts/arial-mt-cufonfonts-webfont/ARIALMTMEDIUM.woff';\nimport HelveticaRegular from '../fonts/Helvetica-Font/Helvetica.ttf';\nimport HelveticaBold from '../fonts/Helvetica-Font/Helvetica-Bold.ttf';\nimport { CalendarFontBackArrow } from '../images';\n\nconst bodyStyles = createGlobalStyle`\n\n@font-face {\n font-family: 'Noah-Medium';\n src: url(${NoahMedium});\n}\n\n @font-face {\n font-family: 'Noah-Bold';\n src: url(${NoahBold});\n } \n \n @font-face {\n font-family: 'Noah Regular';\n src: url(${NoahRegular});\n } \n @font-face {\n font-family: 'Noah-RegularItalic';\n src: url(${NoahRegularItalic});\n } \n @font-face {\n font-family: 'Noah-BoldItalic';\n src: url(${NoahBoldItalic});\n } \n @font-face {\n font-family: 'Arial-Bold';\n src: url(${ArialBold});\n } \n @font-face {\n font-family: 'Arial-Regular';\n src: url(${ArialRegular});\n } \n\n @font-face {\n font-family: 'Helvetica-Regular';\n src: url(${HelveticaRegular});\n } \n\n @font-face {\n font-family: 'Helvetica-Bold';\n src: url(${HelveticaBold});\n } \n \n\nhtml,\n#root {\n height: 100%;\n}\n\nbody {\n color: ${Theme.gray35};\n font-family: ${Theme.baseFontFamily};\n font-size: ${Theme.normal};\n background-color: ${Theme.white};\n height: 100%;\n margin: 0;\n \n}\n\n.common-header-sticky {\n padding-top: 55px;\n}\n\n.header-hide {\n padding-top:0;\n}\n\n.x-hellosign-embedded__modal-content {\n max-width: 1500px !important;\n}\n.m-signer-mobile {\n max-width: 2000px !important;\n}\n.is-desktop.is-embedded .m-signer-mobile {\n width: 100% !important;\n max-width: 100% !important;\n}\n.is-desktop .m-signer-mobile {\n max-width: 100% !important;\n}\n\n.container-fluid {\n height: 100%;\n}\n\n.container {\n max-width: 1248px !important;\n width: 100% !important;\n margin: 0 auto !important;\n @media only screen and (min-width: 1600px) and (max-width: 1920px) {\n max-width: 1450px !important;\n width: 100% !important;\n margin: 0 auto !important;\n }\n @media only screen and (min-width: 1920px) {\n max-width: 100% !important;\n margin: 0 auto !important;\n padding-left: 75px !important;\n }\n @media only screen and (min-width: 991px) and (max-width: 1400px) {\n padding-left: 75px !important;\n }\n}\n.main-container {\n width: 100% !important;\n // margin-right: -15px;\n // margin-left: -15px;\n}\n\n.on-boarding-container {\n width: 100% !important;\n margin: 0 auto !important;\n\n .sticky {\n position: fixed;\n background-color: ${Theme.white};\n z-index: 2;\n width: 100%;\n border-bottom: 1px solid ${Theme.gray5};\n }\n .customer-pdf {\n margin-left: 0px !important;\n }\n \n @media only screen and (max-width: 991px) {\n .sticky {\n padding-left: 28px;\n margin-left: 0 !important;\n }\n }\n}\n\n\nh1 {\n font-size: ${Theme.largeTitleFontSize};\n font-family: ${Theme.titleFontFamily};\n margin: 0;\n color: initial !important;\n\n \n &.medium-size-page-heading {\n color: ${Theme.black} !important;\n font-size: ${Theme.secondaryTitleFontSize};\n \n }\n \n @media only screen and (min-width: 1700px) {\n font-size: ${Theme.largeTitleFontSizeRes};\n }\n}\n\n /* k-b start */\n\nh2 {\n font-size: ${Theme.pageTitleFontSize};\n color: ${Theme.gray90}; \n\n &.primary-heading {\n font-size: ${Theme.primaryTitleFontSize};\n font-family: ${Theme.baseFontFamily};\n font-weight: 500;\n }\n\n &.primary-sub-heading {\n font-size: ${Theme.secondaryTitleFontSize};\n font-family: ${Theme.baseFontFamily};\n font-weight: 300;\n line-height: 32px;\n }\n \n}\n\n\nh3 {\n font-size: ${Theme.MediumTitleFontSize};\n font-family: ${Theme.titleFontFamily};\n margin: 0;\n color: ${Theme.black};\n text-transform: capitalize;\n\n\n &.small-title-heading {\n font-size: ${Theme.ExtraMediumTitleFontSize};\n word-break: break-all;\n }\n\n &.gray-text {\n color: ${Theme.gray90};\n font-family: ${Theme.baseFontFamily};\n }\n}\n\nh4 {\n font-size: ${Theme.small};\n font-family: ${Theme.titleFontFamily};\n margin: 0;\n color: ${Theme.gray90};\n text-transform: uppercase;\n letter-spacing: 1.21px;\n\n &.on-boarding {\n color: ${Theme.black};\n letter-spacing: 1.21px;\n }\n}\n\nh5 {\n font-size: ${Theme.smallTitleFontSize};\n font-family: ${Theme.baseFontFamily};\n font-weight: 600;\n margin: 0;\n color: ${Theme.gray90};\n\n &.sub-title-text {\n font-size: ${Theme.subTitle};\n color: ${Theme.black};\n font-family: ${Theme.baseMediumFontFamily}; \n }\n\n @media only screen and (min-width: 1700px) and (max-width: 1920px) {\n font-size: ${Theme.smallTitleFontSizeRes};\n }\n}\nh6 {\n color: ${Theme.gray90};\n font-size: ${Theme.title};\n font-family: ${Theme.baseFontFamily};\n margin: 0;\n\n &.small-title {\n font-size: ${Theme.extraMedium};\n font-family: ${Theme.titleFontFamily};\n }\n}\n\n.page-title {\n font-size: ${Theme.largeTitleFontSize};\n color: ${Theme.black};\n font-family: ${Theme.titleFontFamily};\n}\n\n.medium-text-title {\n color: ${Theme.black};\n font-size: ${Theme.title};\n font-weight: 600;\n}\n\n.uppercase-text {\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n\n &.small-font {\n font-size: ${Theme.small};\n }\n}\n\n.black-heading-title {\n font-size: ${Theme.extraMedium}; \n color: ${Theme.black};\n font-family: ${Theme.baseFontFamily};\n font-weight: 600;\n}\n .card-title {\n word-break: break-all;\n max-width: 70%;\n }\n.normal-text {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n word-break: break-word;\n}\n.fix-height {\n flex-wrap: wrap;\n flex: initial;\n height: 100%;\n}\n.text-bold {\n font-family: ${Theme.titleFontFamily};\n font-weight: 800;\n}\n.text-medium {\n font-family: ${Theme.baseFontFamily} !important;\n font-weight: 500 !important;\n}\n.text-medium-font {\n font-family: ${Theme.baseMediumFontFamily} !important;\n font-weight: 500 !important;\n}\n.text-regular {\n font-family: ${Theme.baseFontFamily}!important;\n font-weight: 300 !important;\n}\n\n.text-extra-medium {\n font-family: ${Theme.baseFontFamily} !important;\n font-weight: 600 !important;\n}\n.normal-text-black {\n color: ${Theme.black};\n font-size: ${Theme.extraNormal}; \n \n\n &.line-height {\n line-height: 22px;\n }\n}\n\nspan{\n &.active-download {\n color: ${Theme.orange};\n font-size: ${Theme.extraNormal};\n font-weight: ${Theme.baseFontFamily};\n }\n &.inActive-download {\n color:${Theme.gray25};\n font-size: ${Theme.extraNormal};\n }\n}\np {\n font-size: ${Theme.small};\n\n &.black-heading-title {\n font-size: ${Theme.extraMedium}; \n color: ${Theme.black};\n font-family: ${Theme.baseFontFamily};\n font-weight: 600;\n }\n\n &.basic-text {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n margin: 0;\n }\n\n &.basic-small-text {\n color: ${Theme.gray85};\n font-size: ${Theme.extraSmall};\n margin: 0;\n }\n\n &.normal-text {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n }\n &.normal-text-grey {\n color: ${Theme.gray80};\n font-size: ${Theme.normal};\n }\n\n &.no-result-found {\n color: ${Theme.gray40};\n font-size: ${Theme.normal};\n }\n\n &.gray-normal-text {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n }\n\n &.long-text {\n color: ${Theme.black};\n font-size: ${Theme.extraMedium}; \n line-height: 24px;\n margin: 1rem 0 !important;\n p {\n font-size: ${Theme.extraMedium}; \n margin: 0;\n }\n }\n &.in-active {\n color:${Theme.gray25};\n font-size: ${Theme.extraNormal};\n }\n\n &.text-detail {\n color: ${Theme.gray90};\n font-size: ${Theme.extraMedium}; \n line-height: 24px;\n font-weight: 500;\n }\n\n &.text-detail-modal {\n font-size: ${Theme.title};\n color: ${Theme.gray90};\n }\n\n &.gray-text {\n color: ${Theme.gray90};\n font-size: ${Theme.extraMedium}; \n }\n\n &.orange-text-label {\n color: ${Theme.orange};\n font-size: ${Theme.extraNormal};\n font-weight: ${Theme.baseFontFamily};\n }\n &.extra-bold {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n .link-url {\n font-size: ${Theme.extraNormal};\n color: ${Theme.orange};\n text-transform: initial;\n text-decoration: underline;\n }\n }\n\n span {\n &.input-field { \n font-weight: 400;\n font-family: ${Theme.regularArialTextFontFamily};\n }\n }\n\n &.small-para {\n color: ${Theme.gray35};\n line-height: 16px;\n }\n\n .input-contact-value {\n .form-control {\n text-align: center;\n color: ${Theme.black};\n padding: 8px 30px;\n &::placeholder {\n text-align: center;\n color: ${Theme.black};\n text-transform: uppercase;\n }\n }\n }\n\n \n\n .radio-container {\n display: block;\n position: relative;\n padding-left: 35px;\n cursor: pointer;\n font-size: ${Theme.extraMedium};\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .radio-container input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n }\n\n .checkmark-radio {\n position: absolute;\n top: 0;\n left: 0;\n height: 25px;\n width: 25px;\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray2};\n border-radius: 50%;\n }\n\n .radio-container:hover input ~ .checkmark-radio {\n background-color: #ccc;\n }\n\n .radio-container input:checked ~ .checkmark-radio {\n background-color: ${Theme.white};\n }\n\n .checkmark-radio:after {\n content: '';\n position: absolute;\n display: none;\n }\n\n .radio-container input:checked ~ .checkmark-radio:after {\n display: block;\n }\n\n .radio-container .checkmark-radio:after {\n top: 4px;\n left: 4px;\n width: 15px;\n border: 1px solid ${Theme.gray2};\n height: 15px;\n border-radius: 50%;\n background: ${Theme.black};\n }\n\n \n .container {\n display: block;\n position: relative;\n padding-left: 35px;\n margin-bottom: 12px;\n cursor: pointer;\n color: ${Theme.gray90};\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n &.contract-sign {\n color: ${Theme.gray35};\n }\n\n &.additional-place {\n color: ${Theme.black};\n font-size: ${Theme.extraMedium}; \n font-family: ${Theme.regularArialTextFontFamily}; \n }\n }\n\n .container input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n }\n\n .checkmark {\n position: absolute;\n top: 0;\n left: 0;\n border-radius: 4px;\n width: 24px;\n height: 24px;\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray9};\n }\n\n .container:hover input ~ .checkmark {\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray9};\n }\n\n .container input:checked ~ .checkmark {\n background-color: rgba(224, 231, 255, 0.2);\n }\n\n .checkmark:after {\n content: '';\n position: absolute;\n display: none;\n }\n\n .container input:checked ~ .checkmark:after {\n display: block;\n }\n\n .container .checkmark:after {\n left: 9px;\n top: 3px;\n width: 6px;\n height: 12px;\n border: solid ${Theme.gray35};\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n\n @media only screen and (min-width: 1700px) and (max-width: 1920px) {\n font-size: ${Theme.smallRes};\n\n &.long-text {\n font-size: ${Theme.extraMediumRes}; \n }\n\n &.gray-text {\n font-size: ${Theme.extraMediumRes}; \n }\n }\n}\n .info-data {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n }\n.public-DraftStyleDefault-block {\n margin: 0 !important;\n min-height: 22px !important;\n color: ${Theme.black};\n}\n\na {\n color: ${Theme.orange};\n text-decoration: none;\n text-transform: capitalize;\n font-size: ${Theme.normal};\n font-family: ${Theme.baseFontFamily};\n word-break: break-all;\n &:hover {\n text-decoration: none;\n }\n &.enter-details {\n color: ${Theme.gray60};\n text-decoration: underline;\n font-family: ${Theme.boldArialTextFontFamily};\n font-size: ${Theme.extraMedium}; \n }\n\n .external-link-icon {\n width: 18px;\n vertical-align: middle;\n margin-left: 7px;\n }\n &.back-customer-list {\n color: ${Theme.black} !important;\n font-size: ${Theme.normal};\n }\n}\n\n.heading-title {\n font-size: 26px;\n color: ${Theme.black};\n font-weight: 600;\n}\n\n.link {\n font-size: ${Theme.normal};\n font-weight: 500;\n color: ${Theme.gray30};\n text-decoration: none;\n cursor: pointer;\n text-transform: none;\n}\n\n.back-link {\n color: ${Theme.black}; \n font-size: ${Theme.extraNormal};\n font-weight: 600;\n cursor: pointer;\n display: contents;\n\n .arrow-back-icon {\n width: 15px;\n margin-right: 8px;\n vertical-align: text-bottom;\n }\n}\n\n.line-throught {\n text-decoration: line-through;\n}\n\n.table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-x: auto;\n min-height: 0.01%;\n outline: none;\n}\n\n.text-italic {\n font-family: ${Theme.regularItalicFontFamily};\n}\n\n\n.text-center {\n text-align: center;\n}\n\n.text-right {\n text-align: right;\n text-align: -webkit-right;\n}\n\n.text-left {\n text-align: left;\n}\n.text-lg-right {\n @media only screen and (min-width: 992px) {\n text-align: right;\n text-align: -webkit-right;\n }\n}\n.text-md-left {\n @media only screen and (max-width: 991px) {\n text-align: left;\n text-align: -webkit-left;\n }\n}\n.text-md-right {\n @media only screen and (max-width: 991px) {\n text-align: right;\n text-align: -webkit-right;\n }\n}\n.text-sm-left {\n @media only screen and (max-width: 767px) {\n text-align: left;\n text-align: -webkit-left;\n }\n}\n.text-sm-right {\n @media only screen and (max-width: 767px) {\n text-align: right;\n text-align: -webkit-right;\n }\n}\n\n.w-100 {\n width: 100% !important;\n}\n.w-auto {\n width: auto !important;\n}\n\n.w-sm-100 {\n @media only screen and (max-width: 767px) {\n width: 100% !important;\n }\n}\n.col-sm-mt-3 {\n @media only screen and (max-width: 767px) {\n margin-top: 16px;\n }\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-100vh {\n height: 100vh !important;\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.clear-fix {\n clear: both;\n}\n\n.cursor {\n cursor: pointer !important;\n}\n\n.w-10 {\n width: 10%;\n}\n\n.cursor-default {\n cursor: default !important;;\n}\n\nbutton.disabled,\nbutton:disabled {\n opacity: 0.45;\n cursor: not-allowed !important;\n color: ${Theme.white};\n background-color: ${Theme.gray25};\n border-color: ${Theme.gray25};\n}\n\n.edit-profile {\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray10};\n border-radius: 100%;\n width: 48px;\n height: 48px;\n}\n\n.edit-profile-text {\n /* display: flex; */\n display: -webkit-box;\n align-items: center;\n flex-direction: row;\n}\n.straight-line {\n width: 100%;\n border-bottom: 4px solid ${Theme.gray4};\n\n &.light-line {\n border-bottom: 1px solid ${Theme.gray3};\n }\n &.horizontal-line {\n border-bottom: 1px solid ${Theme.gray4};\n }\n\n &.left-line {\n width: 16px;\n display: inline-block;\n vertical-align: super;\n margin-right: 4px;\n\n /* curve the line */\n height: 14px;\n width: 20px;\n background: transparent;\n border-radius: 0px 0px 0px 10px;\n border: solid 1px ${Theme.gray11};\n border-top: none;\n border-right: none;\n }\n}\n.horizontal-line-dotted {\n border-bottom-style: dotted;\n color: ${Theme.gray25};\n}\n.ReactModal__Overlay {\n background: rgba(5, 20, 34, 0.8) !important;\n z-index: 999;\n}\n\n .openCalendar {\n @media only screen and (min-width: 766px) {\n .react-date-picker__calendar .react-calendar {\n position: fixed !important;\n top: 50% !important;\n left: 50% !important;\n }\n }\n \n }\n\n.ReactModal__Content.ReactModal__Content--after-open {\n border: 0 !important;\n border-radius: 8px ;\n overflow: unset !important;\n padding: 0 !important;\n\n .cross-icon {\n width: 20px;\n margin: 20px 14px 0 0;\n }\n\n .modal-body {\n padding: 25px 32px 30px 32px;\n \n }\n\n .edit-profiles {\n font-size: ${Theme.smallRes};\n color: ${Theme.black};\n font-family: ${Theme.titleFontFamily};\n text-transform: uppercase;\n letter-spacing: 1.21px;\n }\n\n @media only screen and (max-width: 610px) {\n overflow: hidden;\n\n .modal-body {\n padding: 20px 15px;\n }\n .escrow {\n padding: 25px 32px 30px 32px;\n }\n }\n\n @media only screen and (max-width: 540px) {\n overflow-x: hidden;\n }\n}\n\nfieldset {\n border-radius: 5px;\n padding: 18px 8px 18px 8px;\n border: 1px solid ${Theme.gray10};\n border-left: 2px solid ${Theme.orange};\n\n &.shape-without-border {\n background-color: ${Theme.white};\n padding: 13px 15px;\n border: 1px solid ${Theme.gray25};\n border-radius: 8px;\n }\n &.extra-radius {\n border-radius: 15px;\n }\n &.less-border {\n border-radius: 4px;\n border: 1px solid ${Theme.gray11}; \n }\n &.performance-fielset{\n position:relative;\n padding: 16px 16px 32px 16px; \n background-color: ${Theme.white}; \n border: 1px solid ${Theme.gray25};\n border-radius: 10px;\n\n legend {\n background-color: ${Theme.white}; \n border: 1px solid ${Theme.gray25};\n border-radius: 16px;\n position: absolute;\n bottom: -16px;\n padding: 6px 20px;\n left: 0;\n right: 0;\n width: fit-content;\n margin: 0 auto;\n color: ${Theme.black};\n font-size: 14px;\n font-family: ${Theme.baseMediumFontFamily};\n text-align: center; \n }\n }\n}\n\n.css-26l3qy-menu {\n z-index: 9999999 !important;\n position: absolute;\n border-radius: 8px; \n\n .react-select__option {\n cursor: pointer;\n text-align: left;\n \n }\n\n .react-select__option--is-disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n}\n\n::-webkit-scrollbar {\n width: 5px;\n}\n::-webkit-scrollbar-track {\n background-color: transparent;\n border-radius: 3px;\n position: absolute;\n user-select: none;\n opacity: 0;\n transition: opacity 300ms ease-in-out 0s;\n}\n::-webkit-scrollbar-thumb {\n position: absolute;\n user-select: none;\n opacity: 0;\n transition: opacity 300ms ease-in-out 0s;\n background-color: transparent;\n}\n\n.readMoreText {\n color: ${Theme.orange} !important;\n font-size: ${Theme.normal};\n font-family: ${Theme.titleFontFamily};\n cursor: pointer;\n}\n\n.__react_component_tooltip {\n top: 222px;\n border-radius: 4px;\n padding: 8px !important;\n text-transform: capitalize;\n font-size: 12px;\n font-weight: 400;\n max-width: inherit !important;\n\n &.text-transformation-none {\n text-transform: none !important;\n }\n\n\n\n strong {\n color: ${Theme.white};\n text-transform: uppercase;\n font-size: ${Theme.small};\n letter-spacing: 1.21px;\n line-height: 16px;\n text-align: center;\n font-family: ${Theme.titleFontFamily};\n }\n\n p {\n margin: 0;\n text-align: center;\n color: ${Theme.white};\n font-size: ${Theme.verySmall};\n }\n \n}\n.__react_component_tooltip.show { \n opacity: 1.9 !important;\n background: #162c50 !important;\n z-index: 99 !important;\n\n @media only screen and (max-width: 991px) { \n max-width: 230px !important;\n }\n }\n\n .cancel-agr-tooltip {\n line-height: 22px;\n text-align: left;\n text-transform: initial;\n font-family: ${Theme.baseFontFamily};\n font-weight: 300;\n max-width: 200px;\n @media only screen and (min-width: 676px) {\n &.last-bill-date {\n left: 66% !important;\n &.place-bottom::after {\n left: 83% !important;\n }\n }\n }\n }\n\n.react-datepicker-wrapper {\n width: 100%;\n}\n.react-date-picker__wrapper {\n border: none !important;\n\n .react-date-picker__button {\n padding: 6px;\n svg {\n width: 16px !important;\n height: 16px !important;\n stroke: ${Theme.gray90} !important;\n stroke-width: 1 !important;\n }\n &:focus {\n background-color: #eceff7 !important;\n padding: 6px;\n border-radius: 50%;\n outline: none;\n }\n }\n}\n\n\n.react-date-picker__calendar {\n z-index: 99999 !important;\n right: 0 !important;\n left: unset !important;\n bottom: unset !important;\n\n .react-calendar {\n border: 1px solid ${Theme.gray10};\n\n .react-date-picker__inputGroup__input {\n color: ${Theme.gray90} !important;\n font-family: ${Theme.baseFontFamily};\n font-weight: 600;\n font-size: ${Theme.normal};\n\n &:focus {\n outline: none;\n }\n }\n\n .react-calendar__tile--active {\n background: ${Theme.orange};\n border-radius: 50%;\n width: 30px;\n \n }\n .react-calendar__tile--now {\n background-color: #e6e6e6;\n border-radius: 50%;\n width: 30px;\n }\n\n .react-calendar__tile:enabled:hover,\n .react-calendar__tile:enabled:focus {\n background-color: #e6e6e6;\n border-radius: 50%;\n\n \n }\n .react-calendar__tile {\n max-width: 100%;\n text-align: center;\n padding: 0.85em 0.85em;\n }\n }\n}\n\n.react-calendar__tile:disabled {\n color: ${Theme.black};\n}\n\n.react-calendar__navigation button[disabled] {\n color: ${Theme.black};\n}\n\n.croped-img {\n height: 480px;\n width: 560px;\n img {\n margin: 0 auto;\n height: 70%;\n top: 20%;\n }\n}\n\n.crop-cantainer-img {\n height: 480px;\n width: 560px;\n\n img {\n width: 70%;\n margin: 0 auto;\n height: 100%;\n }\n}\n\n.avatarName {\n border-radius: 50%;\n text-align: center;\n width: 40px;\n height: 40px;\n border: 1px solid ${Theme.lightOrange};\n background: ${Theme.lightOrange};\n color: ${Theme.black};\n text-transform: Uppercase;\n display: inline-block;\n font-size: ${Theme.extraMedium};\n font-weight: 600;\n padding-top: 10px;\n\n &.small-AvatarName {\n width: 25px;\n height: 25px;\n display: inherit;\n padding-top: 6.5px;\n font-size: 10px;\n }\n\n &.active-user{\n border: 2px solid ${Theme.orange};\n }\n\n &.dropdown-avartName {\n width: 28px;\n height: 28px;\n padding-top: 5px;\n font-size: ${Theme.extraSmall};\n\n span {\n line-height: 0;\n padding-left: 10px;\n min-height: 0;\n }\n }\n\n &.team-avatarName {\n margin-left: -10px !important;\n width: 36px;\n height: 36px;\n padding: 7px;\n &:first-child {\n margin-left: 0;\n }\n }\n\n &.unassigned {\n background: ${Theme.gray3};\n border: none;\n }\n}\n\n.annotation {\n border-radius: 50%;\n text-align: center;\n width: 36px;\n height: 36px;\n border: 4px solid ${Theme.white};\n background: ${Theme.lightOrange};\n color: ${Theme.black};\n text-transform: Uppercase;\n display: inline-block;\n font-size: ${Theme.extraMedium};\n font-weight: 600;\n padding-top: 5px;\n margin-top: -2px;\n\n @media only screen and (max-width: 768px) {\n width: 28px;\n height: 28px;\n border: 2px solid ${Theme.white};\n font-size: ${Theme.verySmall};\n padding-top: 4px;\n margin-top: -2px;\n }\n}\n\n.annotationNone {\n width: 40px;\n height: 40px;\n \n}\n.react-calendar__month-view__days__day--weekend {\n color: ${Theme.black};\n}\n\n.arrow-icon {\n width: 13px;\n margin-right: 5px;\n vertical-align: baseline;\n cursor: pointer;\n}\n\n.ck.ck-editor__main > .ck-editor__editable {\n height: 200px !important;\n}\n\n\n.text-container {\n padding-right: 368px;\n padding-left: 30px;\n font-family: ${Theme.contactregularFontFamily};\n padding-top: 10px;\n background-color: ${Theme.gray3};\n margin-top: 0 !important;\n height: 100%;\n\n &.noah-font {\n font-family : ${Theme.baseFontFamily};\n }\n\n #agreement,\n #statement,\n #addendum,\n #draft-addendum,\n #dspAddendum,#newPage {\n scroll-margin-top: 100px;\n background: ${Theme.white};\n padding: 30px 40px 40px 40px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.1);\n margin-top: 35px;\n }\n\n @media only screen and (min-width: 1500px) {\n padding-right: 430px;\n }\n @media only screen and (max-width: 991px) {\n padding-right: 20px;\n padding-left: 20px;\n margin-top: 40px;\n\n .long-text h3 {\n font-size: 22px !important;\n }\n\n p.long-text {\n font-size: ${Theme.extraNormal} !important;\n }\n }\n @media only screen and (max-width: 768px) {\n padding-right: 10px;\n padding-left: 10px;\n }\n\n @media screen and (-webkit-min-device-pixel-ratio: 0) {\n @media only screen and (max-width: 991px) {\n padding-top: 60px;\n }\n }\n}\n\n.ReactModal__Body--open {\n overflow-y: hidden;\n}\n\n.customer-list-tooltip{\n max-width: 15%;\n left: 11% !important;\n}\n\n.contract_td {\n border: 1px solid ${Theme.black};\n padding: 10px;\n}\n\n\n.one-time {\n width: 14px;\n position: absolute;\n right: 30px;\n top: 16px;\n\n &.save {\n right: 14px;\n }\n}\n\n.uppercase {\n text-transform: uppercase;\n}\n\n.capitalize {\n text-transform: capitalize;\n}\n.uppercase {\n text-transform: uppercase;\n}\n\n.uppercase {\n text-transform: uppercase;\n }\n\n.success-msg-pop-up {\n top: 0px;\n position: fixed;\n left: 40%;\n z-index: 3;\n\n &.contract {\n left: 45%;\n }\n}\n\n.blinkSelectedField {\n animation: blinker 1s linear infinite;\n color: ${Theme.orange};\n}\n@keyframes blinker {\n 50% {\n opacity: 0;\n }\n}\n\n.switch {\n position: relative;\n display: inline-block;\n width: 40px;\n height: 22px;\n}\n\n.switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n\n.disabled {\n opacity: 0.6;\n cursor: not-allowed !important;\n pointer-events: none !important;\n}\n.disabled-tab {\n opacity: 0.2;\n cursor: not-allowed !important;\n pointer-events: none !important;\n}\n\n.disabled-slider-btn {\n opacity: 0.4;\n cursor: not-allowed !important;\n}\n\n.DraftEditor-editorContainer {\n padding: 0 10px;\n font-family: ${Theme.contactregularFontFamily} !important;\n font-weight: 300 !important;\n line-height: 24px;\n\n p span {\n font-weight: 300 !important;\n }\n}\n\n.react-pdf__Page__canvas {\n display: block;\n user-select: none;\n margin: 0 auto !important;\n}\n\n.react-pdf__Page__textContent {\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.1);\n margin-bottom: 20px;\n span {\n transform: none !important;\n }\n}\n.react-pdf__message .react-pdf__message--error {\n text-align: center !important;\n}\n\n.react-pdf__Document {\n width: 100% !important;\n background-color: ${Theme.gray3} !important;\n padding-right: 345px;\n\n .react-pdf__Page {\n background-color: ${Theme.gray3} !important;\n\n & .pdf-view {\n margin-top: 35px !important;\n width: 100% !important;\n background-color: ${Theme.gray3} !important;\n }\n\n .react-pdf__Page__canvas {\n top: 52% !important;\n }\n &:first-child {\n top: 95px !important;\n margin-bottom: 120px !important;\n }\n }\n @media only screen and (min-width: 1500px) {\n padding-right: 400px;\n }\n @media only screen and (max-width: 991px) {\n padding-left: 0px !important;\n padding-right: 0;\n .react-pdf__Page {\n &:first-child {\n top: 110px !important;\n margin-bottom: 135px !important;\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .react-pdf__Page {\n &:first-child {\n top: 145px !important;\n margin-bottom: 165px !important;\n }\n }\n }\n}\n\n#ResumeContainer {\n margin: auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n overflow: hidden;\n}\n\n.PDFDocument {\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .cursorPointer {\n cursor: pointer;\n }\n}\n\n.rdrDayPassive {\n visibility:hidden\n}\n\n.PDFPageOne {\n margin-bottom: 25px;\n}\n\n.Toastify__toast-container--top-center {\n top: -4px;\n .Toastify__toast {\n color: ${Theme.green};\n background: ${Theme.lightGreen};\n padding: 9px 25px 11px 25px;\n border-radius: 0 0 4px 4px;\n font-weight: 500;\n text-align: center;\n font-size: ${Theme.small};\n font-family: ${Theme.baseFontFamily};\n min-height: 0;\n \n &.Toastify__toast--error {\n color: ${Theme.red};\n background-color: #fbf2f2;\n }\n &.Toastify__toast--warning {\n color: ${Theme.black};\n background-color: ${Theme.lightYellow};\n }\n }\n\n .Toastify__toast-body {\n padding: 0;\n margin: 0 auto;\n }\n .Toastify__close-button {\n right: 0;\n display: none;\n }\n}\n.Toastify__toast-container {\n min-width: 100px;\n width: auto !important;\n padding: 0;\n}\n @media only screen and (min-width: 320px) and (max-width: 480px) {\n .Toastify__toast-container {\n min-width: 100px;\n width: 100% !important;\n padding: 0;\n}\n }\n\n\n.recharts-legend-wrapper {\n bottom: 20px !important;\n top: 0 !important;\n width: auto !important;\n display: none;\n\n .recharts-default-legend {\n text-align: left !important;\n li.recharts-legend-item {\n border-radius: 2px;\n width: -1px;\n height: 14px;\n margin-right: 25px !important;\n\n &.legend-item-0 {\n .recharts-surface {\n background: ${Theme.baseColor};\n\n border-radius: 2px;\n path {\n fill: none !important;\n stroke: none !important;\n }\n }\n }\n &.legend-item-1 {\n .recharts-surface {\n background-color: ${Theme.gray25};\n border-radius: 2px;\n path {\n fill: none;\n }\n }\n }\n }\n }\n}\n\n/* .recharts-tooltip-wrapper {\n .recharts-default-tooltip {\n background-color: ${Theme.gray90} !important;\n color: ${Theme.white} !important;\n width: 146px !important;\n min-height: 70px !important;\n border-radius: 4px;\n }\n .recharts-tooltip-label {\n color: ${Theme.gray8} !important;\n padding-bottom: 5px;\n font-size: ${Theme.verySmall};\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n }\n\n .recharts-tooltip-item-list {\n .recharts-tooltip-item {\n color: ${Theme.white} !important;\n padding-top: 0;\n font-size: ${Theme.extraMedium}\n }\n .recharts-tooltip-item {\n color: ${Theme.gray25} !important;\n padding: 0 !important;\n }\n }\n} */\n\n.total-service-bordless {\n font-weight: 500;\n border-bottom: hidden !important;\n padding: 7px 13px;\n}\n\n.react-daterange-picker__wrapper {\n display: flex;\n flex-grow: 1;\n min-height: 39px;\n padding: 7px 11px 7px 0;\n flex-shrink: 0;\n border-radius: 18px;\n align-items: center;\n border: 1px solid #dee2ed;\n\n .react-daterange-picker__button {\n padding: 6px;\n svg {\n width: 16px !important;\n height: 16px !important;\n stroke: ${Theme.gray90} !important;\n stroke-width: 1 !important;\n }\n &:focus {\n background-color: #eceff7 !important;\n padding: 6px;\n border-radius: 50%;\n outline: none;\n }\n }\n}\n.rdrCalendarWrapper {\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n .rdrMonthAndYearPickers {\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n text-transform: uppercase;\n text-align: center;\n font-family: ${Theme.baseFontFamily};\n }\n .rdrDay {\n font-size: ${Theme.normal};\n color: ${Theme.black} !important;\n\n .rdrDayNumber span {\n color: ${Theme.black};\n }\n }\n .rdrDayToday .rdrDayNumber span:after {\n content: '';\n position: absolute;\n top: 10px;\n left: 73%;\n border-radius: 50% !important;\n width: 6px;\n height: 6px;\n background: ${Theme.orange};\n }\n\n .rdrMonth {\n width: 100%;\n padding: 0;\n }\n .rdrSelected,\n .rdrInRange,\n .rdrStartEdge,\n .rdrEndEdge {\n background: currentColor;\n position: absolute;\n top: 5px;\n left: -1px !important;\n right: 0;\n bottom: 5px;\n }\n .rdrWeekDays {\n .rdrWeekDay {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n }\n }\n}\n.rdrDayHovered {\n color: rgb(255, 89, 51) !important;\n .rdrDayStartPreview {\n color: rgb(255, 89, 51) !important;\n }\n span {\n color: rgb(255, 89, 51) !important;\n }\n}\n\n.rdrDayHovered.rdrDayStartPreview ~ .rdrDayNumberHovered span,\n.rdrDay .rdrDayInPreview ~ .rdrDayNumber span,\n.rdrDayHovered .rdrSelectedHovered ~ .rdrDayNumberHovered span {\n color: ${Theme.orange} !important;\n background-color: ${Theme.white};\n}\n.rdrDay:not(.rdrDayPassive) .rdrInRange ~ .rdrDayNumber span,\n.rdrDay:not(.rdrDayPassive) .rdrStartEdge ~ .rdrDayNumber span,\n.rdrDay:not(.rdrDayPassive) .rdrEndEdge ~ .rdrDayNumber span,\n.rdrDay:not(.rdrDayPassive) .rdrSelected ~ .rdrDayNumber span {\n color: rgba(255, 255, 255, 0.85) !important;\n}\n.custom-tooltip {\n padding: 10px;\n .main-label {\n color: ${Theme.gray8};\n text-transform: uppercase;\n font-size: ${Theme.verySmall};\n margin: 0;\n padding-bottom: 8px;\n }\n .label-1 {\n color: ${Theme.white};\n font-size: ${Theme.extraMedium};\n margin: 0;\n padding-bottom: 3px;\n font-weight: 500;\n }\n .label-2 {\n color: ${Theme.gray25};\n font-size: ${Theme.extraNormal};\n margin: 0;\n font-weight: 300;\n }\n}\n\n.rdrPprevButton i {\n background-image: url(${CalendarFontBackArrow}) !important;\n border-width: 0;\n border-color:${Theme.white};\n background-repeat: no-repeat;\n z-index: 9999999999;\n background-position-y: 0;\n background-position-x: 7px;\n padding: 7px 10px;\n}\n.rdrNextButton i {\n background-image: url(${CalendarFontBackArrow}) !important;\n border-width: 0;\n border-color: ${Theme.white};\n background-repeat: no-repeat;\n z-index: 9999999999;\n background-position-y: 0;\n background-position-x: 7px;\n padding: 7px 10px;\n transform: rotate(180deg);\n}\n\n.rdrNextPrevButton {\n background: ${Theme.white};\n\n &:hover {\n background: ${Theme.white};\n }\n}\n\ntext.cust-label-avg {\n background-color: ${Theme.gray25}!important;\n border-radius: 1px !important;\n width: 38px !important;\n height: 24px;\n color: ${Theme.black};\n}\n\n.loader-bar {\n top: 76px !important;\n height: 4px !important;\n z-index: 4 !important;\n background: ${Theme.gray4} !important;\n div {\n div {\n box-shadow: none !important;\n }\n }\n}\n.common-unauthorized-header-sticky {\n padding-top: 10px;\n}\n.scroll-x-axis {\n margin-left: 15px;\n margin-right: 15px;\n}\n.isDisabled {\n opacity: 0.6;\n cursor: not-allowed !important;\n pointer-events: none !important;\n}\n.progress-bar-value {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n progress[value] {\n height: 4px;\n position: relative;\n border-radius: 1px;\n right: 120px;\n text-align: right;\n -webkit-appearance: none;\n appearance: none;\n }\n progress[value]::-webkit-progress-bar {\n background: #D8D8D8;\n border-radius: 1px;\n }\n progress[value]::-webkit-progress-value { \n background-color: #FF4817;\n }\n .progress-range-text {\n position: absolute;\n right: 20px;\n top: 6px;\n }\n @media only screen and (max-width: 767px) {\n progress[value] { \n right: 0;\n width: 75%;\n }\n }\n @media only screen and (max-width: 550px) {\n progress[value] { \n right: 0;\n width: 60%;\n }\n }\n}\n.uploading-progress-bar {\n text-align: center;\n margin-top: 5px;\n\n progress[value] {\n height: 4px;\n position: relative;\n border-radius: 10px;\n width: 120px;\n -webkit-appearance: none;\n appearance: none;\n }\n progress[value]::-webkit-progress-bar {\n background: #d8d8d8;\n border-radius: 10px;\n }\n progress[value]::-webkit-progress-value {\n background-color: #ff4817;\n border-radius: 10px;\n }\n}\n\n.label-heading {\n color: ${Theme.gray40};\n font-size:${Theme.verySmall};\n text-transform: uppercase;\n font-weight: bold;\n\n &.large-label {\n color: ${Theme.gray90};\n font-size: ${Theme.extraSmall};\n }\n}\n.sub-heading {\n color: ${Theme.gray40};\n font-size:${Theme.verySmall};\n font-weight: 600;\n\n &.extra-small-text {\n font-size:${Theme.extraSmall};\n font-weight: 300;\n }\n}\n\n.grey-uppercase-text {\n color: ${Theme.gray40};\n font-size:${Theme.small};\n font-weight: 500;\n text-transform: uppercase;\n}\n\n.label-card-text {\n color: ${Theme.gray40};\n font-size:${Theme.verySmall};\n}\n\n .label-info {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n }\n .label-info-dark {\n font-weight: 600;\n }\n .label-range {\n color: ${Theme.black};\n font-size: 20px;\n font-weight: 600;\n\n &.red-range {\n color: ${Theme.red};\n }\n}\n\n.label {\n color: ${Theme.gray40};\n text-transform: uppercase;\n line-height: 22px;\n font-family: ${Theme.titleFontFamily};\n font-size: 11px;\n margin-bottom: 3px;\n\n .__react_component_tooltip {\n font-weight :300 !important;\n font-family: ${Theme.baseFontFamily};\n }\n}\n.gray-box{\n background-color: ${Theme.gray8};\n color: ${Theme.black};\n padding: 10px;\n border: 1px solid ${Theme.gray2};\n border-radius: 5px;\n font-size: 13px; \n}\n\n.react-sweet-progress {\n align-items: center;\n justify-content: center;\n width: 100%;\n padding: 10px 15px;\n}\n.react-sweet-progress-line-inner {\n position: relative;\n min-height: 4px;\n border-radius: 100px;\n transition: width 0.3s ease;\n}\n.liner-titles {\n color: black;\n font-size: 15px;\n font-weight: 600;\n display: flex;\n align-items: flex-start;\n text-align: left;\n\n &:after {\n content: '';\n flex-grow: 1;\n height: 1px;\n background: #E2E2EA;\n margin: auto 0px auto 20px;\n }\n\n}\n\n.collection-dot {\n background-color: ${Theme.gray35};\n border-radius: 50%;\n width: 7px;\n height: 7px;\n position: absolute;\n margin-top: 5px;\n margin-left: 10px;\n}\n\n\n.dot {\n background-color: ${Theme.gray35};\n border-radius: 50%;\n width: 3px;\n height: 3px;\n position: absolute;\n}\n.react-calendar__tile--hasActive {\n background: ${Theme.white}; \n}\n.react-calendar__tile--active {\n background: ${Theme.orange} !important;\n padding: 10px;\n color: ${Theme.white}; \n}\n\n.react-calendar__tile--now {\n background: ${Theme.white}; \n}\n.react-calendar { \n border: none !important;\n background-color: ${Theme.white}; \n border-radius: 8px;\n max-width: 320px;\n width: 100%;\n position: absolute;\n right: 0px;\n z-index: 22;\n box-shadow: 0 3px 8px 0 rgb(0 0 0 / 10%);\n padding: 10px;\n}\n.react-calendar__tile--now:enabled:hover, .react-calendar__tile--now:enabled:focus {\n background: ${Theme.lighterOrange};\n}\n\n.react-calendar__tile--active:enabled:hover, .react-calendar__tile--active:enabled:focus { \n background: ${Theme.orange} !important;\n color: ${Theme.white}; \n\n abbr {\n border-radius: 20px;\n }\n}\n\n.initialTextTransform{\n text-transform: initial;\n}\n.justify-space-between {\n display: flex;\n justify-content: space-between;\n}\n\n.scrollable-height {\n overflow-y: scroll;\n max-height: 80vh;\n padding-bottom: 40px;\n}\n.scrollable-height-overlay {\n padding-bottom: 150px;\n}\n\n.orange-text-label {\n font-size: 12px;\n color: ${Theme.orange};\n font-family: ${Theme.titleFontFamily};\n text-transform: uppercase;\n }\n \n .inline-content {\n padding: 0;\n margin: 0;\n li {\n display: inline-block;\n }\n }\n\n .Toastify__toast--info {\n background: ${Theme.lightYellow} !important;\n color:${Theme.black} !important;;\n }\n\n .textLimit11 {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 125px;\n }\n\n .main-body-container {\n width: 96%;\n margin: 0 auto;\n height: 100%;\n // overflow: scroll;\n }\n\n // .left-line {\n // display: inline-block;\n // vertical-align: super;\n // margin-right: 4px;\n // height: 14px;\n // width: 20px;\n // background: transparent;\n // border-radius: 0px 0px 0px 10px;\n // border-bottom: 1px solid rgb(224, 230, 232);\n // border-left: 1px solid rgb(224, 230, 232);\n // border-image: initial;\n // border-top: none;\n // border-right: none;\n // }\n // .parent-nested-collapse {\n // position: relative;\n // width: 100%;\n // border-spacing: 0px;\n // }\n // .parent-collapse {\n // border-left: 1px solid rgb(224, 230, 232);\n // // height: 99%;\n // position: absolute;\n // left: 6px;\n // top: -14px;\n // z-index: 1;\n // }\n // .curve-line {\n // width: 41px;\n // height: 15px;\n // border-bottom-right-radius: 4px;\n // position: absolute;\n // border-style: solid;\n // border-color: rgb(224, 230, 232);\n // border-image: initial;\n // border-width: 0px 1px 1px 0px;\n // transform: rotate(-271deg);\n // content: \"\";\n // left: -7px;\n // top: -17px;\n \n // }\n \n .css-4ljt47-MenuList {\n color: #000 !important;\n }\n \nspan.download-link {\n color: ${Theme.orange};\n text-transform: capitalize;\n font-size: ${Theme.normal};\n font-family: ${Theme.baseFontFamily};\n word-break: break-all;\n}\n\n.circle-dot {\n height: 18px;\n width: 18px;\n background-color: #ff5933;\n border-radius: 50%;\n display: inline-block;\n text-align: center;\n margin-left:3px;\n color:${Theme.white};\n font-size:12px;\n padding-top: 1px;\n}\n\n .horizontal-scroll-visible {\n overflow-x: auto;\n overflow-y: hidden;\n ::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n margin-top: 10px;\n }\n ::-webkit-scrollbar-thumb {\n background: ${Theme.gray25} !important;\n border-radius: 4px;\n }\n ::-webkit-scrollbar-track {\n background: #f1f1f1;\n } \n }\n .billing-detail-dropdown__menu-list { \n &.css-4ljt47-MenuList {\n max-height: 150px !important;\n }\n }\n \n`;\n\nexport default bodyStyles;\n","import React from 'react';\n\nimport styled from 'styled-components';\n\nimport Theme from '../theme/Theme';\nimport { NextLogo } from '../theme/images';\n\nexport default function UnauthorizedHeader() {\n return (\n
\n \n
\n
\n
\n {\n window.location.href = 'https://www.buyboxexperts.com/';\n }}\n className=\"logo\"\n src={NextLogo}\n alt=\"logo\"\n />\n
\n
\n
\n
\n
\n );\n}\n\nconst HeaderVoided = styled.div`\n background-color: ${Theme.white};\n height: 70px;\n border-bottom: 1px solid ${Theme.gray7};\n padding-top: 16px;\n position: fixed;\n width: 100%;\n z-index: 3;\n top: 0;\n .logo {\n width: 75px;\n cursor: pointer;\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst ErrorMsg = styled.div`\n color: ${Theme.red};\n font-size: ${Theme.extraNormal};\n padding: 0;\n margin: 0 0 0 0;\n transform: translate(0, 6px);\n\n a {\n text-transform: lowercase;\n text-decoration: underline;\n display: block;\n color: ${Theme.red};\n font-size: ${Theme.extraSmall};\n }\n`;\nexport default ErrorMsg;\n","import React from 'react';\nimport styled from 'styled-components';\nimport UnauthorizedHeader from './UnauthorizedHeader';\nimport Theme from '../theme/Theme';\nimport ErrorMsg from './ErrorMsg';\nimport ContractVoided from '../theme/images/contract-voided.svg';\n// import PageNotFoundImg from '../theme/images/page-not-found.svg';\n\nexport default function WarningComponent() {\n return (\n <>\n \n\n \n
\n \n \"\"\n
\n {/* {location && location.state && location.state.error\n ? location && location.state && location.state.error\n : ''} */}\n\n {/*
Contract voided
\n

\n The contract signature package you're trying to access has\n been voided. Please\n
check your email for a new version or contact your Buy Box\n Experts sales agent.\n

*/}\n
Document Unavailable
\n

\n The document you're trying to access is no longer available.\n This is due to one of two reasons:
\n (1) You already signed the document, or
\n (2) A change has been made to document that was originally sent to\n you for signature.\n

\n Please check your email for a new version of the document, or\n contact your Buy Box Experts sales agent for help.\n

\n
\n
\n
\n \n );\n}\nconst PageNotFounds = styled.div`\n background: ${Theme.gray8};\n height: 100%;\n .page-container {\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .not-found {\n color: ${Theme.gray90};\n font-size: 16px;\n text-align: left;\n font-weight: 600;\n font-family: ${Theme.baseFontFamily};\n }\n\n .contract-cancel-img {\n margin-bottom: 15px;\n }\n`;\n","import React from 'react';\n\nimport { shape, string } from 'prop-types';\n\nconst getInitials = (userInfo, type) => {\n if (type === 'list') {\n return userInfo && userInfo.match(/\\b(\\w)/g).join('');\n }\n const firstName =\n (userInfo && userInfo.first_name && userInfo.first_name.charAt(0)) || '';\n const lastName =\n (userInfo && userInfo.last_name && userInfo.last_name.charAt(0)) || '';\n return firstName + lastName;\n};\n\nexport default function GetInitialName({ userInfo, property, type }) {\n if (type === 'profile') return getInitials(userInfo);\n return (\n \n {getInitials(userInfo, type)}\n \n );\n}\n\nGetInitialName.defaultProps = {\n property: '',\n type: '',\n userInfo: {},\n};\n\nGetInitialName.propTypes = {\n property: string,\n type: string,\n userInfo: shape({}),\n};\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport $ from 'jquery';\n\nimport Theme from '../theme/Theme';\n\nexport default function SuccessMsg({ message, property }) {\n $('#success').delay(3000).fadeOut(100);\n\n return (\n <>\n {message !== '' ? (\n
\n {message}\n
\n ) : (\n ''\n )}\n \n );\n}\n\nSuccessMsg.defaultProps = {\n property: '',\n};\n\nSuccessMsg.propTypes = {\n message: PropTypes.string.isRequired,\n property: PropTypes.string,\n};\n\nconst SuccessWrapper = styled.div`\n color: ${Theme.green};\n background: ${Theme.lightGreen};\n padding: 9px 20px 11px 20px;\n border-radius: 4px;\n font-weight: 500;\n text-align: left;\n font-size: ${Theme.small};\n font-family: ${Theme.baseFontFamily};\n display: inline-block;\n\n .undo-text {\n color: ${Theme.black};\n font-size: 13px;\n }\n`;\n","// Auth\nexport const API_LOGIN = '/login';\nexport const API_FORGOT_PASSWORD = '/request-password-reset/';\nexport const API_RESET_PASSWORD = '/reset-password/';\nexport const API_USER_ME = '/user/me/';\nexport const API_LOGOUT = '/logout';\nexport const API_USER = '/user/';\nexport const API_UPDATE_PASSWORD = '/change-password/';\nexport const API_CUSTOMER_NAMES = '/get-customers';\nexport const API_REQUEST_DEMO = '/request-demo/';\nexport const JIRA_TICKET_BASE_URL = 'https://bbe.atlassian.net/browse/';\n\n// Customer\nexport const API_CUSTOMER = '/customer/';\nexport const API_CHOICES = '/choice/';\nexport const API_DOCUMENTS = '/document/';\nexport const API_CUSTOMER_CONTRACT = '/contract/';\nexport const API_CUSTOMER_MEMBER = '/customer-user/';\nexport const API_ACTIVITY_LOG = '/activity-log/';\nexport const API_CUSTOMER_ACTIVITY_LOG = '/customer_history/';\nexport const API_CONTACT = '/contact/';\nexport const API_CREDENTIALS = '/credentials/';\nexport const API_BGS = '/bgs/';\nexport const API_AMAZON_DETAILS = '/merchant/';\nexport const API_DELETE_MARKETPLACE = `${API_AMAZON_DETAILS}delete-marketplace/`;\nexport const API_PERFORMANCE = '/performance/';\nexport const API_VENDOR_ORDERED = '/performance-ordered-revenue/';\nexport const API_VENDOR_SHIPPED = '/performance-shipped-cogs/';\nexport const API_SP = '/lwa/';\nexport const API_GET_SP_DATA = `${API_SP}authorize-lwa/`;\nexport const API_CUSTOMER_FEEDBACK = '/onboarding-survey/';\nexport const API_MONKEY_SURVEY_FEEDBACK = '/survey/';\nexport const API_PERFORMANCE_MIN_DATE = '/performance-min-date/';\nexport const API_CHILD_BPS = `${API_CUSTOMER}child-bps/`;\n\n// marketplace api constants\n// export const API_PERFORMANCE = '/sales-performance/';\nexport const API_MARKETPLACES = '/marketplaces/';\nexport const API_ALL_MARKETPLACES = `${API_MARKETPLACES}all-marketplace/`;\nexport const API_GOAL_ALL_MARKETPLACES = `${API_MARKETPLACES}goal-marketplaces/`;\nexport const API_DSP_MARKETPLACES = '/marketplaces/dsp-marketplaces/';\n\n// performance api constant\nexport const API_AD_PERFORMANCE = '/performance-metrics/';\nexport const API_ALLOCATE_BALANCE = `${API_AD_PERFORMANCE}allocate-balance/`;\nexport const API_ESCROW_BALANCE_MARKETPLACE = `${API_AD_PERFORMANCE}get-escrow-balance-marketplace/`;\nexport const API_ESCROW_REALLOCATION = '/escrow-reallocation/';\nexport const API_ADM = '/manager-list/';\nexport const API_SERVICES_FEE = '/type-of-services/';\nexport const API_ACCOUNT_MARKETPLACE = `${API_CUSTOMER}:id/marketplace/`;\nexport const API_ASIN_PERFORMANCE = '/asin-performance/';\nexport const API_SPONSORED_ASIN_PERFORMANCE =\n '/sp-advertising-asin-performance/';\nexport const API_SPONSORED_CAMPAIGN_DATA = '/sp-advertising-campaign/';\nexport const API_SPONSORED_CAMPAIGN_ASIN_PERFORMANCE =\n '/sp-advertising-campaign-asin/';\nexport const API_SP_CAMPAIGN_DOWNLOAD_REPORT =\n 'sp-advertising-campaign-report/';\nexport const API_DSP_ASIN_PERFORMANCE = '/dsp-advertising-asin-performance/';\nexport const API_DSP_CAMPAIGN_LIST = '/dsp-advertising-campaign/';\nexport const API_DSP_CAMPAIGN_DOWNLOAD_REPORT =\n '/dsp-advertising-campaign-report/';\nexport const API_VENDOR_ORDERED_ASIN_PERFORMANCE =\n '/ordered-revenue-asin-performance/';\nexport const API_VENDOR_SHIPPED_COGS_ASIN_PERFORMANCE =\n '/shipped-cogs-asin-performance/';\nexport const API_ASIN_PERFORMANCE_DATA_COUNT = `${API_ASIN_PERFORMANCE}total-asin/`;\nexport const API_DATA_AVAIBALE_CHILD_BRANDS = `${API_PERFORMANCE}data-availability/`;\nexport const API_CREATIVE_PROJECT = '/creative-project/';\nexport const API_CREATIVE_PROJECT_TABLE_INFO = `${API_CREATIVE_PROJECT}table-info/`;\nexport const API_CREATIVE_PROJECT_MONTHS = `${API_CREATIVE_PROJECT}months/`;\nexport const API_CREATIVE_PROJECT_CSV = `${API_CREATIVE_PROJECT}table-csv/`;\nexport const API_PROJECT_TYPES = '/upload-project/';\nexport const API_COMPLETED_CREATIVE_PROJECT = '/upload-completed-project/';\n\n// BP Proposal\nexport const API_BP_PROPOSAL = '/dsp-budget-proposal/';\n\n// Inventory Reports\nexport const API_INVENTORY_RESTOCK_LIMITS = '/inventory-restock-limits/';\nexport const API_STRANDED_INVENTORY = '/stranded-inventory/';\nexport const API_RESTOCK_INVENTORY = '/restock-inventory/';\nexport const API_RESTOCK_REPORTS_DOWNLOAD = '/under-overstocked-reports/';\nexport const API_INVENTORY_RESTOCK_LIMITS_DASHBOARD =\n '/restock-limits-dashboard/';\n\n// API Inventory - Estimated Lost Sales\nexport const API_ESTIMATED_LOST_SALES_INACTIVE =\n '/inactive-estimated-lost-sales/';\nexport const API_ESTIMATED_LOST_SALES_STRANDED =\n '/stranded-estimated-lost-sales/';\nexport const API_ESTIMATED_LOST_SALES_ARCHIVE =\n '/archive-estimated-lost-sales/';\nexport const API_ESTIMATED_LOST_SALES_REASON_LIST = `${API_ESTIMATED_LOST_SALES_STRANDED}reason/`;\nexport const API_ESTIMATED_LOST_SALES_ARCHIVE_RESTORE_ASIN =\n '/archive-estimated-lost-sales/';\n\n// API Inventory - Long Term storage Fees\nexport const API_LONG_TERM_STORAGE_FEES = '/long-term-storage-fee/';\n\n// Report Section API\nexport const API_REPORTS_TYPES = `${API_CHOICES}report-type`;\nexport const API_REPORTS_SECTION = '/bbe-reports/';\nexport const API_REPORTS_DOWNLOAD = '/bbe-reports/download-report/';\nexport const API_PARTNER_OPPORTUNITY_DROPDOWN_LIST = `${API_REPORTS_SECTION}partner-opportunity/`;\nexport const API_CUSTOMIZED_REPORTS = '/custom-report/';\nexport const API_CUSTOMIZED_REPORTS_TEMPLATE = '/custom-report-template/';\nexport const API_CUSTOMIZED_REPORTS_ACCESS = '/custom-report/notify-creation/';\nexport const API_CUSTOMIZED_REPORTS_METRICS_DATA =\n '/performance-combined-reports/';\nexport const API_CUSTOM_REPORTS_NOTIFICATION = `${API_CUSTOMIZED_REPORTS}activity-notification/`;\nexport const API_CUSTOMISED_REPORT_STATUS = 'restrict-multiple-user/';\n\n/* ********** Dashboard API constants ********** */\n// leadership dashboard API constants\nexport const API_AD_MANAGER_ADMIN_DASHBOARD = '/manager-dashboard/';\nexport const API_AD_DASHBOARD = '/ad-dashboard/';\nexport const API_MIN_DATE_DASHBOARD = `${API_AD_DASHBOARD}min-date-leadership-dashboard/`;\nexport const API_LEADERSHIP_CUSTOMERS = '/leadership-customers/';\nexport const API_KEY_CONTRIBUTORS_DOWNLOAD_REPORT = `${API_AD_MANAGER_ADMIN_DASHBOARD}key-contributors-report/`;\nexport const API_GOAL_PERFORMANCE_DATA = `/goal-performance/get-metrics/`;\nexport const API_GOAL_TARGET_MSG = `/marketplaces/goal-target/`;\nexport const API_SALES_DASHBOARD = 'sales-dashboard/';\nexport const API_VENDOR_ORDERED_REVENUE_SALES_DASHBOARD = `${API_AD_DASHBOARD}ordered-revenue/`;\nexport const API_VENDOR_SHIPPED_COGS_SALES_DASHBOARD = `${API_AD_DASHBOARD}shipped-cogs/`;\nexport const API_INVENTORY_DASHBOARD = '/inventory-dashboard/';\nexport const API_PENDING_APPROVALS = '/dashboard/pending-approvals/';\n\n// performance snapshot dashboard API constants\nexport const API_BBE_GOAL_DASHBOARD = 'bbe-goals-dashboard/';\nexport const API_BBE_GOAL_METRICS = `${API_BBE_GOAL_DASHBOARD}performance-snapshot/`;\nexport const API_BBE_GOAL_DASHBOARD_CONTRIBUTION = `${API_BBE_GOAL_DASHBOARD}contribution/`;\n\n// commission dashboard API constants\nexport const API_BGS_COMMISSION = '/bgs-commission/';\nexport const API_BGS_COMMISSION_MATRICS = `${API_BGS_COMMISSION}top-matrics/`;\nexport const API_BGS_COMMISSION_INDIVIDUALS = `${API_BGS_COMMISSION}individuals/`;\nexport const API_BGS_COMMISSION_GROUP_BY_MANAGER = `${API_BGS_COMMISSION}group-by-manager/`;\nexport const API_BGS_COMMISSION_DETAILS = `${API_BGS_COMMISSION}details/`;\n\n// Billing, Invoice & Budget\nexport const API_DSP_INVOICES = '/invoice/';\nexport const API_DSP_BILLING = '/bill/';\nexport const API_DSP_BUDGET_ADJUSTMENT = '/dsp-budget-adjustment/';\nexport const API_DSP_EMPTY_BUDGET_ADJUSTMENT = `${API_DSP_BUDGET_ADJUSTMENT}empty-adjustment/`;\nexport const API_DSP_CONTACT = '/dsp-contact/';\n\n// Playbook API Constants\nexport const API_CUSTOMER_PLAYBOOK = '/customer-playbook';\nexport const API_PLAYBOOK_QUARTER_DATA = `${API_CUSTOMER_PLAYBOOK}/get-playbook/`;\nexport const API_PLAYBOOK_SERVICES_LIST = `${API_CUSTOMER_PLAYBOOK}/get-service-list/`;\nexport const API_UPDATE_TASK_STATUS = `${API_CUSTOMER_PLAYBOOK}/update-status/`;\nexport const API_PLAYBOOK_CONTRACT_SERVICES = `${API_CUSTOMER_PLAYBOOK}/services/`;\nexport const API_CREATE_PLAYBOOK = `${API_CUSTOMER_PLAYBOOK}/create-playbook/`;\nexport const API_GET_ASSIGNEE = `${API_CUSTOMER_PLAYBOOK}/get-assignees/`;\nexport const API_UPDATE_ASSIGNEE = `${API_CUSTOMER_PLAYBOOK}/update-assignee/`;\nexport const API_ONBOARDING_PLAYBOOK_DATA = `${API_CUSTOMER_PLAYBOOK}/get-onboarding-playbook-task/`;\nexport const API_PLAYBOOK_TEAM = `${API_CUSTOMER_PLAYBOOK}/get-teams/`;\nexport const API_PLAYBOOK_SUMMARY = `${API_CUSTOMER_PLAYBOOK}/playbook-summary/`;\nexport const API_PLAYBOOK_SERVICES = `${API_CUSTOMER_PLAYBOOK}/approval-playbook-tasks/`;\nexport const API_SEND_FOR_APPROVAL = `${API_CUSTOMER_PLAYBOOK}/send-playbook-for-approval/`;\n\n// Agreement\nexport const API_AGREEMENT_TEMPLATE = '/agreement-template/';\nexport const API_AGREEMENT_DETAILS = '/contract-details/';\nexport const API_MARKETPLACE = '/marketplaces/';\nexport const API_MARKETPLACE_BULK_UPDATE = `${API_MARKETPLACE}bulk-update/`;\nexport const API_ADDITIONAL_SERVICES = '/additional-services/';\nexport const API_ADDITIONAL_SERVICE_BULK_UPDATE = `${API_ADDITIONAL_SERVICES}bulk-update/`;\nexport const API_SEND_REMINDER = `${API_CUSTOMER_CONTRACT}send-reminder/`;\nexport const API_SIGNATURE_STATUS = `${API_CUSTOMER_CONTRACT}check-signature-status/`;\nexport const API_SERVICE_TYPE = `${API_SERVICES_FEE}service/`;\nexport const API_ADVERTSIING_SERVICES_OPTION = `/choice/amc-services`;\nexport const API_AMC_SERVICES_BULK_UPDATE = `/amc-services/bulk-update/`;\nexport const API_CONTRACT_DOCUMENT = `${API_CONTACT}contract-pdf/`;\nexport const API_CREATE_ADDENDUM = '/contract-data/';\nexport const API_TRANSACTION_DATA = '/transactional-data/';\nexport const API_CONTRACT_DESIGN = `${API_TRANSACTION_DATA}contract-design/`;\nexport const API_TRANSACTIONAL_SIGN_URL = `/sign-url/`;\nexport const API_CONTRACT_ACTIVITY_LOG = `/contract_history/`;\nexport const API_THRESHOLD_TYPE = `threshold-type`;\nexport const API_YOY_PERCENTAGE = `yoy-percentage`;\nexport const API_PAUSE_AGREEMENT = '/pause-contract/';\nexport const API_DISCOUNT = '/discount/';\nexport const API_FEE_STRUCTURE = '/contract-fee-structure/fee-data/';\nexport const API_SAVE_FEE_STRUCTURE = '/contract-fee-structure/';\nexport const API_STD_SERVICES = '/standard-us-services/bulk-update/';\nexport const API_STANDARD_NON_US_SERVICES_OPTIONS = `${API_CHOICES}standard-non-us-services`;\nexport const API_NON_US_MARKETPLACES = `${API_CHOICES}standard-non-us-service-marketplaces`;\nexport const API_STANDARD_NON_US_SERVICES_FREQUENCY = `${API_CHOICES}frequency`;\nexport const API_STANDARD_SERVICE_BULK_UPDATE = `standard-non-us-services/bulk-update/`;\nexport const API_SUSPEND_AGREEMENT = '/suspend-contract/';\nexport const API_DSP_AMOUNTS_PAUSE_AGREEMENT = '/suspend-contract/dsp-amount/';\nexport const API_DSP_MARKETPLACES_BULK_UPDATE = `dsp-marketplace/bulk-update/`;\nexport const API_DRAFT_ADDENDUM = '/contract-addendum/';\nexport const API_AGREEMENT_APPROVERS_USER = `${API_USER}request_approvers/`;\n\n// Knowledge Base\nexport const API_KNOWLEDGE_BASE = '/knowledge/';\nexport const API_ARTICLE_COLLECTIONS = `${API_KNOWLEDGE_BASE}collections/`;\nexport const API_ARTICLE_BOARDS = `${API_KNOWLEDGE_BASE}folders/`;\nexport const API_ARTICLE_CARDS = `${API_KNOWLEDGE_BASE}cards/`;\nexport const API_ARTICLE_SEARCH = `${API_KNOWLEDGE_BASE}search/`;\nexport const API_UPDATE_ARTICLE = `${API_KNOWLEDGE_BASE}suggest-update/`;\nexport const API_CREATE_ARTICLE = `${API_KNOWLEDGE_BASE}suggest-idea/`;\n\n// Onboarding Customer\nexport const API_ONBOARD_CUSTOMER = '/customer-onboarding/';\nexport const API_ACCOUNT_SUMMARY = `${API_ONBOARD_CUSTOMER}:id/account-summary/`;\nexport const API_STEPS_ASSIGNED = '/steps-assigned/';\nexport const API_VERIFY_TOKEN = `${API_STEPS_ASSIGNED}verify-token/`;\nexport const API_BILLING_INFO = '/billing-info/';\nexport const API_PAYMENT_TERMS = '/payment-terms/';\nexport const API_PAYMENT_TERMS_OPTIONS = `${API_CHOICES}payment-terms`;\nexport const API_SAVE_PAYMENT_TERMS = `${API_PAYMENT_TERMS}bulk-update/`;\nexport const API_VIDEO_LINKS = '/customer/:id/get-video-link/';\nexport const API_EDIT_EMAIL = `${API_STEPS_ASSIGNED}edit-email/`;\nexport const API_VERIFY_USER = `${API_USER}verify-user/`;\nexport const API_AMAZON_ACCOUNT_DETAILS = `${API_CUSTOMER}:id/account-step-details/`;\nexport const API_AMAZON_SELLER_ACCOUNT = '/seller-central/';\nexport const API_AMAZON_VENDOR_ACCOUNT = '/vendor-central/';\nexport const API_AMAZON_DSP_ACCOUNT = '/dsp-central/';\nexport const API_AMAZON_SELLER_CENTRAL_BULK_UPDATE = `${API_AMAZON_SELLER_ACCOUNT}bulk-create-or-update/`;\nexport const API_AMAZON_VENDOR_CENTRAL_BULK_UPDATE = `${API_AMAZON_VENDOR_ACCOUNT}bulk-create-or-update/`;\nexport const API_AMAZON_ACCOUNT = '/amazon-info/';\nexport const API_CUSTOMER_CSV = `${API_CUSTOMER}export-csv/`;\n\n// Brand Assets\nexport const API_ACCOUNT_ASSIGNEE_COUNT = `${API_CUSTOMER}:id/account-setup-completion/`;\nexport const API_BRAND_ASSETS = '/brand-assets/';\nexport const API_BRAND_ASSETS_SUMMARY = `${API_BRAND_ASSETS}summary/`;\nexport const API_BRAND_ASSETS_COMMENTS = 'comments';\n\n// Notes\nexport const API_NOTES = `/notes/`;\n\n// Product Catalog\nexport const API_PRODUCT_CATALOG = '/products/';\n\n// AMC Insights\nexport const API_AMC_INSIGHTS = 'amc/';\nexport const API_NTB_CUSTOMER = 'ntb-customer/';\nexport const API_TRIPLE_OVERLAP_VALUES = `${API_AMC_INSIGHTS}triple-overlap-value/`;\nexport const API_TRIPLE_OVERLAP_TABLE_VALUES = `${API_AMC_INSIGHTS}triple-overlap-value-table/`;\nexport const API_TRIPLE_OVERLAP_ANALYSIS = `${API_AMC_INSIGHTS}triple-overlap-analysis/`;\nexport const API_DSP_PPC_OVERLAP_ANALYSIS = `${API_AMC_INSIGHTS}double-overlap/`;\n\nexport const API_LIFE_TIME_VALUE = `amc-lifetime/value/`;\nexport const API_NTB_SALES_ANALYSIS = `ntb/analysis/`;\nexport const API_NTB_GEOGRAPHIC = `ntb-geographic/analysis/`;\nexport const API_NTB_GEOGRAPHIC_TABLE = `ntb-geographic/geography-table/`;\n\n// aws quicksight dashboard api\nexport const API_GET_QUICKSIGHT_DASHBOARD_URL = 'qs-embedded-url';\n\n// DSP Audience\nexport const API_DSP_AUDIENCE_QUERY = `query/`;\nexport const API_DSP_AUDIENCE = `dsp-audience/`;\nexport const API_DSP_ADVERTISER_DETAIL = `advertiser-detail/`;\nexport const API_DSP_ADVERTISER_DASHBOARD = `dsp-audience-dashboard/`;\nexport const API_BP_LIST_DSP_AUDIENCE_DASHBOARD = `dsp-audience-dashboard/bp-list/`;\n\n// AMC Instance\nexport const API_AMC_INSTANCE = `amc-instance/`;\nexport const API_AMC_ADVERTISER = `amc-advertiser/`;\n\n// AMC Dashboard BBE Summary\nexport const API_BBE_SUMMARY_DOUBLE_OVERLAP = `double-overlap-amc-summary/get-metrics/`;\nexport const API_BBE_SUMMARY_BP_LIST = `double-overlap-amc-summary/get-bp-list/`;\n\nexport const API_BBE_METRICS = `metrics-amc-summary/get-metrics/`;\nexport const API_BBE_NEW_TO_BRAND_ANALYSIS = `ntb-amc-summary/get-metrics/`;\n\n// Off Boarding\nexport const API_BILLING_OFF_BOARDING_APPROVE_REJECT = `/suspend-contract`;\n\n// Summary Dashboard PDV-5697\nexport const API_SUMMARY_DASHBOARD = '/summary-dashboard/';\n\n// Goals\nexport const API_GOALS = '/goals/';\nexport const API_MILESTONE = '/milestone/';\nexport const API_DYNAMIC_ERRORS = '/dynamic-messages/';\nexport const API_GOALS_ACCOUNT_TYPE_FLAG = 'goal/goal-account-type/';\nexport const API_GOALS_REPORT = '/goal-report/';\n\n// COS\nexport const API_COS = '/cos/';\nexport const API_COS_ASIN = '/asin/';\n\nexport const NON_AUTHORIZATION_APIS = [\n API_LOGIN,\n API_FORGOT_PASSWORD,\n API_RESET_PASSWORD,\n API_SIGNATURE_STATUS,\n API_ONBOARD_CUSTOMER,\n API_CUSTOMER_NAMES,\n API_VERIFY_USER,\n API_BRAND_ASSETS,\n API_REQUEST_DEMO,\n];\n","import axios from 'axios';\n\nimport { NON_AUTHORIZATION_APIS } from './constants/ApiConstants';\n\nconst requestHandler = (request) => {\n if (!NON_AUTHORIZATION_APIS.includes(request.url)) {\n if (\n (request.url.includes('/customer-onboarding/') &&\n !request.url.includes('/account-summary/')) ||\n request.url.includes('/assigned-choose-delegate/')\n ) {\n delete request.headers.Authorization;\n } else {\n let token = localStorage.getItem('token');\n token = token || '';\n request.headers.Authorization = `Token ${token}`;\n }\n const ifMatch = localStorage.getItem('match');\n if (ifMatch) {\n request.headers['If-Match'] = ifMatch;\n delete request.headers.Authorization;\n }\n }\n return request;\n};\n\nconst axiosInstance = axios.create({\n baseURL:\n process.env.REACT_APP_BASE_APP_URL + process.env.REACT_APP_API_VERSION,\n});\n\naxiosInstance.interceptors.request.use((request) => requestHandler(request));\n\naxiosInstance.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (error && error.response && error.response.status === 401) {\n localStorage.removeItem('token');\n // window.location.href = PATH_LOGIN;\n }\n return Promise.reject(error);\n },\n);\n\nexport default axiosInstance;\n","import axiosInstance from '../axios';\nimport {\n API_RESET_PASSWORD,\n API_FORGOT_PASSWORD,\n API_USER,\n API_UPDATE_PASSWORD,\n API_CUSTOMER_NAMES,\n API_USER_ME,\n API_REQUEST_DEMO,\n} from '../constants/ApiConstants';\n\nexport async function getEmail(data = null) {\n if (data && Object.keys(data).length > 0) {\n const result = await axiosInstance\n .post(API_FORGOT_PASSWORD, data)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function resetPassword(data = null) {\n if (data && Object.keys(data).length > 0) {\n const result = await axiosInstance\n .post(API_RESET_PASSWORD, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function updateUserInfo(data = null, id) {\n if (data && Object.keys(data).length > 0) {\n const result = await axiosInstance\n .patch(`${API_USER + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function updatePassword(data = null) {\n if (data && Object.keys(data).length > 0) {\n const result = await axiosInstance\n .patch(API_UPDATE_PASSWORD, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function updateUserMe(id, data) {\n const result = await axiosInstance\n .patch(`${API_USER + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCustomerNames(email) {\n const params = { email };\n const result = await axiosInstance\n .get(API_CUSTOMER_NAMES, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getUserData(customer) {\n const params = { customer };\n const result = await axiosInstance\n .get(API_USER_ME, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveRequestDemo(data, type) {\n const params = { type };\n const result = await axiosInstance\n .post(API_REQUEST_DEMO, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","// Auth\nexport const PATH_ROOT = '/';\nexport const PATH_LOGIN = '/signin';\nexport const PATH_FORGOT_PASSWORD = '/forgot-password';\nexport const PATH_RESET_PASSWORD = '/set-password';\nexport const PATH_UNAUTHORIZED_HEADER = '/unauthorized-header/';\n\n// Customer\nexport const PATH_CUSTOMER_LIST = '/customer';\nexport const PATH_CUSTOMER_LIST_TABLET = '/customer-tablet';\nexport const PATH_CUSTOMER_DETAILS = `${PATH_CUSTOMER_LIST}/:id`;\n\n// Contract\nexport const PATH_AGREEMENT = `${PATH_CUSTOMER_DETAILS}/agreement/:contract_id`;\nexport const PATH_PAUSE_AGREEMENT = `${PATH_CUSTOMER_DETAILS}/agreement/:contract_id/:pauseId`;\nexport const PATH_HELLO_SIGN = `/contract-signature`;\nexport const PATH_WARNING = '/warning/';\n\n// DSP budget proposal\nexport const PATH_DSP_BUDGET_APPROVAL =\n '/dsp-budget-approval/:key/:adjustmentId';\n\n// Account Setup\nexport const PATH_ACCOUNT_SETUP = '/account-setup/';\nexport const PATH_ACCOUNT_SETUP_CHOOSE = `${PATH_ACCOUNT_SETUP}choose`;\nexport const PATH_CREATE_PASSWORD = `${PATH_ACCOUNT_SETUP}create-password`;\nexport const PATH_COMPANY_DETAILS = `${PATH_ACCOUNT_SETUP}company-details`;\nexport const PATH_BILLING_DETAILS = `${PATH_ACCOUNT_SETUP}billing-details`;\nexport const PATH_AMAZON_MERCHANT = `${PATH_ACCOUNT_SETUP}amazon-merchant`;\nexport const PATH_AMAZON_ACCOUNT = `${PATH_ACCOUNT_SETUP}amazon-account`;\nexport const PATH_UNAUTHORIZED_COMPANY_DETAILS = `${PATH_ACCOUNT_SETUP}assigned-company-details`;\nexport const PATH_UNAUTHORIZED_BILLING_DETAILS = `${PATH_ACCOUNT_SETUP}assigned-billing-details`;\nexport const PATH_UNAUTHORIZED_AMAZON_MERCHANT = `${PATH_ACCOUNT_SETUP}assigned-amazon-merchant`;\nexport const PATH_UNAUTHORIZED_AMAZON_ACCOUNT = `${PATH_ACCOUNT_SETUP}assigned-amazon-account`;\nexport const PATH_SUMMARY = '/summary';\nexport const PATH_THANKS = '/thanks';\n\n// Knowledge Base\nexport const PATH_ARTICLE_LIST = '/collections/';\nexport const PATH_ARTICLE_DETAILS = `${PATH_ARTICLE_LIST}:collectionId/`;\n\n// Brand Partner\n\nexport const PATH_TEAM_MEMBER = '/team-member/';\nexport const PATH_TABLET_TEAM_MEMBER = '/tablet-team-member';\n\nexport const PATH_DASHBOARD = '/dashboard/';\n\nexport const PATH_BBE_GOAL_DASHBOARD = '/dashboard/bbe-Goal/';\n\n// Finance dashboard\nexport const PATH_FINANCE_DASHBOARD = '/dashboard/finance/';\n\n// Report Section\nexport const PATH_REPORTS_SECTION = '/reports/';\n\n// Brand Assets\nexport const PATH_CHOOSE_BRAND_DELEGATE = `${PATH_CUSTOMER_DETAILS}/choose-delegate/:brandId`;\nexport const PATH_BRAND_ASSET = `${PATH_CUSTOMER_DETAILS}/brand-asset/:brandId`;\nexport const PATH_BRAND_ASSET_SUMMARY = `${PATH_CUSTOMER_DETAILS}/brand-summary/:brandId`;\nexport const PATH_BRAND_ASSET_PREVIEW = `${PATH_CUSTOMER_DETAILS}/brand-preview`;\n\nexport const PATH_UNAUTHORIZED_CHOOSE_BRAND_DELEGATE = `${PATH_CUSTOMER_DETAILS}/assigned-choose-delegate/:brandId`;\nexport const PATH_UNAUTHORIZED_BRAND_ASSET = `${PATH_CUSTOMER_DETAILS}/assigned-brand-asset/:brandId`;\nexport const PATH_UNAUTHROIZED_BRAND_ASSET_SUMMARY = `${PATH_CUSTOMER_DETAILS}/assigned-brand-summary/:brandId`;\n\n// Product Assets\nexport const PATH_UPLOAD_PRODUCT_ASSET = `${PATH_CUSTOMER_DETAILS}/product-assets-requested/:productId`;\nexport const PATH_UNAUTHORIZED_CHOOSE_PRODUCT_DELEGATE = `${PATH_CUSTOMER_DETAILS}/assigned-product-delegate/:productId`;\n\n// offBoarding\nexport const PATH_BILLING_OFF_BOARDING_APPROVAL_REJECT =\n '/billing-offboarding/:id';\n\n// Goals and Strategy\nexport const PATH_GOALS_AND_STRATEGY = `${PATH_CUSTOMER_DETAILS}/goals`;\n","import {\n LinkeDinIcons,\n FaceBookIcons,\n TwitterIcons,\n InstagramIcons,\n PinterestIcon,\n SquareFbIcon,\n TwitterIcon,\n LinkedinIcon,\n InstagramIcon,\n ViewExternalLink,\n CopyIcon,\n PauseIcon,\n CloseCircleIcon,\n DeleteIcon,\n EditFileIcons,\n} from '../theme/images';\n\nexport const sortOptions = [\n { value: '-created_at', label: 'Recently Added' },\n { value: '-updated_at', label: 'Last Modified' },\n { value: 'expiring_soon', label: 'Expiry Date' },\n];\n\nexport const performanceSortOptions = [\n {\n value: 'revenue',\n label: 'Revenue',\n key: 'revenue',\n order: true,\n class: 'revenue',\n default: true,\n },\n {\n value: 'units_sold',\n label: 'Units Sold',\n key: 'unitsSold',\n order: true,\n class: 'units_sold',\n default: true,\n },\n {\n value: 'traffic',\n label: 'Traffic',\n key: 'traffic',\n order: true,\n class: 'traffic',\n default: true,\n },\n {\n value: 'conversion',\n label: 'Conversion',\n key: 'conversion',\n order: true,\n class: 'conversion',\n default: true,\n },\n];\n\nexport const sortByOrderOptions = [\n { value: true, label: 'Highest to Lowest' },\n { value: false, label: 'Lowest to Highest' },\n];\n\nexport const sadSortOptions = [\n {\n value: 'ad_sales',\n label: 'Ad Sales',\n key: 'adSales',\n order: true,\n class: 'revenue',\n default: true,\n },\n {\n value: 'ad_spend',\n label: 'Ad Spend',\n key: 'adSpend',\n order: true,\n class: 'units_sold',\n default: true,\n },\n {\n value: 'impressions',\n label: 'Impressions',\n key: 'impressions',\n order: true,\n class: 'traffic',\n default: true,\n },\n {\n value: 'acos',\n label: 'ACos',\n key: 'adCos',\n order: true,\n class: 'conversion',\n default: true,\n },\n];\n\nexport const dadSortOptions = [\n {\n value: 'impressions',\n label: 'Impressions',\n key: 'dspImpressions',\n order: true,\n class: 'revenue',\n default: true,\n },\n {\n value: 'dsp_spend',\n label: 'DSP Spend',\n key: 'dspSpend',\n order: true,\n class: 'units_sold',\n default: true,\n },\n {\n value: 'total_product_sales',\n label: 'Total Product Sales',\n key: 'dspTotalProductSales',\n order: true,\n class: 'traffic',\n default: true,\n },\n {\n value: 'total_roas',\n label: 'Total ROAS',\n key: 'dspTotalRoas',\n order: true,\n class: 'conversion',\n default: true,\n },\n];\nexport const vendorSalesPerformanceOptions = [\n {\n id: 'orderedRevenueCheck',\n value: 'ordered_revenue_tab',\n label: 'Ordered Revenue',\n order: true,\n class: 'orderedRevenueTab',\n default: true,\n dashboard: 'ordered_revenue',\n },\n {\n id: 'shippedCOGSCheck',\n value: 'shipped_cogs_tab',\n label: 'Shipped COGs',\n order: true,\n class: 'shippedCogsTab',\n default: true,\n dashboard: 'shipped_cogs',\n },\n];\n\nexport const columnsForVendorSalesPerformance = {\n ordered_revenue_tab: [\n {\n value: 'ordered_revenue',\n label: 'Ordered Revenue',\n key: 'orderedRevenue',\n order: true,\n class: 'revenue',\n default: true,\n dashboard: 'ordered_revenue',\n },\n {\n value: 'conversion_rate',\n label: 'Conversion Rate',\n key: 'conversionRate',\n order: true,\n class: 'units_sold',\n default: true,\n dashboard: 'ordered_revenue',\n },\n {\n value: 'glance_views',\n label: 'Glance Views',\n key: 'glanceViews',\n order: true,\n class: 'traffic',\n default: true,\n dashboard: 'ordered_revenue',\n },\n {\n value: 'ordered_units',\n label: 'Ordered Units',\n key: 'orderedUnits',\n order: true,\n class: 'conversion',\n default: true,\n dashboard: 'ordered_revenue',\n },\n ],\n shipped_cogs_tab: [\n {\n value: 'shipped_cogs',\n label: 'Shipped COGs',\n key: 'shippedCOGs',\n order: true,\n class: 'revenue',\n default: true,\n dashboard: 'shipped_cogs',\n },\n {\n value: 'glance_views',\n label: 'Glance Views',\n key: 'glanceViews',\n order: true,\n class: 'units_sold',\n default: true,\n dashboard: 'shipped_cogs',\n },\n {\n value: 'shipped_units',\n label: 'Shipped Units',\n key: 'shippedUnits',\n order: true,\n class: 'traffic',\n default: true,\n dashboard: 'shipped_cogs',\n },\n {\n value: 'conversion_rate',\n label: 'Conversion Rate',\n key: 'conversionRate',\n order: true,\n class: 'conversion',\n default: true,\n dashboard: 'shipped_cogs',\n },\n ],\n};\nexport const columnsForSalesPerformance = [\n ...performanceSortOptions,\n {\n value: 'ad_spend_total',\n label: 'Total AD Spend',\n key: 'adSpendTotal',\n order: true,\n class: 'total-ad-spend',\n },\n {\n value: 'tacos',\n label: 'TACOS',\n key: 'tacos',\n order: true,\n class: 'tacos',\n },\n];\nexport const columnsForSponsoredPerformance = [\n ...sadSortOptions,\n\n {\n value: 'ad_conversion_rate',\n label: 'Ad conversion rate',\n key: 'adConversion',\n },\n\n { value: 'cost_per_click', label: 'Cost per click', key: 'costPerClick' },\n { value: 'sales_per_click', label: 'Sales per click', key: 'salesPerClick' },\n { value: 'roas', label: 'ROAS', key: 'adRoas' },\n { value: 'tacos', label: 'TACOS', info: 'Seller ONLY', key: 'tacos' },\n { value: 'clicks', label: 'Clicks', key: 'adClicks' },\n { value: 'ctr', label: 'Click through rate', key: 'adClickRate' },\n { value: 'num_orders', label: 'Orders', key: 'adOrders' },\n { value: 'ntb_orders', label: 'NTB orders', key: 'ntbOrders' },\n { value: 'ntb_sales', label: 'NTB Sales', key: 'ntbSales' },\n {\n value: 'ntb_orders_percent',\n label: '% of orders NTB',\n key: 'percentageNtbOrders',\n },\n {\n value: 'ntb_sales_percent',\n label: '% of sales NTB',\n key: 'percentageNtbSales',\n },\n {\n value: 'ad_spend_total',\n label: 'Total AD Spend',\n info: 'Seller ONLY',\n key: 'adSpendTotal',\n },\n];\n\nexport const columnsForDSPPerformance = [\n ...dadSortOptions,\n { value: 'total_dpvr', label: 'Total DPVR', key: 'dspTotalDpvr' },\n {\n value: 'total_new_to_brand_purchases',\n label: 'TTL new to brand purchases',\n key: 'dspTtlNewBrandPurchases',\n },\n { value: 'product_sales', label: 'Product Sales', key: 'dspProductSales' },\n\n { value: 'roas', label: 'ROAS', key: 'dspRoas' },\n];\n\nexport const timeFrameFilters = [\n { value: 'week', label: 'Current 7 days' },\n { value: 'month', label: 'Current Month' },\n { value: '30days', label: 'Current 30 days' },\n {\n value: 'custom',\n label: 'Custom Period',\n sub: 'Select start and end dates',\n },\n];\n\n// needs a name change\nexport const options = [\n { value: 'contract_details', label: 'Accounts' },\n { value: 'performance', label: 'Sales Performance' },\n { value: 'sponsored_ad_performance', label: 'Sponsored Ad Performance' },\n { value: 'dsp_ad_performance', label: 'DSP Ad Performance' },\n];\n\nexport const editCompanyFields = [\n {\n key: 'description',\n label: 'Description',\n type: 'textarea',\n property: 'col-md-12',\n },\n { key: 'phone_number', label: 'Phone', property: 'col-md-12', type: 'text' },\n {\n key: 'social',\n label: 'Social',\n\n type: 'social',\n property: 'col-md-12',\n choices: [\n { key: 'facebook', item: FaceBookIcons, label: 'Facebook' },\n { key: 'twitter', item: TwitterIcons, label: 'Twitter' },\n { key: 'linkedin', item: LinkeDinIcons, label: 'LinkedIn' },\n { key: 'instagram', item: InstagramIcons, label: 'Instagram' },\n { key: 'pinterest', item: PinterestIcon, label: 'Pinterest' },\n ],\n },\n];\n\nexport const editAccountFields = [\n {\n key: 'company_name',\n label: 'Company Name',\n property: 'col-9',\n type: 'text',\n },\n { key: 'website', label: 'Website', type: 'text', property: 'col-md-6' },\n {\n key: 'country',\n label: 'Country',\n type: 'choice',\n property: 'col-md-6',\n },\n {\n key: 'address',\n label: 'Address',\n property: 'col-12',\n type: 'text',\n },\n {\n key: 'city',\n label: 'City',\n type: 'text',\n property: 'col-md-6',\n },\n {\n key: 'state',\n label: 'State',\n type: 'text',\n property: 'col-md-6',\n },\n\n {\n key: 'zip_code',\n label: 'Postal Code',\n property: 'col-md-12',\n type: 'text',\n },\n];\n\nexport const socialIcons = [\n {\n key: 'facebook',\n value: FaceBookIcons,\n label: 'Facebook',\n onboard: SquareFbIcon,\n property: 'social-media face-book mr-1',\n },\n {\n key: 'twitter',\n value: TwitterIcons,\n label: 'Twitter',\n onboard: TwitterIcon,\n property: 'social-media mr-1',\n },\n {\n key: 'linkedin',\n value: LinkeDinIcons,\n label: 'LinkedIn',\n onboard: LinkedinIcon,\n property: 'social-media linedin mr-1',\n },\n {\n key: 'instagram',\n value: InstagramIcons,\n label: 'Instagram',\n onboard: InstagramIcon,\n property: 'social-media insta mr-1',\n },\n {\n key: 'pinterest',\n value: PinterestIcon,\n label: 'Pinterest',\n onboard: PinterestIcon,\n property: 'social-media insta mr-1',\n },\n];\n\nexport const contractOptions = [\n { value: 'view', label: 'View Agreement', icon: ViewExternalLink },\n { value: 'addendum', label: 'Draft Addendum', icon: EditFileIcons },\n { value: 'pause', label: 'Pause Agreement', icon: PauseIcon },\n { value: 'cancel', label: 'Cancel Agreement', icon: CloseCircleIcon },\n];\n\nexport const contractOptionsWithAddendum = [\n { value: 'view', label: 'View Agreement', icon: ViewExternalLink },\n { value: 'addendum', label: 'Draft Addendum', icon: EditFileIcons },\n];\n\nexport const contractOptionsWithoutAddendum = [\n { value: 'view', label: 'View Agreement', icon: ViewExternalLink },\n { value: 'pause', label: 'Pause Agreement', icon: PauseIcon },\n { value: 'cancel', label: 'Cancel Agreement', icon: CloseCircleIcon },\n];\n\nexport const contractOptionsWithoutPauseCancel = [\n { value: 'view', label: 'View Agreement', icon: ViewExternalLink },\n];\n\nexport const draftContractOptions = [\n { value: 'view', label: 'View Agreement', icon: ViewExternalLink },\n { value: 'edit', label: 'Edit Agreement', icon: CopyIcon },\n { value: 'delete', label: 'Delete Agreement', icon: DeleteIcon },\n];\n\nexport const draftAddendumOptions = [\n { value: 'view', label: 'View Addendum', icon: ViewExternalLink },\n { value: 'edit', label: 'Edit Addendum', icon: CopyIcon },\n { value: 'deleteAddendum', label: 'Delete Addendum', icon: DeleteIcon },\n];\n\nexport const contractOptionsWithPaused = [\n { value: 'view', label: 'View Agreement', icon: ViewExternalLink },\n];\n\nexport const contractOptionsWithActivePendingPaused = [\n { value: 'view', label: 'View Agreement', icon: ViewExternalLink },\n\n { value: 'pause', label: 'Pause Agreement', icon: PauseIcon },\n { value: 'cancel', label: 'Cancel Agreement', icon: CloseCircleIcon },\n];\n\nexport const agreementOptions = [\n { key: 'monthly_retainer', label: 'Monthly Retainer' },\n { key: 'rev_share', label: 'Rev Share' },\n { key: 'sales_threshold', label: 'Sales Threshold' },\n { key: 'billing_cap', label: 'Billing Cap' },\n {\n key: 'content_optimization',\n label: 'Copy Optimization',\n },\n {\n key: 'design_optimization',\n label: 'Design Optimization',\n },\n {\n key: 'photography',\n label: 'Photography Optimization',\n },\n];\nexport const channelInvoiceTypeOptions = {\n monthlyRetainer: [\n { label: 'All Retainer Invoices', value: 'all' },\n {\n label: 'Amazon Retainer Invoices',\n value: 'amazon',\n },\n {\n label: 'Walmart Retainer Invoices',\n value: 'walmart',\n },\n ],\n revShare: [\n { label: 'All Rev Share Invoices', value: 'all' },\n {\n label: 'Amazon Rev Share Invoices',\n value: 'amazon',\n },\n {\n label: 'Walmart Rev Share Invoices',\n value: 'walmart',\n },\n ],\n upsell: [\n { label: 'All Upsell Invoices', value: 'all' },\n {\n label: 'Amazon Upsell Invoices',\n value: 'amazon',\n },\n {\n label: 'Walmart Upsell Invoices',\n value: 'walmart',\n },\n ],\n};\n\nexport const financeTabsOptions = [\n { key: 'retainer', value: 'Monthly Retainer' },\n { key: 'rev share', value: 'Rev Share' },\n { key: 'upsell', value: 'Upsell' },\n { key: 'dsp service', value: 'DSP' },\n { key: 'amc service', value: 'AMC' },\n];\n\nexport const billingNavigationOptions = [\n 'retainer',\n 'rev share',\n 'upsell',\n 'dsp service',\n 'amc service',\n];\n\nexport const adjustInvoiceInputs = [\n {\n key: 1,\n id: 'BT-adjustInvoice-usAmount',\n label: 'US',\n name: 'usAmount',\n inputID: 'usAmount',\n choices: [\n { key: 4, id: 'yes', name: 'choice1', label: 'Yes' },\n { key: 5, id: 'no', name: 'choice1', label: 'No' },\n ],\n },\n {\n key: 2,\n id: 'BT-adjustInvoice-ukAmount',\n label: 'UK',\n name: 'ukAmount',\n inputID: 'ukAmount',\n choices: [\n { key: 6, id: 'yes1', name: 'choice2', label: 'Yes' },\n { key: 7, id: 'no1', name: 'choice2', label: 'No' },\n ],\n },\n {\n key: 3,\n id: 'BT-adjustInvoice-caAmount',\n label: 'Canada',\n name: 'caAmount',\n inputID: 'caAmount',\n choices: [\n { key: 8, id: 'yes2', name: 'choice3', label: 'Yes' },\n { key: 9, id: 'no2', name: 'choice3', label: 'No' },\n ],\n },\n];\n\nexport const adjustInvoiceChoices = [\n {\n key: 1,\n id: 'BT-adjustInvoice-standard',\n label: 'Standard',\n name: 'standard',\n },\n {\n key: 3,\n id: 'BT-adjustInvoice-onetime',\n label: 'One Time',\n name: 'one time',\n },\n];\n\nexport const pipelineChoices = [\n { value: 'all_pipeline', label: 'All Pipeline' },\n { value: 'sales_pipeline', label: 'USA Pipeline' },\n { value: 'europe', label: 'Europe Pipeline' },\n { value: 'bbe_store', label: 'BBE Store Pipeline' },\n];\n\nexport const customerDetailsSideBarNavigationOptions = {\n defaultView: [\n { value: 'performance', label: 'Performance', nav: 'salePerformance' },\n { value: 'inventoryManagement', label: 'Inventory Management' },\n { value: 'goals', label: 'Goals and Strategy', nav: 'goals' },\n { value: 'agreement', label: 'Agreements', nav: 'agreement' },\n { value: 'company-details', label: 'Company Details' },\n { value: 'billing', label: 'Billing', nav: 'billing-details' },\n { value: 'activity', label: 'Activity' },\n { value: 'feedback', label: 'Partner Feedback' },\n ],\n forPlaybookView: [\n { value: 'performance', label: 'Performance', nav: 'salePerformance' },\n { value: 'inventoryManagement', label: 'Inventory Management' },\n { value: 'playbook', label: 'Playbook' },\n { value: 'goals', label: 'Goals and Strategy', nav: 'goals' },\n { value: 'agreement', label: 'Agreements', nav: 'recurring' },\n { value: 'company-details', label: 'Company Details' },\n { value: 'billing', label: 'Billing', nav: 'billing-details' },\n { value: 'activity', label: 'Activity' },\n { value: 'feedback', label: 'Partner Feedback' },\n ],\n\n customerDefaultView: [\n { value: 'dashboard', label: 'Dashboard' },\n { value: 'performance', label: 'Performance', nav: 'salePerformance' },\n { value: 'inventoryManagement', label: 'Inventory Management' },\n { value: 'goals', label: 'Goals and Strategy', nav: 'goals' },\n { value: 'agreement', label: 'Agreements', nav: 'recurring' },\n { value: 'company-details', label: 'Company Details' },\n { value: 'billing', label: 'Billing', nav: 'billing-details' },\n { value: 'feedback', label: 'Partner Feedback' },\n { value: 'reports', label: 'Reports' },\n ],\n\n customerDefaultViewWithPlaybook: [\n { value: 'dashboard', label: 'Dashboard' },\n { value: 'performance', label: 'Performance', nav: 'salePerformance' },\n { value: 'inventoryManagement', label: 'Inventory Management' },\n { value: 'goals', label: 'Goals and Strategy', nav: 'goals' },\n { value: 'agreement', label: 'Agreements', nav: 'recurring' },\n { value: 'company-details', label: 'Company Details' },\n { value: 'billing', label: 'Billing', nav: 'billing-details' },\n { value: 'feedback', label: 'Partner Feedback' },\n { value: 'reports', label: 'Reports' },\n ],\n};\n\nexport const invoiceTypes = ['rev share', 'dsp service', 'retainer', 'upsell'];\n\nexport const inventoryTypes = [\n 'inventory',\n 'overstocked',\n 'understocked',\n 'standed',\n];\n\nexport const feedbackOptions = [\n { key: 'difficult', label: '😡' },\n { key: 'hard', label: '😔' },\n { key: 'neutral', label: '😐' },\n { key: 'easy', label: '🙂' },\n { key: 'effortless', label: '😄' },\n];\n\nexport const requestDemoDetails = [\n {\n key: 'email',\n label: 'Email Address',\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: 'Invalid email address.',\n },\n },\n {\n key: 'first_name',\n label: 'First Name',\n pattern: {\n value: /^[a-zA-Z-\\s]*$/,\n message: 'Special characters not allowed.',\n },\n },\n {\n key: 'last_name',\n label: 'Last Name',\n pattern: {\n value: /^[a-zA-Z-\\s]*$/,\n message: 'Special characters not allowed.',\n },\n },\n { key: 'company_name', label: 'Company' },\n];\n\nexport const bpChannelTypes = [\n { value: 'all_channels', label: 'All Channels' },\n { value: 'amazon', label: 'Amazon' },\n { value: 'walmart', label: 'Walmart' },\n];\n\nexport const bpAccountTypes = [\n { value: 'all', label: 'All Accounts' },\n { value: 'parent', label: 'Parent Accounts' },\n { value: 'child', label: 'Child Accounts' },\n { value: 'standalone', label: 'Standalone Accounts' },\n];\n\nexport const InvoiceIssueOptions = [\n { value: 'yes', label: 'Yes' },\n { value: 'no', label: 'No' },\n];\n\nexport const customerStatusNote = {\n inactive:\n \"You're about to set this account to Inactive. Please, select the last day of service and add a note on why the account is being inactivated.\",\n\n 'at risk':\n 'You’re about to set this account to At Risk. The account will remain active, but highlighted as being at risk. Please add a note on why the account is being placed in At Risk status.',\n\n active:\n 'You’re about to set this account to Active. Please add a note on why the account is being placed in active status.',\n\n 'in collections':\n 'You’re about to set this account to IN COLLECTIONS. Please add a note on why the account is being placed in IN COLLECTIONS status.',\n};\n\nexport const customerAgreementTableHeaders = [\n { label: 'Agreement Type', key: 'contract_type', width: '40%' },\n { label: 'Agreement Status', key: 'contract_status', width: '24%' },\n { label: 'Start Date', key: 'start_date', width: '18%' },\n { label: 'Expires in', key: 'end_date', width: '18%' },\n];\n","import {\n PATH_AMAZON_ACCOUNT,\n PATH_AMAZON_MERCHANT,\n PATH_BILLING_DETAILS,\n PATH_COMPANY_DETAILS,\n PATH_SUMMARY,\n} from './RouteConstants';\n\nexport const billingStaticMessage = {\n walmartRecipientMessage:\n 'If there are no Walmart billing recipients entered, Walmart invoices will automatically be sent to Amazon billing recipients.',\n};\n\nexport const achDetails = [\n { key: 'account_name', label: 'Name on Account', type: 'text' },\n { key: 'bank_name', label: 'Bank Name', type: 'text' },\n { key: 'account_number', label: 'Account Number', type: 'number' },\n { key: 'routing_number', label: 'Routing Number', type: 'number' },\n];\n\nexport const creditCardDetails = [\n {\n details: [\n {\n key: 'card_holder_name',\n label: 'Cardholder Name',\n type: 'text',\n property: 'col-12',\n },\n {\n key: 'card_number',\n label: 'Credit Card Number',\n type: 'number',\n property: 'col-12',\n format: '#### #### #### ####',\n },\n {\n key: 'expiration_date',\n label: 'Expiration Date',\n type: 'number',\n property: 'col-8 pr-0',\n format: '##/##',\n },\n {\n key: 'card_code',\n label: 'CVV',\n type: 'number',\n property: 'col-4',\n format: '####',\n },\n ],\n },\n];\n\nexport const billingAddress = [\n {\n key: 'address',\n label: 'Address',\n type: 'text',\n property: 'col-12',\n section: 'address',\n },\n {\n key: 'city',\n label: 'City',\n type: 'text',\n property: 'col-12',\n section: 'address',\n },\n {\n key: 'state',\n label: 'State',\n type: 'text',\n property: 'col-6 pr-2',\n section: 'address',\n },\n {\n key: 'postal_code',\n label: 'Postal Code',\n type: 'text',\n property: 'col-6 pl-2',\n section: 'address',\n },\n {\n key: 'first_name',\n label: 'First name',\n type: 'text',\n property: 'col-6 pr-2',\n section: 'contact',\n },\n {\n key: 'last_name',\n label: 'Last name',\n type: 'text',\n property: 'col-6 pl-2',\n section: 'contact',\n },\n\n {\n key: 'email',\n label: 'Email',\n type: 'email',\n property: 'col-6 pr-2',\n section: 'contact',\n },\n {\n key: 'phone_number',\n label: 'Phone number',\n type: 'number',\n property: 'col-6 pl-2',\n section: 'contact',\n },\n];\n\nexport const paymentTermValueLabel = [\n {\n value: 'auto pay',\n label: 'Autopay',\n },\n {\n value: 'due on receipt',\n label: 'Due on receipt',\n },\n {\n value: 'net 7',\n label: 'NET-7',\n },\n {\n value: 'net 14',\n label: 'NET-14',\n },\n {\n value: 'net 30',\n label: 'NET-30',\n },\n {\n value: 'net 9',\n label: 'NET-9',\n },\n {\n value: 'net 10',\n label: 'NET-10',\n },\n {\n value: 'net 15',\n label: 'NET-15',\n },\n {\n value: 'net 60',\n label: 'NET-60',\n },\n];\n\nexport const paymentType = [\n { key: 'ach', label: 'ACH', type: 'radio' },\n { key: 'credit_card', label: 'Credit Card', type: 'radio' },\n];\n\nexport const whichStep = [\n {\n key: 'digital presence',\n stepof: 2,\n title: \"Your Company's Digital Presence\",\n skip: PATH_BILLING_DETAILS,\n bar: '20',\n path: 'company-details',\n subTitle: 'Need help on why we need this information?',\n video: true,\n },\n {\n key: 'billing information',\n stepof: 3,\n title: 'Billing Information',\n skip: PATH_AMAZON_MERCHANT,\n back: PATH_COMPANY_DETAILS,\n bar: '35',\n path: 'billing-details',\n video: false,\n },\n {\n key: 'merchant id',\n stepof: 4,\n title: 'Amazon Account Access',\n skip: PATH_AMAZON_ACCOUNT,\n back: PATH_BILLING_DETAILS,\n bar: '55',\n path: 'amazon-merchant',\n subTitle: '',\n video: false,\n },\n {\n key: 'amazon account',\n stepof: 5,\n title: 'Amazon Account Permissions',\n skip: PATH_SUMMARY,\n back: PATH_AMAZON_MERCHANT,\n bar: '85',\n path: 'amazon-account',\n subTitle: '',\n video: false,\n },\n];\n\nexport const stepPath = [\n {\n key: 'digital presence',\n view: PATH_COMPANY_DETAILS,\n title: \"Your Company's Digital Presence\",\n },\n {\n key: 'billing information',\n title: 'Billing Information',\n view: PATH_BILLING_DETAILS,\n },\n {\n key: 'merchant id',\n title: 'Amazon Account Access',\n view: PATH_AMAZON_MERCHANT,\n },\n {\n key: 'amazon account',\n title: 'Amazon Account Permissions',\n view: PATH_AMAZON_ACCOUNT,\n },\n];\n\nexport const amazonSellerAccountDetails = [\n {\n key: 'seller_central_name',\n label: 'Seller Central Account Name',\n section: 1,\n },\n { key: 'merchant_id', label: 'Merchant ID', section: 1 },\n { key: 'advertiser_name', label: 'Advertiser Name', section: 2 },\n { key: 'advertiser_id', label: 'Advertiser ID', section: 2 },\n];\n\nexport const amazonVendorAccountDetails = [\n {\n key: 'vendor_central_name',\n label: 'Vendor Central Account Name',\n section: 1,\n },\n { key: 'vendor_code', label: 'Vendor Code', section: 1 },\n { key: 'advertiser_name', label: 'Advertiser Name', section: 2 },\n { key: 'advertiser_id', label: 'Advertiser ID', section: 2 },\n];\n\nexport const amazonSellerAccDetails = [\n {\n key: 'ad_account_name',\n label: 'Ad Account Name on Amazon',\n section: 1,\n },\n {\n key: 'seller_central_name',\n label: 'Seller Central Account Name',\n section: 1,\n },\n { key: 'merchant_id', label: 'Merchant ID', section: 1 },\n { key: 'advertiser_name', label: 'Advertiser Name', section: 2 },\n { key: 'advertiser_id', label: 'Advertiser ID', section: 2 },\n];\n\nexport const amazonVendorAccDetails = [\n {\n key: 'ad_account_name',\n label: 'Ad Account Name on Amazon',\n section: 1,\n },\n {\n key: 'vendor_central_name',\n label: 'Vendor Central Account Name',\n section: 1,\n },\n { key: 'vendor_code', label: 'Vendor Code', section: 1 },\n { key: 'advertiser_name', label: 'Advertiser Name', section: 2 },\n { key: 'advertiser_id', label: 'Advertiser ID', section: 2 },\n];\n\nexport const amazonDspAccDetails = [\n {\n key: 'advertiser_name',\n label: 'DSP Advertiser Name on Amazon',\n section: 3,\n },\n {\n key: 'entity_name',\n label: 'DSP Entity Name',\n section: 3,\n },\n { key: 'entity_id', label: 'DSP Entity ID', section: 3 },\n { key: 'advertiser_id', label: 'Advertiser ID', section: 3 },\n];\n\nexport const authorizeLink =\n 'https://www.authorize.net/en-us/about-us/dpa.html';\n\nexport const customVideoStyle = {\n width: '16px',\n marginRight: '6px',\n verticalAlign: 'text-bottom',\n cursor: 'pointer',\n};\n\nexport const billingTerms =\n 'I hereby acknowledge that I am an authorized signer on the account listed above and hereby authorize payments to be made to BBE using this payment method to satisfy any and all invoices or bills on our account with BBE moving forward until or unless further notice is provided in writing. I further agree to the additional Terms & Conditions for these payment and agree to the terms and conditions found ';\n\nexport const delegatedInfo =\n ' If you’re unable to provide this information or you think this was sent to you unintentionally, please let them know via the email address highlighted above.';\n\nexport const billingInformation = [\n {\n label: 'Billing Address',\n part: 'Part 1',\n array: billingAddress.filter((op) => op.section === 'address'),\n key: 'billing_address',\n hasCheckbox: false,\n },\n {\n label: 'Billing Contact',\n additional_label: 'Additional Billing Contact',\n part: 'Part 2',\n array: billingAddress.filter((op) => op.section === 'contact'),\n key: 'billing_contact',\n hasCheckbox: false,\n },\n];\n\nexport const amazonAccountManual = [\n {\n icon: 'fa-regular fa-1',\n info: 'Go to Settings → User Permissions → Invite amazon5@buyboxexperts.com to your user list.',\n },\n {\n icon: 'fa-regular fa-2',\n info: 'Apply this invitation to all of your marketplaces that you require BBE to manage for your Seller Central/Vendor Central.',\n },\n {\n icon: 'fa-regular fa-3',\n info: \"Complete the checkboxes below to make sure that you've added us to all the agreed marketplaces.\",\n },\n];\n\nexport const accountInfo = [\n 'Create User Account on Next',\n 'Provide Your Company’s Digital Presence',\n 'Provide Billing Information',\n 'Provide Amazon Account Access',\n 'Provide Amazon Account Permissions',\n];\n","export const collectionDetails = [\n {\n key: '3rd Party Tools',\n icon: 'fa-regular fa-user',\n },\n {\n key: 'Account Management',\n icon: 'fa-regular fa-user',\n },\n {\n key: 'Advertising',\n icon: 'fa-regular fa-rectangle-ad',\n },\n {\n key: 'Amazon 101',\n icon: 'fa-brands fa-amazon',\n },\n {\n key: 'BBE',\n icon: 'fa-regular fa-chevron-up',\n },\n {\n key: 'Catalog',\n icon: 'fa-regular fa-newspaper',\n },\n {\n key: 'Company Knowledge',\n icon: 'fa-regular fa-building',\n },\n {\n key: 'Creative',\n icon: 'fa-regular fa-pen-ruler',\n },\n {\n key: 'Customer Service',\n icon: 'fa-regular fa-user-headset',\n },\n {\n key: ' International Expansion Services',\n icon: 'fa-regular fa-book-atlas',\n },\n {\n key: 'Human Resource',\n icon: 'fa-regular fa-handshake-angle',\n },\n {\n key: 'Logistics',\n icon: 'fa-regular fa-warehouse-full',\n },\n {\n key: 'Marketing',\n icon: 'fa-regular fa-megaphone',\n },\n {\n key: 'NEXT',\n icon: 'fa-regular fa-location-question',\n },\n {\n key: 'Productivity Tools',\n icon: 'fa-regular fa-screwdriver-wrench',\n },\n {\n key: 'Sales',\n icon: 'fa-regular fa-piggy-bank',\n },\n {\n key: 'Seller Support - Seller Performance',\n icon: 'fa-regular fa-chart-line-up',\n },\n {\n key: 'Vendor Collection',\n icon: 'fa-regular fa-boxes-stacked',\n },\n {\n key: 'Technology',\n icon: 'fa-regular fa-laptop-mobile',\n },\n];\n\nexport const managementLink =\n 'https://sites.google.com/buyboxexperts.com/employee-engagement/home';\nexport const helpDeskLink =\n 'https://bbe.atlassian.net/servicedesk/customer/portals';\n\nexport const brandSteps = [\n {\n key: 'brand_logo',\n url: 'brand-logo',\n label: 'Brand Logo',\n step: 1,\n subtitle: 'Please upload one or more versions of your brand logo.',\n format: 'AI or EPS file',\n skip: 'brand-guidelines',\n },\n {\n key: 'brand_guidelines',\n url: 'brand-guidelines',\n label: 'Brand Guidelines',\n step: 2,\n subtitle:\n 'Please upload a brand style guide. This should include specifics around brand colors, logo usage, fonts, tone of voice and other relevant information.',\n format: 'PDF',\n skip: 'font-files',\n },\n {\n key: 'font_files',\n url: 'font-files',\n label: 'Font Files',\n step: 3,\n subtitle:\n 'Please upload the raw font files that are used across your brand identity, such as for your logo or any specific fonts used on your website and marketing material.',\n format: 'OTF, TTF, WOFF',\n skip: 'iconography',\n },\n {\n key: 'iconography',\n url: 'iconography',\n label: 'Iconography',\n step: 4,\n subtitle:\n \"Please upload any iconography you use across your brand's various platforms, such as your website and marketing material.\",\n\n format: 'AI, EPS, SVG',\n skip: 'additional-brand-material',\n },\n {\n key: 'additional_brand_material',\n url: 'additional-brand-material',\n label: 'Additional Brand Material',\n step: 5,\n subtitle:\n 'Please upload anything else you have that will help us understand and represent your brand image as accurately as possible.',\n format: '',\n skip: 'summary',\n },\n];\n\nexport const dspPacingTooltipConstants = {\n totalAmountPaidTillDateInfo: {\n id: 'totalAmountPaidTillDateInfo',\n text: null,\n dataCy: 'BT-dspAdPacingOverlay-totalAmountPaidTillDateInfo',\n },\n invoicePaidInfo: {\n id: 'invoicePaidInfo',\n text: 'Invoice(s) paid for current month',\n dataCy: 'BT-dspAdPacingOverlay-invoicePaidInfo',\n },\n carryOverInfo: {\n id: 'carryOverInfo',\n text: 'Escrow amount that was reallocated from previous months and/or future months to the current month. The amount is locked in on day 2 of the current month.',\n dataCy: 'BT-dspAdPacingOverlay-carryOverInfo',\n },\n initialTotalbudgetInfo: {\n id: 'initialTotalbudgetInfo',\n text: 'Invoice amount/paid + Carry-over',\n dataCy: 'BT-dspAdPacingOverlay-initialTotalBudgetInfo',\n },\n initialDailyBudgetInfo: {\n id: 'initialDailybudgetInfo',\n text: 'Initial Total Budget/number of days in current month',\n dataCy: 'BT-dspAdPacingOverlay-initialDailyBudgetInfo',\n },\n dayPassedInfo: {\n id: 'dayPassedInfo',\n text: null,\n dataCy: 'BT-dspAdPacingOverlay-dayPassedInfo',\n },\n plannedSpendToDateInfo: {\n id: 'plannedSpendToDateInfo',\n text: `This values is affected by an escrow reallocation. Planned spend value which accounts for 1- the budget initially allocated to the current month and 2- any escrow reallocations throughout the month.`,\n dataCy: 'BT-dspAdPacingOverlay-plannedSpendToDateInfo',\n },\n actualSpendToDateInfo: {\n id: 'actualSpendToDateInfo',\n data_for: 'actualSpendToDateInfo',\n text: null,\n dataCy: 'BT-dspAdPacingOverlay-actualSpendToDateInfo',\n },\n remainingBudgetInfo: {\n id: 'remainingBudgetInfo',\n data_for: 'remainingBudgetInfo',\n text: 'Remaining Budget = Initial Total Budget +/- escrow reallocation - Actual Spend to date',\n dataCy: 'BT-dspAdPacingOverlay-remainingBudgetInfo',\n },\n escrowBalanceInfo: {\n id: 'escrowBalanceInfo',\n text: 'Escrow Balance = Remaining Budget + budgets of future months.',\n dataCy: 'BT-dspAdPacingOverlay-escrowBalanceInfo',\n },\n};\n\nexport const billingOffboardErrorMsg = [\n 'This cancel request has been already approved',\n 'This cancel request has been already rejected',\n 'This pause request has been already approved',\n 'This pause request has been already rejected',\n];\n\nexport const oneTimeServicesTitle = [\n { key: 'Brand Story', title: 'General' },\n { key: 'Amazon Storefront Home Page', title: 'General' },\n { key: 'Amazon Storefront Tab', title: 'General' },\n { key: 'Amazon Storefront Sub Tab', title: 'General' },\n { key: 'Walmart Storefront Home Page', title: 'General' },\n { key: 'Walmart Storefront Tab', title: 'General' },\n { key: 'Walmart Storefront Sub Tab', title: 'General' },\n { key: 'Infographics Original', title: 'General' },\n { key: 'Infographics Variation', title: 'General' },\n { key: 'A+ Original', title: 'General' },\n { key: 'A+ Similar', title: 'General' },\n { key: 'Premium A+ Content Original', title: 'General' },\n { key: 'Premium A+ Content Variation', title: 'General' },\n\n { key: 'Enhanced Original', title: 'General' },\n { key: 'Enhanced Similar', title: 'General' },\n { key: 'Premium Enhanced Content Original', title: 'General' },\n { key: 'Premium Enhanced Content Variation', title: 'General' },\n\n { key: 'Original Listing', title: 'Content' },\n { key: 'Variation Listing', title: 'Content' },\n\n { key: 'Backend Search Terms Update', title: 'Search Engine Optimization' },\n { key: 'Keyword Audit', title: 'Search Engine Optimization' },\n\n { key: 'DSP Ads (1 Set)', title: 'Creative Add-Ons' },\n { key: 'Email Template', title: 'Creative Add-Ons' },\n { key: 'Product Insert', title: 'Creative Add-Ons' },\n { key: 'Style Guide', title: 'Creative Add-Ons' },\n { key: 'Graphics Translation', title: 'Creative Add-Ons' },\n\n { key: 'Studio Photography, 1 product', title: 'Photography' },\n { key: 'Studio Photography up to 5 products', title: 'Photography' },\n { key: 'Styled Studio Photography for 1 product', title: 'Photography' },\n {\n key: 'Styled Studio Photography for up to 5 products',\n title: 'Photography',\n },\n { key: 'Studio and Lifestyle Photography 1 product', title: 'Photography' },\n {\n key: 'Studio and Lifestyle Photography up to 5 products',\n title: 'Photography',\n },\n];\nexport const dataScrappedMsg =\n \"Data is scrapped since it's not available through Amazon, therefore there might be some discrepancy.\";\n\nexport const SpreetailRole = 'Spreetail';\n\nexport const SpreetailRoleRestrictMessage =\n 'Only authorized users are permitted to perform this action.';\n","export const AgreementSign = `

\n

\n IN WITNESS WHEREOF, the undersigned have executed and delivered this Agreement.

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Company:Buy Box Experts                 Company:CUSTOMER_NAME
Signature:THAD_SIGNSignature:{{Signature*}}                       
Printed Name:PRINTED_NAME\n Printed Name:\n \n {{Fullname}}\n
Title:\n TITLE\n Title:\n {{Jobtitle}}\n
Date:BBE_DATEDate:{{Signdate}}                       
Address:PO Box 1010 Riverton, UT 84065Address:CUSTOMER_ADDRESS
`;\n\nexport const AddendumSign = `

CONTRACT_ADDENDUM_CHANGES

\n

IN WITNESS WHEREOF, the undersigned have executed and delivered this Agreement.\n

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Company:Buy Box Experts        Company:CUSTOMER_NAME
Signature:THAD_SIGNSignature:\n {{Signature*}}                          
Printed Name:PRINTED_NAMEPrinted Name:{{Fullname}}
Date:BBE_DATEDate:{{Signdate}}                         
`;\n\nexport const RecurringLanguage = `Opportunity to Cure: In the event that either Party (the \"Notifying Party\") believes that the other Party (the \"Responding Party\") is in breach of a material term of this Agreement, the Responding Party shall have thirty (30) days from receipt of written notice from the Notifying Party to cure the breach. Upon initiating the 30 day cure period, the Parties shall mutually agree in good faith to an objective standard by which to measure whether the breach has been cured prior to the end of the 30 day period. If at the end of the 30 days, the objective criteria have not been met, then the Notifying Party may terminate this Agreement.`;\n\nexport const Recurring90DaysLanguage = `90 Day Notice: Either Party may terminate this Agreement at any time with 90 days prior written notice to the other Party. Unless the Parties agree otherwise, this Agreement shall terminate at the end of the 90 day period; provided that, the covenants in this Agreement which are intended to survive termination shall continue to be in effect as set forth herein.`;\n","export const AgreementDetails = [\n {\n key: 'contract_type',\n label: 'Agreement Type',\n type: 'text',\n placeholder: 'Enter Agreement Type',\n isMandatory: true,\n part: 'agreement',\n error: false,\n },\n {\n key: 'channel',\n label: 'Channel',\n type: 'choice',\n placeholder: 'Select Channel',\n isMandatory: true,\n part: 'agreement',\n error: false,\n },\n\n {\n key: 'start_date',\n label: 'Agreement Start Date',\n type: 'date',\n placeholder: 'Select Date',\n isMandatory: true,\n part: 'agreement',\n error: false,\n message:\n 'The pre-populated agreement start date will automatically change based on the BP’s signed date',\n },\n\n {\n key: 'change_agreement_start_date',\n label: 'Change Agreement Start Date',\n type: 'checkbox',\n isMandatory: false,\n part: 'agreement',\n error: false,\n },\n\n {\n key: 'addendum_start_date',\n label: 'Addendum Start Date',\n type: 'date',\n placeholder: 'Select Date',\n isMandatory: false,\n part: 'agreement',\n error: false,\n message:\n 'The pre-populated addendum start date will automatically change based on the BP’s signed date',\n },\n\n {\n key: 'change_addendum_start_date',\n label: 'Change Addendum Start Date',\n type: 'checkbox',\n isMandatory: false,\n part: 'agreement',\n error: false,\n },\n\n {\n key: 'length',\n label: 'Agreement Length',\n type: 'choice',\n placeholder: 'Select Agreement Length',\n isMandatory: true,\n part: 'agreement',\n error: false,\n },\n {\n key: 'company_name',\n label: 'Company Name',\n type: 'text',\n placeholder: 'Enter Company Name',\n isMandatory: true,\n part: 'agreement',\n error: false,\n field: 'customer',\n },\n {\n key: 'contract_address',\n label: 'Company Address',\n sections: [\n {\n key: 'address',\n type: 'text',\n placeholder: 'Enter Address',\n isMandatory: true,\n part: 'agreement',\n error: false,\n field: 'customer',\n },\n {\n key: 'state',\n type: 'text',\n placeholder: 'Enter State',\n isMandatory: true,\n part: 'agreement',\n error: false,\n field: 'customer',\n },\n {\n key: 'city',\n type: 'text',\n placeholder: 'Enter City',\n isMandatory: true,\n part: 'agreement',\n error: false,\n field: 'customer',\n },\n {\n key: 'zip_code',\n type: 'text',\n placeholder: 'Enter Postcode',\n isMandatory: true,\n part: 'agreement',\n error: false,\n field: 'customer',\n },\n ],\n },\n];\n\nexport const ListingOptimization = [\n {\n key: 'content_optimization',\n label: 'Copy',\n type: 'text',\n },\n {\n key: 'design_optimization',\n label: 'Design',\n type: 'text',\n },\n // {\n // key: 'photography_optimization',\n // label: 'Photography',\n // type: 'text',\n // },\n];\n\nexport const ListingTranslationFields = [\n {\n key: 'copy_listing_translation',\n label: 'Copy',\n type: 'text',\n },\n {\n key: 'creative_listing_translation',\n label: 'Creative',\n type: 'text',\n },\n];\n\nexport const channelOptions = [\n {\n label: 'Amazon',\n value: 'amazon',\n },\n {\n label: 'Walmart',\n value: 'walmart',\n },\n];\nexport const remainingFieldsOfContract = [\n {\n key: 'contract_status',\n label: 'Agreement Status',\n type: 'text',\n },\n {\n key: 'fee_type',\n label: 'Fee Type',\n type: 'text',\n },\n {\n key: 'threshold_type',\n label: 'Threshold Type',\n type: 'text',\n },\n {\n key: 'vendor_billing_report',\n label: 'Vendor Billing Report',\n type: 'text',\n },\n {\n key: 'discount_type',\n label: 'Discount Type',\n type: 'text',\n },\n {\n key: 'discount_amount',\n label: 'Discount Amount',\n type: 'number-currency',\n },\n {\n key: 'sales_threshold',\n label: 'Sales Threshold',\n type: 'number-currency',\n },\n {\n key: 'monthly_rev_share',\n label: 'monthly Rev Share',\n type: 'object',\n },\n {\n key: 'quarterly_rev_share',\n label: 'Quarterly Rev Share',\n type: 'object',\n },\n {\n key: 'billing_minimum',\n label: 'BILLING MINIMUM ',\n type: 'number-currency',\n },\n];\n\nexport const StatementDetails = [\n {\n key: 'monthly_retainer',\n label: 'Monthly Retainer',\n type: 'number-currency',\n placeholder: 'Enter Monthly Retainer',\n isMandatory: true,\n part: 'statement',\n },\n {\n key: 'primary_marketplace',\n label: 'Primary MarketPlace',\n type: 'choice',\n placeholder: 'Select Primary Marketplace',\n isMandatory: true,\n part: 'statement',\n },\n {\n key: 'rev_share',\n label: 'Revenue Share',\n type: 'choice',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n part: 'statement',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n part: 'statement',\n },\n];\n\nexport const DSPAddendumDetails = [\n {\n key: 'start_date',\n label: 'Advertising Start Date',\n type: 'date',\n placeholder: 'Enter Advertising Start Date',\n info: 'The advertising start date is auto populated based on the agreement start date and amended to fall on the 1st of the month.',\n isMandatory: false,\n part: 'dsp',\n },\n {\n key: 'changed_dsp_start_date',\n label: 'Change Advertising Start Date',\n type: 'checkbox',\n placeholder: 'Enter Changed Advertising Start Date',\n isMandatory: false,\n part: 'dsp',\n },\n {\n key: 'dsp_fee',\n label: 'Monthly Ad Budget',\n type: 'number-currency',\n placeholder: 'Enter budget',\n isMandatory: true,\n part: 'dsp',\n },\n {\n key: 'is_dynamic_dsp_fee',\n label: 'Change to Dynamic Monthly Ad Budget',\n type: 'checkbox',\n isMandatory: false,\n part: 'dsp',\n },\n\n {\n key: 'agency_fee',\n label: 'Agency Fee Percentage',\n type: 'choice',\n placeholder: 'Enter Agency Fee',\n isMandatory: false,\n part: 'dsp',\n info: 'If the agency fee percentage is below 15%, an approval will be required.',\n // info: 'The minimum monthly budget is $10,000.',\n },\n\n {\n key: 'dsp_length',\n label: 'DSP service length',\n type: 'choice',\n placeholder: 'Select length',\n isMandatory: true,\n part: 'dsp',\n },\n\n {\n key: 'dsp_marketplaces',\n label: 'DSP Marketplaces',\n type: 'choice',\n placeholder: 'Select Marketplaces',\n isMandatory: true,\n part: 'dsp',\n },\n];\nexport const oneTimeAgreementOptions = [\n {\n value: 'one-time',\n label: 'Amazon One Time Service Agreement',\n // sub: 'Standard Cancellation',\n type: 'one-time',\n channel: 'amazon',\n },\n {\n value: 'one-time',\n label: 'Walmart One Time Service Agreement',\n // sub: 'Standard Cancellation',\n type: 'one-time',\n channel: 'walmart',\n },\n];\n\nexport const newAgreementTypes = [\n {\n value: 'recurring',\n label: 'Amazon Recurring Service Agreement',\n sub: 'Standard Cancellation',\n type: 'recurring',\n channel: 'amazon',\n },\n {\n value: 'recurring (90 day notice)',\n label: 'Amazon Recurring Service Agreement',\n sub: '90 Day Cancellation',\n type: 'ninetydays',\n channel: 'amazon',\n },\n {\n value: 'dsp only',\n label: 'Amazon DSP-Only Agreement',\n sub: null,\n type: 'dsp',\n channel: 'amazon',\n },\n {\n value: 'recurring',\n label: 'Walmart Recurring Service Agreement',\n sub: 'Standard Cancellation',\n type: 'walmartRecurring',\n channel: 'walmart',\n },\n {\n value: 'recurring (90 day notice)',\n label: 'Walmart Recurring Service Agreement',\n sub: '90 Day Cancellation',\n type: 'walmartRecurringNinetyDays',\n channel: 'walmart',\n },\n];\n\nexport const additionaMarketplaceAmount = 1500;\n\nexport const accountTypeOptions = [\n { value: 'Seller', label: 'Seller' },\n { value: 'Vendor', label: 'Vendor' },\n { value: 'Hybrid', label: 'Hybrid' },\n];\n\nexport const feeTypeOptions = [\n {\n value: 'Retainer Only',\n label: 'Retainer Only',\n key: 'monthly_retainer',\n type: 'number-currency',\n },\n {\n value: 'Revenue Share Only',\n label: 'Revenue Share Only',\n key: 'rev_share',\n type: 'choice',\n },\n {\n value: 'Retainer + % Rev Share',\n label: 'Retainer + Rev Share',\n key: 'retinaer_rev_share',\n type: 'choice',\n },\n];\n\n// Fee structure\n\nexport const feeStructureContainerDetails = [\n {\n key: 'primary_marketplace',\n label: 'Primary MarketPlace',\n type: 'choice',\n placeholder: 'Select Primary Marketplace',\n isMandatory: true,\n part: 'fee structure',\n },\n {\n key: 'seller_type',\n label: 'Account Type',\n type: 'choice',\n placeholder: 'Select Account Type',\n isMandatory: true,\n part: 'fee structure',\n },\n];\n\nexport const revShareDetails = [\n {\n key: 'rev_share',\n label: 'Revenue Share',\n type: 'number',\n placeholder: 'Select Revenue Share',\n subtitle: 'Revenue Share should be between 0-10.',\n isMandatory: true,\n suffix: '%',\n },\n {\n key: 'rev_share_threshold',\n label: 'Revenue Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n },\n {\n key: 'billing_minimum',\n label: 'BILLING MINIMUM (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Minimum',\n isMandatory: false,\n subtitle:\n 'We will charge the greater of the value entered here or the % of revenue',\n prefix: '$',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n subtitle: ' We will charge no more than the amount entered here.',\n prefix: '$',\n },\n];\n\nexport const revShareQuarterDetails = [\n {\n key: 'rev_share',\n label: 'Revenue Share',\n type: 'choice',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n suffix: '%',\n },\n {\n key: 'rev_share_threshold',\n label: 'Revenue Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n },\n {\n key: 'quarter',\n type: 'threshold',\n prefix: '$',\n },\n {\n key: 'billing_minimum',\n label: 'BILLING MINIMUM (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Minimum',\n isMandatory: false,\n subtitle:\n 'We will charge the greater of the value entered here or the % of revenue',\n prefix: '$',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n subtitle: ' We will charge no more than the amount entered here.',\n prefix: '$',\n },\n];\n\nexport const revShareMonthDetails = [\n {\n key: 'rev_share',\n label: 'Revenue Share',\n type: 'choice',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n suffix: '%',\n },\n {\n key: 'rev_share_threshold',\n label: 'Revenue Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n },\n {\n key: 'month',\n type: 'threshold',\n prefix: '$',\n },\n {\n key: 'billing_minimum',\n label: 'BILLING MINIMUM (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Minimum',\n isMandatory: false,\n subtitle:\n 'We will charge the greater of the value entered here or the % of revenue',\n prefix: '$',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n subtitle: ' We will charge no more than the amount entered here.',\n prefix: '$',\n },\n];\n\nexport const revShareAndRetainerDetails = [\n {\n value: 'monthly_retainer',\n label: 'Retainer',\n key: 'monthly_retainer',\n type: 'retainer',\n isMandatory: true,\n prefix: '$',\n },\n {\n key: 'rev_share',\n label: 'Revenue Share',\n type: 'number',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n suffix: '%',\n subtitle: 'Revenue Share should be between 0-10.',\n },\n {\n key: 'rev_share_threshold',\n label: 'Revenue Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n subtitle: ' We will charge no more than the amount entered here.',\n prefix: '$',\n },\n];\n\nexport const revShareAndRetainerQuarterDetails = [\n {\n value: 'monthly_retainer',\n label: 'Monthly Retainer',\n key: 'monthly_retainer',\n type: 'number-currency',\n isMandatory: true,\n prefix: '$',\n },\n {\n key: 'rev_share',\n label: 'Revenue Share',\n type: 'choice',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n suffix: '%',\n },\n {\n key: 'rev_share_threshold',\n label: 'Revenue Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n },\n {\n key: 'quarter',\n type: 'threshold',\n prefix: '$',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n subtitle: ' We will charge no more than the amount entered here.',\n prefix: '$',\n },\n];\nexport const revShareAndRetainerMonthDetails = [\n {\n value: 'monthly_retainer',\n label: 'Monthly Retainer',\n key: 'monthly_retainer',\n type: 'number-currency',\n isMandatory: true,\n prefix: '$',\n },\n {\n key: 'rev_share',\n label: 'Revenue Share',\n type: 'choice',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n suffix: '%',\n },\n {\n key: 'rev_share_threshold',\n label: 'Revenue Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n },\n {\n key: 'month',\n type: 'threshold',\n prefix: '$',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP (OPTIONAL)',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n subtitle: ' We will charge no more than the amount entered here.',\n prefix: '$',\n },\n];\n\nexport const quarterlyThresholdOptions = [\n {\n key: '1st quarterly',\n label: '1st Quarter',\n type: 'number-currency',\n placeholder: 'Enter 1st Quarter',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'Q1 Threshold',\n },\n {\n key: '2nd quarterly',\n label: '2nd Quarter',\n type: 'number-currency',\n placeholder: 'Enter 2nd Quarter',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'Q2 Threshold',\n },\n {\n key: '3rd quarterly',\n label: '3rd Quarter',\n type: 'number-currency',\n placeholder: 'Enter 3rd Quarter',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'Q3 Threshold',\n },\n {\n key: '4th quarterly',\n label: '4th Quarter',\n type: 'number-currency',\n placeholder: 'Enter 4th Quarter',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'Q4 Threshold',\n },\n];\n\nexport const monthlyThresholdOptions = [\n {\n key: 'january month',\n label: 'January',\n type: 'number-currency',\n placeholder: 'Enter January',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'January Threshold',\n },\n {\n key: 'february month',\n label: 'February',\n type: 'number-currency',\n placeholder: 'Enter February',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'February Threshold',\n },\n {\n key: 'march month',\n label: 'March',\n type: 'number-currency',\n placeholder: 'Enter March',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'March Threshold',\n },\n {\n key: 'april month',\n label: 'April',\n type: 'number-currency',\n placeholder: 'Enter April',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'April Threshold',\n },\n {\n key: 'may month',\n label: 'May',\n type: 'number-currency',\n placeholder: 'Enter May',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'May Threshold',\n },\n {\n key: 'june month',\n label: 'June',\n type: 'number-currency',\n placeholder: 'Enter June',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'June Threshold',\n },\n {\n key: 'july month',\n label: 'July',\n type: 'number-currency',\n placeholder: 'Enter July',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'July Threshold',\n },\n {\n key: 'august month',\n label: 'August',\n type: 'number-currency',\n placeholder: 'Enter August',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'August Threshold',\n },\n {\n key: 'september month',\n label: 'September',\n type: 'number-currency',\n placeholder: 'Enter September',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'September Threshold',\n },\n {\n key: 'october month',\n label: 'October',\n type: 'number-currency',\n placeholder: 'Enter October',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'October Threshold',\n },\n {\n key: 'november month',\n label: 'November',\n type: 'number-currency',\n placeholder: 'Enter November',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'November Threshold',\n },\n {\n key: 'december month',\n label: 'December',\n type: 'number-currency',\n placeholder: 'Enter December',\n isMandatory: false,\n prefix: '$',\n fieldOf: 'threshold',\n detail: 'December Threshold',\n },\n];\n\nexport const vendorReportOptions = [\n { value: 'Shipped COGS', label: 'Shipped COGS' },\n { value: 'Ordered Revenue', label: 'Ordered Revenue' },\n];\n\nexport const rachelDetails = {\n firstName: 'Rachel',\n lastName: 'Libby',\n email: 'rlibby@buyboxexperts.com',\n title: 'Director of Marketing',\n};\n\nexport const thadDetails = {\n firstName: 'Brad',\n lastName: 'Saksons',\n email: 'thad.hay@spreetail.com',\n title: 'VP, Growth',\n};\n\n// invoice constants\nexport const invoiceConstants = [\n {\n invoiceLabel: 'Monthly Retainer',\n invoiceKey: 'monthlyRetainer',\n invoiceType: 'retainer',\n infoId: 'retainerInfo',\n },\n {\n invoiceLabel: 'Rev Share',\n invoiceKey: 'revShare',\n invoiceType: 'rev share',\n infoId: 'revShareInfo',\n },\n {\n invoiceLabel: 'DSP',\n invoiceKey: 'dsp',\n invoiceType: 'dsp service',\n infoId: 'dspInfo',\n },\n {\n invoiceLabel: 'AMC',\n invoiceKey: 'amcService',\n invoiceType: 'amc service',\n infoId: 'amcInfo',\n },\n];\n\n// https://bbe.atlassian.net/browse/PDV-9280 - adding pause request note\nexport const pauseRequestNote =\n 'If the pause request has been approved in the middle of the pausing period, please reach out to Finance should there be invoices that need to be voided.';\n\nexport const invoiceTooltipMessages = {\n lastBillDate:\n 'This is the last date on which we should send an invoice. If you pick a past date, we will not send any more invoices.',\n fromDate:\n 'This is the last date on which we should send an invoice. If you pick a past date, we will not send any more invoices.',\n toDate:\n 'This is the date on which we should send the first invoice bill after the pausing period. Select a date that falls a month after the last date on which we should send out the last retainer invoice before the pausing period.',\n monthlyRetainer:\n 'This is the last retainer invoice to be sent out. It must lie on the same date on which we bill this BP for retainer. You can edit the amount of that invoice provided it still hasn’t been sent out.',\n monthlyRetainerAmount:\n 'This is the last retainer invoice to be sent out. You can edit the last retainer invoice’s amount.',\n revShare:\n 'This is the last rev share invoice to be sent out. The date must lie on the 9th as we create rev share invoices then.',\n dsp: 'This is the last standard DSP invoice. The date must lie on the 11th as we create standard DSP invoices then.',\n amc: 'This is the last AMC invoice to be sent out. It must lie on the same date in which we bill the BP for AMC.',\n amcService:\n 'This is the last AMC invoice to be sent out. It must lie on the same date in which we bill the BP for AMC.',\n dspStandardInfo: 'This applies to DSP Standard Invoices only.',\n};\n\n// https://bbe.atlassian.net/browse/PDV-9280\n// static messages for pause agreement\nconst pastBillDateMessageForPauseAgreement =\n 'When a past bill date is selected where the invoice has already been issued to the BP, please reach out to Finance for any pausing, voiding or refund requests.';\n\nexport const pauseAgreementStaticMesssages = {\n monthlyRetainer: pastBillDateMessageForPauseAgreement,\n revShare:\n 'Rev share invoices are sent out on every 9th of the month. Billed amount is based on BP’s previous month’s sales. Please reach out to Finance for any pausing, voiding or refund requests.',\n dsp: pastBillDateMessageForPauseAgreement,\n amcService: pastBillDateMessageForPauseAgreement,\n};\n// edit button message for invoice\nexport const editBtnMessageForInvoice =\n 'Edit button is disabled as you have selected an invoice date where the invoice has already been issued to the BP, please reach out to Finance for any cancellation, voiding or refund requests.';\n\n// static messages for cancel agreement\nconst pastBillDateMessageForCancelAgreement =\n 'When a past bill date is selected where the invoice has already been issued to the BP, please reach out to Finance for any billing adjustments, cancellation, voiding or refund requests';\n\nexport const cancelAgreementStaticMesssages = {\n futureInvoiceDateMessage:\n 'This is a future invoice which will no longer be issued to the BP.',\n monthlyRetainer: pastBillDateMessageForCancelAgreement,\n revShare:\n 'Rev share invoices are sent out on every 9th of the month. Billed amount is based on BP’s previous month’s sales. Please reach out to Finance for any cancellation, voiding or refund requests.',\n dsp: pastBillDateMessageForCancelAgreement,\n amcService:\n 'AMC invoice is sent out every month based on the signed date of the BP. Please reach out to Finance for any cancellation, voiding or refunding requests.',\n};\n\nexport const errorMessages = {\n retainerAmount:\n 'Please enter an amount that is equal to or less than the total retainer amount.',\n monthSpan: 'All last bill dates need to lie within a 3 month span.',\n isEndingEarlyNoMessage:\n 'Cancelling a contract more that 3 months before its contract end date is not permitted. Should you wish to cancel the contract, select YES to end the contract early and enter the last service date to proceed to the next steps.',\n};\n\nexport const quarterlyRetainerOptions = [\n {\n key: '1st quarterly',\n label: '1st Quarter',\n type: 'number-currency',\n placeholder: 'Enter 1st Quarter',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'Q1 Retainer',\n shortForm: 'Q1',\n range: [0, 1, 2],\n },\n {\n key: '2nd quarterly',\n label: '2nd Quarter',\n type: 'number-currency',\n placeholder: 'Enter 2nd Quarter',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'Q2 Retainer',\n shortForm: 'Q2',\n range: [3, 4, 5],\n },\n {\n key: '3rd quarterly',\n label: '3rd Quarter',\n type: 'number-currency',\n placeholder: 'Enter 3rd Quarter',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'Q3 Retainer',\n shortForm: 'Q3',\n range: [6, 7, 8],\n },\n {\n key: '4th quarterly',\n label: '4th Quarter',\n type: 'number-currency',\n placeholder: 'Enter 4th Quarter',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'Q4 Retainer',\n shortForm: 'Q4',\n range: [9, 10, 11],\n },\n];\n\nexport const monthlyRetainerOptions = [\n {\n key: 'january month',\n label: 'January',\n type: 'number-currency',\n placeholder: 'Enter January',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'January Retainer',\n shortForm: 'Jan',\n },\n {\n key: 'february month',\n label: 'February',\n type: 'number-currency',\n placeholder: 'Enter February',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'February Retainer',\n shortForm: 'Feb',\n },\n {\n key: 'march month',\n label: 'March',\n type: 'number-currency',\n placeholder: 'Enter March',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'March Retainer',\n shortForm: 'Mar',\n },\n {\n key: 'april month',\n label: 'April',\n type: 'number-currency',\n placeholder: 'Enter April',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'April Retainer',\n shortForm: 'Apr',\n },\n {\n key: 'may month',\n label: 'May',\n type: 'number-currency',\n placeholder: 'Enter May',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'May Retainer',\n shortForm: 'May',\n },\n {\n key: 'june month',\n label: 'June',\n type: 'number-currency',\n placeholder: 'Enter June',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'June Retainer',\n shortForm: 'Jun',\n },\n {\n key: 'july month',\n label: 'July',\n type: 'number-currency',\n placeholder: 'Enter July',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'July Retainer',\n shortForm: 'Jul',\n },\n {\n key: 'august month',\n label: 'August',\n type: 'number-currency',\n placeholder: 'Enter August',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'August Retainer',\n shortForm: 'Aug',\n },\n {\n key: 'september month',\n label: 'September',\n type: 'number-currency',\n placeholder: 'Enter September',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'September Retainer',\n shortForm: 'Sep',\n },\n {\n key: 'october month',\n label: 'October',\n type: 'number-currency',\n placeholder: 'Enter October',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'October Retainer',\n shortForm: 'Oct',\n },\n {\n key: 'november month',\n label: 'November',\n type: 'number-currency',\n placeholder: 'Enter November',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'November Retainer',\n shortForm: 'Nov',\n },\n {\n key: 'december month',\n label: 'December',\n type: 'number-currency',\n placeholder: 'Enter December',\n isMandatory: true,\n prefix: '$',\n fieldOf: 'retainer',\n detail: 'December Retainer',\n shortForm: 'Dec',\n },\n];\n\nexport const agreementRetainer = [\n {\n key: 'fee_type',\n label: 'Fee Type',\n type: 'text',\n },\n {\n value: 'monthly_retainer',\n label: 'Retainer',\n key: 'monthly_retainer',\n type: 'number-currency',\n isMandatory: true,\n prefix: '$',\n subType: 'retainer_type',\n },\n];\n\nexport const agreementRevShare = [\n {\n key: 'fee_type',\n label: 'Fee Type',\n type: 'text',\n },\n {\n key: 'rev_share',\n label: 'Rev Share %',\n type: 'choice',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n suffix: '%',\n },\n {\n key: 'sales_threshold',\n label: 'Rev Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n subType: 'threshold_type',\n },\n {\n key: 'billing_minimum',\n label: 'BILLING MIN',\n type: 'number-currency',\n placeholder: 'Enter Billing Minimum',\n isMandatory: false,\n subtitle:\n 'We will charge the greater of the value entered here or the % of revenue',\n prefix: '$',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n subtitle: ' We will charge no more than the amount entered here.',\n prefix: '$',\n },\n];\n\nexport const agreementRetainerRevShare = [\n {\n key: 'fee_type',\n label: 'Fee Type',\n type: 'text',\n },\n {\n value: 'monthly_retainer',\n label: 'Retainer',\n key: 'monthly_retainer',\n type: 'number-currency',\n isMandatory: true,\n prefix: '$',\n subType: 'retainer_type',\n },\n {\n key: 'rev_share',\n label: 'Rev Share %',\n type: 'choice',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n suffix: '%',\n },\n {\n key: 'sales_threshold',\n label: 'Rev Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n subType: 'threshold_type',\n },\n {\n key: 'billing_cap',\n label: 'BILLING CAP',\n type: 'number-currency',\n placeholder: 'Enter Billing Cap',\n isMandatory: false,\n subtitle: ' We will charge no more than the amount entered here.',\n prefix: '$',\n },\n];\n\nexport const agreementDSP = [\n {\n key: 'dsp_fee',\n label: 'Monthly Ad Budget',\n type: 'number-currency',\n prefix: '$',\n },\n {\n key: 'agency_fee',\n label: 'Agency Fee',\n suffix: '%',\n },\n];\n\nexport const agreementToggleFeeType = [\n {\n key: 'seller',\n name: 'Seller',\n id: 'negative',\n },\n {\n key: 'vendor',\n name: 'Vendor',\n id: 'positive',\n },\n];\n\nexport const agreementDSPAdv = [\n {\n key: 'dsp_marketplaces',\n label: 'DSP Marketplace(s)',\n type: 'choice',\n placeholder: 'Select Marketplaces',\n isMandatory: true,\n part: 'dsp',\n },\n {\n key: 'dsp_length',\n label: 'DSP service length',\n type: 'text',\n placeholder: 'Select length',\n isMandatory: true,\n part: 'dsp',\n },\n {\n key: 'dsp_fee',\n label: 'Monthly Ad Budget',\n type: 'number-currency',\n prefix: '$',\n },\n {\n key: 'agency_fee',\n label: 'Agency Fee',\n type: 'text',\n suffix: '%',\n },\n];\nexport const combinedRevOptions = [\n {\n key: 'rev_share',\n label: 'Rev Share %',\n type: 'number',\n placeholder: 'Select Revenue Share',\n isMandatory: true,\n suffix: '%',\n subtitle: 'Revenue Share should be between 0-10.',\n },\n {\n key: 'sales_threshold',\n label: 'Rev Share Threshold',\n type: 'threshold',\n isMandatory: false,\n prefix: '$',\n },\n];\n\nexport const newChildAgreementTypes = [\n {\n value: 'recurring',\n label: 'Recurring Service Agreement',\n sub: 'Standard Cancellation',\n },\n {\n value: 'recurring (90 day notice)',\n label: 'Recurring (90 day notice) Service Agreement',\n sub: '90 Day Cancellation',\n },\n { value: 'dsp only', label: 'DSP-Only Agreement', sub: null },\n { value: 'one time', label: 'One-Time Service Agreement', sub: null },\n];\n\n// https://bbe.atlassian.net/browse/PDV-9280\n// option constant for pending pause request\nexport const pendingPauseRequestOptions = [\n { label: ' Approving the pending pause request', value: 'approved' },\n { label: ' Rejecting the pending pause request', value: 'rejected' },\n {\n label: ' Cancelling the pending pause request and submit a new one',\n value: 'cancelled',\n },\n];\n\nexport const offBoardedRadioButtons = [\n {\n label: 'Yes',\n value: 'yes',\n name: 'is_off_boarded',\n key: 'is_off_boarded-yes',\n },\n {\n label: 'No',\n value: 'no',\n name: 'is_off_boarded',\n key: 'is_off_boarded-no',\n },\n {\n label: 'Yes',\n value: 'yes',\n name: 'is_ending_early',\n key: 'is_ending_early-yes',\n },\n {\n label: 'No',\n value: 'no',\n name: 'is_ending_early',\n key: 'is_ending_early-no',\n },\n];\nexport const pendingAgreementInvoiceDetails = [\n {\n key: 'requestor_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Requestor:',\n },\n {\n key: 'requestor',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black',\n },\n {\n key: 'date_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Request Date:',\n },\n {\n key: 'created_at',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black',\n type: 'date',\n },\n {\n key: 'offboarding_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Off-boarding BP?:',\n },\n {\n key: 'is_off_boarded',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black',\n },\n {\n key: 'ending_early_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Ending Early?:',\n },\n {\n key: 'is_ending_early',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black',\n },\n // {\n // key: 'last_date_label',\n // property: 'col-6 mb-2',\n // subProperty: 'normal-text-black text-bold',\n // label: 'Last Service Date:',\n // },\n // {\n // key: 'last_service_date',\n // property: 'col-6 mb-2 text-right',\n // subProperty: 'normal-text-black text-bold out-door',\n // },\n];\n\nexport const pausingRequestInvoiceDetails = [\n {\n key: 'requestor_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Requestor:',\n },\n {\n key: 'requestor',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black',\n },\n {\n key: 'date_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Request Date:',\n },\n {\n key: 'created_at',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black',\n type: 'date',\n },\n];\n\nexport const pausingRequestInvoiceTypes = [\n {\n key: 'retainer',\n label: 'Retainer',\n dbKey: 'retainer',\n },\n {\n key: 'revShare',\n label: 'Rev Share',\n dbKey: 'rev share',\n },\n {\n key: 'dsp',\n label: 'DSP',\n dbKey: 'dsp service',\n },\n {\n key: 'amc',\n label: 'AMC',\n dbKey: 'amc service',\n },\n];\n\nexport const contractStatusIcons = {\n active: 'fa-light fa-signature',\n renewed: 'fa-light fa-file-contract',\n pause: 'fa-light fa-pause',\n cancel: 'fa-light fa-ban',\n 'pending for cancellation': 'fa-light fa-file-invoice-dollar',\n 'pending cancellation approval': 'fa-light fa-file-circle-xmark',\n 'pending contract signature': 'fa-light fa-file-signature',\n 'pending contract approval': 'fa-light fa-file-circle-check',\n 'pending contract': 'fa-light fa-file-pen',\n completed: 'fa-light fa-handshake',\n 'active pending for pause': 'fa-light fa-pause',\n 'active partially pause': 'fa-light fa-pause',\n};\n\nexport const agreementStatusNames = {\n active: 'Signed',\n 'pending contract': 'Pending Agreement',\n 'pending contract approval': 'Pending Agreement Approval',\n 'pending contract signature': 'Pending Agreement Signature',\n cancel: 'Cancelled',\n pause: 'Paused',\n 'pending for cancellation': 'Cancelled - Pending for Billing',\n 'pending cancellation approval': 'Pending Cancellation Approval',\n 'active partially pause': 'Active - Partially Paused',\n};\n\nexport const inactiveContractStatus = [\n 'cancel',\n 'completed',\n 'draft',\n 'inactive',\n 'pause',\n 'pending contract',\n 'pending contract approval',\n 'pending contract signature',\n 'pending draft approval',\n];\n\n// PDV-8316 - Contract Changes - language update and new BBE logo\n// Define the default values as mentioned in this ticket\nexport const monthlyRetainerLimit = 6500; // old value wass 3000\nexport const monthlyRetainerLimitInString = '6500';\nexport const revShareLimit = 4; // old value was 3\nexport const revShareLimitInString = '4'; // old value was 3\nexport const revShareThresholdLimit = 375000; // newly added limit - 375,000\nexport const revShareThresholdLimitInString = '375000';\n\n// pdv-9693 Walmart customer\nexport const monthlyRetainerLimitWalmart = 2000;\nexport const monthlyRetainerLimitInStringWalmart = '2000';\nexport const revShareLimitWalmart = 2;\nexport const revShareLimitInStringWalmart = '2';\nexport const revShareThresholdLimitWalmart = 50000;\nexport const revShareThresholdLimitInStringWalmart = '50000';\n\n// display fee type information\nexport const displayFeeTypeInfo = `You will only be billed for the monthly retainer and revenue share % displayed below.`;\n\n// display revenue share information\nexport const displayRevenueShareInfo = `A percentage of all Managed Channel Sales (retail dollars, net customer returns) for all sales each month through the CHANNEL_TYPE Seller Central and/or Vendor Central account(s) that BBE manages for Client.`;\n\n// display fix retainer information\nexport const displayFixedRetainerInfo = `The fee for the main CHANNEL_TYPE marketplace as a retainer for services.This retainer is billed in advance for the month in which services are to be rendered.`;\n\n// display quartely retainer information\nexport const displayQuarterlyRetainerInfo = `Quarterly fee for the main CHANNEL_TYPE marketplace as a retainer for services. This retainer is billed in advance for the month in which services are to be rendered.`;\n\n// display monthly retainer information\nexport const displayMonthlyRetainerInfo = `Monthly fee for the main CHANNEL_TYPE marketplace as a retainer for services. This retainer is billed in advance for the month in which services are to be rendered.`;\n\n// display rev share thrshold information\nexport const displayFixedThresholdInfo = `We will bill our revenue share % on any value above this threshold for CHANNEL_TYPE Channel Sales (retail dollars, net customer returns) each month through the CHANNEL_TYPE Seller Central and Vendor Central account(s) that BBE manages for Client.`;\n\n// display billing cap info\nexport const displayBillingCapInfo = `We will charge no more than the amount listed here.`;\n\n// display billing minimum info\nexport const displayBillingMinimumInfo = `We will charge the greater of the value shown here or the % of revenue listed above.`;\n\nexport const contactFields = [\n {\n key: 'first_name',\n type: 'text',\n placeholder: 'First Name',\n classname: 'col-6 ',\n },\n {\n key: 'last_name',\n type: 'text',\n placeholder: 'Last Name',\n classname: 'col-6 ',\n },\n {\n key: 'role',\n type: 'text',\n placeholder: 'Role',\n classname: 'col-12',\n },\n {\n key: 'email',\n type: 'email',\n placeholder: 'Email',\n classname: 'col-6',\n },\n {\n key: 'phone_number',\n type: 'text',\n placeholder: 'Phone Number',\n classname: 'col-6',\n },\n];\n\nexport const OptimizationArray = [\n {\n label: 'Content',\n key: 'content_optimization',\n section: 1,\n },\n { label: 'Design', key: 'design_optimization', section: 1 },\n { label: 'Photography', key: 'photography_optimization', section: 1 },\n { label: 'Copy Listing', key: 'copy_listing_translation', section: 2 },\n { label: 'Creative', key: 'creative_listing_translation', section: 2 },\n];\n\nexport const oneTimeServicesHavingSubType = [\n 'Amazon Storefront',\n 'Infographics Original',\n 'Infographics Variation',\n 'A+',\n 'Premium A+ Content Variation',\n 'Premium A+ Content Original',\n 'A+ Similar',\n 'A+ Original',\n 'Premium Enhanced Content Variation',\n 'Premium Enhanced Content Original',\n 'Enhanced Similar',\n 'Enhanced Original',\n 'Amazon Storefront Sub Tab',\n 'Amazon Storefront Tab',\n 'Amazon Storefront Home Page',\n 'Walmart Storefront Sub Tab',\n 'Walmart Storefront Tab',\n 'Walmart Storefront Home Page',\n];\n","// account types\nexport const VENDOR = 'Vendor';\nexport const SELLER = 'Seller';\nexport const HYBRID = 'Hybrid';\nexport const VENDORSMALL = 'vendor';\nexport const SELLERSMALL = 'seller';\nexport const HYBRIDSMALL = 'hybrid';\n\n// performance tabs\nexport const AMCINSIGHTS = 'amcInsights';\nexport const CREATIVEPROJECTS = 'creativeProjects';\nexport const ADPERFORMANCE = 'adPerformance';\nexport const SALEPERFORMANCE = 'salePerformance';\nexport const DSPPERFORMANCE = 'dspPerformance';\n\n// general\nexport const PARENT = 'parent';\n\n// time frames\nexport const YEAROVERYEAR = 'yearOverYear';\nexport const CUSTOM = 'custom';\n\n// sales metrics - seller\nexport const UNITSSOLD = 'unitsSold';\nexport const TRAFFIC = 'traffic';\nexport const CONVERSION = 'conversion';\nexport const TACOS = 'tacos';\nexport const REVENUETOTAL = 'revenueTotal';\nexport const REVENUEORGANIC = 'revenueOrganic';\nexport const REVENUEPPC = 'revenuePpc';\nexport const REVENUEDSP = 'revenueDsp';\n\n// sales metrics - vendor\nexport const ORDEREDREVENUE = 'orderedRevenue';\nexport const SHIPPEDCOGS = 'shippedCOGs';\nexport const GLANCEVIEWS = 'glanceViews';\nexport const CONVERSIONRATE = 'conversionRate';\nexport const SHIPPEDUNITS = 'shippedUnits';\nexport const ORDEREDUNITS = 'orderedUnits';\n\n// sponsored metrics\nexport const ADSALES = 'adSales';\nexport const ADSPENDTOTAL = 'adSpendTotal';\nexport const ADSPENDPPC = 'adSpendPpc';\nexport const ADSPENDDSP = 'adSpendDsp';\nexport const ADSPEND = 'adSpend';\nexport const SPONSOREDADSPEND = 'sponsoredAdSpend';\nexport const DSPSPEND = 'dspSpend';\nexport const NTBORDERS = 'ntbOrders';\nexport const NTBSALES = 'ntbSales';\nexport const PERCENTAGENTBORDERS = 'percentageNtbOrders';\nexport const PERCENTAGENTBSALES = 'percentageNtbSales';\nexport const ACOS = 'acos';\nexport const ROAS = 'roas';\nexport const ADROAS = 'adRoas';\nexport const ADCOS = 'adCos';\nexport const SALESPERCLICK = 'salesPerClick';\nexport const COSTPERCLICK = 'costPerClick';\nexport const ADCONVERSION = 'adConversion';\nexport const ADCLICKRATE = 'adClickRate';\nexport const IMPRESSIONS = 'impressions';\n\n// Asin and campaign\nexport const ASIN = 'asin';\nexport const CAMPAIGN = 'campaign';\n\n// sales goals metrics key\nexport const OVERALLSALESGOALS = 'overall_sales_goals';\nexport const PPCADBUDGET = 'ppc_ad_budget';\nexport const DSPADBUDGET = 'dsp_ad_budget';\nexport const REVSHARE = 'rev_share';\n\n// Dashboard\nexport const PERFORMANCE = 'performance';\nexport const KEYMETRICS = 'keyMetrics';\nexport const CONTRIBUTION = 'contribution';\nexport const POSITIVE = 'positive';\n","import { SELLERSMALL, VENDORSMALL } from './CommanVariableConstants';\nimport { PATH_DASHBOARD, PATH_FINANCE_DASHBOARD } from './RouteConstants';\n\nexport const financeNavigationOptions = [\n { key: 'retainer', value: 'Monthly Retainer' },\n { key: 'rev share', value: 'Rev Share' },\n { key: 'upsell', value: 'Upsell' },\n { key: 'dsp service', value: 'DSP' },\n { key: 'dspBilling', value: 'DSP Billing' },\n { key: 'amc service', value: 'AMC' },\n { key: 'pendingApprovals', value: 'Pending Approvals' },\n];\n\nexport const pendingApprovalTab = [\n { key: 'pendingApprovals', value: 'Pending Approvals' },\n];\n\nexport const dspColorSet = {\n dspImpressions: '#0045B4',\n dspSpend: '#8C54FF',\n dspTotalProductSales: '#30A8BD',\n dspTotalRoas: '#D6A307',\n dspTotalDpvr: '#E05D37',\n dspTtlNewBrandPurchases: '#89A43C',\n dspProductSales: '#C84EC6',\n dspRoas: '#A04848',\n};\n\nexport const dspTabOptions = {\n dspSpend: 'DSP Spend',\n dspImpressions: 'Impressions',\n dspProductSales: 'Product Sales',\n dspRoas: 'ROAS',\n dspTotalDpvr: 'Total DPVR',\n dspTtlNewBrandPurchases: 'TTL New Brand Purchases',\n dspTotalProductSales: 'Total Product Sales',\n dspTotalRoas: 'Total ROAS',\n};\n\nexport const contributionColorSet = {\n High: '#E3F2D2',\n Medium: '#FDF3D7',\n Low: '#F4F6FC',\n};\n\nexport const InvoicesStatusOptions = [\n { value: 'any', label: 'Any' },\n { value: 'open', label: 'Open' },\n { value: 'overdue', label: 'Overdue' },\n { value: 'paid', label: 'Paid' },\n { value: 'partially paid', label: 'Partially Paid' },\n { value: 'refunded', label: 'Refunded' },\n { value: 'partially refunded', label: 'Partially Refunded' },\n { value: 'voided', label: 'Voided' },\n];\n\nexport const PartnersStatusOptions = [\n { value: 'any', label: 'Any' },\n { value: 'open', label: 'Open' },\n { value: 'overdue', label: 'Overdue' },\n { value: 'refunded', label: 'Refunded' },\n { value: 'partially refunded', label: 'Partially Refunded' },\n { value: 'voided', label: 'Voided' },\n];\n\nexport const InvoicesSortByOptions = [\n { value: '', label: 'Status' },\n { value: 'monthly_budget', label: 'Amount' },\n { value: 'generated_at', label: 'Creation Date' },\n { value: 'due_date', label: 'Due Date' },\n];\n\nexport const PartnersSortByOptions = [\n { value: 'total_outstanding', label: 'Total Outstanding' },\n { value: 'total_overdue', label: 'Total Overdue' },\n { value: 'avg_days_past_due', label: 'Average Days Past Due' },\n { value: 'paid_by_due_date', label: 'Paid By Due Date' },\n];\n\nexport const FinanceDateTypeOptions = [\n { value: 'allTime', label: 'All-Time' },\n { value: 'custom', label: 'Custom Range' },\n];\n\nexport const metricsNameForAPI = {\n adSales: 'ad_sales',\n adSpend: 'ad_spend',\n adConversion: 'ad_conversion_rate',\n impressions: 'impressions',\n adCos: 'acos',\n adRoas: 'roas',\n adClicks: 'clicks',\n adClickRate: 'ctr',\n dspImpressions: 'impressions',\n dspSpend: 'dsp_spend',\n dspTotalProductSales: 'total_product_sales',\n dspTotalRoas: 'total_roas',\n dspTotalDpvr: 'total_dpvr',\n dspTtlNewBrandPurchases: 'ttl_new_brand_purchases',\n dspProductSales: 'product_sales',\n dspRoas: 'roas',\n costPerClick: 'cost_per_click',\n salesPerClick: 'sales_per_click',\n revenue: 'revenue',\n traffic: 'traffic',\n unitsSold: 'units_sold',\n conversion: 'conversion',\n orderedRevenue: 'ordered_revenue',\n shippedCOGs: 'shipped_cogs',\n glanceViews: 'glance_views',\n conversionRate: 'conversion_rate',\n orderedUnits: 'ordered_units',\n shippedUnits: 'shipped_units',\n percentageNtbOrders: 'ntb_orders_percent',\n percentageNtbSales: 'ntb_sales_percent',\n ntbOrders: 'ntb_orders',\n ntbSales: 'ntb_sales',\n goals: 'goals',\n};\n\nexport const DSPFinanceMetrics = [\n {\n value: 'openInvoices',\n key: 'open_invoices',\n label: 'OPEN INVOICES',\n titleColor: '#333333',\n prefix: '',\n postfix: '',\n },\n {\n value: 'totalOverdue',\n key: 'total_overdue',\n label: 'TOTAL OVERDUE',\n titleColor: '#D60000',\n prefix: '$',\n postfix: '',\n },\n {\n value: 'expectedByEOM',\n key: 'expected_by_end_of_month',\n label: 'EXPECTED BY END OF MONTH(S)',\n titleColor: '#333333',\n prefix: '$',\n postfix: '',\n },\n {\n value: '%pastDue',\n key: 'percentage_past_due',\n label: '% PAST DUE',\n titleColor: '#333333',\n prefix: '',\n postfix: '%',\n },\n {\n value: 'avgDaysPastDue',\n key: 'avg_days_past_due',\n label: 'AVG. DAYS PAST DUE',\n titleColor: '#333333',\n prefix: '',\n postfix: ' days',\n },\n];\n\nexport const DSPBillingMetrics = [\n {\n value: 'amazonAdvertisingLLC',\n key: 'Amazon Advertising LLC',\n label: 'Amazon Advertising LLC',\n titleColor: '#333333',\n prefix: '$',\n postfix: '',\n },\n {\n value: 'amazonOnlineUKLimited',\n key: 'Amazon Online UK Limited',\n label: 'Amazon Online UK Limited',\n titleColor: '#333333',\n prefix: '£',\n postfix: '',\n },\n {\n value: 'amazonOnlineUKLimitedEur',\n key: 'Amazon Online UK Limited (EUR)',\n label: 'Amazon Online UK Limited (EUR)',\n titleColor: '#D60000',\n prefix: '€',\n postfix: '',\n },\n {\n value: 'amazonCommercialServicesPtyLtd',\n key: 'Amazon Commercial Services Pty Ltd.',\n label: 'Amazon Commercial Services Pty Ltd',\n titleColor: '#333333',\n prefix: 'A$',\n postfix: '',\n },\n];\n\nexport const StatusColorSet = {\n open: '#FDF3D7',\n draft: '#FDF377',\n overdue: '#ffebe6',\n paid: '#E3F2D2',\n late: '#E3F2D2',\n created: '#d7f8c2',\n pending: '#fdf3d7',\n refunded: '#eceef1',\n voided: '#ffe6f2',\n approved: '#E3F2D2',\n rejected: '#F7D7DB',\n void: '#ffe6f2',\n cancelled: '#f7d9dd',\n partially: '#fbe7e9',\n paused: '#E3F2D2',\n};\n\nexport const BillingVendorOptions = [\n { value: 'Amazon Advertising LLC', label: 'Amazon Advertising LLC' },\n { value: 'Amazon Online UK Limited', label: 'Amazon Online UK Limited' },\n {\n value: 'Amazon Online UK Limited (EUR)',\n label: 'Amazon Online UK Limited (EUR)',\n },\n {\n value: 'Amazon Commercial Services Pty Ltd.',\n label: 'Amazon Commercial Services Pty Ltd.',\n },\n];\n\nexport const BillingSortByOptions = [\n { value: '', label: 'Status' },\n { value: 'amount', label: 'Amount' },\n { value: 'bill_date', label: 'Bill Date' },\n { value: 'due_date', label: 'Due Date' },\n];\n\nexport const monthNames = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\n\nexport const roleURLs = [\n 'sales',\n 'sponsored',\n 'dsp',\n 'amcDashboard',\n 'finance',\n 'inventory',\n 'pendingApprovals',\n];\n\nexport const dashboardRole = [\n 'Ad Manager',\n 'Ad Team Manager',\n 'Ad Manager Admin',\n 'Ad Specialist',\n 'BGS Manager',\n 'BGS Admin',\n 'BGS',\n 'Finance',\n 'BGS',\n 'Spreetail',\n];\n\nexport const dashboardRolePaths = {\n 'Ad Manager': PATH_DASHBOARD,\n 'Ad Team Manager': PATH_DASHBOARD,\n 'Ad Manager Admin': PATH_DASHBOARD,\n 'Ad Specialist': PATH_DASHBOARD,\n 'BGS Manager': PATH_DASHBOARD,\n 'BGS Admin': PATH_DASHBOARD,\n BGS: PATH_DASHBOARD,\n Finance: PATH_FINANCE_DASHBOARD,\n Spreetail: PATH_DASHBOARD,\n};\n\nexport const financeAPIRoutes = {\n retainer: 'retainer',\n 'rev share': 'rev-share',\n upsell: 'up-sell',\n 'dsp service': 'dsp',\n dspBilling: 'dsp-billing',\n 'amc service': 'amc',\n pendingApprovals: 'pendingApprovals',\n};\n\nexport const financeDefaultTab = {\n retainer: 'retainer',\n 'rev-share': 'rev share',\n 'up-sell': 'upsell',\n dsp: 'dsp service',\n 'amc service': 'amc',\n 'dsp-billing': 'dspBilling',\n};\n\nexport const advertisingDefaultTab = {\n sales: 'sales',\n sponsored: 'sponsored',\n dsp: 'dsp',\n amcDashboard: 'amcDashboard',\n awsQuicksight: 'awsQuicksight',\n inventory: 'inventory',\n pendingApprovals: 'pendingApprovals',\n};\n\nexport const performanceTypeOptions = [\n {\n label: 'Seller Reporting',\n value: SELLERSMALL,\n },\n {\n label: 'Vendor Reporting',\n value: VENDORSMALL,\n },\n];\n\nexport const performanceTypeOptionsForInventory = [\n {\n label: 'Seller Reporting',\n value: SELLERSMALL,\n },\n {\n label: 'Vendor Reporting',\n value: VENDORSMALL,\n isDisabled: true,\n },\n];\n\nexport const allValueObj = [\n {\n value: 'all',\n label: 'All',\n },\n];\n\nexport const allBPObj = {\n label: 'All Brand Partners',\n value: 'all',\n};\n\nexport const salesContributionTabOptions = [\n { value: 'revenue', label: 'Total Sales' },\n { value: 'traffic', label: 'Traffic' },\n { value: 'conversion', label: 'Conversion' },\n { value: 'unitsSold', label: 'Units Sold' },\n { value: 'goals', label: 'Forecast' },\n];\n\nexport const salesGoalsTableHeader = [\n {\n label: 'Customer',\n key: 'customer_name',\n width: '16%',\n showTooltip: false,\n },\n {\n label: 'Sales',\n key: 'overall_sales_goals',\n width: '12%',\n showTooltip: false,\n },\n {\n label: 'PPC Ad Spend',\n key: 'ppc_ad_budget',\n width: '12%',\n showTooltip: false,\n },\n {\n label: 'DSP Ad Spend',\n key: 'dsp_ad_budget',\n width: '12%',\n showTooltip: false,\n },\n {\n label: 'Tacos',\n key: 'tacos',\n width: '12%',\n showTooltip: false,\n },\n {\n label: 'Rev share',\n key: 'rev_share',\n width: '12%',\n showTooltip: true,\n tooltipId: 'revShareAdditionalInfo',\n tooltipInfo:\n 'Revenue Sharing values are updated on
the 9th of each month for the previous
month',\n },\n {\n label: 'Traffic',\n key: 'traffic',\n width: '12%',\n showTooltip: false,\n },\n {\n label: 'Conversion',\n key: 'conversion',\n width: '12%',\n showTooltip: false,\n },\n];\n\nexport const vendorOrderedRevenueMetrics = [\n {\n label: 'Ordered Revenue',\n key: 'orderedRevenue',\n metricsClass: 'ad-sales-active',\n className: 'pr-1',\n },\n {\n label: 'Glance Views',\n key: 'glanceViews',\n metricsClass: 'ad-spend-active',\n className: 'pl-1 pr-md-1',\n },\n {\n label: 'Conversion Rate',\n key: 'conversionRate',\n metricsClass: 'ad-conversion-active',\n className: 'pl-md-1 pr-1',\n },\n {\n label: 'Ordered Units',\n key: 'orderedUnits',\n metricsClass: 'impression-active',\n className: 'pl-1',\n },\n];\n\nexport const vendorShippedCOGsMetrics = [\n {\n label: 'Shipped COGs',\n key: 'shippedCOGs',\n metricsClass: 'ad-sales-active',\n className: 'pr-1',\n },\n {\n label: 'Glance Views',\n key: 'glanceViews',\n metricsClass: 'ad-spend-active',\n className: 'pl-1 pr-md-1',\n },\n {\n label: 'Conversion Rate',\n key: 'conversionRate',\n metricsClass: 'ad-conversion-active',\n className: 'pl-md-1 pr-1',\n },\n {\n label: 'Shipped Units',\n key: 'shippedUnits',\n metricsClass: 'impression-active',\n className: 'pl-1',\n },\n];\n\nexport const vendorOrderedRevenueMetricsTabs = [\n {\n label: 'Ordered Revenue',\n value: 'orderedRevenue',\n },\n {\n label: 'Glance Views',\n value: 'glanceViews',\n },\n {\n label: 'Conversion Rate',\n value: 'conversionRate',\n },\n {\n label: 'Ordered Units',\n value: 'orderedUnits',\n },\n];\n\nexport const vendorShippedCOGsMetricsTabs = [\n {\n label: 'Shipped COGs',\n value: 'shippedCOGs',\n },\n {\n label: 'Glance Views',\n value: 'glanceViews',\n },\n {\n label: 'Conversion Rate',\n value: 'conversionRate',\n },\n {\n label: 'Shipped Units',\n value: 'shippedUnits',\n },\n];\n\nexport const contributionTableHeaderByTab = [\n { label: 'Customer', key: 'customer', width: '40%' },\n { label: 'This Period', key: ' this-period', width: '17%' },\n { label: 'Prev. Period', key: 'prev-period', width: '17%' },\n { label: 'Change', key: 'change', width: '16%' },\n { label: 'Contribution', key: 'contribution', width: '10%' },\n];\n\nexport const vendorContributionTableByKeyMetrics = {\n orderedRevenue: [\n { label: 'Customer', key: 'customer', width: '40%' },\n {\n label: 'Ordered Revenue',\n key: 'orderedRevenue',\n width: '15%',\n },\n {\n label: 'Glance Views',\n key: 'glanceViews',\n width: '15%',\n },\n {\n label: 'Conversion Rate',\n key: 'conversionRate',\n width: '15%',\n },\n {\n label: 'Ordered Units',\n key: 'orderedUnits',\n width: '15%',\n },\n ],\n shippedCOGs: [\n { label: 'Customer', key: 'customer', width: '40%' },\n {\n label: 'Shipped COGs',\n key: 'shippedCOGs',\n width: '15%',\n },\n {\n label: 'Glance Views',\n key: 'glanceViews',\n width: '15%',\n },\n {\n label: 'Conversion Rate',\n key: 'conversionRate',\n width: '15%',\n },\n {\n label: 'Shipped Units',\n key: 'shippedUnits',\n width: '15%',\n },\n ],\n};\n\nexport const sponsoredTabOptions = {\n adSales: 'Ad Sales',\n adSpend: 'Ad Spend',\n adConversion: 'Ad Conversion Rate',\n impressions: 'Impressions',\n adCos: 'ACOS',\n adRoas: 'ROAS',\n adClicks: 'Clicks',\n adClickRate: 'Click Through Rate',\n costPerClick: 'Cost Per Click',\n salesPerClick: 'Sales Per Click',\n percentageNtbOrders: '% Of Orders New-to-brand (NTB)',\n percentageNtbSales: '% Of Sales New-to-brand (NTB)',\n ntbOrders: 'New-to-brand (NTB) Orders',\n ntbSales: 'New-to-brand (NTB) Sales',\n};\n\nexport const sponsoredKeyContributionTableHeader = [\n {\n label: 'CUSTOMER',\n key: 'customer-name',\n width: '38%',\n },\n {\n label: 'AD SALES',\n key: 'ad-sales',\n width: '18%',\n },\n {\n label: 'AD SPEND',\n key: 'ad-spend',\n width: '18%',\n },\n {\n label: 'AD IMPRESSIONS',\n key: 'ad-impressions',\n width: '18%',\n },\n {\n label: 'ACOS',\n key: 'acos',\n width: '28%',\n },\n];\n\nexport const dspKeyContributionTableHeader = [\n {\n label: 'CUSTOMER',\n key: 'customer-name',\n width: '38%',\n },\n {\n label: 'Impressions',\n key: 'impressions',\n width: '18%',\n },\n {\n label: 'DSP SPEND',\n key: 'dsp-spend',\n width: '18%',\n },\n {\n label: 'Total Product Sales',\n key: 'total-product-sales',\n width: '18%',\n },\n {\n label: 'Total ROAS',\n key: 'roas',\n width: '28%',\n },\n];\n\nexport const dspPacingKeyTabOptions = [\n {\n id: 'overspending',\n label: 'Overspending',\n },\n {\n id: 'underspending',\n label: 'Underspending',\n },\n];\n\nexport const dspPacingTableHeader = [\n {\n label: 'CUSTOMER',\n key: 'customer-name',\n width: '40%',\n },\n {\n label: 'PLANNED',\n key: 'planned',\n width: '15%',\n },\n {\n label: 'ACTUAL',\n key: 'actual',\n width: '15%',\n },\n {\n label: 'REMAINING',\n key: 'remaining',\n width: '15%',\n },\n {\n label: 'CONTRIBUTION',\n key: 'contribution',\n width: '15%',\n },\n];\n\nexport const pendingApprovalOrderOptions = [\n { label: 'Most Recent to Oldest', value: '-updated_at' },\n { label: 'Oldest to Most Recent', value: 'updated_at' },\n];\n\nexport const agreementTypes = {\n recurring: 'Recurring Service Agreement',\n 'dsp only': 'DSP Service Agreement',\n 'recurring (90 day notice)': 'Recurring Service Agreement',\n 'one time': 'One Time Service Agreement',\n};\n\n// PDV-8910 removed Liz email. and didn't added Thad's signature\n// bcoz role of Thad is BGS Admin so BGS Admin role already have access to Pending Approval tab\n// and hard coded emails is not good practice\nexport const pendingApprovalAccessEmails = [];\n","import dayjs from 'dayjs';\n\nimport {\n CONTRIBUTION,\n CUSTOM,\n KEYMETRICS,\n POSITIVE,\n YEAROVERYEAR,\n} from './CommanVariableConstants';\n\nexport const dateOptions = [\n {\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n isDisabled: false,\n },\n {\n value: 'month',\n label: 'Current Month',\n sub: 'vs Previous month',\n isDisabled: false,\n },\n {\n value: '30days',\n label: 'Current 30 Days',\n sub: 'vs Previous 30 days',\n isDisabled: false,\n },\n {\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n];\n\nexport const sponoredMetricsList = [\n {\n value: 'adSales',\n label: 'Ad Sales',\n isDisabled: false,\n },\n {\n value: 'adSpend',\n label: 'Ad Spend',\n isDisabled: false,\n },\n {\n value: 'adConversion',\n label: 'Ad Conversion',\n isDisabled: false,\n },\n {\n value: 'impressions',\n label: 'Impressions',\n isDisabled: false,\n },\n\n {\n value: 'adCos',\n label: 'ACOS / ROAS',\n isDisabled: false,\n },\n {\n value: 'costPerClick',\n label: 'Cost Per Click / Sales Per Click',\n isDisabled: false,\n },\n {\n value: 'adClicks',\n label: 'Ad Clicks',\n isDisabled: false,\n },\n {\n value: 'adClickRate',\n label: 'Click Through Rate',\n isDisabled: false,\n },\n\n {\n value: 'percentageNtbOrders',\n label: '% Of Orders New-to-brand (NTB)',\n isDisabled: false,\n },\n {\n value: 'percentageNtbSales',\n label: '% Of Sales New-to-brand (NTB)',\n isDisabled: false,\n },\n {\n value: 'ntbOrders',\n label: 'New-to-brand (NTB) Orders',\n isDisabled: false,\n },\n {\n value: 'ntbSales',\n label: 'New-to-brand (NTB) Sales',\n isDisabled: false,\n },\n];\n\nexport const sponosredMetricsTooltipInfo = {\n acos: 'The percentage of your sales that you spend on advertising. This is calculated by dividing your spend by sales attributed to your ads.',\n roas: 'The revenue you receive from your advertising investment. This is calculated by dividing sales attributed to your ads by your spend.',\n costPerClick: 'This is the average amount you paid for each click on an ad.',\n salesPerClick: 'This is the sum of advertising sales / sum of clicks.',\n};\n\nexport const sponsoredMetricsDetails = {\n adSales: {\n id: 'BT-sponsored-adsalescard',\n className: 'pr-1 pl-0',\n label: 'Ad Sales',\n key: 'adSales',\n metricsKey: 'ad_sales',\n activeClassName: 'ad-sales-active',\n hasCurrency: true,\n hasPercentage: '',\n decimalDigits: 2,\n hasGoals: false,\n differenceType: null,\n tooltipInfo:\n 'Sales is the total value of products sold to shoppers attributed to your ads. Attribution depends on campaign type.',\n },\n adSpend: {\n id: 'BT-sponsored-adspendcard',\n className: 'pr-0 pr-md-1 pl-1',\n label: 'Ad Spend',\n key: 'adSpend',\n metricsKey: 'ad_spend',\n activeClassName: 'ad-spend-active',\n hasCurrency: true,\n hasPercentage: '',\n decimalDigits: 2,\n hasGoals: true,\n differenceType: 'spend',\n tooltipInfo: 'The total click charges for a product ad.',\n },\n\n adConversion: {\n id: 'BT-sponsored-adconversioncard',\n className: 'pr-1 pl-0 pl-md-1',\n label: 'Ad Conversion Rate',\n key: 'adConversion',\n metricsKey: 'ad_conversion_rate',\n activeClassName: 'ad-conversion-active',\n hasCurrency: false,\n hasPercentage: '%',\n decimalDigits: 2,\n hasGoals: false,\n differenceType: null,\n tooltipInfo:\n 'This is calculated by dividing your number of units to your number of sessions multiplied by 100.',\n },\n\n impressions: {\n id: 'BT-sponsored-adimpressionscard',\n className: 'pr-0 pl-1',\n label: 'Impressions',\n key: 'impressions',\n metricsKey: 'impressions',\n activeClassName: 'impression-active',\n hasCurrency: false,\n hasPercentage: '',\n decimalDigits: 0,\n hasGoals: false,\n differenceType: null,\n tooltipInfo: 'The number of times ads were displayed.',\n },\n\n adClicks: {\n id: 'BT-sponsored-clickcard',\n className: 'pr-1 pl-0 pl-md-1',\n label: 'Clicks',\n key: 'adClicks',\n metricsKey: 'clicks',\n activeClassName: 'ad-click-active',\n hasCurrency: false,\n hasPercentage: '',\n decimalDigits: 0,\n hasGoals: false,\n differenceType: null,\n tooltipInfo: 'The number of times your ads were clicked.',\n },\n\n adClickRate: {\n id: 'BT-sponsored-clickratecard',\n className: 'pr-0 pl-1',\n label: 'Click Through Rate',\n key: 'adClickRate',\n metricsKey: 'ctr',\n activeClassName: 'ad-clickrate-active',\n hasCurrency: false,\n hasPercentage: '%',\n decimalDigits: 2,\n hasGoals: false,\n differenceType: null,\n tooltipInfo:\n 'The ratio of how often shoppers click on your ad when displayed. This is calculated as clicks divided by impressions.',\n },\n\n percentageNtbOrders: {\n id: 'BT-sponsored-percentageNtbOrders',\n className: 'pr-0 pl-1',\n label: '% Of Orders New-to-brand (NTB)',\n key: 'percentageNtbOrders',\n metricsKey: 'ntb_orders_percent',\n activeClassName: 'ad-clickrate-active',\n hasCurrency: false,\n hasPercentage: '%',\n decimalDigits: 2,\n hasGoals: false,\n differenceType: null,\n tooltipInfo:\n 'The percentage of total orders which are new-to-brand orders. This metric is available for Sponsored Brands and Sponsored Display campaigns.',\n },\n\n percentageNtbSales: {\n id: 'BT-sponsored-percentageNtbSales',\n className: 'pr-0 pl-1',\n label: '% Of Sales New-to-brand (NTB)',\n key: 'percentageNtbSales',\n metricsKey: 'ntb_sales_percent',\n activeClassName: 'ad-clickrate-active',\n hasCurrency: false,\n hasPercentage: '%',\n decimalDigits: 2,\n hasGoals: false,\n differenceType: null,\n tooltipInfo:\n 'The percentage of total sales (in local currency) that are new-to-brand sales. This metric is available for Sponsored Brands and Sponsored Display campaigns.',\n },\n\n ntbOrders: {\n id: 'BT-sponsored-ntbOrders',\n className: 'pr-0 pl-1',\n label: 'New-to-brand (NTB) Orders',\n key: 'ntbOrders',\n metricsKey: 'ntb_orders',\n activeClassName: 'impression-active',\n hasCurrency: false,\n hasPercentage: '',\n decimalDigits: 0,\n hasGoals: false,\n differenceType: null,\n tooltipInfo:\n 'The number of first-time orders for products within the brand over a 1-year period. This metric is available for Sponsored Brands and Sponsored Display campaigns.',\n },\n\n ntbSales: {\n id: 'BT-sponsored-ntbSales',\n className: 'pr-0 pr-md-1 pl-1',\n label: 'New-to-brand (NTB) Sales',\n key: 'ntbSales',\n metricsKey: 'ntb_sales',\n activeClassName: 'ad-spend-active',\n hasCurrency: true,\n hasPercentage: '',\n decimalDigits: 2,\n hasGoals: false,\n differenceType: null,\n tooltipInfo:\n 'The total sales (in local currency) of new-to-brand orders. This metric is available for Sponsored Brands and Sponsored Display campaigns.',\n },\n};\n\nexport const sponsoredMetricsActiveClasses = [\n 'ad-sales-active',\n 'revenue-organic-active',\n 'ad-click-active',\n 'ad-cos-active',\n];\n\nexport const sponsoredMetricsClasses = {\n 0: 'pl-0 pr-0 pr-md-1',\n 1: 'pl-0 pl-md-1 pr-0 pr-lg-1',\n 2: 'pl-0 pl-lg-1 pr-0 pr-md-1',\n 3: 'pl-0 pl-md-1 pr-0',\n 4: 'pl-0 pr-0 pr-md-1',\n 5: 'pl-0 pl-md-1 pr-0 pr-lg-1',\n 6: 'pl-0 pl-lg-1 pr-0 pr-md-1',\n 7: 'pl-0 pl-md-1 pr-0',\n};\n\nexport const dateOptionsWithYear = [\n {\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n isDisabled: false,\n },\n {\n value: 'month',\n label: 'Current Month',\n sub: 'vs Previous month',\n isDisabled: false,\n },\n {\n value: '30days',\n label: 'Current 30 Days',\n sub: 'vs Previous 30 days',\n isDisabled: false,\n },\n {\n value: 'year',\n label: 'Year to Date',\n sub: 'vs Previous year',\n isDisabled: false,\n },\n {\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start and end dates',\n isDisabled: false,\n },\n];\n\nexport const dateOptionsWithYearOverYear = [\n {\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n isDisabled: false,\n },\n {\n value: 'month',\n label: 'Current Month',\n sub: 'vs Previous month',\n isDisabled: false,\n },\n {\n value: '30days',\n label: 'Current 30 Days',\n sub: 'vs Previous 30 days',\n isDisabled: false,\n },\n {\n value: 'year',\n label: 'Year to Date',\n sub: 'vs Previous year',\n isDisabled: false,\n },\n {\n value: YEAROVERYEAR,\n label: 'Year Over Year',\n sub: 'Select start and end dates',\n isDisabled: false,\n },\n {\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start and end dates',\n isDisabled: false,\n },\n];\n\nexport const vendorSalesMetricsTypeOptions = [\n { value: 'orderedRevenue', label: 'Ordered Revenue' },\n { value: 'shippedCOGs', label: 'Shipped COGs' },\n];\n\nexport const VendorMetricsNames = {\n orderedRevenue: 'Ordered Revenue',\n shippedCOGs: 'Shipped COGs',\n glanceViews: 'Glance Views',\n conversionRate: 'Conversion Rate',\n orderedUnits: 'Ordered Units',\n shippedUnits: 'Shipped Units',\n};\n\nexport const VendorMetricsColorSet = {\n orderedRevenue: '#0045B4',\n shippedCOGs: '#0045B4',\n glanceViews: '#8C54FF',\n conversionRate: '#30A8BD',\n orderedUnits: '#D6A307',\n shippedUnits: '#D6A307',\n};\n\nexport const bbDateOptions = [\n { value: 'week', label: 'Current 7 days' },\n { value: 'month', label: 'Current Month' },\n { value: '30days', label: 'Current 30 Days' },\n {\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n];\n\nexport const AdTypesOptions = [\n { value: 'all', label: 'All Ad Types', key: '', isDisabled: false },\n {\n value: 'product_campaign_report',\n label: 'Sponsored Product',\n key: 'SP',\n isDisabled: false,\n },\n {\n value: 'brand_campaign_report',\n label: 'Sponsored Brand + Video',\n key: 'SB',\n isDisabled: false,\n },\n {\n value: 'sponsored_display_campaign_report',\n label: 'Sponsored Display',\n key: 'SD',\n isDisabled: false,\n },\n {\n value: 'television_campaign_report',\n label: 'Sponsored Television',\n key: 'STV',\n isDisabled: false,\n },\n];\n\nexport const sponsoredAdTypeOptions = [\n { value: 'all', label: 'All Campaigns', isDisabled: false },\n {\n value: 'product_campaign_report',\n label: 'Product Campaigns',\n isDisabled: false,\n },\n {\n value: 'brand_campaign_report',\n label: 'Brand + Video Campaigns',\n isDisabled: false,\n },\n {\n value: 'sponsored_display_campaign_report',\n label: 'Display Campaigns',\n isDisabled: false,\n },\n {\n value: 'television_campaign_report',\n label: 'Sponsored Television',\n\n isDisabled: false,\n },\n];\n\nexport const sponsoredAsinTableConstant = [\n {\n label: 'Asin',\n key: 'asin',\n className: 'sticky-column header',\n width: '140px',\n isSortable: false,\n },\n {\n label: 'Product Name',\n key: 'product_name',\n isSortable: true,\n width: '240px',\n },\n { label: 'Ad Spend', key: 'ad_spend', isSortable: true },\n { label: 'Ad Sales', key: 'ad_sales', isSortable: true },\n { label: 'ACOS', key: 'acos', isSortable: true },\n { label: 'ROAS', key: 'roas', isSortable: true },\n { label: 'CTR', key: 'adClickRate', isSortable: true },\n { label: 'Ad Conversion Rate', key: 'ad_conversion', isSortable: true },\n { label: 'Cost per Click', key: 'cost_per_click', isSortable: true },\n { label: 'Sales per Click', key: 'sales_per_click', isSortable: true },\n { label: 'Clicks', key: 'clicks', isSortable: true },\n { label: 'Impressions', key: 'impressions', isSortable: true },\n { label: '% of orders NTB ', key: 'percentageNtbOrders', isSortable: true },\n { label: '% of sales NTB', key: 'percentageNtbSales', isSortable: true },\n { label: 'NTB orders', key: 'ntbOrders', isSortable: true },\n { label: 'NTB Sales', key: 'ntbSales', isSortable: true },\n];\n\nexport const dspAsinTableConstant = [\n {\n label: 'Asin',\n key: 'asin',\n // className: 'sticky-column header',\n width: '13%',\n isSortable: false,\n },\n {\n label: 'Product Name',\n key: 'product_name',\n width: '18%',\n isSortable: true,\n },\n\n {\n label: '',\n key: 'pLink',\n width: '5%',\n isSortable: false,\n },\n\n {\n label: 'Total Product Sales',\n key: 'total_product_sales',\n width: '16%',\n isSortable: true,\n },\n {\n label: 'TTL New Brand Purchases',\n key: 'ttl_new_brand_purchases',\n width: '16%',\n isSortable: true,\n },\n {\n label: 'Total Detail Page Views',\n key: 'total_detail_page_views',\n width: '16%',\n isSortable: true,\n },\n {\n label: 'Total Add to Cart',\n key: 'total_add_to_cart',\n width: '16%',\n isSortable: true,\n },\n];\n\nexport const dspMetricsConstants = {\n dspImpressions: {\n id: 'BT-dspad-impressioncard',\n dataCy: 'BT-dsp-impression-card',\n className: 'pr-1 pl-0',\n label: 'Impressions',\n key: 'dspImpressions',\n metricsKey: 'impressions',\n activeClassName: 'ad-sales-active',\n prefix: null,\n suffix: '',\n decimalDigits: 0,\n hasGoals: true,\n differenceType: null,\n tooltipInfo: '',\n },\n dspSpend: {\n id: 'BT-dspad-dspspendcard',\n dataCy: 'BT-dsp-dspSpend-card',\n className: 'pr-0 pr-md-1 pl-1',\n label: 'Dsp Spend',\n key: 'dspSpend',\n metricsKey: 'dsp_spend',\n activeClassName: 'ad-spend-active',\n prefix: 'currency',\n suffix: '',\n decimalDigits: 2,\n hasGoals: false,\n differenceType: 'spend',\n tooltipInfo: '',\n },\n dspTotalProductSales: {\n id: 'BT-dspad-totalproductcard',\n dataCy: 'BT-dsp-totalProduct-card',\n className: 'pr-1 pl-0 pl-md-1',\n label: 'Total Product Sales',\n key: 'dspTotalProductSales',\n metricsKey: 'total_product_sales',\n activeClassName: 'ad-conversion-active',\n prefix: 'currency',\n suffix: '',\n decimalDigits: 2,\n hasGoals: true,\n differenceType: null,\n tooltipInfo: '',\n },\n dspTotalRoas: {\n id: 'BT-dspad-totalroascard',\n dataCy: 'BT-dsp-totalRoas-card',\n className: 'pr-0 pl-1',\n label: 'Total ROAS',\n key: 'dspTotalRoas',\n metricsKey: 'total_roas',\n activeClassName: 'ad-sales-active',\n prefix: 'currency',\n suffix: '',\n decimalDigits: 2,\n hasGoals: true,\n differenceType: 'totalRoas',\n tooltipInfo: '',\n },\n dspTotalDpvr: {\n id: 'BT-dspad-totaldpvrcard',\n dataCy: 'BT-dsp-totalDPVR-card',\n className: 'pr-1 pl-0',\n label: 'Total DPVR',\n key: 'dspTotalDpvr',\n metricsKey: 'total_dpvr',\n activeClassName: 'ad-cos-active',\n prefix: null,\n suffix: '%',\n decimalDigits: 2,\n hasGoals: true,\n differenceType: 'dpvr',\n tooltipInfo: '',\n },\n dspTtlNewBrandPurchases: {\n id: 'BT-dspad-TTLBrandcard',\n dataCy: 'BT-dsp-TTLBrand-card',\n className: 'pr-0 pr-md-1 pl-1',\n label: 'TTL New Brand Purchases',\n key: 'dspTtlNewBrandPurchases',\n metricsKey: 'ttl_new_brand_purchases',\n activeClassName: 'ad-roas-active',\n prefix: null,\n suffix: '%',\n decimalDigits: 2,\n hasGoals: true,\n differenceType: null,\n tooltipInfo: '',\n },\n dspProductSales: {\n id: 'BT-dspad-productsalescard',\n dataCy: 'BT-dsp-productSales-card',\n className: 'pr-1 pl-0 pl-md-1',\n label: 'Product sales',\n key: 'dspProductSales',\n metricsKey: 'product_sales',\n activeClassName: 'ad-click-active',\n prefix: 'currency',\n suffix: '',\n decimalDigits: 2,\n hasGoals: true,\n differenceType: null,\n tooltipInfo: '',\n },\n dspRoas: {\n id: 'BT-dspad-roascard',\n dataCy: 'BT-dsp-roas-card',\n className: 'pr-0 pl-1',\n label: 'ROAS',\n key: 'dspRoas',\n metricsKey: 'roas',\n activeClassName: 'ad-clickrate-active',\n prefix: 'currency',\n suffix: '',\n decimalDigits: 2,\n hasGoals: false,\n differenceType: 'roas',\n tooltipInfo: '',\n },\n};\n\nexport const dspPacingMetricsConstants = {\n plannedSpend: {\n key: 'plannedSpend',\n label: 'Planned Spend to date',\n metricsKey: 'planned_spend_to_date_all',\n metricsPercentKey: 'planned_spend_to_date_percentage_all',\n type: 'currency',\n rangeClass: '',\n showPercentValue: true,\n },\n actualSpend: {\n key: 'actualSpend',\n label: 'Actual Spend to date',\n metricsKey: 'actual_spend_to_date_all',\n metricsPercentKey: 'actual_spend_to_date_percentage_all',\n type: 'currency',\n rangeClass: '',\n showPercentValue: true,\n },\n changeSpend: {\n key: 'changeSpend',\n label: 'Change to date',\n metricsKey: 'change_to_date_all',\n metricsPercentKey: 'change_to_date_percentage_all',\n type: 'currency',\n rangeClass: 'red-range',\n showPercentValue: true,\n },\n remainingBudget: {\n key: 'remainingBudget',\n label: 'remaining_budget',\n metricsKey: 'remaining_budget_all',\n metricsPercentKey: null,\n type: 'currency',\n rangeClass: '',\n showPercentValue: false,\n },\n};\n\nexport const noGraphDataMessage =\n 'We are not pulling data for this dashboard. If we should, please file a help desk ticket and \\n we will resolve this issue as soon as possible.';\n\nexport const keyContributionConstant = {\n noManagerSelected: [\n {\n id: POSITIVE,\n label: 'Positive',\n },\n {\n id: 'negative',\n label: 'Negative',\n },\n ],\n\n managerSelected: [\n {\n id: CONTRIBUTION,\n label: 'Contribution',\n },\n {\n id: KEYMETRICS,\n label: 'Key Metrics',\n },\n ],\n};\n\nexport const keyContributionHeaders = {\n positive: 'Key Contributors',\n negative: 'Key Contributors',\n contribution: 'Contribution',\n keyMetrics: 'Key Metrics',\n};\n\nexport const metricsCurrency = {\n // sales metrics\n revenue: { type: 'currency' },\n traffic: { type: 'nocurrency' },\n conversion: { type: 'percentage' },\n unitsSold: { type: 'nocurrency' },\n tacos: { type: 'percentage' },\n adSpendTotal: { type: 'currency' },\n orderedRevenue: { type: 'currency' },\n shippedCOGs: { type: 'currency' },\n glanceViews: { type: 'nocurrency' },\n conversionRate: { type: 'percentage' },\n orderedUnits: { type: 'nocurrency' },\n shippedUnits: { type: 'nocurrency' },\n // sponsored metrics\n adSales: { type: 'currency' },\n adSpend: { type: 'currency' },\n adConversion: { type: 'percentage' },\n impressions: { type: 'nocurrency' },\n adCos: { type: 'percentage' },\n adRoas: { type: 'currency' },\n adClicks: { type: 'nocurrency' },\n adClickRate: { type: 'percentage' },\n costPerClick: { type: 'currency' },\n salesPerClick: { type: 'currency' },\n adOrders: { type: 'nocurrency' },\n ntbOrders: { type: 'nocurrency' },\n ntbSales: { type: 'currency' },\n percentageNtbOrders: { type: 'percentage' },\n percentageNtbSales: { type: 'percentage' },\n // dsp metrics\n dspImpressions: { type: 'nocurrency' },\n dspSpend: { type: 'currency' },\n dspTotalProductSales: { type: 'currency' },\n dspTotalRoas: { type: 'currency' },\n dspTotalDpvr: { type: 'percentage' },\n dspTtlNewBrandPurchases: { type: 'percentage' },\n dspProductSales: { type: 'currency' },\n dspRoas: { type: 'currency' },\n};\n\nexport const toogleMetricsData = [\n {\n id: 1,\n name: 'acos',\n label: 'ACOS',\n },\n {\n id: 2,\n name: 'roas',\n label: 'ROAS',\n },\n];\n\nexport const CPCandSPCToggleMetrics = [\n {\n id: 'costPerClick',\n name: 'costPerClick',\n label: 'COST PER CLICK (CPC)',\n },\n {\n id: 'salesPerClick',\n name: 'salesPerClick',\n label: 'SALES PER CLICK (SPC)',\n },\n];\n\nexport const asinTabOptions = [\n { value: 'parent_asin', label: 'Parent ASIN' },\n { value: 'child_asin', label: 'Child ASIN' },\n];\n\nexport const salesASINPerformanceSymbol = {\n revenue: 'currency',\n sessions: 'number',\n conversion: 'percent',\n units_sold: 'number',\n};\nconst currentDate = new Date();\ncurrentDate.setDate(currentDate.getDate() - 3);\n\nexport const asinPeriod = {\n week: { label: 'Current 7 days', sub: 'vs Previous 7 days' },\n month: {\n label: dayjs(currentDate).format('MMMM'),\n sub: dayjs(currentDate).subtract(1, 'month').format('MMMM'),\n },\n '30days': {\n label: 'Current 30 Days',\n sub: 'vs Previous 30 days',\n },\n year: {\n label: `${dayjs(currentDate).format('YYYY')}`,\n sub: `${dayjs(currentDate).subtract(1, 'year').format('YYYY')}`,\n },\n};\n\nexport const salesMetricsResponseKey = {\n revenueTotal: 'revenue',\n revenueOrganic: 'revenue_organic',\n revenuePpc: 'revenue_ppc',\n revenueDsp: 'revenue_dsp',\n unitsSold: 'units_sold',\n traffic: 'traffic',\n conversion: 'conversion',\n adSpend: 'adSpend',\n adSpendTotal: 'ad_spend_total',\n adSpendPpc: 'sponsored_ad_spend',\n adSpendDsp: 'dsp_spends',\n tacos: 'tacos',\n};\n\nexport const salesGraphColorSet = {\n revenueTotal: '#0045b4',\n revenueOrganic: '#74b035',\n revenuePpc: '#C84EC6',\n revenueDsp: '#E05D37',\n unitsSold: '#8C54FF',\n traffic: '#30A8BD',\n conversion: '#D6A307',\n adSpend: '#89A43C',\n adSpendTotal: '#33beffd6',\n adSpendPpc: '#a47b40d6',\n adSpendDsp: '#52d045d6',\n tacos: '#00be8e',\n};\n\nexport const salesGraphTooltipNames = {\n revenueTotal: 'Revenue Total',\n revenueOrganic: 'Revenue Organic ',\n revenuePpc: 'Revenue PPC',\n revenueDsp: 'Revenue DSP',\n unitsSold: 'Units Sold',\n traffic: 'Traffic',\n conversion: 'Conversion',\n totalSales: 'Total Sales',\n adSpend: 'Ad Spend',\n adSpendTotal: 'Ad Spend Total',\n adSpendPpc: 'Ad Spend PPC',\n adSpendDsp: 'Ad Spend DSP',\n tacos: 'Tacos',\n};\n\nexport const parentASINTableheader = [\n {\n key: 'parent_asin',\n label: 'Parent ASIN',\n width: '12.5%',\n },\n\n {\n key: 'current_revenue',\n label: 'Sales',\n width: '12.5%',\n },\n {\n key: 'current_traffic',\n label: 'TRAFFIC',\n width: '12.5%',\n },\n {\n key: 'current_units_sold',\n label: 'UNITS',\n width: '12.5%',\n },\n\n {\n key: 'current_conversion',\n label: `Conversion`,\n width: '12.5%',\n },\n\n {\n key: 'current_buy_box_percentage',\n label: 'Buy Box',\n width: '12.5%',\n },\n];\n\nexport const childASINTableheader = [\n // removed child SKU column - refere ticket- 7962\n {\n key: 'child_asin',\n label: 'Child ASIN',\n width: '10%',\n },\n {\n key: 'product_name',\n label: 'Product Name',\n width: '20%',\n },\n\n {\n key: 'current_revenue',\n label: 'Sales',\n width: '14%',\n },\n {\n key: 'current_traffic',\n label: 'TRAFFIC',\n width: '14%',\n },\n {\n key: 'current_units_sold',\n label: 'UNITS',\n width: '14%',\n },\n\n {\n key: 'current_conversion',\n label: `Conversion`,\n width: '14%',\n },\n {\n key: 'current_buy_box_percentage',\n label: 'Buy Box',\n width: '14%',\n },\n];\n\nexport const vendorOrderRevenueASINTableheader = [\n {\n key: 'ordered_revenue_asin',\n label: 'ASIN',\n width: '10%',\n },\n\n {\n key: 'product_name',\n label: 'Product Name',\n width: '20%',\n },\n {\n key: 'current_ordered_revenue',\n label: 'ORDERED REVENUE',\n width: '15%',\n },\n {\n key: 'current_glance_view',\n label: 'GLANCE VIEWS',\n width: '15%',\n },\n\n {\n key: 'current_ordered_unit',\n label: `ORDERED UNITS`,\n width: '15%',\n },\n\n {\n key: 'current_conversion',\n label: 'CONVERSION RATE',\n width: '15%',\n },\n];\n\nexport const vendorShippedCogsASINTableheader = [\n {\n key: 'shipped_cogs_asin',\n label: 'ASIN',\n width: '10%',\n },\n\n {\n key: 'product_name',\n label: 'Product Name',\n width: '20%',\n },\n {\n key: 'current_shipped_cogs',\n label: 'SHIPPED COGS',\n width: '15%',\n },\n {\n key: 'current_glance_view',\n label: 'GLANCE VIEWS',\n width: '15%',\n },\n\n {\n key: 'current_shipped_unit',\n label: `SHIPPED UNITS`,\n width: '15%',\n },\n\n {\n key: 'current_conversion',\n label: 'CONVERSION RATE',\n width: '15%',\n },\n];\n\nexport const showMetricsTooltipForSponsored = [\n 'ad_sales',\n 'ad_spend',\n 'ad_conversion_rate',\n 'impressions',\n 'acos',\n 'cost_per_click',\n 'clicks',\n 'ctr',\n 'percentage_ntb_orders',\n 'percentage_ntb_sales',\n 'ntb_orders',\n 'ntb_sales',\n];\n\nexport const showMetricsTooltipForDSP = [\n 'impressions',\n 'dsp_spend',\n 'total_product_sales',\n 'total_roas',\n 'total_dpvr',\n 'ttl_new_brand_purchases',\n 'product_sales',\n 'roas',\n];\n\nexport const showMetricsTooltipForSales = [\n 'revenue',\n 'revenue_ppc',\n 'revenue_dsp',\n 'revenue_organic',\n 'units_sold',\n 'traffic',\n 'conversion',\n 'sponsored_ad_spend',\n 'ad_spend_total',\n 'dsp_spends',\n 'tacos',\n];\n\nexport const revenuSubTypeKeys = {\n revenueTotal: 'revenue',\n revenuePpc: 'revenue_ppc',\n revenueDsp: 'revenue_dsp',\n revenueOrganic: 'revenue_organic',\n adSpendTotal: 'ad_spend_total',\n dspSpend: 'dsp_spends',\n sponsoredAdSpend: 'sponsored_ad_spend',\n adSpendPpc: 'sponsored_ad_spend',\n};\n\nexport const showMetricsTooltipForVendorSales = [\n 'ordered_revenue',\n 'glance_views',\n 'conversion_rate',\n 'revenue_organic',\n 'ordered_units',\n 'shipped_cogs',\n 'shipped_units',\n];\n\nexport const performanceInsightMessage = {\n sales: 'Sales data displayed has a two day lag.',\n vendorSales: 'Vendor sales data displayed has three day lag.',\n sponsored: 'Sponsored advertising data displayed has a two day lag.',\n dsp: 'DSP advertising data displayed has a one day lag.',\n};\n\nexport const metricsVendorSalesKey = {\n orderedRevenue: 'ordered_revenue',\n glanceViews: 'glance_views',\n conversionRate: 'conversion_rate',\n orderedUnits: 'ordered_units',\n shippedUnits: 'shipped_units',\n shippedCOGs: 'shipped_cogs',\n};\n\nexport const childBrandDataAvailableMessage = {\n sales: 'sales data available.',\n sponsored: 'sponsored advertising data available.',\n dsp: 'DSP advertising data available.',\n};\n\nexport const rivianaAndChildBrandIds = [\n 'CMS0uTu',\n 'CMQ44sG',\n 'CMm4jj8',\n 'CMrQttI',\n 'CMQJEW3',\n 'CMasKLQ',\n 'CMtCWXm',\n 'CMPNrYy',\n];\n\n// daily weekly monthly toggle options\nexport const dailyWeeklyMonthlyOptions = [\n {\n label: 'Daily',\n value: 'daily',\n id: 'daysCheck',\n dspId: 'dspDaysCheck',\n spId: 'spDaysCheck',\n },\n {\n label: 'Weekly',\n value: 'weekly',\n id: 'weeklyCheck',\n dspId: 'dspWeeklyCheck',\n spId: 'spWeeklyCheck',\n },\n {\n label: 'Monthly',\n value: 'monthly',\n id: 'monthlyCheck',\n dspId: 'dspMonthlyCheck',\n spId: 'sponthlyCheck',\n },\n];\n\nexport const campaignSortingOptions = [\n {\n label: 'All Statuses',\n value: 'all',\n },\n {\n label: 'Enabled',\n value: 'enabled',\n },\n {\n label: 'Paused',\n value: 'paused',\n },\n {\n label: 'Archived',\n value: 'archived',\n },\n];\n\nexport const spCampaignAsinToggleOptions = [\n {\n id: 'spCampaignCheck',\n value: 'campaign',\n label: 'Campaign',\n },\n { id: 'spAsinCheck', value: 'asin', label: 'ASIN' },\n];\n\nexport const dspCampaignAsinToggleOptions = [\n {\n id: 'dspCampaignCheck',\n value: 'campaign',\n label: 'Campaign',\n dataCy: 'BT-dsp-campaign-toggle',\n },\n {\n id: 'dspAsinCheck',\n value: 'asin',\n label: 'ASIN',\n dataCy: 'BT-dsp-asin-toggle',\n },\n];\n\nexport const asinStatiMessages = {\n brand_campaign_report:\n 'SB+Video and STV Report by ASIN is currently unavailable from Amazon Ads API.',\n television_campaign_report:\n 'STV is currently available for US marketplace only.',\n campaignDataAvailabilityMessage: 'No Campaign Data Found.',\n asinDataAvailabilityMessage: 'No ASIN Performance Data Found.',\n asinHistoricalDataMessage:\n 'Available historical data is up to 4 months only.',\n asinTooltipMessage:\n 'Historical data displayed will not include more than 4 months of data.',\n asinOneJuneMessage: `Available data is from June 1, 2023 onwards.`, // PDV-8401 - One October 2023 logic\n};\n\nexport const sponsoredTooltipDataHTML = ``;\n","export const InvoiceApprovalHeader = {\n standard: 'Proposed DSP Invoice Adjustment',\n 'permanent additional': 'Proposed DSP Invoice Adjustment',\n 'one time': 'Proposed One-Time DSP Invoice Adjustment',\n pause: 'Proposed Pause of DSP Invoice',\n};\n\nexport const InvoiceTypeNames = {\n standard: 'Standard',\n 'permanent additional': 'Permanent Additional',\n 'one time': 'One-Time',\n pause: 'Pause',\n};\n\nexport const InvoiceCurrentMonthHeader = {\n standard: 'Current monthly DSP invoice amount',\n 'permanent additional': 'Current monthly DSP invoice amount',\n 'one time': 'One-time DSP Invoice',\n pause: 'Current monthly DSP invoice amount',\n};\n\nexport const InvoiceNewMonthHeader = {\n standard: 'New monthly DSP invoice',\n 'permanent additional': 'New monthly DSP invoice',\n 'one time': 'One-time DSP Invoice',\n pause: 'New DSP invoice for ',\n};\n\nexport const InvoiceInfo = {\n standard: {\n mainHeading: 'This will be your new, ongoing invoice amount. ',\n boldHeading:\n 'The first bill for this amount will be due APPLICABLE_MONTH APPLICABLE_DATE.',\n },\n 'permanent additional': {\n mainHeading: 'This will be your new, ongoing invoice amount. ',\n boldHeading:\n 'The first bill for this amount will be due APPLICABLE_MONTH APPLICABLE_DATE.',\n },\n 'one time': {\n mainHeading:\n 'This will be a one-off invoice, providing additional budget for ',\n boldHeading: 'APPLICABLE_MONTH only. ',\n mainHeading2:\n 'This invoice will be sent as soon as you approve the proposal.',\n },\n pause: {\n mainHeading: 'The changes will apply to ',\n boldHeading: 'APPLICABLE_MONTH only',\n },\n};\n\nexport const invoiceApprovalFlag = [\n { value: 'yes', label: 'I approve the new DSP invoice amount' },\n { value: 'no', label: 'I want to reject the proposal' },\n];\n\nexport const TotalInvoiceHeader = {\n standard: 'Total',\n 'permanent additional': 'Total',\n 'one time': 'One-time total',\n pause: 'Total invoice',\n};\n\nexport const dspContactInputFields = [\n {\n key: 'first_name',\n label: 'First name',\n type: 'text',\n property: 'col-6 pr-2',\n section: 'contact',\n },\n {\n key: 'last_name',\n label: 'Last name',\n type: 'text',\n property: 'col-6 pl-2',\n section: 'contact',\n },\n\n {\n key: 'email',\n label: 'Email',\n type: 'email',\n property: 'col-6 pr-2',\n section: 'contact',\n },\n {\n key: 'phone_number',\n label: 'Phone number',\n type: 'number',\n property: 'col-6 pl-2',\n section: 'contact',\n removeForDSP: true,\n },\n];\n\nexport const dspSignOffRoles = {\n grpRole: {\n BGS: true,\n 'BGS Manager': true,\n 'DSP Ad Manager': true,\n },\n userRole: {\n 'BGS Admin': true,\n 'Ad Manager Admin': true,\n },\n};\n\nexport const invoiceStatusIcons = {\n paid: {\n icon: 'fa-regular fa-check',\n iconColor: '#016907',\n },\n late: {\n icon: 'fa-regular fa-alarm-exclamation',\n iconColor: '#016907',\n },\n voided: {\n icon: 'fa-regular fa-circle-exclamation',\n iconColor: '#b20a3d',\n },\n void: {\n icon: 'fa-regular fa-circle-exclamation',\n iconColor: '#b20a3d',\n },\n overdue: {\n icon: 'fa-regular fa-clock-rotate-left',\n iconColor: '#ff5933',\n },\n partially: {\n icon: 'fa-regular fa-calendar-xmark',\n iconColor: '#d63649',\n },\n refunded: {\n icon: 'fa-regular fa-trash-can-undo',\n iconColor: '#000000',\n },\n created: {\n icon: 'fa-regular fa-file-plus',\n iconColor: '#016907',\n },\n cancelled: {\n icon: 'fa-regular fa-xmark',\n iconColor: '#d63649',\n },\n pending: {\n icon: 'fa-regular fa-hourglass-start',\n iconColor: '#d2a225',\n },\n open: {\n icon: 'fa-regular fa-file',\n iconColor: '#000000f7',\n },\n draft: {\n icon: 'fa-regular fa-file',\n iconColor: '#33ac2e',\n },\n approved: {\n icon: 'fa-regular fa-thumbs-up',\n iconColor: '#33ac2e',\n },\n rejected: {\n icon: 'fa-regular fa-xmark',\n iconColor: '#d63649',\n },\n paused: {\n icon: 'fa-regular fa-circle-pause',\n iconColor: '#8798ad',\n },\n};\n\nexport const getInvoiceStatusKey = (invoiceStatus) => {\n let statusKey = '';\n if (invoiceStatus.toLowerCase().includes('paid partially'))\n statusKey = 'partially';\n else if (invoiceStatus.toLowerCase().includes('refunded'))\n statusKey = 'refunded';\n else if (invoiceStatus.includes('late')) statusKey = 'late';\n else statusKey = invoiceStatus.split(' ')[0].toLowerCase();\n\n return statusKey;\n};\n\nexport const invoiceBreakdownOptions = [\n {\n key: 'invoice_number_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Invoice Number',\n },\n {\n key: 'next_invoiced_id',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black text-bold',\n },\n {\n key: 'customer_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Customer',\n },\n {\n key: 'customer',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black text-bold out-door',\n },\n {\n key: 'status_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black',\n label: 'Status',\n },\n {\n key: 'invoice_status',\n property: 'col-6 mb-2 text-right',\n subProperty: 'capsule-status uppercase',\n },\n {\n key: 'payment_term_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black',\n label: 'Payment Terms',\n },\n {\n key: 'payment_terms',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black capitalize',\n },\n {\n key: 'generated_date_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black',\n label: 'Date',\n },\n {\n key: 'generated_at',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black',\n },\n {\n key: 'due_date_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black',\n label: 'Due Date',\n },\n {\n key: 'due_date',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black',\n },\n];\n\nexport const paymentsMethod = {\n other: 'Other',\n credit_card: 'Credit Card',\n cash: 'Cash',\n check: 'Cheque',\n direct_debit: 'Direct Debit',\n eft: 'ETF',\n paypal: 'PayPal',\n wire_transfer: 'Wire Transfer',\n};\n","export const timeFrameOptions = [\n { value: 'week', label: 'Current 7 days' },\n { value: '30days', label: 'Current 30 Days' },\n { value: 'month', label: 'Month to Date' },\n { value: 'year', label: 'Year to Date' },\n {\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n];\n\nexport const standardReportMessages = {\n finance: 'Only authorized users can access this report.',\n finance_custom:\n 'Only authorized users can download this report. Select the entire month range to download the past monthly report. Past monthly reports are available from April 2023 onwards.',\n account_audit: 'This report is available for Seller accounts only.',\n 'Weekly Return and Review Report': 'This report gets updated every Tuesday.',\n sp_advertising:\n 'Select the entire month date range to download
past monthly report within recent 4 months',\n reconciliation:\n 'This report is available every 12th of the month for previous month’s data. Select the entire month date range to download past monthly report.',\n 'Monthly Partner Opportunities Report':\n 'Select the entire month date range to download updated reports based on the month selected.',\n 'Sponsored Television Report':\n 'This report is available from September 2023 onwards.',\n};\n\nexport const cashflowStandardReportsKeys = [\n 'retainer_cashflow',\n 'revshare_cashflow',\n 'dsp_cashflow',\n 'finance',\n];\n\nexport const tooltipMsg = `We are not currently pulling data
for this report based on the selected filters`;\n\nexport const bpAccountType = {\n Hybrid: [\n { label: 'Seller', value: 'Seller' },\n { label: 'Vendor', value: 'Vendor' },\n { label: 'Hybrid', value: 'Hybrid' },\n ],\n Seller: [{ label: 'Seller', value: 'Seller' }],\n Vendor: [{ label: 'Vendor', value: 'Vendor' }],\n};\n\nexport const commanFieldConstant = [\n {\n id: 'marketplace',\n label: 'marketplace filter',\n placeholder: 'Marketplace',\n value: 'selectedMarketplace',\n },\n {\n id: 'accountType',\n label: 'account type',\n placeholder: 'Account Type',\n value: 'accType',\n },\n];\n\n// customized report table head constants\nexport const customizedReportTableHeadConstants = [\n { label: 'BP Name', width: '15%' },\n { label: 'Report Title', width: '15%' },\n { label: 'Description', width: '15%' },\n { label: 'Creation Date', width: '20%' },\n { label: 'Status', width: '14%' },\n { label: 'Action', width: '22%' },\n];\n\nexport const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nexport const sellerDetails = {\n isSellerOpen: true,\n graphTitle: '',\n selectedMetrics: {},\n selectedMetricsData: {},\n graphFrequency: '',\n showPreviousDataPoint: false,\n showDataTable: false,\n graphDataTableView: 'detailedView',\n showMetricsGraph: true,\n\n metricMessage: '',\n salesRevenueTotal: false,\n salesRevenuePpc: false,\n salesRevenueDsp: false,\n salesTacos: false,\n salesUnitSold: false,\n salesTraffic: false,\n salesConversion: false,\n salesAdSpendTotal: false,\n salesAdSpendPpc: false,\n salesAdSpendDsp: false,\n\n adPerformance: 'sponsored',\n sponsoredType: { value: 'all', label: 'All Ad Types', key: '' },\n\n // if sponsored type is 'all'\n adSales: false,\n adSpend: false,\n adConversionRate: false,\n adConversionRateSp: false,\n adImpressions: false,\n adAcos: false,\n adRoas: false,\n adCostPerClick: false,\n adClicks: false,\n adClickThroughRate: false,\n\n // if sponsored type is 'Sponsored Products'\n adSalesSP: false,\n adSpendSP: false,\n adConversionRateSP: false,\n adConversionRateSpSP: false,\n adImpressionsSP: false,\n adAcosSP: false,\n adRoasSP: false,\n adCostPerClickSP: false,\n adClicksSP: false,\n adClickThroughRateSP: false,\n\n // if sponsored type is 'Sponsored Brands'\n adSalesSB: false,\n adSpendSB: false,\n adConversionRateSB: false,\n adConversionRateSpSB: false,\n adImpressionsSB: false,\n adAcosSB: false,\n adRoasSB: false,\n adCostPerClickSB: false,\n adClicksSB: false,\n adClickThroughRateSB: false,\n\n // if sponsored type is 'Sponsored Brands Video'\n adSalesSBV: false,\n adSpendSBV: false,\n adConversionRateSBV: false,\n adConversionRateSpSBV: false,\n adImpressionsSBV: false,\n adAcosSBV: false,\n adRoasSBV: false,\n adCostPerClickSBV: false,\n adClicksSBV: false,\n adClickThroughRateSBV: false,\n\n // if sponsored type is 'Sponsored Display'\n adSalesSD: false,\n adSpendSD: false,\n adConversionRateSD: false,\n adConversionRateSpSD: false,\n adImpressionsSD: false,\n adAcosSD: false,\n adRoasSD: false,\n adCostPerClickSD: false,\n adClicksSD: false,\n adClickThroughRateSD: false,\n\n dspImpressions: false,\n dspSpend: false,\n dspTotalProductSales: false,\n dspTotalRoas: false,\n dspTotalDpvr: false,\n dspTotalNewBrandPurchases: false,\n dspProductSales: false,\n dspRoas: false,\n\n isParentTopAsins: false,\n isParentBottomAsins: false,\n isParentAllAsins: false,\n parentTopAsins: 0,\n parentBottomAsins: 0,\n parentAsinMessage: '',\n\n isChildTopAsins: false,\n isChildBottomAsins: false,\n isChildAllAsins: false,\n childTopAsins: 0,\n childBottomAsins: 0,\n childAsinMessage: '',\n showChildProductName: false,\n\n buyBoxGraph: false,\n showBuyBoxGraphTable: false,\n bbpTableView: 'detailedView',\n showBuyBoxGraph: true,\n buyBoxGraphData: {},\n inventoryScore: false,\n positiveFeedback: false,\n orderIssue: false,\n sellerHeathMessge: '',\n\n strandedInventory: false,\n overstockInventory: false,\n understockInventory: false,\n inventoryManagementMessage: '',\n showInventoryProductName: false,\n\n footerMessage: '',\n};\n\nexport const vendorDetails = {\n isVendorOpen: true,\n graphTitle: '',\n selectedMetrics: {},\n selectedMetricsData: {},\n graphFrequency: '',\n showPreviousDataPoint: false,\n showDataTable: false,\n graphDataTableView: 'detailedView',\n showMetricsGraph: true,\n\n saleType: 'shippedCogs',\n salesShippedCogs: false,\n salesShippedGlanceViews: false,\n salesShippedConversionRate: false,\n salesShippedUnits: false,\n metricMessage: '',\n\n salesOrderedRevenue: false,\n salesOrderedGlanceViews: false,\n salesOrderedConversionRate: false,\n salesOrderedUnits: false,\n\n adPerformance: 'sponsored',\n sponsoredType: { value: 'all', label: 'All Ad Types', key: '' },\n // if sponsored type is 'all'\n adSales: false,\n adSpend: false,\n adConversionRate: false,\n adConversionRateSp: false,\n adImpressions: false,\n adAcos: false,\n adRoas: false,\n adCostPerClick: false,\n adClicks: false,\n adClickThroughRate: false,\n\n // if sponsored type is 'Sponsored Products'\n adSalesSP: false,\n adSpendSP: false,\n adConversionRateSP: false,\n adConversionRateSpSP: false,\n adImpressionsSP: false,\n adAcosSP: false,\n adRoasSP: false,\n adCostPerClickSP: false,\n adClicksSP: false,\n adClickThroughRateSP: false,\n\n // if sponsored type is 'Sponsored Brands'\n adSalesSB: false,\n adSpendSB: false,\n adConversionRateSB: false,\n adConversionRateSpSB: false,\n adImpressionsSB: false,\n adAcosSB: false,\n adRoasSB: false,\n adCostPerClickSB: false,\n adClicksSB: false,\n adClickThroughRateSB: false,\n\n // if sponsored type is 'Sponsored Brands Video'\n adSalesSBV: false,\n adSpendSBV: false,\n adConversionRateSBV: false,\n adConversionRateSpSBV: false,\n adImpressionsSBV: false,\n adAcosSBV: false,\n adRoasSBV: false,\n adCostPerClickSBV: false,\n adClicksSBV: false,\n adClickThroughRateSBV: false,\n\n // if sponsored type is 'Sponsored Display'\n adSalesSD: false,\n adSpendSD: false,\n adConversionRateSD: false,\n adConversionRateSpSD: false,\n adImpressionsSD: false,\n adAcosSD: false,\n adRoasSD: false,\n adCostPerClickSD: false,\n adClicksSD: false,\n adClickThroughRateSD: false,\n\n dspImpressions: false,\n dspSpend: false,\n dspTotalProductSales: false,\n dspTotalRoas: false,\n dspTotalDpvr: false,\n dspTotalNewBrandPurchases: false,\n dspProductSales: false,\n dspRoas: false,\n\n strandedInventory: false,\n overstockInventory: false,\n understockInventory: false,\n inventoryManagementMessage: '',\n showInventoryProductName: false,\n\n footerMessage: '',\n};\n\nexport const sellerDetailsEditor = {\n graphTitle: '',\n metricMessage: '',\n parentAsinMessage: '',\n childAsinMessage: '',\n sellerHeathMessge: '',\n inventoryManagementMessage: '',\n};\n\nexport const vendorDetailsEditor = {\n graphTitle: '',\n metricMessage: '',\n inventoryManagementMessage: '',\n};\n\nexport const groupByFields = [\n {\n id: 'daysCheck',\n name: 'daily',\n label: 'Daily',\n },\n {\n id: 'weeklyCheck',\n name: 'weekly',\n label: 'Weekly',\n },\n {\n id: 'monthlyCheck',\n name: 'monthly',\n label: 'Monthly',\n },\n];\n\nexport const vendorGroupByFields = [\n {\n id: 'vendorDaily',\n name: 'daily',\n label: 'Daily',\n },\n {\n id: 'vendorweekly',\n name: 'weekly',\n label: 'Weekly',\n },\n {\n id: 'vendormonthly',\n name: 'monthly',\n label: 'Monthly',\n },\n];\n\nexport const sellerSalesMetricsFields = [\n {\n id: 'unitSold',\n fieldName: 'sellerDetails',\n keyName: 'salesUnitSold',\n label: 'Unit Sold',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: false,\n },\n {\n id: 'traffic',\n fieldName: 'sellerDetails',\n keyName: 'salesTraffic',\n label: 'Traffic',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: false,\n },\n {\n id: 'conversion',\n fieldName: 'sellerDetails',\n keyName: 'salesConversion',\n label: 'Conversion',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: false,\n },\n {\n id: 'tacos',\n fieldName: 'sellerDetails',\n keyName: 'salesTacos',\n label: 'TACOS',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: false,\n message: 'No TACOS available for this period.',\n },\n];\n\nexport const sellerRevenueMetricsFields = [\n {\n id: 'salesRevenueTotal',\n fieldName: 'sellerDetails',\n keyName: 'salesRevenueTotal',\n label: 'Total Revenue',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: true,\n },\n {\n id: 'salesRevenuePpc',\n fieldName: 'sellerDetails',\n keyName: 'salesRevenuePpc',\n label: 'PPC Revenue',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: true,\n message: 'No PPC Revenue spend available for this period.',\n },\n {\n id: 'salesRevenueDsp',\n fieldName: 'sellerDetails',\n keyName: 'salesRevenueDsp',\n label: 'DSP Revenue',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: true,\n message: 'No DSP Revenue available for this period.',\n },\n];\n\nexport const sellerAdspendMetricsFields = [\n {\n id: 'salesAdSpendTotal',\n fieldName: 'sellerDetails',\n keyName: 'salesAdSpendTotal',\n label: 'Total Spend',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: true,\n },\n {\n id: 'salesAdSpendPpc',\n fieldName: 'sellerDetails',\n keyName: 'salesAdSpendPpc',\n label: 'PPC Spend',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: true,\n message: 'No PPC spend available for this period.',\n },\n {\n id: 'salesAdSpendDsp',\n fieldName: 'sellerDetails',\n keyName: 'salesAdSpendDsp',\n label: 'DSP Spend',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n isSubType: true,\n message: 'No DSP spend available for this period.',\n },\n];\n\nexport const vendorSalesMetricsFields = {\n shippedCogs: [\n {\n id: 'shippedCogs',\n fieldName: 'vendorDetails',\n keyName: 'salesShippedCogs',\n label: 'Shipped Cogs',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'shippedGlanceView',\n fieldName: 'vendorDetails',\n keyName: 'salesShippedGlanceViews',\n label: 'Glance View',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'shippedConversionRate',\n fieldName: 'vendorDetails',\n keyName: 'salesShippedConversionRate',\n label: 'Conversion Rate',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'shippedUnit',\n fieldName: 'vendorDetails',\n keyName: 'salesShippedUnits',\n label: 'Shipped Unit',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n ],\n orderedRevenue: [\n {\n id: 'vendorOrderedRevenue',\n fieldName: 'vendorDetails',\n keyName: 'salesOrderedRevenue',\n label: 'Ordered Revenue',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'orderedGlanceView',\n fieldName: 'vendorDetails',\n keyName: 'salesOrderedGlanceViews',\n label: 'Glance View',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'orderedConversionRate',\n fieldName: 'vendorDetails',\n keyName: 'salesOrderedConversionRate',\n label: 'Conversion Rate',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'orderedUnit',\n fieldName: 'vendorDetails',\n keyName: 'salesOrderedUnits',\n label: 'Ordered Unit',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n ],\n};\n\nexport const graphToggleOptions = [\n {\n id: 'previous',\n fieldName: 'sellerDetails',\n keyName: 'showPreviousDataPoint',\n label: 'Show Previous Data Points',\n className: 'label-name',\n spanClass: 'slider round',\n isMetrics: false,\n },\n {\n id: 'metricsGraph',\n fieldName: 'sellerDetails',\n keyName: 'showMetricsGraph',\n label: 'Show Graph',\n className: 'label-name',\n spanClass: 'slider round',\n isMetrics: false,\n },\n {\n id: 'dataTable',\n fieldName: 'sellerDetails',\n keyName: 'showDataTable',\n label: 'Show Data Table',\n className: 'label-name',\n spanClass: 'slider round',\n isMetrics: false,\n },\n];\n\nexport const productNameToggleOption = [\n {\n id: 'childProductName',\n fieldName: 'sellerDetails',\n keyName: 'showChildProductName',\n label: 'Show Product Name',\n className: 'label-name',\n spanClass: 'slider round',\n isMetrics: false,\n },\n];\n\nexport const inventoryProductNameToggleOption = [\n {\n id: 'inventoryProductName',\n keyName: 'showInventoryProductName',\n label: 'Show Product Name',\n className: 'label-name',\n spanClass: 'slider round',\n isMetrics: false,\n },\n];\n\nexport const sellerSponsoredMetricsFields = [\n {\n id: 'adSales',\n fieldName: 'sellerDetails',\n keyName: 'adSales',\n label: 'Ad Sales',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'adSpend',\n fieldName: 'sellerDetails',\n keyName: 'adSpend',\n label: 'Ad Spend',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'adConversionRate',\n fieldName: 'sellerDetails',\n keyName: 'adConversionRate',\n label: 'Ad Conversion Rate',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'adImpressions',\n fieldName: 'sellerDetails',\n keyName: 'adImpressions',\n label: 'Impressions',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n\n {\n id: 'adAcos',\n fieldName: 'sellerDetails',\n keyName: 'adAcos',\n label: 'ACOS',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'adRoas',\n fieldName: 'sellerDetails',\n keyName: 'adRoas',\n label: 'ROAS',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'adCostPerClick',\n fieldName: 'sellerDetails',\n keyName: 'adCostPerClick',\n label: 'Cost Per Click',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'adClicks',\n fieldName: 'sellerDetails',\n keyName: 'adClicks',\n label: 'Clicks',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'adClickThroughRate',\n fieldName: 'sellerDetails',\n keyName: 'adClickThroughRate',\n label: 'Click Through Rate',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n];\n\nexport const sellerDspMetricsFields = [\n {\n id: 'dspImpressions',\n fieldName: 'sellerDetails',\n keyName: 'dspImpressions',\n label: 'Impressions',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'dspSpend',\n fieldName: 'sellerDetails',\n keyName: 'dspSpend',\n label: 'DSP Spend',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'dspTotalProductSales',\n fieldName: 'sellerDetails',\n keyName: 'dspTotalProductSales',\n label: 'Total Product Sales',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'dspTotalRoas',\n fieldName: 'sellerDetails',\n keyName: 'dspTotalRoas',\n label: 'Total ROAS',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n\n {\n id: 'dspTotalDpvr',\n fieldName: 'sellerDetails',\n keyName: 'dspTotalDpvr',\n label: 'Total DPVR',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'dspTotalNewBrandPurchases',\n fieldName: 'sellerDetails',\n keyName: 'dspTotalNewBrandPurchases',\n label: 'Total New Brand Purchases',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'dspProductSales',\n fieldName: 'sellerDetails',\n keyName: 'dspProductSales',\n label: 'Product Sales',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n {\n id: 'dspRoas',\n fieldName: 'sellerDetails',\n keyName: 'dspRoas',\n label: 'ROAS',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: true,\n },\n];\n\nexport const sellerHealthFields = [\n {\n id: 'inventoryScore',\n fieldName: 'sellerDetails',\n keyName: 'inventoryScore',\n label: 'Inventory Score(IPI)',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: false,\n },\n {\n id: 'positiveFeedback',\n fieldName: 'sellerDetails',\n keyName: 'positiveFeedback',\n label: 'Positive Feedback',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: false,\n },\n {\n id: 'orderIssue',\n fieldName: 'sellerDetails',\n keyName: 'orderIssue',\n label: 'Order Issue',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: false,\n },\n {\n id: 'buyBoxPercent',\n fieldName: 'sellerDetails',\n keyName: 'isBuyBoxGraph',\n label: 'Buy Box %',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: false,\n },\n];\n\nexport const buyBoxPercentFieldOptions = [\n {\n id: 'showBBPGraph',\n fieldName: 'sellerDetails',\n keyName: 'buyBoxGraph',\n label: 'Show Graph',\n className: 'label-name',\n spanClass: 'slider round',\n isMetrics: false,\n },\n {\n id: 'showBBPTable',\n fieldName: 'sellerDetails',\n keyName: 'showBuyBoxGraphTable',\n label: 'Show Data Table',\n className: 'label-name',\n spanClass: 'slider round',\n isMetrics: false,\n },\n];\n\nexport const inventoryManagementFields = [\n {\n id: 'strandedInventory',\n fieldName: 'sellerDetails',\n keyName: 'strandedInventory',\n label: 'Stranded Inventory',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: false,\n },\n {\n id: 'overstockInventory',\n fieldName: 'sellerDetails',\n keyName: 'overstockInventory',\n label: 'Overstock Inventory',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: false,\n },\n {\n id: 'understockInventory',\n fieldName: 'sellerDetails',\n keyName: 'understockInventory',\n label: 'Understock Inventory',\n className: 'check-container checkboxes-std-services customer-pannel',\n spanClass: 'checkmark',\n isMetrics: false,\n },\n];\n\nexport const metricsTooltipArray = [\n 'salesTacos',\n 'salesRevenuePpc',\n 'salesAdSpendPpc',\n 'salesRevenueDsp',\n 'salesAdSpendDsp',\n];\n\nexport const reportOrderOptions = [\n { label: 'Most Recent to Oldest', value: '-created_at' },\n { label: 'Oldest to Most Recent', value: 'created_at' },\n];\n\nexport const reportTabOptions = [\n { key: 'standard', label: 'Standard Report', class: '' },\n { key: 'customized', label: 'Customized Report', class: 'd-none' },\n { key: 'summary', label: 'Summary', class: 'd-none' },\n];\n\nexport const saveReportOptions = [\n {\n id: 'keepExistingOption',\n isDefaultChecked: true,\n name: 'keepExisting',\n label: 'Create a new report ',\n className: 'checkboxes radio-container customer-list',\n value: 'keepExisting',\n },\n {\n id: 'replaceExistingOption',\n isDefaultChecked: false,\n name: 'keepExisting',\n label: 'Update the existing report ',\n className: 'checkboxes radio-container customer-list',\n value: 'replaceExisting',\n },\n];\n\nexport const setTimeFrame = {\n week: {\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n isDisabled: false,\n },\n month: {\n value: 'month',\n label: 'Current Month',\n sub: 'vs Previous month',\n isDisabled: false,\n },\n '30days': {\n value: '30days',\n label: 'Current 30 Days',\n sub: 'vs Previous 30 days',\n isDisabled: false,\n },\n year: {\n value: 'year',\n label: 'Year to Date',\n sub: 'vs Previous year',\n isDisabled: false,\n },\n custom: {\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start and end dates',\n isDisabled: false,\n },\n};\n\nexport const sponoredDspKeys = {\n adSales: 'adSales',\n adSpend: 'adSpend',\n adConversionRate: 'adConversionRate',\n adImpressions: 'adImpressions',\n adAcos: 'adAcos',\n adRoas: 'adRoas',\n adCostPerClick: 'adCostPerClick',\n adClicks: 'adClicks',\n adClickThroughRate: 'adClickThroughRate',\n\n adSalesSP: 'adSalesSP',\n adSpendSP: 'adSpendSP',\n adConversionRateSP: 'adConversionRateSP',\n adImpressionsSP: 'adImpressionsSP',\n adAcosSP: 'adAcosSP',\n adRoasSP: 'adRoasSP',\n adCostPerClickSP: 'adCostPerClickSP',\n adClicksSP: 'adClicksSP',\n adClickThroughRateSP: 'adClickThroughRateSP',\n\n adSalesSB: 'adSalesSB',\n adSpendSB: 'adSpendSB',\n adConversionRateSB: 'adConversionRateSB',\n adImpressionsSB: 'adImpressionsSB',\n adAcosSB: 'adAcosSB',\n adRoasSB: 'adRoasSB',\n adCostPerClickSB: 'adCostPerClickSB',\n adClicksSB: 'adClicksSB',\n adClickThroughRateSB: 'adClickThroughRateSB',\n\n adSalesSBV: 'adSalesSBV',\n adSpendSBV: 'adSpendSBV',\n adConversionRateSBV: 'adConversionRateSBV',\n adImpressionsSBV: 'adImpressionsSBV',\n adAcosSBV: 'adAcosSBV',\n adRoasSBV: 'adRoasSBV',\n adCostPerClickSBV: 'adCostPerClickSBV',\n adClicksSBV: 'adClicksSBV',\n adClickThroughRateSBV: 'adClickThroughRateSBV',\n\n adSalesSD: 'adSalesSD',\n adSpendSD: 'adSpendSD',\n adConversionRateSD: 'adConversionRateSD',\n adImpressionsSD: 'adImpressionsSD',\n adAcosSD: 'adAcosSD',\n adRoasSD: 'adRoasSD',\n adCostPerClickSD: 'adCostPerClickSD',\n adClicksSD: 'adClicksSD',\n adClickThroughRateSD: 'adClickThroughRateSD',\n\n dspImpressions: 'dspImpressions',\n dspSpend: 'dspSpend',\n dspTotalProductSales: 'dspTotalProductSales',\n dspTotalRoas: 'dspTotalRoas',\n dspTotalDpvr: 'dspTotalDpvr',\n dspTotalNewBrandPurchases: 'dspTotalNewBrandPurchases',\n dspProductSales: 'dspProductSales',\n dspRoas: 'dspRoas',\n};\n\nexport const inventoryKeys = {\n strandedInventory: 'strandedInventory',\n overstockInventory: 'overstockInventory',\n understockInventory: 'understockInventory',\n};\n\nexport const initalStateBP = {\n value: null,\n label: 'BP Name',\n};\n\nexport const initalStateTimeFrame = {\n value: 'week',\n label: 'Current 7 days',\n};\n\nexport const initialStateReportType = {\n value: 'reportType',\n label: 'Report Type',\n};\n\nexport const initialStateAccountType = {\n value: 'accountType',\n label: 'Account Type',\n};\n\nexport const currencyAxis = [\n 'salesRevenueTotal',\n 'salesRevenuePpc',\n 'salesRevenueDsp',\n 'salesAdSpendTotal',\n 'salesAdSpendPpc',\n 'salesAdSpendDsp',\n 'adSales',\n 'adCostPerClick',\n 'adRoas',\n 'adSpend',\n\n 'adSalesSP',\n 'adCostPerClickSP',\n 'adRoasSP',\n 'adSpendSP',\n\n 'adSalesSB',\n 'adCostPerClickSB',\n 'adRoasSB',\n 'adSpendSB',\n\n 'adSalesSBV',\n 'adCostPerClickSBV',\n 'adRoasSBV',\n 'adSpendSBV',\n\n 'adSalesSD',\n 'adCostPerClickSD',\n 'adRoasSD',\n 'adSpendSD',\n\n 'dspSpend',\n 'dspTotalProductSales',\n 'dspTotalRoas',\n 'dspProductSales',\n 'dspRoas',\n 'salesOrderedRevenue',\n 'salesShippedCogs',\n];\n\nexport const percentageAxis = [\n 'salesTacos',\n 'salesConversion',\n 'adConversionRate',\n 'adAcos',\n 'adClickThroughRate',\n\n 'adConversionRateSP',\n 'adAcosSP',\n 'adClickThroughRateSP',\n\n 'adConversionRateSB',\n 'adAcosSB',\n 'adClickThroughRateSB',\n\n 'adConversionRateSBV',\n 'adAcosSBV',\n 'adClickThroughRateSBV',\n 'adConversionRateSD',\n 'adAcosSD',\n 'adClickThroughRateSD',\n\n 'dspTotalDpvr',\n 'dspTotalNewBrandPurchases',\n 'salesOrderedConversionRate',\n 'salesShippedConversionRate',\n];\n\nexport const numberAxis = [\n 'salesUnitSold',\n 'salesTraffic',\n 'adImpressions',\n 'adClicks',\n 'adImpressionsSP',\n 'adClicksSP',\n 'adImpressionsSB',\n 'adClicksSB',\n 'adImpressionsSBV',\n 'adClicksSBV',\n 'adImpressionsSD',\n 'adClicksSD',\n 'dspImpressions',\n 'salesOrderedGlanceViews',\n 'salesOrderedUnits',\n 'salesShippedGlanceViews',\n 'salesShippedUnits',\n];\n\nexport const customReportGraphColorSet = [\n '#0045b4',\n '#74b035',\n '#C84EC6',\n '#E05D37',\n '#8C54FF',\n '#30A8BD',\n '#D6A307',\n '#89A43C',\n];\n\nexport const customReportGraphTooltipNames = {\n salesRevenueTotal: 'Total Revenue',\n salesRevenuePpc: 'PPC Revenue',\n salesRevenueDsp: 'DSP Revenue',\n salesTacos: 'TACOS',\n salesUnitSold: 'Units Sold',\n salesTraffic: 'Traffic',\n salesConversion: 'Conversion',\n salesAdSpendTotal: 'Ad Spend Total',\n salesAdSpendPpc: 'Ad Spend PPC',\n salesAdSpendDsp: 'Ad Spend DSP',\n salesShippedCogs: 'Shipped COGs',\n salesShippedGlanceViews: 'Shipped Glance Views',\n salesShippedConversionRate: 'Shipped Conversion Rate',\n salesShippedUnits: 'Shipped Units',\n salesOrderedRevenue: 'Ordered Revenue',\n salesOrderedGlanceViews: 'Ordered Glance Views',\n salesOrderedConversionRate: 'Ordered Conversion Rate',\n salesOrderedUnits: 'Ordered Units',\n\n adSales: 'Ad Sales',\n adSpend: 'Ad Spend',\n adConversionRate: 'Ad Conversion Rate',\n adImpressions: 'Ad Impressions',\n adAcos: 'Ad ACOS',\n adRoas: 'Ad ROAS',\n adCostPerClick: 'Ad Cost Per Click',\n adClicks: 'Ad Clicks',\n adClickThroughRate: 'Ad Click Through Rate',\n\n adSalesSP: 'SP Ad Sales',\n adSpendSP: 'SP Ad Spend',\n adConversionRateSP: 'SP Ad Conversion Rate',\n adImpressionsSP: 'SP Ad Impressions',\n adAcosSP: 'SP Ad ACOS',\n adRoasSP: 'SP Ad ROAS',\n adCostPerClickSP: 'SP Ad Cost Per Click',\n adClicksSP: 'SP Ad Clicks',\n adClickThroughRateSP: 'SP Ad Click Through Rate',\n\n adSalesSB: 'SBV Ad Sales',\n adSpendSB: 'SBV Ad Spend',\n adConversionRateSB: 'SBV Ad Conversion Rate',\n adImpressionsSB: 'SBV Ad Impressions',\n adAcosSB: 'SBV Ad ACOS',\n adRoasSB: 'SBV Ad ROAS',\n adCostPerClickSB: 'SBV Ad Cost Per Click',\n adClicksSB: 'SBV Ad Clicks',\n adClickThroughRateSB: 'SBV Ad Click Through Rate',\n\n adSalesSBV: 'SBV Ad Sales',\n adSpendSBV: 'SBV Ad Spend',\n adConversionRateSBV: 'SBV Ad Conversion Rate',\n adImpressionsSBV: 'SBV Ad Impressions',\n adAcosSBV: 'SBV Ad ACOS',\n adRoasSBV: 'SBV Ad ROAS',\n adCostPerClickSBV: 'SBV Ad Cost Per Click',\n adClicksSBV: 'SBV Ad Clicks',\n adClickThroughRateSBV: 'SBV Ad Click Through Rate',\n\n adSalesSD: 'SD Ad Sales',\n adSpendSD: 'SD Ad Spend',\n adConversionRateSD: 'SD Ad Conversion Rate',\n adImpressionsSD: 'SD Ad Impressions',\n adAcosSD: 'SD Ad ACOS',\n adRoasSD: 'SD Ad ROAS',\n adCostPerClickSD: 'SD Ad Cost Per Click',\n adClicksSD: 'SD Ad Clicks',\n adClickThroughRateSD: 'SD Ad Click Through Rate',\n\n dspImpressions: 'DSP Impressions',\n dspSpend: 'DSP Spend',\n dspTotalProductSales: 'Total Product Sales',\n dspTotalRoas: 'Total ROAS',\n dspTotalDpvr: 'Total DPVR',\n dspTotalNewBrandPurchases: 'Total New Brand Purchases',\n dspProductSales: 'Product Sales',\n dspRoas: 'DSP ROAS',\n};\n\nexport const buttonDisabledMsg =\n 'Only assigned team member to the BP is allowed to create a report.';\n\nexport const selleCollapseIds = {\n graphFrequency: 'collapseSellerGraph',\n showPreviousDataPoint: 'collapseSellerGraph',\n showDataTable: 'collapseSellerGraphTable',\n showMetricsGraph: 'collapseSellerGraphTable',\n salesRevenueTotal: 'collapseSellerGraph',\n salesRevenuePpc: 'collapseSellerGraph',\n salesRevenueDsp: 'collapseSellerGraph',\n salesTacos: 'collapseSellerGraph',\n salesAdSpendTotal: 'collapseSellerGraph',\n salesAdSpendPpc: 'collapseSellerGraph',\n salesAdSpendDsp: 'collapseSellerGraph',\n salesUnitSold: 'collapseSellerGraph',\n salesTraffic: 'collapseSellerGraph',\n salesConversion: 'collapseSellerGraph',\n adPerformance: 'collapseSellerGraph',\n sponsoredType: 'collapseSellerGraph',\n adSales: 'collapseSellerGraph',\n adSpend: 'collapseSellerGraph',\n adConversionRate: 'collapseSellerGraph',\n adImpressions: 'collapseSellerGraph',\n adAcos: 'collapseSellerGraph',\n adRoas: 'collapseSellerGraph',\n adCostPerClick: 'collapseSellerGraph',\n adClicks: 'collapseSellerGraph',\n adClickThroughRate: 'collapseSellerGraph',\n\n adSalesSP: 'collapseSellerGraph',\n adSpendSP: 'collapseSellerGraph',\n adConversionRateSP: 'collapseSellerGraph',\n adImpressionsSP: 'collapseSellerGraph',\n adAcosSP: 'collapseSellerGraph',\n adRoasSP: 'collapseSellerGraph',\n adCostPerClickSP: 'collapseSellerGraph',\n adClicksSP: 'collapseSellerGraph',\n adClickThroughRateSP: 'collapseSellerGraph',\n\n adSalesSB: 'collapseSellerGraph',\n adSpendSB: 'collapseSellerGraph',\n adConversionRateSB: 'collapseSellerGraph',\n adImpressionsSB: 'collapseSellerGraph',\n adAcosSB: 'collapseSellerGraph',\n adRoasSB: 'collapseSellerGraph',\n adCostPerClickSB: 'collapseSellerGraph',\n adClicksSB: 'collapseSellerGraph',\n adClickThroughRateSB: 'collapseSellerGraph',\n\n adSalesSBV: 'collapseSellerGraph',\n adSpendSBV: 'collapseSellerGraph',\n adConversionRateSBV: 'collapseSellerGraph',\n adImpressionsSBV: 'collapseSellerGraph',\n adAcosSBV: 'collapseSellerGraph',\n adRoasSBV: 'collapseSellerGraph',\n adCostPerClickSBV: 'collapseSellerGraph',\n adClicksSBV: 'collapseSellerGraph',\n adClickThroughRateSBV: 'collapseSellerGraph',\n\n adSalesSD: 'collapseSellerGraph',\n adSpendSD: 'collapseSellerGraph',\n adConversionRateSD: 'collapseSellerGraph',\n adImpressionsSD: 'collapseSellerGraph',\n adAcosSD: 'collapseSellerGraph',\n adRoasSD: 'collapseSellerGraph',\n adCostPerClickSD: 'collapseSellerGraph',\n adClicksSD: 'collapseSellerGraph',\n adClickThroughRateSD: 'collapseSellerGraph',\n\n dspImpressions: 'collapseSellerGraph',\n dspSpend: 'collapseSellerGraph',\n dspTotalProductSales: 'collapseSellerGraph',\n dspTotalRoas: 'collapseSellerGraph',\n dspTotalDpvr: 'collapseSellerGraph',\n dspTotalNewBrandPurchases: 'collapseSellerGraph',\n dspProductSales: 'collapseSellerGraph',\n dspRoas: 'collapseSellerGraph',\n\n parentTopAsins: 'collapseSellerParentTop',\n parentBottomAsins: 'collapseSellerParentBottom',\n isParentAllAsins: 'collapseSellerParentAll',\n\n childTopAsins: 'collapseSellerChildTop',\n childBottomAsins: 'collapseSellerChildBottom',\n isChildAllAsins: 'collapseSellerChildAll',\n showChildProductName: 'collapseSellerChildTop',\n\n buyBoxGraph: 'collapseSellerBBEPgraph',\n showBuyBoxGraphTable: 'collapseSellerBBEPTable',\n showBuyBoxGraph: 'collapseSellerBBEPTable',\n inventoryScore: 'collapseSellerHealth',\n positiveFeedback: 'collapseSellerHealth',\n orderIssue: 'collapseSellerHealth',\n\n strandedInventory: 'collapseSellerStranded',\n overstockInventory: 'collapseSellerOverstock',\n understockInventory: 'collapseSellerUnderstock',\n showInventoryProductName: 'collapseSellerStranded',\n};\n\nexport const vendorCollapseIds = {\n graphFrequency: 'collapseVendorGraph',\n showPreviousDataPoint: 'collapseVendorGraph',\n showDataTable: 'collapseVendorGraphTable',\n showMetricsGraph: 'collapseVendorGraphTable',\n\n salesShippedCogs: 'collapseVendorGraph',\n salesShippedGlanceViews: 'collapseVendorGraph',\n salesShippedConversionRate: 'collapseVendorGraph',\n salesShippedUnits: 'collapseVendorGraph',\n salesOrderedRevenue: 'collapseVendorGraph',\n salesOrderedGlanceViews: 'collapseVendorGraph',\n salesOrderedConversionRate: 'collapseVendorGraph',\n salesOrderedUnits: 'collapseVendorGraph',\n\n adPerformance: 'collapseVendorGraph',\n sponsoredType: 'collapseVendorGraph',\n adSales: 'collapseVendorGraph',\n adSpend: 'collapseVendorGraph',\n adConversionRate: 'collapseVendorGraph',\n adImpressions: 'collapseVendorGraph',\n adAcos: 'collapseVendorGraph',\n adRoas: 'collapseVendorGraph',\n adCostPerClick: 'collapseVendorGraph',\n adClicks: 'collapseVendorGraph',\n adClickThroughRate: 'collapseVendorGraph',\n\n adSalesSP: 'collapseVendorGraph',\n adSpendSP: 'collapseVendorGraph',\n adConversionRateSP: 'collapseVendorGraph',\n adImpressionsSP: 'collapseVendorGraph',\n adAcosSP: 'collapseVendorGraph',\n adRoasSP: 'collapseVendorGraph',\n adCostPerClickSP: 'collapseVendorGraph',\n adClicksSP: 'collapseVendorGraph',\n adClickThroughRateSP: 'collapseVendorGraph',\n\n adSalesSB: 'collapseVendorGraph',\n adSpendSB: 'collapseVendorGraph',\n adConversionRateSB: 'collapseVendorGraph',\n adImpressionsSB: 'collapseVendorGraph',\n adAcosSB: 'collapseVendorGraph',\n adRoasSB: 'collapseVendorGraph',\n adCostPerClickSB: 'collapseVendorGraph',\n adClicksSB: 'collapseVendorGraph',\n adClickThroughRateSB: 'collapseVendorGraph',\n\n adSalesSBV: 'collapseVendorGraph',\n adSpendSBV: 'collapseVendorGraph',\n adConversionRateSBV: 'collapseVendorGraph',\n adImpressionsSBV: 'collapseVendorGraph',\n adAcosSBV: 'collapseVendorGraph',\n adRoasSBV: 'collapseVendorGraph',\n adCostPerClickSBV: 'collapseVendorGraph',\n adClicksSBV: 'collapseVendorGraph',\n adClickThroughRateSBV: 'collapseVendorGraph',\n\n adSalesSD: 'collapseVendorGraph',\n adSpendSD: 'collapseVendorGraph',\n adConversionRateSD: 'collapseVendorGraph',\n adImpressionsSD: 'collapseVendorGraph',\n adAcosSD: 'collapseVendorGraph',\n adRoasSD: 'collapseVendorGraph',\n adCostPerClickSD: 'collapseVendorGraph',\n adClicksSD: 'collapseVendorGraph',\n adClickThroughRateSD: 'collapseVendorGraph',\n\n dspImpressions: 'collapseVendorGraph',\n dspSpend: 'collapseVendorGraph',\n dspTotalProductSales: 'collapseVendorGraph',\n dspTotalRoas: 'collapseVendorGraph',\n dspTotalDpvr: 'collapseVendorGraph',\n dspTotalNewBrandPurchases: 'collapseVendorGraph',\n dspProductSales: 'collapseVendorGraph',\n dspRoas: 'collapseVendorGraph',\n\n strandedInventory: 'collapseVendorStranded',\n overstockInventory: 'collapseVendorOverstock',\n understockInventory: 'collapseVendorUnderstock',\n};\n\nexport const parentAsinTableFields = [\n {\n name: 'Parent Asin',\n width: '16.6%',\n },\n {\n name: 'sales',\n width: '16.6%',\n },\n {\n name: 'traffic',\n width: '16.6%',\n },\n {\n name: 'units',\n width: '16.6%',\n },\n {\n name: 'conversion',\n width: '16.6%',\n },\n {\n name: 'Buy Box %',\n width: '16.6%',\n },\n];\n\nexport const childAsinTableFields = [\n {\n name: 'Child Asin',\n width: '15%',\n },\n {\n name: 'sales',\n width: '17%',\n },\n {\n name: 'traffic',\n width: '17%',\n },\n {\n name: 'units',\n width: '17%',\n },\n {\n name: 'conversion',\n width: '17%',\n },\n {\n name: 'Buy Box %',\n width: '17%',\n },\n];\n\nexport const strandedInventoryTableFields = [\n { name: 'SKU', width: '18%' },\n {\n name: 'ASIN',\n width: '16%',\n },\n {\n name: 'AVAILABLE',\n width: '16%',\n },\n {\n name: 'CHANGE',\n width: '16%',\n },\n {\n name: 'DATE OF STRANDED EVENT',\n width: '14%',\n },\n {\n name: 'STRANDED REASON',\n width: '18%',\n },\n];\n\nexport const overstockInventoryTableFields = [\n { name: 'SKU', width: '22%' },\n {\n name: 'ASIN',\n width: '20%',\n },\n {\n name: 'Sales \\n(last 30 days)',\n width: '20%',\n },\n {\n name: 'Units Sold\\n(last 30 days)',\n width: '20%',\n },\n {\n name: 'Total days of Supply',\n width: '18%',\n },\n];\n\nexport const understockInventoryTableFields = [\n { name: 'SKU', width: '16%' },\n {\n name: 'ASIN',\n width: '14%',\n },\n {\n name: 'Sales \\n(last 30 days)',\n width: '14%',\n },\n {\n name: 'Units Sold\\n(last 30 days)',\n width: '14%',\n },\n {\n name: 'Total days of Supply',\n width: '14%',\n },\n {\n name: 'Recommended Replenishment\\nQuantity',\n width: '14%',\n },\n {\n name: 'Recommended\\nShip Date',\n width: '14%',\n },\n];\n\n// if metrics is disabled set value to TRUE, otherwise FALSE\nexport const metricsDisabledOnAgreement = {\n // ppc only - before 1 aug 2022\n salesTacosBeforePpc: true,\n salesAdSpendTotalBeforePpc: true,\n salesAdSpendPpcBeforePpc: true,\n salesAdSpendDspBeforePpc: true,\n\n // dsp only - before 1 aug 2022\n salesTacosBeforeDsp: false,\n salesAdSpendTotalBeforeDsp: false,\n salesAdSpendPpcBeforeDsp: true,\n salesAdSpendDspBeforeDsp: false,\n\n // ppc and dsp - before 1 aug 2022\n salesTacosBeforePpcDsp: true,\n salesAdSpendTotalBeforePpcDsp: true,\n salesAdSpendPpcBeforePpcDsp: true,\n salesAdSpendDspBeforePpcDsp: false,\n\n // ppc only - after 1 aug 2022\n salesTacosAfterPpc: false,\n salesAdSpendTotalAfterPpc: false,\n salesAdSpendPpcAfterPpc: false,\n salesAdSpendDspAfterPpc: true,\n\n // dsp only - after 1 aug 2022\n salesTacosAfterDsp: false,\n salesAdSpendTotalAfterDsp: false,\n salesAdSpendPpcAfterDsp: true,\n salesAdSpendDspAfterDsp: false,\n\n // ppc and dsp - after 1 aug 2022\n salesTacosAfterPpcDsp: false,\n salesAdSpendTotalAfterPpcDsp: false,\n salesAdSpendPpcAfterPpcDsp: false,\n salesAdSpendDspAfterPpcDsp: false,\n};\n\nexport const PRODUCT = 'product';\nexport const OBJECTIVE = 'objective';\nexport const TITLE = 'title';\n\nexport const productDefalutList = { label: 'Select Product', value: 'product' };\nexport const objectiveDefalutList = {\n label: 'Select Objective',\n value: 'objective',\n};\nexport const titleDefalutList = { label: 'Select Title', value: 'title' };\n","export const timeFilterOptions = [\n { value: 'yesterday', label: 'Today', sub: 'vs Yesterday' },\n { value: 'week', label: 'Today', sub: 'vs 7 days ago' },\n { value: '30days', label: 'Today', sub: 'vs 30 days ago' },\n {\n value: 'custom',\n label: 'Custom',\n sub: 'Select date',\n },\n];\n\nexport const dashboardTimeFilterOptions = [\n { value: 'yesterday', label: 'Today vs Yesterday' },\n { value: 'week', label: 'Today vs 7 days ago' },\n { value: '30days', label: 'Today vs 30 days ago' },\n {\n value: 'custom',\n label: 'Custom ',\n sub: 'Select date',\n },\n];\n\n// inventory no data messages\nexport const inventoryNoDataMessage = {\n restockLimit: 'No Restock Limits Data Found.',\n stranded: 'No Stranded Inventory Data Found.',\n strandedRestock: 'No Stranded & Restock Inventory Data Found.',\n};\n\nexport const restockLimitTypeInfo = [\n {\n label: 'Onhand: ',\n value: 'onhand',\n subLabel: 'Inventory on stock.',\n class: '',\n },\n {\n label: 'Open Shipments: ',\n value: 'openShipments',\n subLabel:\n 'This is the capacity used by your shipments that have not been received by Amazon, including shipments that are in Working, Shipped, In transit, Delivered, Checked in or Receiving status.',\n class: '',\n },\n {\n label: 'Maximum Shipments: ',\n value: 'maximumShipments',\n subLabel:\n 'This is the capacity available for you to send shipments to Amazon fulfillment centers.',\n class: '',\n },\n\n {\n label: 'Calculations: ',\n value: 'calculations',\n subLabel:\n 'Utilization = (Onhand + Open Shipment)/(Onhand + Open Shipment + Max Shipment) x 100',\n class: 'text-italic',\n },\n];\n\nexport const timeFrameAPiValue = (value) => {\n switch (value) {\n case 'yesterday':\n return 1;\n\n case 'week':\n return 7;\n\n case '30days':\n return 30;\n\n default:\n return 1;\n }\n};\n\nexport const dateOptionsWithYearmm = [\n { value: 'week', label: 'Current 7 days', sub: 'vs Previous 7 days' },\n { value: 'month', label: 'Current Month', sub: 'vs Previous month' },\n { value: '30days', label: 'Current 30 Days', sub: 'vs Previous 30 days' },\n { value: 'year', label: 'Year to Date', sub: 'vs Previous year' },\n {\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n];\n\nexport const defaultRestockInventoryOrderBy = {\n utilization: true,\n max_shipment: false,\n open_shipment: false,\n on_hand: false,\n};\n\nexport const defaultStrandedInventoryOrderBy = {\n available: false,\n change: false,\n percent_change: true,\n understock: false,\n overstock: false,\n stranded: false,\n company_name: true,\n};\n\nexport const defaultTimeFrameForInventory = {\n value: '30days',\n label: 'Today vs 30 days ago',\n};\n\nexport const storageTypeOptions = [\n {\n label: 'All',\n value: 'all',\n },\n {\n label: 'Standard Size Storage',\n value: 'standard',\n },\n {\n label: 'Oversize Storage',\n value: 'oversize',\n },\n {\n label: 'Apparel Storage',\n value: 'apparel',\n },\n {\n label: 'Footwear Storage',\n value: 'footwear',\n },\n\n {\n label: 'Extra Large Storage',\n value: 'extra_large',\n },\n\n {\n label: 'Flammable Storage',\n value: 'flammable',\n },\n\n {\n label: 'Aerosol Storage',\n value: 'aerosol',\n },\n];\n\nexport const restockLimitTableheader = [\n {\n key: 'customer',\n label: 'Customer',\n width: '28%',\n },\n {\n key: 'utilization',\n label: 'Utilization',\n width: '18%',\n },\n {\n key: 'max_shipment',\n label: 'Max shipment',\n width: '18%',\n },\n {\n key: 'open_shipment',\n label: 'Open shipment',\n width: '18%',\n },\n {\n key: 'on_hand',\n label: 'Onhand',\n width: '18%',\n },\n];\n\nexport const restockInventoryTableheader = [\n {\n key: 'customer',\n label: 'Customer',\n width: '40%',\n },\n {\n key: 'understocked',\n label: 'Understocked ASINs',\n width: '20%',\n },\n {\n key: 'overstocked',\n label: 'Overstocked ASINs',\n width: '20%',\n },\n {\n key: 'available',\n label: 'Stranded ASINs',\n width: '20%',\n },\n];\n\nexport const strandedInventoryTableheader = [\n {\n key: 'customer',\n label: 'Customer',\n width: '34%',\n },\n {\n key: 'available',\n label: 'Number of Stranded SKUs',\n width: '26%',\n },\n {\n key: 'sku_change',\n label: 'Change',\n width: '20%',\n },\n {\n key: 'percent_change',\n label: '% Change',\n width: '20%',\n },\n];\n\nexport const underStockTableheader = [\n {\n key: 'merchant_sku',\n label: 'SKU',\n width: '160px',\n sort: false,\n },\n {\n key: 'asin',\n label: 'ASIN',\n width: '120px',\n sort: false,\n },\n\n {\n key: 'product_name',\n label: 'Product Name',\n width: '140px',\n sort: false,\n },\n {\n key: 'sales_last_30_days',\n label: `Sales \\n(last 30 days)`,\n width: '150px',\n sort: true,\n },\n {\n key: 'units_sold_last_30_days',\n label: `Units Sold\\n(last 30 days)`,\n width: '130px',\n sort: true,\n },\n {\n key: 'total_days_of_supply',\n label: `Total days of\\nSupply`,\n width: '130px',\n sort: true,\n },\n {\n key: 'available_in_stock',\n label: `Available in Stock`,\n width: '130px',\n sort: true,\n },\n {\n key: 'poos_date',\n label: `Potential OOS Date`,\n width: '150px',\n sort: true,\n },\n {\n key: 'recommended_replenishment_quantity',\n label: `Recommended Replenishment\\nQuantity`,\n width: '150px',\n sort: true,\n },\n {\n key: 'recommended_ship_date',\n label: `Recommended\\nShip Date`,\n width: '150px',\n sort: true,\n },\n {\n label: 'Actions',\n key: 'action',\n width: '100px',\n sort: false,\n tooltip: false,\n },\n];\n\nexport const OverStockTableheader = [\n {\n key: 'merchant_sku',\n label: 'SKU',\n width: '170px',\n sort: false,\n },\n {\n key: 'asin',\n label: 'ASIN',\n width: '170px',\n sort: false,\n },\n\n {\n key: 'product_name',\n label: 'Product Name',\n width: '180px',\n sort: false,\n },\n {\n key: 'sales_last_30_days',\n label: `Sales \\n(last 30 days)`,\n width: '160px',\n sort: true,\n },\n {\n key: 'units_sold_last_30_days',\n label: `Units Sold\\n(last 30 days)`,\n width: '160px',\n sort: true,\n },\n\n {\n key: 'total_days_of_supply',\n label: `Total days of Supply`,\n width: '160px',\n sort: true,\n },\n {\n label: 'Actions',\n key: 'action',\n width: '100px',\n sort: false,\n tooltip: false,\n },\n];\n\nexport const stockedTooltip = {\n recommended_ship_date: 'This is Amazon’s recommended date',\n recommended_replenishment_quantity: 'This is Amazon’s recommended quantity',\n};\n\nexport const estimatedLostSalesTabsConstants = [\n { label: 'Inactive', value: 'inactive' },\n { label: 'Stranded', value: 'stranded' },\n { label: 'Archive', value: 'archive' },\n];\n\nexport const estimatedLostSalesDateFilterOptions = [\n { label: 'Past 7 days', value: '7days' },\n { label: 'Past 30 days', value: '30days' },\n { label: 'Past 3 months', value: '3months' },\n { label: 'Past 6 months', value: '6months' },\n { label: 'Past 12 months', value: '12months' },\n];\nexport const estimatedLostSalesStatusFilterOptions = [\n { label: 'All Status', value: '' },\n { label: 'Inactive', value: 'inactive' },\n { label: 'Stranded', value: 'stranded' },\n];\n\nexport const estimatedLostSalesTableHeaderConstants = {\n inactiveTableHeader: [\n {\n label: 'ASIN',\n value: 'asin',\n width: '140px',\n sorting: false,\n tooltip: false,\n },\n {\n label: 'Product Name',\n value: 'product_name',\n width: '150px',\n sorting: false,\n tooltip: false,\n },\n\n {\n label: 'Total Sales',\n value: 'total_sales',\n width: '170px',\n sorting: true,\n tooltip: true,\n tooltipMessage: 'Amount shown has 2 days lag',\n },\n {\n label: 'Avg. Daily Sales',\n value: 'average_daily_sales',\n width: '170px',\n sorting: true,\n tooltip: false,\n },\n {\n label: 'Unsold Since',\n value: 'last_sold_date',\n width: '170px',\n sorting: true,\n tooltip: false,\n },\n\n {\n label: 'Est Lost Sales',\n value: 'estimated_lost_sales',\n width: '170px',\n sorting: true,\n tooltip: false,\n },\n {\n label: 'Actions',\n value: 'actions',\n width: '170px',\n sorting: false,\n tooltip: false,\n },\n ],\n strandedTableHeader: [\n {\n label: 'ASIN',\n value: 'asin',\n width: '150px',\n sorting: false,\n tooltip: false,\n },\n {\n label: 'Product Name',\n value: 'product_name',\n width: '150px',\n sorting: false,\n tooltip: false,\n },\n {\n label: 'Reason',\n value: 'reason',\n width: '165px',\n sorting: false,\n tooltip: false,\n },\n {\n label: 'Total Sales',\n value: 'total_sales',\n width: '165px',\n sorting: true,\n tooltip: true,\n tooltipMessage: 'Amount shown has 2 days lag',\n },\n {\n label: 'Avg. Daily Sales',\n value: 'average_daily_sales',\n width: '165px',\n sorting: true,\n tooltip: false,\n },\n\n {\n label: 'Stranded Since',\n value: 'stranded_since',\n width: '165px',\n sorting: true,\n tooltip: false,\n },\n\n {\n label: 'Est Lost Sales',\n value: 'estimated_lost_sales',\n width: '165px',\n sorting: true,\n tooltip: false,\n },\n {\n label: 'Actions',\n value: 'actions',\n width: '165px',\n sorting: false,\n tooltip: false,\n },\n ],\n archiveTableHeader: [\n {\n label: 'ASIN',\n value: 'asin',\n width: '160px',\n sorting: false,\n tooltip: false,\n },\n {\n label: 'Product Name',\n value: 'product_name',\n width: '160px',\n sorting: false,\n tooltip: false,\n },\n\n {\n label: 'Status',\n value: 'status',\n width: '185px',\n sorting: true,\n tooltip: false,\n },\n\n {\n label: 'Actions',\n value: 'actions',\n width: '185px',\n sorting: false,\n tooltip: false,\n },\n ],\n};\n\nexport const longTermStorageFeesTableHeaderConstants = [\n {\n label: 'SKU',\n value: 'sku',\n width: '130px',\n sorting: false,\n tooltip: false,\n },\n {\n label: 'ASIN',\n value: 'asin',\n width: '130px',\n sorting: false,\n tooltip: false,\n },\n {\n label: 'Product Name',\n value: 'product_name',\n width: '130px',\n sorting: false,\n tooltip: false,\n },\n {\n label: 'Qty Charged',\n value: 'quantity_charged',\n width: '110px',\n sorting: true,\n tooltip: false,\n },\n {\n label: 'Recurring Since',\n value: 'monthly_number',\n width: '150px',\n sorting: true,\n tooltip: false,\n },\n {\n label: 'Total Storage Fees',\n value: 'total_storage_fee',\n width: '170px',\n sorting: true,\n tooltip: false,\n },\n {\n label: 'Removal fees',\n value: 'removal_fee',\n width: '150px',\n sorting: true,\n tooltip: false,\n },\n {\n label: 'Actions',\n value: 'actions',\n width: '100px',\n sorting: false,\n tooltip: false,\n },\n];\n\nexport const inventoryManagementInfoIconConstants = [\n {\n id: 'restock',\n message: 'Data is updated daily at 10 am MST',\n },\n {\n id: 'understocked_asins',\n message: 'Data is updated daily at 10 am MST',\n },\n {\n id: 'overstocked_asins',\n message: 'Data is updated daily at 10 am MST',\n },\n {\n id: 'estimated_lost_sales_table',\n message: 'Data is updated daily at 10 am MST',\n },\n {\n id: 'long_term_storage_fees_table',\n message:\n 'Data is updated every 16-17th of the current month to pull previous month’s report',\n },\n {\n id: 'stranded_and_restock_table',\n message: 'Data is updated daily at 10 am MST',\n },\n {\n id: 'restock_limits_table',\n message: 'Data is updated daily at 10 am MST',\n },\n];\n\nexport const storageTypeConstants = [\n { key: 'standard', label: 'Standard Size' },\n { key: 'oversize', label: 'Over Size' },\n { key: 'apparel', label: 'Apparel' },\n { key: 'footwear', label: 'Footwear' },\n { key: 'extra_large', label: 'Extra Large' },\n { key: 'flammable', label: 'Flammable' },\n { key: 'aerosol', label: 'Aerosol' },\n];\n\nexport const restockLimitsColorCodes = {\n onhand: '#8c54ff',\n openShipment: '#c5a9ff',\n maximumShipment: '#e8ddff',\n\n previousOnhand: '#f7c137',\n previousOpenShipment: '#fbe09b',\n previousMaximumShipment: '#fdf3d7',\n current: '#8c54ff',\n previous: '#f7c137',\n tooltipBackground: '#2e384d',\n tooltipText: '#f4f6fc',\n};\n\nexport const storageSubTypes = [\n {\n key: 'onhand',\n label: 'Onhand',\n bgColor: restockLimitsColorCodes.onhand,\n isStacked: true,\n\n previousKey: 'previousOnhand',\n previousLabel: 'Previous Onhand',\n previousBgColor: restockLimitsColorCodes.previousOnhand,\n previousIsStacked: false,\n previousDx: true,\n },\n {\n key: 'openShipment',\n label: 'Open Shipment',\n bgColor: restockLimitsColorCodes.openShipment,\n isStacked: true,\n\n previousKey: 'previousOpenShipment',\n previousLabel: 'Previous Open Shipment',\n previousBgColor: restockLimitsColorCodes.previousOpenShipment,\n previousIsStacked: true,\n previousDx: true,\n },\n {\n key: 'maximumShipment',\n label: 'Maximum Shipment',\n bgColor: restockLimitsColorCodes.maximumShipment,\n isStacked: true,\n\n previousKey: 'previousMaximumShipment',\n previousLabel: 'Previous Maximum Shipment',\n previousBgColor: restockLimitsColorCodes.previousMaximumShipment,\n previousIsStacked: true,\n previousDx: true,\n },\n];\n","import dayjs from 'dayjs';\n\n// constant for dsp-ppc overlap analysis graphs headings and sub headings\nexport const dspPpcOverlapGraphHeader = {\n LineGraphHeader: {\n heading: 'Ad Attributed Sales by Ad Exposure Type',\n subHeading:\n 'Sales generated per 1,000 impressions for shoppers that engaged in PPC only, DSP only, and both DSP and PPC ads.',\n },\n PieChartHeader: {\n heading: 'Share of Conversions and Sales by Ad Exposure Type',\n subHeading:\n 'This analysis shows what percentage of total conversions and total sales are attributed to each ad exposure type.',\n },\n BarGraphHeader: {\n heading: 'Conversion Rate by ad Exposure Type',\n subHeading: 'Shows the conversion rate for each ad exposure type.',\n },\n};\n\n// constant for triple overlap analysis graphs headings and sub headings\nexport const tripleOverlapGraphHeader = {\n LineGraphHeader: {\n heading: 'Triple Overlap Analysis',\n subHeading:\n 'Ad attributed sales by ad exposure type. Sales generated per 1,000 impressions for shoppers that engaged in PPC only, DSP only, STV only, both PPC and DSP, both PPC and STV, both DSP and STV, and PPC, DSP and STV (Triple) ads.',\n },\n PieChartHeader: {\n heading: 'Unique Reach by Ad Exposure Type',\n subHeading: 'Percentage of impressions delivered by ad exposure type.',\n },\n BarGraphHeader: {\n heading: 'Conversion Rate by Ad Exposure Type',\n subHeading: 'Shows the conversion rate for each ad exposure type.',\n },\n};\n\n// constant for triple overlap value graphs headings and sub headings\nexport const tripleValueGraphHeader = {\n BarGraphHeader: {\n heading: 'ASP and AOV by Ad Exposure type with Triple Overlap',\n subHeading:\n 'Avg. Sales Price (ASP) and Avg. Order Value (AOV) based on ad exposure type including Triple (SP, DSP and STV).',\n },\n tableHeader: {\n heading: 'Sortable Metrics by Ad Exposure Type',\n subHeading: 'Sortable sales data by ad exposure type.',\n },\n};\n\n// constant for triple overlap value graphs headings and sub headings\nexport const ntbAnalysisGraphHeader = {\n BarGraphHeader: {\n heading: 'Top 10 NTB Sales Generators',\n subHeading:\n 'What products are receiving the highest new to brand sales across all ad exposure types.',\n },\n LineGraphHeader: {\n heading: 'New to Brand Sales by Month',\n subHeading: 'New to Brand sales trends based on all ad exposure types.',\n },\n};\n\n// constant for triple overlap value graphs headings and sub headings\nexport const ntbGeographicGraphHeader = {\n BarGraphHeader: {\n heading: 'Top 5 States with the highest Avg NTB Order Value',\n subHeading:\n 'Top 5 states delivering the highest average new to brand order value.',\n },\n tableHeader: {\n heading: 'Sortable Data by State',\n subHeading: 'Sortable new to brand sales data by state.',\n },\n USAMapHeader: {\n heading: 'New to Brand Sales by Geography',\n subHeading: 'Snapshot view of new to brand sales by state.',\n },\n};\n\n// constant for life time value graphs headings and sub headings\nexport const ltvGraphHeader = {\n LineGraphHeader: {\n heading: 'Lifetime Value (LTV) from New to Brand Customers',\n subHeading:\n 'New to brand lifetime value trends by month. Lifetime value includes the value of the new to brand sale and any additional brand halo sales that occur after the new to brand purchase is made.',\n },\n top5BarGraphHeader: {\n heading: 'Top 10 NTB lifetime value generators',\n subHeading:\n 'Shows the top 10 products delivering the highest new to brand lifetime value.',\n },\n monthlyBarGraphHeader: {\n heading: 'Lifetime Sales value by Month',\n subHeading: 'Shows the total new to brand lifetime value trends by months.',\n },\n};\n\nexport const unknownValueInfo =\n 'of impressions are classified as unknown due to Amazon privacy restrictions on data, which might cause a slight discrepancy if similar data is pulled from other sources.';\n\nexport const analysisOptions = [\n {\n value: 'dsp-ppc-overlap-analysis',\n label: 'DSP-PPC Overlap Analysis',\n graphs: [\n {\n value: 'dsp-ppc-overlap-analysis1',\n label: 'Ad Attributed Sales by Ad Exposure Type',\n },\n {\n value: 'dsp-ppc-overlap-analysis2',\n label: 'Share of Conversions and Sales by ad Exposure Type',\n },\n {\n value: 'dsp-ppc-overlap-analysis3',\n label: 'Conversion Rate by Ad Exposure Type',\n },\n ],\n },\n {\n value: 'triple-overlap-analysis',\n label: 'Triple Overlap Analysis',\n graphs: [\n { value: 'triple-overlap-analysis1', label: 'Triple Overlap Analysis' },\n {\n value: 'triple-overlap-analysis2',\n label: 'Unique Reach by Ad Exposure Type',\n },\n {\n value: 'triple-overlap-analysis3',\n label: 'Conversion Rate by Ad Exposure Type',\n },\n ],\n },\n {\n value: 'triple-overlap-value',\n label: 'Triple Overlap Value',\n graphs: [\n {\n value: 'triple-overlap-value1',\n label: 'ASP and AOV by Ad Exposure type with Triple Overlap',\n },\n {\n value: 'triple-overlap-value3',\n label: 'Sortable Metrics by Ad Exposure Type',\n },\n ],\n },\n {\n value: 'new_to_brand_analysis',\n label: 'New to Brand Analysis',\n graphs: [\n { value: 'new_to_brand_analysis1', label: 'Top 10 NTB Sales Generators' },\n { value: 'new_to_brand_analysis2', label: 'New to Brand Sales by Month' },\n ],\n },\n {\n value: 'ntb_geographic_analysis',\n label: 'NTB Geo Analysis- DSP Only',\n graphs: [\n {\n value: 'ntb_geographic_analysis1',\n label: 'Top 5 States with the highest Avg. NTB Order Value',\n },\n { value: 'ntb_geographic_analysis2', label: 'Sortable Data by State' },\n {\n value: 'ntb_geographic_analysis3',\n label: 'New to Brand Sales by Geography',\n },\n ],\n },\n {\n value: 'lifetime_value',\n label: 'Lifetime Value From NTB',\n graphs: [\n {\n value: 'lifetime_value1',\n label: 'Lifetime Value(LTV) from New to Brand Customers',\n },\n {\n value: 'lifetime_value2',\n label: 'Top 10 NTB lifetime value generators',\n },\n ],\n },\n];\n\nexport const adExposureDspPpcOptions = [\n { value: 'all', label: 'Ad Exposure Type' },\n { value: 'DSP&SP', label: 'DSP&SP' },\n { value: 'DSP', label: 'DSP' },\n { value: 'SP', label: 'SP' },\n];\n\nexport const adExposureTripleOverlapOptions = [\n { value: 'all', label: 'Ad Exposure Type' },\n { value: 'DSP', label: 'DSP' },\n { value: 'SP', label: 'SP' },\n { value: 'DSP&SP', label: 'DSP&SP' },\n { value: 'STV&SP', label: 'STV&SP' },\n { value: 'DSP&STV', label: 'DSP&STV' },\n { value: 'DSP&STV&SP', label: 'DSP&STV&SP' },\n];\n\nconst currentEndMonth = new Date();\nconst currentStartMonth = new Date();\nconst getDate = currentEndMonth.getDate();\n\nif (getDate > 17) {\n currentEndMonth.setMonth(currentEndMonth.getMonth() - 1);\n currentStartMonth.setMonth(currentStartMonth.getMonth() - 3);\n} else {\n currentEndMonth.setMonth(currentEndMonth.getMonth() - 2);\n currentStartMonth.setMonth(currentStartMonth.getMonth() - 4);\n}\n\nconst currentStartMonthName = dayjs(currentStartMonth).format('YYYY MMM');\nconst currentEndMonthName = dayjs(currentEndMonth).format('YYYY MMM');\nexport const amcDateOptions = [\n {\n value: '12months',\n label: `Recent Months (${currentStartMonthName} - ${currentEndMonthName})`,\n },\n {\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n];\n\nexport const DoubleOverlapAnalysisTableHeaders = [\n { label: 'DSP&SP', value: 'DSP&SP', color: '#f7c448', property: 'dsp-sp' },\n { label: 'SP', value: 'SP', color: '#8d6fca', property: 'sp' },\n {\n label: 'DSP',\n value: 'DSP',\n color: '#407ca5',\n property: 'dsp',\n },\n];\n\nexport const TripleOverlapAnalysisTableHeaders = [\n { label: 'DSP&SP', value: 'DSP&SP', color: '#f7c448', property: 'dsp-sp' },\n { label: 'SP', value: 'SP', color: '#8d6fca', property: 'sp' },\n {\n label: 'DSP',\n value: 'DSP',\n color: '#407ca5',\n property: 'dsp',\n },\n {\n label: 'DSP&STV&SP',\n value: 'DSP&STV&SP',\n width: '13%',\n color: '#d63649',\n property: 'stv-dsp-sp',\n },\n { label: 'STV', value: 'STV', color: '#81be5a', property: 'stv' },\n { label: 'STV&DSP', value: 'DSP&STV', color: '#0045b4', property: 'stv-dsp' },\n { label: 'STV&SP', value: 'STV&SP', color: '#30a8bd', property: 'stv-sp' },\n];\n\nexport const LTVTableHeaders = [\n {\n label: 'NTB',\n color: '#f7c137',\n property: 'NTB-sales',\n },\n {\n label: 'LTV',\n color: '#407b00',\n property: 'NTB-sales-lifetime-value',\n },\n];\n\nexport const TipleOverlapValueTableHeaders = [\n { label: 'Ad Type', key: 'ad_type', order_by: false, width: '10%' },\n { label: 'Exposure', key: 'exposure', order_by: false, width: '10%' },\n { label: 'Unique Reach', key: 'unique_reach', order_by: true, width: '12%' },\n {\n label: 'Total Impressions',\n key: 'total_impressions',\n order_by: true,\n width: '13%',\n },\n { label: 'Total Units', key: 'total_units', order_by: true, width: '10%' },\n {\n label: 'Total Purchases',\n key: 'total_purchases',\n order_by: true,\n width: '12%',\n },\n {\n label: 'Sales Revenue',\n key: 'total_sale',\n order_by: true,\n width: '12%',\n },\n { label: 'ASP', key: 'asp', order_by: true, width: '7%' },\n { label: 'AOV', key: 'aov', order_by: true, width: '7%' },\n];\n\nexport const TipleOverlapValueMobileTableHeaders = [\n { label: 'Unique Reach', key: 'unique_reach' },\n { label: 'Total Impressions', key: 'total_impressions' },\n { label: 'Total Units', key: 'total_units' },\n { label: 'Total Purchases', key: 'total_purchases' },\n { label: 'Sales Revenue', key: 'total_sale' },\n { label: 'ASP', key: 'asp' },\n { label: 'AOV', key: 'aov' },\n];\n\nexport const ntbGeographicTableHeaders = [\n { label: 'STATES', key: 'state', order_by: false },\n { label: 'NTB ORDERS', key: 'ntb_orders', order_by: true },\n { label: 'NTB SALES', key: 'ntb_sales', order_by: true },\n { label: 'NTB Units', key: 'ntb_units', order_by: true },\n { label: 'NTB AOV', key: 'ntb_aov', order_by: true },\n];\n\nexport const ntbGeographicMobileTableHeaders = [\n { label: 'NTB ORDERS', key: 'ntb_orders' },\n { label: 'NTB SALES', key: 'sales' },\n { label: 'NTB AOV', key: 'ntb_aov' },\n];\n\nexport const USAStateNames = [\n { state: 'Alabama', key: 'US-AL' },\n { state: 'Alaska', key: 'US-AK' },\n { state: 'Arizona', key: 'US-AZ' },\n { state: 'Arkansas', key: 'US-AR' },\n { state: 'California', key: 'US-CA' },\n { state: 'Colorado', key: 'US-CO' },\n { state: 'Connecticut', key: 'US-CT' },\n { state: 'Delaware', key: 'US-DE' },\n { state: 'District of Columbia', key: 'US-DC' },\n { state: 'Florida', key: 'US-FL' },\n { state: 'Georgia', key: 'US-GA' },\n { state: 'Hawaii', key: 'US-HI' },\n { state: 'Idaho', key: 'US-ID' },\n { state: 'Illinois', key: 'US-IL' },\n { state: 'Indiana', key: 'US-IN' },\n { state: 'Iowa', key: 'US-IA' },\n { state: 'Kansas', key: 'US-KS' },\n { state: 'Kentucky', key: 'US-KY' },\n { state: 'Louisiana', key: 'US-LA' },\n { state: 'Maine', key: 'US-ME' },\n { state: 'Maryland', key: 'US-MD' },\n { state: 'Massachusetts', key: 'US-MA' },\n { state: 'Michigan', key: 'US-MI' },\n { state: 'Minnesota', key: 'US-MN' },\n { state: 'Mississippi', key: 'US-MS' },\n { state: 'Missouri', key: 'US-MO' },\n { state: 'Montana', key: 'US-MT' },\n { state: 'Nebraska', key: 'US-NE' },\n { state: 'Nevada', key: 'US-NV' },\n { state: 'New Hampshire', key: 'US-NH' },\n { state: 'New Jersey', key: 'US-NJ' },\n { state: 'New Mexico', key: 'US-NM' },\n { state: 'New York', key: 'US-NY' },\n { state: 'North Carolina', key: 'US-NC' },\n { state: 'North Dakota', key: 'US-ND' },\n { state: 'Ohio', key: 'US-OH' },\n { state: 'Oklahoma', key: 'US-OK' },\n { state: 'Oregon', key: 'US-OR' },\n { state: 'Pennsylvania', key: 'US-PA' },\n { state: 'Rhode Island', key: 'US-RI' },\n { state: 'South Carolina', key: 'US-SC' },\n { state: 'South Dakota', key: 'US-SD' },\n { state: 'Tennessee', key: 'US-TN' },\n { state: 'Texas', key: 'US-TX' },\n { state: 'Utah', key: 'US-UT' },\n { state: 'Vermont', key: 'US-VT' },\n { state: 'Virginia', key: 'US-VA' },\n { state: 'Washington', key: 'US-WA' },\n { state: 'West Virginia', key: 'US-WV' },\n { state: 'Wisconsin', key: 'US-WI' },\n { state: 'Wyoming', key: 'US-WY' },\n];\n\n// Start DSP Audience constants\n\nexport const secondLevelNavBar = [\n { label: 'Standard', value: 'standard' },\n { label: 'Advanced', value: 'advanced' },\n { label: 'Customized', value: 'customized' },\n { label: 'AMC Audience', value: 'dsp-audience' },\n { label: 'Sample', value: 'sample' },\n];\n\nexport const secondLevelNavBarForCustomer = [\n { label: 'Standard', value: 'standard' },\n { label: 'Advanced', value: 'advanced' },\n { label: 'Customized', value: 'customized' },\n // { label: 'DSP Audience' },\n // { label: 'Sample', value: 'sample' },\n];\n\nexport const DSPAudienceHeaders = [\n {\n label: 'Advertiser ID',\n charLimit: 30,\n type: 'text',\n key: 'advertiser_id',\n autoPopulatedField: true,\n },\n {\n label: 'Audience Description',\n charLimit: 50,\n type: 'text',\n key: 'description',\n },\n { label: 'Audience Name', charLimit: 50, type: 'text', key: 'name' },\n {\n label: 'Created Time',\n type: 'date',\n key: 'created_at',\n info: 'Date and Time will be converted in MST timezone.',\n autoPopulatedField: true,\n },\n {\n label: 'Instance ID',\n charLimit: 30,\n type: 'text',\n key: 'instance_id',\n autoPopulatedField: true,\n },\n { label: 'Query Name', type: 'choice', charLimit: 500, key: 'query' },\n { label: 'Refresh Time Window', type: 'radio', key: 'refresh_time_window' },\n {\n label: 'Refresh Rate Days',\n type: 'choice',\n key: 'refresh_rate_days',\n info: 'If refresh rate days is set to 0, the created audience will automatically be set to INACTIVE after 30 days.',\n },\n\n {\n label: 'Time Window Start',\n type: 'date',\n key: 'time_window_start',\n info: 'Date and Time will be converted in MST timezone.',\n },\n {\n label: 'Time Window End',\n type: 'date',\n key: 'time_window_end',\n info: 'Date and Time will be converted in MST timezone.',\n },\n { label: 'Status', type: 'status', key: 'status' },\n];\n\nexport const refreshRateDaysOptions = [\n { label: '1', value: 1 },\n { label: '2', value: 2 },\n { label: '3', value: 3 },\n { label: '4', value: 4 },\n { label: '5', value: 5 },\n { label: '6', value: 6 },\n { label: '7', value: 7 },\n { label: '8', value: 8 },\n { label: '9', value: 9 },\n { label: '10', value: 10 },\n { label: '11', value: 11 },\n { label: '12', value: 12 },\n { label: '13', value: 13 },\n { label: '14', value: 14 },\n { label: '15', value: 15 },\n { label: '16', value: 16 },\n { label: '17', value: 17 },\n { label: '18', value: 18 },\n { label: '19', value: 19 },\n { label: '20', value: 20 },\n { label: '21', value: 21 },\n];\n\n// audience expansion type options\nexport const audienceExpansionTypeOptions = [\n {\n label: 'Most Similar',\n value: 'MOST_SIMILAR',\n tooltipInfo:\n 'Most Similar: The most similar audience will have between 500K & 1MM members.',\n },\n {\n label: 'Similar',\n value: 'SIMILAR',\n tooltipInfo:\n 'Similar: The size of this audience will be between 1.5MM-2.5MM, and will include \"Most similar\" lookalike population.',\n },\n {\n label: 'Balanced',\n value: 'BALANCED',\n tooltipInfo:\n 'Balanced: The size of this audience will be between 2MM-5MM, and will include \"Similar\" lookalike population.',\n },\n {\n label: 'Broad',\n value: 'BROAD',\n tooltipInfo:\n 'Broad: The size of this audience will be between 2.5MM-7.5MM, and will include \"Balanced\" lookalike population.',\n },\n {\n label: 'Most Broad',\n value: 'MOST_BROAD',\n tooltipInfo:\n 'Most Broad: This size of this audience will be between 3MM-10MM, and will include \"Broad\" lookalike population.',\n },\n];\n\nexport const AMCDashboardNav = [\n { label: 'BBE-AMC Summary', value: 'amc-summary' },\n { label: 'Spreetail-AMC Summary tab', value: 'spreetail-amc-summary-tab' },\n { label: 'AMC Audience Summary', value: 'amc-audience-summary' },\n { label: 'Sample', value: 'sample' },\n { label: 'AMC Instance', value: 'amc-instance' },\n];\n\nexport const orderByFilterOptions = [\n {\n label: 'Most Recent to Oldest',\n value: '-created_at',\n },\n {\n label: 'Most Oldest to Recent',\n value: 'created_at',\n },\n];\n\nexport const statusFilterOptions = [\n {\n label: 'All Statuses',\n value: 'all',\n },\n {\n label: 'Started',\n value: 'started',\n },\n {\n label: 'Running',\n value: 'running',\n },\n {\n label: 'Pending',\n value: 'pending',\n },\n {\n label: 'Failed',\n value: 'failed',\n },\n {\n label: 'Successful',\n value: 'successful',\n },\n];\n\nexport const timeFrameOptionsOfAMCAudience = [\n {\n value: 'current_month',\n label: 'Current Month',\n sub: '',\n isDisabled: false,\n },\n {\n value: 'month',\n label: 'Current Month',\n sub: 'vs Previous month',\n isDisabled: false,\n },\n {\n value: 'current_week',\n label: 'Current Week',\n sub: '',\n isDisabled: false,\n },\n {\n value: 'week',\n label: 'Current Week',\n sub: 'vs Previous Week',\n isDisabled: false,\n },\n {\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n];\n\nexport const AMCAudienceSummaryHeaders = [\n {\n label: 'BP Name',\n charLimit: 30,\n type: 'text',\n key: 'bp_name',\n },\n {\n label: 'Advertiser ID',\n charLimit: 30,\n type: 'text',\n key: 'advertiser_id',\n autoPopulatedField: true,\n },\n {\n label: 'Audience Description',\n charLimit: 50,\n type: 'text',\n key: 'description',\n },\n { label: 'Audience Name', charLimit: 50, type: 'text', key: 'name' },\n {\n label: 'Created Time',\n type: 'date',\n key: 'created_at',\n info: 'Date and Time will be converted in MST timezone.',\n autoPopulatedField: true,\n },\n {\n label: 'Instance ID',\n charLimit: 30,\n type: 'text',\n key: 'instance_id',\n autoPopulatedField: true,\n },\n { label: 'Query Name', type: 'choice', charLimit: 500, key: 'query' },\n { label: 'Refresh Time Window', type: 'radio', key: 'refresh_time_window' },\n {\n label: 'Refresh Rate Days',\n type: 'choice',\n key: 'refresh_rate_days',\n info: 'If refresh rate days is set to 0, the created audience will automatically be set to INACTIVE after 30 days.',\n },\n {\n label: 'Time Window Start',\n type: 'date',\n key: 'time_window_start',\n info: 'Date and Time will be converted in MST timezone.',\n },\n {\n label: 'Time Window End',\n type: 'date',\n key: 'time_window_end',\n info: 'Date and Time will be converted in MST timezone.',\n },\n { label: 'Status', type: 'status', key: 'status' },\n];\n\nexport const AMCAudienceMetricsConstants = [\n {\n className: 'pr-1 pl-0',\n metricsId: 'BT-AmcAudience-All',\n metricsLabel: 'Total No. of AMC Audiences',\n metricsKey: 'total_dsp_audience',\n prefix: '',\n suffix: '',\n decimalDigits: 0,\n },\n {\n className: 'pr-0 pr-md-1 pl-1',\n metricsId: 'BT-AmcAudience-Active',\n metricsLabel: 'Total No. of Active AMC Audiences',\n metricsKey: 'total_active_dsp_audience',\n prefix: '',\n suffix: '',\n decimalDigits: 0,\n },\n {\n className: 'pr-1 pl-0 pl-md-1',\n metricsId: 'BT-AmcAudience-Failed',\n metricsLabel: 'Total No. of Failed AMC Audiences',\n metricsKey: 'total_failed_dsp_audience',\n prefix: '',\n suffix: '',\n decimalDigits: 0,\n },\n];\n","// BBE Double Overlap Summary\nexport const bbeSummaryOptions = [\n { value: 'bbe-double-overlap-summary', label: 'BBE Double Overlap Summary' },\n { value: 'bbe-metrics', label: 'Metrics' },\n { value: 'bbe-new-to-brand-analysis', label: 'New to Brand Analysis' },\n];\n\n// Date filter options\nconst currentYear = new Date()?.getFullYear();\n\nexport const amcDashboardDateOptions = [\n { value: '12months', label: `${currentYear}` },\n {\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n];\n\n// BBE Summary Brand Partner Names.\nexport const bbeProductType = [\n { value: 'all', label: 'All Product Type' },\n { value: 'DSP', label: 'DSP' },\n { value: 'sponsored_display', label: 'Sponsored display' },\n { value: 'sponsored_products', label: 'Sponsored Product' },\n];\n\n// no graph data mesage.\nexport const noGraphMessage =\n 'Sorry! No AMC historical data available yet. Once the AMC Data Insights are available, the reports will be automatically updated in this panel.';\n\n// currency Symbol.\nexport const currencySymbol = '$';\n\n// constant for BBE Summary double overlap analysis graphs headings and sub headings\nexport const AMCDashboardGraphHeader = {\n BbeSummaryConversionLineGraph: {\n heading: 'Conversion',\n subHeading: 'Conversion based on unique DSP DPV & unique SP Clicks.',\n },\n BbeSummaryAdSalesPieChart: {\n heading: 'Ad Sales vs Ad Exposure Type',\n subHeading: '',\n },\n BbeSummaryAdSalesLineGraph: {\n heading: 'DSP vs SP Total Product Sales',\n subHeading: '',\n },\n MetricsGraph: {\n heading: 'Metrics',\n subHeading: '',\n },\n NTBGraph: {\n heading: 'NTB Analysis',\n subHeading: 'All sales metrics reflect Ad Sales',\n },\n};\n\nexport const allGraphLabels = {\n metrixGraphLabel: {\n aov: 'aov',\n asp: 'asp',\n uniqueReach: 'unique reach',\n impressions: 'impressions & clicks',\n },\n ntbGraphLabel: {\n adSalesLineGraph: 'ad sale of ntb vs total sale',\n adProductStackgraph:\n 'ad product type % split of ntb sale from total ntb sale',\n adproductXYGraph: '% ntb sale/total sale by ad product type',\n },\n};\n\nexport const metricsExposureType = [\n {\n id: 1,\n label: 'Total',\n value: 'DSP&SP',\n },\n\n {\n id: 3,\n label: 'DSP',\n value: 'DSP',\n },\n {\n id: 4,\n label: 'SP',\n value: 'SP',\n },\n];\n","// playbook tabs constant\nexport const playbookTabsConstants = [\n {\n label: 'Onboarding',\n key: 'onboarding',\n type: 'onboarding-playbook',\n },\n {\n label: 'Playbook',\n key: 'playbook',\n type: 'main-playbook',\n },\n {\n label: 'Standard Monthly',\n key: 'standard-monthly',\n type: 'main-playbook',\n },\n {\n label: 'Additional One-Time',\n key: 'additional-one-time',\n type: 'main-playbook',\n },\n {\n label: 'Onboarding',\n key: 'onboarding-gray',\n type: 'onboarding-playbook',\n },\n];\n\n// account type constants\nexport const playbookAccountTypeOptions = [\n { label: 'Seller', value: 'Seller' },\n { label: 'Vendor', value: 'Vendor' },\n];\n\n// jira status constant\nexport const jiraStatus = [\n {\n label: 'To Do',\n status: 'to_do',\n },\n {\n label: 'In Progress',\n status: 'in_progress',\n },\n {\n label: 'Review',\n status: 'review',\n },\n {\n label: 'Done',\n status: 'done',\n },\n];\n\n// playbook quarter user messages\nexport const pastPlaybookTaskMessage =\n 'There are no tasks created for this period.';\nexport const currentPlaybookTaskMessage =\n 'There are no tasks created for this month.';\nexport const noTaskAssignedMessage =\n 'There are no tasks assigned to the team member selected.';\n\n// no ervice available message for playbook task\nexport const noStandardServiceMessage =\n 'BP doesn’t have any Standard Monthly service for this month yet. Please check the agreement section';\n\nexport const noOneTimeServiceMessage =\n 'BP doesn’t have any Additional One-Time service for this month yet. Please check the agreement section';\n\nexport const playbookTableHeader = [\n {\n label: 'Services',\n key: 'services',\n width: '40%',\n },\n {\n label: 'Marketplace',\n key: 'marketplace',\n width: '15%',\n },\n {\n label: 'TEAM',\n key: 'team',\n width: '10%',\n },\n {\n label: 'DUE DATE',\n key: 'due-date',\n width: '10%',\n },\n {\n label: 'ASSIGNEE',\n key: 'assignee',\n width: '10%',\n },\n {\n label: 'STATUS',\n key: 'status',\n width: '15%',\n },\n];\n\nexport const playbookTableHeaderBPView = [\n {\n label: 'DELIVERABLES',\n key: 'deliverables',\n width: '50%',\n },\n\n {\n label: 'TEAM',\n key: 'team',\n width: '15%',\n },\n\n {\n label: 'STATUS',\n key: 'status',\n width: '15%',\n },\n];\n\nexport const onboardingPlaybookTableHeader = [\n {\n label: 'DELIVERABLES',\n key: 'deliverables',\n width: '50%',\n },\n {\n label: 'TEAM',\n key: 'team',\n width: '15%',\n },\n {\n label: 'DUE DATE',\n key: 'due-date',\n width: '10%',\n },\n {\n label: 'ASSIGNEE',\n key: 'assignee',\n width: '10%',\n },\n {\n label: 'STATUS',\n key: 'status',\n width: '15%',\n },\n];\nexport const playbookSummaryMonthOptions = [\n {\n label: '1 Month',\n value: '1',\n },\n {\n label: '2 Month',\n value: '2',\n },\n {\n label: '3 Month',\n value: '3',\n },\n {\n label: 'Current',\n value: 'current',\n },\n];\n","export const revenuMetricsSubTypes = [\n {\n id: 1,\n label: 'Total',\n value: 'revenueTotal',\n },\n\n {\n id: 3,\n label: 'PPC',\n value: 'revenuePpc',\n },\n {\n id: 4,\n label: 'DSP',\n value: 'revenueDsp',\n },\n];\n\nexport const adSpendMetricsSubTypesOptions = [\n {\n id: 1,\n label: 'Total',\n value: 'adSpendTotal',\n },\n\n {\n id: 3,\n label: 'PPC',\n value: 'adSpendPpc',\n },\n {\n id: 4,\n label: 'DSP',\n value: 'adSpendDsp',\n },\n];\n\nexport const adSpendMetricsSubTypes = [\n {\n id: 1,\n label: 'Total',\n value: 'adSpendTotal',\n isShowTooltip: true,\n message: 'Sum of PPC and DSP Spend',\n },\n {\n id: 3,\n label: 'PPC',\n value: 'sponsoredAdSpend',\n isShowTooltip: false,\n },\n {\n id: 4,\n label: 'DSP',\n value: 'dspSpend',\n isShowTooltip: false,\n },\n];\n\nexport const SummaryGraphColorSet = {\n revenueTotal: '#0045b4',\n revenueOrganic: '#74b035',\n revenuePpc: '#C84EC6',\n revenueDsp: '#E05D37',\n sponsoredAdSpend: '#89A43C',\n dspSpend: '#A04848',\n unitsSold: '#8C54FF',\n traffic: '#30A8BD',\n conversion: '#D6A307',\n adSpendTotal: '#33beffd6',\n // ad spend\n adSpendPpc: '#a47b40d6',\n adSpendDsp: '#52d045d6',\n tacos: '#00be8e',\n};\n\nexport const tooltipNames = {\n revenueTotal: 'revenue Total',\n revenueOrganic: 'Revenue Organic ',\n revenuePpc: 'Revenue PPC',\n revenueDsp: 'Revenue DSP',\n sponsoredAdSpend: 'Sponsored Ad Spend',\n dspSpend: 'DSP Spend',\n unitsSold: 'Units Sold',\n traffic: 'Traffic',\n conversion: 'Conversion',\n adSpendTotal: 'Ad Spend Total',\n // ad spend\n adSpendPpc: 'Ad Spend PPC',\n adSpendDsp: 'Ad Spend DSP',\n tacos: 'Tacos',\n};\n\nexport const metricsResponseKey = {\n revenue: 'revenue',\n revenueTotal: 'revenue',\n revenueOrganic: 'revenue_organic',\n revenuePpc: 'revenue_ppc',\n revenueDsp: 'revenue_dsp',\n sponsoredAdSpend: 'sponsored_ad_spend',\n dspSpend: 'dsp_spends',\n unitsSold: 'units_sold',\n traffic: 'traffic',\n conversion: 'conversion',\n adSpendTotal: 'ad_spend_total',\n adSpend: 'sponsored_ad_spend',\n // ad spend\n adSpendPpc: 'sponsored_ad_spend',\n adSpendDsp: 'dsp_spends',\n tacos: 'tacos',\n};\n\nexport const metricsClasses = {\n revenueTotal: 'ad-sales-active',\n revenueOrganic: 'revenue-organic-active',\n revenuePpc: 'ad-click-active',\n revenueDsp: 'ad-cos-active',\n revenue: 'ad-sales-active',\n sponsoredAdSpend: 'sponsoredAdSpend-active',\n dspSpend: 'ad-clickrate-active',\n traffic: 'ad-conversion-active',\n unitsSold: 'ad-spend-active',\n conversion: 'impression-active',\n adSpendTotal: 'ad-spend-total-active',\n // ad spend\n adSpendPpc: 'ad-spend-ppc-active',\n adSpendDsp: 'ad-spend-dsp-active',\n tacos: 'sales-tacos-active',\n};\n\nexport const salesMetricsClasses = {\n revenueTotal: 'ad-sales-active',\n revenueOrganic: 'revenue-organic-active',\n revenuePpc: 'ad-click-active',\n revenueDsp: 'ad-cos-active',\n revenue: 'ad-sales-active',\n sponsoredAdSpend: 'sponsoredAdSpend-active',\n dspSpend: 'ad-clickrate-active',\n traffic: 'ad-conversion-active',\n unitsSold: 'ad-spend-active',\n conversion: 'impression-active',\n adSpendTotal: 'ad-spend-total-active',\n // ad spend\n adSpendPpc: 'ad-spend-ppc-active',\n adSpendDsp: 'ad-spend-dsp-active',\n tacos: 'sales-tacos-active',\n};\n\nexport const metricsTootlNames = {\n revenue: 'revenue',\n revenueTotal: 'total sales',\n revenueOrganic: 'organic',\n revenuePpc: 'PPC',\n revenueDsp: 'DSP',\n sponsoredAdSpend: 'PPC',\n dspSpend: 'DSP',\n unitsSold: 'units sold',\n traffic: 'traffic',\n conversion: 'conversion',\n adSpendTotal: 'Ad Spend',\n adSpend: 'sponsored ad spend',\n // ad spend\n adSpendPpc: 'PPC Spend ',\n adSpendDsp: 'DSP Spend ',\n tacos: 'TACOS',\n};\n\nexport const summaryRestockLimitHeader = [\n {\n key: 'storage_type',\n label: 'Storage Type',\n width: '20%',\n },\n {\n key: 'utilization',\n label: 'Utilization',\n width: '20%',\n },\n {\n key: 'max_shipment',\n label: 'Max shipment',\n width: '20%',\n },\n {\n key: 'open_shipment',\n label: 'Open shipment',\n width: '20%',\n },\n {\n key: 'on_hand',\n label: 'Onhand',\n width: '20%',\n },\n];\n\nexport const summaryRestockLimitStorageType = [\n {\n key: 'standard',\n label: 'Standard Size',\n },\n {\n key: 'oversize',\n label: 'Oversize',\n },\n {\n key: 'apparel',\n label: 'Apparel',\n },\n {\n key: 'footwear',\n label: 'Footwear',\n },\n {\n key: 'extra_large',\n label: 'Extra Large',\n },\n\n {\n key: 'flammable',\n label: 'Flammable',\n },\n\n {\n key: 'aerosol',\n label: 'Aerosol',\n },\n];\n\nexport const asinMetrics = [\n {\n key: 'overstocked',\n label: 'Overstocked ASINS',\n asinValue: 'overstocked',\n percentChnage: 'overstocked_percent_change',\n },\n {\n key: 'understocked',\n label: 'Understocked ASINS',\n asinValue: 'understocked',\n percentChnage: 'understocked_percent_change',\n },\n {\n key: 'standed',\n label: 'Stranded ASINS',\n asinValue: 'available',\n percentChnage: 'percent_change',\n },\n];\n","import queryString from 'query-string';\n\nexport const pageTitle = [\n {\n type: 'url',\n url: `/signin`,\n title: 'Next | Sign In',\n },\n\n // Dashboard main links\n {\n type: 'url',\n url: `/dashboard/bbe-Goal/`,\n title: 'Next | Home',\n },\n {\n type: 'url',\n url: `/dashboard/sales`,\n title: 'Next | Sales Dashboard',\n },\n {\n type: 'url',\n url: `/dashboard/sponsored`,\n title: 'Next | Sponsored Advertising Dashboard',\n },\n {\n type: 'url',\n url: `/dashboard/dsp`,\n title: 'Next | DSP Advertising Dashboard',\n },\n {\n type: 'url',\n url: `/dashboard/inventory`,\n title: 'Next | Inventory Dashboard',\n },\n\n {\n type: 'url',\n url: `/dashboard/finance/retainer`,\n title: 'Next | Monthly Retainer',\n },\n {\n type: 'url',\n url: `/dashboard/finance/rev-share`,\n title: 'Next | Rev Share',\n },\n {\n type: 'url',\n url: `/dashboard/finance/up-sell`,\n title: 'Next | Upsell',\n },\n {\n type: 'url',\n url: `/dashboard/finance/dsp`,\n title: 'Next | DSP',\n },\n\n {\n type: 'url',\n url: `/dashboard/finance/amc`,\n title: 'Next | AMC',\n },\n\n {\n type: 'url',\n url: `/dashboard/finance/dsp-billing`,\n title: 'Next | DSP Billing',\n },\n\n {\n type: 'url',\n url: `/dashboard/amcDashboard`,\n title: 'Next | AMC Insights',\n },\n\n {\n type: 'url',\n url: `/dashboard/finance/pendingApprovals`,\n title: 'Next | Pending Approvals',\n },\n\n {\n type: 'url',\n url: `/dashboard/pendingApprovals`,\n title: 'Next | Pending Approvals',\n },\n\n {\n type: 'url',\n url: `/customer`,\n title: 'Next | Partners',\n },\n // KB page title- start\n {\n type: 'url',\n url: `/collections/`,\n title: 'Next | Knowledge Base',\n },\n\n {\n type: 'url',\n url: `/collections/aff1eb5e-7bbe-404e-9082-aabd7c492526/`,\n title: 'Next | KB-Account Management',\n },\n {\n type: 'url',\n url: `/collections/5e0c6c5e-122c-4172-a421-a5dc346d16bc/`,\n title: 'Next | KB-Advertising',\n },\n {\n type: 'url',\n url: `/collections/4a3e460e-de0f-45d0-ada4-3c0eb03e3968/`,\n title: 'Next | KB-Amazon 101',\n },\n\n {\n type: 'url',\n url: `/collections/28233f9a-3584-4c87-a72e-276794ddeb94/`,\n title: 'Next | KB-BBE',\n },\n {\n type: 'url',\n url: `/collections/c3421b19-e2a7-4feb-a371-026605cf2932/`,\n title: 'Next | KB-Catalog',\n },\n {\n type: 'url',\n url: `/collections/bd420217-adc1-4784-b85c-a7eceaaf4b0d/`,\n title: 'Next | KB-Company Knowledge',\n },\n {\n type: 'url',\n url: `/collections/61835830-0a80-4575-a662-6da4af86539d/`,\n title: 'Next | KB-Creative',\n },\n {\n type: 'url',\n url: `/collections/c5b50a22-cd55-4d1e-9105-2f1e945b7d02/`,\n title: 'Next | KB-Customer Service',\n },\n {\n type: 'url',\n url: `/collections/6c220883-3b29-49c6-bf41-96d6a7be8128/`,\n title: 'Next | KB-Executive Assistants',\n },\n {\n type: 'url',\n url: `/collections/619c5eb3-3fcf-480d-a96f-7f15d398ac9d/`,\n title: 'Next | KB-Getting Started with Guru',\n },\n {\n type: 'url',\n url: `/collections/e1c87e3e-624d-4df8-83e1-ba200f517e1f/`,\n title: 'Next | KB-Human Resources',\n },\n {\n type: 'url',\n url: `/collections/4538b00b-ab81-47ea-8e37-fb8632a7fb37/`,\n title: 'Next | KB-International Expansion Services',\n },\n {\n type: 'url',\n url: `/collections/fa4546eb-bc2c-45b0-90d3-f8322f90e8ca/`,\n title: 'Next | KB-Logistics',\n },\n {\n type: 'url',\n url: `/collections/402e3293-6045-4484-9cec-f17c5d908473/`,\n title: 'Next | KB-Marketing',\n },\n {\n type: 'url',\n url: `/collections/fc2dfb34-31ca-4cb9-8d5e-0c00deaacacd/`,\n title: 'Next | KB-NEXT',\n },\n {\n type: 'url',\n url: `/collections/708b6313-7f25-4fa5-aa21-e3e486f31628/`,\n title: 'Next | Productivity Tools',\n },\n {\n type: 'url',\n url: `/collections/8a8dd5fd-f957-409b-88b2-f18b217cedb8/`,\n title: 'Next | KB-Sales',\n },\n {\n type: 'url',\n url: `/collections/cab2dcbe-bed2-41a8-817f-cb5e8d21f011/`,\n title: 'Next | KB-Seller Support - Seller Performance',\n },\n {\n type: 'url',\n url: `/collections/e69b3020-6cb6-4ecd-bf39-732520a8d7fd/`,\n title: 'Next | KB-Technology',\n },\n {\n type: 'url',\n url: `/collections/1e63bbfb-9c12-4b0b-b714-bb76f2ecae3f/`,\n title: 'Next | KB-Vendor Collection',\n },\n\n // KB page title- END\n\n {\n type: 'url',\n url: `/reports/standard`,\n title: 'Next | Standard Reports',\n },\n {\n type: 'url',\n url: `/reports/customized`,\n title: 'Next | Customized Reports',\n },\n {\n type: 'url',\n url: `/reports/summary`,\n title: 'Next | Reporting Dashboard',\n },\n {\n type: 'url',\n url: `/agreement/`,\n title: 'Next | Agreements',\n },\n\n {\n type: 'url',\n url: `/company-details/`,\n title: 'Next | Company Details',\n },\n // Agreement Constants\n {\n type: 'nav',\n url: `recurring`,\n title: 'Next | Recurring Agreement',\n },\n {\n type: 'nav',\n url: `one-time`,\n title: 'Next | One Time Agreement',\n },\n // Performance Constants\n {\n type: 'nav',\n url: `salePerformance`,\n title: 'Next | BP Sales Performance',\n },\n {\n type: 'nav',\n url: `adPerformance`,\n title: 'Next | BP Sponsored Ad Performance',\n },\n {\n type: 'nav',\n url: `dspPerformance`,\n title: 'Next | BP DSP Ad Performance',\n },\n {\n type: 'nav',\n url: `amcInsights`,\n title: 'Next | BP AMC Insights',\n },\n\n {\n type: 'nav',\n url: `creativeProjects`,\n title: 'Next | BP Creative Projects',\n },\n\n // Billing Constants\n {\n type: 'nav',\n url: `retainer`,\n title: 'Next | Monthly Retainer Billing',\n },\n {\n type: 'nav',\n url: `rev share`,\n title: 'Next | Rev Share Billing',\n },\n {\n type: 'nav',\n url: `upsell`,\n title: 'Next | Upsell Billing',\n },\n {\n type: 'nav',\n url: `dsp service`,\n title: 'Next | Dsp Service Billing',\n },\n\n {\n type: 'nav',\n url: `amc`,\n title: 'Next | AMC Service Billing',\n },\n {\n type: 'nav',\n url: `billing-details`,\n title: 'Next | Billing Details',\n },\n\n // inventoryManagement\n {\n type: 'tab',\n url: `inventoryManagement`,\n title: 'Next | Inventory Management',\n },\n // Company Details\n {\n type: 'tab',\n url: `company-details`,\n title: 'Next | Company Details',\n },\n // Activity\n {\n type: 'tab',\n url: `activity`,\n title: 'Next | Activity',\n },\n // Partner Feedback\n {\n type: 'tab',\n url: `feedback`,\n title: 'Next | Partner Feedback',\n },\n\n // PlayBook Constants\n {\n type: 'nav',\n url: `onboarding`,\n title: 'Next | Onboarding Playbook',\n },\n {\n type: 'nav',\n url: `playbook`,\n title: 'Next | Playbook',\n },\n {\n type: 'nav',\n url: `standard-monthly`,\n title: 'Next | Standard Monthly Playbook',\n },\n {\n type: 'nav',\n url: `additional-one-time`,\n title: 'Next | Additional One Time Playbook',\n },\n\n // Goals and Strategy\n {\n type: 'tab',\n url: `goals`,\n title: 'Next | Forecast',\n },\n {\n type: 'tab',\n url: `cos`,\n title: 'Next | COS',\n },\n\n // Customer Side\n {\n type: 'tab',\n url: `dashboard`,\n title: 'Next | BP Dashboard',\n },\n {\n type: 'tab',\n url: `reports`,\n title: 'Next | BP Reports',\n },\n];\n\nlet found = false;\n\nconst returnPageTitle = (param, location) => {\n return pageTitle?.forEach((item) => {\n if (item.url === param) {\n document.title = item.title;\n found = true;\n }\n const params = queryString.parse(location.search);\n\n if (item.url === '/dashboard/amcDashboard') {\n if (params?.subNav === 'amc-summary') {\n document.title = 'Next | AMC Insights | BBE-AMC Summary';\n }\n if (params?.subNav === 'spreetail-amc-summary-tab') {\n document.title = 'Next | AMC Insights | Spreetail-AMC Summary';\n }\n if (params?.subNav === 'sample') {\n document.title = 'Next | AMC Insights | Sample Dashboard';\n }\n if (params?.subNav === 'amc-audience-summary') {\n document.title = 'Next | AMC Insights | Rule based Audience';\n }\n if (params?.subNav === 'amc-instance') {\n document.title = 'Next | AMC Insights | AMC Instance';\n }\n if (params?.amcAudience === 'lookalike') {\n document.title = 'Next | AMC Insight | Lookalike Audience';\n }\n }\n\n if (item.url === 'amcInsights') {\n if (params?.nav === 'amcInsights') {\n if (params?.subNav === 'standard') {\n document.title = 'Next | BP AMC Insight | Standard';\n }\n if (params?.subNav === 'advanced') {\n document.title = 'Next | BP AMC Insight | Advanced';\n }\n if (params?.subNav === 'customized') {\n document.title = 'Next | BP AMC Insight | Customized';\n }\n if (params?.subNav === 'sample') {\n document.title = 'Next | BP AMC Insight | Sample';\n }\n if (params?.subNav === 'dsp-audience') {\n document.title = 'Next | BP AMC Insight | Rule based Audience';\n }\n if (params?.amcAudience === 'lookalike') {\n document.title = 'Next | BP AMC Insight | Lookalike Audience';\n }\n }\n found = true;\n }\n\n if (param?.includes('customer') && param?.includes('agreement')) {\n found = true;\n document.title = 'Next | Agreement';\n }\n if (param?.includes('account-setup') && param?.includes('account-setup')) {\n found = true;\n document.title = 'Next | Account Setup';\n }\n });\n};\n\n// Return proper page title\nexport const pageTitleConditions = (location, data = null) => {\n found = false;\n const params = queryString.parse(location.search);\n\n if (Object.entries(params)?.length) {\n if (params.nav && params.nav !== 'undefined') {\n returnPageTitle(params.nav, location);\n } else {\n returnPageTitle(params.tab, location);\n }\n }\n if (params?.board || location?.pathname?.includes('collections')) {\n const colletionName = pageTitle.filter(\n (item) => item.url === location.pathname,\n );\n\n if (colletionName?.length && data?.title) {\n document.title = `${colletionName[0].title}-${data?.title}`;\n found = true;\n }\n } else {\n returnPageTitle(location.pathname, location);\n }\n if (!found) {\n document.title = 'Next';\n }\n};\n","import {\n PATH_BBE_GOAL_DASHBOARD,\n PATH_CUSTOMER_LIST,\n PATH_ARTICLE_LIST,\n PATH_REPORTS_SECTION,\n} from './RouteConstants';\n\nconst GlobalMenu = [\n {\n label: 'Home',\n pathname: 'bbe-Goal',\n pathToRedirect: PATH_BBE_GOAL_DASHBOARD,\n },\n {\n label: 'Dashboard',\n },\n {\n label: 'Partners',\n pathname: 'customer',\n pathToRedirect: PATH_CUSTOMER_LIST,\n },\n {\n label: 'Knowledge Base',\n pathname: 'collections',\n pathToRedirect: PATH_ARTICLE_LIST,\n },\n {\n label: 'Reports',\n pathname: 'reports',\n pathToRedirect: PATH_REPORTS_SECTION,\n },\n];\n\nexport default GlobalMenu;\n","const filtersOption = {\n notes: [\n { label: 'All Notes' },\n { label: 'My Notes', value: 'my_notes' },\n { label: 'Team Notes' },\n ],\n teams: [\n { team: 'Sales Team' },\n { team: 'On-boarding Team' },\n { team: 'BGS Team' },\n { team: 'Creative Team' },\n { team: 'Advertising Team' },\n { team: 'Finance Team' },\n ],\n archived: [\n { label: 'Hide archived', value: 'hide' },\n { label: 'Show archived', value: '' },\n { label: 'Only show archived', value: 'only_archived' },\n ],\n};\nexport default filtersOption;\n","const userDetails = [\n {\n key: 'first_name',\n label: 'First name',\n placeholder: 'Enter First name',\n type: 'text',\n section: 1,\n pattern: {\n value: /^[0-9a-zA-Z_-]*$/i,\n message: 'Special characters are not allowed.',\n },\n },\n\n {\n key: 'email',\n label: 'Email',\n placeholder: 'Enter email',\n type: 'text',\n section: 1,\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: 'Invalid email address.',\n },\n },\n {\n key: 'last_name',\n label: 'Last name',\n placeholder: 'Enter Last name',\n type: 'text',\n section: 2,\n pattern: {\n value: /^[0-9a-zA-Z_-]*$/i,\n message: 'Special characters are not allowed.',\n },\n },\n {\n key: 'phone_number',\n label: 'Phone',\n placeholder: 'Enter Phone',\n type: 'text',\n section: 2,\n },\n {\n key: 'old_password',\n label: 'Current password',\n placeholder: 'Enter current password',\n type: 'password',\n section: 3,\n },\n {\n key: 'new_password',\n label: 'New password',\n placeholder: 'Enter new password',\n type: 'password',\n section: 4,\n },\n];\n\nexport default userDetails;\n","const commonLog = {\n dspSignOfflog: [\n 'submitted a standard invoice request for',\n 'canceled a standard invoice request for',\n 'submitted a one-time invoice request for',\n 'canceled a one-time invoice request for',\n 'submitted a pause request for',\n 'canceled a pause request for',\n 'has approved',\n 'has paused',\n 'has approved pausing',\n 'has rejected',\n 'has rejected pausing',\n ],\n cancelPauseAggrementLog: [\n 'submitted a cancellation request for',\n 'submitted a pausing request for',\n 'approved a cancellation request for',\n 'rejected a cancellation request for',\n 'approved a pausing request for',\n 'rejected a pausing request for',\n ],\n customizedReportLog: ['created', 'downloaded', 'viewed', 'updated'],\n};\n\nexport default commonLog;\n","export const creativeAfterDaysOptions = [\n { value: '30', label: 'After 30 Days' },\n { value: '60', label: 'After 60 Days' },\n { value: '90', label: 'After 90 Days' },\n { value: '120', label: 'After 120 Days' },\n];\n\nexport const projectASINTableHeader = [\n {\n label: 'Products',\n key: 'product',\n width: '10px',\n total: '',\n avg: '',\n prefix: '',\n suffix: '',\n show_info: false,\n asin_view: '',\n changedValueKey: '',\n isShow2Decimal: false,\n },\n {\n label: 'Ordered Product Sales',\n key: 'ordered product sales',\n width: '20%',\n total: 'total_ordered_prod_sales',\n avg: 'avg_ordered_prod_sale',\n prefix: '$',\n suffix: '',\n show_info: false,\n asin_view: 'total_ordered_prod_sales',\n changedValueKey: 'abs_change_total_ordered_prod_sales',\n isShow2Decimal: true,\n },\n\n {\n label: 'Units Ordered',\n key: 'units ordered',\n width: '10%',\n total: 'total_units_ordered',\n avg: 'avg_units_ordered',\n prefix: '',\n suffix: '',\n show_info: false,\n asin_view: 'total_units_ordered',\n changedValueKey: 'abs_change_total_units_ordered',\n isShow2Decimal: false,\n },\n\n {\n label: 'Average Units',\n key: 'average units',\n width: '10%',\n avg: 'avg_average_units',\n suffix: '',\n prefix: '',\n show_info: false,\n asin_view: 'avg_average_units',\n changedValueKey: 'abs_change_avg_average_units',\n isShow2Decimal: false,\n },\n\n {\n label: 'Page Views',\n key: 'page views',\n width: '10%',\n total: 'total_page_view',\n avg: 'avg_page_view',\n suffix: '',\n prefix: '',\n show_info: true,\n asin_view: 'total_page_view',\n info_message:\n \"There might be some discrepancy, double check with Amazon SC/VC. We're working on 100% accuracy.\",\n changedValueKey: 'abs_change_total_page_view',\n isShow2Decimal: false,\n },\n\n {\n label: 'Sessions',\n key: 'sessions',\n width: '10%',\n total: 'total_session',\n avg: 'avg_session',\n suffix: '',\n prefix: '',\n show_info: true,\n asin_view: 'total_session',\n info_message:\n \"There might be some discrepancy, double check with Amazon SC/VC. We're working on 100% accuracy.\",\n changedValueKey: 'abs_change_total_session',\n isShow2Decimal: false,\n },\n\n {\n label: 'Buy Box%',\n key: 'buy box%',\n width: '10%',\n avg: 'avg_bbe_percentage',\n suffix: '%',\n prefix: '',\n show_info: true,\n asin_view: 'avg_bbe_percentage',\n info_message:\n 'There might be some discrepancy(as this column is dependent on page view and session).',\n changedValueKey: 'abs_change_avg_bbe_percentage',\n isShow2Decimal: true,\n },\n\n {\n label: 'Conversion',\n key: 'conversion',\n width: '10%',\n avg: 'avg_conversion',\n suffix: '%',\n prefix: '',\n show_info: true,\n asin_view: 'avg_conversion',\n info_message:\n 'There might be some discrepancy(as this column is dependent on page view and session).',\n changedValueKey: 'abs_change_avg_conversion',\n isShow2Decimal: true,\n },\n];\n\nexport const dataAfterCompletion = [\n { value: '30_days_prior', label: '30 Days prior completion' },\n { value: '30_days_after', label: '30 Days after completion' },\n { value: '60_days_after', label: '60 Days after completion' },\n { value: '90_days_after', label: '90 Days after completion' },\n { value: '120_days_after', label: '120 Days after completion' },\n];\n\nexport const PerformanceSumarryTiles = [\n {\n key: 'ordered_product_sales',\n name: 'Ordered Product Sales',\n color: '#0045b4',\n symbol: 'currency',\n dataAvailabletoolTip:\n 'Sum the sales revenue that taken place after a selected duration',\n decimal: true,\n },\n {\n key: 'units_ordered',\n name: 'UNITS ORDERED',\n color: '#74b035',\n symbol: 'none',\n dataAvailabletoolTip:\n 'Sum the units ordered that taken place after a selected duration',\n decimal: false,\n },\n {\n key: 'units_sold',\n name: 'AVERAGE UNITS PER ORDER',\n color: '#C84EC6',\n symbol: 'none',\n dataAvailabletoolTip:\n 'Average units per order that taken place after a selected duration',\n decimal: true,\n },\n {\n key: 'page_views',\n name: 'PAGE VIEWS',\n color: '#E05D37',\n symbol: 'none',\n dataAvailabletoolTip:\n 'Sum the page views that taken place after a selected duration',\n decimal: false,\n },\n {\n key: 'sessions',\n name: 'SESSIONS',\n color: '#89A43C',\n symbol: 'none',\n dataAvailabletoolTip: '',\n decimal: false,\n },\n {\n key: 'buy_box_percentage',\n name: 'BUY BOX %',\n color: '#A04848',\n symbol: 'percentage',\n dataAvailabletoolTip: '',\n decimal: true,\n },\n {\n key: 'conversion',\n name: 'CONVERSION',\n color: '#8C54FF',\n symbol: 'percentage',\n dataAvailabletoolTip: '',\n decimal: true,\n },\n];\n\nexport const daysConstant = [\n {\n key: 'weekly',\n label: 'Weekly',\n id: 'weeklyCheck',\n },\n {\n key: 'monthly',\n label: 'Monthly',\n id: 'monthlyCheck',\n },\n {\n key: 'quarterly',\n label: 'Quarterly',\n id: 'quarterlyCheck',\n },\n];\n\nexport const vendorReportTypes = [\n { value: 'shipped_cogs', label: 'Shipped COGS' },\n { value: 'ordered_revenue', label: 'Ordered Revenue' },\n];\n\nexport const orderedVendorPerformanceSumarryTiles = [\n {\n key: 'ordered_revenue',\n name: 'Ordered Revenue',\n color: '#0045b4',\n symbol: 'currency',\n decimal: true,\n dataAvailabletoolTip: '',\n },\n {\n key: 'glance_views',\n name: 'Glance Views',\n color: '#74b035',\n symbol: 'none',\n decimal: false,\n dataAvailabletoolTip: '',\n },\n\n {\n key: 'conversion_rate',\n name: 'CONVERSION RATE',\n color: '#8C54FF',\n symbol: 'percentage',\n dataAvailabletoolTip: '',\n decimal: true,\n },\n {\n key: 'ordered_units',\n name: 'ORDERED UNITS',\n color: '#74b035',\n symbol: 'none',\n decimal: false,\n dataAvailabletoolTip: '',\n },\n];\n\nexport const shippedVendorPerformanceSumarryTiles = [\n {\n key: 'shipped_cogs',\n name: 'Shipped COGS',\n color: '#0045b4',\n symbol: 'currency',\n decimal: true,\n dataAvailabletoolTip: '',\n },\n {\n key: 'glance_views',\n name: 'Glance Views',\n color: '#74b035',\n symbol: 'none',\n decimal: false,\n dataAvailabletoolTip: '',\n },\n\n {\n key: 'conversion_rate',\n name: 'CONVERSION RATE',\n color: '#8C54FF',\n symbol: 'percentage',\n dataAvailabletoolTip: '',\n decimal: true,\n },\n {\n key: 'shipped_units',\n name: 'SHIPPED UNITS',\n color: '#74b035',\n symbol: 'none',\n decimal: false,\n dataAvailabletoolTip: '',\n },\n];\n\nexport const projectASINVendorTableHeader = [\n {\n label: 'Products',\n key: 'product',\n width: '20%',\n total: '',\n avg: '',\n prefix: '',\n suffix: '',\n show_info: false,\n asin_view: '',\n changedValueKey: '',\n isShow2Decimal: false,\n },\n {\n label: 'Ordered Revenue',\n key: 'ordered revenue',\n width: '20%',\n total: 'total_ordered_revenue',\n avg: 'avg_ordered_revenue',\n prefix: '$',\n suffix: '',\n show_info: false,\n asin_view: 'total_ordered_revenue',\n changedValueKey: 'abs_change_total_ordered_revenue',\n isShow2Decimal: true,\n },\n {\n label: 'Glance Views',\n key: 'glance views',\n width: '20%',\n total: 'total_glance_views',\n avg: 'avg_glance_views',\n suffix: '',\n prefix: '',\n show_info: false,\n asin_view: 'total_glance_views',\n changedValueKey: 'abs_change_total_glance_views',\n isShow2Decimal: false,\n },\n\n {\n label: 'Conversion Rate',\n key: 'conversion',\n width: '20%',\n avg: 'avg_conversion_rate',\n suffix: '%',\n prefix: '',\n show_info: true,\n asin_view: 'avg_conversion_rate',\n changedValueKey: 'abs_change_avg_conversion_rate',\n isShow2Decimal: true,\n },\n\n {\n label: 'Ordered Units',\n key: 'ordered units',\n width: '20%',\n total: 'total_ordered_units',\n avg: 'avg_ordered_units',\n prefix: '',\n suffix: '',\n show_info: false,\n asin_view: 'total_ordered_units',\n changedValueKey: 'abs_change_total_ordered_units',\n isShow2Decimal: false,\n },\n];\nexport const projectASINVendorShippedCogsTableHeader = [\n {\n label: 'Products',\n key: 'product',\n width: '20%',\n total: '',\n avg: '',\n prefix: '',\n suffix: '',\n show_info: false,\n asin_view: '',\n changedValueKey: '',\n isShow2Decimal: false,\n },\n {\n label: 'Shipped COGS',\n key: 'shipped cogs',\n width: '20%',\n total: 'total_shipped_cogs',\n avg: 'avg_shipped_cogs',\n prefix: '$',\n suffix: '',\n show_info: false,\n asin_view: 'total_shipped_cogs',\n changedValueKey: 'abs_change_total_shipped_cogs',\n isShow2Decimal: true,\n },\n {\n label: 'Glance Views',\n key: 'glance views',\n width: '20%',\n total: 'total_glance_views',\n avg: 'avg_glance_views',\n suffix: '',\n prefix: '',\n show_info: false,\n asin_view: 'total_glance_views',\n changedValueKey: 'abs_change_total_glance_views',\n isShow2Decimal: false,\n },\n\n {\n label: 'Conversion Rate',\n key: 'conversion',\n width: '20%',\n avg: 'avg_conversion_rate',\n suffix: '%',\n prefix: '',\n show_info: true,\n asin_view: 'avg_conversion_rate',\n changedValueKey: 'abs_change_avg_conversion_rate',\n isShow2Decimal: true,\n },\n\n {\n label: 'Shipped Units',\n key: 'Shipped units',\n width: '20%',\n total: 'total_shipped_units',\n avg: 'avg_shipped_units',\n prefix: '',\n suffix: '',\n show_info: false,\n asin_view: 'total_shipped_units',\n changedValueKey: 'abs_change_total_shipped_units',\n isShow2Decimal: false,\n },\n];\n\nexport const projectDeleteMessage =\n \"You are about to delete a project. Once you delete this project, ALL ASIN's under this project will be removed as well.\";\n\nexport const asinsDeleteMessage = 'You are about to delete an ASIN.';\n","export const cosViewTypes = [\n {\n label: 'General',\n value: 'general',\n },\n { label: 'Design', value: 'design' },\n { label: 'Copy', value: 'copy' },\n];\n\nexport const cosDatetype = [\n {\n label: 'Current 7 Days',\n value: '7days',\n },\n];\n\nexport const stickyColumnHeaders = [\n {\n columns: [\n {\n label: 'Status',\n key: 'parent_status',\n id: 'parent_status',\n // width: '70px',\n type: 'checkbox',\n // className: ' sticky-column header sticky-panel',\n options: [\n { label: 'Waiting on assets', value: 'waiting on assets' },\n { label: 'In Progress - Creative', value: 'in progress - creative' },\n { label: 'Ready for Upload', value: 'ready for upload' },\n { label: 'Uploaded', value: 'uploaded' },\n ],\n },\n {\n label: 'Parent ASINS',\n key: 'parent_asin',\n id: 'parent_asin',\n // width: '150px',\n type: 'text',\n charLimit: 10,\n // className: 'sticky-column header sticky-panel col-left-70 ',\n info: 'ASIN is a combination of numbers and characters fixed at 10 digits. Input N/A if ASIN is not needed.',\n },\n {\n label: 'Status',\n key: 'child_status',\n id: 'child_status',\n // width: '70px',\n type: 'checkbox',\n // className: 'sticky-column header sticky-panel col-left-190 ',\n\n options: [\n { label: 'Waiting on assets', value: 'waiting on assets' },\n { label: 'In Progress - Creative', value: 'in progress - creative' },\n { label: 'Ready for Upload', value: 'ready for upload' },\n { label: 'Uploaded', value: 'uploaded' },\n ],\n },\n {\n label: 'Child ASINS',\n key: 'child_asin',\n id: 'child_asin',\n // width: '150px',\n type: 'text',\n charLimit: 10,\n info: 'ASIN is a combination of numbers and characters fixed at 10 digits. Input N/A if ASIN is not needed.',\n // className: 'sticky-column header sticky-panel col-left-260 ',\n },\n ],\n },\n];\n\n// sticky-column header sticky-panel\nexport const tableHeaders = [\n {\n view: 'general',\n columns: [\n {\n label: 'SKU',\n key: 'sku',\n id: 'general',\n width: '200px',\n type: 'text',\n charLimit: 40,\n info: 'The total combination of numbers and characters including hyphens, should not exceed 40 digits.',\n },\n {\n label: 'Product Title',\n key: 'product_title',\n width: '200px',\n type: 'text',\n charLimit: 200,\n },\n { label: 'PDP URL', key: 'pdp_url', width: '200px', type: 'text' },\n { label: 'BP URL', key: 'bp_url', width: '200px', type: 'text' },\n {\n label: 'Links to Assets',\n key: 'link_to_assets',\n width: '200px',\n type: 'text',\n },\n { label: 'Month/Batch', key: 'month', width: '200px', type: 'date' },\n {\n label: 'Assets Received',\n key: 'asset_recieved',\n width: '200px',\n type: 'radio',\n },\n ],\n },\n {\n view: 'design',\n columns: [\n {\n label: 'Assigned Designer',\n key: 'assigned_designer',\n valueKey: 'assigned_designer_info',\n id: 'design',\n width: '200px',\n type: 'avtar',\n },\n {\n label: 'Design Project Type',\n key: 'design_project_type',\n width: '200px',\n type: 'choice',\n options: [\n { label: 'Brand Sample', value: 'brand sample' },\n { label: 'Infographics', value: 'infographics' },\n { label: 'A+', value: 'a+' },\n { label: 'Premium A+', value: 'premium a+' },\n { label: 'Storefront', value: 'storefront' },\n { label: 'Brand Story', value: 'brand story' },\n { label: 'DSP Ads', value: 'dsp ads' },\n { label: 'Revisions', value: 'revisions' },\n { label: 'Main Images ', value: 'main images' },\n { label: 'Product Documents', value: 'product documents' },\n { label: 'Email Inserts', value: 'email inserts' },\n { label: 'Brand Posts ', value: 'brand posts' },\n { label: 'Video', value: 'video' },\n ],\n },\n {\n label: 'Design Optimization Level',\n key: 'design_optimization_level',\n width: '200px',\n type: 'choice',\n options: [\n { label: 'Original Listing', value: 'original listing' },\n { label: 'Similar Listing', value: 'similar listing' },\n ],\n },\n {\n label: 'Assigned Production Designer',\n key: 'assigned_production_designer',\n valueKey: 'assigned_production_designer_info',\n width: '200px',\n type: 'avtar',\n },\n {\n label: 'Design Notes',\n key: 'design_notes',\n width: '200px',\n type: 'text',\n charLimit: 140,\n info: 'Maximum of 140 characters is allowed.',\n },\n {\n label: 'Design Project Status',\n key: 'design_project_status',\n width: '200px',\n type: 'choice',\n options: [\n { label: 'In Process', value: 'in process' },\n { label: 'On Hold', value: 'on hold' },\n { label: 'Sent to Copyeditor', value: 'sent to copyeditor' },\n { label: 'Sent to Copywriter', value: 'sent to copywriter' },\n { label: 'Completed', value: 'completed' },\n { label: 'Revision', value: 'revision' },\n ],\n },\n {\n label: 'Link to Completed Design Deliverables ',\n key: 'link_to_completed_design_deliverables',\n width: '200px',\n type: 'text',\n },\n {\n label: 'Design Due Date',\n key: 'design_due_date',\n width: '200px',\n type: 'date',\n },\n {\n label: 'Design Date Completed',\n key: 'design_date_completed',\n width: '200px',\n type: 'date',\n },\n {\n label: 'Design Link to Jira Project',\n key: 'design_link_to_jira_project',\n width: '200px',\n type: 'text',\n },\n {\n label: 'Design: Published',\n key: 'design_published',\n width: '200px',\n type: 'radio',\n },\n {\n label: 'Design: Published Date',\n key: 'design_published_date',\n width: '200px',\n type: 'date',\n },\n ],\n },\n {\n view: 'copy',\n columns: [\n {\n label: 'Copy Project Type',\n key: 'copy_project_type',\n id: 'copy',\n width: '200px',\n type: 'choice',\n options: [\n { label: 'Listing Copy', value: 'listing copy' },\n { label: 'A+', value: 'a+' },\n { label: 'Premium A+ ', value: 'premium a+' },\n { label: 'Infographics Copy ', value: 'infographics copy' },\n { label: 'Revision ', value: 'revision' },\n { label: 'Ads Copy ', value: 'ads copy' },\n {\n label: 'Back-End Search Terms Only ',\n value: 'back-end search terms only',\n },\n { label: 'Keyword Research Only ', value: 'keyword research only' },\n {\n label: 'Brand Refresh - Brand Sample ',\n value: 'brand refresh - brand sample',\n },\n { label: 'Brand Story ', value: 'brand story' },\n { label: 'Brand Post ', value: 'brand post' },\n { label: 'Re-Optimization ', value: 're-optimization' },\n { label: 'Storefront ', value: 'storefront' },\n ],\n },\n {\n label: 'Copy Optimization Level',\n key: 'copy_optimization_level',\n width: '200px',\n type: 'choice',\n options: [\n { label: 'Original Listing', value: 'original listing' },\n { label: 'Similar Listing', value: 'similar listing' },\n { label: 'Title-Only Variation', value: 'title-only variation' },\n ],\n },\n {\n label: 'Copy Notes',\n key: 'copy_notes',\n width: '200px',\n type: 'text',\n charLimit: 140,\n info: 'Maximum of 140 characters is allowed.',\n },\n {\n label: 'Copy Project Status',\n key: 'copy_project_status',\n width: '200px',\n type: 'choice',\n options: [\n { label: 'Keyword Research', value: 'keyword research' },\n { label: 'Copywriting', value: 'copywriting' },\n { label: 'Sub Editing', value: 'sub editing' },\n { label: 'Copy/Proof Editing', value: 'copy/proof editing' },\n { label: 'Completed', value: 'completed' },\n { label: 'On Hold', value: 'on hold' },\n { label: 'Waiting for Design', value: 'waiting for design' },\n ],\n },\n {\n label: 'Link to Completed Copy Deliverables',\n key: 'link_to_completed_copy_deliverables',\n width: '200px',\n type: 'text',\n },\n {\n label: 'Link to Jira Project',\n key: 'copy_link_to_jira_project',\n width: '200px',\n type: 'text',\n },\n {\n label: 'Due Date',\n key: 'copy_due_date',\n width: '200px',\n type: 'date',\n },\n {\n label: 'Date Completed',\n key: 'copy_date_completed',\n width: '200px',\n type: 'date',\n },\n {\n label: 'Published',\n key: 'copy_published',\n width: '200px',\n type: 'radio',\n },\n {\n label: 'Published Date',\n key: 'copy_published_date',\n width: '200px',\n type: 'date',\n },\n ],\n },\n];\n\nexport const defaultCOSData = {\n parent_asin: '',\n child_asin: '',\n sku: null,\n product_title: null,\n pdp_url: '',\n bp_url: '',\n link_to_assets: null,\n month: null,\n asset_recieved: false,\n assigned_designer: null,\n assigned_designer_info: null,\n design_project_type: null,\n design_optimization_level: null,\n assigned_production_designer: null,\n assigned_production_designer_info: null,\n design_notes: null,\n design_project_status: null,\n link_to_completed_design_deliverables: null,\n design_due_date: null,\n design_date_completed: null,\n design_link_to_jira_project: null,\n design_published: false,\n design_published_date: null,\n copy_project_type: null,\n copy_optimization_level: null,\n copy_notes: null,\n copy_project_status: null,\n link_to_completed_copy_deliverables: null,\n copy_link_to_jira_project: null,\n copy_due_date: null,\n copy_date_completed: null,\n copy_published: false,\n copy_published_date: null,\n};\n\nexport const dateFilterOptions = [\n {\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n];\n\nexport const distributorViewOptions = [\n {\n value: 'manufacturingView',\n label: 'Manufacturing View',\n id: 'manufacturingView',\n },\n {\n value: 'sourcingView ',\n label: 'Sourcing View',\n id: 'sourcingView',\n },\n];\n\n// calculate month difference\nexport const calculateMonthDifference = (date1, date2) => {\n const timeDiff = Math.abs(date2?.getTime() - date1?.getTime());\n const monthDiff = timeDiff / (1000 * 60 * 60 * 24 * 30);\n\n return Math.trunc(monthDiff);\n};\n\n// calculate past and future months\nexport const getPastAndfutureMonths = (date, months) => {\n date.setMonth(date?.getMonth() + months);\n date.setDate(1);\n\n return date;\n};\n\n// calculate past and future date and month\nexport const getPastAndfutureDate = (date, value) => {\n date.setDate(value);\n return date;\n};\n\nexport const vendorSubTabOptions = [\n {\n value: 'orderedRevenue',\n label: 'Ordered Revenue',\n id: 'orderedRevenue',\n dataCy: 'BT-Tab-OrderedRevenue',\n },\n {\n value: 'shippedCOGs',\n label: 'Shipped COGs',\n id: 'shippedCOGs',\n dataCy: 'BT-Tab-ShippedCOGs',\n },\n];\n\nexport const goalsTabConstant = [\n { label: 'Forecast', key: 'goals', class: '', dataCy: 'BT-GoalsTab' },\n { label: 'COS', key: 'cos', class: 'd-none', dataCy: 'BT-COSTab' },\n];\nexport const goalsDataType = [\n {\n label: '$',\n type: 'dollar',\n },\n {\n label: '%',\n type: 'percentage',\n },\n {\n label: 'Text',\n type: 'text',\n },\n];\n\nexport const accountTypeOptionsForGoals = [\n {\n value: 'Hybrid',\n label: 'Hybrid',\n id: 'hybrid',\n },\n {\n value: 'Seller',\n label: 'Seller',\n id: 'seller',\n },\n {\n value: 'Vendor',\n label: 'Vendor',\n id: 'vendor',\n },\n];\n","export const contractChoices = [\n { value: 'recurring', label: 'Recurring Only' },\n { value: 'recurring dsp', label: 'Recurring With DSP' },\n { value: 'recurring (90 day notice)', label: 'Recurring (90 days) Only' },\n {\n value: 'recurring (90 day notice) dsp',\n label: 'Recurring (90 days) With DSP',\n },\n { value: 'one time', label: 'One Time Only' },\n { value: 'dsp only', label: 'DSP Only' },\n];\nexport const contractStatus = [\n { value: 'active', label: 'Signed' },\n { value: 'renewed', label: 'Renewed' },\n { value: 'pause', label: 'Paused' },\n { value: 'cancel', label: 'Cancelled' },\n\n {\n value: 'pending for cancellation',\n label: 'Cancelled - Pending for Billing',\n },\n {\n value: 'pending cancellation approval',\n label: 'Pending Cancellation Approval',\n },\n { value: 'pending contract signature', label: 'Pending Agreement Signature' },\n { value: 'pending contract approval', label: 'Pending Approval' },\n { value: 'pending contract', label: 'Pending Agreement' },\n {\n value: 'active pending for pause',\n label: 'Active - Pending for Pause',\n },\n {\n value: 'active pending for pause request',\n label: 'Active - Pending for Pause Request',\n },\n { value: 'active partially pause', label: 'Active - Partially Paused' },\n];\n\nexport const marketplacesCode = [\n {\n country: 'Brazil',\n code: 'BR',\n marketplace_id: 'A2Q3Y263D00KWC',\n currency: 'BRL',\n value: 'amazon.com.br',\n region: 'NA',\n },\n {\n country: 'Canada',\n code: 'CA',\n marketplace_id: 'A2EUQ1WTGCTBG2',\n currency: 'CAD',\n value: 'amazon.ca',\n region: 'NA',\n },\n {\n country: 'Mexico',\n code: 'MX',\n marketplace_id: 'A1AM78C64UM0Y8',\n currency: 'MXN',\n value: 'amazon.com.mx',\n region: 'NA',\n },\n {\n country: 'United States',\n code: 'US',\n marketplace_id: 'ATVPDKIKX0DER',\n currency: 'USD',\n value: 'amazon.com',\n region: 'NA',\n },\n {\n country: 'United Arab Emirates (U.A.E.)',\n code: 'AE',\n marketplace_id: 'A2VIGQ35RCS4UG',\n currency: 'AED',\n value: 'amazon.ae',\n region: 'EU',\n },\n {\n country: 'Germany',\n code: 'DE',\n marketplace_id: 'A1PA6795UKMFR9',\n currency: 'EUR',\n value: 'amazon.de',\n region: 'EU',\n },\n {\n country: 'Egypt',\n code: 'EG',\n marketplace_id: 'ARBP9OOSHTCHU',\n currency: 'EGP',\n value: 'amazon.eg',\n region: 'EU',\n },\n {\n country: 'Spain',\n code: 'ES',\n marketplace_id: 'A1RKKUPIHCS9HS',\n currency: 'EUR',\n value: 'amazon.es',\n region: 'EU',\n },\n {\n country: 'France',\n code: 'FR',\n marketplace_id: 'A13V1IB3VIYZZH',\n currency: 'EUR',\n value: 'amazon.fr',\n region: 'EU',\n },\n {\n country: 'United Kingdom',\n code: 'UK',\n marketplace_id: 'A1F83G8C2ARO7P',\n currency: 'GBP',\n value: 'amazon.co.uk',\n region: 'EU',\n },\n {\n country: 'India',\n code: 'IN',\n marketplace_id: 'A21TJRUUN4KGV',\n currency: 'INR',\n value: 'amazon.in',\n region: 'EU',\n },\n {\n country: 'Italy',\n code: 'IT',\n marketplace_id: 'APJ6JRA9NG5V4',\n currency: 'EUR',\n value: 'amazon.it',\n region: 'EU',\n },\n {\n country: 'Netherlands',\n code: 'NL',\n marketplace_id: 'A1805IZSGTT6HS',\n currency: 'EUR',\n value: 'amazon.nl',\n region: 'EU',\n },\n {\n country: 'Poland',\n code: 'PL',\n marketplace_id: 'A1C3SOZRARQ6R3',\n currency: 'PLN',\n value: 'amazon.pl',\n region: 'EU',\n },\n {\n country: 'Saudi Arabia',\n code: 'SA',\n marketplace_id: 'A17E79C6D8DWNP',\n currency: 'SAR',\n value: 'amazon.sa',\n region: 'EU',\n },\n {\n country: 'Sweden',\n code: 'SE',\n marketplace_id: 'A2NODRKZP88ZB9',\n currency: 'SEK',\n value: 'amazon.se',\n region: 'EU',\n },\n {\n country: 'Turkey',\n code: 'TR',\n marketplace_id: 'A33AVAJ2PDY3EV',\n currency: 'TRY',\n value: 'amazon.com.tr',\n region: 'EU',\n },\n {\n country: 'Singapore',\n code: 'SG',\n marketplace_id: 'A19VAU5U5O7RUS',\n currency: 'SGD',\n value: 'amazon.sg',\n region: 'FE',\n },\n {\n country: 'Australia',\n code: 'AU',\n marketplace_id: 'A39IBJ37TRP1C6',\n currency: 'AUD',\n value: 'amazon.com.au',\n region: 'FE',\n },\n {\n country: 'Japan',\n code: 'JP',\n marketplace_id: 'A1VC38T7YXB528',\n currency: 'JPY',\n value: 'amazon.co.jp',\n region: 'FE',\n },\n];\n","export const emailRecipientFields = [\n {\n key: 'recipient_first_name',\n type: 'text',\n placeholder: 'First Name',\n classname: 'col-3 ',\n },\n {\n key: 'recipient_last_name',\n type: 'text',\n placeholder: 'Last Name',\n classname: 'col-3 ',\n },\n {\n key: 'recipient_email',\n type: 'email',\n placeholder: 'Email',\n classname: 'col-6',\n },\n];\n\nexport const emailRecipientOption = [\n {\n label: 'YES',\n value: 'yes',\n },\n {\n label:\n 'NO - succceding survey will be sent out to the previous email recipient.',\n value: 'no',\n },\n];\n\nexport const customStylesForTableModal = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n","import queryString from 'query-string';\n\nimport axiosInstance from '../axios';\n\nimport {\n API_ACTIVITY_LOG,\n API_AMAZON_DETAILS,\n API_CONTACT,\n API_CREDENTIALS,\n API_CUSTOMER,\n API_CUSTOMER_CONTRACT,\n API_CUSTOMER_MEMBER,\n API_DELETE_MARKETPLACE,\n API_DOCUMENTS,\n API_ACCOUNT_MARKETPLACE,\n API_USER,\n API_SP,\n API_GET_SP_DATA,\n API_MONKEY_SURVEY_FEEDBACK,\n API_CHILD_BPS,\n API_CUSTOMER_CSV,\n API_AGREEMENT_APPROVERS_USER,\n columnsForVendorSalesPerformance,\n columnsForSalesPerformance,\n} from '../constants';\n\nexport async function getCustomerList(\n pageNumber,\n sort,\n filterOptions,\n searchQuery,\n contractDetails,\n performance,\n adPerformance,\n dspAdPerformance,\n expiringSoon,\n dailyFacts,\n orderByFlag,\n selectedColumns,\n selectedVendorDashboard,\n isCsv,\n) {\n let params = {\n page:\n pageNumber === '' || pageNumber === undefined\n ? 1\n : localStorage.getItem('page')\n ? localStorage.getItem('page')\n : pageNumber,\n 'order-by': sort['order-by'] || '-created_at',\n bp_list_view:\n filterOptions.bpAccount === 'child'\n ? 'False'\n : sort.bp_list_view || 'True',\n };\n\n if (expiringSoon) {\n params = {\n ...params,\n expiring_soon: true,\n };\n delete params['order-by'];\n }\n\n if (searchQuery) {\n params = {\n ...params,\n q: searchQuery,\n };\n }\n if (contractDetails) {\n params = {\n ...params,\n };\n }\n let salesPerformanceDashboards = {};\n\n if (performance) {\n params = {\n ...params,\n ...dailyFacts,\n ...orderByFlag,\n };\n\n const list = [];\n selectedColumns.map((item) => list.push(item.value));\n\n const vendorColumnValues = [\n ...columnsForVendorSalesPerformance.ordered_revenue_tab,\n ...columnsForVendorSalesPerformance.shipped_cogs_tab,\n ].map((item) => item.value);\n\n const sellerColumnValues = columnsForSalesPerformance.map(\n (item) => item?.value,\n );\n\n const isAnyVendorDashboardFieldSelected = list.some((element) => {\n return vendorColumnValues.includes(element);\n });\n\n const isAnySellerDashboardFieldSelected = list.some((element) => {\n return sellerColumnValues.includes(element);\n });\n\n const dashboardList = [];\n\n if (isAnyVendorDashboardFieldSelected) {\n dashboardList.push(selectedVendorDashboard);\n }\n if (isAnySellerDashboardFieldSelected) {\n dashboardList.push('sale_performance');\n }\n\n if (selectedColumns?.length) {\n salesPerformanceDashboards = queryString.stringify({\n dashboard: dashboardList,\n });\n }\n }\n if (adPerformance) {\n params = {\n ...params,\n ...dailyFacts,\n ...orderByFlag,\n dashboard: 'sponsored_ad_dashboard',\n 'order-by-account-type': sort['order-by-account-type'],\n };\n }\n if (dspAdPerformance) {\n params = {\n ...params,\n ...dailyFacts,\n ...orderByFlag,\n dashboard: 'dsp_ad_performance',\n };\n }\n\n let customiseColumns = {};\n const list = [];\n selectedColumns.map((item) => list.push(item.value));\n if (selectedColumns?.length) {\n customiseColumns = queryString.stringify({ field: list });\n }\n\n let accountTypeParams = {};\n if (filterOptions?.customer_account_type?.length) {\n accountTypeParams = queryString.stringify({\n customer_account_type: filterOptions.customer_account_type,\n });\n }\n let statusParams = {};\n if (filterOptions?.status?.length) {\n statusParams = queryString.stringify({\n status: filterOptions.status,\n });\n }\n let contractStatusParams = {};\n if (filterOptions?.contract_status?.length) {\n const index = filterOptions.contract_status.indexOf('signed');\n if (index !== -1) {\n filterOptions.contract_status[index] = 'active';\n }\n contractStatusParams = queryString.stringify({\n contract_status: filterOptions.contract_status,\n });\n }\n let addendumStatusParams = {};\n if (filterOptions?.addendum_status?.length) {\n const index = filterOptions?.addendum_status.indexOf('signed');\n if (index !== -1) {\n filterOptions.addendum_status[index] = 'active';\n }\n addendumStatusParams = queryString.stringify({\n addendum_status: filterOptions.addendum_status,\n });\n }\n\n let bgsParams = {};\n\n if (filterOptions?.cd_user?.length && contractDetails) {\n bgsParams = queryString.stringify({ user: filterOptions.cd_user });\n params = {\n ...params,\n };\n }\n\n if (filterOptions?.user?.length && performance) {\n bgsParams = queryString.stringify({ user: filterOptions.user });\n params = {\n ...params,\n };\n }\n\n if (filterOptions?.ad_user?.length && adPerformance) {\n bgsParams = queryString.stringify({ user: filterOptions.ad_user });\n }\n\n if (filterOptions?.dsp_user?.length && dspAdPerformance) {\n bgsParams = queryString.stringify({ user: filterOptions.dsp_user });\n }\n\n let contract = {};\n let dspService = {};\n let agreementType = '';\n if (filterOptions?.contract_type?.length) {\n const dspserveiceArray = [];\n let agreementTypes = [...filterOptions.contract_type];\n\n // pdv-8261- changed the logic of contract_type paramiter\n // ------ TEST CASES FOR TWO NEW FILTERS ----\n // - 1 recurring\n // - 2 recurring (90)\n // - 5 recurring with dsp\n // - 6 recurring (90) with dsp\n\n // ............. cases ..............\n // 1 + 5 or 1 \t=> contract_type=recurring\n // \t\t5\t\t=> contract_type=recurring & dsp_service=recurring\n\n // \t\t1 + 6\t\t=> contract_type=recurring & contract_type=recurring (90 day notice) & dsp_service=recurring (90 day notice)\n // \t\t2 + 6 or 2\t=> contract_type=recurring (90 day notice)\n // \t\t6\t\t=> contract_type=recurring (90 day notice) & dsp_service=recurring (90 day notice)\n\n // \t\t2 + 5\t\t=> contract_type=recurring (90 day notice) & contract_type=recurring & dsp_service=recurring\n\n // \t\t5 + 6\t\t=> contract_type=recurring & dsp_service=recurring & contract_type=recurring (90 day notice) & dsp_service=recurring (90 day notice)\n\n if (\n filterOptions.contract_type.includes('recurring dsp') &&\n !filterOptions.contract_type.includes('recurring')\n ) {\n agreementTypes = agreementTypes.filter((ele) => ele !== 'recurring dsp');\n dspserveiceArray.push('recurring');\n } else if (\n filterOptions.contract_type.includes('recurring dsp') &&\n filterOptions.contract_type.includes('recurring')\n ) {\n agreementTypes = agreementTypes.filter((ele) => ele !== 'recurring dsp');\n dspserveiceArray.push('recurring');\n }\n if (\n filterOptions.contract_type.includes('recurring (90 day notice) dsp') &&\n !filterOptions.contract_type.includes('recurring (90 day notice)')\n ) {\n agreementTypes = agreementTypes.filter(\n (ele) => ele !== 'recurring (90 day notice) dsp',\n );\n dspserveiceArray.push('recurring (90 day notice)');\n } else if (\n filterOptions.contract_type.includes('recurring (90 day notice) dsp') &&\n filterOptions.contract_type.includes('recurring (90 day notice)')\n ) {\n agreementTypes = agreementTypes.filter(\n (ele) => ele !== 'recurring (90 day notice) dsp',\n );\n dspserveiceArray.push('recurring (90 day notice)');\n }\n\n contract = queryString.stringify({\n contract_type: agreementTypes,\n });\n\n dspService = queryString.stringify({\n dsp_service: dspserveiceArray,\n });\n agreementType = queryString.stringify({\n agreement_type: filterOptions?.agreement_type,\n });\n }\n\n let pipeline = {};\n if (filterOptions?.pipeline?.length) {\n pipeline = queryString.stringify({\n pipeline:\n filterOptions.pipeline === 'all_pipeline' ? [] : filterOptions.pipeline,\n });\n }\n\n let bpAccount = {};\n if (filterOptions?.bpAccount?.length) {\n bpAccount = queryString.stringify({\n account_type:\n filterOptions.bpAccount === 'all' ? [] : filterOptions.bpAccount,\n });\n }\n\n // https://bbe.atlassian.net/browse/PDV-9665\n // As an internal user, I should be able to filter on the partner’s list tab which BPs belong to which channel\n let channel = {};\n if (filterOptions?.channel_type?.length) {\n channel = queryString.stringify({\n channel:\n filterOptions.channel_type === 'all_channels'\n ? []\n : filterOptions.channel_type,\n });\n }\n\n const result = await axiosInstance\n .get(\n `${!isCsv ? API_CUSTOMER : API_CUSTOMER_CSV}?${\n statusParams.length ? statusParams : ''\n }${\n customiseColumns && customiseColumns?.length\n ? `&${customiseColumns}`\n : ''\n }${\n salesPerformanceDashboards?.length\n ? `&${salesPerformanceDashboards}`\n : ''\n }${bgsParams?.length ? `&${bgsParams}` : ''}${\n contract?.length ? `&${contract}` : ''\n }${dspService?.length ? `&${dspService}` : ''}${\n contract?.length || dspService?.length ? `&${agreementType}` : ''\n }${contractStatusParams?.length ? `&${contractStatusParams}` : ''}${\n addendumStatusParams?.length ? `&${addendumStatusParams}` : ''\n }${accountTypeParams?.length ? `&${accountTypeParams}` : ''}${\n pipeline?.length ? `&${pipeline}` : ''\n }${bpAccount?.length ? `&${bpAccount}` : ''}${\n channel?.length ? `&${channel}` : ''\n }`,\n { params },\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateCustomer(data = null, id) {\n if (data && Object.keys(data).length > 0) {\n const result = await axiosInstance\n .post(`${API_CUSTOMER + id}`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function getCustomerDetails(id) {\n const result = await axiosInstance\n .get(`${API_CUSTOMER + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDocuments(id, type, docType) {\n const result = await axiosInstance\n .get(\n `${API_DOCUMENTS}?entity_type=${type}&&entity_id=${id}&&document_type=${docType}`,\n )\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateCustomerDetails(id, data) {\n const result = await axiosInstance\n .patch(`${API_CUSTOMER + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDocumentList() {\n const params = { document_type: 'profile_photo' };\n const result = await axiosInstance\n .get(API_DOCUMENTS, { params })\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAccountDetails(id) {\n const params = { customer: id };\n const result = await axiosInstance\n .get(API_CUSTOMER_CONTRACT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateAccountDetails(id, data) {\n const result = await axiosInstance\n .patch(`${API_CUSTOMER_CONTRACT + id}/?expand=~all`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getApprovalUserDetails() {\n const result = await axiosInstance\n .get(`${API_AGREEMENT_APPROVERS_USER}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCustomerMembers(id) {\n const result = await axiosInstance\n .get(`${API_CUSTOMER_MEMBER}?customer=${id}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAllMembers(\n role,\n findMembers,\n pageNumber,\n searchQuery,\n) {\n const page = pageNumber === '' || pageNumber === undefined ? 1 : pageNumber;\n const result = await axiosInstance\n .get(\n `${API_USER}?role=${role}&find-members=${findMembers}&page=${page}&q=${searchQuery}`,\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function addCustomerMembers(data) {\n const result = await axiosInstance\n .post(`${API_CUSTOMER_MEMBER}bulk-create/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Remove delete, update, add Customer Meber API's after role enhancement\nexport async function deleteCustomerMember(id) {\n const result = await axiosInstance\n .delete(`${API_CUSTOMER_MEMBER + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateCustomerMember(data) {\n const result = await axiosInstance\n .post(`${API_CUSTOMER_MEMBER}bulk-update/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function addCustomerMember(data, id) {\n const params = queryString.stringify({ customer_id: id, user_id: data });\n\n const result = await axiosInstance\n .post(`${API_CUSTOMER_MEMBER}bulk-create/?${params}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCustomerActivityLog(pageNumber, id) {\n const params = {\n page: pageNumber === '' || pageNumber === undefined ? 1 : pageNumber,\n model: 'customer',\n id,\n };\n if (id !== undefined) {\n const result = await axiosInstance\n .get(API_ACTIVITY_LOG, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function createContactInfo(data) {\n const result = await axiosInstance\n .post(API_CONTACT, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateContactInfo(id, data) {\n const result = await axiosInstance\n .patch(`${API_CONTACT + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteContactInfo(id) {\n const result = await axiosInstance\n .delete(`${API_CONTACT + id}/`)\n .then(() => {\n return {};\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCredentials(id) {\n const params = {\n customer: id,\n };\n const result = await axiosInstance\n .get(API_CREDENTIALS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createCredentials(data) {\n const result = await axiosInstance\n .post(API_CREDENTIALS, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateCredentials(id, data) {\n const result = await axiosInstance\n .patch(`${API_CREDENTIALS + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteCredentials(id) {\n const result = await axiosInstance\n .delete(`${API_CREDENTIALS + id}/`)\n .then(() => {\n return {};\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createAmazonDetails(data) {\n const result = await axiosInstance\n .post(API_AMAZON_DETAILS, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateAmazonDetails(id, data, customer) {\n const params = { customer };\n const result = await axiosInstance\n .patch(`${API_AMAZON_DETAILS + id}/`, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteAmazonMarketplace(merchant, marketplace) {\n const params = { merchant_id: merchant, marketplace_id: marketplace };\n const result = await axiosInstance\n .post(API_DELETE_MARKETPLACE, '', { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCustomers(\n pageNumber,\n dashboard,\n dailyFacts,\n orderBy,\n sequence,\n startDate,\n endDate,\n) {\n let params = {};\n const page =\n pageNumber === '' || pageNumber === undefined\n ? 1\n : localStorage.getItem('page')\n ? localStorage.getItem('page')\n : pageNumber;\n if (startDate && endDate) {\n params = {\n page,\n dashboard,\n daily_facts: dailyFacts,\n 'order-by': orderBy,\n sequence,\n start_date: startDate,\n end_date: endDate,\n };\n } else {\n params = {\n page,\n dashboard,\n daily_facts: dailyFacts,\n 'order-by': orderBy,\n sequence,\n };\n }\n const result = await axiosInstance\n .get(`${API_CUSTOMER}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAccountMarketplace(id) {\n const result = await axiosInstance\n .get(API_ACCOUNT_MARKETPLACE.replace(':id', id))\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCustomerContactDetails(id) {\n const params = {\n customer: id,\n };\n const result = await axiosInstance\n .get(API_CONTACT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveSPData(data) {\n const result = await axiosInstance\n .post(API_SP, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getSPData(customer) {\n const params = { customer };\n const result = await axiosInstance\n .get(API_GET_SP_DATA, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getMonkeySurveyData(customer, page) {\n const params = { customer, page };\n const result = await axiosInstance\n .get(API_MONKEY_SURVEY_FEEDBACK, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateMonkeySurveyData(id, data) {\n const result = await axiosInstance\n .patch(`${API_MONKEY_SURVEY_FEEDBACK + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function sendReminderOfCustomerFeedback(data) {\n const result = await axiosInstance\n .post(`${API_MONKEY_SURVEY_FEEDBACK}send_survey_reminder/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateRecipientOfCustomerFeedback(data) {\n const result = await axiosInstance\n .post(`${API_MONKEY_SURVEY_FEEDBACK}update_recipients/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getChildBps(customer, marketplaceId = null) {\n let params = { customer };\n\n if (marketplaceId !== null) {\n params = {\n ...params,\n marketplace: marketplaceId,\n };\n }\n const result = await axiosInstance\n .get(API_CHILD_BPS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createCustomer(data) {\n const result = await axiosInstance\n .post(API_CUSTOMER, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import dayjs from 'dayjs';\nimport axiosInstance from '../axios';\nimport {\n API_AD_MANAGER_ADMIN_DASHBOARD,\n API_AD_DASHBOARD,\n API_DSP_INVOICES,\n API_DSP_BILLING,\n API_CUSTOMER_CONTRACT,\n API_SALES_DASHBOARD,\n metricsNameForAPI,\n API_BGS_COMMISSION_DETAILS,\n API_BGS_COMMISSION_INDIVIDUALS,\n API_BGS_COMMISSION_MATRICS,\n API_BGS_COMMISSION_GROUP_BY_MANAGER,\n API_BBE_GOAL_DASHBOARD_CONTRIBUTION,\n API_BBE_GOAL_METRICS,\n API_GOAL_TARGET_MSG,\n API_GOAL_PERFORMANCE_DATA,\n API_VENDOR_ORDERED_REVENUE_SALES_DASHBOARD,\n API_VENDOR_SHIPPED_COGS_SALES_DASHBOARD,\n CUSTOM,\n ORDEREDREVENUE,\n SHIPPEDCOGS,\n SELLERSMALL,\n SELLER,\n VENDOR,\n API_LEADERSHIP_CUSTOMERS,\n API_KEY_CONTRIBUTORS_DOWNLOAD_REPORT,\n YEAROVERYEAR,\n} from '../constants';\n\n// get goals data of leadership dashboard\nexport async function getGoalPerformanceData(\n orderBy,\n brandPartner,\n marketplaces,\n startDate,\n endDate,\n managerUserString,\n bgsUserString,\n pageNumber,\n isBGS,\n isBGSManager,\n isBGSAdmin,\n includeInactiveBPs,\n includeSpreetailBrands,\n) {\n let params = {\n customer: brandPartner !== 'all' ? brandPartner : null,\n order_by: orderBy,\n marketplace: marketplaces,\n start_date: startDate,\n end_date: endDate,\n user: bgsUserString,\n page: pageNumber,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n };\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUserString,\n };\n }\n\n const result = await axiosInstance\n .get(API_GOAL_PERFORMANCE_DATA, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return result;\n}\n\n// https://bbe.atlassian.net/browse/PDV-8757 - leadership dashboard improvements\n// Async funtion for get brand partners list in leadership dashboard\nexport async function getLeadershipBrandPartners(\n role,\n dashboardName,\n managerUserId,\n userId,\n includeInactiveBPs,\n includeSpreetailBrands,\n) {\n let params = {\n 'order-by': 'company_name',\n dashboard: dashboardName,\n user: userId,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n };\n\n if (role === 'BGS Admin' || role === 'BGS Manager') {\n params = {\n ...params,\n bgs_manager: managerUserId,\n };\n }\n\n if (role === 'Ad Manager Admin' || role === 'Ad Team Manager') {\n params = {\n ...params,\n ad_team_manager: managerUserId,\n };\n }\n\n const result = await axiosInstance\n .get(API_LEADERSHIP_CUSTOMERS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// https://bbe.atlassian.net/browse/PDV-8757 - leadership dashboard improvements\n// Async funtion for get key contributors download report\nexport async function getKeyContributorsdownloadReport(\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n dashboardName,\n dailyFacts,\n brandPartner,\n marketplace,\n metricName,\n managerUsers,\n users,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n accountType = null,\n) {\n // configuring API params\n let params = {\n dashboard: dashboardName,\n customer: brandPartner !== 'all' ? brandPartner : null,\n daily_facts: dailyFacts,\n marketplace,\n metric: metricsNameForAPI[metricName],\n user: users,\n no_pagination: true,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n customer_account_type:\n dashboardName === 'sponsored_ad_dashboard'\n ? accountType === SELLERSMALL\n ? SELLER\n : VENDOR\n : null,\n };\n\n if (dailyFacts === YEAROVERYEAR || metricName === 'goals') {\n params = { ...params, start_date: startDate, end_date: endDate };\n }\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUsers,\n };\n }\n if (isAdManager) {\n params = {\n ...params,\n ad_team_manager: 'all',\n };\n }\n if (isAdTeamManager || isAdManagerAdmin) {\n params = {\n ...params,\n ad_team_manager: managerUsers,\n };\n }\n\n // await method\n const result = await axiosInstance\n .get(API_KEY_CONTRIBUTORS_DOWNLOAD_REPORT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error?.response;\n });\n return result;\n}\n\nexport async function getAdManagerAdminGraphData(\n dashboardType,\n adType,\n dailyFacts,\n groupBy,\n brandPartner,\n marketplace,\n performanceType,\n managerUser,\n bgsUser,\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n) {\n let params = {\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n user: bgsUser,\n };\n\n if (brandPartner !== 'all') {\n params = { ...params, customer: brandPartner };\n }\n\n if (dashboardType !== 'dsp-dashboard') {\n params = { ...params, account_type: performanceType };\n }\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUser,\n };\n }\n if (isAdManager) {\n params = {\n ...params,\n ad_team_manager: 'all',\n };\n }\n if (isAdTeamManager || isAdManagerAdmin) {\n params = {\n ...params,\n ad_team_manager: managerUser,\n };\n }\n\n if (startDate && endDate) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n if (dashboardType === 'sponsored-dashboard') {\n params = {\n ...params,\n sponsored_type: adType,\n };\n }\n\n params = {\n ...params,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n };\n\n const result = await axiosInstance\n .get(`${API_AD_DASHBOARD}${dashboardType}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getKeyContributionData(\n dashboardType,\n adType,\n dailyFacts,\n brandPartner,\n marketplace,\n performanceType,\n managerUser,\n bgsUser,\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n selectedMetric,\n startDate,\n endDate,\n pageNumber,\n includeInactiveBPs,\n includeSpreetailBrands,\n) {\n const metricName = metricsNameForAPI[selectedMetric];\n\n let params = {\n dashboard: dashboardType,\n daily_facts: dailyFacts,\n marketplace,\n page: pageNumber,\n user: bgsUser,\n };\n\n if (brandPartner !== 'all') {\n params = { ...params, customer: brandPartner };\n }\n\n if (dashboardType !== 'dsp_ad_performance') {\n params = {\n ...params,\n customer_account_type: performanceType === SELLERSMALL ? SELLER : VENDOR,\n };\n }\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUser,\n };\n }\n if (isAdManager) {\n params = {\n ...params,\n ad_team_manager: 'all',\n };\n }\n if (isAdTeamManager || isAdManagerAdmin) {\n params = {\n ...params,\n ad_team_manager: managerUser,\n };\n }\n\n if (startDate && endDate) {\n params = {\n ...params,\n start_date: dayjs(startDate).format('DD-MM-YYYY'),\n end_date: dayjs(endDate).format('DD-MM-YYYY'),\n };\n }\n\n params = {\n ...params,\n metric: metricName,\n };\n\n if (dashboardType === 'sponsored_ad_dashboard') {\n params = {\n ...params,\n sponsored_type: adType,\n };\n }\n\n params = {\n ...params,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n };\n\n let result = {};\n result = await axiosInstance\n .get(`${API_AD_MANAGER_ADMIN_DASHBOARD}key-contributors/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDspPacingDahboardData(\n brandPartner,\n marketplace,\n managerUser,\n bgsUser,\n spendingType,\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n includeInactiveBPs,\n includeSpreetailBrands,\n) {\n let params = {\n daily_facts: 'month',\n marketplace,\n order_by: spendingType,\n user: bgsUser,\n };\n\n if (brandPartner !== 'all') {\n params = { ...params, customer: brandPartner };\n }\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUser,\n };\n }\n\n if (isAdManager) {\n params = {\n ...params,\n ad_team_manager: 'all',\n };\n }\n\n if (isAdTeamManager || isAdManagerAdmin) {\n params = {\n ...params,\n ad_team_manager: managerUser,\n };\n }\n\n params = {\n ...params,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n };\n\n let result = {};\n result = await axiosInstance\n .get(`${API_AD_DASHBOARD}dsp-pacing-dashboard/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// async function for sales dashboard - metrics and graph data\nexport async function getSalesGraphData(\n dailyFacts,\n groupBy,\n brandPartner,\n marketplace,\n managerUser,\n bgsUser,\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n) {\n let params = {\n customer: brandPartner !== 'all' ? brandPartner : null,\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n user: bgsUser,\n };\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUser,\n };\n }\n if (isAdManager) {\n params = {\n ...params,\n ad_team_manager: 'all',\n };\n }\n if (isAdTeamManager || isAdManagerAdmin) {\n params = {\n ...params,\n ad_team_manager: managerUser,\n };\n }\n\n if (startDate && endDate) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n params = {\n ...params,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n };\n\n const result = await axiosInstance\n .get(`${API_AD_DASHBOARD}${API_SALES_DASHBOARD}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// async function for sales dashboard - contribution data\nexport async function getSalesKeyContributionData(\n dailyFacts,\n brandPartner,\n marketplace,\n managerUser,\n bgsUser,\n selectedMetric,\n vendorMetricsType,\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n pageNumber,\n includeInactiveBPs,\n includeSpreetailBrands,\n) {\n const metricName = metricsNameForAPI[selectedMetric];\n\n let params = {\n customer: brandPartner !== 'all' ? brandPartner : null,\n daily_facts: dailyFacts,\n dashboard:\n vendorMetricsType === ORDEREDREVENUE\n ? 'ordered_revenue'\n : vendorMetricsType === SHIPPEDCOGS\n ? 'shipped_cogs'\n : 'sales_performance',\n marketplace,\n user: bgsUser,\n metric: metricName,\n page: pageNumber,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n };\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUser,\n };\n }\n\n if (isAdManager) {\n params = {\n ...params,\n ad_team_manager: 'all',\n };\n }\n if (isAdTeamManager || isAdManagerAdmin) {\n params = {\n ...params,\n ad_team_manager: managerUser,\n };\n }\n\n if (startDate && endDate) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n const result = await axiosInstance\n .get(`${API_AD_MANAGER_ADMIN_DASHBOARD}key-contributors/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return result;\n}\n\n// async function for get vendor sales dashboard - metrics and graph data\nexport async function getVendorSalesPerformanceData(\n dailyFacts,\n groupBy,\n brandPartner,\n marketplace,\n managerUser,\n bgsUser,\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n vendorMetricsType,\n) {\n let params = {\n customer: brandPartner !== 'all' ? brandPartner : null,\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n user: bgsUser,\n };\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUser,\n };\n }\n if (isAdManager) {\n params = {\n ...params,\n ad_team_manager: 'all',\n };\n }\n if (isAdTeamManager || isAdManagerAdmin) {\n params = {\n ...params,\n ad_team_manager: managerUser,\n };\n }\n\n if (startDate && endDate) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n params = {\n ...params,\n show_inactive_bps: includeInactiveBPs,\n show_third_party_potential_brands: includeSpreetailBrands,\n };\n\n let API = '';\n if (vendorMetricsType === ORDEREDREVENUE) {\n API = API_VENDOR_ORDERED_REVENUE_SALES_DASHBOARD;\n } else {\n API = API_VENDOR_SHIPPED_COGS_SALES_DASHBOARD;\n }\n\n const result = await axiosInstance\n .get(`${API}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getFinanceInvoices(\n type,\n searchKey,\n status,\n sortBy,\n timeFilterType,\n timeFilter,\n page,\n selectedNavigation,\n) {\n let params = {\n page,\n type,\n invoice_type: selectedNavigation,\n };\n\n if (sortBy !== '') {\n if (type === 'partner') {\n params = {\n ...params,\n sort: `-${sortBy}`,\n };\n } else {\n params = {\n ...params,\n sort_by: `-${sortBy}`,\n };\n }\n }\n\n if (searchKey !== '') {\n params = {\n ...params,\n q: searchKey,\n };\n }\n\n if (timeFilterType === CUSTOM) {\n params = {\n ...params,\n timeframe: timeFilterType,\n start_month_year: timeFilter.startDate,\n end_month_year: timeFilter.endDate,\n };\n }\n\n if (status !== 'any') {\n params = {\n ...params,\n invoice_status: status,\n };\n }\n\n let result = {};\n result = await axiosInstance\n .get(`${API_DSP_INVOICES}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPFinances(\n timeFilter,\n startDate,\n endDate,\n selectedNavigation,\n) {\n let params = {\n invoice_type: selectedNavigation,\n };\n\n if (timeFilter === CUSTOM) {\n params = {\n ...params,\n start_month_year: startDate,\n end_month_year: endDate,\n timeframe: timeFilter,\n };\n }\n\n let result = {};\n result = await axiosInstance\n .get(`${API_DSP_INVOICES}finance-detail/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBills(\n searchKey,\n vendor,\n sortBy,\n page,\n timeFilterType,\n timeFilter,\n) {\n let params = {\n page,\n vendor,\n };\n\n if (sortBy !== '') {\n params = {\n ...params,\n 'order-by': `-${sortBy}`,\n };\n }\n\n if (searchKey !== '') {\n params = {\n ...params,\n q: searchKey,\n };\n }\n\n if (timeFilterType === CUSTOM) {\n params = {\n ...params,\n timeframe: timeFilterType,\n start_month_year: timeFilter.startDate,\n end_month_year: timeFilter.endDate,\n };\n }\n\n let result = {};\n result = await axiosInstance\n .get(`${API_DSP_BILLING}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPBillingMetrics(timeFilter, startDate, endDate) {\n let params = {};\n\n if (timeFilter === CUSTOM) {\n params = {\n ...params,\n start_month_year: startDate,\n end_month_year: endDate,\n timeframe: timeFilter,\n };\n }\n\n let result = {};\n result = await axiosInstance\n .get(`${API_DSP_BILLING}bill-detail/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getEnableInvoices(page) {\n const params = { is_invoicing_enable: 'False', page };\n let result = {};\n\n result = await axiosInstance\n .get(`${API_CUSTOMER_CONTRACT}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function setEnableInvoices(id) {\n const result = await axiosInstance\n .patch(`${API_CUSTOMER_CONTRACT}${id}/`, { is_invoicing_enable: true })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBgsCommissionMatrics(date) {\n const params = {\n start_date: `${date[0].getFullYear()}-${\n date[0].getMonth() + 1\n }-${date[0].getDate()}`,\n end_date: `${date[1].getFullYear()}-${\n date[1].getMonth() + 1\n }-${date[1].getDate()}`,\n };\n\n const result = await axiosInstance\n .get(API_BGS_COMMISSION_MATRICS, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBgsCommissionGroupByTable(\n date,\n orderBy = 'full_name',\n) {\n const params = {\n start_date: `${date[0].getFullYear()}-${\n date[0].getMonth() + 1\n }-${date[0].getDate()}`,\n end_date: `${date[1].getFullYear()}-${\n date[1].getMonth() + 1\n }-${date[1].getDate()}`,\n 'order-by': `${orderBy}`,\n };\n\n const result = await axiosInstance\n .get(API_BGS_COMMISSION_GROUP_BY_MANAGER, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBgsCommissionTableIndividualsData(date, orderBy) {\n const params = {\n start_date: `${date[0].getFullYear()}-${\n date[0].getMonth() + 1\n }-${date[0].getDate()}`,\n end_date: `${date[1].getFullYear()}-${\n date[1].getMonth() + 1\n }-${date[1].getDate()}`,\n 'order-by': `${orderBy}`,\n };\n\n const result = await axiosInstance\n .get(API_BGS_COMMISSION_INDIVIDUALS, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBgsBrandPartners(bgs, startDate, endDate) {\n const { isBgsManager, managerId, id } = bgs;\n const params = {\n start_date: startDate,\n end_date: endDate,\n manager_id: !isBgsManager ? managerId : id,\n };\n\n const result = await axiosInstance\n .get(`${API_BGS_COMMISSION_DETAILS + id}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getRevShareContributionData(month) {\n const params = {\n date: dayjs(month).format('YYYY-MM-DD'),\n };\n\n const result = await axiosInstance\n .get(`${API_BBE_GOAL_DASHBOARD_CONTRIBUTION}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return result;\n}\n\nexport async function getBBEGoalMetrics(monthYear) {\n const params = {\n date: dayjs(monthYear).format('YYYY-MM-DD'),\n };\n\n const result = await axiosInstance\n .get(API_BBE_GOAL_METRICS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return result;\n}\n\nexport async function getGoalTargetInsightMsg() {\n const result = await axiosInstance\n .get(API_GOAL_TARGET_MSG)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return result;\n}\n","import axiosInstance from '../axios';\nimport {\n API_BGS,\n API_CHOICES,\n API_SERVICE_TYPE,\n API_MARKETPLACES,\n API_ALL_MARKETPLACES,\n API_ADM,\n API_THRESHOLD_TYPE,\n API_YOY_PERCENTAGE,\n API_PAYMENT_TERMS_OPTIONS,\n API_STANDARD_NON_US_SERVICES_OPTIONS,\n API_NON_US_MARKETPLACES,\n API_STANDARD_NON_US_SERVICES_FREQUENCY,\n API_GOAL_ALL_MARKETPLACES,\n API_MIN_DATE_DASHBOARD,\n API_DSP_MARKETPLACES,\n} from '../constants/ApiConstants';\n\nexport async function getStatus() {\n const result = await axiosInstance\n .get(`${API_CHOICES}status`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCountry() {\n const result = await axiosInstance\n .get(`${API_CHOICES}country`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getState(country) {\n const result = await axiosInstance\n .get(`${API_CHOICES}country/${country}/state`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCategories() {\n const result = await axiosInstance\n .get(`${API_CHOICES}category`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getChannels() {\n const result = await axiosInstance\n .get(`${API_CHOICES}channel`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getSellerType() {\n const result = await axiosInstance\n .get(`${API_CHOICES}seller-type`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getRoles() {\n const result = await axiosInstance\n .get(`${API_CHOICES}role`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getContactRoles() {\n const result = await axiosInstance\n .get(`${API_CHOICES}contact-role`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get api data for advertising users\nexport async function getManagersList(role, dashboard, id = null) {\n let params = {\n 'order-by': 'first_name',\n dashboard,\n };\n if (role === 'Ad Manager' && id !== null) {\n params = {\n ...params,\n ad_team_manager: id,\n };\n }\n\n if (role === 'Ad Team Manager') {\n params = {\n ...params,\n ad_team_manager: 'all',\n };\n }\n\n const result = await axiosInstance\n .get(`${API_ADM}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get api data for bgs users\nexport async function getBgsUserList(role, id = null) {\n let params = {\n 'order-by': 'first_name',\n };\n\n if (role === 'BGS' && id !== null) {\n params = {\n ...params,\n bgs_manager: id,\n };\n }\n if (role === 'BGS Manager') {\n params = {\n ...params,\n bgs_manager: 'all',\n };\n }\n\n const result = await axiosInstance\n .get(`${API_BGS}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getGrowthStrategist() {\n const result = await axiosInstance\n .get(`${API_BGS}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getOneTimeService(channel) {\n const apiUrl =\n channel === 'amazon'\n ? `${API_CHOICES}onetime-services`\n : `${API_CHOICES}onetime-services-walmart`;\n const result = await axiosInstance\n .get(`${apiUrl}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getMonthlyService() {\n const result = await axiosInstance\n .get(`${API_CHOICES}monthly-services`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getLength() {\n const result = await axiosInstance\n .get(`${API_CHOICES}contract-length`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getMarketplaces(channel) {\n const apiUrl =\n channel === 'amazon'\n ? `${API_CHOICES}marketplace-types`\n : `${API_CHOICES}marketplace-types-walmart`;\n const result = await axiosInstance\n .get(`${apiUrl}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAdditionalServices(type) {\n const params = { service_type: type };\n const result = await axiosInstance\n .get(API_SERVICE_TYPE, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getContractStatus() {\n const result = await axiosInstance\n .get(`${API_CHOICES}contract-status`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport const getMarketPlaceList = async (id, goalFlag) => {\n let response;\n const params = {};\n if (id) {\n params.customer_id = id;\n }\n if (goalFlag) {\n params.goal = true;\n }\n\n if (id === undefined) {\n response = await axiosInstance.get(API_ALL_MARKETPLACES);\n } else {\n response = await axiosInstance.get(API_MARKETPLACES, {\n params: { ...params },\n });\n }\n return response;\n};\n\n// async function for dsp marketplaces\nexport const getDspMarketPlacesList = async (id) => {\n const params = {\n customer_id: id,\n };\n\n const result = await axiosInstance\n .get(API_DSP_MARKETPLACES, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error?.response;\n });\n return result;\n};\n\nexport const getGoalsMarketPlaceList = async (customerId, accountType) => {\n const params = { customer_id: customerId, account_type: accountType };\n\n const response = await axiosInstance.get(API_GOAL_ALL_MARKETPLACES, {\n params: { ...params },\n });\n return response;\n};\n\n// PDV-7522 and PDV-7818\n// get BPs all marketplace active and inactive\nexport const getBPsAllMArketplaceList = async (customerId) => {\n const params = { customer_id: customerId, show_all: true };\n\n const result = await axiosInstance\n .get(API_MARKETPLACES, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error?.response;\n });\n return result;\n};\n\nexport async function getAdManagers() {\n const result = await axiosInstance\n .get(`${API_ADM}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getThresholdType() {\n const result = await axiosInstance\n .get(`${API_CHOICES + API_THRESHOLD_TYPE}`)\n .then((response) => {\n return response && response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getYoyPercentage() {\n const result = await axiosInstance\n .get(`${API_CHOICES + API_YOY_PERCENTAGE}`)\n .then((response) => {\n return response && response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getPaymentTermsOptions() {\n const result = await axiosInstance\n .get(`${API_PAYMENT_TERMS_OPTIONS}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCurrencyOptions() {\n const result = await axiosInstance\n .get(`${API_CHOICES}currency`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getStandardServices(channel) {\n const apiUrl =\n channel === 'amazon'\n ? `${API_CHOICES}standard-services`\n : `${API_CHOICES}standard-services-walmart`;\n const result = await axiosInstance\n .get(`${apiUrl}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getNonUSStandardServicesOptions() {\n const result = await axiosInstance\n .get(`${API_STANDARD_NON_US_SERVICES_OPTIONS}`)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getNonUSStandardServicesFrequency() {\n const result = await axiosInstance\n .get(`${API_STANDARD_NON_US_SERVICES_FREQUENCY}`)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getNonUSStandardServicesMarketplaces() {\n const result = await axiosInstance\n .get(`${API_NON_US_MARKETPLACES}`)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAgencyFee() {\n const result = await axiosInstance\n .get(`${API_CHOICES}agency-fee`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAddendumStatus() {\n const result = await axiosInstance\n .get(`${API_CHOICES}addendum-status`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error;\n });\n return result;\n}\n\nexport async function getMinDateForDashboard(\n marketplace,\n manager,\n user,\n sponsoredType,\n dashboardType,\n) {\n let params = {\n marketplace,\n user,\n dashboard_type: dashboardType,\n };\n\n if (sponsoredType !== null) {\n params = {\n ...params,\n sponsored_type: sponsoredType,\n };\n }\n\n if (manager !== null) {\n params = {\n ...params,\n bgs_manager: manager,\n };\n }\n\n const result = await axiosInstance\n .get(`${API_MIN_DATE_DASHBOARD}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import queryString from 'query-string';\n\nimport axiosInstance from '../axios';\nimport {\n API_ADDITIONAL_SERVICES,\n API_AGREEMENT_DETAILS,\n API_AGREEMENT_TEMPLATE,\n API_MARKETPLACE,\n API_SERVICE_TYPE,\n API_CONTRACT_DOCUMENT,\n API_CREATE_ADDENDUM,\n API_TRANSACTION_DATA,\n API_CONTRACT_DESIGN,\n API_TRANSACTIONAL_SIGN_URL,\n API_MARKETPLACE_BULK_UPDATE,\n API_ADDITIONAL_SERVICE_BULK_UPDATE,\n API_SEND_REMINDER,\n API_SIGNATURE_STATUS,\n API_ACTIVITY_LOG,\n API_CUSTOMER_CONTRACT,\n API_SERVICES_FEE,\n API_CUSTOMER,\n API_PAUSE_AGREEMENT,\n API_DISCOUNT,\n API_FEE_STRUCTURE,\n API_SAVE_FEE_STRUCTURE,\n API_STD_SERVICES,\n API_STANDARD_SERVICE_BULK_UPDATE,\n API_SUSPEND_AGREEMENT,\n API_DSP_AMOUNTS_PAUSE_AGREEMENT,\n API_DSP_MARKETPLACES_BULK_UPDATE,\n API_DRAFT_ADDENDUM,\n API_ADVERTSIING_SERVICES_OPTION,\n API_AMC_SERVICES_BULK_UPDATE,\n} from '../constants/ApiConstants';\n\nexport async function agreementTemplate() {\n const result = await axiosInstance\n .get(API_AGREEMENT_TEMPLATE)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function agreementDetails(id) {\n const result = await axiosInstance\n .get(`${API_AGREEMENT_DETAILS + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getcontract(id) {\n const params = { expand: '~all' };\n\n const result = await axiosInstance\n .get(`${API_CUSTOMER_CONTRACT + id}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createMarketplace(data) {\n const result = await axiosInstance\n .post(API_MARKETPLACE, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateMarketplace(id, data) {\n const result = await axiosInstance\n .patch(`${API_MARKETPLACE + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteMarketplace(id, key) {\n const value =\n key === 'additional_monthly_services' ||\n key === 'additional_one_time_services'\n ? API_ADDITIONAL_SERVICES\n : API_MARKETPLACE;\n\n const result = await axiosInstance\n .delete(`${value + id}/`)\n .then(() => {\n return '';\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createMarketplaceBulk(data) {\n const params = { expand: '~all' };\n const result = await axiosInstance\n .post(API_MARKETPLACE_BULK_UPDATE, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createAdditionalServiceBulk(data) {\n const params = { expand: '~all' };\n const result = await axiosInstance\n .post(API_ADDITIONAL_SERVICE_BULK_UPDATE, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createAdditionalServices(data) {\n const params = { expand: '~all' };\n const result = await axiosInstance\n .post(API_ADDITIONAL_SERVICES, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateAdditionalServices(id, data) {\n const result = await axiosInstance\n .patch(`${API_ADDITIONAL_SERVICES + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getServiceTypes(params) {\n const result = await axiosInstance\n .get(`${API_SERVICE_TYPE}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function fetchAdvertisingServices(params) {\n const result = await axiosInstance\n .get(`${API_ADVERTSIING_SERVICES_OPTION}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\nexport async function createAMCServicesBulk(data) {\n const result = await axiosInstance\n .post(API_AMC_SERVICES_BULK_UPDATE, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createAgreement(data) {\n const result = await axiosInstance\n .post(API_CONTRACT_DOCUMENT, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createAddendum(data) {\n const result = await axiosInstance\n .post(API_CREATE_ADDENDUM, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAddendum(data) {\n const result = await axiosInstance\n .get(API_CREATE_ADDENDUM, { params: data })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateAddendum(id, data) {\n const result = await axiosInstance\n .patch(`${API_CREATE_ADDENDUM + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createTransactionData(data) {\n const result = await axiosInstance\n .post(API_TRANSACTION_DATA, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getTransactionData(data) {\n const result = await axiosInstance\n .get(API_TRANSACTION_DATA, { params: data })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createContractDesign(data) {\n const result = await axiosInstance\n .post(API_CONTRACT_DESIGN, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function transactionalSignUp(data) {\n const result = await axiosInstance\n .get(API_TRANSACTIONAL_SIGN_URL, { params: data })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function sendReminderOfContract(data) {\n const result = await axiosInstance\n .get(API_SEND_REMINDER, { params: data })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function checksignatureStatus(data) {\n const result = await axiosInstance\n .get(API_SIGNATURE_STATUS, { params: data })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getContractActivityLog(pageNumber, id, model) {\n const params = {\n page: pageNumber === '' || pageNumber === undefined ? 1 : pageNumber,\n model,\n id,\n };\n if (id !== undefined) {\n const result = await axiosInstance\n .get(API_ACTIVITY_LOG, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function getServicesFee() {\n const result = await axiosInstance\n .get(API_SERVICES_FEE)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createContract(data) {\n const result = await axiosInstance\n .post(API_CUSTOMER_CONTRACT, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBGSManagers(id) {\n const result = await axiosInstance\n .get(`${API_CUSTOMER + id}/get-bgs-manager/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAgreementData(id, invoiceType, isLiz = false) {\n const params = {\n contract: id,\n request_type: invoiceType,\n };\n\n if (isLiz) {\n params.is_liz = true;\n }\n\n const result = await axiosInstance\n .get(API_SUSPEND_AGREEMENT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getPauseAgreementDSPAmounts(id, startDate, endDate) {\n const params = {\n contract: id,\n start_date: startDate,\n end_date: endDate,\n };\n\n const result = await axiosInstance\n .get(API_DSP_AMOUNTS_PAUSE_AGREEMENT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function agreementCancelPauseRequest(\n id,\n data,\n finalRequestOffboardedAnswers,\n requestType,\n) {\n const reqData = {\n contract: id,\n request_type: requestType,\n invoice: data,\n ...finalRequestOffboardedAnswers,\n };\n\n const result = await axiosInstance\n .post(API_SUSPEND_AGREEMENT, reqData)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteContract(id) {\n const result = await axiosInstance\n .delete(`${API_CUSTOMER_CONTRACT + id}/`)\n .then(() => {\n return '';\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getPauseAgreementDetails(pauseContractId) {\n const result = await axiosInstance\n .get(`${API_PAUSE_AGREEMENT + pauseContractId}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updatePauseAgreement(pauseId, data) {\n const result = await axiosInstance\n .patch(`${API_PAUSE_AGREEMENT + pauseId}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDiscount(contractId) {\n let params = {};\n if (contractId?.startsWith('COA')) {\n params = { contract_addendum: contractId };\n } else {\n params = { contract: contractId };\n }\n const result = await axiosInstance\n .get(`${API_DISCOUNT}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveDiscount(id, data) {\n if (id) {\n const result = await axiosInstance\n .patch(`${API_DISCOUNT + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_DISCOUNT, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getFeeStructure(contractId, type) {\n const accountType = queryString.stringify({\n account_type: type,\n });\n const params = {\n contract: contractId,\n };\n const result = await axiosInstance\n .get(`${API_FEE_STRUCTURE}?${accountType}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveFeeStructure(id, data) {\n if (id) {\n const result = await axiosInstance\n .patch(`${API_SAVE_FEE_STRUCTURE + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_SAVE_FEE_STRUCTURE, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveStdServices(data) {\n const result = await axiosInstance\n .post(API_STD_SERVICES, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createStandardNonUSServiceBulk(data) {\n const result = await axiosInstance\n .post(API_STANDARD_SERVICE_BULK_UPDATE, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createDSPMarketplacesBulk(data) {\n const result = await axiosInstance\n .post(API_DSP_MARKETPLACES_BULK_UPDATE, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveDraftAddendum(id, data) {\n if (id) {\n const result = await axiosInstance\n .patch(`${API_DRAFT_ADDENDUM + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_DRAFT_ADDENDUM, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getContractAddendum(id) {\n const result = await axiosInstance\n .get(`${API_DRAFT_ADDENDUM + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteContractAddendum(id) {\n const result = await axiosInstance\n .delete(`${API_DRAFT_ADDENDUM + id}/`)\n .then(() => {\n return '';\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getcontractForIncollections(id) {\n const contractType = ['recurring', 'dsp only', 'recurring (90 day notice)'];\n const contractStatus = ['active', 'renewed'];\n const contracts = queryString.stringify({ contract_type: contractType });\n const status = queryString.stringify({ contract_status: contractStatus });\n\n const result = await axiosInstance\n .get(\n `${API_CUSTOMER_CONTRACT}?customer=${id}&latest=true&${contracts}&${status}&fields=id,contract_type,end_date,primary_marketplace`,\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import axiosInstance from '../axios';\nimport {\n API_ARTICLE_COLLECTIONS,\n API_ARTICLE_BOARDS,\n API_ARTICLE_CARDS,\n API_ARTICLE_SEARCH,\n API_UPDATE_ARTICLE,\n API_CREATE_ARTICLE,\n} from '../constants/ApiConstants';\n\nexport async function getArticleCollections() {\n const result = await axiosInstance\n .get(API_ARTICLE_COLLECTIONS)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport function getArticleSearch(searchTerms, collectionId) {\n const params = { searchTerms, collectionId };\n const result = axiosInstance\n .get(API_ARTICLE_SEARCH, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getArticleBoards(id, type) {\n const params =\n type === 'collection' ? { collectionId: id } : { folderId: id };\n const result = await axiosInstance\n .get(API_ARTICLE_BOARDS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getArticleCards(cardId) {\n const params = { cardId };\n const result = await axiosInstance\n .get(API_ARTICLE_CARDS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateArticle(data) {\n const result = await axiosInstance\n .post(API_UPDATE_ARTICLE, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createArticle(data) {\n const result = await axiosInstance\n .post(API_CREATE_ARTICLE, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import axiosInstance from '../axios';\nimport {\n API_ACCOUNT_SUMMARY,\n API_AMAZON_ACCOUNT_DETAILS,\n API_AMAZON_SELLER_ACCOUNT,\n API_AMAZON_VENDOR_ACCOUNT,\n API_BILLING_INFO,\n API_CUSTOMER_MEMBER,\n API_DSP_CONTACT,\n API_EDIT_EMAIL,\n API_ONBOARD_CUSTOMER,\n API_PAYMENT_TERMS,\n API_SAVE_PAYMENT_TERMS,\n API_STEPS_ASSIGNED,\n API_VERIFY_TOKEN,\n API_VERIFY_USER,\n API_VIDEO_LINKS,\n API_AMAZON_SELLER_CENTRAL_BULK_UPDATE,\n API_AMAZON_VENDOR_CENTRAL_BULK_UPDATE,\n API_AMAZON_ACCOUNT,\n API_CUSTOMER_FEEDBACK,\n API_AMAZON_DSP_ACCOUNT,\n} from '../constants';\n\nexport async function updateOnBoardCustomer(id, data) {\n const result = await axiosInstance\n .patch(`${API_ONBOARD_CUSTOMER + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function askSomeoneData(data) {\n const result = await axiosInstance\n .post(API_STEPS_ASSIGNED, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateAskSomeoneData(id, data) {\n const result = await axiosInstance\n .patch(`${API_STEPS_ASSIGNED + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getStepDetails(customer, step) {\n const params = { customer_onboarding: customer, step };\n const result = await axiosInstance\n .get(API_STEPS_ASSIGNED, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function verifyStepToken(key) {\n const params = { key };\n const result = await axiosInstance\n .get(API_VERIFY_TOKEN, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function accountSummary(id) {\n const result = await axiosInstance\n .get(API_ACCOUNT_SUMMARY.replace(':id', id))\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getVideoLink(id, step) {\n const params = { step };\n const result = await axiosInstance\n .get(API_VIDEO_LINKS.replace(':id', id), { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function editCustomerEmail(data) {\n const result = await axiosInstance\n .post(API_EDIT_EMAIL, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function verifyStepUser(email, customerOnboarding) {\n const result = await axiosInstance\n .post(API_VERIFY_USER, { email, customer_onboarding: customerOnboarding })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBillingDetails(customer) {\n const params = { customer };\n if (customer !== undefined) {\n const result = await axiosInstance\n .get(API_BILLING_INFO, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return '';\n}\n\nexport async function getPaymentTermsDetails(customer) {\n const params = { customer };\n if (customer !== undefined) {\n const result = await axiosInstance\n .get(API_PAYMENT_TERMS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return '';\n}\n\nexport async function saveBillingInfo(data, id, type) {\n // for contact post if there is id is present\n if (id && type === 'newContactDataDetails') {\n const result = await axiosInstance\n .post(API_BILLING_INFO, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n\n if (id) {\n const result = await axiosInstance\n .patch(`${API_BILLING_INFO + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n\n const result = await axiosInstance\n .post(API_BILLING_INFO, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function savePaymentTerms(data, customer) {\n const params = { customer };\n if (customer !== undefined) {\n const result = await axiosInstance\n .post(`${API_SAVE_PAYMENT_TERMS}`, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return '';\n}\nexport async function getAmazonAccountDetails(step, id) {\n const params = { step };\n const result = await axiosInstance\n .get(API_AMAZON_ACCOUNT_DETAILS.replace(':id', id), { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveAmazonSellerAccount(data, id, NoAmazonAccount) {\n const params = { no_amazon_account: NoAmazonAccount };\n\n if (id) {\n const result = await axiosInstance\n .patch(`${API_AMAZON_SELLER_ACCOUNT + id}/`, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_AMAZON_SELLER_ACCOUNT, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveAmazonVendorAccount(data, id, NoAmazonAccount) {\n const params = { no_amazon_account: NoAmazonAccount };\n if (id) {\n const result = await axiosInstance\n .patch(`${API_AMAZON_VENDOR_ACCOUNT + id}/`, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_AMAZON_VENDOR_ACCOUNT, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Bulk create and update Seller primary & secondary marketplaces\n// for Amazaon Account in onboarding journey step 4\nexport async function saveSellerMarketplaces(data, noAmazonAccount) {\n const params = { no_amazon_account: noAmazonAccount };\n\n let result = {};\n\n result = await axiosInstance\n .post(`${API_AMAZON_SELLER_CENTRAL_BULK_UPDATE}`, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Bulk create and update Vendor primary & secondary marketplaces\n// for Amazaon Account in onboarding journey step 4\nexport async function saveVendorMarketplaces(data, noAmazonAccount) {\n const params = { no_amazon_account: noAmazonAccount };\n\n let result = {};\n\n result = await axiosInstance\n .post(`${API_AMAZON_VENDOR_CENTRAL_BULK_UPDATE}`, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAmazonSeller(\n marketplace,\n marketplaceName,\n customerId,\n) {\n const params = {};\n // API called in companydetail page to get data of seller central\n // need to send parameters according to type of BP (i.e Recurring or DSP)\n // if BP is DSP only then send marketplace_name and customer params otherwise marketplace\n // bcoz DSP only BP don't have marketplace ids.\n // reason for checking 'MP' string bcoz marketplace starts with MP means it is ID stored in database\n // if not starts with MP then it is marketplace code eg. amazon.com\n if (marketplace?.startsWith('MP')) {\n params.marketplace = marketplace;\n } else {\n params.marketplace_name = marketplaceName;\n params.customer = customerId;\n }\n const result = await axiosInstance\n .get(API_AMAZON_SELLER_ACCOUNT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAmazonVendor(\n marketplace,\n marketplaceName,\n customerId,\n) {\n const params = {};\n // API called in companydetail page to get data of vendor central\n // need to send parameters according to type of BP (i.e Recurring or DSP)\n // if BP is DSP only then send marketplace_name and customer params otherwise marketplace\n // bcoz DSP only BP don't have marketplace ids.\n // reason for checking 'MP' string bcoz marketplace starts with MP means it is ID stored in database\n // if not starts with MP then it is marketplace code eg. amazon.com\n if (marketplace?.startsWith('MP')) {\n params.marketplace = marketplace;\n } else {\n params.marketplace_name = marketplaceName;\n params.customer = customerId;\n }\n\n const result = await axiosInstance\n .get(API_AMAZON_VENDOR_ACCOUNT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// https://bbe.atlassian.net/browse/PDV-9099\n// save amazon dsp account details\nexport async function saveAmazonDspAccountdetails(data, id) {\n if (id) {\n const result = await axiosInstance\n .patch(`${API_AMAZON_DSP_ACCOUNT + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_AMAZON_DSP_ACCOUNT, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// https://bbe.atlassian.net/browse/PDV-9099\n// get dsp details of bp\nexport async function getAmazonDspDetails(marketplace) {\n const params = { marketplace };\n\n const result = await axiosInstance\n .get(API_AMAZON_DSP_ACCOUNT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteAmazonAccount(type, id) {\n const result = await axiosInstance\n .delete(\n type === 'seller'\n ? `${API_AMAZON_SELLER_ACCOUNT + id}/`\n : `${API_AMAZON_VENDOR_ACCOUNT + id}/`,\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveDSPContact(data, id) {\n if (id) {\n const result = await axiosInstance\n .patch(`${API_DSP_CONTACT + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_DSP_CONTACT, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPContact(customer) {\n const params = { customer };\n if (customer !== undefined) {\n const result = await axiosInstance\n .get(API_DSP_CONTACT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function updateDSPContact(id, dspContact) {\n const result = await axiosInstance\n .patch(`${API_DSP_CONTACT + id}/`, dspContact)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBPRoles(customer, user) {\n const params = { customer, user };\n\n const result = await axiosInstance\n .get(API_CUSTOMER_MEMBER, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAmazonAccount(customer) {\n const params = { customer };\n const result = await axiosInstance\n .get(API_AMAZON_ACCOUNT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateAmazonAccount(id, data) {\n const result = await axiosInstance\n .patch(`${API_AMAZON_ACCOUNT + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveCustomerFeedback(id, data, customer) {\n const params = { customer };\n if (id) {\n const result = await axiosInstance\n .patch(`${API_CUSTOMER_FEEDBACK + id}/`, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_CUSTOMER_FEEDBACK, data, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCustomerFeedback(customer) {\n const params = { customer };\n const result = await axiosInstance\n .get(API_CUSTOMER_FEEDBACK, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import axiosInstance from '../axios';\nimport {\n API_ACCOUNT_ASSIGNEE_COUNT,\n API_CUSTOMER_CONTRACT,\n API_DOCUMENTS,\n API_BRAND_ASSETS,\n API_BRAND_ASSETS_SUMMARY,\n API_BRAND_ASSETS_COMMENTS,\n} from '../constants/ApiConstants';\n\nexport async function getAgreementList(customer) {\n const fields = 'contract_type,start_date,end_date,id';\n const params = {\n customer,\n contract_status: 'active',\n fields,\n };\n const result = await axiosInstance\n .get(API_CUSTOMER_CONTRACT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAssigneeCount(customer) {\n const result = await axiosInstance\n .get(API_ACCOUNT_ASSIGNEE_COUNT.replace(':id', customer))\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteDocument(id) {\n const result = await axiosInstance\n .delete(`${API_DOCUMENTS + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateBrandAssetStep(id, data) {\n const result = await axiosInstance\n .patch(`${API_BRAND_ASSETS + id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBrandAssetsSummary(id) {\n const params = { brand_asset: id };\n const result = await axiosInstance\n .get(API_BRAND_ASSETS_SUMMARY, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBrandAssetsDetail(id) {\n const result = await axiosInstance\n .get(`${API_BRAND_ASSETS + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function downloadBrandAssetImages(data) {\n const result = await axiosInstance\n .post(`${API_DOCUMENTS}download/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function storeNewCommentData(\n message,\n documentId,\n reAssignedEmail,\n position,\n annotationNumber,\n showClickModal,\n) {\n let data = {\n message,\n document: documentId,\n re_assigned_email: reAssignedEmail,\n };\n\n if (showClickModal) {\n data = {\n ...data,\n x_coordinate: position.left,\n y_coordinate: position.top,\n annotation: annotationNumber,\n pdf_page_number: position.page,\n };\n }\n\n const result = await axiosInstance\n .post(`${API_BRAND_ASSETS_COMMENTS}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCommentsData(pageNumber, documentId) {\n const params = { document: documentId, page: pageNumber };\n const result = await axiosInstance\n .get(`${API_BRAND_ASSETS_COMMENTS}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteComment(id) {\n const result = await axiosInstance\n .delete(`${API_BRAND_ASSETS_COMMENTS}/${id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateComment(id, data) {\n const result = await axiosInstance\n .patch(`${API_BRAND_ASSETS_COMMENTS}/${id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import queryString from 'query-string';\nimport axiosInstance from '../axios';\nimport { API_NOTES } from '../constants/ApiConstants';\n\nexport async function getNotes(\n customerId,\n searchString,\n pageNumber,\n selectedFilters,\n) {\n const filters = { ...selectedFilters };\n\n let statusParams = {};\n if (selectedFilters && selectedFilters.team && selectedFilters.team.length) {\n statusParams = queryString.stringify({\n team: selectedFilters.team,\n });\n }\n\n if (\n !(selectedFilters && selectedFilters.team && selectedFilters.team.length) &&\n filters.notes === 'Team Notes'\n ) {\n filters.no_team = true;\n }\n\n delete filters.team;\n delete filters.notes;\n\n const params = {\n customer: customerId,\n expand: 'user',\n page: pageNumber || 1,\n ...filters,\n };\n\n if (searchString) {\n params.q = searchString;\n }\n\n const result = await axiosInstance\n .get(\n `${API_NOTES}?${statusParams && statusParams.length ? statusParams : ''}`,\n { params },\n )\n .then((response) => {\n return response && response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport const saveNotes = async (data) => {\n const params = { customer: data.customer };\n\n const result = await axiosInstance\n .post(API_NOTES, data, { params })\n .then((res) => {\n return res && res.data;\n })\n .catch((err) => {\n return err;\n });\n\n return result;\n};\n\nexport const updateNotes = async (noteId, data) => {\n const params = { customer: data.customer };\n\n const result = await axiosInstance\n .patch(`${API_NOTES + noteId}/`, data, { params })\n .then((res) => {\n return res && res.data;\n })\n .catch((err) => {\n return err;\n });\n\n return result;\n};\n\nexport async function deleteNote(NoteId) {\n const result = await axiosInstance\n .delete(`${API_NOTES + NoteId}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getRecentNotes(customer) {\n const params = { customer, recent: '-created_at', expand: 'user' };\n const result = await axiosInstance\n .get(API_NOTES, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import dayjs from 'dayjs';\nimport axiosInstance from '../axios';\nimport { API_DSP_BUDGET_ADJUSTMENT, API_DSP_INVOICES } from '../constants';\n\nexport async function getInvoiceData(invoiceType, id, channel, pageNumber) {\n const params = {\n customer: id,\n invoice_type: invoiceType,\n page: pageNumber === '' || pageNumber === undefined ? 1 : pageNumber,\n channel,\n };\n const result = await axiosInstance\n .get(API_DSP_INVOICES, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getInvoiceAdjustmentData(id, page) {\n const params = {\n customer: id,\n adjustment_data: 'past',\n page,\n };\n const result = await axiosInstance\n .get(API_DSP_BUDGET_ADJUSTMENT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function cancelInvoiceRequest(dspAdjustmentID, data) {\n const result = await axiosInstance\n .patch(`${API_DSP_BUDGET_ADJUSTMENT + dspAdjustmentID}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getMetricsInvoiceData(invoiceType, id, channel) {\n const params = {\n customer: id,\n invoice_type: invoiceType,\n channel,\n };\n const result = await axiosInstance\n .get(`${API_DSP_INVOICES}invoice-total/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPBudgetAdjustData(\n invoiceType,\n customerId,\n adjustType,\n appliedDate,\n) {\n let params = {\n dsp_invoice_subtype: invoiceType,\n customer: customerId,\n applicable_from: appliedDate,\n };\n if (adjustType === 'adjustInvoice') {\n params = {\n ...params,\n budget_approved: true,\n };\n } else {\n params = {\n ...params,\n pause_approved: true,\n };\n }\n const result = await axiosInstance\n .get(`${API_DSP_BUDGET_ADJUSTMENT}detailed-adjustments/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPBudgetAdjustDetail(dspAdjustmentID) {\n const result = await axiosInstance\n .get(`${API_DSP_BUDGET_ADJUSTMENT}${dspAdjustmentID}/`)\n .then((response) => {\n return response?.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateDSPBudgetAdjustment(dspAdjustmentID, data) {\n const result = await axiosInstance\n .patch(`${API_DSP_BUDGET_ADJUSTMENT + dspAdjustmentID}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function postDSPBudgetAdjustPauseInvoiceData(\n invoiceData,\n appliedDate,\n invoiceType,\n customerId,\n type,\n dspInvoiceNote,\n) {\n const todaysDate = new Date();\n const day = todaysDate.getDate();\n const finalInvoiceAdjust = {\n customer: customerId,\n dsp_invoice_subtype: invoiceType,\n applicable_from:\n invoiceType === 'one time' &&\n dayjs(appliedDate.value).get('month') === dayjs().get('month')\n ? dayjs(day + appliedDate.value).format('YYYY-MM-DD')\n : dayjs(appliedDate.value).format('YYYY-MM-DD'),\n is_sent_for_pause: type === 'pause',\n notes: type === 'pause' ? null : dspInvoiceNote,\n adjustments: [],\n };\n invoiceData.forEach((item) => {\n finalInvoiceAdjust.adjustments.push({\n new_budget: item.newAmount\n ? parseFloat(item.newAmount.replace(/,/g, ''))\n : invoiceType === 'one time'\n ? 0\n : item.new_budget,\n old_budget: item.new_budget,\n marketplace: item.marketplace,\n marketplace_id: item.marketplace_id,\n is_sent_for_pause: type === 'pause' ? item.is_sent_for_pause : false,\n local_currency: item.local_currency,\n });\n });\n\n const result = await axiosInstance\n .post(`${API_DSP_BUDGET_ADJUSTMENT}`, finalInvoiceAdjust)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import axiosInstance from '../axios';\nimport { API_PRODUCT_CATALOG } from '../constants/ApiConstants';\n\nexport async function getProductCatalog(customer, filters) {\n const params = { customer, expand: 'product_variants', ...filters };\n\n const result = await axiosInstance\n .get(API_PRODUCT_CATALOG, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function requestProductAssets(params) {\n // const params = { customer };\n const result = await axiosInstance\n .post(`${API_PRODUCT_CATALOG}request-assets/`, params)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getRequestedProducts(id) {\n const result = await axiosInstance\n .get(`product-assets/${id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateProductAsset(id, data) {\n const result = await axiosInstance\n .patch(`product-assets/${id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","/* eslint-disable no-else-return */\nimport queryString from 'query-string';\n\nimport axiosInstance from '../axios';\n\nimport {\n API_PERFORMANCE,\n API_AD_PERFORMANCE,\n API_VENDOR_ORDERED,\n API_VENDOR_SHIPPED,\n API_ALLOCATE_BALANCE,\n API_ESCROW_BALANCE_MARKETPLACE,\n API_ESCROW_REALLOCATION,\n API_ASIN_PERFORMANCE,\n API_PERFORMANCE_MIN_DATE,\n API_DATA_AVAIBALE_CHILD_BRANDS,\n API_CREATIVE_PROJECT,\n API_CREATIVE_PROJECT_TABLE_INFO,\n API_CREATIVE_PROJECT_MONTHS,\n API_CREATIVE_PROJECT_CSV,\n API_VENDOR_ORDERED_ASIN_PERFORMANCE,\n API_VENDOR_SHIPPED_COGS_ASIN_PERFORMANCE,\n API_PROJECT_TYPES,\n API_COMPLETED_CREATIVE_PROJECT,\n API_SPONSORED_ASIN_PERFORMANCE,\n API_DSP_ASIN_PERFORMANCE,\n API_SPONSORED_CAMPAIGN_DATA,\n API_SPONSORED_CAMPAIGN_ASIN_PERFORMANCE,\n API_DSP_CAMPAIGN_LIST,\n API_DSP_CAMPAIGN_DOWNLOAD_REPORT,\n API_SP_CAMPAIGN_DOWNLOAD_REPORT,\n SELLERSMALL,\n CUSTOM,\n ORDEREDREVENUE,\n SHIPPEDCOGS,\n} from '../constants';\n\nexport async function getPerformance(\n customer,\n dailyFacts,\n groupBy,\n marketplace,\n goalsMarketplaceIds,\n childBrandId,\n startDate,\n endDate,\n) {\n let marketplacesData = '';\n if (goalsMarketplaceIds?.length) {\n marketplacesData = goalsMarketplaceIds?.toString();\n // queryString.stringify(list);\n }\n\n let params = {\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n };\n if (startDate && endDate) {\n params = {\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n if (childBrandId !== null) {\n params = {\n ...params,\n childBrandId: childBrandId?.value,\n };\n }\n\n if (marketplacesData && marketplacesData?.length) {\n params = {\n ...params,\n goal_marketplace: marketplacesData,\n };\n }\n const result = await axiosInstance\n .get(`${API_PERFORMANCE + customer}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getVendorReportingData(\n customer,\n dailyFacts,\n groupBy,\n marketplace,\n goalsMarketplaceIds,\n childBrandId,\n startDate,\n endDate,\n metricsType,\n) {\n const api =\n metricsType === ORDEREDREVENUE ? API_VENDOR_ORDERED : API_VENDOR_SHIPPED;\n const goalMarketplacesIds =\n goalsMarketplaceIds?.length > 0 ? goalsMarketplaceIds?.toString() : null;\n let params = {\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace: marketplace?.value,\n goal_marketplace: goalMarketplacesIds,\n };\n\n if (startDate && endDate) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n if (childBrandId !== null) {\n params = {\n ...params,\n childBrandId: childBrandId?.value,\n };\n }\n\n const result = await axiosInstance\n .get(`${api + customer}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBuyBoxChartData(\n customer,\n marketplace,\n bbDailyFact,\n groupBy,\n childBrandId,\n startDate,\n endDate,\n) {\n let params = {};\n if (startDate && endDate) {\n params = {\n daily_facts: 'week',\n group_by: groupBy,\n marketplace,\n bbep_interval: bbDailyFact,\n start_date: startDate,\n end_date: endDate,\n };\n } else {\n params = {\n daily_facts: 'week',\n group_by: groupBy,\n marketplace,\n bbep_interval: bbDailyFact,\n };\n }\n\n if (childBrandId !== null) {\n params = {\n ...params,\n childBrandId: childBrandId?.value,\n };\n }\n\n const result = await axiosInstance\n .get(`${API_PERFORMANCE + customer}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getAdPerformance(\n customer,\n adType,\n dailyFacts,\n groupBy,\n marketplace,\n goalsMarketplaceIds,\n childBrandId,\n startDate,\n endDate,\n accountType,\n) {\n let marketplacesData = '';\n if (goalsMarketplaceIds?.length) {\n marketplacesData = goalsMarketplaceIds?.toString();\n // queryString.stringify(list);\n }\n\n let params = {};\n if (startDate && endDate) {\n params = {\n sponsored_type: adType,\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n start_date: startDate,\n end_date: endDate,\n account_type: accountType,\n };\n } else {\n params = {\n sponsored_type: adType,\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n account_type: accountType,\n };\n }\n\n if (childBrandId !== null) {\n params = {\n ...params,\n childBrandId: childBrandId?.value,\n };\n }\n const result = await axiosInstance\n .get(\n `${API_AD_PERFORMANCE + customer}/?${\n marketplacesData && marketplacesData?.length\n ? `goal_marketplace=${marketplacesData}`\n : ''\n }`,\n { params },\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// PDV-8693 - Sponsored campaign report\n// async function for get sponsored ad campaign data\nexport async function getSponsoredAdCampaignData(\n customerId,\n accountType,\n selectedMarketplace,\n sponsoredAdType,\n timeFrame,\n campaignSortBy,\n campaignSearchQuery,\n orderByApiKey,\n pageNumber,\n startDate,\n endDate,\n childBrandId,\n) {\n const params = {\n customer: customerId,\n account_type: accountType,\n marketplace: selectedMarketplace,\n ads_report_type: sponsoredAdType,\n daily_facts: timeFrame,\n campaign_status: campaignSortBy,\n q: campaignSearchQuery,\n 'order-by': orderByApiKey,\n page: pageNumber,\n start_date: timeFrame === CUSTOM ? startDate : null,\n end_date: timeFrame === CUSTOM ? endDate : null,\n childBrandId: childBrandId !== null ? childBrandId : null,\n };\n\n const result = await axiosInstance\n .get(API_SPONSORED_CAMPAIGN_DATA, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// PDV-8693 - Sponsored campaign report\n// async function for get sponsored ad campaign asin performance data\nexport async function getSponsoredAdCampaignAsinData(\n customerId,\n accountType,\n sponsoredAdType,\n campaignId,\n campaignStatus,\n asinCount,\n marketplaceId,\n orderByApiKey,\n pageNumber,\n timeFrame,\n startDate,\n endDate,\n childBrandId,\n) {\n const params = {\n customer: customerId,\n account_type: accountType,\n ads_report_type: sponsoredAdType,\n campaign_id: campaignId,\n campaign_status: campaignStatus,\n asin_count: asinCount,\n marketplace_id: marketplaceId,\n 'order-by': orderByApiKey,\n daily_facts: timeFrame,\n page: pageNumber,\n start_date: timeFrame === CUSTOM ? startDate : null,\n end_date: timeFrame === CUSTOM ? endDate : null,\n childBrandId: childBrandId !== null ? childBrandId : null,\n };\n\n const result = await axiosInstance\n .get(API_SPONSORED_CAMPAIGN_ASIN_PERFORMANCE, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// async function for get sponsored ad campaign downl;oad report\nexport async function getSpAdCampaignDownloadReport(\n customerId,\n accountType,\n selectedMarketplace,\n sponsoredAdType,\n timeFrame,\n campaignSortBy,\n campaignSearchQuery,\n orderByApiKey,\n startDate,\n endDate,\n childBrandId,\n) {\n const params = {\n customer: customerId,\n account_type: accountType,\n marketplace: selectedMarketplace,\n ads_report_type: sponsoredAdType,\n daily_facts: timeFrame,\n campaign_status: campaignSortBy,\n q: campaignSearchQuery,\n 'order-by': orderByApiKey,\n start_date: timeFrame === CUSTOM ? startDate : null,\n end_date: timeFrame === CUSTOM ? endDate : null,\n childBrandId: childBrandId !== null ? childBrandId : null,\n };\n\n const result = await axiosInstance\n .get(API_SP_CAMPAIGN_DOWNLOAD_REPORT, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// PDV-8401\n// async function for get sponsored ad asin performance data\nexport async function getSponsoredAdAsinPerformanceData(\n customerId,\n accountType,\n selectedMarketplace,\n sponsoredAdType,\n orderByApiKey,\n pageNumber,\n timeFrame,\n startDate,\n endDate,\n childBrandId,\n downloadReport = null,\n) {\n const params = {\n customer: customerId,\n account_type: accountType,\n marketplace: selectedMarketplace,\n ads_report_type: sponsoredAdType,\n 'order-by': orderByApiKey,\n daily_facts: timeFrame,\n page: downloadReport ? null : pageNumber,\n start_date: timeFrame === CUSTOM ? startDate : null,\n end_date: timeFrame === CUSTOM ? endDate : null,\n childBrandId: childBrandId !== null ? childBrandId : null,\n download_report: downloadReport !== null ? true : null,\n };\n\n const result = await axiosInstance\n .get(API_SPONSORED_ASIN_PERFORMANCE, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDspAdAsinPerformanceData(\n customerId,\n selectedMarketplace,\n orderByApiKey,\n pageNumber,\n timeFrame,\n startDate,\n endDate,\n childBrandId,\n downloadReport = null,\n) {\n const params = {\n customer: customerId,\n marketplace: selectedMarketplace,\n 'order-by': orderByApiKey,\n daily_facts: timeFrame,\n page: downloadReport ? null : pageNumber,\n start_date: timeFrame === CUSTOM ? startDate : null,\n end_date: timeFrame === CUSTOM ? endDate : null,\n childBrandId: childBrandId !== null ? childBrandId : null,\n download_report: downloadReport !== null ? true : null,\n };\n\n const result = await axiosInstance\n .get(API_DSP_ASIN_PERFORMANCE, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// async function for dsp campaign download report\nexport async function getDspCampaignDownloadReport(\n customerId,\n selectedMarketplace,\n timeFrame,\n orderByApiKey,\n dspCampaignSearchQuery,\n startDate,\n endDate,\n childBrandId,\n) {\n const params = {\n customer: customerId,\n marketplace: selectedMarketplace,\n daily_facts: timeFrame,\n 'order-by': orderByApiKey,\n q: dspCampaignSearchQuery?.length > 0 ? dspCampaignSearchQuery : null,\n start_date: timeFrame === CUSTOM ? startDate : null,\n end_date: timeFrame === CUSTOM ? endDate : null,\n childBrandId: childBrandId !== null ? childBrandId : null,\n dsp_campaign_report: true,\n };\n\n const result = await axiosInstance\n .get(API_DSP_CAMPAIGN_DOWNLOAD_REPORT, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDspCampaignList(\n customerId,\n selectedMarketplace,\n orderByApiKey,\n pageNumber,\n timeFrame,\n searchQuery,\n childBrandId,\n startDate,\n endDate,\n) {\n let params = {\n customer: customerId,\n marketplace: selectedMarketplace,\n 'order-by': orderByApiKey,\n daily_facts: timeFrame,\n page: pageNumber,\n childBrandId: childBrandId !== null ? childBrandId : null,\n };\n\n if (searchQuery !== '') {\n params = {\n ...params,\n q: searchQuery,\n };\n }\n if (timeFrame === CUSTOM) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n const result = await axiosInstance\n .get(API_DSP_CAMPAIGN_LIST, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDspCampaignPerformanceData(\n customerId,\n selectedMarketplace,\n orderByApiKey,\n pageNumber,\n timeFrame,\n startDate,\n endDate,\n childBrandId,\n downloadReport = null,\n campaignOrderId = null,\n) {\n let params = {\n customer: customerId,\n marketplace: selectedMarketplace,\n 'order-by': orderByApiKey,\n daily_facts: timeFrame,\n page: downloadReport ? null : pageNumber,\n start_date: timeFrame === CUSTOM ? startDate : null,\n end_date: timeFrame === CUSTOM ? endDate : null,\n childBrandId: childBrandId !== null ? childBrandId : null,\n download_report: downloadReport !== null ? true : null,\n };\n\n if (campaignOrderId !== null) {\n params = {\n ...params,\n order_id: campaignOrderId,\n };\n }\n\n const result = await axiosInstance\n .get(API_DSP_ASIN_PERFORMANCE, {\n params,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPPerformance(\n customer,\n dailyFacts,\n groupBy,\n marketplace,\n goalsMarketplaceIds,\n childBrandId,\n startDate,\n endDate,\n) {\n let marketplacesData = '';\n if (goalsMarketplaceIds?.length) {\n marketplacesData = goalsMarketplaceIds?.toString();\n // queryString.stringify(list);\n }\n let params = {\n dsp_daily_facts: dailyFacts,\n dsp_group_by: groupBy,\n dsp_marketplace: marketplace,\n };\n\n if (startDate && endDate) {\n params = {\n ...params,\n dsp_start_date: startDate,\n dsp_end_date: endDate,\n };\n }\n\n if (childBrandId !== null) {\n params = {\n ...params,\n childBrandId: childBrandId?.value,\n };\n }\n const result = await axiosInstance\n .get(\n `${API_AD_PERFORMANCE + customer}/?${\n marketplacesData && marketplacesData?.length\n ? `goal_marketplace=${marketplacesData}`\n : ''\n }`,\n { params },\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPPacingGraphData(\n customer,\n marketplace,\n childBrandId,\n) {\n let params = { dsp_marketplace: marketplace, dsp_pacing_graph: true };\n\n if (childBrandId !== null) {\n params = {\n ...params,\n childBrandId: childBrandId?.value,\n };\n }\n\n const result = await axiosInstance\n .get(`${API_AD_PERFORMANCE + customer}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDspPacingData(id, marketplace, childBrandId) {\n let params = { dsp_pacing: 'month', dsp_marketplace: marketplace };\n\n if (childBrandId !== null) {\n params = {\n ...params,\n childBrandId: childBrandId?.value,\n };\n }\n\n const result = await axiosInstance\n .get(`${API_AD_PERFORMANCE + id}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\nexport async function getEscrowBalanceMarketplaceData(id) {\n const params = { customer_id: id };\n const result = await axiosInstance\n .get(`${API_ESCROW_BALANCE_MARKETPLACE}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\nexport async function storeAllocatedBudget(data, customerId, marketplace) {\n const allocateMonths = [];\n for (const option of data) {\n allocateMonths.push({\n escrow_allocated_converted_usd: Number(\n option.escrow_allocated_converted_usd,\n ),\n month_year: option.month_year,\n });\n }\n\n const params = {\n customer_id: customerId,\n marketplace,\n allocate_balance: allocateMonths,\n };\n\n const result = await axiosInstance\n .post(API_ALLOCATE_BALANCE, params)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\nexport async function storeEscrowReallocation(data) {\n const result = await axiosInstance\n .post(API_ESCROW_REALLOCATION, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getASINPerformanceData(\n customer,\n marketplace,\n childBrandId,\n page,\n orderByKey,\n orderByFlag,\n asinType,\n timefilterType,\n startDate,\n endDate,\n selectedAccountType,\n vendorMetricsType,\n downloadReport,\n) {\n let params = {\n customer,\n marketplace,\n page,\n };\n\n params = {\n ...params,\n 'order-by': orderByFlag ? `-${orderByKey}` : orderByKey,\n daily_facts: timefilterType,\n };\n if (downloadReport) {\n params.download_report = true;\n }\n\n if (selectedAccountType === SELLERSMALL) {\n params = {\n ...params,\n asin_type: asinType,\n };\n }\n\n if (childBrandId !== null) {\n params = {\n ...params,\n childBrandId: childBrandId?.value,\n };\n }\n\n if (timefilterType === CUSTOM) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n let result = null;\n if (selectedAccountType === SELLERSMALL) {\n result = await axiosInstance.get(`${API_ASIN_PERFORMANCE}`, {\n params,\n });\n } else if (vendorMetricsType === ORDEREDREVENUE) {\n result = await axiosInstance.get(`${API_VENDOR_ORDERED_ASIN_PERFORMANCE}`, {\n params,\n });\n } else if (vendorMetricsType === SHIPPEDCOGS) {\n result = await axiosInstance.get(\n `${API_VENDOR_SHIPPED_COGS_ASIN_PERFORMANCE}`,\n {\n params,\n },\n );\n }\n\n return result;\n}\n\nexport async function getSalesAndAdMinDate(\n customer,\n marketplace,\n sponsoredType,\n accountType,\n) {\n const params = {\n customer,\n marketplace,\n sponsored_type: sponsoredType,\n account_type: accountType,\n };\n\n const result = await axiosInstance\n .get(`${API_PERFORMANCE_MIN_DATE}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDataAvailabeleChildBrand(\n customer,\n dashboard,\n accountType,\n marketplace,\n sponsoredType,\n timeframe,\n startDate,\n endDate,\n) {\n let params = {\n customer,\n account_type: accountType,\n marketplace,\n timeframe,\n };\n\n if (dashboard === ORDEREDREVENUE) {\n params = {\n ...params,\n dashboard: 'ordered_revenue',\n };\n } else if (dashboard === SHIPPEDCOGS) {\n params = {\n ...params,\n dashboard: 'shipped_cogs',\n };\n } else {\n params = {\n ...params,\n dashboard,\n };\n }\n\n if (sponsoredType !== null) {\n params = {\n ...params,\n sponsored_type: sponsoredType,\n };\n }\n\n if (timeframe === CUSTOM) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n const result = await axiosInstance\n .get(`${API_DATA_AVAIBALE_CHILD_BRANDS}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCreativeProjectMonths(customer, accountType) {\n const params = { customer, account_type: accountType };\n const result = await axiosInstance\n .get(API_CREATIVE_PROJECT_MONTHS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCreativeProjectGlobalFilters(\n customer,\n accountType,\n filteredData,\n) {\n const modifiedMonthData = filteredData?.months\n ?.map((op) => op.value)\n .toString();\n const params = {\n customer,\n account_type: accountType,\n month:\n !modifiedMonthData || modifiedMonthData?.includes('all')\n ? null\n : modifiedMonthData,\n };\n const result = await axiosInstance\n .get(API_CREATIVE_PROJECT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCreativeProjectTableInfo(\n customer,\n vendorReporting,\n accountType,\n filteredData,\n page,\n asinCheckSum,\n asin,\n) {\n const modifiedMonthData = filteredData?.months\n ?.map((op) => op.value)\n .toString();\n let localAsinCheckSum = null;\n\n if (asin !== undefined && asin?.length) {\n localAsinCheckSum = [...asin];\n if (asin[0] === null) {\n localAsinCheckSum.shift();\n }\n localAsinCheckSum = localAsinCheckSum.toString();\n }\n\n const params = {\n customer,\n vendor_reporting: vendorReporting,\n account_type: accountType,\n page,\n asin_view_checksum: asinCheckSum,\n asins: localAsinCheckSum,\n month:\n !modifiedMonthData || modifiedMonthData?.includes('all')\n ? null\n : modifiedMonthData,\n };\n const result = await axiosInstance\n .get(API_CREATIVE_PROJECT_TABLE_INFO, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nconst treamObjectValuesInToArray = (selectedDropdownList) => {\n if (selectedDropdownList?.length) {\n let allDropdownValues = [];\n selectedDropdownList.forEach((item) =>\n allDropdownValues.push(`${item?.value}`),\n );\n allDropdownValues = allDropdownValues?.filter((item) => item !== 'all');\n return allDropdownValues;\n }\n return null;\n};\n\nexport async function getCreativeProjectGraphData(\n customer,\n multiSelectedValues,\n groupBy,\n afterDaysValue,\n accountType,\n vendorReporting,\n) {\n const creativeProjectGraphparams = {\n group_by: groupBy,\n days: afterDaysValue,\n account_type: accountType,\n };\n const monthParams = treamObjectValuesInToArray(multiSelectedValues?.months);\n const marketplaceParams = treamObjectValuesInToArray(\n multiSelectedValues?.marketplaces,\n );\n const projectTypeParams = treamObjectValuesInToArray(\n multiSelectedValues?.project_type,\n );\n const projectChecksumParams = treamObjectValuesInToArray(\n multiSelectedValues?.projects,\n );\n const asinParams = multiSelectedValues?.asin;\n // ?.map(\n // (item) => item?.split('-')?.[0],\n // );\n\n if (monthParams?.length) {\n creativeProjectGraphparams.month = monthParams;\n }\n if (marketplaceParams?.length) {\n creativeProjectGraphparams.marketplace = marketplaceParams;\n }\n if (projectTypeParams?.length) {\n creativeProjectGraphparams.project_type = projectTypeParams;\n }\n if (projectChecksumParams?.length) {\n creativeProjectGraphparams.project_checksum = projectChecksumParams;\n }\n if (asinParams?.length) {\n creativeProjectGraphparams.asins = asinParams;\n }\n if (vendorReporting?.length) {\n creativeProjectGraphparams.vendor_reporting = vendorReporting;\n }\n\n const params = queryString.stringify(creativeProjectGraphparams);\n\n if (projectChecksumParams && projectChecksumParams?.[0] !== 'undefined') {\n const result = await axiosInstance\n .get(`${API_CREATIVE_PROJECT}${customer}/?${params}`)\n .then((response) => {\n return response.data;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function getCreativeProjectTableCSV(\n customer,\n vendorReporting,\n accountType,\n filteredData,\n viewType,\n) {\n const modifiedMonthData = filteredData?.months\n ?.map((op) => op.value)\n .toString();\n const modifiedMarketplaceData = filteredData?.marketplaces\n ?.map((op) => op.value)\n .toString();\n const modifiedProjectTypeData = filteredData?.project_type\n ?.map((op) => op.value)\n .toString();\n const params = {\n customer,\n vendor_reporting: vendorReporting,\n account_type: accountType,\n month:\n !modifiedMonthData || modifiedMonthData?.includes('all')\n ? null\n : modifiedMonthData,\n marketplace:\n !modifiedMarketplaceData || modifiedMarketplaceData?.includes('all')\n ? null\n : modifiedMarketplaceData,\n\n project_type:\n !modifiedProjectTypeData || modifiedProjectTypeData?.includes('all')\n ? null\n : modifiedProjectTypeData,\n view_type: viewType === 'asins' ? 'asin' : viewType,\n };\n const result = await axiosInstance\n .get(API_CREATIVE_PROJECT_CSV, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getProjectTypes() {\n const result = await axiosInstance\n .get(API_PROJECT_TYPES)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function checkCreativeProjectTypes(data) {\n const params = {\n customer: data.customer,\n project: data.project,\n marketplace: data.marketplace,\n account_type: data.account_type,\n completion_date: data.completion_date,\n };\n const result = await axiosInstance\n .get(API_COMPLETED_CREATIVE_PROJECT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function uploadCreativeSheet(id, data) {\n if (id) {\n const result = await axiosInstance\n .patch(`${API_COMPLETED_CREATIVE_PROJECT + id}/`, {\n customer: data.customer,\n asins_listings: data.asins_listings,\n })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n } else {\n const result = await axiosInstance\n .post(API_COMPLETED_CREATIVE_PROJECT, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n}\n\nexport async function addCreativeProjectType(data) {\n const result = await axiosInstance\n .post(API_PROJECT_TYPES, { project_type: data })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteCreativeProject(id) {\n const result = await axiosInstance\n .delete(`${API_COMPLETED_CREATIVE_PROJECT + id}/`)\n .then(() => {\n return true;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import queryString from 'query-string';\nimport axiosInstance from '../axios';\nimport {\n API_REPORTS_SECTION,\n API_CUSTOMER,\n API_REPORTS_TYPES,\n API_REPORTS_DOWNLOAD,\n API_CUSTOMIZED_REPORTS,\n API_CUSTOMIZED_REPORTS_ACCESS,\n API_CUSTOMIZED_REPORTS_METRICS_DATA,\n API_ASIN_PERFORMANCE,\n API_CUSTOM_REPORTS_NOTIFICATION,\n API_ASIN_PERFORMANCE_DATA_COUNT,\n API_CUSTOMISED_REPORT_STATUS,\n API_CUSTOMIZED_REPORTS_TEMPLATE,\n API_PARTNER_OPPORTUNITY_DROPDOWN_LIST,\n OBJECTIVE,\n TITLE,\n CUSTOM,\n} from '../constants';\n\n// PENDING = 'pending';\n// ACTIVE = 'active';\n// AT_RISK = 'at risk';\n// PENDING_CANCELLATION = 'pending cancellation';\n// INACTIVE = 'inactive';\n// PENDING_ACCOUNT_SETUP = 'pending account setup';\n\nexport async function getBPUserList(query) {\n let params = {};\n let statusParams = {};\n const availableStatus = [\n 'active',\n 'at risk',\n 'pending cancellation',\n 'in collections',\n 'out of contract',\n ];\n statusParams = queryString.stringify({\n status: availableStatus,\n });\n\n if (query) {\n params = { q: query };\n } else {\n params = {\n no_page: 'True',\n fields: 'id,company_name,customer_account_type',\n };\n }\n let result = {};\n result = await axiosInstance\n .get(\n `${API_CUSTOMER}?${\n statusParams && statusParams.length ? statusParams : ''\n }`,\n { params },\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getReportTypes() {\n let result = {};\n result = await axiosInstance\n .get(API_REPORTS_TYPES)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getReportsSectionData(\n reportType,\n searchString,\n page,\n customerId,\n dailyFacts,\n marketplace,\n startDate,\n endDate,\n) {\n let params = {\n page,\n marketplace,\n date_range: reportType === 'account_audit' ? 'all-time' : dailyFacts,\n };\n\n if (searchString !== '') {\n params = {\n ...params,\n q: searchString,\n };\n }\n\n if (customerId && customerId !== 'Select-BP') {\n params = {\n ...params,\n customer: customerId,\n };\n }\n\n if (dailyFacts === CUSTOM) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n if (reportType !== 'reportType') {\n params = {\n ...params,\n report_type: reportType,\n };\n }\n\n let result = {};\n result = await axiosInstance\n .get(`${API_REPORTS_SECTION}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getReportDownload(\n selctedUser,\n timeFilter,\n startDate,\n endDate,\n reportID,\n marketplace,\n selectedTitle,\n) {\n let result = {};\n\n let params = {\n customer: selctedUser,\n date_range: timeFilter,\n report: reportID,\n marketplace,\n };\n\n if (timeFilter === CUSTOM) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n if (selectedTitle?.value !== TITLE) {\n params = {\n ...params,\n partner_opportunity: selectedTitle?.value,\n };\n }\n result = await axiosInstance\n .get(API_REPORTS_DOWNLOAD, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get the dropdown options in partner opprotunity modal\nexport async function getPartnerOpportunitiesDropdownOptions(\n timeframe,\n customDateState,\n selectedProduct,\n selectedObjective,\n type,\n) {\n let result = {};\n\n let params = {\n date_range: timeframe,\n start_date: customDateState?.startDate,\n end_date: customDateState?.endDate,\n };\n\n if (type === OBJECTIVE) {\n params = {\n ...params,\n product: selectedProduct?.value,\n };\n }\n if (type === TITLE) {\n params = {\n ...params,\n product: selectedProduct?.value,\n objective: selectedObjective?.value,\n };\n }\n\n result = await axiosInstance\n .get(API_PARTNER_OPPORTUNITY_DROPDOWN_LIST, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCustomzedReportData(page, searchString, OrderBy) {\n let params = { page };\n\n if (searchString !== '') {\n params = {\n ...params,\n q: searchString,\n };\n }\n\n if (OrderBy) {\n params = {\n ...params,\n 'order-by': OrderBy,\n };\n }\n\n let result = {};\n result = await axiosInstance\n .get(`${API_CUSTOMIZED_REPORTS}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getReportGraphSelectedFileds(reportId) {\n let result = {};\n result = await axiosInstance\n .get(`${API_CUSTOMIZED_REPORTS}${reportId}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getReportTemplate(templateId) {\n let result = {};\n result = await axiosInstance\n .get(`${API_CUSTOMIZED_REPORTS_TEMPLATE}${templateId}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveReport(reportId, data, saveType) {\n const params = { ...data };\n if (reportId !== null && saveType === 'replaceExisting') {\n const result = await axiosInstance\n .patch(`${API_CUSTOMIZED_REPORTS + reportId}/`, params)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n const result = await axiosInstance\n .post(API_CUSTOMIZED_REPORTS, params)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getSalesSponsoredDspMetricsData(\n customerId,\n marketplace,\n selectedTimeFrame,\n startDate,\n endDate,\n accountType,\n graphFrequency,\n // adType,\n) {\n let params = {\n customer_id: customerId,\n marketplace,\n daily_facts: selectedTimeFrame,\n account_type: accountType.toLowerCase(),\n group_by: graphFrequency,\n // sponsored_type: adType,\n };\n\n if (selectedTimeFrame === CUSTOM) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n let result = {};\n result = await axiosInstance\n .get(API_CUSTOMIZED_REPORTS_METRICS_DATA, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function checkReportStatusToEdit(reportId) {\n let result = {};\n result = await axiosInstance\n .get(`${API_CUSTOMISED_REPORT_STATUS}${reportId}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function changeReportStatus(reportId, reportStatus) {\n let result = {};\n const params = {\n report_status: reportStatus,\n };\n result = await axiosInstance\n .patch(`${API_CUSTOMISED_REPORT_STATUS}${reportId}/`, params)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCustomisedReportAccess(customerId) {\n const params = {\n customer: customerId,\n };\n\n let result = {};\n result = await axiosInstance\n .get(API_CUSTOMIZED_REPORTS_ACCESS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getCutomReportASINPerformanceData(\n customer,\n marketplace,\n asinType,\n orderBy,\n timefilterType,\n startDate,\n endDate,\n asinCount,\n) {\n let params = {\n customer,\n marketplace,\n 'order-by': orderBy,\n asin_type: asinType,\n daily_facts: timefilterType,\n };\n\n if (asinCount !== null) {\n params = {\n ...params,\n asin_count: asinCount,\n };\n }\n\n if (timefilterType === CUSTOM) {\n params = {\n ...params,\n start_date: startDate,\n end_date: endDate,\n };\n }\n\n const result = await axiosInstance.get(`${API_ASIN_PERFORMANCE}`, {\n params,\n });\n return result;\n}\n\nexport async function getCustomReportActivity(actions, reportID) {\n const params = {\n actions,\n report_id: reportID,\n };\n\n const result = await axiosInstance.get(`${API_CUSTOM_REPORTS_NOTIFICATION}`, {\n params,\n });\n return result;\n}\n\nexport async function getAsinDataCount(customer, marketplace, timefilterType) {\n const params = {\n customer,\n marketplace,\n daily_facts: timefilterType,\n };\n\n const result = await axiosInstance.get(`${API_ASIN_PERFORMANCE_DATA_COUNT}`, {\n params,\n });\n return result;\n}\n\nexport async function getReportTemplateList(accountType) {\n const params = {\n account_type: accountType.toLowerCase(),\n };\n\n const result = await axiosInstance.get(`${API_CUSTOMIZED_REPORTS_TEMPLATE}`, {\n params,\n });\n return result;\n}\n","/* eslint-disable array-callback-return */\n/* eslint-disable consistent-return */\n\nimport axiosInstance from '../axios';\nimport {\n API_PLAYBOOK_QUARTER_DATA,\n API_CUSTOMER_PLAYBOOK,\n API_CREATE_PLAYBOOK,\n API_UPDATE_TASK_STATUS,\n API_PLAYBOOK_CONTRACT_SERVICES,\n API_PLAYBOOK_SERVICES_LIST,\n API_GET_ASSIGNEE,\n API_UPDATE_ASSIGNEE,\n API_ONBOARDING_PLAYBOOK_DATA,\n API_PLAYBOOK_TEAM,\n API_PLAYBOOK_SUMMARY,\n API_PLAYBOOK_SERVICES,\n API_SEND_FOR_APPROVAL,\n} from '../constants';\n\n// get playbook task and service data\nexport async function getPlaybookTaskAndServicesData(params) {\n const result = await axiosInstance\n .get(`${API_PLAYBOOK_QUARTER_DATA}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get playbook team\nexport async function getPlaybookTeamData() {\n const result = await axiosInstance\n .get(`${API_PLAYBOOK_TEAM}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get playbook service list\nexport async function getPlaybookServicesListData(customerId) {\n const params = {\n customer: customerId,\n };\n const result = await axiosInstance\n .get(`${API_PLAYBOOK_SERVICES_LIST}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Get the update status id for onboarding playbook\nexport async function getOnboardingPBTaskUpdateID(params) {\n const result = await axiosInstance\n .get(`${API_CUSTOMER_PLAYBOOK}/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// save the update status of playbook\nexport async function updateTaskStatus(id, data) {\n const result = await axiosInstance\n .patch(`${API_UPDATE_TASK_STATUS}${id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get playbook contract services\nexport async function getPlaybookContractServices(customerId, month) {\n const params = {\n customer: customerId,\n month,\n };\n const result = await axiosInstance\n .get(`${API_PLAYBOOK_CONTRACT_SERVICES}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// create playbook epic and task automaticaaly\nexport async function createCustomerPlaybook(customerId, team) {\n const params = {\n customer_id: customerId,\n team,\n };\n const result = await axiosInstance\n .post(`${API_CREATE_PLAYBOOK}`, params)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get assigned users of customer\nexport async function getBBEUsersData(customerId, searchQuery, currentPage) {\n const params = {\n customer: customerId,\n search_user: searchQuery || '',\n page: currentPage || 1,\n };\n const result = await axiosInstance\n .get(`${API_GET_ASSIGNEE}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// update Playbook Task Assignee\nexport async function updatePlaybookTaskAssignee(quarterId, params) {\n const result = await axiosInstance\n .patch(`${API_UPDATE_ASSIGNEE}${quarterId}/`, params)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get onboarding playbook data\nexport async function getOnboardingPlaybookData(customerId) {\n const params = {\n customer: customerId,\n };\n const result = await axiosInstance\n .get(`${API_ONBOARDING_PLAYBOOK_DATA}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get playbook summary data\nexport async function getPlaybookSummaryData(\n customerId,\n selectedMarketplaces,\n selectedService,\n selectedTeamMembers,\n customStartDate,\n // customEndDate,\n accountType,\n) {\n let marketplacesData = {};\n const list = [];\n // eslint-disable-next-line no-unused-vars\n const marketplace = selectedMarketplaces\n ?.filter((mrktplc) => {\n if (mrktplc?.value !== 'all') return mrktplc;\n })\n ?.map((item) => {\n list.push(item.value);\n return item;\n });\n\n if (list?.length) {\n marketplacesData = list?.toString();\n // queryString.stringify(list);\n }\n\n let teamsString = '';\n const tempTeamMembers = [];\n\n // formatting selected teams data\n const AllTeamsSelected = selectedTeamMembers?.find(\n (option) => option?.value === 'all',\n );\n if (AllTeamsSelected) {\n teamsString = 'all';\n } else {\n for (const item of selectedTeamMembers) {\n tempTeamMembers.push(item?.value);\n }\n teamsString = tempTeamMembers?.toString();\n }\n\n const params = {\n customer: customerId,\n account_type: accountType?.value,\n service_name: selectedService?.value,\n start_date: customStartDate,\n end_date: customStartDate,\n teams: teamsString,\n };\n const result = await axiosInstance\n .get(\n `${API_PLAYBOOK_SUMMARY}?${\n marketplacesData && marketplacesData?.length\n ? `&marketplace=${marketplacesData}`\n : ''\n }`,\n { params },\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// create playbook epic and task automaticaaly\nexport async function createCustomerPlaybookFromSummary(customerId, data) {\n const params = {\n ...data,\n };\n const result = await axiosInstance\n .post(\n `${API_CUSTOMER_PLAYBOOK}/${customerId}/approve-create-playbook/`,\n params,\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get playbook services data\nexport async function getPlaybookServicesData(\n customerId,\n playbookTab,\n selectedMarketplaces,\n selectedTeamMembers,\n customStartDate,\n accountType,\n) {\n const marketplacesData = selectedMarketplaces?.value;\n\n let teamsString = '';\n const tempTeamMembers = [];\n\n // formatting selected teams data\n const AllTeamsSelected = selectedTeamMembers?.find(\n (option) => option?.value === 'all',\n );\n if (AllTeamsSelected) {\n teamsString = 'all';\n } else {\n for (const item of selectedTeamMembers) {\n tempTeamMembers.push(item?.value);\n }\n teamsString = tempTeamMembers?.toString();\n }\n\n const params = {\n customer_id: customerId,\n service_duration:\n playbookTab === 'standard-monthly'\n ? 'Standard Monthly'\n : 'Additional One-Time',\n start_date: customStartDate,\n teams: teamsString,\n };\n if (playbookTab === 'standard-monthly') {\n params.account_type = accountType;\n }\n\n const result = await axiosInstance\n .get(\n `${API_PLAYBOOK_SERVICES}?${\n marketplacesData && marketplacesData?.length\n ? `marketplace=${marketplacesData}`\n : ''\n }`,\n { params },\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// send for approval\nexport async function sendForApprovalOfPlaybook(data) {\n const result = await axiosInstance\n .post(`${API_SEND_FOR_APPROVAL}`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import dayjs from 'dayjs';\nimport axiosInstance from '../axios';\n\nimport {\n API_ESTIMATED_LOST_SALES_ARCHIVE,\n API_ESTIMATED_LOST_SALES_ARCHIVE_RESTORE_ASIN,\n API_ESTIMATED_LOST_SALES_INACTIVE,\n API_ESTIMATED_LOST_SALES_REASON_LIST,\n API_ESTIMATED_LOST_SALES_STRANDED,\n API_INVENTORY_RESTOCK_LIMITS,\n API_INVENTORY_RESTOCK_LIMITS_DASHBOARD,\n API_LONG_TERM_STORAGE_FEES,\n API_RESTOCK_INVENTORY,\n API_RESTOCK_REPORTS_DOWNLOAD,\n API_STRANDED_INVENTORY,\n CUSTOM,\n} from '../constants';\n\nexport async function getRestockData(\n isBGS,\n isBGSAdmin,\n isBGSManager,\n brandPartner,\n marketplace,\n storageType,\n users,\n managerUsers,\n selectedTimeFrame,\n selectedDate,\n orderByKey,\n pageNumber,\n isDownloadReport,\n) {\n let params = {\n customer: brandPartner,\n marketplace,\n storage_type: storageType,\n ordering: orderByKey,\n page: pageNumber,\n daily_facts: selectedTimeFrame,\n download_report: isDownloadReport,\n };\n\n if (selectedTimeFrame === CUSTOM) {\n params = {\n ...params,\n timeframe: dayjs(selectedDate).format('YYYY-MM-DD'),\n };\n }\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n bgs: users,\n };\n } else if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUsers,\n bgs: users,\n };\n } else {\n params = {\n ...params,\n bgs: managerUsers,\n };\n }\n\n const result = await axiosInstance\n .get(API_INVENTORY_RESTOCK_LIMITS_DASHBOARD, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return result;\n}\n\nexport async function getStrandedInventoryTableData(\n isBGS,\n isBGSAdmin,\n isBGSManager,\n brandPartner,\n marketplace,\n managerUsers,\n users,\n timeFrame,\n customDate,\n orderByApiKey,\n pageNumber,\n isRestockInventory,\n isDownloadReport = false,\n) {\n let params = {\n customer: brandPartner,\n dashboard: 'inventory',\n download_report: isDownloadReport,\n marketplace,\n ordering: orderByApiKey,\n page: pageNumber,\n daily_facts: timeFrame,\n is_restockinventory_visible: isRestockInventory,\n };\n\n if (timeFrame === CUSTOM) {\n params = {\n ...params,\n timeframe: dayjs(customDate).format('YYYY-MM-DD'),\n };\n }\n\n if (isBGS) {\n params = {\n ...params,\n bgs_manager: 'all',\n bgs: users,\n };\n } else if (isBGSManager || isBGSAdmin) {\n params = {\n ...params,\n bgs_manager: managerUsers,\n bgs: users,\n };\n } else {\n params = {\n ...params,\n bgs: managerUsers,\n };\n }\n\n const result = await axiosInstance\n .get(API_STRANDED_INVENTORY, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return result;\n}\n\nexport async function getRestockLimitsData(\n customer,\n dailyFacts,\n marketplace,\n seletedDate,\n) {\n let params = {};\n params = {\n customer,\n daily_facts: dailyFacts,\n marketplace,\n };\n\n if (dailyFacts === CUSTOM) {\n params = {\n ...params,\n timeframe: dayjs(seletedDate).format('YYYY-MM-DD'),\n };\n }\n\n const result = await axiosInstance\n .get(`${API_INVENTORY_RESTOCK_LIMITS}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getStrandedInventoryData(\n customer,\n dailyFacts,\n marketplace,\n seletedDate,\n page,\n orderByKey,\n orderByFlag,\n) {\n let params = { customer, daily_facts: dailyFacts, marketplace };\n\n if (page === 'noPage') {\n params = { ...params, no_page: true };\n } else {\n params = { ...params, page };\n }\n params = {\n ...params,\n ordering: orderByFlag ? `-${orderByKey}` : orderByKey,\n };\n\n if (dailyFacts === CUSTOM) {\n params = {\n ...params,\n timeframe: dayjs(seletedDate).format('YYYY-MM-DD'),\n };\n }\n\n const result = await axiosInstance\n .get(`${API_STRANDED_INVENTORY}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getRestockInventoryData(\n customer,\n marketplace,\n page,\n orderByKey,\n orderByFlag,\n inventoryType,\n) {\n let params = {\n customer,\n marketplace,\n status: inventoryType,\n };\n\n if (page === 'noPage') {\n params = { ...params, no_page: true };\n } else {\n params = { ...params, page };\n }\n\n params = {\n ...params,\n 'order-by': orderByFlag ? `-${orderByKey}` : orderByKey,\n };\n\n const result = await axiosInstance.get(`${API_RESTOCK_INVENTORY}`, {\n params,\n });\n return result;\n}\n\nexport async function getRestockInventoryReportData(\n customer,\n marketplace,\n inventoryType,\n) {\n const params = {\n customer,\n marketplace,\n status: inventoryType,\n };\n\n const result = await axiosInstance.get(`${API_RESTOCK_REPORTS_DOWNLOAD}`, {\n params,\n });\n return result;\n}\n\n/* ********** GET API DATA FOR ESTIMATED LOST SALES INVENTORY ********** */\nexport async function getEstimatedLostSalesAPIData(\n customer,\n marketplace,\n selectedTab,\n orderBy,\n date,\n reason,\n status,\n pageNumber,\n action,\n) {\n let API = '';\n let params = {\n customer,\n marketplace,\n 'order-by': orderBy,\n timeframe: date,\n page: pageNumber,\n };\n\n if (selectedTab === 'inactive') {\n params = {\n ...params,\n };\n API = API_ESTIMATED_LOST_SALES_INACTIVE;\n }\n\n if (selectedTab === 'stranded') {\n params = {\n ...params,\n stranded_reason: reason,\n };\n API = API_ESTIMATED_LOST_SALES_STRANDED;\n }\n\n if (selectedTab === 'archive') {\n params = {\n ...params,\n status,\n };\n API = API_ESTIMATED_LOST_SALES_ARCHIVE;\n }\n\n if (action === 'downloadReport') {\n params = { ...params, page: null, download_report: true };\n }\n\n const result = await axiosInstance\n .get(`${API}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return result;\n}\n\n/* ********** GET API DATA FOR ESTIMATED LOST SALES INVENTORY REASON LIST ********** */\nexport async function getEstimatedLostSalesReasonListAPIData(\n customer,\n marketplace,\n) {\n const params = {\n customer,\n marketplace,\n };\n\n const result = await axiosInstance\n .get(`${API_ESTIMATED_LOST_SALES_REASON_LIST}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n/* ********** POST API OF ARCHIVE AND RESTORE ASIN OF ESTIMATED LOST SALES INVENTORY ********** */\nexport async function postAsinArchiveAndRestoreAPIData(\n customer,\n asin,\n sku,\n status,\n action,\n) {\n const params = {\n customer,\n asin,\n sku,\n status,\n action,\n };\n\n const result = await axiosInstance\n .post(`${API_ESTIMATED_LOST_SALES_ARCHIVE_RESTORE_ASIN}`, params)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n/* ********** GET API DATA FOR LONG TERM STORAGE FEES INVENTORY ********** */\nexport async function getLongTermStoargeFeesAPIData(\n customerId,\n marketplace,\n orderBy,\n startDate,\n pageNumber,\n action,\n) {\n let params = {\n customer: customerId,\n marketplace,\n order_by: orderBy,\n start_date: startDate,\n page: pageNumber,\n };\n if (action === 'downloadReport') {\n params = { ...params, page: null, download_report: true };\n }\n\n const result = await axiosInstance\n .get(`${API_LONG_TERM_STORAGE_FEES}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import axiosInstance from '../axios';\n\nimport {\n API_TRIPLE_OVERLAP_VALUES,\n API_TRIPLE_OVERLAP_TABLE_VALUES,\n API_DSP_PPC_OVERLAP_ANALYSIS,\n API_TRIPLE_OVERLAP_ANALYSIS,\n API_NTB_GEOGRAPHIC,\n API_NTB_GEOGRAPHIC_TABLE,\n API_LIFE_TIME_VALUE,\n API_NTB_SALES_ANALYSIS,\n API_GET_QUICKSIGHT_DASHBOARD_URL,\n} from '../constants';\n\n// Async function for triple overlap analysis\nexport async function getTripleOverlapValues(\n customerID,\n adExposureType,\n startDate,\n endDate,\n showExposureTripleUnknownData,\n showExposureDoubleUnknownData,\n) {\n const params = {\n customer: customerID,\n ad_exposure_type: adExposureType,\n start_date: startDate,\n end_date: endDate,\n exp_group_unknown: showExposureTripleUnknownData,\n expo_dual_unknown: showExposureDoubleUnknownData,\n };\n\n const result = await axiosInstance\n .get(`${API_TRIPLE_OVERLAP_VALUES}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Async function for triple overlap table analysis\nexport async function getTripleOverlapTableValues(\n customerID,\n adExposure,\n startDate,\n endDate,\n pageNumber,\n orderBy,\n sequence,\n) {\n const params = {\n customer: customerID,\n ad_exposure_type: adExposure,\n start_date: startDate,\n end_date: endDate,\n page: pageNumber,\n order_by: orderBy,\n sequence,\n };\n\n const result = await axiosInstance\n .get(`${API_TRIPLE_OVERLAP_TABLE_VALUES}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Async function for triple overlap analysis\nexport async function getTripleOverlapAnalysisData(\n customerID,\n adExposureType,\n startDate,\n endDate,\n showLineGraphUnknownData,\n showPieChartUnknownData,\n showBarGraphUnknownData,\n) {\n const params = {\n customer: customerID,\n ad_exposure_type: adExposureType,\n start_date: startDate,\n end_date: endDate,\n line_graph_unknown: showLineGraphUnknownData,\n pie_chart_unknown: showPieChartUnknownData,\n bar_graph_unknown: showBarGraphUnknownData,\n };\n\n const result = await axiosInstance\n .get(`${API_TRIPLE_OVERLAP_ANALYSIS}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Async function for dsp ppc overlap analysis\nexport async function getDspPpcOverlapAnalysisData(\n customerID,\n adExposureType,\n startDate,\n endDate,\n showLineGraphUnknownData,\n showPieChartUnknownData,\n showBarGraphUnknownData,\n) {\n const params = {\n customer: customerID,\n ad_exposure_type: adExposureType,\n start_date: startDate,\n end_date: endDate,\n line_graph_unknown: showLineGraphUnknownData,\n pie_chart_unknown: showPieChartUnknownData,\n bar_graph_unknown: showBarGraphUnknownData,\n };\n\n const result = await axiosInstance\n .get(`${API_DSP_PPC_OVERLAP_ANALYSIS}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Async function for dsp ppc overlap analysis\nexport async function getLifeTimeValueData(customerID, startDate, endDate) {\n const params = {\n customer: customerID,\n start_date: startDate,\n end_date: endDate,\n };\n\n const result = await axiosInstance\n .get(`${API_LIFE_TIME_VALUE}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Async function for dsp ppc overlap analysis\nexport async function getNTBSalesAnalysisData(customerID, startDate, endDate) {\n const params = {\n customer: customerID,\n start_date: startDate,\n end_date: endDate,\n };\n\n const result = await axiosInstance\n .get(`${API_NTB_SALES_ANALYSIS}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Async function for NTB Geographic analysis\nexport async function getNtbGeographicAnalysis(customerID, startDate, endDate) {\n const params = {\n customer: customerID,\n start_date: startDate,\n end_date: endDate,\n };\n\n const result = await axiosInstance\n .get(`${API_NTB_GEOGRAPHIC}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// Async function for NTB Geographic Table analysis\nexport async function getNtbGeographicTableValues(\n customerID,\n startDate,\n endDate,\n pageNumber,\n orderBy,\n sequence,\n) {\n const params = {\n customer: customerID,\n start_date: startDate,\n end_date: endDate,\n page: pageNumber,\n order_by: orderBy,\n sequence,\n };\n\n const result = await axiosInstance\n .get(`${API_NTB_GEOGRAPHIC_TABLE}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get embedded dashboard url of aws quicksight\nexport async function getEmbeddedQuicksightDashboardURL(params) {\n const result = await axiosInstance\n .get(`${API_GET_QUICKSIGHT_DASHBOARD_URL}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import dayjs from 'dayjs';\n\nimport axiosInstance from '../axios';\nimport {\n API_PERFORMANCE,\n API_STRANDED_INVENTORY,\n API_SUMMARY_DASHBOARD,\n} from '../constants';\n\nexport async function getSummaryPerformanceData(\n customer,\n dailyFacts,\n groupBy,\n marketplace,\n startDate,\n endDate,\n) {\n let params = {};\n if (startDate && endDate) {\n params = {\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n customer_id: customer,\n start_date: startDate,\n end_date: endDate,\n };\n } else {\n params = {\n daily_facts: dailyFacts,\n group_by: groupBy,\n marketplace,\n customer_id: customer,\n };\n }\n const result = await axiosInstance\n .get(`${API_SUMMARY_DASHBOARD}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getSummarySellerPerformance(customer, marketplace) {\n let params = {};\n params = {\n marketplace,\n dashboard: 'summary',\n };\n const result = await axiosInstance.get(`${API_PERFORMANCE + customer}/`, {\n params,\n });\n\n return result;\n}\n\nexport async function getSummaryInvoice(customer) {\n let params = {};\n params = {\n customer,\n };\n const result = await axiosInstance.get(`/invoice${API_SUMMARY_DASHBOARD}`, {\n params,\n });\n\n return result;\n}\n\nexport async function getSummaryASIN(\n customer,\n marketplace,\n dailyFacts,\n selectedDate,\n) {\n let params = {};\n params = {\n customer,\n marketplace,\n dashboard: 'summary',\n daily_facts: dailyFacts,\n };\n\n if (dailyFacts === 'custom') {\n params = {\n ...params,\n timeframe: dayjs(selectedDate).format('YYYY-MM-DD'),\n };\n }\n\n const result = await axiosInstance.get(`${API_STRANDED_INVENTORY}`, {\n params,\n });\n\n return result;\n}\n","import axiosInstance from '../axios';\n\nimport {\n API_BILLING_OFF_BOARDING_APPROVE_REJECT,\n API_SUSPEND_AGREEMENT,\n} from '../constants';\n\nexport const updateBillingOffBoardingApproveReject = async (\n status,\n id = '',\n) => {\n const body = {\n request_status: status,\n };\n const result = await axiosInstance\n .patch(`${API_BILLING_OFF_BOARDING_APPROVE_REJECT}/${id}/`, body)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n};\n\nexport const getCancellationBillingData = async (id) => {\n const result = await axiosInstance\n .get(`${API_SUSPEND_AGREEMENT + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n};\n","/* eslint-disable array-callback-return */\n/* eslint-disable consistent-return */\nimport queryString from 'query-string';\nimport axiosInstance from '../axios';\nimport {\n API_GOALS,\n API_CUSTOMER,\n API_MILESTONE,\n API_GOALS_ACCOUNT_TYPE_FLAG,\n API_GOALS_REPORT,\n} from '../constants';\n\n// get goals\nexport async function getGoals(\n customerID,\n accountType,\n marketplaces,\n startDate,\n endDate,\n primaryMarketplace,\n) {\n let marketplacesData = {};\n const list = [];\n // eslint-disable-next-line no-unused-vars\n const marketplace = marketplaces\n ?.filter((mrktplc) => {\n if (mrktplc?.id) return mrktplc;\n })\n ?.map((item) => {\n list.push(item.id);\n return item;\n });\n\n if (list?.length) {\n marketplacesData = list?.toString();\n }\n\n const params = {\n customer: customerID,\n account_type: accountType,\n start_date: startDate,\n end_date: endDate,\n primary_marketplace: primaryMarketplace,\n };\n const result = await axiosInstance\n .get(\n `${API_CUSTOMER + customerID + API_GOALS}?${\n marketplacesData && marketplacesData?.length\n ? `&marketplace=${marketplacesData}`\n : ''\n }`,\n { params },\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get goals download report\nexport async function getGoalsReport(customerID) {\n const params = {\n customer: customerID,\n };\n\n const result = await axiosInstance\n .get(API_GOALS_REPORT, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createGoals(data) {\n if (data && Object.keys(data).length > 0) {\n const result = await axiosInstance\n .post(`${API_GOALS}`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n }\n return null;\n}\n\nexport async function updateGoal(\n id,\n data,\n marketplaces,\n accountType,\n startDate,\n endDate,\n) {\n let marketplacesData = {};\n\n const list = [];\n // eslint-disable-next-line no-unused-vars\n const marketplace = marketplaces\n ?.filter((mrktplc) => {\n if (mrktplc?.id) return mrktplc;\n })\n ?.map((item) => {\n list.push(item.id);\n return item;\n });\n\n if (list?.length) {\n marketplacesData = list?.toString();\n }\n\n const startDateStr = queryString.stringify({ start_date: startDate });\n const endDateStr = queryString.stringify({ end_date: endDate });\n const accType = queryString.stringify({ account_type: accountType });\n\n const result = await axiosInstance\n .patch(\n `${API_CUSTOMER + id + API_GOALS}?${\n marketplacesData && marketplacesData?.length\n ? `&marketplace=${marketplacesData}`\n : ''\n }${startDateStr ? `&${startDateStr}` : ''}${\n endDateStr ? `&${endDateStr}` : ''\n }&${accType}`,\n data,\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteGoal(id) {\n const result = await axiosInstance\n .delete(`${API_MILESTONE + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get bp goals account type flag\nexport async function getGoalsAccountTypeFlag(customerId) {\n const params = {\n customer_id: customerId,\n };\n const result = await axiosInstance\n .get(API_GOALS_ACCOUNT_TYPE_FLAG, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error?.response;\n });\n return result;\n}\n","import queryString from 'query-string';\nimport axiosInstance from '../axios';\nimport { API_COS, API_CUSTOMER, API_COS_ASIN } from '../constants';\n\n// get BP contract start and end date and get flag to show edit btn ot not for cos.\nexport async function getBPsCOSAccess(customerID) {\n const params = {\n customer: customerID,\n };\n const result = await axiosInstance\n .get(`${API_COS}dates/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get COS\nexport async function getCOS(customerID, startDate, endDate) {\n const params = {\n start_date: startDate,\n end_date: endDate,\n };\n const result = await axiosInstance\n .get(`${API_CUSTOMER + customerID + API_COS}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateCOS(customerID, startDate, endDate, data) {\n const startDateStr = queryString.stringify({ start_date: startDate });\n const endDateStr = queryString.stringify({ end_date: endDate });\n\n const result = await axiosInstance\n .patch(\n `${API_CUSTOMER + customerID + API_COS}?${\n startDateStr ? `&${startDateStr}` : ''\n }${endDateStr ? `&${endDateStr}` : ''}`,\n data,\n )\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// download report\nexport async function downloadCosReport(customerID, startDate, endDate) {\n const params = {\n customer: customerID,\n start_date: startDate,\n end_date: endDate,\n };\n const result = await axiosInstance\n .get(`${API_COS}download/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getTotalAsinsCount(customerID, startDate, endDate) {\n const params = {\n customer: customerID,\n start_date: startDate,\n end_date: endDate,\n };\n const result = await axiosInstance\n .get(`${API_COS}total-asin/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteCOS(id) {\n const result = await axiosInstance\n .delete(`${API_COS_ASIN + id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import axiosInstance from '../axios';\n\nimport {\n API_DSP_AUDIENCE_QUERY,\n API_DSP_AUDIENCE,\n API_DSP_ADVERTISER_DETAIL,\n API_DSP_ADVERTISER_DASHBOARD,\n API_BP_LIST_DSP_AUDIENCE_DASHBOARD,\n CUSTOM,\n} from '../constants';\n\n// Async function for triple overlap analysis\nexport async function getQueries() {\n const result = await axiosInstance\n .get(`${API_DSP_AUDIENCE_QUERY}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function createNewQuery(data) {\n const result = await axiosInstance\n .post(`${API_DSP_AUDIENCE_QUERY}`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function updateQuery(id, data) {\n const result = await axiosInstance\n .patch(`${API_DSP_AUDIENCE_QUERY}${id}/`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function deleteQuery(id) {\n const result = await axiosInstance\n .delete(`${API_DSP_AUDIENCE_QUERY}${id}/`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPAudienceDefaultData(id) {\n const params = { customer: id, marketplace: 'amazon.com' };\n const result = await axiosInstance\n .get(`${API_DSP_AUDIENCE}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getActiveTabs(id) {\n const params = { customer: id };\n const result = await axiosInstance\n .get(`${API_DSP_AUDIENCE}active-tabs/`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPAudienceData(\n id,\n page,\n sortBy,\n status,\n showAMCAudienceLookalike,\n) {\n const params = {\n dsp_audience: id,\n page,\n 'order-by': sortBy?.value,\n status: status?.value,\n amc_audience_lookalike: showAMCAudienceLookalike ? true : null,\n };\n if (status?.value === 'all') delete params.status;\n\n const result = await axiosInstance\n .get(`${API_DSP_ADVERTISER_DETAIL}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveDSPAudience(data) {\n const result = await axiosInstance\n .post(`${API_DSP_ADVERTISER_DETAIL}`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getDSPAudienceDashboardData(data) {\n const params = {\n dsp_ad_manager: 'all',\n page: data?.page,\n 'order-by': data?.orderBy,\n customer: 'all',\n marketplace: 'all',\n timeframe: data?.timeframe,\n status: data?.status,\n download_report: data?.downloadFlag,\n amc_audience_lookalike: data?.showAMCAudienceLookalike ? true : null,\n };\n if (params?.status === 'all') delete params?.status;\n if (params?.timeframe === CUSTOM) {\n params.start_date = data?.start_date;\n params.end_date = data?.end_date;\n }\n if (data?.marketplace) {\n params.marketplace = data?.marketplace?.value;\n }\n\n if (data?.dsp_ad_manager) {\n const list = data?.dsp_ad_manager?.map((item) => item?.value);\n\n if (list?.length) {\n if (list.includes('all')) {\n params.dsp_ad_manager = 'all';\n } else {\n params.dsp_ad_manager = list?.toString();\n }\n }\n }\n if (data?.customer) {\n const list = data?.customer?.map((item) => item?.value);\n\n if (list?.length) {\n if (list.includes('all')) {\n params.customer = 'all';\n } else {\n params.customer = list?.toString();\n }\n }\n }\n\n const result = await axiosInstance\n .get(`${API_DSP_ADVERTISER_DASHBOARD}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function getBpListInAMCAudienceDashboard() {\n const result = await axiosInstance\n .get(`${API_BP_LIST_DSP_AUDIENCE_DASHBOARD}`)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import axiosInstance from '../axios';\n\nimport { API_AMC_INSTANCE, API_AMC_ADVERTISER } from '../constants';\n\n// get amc instances\nexport async function getAMCInstances(requestType, page) {\n const params = { request_type: requestType, page };\n\n const result = await axiosInstance\n .get(`${API_AMC_INSTANCE}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\n// get amc advertisers\nexport async function getAMCAdvertisers(requestType, page) {\n const params = { request_type: requestType, page };\n\n const result = await axiosInstance\n .get(`${API_AMC_ADVERTISER}`, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveAMCInstance(data) {\n const result = await axiosInstance\n .post(`${API_AMC_INSTANCE}`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function saveAMCAdvertiser(data) {\n const result = await axiosInstance\n .post(`${API_AMC_ADVERTISER}`, data)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","import styled from 'styled-components';\n\nimport Theme from '../../theme/Theme';\n\nexport const MainHeader = styled.div`\n background-color: ${Theme.white};\n min-height: 60px;\n /* border-bottom: 1px solid ${Theme.gray7}; */\n padding-top: 13px;\n position: fixed;\n width: 100%;\n z-index: 999 !important;\n top: 0;\n .logo {\n img {\n width: 100px;\n }\n }\n .logo-mobile-view {\n display: none;\n }\n\n .right-nav {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n vertical-align: middle;\n display: inline-block !important;\n margin-right: 15px;\n\n &:last-child {\n margin-right: 0px;\n }\n\n .suggest-box {\n position: relative;\n border-radius: 20px;\n max-width: 137px;\n background: ${Theme.gray3};\n padding: 11px 13px;\n font-size: ${Theme.normal};\n color: #2e384d;\n .light-bulb-icon {\n width: 21px;\n margin-right: 3px;\n vertical-align: middle;\n margin-top: -3px;\n }\n &.mobile-view {\n border-radius: 50%;\n width: 40px;\n height: 40px;\n padding: 10px;\n }\n }\n a {\n vertical-align: middle;\n display: inline-block !important;\n }\n }\n\n .notification-list {\n margin-top: 10px;\n border: 1px solid red;\n }\n\n .notification-content {\n border-radius: 1px;\n width: 288px;\n background: ${Theme.white};\n border: 1px solid ${Theme.gray9};\n text-align: left;\n float: right;\n padding: 0;\n z-index: 999999;\n box-shadow: ${Theme.commonShadow};\n position: absolute;\n left: -248px;\n\n li {\n display: flex;\n padding: 20px;\n border-bottom: 1px solid ${Theme.gray9};\n\n &:hover {\n background: #fff6f5;\n }\n\n .activity-user {\n font-size: ${Theme.small};\n color: ${Theme.gray90};\n font-weight: 600;\n line-height: 16px;\n float: left;\n\n span {\n color: ${Theme.gray35};\n font-weight: 500;\n }\n }\n img {\n width: 25px;\n height: 25px;\n border-radius: 50%;\n float: left;\n margin-right: 10px;\n }\n\n .time-date {\n color: ${Theme.gray35};\n font-size: ${Theme.verySmall};\n font-weight: 500;\n text-align: left;\n }\n\n &:last-child {\n border-bottom: none;\n }\n }\n }\n @media only screen and (max-width: 360px) {\n .notification-content {\n max-width: 233px;\n left: -160px;\n }\n }\n }\n\n .dropdown {\n position: relative;\n display: inline-block;\n\n .header-profile {\n border-radius: 50%;\n text-align: center;\n width: 40px;\n height: 40px;\n border: 1px solid ${Theme.lightOrange};\n background: ${Theme.lightOrange};\n color: ${Theme.orange};\n cursor: pointer;\n text-transform: Uppercase;\n\n .profile-pic {\n text-align: center;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n cursor: pointer;\n }\n }\n\n .show {\n display: block;\n }\n }\n\n .dropdown-content {\n display: none;\n position: absolute;\n width: 275px;\n box-shadow: ${Theme.commonShadow};\n padding: 0px;\n z-index: 999999;\n text-align: left;\n background: ${Theme.white};\n border: 1px solid ${Theme.gray9};\n margin-top: 8px;\n margin-left: -220px;\n\n li {\n list-style-type: none;\n padding: 10px;\n font-size: ${Theme.normal};\n color: ${Theme.gray90};\n cursor: pointer;\n width: 100%;\n\n img {\n width: 15px;\n margin-right: 3px;\n vertical-align: middle;\n }\n\n &:hover {\n background: ${Theme.gray8};\n }\n\n a {\n /* font-size: ${Theme.normal} !important; */\n color: ${Theme.gray90};\n }\n }\n }\n\n @media only screen and (max-width: 991.98px) {\n .logo {\n margin-left: 66px;\n margin-top: 2px;\n width: 185px;\n\n span {\n left: 275px;\n top: 16px;\n }\n }\n .suggest-box {\n padding-top: 4px;\n }\n }\n @media only screen and (max-width: 767px) {\n .logo {\n display: none;\n }\n\n .logo-mobile-view {\n display: block;\n width: 80px;\n margin-top: 7px;\n }\n }\n\n .dropdown:active .dropdown-content {\n display: block;\n }\n\n @media only screen and (min-width: 1700px) and (max-width: 1920px) {\n .logo {\n width: 220px;\n\n span {\n top: 16px;\n left: 246px;\n font-size: ${Theme.textFontSizeRes};\n }\n }\n\n .right-nav {\n .notification {\n position: relative;\n\n .notify-bell-icon {\n width: 50px;\n }\n\n .active-notify-bell {\n width: 50px;\n }\n span {\n position: absolute;\n display: block;\n left: 28px;\n top: 5px;\n }\n }\n }\n .notification-content {\n width: 320px;\n left: -248px;\n\n li {\n .activity-user {\n font-size: ${Theme.smallRes};\n }\n\n a {\n font-size: ${Theme.smallRes};\n }\n\n .time-date {\n color: ${Theme.gray35};\n }\n }\n }\n\n .dropdown-content {\n width: 262px !important;\n margin-left: -220px !important;\n\n li {\n font-size: ${Theme.normalRes};\n\n img {\n width: 18px;\n margin-right: 5px;\n }\n a {\n font-size: ${Theme.normalRes};\n }\n }\n }\n }\n`;\n\nexport const MobileSidebar = styled.div`\n display: none;\n #mobilemenu-check {\n display: none;\n }\n\n @media only screen and (max-width: 991.98px) {\n background-color: ${Theme['$base-color']};\n display: block;\n #responsive-button {\n display: block;\n position: absolute;\n left: 46px;\n top: 43px;\n z-index: 999;\n .menu-icon {\n width: 24px;\n margin-top: -16px;\n position: fixed;\n margin-left: -20px;\n }\n }\n #ifp-sidebar-responsive {\n display: none;\n height: 100%;\n position: absolute;\n z-index: 999;\n top: 0px;\n left: 0;\n .close-icon {\n color: ${Theme.white};\n font-size: ${Theme.normalRes};\n font-family: ${Theme.titleFontFamily};\n position: absolute;\n right: 20px;\n top: 10px;\n z-index: 999;\n\n img {\n width: 15px;\n }\n }\n }\n #mobilemenu-check:checked ~ #ifp-sidebar-responsive {\n display: block;\n }\n #mobilemenu-close:checked ~ #ifp-sidebar-responsive {\n display: none;\n }\n .content-header {\n padding: 30px 30px 10px !important;\n }\n }\n @media only screen and (max-width: 767px) {\n #responsive-button {\n .menu-icon {\n width: 24px;\n margin-top: -16px;\n position: fixed;\n margin-left: -20px;\n }\n }\n }\n`;\n\nexport const SideContents = styled.div`\n @media (max-width: 991.98px) {\n max-width: 64px;\n position: fixed;\n top: 70px;\n left: 0;\n height: 100%;\n background: ${Theme.gray6};\n border-right: 1px solid ${Theme.gray7};\n\n .sidebar-logo {\n margin: 0;\n padding: 22px 25px 22px;\n\n img {\n width: 45%;\n }\n }\n\n .side-bar-icon {\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n li {\n margin: 18px 0;\n padding: 0 18px;\n border-left: 3px solid ${Theme.white};\n\n .read-book-active {\n display: block;\n }\n\n .read-book {\n display: none;\n }\n\n .user-group-active {\n display: block;\n }\n\n .user-group {\n display: none;\n }\n\n img {\n width: 22px;\n cursor: pointer;\n }\n\n &:hover {\n border-left: 3px solid ${Theme.orange};\n\n .read-book {\n display: block;\n }\n .read-book-active {\n display: none;\n }\n\n .user-group {\n display: block;\n }\n .user-group-active {\n display: none;\n }\n }\n\n &.active {\n border-left: 3px solid ${Theme.orange};\n\n .read-book {\n display: block;\n }\n .read-book-active {\n display: none;\n }\n\n .user-group {\n display: block;\n }\n .user-group-active {\n display: none;\n }\n }\n }\n }\n }\n`;\n\nexport const FormContainer = styled.div`\n height: 100%;\n .banner-bg {\n width: 100%;\n height: 100%;\n background-position: center;\n background-size: cover;\n \n \n .inner-form {\n max-width: 327px;\n margin: 0 auto;\n width: 100%;\n vertical-align: middle;\n\n .logo {\n width: 190px;\n padding: 35px 0 45px 0;\n\n span {\n position: absolute;\n top: 46px;\n margin-left: 6px;\n font-size: 16px;\n font-weight: bold;\n color: ${Theme.black};\n font-family: ${Theme.titleFontFamily};\n }\n }\n .google-icon {\n width: 20px;\n margin-right: 10px;\n vertical-align: bottom;\n }\n .or-else {\n text-align: center;\n margin-top: 8px;\n }\n }\n\n .profile-pic {\n font-family: ${Theme.titleFontFamily};\n color: ${Theme.gray35};\n }\n\n @media only screen and (max-width: 991px) {\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 100%;\n\n .inner-form {\n background: rgb(91 91 91 / 0.9);\n height: 100%;\n top: 0;\n max-width: 100%;\n padding: 0 20px;\n }\n }\n`;\n\nexport const PasswordFormContainer = styled.div`\n height: 100%;\n .banner-bg {\n width: 100%;\n height: 100%;\n background-position: center;\n background-size: cover;\n }\n\n .inner-form {\n max-width: 327px;\n margin: 0 auto;\n width: 100%;\n vertical-align: middle;\n\n .logo {\n width: 190px;\n padding: 35px 0 45px 0;\n\n span {\n position: absolute;\n top: 46px;\n margin-left: 6px;\n font-size: 16px;\n font-weight: bold;\n color: ${Theme.black};\n font-family: ${Theme.titleFontFamily};\n }\n }\n .google-icon {\n width: 20px;\n margin-right: 10px;\n vertical-align: bottom;\n }\n .or-else {\n text-align: center;\n margin-top: 8px;\n }\n }\n\n @media only screen and (max-width: 991px) {\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 100%;\n\n .inner-form {\n background: rgb(91 91 91 / 0.9);\n height: 100%;\n top: 0;\n max-width: 100%;\n padding: 0 20px;\n }\n }\n`;\n\n// contract container.js\nexport const GlobalMenu = styled.div`\n background: ${Theme.white};\n position: fixed;\n z-index: 52;\n width: 100%;\n padding-top: 10px;\n\n @media only screen and (max-width: 767px) {\n padding-top: 0px;\n background: ${Theme.white};\n position: fixed;\n z-index: 9;\n width: 100%;\n .tabs {\n li,\n a {\n padding: 15px 20px;\n &:hover {\n padding-bottom: 15px;\n }\n\n &.active {\n padding-bottom: 15px;\n }\n }\n }\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst Button = styled.button`\n cursor: pointer;\n padding: 9px 10px;\n font-family: ${Theme.titleFontFamily};\n font-size: ${Theme.normal};\n pointer-events: all;\n min-height: 40px;\n\n &.btn-primary {\n background-color: ${Theme.baseColor};\n color: ${Theme.white};\n border: 1px solid ${Theme.baseColor};\n width: 200px;\n cursor: 'pointer';\n\n &:hover {\n color: ${Theme.white};\n background-color: ${Theme.secondaryColor};\n }\n\n &:focus {\n outline: none;\n border: none;\n background-color: ${Theme.secondaryColor};\n }\n &.btn-disabled {\n cursor: not-allowed !important;\n pointer-events: none;\n background-color: ${Theme.gray25};\n color: ${Theme.white};\n border: ${Theme.gray25};\n }\n .btn-icon {\n vertical-align: middle;\n }\n }\n\n &.btn-transparent {\n background-color: ${Theme.white};\n padding: 9px 5px;\n border: 1px solid ${Theme.gray35};\n color: ${Theme.black};\n font-weight: 600;\n word-break: keep-all;\n\n &.view-contract {\n font-size: ${Theme.extraNormal};\n border: 1px solid ${Theme.gray35};\n }\n\n .file-contract-icon {\n vertical-align: text-top;\n width: 15px;\n margin-right: 5px;\n }\n\n &.create-addendum {\n padding: 9px 15px;\n min-height: 40px;\n border: 2px solid ${Theme.gray35};\n font-size: 14px;\n }\n &.verify-now-btn {\n font-size: 13px;\n padding: 5px 15px;\n color: ${Theme.gray90};\n border-radius: 2px;\n width: 120px;\n\n &.h-30 {\n min-height: 30px;\n font-family: ${Theme.baseFontFamily};\n }\n }\n\n &:focus {\n outline: none;\n }\n }\n &.btn-add-items {\n font-size: ${(props) =>\n props.login ? Theme.extraSmall : Theme.extraNormal};\n font-family: ${Theme.baseFontFamily};\n color: ${Theme.orange};\n border: none;\n min-height: 0;\n padding: 0;\n background: transparent;\n\n &.gray-text {\n color: ${Theme.gray90};\n }\n\n &.back-btn {\n color: ${Theme.gray90};\n text-transform: uppercase;\n letter-spacing: 1.21px;\n font-family: ${Theme.titleFontFamily};\n font-size: ${Theme.small};\n }\n\n &:focus {\n outline: none;\n }\n }\n &.font-style-regular {\n font-family: ${Theme.baseFontFamily};\n font-weight: 500;\n }\n\n &.btn-add {\n background-color: rgba(255, 89, 51, 0.05);\n border-style: dotted;\n border: 2px dotted ${Theme.baseColor};\n color: ${Theme.orange};\n\n text-align: center;\n &:focus {\n outline: none;\n }\n }\n\n &.btn-borderless {\n color: ${Theme.gray90};\n border: none;\n background: transparent;\n font-weight: bold;\n\n &.contract-btn {\n color: ${Theme.black};\n }\n\n &:focus {\n outline: none;\n }\n }\n\n &.btn-gray {\n background: ${Theme.gray25};\n color: ${Theme.white};\n width: 200px;\n border: none;\n &.on-boarding {\n padding: 10px 30px;\n }\n &:focus {\n outline: none;\n background-color: ${Theme.baseColor};\n }\n &:hover {\n outline: none;\n background-color: ${Theme.baseColor};\n }\n\n &.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n background: ${Theme.gray25};\n }\n }\n\n &.disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &.light-orange {\n background: ${Theme.lightOrange};\n border: none;\n color: ${Theme.orange};\n padding: 10px;\n\n &.on-boarding {\n padding: 10px 30px;\n width: 200px;\n }\n img {\n vertical-align: bottom;\n width: 18px;\n margin-right: 7px;\n }\n\n &:focus {\n outline: none;\n }\n &:hover {\n outline: none;\n }\n }\n\n &.btn-add-contact {\n border: none;\n background: transparent;\n color: ${Theme.orange};\n font-size: ${Theme.small};\n cursor: pointer;\n padding: 0;\n\n &.extraNormal-text {\n font-size: ${Theme.extraNormal};\n }\n\n .add-new-icon {\n vertical-align: top;\n width: 16px;\n }\n\n &:focus {\n outline: none;\n }\n }\n &.btn-with-radius {\n border-radius: 17px;\n background-color: ${Theme.baseColor};\n color: ${Theme.white};\n border: 1px solid ${Theme.baseColor};\n width: 180px;\n padding: 9px;\n\n &.gray-btn {\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray2};\n color: ${Theme.black};\n width: 155px;\n a {\n color: ${Theme.black};\n }\n }\n\n &:focus {\n outline: none;\n }\n }\n &.btn-orange-border {\n border: 1px solid ${Theme.baseColor};\n color: ${Theme.orange};\n background-color: ${Theme.white};\n padding: 9px 20px;\n }\n &.w-50 {\n width: 200px;\n }\n\n &.w-90 {\n width: 260px;\n }\n\n &.on-boarding {\n padding: 9px 15px;\n min-height: 40px;\n }\n &.w-25 {\n width: 130px;\n }\n\n &.w-10 {\n width: 110px;\n }\n\n &.w-80px {\n width: 80px;\n }\n\n &.border-radius-19 {\n border-radius: 19px;\n }\n\n @media only screen and (max-width: 1200px) {\n &.upload-asset {\n width: 152px;\n }\n }\n @media only screen and (max-width: 450px) {\n &.invoice-adjustment {\n width: 100%;\n }\n }\n`;\n\nexport default Button;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst DropDownSelect = styled.div`\n width: 100%;\n cursor: pointer;\n\n &.w-30 {\n width: 160px;\n float: right;\n }\n\n &.w-40 {\n width: 170px;\n float: left;\n }\n\n &.w-250 {\n width: 259px;\n\n .css-1rhbuit-multiValue {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray35};\n border-radius: 20px;\n max-width: 185px;\n color: black;\n }\n\n .css-2b097c-container {\n background-color: ${Theme.gray15};\n\n .css-yk16xz-control {\n padding: 0 !important;\n min-height: 40px;\n cursor: pointer;\n\n .css-1hwfws3 {\n padding: 0px !important;\n }\n\n .css-g1d714-ValueContainer {\n padding: 0;\n }\n\n .css-1wa3eu0-placeholder {\n padding: 0px 0px 1px 10px;\n color: ${Theme.black};\n }\n .css-tlfecz-indicatorContainer {\n padding: 2px 7px 2px 0px;\n }\n\n .react-select-4-input {\n color: black !important;\n }\n }\n\n .css-1pahdxg-control {\n min-height: 40px;\n background-color: ${Theme.gray15};\n cursor: pointer;\n .css-g1d714-ValueContainer {\n padding: 0;\n }\n .css-1wa3eu0-placeholder {\n padding: 0px 0px 1px 10px;\n color: ${Theme.black} !important;\n }\n .css-1gtu0rj-indicatorContainer {\n padding: 2px 10px 2px 2px;\n }\n\n &.css-tlfecz-indicatorContainer {\n padding-left: 0;\n }\n .css-1hwfws3 {\n padding: 0px !important;\n }\n .react-select__placeholder {\n color: ${Theme.black} !important;\n max-width: calc(100% - 8px);\n overflow: hidden;\n position: absolute;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .css-b8ldur-Input,\n .css-1g6gooi {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n padding-left: 8px;\n }\n\n &:focus {\n padding: 0;\n }\n .react-select__control--is--focused {\n padding: 0 !important;\n }\n\n &.react-select__control--is--focused {\n padding: 0 !important;\n }\n &.react-select__control--menu-is-open {\n padding: 0 !important;\n\n .css-1hwfws3 {\n padding: 0 !important;\n }\n &.css-1hwfws3 {\n padding: 0 !important;\n }\n }\n &.react-select__control {\n padding: 0 !important;\n }\n }\n\n .react-select__menu {\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n }\n }\n .css-12jo7m5 {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 5px 3px 3px 3px;\n white-space: nowrap;\n box-sizing: border-box;\n\n span {\n line-height: 0 !important;\n vertical-align: middle;\n color: ${Theme.black};\n font-size: ${Theme.normal};\n }\n }\n .css-xb97g8 {\n padding-right: 8px;\n &:hover {\n background: none;\n cursor: pointer;\n }\n }\n }\n &.days-performance {\n max-width: 259px;\n float: right;\n text-align: initial;\n\n .css-yk16xz-control {\n background-color: ${Theme.gray8};\n border: 1px solid ${Theme.gray45};\n caret-color: transparent;\n cursor: pointer;\n .css-g1d714-ValueContainer {\n cursor: pointer;\n text-align: initial !important;\n }\n }\n .css-1pahdxg-control {\n background-color: ${Theme.gray8};\n border: 1px solid ${Theme.gray45};\n caret-color: transparent;\n cursor: pointer;\n .css-g1d714-ValueContainer {\n cursor: pointer;\n text-align: initial;\n }\n }\n }\n &.child-bp-list {\n .css-1wa3eu0-placeholder {\n color: ${Theme.black};\n font-family: ${Theme.baseMediumFontFamily};\n }\n }\n\n .css-2b097c-container {\n width: 100%;\n color: ${Theme.black} !important;\n font-size: ${Theme.normal};\n cursor: pointer;\n\n .css-yk16xz-control {\n background-color: ${Theme.gray15};\n border: 1px solid ${Theme.gray9};\n border-radius: 18px;\n color: ${Theme.black};\n font-size: ${Theme.normal};\n // padding: 1px 5px 1px 5px;\n min-height: 40px;\n\n cursor: pointer;\n caret-color: transparent;\n .css-g1d714-ValueContainer {\n // padding: 1px 5px 1px 5px;\n color: ${Theme.black} !important;\n\n .cross-icon {\n display: none;\n }\n .css-1wa3eu0-placeholder {\n color: ${Theme.black} !important;\n }\n .react-select__placeholder {\n color: ${Theme.black} !important;\n max-width: calc(100% - 8px);\n overflow: hidden;\n position: absolute;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n .css-1wa3eu0-placeholder {\n color: ${Theme.black} !important;\n }\n .react-select__placeholder {\n color: ${Theme.black} !important;\n max-width: calc(100% - 8px);\n overflow: hidden;\n position: absolute;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .css-tlfecz-indicatorContainer {\n padding: 5px 12px;\n .css-6q0nyr-Svg {\n color: ${Theme.black} !important;\n }\n }\n }\n\n .css-1pahdxg-control {\n border: 1px solid ${Theme.gray9};\n border-radius: 18px;\n font-size: ${Theme.normal};\n color: ${Theme.black};\n // padding: 1px 5px 1px 5px;\n box-shadow: none;\n outline: none;\n min-height: 40px;\n cursor: pointer;\n .css-b8ldur-Input {\n color: ${(props) => props.inputColor || Theme.white};\n }\n .react-select__placeholder {\n color: ${Theme.black} !important;\n max-width: calc(100% - 8px);\n overflow: hidden;\n position: absolute;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .cross-icon {\n width: 14px;\n position: absolute;\n top: 10px;\n right: 10px;\n }\n\n .remove-icon {\n display: none;\n }\n .css-1gtu0rj-indicatorContainer {\n padding: 5px 12px;\n }\n\n .css-1wa3eu0-placeholder {\n color: ${Theme.black};\n }\n\n .css-1uccc91-singleValue {\n font-size: ${Theme.normal};\n color: ${Theme.black} !important;\n }\n }\n\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n }\n\n .css-26l3qy-menu {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n }\n\n @media only screen and (max-width: 768px) {\n &.days-performance {\n max-width: 100%;\n float: left;\n text-align: initial;\n }\n }\n`;\n\nexport default DropDownSelect;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Loader from 'react-loader-spinner';\nimport 'react-loader-spinner/dist/loader/css/react-spinner-loader.css';\n\nconst PageLoaderWrapper = styled.div`\n position: fixed;\n z-index: 999;\n height: 55px;\n width: 55px;\n overflow: visible;\n margin: auto;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n\n &.sidebar-loader {\n left: unset;\n right: 0;\n top: 40px;\n margin-right: 150px;\n svg {\n width: 40px;\n height: 40px;\n }\n }\n\n &.custom-report-main-loader {\n right: 406px;\n }\n\n &.upload-brand-asset {\n left: 340px;\n }\n &.sidebar-goal-loader {\n position: absolute;\n }\n &.Notes-modal-loader {\n margin-right: 250px;\n }\n &.table-loader {\n position: absolute;\n }\n &.comission-modal-loader {\n margin-right: 40%;\n }\n &.escrow-modal-loader {\n position: relative;\n width: unset;\n text-align: center;\n svg {\n width: 40px;\n height: 40px;\n }\n }\n @media only screen and (min-width: 1500px) {\n &.sidebar-loader {\n right: 0;\n top: 40px;\n margin-right: 160px;\n }\n }\n @media only screen and (max-width: 991px) {\n &.sidebar-loader {\n top: 0;\n left: 0;\n margin: auto;\n right: 0;\n }\n &.modal-loader {\n right: 0%;\n }\n &.upload-brand-asset {\n left: 0 !important;\n }\n &.custom-report-main-loader {\n right: unset;\n }\n }\n`;\n\nconst DetailLoaderWrapper = styled.div`\n position: fixed;\n z-index: 999;\n height: 80px;\n width: 100px;\n overflow: visible;\n margin: auto;\n top: 570px;\n left: 40%;\n bottom: 0;\n right: 0;\n\n &.customer-details {\n top: -120px;\n position: relative;\n left: 0;\n }\n &.agrement-details {\n top: 140px;\n position: relative;\n left: 0;\n }\n &.creative-project-graph {\n top: 40px;\n position: relative;\n left: 0;\n }\n\n &.performance-graph {\n top: 30px;\n position: relative;\n left: 0;\n width: 60px;\n margin: 0 auto;\n }\n @media only screen and (max-width: 991px) {\n left: 0;\n }\n`;\nconst SideBarLoader = styled.div`\n display: block;\n margin-left: auto;\n margin-right: auto;\n text-align: center;\n padding: 0;\n position: relative;\n vertical-align: baseline;\n top: 50%;\n`;\n\nconst ButtonLoaderCss = styled.div`\n display: block;\n margin-left: auto;\n margin-right: auto;\n text-align: center;\n padding: 0;\n vertical-align: baseline;\n\n svg {\n width: 20px;\n height: 20px;\n }\n &.stock-download-report {\n margin: 0 70px;\n text-align: left;\n }\n\n &.table-download-btn {\n text-align: left;\n\n @media only screen and (max-width: 768px) {\n text-align: right;\n margin-left: 18px;\n }\n }\n`;\n\nexport default function PageLoader({\n color,\n type,\n component,\n height,\n width,\n pageWidth,\n}) {\n if (type === 'page') {\n return (\n \n \n \n );\n }\n if (type === 'detail') {\n return (\n \n \n \n );\n }\n if (type === 'sidebar') {\n return (\n \n \n \n );\n }\n if (type === 'button') {\n return (\n \n \n \n );\n }\n}\n\nPageLoader.defaultProps = {\n component: '',\n height: 80,\n width: 100,\n pageWidth: 50,\n};\n\nPageLoader.propTypes = {\n type: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n component: PropTypes.string,\n height: PropTypes.number,\n width: PropTypes.number,\n pageWidth: PropTypes.number,\n};\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst SearchInput = styled.div`\n position: relative;\n width: 100%;\n\n &.w-50 {\n max-width: 335px;\n width: 100%;\n float: right;\n }\n\n .form-control {\n width: 100%;\n padding: 10px 10px 10px 40px;\n font-size: ${Theme.small};\n background-color: ${Theme.gray15};\n color: ${Theme.gray35};\n border: 1px solid ${Theme.gray9};\n border-radius: 5px;\n\n &::placeholder {\n color: ${Theme.gray35};\n }\n\n &:focus {\n outline: none;\n }\n }\n\n .search-input-icon {\n position: absolute;\n left: 15px;\n top: 10px;\n width: 18px;\n\n &.info-icon {\n left: 300px;\n\n @media only screen and (max-width: 320px) {\n left: 250px;\n }\n }\n }\n\n @media only screen and (max-width: 767px) {\n max-width: 280px;\n float: left;\n }\n`;\n\nexport default SearchInput;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst InputText = styled.textarea`\n &.form-control {\n border: 1px solid ${Theme.gray45};\n background-color: ${Theme.gray6};\n resize: none;\n font-family: ${Theme.baseFontFamily};\n min-height: 140px;\n border-radius: 2px;\n padding: 15px;\n display: block;\n width: 100%;\n\n &::placeholder {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n }\n\n &:focus {\n outline: none;\n }\n }\n`;\n\nexport default InputText;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst FormField = styled.div`\n position: relative;\n\n label {\n color: ${Theme.gray30};\n font-size: 12px;\n letter-spacing: 1.13px;\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n\n &.label-textarea {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n letter-spacing: normal;\n }\n\n &.info-tool-icon {\n position: relative;\n }\n\n &.modal-field {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n margin-bottom: 5px;\n font-family: ${Theme.titleFontFamily};\n }\n }\n .copy-link {\n position: absolute;\n background: ${Theme.lightOrange};\n color: ${Theme.orange};\n border-radius: 4px;\n font-size: ${Theme.small};\n padding: 7px 10px;\n right: 4px;\n top: 44px;\n font-weight: bold;\n cursor: pointer;\n\n &.without-info {\n top: 44px;\n right: 30px;\n }\n }\n\n .remove-field-icon {\n background: ${Theme.gray5};\n width: 18px;\n padding: 4px;\n border-radius: 50%;\n }\n\n textarea {\n min-height: 74px;\n }\n\n .form-control {\n position: relative;\n color: ${Theme.gray90};\n border: 1px solid ${Theme.gray2};\n border-radius: 5px !important;\n padding: 4px 10px;\n display: block;\n width: 100%;\n height: 38px !important;\n background-color: rgba(224, 231, 255, 0.2);\n margin-top: 5px;\n font-family: ${Theme.baseFontFamily} !important;\n font-size: ${Theme.normal};\n font-weight: 600;\n resize: vertical;\n\n &::placeholder {\n color: ${Theme.gray30};\n font-weight: 500;\n font-size: ${Theme.normal};\n }\n\n &.info-tool {\n margin-top: 20px;\n }\n\n &.extra-space {\n padding: 4px 27px 4px 10px;\n }\n\n &.w-80 {\n width: 85%;\n }\n\n &:focus {\n outline: none;\n }\n &.modal-input-control {\n position: relative;\n color: #556178;\n border: 1px solid ${Theme.gray45};\n border-radius: 2px;\n height: 40px;\n background-color: ${Theme.gray8};\n font-family: ${Theme.baseFontFamily};\n font-size: ${Theme.normal};\n }\n }\n\n .text-area {\n position: relative;\n color: ${Theme.gray35};\n border: 1px solid ${Theme.gray2};\n border-radius: 5px;\n padding: 4px 10px;\n display: block;\n width: 100%;\n background-color: rgba(224, 231, 255, 0.2);\n margin-top: 5px;\n font-family: ${Theme.baseFontFamily};\n font-size: ${Theme.title};\n font-weight: 500;\n resize: vertical;\n &::placeholder {\n color: ${Theme.gray35};\n font-weight: 500;\n font-size: ${Theme.normal};\n }\n &:focus {\n outline: none;\n }\n\n &.black {\n color: ${Theme.black};\n }\n &.dsp-audience-new-query-string {\n color: ${Theme.gray90} !important;\n background-color: ${Theme.white};\n\n font-size: ${Theme.normal};\n &::placeholder {\n color: ${Theme.gray40} !important;\n font-size: ${Theme.extraNormal};\n }\n\n &.form-control-error {\n border: 1px solid ${Theme.red};\n background: ${Theme.lightRed};\n }\n }\n &.dsp-note {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n }\n }\n .text-area-box {\n background-color: ${Theme.gray8};\n border: 1px solid ${Theme.gray45};\n border-radius: 2px;\n padding: 4px 10px;\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n resize: inherit;\n &::placeholder {\n color: ${Theme.gray40};\n font-weight: 500;\n font-size: ${Theme.extraNormal};\n }\n &:focus {\n outline: none;\n }\n }\n .displayNone {\n resize: none;\n }\n\n .css-14jk2my-container {\n background-color: rgba(224, 231, 255, 0.2);\n margin-top: 5px;\n }\n .hide-icon {\n position: absolute;\n top: 34px;\n right: 14px;\n }\n .show-icon {\n position: absolute;\n top: 34px;\n right: 14px;\n }\n .hide-icons {\n position: absolute;\n top: 50px;\n right: 114px;\n cursor: pointer;\n }\n\n .show-icons {\n position: absolute;\n top: 34px;\n right: 95px;\n cursor: pointer;\n }\n .copy-icon {\n width: 30px;\n position: absolute;\n right: 6%;\n top: 27px;\n cursor: pointer;\n }\n .info-icon {\n width: 15px;\n position: absolute;\n right: auto;\n cursor: pointer;\n top: 0px;\n margin-left: 10px;\n\n &.amazon {\n position: initial;\n }\n }\n .phone-input-info {\n position: absolute;\n top: 37px;\n right: 10px;\n }\n .contact-input-info {\n position: absolute;\n top: 12px;\n right: 9px;\n }\n .profilephone-input-info {\n position: absolute;\n top: 36px;\n right: 15px;\n }\n`;\nexport default FormField;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst Table = styled.table`\n position: relative;\n width: 100%;\n border-spacing: 0;\n\n &.customer-list {\n margin-top: 53px;\n table-layout: fixed;\n }\n\n tr {\n text-align: left;\n background: ${Theme.white};\n\n border-radius: 1px;\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n &.border-bottom td {\n border-bottom: 1px solid ${Theme.gray11};\n }\n\n td:first-child {\n position: sticky;\n left: 0;\n background: white;\n z-index: 1;\n }\n\n th {\n padding: 13px 0px;\n text-transform: uppercase;\n color: ${Theme.gray40};\n font-size: 11px;\n background: ${Theme.white};\n font-weight: 800;\n font-family: ${Theme.titleFontFamily};\n\n &.product-catalog-header {\n border-top: 1px solid ${Theme.gray11};\n }\n &.product-header {\n border-bottom: 1px solid ${Theme.gray11};\n position: sticky !important;\n top: 53px;\n z-index: 1;\n }\n }\n th:first-child {\n left: 0;\n z-index: 2;\n background: white;\n }\n\n td {\n padding: 20px 10px 3px 10px;\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n font-weight: 600;\n\n .w-50 {\n width: 35%;\n margin-right: 3px;\n word-break: break-word;\n }\n\n &.product-body {\n padding: 13px 20px 13px 0;\n width: 100px;\n\n &.light-font {\n font-weight: 300;\n }\n &.line-body {\n text-align: left;\n padding: 13px 0px;\n border-bottom: 1px solid #e0e6e8;\n }\n .width30 {\n width: 40%;\n }\n\n .border-left-for-child {\n display: inline;\n height: 100%;\n width: 0.7px;\n position: absolute;\n top: -20px;\n background: ${Theme.gray11};\n }\n }\n\n &.small-label-text {\n font-size: ${Theme.extraNormal};\n /* border-bottom: 1px solid ${Theme.gray11}; */\n\n .type {\n font-family: ${Theme.baseMediumFontFamily};\n }\n .marketplace {\n font-family: ${Theme.baseFontFamily};\n font-weight: 300;\n }\n }\n\n &.agreement {\n font-size: ${Theme.normal};\n border-bottom: 1px solid ${Theme.gray11};\n font-weight: 300;\n\n .orange-icon {\n margin-left: 10px;\n vertical-align: middle;\n }\n }\n &.product-table-body {\n padding: 13px 4px 13px 0;\n font-size: ${Theme.extraNormal};\n\n &.light-font {\n font-weight: 300;\n }\n .orange-status {\n color: ${Theme.orange};\n font-size: ${Theme.extraNormal};\n font-weight: ${Theme.baseMediumFontFamily};\n }\n }\n\n .notification-bell {\n padding: 4px;\n width: fit-content;\n border-radius: 5px;\n .notification-bell-icon {\n width: 15px;\n vertical-align: middle;\n margin-left: 2px;\n }\n &:hover {\n background-color: ${Theme.gray8};\n\n cursor: pointer;\n }\n }\n &.product-catalog-body {\n border-top: 1px solid ${Theme.gray11};\n padding: 13px 4px 13px 0;\n cursor: pointer;\n font-size: ${Theme.extraNormal};\n .product-catalog-image {\n input.check-box-product-list {\n display: none;\n }\n\n .checkmark {\n position: absolute;\n border-radius: 4px;\n width: 20px;\n height: 20px;\n top: 20px;\n left: 10px;\n }\n\n input:checked ~ .checkmark {\n background-color: ${Theme.orange};\n color: white;\n border: none;\n top: 20px;\n left: 10px;\n }\n\n input:checked ~ .checkmark:after {\n display: block;\n }\n\n .checkmark:after {\n content: '';\n position: absolute;\n display: none;\n left: 6px;\n top: 3px;\n width: 6px;\n height: 11px;\n border: solid ${Theme.white};\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n\n .product-image {\n width: 37px;\n height: 37px;\n margin-right: 10px;\n float: left;\n display: flex;\n align-items: center;\n flex-direction: row;\n }\n .product-image-large {\n display: none;\n }\n &:hover {\n .product-image-large {\n display: block;\n background-color: ${Theme.gray8};\n border: 4px solid ${Theme.white};\n position: absolute;\n z-index: 2;\n border-radius: 8px;\n width: 180px;\n height: 180px;\n left: 20px;\n }\n }\n }\n .product-data {\n float: left;\n width: inherit;\n .product-name {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 270px;\n }\n .product-id {\n color: ${Theme.gray90};\n font-weight: 500;\n }\n @media only screen and (min-width: 991px) and (max-width: 1362px) {\n max-width: 150px;\n }\n }\n .status {\n background-color: #e3f2d2;\n border-radius: 5px;\n max-width: 99px;\n text-align: right;\n padding: 5px 12px;\n color: ${Theme.black};\n position: relative;\n\n &.unoptimized {\n background-color: ${Theme.gray8};\n max-width: 113px;\n }\n &.scheduled {\n background-color: ${Theme.extraLightYellow};\n max-width: 99px;\n }\n &.assets-received {\n background-color: #d6eef2;\n max-width: 132px;\n }\n &.assets-requested {\n background-color: ${Theme.lightOrange};\n max-width: 132px;\n }\n .bullet-point {\n background-color: ${Theme.lighterGreen};\n border-radius: 100%;\n width: 8px;\n height: 8px;\n position: absolute;\n top: 9px;\n left: 11px;\n\n &.unoptimized {\n background-color: ${Theme.gray25};\n }\n &.scheduled {\n background-color: ${Theme.yellow};\n }\n &.assets-received {\n background-color: #30a8bd;\n }\n &.assets-requested {\n background-color: ${Theme.orange};\n }\n }\n .status-text {\n color: ${Theme.black};\n margin-left: 3px;\n }\n @media only screen and (min-width: 991px) and (max-width: 1362px) {\n padding: 5px;\n\n .bullet-point {\n left: 5px;\n }\n }\n @media only screen and (max-width: 767px) {\n display: flow-root;\n }\n }\n .request {\n color: ${Theme.gray85};\n font-weight: 300;\n\n .request-plan {\n vertical-align: bottom;\n margin-right: 2px;\n }\n }\n }\n .company-info-details {\n float: left;\n max-width: 68%;\n word-break: keep-all;\n }\n .customer-details {\n max-width: 58%;\n }\n\n .company-logo {\n border-radius: 10px;\n width: 45px;\n height: 45px;\n margin-right: 14px;\n float: left;\n }\n\n .company-name {\n min-height: 20px;\n text-transform: capitalize;\n word-break: break-all;\n }\n\n .status {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n word-break: break-all;\n text-transform: capitalize;\n }\n\n .user-profile-circle {\n border-radius: 50%;\n width: 40px;\n height: 40px;\n margin-right: 14px;\n float: left;\n }\n\n .user-name {\n font-weight: 300;\n font-size: ${Theme.extraNormal};\n text-transform: capitalize;\n margin-top: 0;\n\n .child-user-name {\n color: ${Theme.gray85};\n font-size: ${Theme.extraSmall};\n }\n }\n\n .user-email {\n font-size: ${Theme.normal};\n font-weight: 300;\n }\n\n .small-value {\n font-weight: 300;\n font-size: ${Theme.extraNormal};\n }\n\n .increase-rate {\n color: ${Theme.lighterGreen};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n margin-left: -2px;\n\n &.large {\n font-size: ${Theme.extraMedium};\n font-weight: 600 !important;\n }\n\n .green-arrow {\n width: 14px;\n vertical-align: bottom;\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n margin-top: -4px;\n }\n\n .red-arrow {\n width: 14px;\n transform: rotate(180deg);\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n margin-top: -4px;\n }\n &.grey {\n color: ${Theme.gray40};\n }\n }\n\n .decrease-rate {\n color: ${Theme.red};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n .red-arrow {\n width: 14px;\n transform: rotate(180deg);\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n .green-arrow {\n width: 14px;\n vertical-align: bottom;\n /* transform: rotate(180deg); */\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n &.grey {\n color: ${Theme.gray40};\n }\n &.large {\n font-size: ${Theme.extraMedium};\n font-weight: 600;\n }\n }\n\n .recurring-contact {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n display: inline-block;\n margin-right: 7px;\n font-weight: 300;\n margin-bottom: 6px;\n\n &.black-heading-title {\n min-height: 0 !important;\n }\n\n .recurring-service {\n border-radius: 5px;\n border: none;\n padding: 3px 3px 3px 10px;\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n display: flex;\n align-items: center;\n\n &.agreement {\n border: 1px solid ${Theme.gray45};\n padding: 9px 12px;\n background-color: ${Theme.white};\n }\n\n &.edit {\n background: ${Theme.lightPink};\n }\n\n &.count-days {\n background: ${Theme.lighterOrange};\n }\n\n &.file-check {\n background: ${Theme.extraLightYellow};\n }\n\n &.file {\n background: ${Theme.gray8};\n }\n\n .active-contract-icon {\n padding: 8px 10px;\n border-radius: 3px;\n margin-left: 10px;\n float: right;\n font-size: 14px;\n\n &.edit-file-icon {\n background: ${Theme.pink};\n\n img {\n vertical-align: middle;\n width: 16px;\n }\n }\n &.count-clock-icon {\n background: ${Theme.extraLighOrange};\n margin-left: 10px;\n\n img {\n vertical-align: text-top;\n width: 14px;\n margin-right: 3px;\n }\n }\n &.file-check-icon {\n background: ${Theme.lightYellow};\n img {\n vertical-align: text-top;\n width: 13px;\n }\n }\n &.file-icon {\n background: ${Theme.gray12};\n\n img {\n vertical-align: text-top;\n width: 14px;\n }\n }\n }\n }\n &.no-active-contract {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n text-transform: initial;\n }\n }\n }\n\n .brand-partner {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n display: inline-block;\n margin-right: 3px;\n\n .brand-logo {\n width: 33px;\n height: 33px;\n border-radius: 50%;\n }\n }\n }\n }\n\n .no-brand {\n font-weight: 300;\n font-size: ${Theme.extraNormal};\n text-transform: capitalize;\n margin-left: 29px;\n }\n\n :last-child {\n td {\n .border-left-for-child {\n height: 70%;\n }\n }\n }\n }\n @media only screen and (min-width: 1920px) {\n tr {\n td {\n .company-info-details {\n float: left;\n word-break: keep-all;\n max-width: 75%;\n }\n }\n }\n }\n @media only screen and (max-width: 1050px) {\n tr {\n td {\n .company-info-details {\n float: left;\n max-width: 65%;\n word-break: keep-all;\n }\n .customer-details {\n max-width: 55%;\n }\n }\n }\n }\n &.product-catalog-laptop {\n @media only screen and (max-width: 767px) {\n display: none;\n }\n }\n &.product-catalog-mobile {\n display: none;\n @media only screen and (min-width: 767px) {\n display: none;\n }\n }\n\n @media only screen and (min-width: 1700px) and (max-width: 1920px) {\n tbody {\n tr {\n &.table-header {\n th {\n font-size: 17px;\n }\n }\n\n td {\n font-size: ${Theme.normalRes};\n\n .sub-address {\n font-size: ${Theme.smallRes};\n }\n .company-name {\n font-size: ${Theme.medium};\n }\n }\n }\n }\n }\n\n @media only screen and (min-width: 991px) and (max-width: 1362px) {\n tbody {\n tr {\n td {\n &.product-catalog-body {\n .product-data {\n max-width: 150px;\n }\n }\n }\n }\n }\n }\n`;\nexport default Table;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport { string } from 'prop-types';\n\nimport Theme from '../theme/Theme';\nimport PageNotFoundImg from '../theme/images/page-not-found.svg';\n\nexport default function PageNotFound({ title = 'Page not found' }) {\n return (\n \n \"not-found\"\n
{title}
\n {title === 'Page not found' ? (\n

\n The page you’re looking for can’t be found. Double check the URL and\n try again.\n

\n ) : null}\n
\n );\n}\n\nPageNotFound.defaultProps = {\n title: 'Page not found',\n};\n\nPageNotFound.propTypes = {\n title: string,\n};\n\nconst PageNotFounds = styled.div`\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n .not-found {\n color: ${Theme.gray90};\n font-size: 16px;\n text-align: center;\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst SideBar = styled.div`\n min-width: 80px;\n max-width: 300px;\n position: absolute;\n top: 80px;\n right: 0;\n min-height: 100%;\n /* z-index: 98; */\n background: ${Theme.white};\n border-left: 1px solid ${Theme.gray7};\n\n .activity-icon {\n background-color: ${Theme.gray15};\n width: 40px;\n height: 40px;\n border-radius: 50%;\n\n img {\n margin-top: 13px;\n width: 24px;\n }\n }\n\n input[data-function*='swipe'] {\n position: absolute;\n opacity: 0;\n }\n label[data-function*='swipe'] {\n padding: 30px 0 0 10px;\n z-index: 1;\n display: block;\n width: 42px;\n font-family: ${Theme.titleFontFamily};\n height: 42px;\n text-align: center;\n cursor: pointer;\n transform: translate3d(0, 0, 0);\n transition: transform 0.3s;\n }\n\n input[data-function*='swipe']:checked ~ label[data-function*='swipe'] {\n transform: translate3d(200px, 0, 0);\n }\n label[data-function*='swipe']:checked {\n display: block;\n }\n label:nth-child(2) {\n display: none;\n }\n input[data-function*='swipe']:checked ~ label:nth-child(2) {\n display: block;\n transform: translate3d(10px, 0px, 0px);\n }\n input[data-function*='swipe']:checked ~ label:nth-child(3) {\n display: none;\n }\n\n input[data-function*='swipe']:checked ~ .sidebar {\n transform: translate3d(0px, 0px, 0px);\n display: none;\n }\n input[data-function*='swipe']:checked ~ .sidebar .menu li {\n width: 70%;\n }\n\n .sidebar {\n background: ${Theme.white};\n padding-top: 45px;\n right: 0;\n transition: all 0.3s;\n\n .menu {\n padding: 0;\n margin: 0;\n li {\n color: ${Theme.white};\n text-align: center;\n font-size: ${Theme.normal};\n font-weight: 900;\n list-style: none;\n display: flex;\n text-decoration: none;\n padding: 15px 15px 15px 20px;\n border-bottom: 1px solid ${Theme.gray5};\n &:last-child {\n border-bottom: none;\n }\n\n .activity-user {\n font-size: ${Theme.normal};\n color: ${Theme.gray90};\n float: left;\n max-width: 240px;\n word-wrap: break-word;\n text-align: left;\n\n span {\n color: ${Theme.gray35};\n }\n }\n\n img {\n width: 25px;\n height: 25px;\n border-radius: 50%;\n float: left;\n margin-right: 13px;\n }\n\n .avatar {\n height: 26px;\n border-radius: 50%;\n float: left;\n margin-right: 13px;\n text-align: center;\n border: 1px solid ${Theme.lightOrange};\n background: ${Theme.lightOrange};\n color: ${Theme.orange};\n text-transform: Uppercase;\n font-size: ${Theme.extraSmall};\n padding-top: 5px;\n max-width: 26px;\n width: 100%;\n max-height: 26px;\n }\n\n .time-date {\n color: ${Theme.gray35};\n font-size: ${Theme.small};\n text-align: left;\n }\n\n &:hover {\n box-shadow: ${Theme.commonShadow};\n }\n }\n }\n }\n .activity-log {\n font-size: ${Theme.extraSmall};\n position: absolute;\n width: 185px;\n color: ${Theme.gray30};\n top: 40px;\n text-transform: uppercase;\n }\n\n @media only screen and (min-width: 1500px) {\n max-width: 350px;\n .sidebar {\n .menu {\n li {\n .activity-user {\n max-width: 320px;\n }\n }\n }\n }\n }\n @media only screen and (min-width: 1700px) and (max-width: 1920px) {\n max-width: 380px;\n .sidebar {\n .menu {\n li {\n font-size: ${Theme.normalRes};\n .activity-user {\n max-width: 350px;\n font-size: ${Theme.normalRes};\n }\n .avatar {\n width: 46px;\n height: 26px;\n border-radius: 50%;\n float: left;\n margin-right: 13px;\n text-align: center;\n border: 1px solid ${Theme.lightOrange};\n background: ${Theme.lightOrange};\n color: ${Theme.orange};\n text-transform: Uppercase;\n font-size: ${Theme.extraSmallRes};\n }\n .time-date {\n font-size: ${Theme.smallRes};\n }\n }\n }\n }\n .activity-log {\n font-size: ${Theme.extraSmallRes};\n }\n }\n`;\n\nexport default SideBar;\n","import React from 'react';\nimport Pagination from 'rc-pagination';\nimport 'rc-pagination/assets/index.css';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nexport default function CommonPagination({\n count,\n pageNumber,\n handlePageChange,\n marginStyle,\n showLessItems = false,\n}) {\n return (\n
\n \n \n `${range[0]} - ${range[1]} of ${total} items`\n }\n total={count}\n showLessItems={showLessItems}\n current={pageNumber}\n hideOnSinglePage\n onChange={(event) => handlePageChange(event)}\n locale=\"en_US\"\n />\n \n
\n );\n}\n\nCommonPagination.defaultProps = {\n count: null,\n pageNumber: 1,\n handlePageChange: () => {},\n marginStyle: null,\n showLessItems: false,\n};\n\nCommonPagination.propTypes = {\n count: PropTypes.number,\n pageNumber: PropTypes.number,\n handlePageChange: PropTypes.func,\n marginStyle: PropTypes.number,\n showLessItems: PropTypes.bool,\n};\n\nconst PaginationStyled = styled.div`\n ul.rc-pagination {\n text-align: end;\n .rc-pagination-total-text {\n float: left;\n color: ${Theme.gray85};\n }\n li {\n margin-bottom: 10px;\n\n &.rc-pagination-item {\n display: inline-block;\n border: none;\n a {\n color: ${Theme.black};\n }\n\n &.rc-pagination-item-active {\n font-weight: 500;\n border: none;\n a {\n color: ${Theme.orange};\n }\n }\n\n &:hover {\n font-weight: 500;\n a {\n color: ${Theme.orange};\n }\n }\n }\n }\n .rc-pagination-prev button,\n .rc-pagination-next button {\n font-size: 18px;\n .rc-pagination-next button:after {\n font-size: 15px !important;\n color: black;\n }\n .rc-pagination-prev button:after {\n content: '‹';\n display: block;\n color: black;\n font-size: 15px !important;\n }\n\n &:hover {\n border: 1px solid #d9d9d9;\n color: black;\n }\n }\n .rc-pagination-next:focus .rc-pagination-item-link,\n .rc-pagination-next:hover .rc-pagination-item-link,\n .rc-pagination-prev:focus .rc-pagination-item-link,\n .rc-pagination-prev:hover .rc-pagination-item-link {\n border: 1px solid #d9d9d9;\n font-size: 18px;\n color: black;\n }\n }\n\n @media only screen and (max-width: 500px) {\n ul.rc-pagination {\n text-align: center !important;\n }\n li.rc-pagination-total-text {\n width: 100%;\n }\n }\n .rc-pagination-options {\n margin-left: 0;\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst ModalBox = styled.div`\n width: 100%;\n margin: 0 auto;\n border-radius: 8px;\n\n .modal-back-arrow {\n margin-top: -2px;\n margin-right: 4px;\n margin-left: 0px;\n width: 15px;\n vertical-align: middle;\n cursor: pointer;\n }\n\n .past-adjustment-table-container {\n height: 80vh;\n overflow-y: auto;\n padding-bottom: 50px;\n }\n\n .account-setup-complete {\n padding: 34px 33px 33px 30px !important;\n }\n .inner-body-content {\n max-height: 300px;\n width: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n }\n\n .survey-edit-recp-modal {\n max-height: 300px;\n width: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n\n ::-webkit-scrollbar {\n width: 5px;\n height: 4px;\n }\n ::-webkit-scrollbar-track {\n background-color: ${Theme.gray2};\n }\n ::-webkit-scrollbar-thumb {\n background-color: ${Theme.gray25};\n }\n }\n\n .modal-body {\n .role-selected {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n font-family: ${Theme.titleFontFamily};\n }\n\n .partner-feedback-radiobtn {\n list-style-type: none;\n }\n\n .addendum-service-modal {\n overflow-y: auto;\n max-height: 500px;\n }\n\n .light-bg {\n border-radius: 5px;\n background: ${Theme.lightOrange};\n text-align: center;\n padding: 4px 11px;\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n font-family: ${Theme.baseFontFamily};\n font-weight: 600;\n }\n .gray {\n color: ${Theme.gray85};\n background: ${Theme.gray8};\n font-weight: 500;\n }\n .signature-request {\n font-size: ${Theme.verySmall};\n color: ${Theme.gray40};\n font-family: ${Theme.titleFontFamily};\n\n .email-address {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n word-break: break-all;\n }\n }\n .edit-contact-detail {\n position: absolute;\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n top: 10px;\n right: 25px;\n cursor: pointer;\n\n img {\n width: 18px;\n margin-right: 4px;\n vertical-align: text-top;\n }\n }\n\n .send-copy-contract {\n color: ${Theme.gray30};\n font-size: ${Theme.extraSmall};\n text-transform: uppercase;\n font-weight: 500;\n letter-spacing: 1.13px;\n font-family: ${Theme.titleFontFamily};\n }\n .copy-review {\n font-size: ${Theme.small};\n color: ${Theme.gray35};\n }\n\n .add-new-contact {\n color: ${Theme.orange};\n font-size: ${Theme.small};\n\n .add-new-icon {\n vertical-align: top;\n width: 16px;\n }\n }\n .contract-status {\n float: left;\n max-width: 85%;\n width: 100%;\n word-break: keep-all;\n }\n .solid-icon {\n margin-right: 8px;\n vertical-align: middle;\n float: left;\n }\n .long-text-agr {\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n line-height: 24px;\n }\n .recurring-contact {\n padding: 0;\n margin: 0;\n list-style-type: none;\n display: inline-block;\n\n li {\n display: inline-block;\n margin-right: 18px;\n position: relative;\n\n &:last-child {\n margin-right: 0;\n }\n .dot {\n background-color: #8798ad;\n border-radius: 50%;\n width: 3px;\n height: 3px;\n position: absolute;\n top: 7px;\n margin-left: -10px;\n }\n }\n }\n .default-user-activity {\n width: 42px;\n height: 42px;\n border-radius: 50%;\n float: left;\n margin-right: 15px;\n margin-top: -2px;\n }\n .invoice-adj-radio {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n display: inline-block;\n margin-right: 25px;\n }\n }\n @media not all and (min-resolution: 0.001dpcm) {\n @supports (-webkit-appearance: none) {\n .modal-heading {\n padding: 7px 15px 7px 0 !important;\n padding-left: 15px !important;\n }\n }\n }\n .modal-heading {\n padding: 0px 0;\n padding-left: 0 !important;\n\n ::i-block-chrome,\n .modal-heading {\n padding: 7px 15px 7px 0 !important;\n padding-left: 15px !important;\n }\n\n @media not all and (min-resolution: 0.001dpcm) {\n @supports (-webkit-appearance: none) {\n .modal-heading {\n padding: 7px 15px 7px 0 !important;\n padding-left: 15px !important;\n }\n }\n }\n }\n\n .apply-discount {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: inline-block;\n margin-right: 30px;\n }\n }\n\n .edit-profile-text {\n position: relative;\n word-break: break-word;\n\n .name-email {\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n\n .team-member-name {\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n font-family: ${Theme.titleFontFamily};\n line-height: 22px;\n }\n }\n .brand-pratner {\n color: ${Theme.gray85};\n .team-member-name {\n color: ${Theme.black};\n }\n }\n }\n .trash-icons {\n position: absolute;\n top: 40px;\n right: 21px;\n width: 18px;\n }\n\n .arrow-back-icon {\n width: 14px;\n vertical-align: middle;\n margin-right: 3px;\n }\n\n .alert-msg {\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n text-align: center;\n font-weight: 500;\n padding: 0px 0 30px 0;\n\n .sure-to-proceed {\n margin-top: 11px;\n }\n\n .primary-text-of-modal {\n font-weight: 600;\n }\n }\n\n .arrow-right {\n width: 15px;\n margin: 0px 7px 0 7px;\n vertical-align: bottom;\n top: 5px;\n }\n .success-msg {\n margin-top: -17px;\n }\n\n .body-content {\n max-height: 520px;\n width: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n &.modal-body-inner-container {\n max-width: 1031px;\n margin: 0 auto;\n max-height: 490px;\n }\n\n .roleName {\n left: 30px;\n top: 10px;\n padding-left: 0px;\n cursor: pointer;\n color: ${Theme.gray90};\n\n &.add-team-member {\n color: ${Theme.orange};\n }\n }\n\n .back-to-members {\n cursor: pointer;\n }\n\n .no-result-found {\n margin: 0 auto;\n }\n\n .heading {\n color: ${Theme.gray30};\n font-size: ${Theme.extraSmall};\n letter-spacing: 1.13px;\n text-transform: uppercase;\n font-weight: bold;\n }\n\n .remove-contact {\n position: absolute;\n top: 5px;\n right: 26px;\n width: 16px;\n }\n\n .trash {\n position: absolute;\n top: 11px;\n right: 13px;\n width: 16px;\n }\n\n .contact-user {\n width: 48px;\n height: 48px;\n border-radius: 50%;\n margin-top: 10px;\n }\n\n .add-user {\n width: 16px;\n vertical-align: middle;\n }\n .goals-check-list {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: block;\n }\n }\n .profile-photo {\n border: 8px solid #fafafb;\n border-radius: 10px;\n width: 120px;\n height: 120px;\n margin-left: 10px;\n position: relative;\n }\n\n .brand-icon-label {\n color: ${Theme.gray90};\n font-weight: 600;\n\n .social-media {\n width: 15px;\n margin-top: 4px;\n vertical-align: bottom;\n }\n }\n .customer-company-profile {\n border: 8px solid ${Theme.gray6};\n border-radius: 10px;\n width: 120px;\n height: 120px;\n margin-left: 10px;\n position: relative;\n\n .edit-profile-picture {\n background: #f0f2fc;\n border-radius: 18px;\n border: 3px solid white;\n position: absolute;\n right: -25px;\n top: 79px;\n width: 50px;\n height: 50px;\n padding: 9px;\n cursor: pointer;\n }\n }\n\n .drop-down {\n color: ${Theme.gray90};\n font-family: ${Theme.titleFontFamily};\n text-align: right;\n font-size: ${Theme.normal};\n }\n\n .team-member-list:first-child {\n .trash-icon {\n top: 22px !important;\n }\n }\n\n .progress-label {\n font-size: ${Theme.verySmall};\n font-family: ${Theme.titleFontFamily};\n text-transform: uppercase;\n padding: 5px 8px;\n border-radius: 5px;\n\n &.gray-label {\n background: #f4f6fc;\n }\n &.orange-label {\n color: ${Theme.orange};\n background: #f7c1373d;\n }\n &.green-label {\n color: ${Theme.lighterGreen};\n background: #e1f2ce;\n }\n &.blue-label {\n color: #0045b4;\n background: #0045b445;\n }\n }\n }\n\n .embed-responsive-item {\n height: 450px !important;\n background: ${Theme.black};\n }\n .payment-option {\n list-style-type: none;\n margin: 0;\n padding: 0;\n li {\n display: inline-block;\n margin-right: 20px;\n text-transform: capitalize;\n\n &:last-child {\n margin-right: 0px;\n }\n\n .card {\n width: 17px;\n vertical-align: top;\n }\n }\n }\n\n @media screen and (-webkit-min-device-pixel-ratio: 0) {\n .modal-heading {\n padding: 7px 15px 7px 0;\n padding-left: 15px;\n }\n }\n\n .footer-line {\n /* border-bottom: 1px solid ${Theme.gray5}; */\n margin: 10px 0;\n width: 100%;\n }\n\n .modal-footer {\n padding: 10px 20px 20px 20px;\n }\n\n .cropper-container {\n max-width: 540px !important;\n max-height: 480px !important;\n }\n .croped-img {\n max-width: 540px !important;\n padding-top: 20%;\n background: ${Theme.gray20};\n max-height: 480px !important;\n\n img {\n outline: 1px solid #39f;\n }\n }\n .cropper-crop-box {\n max-width: 540px !important;\n }\n\n .automatic-reminder {\n border-radius: 2px;\n background: ${Theme.extraLightYellow};\n padding: 10px;\n color: ${Theme.black};\n font-size: ${Theme.normal};\n }\n\n .select-new-owner {\n list-style-type: none;\n padding: 0;\n\n li {\n padding: 0;\n margin: 0;\n display: inline-block;\n\n .arrow-right-gray {\n width: 16px;\n vertical-align: top;\n margin: 2px 6px;\n }\n &.active {\n color: ${Theme.black};\n }\n }\n }\n .label-title {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n text-transform: uppercase;\n font-weight: bold;\n font-family: ${Theme.titleFontFamily};\n }\n .verify-info-text {\n color: ${Theme.gray85};\n font-size: 14px;\n font-family: ${Theme.baseFontFamily};\n line-height: 20px;\n\n &.font-italic {\n font-family: ${Theme.regularItalicFontFamily};\n }\n }\n .does-not-match-box {\n background-color: #ffded6;\n border-radius: 5px;\n color: ${Theme.black};\n font-size: ${Theme.normal};\n padding: 14px;\n .times-circle-icon {\n width: 20px;\n vertical-align: text-bottom;\n }\n }\n\n @media only screen and (min-width: 1700px) and (max-width: 1920px) {\n &.on-boarding {\n .role-selected {\n font-size: ${Theme.normalRes};\n }\n .signature-request {\n font-size: ${Theme.mediumRes};\n }\n\n .send-copy-contract {\n font-size: ${Theme.extraSmallRes};\n }\n .copy-review {\n font-size: ${Theme.smallRes};\n }\n\n .add-new-contact {\n font-size: ${Theme.smallRes};\n }\n }\n .edit-profile-text {\n position: relative;\n\n .name-email {\n font-size: ${Theme.smallRes};\n\n .team-member-name {\n font-size: ${Theme.mediumRes};\n }\n }\n }\n\n .alert-msg {\n font-size: ${Theme.mediumRes};\n }\n\n .body-content {\n .heading {\n font-size: ${Theme.extraSmallRes};\n }\n .drop-down {\n font-size: ${Theme.normalRes};\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .body-content {\n max-height: 420px;\n &.modal-body-inner-container {\n max-height: 420px;\n }\n }\n }\n }\n\n .modal-footer {\n padding: 10px 30px 20px 30px;\n @media only screen and (max-width: 610px) {\n padding: 10px 15px 20px 15px;\n }\n }\n .footer-line {\n border-bottom: 1px solid ${Theme.gray11};\n margin: 10px 0;\n width: 100%;\n }\n`;\n\nexport default ModalBox;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst TeamDropDown = styled.div`\n width: 100%;\n\n label {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n font-family: ${Theme.titleFontFamily};\n }\n .css-yk16xz-control {\n color: ${Theme.gray90};\n border: none;\n background-color: ${Theme.white};\n max-width: 211px;\n width: 100%;\n margin: 0 auto;\n cursor: pointer;\n\n .css-g1d714-ValueContainer {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n cursor: pointer;\n\n font-family: ${Theme.titleFontFamily};\n max-width: 211px;\n\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n font-family: ${Theme.titleFontFamily};\n text-transform: none;\n }\n }\n\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n\n .css-tlfecz-indicatorContainer {\n color: ${Theme.gray90};\n }\n\n .css-1hb7xyz-indicatorContainer {\n color: ${Theme.gray90};\n }\n\n .css-1uccc91-singleValue {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n font-family: ${Theme.titleFontFamily};\n }\n\n &:hover {\n border: none;\n background-color: ${Theme.white};\n }\n }\n\n .css-1pahdxg-control {\n box-shadow: none;\n width: 100%;\n margin: 0 auto;\n max-width: 211px;\n color: ${Theme.gray90};\n border: none;\n background-color: ${Theme.white};\n outline: none;\n cursor: pointer;\n\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n }\n\n .css-26l3qy-menu {\n z-index: 99999 !important;\n right: 20%;\n width: 100%;\n /* width: 320px; */\n border: 1px solid rgba(46, 91, 255, 0.08);\n box-shadow: ${Theme.commonShadow};\n\n .option {\n &:hover {\n color: ${Theme.orange};\n background: none !important;\n z-index: 9999;\n }\n &:active {\n color: ${Theme.orange};\n background: transparent !important;\n z-index: 9999;\n }\n }\n }\n\n .css-1uccc91-singleValue {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n font-weight: 600;\n cursor: pointer;\n }\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n\n .css-tlfecz-indicatorContainer {\n color: ${Theme.gray90};\n }\n\n .css-1qzoi4y-control {\n cursor: pointer;\n max-width: 100%;\n }\n .css-jddzik-control {\n max-width: 100%;\n\n .filter-cross {\n position: absolute;\n top: 14px;\n right: 42px;\n width: 12px;\n }\n }\n`;\n\nexport default TeamDropDown;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst TransparentSelect = styled.div`\n width: 100%;\n\n &.w-30 {\n width: 160px;\n float: right;\n }\n\n &.w-40 {\n width: 170px;\n float: left;\n }\n\n .css-2b097c-container {\n width: 100%;\n\n .css-yk16xz-control {\n border: 1px solid ${Theme.gray25};\n border-radius: 1px;\n font-family: ${Theme.titleFontFamily};\n color: ${Theme.gray90};\n font-size: ${Theme.textFontSize};\n padding: 0 5px 0 5px;\n cursor: pointer;\n\n .css-g1d714-ValueContainer {\n padding: 0 20px 0 5px;\n }\n\n .css-1wa3eu0-placeholder {\n font-size: ${Theme.textFontSize};\n color: ${Theme.gray90};\n width: 100%;\n text-align: left;\n }\n }\n\n .css-tlfecz-indicatorContainer {\n color: ${Theme.gray90}!important;\n }\n\n .css-1pahdxg-control {\n border: 1px solid ${Theme.gray25};\n border-radius: 1px;\n color: ${Theme.gray90};\n font-family: ${Theme.titleFontFamily};\n font-size: ${Theme.textFontSize};\n padding: 0 5px 0 5px;\n box-shadow: none;\n outline: none;\n cursor: pointer;\n\n .css-b8ldur-Input {\n color: ${Theme.gray90};\n }\n\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray90};\n }\n\n .css-g1d714-ValueContainer {\n padding: 0 20px 0 5px;\n }\n\n .css-1hb7zxy-IndicatorsContainer {\n color: ${Theme.gray90} !important;\n\n .css-1gtu0rj-indicatorContainer {\n color: ${Theme.gray90} !important;\n\n .css-6q0nyr-Svg {\n color: ${Theme.gray90} !important;\n }\n\n &:hover {\n color: ${Theme.gray90};\n }\n }\n }\n }\n\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n }\n .css-1081v0-control {\n border: none;\n outline: none;\n box-shadow: none;\n &:hover {\n border: none;\n }\n }\n\n .css-b9nxok-control {\n .css-1wa3eu0-placeholder {\n color: white;\n }\n }\n\n .css-1g9qasx-control {\n border: 1px solid ${Theme.gray9};\n outline: none;\n box-shadow: none;\n &:hover {\n border: 1px solid ${Theme.gray9};\n }\n }\n\n .css-26l3qy-menu {\n box-shadow: ${Theme.commonShadow};\n color: ${Theme.gray90};\n z-index: 9999999;\n border: 1px solid ${Theme.gray5};\n text-align: left;\n\n .drop-down-user {\n vertical-align: middle;\n }\n }\n\n &.mobile-view {\n margin-left: 70px;\n }\n\n @media only screen and (max-width: 767px) {\n &.mobile-view {\n width: 200px;\n margin-bottom: 20px;\n margin-left: 0px;\n }\n }\n`;\n\nexport default TransparentSelect;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst CheckBox = styled.div`\n .check-container {\n display: block;\n position: relative;\n padding-left: 35px;\n margin-bottom: 12px;\n cursor: pointer;\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n &.customer-pannel {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n }\n\n &.font-weight-medium {\n font-family: ${Theme.baseMediumFontFamily}\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n width: fit-content;\n }\n &.font-weight-regular {\n font-weight: 300;\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n width: fit-content;\n }\n\n &.term-condition {\n font-size: ${Theme.extraSmall};\n }\n\n &.contract-sign {\n color: ${Theme.gray35};\n }\n &.selected-list {\n color: ${Theme.gray35};\n font-size: ${Theme.extraNormal};\n }\n &.additional-place {\n color: ${Theme.black};\n font-size: ${Theme.textFontSize};\n font-family: ${Theme.regularArialTextFontFamily};\n }\n\n &.is-option-disabled {\n cursor: not-allowed;\n }\n }\n\n &.selected-img {\n .check-container {\n padding-left: 0px;\n }\n .checkmark {\n position: absolute;\n top: 5px;\n left: 5px;\n z-index: 2;\n width: 30px;\n height: 30px;\n }\n .check-container .checkmark:after {\n left: 11px;\n top: 4px;\n width: 7px;\n height: 17px;\n }\n }\n\n .check-container input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n }\n\n .checkmark {\n position: absolute;\n top: 0;\n left: 0;\n border-radius: 4px;\n width: 20px;\n background-color: ${Theme.white};\n height: 20px;\n border: 1px solid ${Theme.gray35};\n\n &.checkmark-small {\n width: 16px;\n height: 16px;\n }\n &.checkmark-small:after {\n left: 5px !important;\n top: 3px !important;\n width: 5px !important;\n height: 9px !important;\n }\n\n &.left-content {\n right: 20px;\n width: 25px;\n height: 25px;\n left: unset;\n }\n }\n\n .check-container:hover input ~ .checkmark {\n background-color: ${Theme.white};\n }\n\n .check-container input:checked ~ .checkmark {\n background-color: ${Theme.orange};\n color: white;\n border: none;\n }\n\n .checkmark:after {\n content: '';\n position: absolute;\n display: none;\n }\n\n .check-container input:checked ~ .checkmark:after {\n display: block;\n }\n\n .check-container \n .checkmark:after {\n left: 7px;\n top: 3px;\n width: 6px;\n height: 11px;\n border: solid ${Theme.white};\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n \n .checkmark-large:after {\n left: 9px !important;\n top: 4px !important;\n width: 7px !important;\n height: 14px !important;\n }\n`;\n\nexport default CheckBox;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst ModalRadioCheck = styled.div`\n &.gray-bg {\n background: ${Theme.gray8};\n padding: 14px;\n position: relative;\n border-radius: 8px;\n margin-bottom: 15px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n .contact-billing {\n font-size: 14px !important;\n font-weight: 500;\n color: ${Theme.gray85};\n\n .checkmark-top {\n top: 0px;\n }\n }\n\n .radio-container {\n display: block;\n position: relative;\n padding-left: 25px;\n\n cursor: pointer;\n color: ${Theme.gray90};\n font-family: ${Theme.baseFontFamily};\n font-size: ${Theme.medium};\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n &.customer-list {\n color: ${Theme.gray85};\n font-size: 14px;\n }\n .checkmark-customer-list {\n top: 0px;\n }\n &.medium-text-label {\n font-size: ${Theme.extraMedium};\n color: ${Theme.black};\n padding-left: 30px;\n }\n }\n\n .delete-contact {\n width: 16px;\n right: 14px;\n position: absolute;\n top: 10px;\n }\n .edit-contact {\n width: 12px;\n right: 55px;\n position: absolute;\n top: 12px;\n }\n span.owner-details {\n font-size: 13px;\n color: ${Theme.gray35};\n margin-left: 25px;\n font-weight: 500;\n word-break: break-all;\n float: left;\n\n img {\n width: 13px;\n vertical-align: middle;\n margin-right: 10px;\n }\n }\n\n .radio-container input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n }\n\n .checkmark {\n position: absolute;\n top: 3px;\n left: 0;\n height: 18px;\n width: 18px;\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray9};\n border-radius: 50%;\n }\n\n .radio-container input:checked ~ .checkmark {\n background-color: ${Theme.baseColor};\n }\n\n .checkmark:after {\n content: '';\n position: absolute;\n display: none;\n }\n\n .radio-container input:checked ~ .checkmark:after {\n display: block;\n }\n\n .radio-container .checkmark:after {\n top: 4px;\n left: 4px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: white;\n }\n`;\n\nexport default ModalRadioCheck;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst InnerContainer = styled.div`\n max-width: 409px;\n width: 100%;\n margin: 0 auto;\n\n .logo {\n position: relative;\n width: 100%;\n max-width: 330px;\n .header-logo {\n width: 170px;\n display: inline-table;\n padding: 35px 0 45px 0;\n }\n\n span {\n position: absolute;\n margin-top: 43px;\n margin-left: 8px;\n font-size: 14px;\n font-weight: bold;\n color: ${Theme.black};\n font-family: ${Theme.titleFontFamily};\n }\n }\n .account-steps {\n text-transform: uppercase;\n font-size: 14px;\n font-family: ${Theme.baseFontFamily};\n color: #2e384d;\n font-weight: 600;\n }\n .page-heading {\n text-transform: none;\n }\n .help-info {\n font-size: 13px;\n\n .link-video {\n text-decoration: underline;\n cursor: pointer;\n font-size: 13px;\n color: ${Theme.orange};\n font-weight: 300;\n font-family: ${Theme.baseFontFamily};\n\n &.watch-video {\n font-size: 13px;\n text-decoration: none;\n }\n }\n }\n .video-call-icon {\n width: 16px;\n margin-top: 2px;\n margin-right: 5px;\n vertical-align: top;\n }\n\n .label-title {\n color: ${Theme.gray30};\n font-size: ${Theme.extraSmall};\n letter-spacing: 1.13px;\n text-transform: uppercase;\n font-weight: bold;\n\n .arrow-up {\n float: right;\n }\n }\n\n span {\n color: ${Theme.gray90};\n .social-media {\n width: 15px;\n margin-top: 3px;\n vertical-align: inherit;\n\n &.insta {\n width: 18px;\n margin-top: 3px;\n vertical-align: bottom;\n }\n }\n }\n .company-contact-height {\n height: 420px;\n overflow: auto;\n\n &.form-field {\n height: 235px;\n overflow: auto;\n }\n }\n\n @media only screen and (max-width: 767px) {\n &.white-card-container {\n padding: 0 20px;\n }\n }\n`;\nexport default InnerContainer;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst GreyCard = styled.div`\n padding: 15px;\n background: ${Theme.gray8};\n position: relative;\n border-radius: 8px;\n line-height: 19px;\n\n &.light-grey-bg {\n background: ${Theme.gray1};\n }\n .contact-user-name {\n font-size: ${Theme.medium};\n color: ${Theme.gray90};\n }\n .icon-white-bg {\n font-size: 17px;\n color: ${Theme.gray90};\n background: ${Theme.white};\n border-radius: 4px;\n font-size: 17px;\n padding: 10px 9px;\n vertical-align: middle;\n border-radius: 4px;\n margin-right: 12px;\n }\n\n .small-black-text {\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n font-weight: 600;\n }\n .user-details {\n color: ${Theme.gray35};\n font-size: 13px;\n\n img {\n width: 15px;\n vertical-align: middle;\n margin-right: 10px;\n }\n }\n .delete-contact {\n position: absolute;\n width: 16px;\n top: 15px;\n right: 20px;\n }\n .edit-contact {\n position: absolute;\n top: 14px;\n right: 50px;\n width: 14px;\n }\n\n &.yellow-card {\n background: ${Theme.lightYellow};\n color: ${(props) => (props.dsp ? 'black' : '')};\n\n .video-link {\n font-size: 14px;\n color: ${Theme.orange};\n text-transform: initial;\n }\n }\n`;\nexport default GreyCard;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst InputSearchWithRadius = styled.div`\n position: relative;\n width: 100%;\n\n &.w-50 {\n max-width: 335px;\n width: 100%;\n float: right;\n }\n .article-search {\n position: absolute;\n z-index: 2;\n }\n\n .form-control {\n width: 100%;\n padding: 10px 10px 10px 40px;\n min-height: 40px;\n font-size: ${Theme.extraNormal};\n background-color: ${Theme.white};\n color: ${Theme.gray90};\n border: 1px solid ${Theme.gray9};\n border-radius: 6px;\n\n &.height-32 {\n min-height: 32px;\n }\n\n &::placeholder {\n color: ${Theme.gray90};\n font-size: ${Theme.extraNormal};\n font-family: ${Theme.baseMediumFontFamily};\n }\n\n &:focus {\n outline: none;\n background-color: ${Theme.white};\n }\n\n &.form-control-info {\n padding: 10px 33px 10px 40px;\n }\n }\n\n .search-input-icon {\n position: absolute;\n left: 15px;\n top: 11px;\n width: 18px;\n\n ::i-block-chrome,\n .search-input-icon {\n top: 14px;\n }\n }\n\n .search-icon {\n position: absolute;\n left: 15px;\n top: 14px;\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n }\n\n .close-icon {\n position: absolute;\n right: 15px;\n top: 14px;\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n }\n\n .info-icon {\n right: 16px;\n position: absolute;\n top: 12px;\n }\n\n .remove-icon {\n position: absolute;\n right: 16px;\n width: 17px;\n top: 11px;\n cursor: pointer;\n }\n .search-loader {\n text-align: center;\n }\n\n @media only screen and (max-width: 767px) {\n &.w-50 {\n max-width: 280px;\n float: left;\n }\n\n ::i-block-chrome,\n .search-input-icon {\n top: 14px;\n }\n }\n`;\n\nexport default InputSearchWithRadius;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst InputFormField = styled.div`\n position: relative;\n .edit-field {\n position: absolute;\n right: 0;\n top: 0px;\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n\n .edit-icon {\n vertical-align: text-top;\n }\n }\n\n label {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n\n &.quartely-threshold {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n text-transform: capitalize;\n font-weight: 300;\n font-family: ${Theme.baseFontFamily};\n }\n }\n\n .deleteSocial {\n position: absolute;\n width: 16px;\n top: 11px;\n right: 6px;\n }\n\n .remove-field-icon {\n background: ${Theme.gray5};\n width: 18px;\n padding: 4px;\n border-radius: 50%;\n }\n .input-container {\n display: flex;\n width: 100%;\n\n .input-icon {\n padding: 12px 15px;\n border-radius: 2px 0 0 2px;\n width: 40px;\n margin-top: 7px;\n height: 40px;\n z-index: 2;\n font-size: 14px;\n text-align: center;\n color: ${Theme.gray85};\n background: #eaedf6;\n border-left: 1px solid ${Theme.gray45};\n border-top: 1px solid ${Theme.gray45} !important;\n border-bottom: 1px solid ${Theme.gray45};\n\n &.amc-dashboard {\n height: 25px;\n padding: 4px 0px;\n margin-top: 0;\n }\n\n &.end {\n border-left: 0;\n border-right: 1px solid ${Theme.gray45};\n border-top: 1px solid ${Theme.gray45} !important;\n border-bottom: 1px solid ${Theme.gray45};\n border-radius: 0px 2px 2px 0;\n }\n\n &.error-msg {\n border-left: 1px solid ${Theme.red};\n border-top: 1px solid ${Theme.red} !important;\n border-bottom: 1px solid ${Theme.red};\n background: ${Theme.lightRed};\n }\n }\n\n &.form-control-error {\n border: 1px solid ${Theme.red};\n background: ${Theme.lightRed};\n }\n }\n\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n .form-control {\n position: relative;\n color: ${Theme.gray85};\n border: 1px solid ${Theme.gray45};\n border-radius: 2px;\n padding: 5px 10px;\n display: block;\n width: 100%;\n height: 40px;\n background-color: ${(props) =>\n props.backgroundTransparent ? Theme.white : Theme.gray8};\n\n margin-top: 7px;\n font-family: ${Theme.baseFontFamily};\n font-size: ${Theme.extraNormal};\n\n &.amc-dashboard {\n height: 25px;\n margin-top: 0;\n }\n\n &.onetimeAgreementCompletionDate {\n height: 28px;\n padding: 0 2px;\n }\n\n &.dates {\n margin: 0px;\n background-color: ${Theme.white};\n }\n\n &.extra-space {\n padding: 4px 27px 4px 10px;\n }\n\n &::placeholder {\n color: ${Theme.gray40} !important;\n font-size: ${Theme.extraNormal};\n }\n\n &:focus {\n outline: none;\n border: 1px solid ${Theme.gray25};\n }\n\n &.form-control-error {\n border: 1px solid ${Theme.red};\n background: ${Theme.lightRed};\n }\n &.form-control-error__indicator {\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n }\n &.dsp-audience-new-query-label {\n background-color: ${Theme.white};\n color: ${Theme.gray90} !important;\n font-size: ${Theme.normal};\n font-weight: 500;\n\n &.form-control-error {\n border: 1px solid ${Theme.red};\n background: ${Theme.lightRed};\n }\n }\n &.amc-instance-table {\n &.disabled {\n opacity: 0.6;\n cursor: not-allowed !important;\n pointer-events: none !important;\n background-color: rgb(244, 246, 252) !important;\n }\n }\n }\n\n .css-14jk2my-container {\n background-color: ${Theme.gray8};\n margin-top: 7px;\n }\n\n .hide-icon {\n position: absolute;\n top: 34px;\n right: 14px;\n }\n .show-icon {\n position: absolute;\n top: 34px;\n right: 14px;\n }\n .hide-icons {\n position: absolute;\n top: 50px;\n right: 114px;\n cursor: pointer;\n }\n .profilephone-input-info {\n position: absolute;\n top: 36px;\n right: 15px;\n }\n\n .borderless-input {\n border: none !important;\n background: none !important;\n width: 80px;\n color: ${Theme.black};\n padding: 5px 0;\n margin-top: 0;\n padding-right: 15px;\n\n &::placeholder {\n color: #bfc5d2 !important;\n text-decoration: underline;\n }\n }\n`;\nexport default InputFormField;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst ContractInputSelect = styled.div`\n width: 100%;\n\n label {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n letter-spacing: 0.5px;\n text-transform: uppercase;\n font-weight: bold;\n }\n\n .css-2b097c-container {\n margin-top: 7px;\n .css-l9nmop-control {\n height: 40px !important;\n }\n\n .css-6595ef-control {\n border: 1px solid ${Theme.gray45};\n border-radius: 2px;\n background-color: ${Theme.gray8};\n margin-top: 7px;\n min-height: 40px !important;\n }\n\n .css-yk16xz-control {\n color: ${Theme.gray85};\n border: 1px solid ${Theme.gray45};\n border-radius: 2px;\n background-color: ${Theme.gray8};\n margin-top: 7px;\n min-height: 40px !important;\n font-size: ${Theme.extraNormal};\n font-weight: 500;\n cursor: pointer;\n z-index: 2;\n\n .css-g1d714-ValueContainer {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n }\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray85};\n font-weight: 500;\n font-size: ${Theme.extraNormal};\n text-transform: none;\n }\n\n .css-tlfecz-indicatorContainer {\n padding: 4px !important;\n }\n\n &.form-control-error {\n border: 1px solid ${Theme.red};\n background: ${Theme.lightRed};\n }\n }\n\n .css-1pahdxg-control {\n box-shadow: none;\n min-height: 40px;\n margin-top: 7px;\n background-color: ${Theme.gray8};\n border: 1px solid ${Theme.gray45} !important;\n border-radius: 2px;\n outline: none;\n font-size: ${Theme.extraNormal};\n font-weight: 500;\n cursor: pointer;\n z-index: 2;\n &.form-control-error {\n border: 1px solid ${Theme.red};\n background: ${Theme.lightRed};\n }\n &.form-control-error__control {\n height: 40px !important;\n }\n .css-1gtu0rj-indicatorContainer {\n padding: 4px !important;\n }\n }\n .css-1uccc91-singleValue {\n font-size: ${Theme.extraNormal};\n font-weight: 500;\n color: ${Theme.gray85};\n }\n .css-1wa3eu0-placeholder {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n }\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n }\n .css-26l3qy-menu {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n }\n`;\n\nexport default ContractInputSelect;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst DropDownStatus = styled.div`\n display: inline-flex;\n vertical-align: top;\n margin-top: 7px;\n\n .css-2b097c-container {\n width: 100%;\n color: ${Theme.gray6};\n font-size: ${Theme.extraNormal};\n cursor: pointer;\n\n .react-select__control {\n outline: none !important;\n box-shadow: none !important;\n border: none !important;\n .css-tlfecz-indicatorContainer {\n padding: 2px 8px;\n color: white !important;\n }\n .css-1gtu0rj-indicatorContainer {\n padding: 4px 8px;\n }\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray6};\n }\n }\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n /* .react-select__menu {\n width: 300px !important;\n width: 100%;\n .css-26l3qy-menu {\n max-width: 300px !important;\n width: 100%;\n }\n } */\n }\n &.dropdown-borderless {\n width: 100%;\n cursor: pointer;\n .css-1hwfws3 {\n padding: 0;\n -webkit-flex-direction: row-reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n }\n .css-yk16xz-control {\n font-size: ${Theme.normal};\n color: ${Theme.gray80} !important;\n min-height: 40px;\n cursor: pointer;\n border: none;\n background: none;\n outline: none;\n -webkit-justify-content: space-evenly;\n justify-content: space-evenly;\n .css-g1d714-ValueContainer {\n padding: 0;\n -webkit-flex-direction: row-reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray80} !important;\n }\n }\n .react-select-4-input {\n color: black !important;\n }\n }\n .css-1pahdxg-control {\n min-height: 40px;\n cursor: pointer;\n border: none;\n background: none;\n outline: none;\n box-shadow: none;\n .css-g1d714-ValueContainer {\n padding: 0;\n -webkit-flex-direction: row-reverse;\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray80} !important;\n }\n }\n .css-1gtu0rj-indicatorContainer {\n padding: 0px;\n }\n\n &.react-select__control {\n padding: 0 !important;\n border: none;\n background: none;\n outline: none !important;\n }\n }\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n .css-tlfecz-indicatorContainer {\n padding: 0 !important;\n color: white !important;\n }\n }\n @media only screen and (max-width: 991px) {\n &.customer-details {\n float: right;\n margin-top: -64px;\n }\n }\n @media only screen and (max-width: 767px) {\n &.customer-details {\n float: inherit;\n margin-top: 0;\n }\n }\n`;\n\nexport default DropDownStatus;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst ActionDropDown = styled.div`\n &.w-150 {\n width: 150px;\n }\n &.w-170 {\n max-width: 170px;\n }\n .css-2b097c-container {\n width: 100%;\n color: ${Theme.gray85} !important;\n font-size: ${Theme.extraNormal};\n font-weight: 500;\n font-family: ${Theme.baseMediumFontFamily};\n text-align: initial;\n\n .css-yk16xz-control {\n border: 1px solid #d5d8e1;\n border-radius: 2px;\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n font-weight: 500;\n padding: 1px 5px 1px 5px;\n min-height: 40px;\n cursor: pointer;\n\n .css-g1d714-ValueContainer {\n padding: 2px 4px;\n font-weight: 500px;\n cursor: pointer;\n\n .cross-icon {\n display: none;\n }\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray85} !important;\n }\n .react-select__placeholder {\n color: ${Theme.gray85} !important;\n }\n }\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray85} !important;\n }\n .react-select__placeholder {\n color: ${Theme.gray85} !important;\n }\n\n .css-tlfecz-indicatorContainer {\n padding: 5px;\n .css-6q0nyr-Svg {\n color: ${Theme.gray85} !important;\n }\n }\n }\n\n .css-1pahdxg-control {\n border: 1px solid #d5d8e1;\n border-radius: 2px;\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n padding: 1px 5px 1px 5px;\n box-shadow: none;\n outline: none;\n min-height: 40px;\n cursor: pointer;\n caret-color: transparent;\n\n .css-b8ldur-Input {\n color: ${Theme.black};\n margin: 0;\n }\n .css-g1d714-ValueContainer {\n padding: 2px 4px;\n }\n .remove-icon {\n display: none;\n }\n .css-1gtu0rj-indicatorContainer {\n padding: 5px;\n }\n\n .css-1wa3eu0-placeholder {\n color: ${Theme.black};\n }\n\n .css-1uccc91-singleValue {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85} !important;\n }\n }\n\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n .css-26l3qy-menu {\n border: none !important;\n outline: none !important;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n .react-select__option {\n padding: 15px 0 15px 10px;\n float: left;\n max-width: 99%;\n word-break: keep-all;\n }\n }\n @media only screen and (min-width: 767px) and (max-width: 825px) {\n .css-26l3qy-menu {\n width: 190px;\n }\n }\n }\n`;\n\nexport default ActionDropDown;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst OnBoardingBody = styled.div`\n padding: 60px 0px 0 0px;\n\n &.body-start {\n min-height: calc(100% - 70px);\n background: ${Theme.white};\n }\n\n .already-user-msg {\n background-color: ${Theme.lightOrange};\n border-radius: 5px;\n padding: 6px 10px;\n }\n\n &.body-white {\n background: ${Theme.white};\n padding-top: 0;\n min-height: calc(100% - 100px);\n }\n\n &.grey-bg {\n background: ${Theme.gray8};\n min-height: 100%;\n }\n\n &.grey-bg-asset {\n background: ${Theme.gray8};\n min-height: calc(100% - 70px);\n }\n\n .amazon-merchant-collapse {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: block;\n\n .completed-status {\n font-size: ${Theme.normal};\n font-weight: 600;\n .orange-check-collapse {\n vertical-align: middle;\n }\n }\n .orange-arrowdown-collapse {\n transform: rotate(90deg);\n }\n }\n }\n\n /* Override the collapse content height */\n\n /* .seller-collapse {\n height: 315px !important;\n }\n\n .vendor-collapse {\n height: 305px !important;\n } */\n\n .white-card-base {\n background-color: ${Theme.white};\n border-radius: 8px;\n max-width: 480px;\n width: 100%;\n margin: 0 auto;\n padding: 40px 40px 35px 40px;\n color: ${Theme.black};\n font-size: ${Theme.normal};\n box-shadow: 0px 5px 15px 0px #44444f33;\n margin-top: 60px;\n\n .lock-finish {\n padding-bottom: 22px;\n margin-top: -10px;\n }\n .account-steps {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n font-family: ${Theme.titleFontFamily};\n text-transform: uppercase;\n padding-bottom: 10px;\n }\n .page-heading {\n font-family: ${Theme.baseFontFamily};\n text-transform: initial;\n padding-bottom: 13px;\n line-height: 34px;\n }\n .copy-info {\n position: absolute;\n right: 0;\n top: 0;\n cursor: pointer;\n .copy-icon {\n width: 13px;\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n margin-right: 6px;\n }\n }\n .invitation-text {\n font-size: ${Theme.normal};\n max-width: 395px;\n margin: auto;\n line-height: 22px;\n width: 100%;\n }\n .information-text {\n font-weight: 300;\n padding-bottom: 13px;\n line-height: 22px;\n font-size: ${Theme.normal};\n position: relative;\n\n .hi-name {\n margin-bottom: 12px;\n text-transform: capitalize;\n }\n .sub-information {\n text-transform: initial;\n margin-bottom: 12px;\n color: ${Theme.black};\n }\n .note {\n font-style: italic;\n color: ${Theme.black};\n }\n .text-bold {\n font-weight: bold;\n }\n .completed-status {\n color: ${Theme.orange};\n .orange-check {\n width: 16px;\n margin-right: 5px;\n vertical-align: middle;\n }\n }\n .pending-status {\n color: ${Theme.gray35};\n .pending-icon {\n width: 14px;\n margin-right: 4px;\n vertical-align: middle;\n }\n }\n .view-details {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n position: absolute;\n right: 21px;\n top: 0;\n cursor: pointer;\n }\n }\n .complete-steps {\n font-family: ${Theme.titleFontFamily};\n\n span {\n font-family: ${Theme.baseFontFamily};\n }\n }\n .account-steps-check {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n padding-bottom: 10px;\n\n img {\n width: 14px;\n margin-right: 6px;\n }\n }\n }\n .reach-out {\n color: ${Theme.gray90};\n font-family: ${Theme.regularItalicFontFamily};\n font-weight: 600;\n /* font-style: italic; */\n font-size: ${Theme.normal};\n\n .reach-out-link {\n color: ${Theme.orange};\n font-family: ${Theme.regularItalicFontFamily};\n text-transform: lowercase;\n text-decoration: underline;\n }\n }\n .open-link {\n color: ${Theme.orange};\n font-size: ${Theme.extraSmall};\n }\n\n .info-text-gray {\n color: ${Theme.gray40};\n font-size: 14px;\n line-height: 22px;\n\n .video-link {\n font-size: 14px;\n color: ${Theme.orange};\n text-transform: initial;\n position: relative;\n }\n &.security {\n font-size: 12px;\n float: right;\n max-width: 345px;\n }\n &.security-lock span {\n font-size: 12px;\n vertical-align: text-bottom;\n margin-left: 4px;\n }\n }\n .link-url {\n font-size: 14px;\n color: ${Theme.orange};\n text-transform: initial;\n text-decoration: underline;\n }\n\n .label-title {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n text-transform: uppercase;\n font-weight: bold;\n font-family: ${Theme.titleFontFamily};\n .arrow-up {\n float: right;\n width: 19px;\n }\n }\n\n span {\n color: ${Theme.gray90};\n .social-media {\n width: 15px;\n margin-top: 3px;\n vertical-align: inherit;\n\n &.insta {\n width: 19px;\n margin-top: 3px;\n vertical-align: bottom;\n }\n &.linedin {\n width: 18px;\n margin-top: 3px;\n vertical-align: bottom;\n }\n &.face-book {\n width: 14px;\n }\n }\n }\n .hereby-acknowledge {\n line-height: 20px;\n font-size: ${Theme.extraSmall};\n }\n .reach-out-link {\n color: ${Theme.orange};\n font-family: ${Theme.regularItalicFontFamily};\n text-transform: lowercase;\n text-decoration: underline;\n }\n\n .billing-address {\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n font-weight: 600;\n }\n .payment-type {\n list-style-type: none;\n margin: 0;\n padding: 0;\n li {\n display: inline-block;\n margin-right: 46px;\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n &:last-child {\n margin-right: 0px;\n }\n }\n }\n .text-verify-account {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n line-height: 20px;\n }\n .upload-product-asset {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n /* display: -webkit-box; */\n padding: 10px 0 10px 0;\n border-bottom: 1px solid ${Theme.gray7};\n .product-asset-image {\n border: 2px solid #bfc5d2;\n border-radius: 6px;\n width: 36px;\n height: 36px;\n vertical-align: middle;\n float: left;\n margin-right: 15px;\n img {\n width: 32px;\n height: 32px;\n }\n }\n .image-title {\n float: left;\n font-size: ${Theme.extraNormal};\n .product-asset-title {\n font-size: ${Theme.normal};\n color: ${Theme.black};\n font-weight: 600;\n max-width: 340px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n position: relative;\n }\n .product-asset-subtitle {\n font-size: ${Theme.extraSmall};\n color: ${Theme.gray40};\n }\n }\n }\n }\n }\n\n .w-430 {\n max-width: 430px;\n margin: 0 auto;\n width: 100%;\n }\n .panel {\n padding: 0;\n max-width: 400px;\n margin-top: 65px;\n box-shadow: none;\n }\n .panel-unauthorize-header {\n margin-top: 190px;\n }\n .account-reassign {\n margin-top: 140px;\n }\n .gap-none {\n margin-top: 0;\n }\n @media only screen and (max-width: 517px) {\n .white-card-base {\n width: 90%;\n }\n }\n`;\n\nexport default OnBoardingBody;\n","import styled from 'styled-components';\n\nimport { WhiteCheckMark, CheckboxCheck } from '../theme/images';\n\nconst CheckBoxList = styled.div`\n &.reassign-brand {\n .checkbox label:before {\n display: inline-block;\n background-color: #556178;\n opacity: 0.6 !important;\n width: 40px;\n height: 40px;\n border-radius: 100%;\n position: absolute;\n top: 13px;\n left: 15px;\n }\n .checkbox input:checked ~ label:before {\n background-image: url(${WhiteCheckMark});\n background-repeat: no-repeat;\n z-index: 2;\n background-position-y: 12px;\n background-position-x: 12px;\n content: '';\n }\n }\n\n .checkbox input:checked ~ label:before {\n background-image: url(${CheckboxCheck});\n background-repeat: no-repeat;\n z-index: 2;\n background-position-y: 8px;\n background-position-x: 8px;\n content: '';\n }\n .checkbox input {\n display: none;\n }\n\n .checkbox label:before {\n display: inline-block;\n background-color: #ff5933;\n opacity: 0.800000011920929;\n border-radius: 100%;\n width: 48px;\n position: absolute;\n top: 21px;\n left: 15px;\n height: 48px;\n }\n\n .checkbox {\n width: 100%;\n }\n .checkbox label {\n cursor: pointer;\n }\n .checkbox label:hover::before {\n background-color: $orange-color;\n opacity: 0.800000011920929;\n }\n\n .disableCheck {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .react-select__option--is-focused:not(.react-select__option--is-selected) {\n background-color: #f9faff;\n }\n`;\nexport default CheckBoxList;\n","import React from 'react';\n\nimport styled from 'styled-components';\n\nimport Theme from '../theme/Theme';\nimport { ArrowUp } from '../theme/images';\n\nexport default function BackToTop() {\n return (\n \n
\n window.scrollTo({ top: 0, behavior: 'smooth' })}\n role=\"presentation\">\n {' '}\n \"\" Back to top\n
\n \n
\n );\n}\n\nconst ScrollToTop = styled.div`\n .back-to-top {\n position: absolute;\n bottom: 0;\n right: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 9;\n padding: 5px 10px;\n width: 135px;\n background: ${Theme.gray15};\n display: block;\n border-radius: 5px;\n border: 1px solid ${Theme.gray7};\n color: ${Theme.gray90};\n font-size: ${Theme.title};\n font-weight: 600;\n line-height: 39px;\n margin-top: 30px;\n cursor: pointer;\n\n img {\n width: 19px;\n vertical-align: text-top;\n margin-right: 2px;\n }\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nexport const WhiteCard = styled.div`\n background-color: ${Theme.white};\n border-radius: 15px;\n padding: 20px;\n position: relative;\n\n .dps-Audience-Table {\n min-height: 500px;\n }\n\n @media only screen and (min-width: 768px) {\n // horizontal scroll bar\n .dps-Audience-Table {\n overflow: auto;\n\n ::-webkit-scrollbar {\n width: 4px;\n height: 3px;\n }\n ::-webkit-scrollbar-track {\n background-color: ${Theme.white};\n }\n ::-webkit-scrollbar-thumb {\n background-color: ${Theme.gray11};\n }\n\n max-height: calc(100vh - 500px);\n overflow: auto;\n }\n }\n\n .DSP-audience-label {\n display: inline-flex;\n\n .add-new-query {\n padding-top: 10px;\n margin-left: 10px;\n position: relative;\n color: ${Theme.gray40};\n cursor: pointer;\n .add-icon {\n font-size: ${Theme.extraSmall};\n color: ${Theme.orange};\n margin-right: 7px;\n }\n }\n\n @media only screen and (min-width: 766px) {\n .new-query-div {\n position: absolute;\n background-color: #f4f6fc;\n color: ${Theme.gray90} !important;\n padding: 20px;\n min-width: 400px;\n left: 230px;\n top: 30px;\n z-index: 9999;\n }\n }\n }\n\n @media only screen and (max-width: 766px) {\n .new-query-div {\n position: absolute;\n background-color: #f4f6fc;\n color: ${Theme.gray90} !important;\n padding: 20px;\n z-index: 9999;\n left: 0px;\n min-width: 300px;\n top: 30px;\n }\n }\n\n .DSP-audience-new-query-footer {\n .letter-count {\n float: left;\n }\n .action-btn {\n float: right;\n }\n }\n\n .COS-view-label {\n padding-top: 10px;\n color: ${Theme.black};\n font-weight: bold;\n }\n\n &.card-with-border {\n border: 1px solid ${Theme.gray11};\n border-radius: 8px;\n padding: 15px;\n }\n\n .creative-upload {\n background: ${Theme.gray8};\n bordertopleftradius: 8px;\n bordertoprightradius: 8px;\n padding: 15px;\n }\n\n .creative-add-project {\n position: absolute;\n background: ${Theme.gray8};\n input {\n height: 50px;\n border: none;\n background: ${Theme.gray8};\n &:focus {\n outline: none !important;\n border-width: 0px !important;\n border: none !important;\n }\n }\n }\n\n &.selected-card {\n border: 0.1rem dotted #bfc5d2;\n }\n\n .green {\n color: ${Theme.lighterGreen};\n }\n &.header-table {\n border-bottom-left-radius: 0px !important;\n border-bottom-right-radius: 0px !important;\n padding-bottom: 0;\n }\n &.table-card {\n padding: 0 20px;\n border-top-left-radius: 0px !important;\n border-top-right-radius: 0px !important;\n }\n\n &.fix-height {\n flex-wrap: wrap;\n flex: initial;\n height: 100%;\n }\n\n .text-extra-small {\n font-size: ${Theme.textExtraSmall};\n color: ${Theme.black};\n }\n\n .text-small-gray {\n font-size: ${Theme.extraSmall};\n color: ${Theme.gray40};\n }\n\n .contract-status {\n float: left;\n max-width: 80%;\n width: 100%;\n word-break: keep-all;\n &.one-time-service {\n max-width: 75%;\n }\n }\n\n .company-contract-height {\n max-height: 145px;\n overflow: auto;\n }\n .bbe-goals-partners {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: inline-block;\n margin-right: 30px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n .edit-details {\n position: absolute;\n right: 23px;\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n top: 22px;\n cursor: pointer;\n\n &.edit-brand-details {\n top: 20px;\n }\n img {\n width: 16px;\n margin-right: 4px;\n vertical-align: text-top;\n }\n @media only screen and (max-width: 1170px) {\n right: 8px;\n img {\n width: 14px;\n margin-right: 2px;\n }\n }\n }\n\n &.left-border {\n padding: 25px 25px 25px 0;\n }\n .green-text {\n color: ${Theme.green};\n font-size: ${Theme.extraMedium};\n }\n .large-size {\n font-size: ${Theme.title};\n }\n .red-text {\n color: ${Theme.red};\n }\n\n .orange-text {\n color: ${Theme.red};\n cursor: pointer;\n\n .right-arrow-icon {\n vertical-align: middle;\n margin-left: 4px;\n width: 15px;\n\n &.green {\n color: ${Theme.lighterGreen};\n }\n }\n }\n .monthly-dsp-budget {\n color: ${Theme.red};\n font-size: ${Theme.normal};\n font-weight: 600;\n\n .on-track {\n color: ${Theme.lighterGreen};\n }\n\n .currency-amount {\n color: ${Theme.black};\n }\n .right-arrow-icon {\n vertical-align: middle;\n\n &.green {\n color: ${Theme.lighterGreen};\n }\n }\n\n .dot {\n background-color: ${Theme.gray35};\n border-radius: 50%;\n width: 3px;\n height: 3px;\n position: absolute;\n top: 26px;\n margin-left: 2px;\n }\n }\n\n .copy-info {\n position: relative;\n .copy-text {\n display: none;\n }\n\n .label {\n color: ${Theme.gray40};\n text-transform: uppercase;\n line-height: 22px;\n font-family: ${Theme.titleFontFamily};\n font-size: 11px;\n margin-bottom: 3px;\n }\n .label-info {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n }\n\n &:hover {\n cursor: pointer;\n .copy-text {\n display: block;\n position: absolute;\n right: 0px;\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n cursor: pointer;\n top: 28px;\n img {\n width: 12px;\n margin-right: 4px;\n top: 10px;\n }\n }\n }\n }\n .label {\n color: ${Theme.gray40};\n text-transform: uppercase;\n line-height: 22px;\n font-family: ${Theme.titleFontFamily};\n font-size: ${Theme.verySmall};\n margin-bottom: 3px;\n .info-icon {\n vertical-align: middle;\n width: 14px;\n margin-left: 8px;\n cursor: pointer;\n }\n }\n\n .label-info-medium {\n color: ${Theme.black};\n font-size: 18px;\n font-weight: normal;\n }\n\n .label-info {\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n\n .master-card-icon {\n width: 20px;\n margin-right: 2px;\n vertical-align: top;\n }\n .ACH-status {\n background-color: #f1f1f5;\n border-radius: 5px;\n padding: 4px 10px 3px 4px;\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n margin-left: 5px;\n .checked-mark-icon {\n width: 13px;\n margin-right: 2px;\n vertical-align: text-top;\n }\n .bell-icon {\n width: 16px;\n margin-right: 2px;\n vertical-align: text-top;\n }\n }\n .unverified {\n background-color: ${Theme.lightPink};\n }\n .pending {\n background-color: ${Theme.extraLightYellow};\n }\n }\n\n .phone-number {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n margin-top: 4px;\n }\n\n .dropdown-content-status {\n display: none;\n position: absolute;\n width: 220px;\n box-shadow: ${Theme.commonShadow};\n padding: 0px;\n z-index: 2;\n text-align: left;\n background: ${Theme.white};\n border: 1px solid ${Theme.gray9};\n border-radius: 8px;\n margin-top: 8px;\n left: 20px;\n\n li {\n list-style-type: none;\n font-size: ${Theme.extraMedium};\n color: ${Theme.black};\n padding: 15px;\n cursor: pointer;\n width: 100%;\n text-align: left;\n\n &:hover {\n background: ${Theme.gray8};\n }\n }\n }\n\n .increase-rate {\n color: ${Theme.lighterGreen};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n .green-arrow {\n width: 14px;\n margin-left: 0;\n margin-right: 3px;\n vertical-align: middle;\n }\n\n .red-arrow {\n width: 14px;\n transform: rotate(180deg);\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n &.grey {\n color: ${Theme.gray40};\n }\n &.gray80 {\n color: ${Theme.gray80};\n }\n &.small-font {\n font-size: 12px;\n font-weight: 500;\n }\n }\n\n .left-details-card {\n padding: 0;\n margin: 0;\n list-style-type: none;\n li {\n margin-bottom: 23px;\n .left-details {\n color: ${Theme.black};\n padding: 0 0px 0px 25px;\n border-left: 3px solid ${Theme.white};\n img {\n width: 24px;\n margin-right: 15px;\n vertical-align: middle;\n &.file-contract {\n width: 28px;\n }\n }\n .collapse-arrow-icon {\n width: 25px;\n height: 25px;\n position: absolute;\n top: -27px;\n right: -12px;\n }\n &:hover {\n border-left: 3px solid ${Theme.orange};\n cursor: pointer;\n font-family: ${Theme.titleFontFamily};\n }\n &.active {\n border-left: 3px solid ${Theme.orange};\n cursor: pointer;\n font-family: ${Theme.titleFontFamily};\n }\n }\n &:last-child {\n margin-bottom: 0;\n }\n .sub-category {\n padding: 0;\n margin: 0;\n list-style-type: none;\n li.sub-category-details {\n font-size: ${Theme.normal};\n padding: 25px 0 0 80px;\n color: ${Theme.black};\n margin: 0;\n &.active {\n font-weight: bold;\n }\n &:hover {\n cursor: pointer;\n font-family: ${Theme.titleFontFamily};\n }\n }\n }\n }\n }\n\n .decrease-rate {\n color: ${Theme.red};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n .red-arrow {\n width: 14px;\n transform: rotate(180deg);\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n\n .green-arrow {\n width: 14px;\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n &.grey {\n color: ${Theme.gray40};\n }\n\n &.gray80 {\n color: ${Theme.gray80};\n }\n &.small-font {\n font-size: 12px;\n font-weight: 500;\n }\n }\n\n .sub-category-mobile-view {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n display: inline-block;\n margin-right: 20px;\n }\n }\n\n .view-all-list {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n cursor: pointer;\n\n img {\n width: 16px;\n margin-left: 2px;\n vertical-align: bottom;\n }\n }\n .add-note-section {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n text-align: center;\n\n .red-chat-icon {\n width: 16px;\n vertical-align: middle;\n margin-right: 2px;\n }\n }\n\n .recurring-contact {\n padding: 0;\n margin: 0;\n list-style-type: none;\n display: inline-block;\n\n li {\n display: inline-block;\n margin-right: 18px;\n position: relative;\n\n &:last-child {\n margin-right: 0;\n }\n .dot {\n background-color: #8798ad;\n border-radius: 50%;\n width: 3px;\n height: 3px;\n position: absolute;\n top: 7px;\n margin-left: -10px;\n }\n\n .days-block {\n background: ${Theme.lighterOrange};\n padding: 5px 10px;\n border-radius: 5px;\n color: ${Theme.orange};\n font-size: ${Theme.extraNormal};\n\n .clock-icon {\n width: 14px;\n margin-right: 5px;\n vertical-align: text-top;\n }\n }\n }\n }\n #revenue_chart {\n width: 100%;\n position: relative;\n top: -16px;\n right: -19px;\n }\n\n .DSP-contract-retainer {\n .label {\n color: ${Theme.gray40};\n text-transform: uppercase;\n line-height: 22px;\n font-family: ${Theme.titleFontFamily};\n font-size: ${Theme.verySmall};\n margin-bottom: 1px;\n }\n span {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n /* font-weight: 600; */\n }\n }\n\n .selected-list {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n background: ${Theme.gray8};\n color: ${Theme.gray85};\n padding: 5px 10px;\n border-radius: 5px;\n display: inline-block;\n margin-right: 10px;\n margin-bottom: 7px;\n }\n }\n\n &.activity-card {\n min-height: 530px;\n }\n\n .number-rate {\n color: ${Theme.gray80};\n font-size: 26px;\n word-break: break-all;\n font-family: ${Theme.baseFontFamily};\n }\n .perentage-value {\n color: ${Theme.lighterGreen};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n margin-left: -2px;\n\n &.down {\n color: ${Theme.red};\n }\n\n &.grey {\n color: ${Theme.gray40};\n }\n\n .red-arrow {\n width: 14px;\n transform: rotate(180deg);\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n .green-arrow {\n width: 14px;\n vertical-align: bottom;\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n\n img {\n width: 14px;\n }\n }\n\n .vs {\n color: ${Theme.gray40};\n font-size: ${Theme.extraMedium};\n }\n\n .dsp-spent-date {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n display: inline-block;\n margin-right: 20px;\n }\n }\n .rechart-item {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: inline-block;\n margin-right: 25px;\n vertical-align: middle;\n\n &:last-child {\n margin-right: none;\n }\n\n .weeks {\n display: flex;\n align-items: center;\n flex-direction: row;\n }\n\n .dashed-line {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: inline-block;\n margin-right: 3px;\n width: 6px;\n height: 2px;\n margin-bottom: 3px;\n\n &:last-child {\n margin-right: 6px;\n }\n }\n }\n\n .circle {\n width: 14px;\n height: 2px;\n margin-right: 6px;\n }\n .orange {\n background: ${Theme.baseColor};\n }\n .adSales {\n background: #0045b4;\n }\n .adSpend {\n background: #8c54ff;\n }\n .salesAdSpend {\n background: #89a43c;\n }\n .adConversion {\n background: #30a8bd;\n }\n .impressions {\n background: #d6a307;\n }\n .adCos {\n background: #e05d37;\n }\n .adRoas {\n background: #e05d37;\n }\n .adClicks {\n background: #c84ec6;\n }\n .adClickRate {\n background: #a04848;\n }\n\n .revenue,\n .orderedRevenue,\n .shippedCOGs {\n background: #0045b4;\n }\n .unitsSold,\n .glanceViews {\n background: #8c54ff;\n }\n .traffic {\n background: #30a8bd;\n }\n .conversion,\n .orderedUnits,\n .shippedUnits {\n background: #d6a307;\n }\n\n .dspImpressions {\n background: #0045b4;\n }\n .dspSpend {\n background: #8c54ff;\n }\n .dspTotalProductSales {\n background: #30a8bd;\n }\n .dspTotalRoas {\n background: #d6a307;\n }\n .dspTotalDpvr {\n background: #e05d37;\n }\n .dspTtlNewBrandPurchases {\n background: #89a43c;\n }\n .dspProductSales {\n background: #c84ec6;\n }\n .dspRoas {\n background: #a04848;\n }\n\n .costPerClick {\n background: #89a43c;\n }\n\n .revenueTotal {\n background: #0045b4;\n }\n .revenueOrganic {\n background: #74b035;\n }\n .revenuePpc {\n background: #c84ec6;\n }\n .revenueDsp {\n background: #e05d37;\n }\n\n .sponsoredAdSpend {\n background: #89a43c;\n }\n\n .adSpendTotal {\n background: #33beffd6;\n }\n\n .tacos,\n .conversionRate {\n background: #00be8e;\n }\n\n .adSpendPpc {\n background: #a47b40d6;\n }\n\n .adSpendDsp {\n background: #52d045d6;\n }\n\n .darkGray {\n background: ${Theme.gray35};\n }\n .gray {\n background: ${Theme.gray25};\n }\n .black {\n background: ${Theme.black};\n }\n .label-block {\n border-radius: 2px;\n width: 14px;\n height: 14px;\n margin-right: 8px;\n }\n span {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n }\n }\n }\n .speed-rate {\n font-size: ${Theme.primaryTitleFontSize};\n color: ${Theme.black};\n margin-top: 75px;\n margin-bottom: 70px;\n }\n\n .average {\n color: ${Theme.black};\n font-size: ${Theme.primaryTitleFontSize};\n position: absolute;\n left: 0;\n right: 0;\n top: 150px;\n text-align: center;\n\n .out-off {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n margin-top: -6px;\n }\n }\n\n .last-update {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n bottom: 15px;\n left: 21px;\n position: absolute;\n }\n .seller-health {\n color: ${Theme.gray40};\n font-size: ${Theme.primaryTitleFontSize};\n\n &.positive {\n color: ${Theme.lighterGreen};\n }\n }\n .seller-update {\n color: ${Theme.gray40};\n font-size: 14px;\n }\n\n .solid-icon {\n margin-right: 15px;\n vertical-align: middle;\n float: left;\n }\n .image-title {\n float: left;\n font-size: ${Theme.extraNormal};\n }\n\n .service-icon {\n margin-right: 10px;\n vertical-align: middle;\n }\n\n .social-media-icons {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n display: inline-block;\n vertical-align: middle;\n padding-right: 8px;\n\n .social-media {\n width: 23px;\n }\n\n .social-icon-width {\n width: 27px;\n }\n\n &:last-child {\n padding-right: 0;\n }\n }\n }\n\n .invoicesAmount {\n color: ${Theme.black};\n font-size: ${Theme.primaryTitleFontSize};\n }\n\n .creative-project-download {\n display: flex;\n align-items: center;\n float: right;\n justify-content: flex-end;\n }\n\n @media only screen and (min-width: 1920px) {\n .company-label-info {\n margin-top: 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n span {\n margin-left: 15px;\n max-width: 210px;\n\n &.mid-width {\n max-width: 250px;\n width: 100%;\n\n &.website {\n margin-left: 20px;\n }\n }\n }\n }\n }\n @media only screen and (min-width: 1600px) {\n .contract-status {\n max-width: 85%;\n\n &.one-time-service {\n max-width: 80%;\n }\n }\n }\n @media only screen and (max-width: 1350px) and (min-width: 991px) {\n .average {\n font-size: 18px;\n top: 165px;\n }\n }\n @media only screen and (max-width: 1150px) {\n .company-label-info {\n margin-top: 10px;\n\n &:first-child {\n margin-left: 0;\n }\n span {\n margin-left: 15px;\n max-width: 70px;\n\n &.mid-width {\n max-width: 70px;\n width: 100%;\n }\n }\n }\n .contract-status {\n max-width: 70%;\n &.one-time-service {\n max-width: 65%;\n }\n }\n }\n @media only screen and (max-width: 991px) {\n .company-label-info {\n &:first-child {\n margin-left: 0;\n }\n\n .brand-label {\n margin-top: 10px;\n width: 100px;\n }\n span {\n margin-left: 15px;\n max-width: 210px;\n margin-top: 10px;\n\n &.mid-width {\n max-width: 230px;\n width: 100%;\n width: 100px;\n }\n\n &.company-size {\n margin-left: 18px;\n }\n }\n }\n .dsp-spent-date {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n display: inline-block;\n margin-right: 20px;\n\n .label-range {\n font-size: 16px;\n }\n }\n }\n .increase-rate {\n .green-arrow {\n margin-left: 0;\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .days-container {\n margin: 0 auto;\n float: none !important;\n }\n .rechart-item {\n margin: 0 auto;\n text-align: center;\n padding-top: 10px;\n }\n .bbpercent-graph-label {\n text-align: left !important;\n }\n }\n @media only screen and (max-width: 460px) {\n .brand-name {\n .company-status {\n white-space: nowrap;\n }\n }\n }\n\n @media only screen and (max-width: 407px) {\n .company-label-info {\n margin-top: 10px;\n\n span {\n margin-left: 5px;\n max-width: 117px;\n margin-top: 10px;\n\n &.mid-width {\n width: 100px;\n\n &.website {\n margin-left: 5px;\n }\n }\n\n &.company-size {\n margin-left: 5px;\n }\n }\n }\n }\n`;\nexport default WhiteCard;\n","import styled from 'styled-components';\n\nimport Theme from '../theme/Theme';\n\nconst HeaderDownloadFuntionality = styled.div`\n position: sticky;\n background-color: ${Theme.white};\n padding: 26px 0 20px 0;\n width: 100%;\n border-bottom: 1px solid ${Theme.gray5};\n min-height: 70px;\n color: ${Theme.black};\n font-size: ${Theme.normal};\n z-index: 99;\n top: 0px;\n\n &.border-none {\n border-bottom: 0;\n }\n .header-title {\n font-family: ${Theme.titleFontFamily};\n font-size: 13px;\n letter-spacing: 1.21px;\n text-transform: uppercase;\n &.large-header-title {\n font-size: 20px;\n font-weight: 600;\n margin-left: 25px;\n }\n }\n\n .contract-download-nav {\n list-style-type: none;\n padding: 0;\n margin: 0;\n text-align: end;\n\n li {\n display: inline-block;\n vertical-align: middle;\n\n &.download-pdf {\n cursor: pointer;\n font-size: ${Theme.extraNormal};\n .download-pdf-link {\n color: ${Theme.black};\n }\n\n .download-pdf-icon {\n width: 20px;\n margin-right: 7px;\n vertical-align: text-top;\n\n &.upload-icon {\n transform: rotate(180deg);\n }\n }\n }\n\n .header-icon {\n vertical-align: text-top;\n margin-right: 3px;\n width: 18px;\n cursor: pointer;\n }\n .divide-arrow {\n background-color: ${Theme.gray4};\n width: 1px;\n height: 32px;\n border: 1px solid ${Theme.gray4};\n margin: 0 18px;\n }\n .assets-trash-icon {\n vertical-align: bottom;\n right: 21px;\n width: 20px;\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .contract-download-nav {\n text-align: center;\n border-top: 1px solid ${Theme.gray5};\n margin-top: 20px;\n padding-top: 15px;\n li {\n .remove-cross-icon {\n position: absolute;\n top: -74px;\n right: 14px;\n }\n .hide-mobile {\n display: none;\n }\n }\n }\n }\n @media only screen and (max-width: 610px) {\n .header-title {\n &.large-header-title {\n margin-left: 10px;\n }\n }\n }\n`;\n\nexport default HeaderDownloadFuntionality;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst Tabs = styled.div`\n overflow: auto;\n ::-webkit-scrollbar {\n width: 5px;\n height: 3px;\n }\n ::-webkit-scrollbar-track {\n background-color: ${Theme.white};\n }\n ::-webkit-scrollbar-thumb {\n background-color: ${Theme.gray11};\n }\n .tabs {\n list-style-type: none;\n position: relative;\n text-align: left;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid ${Theme.gray11};\n\n &.border-none {\n border-bottom: none !important;\n }\n\n &.scrollable-container {\n border-bottom: 1px solid ${Theme.gray11};\n display: -webkit-inline-box;\n width: 100%;\n\n .global-tab {\n &:first-child {\n margin-left: 16px;\n }\n }\n }\n &.border-none {\n border-bottom: none;\n }\n li {\n display: inline-block;\n font-weight: normal;\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n font-family: ${Theme.baseFontFamily};\n cursor: pointer;\n padding: 0 15px 15px 15px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.a {\n text-decoration: none;\n }\n\n &.active {\n border-bottom: 3px solid ${Theme.orange};\n color: ${Theme.black};\n font-family: ${Theme.titleFontFamily};\n }\n &.selected {\n background-color: #ff5933;\n color: #ffff;\n border-radius: 7px;\n padding-top: 11px;\n }\n\n &.scrollable-tab {\n display: block;\n font-size: ${Theme.normal};\n }\n &.small-font-size {\n font-size: 14px;\n }\n\n &.modal-tab {\n font-size: ${Theme.extraNormal};\n padding: 0 15px 10px 15px;\n }\n &.orange-text-label {\n font-size: 12px;\n color: ${Theme.orange};\n font-family: ${Theme.titleFontFamily};\n text-transform: uppercase;\n }\n &.onboarding-gray {\n color: ${Theme.gray35};\n }\n }\n &.sub-tabs {\n li {\n padding: 10px 15px;\n border-radius: 6px;\n &.active {\n background: ${Theme.orange};\n color: ${Theme.white};\n font-family: ${Theme.titleFontFamily};\n }\n }\n }\n }\n .grey-box-tab {\n list-style-type: none;\n position: relative;\n text-align: left;\n margin: 0;\n padding: 0;\n border-bottom: none;\n\n .account-type {\n background-color: #f4f6fc;\n border: 1px solid #d5d8e1;\n border-radius: 2px;\n padding: 6px 14px;\n color: #2e384d;\n font-size: 14px;\n margin-right: 0;\n font-family: ${Theme.baseFontFamily};\n display: inline-block;\n cursor: pointer;\n\n &.active {\n background-color: #ffffff;\n border: 1px solid #2e384d;\n }\n }\n }\n\n #playbook-tabs {\n li {\n padding: 7px 15px 15px 15px;\n }\n }\n @media only screen and (max-width: 768px) {\n .tabs {\n li {\n margin-right: 5px;\n padding: 10px 10px 10px 10px;\n font-size: ${Theme.normal};\n }\n }\n .grey-box-tab {\n .account-type {\n padding: 6px 10px;\n }\n }\n }\n @media screen and (max-width: 991px) {\n #playbook-tabs {\n li {\n padding: 8px 13px 15px 13px;\n }\n }\n }\n`;\n\nexport default Tabs;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { bool, func, string } from 'prop-types';\n\nimport Theme from '../theme/Theme';\n\nconst Status = ({\n label,\n className,\n backgroundColor,\n pointColor,\n labelColor,\n icon,\n marginBottom,\n marginTop,\n width,\n iconType,\n fontIcon,\n type,\n cursor,\n handleOnClick,\n iconAfterLabel = false,\n}) => {\n return (\n handleOnClick()}\n >\n {pointColor ? (\n \n ) : icon ? (\n iconType ? (\n <>\n {iconType}\n \n ) : fontIcon ? (\n <>\n \n \n ) : (\n ''\n )\n ) : null}\n \n {label ? label?.charAt(0)?.toUpperCase() + label?.slice(1) : ''}\n {' '}\n {iconAfterLabel ? (\n \n ) : null}\n \n \n );\n};\n\nexport default Status;\n\nconst StatusWrapper = styled.div`\n float: left;\n border-radius: 5px;\n width: fit-content;\n min-width: 70px;\n padding: 5px 10px;\n margin-top: 8px;\n display: flex;\n align-content: center;\n justify-content: center;\n align-items: center;\n flex-wrap: wrap;\n\n .status_symbol {\n border-radius: 100%;\n width: 8px;\n height: 8px;\n z-index: 20 !important;\n }\n\n &.capluse-status {\n border-radius: 12px;\n float: initial;\n font-size: ${Theme.extraSmall};\n color: ${Theme.gray80};\n .status_text {\n font-size: ${Theme.extraSmall} !important;\n }\n }\n span.status_text {\n margin-left: ${(props) => (props.pointColor ? 8 : 0)}px;\n font-size: ${Theme.extraNormal};\n font-weight: 500;\n text-align: center;\n }\n .orange-clock-icon {\n width: 12px;\n margin-right: 7px;\n }\n .status-bold {\n text-transform: uppercase;\n font-size: ${Theme.verySmall} !important;\n }\n`;\n\nStatus.defaultProps = {\n iconAfterLabel: false,\n backgroundColor: Theme.lightYellow,\n className: '',\n labelColor: Theme.black,\n pointColor: '',\n icon: '',\n label: '',\n marginBottom: '',\n marginTop: '',\n width: '',\n iconType: '',\n fontIcon: '',\n type: '',\n cursor: 'default',\n handleOnClick: () => {},\n};\n\nStatus.propTypes = {\n iconAfterLabel: bool,\n label: string,\n backgroundColor: string,\n pointColor: string,\n className: string,\n labelColor: string,\n icon: string,\n marginBottom: string,\n marginTop: string,\n width: string,\n iconType: string,\n fontIcon: string,\n type: string,\n cursor: string,\n handleOnClick: func,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport { components } from 'react-select';\nimport { shape, string } from 'prop-types';\n\nconst DropdownOptions = ({ ...props }) => {\n const { Option } = components;\n\n const { data } = props;\n\n /* ********** Main return statement of this component ********** */\n return (\n \n );\n};\n\nexport default DropdownOptions;\n\nDropdownOptions.defaultProps = {\n data: {},\n};\n\nDropdownOptions.propTypes = {\n data: shape({ label: string, sub: string }),\n};\n","import React from 'react';\n\n// third party imports\nimport { components } from 'react-select';\nimport { shape, string } from 'prop-types';\n\nconst DropdownSingleValue = ({ ...props }) => {\n const { SingleValue } = components;\n const { data } = props;\n\n /* ********** Main return statement of this component ********** */\n return (\n \n
\n {data?.label}\n
{data?.sub}
\n
\n
\n );\n};\n\nexport default DropdownSingleValue;\nDropdownSingleValue.defaultProps = {\n data: {},\n};\n\nDropdownSingleValue.propTypes = {\n data: shape({ label: string, sub: string }),\n};\n","import React from 'react';\n\nimport { bool, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { components } from 'react-select';\n\nconst DropDownIndicator = ({ selectProps, indicatorColor, ...props }) => {\n return (\n components.DropdownIndicator && (\n \n \n \n )\n );\n};\n\nexport default DropDownIndicator;\n\nDropDownIndicator.defaultProps = {\n indicatorColor: '#000',\n};\n\nDropDownIndicator.propTypes = {\n selectProps: shape({\n menuIsOpen: bool,\n }).isRequired,\n indicatorColor: string,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { DateRange } from 'react-date-range';\nimport { enGB } from 'react-date-range/src/locale';\nimport { bool, func, shape, string, instanceOf, arrayOf } from 'prop-types';\n\nimport ModalBox from './ModalBox';\nimport Button from './Button';\nimport Theme from '../theme/Theme';\nimport { CloseIcon } from '../theme/images';\n\nconst todaysDate = new Date();\ntodaysDate.setDate(todaysDate.getDate() - 2);\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '420px ',\n width: '100% ',\n minHeight: '390px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nconst CustomDateModal = ({\n id,\n isOpen,\n style,\n onClick,\n onChange,\n onApply,\n range,\n title,\n currentDate,\n minDate,\n ...props\n}) => {\n return (\n \n \n \n
\n

{title}

\n \n
\n \n Apply\n \n
\n
\n
\n \n );\n};\n\nexport default CustomDateModal;\n\nCustomDateModal.defaultProps = {\n id: '',\n isOpen: false,\n onClick: () => {},\n onChange: () => {},\n onApply: () => {},\n style: {},\n title: 'Select Date Range',\n range: [\n {\n startDate: todaysDate,\n endDate: todaysDate,\n key: 'adSelection',\n },\n ],\n currentDate: todaysDate,\n minDate: new Date(),\n};\n\nCustomDateModal.propTypes = {\n id: string,\n onClick: func,\n onChange: func,\n onApply: func,\n isOpen: bool,\n style: shape({}),\n range: arrayOf(Array),\n title: string,\n currentDate: instanceOf(Date),\n minDate: instanceOf(Date),\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { Calendar } from 'react-date-range';\nimport { enGB } from 'react-date-range/src/locale';\nimport {\n bool,\n func,\n shape,\n string,\n instanceOf,\n arrayOf,\n oneOfType,\n} from 'prop-types';\n\nimport ModalBox from './ModalBox';\nimport Button from './Button';\nimport Theme from '../theme/Theme';\nimport { CloseIcon } from '../theme/images';\n\nconst todaysDate = new Date();\ntodaysDate.setDate(todaysDate.getDate() - 2);\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '420px ',\n width: '100% ',\n minHeight: '390px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nconst CustomSingleDateModal = ({\n id,\n isOpen,\n style,\n onClick,\n onChange,\n onApply,\n selectedDate,\n title,\n currentDate,\n color,\n minDate,\n ...props\n}) => {\n return (\n \n \n \n
\n

{title}

\n \n
\n \n Apply\n \n
\n
\n
\n \n );\n};\n\nexport default CustomSingleDateModal;\n\nCustomSingleDateModal.defaultProps = {\n id: '',\n isOpen: false,\n title: 'Select Date Range',\n color: Theme.orange,\n style: {},\n currentDate: todaysDate,\n minDate: null,\n onClick: () => {},\n onChange: () => {},\n onApply: () => {},\n};\n\nCustomSingleDateModal.propTypes = {\n id: string,\n title: string,\n color: string,\n isOpen: bool,\n onClick: func,\n onChange: func,\n onApply: func,\n minDate: instanceOf(Date),\n currentDate: instanceOf(Date),\n style: shape({}),\n selectedDate: oneOfType([arrayOf(Array), shape({})]).isRequired,\n};\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst CustomDateRange = styled.div`\n .react-datepicker {\n font-size: 16px !important;\n font-family: ${Theme.baseFontFamily}!important;\n border: none !important;\n width: 100% !important;\n\n .react-datepicker__triangle {\n position: absolute;\n width: 100% !important;\n left: 50px;\n }\n\n .react-datepicker__month-container {\n width: 100% !important;\n float: left;\n .react-datepicker__header {\n text-align: center;\n font-size: 16px !important;\n padding: 14px 0 !important;\n position: relative;\n border: none !important;\n background: transparent !important;\n }\n }\n /* .react-datepicker__month .react-datepicker__month-text,\n .react-datepicker__month .react-datepicker__quarter-text {\n display: inline-block;\n width: 4rem;\n margin: 5px 0;\n } */\n .react-datepicker__month-text:hover,\n .react-datepicker__quarter-text:hover {\n background-color: transparent;\n }\n .react-datepicker__month .react-datepicker__month-text,\n .react-datepicker__month .react-datepicker__quarter-text {\n display: inline-block;\n max-width: 6rem;\n width: 100%;\n padding: 10px;\n\n @media only screen and (max-width: 670px) {\n max-width: 5rem;\n }\n }\n .react-datepicker__day--keyboard-selected,\n .react-datepicker__month-text--keyboard-selected,\n .react-datepicker__quarter-text--keyboard-selected,\n .react-datepicker__year-text--keyboard-selected {\n border-radius: 25px;\n background-color: transparent;\n color: #171725;\n border: 1px solid red;\n }\n\n .react-datepicker__month--range-end {\n border-top-right-radius: 25px !important;\n border-bottom-right-radius: 25px !important;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n right: 2px;\n border-left: none;\n }\n\n .react-datepicker__month-2,\n .react-datepicker__month-5,\n .react-datepicker__month-8,\n .react-datepicker__month-11 {\n border-top-right-radius: 25px !important;\n border-bottom-right-radius: 25px !important;\n }\n .react-datepicker__month-0,\n .react-datepicker__month-3,\n .react-datepicker__month-6,\n .react-datepicker__month-9 {\n border-top-left-radius: 25px !important;\n border-bottom-left-radius: 25px !important;\n }\n .react-datepicker__month-text--keyboard-selected {\n border: 1px solid ${Theme.orange};\n }\n .jUfUYu .react-datepicker .react-datepicker__month--selected,\n .jUfUYu .react-datepicker .react-datepicker__month--in-selecting-range,\n .jUfUYu .react-datepicker .react-datepicker__month--in-range,\n .jUfUYu .react-datepicker .react-datepicker__quarter--selected,\n .jUfUYu .react-datepicker .react-datepicker__quarter--in-selecting-range,\n .jUfUYu .react-datepicker .react-datepicker__quarter--in-range {\n border-radius: 0.3rem;\n background-color: transparent;\n color: ${Theme.black} !important;\n }\n .coRVAu .react-datepicker .react-datepicker__month--selected,\n .coRVAu .react-datepicker .react-datepicker__month--in-selecting-range,\n .coRVAu .react-datepicker .react-datepicker__month--in-range,\n .coRVAu .react-datepicker .react-datepicker__quarter--selected,\n .coRVAu .react-datepicker .react-datepicker__quarter--in-selecting-range,\n .coRVAu .react-datepicker .react-datepicker__quarter--in-range {\n border-radius: 0.3rem;\n background-color: transparent;\n color: ${Theme.black} !important;\n }\n .react-datepicker__month--selected,\n .react-datepicker__month--in-selecting-range,\n .react-datepicker__month--in-range,\n .react-datepicker__quarter--selected,\n .react-datepicker__quarter--in-selecting-range,\n .react-datepicker__quarter--in-range {\n border-radius: 0.3rem;\n }\n react-datepicker__month--selected,\n .react-datepicker__month--in-selecting-range,\n .react-datepicker__month--in-range,\n .react-datepicker__quarter--selected,\n .react-datepicker__quarter--in-selecting-range,\n .react-datepicker__quarter--in-range {\n /* border-radius: 0; */\n background-color: transparent;\n color: ${Theme.orange};\n border: 1px solid ${Theme.orange};\n font-weight: 600;\n }\n .react-datepicker__month--selected {\n background-color: transparent;\n font-weight: bold;\n color: ${Theme.orange};\n border-radius: 25px;\n }\n\n .react-datepicker__month--range-start {\n border-top-left-radius: 25px !important;\n border-bottom-left-radius: 25px !important;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n left: 2px;\n border-right: none;\n }\n\n .react-datepicker__month--in-range {\n border-right: none;\n border-left: none;\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n &:first-child {\n border-left: 1px solid ${Theme.orange};\n }\n &:last-child {\n border-right: 1px solid ${Theme.orange};\n }\n }\n }\n .custom-month-range {\n .react-datepicker {\n .react-datepicker__month--selected,\n .react-datepicker__month--in-range,\n .react-datepicker__month--in-selecting-range,\n .react-datepicker__quarter--selected,\n .react-datepicker__quarter--in-range,\n .react-datepicker__quarter--in-selecting-range {\n background: ${Theme.orange} !important;\n border: 0 !important;\n color: #ffffff !important;\n }\n\n .react-datepicker__month-text--keyboard-selected {\n border: 0 !important;\n }\n .react-datepicker__month-text,\n .react-datepicker__quarter-text,\n react-datepicker__month--range-start,\n react-datepicker__month--range-end {\n margin: 5px 0 !important;\n border: 1px solid white;\n }\n .react-datepicker__month-text:hover,\n .react-datepicker__quarter-text:hover {\n border: 1px solid ${Theme.orange} !important;\n border-radius: 25px !important;\n color: ${Theme.orange};\n }\n .react-datepicker__month-text.react-datepicker__month--in-range:hover,\n .react-datepicker__quarter-text.react-datepicker__month--in-range:hover {\n border: 0 !important;\n border-radius: initial !important;\n color: ${Theme.orange};\n }\n .react-datepicker__month-2.react-datepicker__month--in-range:hover,\n .react-datepicker__month-5.react-datepicker__month--in-range:hover,\n .react-datepicker__month-8.react-datepicker__month--in-range:hover,\n .react-datepicker__month-11.react-datepicker__month--in-range:hover,\n .react-datepicker__month--in-range.react-datepicker__month--range-end:hover {\n border-top-right-radius: 25px !important;\n border-bottom-right-radius: 25px !important;\n border: 0px !important;\n }\n .react-datepicker__month-0.react-datepicker__month--in-range:hover,\n .react-datepicker__month-3.react-datepicker__month--in-range:hover,\n .react-datepicker__month-6.react-datepicker__month--in-range:hover,\n .react-datepicker__month-9.react-datepicker__month--in-range:hover,\n .react-datepicker__month--in-range.react-datepicker__month--range-start:hover {\n border-top-left-radius: 25px !important;\n border-bottom-left-radius: 25px !important;\n border: 0px !important;\n }\n .react-datepicker__month--disabled,\n .react-datepicker__quarter--disabled {\n color: #ccc !important;\n pointer-events: none;\n }\n }\n }\n`;\n\nexport default CustomDateRange;\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport DatePicker from 'react-datepicker';\nimport { bool, func, shape, string, instanceOf } from 'prop-types';\n\nimport ModalBox from './ModalBox';\nimport Button from './Button';\nimport CustomDateRange from './MonthPicket';\nimport { CloseIcon } from '../theme/images';\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '420px ',\n width: '100% ',\n minHeight: '390px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nconst currentDate = new Date();\n\nconst CustomMonthRangeModal = ({\n id,\n className,\n title,\n isOpen,\n minDate,\n maxDate,\n startMonth,\n endMonth,\n onDateChange,\n onClick,\n onApply,\n style,\n helperText,\n selected = true,\n}) => {\n return (\n \n \n \n
\n

{title}

\n \n
\n onDateChange(date)}\n maxDate={maxDate || null}\n minDate={minDate || new Date('2021-01-01')}\n startDate={startMonth}\n endDate={endMonth}\n selectsRange\n inline\n dateFormat=\"MM/yyyy\"\n showMonthYearPicker\n />\n {helperText ? (\n
\n {helperText}\n
\n ) : null}\n
\n
\n
\n \n Apply\n \n
\n
\n
\n \n );\n};\n\nexport default CustomMonthRangeModal;\n\nCustomMonthRangeModal.defaultProps = {\n title: 'Select Month Range',\n id: '',\n className: '',\n helperText: '',\n isOpen: false,\n minDate: new Date('2021-01-01'),\n maxDate: currentDate,\n startMonth: currentDate,\n endMonth: currentDate,\n selected: true,\n style: {},\n onClick: () => {},\n onDateChange: () => {},\n onApply: () => {},\n};\n\nCustomMonthRangeModal.propTypes = {\n id: string,\n className: string,\n title: string,\n helperText: string,\n isOpen: bool,\n selected: bool,\n onClick: func,\n onDateChange: func,\n onApply: func,\n style: shape({}),\n minDate: instanceOf(Date),\n maxDate: instanceOf(Date),\n startMonth: instanceOf(Date),\n endMonth: instanceOf(Date),\n};\n","const useFormatNumber = (\n x,\n prefix = '',\n postfix = '',\n round = false,\n showPositiveSign = false,\n decimalPlace = 2,\n) => {\n let result;\n if (x === undefined || x === null || isNaN(Number(x))) {\n result = 'N/A';\n } else {\n const finalNumber = round ? Math.round(x) : x;\n const finalPrefix =\n finalNumber < 0 ? `-${prefix}` : showPositiveSign ? `+${prefix}` : prefix;\n result =\n finalPrefix +\n Number(finalNumber)\n .toFixed(decimalPlace)\n .toString()\n .replace(/-/g, '') // Remove dash\n .replace(/\\.0+$/, '') // Remove decimal zero\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + // Add comma seprator\n postfix;\n }\n\n return result;\n};\n\nexport default useFormatNumber;\n","import React from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport styled from 'styled-components';\nimport { number, oneOfType, string } from 'prop-types';\n\nimport Theme from '../theme/Theme';\nimport useFormatNumber from '../hooks/useFormatNumber';\n\nconst rendeTootipData = (retainer, revshare, dsp, formatNumber) => {\n return `\n
\n
\n
Total Book Size BreakDown
\n
\n
\n
\n
Retainer\n \n
\n
\n
\n
${formatNumber(retainer, '$')}\n
\n
\n
\n
Rev Share\n
\n
\n
\n
\n ${formatNumber(revshare, '$')}\n
\n
\n
\n
DSP\n
\n
\n
\n
\n ${formatNumber(dsp, '$')}\n
\n
\n
\n
`;\n};\n\nconst Card = ({\n className,\n heading,\n title,\n subTitle,\n titleColor,\n noBill,\n totalBill,\n noBillText,\n totalBillText,\n prefix = null,\n postfix = null,\n type,\n breakDown,\n retainer,\n revShare,\n dsp,\n}) => (\n \n

{heading}

\n {type === 'invoices' ? (\n <>\n \n

\n {prefix}\n {title}\n {postfix}\n

\n\n {subTitle ?

{subTitle}

: null}\n {breakDown ? (\n \n {breakDown}\n \n ) : null}\n \n \n ) : (\n
    \n
  • \n {' '}\n

    {noBill}

    \n

    {noBillText}

    \n
  • \n
  • \n {' '}\n

    \n {prefix}\n {totalBill}\n {postfix}\n

    \n

    {totalBillText}

    \n
  • \n
\n )}\n {breakDown ? (\n \n ) : null}\n
\n);\n\nexport default Card;\n\nconst CardWrapper = styled.div`\n background-color: ${Theme.white};\n border-radius: 15px;\n padding: 15px 20px;\n display: flex;\n /* justify-content: space-between; */\n align-items: start;\n flex-direction: column;\n\n .heading {\n color: ${Theme.gray40};\n font-size: 11px;\n text-transform: uppercase;\n font-weight: bold;\n margin-bottom: 15px;\n }\n .billing {\n list-style-type: none;\n padding: 0;\n margin: 10px 0;\n li {\n display: inline-block;\n margin-right: 25px;\n color: ${Theme.gray80};\n &:last-child {\n margin-right: 0;\n }\n }\n }\n p.title {\n margin-bottom: 2px !important;\n margin-top: 0px !important;\n word-break: break-all;\n }\n\n .title {\n font-size: 26px;\n font-family: ${Theme.titleFontFamily};\n }\n\n p.sub-title {\n margin-top: 0px !important;\n margin-bottom: 0px !important;\n }\n\n .sub-title {\n color: ${Theme.gray40};\n font-size: 14px;\n }\n`;\n\nCard.defaultProps = {\n className: '',\n heading: '',\n title: '',\n subTitle: '',\n titleColor: Theme.gray80,\n prefix: null,\n postfix: null,\n noBill: '',\n totalBill: '',\n noBillText: '',\n totalBillText: '',\n type: '',\n breakDown: '',\n retainer: 0,\n dsp: 0,\n revShare: 0,\n};\n\nCard.propTypes = {\n className: string,\n heading: string,\n title: oneOfType([string, number]),\n subTitle: string,\n titleColor: string,\n prefix: string,\n postfix: string,\n noBill: string,\n totalBill: string,\n noBillText: string,\n totalBillText: string,\n type: string,\n breakDown: string,\n retainer: number,\n dsp: number,\n revShare: number,\n};\n","import styled from 'styled-components';\n\nconst NoData = styled.div`\n margin: 3em;\n text-align: center;\n`;\n\nexport default NoData;\n","import React, { useEffect } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Theme from '../theme/Theme';\n// import PageNotFoundImg from '../theme/images/page-not-found.svg';\n\nexport default function PdfLoadingMsg({\n type,\n setIsLoader,\n message = 'Loading...',\n}) {\n useEffect(() => {\n setIsLoader({ loader: true });\n }, [setIsLoader]);\n\n return (\n \n {/* \"emoji\" */}\n {/*
Page not found
*/}\n {type === 'error' ?

{message}

: ''}\n {type === 'loading' ?
{message}
: ''}\n
\n );\n}\nconst PageNotFounds = styled.div`\n text-align: center;\n position: absolute;\n top: 50%;\n /* left: 50%; */\n transform: translate(-50%, -50%);\n\n .not-found {\n color: ${Theme.gray90};\n font-size: 16px;\n text-align: center;\n }\n`;\n\nPdfLoadingMsg.defaultProps = {\n type: '',\n message: '',\n setIsLoader: () => {},\n};\n\nPdfLoadingMsg.propTypes = {\n type: PropTypes.string,\n message: PropTypes.string,\n setIsLoader: PropTypes.func,\n};\n","import React, { useState } from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\nimport { Document, Page } from 'react-pdf/dist/esm/entry.webpack';\nimport 'react-pdf/dist/esm/Page/AnnotationLayer.css';\n\nimport PdfLoadingMsg from './PdfLoadingMsg';\n\nexport default function PdfAnnotator({\n pdf,\n loadingMsg,\n onPdfMouseDown,\n renderPDFAnnotations,\n clickOnAddNewAnnotation,\n}) {\n const [totalPages, setNumPages] = useState(null);\n const isDesktopLarge = useMediaQuery({ minWidth: 1601 });\n const isDesktop = useMediaQuery({ minWidth: 1331, maxWidth: 1600 });\n const isDesktopView = useMediaQuery({ minWidth: 992, maxWidth: 1330 });\n const isTablet = useMediaQuery({ minWidth: 768, maxWidth: 991 });\n const isMobile = useMediaQuery({ minWidth: 590, maxWidth: 767 });\n const isMobileView = useMediaQuery({ minWidth: 455, maxWidth: 591 });\n const isMobileSmallView = useMediaQuery({ minWidth: 320, maxWidth: 456 });\n // const [demo, setDemo] = useState({ page: 0, left: 0, top: 0 });\n function onDocumentLoadSuccess({ numPages }) {\n setNumPages(numPages);\n }\n\n const giveWidth = () => {\n if (isDesktopLarge) {\n return 1000;\n }\n if (isDesktop) {\n return 900;\n }\n if (isDesktopView) {\n return 590;\n }\n if (isTablet) {\n return 750;\n }\n\n if (isMobile) {\n return 550;\n }\n\n if (isMobileView) {\n return 450;\n }\n\n if (isMobileSmallView) {\n return 320;\n }\n return null;\n };\n\n const onMouseDown = (e, selector) => {\n onPdfMouseDown(e, selector);\n };\n\n return (\n
\n }\n loading={() => }\n onLoadSuccess={onDocumentLoadSuccess}>\n {Array.from(new Array(totalPages), (el, index) => (\n onMouseDown(event, `${index + 1}`)}\n // onscroll={(event) => onScroll(event)}\n className={`page_${index + 1} PDFPage PDFPageOne pdf-view`}\n key={`page_${index + 1}`}\n pageNumber={index + 1}\n width={giveWidth()}>\n {renderPDFAnnotations(true, index + 1)}\n {renderPDFAnnotations(false, index + 1)}\n \n ))}\n \n
\n );\n}\n\nPdfAnnotator.defaultProps = {\n pdf: '',\n loadingMsg: '',\n onPdfMouseDown: () => {},\n renderPDFAnnotations: () => {},\n clickOnAddNewAnnotation: false,\n};\n\nPdfAnnotator.propTypes = {\n pdf: PropTypes.string,\n loadingMsg: PropTypes.string,\n onPdfMouseDown: PropTypes.func,\n renderPDFAnnotations: PropTypes.func,\n clickOnAddNewAnnotation: PropTypes.bool,\n};\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst ToggleButton = styled.div`\n .days-container {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray45};\n border-radius: 18px;\n max-width: 243px;\n float: right;\n clear: both;\n width: fit-content;\n &.spending {\n max-width: fit-content;\n .days-tab {\n li {\n label {\n padding: 7px 10px;\n }\n }\n }\n }\n\n &.quarterly {\n max-width: 390px !important;\n }\n\n .days-tab {\n list-style-type: none;\n padding: 0;\n margin: 0;\n #daysCheck:checked + label,\n #weeklyCheck:checked + label,\n #monthlyCheck:checked + label,\n #quarterlyCheck:checked + label,\n #dspDaysCheck:checked + label,\n #dspWeeklyCheck:checked + label,\n #dspMonthlyCheck:checked + label,\n #positive:checked + label,\n #negative:checked + label,\n #peformanceCheck:checked + label,\n #pacingCheck:checked + label,\n #contribution:checked + label,\n #keyMetrics:checked + label,\n #overspending:checked + label,\n #underspending:checked + label,\n #parent_asin:checked + label,\n #projectChecked:checked + label,\n #AsinChecked:checked + label,\n #child_asin:checked + label,\n #spCampaignCheck:checked + label,\n #spAsinCheck:checked + label,\n #dspCampaignCheck:checked + label,\n #orderedRevenueCheck:checked + label,\n #shippedCOGSCheck:checked + label,\n #dspAsinCheck:checked + label {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.orange};\n border-radius: 18px;\n color: ${Theme.orange};\n }\n\n .activeGroupBy {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.orange};\n border-radius: 18px;\n color: ${Theme.orange};\n }\n\n li {\n display: inline-block;\n margin: 0;\n\n label {\n color: ${Theme.black};\n padding: 7px 18px;\n font-size: 14px;\n display: inline-block;\n cursor: pointer;\n }\n }\n }\n &.asin-toggle-button {\n float: none;\n }\n }\n .toggle-container {\n width: 100%;\n max-width: 280px;\n\n li {\n width: 50%;\n text-align: center;\n\n &.account-type {\n color: ${Theme.black};\n padding: 9px 10px;\n font-size: 14px;\n display: inline-block;\n cursor: pointer;\n }\n\n &.active {\n /* width: 100%; */\n background-color: ${Theme.white};\n border: 1px solid ${Theme.orange};\n border-radius: 18px;\n color: ${Theme.orange};\n }\n }\n\n .days-tab {\n width: 100%;\n #negative:checked + label,\n #positive:checked + label {\n width: 100%;\n background-color: ${Theme.white};\n border: 1px solid ${Theme.orange};\n border-radius: 18px;\n color: ${Theme.orange};\n }\n }\n @media only screen and (max-width: 767px) {\n width: 100%;\n max-width: 100%;\n }\n }\n @media only screen and (max-width: 767px) {\n .days-container {\n margin: 0 auto;\n float: none !important;\n &.asin-toggle-button {\n margin: 0;\n }\n }\n }\n`;\n\nexport default ToggleButton;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst CardMetrics = styled.div`\n .order-chart-box {\n display: inline-block;\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray45};\n border-radius: 8px;\n max-width: 197px;\n width: 100%;\n padding: 18px 15px;\n cursor: pointer;\n\n &.small-metrics-card {\n border: 1px solid ${Theme.gray11};\n padding: 13px 16px;\n }\n\n &.no-hover {\n &:hover {\n border: 1px solid ${Theme.gray45};\n cursor: auto;\n }\n }\n\n .chart-name {\n color: ${Theme.gray40};\n font-size: 11px;\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n padding-bottom: 15px;\n }\n\n .metric-taget {\n text-align: center;\n .target-percent-capsule {\n font-size: 8px;\n font-family: ${Theme.baseMediumFontFamily};\n background: ${Theme.gray9};\n color: ${Theme.orange};\n text-transform: uppercase;\n padding: 3px 10px;\n border-radius: 20px;\n }\n .under-target {\n border-radius: 1px;\n background: ${Theme.darkRed};\n padding: 6px 10px;\n color: ${Theme.white};\n font-family: ${Theme.titleFontFamily};\n font-size: 10px;\n text-transform: uppercase;\n }\n .on-target {\n border-radius: 1px;\n background: ${Theme.green};\n padding: 6px 10px;\n font-family: ${Theme.titleFontFamily};\n font-size: 10px;\n text-transform: uppercase;\n color: ${Theme.white};\n }\n .underspend {\n border-radius: 1px;\n background: ${Theme.yellow};\n padding: 6px 10px;\n color: ${Theme.white};\n font-family: ${Theme.titleFontFamily};\n font-size: 10px;\n text-transform: uppercase;\n }\n }\n\n .perentage-value {\n color: ${Theme.lighterGreen};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n margin-left: -2px;\n\n &.down {\n color: ${Theme.red};\n }\n .red-arrow {\n width: 14px;\n transform: rotate(180deg);\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n .green-arrow {\n width: 14px;\n vertical-align: bottom;\n vertical-align: middle;\n margin-left: -2px;\n margin-right: 3px;\n }\n\n img {\n width: 14px;\n }\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n border: 1px solid ${Theme.orange};\n }\n\n &.active {\n border: 1px solid ${Theme.orange};\n }\n\n &.ad-spend-total-active {\n border: 1px solid #33beffd6;\n .chart-name {\n color: #33beffd6;\n }\n }\n\n &.ad-spend-ppc-active {\n border: 1px solid #a47b40d6;\n .chart-name {\n color: #a47b40d6;\n }\n }\n\n &.ad-spend-dsp-active {\n border: 1px solid #52d045d6;\n .chart-name {\n color: #52d045d6;\n }\n }\n\n &.ad-sales-active {\n border: 1px solid #0045b4;\n .chart-name {\n color: #0045b4;\n }\n }\n\n &.revenue-organic-active {\n border: 1px solid #74b035;\n .chart-name {\n color: #74b035;\n }\n }\n\n &.ad-spend-active {\n border: 1px solid #8c54ff;\n .chart-name {\n color: #8c54ff;\n }\n }\n\n &.ad-conversion-active {\n border: 1px solid #30a8bd;\n .chart-name {\n color: #30a8bd;\n }\n }\n\n &.impression-active {\n border: 1px solid #d6a307;\n .chart-name {\n color: #d6a307;\n }\n }\n\n &.ad-cos-active {\n border: 1px solid #e05d37;\n .chart-name {\n color: #e05d37;\n }\n }\n\n &.ad-roas-active {\n border: 1px solid #89a43c;\n .chart-name {\n color: #89a43c;\n }\n }\n\n &.ad-click-active {\n border: 1px solid #c84ec6;\n .chart-name {\n color: #c84ec6;\n }\n }\n\n &.ad-clickrate-active {\n border: 1px solid #a04848;\n .chart-name {\n color: #a04848;\n }\n }\n\n &.costPerClick-active {\n border: 1px solid #89a43c;\n .chart-name {\n color: #89a43c;\n }\n }\n\n &.sponsoredAdSpend-active {\n border: 1px solid #89a43c;\n .chart-name {\n color: #89a43c;\n }\n }\n\n &.dspSpend-active {\n border: 1px solid #0045b4;\n .chart-name {\n color: #0045b4;\n }\n }\n\n &.sales-adSpend-active {\n border: 1px solid #89a43c;\n .chart-name {\n color: #89a43c;\n }\n }\n &.sales-tacos-active {\n border: 1px solid #00be8e;\n .chart-name {\n color: #00be8e;\n }\n }\n }\n .amc-dashboard-metrics-box {\n padding: 12px;\n }\n\n @media only screen and (min-width: 1600px) {\n .order-chart-box {\n max-width: 100%;\n }\n }\n\n @media only screen and (min-width: 320px) {\n .order-chart-box {\n max-width: 100% !important;\n }\n }\n`;\n\nexport default CardMetrics;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\nimport queryString from 'query-string';\nimport ReactTooltip from 'react-tooltip';\nimport Select, { components } from 'react-select';\nimport { func, shape, arrayOf } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../theme/Theme';\nimport { SpreetailRole, SpreetailRoleRestrictMessage } from '../constants';\n\nconst DropDownUncontained = ({\n options,\n setSelectedOption,\n extraAction,\n DropdownIndicator,\n multipleAgreement,\n}) => {\n const history = useHistory();\n\n const params = queryString.parse(history.location.search);\n\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const { Option, SingleValue } = components;\n const [disableAgreementOption, setDisableAgreementOption] = useState({\n recurring: false,\n ninetydays: false,\n dsp: false,\n walmartRecurring: false,\n walmartRecurringNinetyDays: false,\n });\n\n const checkAgreementType = useCallback(\n (type, channel) => {\n return multipleAgreement.filter(\n (op) =>\n op.contract_type === type &&\n op.channel?.value === channel &&\n (op.contract_status?.value === 'pending contract' ||\n op.contract_status?.value === 'pending contract approval' ||\n op.contract_status?.value === 'pending contract signature'),\n );\n },\n [multipleAgreement],\n );\n\n useEffect(() => {\n const dsp = checkAgreementType('dsp only', 'amazon');\n const recurring = checkAgreementType('recurring', 'amazon');\n const recurring90days = checkAgreementType(\n 'recurring (90 day notice)',\n 'amazon',\n );\n const walmartRecurring = checkAgreementType('recurring', 'walmart');\n const walmartRecurring90days = checkAgreementType(\n 'recurring (90 day notice)',\n 'walmart',\n );\n setDisableAgreementOption({\n recurring: recurring?.length > 0,\n ninetydays: recurring90days?.length > 0,\n dsp: dsp?.length > 0,\n walmartRecurring: walmartRecurring?.length > 0,\n walmartRecurringNinetyDays: walmartRecurring90days?.length > 0,\n });\n }, [checkAgreementType, setDisableAgreementOption]);\n\n const disableOption = (value) => {\n if (disableAgreementOption[value]) return true;\n return false;\n };\n\n const onChange = (selected) => {\n if (!disableOption(selected.type)) {\n setSelectedOption(selected);\n extraAction(selected);\n }\n };\n\n const IconOption = (dataProps) => (\n \n );\n\n const IconSingleOption = (dataProps) => (\n \n \n \n \n {params.nav === 'one-time'\n ? 'Add New One Time Agreement'\n : 'Add New Agreement'}\n \n \n \n );\n\n const getSelectComponents = () => {\n return {\n Option: IconOption,\n SingleValue: IconSingleOption,\n DropdownIndicator,\n };\n };\n\n return (\n <>\n \n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: Theme.lightOrange,\n primary50: Theme.lightOrange,\n },\n })}\n onChange={onChange}\n components={getSelectComponents()}\n componentsValue={{ Option: IconOption }}\n />\n \n \n \n \n );\n};\n\nexport default DropDownUncontained;\n\nDropDownUncontained.defaultProps = {\n extraAction: () => {},\n multipleAgreement: {},\n};\n\nDropDownUncontained.propTypes = {\n options: arrayOf(shape({})).isRequired,\n extraAction: func,\n DropdownIndicator: func.isRequired,\n setSelectedOption: func.isRequired,\n multipleAgreement: shape({}),\n};\n\nconst AddNewAgreement = styled.div`\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n\n .dropdown-arrow-icon {\n vertical-align: middle;\n margin-left: 6px;\n transform: ${(props) =>\n props.showAgreementOptions ? 'rotate(180deg)' : ''};\n }\n .check-container-label input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n height: 10px;\n width: 170px;\n }\n .add-icon {\n font-size: ${Theme.extraSmall};\n color: ${Theme.orange};\n margin-right: 7px;\n }\n`;\n\nconst AddNewAgreementDropDown = styled.div`\n position: relative;\n &.w-50 {\n width: 180px;\n }\n &.w-onetime {\n width: 240px;\n }\n .css-2b097c-container {\n .css-yk16xz-control {\n background-color: transparent;\n border-style: none;\n min-height: 40px;\n margin: 0;\n border-width: 0px;\n .css-g1d714-ValueContainer {\n padding: 4px 0;\n }\n .css-tlfecz-indicatorContainer {\n padding: 10px 0 0 0;\n cursor: pointer;\n img {\n width: 18px !important;\n height: 18px !important;\n }\n }\n &:hover {\n border-color: none !important;\n }\n }\n .css-1pahdxg-control {\n border-color: transparent !important;\n box-shadow: none !important;\n outline: none;\n background-color: transparent;\n border-width: 0px;\n margin: 0;\n caret-color: transparent;\n min-height: 40px;\n .css-g1d714-ValueContainer {\n padding: 4px 0;\n }\n .css-1gtu0rj-indicatorContainer {\n padding: 10px 0 0 0;\n cursor: pointer;\n img {\n width: 18px !important;\n height: 18px !important;\n }\n }\n /* .css-1uccc91-singleValue {\n margin: 0;\n } */\n &:hover {\n border-color: none !important;\n }\n }\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n .react-select__menu {\n width: 300px !important;\n right: 0;\n .css-26l3qy-menu {\n max-width: 220px !important;\n width: 100%;\n }\n }\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst AllocateBar = styled.div`\n background: rgb(244, 246, 252);\n border-radius: 6px;\n border: 1px solid rgb(213, 216, 225);\n width: 100%;\n min-height: 40px;\n padding: 11px 13px;\n .remaing-label {\n color: ${Theme.gray90};\n font-size: ${Theme.extraNormal};\n float: left;\n /* width: 70%; */\n\n &.text-bold {\n font-weight: bold;\n /* width: 30%;\n float: right; */\n }\n }\n .allocate-balance {\n color: ${Theme.orange};\n font-size: 11px;\n text-transform: uppercase;\n font-weight: bold;\n float: right;\n }\n .orange-left-arrow {\n width: 14px;\n margin-left: 4px;\n transform: rotate(180deg);\n vertical-align: middle;\n }\n .edit-marketplace {\n color: ${Theme.orange};\n font-size: 14px;\n text-transform: capitalize;\n font-weight: 400;\n float: right;\n }\n\n .orange-dot {\n background: ${Theme.orange};\n width: 6px;\n height: 6px;\n box-shadow: 0px 0px 14px 0px ${Theme.orange};\n display: inline-block;\n border-radius: 50%;\n margin-right: 10px;\n margin-bottom: 1px;\n }\n @media only screen and (max-width: 768px) {\n .edit-marketplace {\n margin-top: 15px;\n }\n }\n @media only screen and (max-width: 376px) {\n &.creativeProject-allocate-bar {\n min-height: 71px;\n margin-bottom: 10px !important;\n }\n }\n`;\nexport default AllocateBar;\n","// rect imports\nimport React from 'react';\n\n// third party imports\nimport { string } from 'prop-types';\n\n// local file imports\nimport AllocateBar from './AllocateBar';\n\nfunction GrayMessageBar({ className, message, dataCy }) {\n return (\n \n
\n
\n
\n \n {message}\n
\n
\n
\n
\n );\n}\n\nexport default GrayMessageBar;\n\nGrayMessageBar.defaultProps = {\n className: '',\n message: null,\n dataCy: '',\n};\n\nGrayMessageBar.propTypes = {\n className: string,\n message: string,\n dataCy: string,\n};\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst ErrorMsgBox = styled.div`\n color: ${Theme.red};\n background-color: #fbf2f2;\n padding: 12px 13px 11px 13px;\n border-radius: 4px;\n font-weight: 500;\n text-align: center;\n font-size: ${(props) => (props.font ? Theme.small : Theme.extraSmall)};\n font-family: ${Theme.baseFontFamily};\n\n .info-icon {\n width: 13px;\n margin-right: 2px;\n vertical-align: text-top;\n }\n\n &.large-text {\n font-size: 20px;\n }\n &.success {\n background-color: ${Theme.lightGreen};\n color: ${Theme.green};\n }\n`;\n\nexport default ErrorMsgBox;\n","import styled from 'styled-components';\n\nimport Theme from '../theme/Theme';\n\nconst TableGap = styled.div`\n position: relative;\n width: 100%;\n border-spacing: 0 10px;\n border-collapse: collapse;\n table {\n height: 100%;\n width: 100%;\n tr {\n text-align: left;\n background: ${Theme.white};\n border-radius: 1px;\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n border-bottom: 1px solid #e0e6e8;\n display: table;\n\n &:last-child {\n border-bottom: none;\n }\n\n &.ungroup {\n &:last-child {\n border-bottom: 1px solid #e0e6e8;\n }\n }\n\n &.overlay-modal-header {\n border-bottom: 1px solid #e0e6e8;\n border-top: 1px solid #e0e6e8;\n\n th {\n border-top: none;\n }\n }\n\n &.BGSCommission-header {\n border-top: 1px solid #e0e6e8;\n }\n\n &.partners {\n td {\n font-size: 14px;\n }\n &:nth-last-child(2) {\n border-bottom: none;\n }\n }\n\n &.all-partners {\n font-weight: 600;\n background-color: #f4f6fc;\n\n td {\n font-size: 14px;\n }\n }\n\n th {\n padding: 15px 5px 15px 5px;\n text-transform: uppercase;\n color: ${Theme.gray40};\n font-size: 11px;\n background: ${Theme.white};\n font-family: ${Theme.baseFontFamily};\n /* border-top: 1px solid #e0e6e8; */\n &:first-child {\n border-bottom-left-radius: 8px;\n }\n &:last-child {\n border-bottom-right-radius: 8px;\n }\n }\n td {\n padding: 15px 5px 15px 5px;\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n\n &.text-bold {\n font-family: ${Theme.titleFontFamily};\n }\n &.text-medium {\n font-family: ${Theme.baseMediumFontFamily};\n }\n }\n }\n }\n\n .commission-section {\n overflow: auto;\n height: calc(100vh - 75vh);\n margin-top: 20px;\n padding-bottom: 50px;\n\n @media only screen and (min-width: 1920px) {\n height: calc(100vh - 45vh);\n padding-bottom: 50px;\n }\n }\n .comission-overlay-table-body {\n overflow-y: auto;\n height: 85vh;\n padding-bottom: 50px;\n }\n`;\n\nexport default TableGap;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport copy from 'copy-to-clipboard';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { toast } from 'react-toastify';\nimport { func, string, bool } from 'prop-types';\n\nimport Status from './Status';\nimport Theme from '../theme/Theme';\nimport { WhiteCard } from './WhiteCard';\nimport {\n CompanyDefaultUser,\n ArrowUpIcon,\n ArrowDownIcon,\n} from '../theme/images';\n\nconst TableMobileView = ({\n className,\n CompanyName,\n invoiceType,\n invoiceId,\n label,\n statusLabelColor,\n labelInfo,\n label1,\n label2,\n label3,\n label4,\n label5,\n label6,\n label7,\n label8,\n labelInfo1,\n sublabel,\n sublabel1,\n labelInfo2,\n labelInfo3,\n labelInfo4,\n labelInfo5,\n labelInfo6,\n labelInfo7,\n labelInfo8,\n status,\n statusColor,\n onClick,\n icon,\n marketplaces,\n isColumnOnClick = false,\n isShowCopyIcon = false,\n onColumnClick,\n mainLabel,\n isShowPercentage,\n isLabelInfo2Positive,\n isLabelInfo5Positive,\n isBBEDashboard,\n isInventory = false,\n isCancelRequest = false,\n copyText = '',\n showBorder,\n statusIcon,\n iconAfterLabel = false,\n}) => {\n const col = `${\n label3 ? (label7 ? 'col-4' : 'col-6') : showBorder ? 'col-6' : 'col-4'\n }`;\n\n const renderTableView = () => {\n return (\n <>\n
\n {CompanyName ||\n CompanyDefaultUser ||\n invoiceType ||\n invoiceId ||\n CompanyDefaultUser ||\n mainLabel ? (\n
\n {CompanyName ? (\n <>\n \n
{CompanyName}
\n {invoiceType !== null ? (\n
{invoiceType}
\n ) : null}\n {invoiceId ? (\n
{`${invoiceId}`}
\n ) : null}\n \n ) : (\n <>\n {mainLabel ? (\n
\n {mainLabel}\n
\n ) : invoiceType ? (\n <>\n \n {invoiceType}\n {isShowCopyIcon ? (\n {\n copy(copyText);\n toast.success('copied');\n }}\n />\n ) : null}\n
\n
\n {invoiceId ? `${invoiceId}` : null}\n {marketplaces}\n
\n \n ) : null}\n \n )}\n
\n ) : null}\n\n {status ? (\n
\n {' '}\n \n
\n
\n ) : null}\n
\n {!isInventory && !showBorder ? (\n
\n ) : null}\n\n
\n
\n {' '}\n
{label}
\n
{labelInfo}
\n {sublabel && (\n \n {sublabel}\n
\n )}\n
\n
\n {' '}\n
{label1}
\n
{labelInfo1}
\n {sublabel1 &&
{sublabel1}
}\n
\n
\n {' '}\n
{label2}
\n {isCancelRequest ? (\n
    \n
  • \n onColumnClick('cancel') : null\n }\n >\n Cancel\n

    \n
  • \n\n
  • \n\n
  • \n onColumnClick('view') : null\n }\n >\n {' '}\n View\n

    \n
  • \n
\n ) : null}\n {isColumnOnClick && !isCancelRequest ? (\n onColumnClick('view')}\n >\n {' '}\n View\n

\n ) : null}\n {!isCancelRequest && !isColumnOnClick ? (\n \n {' '}\n {isShowPercentage ? (\n \n ) : null}\n {labelInfo2}\n
\n ) : null}\n
\n\n {label3 ? (\n
\n {' '}\n
{label3}
\n
{labelInfo3}
\n
\n ) : null}\n {isInventory ? (\n
\n {' '}\n
{label4}
\n
{labelInfo4}
\n
\n ) : null}\n {isInventory ? (\n
\n {' '}\n
{label5}
\n {labelInfo5 !== 'N/A' && labelInfo5 !== '0%' ? (\n \n {' '}\n \n {labelInfo5}\n
\n ) : (\n \n {' '}\n {labelInfo5}\n \n )}\n \n ) : null}\n {(label7 ||\n label3 ||\n label4 ||\n label5 ||\n label6 ||\n label7 ||\n label8) &&\n !isInventory ? (\n <>\n {label4 ? (\n
\n {' '}\n
{label4}
\n
{labelInfo4}
\n
\n ) : null}\n {label5 ? (\n
\n {' '}\n
{label5}
\n
{labelInfo5}
\n
\n ) : null}\n {label6 ? (\n
\n {' '}\n
{label6}
\n
{labelInfo6}
\n
\n ) : null}\n {label7 ? (\n
\n {' '}\n
{label7}
\n
{labelInfo7}
\n
\n ) : null}\n {label8 ? (\n
\n {' '}\n
{label8}
\n
{labelInfo8}
\n
\n ) : null}\n \n ) : null}\n \n \n );\n };\n return (\n \n \n {showBorder ? (\n
\n {renderTableView()}\n
\n ) : (\n renderTableView()\n )}\n
\n
\n );\n};\n\nexport default TableMobileView;\n\nconst TableMobileViewWrapper = styled.div`\n .company-logo {\n border-radius: 10px;\n width: 47px;\n height: 47px;\n margin-bottom: 8px;\n float: left;\n margin-right: 14px;\n clear: both;\n }\n /* .pending-status {\n list-style-type: none;\n padding: 0;\n margin: 0;\n text-align: end;\n\n li {\n display: inline-block;\n margin-left: 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &.divide-gap {\n border-right: 1px solid #bfc5d2;\n width: 2px;\n height: 12px;\n }\n }\n } */\n\n .CompanyName {\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 270px;\n min-height: 20px;\n margin-top: 5px;\n text-transform: capitalize;\n\n &.LargeCompanyName {\n font-size: ${Theme.title};\n margin-bottom: 10px;\n }\n }\n .CompanyId {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray85};\n }\n\n .card-staus-right {\n float: right;\n }\n\n .label-bold {\n font-weight: bold;\n }\n .sub-label-text {\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n }\n`;\n\nTableMobileView.defaultProps = {\n isColumnOnClick: false,\n isShowCopyIcon: false,\n isShowPercentage: false,\n isLabelInfo2Positive: false,\n isLabelInfo5Positive: false,\n isBBEDashboard: false,\n isInventory: false,\n isCancelRequest: false,\n showBorder: false,\n iconAfterLabel: false,\n className: '',\n CompanyName: '',\n label: '',\n statusLabelColor: '',\n labelInfo: '',\n label1: '',\n labelInfo1: '',\n sublabel: '',\n sublabel1: '',\n label2: '',\n labelInfo2: '',\n label3: '',\n labelInfo3: '',\n label4: '',\n labelInfo4: '',\n label5: '',\n labelInfo5: '',\n label6: '',\n labelInfo6: '',\n label7: '',\n labelInfo7: '',\n label8: '',\n labelInfo8: '',\n invoiceType: '',\n invoiceId: '',\n status: '',\n statusColor: '',\n icon: '',\n marketplaces: '',\n mainLabel: '',\n copyText: '',\n statusIcon: '',\n onClick: () => {},\n onColumnClick: () => {},\n};\n\nTableMobileView.propTypes = {\n isColumnOnClick: bool,\n isShowCopyIcon: bool,\n isShowPercentage: bool,\n isLabelInfo2Positive: bool,\n isLabelInfo5Positive: bool,\n isBBEDashboard: bool,\n isInventory: bool,\n isCancelRequest: bool,\n showBorder: bool,\n iconAfterLabel: bool,\n className: string,\n CompanyName: string,\n label: string,\n statusLabelColor: string,\n labelInfo: string,\n label1: string,\n labelInfo1: string,\n sublabel: string,\n sublabel1: string,\n label2: string,\n labelInfo2: string,\n label3: string,\n labelInfo3: string,\n label4: string,\n labelInfo4: string,\n label5: string,\n labelInfo5: string,\n label6: string,\n labelInfo6: string,\n label7: string,\n labelInfo7: string,\n label8: string,\n labelInfo8: string,\n invoiceType: string,\n invoiceId: string,\n status: string,\n statusColor: string,\n icon: string,\n marketplaces: string,\n mainLabel: string,\n copyText: string,\n statusIcon: string,\n onClick: func,\n onColumnClick: func,\n};\n","import React from 'react';\n\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport Tabs from './Tabs';\nimport { GlobalMenu } from './Styles/HeaderStyles';\nimport {\n roleURLs,\n dashboardRole,\n dashboardRolePaths,\n GlobalMenus,\n PATH_DASHBOARD,\n} from '../constants';\n\nfunction GlobalNavbar() {\n const userInfo = useSelector((state) => state.userState.userInfo);\n\n const isHavePendingApprovalAccess =\n (userInfo?.is_primary_request_approvers ||\n userInfo?.is_final_request_approvers) &&\n userInfo?.role !== 'Customer';\n\n const userRole = userInfo?.role;\n const history = useHistory();\n\n const displayGlobalMenu = () => {\n return (\n \n {/*

Globalnav

*/}\n \n
    \n {GlobalMenus.map((menu) => {\n return menu.label === 'Dashboard' ? (\n dashboardRole.includes(userRole) ||\n isHavePendingApprovalAccess ? (\n \n history.location.pathname?.includes(element),\n )\n ? ' cursor active scrollable-tab global-tab'\n : ' cursor scrollable-tab'\n }\n key={menu.label}\n role=\"presentation\"\n onClick={() => {\n if (dashboardRolePaths[userRole]) {\n history.push(dashboardRolePaths[userRole]);\n } else if (isHavePendingApprovalAccess) {\n history.push(PATH_DASHBOARD);\n }\n }}\n >\n Dashboard\n \n ) : null\n ) : (\n history.push(menu.pathToRedirect)}\n >\n {menu.label}\n \n );\n })}\n
\n
\n
\n );\n };\n return
{displayGlobalMenu()}
;\n}\n\nexport default GlobalNavbar;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst ViewData = styled.div`\n .view-data-for {\n margin-right: 60px;\n font-weight: normal;\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n }\n .sort-label {\n &.text-md-right {\n text-align: right;\n }\n }\n\n @media only screen and (max-width: 767px) {\n .tabs {\n li {\n font-size: 14px;\n margin-right: 25px;\n }\n }\n .view-data-for {\n text-align: left;\n padding-bottom: 10px;\n }\n }\n @media only screen and (min-width: 768px) {\n .apply-btn {\n flex: 0 0 100px;\n max-width: 100px;\n }\n }\n\n .view-data-box {\n display: flex;\n flex-direction: column;\n felx-wrap: nowrap;\n justify-content: center;\n }\n\n .view-data-filter-list {\n ul {\n padding: 0;\n margin: 0;\n li {\n display: inline-block;\n margin: 0 15px 15px 0;\n\n :last-child {\n margin-right: 0;\n }\n\n @media only screen and (max-width: 767px) {\n display: block;\n }\n\n .inline-list li {\n display: inline-block;\n margin-bottom: 0;\n }\n &.sales-Performance-download-btn {\n vertical-align: top;\n margin-top: 10px;\n }\n &.asin-download-button {\n display: none;\n }\n\n @media only screen and (min-width: 992px) {\n &.asin-download-button {\n display: inline-block;\n }\n }\n }\n }\n @media only screen and (min-width: 992px) {\n display: flex;\n justify-content: flex-end;\n }\n }\n`;\n\nexport default ViewData;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport { arrayOf, func, string } from 'prop-types';\n\nimport Theme from '../theme/Theme';\n\nconst ToogleMetrics = ({ data, onToogle, value, toggleName }) => {\n return (\n \n
\n
    \n {data?.map((item) => {\n return (\n
  • \n {\n onToogle(item.name, event);\n }}\n onChange={() => {}}\n />\n \n
  • \n );\n })}\n
\n
\n
\n );\n};\n\nexport default ToogleMetrics;\n\nexport const Wrapper = styled.div`\n margin-bottom: 13px;\n\n .toggle-container {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray45};\n border-radius: 5px;\n width: 100%;\n\n &.toggle-block {\n border: none;\n }\n\n ul.toggle-tab {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li input[type='radio']:checked + label {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.orange};\n border-radius: 5px;\n color: ${Theme.orange};\n width: 100%;\n text-align: center;\n }\n\n li {\n display: inline-block;\n width: 50%;\n\n &.toggle-item {\n border: 1px solid ${Theme.gray45};\n border-radius: 5px;\n margin-right: 5px;\n width: auto;\n font-family: ${Theme.titleFontFamily};\n margin-bottom: 5px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n label {\n color: ${Theme.gray40};\n padding: 3px 2px;\n font-size: ${Theme.verySmall};\n font-family: ${Theme.titleFontFamily};\n display: inline-block;\n cursor: pointer;\n text-align: center;\n width: 100%;\n }\n }\n }\n }\n`;\n\nToogleMetrics.defaultProps = {\n toggleName: '',\n data: [],\n onToogle: () => {},\n value: '',\n};\n\nToogleMetrics.propTypes = {\n data: arrayOf(Array),\n onToogle: func,\n value: string,\n toggleName: string,\n};\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst CustomDropDown = styled.div`\n width: 100%;\n cursor: pointer;\n position:relative;\n &.un-searchable {\n .css-b8ldur-Input {\n caret-color: transparent;\n }\n }\n\n &.revenue-sub-type {\n float: right;\n min-height: 32px;\n clear: both;\n .css-2b097c-container {\n .css-yk16xz-control {\n min-height: 32px;\n }\n .css-uz51yo-control {\n min-height: 32px;\n }\n }\n }\n\n &.days-performance {\n max-width: 259px;\n float: right;\n text-align: initial;\n @media only screen and (max-width: 768px) {\n &.days-performance {\n max-width: 100%;\n float: left;\n text-align: initial;\n }\n }\n }\n max-width: 100%;\n font-size: 14px;\n color: ${Theme.gray90};\n .css-2b097c-container {\n font-size: ${Theme.extraNormal};\n\n .css-yk16xz-control {\n cursor: pointer;\n background-color: ${Theme.white} !important;\n border-radius: 6px;\n border: 1px solid ${Theme.gray45};\n min-height: 40px;\n color: ${Theme.gray90};\n .css-g1d714-ValueContainer {\n .css-tlfecz-indicatorContainer {\n .fa-angle-down {\n color: ${Theme.gray45} !important;\n }\n }\n }\n }\n\n .css-185uon1-control {\n cursor: pointer;\n border-radius: 6px;\n border: 1px solid ${Theme.gray45};\n min-height: 32px;\n color: ${Theme.gray90};\n .css-1gtu0rj-indicatorContainer {\n .fa-angle-down {\n color: ${Theme.gray90} !important;\n .react-select__placeholder {\n color: ${Theme.gray90};\n }\n }\n }\n }\n .css-rbsjjc-placeholder {\n color: ${Theme.gray90};\n }\n\n .css-rbsjjc-placeholder {\n color: ${Theme.gray90};\n }\n .css-ycpoe4-placeholder {\n color: ${Theme.gray90};\n }\n\n .css-185uon1-control {\n border-radius: 6px;\n border: 1px solid ${Theme.gray45};\n min-height: 40px;\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray90};\n .css-1gtu0rj-indicatorContainer {\n .fa-angle-down {\n color: ${Theme.gray90} !important;\n }\n }\n .css-uz51yo-control {\n min-height: 40px;\n font-size: ${Theme.extraNormal};\n }\n }\n\n .css-1pahdxg-control {\n background-color: #fafafb;\n border: 1px solid ${Theme.gray45};\n box-shadow: none;\n color: ${Theme.gray90};\n outline: none;\n border-radius: 6px;\n min-height: 40px;\n font-size: ${Theme.extraNormal};\n .css-b8ldur-Input,\n .css-1g6gooi {\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n }\n\n .css-1gtu0rj-indicatorContainer {\n .fa-angle-down {\n color: ${Theme.gray90} !important;\n }\n }\n }\n\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n\n .react-select__value-container--is-multi {\n span {\n max-width: calc(100% - 8px);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n .css-26l3qy-menu {\n background: ${Theme.white};\n border-radius: 8px;\n color: ${Theme.gray85} !important;\n border: 1px solid ${Theme.gray45};\n min-height: 40px;\n box-shadow: 0px 2px 14px 0px rgba(0, 0, 0, 0.2);\n .css-4ljt47-MenuList {\n padding-bottom: 4px;\n padding-top: 0;\n border-radius: 8px;\n color: ${Theme.gray85} !important;\n }\n\n .react-select__option {\n color: ${Theme.black} !important ;\n cursor: pointer;\n text-align: left; \n }\n\n .react-select__menu-list { \n .react-select__option--is-selected {\n color: ${Theme.white} !important;\n background:${Theme.orange} !important\n }\n .option-with-checkbox{\n .react-select__option--is-selected {\n color: ${Theme.black} !important;\n background:none !important\n } \n }\n } \n }\n\n /* .css-1b29jj1 {\n .css-26l3qy-menu {\n .css-4ljt47-MenuList {\n padding-bottom: 4px;\n padding-top: 0;\n border-radius: 8px;\n }\n }\n } */\n\n &.single-select-dropdown {\n .react-select__value-container {\n min-height:30px;\n }\n }\n\n &.multi-select-searchable-dropdown {\n .css-b8ldur-Input, .css-1g6gooi {\n padding:0;\n margin:0;\n }\n .react-select__input{\n position:absolute;\n top:0px; \n }\n .react-select__menu-list{\n background:#ffffff;\n }\n }\n &.dropdown-disabled {\n .react-select__control{\n opacity: 0.5;\n cursor: not-allowed !important;\n pointer-events: none !important; \n }\n }\n`;\nexport default CustomDropDown;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst DesktopTable = styled.table`\n position: relative;\n width: 100%;\n border-spacing: 0;\n table {\n position: relative;\n }\n thead {\n tr {\n text-align: left;\n background: ${Theme.gray8};\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n th {\n padding: 17px 0px 17px 16px;\n text-transform: uppercase;\n color: ${Theme.gray40};\n font-size: 11px;\n font-family: ${Theme.titleFontFamily};\n min-height: 48px;\n\n &:last-child {\n padding-right: 16px;\n }\n }\n &.gray-border-radius {\n th {\n &:first-child {\n border-top-left-radius: 10px;\n }\n &:last-child {\n border-top-right-radius: 10px;\n }\n }\n }\n }\n }\n tbody {\n position: relative;\n\n tr {\n background: ${Theme.white};\n /* &:hover {\n background: ${Theme.gray8};\n } */\n &.bg-orange-light {\n background: ${Theme.lightOrange};\n td {\n color: ${Theme.orange};\n background: ${Theme.lightOrange};\n text-transform: uppercase;\n font-size: ${Theme.extraNormal};\n font-family: ${Theme.titleFontFamily} !important;\n\n &.sticky-collapse {\n position: sticky;\n left: 0;\n z-index: 9;\n }\n }\n }\n\n &.bg-green-light {\n background: ${Theme.lightGreenBg};\n }\n td {\n color: ${Theme.black};\n padding: 22px 10px 22px 16px;\n font-size: ${Theme.extraNormal};\n border-bottom: 1px solid ${Theme.gray11};\n\n &.sticky-column {\n position: sticky;\n left: 0;\n z-index: 9;\n }\n\n &.amc-instance-td {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .creative-input {\n border: none;\n font-size: 14px;\n border: 1px solid ${Theme.gray12};\n padding: 8px;\n &:focus {\n border: 1px solid ${Theme.gray12} !important;\n }\n &.creative-input-error {\n border: 1px solid ${Theme.red};\n background: ${Theme.lightRed};\n }\n }\n\n &.border-none {\n border-bottom: none;\n }\n\n &.BPLogo {\n .company-logo {\n border-radius: 10px;\n width: 45px;\n height: 45px;\n margin-right: 14px;\n float: left;\n }\n\n .company-name {\n min-height: 20px;\n text-transform: capitalize;\n word-break: break-all;\n }\n\n .status {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n word-break: break-all;\n text-transform: capitalize;\n }\n }\n\n &.goals-no-data {\n vertical-align: top;\n }\n\n span.collapse-icon {\n width: 16px;\n height: 16px;\n background: rgb(244, 246, 252);\n margin-right: 10px;\n display: inline-block;\n text-align: center;\n vertical-align: middle;\n }\n .large-text {\n font-size: ${Theme.extraMedium};\n font-family: ${Theme.baseMediumFontFamily};\n }\n .small-text {\n font-size: ${Theme.extraSmall};\n }\n &.text-bold {\n font-family: ${Theme.titleFontFamily};\n }\n\n .text-extra-small {\n font-size: ${Theme.textExtraSmall};\n }\n &.word-break {\n word-break: break-all;\n }\n\n div.range {\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.baseMediumFontFamily};\n &.increase-rate {\n color: ${Theme.lighterGreen};\n }\n &.decrease-rate {\n color: ${Theme.red};\n }\n &.normal-font {\n font-size: ${Theme.extraNormal};\n }\n }\n\n .sub-label {\n color: ${Theme.gray40};\n }\n\n &.bg-green-light {\n background: ${Theme.lightGreenBg};\n }\n }\n }\n }\n &.metrics-table {\n tbody {\n tr td {\n font-family: ${Theme.baseMediumFontFamily};\n }\n tr:last-child td {\n border-bottom: 2px solid #e0e6e8;\n }\n }\n }\n\n &.services-playbook-table {\n tbody {\n position: relative;\n tr {\n td {\n a {\n color: #000;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n }\n }\n\n &.dsp-audience-table {\n tr {\n width: 100%;\n }\n\n thead {\n .sticky-header {\n position: sticky;\n top: 0;\n }\n }\n\n thead:first-child {\n left: 0;\n /* z-index: 100; */\n }\n\n .rh,\n .th-sticky {\n position: sticky;\n left: 0;\n z-index: 9;\n background-color: white;\n border-right: 1px solid #e0e6e8;\n }\n\n .last-column,\n .last-header {\n position: sticky;\n right: 0;\n z-index: 9;\n background-color: white;\n border-left: 1px solid #e0e6e8;\n }\n\n .th-sticky,\n .last-header {\n background-color: #f4f6fc;\n }\n tbody {\n overflow: auto;\n }\n .dsp-audience-inputbox {\n display: inline-flex;\n }\n .dsp-audienece-trash-icon {\n margin-right: 5px;\n }\n }\n .dsp-audience-createdBy-user {\n background-color: ${Theme?.gray8};\n font-size: ${Theme?.textSmall};\n line-height: 12px;\n max-width: fit-content;\n padding: 2px 10px 2px 2px;\n }\n`;\n\nexport default DesktopTable;\n","import styled from 'styled-components';\nimport Theme from '../../theme/Theme';\n\nconst ToggleSwitch = styled.div`\n &.custom-switch {\n position: relative;\n display: block;\n border-radius: 10px;\n\n &.marginTop10 {\n margin-top: 10px;\n }\n\n .label-name {\n color: #171725;\n font-size: 14px;\n padding-left: 35px;\n }\n input {\n opacity: 0;\n width: 0;\n height: 0;\n }\n\n .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${Theme.orange};\n -webkit-transition: 0.4s;\n transition: 0.4s;\n height: 16px;\n width: 28px;\n opacity: 0.4;\n\n &:before {\n position: absolute;\n content: '';\n height: 12px;\n width: 12px;\n left: 1px;\n bottom: 2px;\n background-color: white;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n }\n }\n\n input:checked + .slider {\n background-color: ${Theme.orange};\n opacity: 1;\n }\n\n input:focus + .slider {\n box-shadow: 0 0 1px ${Theme.orange};\n }\n\n input:checked + .slider:before {\n -webkit-transform: translateX(13px);\n -ms-transform: translateX(13px);\n transform: translateX(13px);\n }\n\n /* Rounded sliders */\n .slider.round {\n border-radius: 34px;\n &:before {\n border-radius: 50%;\n }\n }\n }\n`;\nexport default ToggleSwitch;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst InfoMsg = styled.div`\n color: ${Theme.orange};\n font-size: ${Theme.extraNormal};\n padding: 0;\n margin: 0 0 0 0;\n transform: translate(0, 6px);\n\n a {\n text-transform: lowercase;\n text-decoration: underline;\n display: block;\n color: ${Theme.orange};\n font-size: ${Theme.extraSmall};\n }\n`;\nexport default InfoMsg;\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\n\nimport htmlToDraft from 'html-to-draftjs';\nimport draftToHtml from 'draftjs-to-html';\nimport { Editor } from 'react-draft-wysiwyg';\nimport { EditorState, convertToRaw, ContentState, Modifier } from 'draft-js';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\nimport { bool, func, string } from 'prop-types';\n\nimport Theme from '../theme/Theme';\n\nfunction ReportTextEditor({\n id,\n setData,\n data,\n placeholder = null,\n wrapperClassName,\n toolbarClassName,\n editorClassName,\n onFocusOut,\n isCharLimit,\n}) {\n const [editorState, setEditorState] = useState(null);\n const [contentState, setContentState] = useState(null);\n const maxLength = 2000;\n\n const editotIconOptions = [\n 'inline',\n 'blockType',\n 'fontSize',\n 'fontFamily',\n 'list',\n 'textAlign',\n // 'remove',\n 'history',\n 'link',\n 'colorPicker',\n 'image',\n ];\n\n const fontFamilyOptions = [\n 'Noah Regular',\n 'Noah-Medium',\n 'Noah-Bold',\n 'Arial',\n 'Georgia',\n 'Impact',\n 'Tahoma',\n 'Times New Roman',\n\n 'Verdana',\n 'Open Sans',\n 'Helvetica-Regular',\n ];\n\n const hyperlinkOptions = {\n inDropdown: false,\n defaultTargetOption: '_blank',\n options: ['link', 'unlink'],\n };\n\n const colorPickerOptions = [\n 'rgb(0,0,0)',\n 'rgb(97,189,109)',\n 'rgb(26,188,156)',\n 'rgb(84,172,210)',\n 'rgb(44,130,201)',\n 'rgb(147,101,184)',\n 'rgb(71,85,119)',\n 'rgb(204,204,204)',\n 'rgb(65,168,95)',\n 'rgb(0,168,133)',\n 'rgb(61,142,185)',\n 'rgb(41,105,176)',\n 'rgb(85,57,130)',\n 'rgb(40,50,78)',\n 'rgb(247,218,100)',\n 'rgb(251,160,38)',\n 'rgb(235,107,86)',\n 'rgb(226,80,65)',\n 'rgb(163,143,132)',\n 'rgb(239,239,239)',\n 'rgb(255,255,255)',\n 'rgb(250,197,28)',\n 'rgb(243,121,52)',\n 'rgb(209,72,65)',\n 'rgb(184,49,47)',\n 'rgb(124,112,107)',\n 'rgb(209,213,216)',\n 'rgb(255,255,255)',\n ];\n const listOptions = {\n inDropdown: false,\n className: undefined,\n component: undefined,\n dropdownClassName: undefined,\n options: ['unordered'],\n // options: ['unordered', 'ordered', 'indent', 'outdent'],\n unordered: {\n className: undefined,\n },\n ordered: {\n className: undefined,\n },\n indent: {\n className: undefined,\n },\n outdent: {\n className: undefined,\n },\n };\n\n // use effect function\n useEffect(() => {\n let contentBlock;\n\n if (data) {\n contentBlock = htmlToDraft(data);\n } else {\n contentBlock = htmlToDraft('

');\n }\n const content = ContentState.createFromBlockArray(\n contentBlock.contentBlocks,\n );\n setEditorState(EditorState.createWithContent(content));\n setContentState(data);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // handle on editor state change events\n const onEditorStateChange = (editorData) => {\n setEditorState(editorData);\n const content = editorData.getCurrentContent();\n const info = draftToHtml(convertToRaw(content))?.replace(/ /g, '');\n setData(info);\n };\n\n // handle cpoy-paste text\n const handlePastedText = () => {\n const newContent = Modifier.insertText(\n editorState.getCurrentContent(),\n editorState.getSelection(),\n );\n onEditorStateChange(\n EditorState.push(editorState, newContent, 'insert-characters'),\n );\n return true;\n };\n\n // handle image upload events\n function uploadImageCallBack(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve({ data: { link: reader?.result } });\n reader.onerror = (error) => reject(error);\n });\n }\n\n // image upload option\n const imageUploadOptions = {\n className: isCharLimit ? 'd-none' : undefined,\n component: undefined,\n popupClassName: undefined,\n urlEnabled: false,\n uploadEnabled: true,\n alignmentEnabled: false,\n uploadCallback: uploadImageCallBack,\n previewImage: true,\n inputAccept:\n 'image/gif,image/jpeg,image/jpg,image/png,image/svg,image/svg+xml,image/webp,image/avif',\n alt: { present: true, mandatory: false },\n defaultSize: { width: 'auto', height: 'auto' },\n };\n\n const displayEditor = () => {\n return (\n \n {\n const content = editorStates.getCurrentContent();\n const info = draftToHtml(convertToRaw(content))?.replace(\n / /g,\n '',\n );\n onFocusOut(info);\n }}\n onEditorStateChange={(event) => onEditorStateChange(event)}\n handleBeforeInput={(val) => {\n const textLength = editorState\n .getCurrentContent()\n .getPlainText().length;\n if (val && textLength >= maxLength) {\n return 'handled';\n }\n return 'not-handled';\n }}\n handlePastedText={(event) => {\n handlePastedText(event);\n }}\n stripPastedStyles\n placeholder={placeholder === null ? ' Enter note' : placeholder}\n toolbar={{\n options: editotIconOptions,\n link: hyperlinkOptions,\n fontFamily: {\n options: fontFamilyOptions,\n },\n colorPicker: {\n className: undefined,\n component: undefined,\n popupClassName: undefined,\n colors: colorPickerOptions,\n },\n list: listOptions,\n image: imageUploadOptions,\n }}\n />\n \n );\n };\n\n return
{displayEditor()}
;\n}\n\nexport default ReportTextEditor;\nReportTextEditor.defaultProps = {\n id: '',\n wrapperClassName: '',\n toolbarClassName: '',\n editorClassName: '',\n data: '',\n placeholder: '',\n isCharLimit: false,\n setData: () => {},\n onFocusOut: () => {},\n};\n\nReportTextEditor.propTypes = {\n id: string,\n data: string,\n placeholder: string,\n wrapperClassName: string,\n toolbarClassName: string,\n editorClassName: string,\n isCharLimit: bool,\n setData: func,\n onFocusOut: func,\n};\n\nexport const EditorContainer = styled.div`\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n p,\n span {\n text-transform: unset;\n letter-spacing: unset;\n font-family: inherit;\n text-decoration: inherit;\n text-decoration-thickness: 2px !important;\n text-underline-position: under;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n margin: 10px 0;\n }\n\n h1 {\n font-size: 40px;\n line-height: 40px;\n }\n h2 {\n font-size: 32px;\n line-height: 32px;\n }\n h3 {\n font-size: 28px;\n line-height: 28px;\n }\n h4 {\n font-size: 24px;\n line-height: 24px;\n }\n h5 {\n font-size: 20px;\n line-height: 20px;\n }\n h6 {\n font-size: 18px;\n line-height: 18px;\n }\n\n h1 span {\n background-color: inherit;\n padding: inherit;\n font-size: inherit !important;\n vertical-align: inherit;\n font-family: inherit;\n font-weight: inherit;\n text-transform: inherit;\n text-align: inherit;\n color: inherit;\n border-radius: inherit;\n letter-spacing: inherit;\n margin-left: inherit;\n }\n\n .DraftEditor-editorContainer {\n line-height: 18px;\n }\n .rdw-editor-wrapper {\n border-radius: 4px;\n }\n .rdw-editor-toolbar {\n border: none;\n padding: 0;\n }\n .rdw-link-decorator-icon {\n left: auto;\n margin-left: 2px;\n }\n .rdw-editor-main {\n background: ${Theme.gray8};\n border: 1px solid ${Theme.gray45};\n padding: 10px 0;\n min-height: 30px;\n margin: 0 5px;\n }\n\n .rdw-colorpicker-modal {\n width: 200px;\n height: 200px;\n }\n .rdw-colorpicker-modal-header {\n margin: 10px 0 !important;\n }\n .rdw-colorpicker-modal-style-label {\n font-size: 14px;\n margin: 0 !important;\n }\n .rdw-colorpicker-modal-style-label-active {\n color: #000000;\n font-weight: bold;\n border-bottom: 2px solid #ff5933;\n }\n ul.rdw-dropdown-optionwrapper {\n width: 150px;\n padding: 5px 0 5px 5px;\n box-shadow: 0px 2px 14px 0px rgba(0, 0, 0, 0.2);\n border-radius: 5px;\n li {\n color: #000000;\n font-size: 14px;\n font-family: ${Theme.baseFontFamily};\n padding: 0px 5px 0 10px;\n }\n\n li.rdw-dropdownoption-active {\n color: #ffffff !important;\n background: ${Theme.orange};\n font-weight: bold;\n }\n li:hover {\n color: #000000 !important;\n background: ${Theme.lightOrange};\n font-weight: bold;\n }\n li.public-DraftStyleDefault-unorderedListItem.public-DraftStyleDefault-reset.public-DraftStyleDefault-depth0.public-DraftStyleDefault-listLTR::before {\n content: '.';\n position: absolute;\n width: 6px;\n left: -16px;\n color: inherit;\n height: 6px;\n display: inline-block;\n background: #000000;\n border-radius: 50%;\n top: 30%;\n }\n }\n .rdw-dropdown-wrapper.rdw-fontsize-dropdown {\n ul {\n width: 50px;\n }\n }\n ul.public-DraftStyleDefault-ol {\n padding: 5px 0 5px 5px;\n }\n .public-DraftStyleDefault-orderedListItem.public-DraftStyleDefault-listLTR:before {\n left: -30px;\n }\n .rdw-link-modal {\n width: 300px;\n height: 170px;\n border: none;\n border-radius: 5px;\n font-family: ${Theme.baseFontFamily};\n box-shadow: 0px 2px 14px 0px rgba(0, 0, 0, 0.2);\n }\n .rdw-link-modal-target-option {\n display: none;\n }\n .rdw-link-modal-label {\n font-size: 16px;\n color: #000000;\n font-family: ${Theme.baseMediumFontFamily};\n }\n .rdw-link-modal-input,\n .rdw-image-modal-alt-input,\n .rdw-image-modal-size-input {\n margin: 5px 0 10px 0;\n background: #f4f6fc;\n height: auto;\n border-radius: 5px;\n border: 1px solid #f1f1f1;\n padding: 5px;\n }\n .rdw-link-modal-buttonsection {\n margin: 10px auto 0 auto;\n }\n .rdw-link-modal-btn,\n .rdw-image-modal-btn {\n width: 100px;\n height: 32px;\n border: none;\n border-radius: 5px;\n background: ${Theme.orange};\n color: #ffffff;\n font-family: ${Theme.baseMediumFontFamily};\n }\n .public-DraftStyleDefault-block {\n min-height: 0px !important;\n }\n .rdw-image-modal {\n width: 300px;\n }\n .rdw-image-modal-size {\n margin: 0;\n }\n .rdw-image-modal-header-option {\n font-size: 16px;\n color: #000000;\n }\n .rdw-image-modal-header-label-highlighted {\n background: #ff5933;\n border-bottom: 2px solid #ff5933;\n }\n .rdw-image-modal-upload-option-label {\n font-size: 14px;\n }\n .rdw-image-modal-alt-lbl {\n font-size: 14px;\n color: #000000;\n }\n .rdw-image-modal-alt-input {\n width: 75%;\n }\n figure {\n padding: 0px;\n margin: 0;\n }\n figure img {\n max-width: 100%;\n height: auto;\n }\n .rdw-image-center {\n justify-content: left;\n }\n`;\n","import React from 'react';\n\nimport Select from 'react-select';\n\nimport Theme from '../theme/Theme';\nimport CustomDropDown from './CustomDropDown';\n\nexport const DropDown = (\n id,\n className,\n options,\n placeholder,\n components,\n defaultValue,\n handleOnChange,\n isDisabled,\n reff = null,\n selectedValue,\n isSearchable = true,\n isLoading = isDisabled,\n) => {\n const YearOverYearOptionStyles = {\n menuList: (styles) => ({\n ...styles,\n maxHeight: '340px !important',\n }),\n };\n\n return (\n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n value={selectedValue}\n onChange={(event) => handleOnChange(event)}\n styles={{\n YearOverYearOptionStyles,\n menuPortal: (base) => ({ ...base, zIndex: 9999 }),\n }}\n // menuPortalTarget={document.body}\n isLoading={isLoading}\n isOptionDisabled={(option) => option.isDisabled}\n />\n \n );\n};\n\nexport default DropDown;\n","import React, { useEffect, useRef } from 'react';\n\nimport styled from 'styled-components';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../theme/Theme';\nimport CheckBox from './CheckBox';\n\nfunction CustomMultiSelectDropDownFilter({\n filterId,\n customStyle,\n dropdownLabel,\n options,\n onChangeHandler,\n selectedValues,\n isDropdownMenuOpen,\n setIsDropdownMenuOpen,\n dropdownIconStyle,\n dropdownOptionClass,\n isDropdownMenuDisabled,\n}) {\n const dropdownRef = useRef(null);\n\n function useOutsideAlerter(ref, type) {\n useEffect(() => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setIsDropdownMenuOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, type]);\n }\n\n useOutsideAlerter(dropdownRef, 'revenue');\n\n // handle is option checked or unchecked\n const isOptionchecked = (item) => {\n const isChecked = selectedValues?.some(\n (option) => option?.value === item?.value,\n );\n return isChecked;\n };\n\n /* ********** main return statement of this component ********** */\n return (\n {\n e.stopPropagation();\n }}\n >\n {\n setIsDropdownMenuOpen(!isDropdownMenuOpen);\n }}\n id=\"clickbox\"\n >\n {dropdownLabel}\n \n \n\n {isDropdownMenuOpen ? (\n
\n \n {options?.map((item) => {\n return (\n \n \n \n {\n onChangeHandler(event, item);\n }}\n />\n \n {item.label}\n \n \n \n );\n })}\n \n
\n ) : null}\n \n );\n}\n\nexport default CustomMultiSelectDropDownFilter;\n\nCustomMultiSelectDropDownFilter.defaultProps = {\n dropdownLabel: '',\n dropdownOptionClass: '',\n isDropdownMenuOpen: false,\n isDropdownMenuDisabled: false,\n options: [],\n customStyle: {},\n dropdownIconStyle: {},\n selectedValues: [],\n onChangeHandler: () => {},\n setIsDropdownMenuOpen: () => {},\n};\n\nCustomMultiSelectDropDownFilter.propTypes = {\n dropdownLabel: string,\n filterId: string.isRequired,\n dropdownOptionClass: string,\n isDropdownMenuOpen: bool,\n isDropdownMenuDisabled: bool,\n onChangeHandler: func,\n setIsDropdownMenuOpen: func,\n customStyle: shape({}),\n dropdownIconStyle: shape({}),\n options: arrayOf(shape({})),\n selectedValues: arrayOf(shape({})),\n};\n\nconst MultiSelectDropDown = styled.div`\n .dropDownValuecontainer {\n border-radius: 6px;\n position: relative;\n border: 1px solid ${Theme.gray45};\n width: 100%;\n min-width: 93px;\n text-align: left;\n font-size: ${Theme.extraNormal};\n font-family: ${Theme.baseMediumFontFamily};\n border-radius: 6px;\n min-height: 40px;\n color: ${Theme.gray90};\n // background-color: ${Theme.gray6};\n padding: 11px 7px;\n\n cursor: pointer;\n span.selected-list {\n position: fixed;\n color: ${Theme.gray90};\n white-space: nowrap;\n // background-color: #fafafb;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 65%;\n margin-left: 4px;\n position: absolute;\n }\n .dropdown-arrow-icon {\n position: absolute;\n right: 9px;\n top: 7px;\n }\n\n &.onFocus {\n border: 2px solid ${Theme.orange};\n }\n }\n\n /* &#AMCDashboardBpFilter {\n .dropdown-arrow-icon {\n right: 11px;\n top: 11px;\n color: ${Theme.black};\n font-size: 16px;\n }\n } */\n .dropdown-option-menu {\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n padding: 0 14px;\n position: absolute;\n z-index: 9;\n color: ${Theme.gray90};\n text-align: left;\n top: 55px;\n width: 100%;\n overflow: auto;\n max-height: 300px;\n\n &.hide {\n display: none;\n }\n &.show {\n display: block;\n }\n .options-list {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n display: block;\n padding: 0;\n margin: 0;\n }\n }\n }\n`;\n","import { string, number, bool } from 'prop-types';\n\nexport default function AddThousandSeparator({\n value,\n prefix,\n suffix,\n showPlusSign,\n}) {\n const handleThousandSeperator = () => {\n if (value !== null && value !== 0 && value !== undefined) {\n value = Number(value.toFixed(2));\n return `${value < 0 ? '-' : showPlusSign ? '+' : ''}${prefix || ''}${value\n .toString()\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}${suffix || ''}`;\n }\n return 0.0;\n };\n\n /* ********** main return statement of this component ********** */\n return handleThousandSeperator();\n}\n\nAddThousandSeparator.defaultProps = {\n prefix: '',\n suffix: '',\n value: null,\n showPlusSign: false,\n};\n\nAddThousandSeparator.propTypes = {\n prefix: string,\n suffix: string,\n value: number,\n showPlusSign: bool,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport Select from 'react-select';\nimport { arrayOf, bool, func, string, shape } from 'prop-types';\n\n// local file imports\nimport Theme from '../theme/Theme';\nimport CustomDropDown from './CustomDropDown';\nimport DropDownIndicator from './DropDownIndicator';\n\nconst SingleSelectDropdown = ({\n // string\n filterId,\n className,\n // boolean\n isApiCall,\n isSearchable,\n // objects\n selectedValue,\n defaultValue,\n // array\n dropdownOptions,\n // function\n onChangeHandler,\n dropdownComponents,\n placeholder,\n}) => {\n // get dropdwon indicator for dropdown filter\n const getSelectComponents = () => {\n return {\n DropDownIndicator,\n };\n };\n\n // render custom dropdown filter components\n const renderSingleSelectDropdownFilter = () => {\n return (\n \n onChangeHandler(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n styles={{\n menuPortal: (base) => ({ ...base, zIndex: 9999 }),\n option: (provided) => ({\n ...provided,\n color: 'black',\n }),\n }}\n // menuPortalTarget={document.body}\n isLoading={isApiCall}\n isSearchable={isSearchable}\n isOptionDisabled={(option) => option?.isDisabled}\n />\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return
{renderSingleSelectDropdownFilter()}
;\n};\n\nexport default SingleSelectDropdown;\n\nSingleSelectDropdown.defaultProps = {\n // string\n className: '',\n placeholder: '',\n // boolean\n isApiCall: false,\n isSearchable: false,\n // object\n defaultValue: {},\n // function\n dropdownComponents: () => {},\n};\n\nSingleSelectDropdown.propTypes = {\n // string\n filterId: string.isRequired,\n placeholder: string,\n className: string,\n // boolean\n isApiCall: bool,\n isSearchable: bool,\n // object\n selectedValue: shape({}).isRequired,\n defaultValue: shape({}),\n // array\n dropdownOptions: arrayOf(shape({})).isRequired,\n // function\n onChangeHandler: func.isRequired,\n dropdownComponents: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback } from 'react';\n\nimport Select, { components } from 'react-select';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../theme/Theme';\nimport CheckBox from './CheckBox';\nimport CustomDropDown from './CustomDropDown';\nimport DropDownIndicator from './DropDownIndicator';\n\nexport default function MultiSelectDropdown({\n options,\n label,\n value,\n multiSelectedValues,\n setMultiSelectedValues,\n handleMultiSelectChange,\n isDisabled = false,\n handleOnMenuClose,\n}) {\n const { Option, ValueContainer } = components;\n\n const selectOption = (dataProps) => {\n return (\n
\n \n
\n );\n };\n\n const valueContainer = useCallback(\n ({ children, getValue, ...dataProps }) => {\n const updatedValue = [...children];\n const { length } = getValue();\n switch (length) {\n case 0:\n updatedValue[0] = `Select ${label}`;\n break;\n case 1:\n updatedValue[0] = dataProps?.selectProps?.value?.[0]?.label;\n break;\n default:\n updatedValue[0] = `${\n dataProps?.selectProps?.value?.[0]?.label === 'All' ||\n dataProps?.selectProps?.value?.[0]?.value === 'all'\n ? `All ${label}`\n : `Multiple ${label}`\n } `;\n break;\n }\n return (\n \n {updatedValue}\n \n );\n },\n [label, value],\n );\n\n const getAllComponents = () => {\n return {\n Option: selectOption,\n ValueContainer: valueContainer,\n DropDownIndicator,\n };\n };\n\n const handleChange = (event, values) => {\n if (values.action === 'select-option') {\n if (values.option?.value === 'all')\n setMultiSelectedValues({\n ...multiSelectedValues,\n [value]: [{ label: 'All', value: 'all' }, ...options],\n });\n if (values.option?.value !== 'all')\n setMultiSelectedValues((prevState) => ({\n ...prevState,\n [value]:\n event?.length === options?.length\n ? [{ label: 'All', value: 'all' }, ...event]\n : event,\n }));\n }\n if (values.action === 'deselect-option') {\n if (values.option?.value === 'all')\n setMultiSelectedValues({\n ...multiSelectedValues,\n [value]: [options[0]],\n });\n if (values.option?.value !== 'all')\n setMultiSelectedValues({\n ...multiSelectedValues,\n [value]: event.filter((op) => op.value !== 'all'),\n });\n }\n };\n\n const renderValue = (type) => {\n // if - for default 'all' option should be selected.\n if (\n type === 'projects' &&\n options?.length > 1 &&\n options?.length === multiSelectedValues?.projects?.length\n ) {\n return [{ label: 'All', value: 'all' }, ...multiSelectedValues?.[value]];\n }\n return multiSelectedValues?.[value];\n };\n return (\n <>\n \n 1\n ? [{ label: 'All', value: 'all' }, ...options]\n : options?.length === 1\n ? options\n : []\n }\n isMulti\n value={renderValue(value)}\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n components={getAllComponents()}\n styles={{\n option: ({ isSelected }) => {\n return {\n backgroundColor: isSelected ? 'white' : null,\n margin: ' 15px',\n };\n },\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.white,\n primary: Theme.orange,\n primary50: Theme.white,\n },\n })}\n isClearable={false}\n isSearchable={false}\n placeholder={`Select ${label}`}\n onChange={(event, values) => {\n handleChange(event, values);\n handleMultiSelectChange(event, value, values);\n }}\n isOptionDisabled={(op) =>\n multiSelectedValues?.[value]?.length === 1\n ? op.value === multiSelectedValues?.[value]?.[0]?.value\n : false\n }\n name={value}\n onMenuClose={() => handleOnMenuClose()}\n />\n \n \n );\n}\n\nMultiSelectDropdown.defaultProps = {\n isDisabled: false,\n handleMultiSelectChange: () => {},\n handleOnMenuClose: () => {},\n};\n\nMultiSelectDropdown.propTypes = {\n isDisabled: bool,\n options: arrayOf(shape({})).isRequired,\n value: string.isRequired,\n label: string.isRequired,\n multiSelectedValues: arrayOf(shape({})).isRequired,\n setMultiSelectedValues: func.isRequired,\n handleMultiSelectChange: func,\n handleOnMenuClose: func,\n};\n","import React, { useCallback } from 'react';\n\nimport Select, { components } from 'react-select';\nimport { arrayOf, func, bool, shape, string } from 'prop-types';\n\nimport Theme from '../theme/Theme';\nimport CheckBox from './CheckBox';\nimport CustomDropDown from './CustomDropDown';\nimport DropDownIndicator from './DropDownIndicator';\n\nexport default function MultiSelectSearchableDropdown({\n filterId,\n options,\n label,\n value,\n multiSelectedValues,\n setMultiSelectedValues,\n handleMultiSelectChange,\n isLoading,\n isSearchable,\n handleOnMenuClose,\n allObjectOptionDisabled = false,\n}) {\n const { Option, ValueContainer } = components;\n const allObj = { label: `All ${label}`, value: 'all' };\n\n // custom html for dropdwon menu options\n const selectOption = (dataProps) => {\n return (\n
\n \n
\n );\n };\n\n // custom html for selected values from dropdwon options\n const valueContainer = useCallback(\n ({ children, getValue, ...dataProps }) => {\n const updatedValue = [...children];\n const { length } = getValue();\n const inputValue = dataProps?.selectProps?.inputValue;\n\n if (inputValue?.length > 0) {\n updatedValue[0] = '';\n } else {\n switch (length) {\n case 0:\n updatedValue[0] = `Select ${label}`;\n break;\n case 1:\n updatedValue[0] = dataProps?.selectProps?.value?.[0]?.label;\n break;\n default:\n updatedValue[0] = `${\n dataProps?.selectProps?.value?.[0]?.value === 'all'\n ? `All ${label}`\n : `Multiple ${label}`\n } `;\n break;\n }\n }\n\n return (\n \n
\n {updatedValue}\n
\n
\n );\n },\n [label],\n );\n\n // get react-select components\n const getAllComponents = () => {\n return {\n Option: selectOption,\n ValueContainer: valueContainer,\n DropdownIndicator: DropDownIndicator,\n };\n };\n\n // handle dropdown change events\n const handleChange = (event, action) => {\n const userAction = action?.action;\n const selectedValue = action?.option?.value;\n\n if (userAction === 'select-option') {\n if (selectedValue === 'all')\n setMultiSelectedValues({\n ...multiSelectedValues,\n [value]: [allObj, ...options],\n });\n if (selectedValue !== 'all')\n setMultiSelectedValues((prevState) => ({\n ...prevState,\n [value]:\n event?.length === options?.length ? [allObj, ...event] : event,\n }));\n }\n if (userAction === 'deselect-option') {\n if (selectedValue === 'all')\n setMultiSelectedValues({\n ...multiSelectedValues,\n [value]: [],\n });\n if (selectedValue !== 'all')\n setMultiSelectedValues({\n ...multiSelectedValues,\n [value]: event?.filter((op) => op?.value !== 'all'),\n });\n }\n };\n\n return (\n <>\n \n 1\n ? [allObj, ...options]\n : options?.length === 1\n ? options\n : []\n }\n isMulti\n value={multiSelectedValues?.[value]}\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n components={getAllComponents()}\n styles={{\n option: ({ isSelected }) => {\n return {\n backgroundColor: isSelected ? 'white' : null,\n margin: ' 15px',\n };\n },\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.white,\n primary: Theme.orange,\n primary50: Theme.white,\n },\n })}\n isClearable={false}\n backspaceRemovesValue={false}\n isSearchable={isSearchable}\n placeholder={`Select ${label}`}\n onChange={(event, action) => {\n handleChange(event, action);\n handleMultiSelectChange(event, action);\n }}\n onMenuClose={() => handleOnMenuClose()}\n isOptionDisabled={(op) => {\n if (allObjectOptionDisabled && op.label === 'All Campaigns')\n return true;\n return op?.isDisabled;\n }}\n name={value}\n isLoading={isLoading}\n />\n \n \n );\n}\n\nMultiSelectSearchableDropdown.defaultProps = {\n isLoading: false,\n isSearchable: false,\n allObjectOptionDisabled: false,\n\n handleMultiSelectChange: () => {},\n handleOnMenuClose: () => {},\n};\n\nMultiSelectSearchableDropdown.propTypes = {\n isLoading: bool,\n isSearchable: bool,\n allObjectOptionDisabled: bool,\n\n filterId: string.isRequired,\n value: string.isRequired,\n label: string.isRequired,\n\n multiSelectedValues: shape({}).isRequired,\n\n options: arrayOf(shape({})).isRequired,\n\n setMultiSelectedValues: func.isRequired,\n handleMultiSelectChange: func,\n handleOnMenuClose: func,\n};\n","const convertImageToBase64 = async (imgUrl) => {\n const data = await fetch(imgUrl);\n const blob = await data?.blob();\n\n const base64Url = new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.readAsDataURL(blob);\n fileReader.onload = () => resolve({ data: fileReader?.result });\n fileReader.onerror = (error) => reject(error);\n });\n return base64Url;\n};\n\nexport default async function imageToDataURL(image) {\n const result = await convertImageToBase64(image)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error?.response;\n });\n return result;\n}\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport { string, node } from 'prop-types';\n\nimport Theme from '../theme/Theme';\nimport { TelescopeIcon } from '../theme/images';\n\nexport default function NoRecordFound({\n type,\n titleClassName,\n subTitleClassName,\n title,\n subTitle,\n image,\n imageClassName,\n}) {\n return (\n \n \n {type === 'creative-noData' ? null : (\n \"No\n )}\n

{title}

\n {subTitle}\n \n
\n );\n}\n\nNoRecordFound.defaultProps = {\n type: '',\n titleClassName: '',\n subTitleClassName: '',\n title: '',\n subTitle: '',\n image: TelescopeIcon,\n imageClassName: '',\n};\n\nNoRecordFound.propTypes = {\n type: string,\n titleClassName: string,\n subTitleClassName: string,\n title: string,\n subTitle: string,\n image: node,\n imageClassName: string,\n};\n\nconst NoRecord = styled.div`\n position: ${(props) =>\n props.type === 'brand' || props.type === 'creative' ? 'unset' : 'absolute'};\n right: 0;\n left: 0;\n top: ${(props) =>\n props.type === 'feedback'\n ? 0\n : props.type === 'creative-noData'\n ? '270px'\n : props.type === 'creative'\n ? '130px'\n : '0'};\n padding-top: 100px;\n margin: ${(props) => (props.type === 'brand' ? 'auto' : '')};\n\n .NoRecordFound {\n margin: auto;\n text-align: center;\n }\n\n .no-record-found {\n img {\n width: 240px;\n height: 240px;\n }\n p {\n font-size: 16px;\n color: ${Theme.gray90};\n }\n .customize-Image {\n width: 64px;\n height: 64px;\n }\n strong {\n font-size: 24px;\n color: ${Theme.gray90};\n }\n .customize-text {\n font-size: 22px;\n color: ${Theme.black};\n font-weight: bold;\n margin: 24px 0 5px 0;\n }\n .sub-title-text {\n font-size: 14px;\n color: ${Theme.gray85};\n }\n }\n`;\n","import styled from 'styled-components';\n\nimport Theme from '../theme/Theme';\n\nconst VisibleScrollableTable = styled.div`\n overflow: auto;\n ::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n margin-top: 10px;\n }\n ::-webkit-scrollbar-thumb {\n background: ${Theme.gray25} !important;\n border-radius: 4px;\n }\n ::-webkit-scrollbar-track {\n background: ${Theme.gray6} !important;\n }\n table {\n min-width: ${(props) => props?.tableMinWidth};\n }\n\n .sticky-column {\n position: sticky;\n left: 0;\n z-index: 9;\n background: ${Theme.white};\n &.header {\n background: ${Theme.gray8};\n }\n }\n .border-right-gray {\n border-right: ${(props) =>\n props?.tableMinWidth !== null ? `2px solid ${Theme.gray25}` : 'none'};\n }\n .text-ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .text-ellipsis-200 {\n max-width: 200px;\n }\n`;\n\nexport default VisibleScrollableTable;\n","import styled from 'styled-components';\n\nimport Theme from '../theme/Theme';\n\nconst DropDownSelectMonthPicker = styled.div`\n .dropdown-select-container {\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray2};\n border-radius: 20px;\n width: 230px;\n height: 40px;\n color: ${Theme.black};\n padding: 11px 2px 0 14px;\n text-align: left;\n cursor: pointer;\n position: relative;\n\n @media only screen and (max-width: 450px) {\n width: 160px;\n }\n .dropdown-icon {\n width: 25px;\n height: 25px;\n position: absolute;\n top: 8px;\n right: 10px;\n }\n }\n\n .month-picker-dropdown {\n background-color: ${Theme.white};\n border-radius: 8px;\n max-width: 400px;\n width: 100%;\n position: absolute;\n right: 15px;\n z-index: 22;\n box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.1);\n padding: 15px;\n top: 45px;\n\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n text-align: left;\n .date-range {\n display: inline-block;\n text-align: left;\n margin-right: 20px;\n }\n }\n .cross-icon {\n position: absolute;\n top: 15px;\n right: 15px;\n width: 16px;\n }\n @media only screen and (max-width: 500px) {\n width: 300px;\n }\n }\n`;\n\nexport default DropDownSelectMonthPicker;\n","import { string } from 'prop-types';\n\nimport React from 'react';\n\nfunction MultipleDashedLineLabel({ label, className }) {\n return (\n
\n
    \n
  • \n
  • \n
\n {label}\n
\n );\n}\n\nexport default MultipleDashedLineLabel;\n\nMultipleDashedLineLabel.defaultProps = {\n label: '',\n className: '',\n};\n\nMultipleDashedLineLabel.propTypes = {\n label: string,\n className: string,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback } from 'react';\n\nimport Select, { components } from 'react-select';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport Theme from '../theme/Theme';\nimport CheckBox from './CheckBox';\nimport CustomDropDown from './CustomDropDown';\nimport DropDownIndicator from './DropDownIndicator';\n\nexport default function MultiSelectDropdownWithoutAll({\n options,\n label,\n multiSelectedValues,\n setMultiSelectedValues,\n handleMultiSelectChange,\n isDisabled = false,\n handleOnMenuClose,\n defaultSelectionCount = 0,\n multiselectLabel = null,\n}) {\n const { Option, ValueContainer } = components;\n\n const selectOption = (dataProps) => {\n return (\n
\n \n
\n );\n };\n\n const valueContainer = useCallback(\n ({ children, getValue, ...dataProps }) => {\n const updatedValue = [...children];\n const { length } = getValue();\n switch (length) {\n case 0:\n updatedValue[0] = `Select ${label}`;\n break;\n case 1:\n updatedValue[0] = dataProps?.selectProps?.value?.[0]?.label;\n break;\n default:\n updatedValue[0] =\n multiselectLabel !== null\n ? multiselectLabel\n : `${`Multiple ${label}`}`;\n break;\n }\n return (\n \n {updatedValue}\n \n );\n },\n [label],\n );\n\n const getAllComponents = () => {\n return {\n Option: selectOption,\n ValueContainer: valueContainer,\n DropdownIndicator: DropDownIndicator,\n };\n };\n\n const handleChange = (event, values) => {\n if (values.action === 'select-option') {\n setMultiSelectedValues(event);\n }\n\n // event.length >= defaultSelectionCount - for - atleat 1 option should be selected\n if (\n values.action === 'deselect-option' &&\n event.length >= defaultSelectionCount\n ) {\n setMultiSelectedValues(event);\n }\n };\n\n return (\n <>\n \n {\n return {\n backgroundColor: isSelected ? 'white' : null,\n margin: ' 15px',\n };\n },\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.white,\n primary: Theme.orange,\n primary50: Theme.white,\n },\n })}\n isClearable={false}\n isSearchable={false}\n isLoading={isDisabled}\n placeholder={`Select ${label}`}\n onChange={(event, values) => {\n handleChange(event, values);\n handleMultiSelectChange(event, values);\n }}\n isOptionDisabled={(op) => op.isDisabled}\n onMenuClose={() => handleOnMenuClose()}\n />\n \n \n );\n}\n\nMultiSelectDropdownWithoutAll.defaultProps = {\n isDisabled: false,\n defaultSelectionCount: 0,\n multiselectLabel: '',\n handleMultiSelectChange: () => {},\n handleOnMenuClose: () => {},\n};\n\nMultiSelectDropdownWithoutAll.propTypes = {\n isDisabled: bool,\n defaultSelectionCount: number,\n multiselectLabel: string,\n options: arrayOf(shape({})).isRequired,\n label: string.isRequired,\n multiSelectedValues: arrayOf(shape({})).isRequired,\n setMultiSelectedValues: func.isRequired,\n handleMultiSelectChange: func,\n handleOnMenuClose: func,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\n// local file imports\nimport ToggleButton from './ToggleButton';\n\nfunction DailyWeeklyMonthlyToggle({\n // boolean\n loader,\n // string\n toggleId,\n toggleState,\n // array\n toggleOptions,\n // function\n toggleEventHandler,\n}) {\n return (\n \n
\n
    \n {toggleOptions?.map((item) => {\n return (\n
  • \n {\n toggleEventHandler(item?.value);\n }}\n />\n \n
  • \n );\n })}\n
\n
\n
\n );\n}\n\n/* ********** Main return statement of this component ********** */\nexport default DailyWeeklyMonthlyToggle;\n\nDailyWeeklyMonthlyToggle.defaultProps = {\n // boolean\n loader: false,\n // string\n toggleId: '',\n toggleState: 'daily',\n // array\n toggleOptions: [],\n // function\n toggleEventHandler: () => {},\n};\n\nDailyWeeklyMonthlyToggle.propTypes = {\n // boolean\n loader: bool,\n // string\n toggleId: string,\n toggleState: string,\n // array\n toggleOptions: arrayOf(shape({})),\n // function\n toggleEventHandler: func,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport { string } from 'prop-types';\n\n// local file imports\nimport Theme from '../theme/Theme';\nimport { CompanyDefaultUser } from '../theme/images';\n\nfunction BrandPartnerProfile({ bpName, assignedUser, logoURL }) {\n /* ********** Main return statement of this component ********** */\n return (\n \n \n
{bpName}
\n
{assignedUser}
\n
\n \n );\n}\n\nexport default BrandPartnerProfile;\n\nBrandPartnerProfile.defaultProps = {\n bpName: '',\n assignedUser: '',\n logoURL: '',\n};\nBrandPartnerProfile.propTypes = {\n bpName: string,\n assignedUser: string,\n logoURL: string,\n};\n\nconst ProfileStyle = styled.div`\n .companyLogo {\n border-radius: 10px;\n width: 45px;\n height: 45px;\n margin-bottom: 8px;\n float: left;\n margin-right: 14px;\n clear: both;\n }\n\n .companyName {\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n font-weight: 600;\n min-height: 20px;\n text-transform: capitalize;\n\n &.LargecompanyName {\n font-size: ${Theme.title};\n margin-bottom: 10px;\n }\n &.text-ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n .companyStatus {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n word-break: break-all;\n text-transform: capitalize;\n }\n @media only screen and (min-width: 768px) {\n .mw-80 {\n max-width: 80%;\n }\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst CollapseTableMobileView = styled.div`\n .shape-without-border {\n position: relative;\n }\n .capsule-collpase {\n border-radius: 20px;\n bottom: 0;\n border: 1px solid ${Theme.gray11};\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n font-family: Noah-Medium;\n background: ${Theme.white};\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n padding: 5px 10px 3px 12px;\n text-align: center;\n position: absolute;\n margin: -18px auto;\n right: 0;\n left: 0;\n }\n .asin-trash {\n padding-right: 5px;\n }\n\n .display-flex {\n display: flex;\n }\n`;\n\nexport default CollapseTableMobileView;\n","import React, { useState } from 'react';\n\nimport { toast } from 'react-toastify';\nimport { useForm } from 'react-hook-form';\nimport { shape, string } from 'prop-types';\n\nimport { updatePassword } from '../../api';\nimport { userDetails } from '../../constants';\nimport { PasswordFormContainer } from '../../common/Styles/HeaderStyles';\nimport { CloseEyeIcon, smallEyeIcon } from '../../theme/images';\nimport { Button, ErrorMsg, PageLoader, InputFormField } from '../../common';\n\nexport default function EditPassword({ userInfo }) {\n const { register, handleSubmit, errors, watch, reset } = useForm();\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n const [showPassword, setShowPassword] = useState({\n old_password: false,\n new_password: false,\n });\n const [apiError, setApiError] = useState({});\n\n const onSubmit = (data) => {\n setIsLoading({ loader: true, type: 'button' });\n updatePassword(data, userInfo.id).then((response) => {\n if (response.status === 400) {\n setApiError(response.data);\n setIsLoading({ loader: false, type: 'button' });\n } else if (response.status === 200) {\n setIsLoading({ loader: false, type: 'button' });\n toast.success('Password Updated!');\n reset();\n }\n });\n };\n\n const checkFields = () => {\n if (\n Object.values(watch()).length === 0 ||\n (Object.values(watch())[0] === undefined &&\n Object.values(watch())[1] === undefined) ||\n (Object.values(watch())[0] === '' && Object.values(watch())[1] === '')\n ) {\n return true;\n }\n return false;\n };\n\n const generateHTML = (item) => {\n const fields = [];\n fields.push(\n ,\n );\n return fields;\n };\n\n return (\n \n
\n
\n
\n \n {userDetails\n .filter((part) => part.section === 3)\n .map((item) => (\n \n {generateHTML(item)}\n {errors?.[item.key]?.message}\n {apiError?.[item.key]?.[0]}\n \n ))}\n \n
\n
\n \n {userDetails\n .filter((part) => part.section === 4)\n .map((item) => (\n \n {generateHTML(item)}\n {errors?.[item.key]?.message}\n {apiError?.[item.key]?.[0]}\n \n ))}\n \n
\n \n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Update password'\n )}\n \n
\n
\n
\n );\n}\n\nEditPassword.propTypes = {\n userInfo: shape({\n id: string,\n }).isRequired,\n};\n","/* eslint no-shadow: \"off\" */\nimport axiosInstance from '../../axios';\nimport { API_CONTACT, API_CUSTOMER } from '../../constants/ApiConstants';\nimport * as actionTypes from './actionTypes';\n\nexport const customerRequestInitiated = () => {\n return {\n type: actionTypes.CUSTOMER_REQUEST_INITIATED,\n };\n};\n\nexport const customerRequestSuccess = (data) => {\n return {\n type: actionTypes.CUSTOMER_REQUEST_SUCCESS,\n payload: data,\n };\n};\n\nexport const setCustomerSelectedTab = (data) => {\n return {\n type: actionTypes.CUSTOMER_SELECTED_TAB,\n tab: data,\n };\n};\n\nexport const customerRequestFail = (error) => {\n return {\n type: actionTypes.CUSTOMER_REQUEST_FAIL,\n error,\n };\n};\n\nexport const getCustomerDetails = (id, showLoaderExceptGoals = true) => {\n return (dispatch) => {\n if (showLoaderExceptGoals) dispatch(customerRequestInitiated());\n axiosInstance\n .get(`${API_CUSTOMER + id}/`)\n .then((response) => {\n dispatch(customerRequestSuccess(response.data));\n })\n .catch((error) => {\n dispatch(customerRequestFail(error));\n });\n };\n};\n\nexport const contactRequestInitiated = () => {\n return {\n type: actionTypes.CONTACT_REQUEST_INITIATED,\n };\n};\n\nexport const contactRequestSuccess = (data) => {\n return {\n type: actionTypes.CONTACT_REQUEST_SUCCESS,\n contact: data,\n };\n};\n\nexport const contactRequestFail = (error) => {\n return {\n type: actionTypes.CONTACT_REQUEST_FAIL,\n error,\n };\n};\n\nexport const getContactDetails = (id) => {\n return (dispatch) => {\n dispatch(contactRequestInitiated());\n axiosInstance\n .get(API_CONTACT, { params: { customer: id } })\n .then((response) => {\n dispatch(contactRequestSuccess(response.data));\n })\n .catch((error) => {\n dispatch(contactRequestFail(error));\n });\n };\n};\n\nexport const showBrandAsset = (value) => {\n return {\n type: actionTypes.SHOW_BRAND_ASSET_MSG,\n showBrandAssetMsg: value,\n };\n};\n\nexport const setCustomerMembers = (data) => {\n return {\n type: actionTypes.CUSTOMER_MEMBERS,\n customerMembers: data,\n };\n};\n","// Auth\nexport const USER_REQUEST_INITIATED = 'USER_REQUEST_INITIATED';\nexport const USER_REQUEST_SUCCESS = 'USER_REQUEST_SUCCESS';\nexport const USER_REQUEST_FAIL = 'USER_REQUEST_FAIL';\nexport const USER_ME = 'USER_ME';\nexport const USER_ME_SUCCESS = 'USER_ME_SUCCESS';\nexport const CLEAR_ERROR_MESSAGE = 'CLEAR_ERROR_MESSAGE';\nexport const SHOW_FORGOT_PASSWORD_ERROR = 'SHOW_FORGOT_PASSWORD_ERROR';\nexport const SHOW_RESET_PASSWORD_ERROR = 'SHOW_RESET_PASSWORD_ERROR';\n\n// Customer\nexport const CUSTOMER_REQUEST_INITIATED = 'CUSTOMER_REQUEST_INITIATED';\nexport const CUSTOMER_REQUEST_SUCCESS = 'CUSTOMER_REQUEST_SUCCESS';\nexport const CUSTOMER_REQUEST_FAIL = 'CUSTOMER_REQUEST_FAIL';\nexport const CUSTOMER_SELECTED_TAB = 'CUSTOMER_SELECTED_TAB';\nexport const SHOW_BRAND_ASSET_MSG = 'SHOW_BRAND_ASSET_MSG';\nexport const SHOW_GOALS_MODAL = 'SHOW_GOALS_MODAL';\nexport const CUSTOMER_MEMBERS = 'CUSTOMER_MEMBERS';\n\n// Account\nexport const CUSTOMER_ACCOUNT_REQUEST_INITIATED =\n 'CUSTOMER_ACCOUNT_REQUEST_INITIATED';\nexport const CUSTOMER_ACCOUNT_REQUEST_SUCCESS =\n 'CUSTOMER_ACCOUNT_REQUEST_SUCCESS';\nexport const CUSTOMER_ACCOUNT_REQUEST_FAIL = 'CUSTOMER_ACCOUNT_REQUEST_FAIL';\n\n// Contact\nexport const CONTACT_REQUEST_INITIATED = 'CONTACT_REQUEST_INITIATED';\nexport const CONTACT_REQUEST_SUCCESS = 'CONTACT_REQUEST_SUCCESS';\nexport const CONTACT_REQUEST_FAIL = 'CONTACT_REQUEST_FAIL';\n\n// show/hide header\nexport const SHOW_HEADER = 'SHOW_HEADER';\nexport const HIDE_HEADER = 'HIDE_HEADER';\n// Dynamic\nexport const SHOW_DYNAMIC_ERROR_MESSAGE = 'SHOW_DYNAMIC_ERROR_MESSAGE';\n\n// KB title\nexport const SET_KNOWLEDGE_BASE_TITLE = 'SET_KNOWLEDGE_BASE_TITLE';\n","/* eslint-disable prefer-destructuring */\n/* eslint-disable no-prototype-builtins */\n/* eslint-disable no-lonely-if */\n/* eslint no-shadow: \"off\" */\n\nimport queryString from 'query-string';\n// import ReactGA from 'react-ga';\nimport Cookies from 'js-cookie';\n\nimport * as actionTypes from './actionTypes';\nimport axiosInstance from '../../axios';\nimport { updateUserMe } from '../../api';\nimport {\n API_LOGIN,\n API_USER_ME,\n API_LOGOUT,\n PATH_LOGIN,\n PATH_CUSTOMER_LIST,\n PATH_CUSTOMER_DETAILS,\n PATH_COMPANY_DETAILS,\n PATH_AMAZON_MERCHANT,\n PATH_SUMMARY,\n PATH_BILLING_DETAILS,\n PATH_ACCOUNT_SETUP_CHOOSE,\n PATH_BBE_GOAL_DASHBOARD,\n PATH_AMAZON_ACCOUNT,\n API_DYNAMIC_ERRORS,\n} from '../../constants';\n\nexport const userRequestInitiated = () => {\n return {\n type: actionTypes.USER_REQUEST_INITIATED,\n };\n};\n\nexport const userRequestFail = (error, type) => {\n if (type === 'logout') {\n if (error && error.response && error.response.status === 401) {\n window.location.href = PATH_LOGIN;\n }\n }\n return {\n type: actionTypes.USER_REQUEST_FAIL,\n error,\n };\n};\n\nexport const userMeSuccess = (data, type, history) => {\n if (data.data.role.includes('Customer')) {\n localStorage.setItem('role', data.data.role);\n localStorage.setItem('step', JSON.stringify(data.data.step));\n }\n if (type === 'step') {\n history.push(PATH_COMPANY_DETAILS);\n }\n return {\n type: actionTypes.USER_ME_SUCCESS,\n payload: data,\n };\n};\n\nexport const clearToken = () => {\n localStorage.removeItem('token');\n localStorage.removeItem('agreementID');\n localStorage.removeItem('email');\n localStorage.removeItem('customer');\n localStorage.removeItem('match');\n localStorage.removeItem('filters');\n localStorage.removeItem('role');\n localStorage.removeItem('step');\n localStorage.removeItem('page');\n localStorage.removeItem('noteFilters');\n localStorage.removeItem('bgs');\n localStorage.removeItem('spApi');\n localStorage.removeItem('seller');\n localStorage.removeItem('vendor');\n localStorage.removeItem('spAPI');\n localStorage.removeItem('noAmazonAccount');\n window.location.href = PATH_LOGIN;\n};\n\nexport const userRequestSuccess = (data, history, customer, onboardingId) => {\n const params = queryString.parse(history.location.search);\n localStorage.removeItem('email');\n localStorage.setItem('token', data.token);\n\n if (params?.callback) {\n if (params?.customer && params?.step) {\n if ((data.user.step !== null && data.user.step[params.customer]) === 6) {\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', params.customer));\n } else {\n history.push({ pathname: params.callback, search: 'openCollapse' });\n }\n if (params.step === 6) {\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', params.customer));\n }\n } else {\n history.push(params.callback);\n }\n } else {\n if (\n data.user.role.includes('Customer') &&\n data.user.customer &&\n data.user.customer.length === 0\n ) {\n localStorage.removeItem('token');\n localStorage.removeItem('customer');\n localStorage.removeItem('match');\n localStorage.removeItem('filters');\n localStorage.removeItem('role');\n localStorage.removeItem('step');\n history.push({\n pathname: PATH_ACCOUNT_SETUP_CHOOSE,\n search: `alreadyAssigned=true&first_name=${\n data.user && data.user.re_assigned_user_details.first_name\n }&last_name=${\n data.user && data.user.re_assigned_user_details.last_name\n }&email=${data.user.re_assigned_user_details.email}`,\n });\n }\n\n let id = '';\n if (\n data?.user?.customer !== null &&\n typeof data?.user?.customer === 'object'\n ) {\n const customerId = data?.user?.customer_onboarding?.find(\n (op) => Object.keys(op)[0] === onboardingId,\n );\n id = Object.values(customerId)[0];\n localStorage.setItem('customer', Object.values(customerId)[0]);\n } else {\n id =\n data.user.step &&\n Object.keys(data.user.step)?.find(\n (op) => op === (customer.customer || data?.user?.customer),\n );\n localStorage.setItem('customer', customer.customer);\n }\n if (data?.user?.role?.includes('Customer')) {\n if (data?.user?.customer_onboarding === null) {\n clearToken();\n } else {\n if (!id) {\n history.push(PATH_COMPANY_DETAILS);\n } else {\n if (!data.user.step || !data.user.step[id]) {\n history.push(PATH_COMPANY_DETAILS);\n const detail = { step: { ...data.user.step, [id]: 1 } };\n updateUserMe(data.user.id, detail).then((user) => {\n if (user?.status === 200) {\n history.push(PATH_COMPANY_DETAILS);\n }\n });\n }\n if (data.user.step[id] === 1) {\n history.push(PATH_COMPANY_DETAILS);\n }\n if (data.user.step[id] === 2) {\n history.push(PATH_BILLING_DETAILS);\n }\n if (data.user.step[id] === 3) {\n history.push(PATH_AMAZON_MERCHANT);\n }\n if (data.user.step[id] === 4) {\n history.push(PATH_AMAZON_ACCOUNT);\n }\n if (data.user.step[id] === 5) {\n history.push(PATH_SUMMARY);\n }\n if (data.user.step[id] === 6) {\n history.push(\n PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customer.customer || data.user.customer,\n ),\n );\n }\n }\n }\n } else {\n if (data.user.role !== 'Customer') {\n history.push(PATH_BBE_GOAL_DASHBOARD);\n } else history.push(PATH_CUSTOMER_LIST);\n }\n }\n\n return {\n type: actionTypes.USER_REQUEST_SUCCESS,\n payload: data,\n };\n};\n\nexport const userMe = (history, customer) => {\n return (dispatch) => {\n axiosInstance\n .get(API_USER_ME, {\n params: customer || { customer: localStorage.getItem('customer') },\n })\n .then((data) => {\n dispatch(userMeSuccess(data, '', history));\n })\n .catch(() => {\n localStorage.removeItem('token');\n localStorage.removeItem('agreementID');\n localStorage.removeItem('email');\n localStorage.removeItem('customer');\n localStorage.removeItem('match');\n localStorage.removeItem('filters');\n localStorage.removeItem('role');\n localStorage.removeItem('step');\n localStorage.removeItem('page');\n localStorage.removeItem('bgs');\n const params = queryString.parse(history?.location.search);\n if (history.location.pathname !== '/') {\n const stringified = queryString.stringify({\n ...params,\n callback: history.location.pathname,\n });\n history.push({\n pathname: PATH_LOGIN,\n search: `${stringified}`,\n });\n } else {\n history.push(PATH_LOGIN);\n }\n });\n };\n};\n\nexport const login = (history, data, customer, id) => {\n return (dispatch) => {\n dispatch(userRequestInitiated());\n axiosInstance\n .post(API_LOGIN, Object.assign(data, { google_id: Cookies.get('_ga') }), {\n params: customer,\n })\n .then((data) => {\n dispatch(userRequestSuccess(data.data, history, customer, id));\n // dispatch(userMe(history, customer));\n })\n .catch((error) => {\n dispatch(userRequestFail(error, ''));\n });\n };\n};\n\nexport const logout = () => {\n return (dispatch) => {\n dispatch(userRequestInitiated());\n axiosInstance\n .post(API_LOGOUT, {})\n .then(() => {\n dispatch(clearToken());\n })\n .catch((error) => {\n dispatch(userRequestFail(error, 'logout'));\n });\n };\n};\n\nexport const clearErrorMessage = () => {\n return {\n type: actionTypes.CLEAR_ERROR_MESSAGE,\n };\n};\n\nexport const showOnboardingMsg = (value) => {\n return {\n type: actionTypes.SHOW_FORGOT_PASSWORD_ERROR,\n showForgotMsg: value,\n };\n};\n\nexport const showResetPasswordMsg = () => {\n return {\n type: actionTypes.SHOW_RESET_PASSWORD_ERROR,\n showResetMsg: true,\n };\n};\n\nexport const hideHeader = () => {\n return {\n type: actionTypes.HIDE_HEADER,\n hideHeader: true,\n };\n};\n\nexport const showHeader = () => {\n return {\n type: actionTypes.SHOW_HEADER,\n hideHeader: false,\n };\n};\nexport const dynamicErrorSuccessMsg = (value) => {\n return {\n type: actionTypes.SHOW_DYNAMIC_ERROR_MESSAGE,\n dynamicMsg: value,\n };\n};\n\nexport const dynamicErrorMsg = (customerId) => {\n const params = { customer: customerId };\n return (dispatch) => {\n dispatch(userRequestInitiated());\n axiosInstance\n .get(API_DYNAMIC_ERRORS, { params })\n .then((data) => {\n dispatch(dynamicErrorSuccessMsg(data.data.result));\n })\n .catch(() => {});\n };\n};\n\nexport const setKBtitle = (data) => {\n return {\n type: actionTypes.SET_KNOWLEDGE_BASE_TITLE,\n board: data,\n };\n};\n","import React, { useState } from 'react';\n\nimport Cropper from 'react-cropper';\nimport 'cropperjs/dist/cropper.css';\nimport Modal from 'react-modal';\nimport axios from 'axios';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport b64toBlob from 'b64-to-blob';\nimport { useDispatch } from 'react-redux';\n\nimport axiosInstance from '../axios';\nimport {\n CloseIcon,\n CompanyDefaultUser,\n DefaultUser,\n EditIcons,\n} from '../theme/images';\nimport { API_DOCUMENTS } from '../constants/ApiConstants';\nimport { Button, PageLoader, ErrorMsg, ModalBox } from './index';\nimport { getCustomerDetails } from '../store/actions/customerState';\nimport { userMe } from '../store/actions/userState';\n\nexport default function CropUploadImage({ type, id, setDocumentImage }) {\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'page' });\n const [cropData, setCropData] = useState({});\n const [cropper, setCropper] = useState('');\n const [image, setImage] = useState('');\n const [showModal, setShowModal] = useState(false);\n const [fileDetails, setFileDetails] = useState({});\n const imageID =\n setDocumentImage &&\n setDocumentImage[0] &&\n Object.keys(setDocumentImage[0]) &&\n Object.keys(setDocumentImage[0])[0];\n const defaultPic = type === 'customer' ? CompanyDefaultUser : DefaultUser;\n\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n maxWidth: '600px',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n const getCropData = () => {\n if (typeof cropper !== 'undefined') {\n fileDetails.preview = cropper.getCroppedCanvas().toDataURL();\n setCropData(fileDetails);\n }\n };\n\n const onImageChanged = (e) => {\n setIsLoading({ loader: true, type: 'page' });\n if (fileDetails && Object.keys(fileDetails).length !== 0) {\n setFileDetails({});\n setCropData({});\n }\n\n e.preventDefault();\n let files;\n if (e.dataTransfer) {\n files = e.dataTransfer.files;\n } else if (e.target) {\n files = e.target.files;\n }\n const reader = new FileReader();\n reader.onload = () => {\n setImage(reader.result);\n };\n setFileDetails(files[0]);\n reader.readAsDataURL(files[0]);\n setShowModal(true);\n e.target.value = '';\n setIsLoading({ loader: false, type: 'page' });\n };\n\n const createDocument = () => {\n const base64ToBlob =\n fileDetails && fileDetails.preview && fileDetails.preview.split(',')[1];\n const blob = b64toBlob(base64ToBlob, fileDetails.type);\n const formData = {\n original_name: fileDetails.name,\n entity_id: id,\n entity_type: type,\n mime_type: blob.type,\n status: 'requested',\n size: blob.size,\n document_type: 'profile_photo',\n };\n const api = imageID\n ? axiosInstance.patch(`${API_DOCUMENTS + imageID}/`, formData)\n : axiosInstance.post(API_DOCUMENTS, formData);\n\n setIsLoading({ loader: true, type: 'button' });\n api.then((res) => {\n if (res && res.data && res.data.presigned_url !== '') {\n const request = {\n url: res.data.presigned_url,\n headers: {\n 'Content-type': res.data.mime_type,\n },\n };\n axios.put(request.url, blob, { headers: request.headers }).then(() => {\n axiosInstance\n .patch(`${API_DOCUMENTS + res.data.id}/`, {\n status: 'available',\n })\n .then(() => {\n if (type === 'user') {\n dispatch(userMe());\n } else {\n dispatch(getCustomerDetails(id));\n }\n setIsLoading({ loader: false, type: 'button' });\n setShowModal(false);\n });\n });\n } else {\n setIsLoading({ loader: false, type: 'button' });\n }\n return res;\n });\n };\n\n const cancelImageCrop = () => {\n if (cropData && cropData.preview === undefined) {\n setFileDetails({});\n setImage('');\n setCropData({});\n setCropper('');\n setShowModal(false);\n } else {\n const newCrop = fileDetails;\n delete newCrop.preview;\n setCropData({ ...cropData, preview: undefined });\n setFileDetails(newCrop);\n }\n };\n\n const checkImageFormat = () => {\n if (image === '') {\n return (\n \n );\n }\n const value = image && image.split(';') && image.split(';')[0];\n if (!value.includes('image')) {\n return (\n Please check the format.\n );\n }\n return '';\n };\n\n return (\n
\n \n \n {\n setShowModal(false);\n }}\n />\n <>\n
\n

Upload Profile Photo

\n\n
\n {fileDetails && fileDetails.preview === undefined ? (\n
\n {' '}\n {\n setCropper(instance);\n }}\n />\n
\n ) : (\n
\n
\n \"pic\"\n
\n
\n )}\n
\n {checkImageFormat()}\n
\n {image &&\n image.split(';') &&\n image.split(';')[0].includes('image') ? (\n <>\n
\n
\n
\n {cropData && cropData.preview === undefined ? (\n getCropData(event)}\n >\n Crop Image\n \n ) : (\n createDocument()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Upload & Save'\n )}\n \n )}\n {isLoading.loader && isLoading.type === 'button' ? (\n ''\n ) : (\n cancelImageCrop()}\n >\n Cancel\n \n )}\n
\n
\n \n ) : (\n cancelImageCrop()}\n >\n Cancel\n \n )}\n \n \n \n\n \n
\n \n {/* {\n setShowModal(true);\n }}\n /> */}\n
\n \n \"brand\"\n onImageChanged(event)}\n />\n
\n \n
\n );\n}\nCropUploadImage.defaultProps = {\n setDocumentImage: [],\n id: '',\n};\n\nCropUploadImage.propTypes = {\n type: PropTypes.string.isRequired,\n id: PropTypes.string,\n setDocumentImage: PropTypes.arrayOf(PropTypes.object),\n};\n\nconst UpdateProfile = styled.div`\n position: relative;\n .update-profile {\n position: relative;\n\n .view-icon {\n display: none;\n left: 14px;\n top: 15px;\n position: absolute;\n cursor: pointer;\n }\n\n .view-customer-icon {\n display: none;\n left: 50px;\n top: 50px;\n position: absolute;\n cursor: pointer;\n }\n }\n\n .edit-account {\n bottom: 5px;\n width: 45px;\n height: 45px;\n position: absolute;\n left: 98px;\n padding: 10px;\n border-radius: 50%;\n background: white;\n border: 1px solid rgba(46, 91, 255, 0.08);\n cursor: pointer;\n\n .edit-icon {\n width: 24px;\n cursor: pointer;\n }\n .hide_file {\n position: absolute;\n z-index: 1000;\n opacity: 0;\n right: 0;\n top: 0;\n height: 100%;\n font-size: 24px;\n }\n }\n\n .edit-profile-pic {\n width: 25px;\n height: 25px;\n bottom: 3px;\n bottom: -6px;\n position: absolute;\n left: 31px;\n padding: 4px;\n border-radius: 50%;\n background: white;\n border: 1px solid rgba(46, 91, 255, 0.08);\n cursor: pointer;\n\n .edit-icon {\n width: 14px;\n }\n .hide_file {\n position: absolute;\n z-index: 1000;\n opacity: 0;\n cursor: pointer;\n right: 0;\n top: 0;\n height: 100%;\n font-size: 24px;\n }\n }\n`;\n","/* eslint-disable no-plusplus */\nimport $ from 'jquery';\n\nexport default function CheckPhoneNumber({ name }) {\n $(`#${name}`).on('keypress', (e) => {\n if (e.code.includes('Key')) {\n e.preventDefault();\n }\n if (\n (e.shiftKey && e.code.includes('Digit')) ||\n (e.shiftKey && e.code === 'Minus') ||\n (!e.shiftKey && e.code === 'Equal') ||\n e.code.includes('Bracket') ||\n e.code.includes('Back') ||\n e.code.includes('Slash') ||\n e.code.includes('Comma') ||\n e.code.includes('Semicolon') ||\n e.code.includes('Period') ||\n e.code.includes('Quote')\n ) {\n e.preventDefault();\n }\n });\n return '';\n}\n","import React, { useState } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { toast } from 'react-toastify';\nimport { useDispatch } from 'react-redux';\nimport { useForm } from 'react-hook-form';\nimport { shape, string, arrayOf } from 'prop-types';\n\nimport EditPassword from './EditPassword';\nimport CropUploadImage from '../../common/CropUploadImage';\nimport CheckPhoneNumber from '../../common/CheckPhoneNumber';\nimport { updateUserInfo } from '../../api';\nimport { InfoIcon } from '../../theme/images';\nimport { userDetails } from '../../constants';\nimport { userMe } from '../../store/actions/userState';\nimport { FormContainer } from '../../common/Styles/HeaderStyles';\nimport {\n Button,\n PageLoader,\n ErrorMsg,\n GetInitialName,\n InputFormField,\n} from '../../common';\n\nexport default function EditProfile({ userInfo }) {\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n const { register, handleSubmit, errors } = useForm();\n const [apiError, setApiError] = useState({});\n const [showBtn, setShowBtn] = useState(false);\n\n const onSubmit = (data) => {\n setIsLoading({ loader: true, type: 'button' });\n updateUserInfo(data, userInfo.id).then((response) => {\n if (response?.status === 400) {\n setApiError(response.data);\n setIsLoading({ loader: false, type: 'button' });\n } else if (response?.status === 200) {\n setShowBtn(false);\n setIsLoading({ loader: false, type: 'button' });\n toast.success('Changes Saved!');\n dispatch(userMe());\n }\n });\n };\n\n const generateHTML = (item) => {\n const fields = [];\n fields.push(\n ,\n );\n return fields;\n };\n\n return (\n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n
\n
\n \n \n \n
PROFILE PICTURE
\n If you don't upload a photo, your initials will be\n used: \n \n \n \n
\n
\n
\n
\n {userDetails\n .filter((part) => part.section === 1)\n .map((item) => (\n \n
\n \n {generateHTML(item)}\n \n {errors?.[item.key]?.message}\n {apiError?.[item.key]?.[0]}\n \n
\n
\n ))}\n\n {userDetails\n .filter((part) => part.section === 2)\n .map((item) => (\n \n
\n \n {generateHTML(item)}\n {errors?.[item.key]?.message}\n {apiError?.[item.key]?.[0]}\n \n
\n
\n ))}\n\n \n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Save changes'\n )}\n \n
\n
\n \n \n )}\n
\n );\n}\n\nEditProfile.propTypes = {\n userInfo: shape({\n id: string,\n documents: arrayOf(shape({})),\n }).isRequired,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { bool, func, shape } from 'prop-types';\n\nimport SuccessMsg from '../SuccessMsg';\nimport { EditProfile } from '../../components/Profile';\nimport { CloseIcon } from '../../theme/images';\n\nexport default function ProfileModal({\n showModal,\n setShowModal,\n userInfo,\n setShowSuccessMsg,\n showSuccessMsg,\n}) {\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n return (\n \n {\n setShowModal(false);\n }}\n role=\"presentation\"\n />\n
\n
\n \n EDIT PROFILE\n
\n
\n {showSuccessMsg.show ? (\n \n ) : (\n ''\n )}\n
\n
\n\n \n
\n \n );\n}\n\nProfileModal.defaultProps = {\n showModal: false,\n setShowModal: () => {},\n setShowSuccessMsg: () => {},\n};\n\nProfileModal.propTypes = {\n showModal: bool,\n setShowModal: func,\n setShowSuccessMsg: func,\n userInfo: shape({}).isRequired,\n showSuccessMsg: shape({\n show: bool,\n }).isRequired,\n};\n","import React, { useState } from 'react';\n\nimport Modal from 'react-modal';\nimport { bool, func } from 'prop-types';\n\nimport { CloseIcon } from '../../theme/images';\nimport { PageLoader, ModalBox, FormField, Button } from '..';\nimport { createArticle } from '../../api';\n\nexport default function ShareIdeaModal({\n showArticle,\n setShowArticle,\n showArticleSuccess,\n setShowArticleSuccess,\n}) {\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n const [formData, setFormData] = useState({});\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n const saveArticle = () => {\n setIsLoading({ loader: true, type: 'button' });\n createArticle(formData).then((response) => {\n if (response?.status === 201) {\n setShowArticleSuccess(true);\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n return (\n \n \n setShowArticle(false)}\n role=\"presentation\"\n />\n\n {!showArticleSuccess ? (\n
\n

Share your Idea

\n

\n Please fill out the form below to submit an idea, whether it be a\n new feature, change to an existing feature or a new knowledge base\n article.\n

\n\n \n \n setFormData({\n ...formData,\n description: event.target.value,\n })\n }\n />\n \n saveArticle()}\n disabled={!formData.description}>\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Submit'\n )}\n \n
\n ) : (\n
\n
Thanks for sharing your ideas!
\n

\n Your request to add knowledge has been submitted. One of our\n knowledge experts will review, and if approved, they will create\n and publish the knowledge.\n

\n\n setShowArticle(false)}>\n Continue\n \n
\n )}\n
\n \n );\n}\n\nShareIdeaModal.defaultProps = {\n showArticle: false,\n showArticleSuccess: false,\n setShowArticle: () => {},\n setShowArticleSuccess: () => {},\n};\n\nShareIdeaModal.propTypes = {\n showArticle: bool,\n setShowArticle: func,\n setShowArticleSuccess: func,\n showArticleSuccess: bool,\n};\n","import React, { useState } from 'react';\n\nimport $ from 'jquery';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\n\nimport { ToastContainer } from 'react-toastify';\nimport { useMediaQuery } from 'react-responsive';\nimport { shape, string, arrayOf } from 'prop-types';\n\nimport styled from 'styled-components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport GetInitialName from './GetInitialName';\nimport ProfileModal from './Modals/ProfileModal';\nimport ShareIdeaModal from './Modals/ShareIdeaModal';\nimport { logout } from '../store/actions/userState';\nimport { MainHeader } from './Styles/HeaderStyles';\n\nimport {\n PATH_CUSTOMER_LIST,\n helpDeskLink,\n managementLink,\n PATH_ACCOUNT_SETUP,\n PATH_CUSTOMER_DETAILS,\n} from '../constants';\nimport {\n NextLogo,\n EditIcons,\n LogOutIcons,\n HelpDeskIcon,\n HandShake,\n FileIcon,\n} from '../theme/images';\nimport Theme from '../theme/Theme';\n\nexport default function Header({ userInfo }) {\n const history = useHistory();\n const isBBEInternalUser = userInfo?.isInternalUser ? 'internal' : 'external';\n const customerData = useSelector((state) => state.customerState.data);\n const dispatch = useDispatch();\n\n const hideHeader = useSelector((state) => state.userState.hideHeader);\n\n const [showModal, setShowModal] = useState(false);\n const [showDropDown, setShowDropDown] = useState(false);\n const [showSuccessMsg, setShowSuccessMsg] = useState({\n show: false,\n message: '',\n });\n const [showArticle, setShowArticle] = useState(false);\n const [showArticleSuccess, setShowArticleSuccess] = useState(false);\n\n const isTablet = useMediaQuery({ minWidth: 768, maxWidth: 991.98 });\n const isMobile = useMediaQuery({ maxWidth: 767 });\n const profilePic =\n userInfo?.documents?.[0] && Object.values(userInfo?.documents?.[0])?.[0];\n\n const toggleDropdown = () => {\n document.getElementById('myDropdown').classList.toggle('show');\n };\n\n window.addEventListener('click', (e) => {\n if (document.getElementById('clickbox')?.contains(e.target)) {\n setShowDropDown(true);\n } else {\n setShowDropDown(false);\n }\n });\n\n $(document).on('click', (e) => {\n if ($(e.target).closest('#kBase').length === 0) {\n $('#mobilemenu-check').prop('checked', false);\n }\n });\n\n if (isTablet || isMobile) {\n $('#idea').hide();\n } else {\n $('#idea').show();\n }\n\n // const downloadSampleConteact = () => {\n // fetch(userInfo?.dummy_contract_url).then((response) => {\n // response.blob().then((blob) => {\n // const url = window.URL.createObjectURL(blob);\n // const a = document.createElement('a');\n // a.href = url;\n // a.download = 'employees.json';\n // a.click();\n // });\n // window.location.href = response.url;\n // });\n // };\n\n return (\n \n \n \n
\n
\n
\n \n !userInfo?.role.includes('Customer')\n ? history.push(PATH_CUSTOMER_LIST)\n : ''\n }\n role=\"presentation\"\n >\n \"logo\"\n
\n \n !userInfo?.role.includes('Customer')\n ? history.push(PATH_CUSTOMER_LIST)\n : ''\n }\n role=\"presentation\"\n />\n
\n
\n
    \n
  • \n
    \n {\n toggleDropdown();\n setShowSuccessMsg({ show: false });\n }}\n role=\"presentation\"\n >\n \n {profilePic ? (\n \n ) : (\n \n )}\n
    \n \n setShowModal(true)}\n >\n \"edit\" Edit profile\n
  • \n {!userInfo?.role?.includes('Customer') ? (\n <>\n \n window.open(managementLink, '_blank')\n }\n >\n \n Employee Engagement\n \n \n window.open(helpDeskLink, '_blank')\n }\n >\n \"edit\" Helpdesk\n \n
  • \n \n \n Download Amazon Draft Agreement\n \n
  • \n
  • \n \n \n Download Walmart Draft Agreement\n \n
  • \n \n ) : (\n ''\n )}\n dispatch(logout())}\n >\n \"logout\" Log out\n \n
\n
\n
\n \n \n \n \n \n \n \n
\n {customerData?.goal_set?.show &&\n customerData?.goal_set?.message &&\n history.location.pathname.includes(`/customer/${customerData?.id}`) &&\n !history.location.search.includes(`goals`) ? (\n \n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerData?.id,\n )}?tab=goals&nav=goals&access=${isBBEInternalUser}`,\n )\n }\n >\n Targets have not been determined for this BP. Please go to “Goals\n View” to update BPs goals{' '}\n \n Click Here{' '}\n \n \n \n ) : null}\n \n );\n}\n\nHeader.propTypes = {\n userInfo: shape({\n role: string.isRequired,\n first_name: string,\n last_name: string,\n documents: arrayOf(shape({})),\n }).isRequired,\n};\n\nconst PopOverMsg = styled.div`\n min-height: 40px;\n background: #fbf2f2;\n color: ${Theme.black};\n font-size: 13px;\n padding: 11px;\n text-align: center;\n margin-top: 11px;\n font-family: ${Theme.baseMediumFontFamily};\n`;\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport { shape, string, bool, func, arrayOf } from 'prop-types';\n\nimport Theme from '../../../theme/Theme';\nimport useActivityLog from '../../../hooks/useActivityLog';\nimport { GroupUser } from '../../../theme/Global';\nimport { getCustomerActivityLog, getDocumentList } from '../../../api';\nimport {\n ContractEmailIcon,\n DefaultUser,\n NextActivityLogo,\n} from '../../../theme/images';\nimport {\n CommonPagination,\n DropdownIndicator,\n GetInitialName,\n PageLoader,\n SingleSelectDropdown,\n Status,\n ViewData,\n WhiteCard,\n} from '../../../common';\n\nexport default function Activity({\n isLoading,\n viewComponent,\n setIsLoading,\n id,\n childBPList,\n customerType,\n}) {\n const activityDetail = useActivityLog(viewComponent);\n\n const [activityData, setActivityData] = useState(null);\n const [activityCount, setActivityCount] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n const [images, setImages] = useState([]);\n const [selectedCustomerId, setSelectedCustomerId] = useState(\n childBPList?.length ? childBPList?.[0]?.value : id,\n );\n\n useEffect(() => {\n if (childBPList?.length) setSelectedCustomerId(childBPList?.[0]?.value);\n }, [childBPList]);\n\n const bindActivityLogData = useCallback((responseData) => {\n const tempActivityData = [];\n if (responseData?.length) {\n for (const item of responseData) {\n tempActivityData.push({\n ...item,\n isAllowForShowMoreAndLess:\n !!item?.history_change_reason?.includes('DSP_NOTES_START'),\n showMore: false,\n });\n }\n }\n\n return tempActivityData;\n }, []);\n\n useEffect(() => {\n setIsLoading({ loader: true, type: 'activityPage' });\n getCustomerActivityLog(pageNumber, selectedCustomerId).then((response) => {\n setActivityData(bindActivityLogData(response?.data?.results));\n setActivityCount(response?.data?.count);\n setPageNumber(pageNumber);\n getDocumentList().then((picResponse) => {\n setImages(picResponse);\n });\n setIsLoading({ loader: false, type: 'activityPage' });\n });\n }, [selectedCustomerId, setIsLoading, pageNumber, bindActivityLogData]);\n\n // https://bbe.atlassian.net/browse/PDV-9350 - DSP Notes - Activity Logs and Billing Overlay\n // function for updating activity data array\n const handleShowMoreLessEvents = (itemIndex) => {\n const updatedActivityData = [...activityData];\n updatedActivityData[itemIndex].showMore =\n !updatedActivityData[itemIndex].showMore;\n\n setActivityData(updatedActivityData);\n };\n\n const getActivityInitials = (user) => {\n if (user) {\n const userDetail = {\n first_name: user.split(' ')[0],\n last_name: user.split(' ')[1],\n };\n return ;\n }\n return '';\n };\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getCustomerActivityLog(currentPage);\n };\n\n // handle child bp filter events\n const handleChildBPFilterEvents = (event) => {\n if (event?.value !== selectedCustomerId) {\n setSelectedCustomerId(event?.value);\n }\n };\n\n // get single select dropdown components\n const getSingleSelectComponents = () => {\n return {\n DropdownIndicator,\n };\n };\n\n // display child bp filter\n const displayChildBPFilter = () => {\n return (\n op?.value === selectedCustomerId,\n )}\n onChangeHandler={handleChildBPFilterEvents}\n dropdownComponents={getSingleSelectComponents}\n // isApiCall={isApiCall}\n isSearchable={false}\n />\n );\n };\n\n return (\n <>\n
\n {childBPList?.length &&\n customerType === 'parent' &&\n !isLoading.loader ? (\n \n \n
\n
\n
View data for:
{' '}\n
\n
\n
\n {displayChildBPFilter()}\n
\n
\n
\n
\n ) : null}\n \n {(isLoading.loader && isLoading.type === 'activityPage') ||\n activityData === null ? (\n \n ) : (\n <>\n

Recent Activity

\n {activityData &&\n activityData.map((item, index) => (\n \n {(images.find(\n (op) => op.entity_id === item.history_user_id,\n ) &&\n images.find((op) => op.entity_id === item.history_user_id)\n .presigned_url) ||\n (item.history_change_reason &&\n item.history_change_reason.split(' ').slice(0, 2) &&\n item.history_change_reason.split(' ').slice(0, 2)[0] ===\n 'System' &&\n item.history_change_reason\n .split(' ')\n .slice(0, 2)[1]\n .toLowerCase() === 'user') ||\n item?.status !== undefined ? (\n \n op.entity_id === item.history_user_id,\n ).presigned_url\n }\n className={\n item && item.status !== undefined\n ? 'default-user-activity contract-mail'\n : 'default-user-activity '\n }\n alt=\"pic\"\n />\n
\n ) : (\n
\n {getActivityInitials(item.history_change_reason)}\n
\n )}\n
\n {activityDetail(\n item,\n true,\n index,\n handleShowMoreLessEvents,\n )}\n\n
\n {item?.history_date ? item.history_date : ''}\n
\n {item?.status ? (\n <>\n \n {item.status === 'delivered' ? (\n
\n \n Opens: {item.opens || 0}\n \n \n Clicks: {item.clicks || 0}\n \n
\n ) : (\n ''\n )}\n \n ) : (\n ''\n )}\n
\n
\n \n ))}\n
\n {activityData && activityData.length === 0 ? (\n
No Activity Log found.
\n ) : (\n ''\n )}\n \n
\n \n )}\n \n
\n \n );\n}\n\nActivity.defaultProps = {\n childBPList: [],\n customerType: 'standalone',\n};\n\nActivity.propTypes = {\n isLoading: shape({\n loader: bool,\n type: string,\n }).isRequired,\n id: string.isRequired,\n viewComponent: string.isRequired,\n setIsLoading: func.isRequired,\n childBPList: arrayOf(shape({})),\n customerType: string,\n};\n","/* eslint-disable react/no-danger */\n\nimport React from 'react';\nimport { Activity } from '../constants';\nimport Theme from '../theme/Theme';\n\nexport default function useActivityLog({ viewComponent }) {\n const displayMixedLog = (logUser, msg, header) => {\n return msg.map((item, index) => {\n if (index === 0 && header !== '') {\n return (\n <>\n {index === 0 ? logUser : ''}\n updated {header}\n \n );\n }\n const field = item && item.split('from')[0];\n\n let oldValue = item && item?.split('from')?.[1]?.split(' to ')?.[0];\n let newValue =\n item &&\n item.split('from') &&\n item.split('from')[1] &&\n item.split('from')[1].split(' to ') &&\n item.split('from')[1].split(' to ')[1] &&\n item.split('from')[1].split(' to ')[1].split(', ,')[0];\n\n if (\n item.includes('annual revenue') ||\n item.includes('number of employees') ||\n item.includes('monthly retainer') ||\n item.includes('sales threshold') ||\n item.includes('fee') ||\n item.includes('discount amount') ||\n item.includes('billing cap')\n // ||\n // item.includes('custom amazon store price')\n ) {\n oldValue = oldValue.replace('.00', '');\n newValue = newValue.replace('.00', '');\n oldValue =\n oldValue && oldValue.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n newValue =\n newValue && newValue.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n return (\n <>\n {index === 0 ? logUser : ''}\n updated {field || ''} from {oldValue || ''}\n to {newValue === '' ? 'None' : newValue}\n \n );\n });\n };\n\n const displayLog = (logUser, field, oldValue, newValue) => {\n return (\n <>\n {logUser || ''}\n updated {field || ''} from {oldValue || ''}\n to {newValue === '' ? 'None' : newValue}\n \n );\n };\n\n const activityDetail = (\n item,\n showAllActivity = false,\n index,\n handleShowMoreLessEvents,\n ) => {\n let activityMessage = '';\n let logUser;\n let field;\n let oldValue;\n let newValue = '';\n let mixedLog = false;\n let customerSetupHeader = '';\n const reason = item?.history_change_reason;\n const showMore = item?.showMore;\n const isAllowForShowMoreAndLess = item?.isAllowForShowMoreAndLess;\n\n // https://bbe.atlassian.net/browse/PDV-9350 - DSP Notes - Activity Logs and Billing Overlay\n // activity log for dsp notes\n if (reason?.includes('DSP_NOTES_START')) {\n const splittedReason = reason?.split('DSP_NOTES_START');\n const invoiceLog = splittedReason[0];\n const dspNoteLog = splittedReason[1]?.split('added');\n const splittedDspNoteLog = dspNoteLog[1]?.split('DSP_NOTES_END');\n const dspNoteString = splittedDspNoteLog[0];\n const invoiceInfoString = splittedDspNoteLog[1];\n // defining word limit for dsp note as 150\n const dspNoteWordsLimit = 150;\n\n const wordsToWrap = Activity?.dspSignOfflog.concat(\n Activity?.cancelPauseAggrementLog,\n );\n\n // Regular expression to match the words\n const regex = new RegExp(`\\\\b(${wordsToWrap.join('|')})\\\\b`, 'gi');\n // Replace the matched words with span tags\n const log = invoiceLog?.replace(regex, '$1');\n if (isAllowForShowMoreAndLess) {\n return (\n <>\n \n
\n {dspNoteLog[0]}\n added\n {dspNoteString?.length > dspNoteWordsLimit ? (\n <>\n {showMore ? (\n <> {dspNoteString}  \n ) : (\n `${dspNoteString?.slice(0, dspNoteWordsLimit)} .....`\n )}\n {\n handleShowMoreLessEvents(index);\n }}\n >\n {showMore ? 'Show less' : 'Show more'}\n \n \n ) : (\n dspNoteString\n )}\n {invoiceInfoString}\n
\n \n );\n }\n }\n\n // For deleted Activity\n if (item.history_change_reason.includes('deleted')) {\n activityMessage = item.history_change_reason.split('deleted');\n if (item.history_change_reason.includes('deleted note')) {\n return (\n <>\n {activityMessage[0]}\n deleted\n\n \n {/* {activityMessage[1]} */}\n \n );\n }\n return (\n <>\n {activityMessage[0]}\n deleted\n {activityMessage[1]}\n \n );\n }\n\n // download report activity log\n if (item?.history_change_reason?.includes('downloaded')) {\n const splitMsg = 'downloaded';\n activityMessage = item?.history_change_reason.split(splitMsg);\n\n return (\n <>\n {activityMessage[0]}\n {splitMsg}\n {activityMessage[1]}\n \n );\n }\n\n // Customised report activity log\n if (item && item.history_change_reason.includes('customized report')) {\n let splitMsg;\n Activity.customizedReportLog.forEach((value) => {\n if (item.history_change_reason.includes(value)) {\n splitMsg = value;\n }\n });\n\n activityMessage = item.history_change_reason.split(splitMsg);\n\n return (\n <>\n {activityMessage[0]}\n {splitMsg}\n {activityMessage[1]}\n \n );\n }\n\n // https://bbe.atlassian.net/browse/PDV-9280 - agreement pause request activity log.\n // https://bbe.atlassian.net/browse/PDV-9669 - As an internal user, I should be able to see in the activity logs all transactions related to Walmart\n\n // below is the new optimized method of formatting the activity reason string.\n if (\n reason?.includes('pausing request') ||\n reason?.includes('pending for pause') ||\n reason?.includes('contract cancellation') ||\n reason?.includes('cancellation request') ||\n reason?.includes('pending cancellation approval') ||\n reason?.includes('cancelled pending for billing') ||\n reason?.includes('contract signed date') ||\n reason?.includes('contract start date') ||\n reason?.includes('contract end date') ||\n reason?.includes('seller type') ||\n reason?.includes('suggested recipient') ||\n reason?.includes('dsp marketplaces ticket created') ||\n reason?.includes('copy optimization') ||\n reason?.includes('updated addendum') ||\n reason?.includes('addendum start date') ||\n reason?.includes('addendum signed date') ||\n reason?.includes('contract addendum signature') ||\n reason?.includes('approved and sent') ||\n reason?.includes('internal approval') ||\n reason?.includes('successfully logged in') ||\n reason?.includes('company name') ||\n reason?.includes('created new record by company name') ||\n reason?.includes('monthly budget distribution') ||\n reason?.includes('one time budget distribution') ||\n reason?.includes('playbook initiative id') ||\n reason?.includes('invoiced walmart customer id') ||\n reason?.includes('customer account type') ||\n reason?.includes('first contract signed') ||\n reason?.includes('retainer invoice creation date') ||\n reason?.includes('updated') ||\n reason?.includes('changed') ||\n reason?.includes('completed step')\n ) {\n // Words to wrap with span tags\n let wordsToWrap = [];\n if (\n reason?.includes('pending for pause') ||\n reason?.includes('cancelled pending for billing')\n ) {\n wordsToWrap = ['changed', 'from', 'to'];\n } else {\n wordsToWrap = [\n 'requested',\n 'approved and sent',\n 'approved',\n 'changed',\n 'completed',\n 'granted',\n 'rejected',\n 'submitted',\n 'updated',\n 'for',\n 'from',\n 'to',\n 'go out on',\n 'resume on',\n 'logged in',\n 'created new record by company name',\n ];\n }\n\n // Regular expression to match the words\n const regex = new RegExp(`\\\\b(${wordsToWrap.join('|')})\\\\b`, 'gi');\n // Replace the matched words with span tags\n const log = reason?.replace(regex, '$1');\n\n return (\n \n );\n }\n\n if (\n item &&\n item.history_change_reason.includes('updated') &&\n !item.history_change_reason.includes('brand profile note')\n ) {\n // For updated activity without brand profile activity\n activityMessage = item.history_change_reason.split('updated');\n const msg = activityMessage[0];\n logUser = msg;\n if (\n activityMessage[1] &&\n activityMessage[1].includes('Amazon account names and id')\n ) {\n const msg1 = activityMessage[1];\n customerSetupHeader = msg1;\n field = activityMessage[2] && activityMessage[2].split('from')[0];\n oldValue =\n activityMessage[2] &&\n activityMessage[2].split('from')[1].split(' to ')[0];\n newValue =\n activityMessage[2] &&\n activityMessage[2].split('from')[1].split(' to ')[1].split(', ,')[0];\n } else if (\n activityMessage[1]?.includes('DSP detail') ||\n activityMessage[1]?.includes('DSP Advertising Marketplace') ||\n activityMessage[1]?.includes('completion date') ||\n activityMessage[1]?.includes('Vendor central') ||\n activityMessage[1]?.includes('Seller central')\n ) {\n // https://bbe.atlassian.net/browse/PDV-9227 - Capture DSP Detail Company Details Page in Activity Logs\n // Words to wrap with span tags\n const wordsToWrap = ['updated', 'for', 'from', 'to'];\n // Regular expression to match the words\n const regex = new RegExp(`\\\\b(${wordsToWrap.join('|')})\\\\b`, 'gi');\n // Replace the matched words with span tags\n const log = item?.history_change_reason?.replace(\n regex,\n '$1',\n );\n\n return (\n \n );\n } else {\n field = activityMessage[1] && activityMessage[1]?.split('from')?.[0];\n oldValue = activityMessage[1]?.split('from')?.[1]?.split(' to ')?.[0];\n newValue =\n activityMessage[1] &&\n activityMessage[1]?.split('from') &&\n activityMessage[1]?.split('from')[1] &&\n activityMessage[1]?.split('from')[1]?.split(' to ') &&\n activityMessage[1]?.split('from')[1]?.split(' to ')[1] &&\n activityMessage[1]\n ?.split('from')[1]\n ?.split(' to ')[1]\n ?.split(', ,')[0];\n }\n if (activityMessage && activityMessage.length > 2) {\n mixedLog = true;\n activityMessage.shift();\n }\n\n if (\n !mixedLog &&\n ((item && item.history_change_reason.includes('annual revenue')) ||\n (item &&\n item.history_change_reason.includes('number of employees')) ||\n (item && item.history_change_reason.includes('monthly retainer')) ||\n (item && item.history_change_reason.includes('sales threshold')) ||\n (item && item.history_change_reason.includes('fee')) ||\n (item && item.history_change_reason.includes('discount amount')) ||\n (item &&\n item.history_change_reason.includes('custom amazon store price')) ||\n (item && item.history_change_reason.includes('billing cap')))\n ) {\n let fromAmount = '';\n let toAmount = '';\n let rowAmount = [];\n if (\n activityMessage &&\n activityMessage[1].split(' from ')[1].split(' to ')[0] !== ''\n ) {\n const temp = activityMessage[1].split(' from ')[1].split(' to ')[0];\n rowAmount = temp;\n if (rowAmount.split('.')[1] === '00') {\n const amt = rowAmount.split('.')[0];\n fromAmount = amt;\n } else {\n fromAmount = rowAmount;\n }\n }\n if (\n activityMessage &&\n activityMessage[1].split(' from ')[1].split(' to ')[1] !== ''\n ) {\n const temp = activityMessage[1].split(' from ')[1].split(' to ')[1];\n rowAmount = temp;\n if (rowAmount.split('.')[1] === '00') {\n const amt = rowAmount.split('.')[0];\n toAmount = amt;\n } else {\n toAmount = rowAmount;\n }\n }\n return (\n <>\n {activityMessage && activityMessage[0]}\n \n updated {activityMessage && activityMessage[1].split(' from ')[0]}{' '}\n from{' '}\n {' '}\n {fromAmount === ''\n ? 'None'\n : fromAmount &&\n fromAmount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n to {' '}\n {toAmount === ''\n ? 'None'\n : toAmount &&\n toAmount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n \n );\n }\n\n return activityMessage && activityMessage[1].includes('addendum')\n ? item.history_change_reason\n : mixedLog\n ? displayMixedLog(logUser, activityMessage, customerSetupHeader)\n : displayLog(logUser, field, oldValue, newValue);\n }\n\n // For updated activity without brand profile activity\n if (item && item.history_change_reason.includes('brand profile note')) {\n activityMessage = item.history_change_reason.includes('updated')\n ? item.history_change_reason.split('updated')\n : item.history_change_reason.split('created');\n return (\n <>\n {activityMessage && activityMessage[0]}\n {item.history_change_reason.includes('updated') ? (\n updated\n ) : (\n created\n )}\n {activityMessage && activityMessage[1]}\n \n );\n }\n\n // For added Activity\n if (reason?.includes('added') && !reason?.includes('DSP_NOTES_START')) {\n activityMessage = item.history_change_reason.split('added');\n let value;\n if (\n item &&\n item.history_change_reason.includes('Amazon Store Package Custom')\n ) {\n value = activityMessage[1].split('as');\n return (\n <>\n {activityMessage && activityMessage[0]}\n added\n {value && value[0]}\n as\n {value &&\n value[1] &&\n value[1].toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n \n );\n }\n\n return (\n <>\n {activityMessage && activityMessage[0]}\n added\n {activityMessage && activityMessage[1]}\n \n );\n }\n\n // For removed Activity\n if (item && item.history_change_reason.includes('removed')) {\n activityMessage = item.history_change_reason.split('removed');\n return (\n <>\n {activityMessage && activityMessage[0]}\n removed\n {activityMessage && activityMessage[1]}\n \n );\n }\n // For signed Activity\n if (item && item.history_change_reason.includes('signed')) {\n activityMessage = item.history_change_reason.split('signed');\n return (\n <>\n {activityMessage && activityMessage[0]}\n signed\n {activityMessage && activityMessage[1]}\n \n );\n }\n\n // for sent activity\n if (item.history_change_reason.includes('sent')) {\n activityMessage = item.history_change_reason?.split('sent');\n return (\n <>\n {activityMessage[0]}\n sent\n {activityMessage[1]}\n \n );\n }\n // for delegated activity\n if (item.history_change_reason.includes('delegated')) {\n activityMessage = item.history_change_reason?.split('delegated');\n return (\n <>\n {activityMessage[0]}\n delegated\n {activityMessage[1]}\n \n );\n }\n // for reallocated escrow balance activity\n if (item.history_change_reason.includes('reallocated')) {\n activityMessage = item.history_change_reason?.split('reallocated');\n [logUser, field] = activityMessage;\n if (field.includes('worth of escrow from')) {\n [oldValue, newValue] = field.split('worth of escrow from');\n const splittedNewValue = newValue.split('to');\n const [oldMonth, newMonth] = splittedNewValue;\n return (\n <>\n {logUser}\n reallocated\n {oldValue}\n worth of escrow from\n {oldMonth}\n to\n {newMonth}.\n \n );\n }\n [oldValue, newValue] = field.split('worth of escrow to');\n return (\n <>\n {logUser}\n reallocated\n {oldValue}\n worth of escrow to\n {newValue}.\n \n );\n }\n // for payment term activity log\n if (\n item.history_change_reason.includes('has changed the payment terms for')\n ) {\n activityMessage = item.history_change_reason?.split(\n 'has changed the payment terms for',\n );\n [logUser, field] = activityMessage;\n [oldValue, newValue] = field.split('invoices to');\n return (\n <>\n {logUser}\n has changed the payment terms for\n {oldValue}\n invoices to\n {newValue}\n \n );\n }\n\n const highLightLogs = Activity.dspSignOfflog\n .concat(Activity.cancelPauseAggrementLog)\n .filter((logItem) => item.history_change_reason.includes(logItem));\n if (\n item.history_change_reason.includes(\n highLightLogs.length > 0\n ? highLightLogs.length === 1\n ? highLightLogs[0]\n : highLightLogs[highLightLogs.length - 1]\n : null,\n )\n ) {\n activityMessage = item.history_change_reason?.split(\n highLightLogs[highLightLogs.length > 0 ? highLightLogs.length - 1 : 0],\n );\n\n const lastAcitvityMessage = activityMessage[1].split('/n').map((str) => (\n

\n {str}\n
\n

\n ));\n\n return (\n <>\n {activityMessage[0]}\n \n {\n highLightLogs[\n highLightLogs.length > 0 ? highLightLogs.length - 1 : 0\n ]\n }\n \n {lastAcitvityMessage}\n \n );\n }\n\n return item && item.history_change_reason ? item.history_change_reason : '';\n };\n\n return activityDetail;\n}\n","import React, { useEffect, useState } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport ReactTooltip from 'react-tooltip';\nimport $ from 'jquery';\nimport { useSelector } from 'react-redux';\nimport { toast } from 'react-toastify';\nimport { func, bool, string, shape, number, arrayOf } from 'prop-types';\n\nimport CheckPhoneNumber from '../../../common/CheckPhoneNumber';\nimport { editCompanyFields } from '../../../constants';\nimport {\n FormField,\n Button,\n ModalBox,\n PageLoader,\n ErrorMsg,\n GetInitialName,\n} from '../../../common';\nimport {\n DefaultUser,\n SaveIcon,\n AddNewIcons,\n TrashIcons,\n NoContactIcon,\n InfoIcon,\n} from '../../../theme/images';\nimport {\n updateCustomerDetails,\n updateContactInfo,\n createContactInfo,\n deleteContactInfo,\n} from '../../../api';\n\nexport default function EditCompanyDetails({\n setShowModal,\n id,\n scrollDown,\n setScrollDown,\n setDetail,\n detail,\n getContactData,\n contactInfo,\n}) {\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [apiError, setApiError] = useState({});\n const [formData, setFormData] = useState({});\n const [contactFormData, setContactFormData] = useState({});\n const [contactApiError, setContactApiError] = useState({});\n const [checkChange, setCheckChange] = useState({});\n const [contactDetails, setContactDetails] = useState([]);\n const [showBtn, setShowBtn] = useState(false);\n const [clearSocialInput, setClearSocialInput] = useState({\n facebook: '',\n instagram: '',\n linkedin: '',\n pinterest: '',\n twitter: '',\n });\n\n const loader = useSelector((state) => state.customerState.isLoading);\n\n const modalScrollDown = () => {\n const div = document.getElementById('scroll-contact');\n if (div) {\n $('#scroll-contact').animate(\n {\n scrollTop: div.scrollHeight,\n },\n 500,\n );\n setScrollDown(false);\n }\n };\n\n useEffect(() => {\n if (scrollDown === true) {\n modalScrollDown();\n }\n });\n const clearSocialURL = (key) => {\n setIsLoading({ loader: true, type: 'page' });\n\n setClearSocialInput({ ...clearSocialInput, [key]: null });\n updateCustomerDetails(detail.id, { [key]: null }).then((response) => {\n if (response?.status === 200) {\n setDetail(response?.data);\n toast.success('Social Media URL removed.');\n setIsLoading({ loader: false, type: 'page' });\n }\n if (response?.status === 400) {\n setApiError(response?.data);\n }\n });\n };\n\n const handleChange = (event, key) => {\n setShowBtn(true);\n setFormData({ ...formData, [key]: event.target.value });\n setApiError({\n ...apiError,\n [event.target.name]: '',\n });\n };\n\n const generateTextArea = (item) => {\n return (\n handleChange(event, item.key)}\n />\n );\n };\n\n const mapIconValues = (key) => {\n if (detail?.[key]) {\n return detail[key];\n }\n if (formData?.[key]) {\n return formData[key];\n }\n return '';\n };\n\n const generateSocialIcon = (item) => {\n const fields = [];\n for (const icon of item[0].choices) {\n fields.push(\n \n
\n \n {' '}\n {' '}\n {icon.label}\n \n
\n
\n \n handleChange(event, icon.key)}\n />\n\n {detail?.[icon.key] ? (\n clearSocialURL(icon.key)}\n role=\"presentation\"\n />\n ) : (\n ''\n )}\n {apiError?.[icon.key]?.[0]}\n \n
\n
,\n );\n }\n return fields;\n };\n\n const generateNumberFormat = (item) => {\n return (\n handleChange(event, item.key)}\n thousandSeparator={item.key !== 'zip_code'}\n />\n );\n };\n\n const mapInputValues = (item) => {\n return detail?.[item.key];\n };\n\n const generateInput = (item) => {\n return (\n <>\n handleChange(event, item.key)}\n maxLength={item.key === 'phone_number' ? 15 : ''}\n id={item.key === 'phone_number' ? 'Phone' : item.key}\n />\n\n {item.key === 'phone_number' ? (\n <>\n it will be set as United States(+1) by default.\"\n data-for=\"phone\"\n className=\"phone-input-info\"\n />\n \n \n ) : (\n ''\n )}\n \n );\n };\n\n const generateHTML = (item) => {\n if (item.type === 'textarea') {\n return generateTextArea(item);\n }\n if (item?.type?.includes('number')) {\n return generateNumberFormat(item);\n }\n return generateInput(item);\n };\n\n const saveData = () => {\n setIsLoading({ loader: true, type: 'button' });\n updateCustomerDetails(detail.id, formData).then((response) => {\n if (response?.status === 400) {\n setIsLoading({ loader: false, type: 'button' });\n setApiError(response?.data);\n setShowModal(true);\n } else if (response?.status === 200) {\n toast.success('Changes Saved!');\n setIsLoading({ loader: false, type: 'button' });\n setDetail(response?.data);\n setShowModal(false);\n }\n });\n };\n\n const addNewContact = () => {\n const div = document.getElementById('scroll-contact');\n $('#scroll-contact').animate(\n {\n scrollTop: div.scrollHeight,\n },\n 500,\n );\n\n setContactDetails([\n ...contactDetails,\n {\n first_name: '',\n last_name: '',\n role: '',\n email: '',\n phone_number: '',\n customer: id,\n },\n ]);\n };\n\n const removeContact = (index) => {\n if (index && index.includes('CT')) {\n deleteContactInfo(index).then(() => {\n toast.success('Contact Removed!');\n getContactData(id);\n });\n } else {\n toast.success('Contact Removed!');\n const list = [...contactDetails];\n list.splice(index, 1);\n setContactDetails(list);\n }\n };\n\n const handleContactChange = (event, index, type) => {\n setCheckChange({ ...checkChange, [index]: true });\n\n if (index && index.includes('CT')) {\n if (type === 'choice') {\n setContactFormData({ ...contactFormData, role: event.value });\n setContactApiError({ ...contactApiError, role: '' });\n } else {\n setContactFormData({\n ...contactFormData,\n [event.target.name]: event.target.value,\n });\n setContactApiError({ ...contactApiError, [event.target.name]: '' });\n }\n } else {\n if (type === 'choice') {\n const list = [...contactDetails];\n list[index].role = event.value;\n setContactDetails(list);\n } else {\n const { name, value } = event.target;\n const list = [...contactDetails];\n list[index][name] = value;\n setContactDetails(list);\n }\n setContactApiError({ ...contactApiError, [event.target.name]: '' });\n }\n };\n\n const saveContact = (contactId) => {\n setCheckChange({ [contactId]: true });\n if (contactDetails?.length === 1) {\n createContactInfo(contactDetails[0]).then((responseContact) => {\n if (responseContact?.status === 400) {\n setContactApiError(responseContact?.data);\n }\n if (responseContact?.status === 201) {\n toast.success('Contact Saved!');\n getContactData(id);\n setCheckChange({ ...checkChange, [contactId]: false });\n setContactApiError({});\n setContactDetails([]);\n }\n });\n }\n if (contactFormData && contactId) {\n updateContactInfo(contactId, contactFormData).then((res) => {\n if (res?.status === 400) {\n setContactApiError(res?.data);\n }\n if (res?.status === 200) {\n toast.success('Contact Saved!');\n getContactData(id);\n setCheckChange({ ...checkChange, [contactId]: false });\n setContactApiError({});\n setContactDetails([]);\n }\n });\n }\n };\n\n const mapContactValues = (item, key) => {\n if (item.id && contactApiError?.email?.[0] && checkChange[item.id]) {\n return contactFormData[key] || item[key];\n }\n return item[key];\n };\n\n const generateContactHTML = (array) => {\n const fields = [];\n array.map((item, i) =>\n fields.push(\n
\n
\n <>\n removeContact(item.id || i)}\n />\n {checkChange[item.id || i] ? (\n saveContact(item.id || i)}\n />\n ) : (\n ''\n )}\n
\n
\n {' '}\n {item.first_name === '' && item.last_name === '' ? (\n \n ) : (\n \n )}\n
\n
\n
\n
\n \n \n handleContactChange(event, item.id || i)\n }\n />\n {checkChange[item.id] ? (\n \n {item.id && contactApiError?.first_name?.[0]}\n \n ) : (\n ''\n )}\n {checkChange[i] && !item.id ? (\n \n {id && contactApiError?.first_name?.[0]}\n \n ) : (\n ''\n )}\n \n
\n
\n \n \n handleContactChange(event, item.id || i)\n }\n />\n {checkChange[item.id] ? (\n \n {item.id && contactApiError?.last_name?.[0]}\n \n ) : (\n ''\n )}\n {checkChange[i] && !item.id ? (\n \n {id && contactApiError?.last_name?.[0]}\n \n ) : (\n ''\n )}\n \n
\n
\n \n \n handleContactChange(event, item.id || i)\n }\n />\n \n
\n
\n \n \n handleContactChange(event, item.id || i)\n }\n />\n \n {checkChange[item.id] ? (\n <>\n \n {item.id && contactApiError?.email?.[0]}\n \n \n {item.id && contactApiError?.non_field_errors?.[0]}\n \n \n ) : (\n ''\n )}\n {checkChange[i] && !item.id ? (\n <>\n \n {id && contactApiError?.email?.[0]}\n \n \n {id && contactApiError?.non_field_errors?.[0]}\n \n \n ) : (\n ''\n )}\n
\n
\n \n \n handleContactChange(event, item.id || i)\n }\n maxLength={15}\n defaultValue={mapContactValues(item, 'phone_number')}\n id={`${item.id || i}ContactPhone`}\n />\n \n <>\n it will be set as United States(+1) by default.\"\n data-for=\"contact\"\n className=\"contact-input-info\"\n />\n \n \n\n \n {checkChange[item.id] ? (\n \n {item.id && contactApiError?.phone_number?.[0]}\n \n ) : (\n ''\n )}\n {checkChange[i] && !item.id ? (\n \n {id && contactApiError?.phone_number?.[0]}\n \n ) : (\n ''\n )}\n \n \n
\n
\n
\n
\n \n
\n
,\n ),\n );\n return fields;\n };\n\n return (\n \n
\n
\n
\n

Edit Company Details

\n
\n
\n
\n
\n {editCompanyFields.map((item) => (\n \n {item.type !== 'social' ? (\n
\n \n \n {apiError?.[item.key]?.[0]}\n \n
\n ) : (\n <>\n
\n
Social
\n
\n {generateSocialIcon(\n editCompanyFields.filter(\n (field) => field.key === 'social',\n ),\n )}\n \n )}\n
\n ))}\n\n <>\n
\n
Contact Details
\n {contactInfo.length === 0 &&\n contactDetails.length === 0 &&\n !loader ? (\n
\n \n No Contact Details Found.\n
\n ) : (\n ''\n )}\n
\n\n {loader ? (\n \n ) : (\n <>\n {generateContactHTML(contactInfo)}\n {generateContactHTML(contactDetails)}\n \n )}\n
\n addNewContact()}\n disabled={\n contactDetails?.length === 1 ||\n (contactApiError && Object.values(contactApiError).length)\n }\n >\n {' '}\n \n Add New Contact\n \n
\n \n
\n
\n
\n {showBtn ? (\n <>\n
\n
\n \n setShowModal(false)}\n >\n Discard Changes\n \n
\n \n ) : (\n ''\n )}\n \n );\n}\n\nEditCompanyDetails.defaultProps = {\n id: '',\n scrollDown: false,\n};\n\nEditCompanyDetails.propTypes = {\n setShowModal: func.isRequired,\n id: string,\n detail: shape({\n id: string,\n }).isRequired,\n setScrollDown: func.isRequired,\n scrollDown: bool,\n setDetail: func.isRequired,\n getContactData: func.isRequired,\n contactInfo: arrayOf(shape({ length: number })).isRequired,\n};\n","import React, { useCallback, useState } from 'react';\n\nimport $ from 'jquery';\nimport axios from 'axios';\nimport { toast } from 'react-toastify';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport {\n saveAmazonDspAccountdetails,\n saveAmazonSellerAccount,\n saveAmazonVendorAccount,\n} from '../../../api';\nimport { ModalBox, PageLoader, Button, InputFormField } from '../../../common';\n\nexport default function EditAmazonAccountDetails({\n dataLoader,\n setShowModal,\n generateDropdown,\n generateAccountHTML,\n dspData,\n formData,\n showBtn,\n selectedMarketplace,\n amazonDetails,\n sellerVendorCall,\n setApiError,\n setDspApiError,\n amazonDspDetails,\n sellerAdvertiserIds,\n vendorAdvertiserIds,\n generateDspAccountHTML,\n setSellerAdvertiserIdsError,\n setVendorAdvertiserIdsError,\n initialGetCallOfUseEffect,\n}) {\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n\n // bind advertiser ids error\n const bindAdvertiserIdsError = useCallback((response) => {\n const tempData = [];\n\n const advIdsError = response?.advertiser_ids ? response.advertiser_ids : [];\n advIdsError.forEach((item, index) => {\n tempData.push({\n error: item,\n index,\n });\n });\n return tempData;\n }, []);\n\n // handle states after api success\n const afterSuccessAPI = () => {\n toast.success('Amazon Account details saved!');\n setIsLoading({ loader: false, type: 'button' });\n setShowModal(false);\n setApiError([]);\n setDspApiError([]);\n setSellerAdvertiserIdsError([]);\n setVendorAdvertiserIdsError([]);\n sellerVendorCall(selectedMarketplace);\n };\n\n // save dsp account details\n const saveDspAccountDetails = (dsp) => {\n saveAmazonDspAccountdetails(dsp, amazonDspDetails?.id).then((response) => {\n if (response?.status === 201 || response?.status === 200) {\n afterSuccessAPI();\n } else if (response?.status === 400) {\n setDspApiError({ Dsp: response?.data });\n } else {\n toast.error(\n response?.detail ||\n response?.error?.[0] ||\n 'Oops... Something went wrong!',\n );\n }\n setIsLoading({ loader: false, type: 'button' });\n });\n };\n\n // handle autoscroll events\n const handleAutoScrollEvents = () => {\n if (selectedMarketplace?.account_type === 'Hybrid') {\n const div = document.getElementById('scroll');\n $('#scroll').animate(\n {\n scrollTop: div.scrollHeight,\n },\n 500,\n );\n }\n };\n\n // handle seller, vendor, dsp patch api calls\n const handleMultipleAPIRequest = (seller, vendor, dsp) => {\n // configuring the array of API promises.\n // For HYBRID account with DSP is TRUE, there will be 3 API Promises.\n // For HYBRID account with DSP is FALSE, there will be 2 API Promises.\n // For SELLER or VENDOR account with DSP is TRUE, there will be 2 API Promises.\n // For SELLER or VENDOR account with DSP is FALSE, there will be 1 API Promise.\n\n const accountType = selectedMarketplace?.account_type;\n const isSellerCalls = accountType === 'Seller';\n const isVendorCalls = accountType === 'Vendor';\n const isHybridCalls = accountType === 'Hybrid';\n const isDspCalls = selectedMarketplace?.dspvalue;\n const apiRequest = [];\n\n if (isSellerCalls && seller) {\n apiRequest.push(\n saveAmazonSellerAccount(seller, amazonDetails?.Seller?.id),\n );\n }\n if (isVendorCalls && vendor) {\n apiRequest.push(\n saveAmazonVendorAccount(vendor, amazonDetails?.Vendor?.id),\n );\n }\n if (isHybridCalls) {\n apiRequest.push(\n saveAmazonSellerAccount(seller, amazonDetails?.Seller?.id),\n saveAmazonVendorAccount(vendor, amazonDetails?.Vendor?.id),\n );\n }\n if (isDspCalls) {\n apiRequest.push(\n saveAmazonDspAccountdetails(dsp, amazonDspDetails?.Dsp?.id),\n );\n }\n\n if (isHybridCalls) {\n axios.all(apiRequest).then(\n axios.spread((...res) => {\n if (\n isDspCalls &&\n (res?.[0]?.status === 201 || res?.[0]?.status === 200) &&\n (res?.[1]?.status === 201 || res?.[1]?.status === 200) &&\n (res?.[2]?.status === 201 || res?.[2]?.status === 200)\n ) {\n afterSuccessAPI();\n } else if (\n !isDspCalls &&\n (res?.[0]?.status === 201 || res?.[0]?.status === 200) &&\n (res?.[1]?.status === 201 || res?.[1]?.status === 200)\n ) {\n afterSuccessAPI();\n } else if (\n res?.[0]?.status === 400 ||\n res?.[1]?.status === 400 ||\n res?.[2]?.status === 400\n ) {\n let sel = {};\n let ven = {};\n if (res?.[0]?.status === 400) {\n sel = res?.[0]?.data;\n const getError = bindAdvertiserIdsError(res?.[0]?.data);\n setSellerAdvertiserIdsError(getError);\n }\n if (res?.[1]?.status === 400) {\n ven = res?.[1]?.data;\n const getError = bindAdvertiserIdsError(res?.[1]?.data);\n setVendorAdvertiserIdsError(getError);\n }\n if (res?.[2]?.status === 400) {\n setDspApiError({ Dsp: res?.[2]?.data });\n }\n\n setApiError({ Seller: sel, Vendor: ven });\n\n handleAutoScrollEvents();\n } else {\n toast.error(\n res?.detail || res?.error?.[0] || 'Oops... Something went wrong!',\n );\n }\n setIsLoading({ loader: false, type: 'button' });\n }),\n );\n } else {\n axios.all(apiRequest).then(\n axios.spread((...res) => {\n if (\n isDspCalls &&\n (res?.[0]?.status === 201 || res?.[0]?.status === 200) &&\n (res?.[1]?.status === 201 || res?.[1]?.status === 200)\n ) {\n afterSuccessAPI();\n } else if (\n !isDspCalls &&\n (res?.[0]?.status === 201 || res?.[0]?.status === 200)\n ) {\n afterSuccessAPI();\n } else if (res?.[0]?.status === 400 || res?.[1]?.status === 400) {\n if (res?.[0]?.status === 400) {\n const getError = bindAdvertiserIdsError(res?.data);\n if (isSellerCalls) {\n setApiError({ Seller: res?.[0]?.data });\n setSellerAdvertiserIdsError(getError);\n }\n if (isVendorCalls) {\n setApiError({ Vendor: res?.[0]?.data });\n setVendorAdvertiserIdsError(getError);\n }\n }\n\n if (res?.[1]?.status === 400) {\n setDspApiError({ Dsp: res?.[1]?.data });\n }\n\n handleAutoScrollEvents();\n } else {\n toast.error(\n res?.detail || res?.error?.[0] || 'Oops... Something went wrong!',\n );\n }\n setIsLoading({ loader: false, type: 'button' });\n }),\n );\n }\n };\n\n const saveAccountDetails = () => {\n setIsLoading({ loader: true, type: 'button' });\n const tempSellerAdvId = [];\n const tempVendorAdvId = [];\n if (sellerAdvertiserIds?.length) {\n for (const item of sellerAdvertiserIds) {\n if (item?.type === 'advIds') tempSellerAdvId.push(item.advertiser_id);\n }\n }\n\n if (vendorAdvertiserIds?.length) {\n for (const item of vendorAdvertiserIds) {\n if (item?.type === 'advIds') {\n tempVendorAdvId.push(item.advertiser_id);\n }\n }\n }\n\n const seller = formData.Seller\n ? {\n ...formData.Seller,\n advertiser_ids: tempSellerAdvId?.length ? tempSellerAdvId : null,\n marketplace: selectedMarketplace?.value?.startsWith('MP')\n ? selectedMarketplace?.value\n : null,\n }\n : null;\n const vendor = formData.Vendor\n ? {\n ...formData.Vendor,\n advertiser_ids: tempVendorAdvId?.length ? tempVendorAdvId : null,\n marketplace: selectedMarketplace?.value?.startsWith('MP')\n ? selectedMarketplace?.value\n : null,\n }\n : null;\n\n const dsp = {\n ...dspData?.Dsp,\n marketplace: selectedMarketplace?.dspvalue,\n };\n\n if (selectedMarketplace?.account_type) {\n handleMultipleAPIRequest(seller, vendor, dsp);\n } else if (selectedMarketplace?.dspvalue) {\n saveDspAccountDetails(dsp);\n }\n };\n\n // checking space validation which is not allowed in advertiser ids\n function isEmptyOrSpaces(value) {\n return value === null || value.match(/^ *$/) !== null;\n }\n\n // input field validation function\n const validateAdvertiserIds = () => {\n let isValidate = false;\n let allEntries = [];\n const accountType = selectedMarketplace?.account_type;\n\n if (accountType === 'Hybrid' || accountType === 'Seller') {\n for (const item of sellerAdvertiserIds) {\n if (item?.type === 'advIds') {\n const isError = isEmptyOrSpaces(item.advertiser_id);\n\n if (isError) {\n allEntries = [...allEntries, ' '];\n } else {\n allEntries = [...allEntries, item.advertiser_id];\n }\n }\n }\n }\n\n if (accountType === 'Hybrid' || accountType === 'Vendor') {\n for (const item of vendorAdvertiserIds) {\n if (item?.type === 'advIds') {\n const isError = isEmptyOrSpaces(item.advertiser_id);\n\n if (isError) {\n allEntries = [...allEntries, ' '];\n } else {\n allEntries = [...allEntries, item.advertiser_id];\n }\n }\n }\n }\n\n if (\n allEntries.includes(undefined) ||\n allEntries.includes(null) ||\n allEntries.includes(' ') ||\n allEntries.includes('')\n ) {\n isValidate = true;\n } else {\n isValidate = false;\n }\n return isValidate;\n };\n\n return (\n \n
\n
\n
\n

Edit Amazon Account Names & IDs

\n
\n
\n \n {generateDropdown()}\n
\n \n {generateAccountHTML('edit')}\n {selectedMarketplace?.dspvalue\n ? generateDspAccountHTML('edit')\n : null}\n
\n
\n
\n
\n {showBtn ? (\n <>\n
\n
\n
\n
\n saveAccountDetails()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Confirm'\n )}\n \n
\n
\n {\n setShowModal(false);\n setApiError({});\n initialGetCallOfUseEffect();\n }}\n >\n Discard Changes\n \n
\n
\n
\n \n ) : (\n ''\n )}\n \n );\n}\n\nEditAmazonAccountDetails.defaultProps = {\n dataLoader: false,\n showBtn: false,\n selectedMarketplace: null,\n dspData: {},\n amazonDspDetails: {},\n formData: [],\n sellerAdvertiserIds: [],\n vendorAdvertiserIds: [],\n // function\n setApiError: () => {},\n setShowModal: () => {},\n setDspApiError: () => {},\n generateDspAccountHTML: () => {},\n setSellerAdvertiserIdsError: () => {},\n setVendorAdvertiserIdsError: () => {},\n initialGetCallOfUseEffect: () => {},\n};\n\nEditAmazonAccountDetails.propTypes = {\n dataLoader: bool,\n showBtn: bool,\n selectedMarketplace: shape({\n account_type: string,\n value: string,\n }),\n dspData: shape({}),\n amazonDspDetails: shape({}),\n formData: shape({\n Seller: shape({}),\n Vendor: shape({}),\n }),\n amazonDetails: shape({\n Seller: shape({}),\n Vendor: shape({}),\n }).isRequired,\n sellerAdvertiserIds: arrayOf(shape()),\n vendorAdvertiserIds: arrayOf(shape()),\n // function\n setApiError: func,\n setShowModal: func,\n setDspApiError: func,\n generateDropdown: func.isRequired,\n sellerVendorCall: func.isRequired,\n generateAccountHTML: func.isRequired,\n generateDspAccountHTML: func,\n setSellerAdvertiserIdsError: func,\n setVendorAdvertiserIdsError: func,\n initialGetCallOfUseEffect: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\n\nimport Modal from 'react-modal';\nimport copy from 'copy-to-clipboard';\nimport ReactTooltip from 'react-tooltip';\nimport { components } from 'react-select';\nimport { useSelector } from 'react-redux';\nimport { shape, arrayOf, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../theme/Theme';\nimport EditAmazonAccountDetails from './EditAmazonAccountDetails';\n\nimport { Icon } from '../../../theme/Global';\nimport {\n getAmazonDspDetails,\n getAmazonSeller,\n getAmazonVendor,\n} from '../../../api';\nimport {\n SpreetailRole,\n amazonDspAccDetails,\n amazonSellerAccDetails,\n amazonVendorAccDetails,\n} from '../../../constants';\nimport {\n AddIcons,\n EditOrangeIcon,\n CopyLinkIcon,\n CloseIcon,\n TrashIcons,\n} from '../../../theme/images';\nimport {\n InputFormField,\n ErrorMsg,\n WhiteCard,\n DropdownIndicator,\n Button,\n SingleSelectDropdown,\n} from '../../../common';\n\nexport default function AmazonAccount({\n marketplaceData,\n customStyles,\n isAuthorized,\n marketplaceList,\n id,\n}) {\n const mounted = useRef(false);\n const { Option, SingleValue } = components;\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n\n const [marketplaceChoices, setMarketplaceChoices] = useState([]);\n const [selectedMarketplace, setSelectedMarketplace] = useState(null);\n const [amazonDetails, setAmazonDetails] = useState({});\n const [showModal, setShowModal] = useState(false);\n const [formData, setFormData] = useState([]);\n const [showBtn, setShowBtn] = useState(false);\n const [apiError, setApiError] = useState([]);\n const [dspApiError, setDspApiError] = useState({});\n const [sellerAdvertiserIds, setSellerAdvertiserIds] = useState([]);\n const [vendorAdvertiserIds, setVendorAdvertiserIds] = useState([]);\n const [sellerAdvertiserIdsError, setSellerAdvertiserIdsError] = useState([]);\n const [vendorAdvertiserIdsError, setVendorAdvertiserIdsError] = useState([]);\n const [amazonDspDetails, setAmazonDspDetails] = useState({});\n const [dspData, setDspData] = useState([]);\n const [dataLoader, setDataLoader] = useState(false);\n\n const sellerAuthenticationURL = `https://sellercentral.amazon.com/apps/authorize/consent?application_id=amzn1.sp.solution.103a85c5-769f-4523-829c-c3a3db9054b5&redirect_uri=${process.env.REACT_APP_SP_API_URL}&state=5tgb6yhn7ujm`;\n\n const vendorAuthenticationURL = `https://vendorcentral.amazon.com/apps/authorize/consent?application_id=amzn1.sp.solution.103a85c5-769f-4523-829c-c3a3db9054b5&redirect_uri=${process.env.REACT_APP_SP_API_URL}&state=5tgb6yhn7ujm`;\n\n // pdv-7948 remove hardcoded LWA authenticator list.\n const showSPButton = userInfo?.lwa_authentication_button;\n\n const displayMarketplaceURL = (label) => {\n return marketplaceList?.find((op) => label === op.label)?.value;\n };\n\n const convertDomainToName = (label) => {\n return marketplaceList?.find((op) => label === op.label)?.label;\n };\n\n const checkLWAAuthorizationMsg = (type) => {\n if (\n typeof isAuthorized[convertDomainToName(selectedMarketplace?.label)] ===\n 'object'\n ) {\n return isAuthorized[convertDomainToName(selectedMarketplace?.label)]?.[\n type\n ];\n }\n return isAuthorized[convertDomainToName(selectedMarketplace?.label)];\n };\n\n // bind multiple seller advertiser ids data\n const bindMultipleAdvertiserIdsData = useCallback((AdvIdsData, type) => {\n const tempData = [];\n\n if (AdvIdsData?.length) {\n AdvIdsData.forEach((obj, index) => {\n const tempIdObj = {\n index,\n key: `${type}_advertiser_id_${index}`,\n label: `Advertiser ID`,\n section: 2,\n advertiser_id: obj,\n type: 'advIds',\n };\n tempData.push(tempIdObj);\n\n return tempData;\n });\n }\n return tempData;\n }, []);\n\n // get amazon vendor central account detail\n const getVendorDetails = (marketplace, sellerData) => {\n getAmazonVendor(marketplace?.value, marketplace?.mp_name, id).then(\n (vendor) => {\n if (mounted.current) {\n setAmazonDetails({\n ...amazonDetails,\n Seller: sellerData,\n Vendor: vendor?.data?.results?.[0],\n });\n setFormData({\n ...formData,\n Seller: sellerData,\n Vendor: vendor?.data?.results?.[0],\n });\n\n const vendorAdvIds = vendor?.data?.results?.[0]?.advertiser_ids;\n const getVendorAdvIds = bindMultipleAdvertiserIdsData(\n vendorAdvIds,\n 'vendor',\n );\n setVendorAdvertiserIds(getVendorAdvIds);\n setDataLoader(false);\n }\n },\n );\n };\n\n // get amazon seller central account detail\n const getSellerDetails = useCallback(\n (marketplace) => {\n getAmazonSeller(marketplace?.value, marketplace?.mp_name, id).then(\n (seller) => {\n if (mounted.current) {\n setAmazonDetails({\n ...amazonDetails,\n Seller: seller?.data?.results?.[0],\n });\n setFormData({\n ...formData,\n Seller: seller?.data?.results?.[0],\n });\n\n const sellerAdvIds = seller?.data?.results?.[0]?.advertiser_ids;\n const getSellerAdvIds = bindMultipleAdvertiserIdsData(\n sellerAdvIds,\n 'seller',\n );\n setSellerAdvertiserIds(getSellerAdvIds);\n\n if (marketplace?.account_type === 'Hybrid') {\n getVendorDetails(marketplace, seller?.data?.results?.[0]);\n }\n setDataLoader(false);\n }\n },\n );\n },\n [amazonDetails],\n );\n\n // get dsp account details\n const getDspDetailsOfBP = useCallback((marketplace) => {\n getAmazonDspDetails(marketplace).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n setDspData({ Dsp: response?.data?.results?.[0] });\n setAmazonDspDetails({ Dsp: response?.data?.results?.[0] });\n }\n setDataLoader(false);\n }\n });\n }, []);\n\n // seller vendor api call\n const sellerVendorCall = (marketplace) => {\n setDataLoader(true);\n setApiError({});\n setFormData({});\n setAmazonDetails({});\n setDspData({});\n setAmazonDspDetails({});\n setDspApiError({});\n setSellerAdvertiserIdsError([]);\n setVendorAdvertiserIdsError([]);\n setSelectedMarketplace(marketplace);\n\n if (marketplace?.value === null) {\n marketplace.value = marketplace?.mp_name;\n }\n\n if (marketplace?.value || marketplace?.mp_name) {\n if (\n marketplace?.account_type === 'Seller' ||\n marketplace?.account_type === 'Hybrid'\n ) {\n getSellerDetails(marketplace);\n } else if (marketplace?.account_type === 'Vendor') {\n getVendorDetails(marketplace, '');\n }\n }\n\n if (marketplace?.dspvalue) {\n getDspDetailsOfBP(marketplace?.dspvalue);\n }\n };\n\n // get MarketPlace Choices and Serrer and or vendor data\n const initialGetCallOfUseEffect = () => {\n mounted.current = true;\n setMarketplaceChoices(marketplaceData);\n const defaultMarketplace =\n marketplaceData?.find((value) => value?.is_primary) ||\n marketplaceData?.[0];\n\n if (defaultMarketplace?.value === null)\n defaultMarketplace.value = defaultMarketplace?.mp_name;\n\n sellerVendorCall(defaultMarketplace);\n\n return () => {\n mounted.current = false;\n };\n };\n\n useEffect(() => {\n initialGetCallOfUseEffect();\n }, [marketplaceData]);\n\n const singleMarketplaceOption = (dataProps) => (\n \n \n {dataProps.data.label} {dataProps.data.is_primary}\n {/* {dataProps.data.label} {dataProps.data.is_primary ? '(primary)' : ''} */}\n \n \n );\n\n const IconOption = (dataProps) => (\n \n );\n\n // handeling the advertiser ids input changes events\n const handleAdvIdsChange = (mapData, index, key, value) => {\n return mapData?.map((obj, indexOfobj) => {\n if (indexOfobj === index) {\n return {\n ...obj,\n [key]: value,\n };\n }\n return {\n ...obj,\n };\n });\n };\n\n // handeling the events when user changes the input value\n const handleChange = (event, item, part, index) => {\n setShowBtn(true);\n if (part === 3) {\n setDspData({\n ...dspData,\n Dsp: {\n ...dspData.Dsp,\n [item?.key]: event?.target?.value,\n },\n });\n setDspApiError({\n ...dspApiError,\n Dsp: {\n ...dspApiError.Dsp,\n [item.key]: '',\n },\n });\n } else {\n if (item?.type !== 'advIds') {\n setApiError({\n ...apiError,\n [item?.key]: '',\n });\n }\n\n if (item?.type === 'advIds') {\n if (part === 1) {\n const updatedId = handleAdvIdsChange(\n sellerAdvertiserIds,\n index,\n 'advertiser_id',\n event.target.value,\n );\n setSellerAdvertiserIds(updatedId);\n\n const updatedError = handleAdvIdsChange(\n sellerAdvertiserIdsError,\n index,\n 'error',\n '',\n );\n setSellerAdvertiserIdsError(updatedError);\n }\n\n if (part === 2) {\n const updatedId = handleAdvIdsChange(\n vendorAdvertiserIds,\n index,\n 'advertiser_id',\n event.target.value,\n );\n setVendorAdvertiserIds(updatedId);\n\n const updatedError = handleAdvIdsChange(\n vendorAdvertiserIdsError,\n index,\n 'error',\n '',\n );\n setVendorAdvertiserIdsError(updatedError);\n }\n } else {\n if (selectedMarketplace?.account_type === 'Hybrid' && part === 1) {\n setFormData({\n ...formData,\n Seller: {\n ...formData.Seller,\n [item.key]: event.target.value,\n },\n });\n setApiError({\n ...apiError,\n Seller: {\n ...apiError.Seller,\n [item.key]: '',\n },\n });\n }\n if (selectedMarketplace?.account_type === 'Hybrid' && part === 2) {\n setFormData({\n ...formData,\n Vendor: {\n ...formData.Vendor,\n [item.key]: event.target.value,\n },\n });\n setApiError({\n ...apiError,\n Vendor: {\n ...apiError.Vendor,\n [item.key]: '',\n },\n });\n } else if (selectedMarketplace?.account_type !== 'Hybrid')\n setFormData({\n ...formData,\n [selectedMarketplace.account_type]: {\n ...formData[selectedMarketplace.account_type],\n [item.key]: event.target.value,\n },\n });\n }\n }\n };\n\n // map api error for multiple advertier id input field\n const renderAdvertiserIdsError = (item, part) => {\n let error = [];\n if (part === 1) {\n const errorObj = sellerAdvertiserIdsError?.filter((obj, index) => {\n if (index === item) {\n return obj;\n }\n return '';\n });\n\n error = errorObj?.[0]?.error;\n return error;\n }\n if (part === 2) {\n const errorObj = vendorAdvertiserIdsError?.filter((obj, index) => {\n if (index === item) {\n return obj;\n }\n return '';\n });\n\n error = errorObj?.[0]?.error;\n return error;\n }\n\n return error || '';\n };\n\n // Remove the additional advertiser id field added inside seller and vendor details\n const removeAdvertiserIdInputField = (index, part) => {\n setShowBtn(true);\n if (part === 1) {\n const sellerAdvIds = [...sellerAdvertiserIds];\n sellerAdvIds.splice(index, 1);\n setSellerAdvertiserIds(sellerAdvIds);\n\n const sellerAdvIdsError = [...sellerAdvertiserIdsError];\n sellerAdvIdsError.splice(index, 1);\n setSellerAdvertiserIdsError(sellerAdvIdsError);\n }\n if (part === 2) {\n const vendorAdvIds = [...vendorAdvertiserIds];\n vendorAdvIds.splice(index, 1);\n setVendorAdvertiserIds(vendorAdvIds);\n\n const vendorAdvIdsError = [...vendorAdvertiserIdsError];\n vendorAdvIdsError.splice(index, 1);\n setVendorAdvertiserIdsError(vendorAdvIdsError);\n }\n };\n\n // additional advertiser ids object\n const addAdvertiserIdsObject = (index, type) => {\n const advId = {\n index,\n key: `${type}_advertiser_id_${index}`,\n label: `Advertiser ID`,\n section: 2,\n advertiser_id: '',\n type: 'advIds',\n };\n return advId;\n };\n\n // render additional advertiser id html input field inside seller and vendor detail\n const renderAdvertiserIdInputField = (part) => {\n let tempData = [];\n if (part === 1) {\n const index = sellerAdvertiserIds?.length;\n const advId = addAdvertiserIdsObject(index, 'seller');\n tempData = setSellerAdvertiserIds([...sellerAdvertiserIds, advId]);\n } else if (part === 2) {\n const index = vendorAdvertiserIds?.length;\n const advId = addAdvertiserIdsObject(index, 'vendor');\n tempData = setVendorAdvertiserIds([...vendorAdvertiserIds, advId]);\n }\n return tempData;\n };\n\n // map default values to seller and vendor details inside modal body\n const mapDefaultValues = (item, part) => {\n if (part === 3) {\n return dspData?.Dsp?.[item] || '';\n }\n if (selectedMarketplace?.account_type === 'Hybrid') {\n if (part === 1) {\n return formData?.Seller?.[item];\n }\n if (part === 2) {\n return formData?.Vendor?.[item];\n }\n }\n return formData?.[selectedMarketplace?.account_type]?.[item] || '';\n };\n\n // generate input html for edit account deatil modal\n const generateInput = (item, part, index) => {\n return (\n
\n handleChange(event, item, part, index)}\n />\n {item?.type === 'advIds' ? (\n removeAdvertiserIdInputField(index, part)}\n />\n ) : null}\n
\n );\n };\n\n // render additional advertising entity id button for seller and vendor detail\n const renderAdditionalAdvertiserIdButton = (part) => {\n return (\n
\n
\n {\n renderAdvertiserIdInputField(part);\n }}\n >\n {' '}\n Add Additional Advertiser Id\n \n
\n
\n );\n };\n\n // display error message for seller and vendor input fields\n const displaySellerVendorErrorMessage = (item, index, part) => {\n return item?.type === 'advIds' ? (\n {renderAdvertiserIdsError(index, part)}\n ) : (\n \n {part === 1\n ? apiError?.Seller?.[item?.key]\n : apiError?.Vendor?.[item?.key]}\n \n );\n };\n\n // display error message dor dsp input fields\n const displayDspErrorMessage = (errorMessage) => {\n return errorMessage ? (\n \n \n \n \n {errorMessage}\n \n ) : null;\n };\n\n // generate the html inside edit amazon details modal\n const generateEditHTML = (mapData, part) => {\n return mapData?.map((item, index) => {\n return (\n
\n \n \n {/* {apiError?.[item?.key]} */}\n {part === 1 || part === 2\n ? displaySellerVendorErrorMessage(item, index, part)\n : null}\n\n {part === 3\n ? displayDspErrorMessage(dspApiError?.Dsp?.[item?.key])\n : null}\n \n
\n );\n });\n };\n\n // generate the html inside amazaon accounts names and ids\n const generateHTML = (mapData, part) => {\n return (\n <>\n {mapData?.map((item) => {\n return (\n
\n
{item.label}
\n
\n {item?.type === 'advIds'\n ? item.advertiser_id || 'None'\n : mapDefaultValues(item.key, part) || 'None'}\n
\n \n copy(\n item?.type === 'advIds'\n ? item.advertiser_id\n : mapDefaultValues(item.key, part),\n )\n }\n role=\"presentation\"\n >\n \"\"\n Copy\n
\n
\n );\n })}\n \n );\n };\n\n const getMarketplaceDetails = () => {\n const marketplaceURL = displayMarketplaceURL(selectedMarketplace?.label);\n return {\n ...selectedMarketplace,\n label: marketplaceURL,\n };\n };\n\n const generateAccountHTML = (html) => {\n return (\n <>\n {selectedMarketplace?.account_type === 'Hybrid' ? (\n
Seller Central
\n ) : (\n ''\n )}\n {selectedMarketplace?.account_type === 'Seller' ||\n selectedMarketplace?.account_type === 'Hybrid' ? (\n <>\n {html === 'edit' ? (\n <>\n {generateEditHTML(amazonSellerAccDetails, 1)}\n {generateEditHTML(sellerAdvertiserIds, 1)}\n {renderAdditionalAdvertiserIdButton(1)}\n \n ) : (\n <>\n {generateHTML(amazonSellerAccDetails, 1)}\n {generateHTML(sellerAdvertiserIds)}\n {showSPButton && userInfo?.role !== 'Customer' ? (\n \n \n \n localStorage.setItem(\n 'spApi',\n JSON.stringify({\n customer_id: id,\n marketplace: getMarketplaceDetails(),\n type: 'seller',\n }),\n )\n }\n >\n \n \n
\n ) : null}\n \n )}\n \n ) : (\n ''\n )}\n {selectedMarketplace?.account_type === 'Hybrid' ? (\n
Vendor Central
\n ) : (\n ''\n )}\n {selectedMarketplace?.account_type === 'Vendor' ||\n selectedMarketplace?.account_type === 'Hybrid' ? (\n <>\n {html === 'edit' ? (\n <>\n {generateEditHTML(amazonVendorAccDetails, 2)}\n {generateEditHTML(vendorAdvertiserIds, 2)}\n {renderAdditionalAdvertiserIdButton(2)}\n \n ) : (\n <>\n {generateHTML(amazonVendorAccDetails, 2)}\n {generateHTML(vendorAdvertiserIds)}\n\n {showSPButton && userInfo?.role !== 'Customer' ? (\n \n \n\n \n localStorage.setItem(\n 'spApi',\n JSON.stringify({\n customer_id: id,\n marketplace: getMarketplaceDetails(),\n type: 'vendor',\n }),\n )\n }\n >\n \n \n
\n ) : null}\n \n )}\n \n ) : (\n ''\n )}\n \n );\n };\n\n // https://bbe.atlassian.net/browse/PDV-9099\n // Capture DSP Details on Company details section - Single BP / BP View\n const generateDspAccountHTML = (html) => {\n return (\n <>\n
DSP
\n {html === 'edit'\n ? generateEditHTML(amazonDspAccDetails, 3)\n : generateHTML(amazonDspAccDetails, 3)}\n \n );\n };\n\n // get dropdown select components\n const getDropdownSelectComponents = () => {\n return {\n Option: IconOption,\n SingleValue: singleMarketplaceOption,\n DropdownIndicator,\n };\n };\n\n const generateDropdown = () => {\n return (\n <>\n
Marketplace
\n
\n \n
\n \n );\n };\n\n return (\n \n

\n Amazon Account Names & IDs\n

\n {(selectedMarketplace?.dspvalue === null ||\n selectedMarketplace?.dspvalue === '') &&\n (isSpreetailUser ||\n marketplaceChoices?.length === 0 ||\n selectedMarketplace?.account_type === null ||\n selectedMarketplace?.account_type === '') ? (\n ''\n ) : (\n {\n setShowModal(true);\n setShowBtn(false);\n }}\n role=\"presentation\"\n >\n \"\"\n Edit\n
\n )}\n {marketplaceChoices?.length === 0 ? (\n 'Marketplace not found.'\n ) : (\n
\n {generateDropdown()}\n {selectedMarketplace?.account_type ? (\n <>{generateAccountHTML('label')}\n ) : (\n
Account type not found.
\n )}\n {selectedMarketplace?.dspvalue\n ? generateDspAccountHTML('label')\n : null}\n
\n )}\n\n \n {\n setShowModal(false);\n initialGetCallOfUseEffect();\n }}\n role=\"presentation\"\n />\n \n \n \n );\n}\n\nAmazonAccount.defaultProps = {\n customStyles: {},\n isAuthorized: {},\n};\n\nAmazonAccount.propTypes = {\n id: string.isRequired,\n customStyles: shape({}),\n marketplaceData: arrayOf(shape({})).isRequired,\n isAuthorized: shape({}),\n marketplaceList: arrayOf(shape({})).isRequired,\n};\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport Modal from 'react-modal';\nimport ReadMoreAndLess from 'react-read-more-less';\nimport { useSelector } from 'react-redux';\nimport { shape, arrayOf, string, bool, func } from 'prop-types';\n\nimport EditCompanyDetails from './EditCompanyDetails';\nimport AmazonAccount from './AmazonAccount';\nimport { GroupUser } from '../../../theme/Global';\nimport { SpreetailRole, socialIcons } from '../../../constants';\nimport { EditOrangeIcon, CloseIcon } from '../../../theme/images';\nimport {\n getCustomerDetails,\n getCustomerContactDetails,\n getMarketplaces,\n getAccountMarketplace,\n getSPData,\n} from '../../../api';\nimport {\n GetInitialName,\n PageLoader,\n WhiteCard,\n DropdownIndicator,\n ViewData,\n SingleSelectDropdown,\n} from '../../../common';\n\nexport default function CompanyDetail({\n id,\n isCustomer,\n isAuthorized,\n childBPList,\n setIsAuthorized,\n}) {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n minHeight: '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n const [showModal, setShowModal] = useState(false);\n const [scrollDown, setScrollDown] = useState(false);\n const [detail, setDetail] = useState();\n const [contactInfo, setContactInfo] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [marketplaceList, setMarketplaceList] = useState([]);\n const [marketplaceData, setMarketplaceData] = useState([]);\n const [selectedCustomerId, setSelectedCustomerId] = useState(\n childBPList?.length ? childBPList?.[0]?.value : id,\n );\n\n useEffect(() => {\n if (childBPList?.length) setSelectedCustomerId(childBPList?.[0]?.value);\n }, [childBPList]);\n\n const getContactData = useCallback(() => {\n getCustomerContactDetails(selectedCustomerId).then((res) => {\n setContactInfo(res?.data);\n setIsLoading(false);\n });\n }, [selectedCustomerId]);\n\n const customerDetails = useCallback(() => {\n setIsLoading(true);\n getCustomerDetails(selectedCustomerId).then((res) => {\n if (res?.status === 200) {\n setDetail(res?.data);\n getContactData();\n getSPData(selectedCustomerId).then((response) => {\n if (response?.status === 200) setIsAuthorized(response?.data);\n });\n }\n });\n }, [selectedCustomerId, getContactData, setIsAuthorized]);\n\n useEffect(() => {\n getAccountMarketplace(selectedCustomerId).then((response) => {\n setMarketplaceData(response?.data);\n setIsLoading({ loader: false, type: 'page' });\n });\n }, [selectedCustomerId]);\n\n useEffect(() => {\n getMarketplaces('amazon').then((market) => {\n setMarketplaceList(market.data);\n });\n }, []);\n\n useEffect(() => {\n customerDetails();\n }, [selectedCustomerId, getContactData, customerDetails]);\n\n const generateSocialIcon = (item) => {\n const fields = [];\n if (detail && detail[item.key]) {\n fields.push(\n
  • \n \n \n \n
  • ,\n );\n }\n if (fields && fields.length === 0) {\n return '';\n }\n return fields;\n };\n\n const getContactCard = () => {\n return (\n \n

    \n Company Contacts\n

    \n {!isSpreetailUser ? (\n {\n setShowModal(true);\n setScrollDown(true);\n }}\n role=\"presentation\"\n >\n \"\"\n Edit\n \n ) : null}\n
    \n {contactInfo && contactInfo.length === 0\n ? 'No Record found.'\n : contactInfo.map((item) => (\n \n \n
    \n {item.first_name || ' '} {item.last_name || ' '}{' '}\n {item.role ? <>({item.role}) : ''}\n
    \n
    \n {item.email || ' '}\n
    \n
    \n
    \n \n ))}\n
    \n \n );\n };\n\n const getSocialIcons = () => {\n return (\n \n

    Contact Info

    \n {!isSpreetailUser ? (\n setShowModal(true)}\n role=\"presentation\"\n >\n \"\"\n Edit\n
    \n ) : null}\n\n
    Phone Number
    \n
    {detail?.phone_number}
    \n\n
    Social Accounts
    \n\n
      \n {socialIcons.map((item) => generateSocialIcon(item))}\n
    \n
    \n );\n };\n\n // handle child bp filter events\n const handleChildBPFilterEvents = (event) => {\n if (event?.value !== selectedCustomerId) {\n customerDetails();\n setSelectedCustomerId(event?.value);\n }\n };\n\n // get single select dropdown components\n const getSingleSelectComponents = () => {\n return {\n DropdownIndicator,\n };\n };\n\n // display child bp filter\n const displayChildBPFilter = () => {\n return (\n op?.value === selectedCustomerId,\n )}\n onChangeHandler={handleChildBPFilterEvents}\n dropdownComponents={getSingleSelectComponents}\n // isApiCall={isApiCall}\n isSearchable={false}\n />\n );\n };\n\n return (\n <>\n {isLoading ? (\n
    \n \n {' '}\n \n
    \n ) : (\n
    \n {childBPList?.length ? (\n \n \n
    \n
    \n
    \n View data for:\n
    {' '}\n
    \n
    \n
    \n {displayChildBPFilter()}\n
    \n
    \n
    \n
    \n ) : null}\n \n
    \n
    \n \n Company Description\n \n
    \n
    \n\n \n {' '}\n \n {`${\n detail?.description === null ? '' : detail?.description\n }${' '}` || ''}\n \n \n
    \n
    \n {!isSpreetailUser ? (\n {\n setShowModal(true);\n }}\n role=\"presentation\"\n >\n \"\"\n Edit\n
    \n ) : null}\n \n
    \n
    \n <>{getContactCard()}\n <>{getSocialIcons()}\n
    \n {isCustomer ? null : (\n
    \n \n
    \n )}\n
    \n \n setShowModal(false)}\n role=\"presentation\"\n />\n \n \n \n )}\n \n );\n}\n\nCompanyDetail.defaultProps = {\n id: '',\n isAuthorized: {},\n childBPList: [],\n setIsAuthorized: () => {},\n};\n\nCompanyDetail.propTypes = {\n id: string,\n isCustomer: bool.isRequired,\n isAuthorized: shape({}),\n childBPList: arrayOf(shape({})),\n setIsAuthorized: func,\n};\n","import styled from 'styled-components';\nimport Theme from '../theme/Theme';\n\nconst InputSelect = styled.div`\n width: 100%;\n\n label {\n color: ${Theme.gray30};\n font-size: 12px;\n letter-spacing: 1.13px;\n text-transform: uppercase;\n font-weight: bold;\n }\n\n .css-yk16xz-control {\n color: ${Theme.gray90};\n\n border: 1px solid ${Theme.gray2};\n background-color: rgba(224, 231, 255, 0.2);\n margin-top: 5px;\n cursor: pointer;\n\n .css-g1d714-ValueContainer {\n color: ${Theme.gray30};\n font-size: ${Theme.normal};\n\n .css-1wa3eu0-placeholder {\n color: ${Theme.gray30};\n font-size: ${Theme.normal};\n text-transform: none;\n }\n }\n .css-1hwfws3 {\n font-size: ${Theme.normal};\n }\n\n &:hover {\n border: 1px solid ${Theme.gray2};\n }\n }\n\n .css-1pahdxg-control {\n box-shadow: none;\n margin-top: 5px;\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray2} !important;\n outline: none;\n font-size: ${Theme.normal};\n cursor: pointer;\n }\n`;\n\nexport default InputSelect;\n","import React, { useState, useEffect } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport Select, { components } from 'react-select';\nimport { arrayOf, func, shape, string } from 'prop-types';\n\nimport InputSelect from '../../../common/InputSelect';\nimport CropUploadImage from '../../../common/CropUploadImage';\nimport { editAccountFields } from '../../../constants';\nimport { SortDownIcon } from '../../../theme/images';\nimport { getCategories, getCountry, updateCustomerDetails } from '../../../api';\nimport { Button, ErrorMsg, FormField, PageLoader } from '../../../common';\n\nexport default function EditAccountDetails({\n setShowModal,\n setDocumentImage,\n IsSaveDataClicked,\n customer,\n setCustomer,\n id,\n}) {\n const [countries, setCountries] = useState([]);\n const [categories, setCategories] = useState([]);\n const [formData, setFormData] = useState({});\n const [apiError, setApiError] = useState({});\n const [showBtn, setShowBtn] = useState(false);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n\n const CustomDropdownIndicator = (props) => {\n return (\n \n \"sort\"\n \n );\n };\n\n useEffect(() => {\n getCountry().then((response) => {\n setCountries(response && response.data);\n });\n getCategories().then((category) => {\n setCategories(category && category.data);\n });\n }, []);\n\n const handleSelectChange = (event, key) => {\n setShowBtn(true);\n setFormData({ ...formData, [key]: event.value });\n\n setApiError({\n ...apiError,\n [key]: '',\n });\n };\n\n const generateDropdown = (item) => {\n return (\n ({\n ...base,\n zIndex: 9999,\n }),\n\n option: (provided, state) => {\n return {\n ...provided,\n color: state.isSelected ? '#FF5933' : '#2E384D',\n background: 'white',\n\n ':hover': {\n background: '#F9FAFF',\n cursor: 'pointer',\n },\n };\n },\n }}\n name={item.key}\n onChange={(event) => handleSelectChange(event, item.key)}\n defaultValue={customer && customer[item.key]}\n components={{ DropdownIndicator: CustomDropdownIndicator }}\n menuPortalTarget={document.body}\n />\n );\n };\n\n const handleChange = (event, key) => {\n setShowBtn(true);\n if (key === 'annual_revenue') {\n setFormData({\n ...formData,\n [key]: event.target.value.substring(1).replace(/,/g, ''),\n });\n } else if (key === 'number_of_employees') {\n setFormData({\n ...formData,\n [key]: event.target.value.substring(0).replace(/,/g, ''),\n });\n } else {\n setFormData({ ...formData, [key]: event.target.value });\n }\n setApiError({\n ...apiError,\n [event.target.name]: '',\n });\n };\n\n const generateNumberFormat = (item) => {\n return (\n handleChange(event, item.key)}\n thousandSeparator={item.key !== 'zip_code'}\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n return floatValue <= 100000000000000000000000000000000000000000000000;\n }}\n />\n );\n };\n\n const saveData = () => {\n setIsLoading({ loader: true, type: 'button' });\n updateCustomerDetails(customer.id, formData).then((response) => {\n if (response && response.status === 400) {\n setIsLoading({ loader: false, type: 'button' });\n setApiError(response && response.data);\n setShowModal(true);\n } else if (response && response.status === 200) {\n setCustomer(response && response.data);\n setIsLoading({ loader: false, type: 'button' });\n IsSaveDataClicked(true);\n setShowModal(false);\n }\n });\n };\n\n return (\n
    \n {' '}\n
    \n

    Edit Company Details

    \n
    \n
    \n \n\n {editAccountFields.map((item) => (\n
    \n \n \n {apiError && apiError[item.key]}\n \n
    \n ))}\n
    \n
    \n
    \n {showBtn ? (\n <>\n
    \n
    \n \n setShowModal(false)}>\n Discard Changes\n \n
    \n \n ) : (\n ''\n )}\n
    \n );\n}\n\nEditAccountDetails.defaultProps = {\n id: '',\n setDocumentImage: {},\n IsSaveDataClicked: () => {},\n};\n\nEditAccountDetails.propTypes = {\n setShowModal: func.isRequired,\n id: string,\n customer: shape({\n id: string,\n }).isRequired,\n setDocumentImage: arrayOf(shape({})),\n IsSaveDataClicked: func,\n setCustomer: func.isRequired,\n};\n","import styled from 'styled-components';\n\nimport Theme from '../../../theme/Theme';\n\nexport const CustomerDetailsBody = styled.div`\n background: ${Theme.gray6};\n min-height: 100%;\n width: 100%;\n position: relative;\n padding-left: ${(props) =>\n props.role.includes('Customer') ? '45px' : '45px'};\n padding-right: 45px;\n\n #sticky-row {\n position: sticky;\n width: 100%;\n z-index: 99;\n background: ${Theme.gray6};\n top: 60px;\n padding: 15px 0 5px 0;\n }\n .back-btn-link {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n text-transform: initial;\n cursor: pointer;\n display: contents;\n\n .left-arrow {\n width: 16px;\n margin-right: 5px;\n vertical-align: bottom;\n }\n }\n .brand-name.hide {\n display: none;\n }\n .brand-name.show {\n display: block;\n }\n .notes-btn {\n background: #f1f1f5;\n color: ${Theme.black};\n border: 0;\n border-radius: 8px;\n display: inline-block;\n height: 38px;\n width: 92px;\n padding: 0;\n img {\n vertical-align: middle;\n transform: rotate(90deg);\n width: 20px !important;\n height: 25px !important;\n }\n }\n .add-more-people {\n background-size: 100%;\n display: inline-block;\n vertical-align: top;\n\n img {\n border-radius: 50%;\n width: 40px;\n margin-left: -7px;\n height: 40px;\n }\n\n &.btn-add-team {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray2};\n border-radius: 100%;\n width: 36px;\n margin-left: 2px;\n height: 36px;\n img {\n width: 15px;\n margin: -2px 9px 3px 2px;\n }\n }\n }\n\n .customer-body-container {\n max-width: 1220px;\n margin: 0 auto;\n width: 100%;\n }\n\n .account-type {\n float: none !important;\n margin: 0 auto;\n }\n\n .customer-dropdown-select {\n color: ${Theme.black};\n background-color: ${Theme.white};\n border-radius: 8px;\n width: 100%;\n padding: 10px 0;\n border-left: 3px solid ${Theme.orange};\n font-size: 16px;\n font-weight: bold;\n height: 55px;\n border-right: none;\n border-top: none;\n border-bottom: none;\n\n &:focus {\n outline: none;\n }\n\n .css-yk16xz-control {\n border: none;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n }\n .css-1pahdxg-control {\n border: none !important;\n box-shadow: none !important;\n cursor: pointer;\n\n &:focus {\n outline: none !important;\n box-shadow: none !important;\n }\n }\n\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n .css-26l3qy-menu {\n margin-top: -1px;\n border-radius: 4px;\n border-top: none;\n padding: 18px 0;\n border: none;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.1);\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n font-weight: 500;\n }\n }\n\n @media only screen and (max-width: 991px) {\n padding: 0 20px;\n\n .account-type {\n float: none !important;\n margin: unset;\n }\n }\n @media only screen and (max-width: 767px) {\n .account-type {\n float: none !important;\n margin: 0 auto;\n }\n }\n`;\nexport const CustomerTabCollapse = styled.div`\n position: relative;\n padding: 30px 15px;\n transition: width 300ms ease-in-out;\n z-index: 9;\n background: ${Theme.white};\n height: 100%;\n`;\n\nexport const CustomerTabList = styled.div`\n position: fixed;\n top: 140px;\n width: 100%;\n transition: width 200ms ease-in-out;\n .left-details-card {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n margin-bottom: 20px;\n\n .left-details {\n color: ${Theme.black};\n padding: 3px 0px 3px 11px;\n border-left: 3px solid ${Theme.white};\n display: flex;\n .customer-details-tab-icon {\n color: ${Theme.gray90};\n font-size: 22px;\n margin-right: 12px;\n width: 28px;\n vertical-align: middle;\n }\n .collapse-arrow-down-icon {\n position: absolute;\n right: 0;\n }\n &:hover {\n border-left: 3px solid ${Theme.orange};\n cursor: pointer;\n font-family: ${Theme.titleFontFamily};\n }\n &.active {\n border-left: 3px solid ${Theme.orange};\n cursor: pointer;\n font-family: ${Theme.titleFontFamily};\n }\n\n .tab-label,\n .collapse-icon {\n display: none;\n }\n }\n &:last-child {\n margin-bottom: 0;\n }\n .sub-category {\n display: none;\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li.sub-category-details {\n font-size: ${Theme.normal};\n padding: 25px 0 0 68px;\n color: ${Theme.black};\n margin: 0;\n\n &.active {\n font-weight: bold;\n }\n\n &:hover {\n cursor: pointer;\n font-family: ${Theme.titleFontFamily};\n }\n }\n }\n }\n\n &.active li {\n .sub-category {\n display: block;\n }\n }\n }\n .hamburger-menu {\n position: relative;\n margin: 0 0 15px 12px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n text-align: center;\n background: ${Theme.lightOrange};\n }\n .hamburger-menu div {\n display: block;\n margin: 0;\n width: 16px;\n height: 2px;\n background: ${Theme.black};\n transition: 0.5s;\n z-index: 99999;\n transform-origin: 11.5px -0.5px;\n cursor: pointer;\n position: relative;\n top: 12px;\n left: 8px;\n }\n .hamburger-menu div:first-child {\n transform-origin: 0% 0%;\n top: 12px;\n }\n .hamburger-menu div:nth-last-child(2) {\n transform-origin: 60% 100%;\n top: 18px;\n }\n`;\n\nexport const NotesSideBar = styled.div`\n top: 0;\n background: #ffff;\n height: 100%;\n .footer-sticky {\n position: fixed;\n bottom: 0;\n max-width: 600px;\n width: 100%;\n background: white;\n }\n .notes-pin-unpin {\n position: relative;\n\n .pin-icon {\n background: #0062ff;\n padding: 2px;\n border-radius: 50%;\n width: 19px;\n position: absolute;\n top: 27px;\n left: 25px;\n transform: rotate(-46deg);\n }\n }\n .chat-info-icon {\n position: absolute;\n right: 47px;\n }\n .dropdown-select-all-notes {\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray2};\n border-radius: 20px;\n width: 230px;\n height: 40px;\n color: ${Theme.black};\n padding: 11px 2px 0 14px;\n }\n .dropdown-notes-filter {\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n max-width: 230px;\n padding: 15px;\n position: absolute;\n z-index: 99999;\n top: 45px;\n width: 100%;\n\n &.hide {\n display: none;\n }\n &.show {\n display: block;\n }\n .notes-option {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n padding-bottom: 14px;\n\n &.checkbox-option {\n padding-bottom: 4px;\n }\n\n &.teams-title {\n color: ${Theme.gray40};\n text-transform: uppercase;\n font-size: 11px;\n padding: 5px 0 15px 0;\n font-family: ${Theme.titleFontFamily};\n }\n }\n }\n }\n .commemt-inbox-body {\n height: 80vh;\n overflow: scroll;\n padding-bottom: 50px;\n }\n @media only screen and (max-width: 767px) {\n .dropdown-select-all-notes {\n width: 100%;\n max-width: 100%;\n }\n .commemt-inbox-body {\n height: 60vh;\n overflow: scroll;\n }\n }\n`;\n\nexport const BrandHeaderOption = styled.div`\n width: 100%;\n margin: 0 auto;\n .icons-row {\n text-align: center;\n margin-top: -38px;\n li {\n width: 32px;\n height: 32px;\n background: ${Theme.white};\n border-radius: 16px;\n border: 1px solid ${Theme.gray11};\n text-align: center;\n margin-right: 4px;\n cursor: default;\n padding: 5px;\n margin-bottom: 16px;\n &:last-child {\n margin-right: 0;\n }\n\n .icons-option {\n font-size: ${Theme.extraSmall};\n color: ${Theme.black};\n }\n &:hover {\n border: 1px solid ${Theme.orange};\n .icons-option {\n color: ${Theme.orange};\n }\n }\n }\n }\n .brand-status {\n li {\n background: ${Theme.gray8};\n border-radius: 12px;\n font-size: ${Theme.extraSmall};\n color: ${Theme.black};\n padding: 4px 13px;\n font-family: ${Theme.baseMediumFontFamily};\n margin-right: 4px;\n cursor: default;\n margin-bottom: 10px;\n border: 1px solid ${Theme.gray11};\n &.child-count {\n background: ${Theme.white};\n }\n\n .brand-name-icon {\n color: ${Theme.black};\n }\n\n &.sp-auth {\n background: none;\n border: none;\n padding: 0;\n vertical-align: bottom;\n }\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n color: ${Theme.orange};\n\n .brand-name-icon {\n color: ${Theme.orange};\n }\n }\n }\n }\n .brand-logo-details {\n position: relative;\n text-align: center;\n margin: 0 auto;\n\n .brand-logo-image {\n border: 5px solid ${Theme.white};\n border-radius: 12px;\n width: 98px;\n height: 98px;\n }\n .brand-name {\n color: ${Theme.black};\n font-size: ${Theme.subTitle};\n font-family: ${Theme.baseMediumFontFamily};\n margin-bottom: 10px;\n }\n\n .option-label {\n color: ${Theme.black};\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.baseMediumFontFamily};\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 80px;\n position: relative;\n }\n .extra-link-option {\n position: absolute;\n top: -2px;\n right: 0;\n width: fit-content;\n left: 0;\n padding-left: 90px;\n }\n .option-sub-title {\n color: ${Theme.gray85};\n font-size: ${Theme.labelSmall};\n white-space: nowrap;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 85px;\n }\n .company-status {\n background: ${Theme.darkGreen};\n border-radius: 19px;\n padding: 3px 10px;\n color: ${Theme.white};\n font-size: ${Theme.extraNormal};\n margin: 0 auto;\n top: 0;\n max-width: 137px;\n position: relative;\n\n &.inactive {\n background-color: ${Theme.gray60};\n }\n &.pending {\n background-color: ${Theme.darkYellow};\n }\n &.risk {\n background-color: #d63649;\n }\n\n img {\n vertical-align: middle;\n width: 17px;\n margin-left: 4px;\n margin-bottom: 2px;\n }\n }\n .company-label-info {\n font-size: ${Theme.normal};\n color: ${Theme.black};\n line-height: 22px;\n\n &:first-child {\n margin-left: 0;\n }\n }\n\n @media screen and (min-width: 768px) {\n display: flex;\n justify-content: center;\n max-width: 500px;\n .brand-logo-image {\n margin-left: -100px;\n }\n }\n @media screen and (min-width: 992px) {\n max-width: 600px;\n }\n }\n`;\n\nexport const InputDateDropDown = styled.div`\n input {\n border: 1px solid #e0e7ff;\n border-radius: 5px;\n background: #f9faff;\n min-height: 40px;\n color: #000000;\n padding: 10px;\n max-width: 110px;\n width: 100%;\n\n &::placeholder {\n color: ${Theme.gray35};\n font-weight: 500;\n\n font-size: 14px;\n }\n\n &:focus {\n outline: none;\n }\n }\n &.last_service_date {\n input {\n max-width: 100% !important;\n }\n }\n`;\nexport const EditInput = styled.div`\n .external-edit {\n width: 14px;\n position: absolute;\n top: 12px;\n }\n`;\n","import React, { useState, useCallback, useEffect } from 'react';\n\nimport Modal from 'react-modal';\nimport ReactTooltip from 'react-tooltip';\nimport Select, { components } from 'react-select';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { string, shape, bool, func, arrayOf } from 'prop-types';\n\nimport Theme from '../../../theme/Theme';\nimport EditAccountDetails from './EditAccountDetails';\nimport { getCustomerDetails } from '../../../api';\nimport { BrandHeaderOption } from './CustomerDetailStyles';\nimport {\n DropDownSelect,\n DropDownStatus,\n ModalBox,\n DropdownIndicator,\n Status,\n} from '../../../common';\nimport {\n AuthorizedSC,\n CloseIcon,\n UnauthorizedSC,\n AuthorizedVC,\n UnauthorizedVC,\n CompanyDefaultUser,\n} from '../../../theme/images';\nimport {\n HYBRID,\n PARENT,\n PATH_CUSTOMER_DETAILS,\n SELLER,\n SELLERSMALL,\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n VENDOR,\n VENDORSMALL,\n} from '../../../constants';\n\nexport default function AccountDetails({\n id,\n customerData,\n setShowModal,\n role,\n setStatusModal,\n showModal,\n IsSaveDataClicked,\n customStyles,\n isAuthorized,\n childBPList,\n history,\n getChildBpList,\n customerType,\n}) {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const [isCustomerStatusVisible, setIsCustomerStatusVisible] = useState(true);\n\n // authorized users list to move the BP's NEXT account to IN COLLECTIONS\n const haveInCollectionsAccess = userInfo?.can_change_status_to_collection;\n\n let statusActions = [\n { value: 'active', label: 'Activate' },\n { value: 'at risk', label: 'Place at risk' },\n {\n value: 'in collections',\n label: 'In Collections',\n isDisabled: !haveInCollectionsAccess,\n },\n ];\n\n const { Option } = components;\n\n const sellerCentral = [];\n const sellerCentralMarketplaces = [];\n const vendorCentral = [];\n const vendorCentralMarketplaces = [];\n\n const [customer, setCustomer] = useState(customerData);\n\n const customerDetails = useCallback(() => {\n getCustomerDetails(id).then((res) => {\n if (res?.status === 200) {\n setCustomer(res.data);\n }\n });\n }, [id]);\n\n useEffect(() => {\n if (role === 'Customer') customerDetails();\n }, [customerDetails, role]);\n\n useEffect(() => {\n customerDetails();\n }, [customerDetails, history]);\n\n const checkStatus = () => {\n if (customer?.status) {\n statusActions = statusActions.filter(\n (element) => element.value !== customer.status.value,\n );\n\n // if (customer?.status?.value === 'at risk') {\n // statusActions.push(\n // { value: 'active', label: 'Activate' },\n // { value: 'inactive', label: 'Inactive' },\n // );\n // }\n }\n };\n\n const checkStatusColor = (status) => {\n if (status) {\n if (status === 'inactive') {\n return Theme.gray60;\n }\n if (status === 'pending cancellation') {\n return Theme.yellow;\n }\n if (status === 'at risk') {\n return Theme.darkRed;\n }\n if (status === 'pending account setup') {\n return Theme.gray60;\n }\n if (status === 'out of contract') {\n return Theme.orange;\n }\n if (status === 'in collections') {\n return Theme.lightDarkBlue;\n }\n\n return Theme.darkGreen;\n }\n return '';\n };\n\n const displayMarketplaces = (\n centralMarketplacesArray,\n childBrands = false,\n ) => {\n return `
      \n ${centralMarketplacesArray?.map(\n (item) => `
    • ${!childBrands ? item : item?.label}
    • `,\n )}\n
    `.replaceAll(',', '');\n };\n\n const getAddressHTML = () => {\n const address = [\n customer?.address,\n customer?.city,\n customer?.state?.label || customer?.state,\n customer.zip_code,\n customer?.country?.label || customer?.country,\n ];\n return address?.filter((op) => op).join(', ');\n };\n\n const showSPAuthentication = (\n type,\n shortForm,\n centralArray,\n centralMarketplacesArray,\n authorizedImg,\n unauthorizedImg,\n ) => {\n for (const [key, value] of Object.entries(isAuthorized)) {\n if (typeof value === 'boolean') {\n centralArray.push(value);\n if (!value) centralMarketplacesArray.push(key);\n }\n if (typeof value === 'object') {\n centralArray.push(value[type]);\n if (!value[type] && type in value) centralMarketplacesArray.push(key);\n }\n }\n\n if (centralArray?.includes(false)) {\n return (\n \n \n \n \n );\n }\n return (\n \n \n \n \n );\n };\n\n const IconOption = (dataProps) => {\n return (\n
    \n \n );\n };\n\n const statusChangeOption = (dataProps) => {\n return (\n \n );\n };\n\n // the top panel links- addres, website, edit panel\n const renderLinksSections = () => {\n return (\n <>\n
      \n {getAddressHTML() ? (\n \n \n \n \n ) : null}\n {customer?.website ? (\n \n {' '}\n \n \n \n \n \n ) : null}\n (!isSpreetailUser ? setShowModal(true) : null)}\n role=\"presentation\"\n >\n \n \n
    \n \n \n );\n };\n\n const renderChildBpList = () => {\n return (\n \n !op?.label?.toLowerCase()?.includes('parent company'),\n )}\n placeholder=\"Type to Search Child Brand\"\n styles={{\n control: (base) => ({\n ...base,\n borderRadius: '50px',\n minHeight: '24px !important',\n outline: 'none !important',\n boxShadow: 'none !important',\n outLine: 'none',\n cursor: 'pointer',\n color: 'black',\n fontSize: '12px',\n }),\n }}\n onChange={(event) => {\n window.open(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n event?.value,\n )}?tab=performance${\n event?.account_type\n ? `&sub=${\n event?.account_type === HYBRID ||\n event?.account_type === SELLER\n ? SELLERSMALL\n : VENDORSMALL\n }`\n : ''\n }&nav=salePerformance`,\n '_blank',\n );\n getChildBpList();\n }}\n value=\"\"\n components={{\n Option: IconOption,\n DropdownIndicator,\n }}\n componentsValue={{ Option: IconOption }}\n />\n \n );\n };\n\n const renderCustomerStatus = () => {\n const customerStatus = customer?.status?.value;\n const isPending =\n customerStatus === 'pending account setup' ||\n customerStatus === 'pending';\n const isInactive = customerStatus === 'inactive';\n return (\n <>\n {customer?.status?.value !== null ? (\n role === 'Customer' ? (\n ''\n ) : isPending || isInactive ? (\n <>\n {isCustomerStatusVisible ? (\n \n {customer?.status?.label}\n \n ) : null}\n \n setIsCustomerStatusVisible(!isCustomerStatusVisible)\n }\n />\n \n ) : isSpreetailUser ? (\n <>\n {isCustomerStatusVisible ? (\n \n {customer?.status?.label}\n \n ) : null}\n \n setIsCustomerStatusVisible(!isCustomerStatusVisible)\n }\n />\n \n ) : (\n <>\n {isCustomerStatusVisible ? (\n \n {checkStatus()}\n ({\n ...base,\n background: checkStatusColor(customer?.status?.value),\n borderRadius: '50px',\n minHeight: '24px !important',\n outline: 'none !important',\n boxShadow: 'none !important',\n outLine: 'none',\n cursor: 'pointer',\n width:\n customerStatus === 'pending cancellation' ||\n customerStatus === 'pending account setup' ||\n customerStatus === 'in collections' ||\n customerStatus === 'out of contract'\n ? '176px !important'\n : customerStatus === 'at risk'\n ? '120px'\n : '88px',\n '&:focus': {\n outline: 'none !important',\n boxShadow: 'none !important',\n },\n '&:hover': {\n outline: 'none',\n },\n }),\n menu: (provided) => ({\n ...provided,\n color: '#000',\n }),\n singleValue: (provided) => {\n const color =\n customerStatus === 'pending cancellation'\n ? Theme.black\n : Theme.white;\n\n return { ...provided, color };\n },\n }}\n classNamePrefix=\"react-select\"\n options={statusActions}\n onChange={(e) =>\n setStatusModal({\n show: true,\n type: e.value,\n })\n }\n isOptionDisabled={(option) => option?.isDisabled}\n value={customer?.status}\n components={{\n Option: statusChangeOption,\n DropdownIndicator: ({ ...props }) => (\n \n ),\n }}\n />\n \n ) : null}\n\n \n setIsCustomerStatusVisible(!isCustomerStatusVisible)\n }\n />\n \n )\n ) : (\n
    \n {customer?.contract_status}\n
    \n )}\n \n );\n };\n\n // display company logo\n const displayCompanyLogo = (imageLink) => {\n return (\n \n );\n };\n\n // function - display customer account type, SC/VC tag\n const displayBrandPartnerStatus = () => {\n return (\n
      \n {childBPList?.length ? (\n <>\n
    • \n {' '}\n Parent Brand\n
    • \n \n \n {childBPList?.length}\n \n \n \n ) : (\n <>\n {customer?.parent_name && customer?.child_bp_of ? (\n {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customer?.child_bp_of,\n )}?tab=performance&sub=seller&nav=salePerformance&access=internal\n `,\n );\n getChildBpList(customer?.child_bp_of);\n }\n : ''\n }\n role=\"presentation\"\n >\n {' '}\n {customer.parent_name}\n \n ) : (\n ''\n )}\n {customer?.customer_account_type ? (\n
    • {customer.customer_account_type}
    • \n ) : (\n ''\n )}\n \n )}\n\n {isAuthorized && Object.keys(isAuthorized)?.length ? (\n
    • \n {customer?.customer_account_type === SELLER ||\n customer?.customer_account_type === HYBRID ? (\n <>\n {showSPAuthentication(\n SELLERSMALL,\n 'SC',\n sellerCentral,\n sellerCentralMarketplaces,\n AuthorizedSC,\n UnauthorizedSC,\n )}\n \n ) : (\n ''\n )}\n {customer?.customer_account_type === VENDOR ||\n customer?.customer_account_type === HYBRID ? (\n <>\n {showSPAuthentication(\n VENDORSMALL,\n 'VC',\n vendorCentral,\n vendorCentralMarketplaces,\n AuthorizedVC,\n UnauthorizedVC,\n )}\n \n ) : (\n ''\n )}\n
    • \n ) : (\n ''\n )}\n
    \n );\n };\n\n // display company profile details\n const displayCompanyProfile = () => {\n return (\n
    \n {displayCompanyLogo(\n customer?.documents?.[0]\n ? Object.values(customer.documents[0])\n : CompanyDefaultUser,\n )}\n
    \n {displayBrandPartnerStatus()}\n
    {customer?.company_name}
    \n {childBPList?.length && customerType === PARENT\n ? renderChildBpList()\n : renderCustomerStatus()}\n
    \n
    \n );\n };\n\n // display BP account details\n const renderCustomerAccountDetails = () => {\n return (\n \n {/* the top panel links- addres, website, edit panel */}\n {renderLinksSections()}\n\n setShowModal(true)}\n role=\"presentation\"\n >\n \n Edit\n \n {displayCompanyProfile()}\n \n );\n };\n // display Edit account details modal\n const displayEditAccountModal = () => {\n return (\n \n setShowModal(false)}\n role=\"presentation\"\n />\n \n \n \n \n );\n };\n\n return (\n <>\n {renderCustomerAccountDetails()}\n {displayEditAccountModal()}\n \n );\n}\n\nAccountDetails.defaultProps = {\n id: '',\n customerType: 'standalone',\n history: {},\n customStyles: {},\n isAuthorized: {},\n childBPList: [],\n setShowModal: () => {},\n setStatusModal: () => {},\n getChildBpList: () => {},\n IsSaveDataClicked: () => {},\n};\n\nAccountDetails.propTypes = {\n id: string,\n customerType: string,\n role: string.isRequired,\n customerData: shape({\n id: string,\n }).isRequired,\n showModal: bool.isRequired,\n history: shape({}),\n customStyles: shape({}),\n isAuthorized: shape({}),\n childBPList: arrayOf(shape({})),\n setShowModal: func,\n setStatusModal: func,\n getChildBpList: func,\n IsSaveDataClicked: func,\n};\n","import React from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { func, string, shape, arrayOf, number } from 'prop-types';\n\nimport { Button, GetInitialName } from '../../../common';\nimport { CaretUp, PlusIcon } from '../../../theme/images';\n\nexport default function ShowTeamMembers({\n role,\n memberData,\n setShowMemberList,\n setShowNotesModal,\n isChildBPList,\n}) {\n return (\n <>\n
    \n {!role.includes('Customer') ? (\n
    \n {memberData?.map((item) =>\n item.id ? (\n \n \n setShowMemberList({\n show: true,\n add: false,\n modal: true,\n })\n }\n role=\"presentation\"\n >\n \n
    \n\n \n \n {item?.user?.first_name || ' '}{' '}\n {item?.user?.last_name || ' '}\n \n

    \n {item?.role_group?.name}\n

    \n \n \n ) : null,\n )}\n {!isChildBPList ? (\n \n setShowMemberList({\n show: true,\n add: true,\n modal: true,\n })\n }\n >\n \"add\"\n
    \n ) : null}\n \n setShowNotesModal({\n modal: true,\n apiCall: false,\n })\n }\n >\n \"caret\"\n Notes\n {' '}\n \n ) : (\n ''\n )}\n \n \n );\n}\n\nShowTeamMembers.defaultProps = {\n isChildBPList: 0,\n setShowMemberList: () => {},\n setShowNotesModal: () => {},\n};\n\nShowTeamMembers.propTypes = {\n isChildBPList: number,\n role: string.isRequired,\n memberData: arrayOf(shape({})).isRequired,\n setShowMemberList: func,\n setShowNotesModal: func,\n};\n","import React from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { shape, string, bool } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { setCustomerSelectedTab } from '../../../store/actions/customerState';\nimport {\n HYBRID,\n PARENT,\n PATH_CUSTOMER_DETAILS,\n SELLER,\n VENDOR,\n SELLERSMALL,\n VENDORSMALL,\n} from '../../../constants';\n\nexport default function CustomerTabDetails({\n role,\n customer,\n showPlaybook,\n viewComponent,\n playbookTabActive,\n isBBEInternalUser,\n sidePanelToggle,\n}) {\n const history = useHistory();\n const customerAccountType = customer?.customer_account_type;\n const dispatch = useDispatch();\n\n const handleMenuOnclick = (selectedTab, selectedNavTab) => {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customer?.id,\n )}?tab=${selectedTab}${\n selectedTab === 'performance'\n ? `&sub=${\n customerAccountType === HYBRID ||\n customerAccountType === SELLER ||\n customer?.account_type === PARENT\n ? SELLERSMALL\n : VENDORSMALL\n }`\n : ''\n }${\n selectedNavTab ? `&nav=${selectedNavTab}` : ''\n }&access=${isBBEInternalUser}`,\n selectedNavTab,\n );\n dispatch(setCustomerSelectedTab(selectedTab || 'performance'));\n };\n\n // display tooltip box\n const displayTooltipBox = (id) => {\n return (\n \n );\n };\n\n const renderCompanyPerformance = () => {\n const tabLabel = 'Performance';\n const tooltipId = 'performance';\n return (\n {\n handleMenuOnclick('performance', 'salePerformance');\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox(tooltipId)}\n
    {tabLabel}
    \n \n \n );\n };\n\n return (\n \n {/* {role === 'Customer' && customer?.display_summary_dashboard ? ( */}\n {role === 'Customer' ? (\n {\n handleMenuOnclick('summary');\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('summary')}\n
    Summary
    \n \n \n ) : null}\n\n {role === 'Customer' ? (\n {\n handleMenuOnclick('dashboard');\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('dashboard')}\n
    Dashboard
    \n \n \n ) : null}\n\n {/* ********** PDV-7917 - Expose AMC and other Sections to BPs ********** */}\n {/* ********** PLEASE DO NOT REMOVE BELOW CODE. ********** */}\n {/* {role !== 'Customer'\n ? renderCompanyPerformance()\n : role === 'Customer' &&\n (customer?.display_ad_performance ||\n customer?.display_sales_performance ||\n customer?.display_seller_health)\n ? renderCompanyPerformance()\n : null} */}\n\n {/* ********** performance tab ********** */}\n {renderCompanyPerformance()}\n\n {/* ********** inventory tab ********** */}\n {/* {role !== 'Customer' ||\n (role === 'Customer' &&\n (customer?.display_inventory_management ||\n customer?.display_under_over_stocked_inventory)) ? ( */}\n\n {/* PDV-8957 Hide Inventory Management tab for Vendor and Dsp Only BPs */}\n {customerAccountType === null || customerAccountType === VENDOR ? null : (\n {\n handleMenuOnclick('inventoryManagement');\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('inventory')}\n
    Inventory Management
    \n \n \n )}\n {/* ) : null} */}\n\n {/* ********** playbook tab ********** */}\n {/* ********** PDV-8166 - Hide the Playbook for the external users or Customer Login ********** */}\n {showPlaybook &&\n customer?.account_type !== PARENT &&\n role !== 'Customer' ? (\n {\n handleMenuOnclick('playbook', playbookTabActive);\n dispatch(setCustomerSelectedTab('playbook'));\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('playbook')}\n
    Playbook
    \n \n \n ) : null}\n\n {/* ***** Goals and strategy ******* */}\n {customer?.account_type !== PARENT ? (\n {\n handleMenuOnclick('goals', 'goals');\n dispatch(setCustomerSelectedTab('goals'));\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('goals')}\n
    Forecast and Strategy
    \n \n \n ) : null}\n\n {/* ********** agreement tab ********** */}\n {\n handleMenuOnclick('agreement', 'recurring');\n dispatch(setCustomerSelectedTab('agreement'));\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('agreements')}\n
    Agreements
    \n \n \n\n {\n handleMenuOnclick('company-details');\n dispatch(setCustomerSelectedTab('company-details'));\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('company-details')}\n
    Company Details
    \n \n \n handleMenuOnclick('billing', 'billing-details')}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('billing')}\n
    Billing
    \n \n \n {role !== 'Customer' ? (\n <>\n {\n handleMenuOnclick('activity');\n dispatch(setCustomerSelectedTab('activity'));\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('activity')}\n
    Activity
    \n \n \n \n ) : null}\n\n {role === 'Customer' ? (\n <>\n {\n handleMenuOnclick('reports');\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('reports')}\n
    Reports
    \n \n \n \n ) : null}\n {\n handleMenuOnclick('feedback');\n dispatch(setCustomerSelectedTab('feedback'));\n }}\n role=\"presentation\"\n >\n \n \n {displayTooltipBox('partner-feedback')}\n
    Partner Feedback
    \n \n \n \n );\n}\n\nCustomerTabDetails.defaultProps = {\n showPlaybook: false,\n playbookTabActive: '',\n isBBEInternalUser: 'internal',\n sidePanelToggle: {},\n};\n\nCustomerTabDetails.propTypes = {\n role: string.isRequired,\n playbookTabActive: string,\n viewComponent: string.isRequired,\n customer: shape({\n id: string,\n }).isRequired,\n showPlaybook: bool,\n isBBEInternalUser: string,\n sidePanelToggle: shape({}),\n};\n\n// brand assets tab don't remove this code.\n\n// {\n// customer && customer.brand_assets && customer.brand_assets.is_completed ? (\n// {\n// handleMenuOnclick('brand asset');\n// // dispatch(setCustomerSelectedTab('brand asset'));\n// }}\n// role=\"presentation\">\n// \n// \n// Brand Assets\n// \n// \n// ) : (\n// ''\n// );\n// }\n\n// waiting for MWS token\n// {role === 'Customer' ? (\n// ''\n// ) : (\n// {\n// handleMenuOnclick('product catalog');\n// dispatch(\n// setCustomerSelectedTab('product catalog'),\n// );\n// }}\n// role=\"presentation\">\n// \n// \n// Product Catalog\n// \n// \n// )}\n","import styled from 'styled-components';\nimport Select from 'react-select';\nimport Theme from '../../../../theme/Theme';\n\nexport const PlaybookStyle = styled.div`\n .add-task-assignee {\n background-color: #ffffff;\n border: 1px solid #e0e7ff;\n border-radius: 100%;\n width: 24px;\n height: 24px;\n\n img {\n width: 10px;\n margin: 6px 0 0 6px;\n }\n }\n .seller-vendor-btn {\n color: ${Theme.gray90};\n text-align: left;\n border-radius: 6px;\n border: 1px solid ${Theme.gray45};\n background-color: #fafafb !important;\n min-height: 32px;\n padding: 6px 0 0 8px;\n }\n`;\n\nexport const TaskStatus = styled.div`\n position: relative;\n width: 90%;\n max-width: 160px;\n display: flex;\n justify-content: space-between;\n\n &.progress-label {\n color: ${Theme.black};\n font-size: ${Theme.verySmall};\n font-family: ${Theme.titleFontFamily};\n text-transform: uppercase;\n // width: fit-content;\n padding: 6px 5px 6px 8px;\n border-radius: 5px;\n\n &.gray-label {\n color: ${Theme.black};\n background: #f4f6fc;\n }\n &.orange-label {\n color: ${Theme.orange};\n background: ${Theme.lighterOrange};\n }\n &.green-label {\n color: ${Theme.lighterGreen};\n background: #e1f2ce;\n }\n &.blue-label {\n color: #0045b4;\n background: #0045b445;\n }\n &.yellow-label {\n color: ${Theme.yellow};\n background: ${Theme.extraLightYellow};\n }\n &.voilet-label {\n color: #8d6fca;\n background: #d1c5e9;\n }\n &.red-label {\n color: ${Theme.red};\n background: ${Theme.lightRed};\n }\n\n .progress-icon {\n vertical-align: text-bottom;\n margin-right: 2px;\n width: 15px;\n }\n .collapse-arrow-icon {\n width: 18px;\n vertical-align: middle;\n margin: -2px 0 0 5px;\n }\n }\n .change-status-dropdown {\n width: 160px;\n box-shadow: 0 0 10px 5px rgb(248 248 250);\n border-radius: 5px;\n padding: 5px 10px;\n position: absolute;\n z-index: 9;\n background: #ffffff;\n right: 0px;\n top: 30px;\n\n &.show {\n display: block;\n }\n &.hide {\n display: none;\n }\n ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n li {\n text-align: left;\n margin: 15px 5px;\n\n &.current-status {\n cursor: not-allowed !important;\n pointer-events: none !important;\n }\n .progress-label {\n padding: 5px 8px;\n border-radius: 5px;\n display: inline-block;\n width: 100px;\n\n &.gray-label {\n color: ${Theme.black};\n background: #f4f6fc;\n }\n &.orange-label {\n color: ${Theme.orange};\n background: ${Theme.lighterOrange};\n }\n &.green-label {\n color: ${Theme.lighterGreen};\n background: #e1f2ce;\n }\n &.blue-label {\n color: #0045b4;\n background: #0045b445;\n }\n }\n .progress-icon {\n float: right;\n width: 15px;\n margin-top: 4px;\n }\n }\n }\n }\n`;\nexport const PlaybookNavbar = styled.div`\n .playbook-nav {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n display: inline-block;\n max-width: 150px;\n width: 100%;\n margin-left: 8px;\n position: relative;\n text-align: left;\n &:first-child {\n margin-left: 0;\n }\n\n &.refresh-btn {\n width: unset;\n }\n &.mobile-view {\n display: none;\n }\n &.dateFilterWidth {\n max-width: 200px;\n }\n &.playbookMultiselectFilter {\n vertical-align: middle;\n }\n }\n }\n\n @media only screen and (max-width: 767px) {\n .playbook-nav {\n margin-top: 15px;\n li {\n max-width: 43%;\n margin-bottom: 15px;\n\n &:last-child {\n margin-right: 0;\n }\n &.filter-by-service {\n max-width: 88%;\n }\n &.desktop-view {\n display: none;\n }\n &.mobile-view {\n display: inline-block;\n max-width: 10%;\n margin-right: 0;\n }\n }\n }\n }\n`;\n\nexport const TableWrapper = styled.div`\n tbody {\n tr {\n td {\n &.product-body {\n padding: 8px 15px 4px 0;\n }\n\n a {\n color: #000;\n }\n }\n }\n }\n`;\n\nexport const PlaybookMobileView = styled.div`\n .playbook-card {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n display: inline-block;\n margin-right: 20px;\n vertical-align: middle;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n .playbook-collapse-grid {\n display: flex;\n margin-top: 10px;\n position: relative;\n\n a.normal-text-black {\n color: ${Theme.black};\n }\n }\n .parent-collapse {\n border-left: 1px solid ${Theme.gray11};\n height: 98%;\n position: absolute;\n left: 5px;\n top: 19px;\n z-index: 1;\n\n &.nested-collapse {\n height: 86%;\n }\n }\n .collapse-icon {\n width: 16px;\n background: rgb(244, 246, 252);\n margin-right: 10px;\n display: block;\n text-align: center;\n vertical-align: middle;\n }\n`;\n\nexport const RefreshButton = styled.div`\n .refresh-icon {\n background: ${Theme.gray8};\n border-radius: 6px;\n width: 32px;\n text-align: center;\n height: 32px;\n padding: 5px 7px;\n border: 1px solid #bfc5d2;\n color: ${Theme.black};\n border: 1px solid ${Theme.gray25};\n .refresh-arrow-icon {\n vertical-align: text-top;\n margin-right: 4px;\n }\n\n @media only screen and (max-width: 767px) {\n width: auto;\n }\n }\n`;\n\nexport const ContractServicesList = styled.div`\n .services-list {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n padding: 12px 0;\n border-bottom: 1px solid ${Theme.gray11};\n\n &:last-child {\n border-bottom: 0px;\n }\n }\n }\n`;\nexport const LeftLine = styled.div`\n position: absolute;\n top: 34px;\n left: 15px;\n height: 100%;\n border: 1px solid #f6fafb;\n`;\n\nexport const InnerCollapseRow = styled.tr`\n position: relative;\n\n \n td {\n position: relative;\n padding: 14px 10px 14px 16px;\n\n &:first-child::before {\n top: 0;\n width: 41px;\n height: 15px;\n border-bottom-right-radius: 12px;\n position: absolute;\n border: 1px solid #e0e6e8;\n border: solid ${Theme.white} border-width: 0 2px 2px 0;\n border-width: 0 1px 1px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(-271deg);\n content: \"\"; \n opacity:0;\n }\n }\n &.first-layer-collapse {\n td {\n border: 0;\n\n &:first-child {\n padding-left: 42px;\n\n &::before {\n left: 3px;\n opacity:1;\n }\n }\n }\n }\n\n &.checkbox-column-table {\n &:after {\n display: none;\n }\n td {\n border: 0;\n\n &:nth-child(2) {\n padding-left: 42px;\n\n &::before {\n width: 41px;\n height: 15px;\n border-bottom-right-radius: 12px;\n position: absolute;\n border: 1px solid #e0e6e8;\n border: solid ${Theme.white} border-width: 0 2px 2px 0;\n border-width: 0 1px 1px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(-271deg);\n content: \"\"; \n opacity:1;\n left: -8px;\n top: -10px;\n }\n }\n }\n }\n &.second-layer-collapse {\n td {\n border: 0;\n &:first-child {\n padding-left: 69px;\n\n &::before {\n left: 30px;\n opacity:1;\n\n }\n }\n }\n }\n\n &.third-layer-collapse {\n td {\n border: 0;\n &:first-child {\n padding-left: 89px;\n\n &::before {\n left: 55px;\n opacity:1;\n }\n }\n }\n}`;\nexport const InnerCollapse = styled.div`\n .parent-nested-collapse {\n position: relative;\n width: 100%;\n border-spacing: 0;\n\n .parent-collapse {\n border-left: 1px solid #e0e6e8;\n // height: 99%;\n position: absolute;\n left: 17px;\n top: -22px;\n z-index: 1;\n }\n\n tbody {\n tr {\n td {\n position: relative;\n padding: 12px 10px 12px 16px;\n border-bottom: none;\n\n &:first-child {\n padding-left: 42px;\n }\n\n span.collapse-icon {\n width: 16px;\n height: 16px;\n background: rgb(244, 246, 252);\n margin-right: 10px;\n display: inline-block;\n text-align: center;\n vertical-align: middle;\n }\n span.curve-line {\n width: 41px;\n height: 15px;\n border-bottom-right-radius: 4px;\n position: absolute;\n border: 1px solid #e0e6e8;\n border: solid ${Theme.white};\n border-width: 0 2px 2px 0;\n border-width: 0 1px 1px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(-271deg);\n content: '';\n }\n span.curve-line-parent {\n left: 4px;\n top: -2px;\n }\n span.curve-line-child {\n left: -5px;\n top: 1px;\n }\n }\n }\n }\n }\n\n .nested-collapse {\n position: relative;\n width: 100%;\n border-spacing: 0;\n tbody {\n tr {\n td {\n position: relative;\n padding: 12px 0px 12px 12px;\n border-bottom: none;\n\n &:first-child {\n padding-left: 42px;\n }\n }\n }\n }\n\n span.curve-line-parent {\n left: 4px;\n top: -2px;\n }\n span.curve-line-child {\n left: -5px;\n top: 1px;\n }\n }\n`;\n\nexport const BorderLessDropDown = styled.div`\n .css-2b097c-container {\n max-width: 110px;\n width: 100%;\n min-height: 28px;\n .css-yk16xz-control {\n border: none;\n }\n .css-uz51yo-control:hover {\n border: none;\n background: ${Theme.gray8} !important;\n border-radius: 4px;\n border-color: none;\n }\n .css-uz51yo-control {\n background: ${Theme.gray8} !important;\n box-shadow: none;\n outline: none;\n border-color: none !important;\n }\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n }\n`;\n\nexport const PlaybookSummaryMobileView = styled.div`\n .collapse-icon {\n font-size: ${Theme.textSmall};\n background: ${Theme.gray8};\n border-radius: 2px;\n padding: 4px;\n margin-right: 10px;\n }\n .left-line {\n margin-top: 7px;\n margin-left: 39px;\n height: 23px;\n width: 16px;\n border-left: 1px solid #ccc;\n }\n\n .sub-task-outer {\n position: relative;\n margin-left: 55px;\n }\n .straight-line {\n margin: 12px 0;\n }\n\n .btn-primary {\n width: 100px;\n }\n\n span.curve-line{\n width: 25px;\n height: 14px;\n border-bottom-right-radius: 4px;\n position: absolute;\n border: 1px solid #e0e6e8;\n border: solid ${Theme.white} border-width: 0 2px 2px 0;\n border-width: 0 1px 1px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(-271deg);\n content: \"\"; \n }\n\n span.curve-line-child {\n left: -27px;\n top: -9px;\n }\n`;\n\nexport const PlaybookSummaryLink = styled.div`\n font-size: ${Theme.extraMedium};\n color: ${Theme.orange};\n font-family: ${Theme.titleFontFamily};\n cursor: pointer;\n width: fit-content;\n\n .chevron-icon {\n margin-left: 4px;\n vertical-align: middle;\n font-size: ${Theme.extraSmall};\n }\n`;\n\nexport const TableSummaryWrapper = styled.div`\n tr {\n td {\n .left-line {\n height: 35px;\n width: 25px;\n margin-left: 16px;\n }\n }\n }\n`;\n\nexport const SummaryMobileSelect = styled(Select)`\n .css-tlfecz-indicatorContainer,\n .css-1gtu0rj-indicatorContainer {\n padding: 0;\n }\n .css-yk16xz-control,\n .css-uz51yo-control {\n min-height: unset;\n }\n\n .css-g1d714-ValueContainer {\n padding: 0;\n }\n &.css-2b097c-container {\n min-height: unset !important;\n max-width: 80px !important;\n }\n`;\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport { InnerCollapseRow } from './PlaybookStyle';\n\nfunction PlaybookSummaryDeliverableCollapse({\n deliverableData,\n marketplacesList,\n setMonthDropdownValue,\n}) {\n // render playbook task data\n const renderPlaybookSummaryDeliverableData = () => {\n return (\n <>\n \n \n \n \n \n \n\n {deliverableData?.task_name}\n \n\n \n {\n marketplacesList?.find(\n (marketplace) =>\n marketplace?.value === deliverableData?.marketplace,\n )?.label\n }\n \n {setMonthDropdownValue()?.label}\n \n {dayjs(deliverableData?.start_date).format('MMM')}\n \n {deliverableData?.team}\n \n \n );\n };\n return renderPlaybookSummaryDeliverableData();\n}\n\nexport default PlaybookSummaryDeliverableCollapse;\n","import React from 'react';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// render collapse dropdown icon\nexport const renderCollapseDropdownIcon = (showCollapse) => {\n return (\n \n \n \n );\n};\n\n// handle month dropdown\nexport const handleMonthDropdown = (\n event,\n listData,\n setUpdatedServicesOfPlaybookSummary,\n updatedServicesOfPlaybookSummary,\n) => {\n const list = [...updatedServicesOfPlaybookSummary?.create];\n const index = list?.findIndex((item) => item?.id === listData?.id);\n\n if (index > -1) {\n list[index] = {\n ...list[index],\n frequency: event?.value,\n };\n }\n setUpdatedServicesOfPlaybookSummary({\n create: list,\n delete: updatedServicesOfPlaybookSummary?.delete,\n });\n};\n\n// render assignee tooltip\nexport const renderAssigneeTooltip = (item, id, tooltipComponent) => {\n return (\n \n {tooltipComponent === 'services-task-assignee' ? (\n \n {item?.assignee_first_name || ' '} {item?.assignee_last_name || ' '}\n \n ) : (\n \n {item?.first_name || ' '} {item?.last_name || ' '}\n \n )}\n
    \n );\n};\n","import React, { useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport Select from 'react-select';\nimport { shape, func, arrayOf, bool } from 'prop-types';\nimport { CheckBox } from '../../../../common';\nimport { BorderLessDropDown } from './PlaybookStyle';\nimport { playbookSummaryMonthOptions } from '../../../../constants';\nimport PlaybookSummaryDeliverableCollapse from './PlaybookSummaryDeliverableCollapse';\nimport Theme from '../../../../theme/Theme';\nimport {\n renderCollapseDropdownIcon,\n handleMonthDropdown,\n} from './CommonFunctions';\n\nfunction PlaybookSummaryServiceCollapse({\n serviceData,\n handleChangeOfServiceCheckbox,\n updatedServicesOfPlaybookSummary,\n setUpdatedServicesOfPlaybookSummary,\n marketplacesList,\n playbookCreateAccess,\n}) {\n const [showTaskCollapse, setShowTaskCollpase] = useState(false);\n const tableStyle = {\n borderTop: '1px solid #e0e6e8',\n borderBottom: 'none',\n };\n\n const setMonthDropdownValue = () => {\n const service = updatedServicesOfPlaybookSummary?.create?.find(\n (item) => item?.id === serviceData?.id,\n );\n\n return playbookSummaryMonthOptions?.find(\n (item) =>\n item?.value === (service ? service?.frequency : serviceData?.frequency),\n );\n };\n\n // render playbook task data collapse\n const renderPlaybookDeliverablesCollapse = () => {\n return serviceData?.deliverable?.length && showTaskCollapse ? (\n <>\n {serviceData?.deliverable?.map((item) => {\n return (\n \n );\n })}\n \n ) : null;\n };\n\n const displayMonthData = () => {\n return playbookCreateAccess ? (\n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n placeholder=\"Select..\"\n value={setMonthDropdownValue()}\n onChange={(event) =>\n handleMonthDropdown(\n event,\n serviceData,\n setUpdatedServicesOfPlaybookSummary,\n updatedServicesOfPlaybookSummary,\n )\n }\n />\n \n ) : (\n serviceData?.frequency\n );\n };\n\n return (\n <>\n \n \n \n \n \n \n {\n setShowTaskCollpase(!showTaskCollapse);\n }}\n >\n {serviceData?.deliverable?.length\n ? renderCollapseDropdownIcon(showTaskCollapse)\n : null}\n {serviceData?.task_name} \n \n \n {\n marketplacesList?.find(\n (marketplace) => marketplace?.value === serviceData?.marketplace,\n )?.label\n }\n \n {displayMonthData(serviceData)}\n \n {dayjs(serviceData?.start_date).format('MMM')}\n \n {serviceData?.team}\n \n {renderPlaybookDeliverablesCollapse()}\n \n );\n}\n\nexport default PlaybookSummaryServiceCollapse;\n\nPlaybookSummaryServiceCollapse.defaultProps = {\n serviceData: {},\n marketplacesList: [],\n handleChangeOfServiceCheckbox: () => {},\n updatedServicesOfPlaybookSummary: {},\n playbookCreateAccess: false,\n setUpdatedServicesOfPlaybookSummary: () => {},\n};\n\nPlaybookSummaryServiceCollapse.propTypes = {\n serviceData: shape({}),\n playbookCreateAccess: bool,\n marketplacesList: arrayOf(shape({})),\n handleChangeOfServiceCheckbox: func,\n updatedServicesOfPlaybookSummary: shape({}),\n setUpdatedServicesOfPlaybookSummary: func,\n};\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport { string, arrayOf, shape, func, bool } from 'prop-types';\nimport dayjs from 'dayjs';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n DesktopTable,\n WhiteCard,\n Button,\n PageLoader,\n CheckBox,\n} from '../../../../common';\nimport PlaybookSummaryServiceCollapse from './PlaybookSummaryServiceCollapse';\nimport {\n PlaybookSummaryMobileView,\n BorderLessDropDown,\n TableSummaryWrapper,\n SummaryMobileSelect,\n} from './PlaybookStyle';\nimport { getPlaybookSummaryData } from '../../../../api';\nimport Theme from '../../../../theme/Theme';\nimport { playbookSummaryMonthOptions } from '../../../../constants';\nimport { handleMonthDropdown } from './CommonFunctions';\n\nconst PlaybookSummary = ({\n customerId,\n selectedMarketplaces,\n selectedService,\n selectedTeamMembers,\n customStartDate,\n accountType,\n onCreatePlaybookClick,\n createPlaybookBtnLoader,\n updatedServicesOfPlaybookSummary,\n setUpdatedServicesOfPlaybookSummary,\n marketplacesList,\n playbookCreateAccess,\n}) => {\n const [playbookSummaryData, setPlaybookSummaryData] = useState({});\n const [playbookSummaryLoader, setPlaybookSummaryLoader] = useState(false);\n const isDesktop = useMediaQuery({ maxWidth: 767 });\n const [collapseShowData, setCollapseShowData] = useState(false);\n\n const setValue = useCallback(\n (summaryData) => {\n const list = summaryData?.customer_playbook_data?.map((item) => {\n return { id: item?.id, frequency: item?.frequency };\n });\n setUpdatedServicesOfPlaybookSummary({\n create: list,\n delete: [],\n });\n },\n [setUpdatedServicesOfPlaybookSummary],\n );\n\n useEffect(() => {\n setPlaybookSummaryLoader(true);\n getPlaybookSummaryData(\n customerId,\n selectedMarketplaces,\n selectedService,\n selectedTeamMembers,\n customStartDate,\n accountType,\n ).then((res) => {\n setPlaybookSummaryData(res?.data);\n setValue(res?.data);\n setPlaybookSummaryLoader(false);\n });\n }, [\n customerId,\n setValue,\n selectedMarketplaces,\n selectedService,\n selectedTeamMembers,\n customStartDate,\n accountType,\n ]);\n\n const handleChangeOfServiceCheckbox = (serviceData, isChecked) => {\n const checkedList = [...updatedServicesOfPlaybookSummary.create];\n const uncheckedList = [...updatedServicesOfPlaybookSummary.delete];\n\n if (isChecked) {\n if (\n !updatedServicesOfPlaybookSummary.create?.find(\n (item) => item?.id === serviceData?.id,\n )\n ) {\n checkedList.push({\n id: serviceData.id,\n frequency: serviceData?.frequency,\n });\n }\n\n const index = uncheckedList.indexOf(serviceData.id);\n if (index > -1) {\n uncheckedList.splice(index, 1);\n }\n setUpdatedServicesOfPlaybookSummary({\n create: checkedList,\n delete: uncheckedList,\n });\n } else {\n if (!updatedServicesOfPlaybookSummary.delete?.includes(serviceData?.id)) {\n uncheckedList.push(serviceData.id);\n }\n\n const index = checkedList?.findIndex(\n (item) => item?.id === serviceData?.id,\n );\n if (index > -1) {\n checkedList.splice(index, 1);\n }\n\n setUpdatedServicesOfPlaybookSummary({\n create: checkedList,\n delete: uncheckedList,\n });\n }\n };\n\n // render deliverable collapse\n const renderPlaybookServiceCollapse = (dataItem) => {\n return (\n \n );\n };\n\n const setMonthDropdownValue = (customerPlaybook) => {\n const service = updatedServicesOfPlaybookSummary?.create?.find(\n (item) => item?.id === customerPlaybook?.id,\n );\n return playbookSummaryMonthOptions?.find(\n (item) =>\n item?.value ===\n (service ? service?.frequency : customerPlaybook?.frequency),\n );\n };\n\n const displayMonthData = (customerPlaybook) => {\n return playbookCreateAccess ? (\n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n placeholder=\"Select..\"\n value={setMonthDropdownValue(customerPlaybook)}\n onChange={(event) =>\n handleMonthDropdown(\n event,\n customerPlaybook,\n setUpdatedServicesOfPlaybookSummary,\n updatedServicesOfPlaybookSummary,\n )\n }\n />\n \n ) : (\n customerPlaybook?.frequency\n );\n };\n\n return playbookSummaryLoader ? (\n \n ) : (\n
    \n {!isDesktop ? (\n playbookSummaryData?.customer_playbook_data?.length ? (\n \n
    \n
    Playbook Summary
    \n onCreatePlaybookClick()}\n >\n {createPlaybookBtnLoader ? (\n \n ) : (\n 'Create'\n )}\n \n
    \n \n \n \n \n \n {' '}\n {/* \n \n {\n handleAllCheckServices(event?.target?.checked);\n }}\n checked={\n updatedServicesOfPlaybookSummary?.create\n ?.length ===\n playbookSummaryData?.customer_playbook_data\n ?.length\n }\n />\n \n \n {' '} */}\n \n \n SERVICES \n \n Marketplace\n MONTHS\n Start Date\n DEPARTMENT\n \n \n \n {playbookSummaryData?.customer_playbook_data?.map(\n (customerPlaybook) => {\n return renderPlaybookServiceCollapse(customerPlaybook);\n },\n )}\n \n \n \n
    \n ) : (\n \n

    \n No Playbook Summary exists\n

    \n
    \n )\n ) : (\n \n
    \n
    \n
    Playbook Summary
    \n
    \n
    \n onCreatePlaybookClick()}\n >\n {createPlaybookBtnLoader ? (\n \n ) : (\n 'Create'\n )}\n \n
    \n
    \n {playbookSummaryData?.customer_playbook_data?.map(\n (customerPlaybook) => {\n return (\n \n
    \n
    \n \n \n {\n handleChangeOfServiceCheckbox(\n customerPlaybook,\n event?.target?.checked,\n );\n }}\n checked={updatedServicesOfPlaybookSummary?.create?.find(\n (item) => item?.id === customerPlaybook?.id,\n )}\n defaultChecked={updatedServicesOfPlaybookSummary?.create?.find(\n (item) => item?.id === customerPlaybook?.id,\n )}\n />\n \n \n \n\n {\n setCollapseShowData(!collapseShowData);\n }}\n >\n \n \n \n {customerPlaybook?.task_name}\n \n\n {collapseShowData ? (\n <>\n {customerPlaybook?.deliverable?.map((deliverable) => {\n return (\n <>\n
    \n \n \n {deliverable?.task_name}\n \n
    \n \n );\n })}\n \n ) : (\n ''\n )}\n
    \n\n <>\n
    \n
    \n
    MARKETPLACE
    \n
    \n
    \n
    \n {\n marketplacesList?.find(\n (marketplace) =>\n marketplace?.value ===\n customerPlaybook?.marketplace,\n )?.label\n }\n
    \n
    \n
    \n\n
    \n
    MONTHS
    \n
    \n
    \n
    \n {displayMonthData(customerPlaybook)}\n
    \n
    \n
    \n
    \n
    START DATE
    \n
    \n
    \n
    \n {dayjs(customerPlaybook?.task_start_date).format(\n 'MMM',\n )}\n
    \n
    \n
    \n
    \n
    DEPARTMENT
    \n
    \n
    \n
    \n {customerPlaybook?.team}\n
    \n
    \n \n
    \n \n );\n },\n )}\n \n )}\n
    \n );\n};\n\nexport default PlaybookSummary;\n\nPlaybookSummary.defaultProps = {\n customerId: '',\n selectedMarketplaces: [],\n selectedService: [],\n selectedTeamMembers: [],\n marketplacesList: [],\n customStartDate: '',\n accountType: {},\n onCreatePlaybookClick: () => {},\n createPlaybookBtnLoader: false,\n playbookCreateAccess: false,\n updatedServicesOfPlaybookSummary: {},\n setUpdatedServicesOfPlaybookSummary: () => {},\n};\n\nPlaybookSummary.propTypes = {\n customerId: string,\n selectedMarketplaces: arrayOf(shape({})),\n selectedService: arrayOf(shape({})),\n marketplacesList: arrayOf(shape({})),\n selectedTeamMembers: arrayOf(shape({})),\n customStartDate: string,\n accountType: shape({}),\n onCreatePlaybookClick: func,\n createPlaybookBtnLoader: bool,\n playbookCreateAccess: bool,\n updatedServicesOfPlaybookSummary: shape({}),\n setUpdatedServicesOfPlaybookSummary: func,\n};\n","import React, { useState, useCallback, useEffect } from 'react';\n\nimport Modal from 'react-modal';\nimport { DebounceInput } from 'react-debounce-input';\nimport { toast, ToastContainer } from 'react-toastify';\nimport { string, bool, func } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { CloseIcon, SearchIcon } from '../../../../../theme/images';\nimport {\n getBBEUsersData,\n updatePlaybookTaskAssignee,\n} from '../../../../../api';\nimport {\n Button,\n CommonPagination,\n GetInitialName,\n InputSearchWithRadius,\n ModalBox,\n PageLoader,\n} from '../../../../../common';\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n minHeight: '220px',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nfunction ChangeTaskAssigneeModal({\n ID,\n modalId,\n isOpen,\n taskId,\n customerId,\n playbookTab,\n afterSubmitAPI,\n}) {\n const [isSubmitApiCall, setIsSubmitApiCall] = useState(false);\n const [isDataLoading, setIsDataLoading] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [bbeUsersData, setBbeUsersData] = useState([]);\n const [pageNumber, setPageNumber] = useState(1);\n const [totalCount, setTotalCount] = useState(0);\n const [selectedAssignee, setSelectedAssignee] = useState({});\n\n // get assigned members of customer\n const getBBEUsers = useCallback(\n (query, page) => {\n setIsDataLoading(true);\n setBbeUsersData([]);\n setTotalCount(0);\n getBBEUsersData(customerId, query, page).then((response) => {\n if (response?.status === 200) {\n setBbeUsersData(response?.data?.results);\n setTotalCount(response?.data?.count);\n } else {\n setBbeUsersData([]);\n setTotalCount(0);\n }\n setIsDataLoading(false);\n });\n },\n [customerId],\n );\n\n useEffect(() => {\n getBBEUsers('', 1);\n }, [getBBEUsers]);\n\n // before and after calling api\n const eventsBeforeAndAfterApi = useCallback(() => {\n setBbeUsersData([]);\n setTotalCount(0);\n afterSubmitAPI();\n }, [afterSubmitAPI]);\n\n // save change playbook task assignee\n const updateNewPlaybookTaskAssignee = useCallback(() => {\n const payloadData = {\n task: taskId,\n assignee_email: selectedAssignee?.email,\n };\n let payloadData2 = {};\n let API = '';\n\n if (playbookTab === 'playbook') {\n API = updatePlaybookTaskAssignee(ID, payloadData);\n } else if (playbookTab === 'onboarding') {\n payloadData2 = {\n ...payloadData,\n customer: customerId,\n onboarding: 'true',\n };\n API = updatePlaybookTaskAssignee(ID, payloadData2);\n } else {\n API = '';\n }\n setIsSubmitApiCall(true);\n\n API.then((response) => {\n if (response?.status === 200) {\n eventsBeforeAndAfterApi();\n toast.success(`Assignee updated succesfully`);\n } else {\n eventsBeforeAndAfterApi();\n toast.error(`Oops! something went wrong...`);\n }\n setIsSubmitApiCall(false);\n });\n }, [\n ID,\n customerId,\n eventsBeforeAndAfterApi,\n playbookTab,\n selectedAssignee,\n taskId,\n ]);\n\n // Handle Search events\n const handleSearch = (event) => {\n event.persist();\n setSearchQuery(event.target.value);\n setPageNumber(1);\n setTimeout(() => {\n getBBEUsers(event?.target?.value, 1);\n }, 1000);\n setSelectedAssignee({});\n };\n\n // Handle Pagination events\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getBBEUsers(searchQuery, currentPage);\n };\n\n // render Input Search With Radius\n const renderInputSearchWithRadius = () => {\n return (\n \n {\n handleSearch(event);\n }}\n value={searchQuery || ''}\n debounceTimeout={600}\n />\n \"search\"\n \n );\n };\n\n // render bbe assigned and unassigned users list\n const renderBBEUsersList = () => {\n return bbeUsersData?.map((user) => {\n return (\n {\n setSelectedAssignee(user);\n }}\n >\n
    \n
    \n \n
    \n
    \n {`${user?.first_name} ${user?.last_name}`}\n
    \n {user?.role}\n
    \n
    \n
    \n
    \n {selectedAssignee?.user_id === user?.user_id ? (\n
    \n \n
    \n ) : null}\n
    \n
    \n );\n });\n };\n\n // render submit button html\n const renderSubmitButton = () => {\n return (\n {\n e.stopPropagation();\n updateNewPlaybookTaskAssignee();\n }}\n >\n {isSubmitApiCall ? : 'Submit'}\n \n );\n };\n\n // render cancel button html\n const renderCancelButton = () => {\n return (\n {\n e.stopPropagation();\n eventsBeforeAndAfterApi();\n }}\n >\n Cancel\n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n \n \n {\n afterSubmitAPI();\n setBbeUsersData([]);\n }}\n role=\"presentation\"\n />\n \n <>\n
    \n

    Change Task Assignee

    \n\n {renderInputSearchWithRadius()}\n
    \n \n
    \n {isDataLoading ? (\n \n ) : bbeUsersData?.length === 0 ? (\n
    \n No User Found.\n
    \n ) : (\n <>{renderBBEUsersList()}\n )}\n
    \n
    \n {totalCount > 10 ? (\n <>\n
    \n
    \n \n
    \n \n ) : null}\n
    \n\n
    \n
    \n
    \n
    {renderSubmitButton()}
    \n
    {renderCancelButton()}
    \n
    \n
    \n \n \n \n \n );\n}\n\nexport default ChangeTaskAssigneeModal;\n\nChangeTaskAssigneeModal.defaultProps = {\n modalId: '',\n isOpen: false,\n afterSubmitAPI: () => {},\n};\n\nChangeTaskAssigneeModal.propTypes = {\n modalId: string,\n ID: string.isRequired,\n taskId: string.isRequired,\n customerId: string.isRequired,\n playbookTab: string.isRequired,\n isOpen: bool,\n afterSubmitAPI: func,\n};\n","import React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { shape, func, bool, string, arrayOf } from 'prop-types';\nimport { toast, ToastContainer } from 'react-toastify';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { GetInitialName } from '../../../../../common';\nimport ChangeTaskAssigneeModal from '../PlaybookModals/ChangeTaskAssigneeModal';\nimport { renderAssigneeTooltip } from '../CommonFunctions';\n\nexport default function PlaybookTaskAssignee({\n ID,\n taskId,\n customerId,\n playbookTab,\n assigneeData,\n playbookAPICall,\n isUserAssignedToBP,\n}) {\n const [showChangeTaskAssigneeModal, setShowChangeTaskAssigneeModal] =\n useState(false);\n const userInfo = useSelector((state) => state.userState.userInfo);\n\n // handle is allowed to change the task assignee events\n const handleChangeTaskAsigneePermission = () => {\n if (isUserAssignedToBP || userInfo?.onboarding_playbook_access) {\n if (playbookTab === 'onboarding-gray') {\n setShowChangeTaskAssigneeModal(false);\n } else {\n setShowChangeTaskAssigneeModal(true);\n }\n } else {\n toast.error(\n `Only assigned users to this BP can assign tasks. Please contact the BGS Manager for this account.`,\n );\n }\n };\n\n // get initial letter from first name and last name of user name\n const renderGetInitialName = (item) => {\n return (\n \n );\n };\n\n // render task assignee\n const renderTaskAssignee = (item) => {\n const firstName = item?.first_name;\n const lastName = item?.last_name;\n const showAssigneeTooltip = firstName !== null && lastName !== null;\n\n return showAssigneeTooltip ? (\n {\n handleChangeTaskAsigneePermission();\n }}\n data-tip\n data-for={taskId}\n >\n {renderGetInitialName(item)}\n {renderAssigneeTooltip(item, taskId, 'task-assignee-tooltip')}\n
    \n ) : null;\n };\n\n // render plus sign circle\n const renderPlusSign = () => {\n return (\n {\n handleChangeTaskAsigneePermission();\n }}\n >\n \n
    \n );\n };\n\n // render task assignee and plus sign\n const renderTaskAssigneeData = () => {\n return assigneeData?.length\n ? assigneeData?.map((item) => {\n return renderTaskAssignee(item);\n })\n : playbookTab === 'onboarding-gray'\n ? null\n : renderPlusSign();\n };\n\n // render change assignee modal\n const renderChangeTaskAssigneeModal = () => {\n return (\n {\n playbookAPICall();\n setShowChangeTaskAssigneeModal(false);\n }}\n />\n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n \n {renderTaskAssigneeData()}\n {showChangeTaskAssigneeModal ? renderChangeTaskAssigneeModal() : null}\n \n );\n}\n\nPlaybookTaskAssignee.defaultProps = {\n playbookTab: '',\n playbookAPICall: () => {},\n};\n\nPlaybookTaskAssignee.propTypes = {\n playbookTab: string,\n ID: string.isRequired,\n taskId: string.isRequired,\n customerId: string.isRequired,\n isUserAssignedToBP: bool.isRequired,\n playbookAPICall: func,\n assigneeData: arrayOf(shape()).isRequired,\n};\n","import React, { useState, useCallback } from 'react';\n\nimport Modal from 'react-modal';\nimport { useMediaQuery } from 'react-responsive';\nimport { toast, ToastContainer } from 'react-toastify';\nimport { bool, func, shape, string } from 'prop-types';\n\nimport { Button, ModalBox, PageLoader } from '../../../../../common';\nimport { CloseIcon } from '../../../../../theme/images';\nimport { updateTaskStatus } from '../../../../../api/PlaybookApi';\n\nfunction PlaybookChangeStatusModal({\n ID,\n customerId,\n playbookTab,\n afterSubmitAPI,\n changedTaskStatus,\n showChangeStatusModal,\n setShowChangeStatusModal,\n renderProgressLabelClassName,\n}) {\n const isMobile = useMediaQuery({ maxWidth: 767 });\n const [changeStatusLoader, setChangeStatusLoader] = useState(false);\n\n // save changed task status\n const saveTaskStatus = useCallback(() => {\n const payloadData = {\n task: changedTaskStatus?.taskId,\n status: changedTaskStatus?.newStatus,\n };\n let payloadData1 = {};\n let payloadData2 = {};\n let API = '';\n\n if (playbookTab === 'playbook') {\n payloadData1 = { ...payloadData, onboarding: 'false' };\n API = updateTaskStatus(ID, payloadData1);\n } else if (playbookTab === 'onboarding') {\n payloadData2 = {\n ...payloadData,\n customer: customerId,\n onboarding: 'true',\n };\n API = updateTaskStatus(ID, payloadData2);\n } else {\n API = '';\n }\n\n setChangeStatusLoader(true);\n // calling api and handeling response\n API.then((response) => {\n if (response?.status === 200) {\n toast.success(`Jira ticket status updated succesfully`);\n setChangeStatusLoader(false);\n afterSubmitAPI();\n } else if (response?.status === 400 || response?.status === 403) {\n toast.error(response?.data?.message || response?.data?.detail);\n afterSubmitAPI();\n } else {\n toast.error(`Oops! something went wrong.`);\n afterSubmitAPI();\n }\n setShowChangeStatusModal(false);\n setChangeStatusLoader(false);\n });\n }, [\n changedTaskStatus,\n playbookTab,\n ID,\n customerId,\n setShowChangeStatusModal,\n afterSubmitAPI,\n ]);\n\n // render task status html\n const renderTaskStatusHTML = (label, value) => {\n return (\n
    \n

    {label}

    \n {value}\n
    \n );\n };\n\n // render Playbook Change Status Modal\n const renderPlaybookChangeStatusModal = () => {\n return (\n <>\n \n {\n afterSubmitAPI();\n }}\n role=\"presentation\"\n />\n \n <>\n
    \n

    Confirm Task Status

    \n {changeStatusLoader ? (\n
    \n \n
    \n ) : (\n <>\n
    \n
    \n
    \n
    \n

    Tasks

    \n

    \n {changedTaskStatus?.taskName}\n

    \n
    \n {renderTaskStatusHTML(\n 'Previous Status',\n changedTaskStatus?.prevStatus,\n )}\n {renderTaskStatusHTML(\n 'New Status',\n changedTaskStatus?.newStatusLabel,\n )}\n
    \n

    \n Note that clicking Confirm button below will change the\n status of above task in Jira. Are you sure you want to\n proceed?\n

    \n
    \n
    \n \n )}\n
    \n\n
    \n
    \n \n {\n e.stopPropagation();\n saveTaskStatus();\n }}\n >\n {changeStatusLoader ? (\n \n ) : (\n 'Confirm'\n )}\n \n
    \n
    \n {\n e.stopPropagation();\n setShowChangeStatusModal(false);\n }}\n >\n Cancel\n \n
    \n
    \n
    \n \n \n \n \n );\n };\n return (\n
    \n \n {renderPlaybookChangeStatusModal()}\n
    \n );\n}\n\nexport default PlaybookChangeStatusModal;\n\nPlaybookChangeStatusModal.defaultProps = {\n customerId: null,\n showChangeStatusModal: false,\n changedTaskStatus: [],\n afterSubmitAPI: () => {},\n};\n\nPlaybookChangeStatusModal.propTypes = {\n ID: string.isRequired,\n customerId: string,\n playbookTab: string.isRequired,\n showChangeStatusModal: bool,\n renderProgressLabelClassName: func.isRequired,\n setShowChangeStatusModal: func.isRequired,\n afterSubmitAPI: func,\n changedTaskStatus: shape(),\n};\n","import React, { useState, useEffect, useRef } from 'react';\n\nimport { string, func, shape, bool } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { jiraStatus } from '../../../../../constants';\nimport { TaskStatus } from '../PlaybookStyle';\nimport PlaybookChangeStatusModal from '../PlaybookModals/PlaybookChangeStatusModal';\n\nfunction PlaybookTaskStatus({\n ID,\n taskData,\n customerId,\n isCustomer,\n playbookTab,\n\n playbookAPICall,\n}) {\n const dropdownRef = useRef(null);\n const noAccess = isCustomer || playbookTab === 'onboarding-gray';\n const [showChangeStatusDropdown, setShowChangeStatusDropdown] =\n useState(false);\n\n const [showChangeTaskStatusModal, setShowChangeTaskStatusModal] =\n useState(false);\n const [changedTaskStatus, setChangedTaskStatus] = useState({});\n\n // handle click outside to the dropdown list\n const handleClickOutside = (event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowChangeStatusDropdown(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n // render progress label className\n const renderProgressLabelClassName = (status) => {\n const className =\n status === 'Done'\n ? 'progress-label green-label'\n : status === 'In Progress'\n ? 'progress-label orange-label'\n : status === 'Review'\n ? 'progress-label blue-label'\n : 'progress-label gray-label';\n return className;\n };\n\n // handle change jira status\n const handleChangeStatus = (item) => {\n setChangedTaskStatus({\n taskId: taskData?.taskId,\n taskName: taskData?.taskName,\n prevStatus: taskData?.jiraStatus,\n newStatus: item.status,\n newStatusLabel: item.label,\n });\n };\n\n // render change status dropdown\n const renderChangeStatusDropdown = (status) => {\n const iconColor =\n status === 'Done'\n ? '#407b00'\n : status === 'To Do'\n ? '#2E384D'\n : status === 'In Progress'\n ? '#FF5933'\n : status === 'Review'\n ? '#2e5bff'\n : null;\n\n return (\n \n
      \n {jiraStatus?.map((item) => {\n return (\n {\n event.stopPropagation();\n setShowChangeTaskStatusModal(true);\n handleChangeStatus(item);\n }}\n >\n \n {item.label}\n \n {status === item.label ? (\n \n \n \n ) : null}\n
      \n \n );\n })}\n
    \n
    \n );\n };\n\n // calling the playbook change status modal component\n const renderChangeStatusModal = () => {\n return (\n {\n playbookAPICall();\n setShowChangeTaskStatusModal(false);\n }}\n />\n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n {\n event.stopPropagation();\n setShowChangeStatusDropdown(\n noAccess ? false : !showChangeStatusDropdown,\n );\n }}\n >\n
    {taskData?.jiraStatus}
    \n {noAccess ? null : (\n \n )}\n\n {noAccess ? null : renderChangeStatusDropdown(taskData?.jiraStatus)}\n \n {showChangeTaskStatusModal ? renderChangeStatusModal() : null}\n \n );\n}\n\nexport default PlaybookTaskStatus;\n\nPlaybookTaskStatus.defaultProps = {\n playbookTab: '',\n customerId: null,\n taskData: [],\n playbookAPICall: () => {},\n};\n\nPlaybookTaskStatus.propTypes = {\n playbookTab: string,\n customerId: string,\n ID: string.isRequired,\n isCustomer: bool.isRequired,\n playbookAPICall: func,\n taskData: shape(),\n};\n","/* eslint-disable react/no-danger */\nimport React from 'react';\n\nimport { useMediaQuery } from 'react-responsive';\nimport {\n string,\n arrayOf,\n shape,\n oneOfType,\n object,\n bool,\n func,\n} from 'prop-types';\n\nimport PlaybookTaskAssignee from './PlaybookTaskAssignee';\nimport PlaybookTaskStatus from './PlaybookTaskStatus';\nimport { JIRA_TICKET_BASE_URL } from '../../../../../constants';\nimport { InnerCollapseRow } from '../PlaybookStyle';\n\nexport default function PlaybookSubTask({\n ID,\n subTaskData,\n customerId,\n isCustomer,\n playbookTab,\n playbookAPICall,\n isUserAssignedToBP,\n renderPlaybookTaskMobileDataHTML,\n isCurrentMonthTask,\n}) {\n const isTablet = useMediaQuery({ minWidth: 768 });\n const subTaskID = subTaskData?.id;\n const subTaskDataObj = {\n taskId: subTaskID,\n taskName: subTaskData?.sub_task_name,\n jiraStatus: subTaskData?.jira_status,\n };\n\n // render playbook sub task data\n const renderPlaybookSubTaskData = () => {\n return (\n \n \n {subTaskData?.jira_id !== null ? (\n \n ) : (\n \n )}\n \n {playbookTab === 'playbook' ? (\n {subTaskData?.marketplace}\n ) : null}\n\n {subTaskData?.team}\n {isCustomer ? null : {subTaskData?.due_date}}\n {isCustomer ? null : (\n \n \n \n )}\n \n \n \n \n );\n };\n\n // render playbook task table mobile fields\n const renderPlaybookTaskMobileData = (key) => {\n return (\n <>\n
    \n
    \n {playbookTab === 'playbook' && subTaskData?.jira_id !== null ? (\n \n ) : (\n \n )}\n
    \n\n {playbookTab === 'playbook'\n ? renderPlaybookTaskMobileDataHTML(\n 'Marketplace',\n subTaskData?.maketplace,\n )\n : null}\n\n {renderPlaybookTaskMobileDataHTML('Team', subTaskData?.team)}\n {isCustomer\n ? null\n : renderPlaybookTaskMobileDataHTML(\n 'Due Date',\n subTaskData?.due_date,\n )}\n {isCustomer\n ? null\n : renderPlaybookTaskMobileDataHTML(\n 'Assignee',\n subTaskData?.assignee,\n subTaskID,\n )}\n {renderPlaybookTaskMobileDataHTML('Status', subTaskDataObj)}\n
    \n \n );\n };\n\n // render playbook sub task movile view\n const renderPlaybookSubTaskMobileView = () => {\n return (\n
    {renderPlaybookTaskMobileData(subTaskID)}
    \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n {isTablet\n ? renderPlaybookSubTaskData()\n : renderPlaybookSubTaskMobileView()}\n \n );\n}\n\nPlaybookSubTask.defaultProps = {\n subTaskData: [],\n playbookAPICall: () => {},\n renderPlaybookTaskMobileDataHTML: () => {},\n};\n\nPlaybookSubTask.propTypes = {\n ID: string.isRequired,\n customerId: string.isRequired,\n playbookTab: string.isRequired,\n isCustomer: bool.isRequired,\n isUserAssignedToBP: bool.isRequired,\n isCurrentMonthTask: bool.isRequired,\n playbookAPICall: func,\n renderPlaybookTaskMobileDataHTML: func,\n subTaskData: oneOfType([arrayOf(shape()), object]),\n};\n","import React, { useState } from 'react';\n\nimport { useMediaQuery } from 'react-responsive';\nimport {\n string,\n arrayOf,\n shape,\n oneOfType,\n object,\n bool,\n func,\n} from 'prop-types';\n\nimport PlaybookSubTask from './PlaybookSubTask';\nimport PlaybookTaskAssignee from './PlaybookTaskAssignee';\nimport PlaybookTaskStatus from './PlaybookTaskStatus';\nimport { InnerCollapseRow } from '../PlaybookStyle';\nimport { JIRA_TICKET_BASE_URL } from '../../../../../constants';\n\nfunction PlaybookTaskCollapse({\n ID,\n taskData,\n customerId,\n isCustomer,\n playbookTab,\n playbookAPICall,\n isUserAssignedToBP,\n renderCollapseDropdownIcon,\n renderPlaybookTaskMobileDataHTML,\n isCurrentMonthTask,\n}) {\n const isTablet = useMediaQuery({ minWidth: 768 });\n const [showSubTaskCollapse, setShowSubTaskCollpase] = useState(false);\n const taskID = taskData?.id;\n const taskDataObj = {\n taskId: taskID,\n taskName: taskData?.task_name,\n jiraStatus: taskData?.jira_status,\n };\n // render playbook task data\n const renderPlaybookTaskData = () => {\n return (\n <>\n \n {\n setShowSubTaskCollpase(!showSubTaskCollapse);\n }}\n >\n \n {taskData?.sub_tasks?.length\n ? renderCollapseDropdownIcon(showSubTaskCollapse)\n : null}\n {taskData?.jira_id !== null ? (\n \n \n \n ) : (\n \n {' '}\n \n \n )}\n \n {playbookTab === 'playbook' ? (\n {taskData?.marketplace}\n ) : null}\n\n {taskData?.team}\n {isCustomer ? null : {taskData?.due_date}}\n {isCustomer ? null : (\n \n \n \n )}\n \n \n \n \n \n );\n };\n\n // render playbook sub task collapse\n const renderPlaybookSubTaskCollapse = () => {\n return taskData?.sub_tasks?.length && showSubTaskCollapse ? (\n <>\n {taskData?.sub_tasks?.map((item) => {\n return (\n \n );\n })}\n \n ) : null;\n };\n\n // render playbook task table mobile fields\n const renderPlaybookTaskMobileData = (key) => {\n return (\n <>\n
    \n {\n setShowSubTaskCollpase(!showSubTaskCollapse);\n }}\n >\n
    Deliverables
    \n {playbookTab === 'playbook' && taskData?.jira_id !== null ? (\n \n \n \n ) : (\n
    \n \n
    \n )}\n
    \n {playbookTab === 'playbook'\n ? renderPlaybookTaskMobileDataHTML(\n 'Marketplace',\n taskData?.marketplace,\n )\n : null}\n {renderPlaybookTaskMobileDataHTML('Team', taskData?.team)}\n {isCustomer\n ? null\n : renderPlaybookTaskMobileDataHTML('Due Date', taskData?.due_date)}\n {isCustomer\n ? null\n : renderPlaybookTaskMobileDataHTML(\n 'Assignee',\n taskData?.assignee,\n taskID,\n )}\n {renderPlaybookTaskMobileDataHTML('Status', taskDataObj)}\n
    \n {taskData?.sub_tasks?.length && showSubTaskCollapse\n ? taskData?.sub_tasks?.map((item) => {\n return (\n \n );\n })\n : null}\n \n );\n };\n\n // render playbook task collapse movile view\n const renderPlaybookTaskMobileView = () => {\n return (\n <>\n {taskData?.sub_tasks?.length ? (\n
    \n {\n setShowSubTaskCollpase(!showSubTaskCollapse);\n }}\n >\n {renderCollapseDropdownIcon(showSubTaskCollapse)}\n
    \n \n
    {renderPlaybookTaskMobileData(taskID)}
    \n
    \n ) : (\n
    {renderPlaybookTaskMobileData(taskID)}
    \n )}\n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n {isTablet ? (\n <>\n {renderPlaybookTaskData()}\n {renderPlaybookSubTaskCollapse()}\n \n ) : (\n renderPlaybookTaskMobileView()\n )}\n \n );\n}\n\nexport default PlaybookTaskCollapse;\n\nPlaybookTaskCollapse.defaultProps = {\n taskData: [],\n playbookAPICall: () => {},\n renderCollapseDropdownIcon: () => {},\n renderPlaybookTaskMobileDataHTML: () => {},\n};\n\nPlaybookTaskCollapse.propTypes = {\n ID: string.isRequired,\n customerId: string.isRequired,\n playbookTab: string.isRequired,\n isCustomer: bool.isRequired,\n isUserAssignedToBP: bool.isRequired,\n isCurrentMonthTask: bool.isRequired,\n playbookAPICall: func,\n renderCollapseDropdownIcon: func,\n renderPlaybookTaskMobileDataHTML: func,\n taskData: oneOfType([arrayOf(shape()), object]),\n};\n","import React, { useState } from 'react';\n\nimport { useMediaQuery } from 'react-responsive';\nimport {\n arrayOf,\n shape,\n oneOfType,\n object,\n func,\n bool,\n string,\n} from 'prop-types';\n\nimport PlaybookTaskCollapse from './PlaybookTaskCollapse';\nimport PlaybookTaskAssignee from './PlaybookTaskAssignee';\nimport PlaybookTaskStatus from './PlaybookTaskStatus';\nimport { InnerCollapseRow } from '../PlaybookStyle';\nimport { JIRA_TICKET_BASE_URL } from '../../../../../constants';\nimport { renderCollapseDropdownIcon } from '../CommonFunctions';\n\nexport default function PlaybookDeliverableCollapse({\n ID,\n customerId,\n isCustomer,\n playbookTab,\n playbookAPICall,\n deliverableData,\n isUserAssignedToBP,\n isCurrentMonthTask,\n}) {\n const isTablet = useMediaQuery({ minWidth: 768 });\n const [showTaskCollapse, setShowTaskCollpase] = useState(false);\n const deliverableID = deliverableData?.id;\n const taskData = {\n taskId: deliverableID,\n taskName: deliverableData?.deliverable_name,\n jiraStatus: deliverableData?.jira_status,\n };\n\n // render deliverable data\n const renderDeliverableData = () => {\n return (\n <>\n \n {\n setShowTaskCollpase(!showTaskCollapse);\n }}\n >\n {deliverableData?.tasks?.length\n ? renderCollapseDropdownIcon(showTaskCollapse)\n : null}\n\n {deliverableData?.jira_id !== null ? (\n \n \n {/* {deliverableData?.deliverable_name} */}\n \n ) : (\n \n \n {/* {deliverableData?.deliverable_name} */}\n \n )}\n \n {playbookTab === 'playbook' ? (\n \n {deliverableData?.marketplace}\n \n ) : null}\n \n {deliverableData?.team}\n \n {isCustomer ? null : (\n \n {deliverableData?.due_date}\n \n )}\n {isCustomer ? null : (\n \n \n \n )}\n\n \n \n \n \n \n );\n };\n\n // render playbook task data collapse\n const renderPlaybookTaskCollapse = () => {\n return deliverableData?.tasks?.length && showTaskCollapse ? (\n <>\n {deliverableData?.tasks?.map((item) => {\n return (\n \n );\n })}\n \n ) : null;\n };\n\n // render playbook task mobile field data html\n const renderPlaybookTaskMobileDataHTML = (label, dataValue, taskId) => {\n return (\n
    \n
    {label}
    \n
    \n {label === 'Assignee' ? (\n \n ) : label === 'Status' ? (\n \n ) : (\n dataValue\n )}\n
    \n
    \n );\n };\n\n // render playbook task table mobile fields\n const renderPlaybookTaskMobileData = (key) => {\n return (\n <>\n
    \n {\n setShowTaskCollpase(!showTaskCollapse);\n }}\n >\n
    Deliverables
    \n {playbookTab === 'playbook' && deliverableData?.jira_id !== null ? (\n \n \n \n ) : (\n
    \n \n
    \n )}\n
    \n \n {playbookTab === 'playbook'\n ? renderPlaybookTaskMobileDataHTML(\n 'Marketplace',\n deliverableData?.marketplace,\n )\n : null}\n\n {renderPlaybookTaskMobileDataHTML('Team', deliverableData?.team)}\n {isCustomer\n ? null\n : renderPlaybookTaskMobileDataHTML(\n 'Due Date',\n deliverableData?.due_date,\n )}\n {isCustomer\n ? null\n : renderPlaybookTaskMobileDataHTML(\n 'Assignee',\n deliverableData?.assignee,\n deliverableID,\n )}\n {renderPlaybookTaskMobileDataHTML('Status', taskData)}\n
    \n {deliverableData?.tasks?.length && showTaskCollapse\n ? deliverableData?.tasks?.map((item) => {\n return (\n \n );\n })\n : null}\n \n );\n };\n\n // render playbook deliverabel collapse movile view\n const renderPlaybookDeliverableMobileView = () => {\n return (\n <>\n {deliverableData?.tasks?.length ? (\n
    \n {\n setShowTaskCollpase(!showTaskCollapse);\n }}\n >\n {renderCollapseDropdownIcon(showTaskCollapse)}\n
    \n
    \n \n {renderPlaybookTaskMobileData(deliverableID)}\n
    \n \n ) : (\n
    \n {renderPlaybookTaskMobileData(deliverableID)}\n
    \n )}\n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n {isTablet ? (\n <>\n {renderDeliverableData()}\n {renderPlaybookTaskCollapse()}\n \n ) : (\n renderPlaybookDeliverableMobileView()\n )}\n \n );\n}\n\nPlaybookDeliverableCollapse.defaultProps = {\n deliverableData: [],\n playbookAPICall: () => {},\n};\n\nPlaybookDeliverableCollapse.propTypes = {\n ID: string.isRequired,\n customerId: string.isRequired,\n playbookTab: string.isRequired,\n isCustomer: bool.isRequired,\n isUserAssignedToBP: bool.isRequired,\n isCurrentMonthTask: bool.isRequired,\n playbookAPICall: func,\n deliverableData: oneOfType([arrayOf(shape()), object]),\n};\n","import React, { useState } from 'react';\n\nimport { useMediaQuery } from 'react-responsive';\nimport {\n arrayOf,\n shape,\n oneOfType,\n object,\n func,\n bool,\n string,\n} from 'prop-types';\n\nimport PlaybookTaskAssignee from './PlaybookTaskAssignee';\nimport PlaybookTaskStatus from './PlaybookTaskStatus';\nimport PlaybookDeliverableCollapse from './PlaybookDeliverableCollapse';\nimport { JIRA_TICKET_BASE_URL } from '../../../../../constants';\nimport { renderCollapseDropdownIcon } from '../CommonFunctions';\n\nexport default function PlaybookServicesCollapse({\n ID,\n customerId,\n isCustomer,\n playbookTab,\n playbookAPICall,\n serviceData,\n isUserAssignedToBP,\n}) {\n const isPlaybookTab = playbookTab === 'playbook';\n const isTablet = useMediaQuery({ minWidth: 768 });\n const isCurrentMonthTask =\n new Date(serviceData?.start_date)?.getUTCMonth() ===\n new Date()?.getUTCMonth() && isPlaybookTab;\n\n const [showTaskCollapse, setShowTaskCollpase] = useState(false);\n const serviceID = serviceData?.id;\n const taskData = {\n taskId: serviceID,\n taskName: serviceData?.service_name,\n jiraStatus: serviceData?.jira_status,\n };\n\n // render deliverable data\n const renderServiceData = () => {\n return (\n \n {\n setShowTaskCollpase(!showTaskCollapse);\n }}\n >\n {serviceData?.deliverables?.length\n ? renderCollapseDropdownIcon(showTaskCollapse)\n : null}\n {isPlaybookTab && serviceData?.jira_id !== null ? (\n \n \n {/* {serviceData?.service_name} */}\n \n ) : (\n \n \n {/* {serviceData?.service_name} */}\n \n )}\n \n {isPlaybookTab ? (\n \n {serviceData?.marketplace}\n \n ) : null}\n \n {serviceData?.team}\n \n {isCustomer ? null : (\n \n {serviceData?.due_date}\n \n )}\n {isCustomer ? null : (\n \n \n \n )}\n\n \n \n \n \n );\n };\n\n // render playbook task data collapse\n const renderPlaybookDeliverablesCollapse = () => {\n return serviceData?.deliverables?.length && showTaskCollapse ? (\n <>\n {serviceData?.deliverables?.map((item) => {\n return (\n \n );\n })}\n \n ) : null;\n };\n\n // render playbook task mobile field data html\n const renderPlaybookTaskMobileDataHTML = (label, dataValue) => {\n return (\n
    \n
    {label}
    \n
    \n {label === 'Assignee' ? (\n \n ) : label === 'Status' ? (\n \n ) : (\n dataValue\n )}\n
    \n
    \n );\n };\n\n // render playbook task table mobile fields\n const renderPlaybookTaskMobileData = (key) => {\n return (\n <>\n
    \n {\n setShowTaskCollpase(!showTaskCollapse);\n }}\n >\n
    Deliverables
    \n {isPlaybookTab && serviceData?.jira_id !== null ? (\n \n \n \n ) : (\n
    \n \n
    \n )}\n
    \n \n {isPlaybookTab\n ? renderPlaybookTaskMobileDataHTML(\n 'Marketplace',\n serviceData?.marketplace,\n )\n : null}\n\n {renderPlaybookTaskMobileDataHTML('Team', serviceData?.team)}\n {isCustomer\n ? null\n : renderPlaybookTaskMobileDataHTML(\n 'Due Date',\n serviceData?.due_date,\n )}\n {isCustomer\n ? null\n : renderPlaybookTaskMobileDataHTML(\n 'Assignee',\n serviceData?.assignee,\n serviceID,\n )}\n {renderPlaybookTaskMobileDataHTML('Status', taskData)}\n \n {serviceData?.deliverables?.length && showTaskCollapse\n ? serviceData?.deliverables?.map((item) => {\n return (\n \n );\n })\n : null}\n \n );\n };\n\n // render playbook deliverabel collapse movile view\n const renderPlaybookDeliverableMobileView = () => {\n return (\n <>\n {serviceData?.deliverables?.length ? (\n
    \n {\n setShowTaskCollpase(!showTaskCollapse);\n }}\n >\n {renderCollapseDropdownIcon(showTaskCollapse)}\n
    \n
    \n \n {renderPlaybookTaskMobileData(serviceID)}\n
    \n \n ) : (\n
    \n {renderPlaybookTaskMobileData(serviceID)}\n
    \n )}\n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n {isTablet ? (\n <>\n {renderServiceData()}\n {renderPlaybookDeliverablesCollapse()}\n \n ) : (\n renderPlaybookDeliverableMobileView()\n )}\n \n );\n}\n\nPlaybookServicesCollapse.defaultProps = {\n serviceData: [],\n playbookAPICall: () => {},\n};\n\nPlaybookServicesCollapse.propTypes = {\n ID: string.isRequired,\n customerId: string.isRequired,\n playbookTab: string.isRequired,\n isCustomer: bool.isRequired,\n isUserAssignedToBP: bool.isRequired,\n playbookAPICall: func,\n serviceData: oneOfType([arrayOf(shape()), object]),\n};\n","import React from 'react';\n\nimport { useMediaQuery } from 'react-responsive';\nimport { useSelector } from 'react-redux';\nimport {\n arrayOf,\n bool,\n func,\n object,\n oneOfType,\n shape,\n string,\n} from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { DesktopTable, WhiteCard } from '../../../../common';\nimport {\n playbookTableHeader,\n playbookTableHeaderBPView,\n} from '../../../../constants';\nimport PlaybookSummary from './PlaybookSummary';\nimport PlaybookServicesCollapse from './PlaybookDataTable/PlaybookServicesCollapse';\nimport { PlaybookMobileView, PlaybookSummaryLink } from './PlaybookStyle';\n\nfunction ServicesPlaybook({\n isCustomer,\n customerId,\n playbookId,\n playbookTab,\n playbookAPICall,\n playbookTaskData,\n isUserAssignedToBP,\n selectedMarketplaces,\n selectedService,\n selectedTeamMembers,\n customStartDate,\n customEndDate,\n accountType,\n onCreatePlaybookClick,\n createPlaybookBtnLoader,\n updatedServicesOfPlaybookSummary,\n setUpdatedServicesOfPlaybookSummary,\n showSummaryPage,\n setShowSummaryPage,\n marketplacesList,\n servicePlaybookErrorMsg,\n}) {\n const isDesktop = useMediaQuery({ minWidth: 767 });\n const userInfo = useSelector((state) => state.userState.userInfo);\n const playbookCreateAccess =\n userInfo?.role?.includes('BGS') ||\n userInfo?.role?.includes('BGS Admin') ||\n userInfo?.role?.includes('Ad Manager Admin');\n\n // render deliverable collapse\n const renderPlaybookServicesCollapse = (dataItem) => {\n return (\n \n );\n };\n\n // render playbook services table for desktop view\n const renderServicesPlaybookDesktopView = () => {\n return (\n
    \n {playbookCreateAccess ? (\n
    \n {\n setShowSummaryPage(!showSummaryPage);\n }}>\n {showSummaryPage ? (\n <>\n \n Back to Playbook\n \n ) : (\n <>\n Playbook Summary\n \n \n )}\n \n
    \n ) : null}\n\n {showSummaryPage ? (\n \n ) : playbookTaskData?.length ? (\n \n \n \n {isCustomer\n ? playbookTableHeaderBPView?.map((item) => {\n return (\n \n {item?.label}\n \n );\n })\n : playbookTableHeader?.map((item) => {\n return (\n \n {item?.label}\n \n );\n })}\n \n \n \n {playbookTaskData?.map((item) => {\n return renderPlaybookServicesCollapse(item);\n })}\n \n \n ) : (\n \n

    \n {servicePlaybookErrorMsg || 'No Playbook Created'}\n

    \n
    \n )}\n
    \n );\n };\n\n // render playbook services table for mobile view\n const renderServicesPlaybookMobileView = () => {\n return (\n
    \n {playbookCreateAccess ? (\n
    \n {\n setShowSummaryPage(!showSummaryPage);\n }}>\n {showSummaryPage ? (\n <>\n \n Back to Playbook\n \n ) : (\n <>\n Playbook Summary\n \n \n )}\n \n
    \n ) : null}\n\n {showSummaryPage ? (\n \n ) : (\n \n {playbookTaskData?.map((item) => {\n return (\n \n {renderPlaybookServicesCollapse(item)}\n \n );\n })}\n \n )}\n
    \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n {isDesktop\n ? renderServicesPlaybookDesktopView()\n : renderServicesPlaybookMobileView()}\n \n );\n}\n\nexport default ServicesPlaybook;\n\nServicesPlaybook.defaultProps = {\n playbookId: '',\n playbookTab: '',\n isUserAssignedToBP: false,\n playbookTaskData: [],\n playbookAPICall: () => {},\n selectedMarketplaces: [],\n selectedService: '',\n selectedTeamMembers: '',\n customStartDate: '',\n customEndDate: '',\n accountType: {},\n onCreatePlaybookClick: () => {},\n createPlaybookBtnLoader: false,\n updatedServicesOfPlaybookSummary: {},\n setUpdatedServicesOfPlaybookSummary: () => {},\n showSummaryPage: false,\n setShowSummaryPage: () => {},\n marketplacesList: [],\n servicePlaybookErrorMsg: '',\n};\n\nServicesPlaybook.propTypes = {\n playbookTab: string,\n playbookId: string,\n customerId: string.isRequired,\n isUserAssignedToBP: bool,\n isCustomer: bool.isRequired,\n playbookAPICall: func,\n playbookTaskData: oneOfType([arrayOf(shape()), object]),\n selectedMarketplaces: arrayOf(shape()),\n selectedService: string,\n selectedTeamMembers: string,\n customStartDate: string,\n customEndDate: string,\n accountType: shape({}),\n onCreatePlaybookClick: func,\n createPlaybookBtnLoader: bool,\n updatedServicesOfPlaybookSummary: shape({}),\n setUpdatedServicesOfPlaybookSummary: func,\n showSummaryPage: bool,\n setShowSummaryPage: func,\n marketplacesList: arrayOf(shape({})),\n servicePlaybookErrorMsg: string,\n};\n","import React from 'react';\n\nimport { useMediaQuery } from 'react-responsive';\nimport {\n string,\n arrayOf,\n shape,\n oneOfType,\n object,\n bool,\n func,\n} from 'prop-types';\n\nimport PlaybookDeliverableCollapse from './PlaybookDataTable/PlaybookDeliverableCollapse';\nimport { PlaybookMobileView } from './PlaybookStyle';\nimport { DesktopTable, WhiteCard } from '../../../../common';\nimport {\n onboardingPlaybookTableHeader,\n playbookTableHeaderBPView,\n} from '../../../../constants';\n\nexport default function OnboardingPlaybook({\n isCustomer,\n customerId,\n playbookTab,\n playbookAPICall,\n isUserAssignedToBP,\n onboardingPlaybookData,\n onboardingPBTaskUpdateID,\n}) {\n const isTablet = useMediaQuery({ minWidth: 768 });\n\n // this variable is actually for main playbook but for onboarding playbook we need to pass this as a props\n // by default pass as a true.\n const isCurrentMonthTask = true;\n\n // render deliverable collapse\n const renderPlaybookDeliverableCollapse = (dataItem) => {\n return (\n \n );\n };\n\n // render onboarding playbook table for desktop view\n const renderOnboardingPlaybookTable = () => {\n return (\n
    \n \n \n \n {isCustomer\n ? playbookTableHeaderBPView?.map((item) => {\n return (\n \n {item?.label}\n \n );\n })\n : onboardingPlaybookTableHeader?.map((item) => {\n return (\n \n {item?.label}\n \n );\n })}\n \n \n \n {onboardingPlaybookData?.map((item) => {\n return renderPlaybookDeliverableCollapse(item);\n })}\n \n \n
    \n );\n };\n\n // onboarding playbook mobile view\n const renderOnboardingPlaybookMobileView = () => {\n return (\n \n {onboardingPlaybookData?.map((item) => {\n return (\n \n {renderPlaybookDeliverableCollapse(item)}\n \n );\n })}\n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n
    \n {isTablet\n ? renderOnboardingPlaybookTable()\n : renderOnboardingPlaybookMobileView()}\n
    \n );\n}\n\nOnboardingPlaybook.defaultProps = {\n onboardingPBTaskUpdateID: '',\n onboardingPlaybookData: [],\n playbookAPICall: () => {},\n};\n\nOnboardingPlaybook.propTypes = {\n customerId: string.isRequired,\n onboardingPBTaskUpdateID: string,\n playbookTab: string.isRequired,\n isCustomer: bool.isRequired,\n isUserAssignedToBP: bool.isRequired,\n playbookAPICall: func,\n onboardingPlaybookData: oneOfType([arrayOf(shape()), object]),\n};\n","import React, { useEffect, useState, useCallback } from 'react';\nimport { useMediaQuery } from 'react-responsive';\n\nimport Select from 'react-select';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, string, shape, bool, func } from 'prop-types';\nimport { toast } from 'react-toastify';\nimport {\n getPlaybookServicesData,\n sendForApprovalOfPlaybook,\n} from '../../../../api';\nimport { playbookSummaryMonthOptions } from '../../../../constants';\nimport {\n CheckBox,\n DesktopTable,\n WhiteCard,\n Button,\n PageLoader,\n ErrorMsg,\n} from '../../../../common';\nimport Theme from '../../../../theme/Theme';\nimport {\n BorderLessDropDown,\n TaskStatus,\n SummaryMobileSelect,\n PlaybookSummaryMobileView,\n} from './PlaybookStyle';\nimport { renderAssigneeTooltip } from './CommonFunctions';\n\nfunction PlaybookServicesTab({\n customerId,\n playbookTab,\n selectedMarketplaces,\n selectedTeamMembers,\n customStartDate,\n accountType,\n onCreatePlaybookClick,\n createPlaybookBtnLoader,\n singleSelectedMarketplaces,\n}) {\n const isDesktop = useMediaQuery({ maxWidth: 767 });\n const userInfo = useSelector((state) => state.userState.userInfo);\n const [playbookServicesData, setPlaybookServicesData] = useState({});\n const [playbookServicesLoader, setPlaybookServicesLoader] = useState(false);\n const [sendForApprovalBtnLoader, setSendForApprovalBtnLoader] =\n useState(false);\n const [selectedServicesForApproval, setSelectedServicesForApproval] =\n useState([]);\n\n const isUserHaveAccessOtherServices =\n userInfo?.role === 'BGS' ||\n userInfo?.role === 'TAM' ||\n userInfo?.role === 'BGS Admin' ||\n userInfo?.role === 'Ad Manager Admin';\n\n const playbookCreateAccess =\n userInfo?.role === 'BGS' ||\n userInfo?.role === 'BGS Admin' ||\n userInfo?.role === 'Ad Manager Admin';\n\n const getPlaybookServices = useCallback(() => {\n setPlaybookServicesLoader(true);\n\n getPlaybookServicesData(\n customerId,\n playbookTab,\n singleSelectedMarketplaces,\n selectedTeamMembers,\n customStartDate,\n accountType?.value,\n ).then((res) => {\n setPlaybookServicesLoader(false);\n setPlaybookServicesData(res?.data?.tasks);\n });\n }, [\n customerId,\n playbookTab,\n singleSelectedMarketplaces,\n selectedTeamMembers,\n customStartDate,\n accountType,\n ]);\n\n useEffect(() => {\n getPlaybookServices();\n }, [getPlaybookServices]);\n\n const handleChangeOfServiceCheckbox = (serviceData, isChecked) => {\n const list = [...selectedServicesForApproval];\n\n const marketplace = selectedMarketplaces\n ?.filter((mrktplc) => {\n if (mrktplc?.value) return mrktplc;\n return null;\n })\n ?.map((item) => {\n return item.value;\n });\n\n let startDate = '';\n const updatedDate = new Date(customStartDate);\n updatedDate.setMonth(updatedDate.getMonth() + 1);\n startDate = `${updatedDate.getFullYear()}-${updatedDate.getMonth() + 1}-01`;\n\n if (isChecked) {\n list.push({\n id: serviceData?.id,\n frequency: '3',\n marketplaces: marketplace,\n account_type: accountType?.value,\n start_date: startDate,\n });\n setSelectedServicesForApproval(list);\n } else {\n const index = list?.findIndex((item) => item?.id === serviceData?.id);\n if (index > -1) {\n list.splice(index, 1);\n }\n setSelectedServicesForApproval(list);\n }\n };\n\n // const handleCheckAllServices = (isChecked) => {\n // let marketplacesData = {};\n\n // const markeplaceList = [];\n // // eslint-disable-next-line no-unused-vars\n // const marketplace = selectedMarketplaces\n // ?.filter((mrktplc) => {\n // if (mrktplc?.value) return mrktplc;\n // return null;\n // })\n // ?.map((item) => {\n // markeplaceList.push(item.value);\n // return item;\n // });\n\n // if (markeplaceList?.length) {\n // marketplacesData = markeplaceList?.toString();\n // }\n\n // let startDate = '';\n // const updatedDate = new Date(customStartDate);\n // updatedDate.setMonth(updatedDate.getMonth() + 1);\n // startDate = `${updatedDate.getFullYear()}-${updatedDate.getMonth() + 1}-01`;\n\n // if (isChecked) {\n // setSelectedServicesForApproval(\n // playbookServicesData\n // ?.filter((item) => !item?.created)\n // ?.filter((item) => {\n // if (isUserHaveAccessOtherServices) {\n // return item;\n // }\n // if (userInfo?.role?.includes(item?.team)) {\n // return item;\n // }\n\n // return null;\n // })\n // ?.map((item) => {\n // return {\n // id: item?.id,\n // frequency: '3',\n // marketplaces: marketplacesData,\n // account_type: accountType?.value,\n // start_date: startDate,\n // };\n // }),\n // );\n // } else {\n // setSelectedServicesForApproval([]);\n // }\n // };\n\n const handleMonthDropdown = (event, serviceData) => {\n const list = [...selectedServicesForApproval];\n const index = list?.findIndex((item) => item?.id === serviceData?.id);\n let startDate = '';\n\n if (index > -1) {\n if (event?.value === 'current') {\n startDate = customStartDate;\n } else {\n const updatedDate = new Date(customStartDate);\n updatedDate.setMonth(updatedDate.getMonth() + 1);\n startDate = `${updatedDate.getFullYear()}-${\n updatedDate.getMonth() + 1\n }-01`;\n }\n list[index] = {\n ...list[index],\n frequency: event?.value,\n start_date: startDate,\n };\n }\n setSelectedServicesForApproval(list);\n };\n\n const setMonthDropdownValue = (serviceData) => {\n const value = selectedServicesForApproval.find(\n (service) => service.id === serviceData?.id,\n )?.frequency;\n if (value) {\n return playbookSummaryMonthOptions?.find((item) => item?.value === value);\n }\n if (serviceData?.created) {\n return playbookSummaryMonthOptions?.find(\n (item) => item?.value === serviceData?.task_frequency,\n );\n }\n\n return { label: `3 Month`, value: '3' };\n };\n\n const getListOfTeams = (teams) => {\n let list = [];\n if (teams !== null) {\n if (teams?.includes('/')) {\n list = teams?.split('/');\n } else {\n list = [teams];\n }\n }\n\n return list.map((item) => item.toLowerCase().trim());\n };\n\n const setDisabledClass = (serviceData) => {\n let classLabel = '';\n if (serviceData?.created) {\n classLabel = 'disabled';\n } else if (isUserHaveAccessOtherServices) {\n classLabel = '';\n } else if (getListOfTeams(serviceData?.team)?.length) {\n // userInfo?.role === serviceData?.team\n if (\n getListOfTeams(serviceData?.team)?.includes(\n userInfo?.role?.toLowerCase(),\n )\n ) {\n classLabel = '';\n } else {\n classLabel = 'disabled';\n }\n } else {\n classLabel = 'disabled';\n }\n return classLabel;\n };\n\n // render progress label className\n const renderProgressLabelClassName = (status) => {\n const className =\n status === 'Done'\n ? 'progress-label green-label'\n : status === 'In Progress'\n ? 'progress-label orange-label'\n : status === 'Review'\n ? 'progress-label blue-label'\n : 'progress-label gray-label';\n return className;\n };\n\n const getInitials = (item) => {\n const firstName =\n (item &&\n item.assignee_first_name &&\n item.assignee_first_name.charAt(0)) ||\n '';\n const lastName =\n (item && item.assignee_last_name && item.assignee_last_name.charAt(0)) ||\n '';\n return firstName + lastName;\n };\n\n // get initial letter from first name and last name of user name\n const renderGetInitialName = (item) => {\n return (\n \n {getInitials(item)}\n \n );\n };\n\n const renderAssignee = (item) => {\n // render task assignee\n const firstName = item?.assignee_first_name;\n const lastName = item?.assignee_last_name;\n const showAssigneeTooltip = firstName !== null && lastName !== null;\n\n return showAssigneeTooltip ? (\n \n {renderGetInitialName(item)}\n {renderAssigneeTooltip(item, item?.id, 'services-task-assignee')}\n \n ) : null;\n };\n\n // render deliverable collapse\n const renderPlaybookServiceCollapse = (serviceData) => {\n return (\n \n \n \n \n \n \n \n {serviceData?.name} \n \n \n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n placeholder=\"Select..\"\n value={setMonthDropdownValue(serviceData)}\n onChange={(event) => handleMonthDropdown(event, serviceData)}\n isOptionDisabled={(option) =>\n option?.value === 'current' &&\n new Date(customStartDate) > new Date()\n }\n />\n \n \n {serviceData?.team}\n {renderAssignee(serviceData)} \n \n {serviceData?.status ? (\n \n \n {serviceData?.status}\n
    \n \n ) : null}\n \n \n );\n };\n\n const onClicksendForApproval = () => {\n setSendForApprovalBtnLoader(true);\n const playbookData = {\n customer: customerId,\n services: selectedServicesForApproval,\n };\n\n sendForApprovalOfPlaybook(playbookData).then((res) => {\n if (res?.status === 200) {\n getPlaybookServices();\n setSelectedServicesForApproval([]);\n toast.info('Waiting for BGS approval.');\n } else if (res?.status === 500) {\n toast.error('Something went wrong.');\n } else {\n toast.error(res?.data?.message);\n }\n setSendForApprovalBtnLoader(false);\n });\n };\n\n return playbookServicesLoader ? (\n \n ) : playbookServicesData?.length ? (\n
    \n {isDesktop ? (\n \n
    \n
    \n
    Playbook Summary
    \n
    \n
    \n {playbookCreateAccess ? (\n <>\n
    \n {!selectedServicesForApproval?.every(\n (item) => item.frequency !== '',\n ) ? (\n \n Please make sure you have selected months for all selected\n services.\n \n ) : null}\n item.frequency !== '',\n ) || !selectedServicesForApproval?.length\n }\n onClick={() =>\n onCreatePlaybookClick({\n customer: customerId,\n 'create-playbook': 'true',\n services: selectedServicesForApproval,\n })\n }\n >\n {createPlaybookBtnLoader ? (\n \n ) : (\n 'Create'\n )}\n \n \n ) : (\n <>\n
    \n {!selectedServicesForApproval?.every(\n (item) => item.frequency !== '',\n ) ? (\n \n Please make sure you have selected months for all selected\n services.\n \n ) : null}\n item.frequency !== '',\n ) || !selectedServicesForApproval?.length\n }\n onClick={() => onClicksendForApproval()}\n >\n {sendForApprovalBtnLoader ? (\n \n ) : (\n 'Send for Approval'\n )}\n \n \n )}\n
    \n
    \n {playbookServicesData?.map((customerPlaybook) => {\n return (\n \n
    \n
    \n \n \n {\n handleChangeOfServiceCheckbox(\n customerPlaybook,\n event?.target?.checked,\n );\n }}\n checked={selectedServicesForApproval.find(\n (item) => item.id === customerPlaybook?.id,\n )}\n />\n \n \n \n \n {customerPlaybook?.name}\n \n
    \n
    \n
    \n
    MONTHS
    \n
    \n
    \n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n placeholder=\"Select..\"\n value={setMonthDropdownValue(customerPlaybook)}\n onChange={(event) =>\n handleMonthDropdown(event, customerPlaybook)\n }\n />\n \n
    \n
    \n
    \n
    TEAM
    \n
    \n
    {customerPlaybook?.team}
    \n
    \n
    \n
    ASSIGNEE
    \n
    \n
    \n {renderAssignee(customerPlaybook)}{' '}\n
    \n
    \n
    \n
    STATUS
    \n
    \n
    \n {customerPlaybook?.status ? (\n \n \n {customerPlaybook?.status}\n \n \n ) : null}\n
    \n
    \n \n );\n })}\n \n ) : (\n \n
    \n <>\n {playbookCreateAccess ? (\n <>\n
    \n {!selectedServicesForApproval?.every(\n (item) => item.frequency !== '',\n ) ? (\n \n Please make sure you have selected months for all selected\n services.\n \n ) : null}\n item.frequency !== '',\n ) || !selectedServicesForApproval?.length\n }\n onClick={() =>\n onCreatePlaybookClick({\n customer: customerId,\n 'create-playbook': 'true',\n services: selectedServicesForApproval,\n })\n }\n >\n {createPlaybookBtnLoader ? (\n \n ) : (\n 'Create'\n )}\n \n \n ) : (\n <>\n
    \n {!selectedServicesForApproval?.every(\n (item) => item.frequency !== '',\n ) ? (\n \n Please make sure you have selected months for all selected\n services.\n \n ) : null}\n item.frequency !== '',\n ) || !selectedServicesForApproval?.length\n }\n onClick={() => onClicksendForApproval()}\n >\n {sendForApprovalBtnLoader ? (\n \n ) : (\n 'Send for Approval'\n )}\n \n \n )}\n \n
    \n \n \n \n \n {' '}\n {/* \n \n {' '} */}\n \n \n SERVICES \n \n MONTHS\n TEAM\n ASSIGNEE\n STATUS\n \n \n \n {playbookServicesData?.map((customerPlaybook) => {\n return renderPlaybookServiceCollapse(customerPlaybook);\n })}\n \n \n \n )}\n
    \n ) : (\n \n

    \n No Services Found\n

    \n
    \n );\n}\n\nexport default PlaybookServicesTab;\n\nPlaybookServicesTab.defaultProps = {\n customerId: '',\n playbookTab: '',\n selectedMarketplaces: [],\n selectedTeamMembers: [],\n customStartDate: '',\n accountType: {},\n onCreatePlaybookClick: () => {},\n createPlaybookBtnLoader: false,\n singleSelectedMarketplaces: {},\n};\n\nPlaybookServicesTab.propTypes = {\n customerId: string,\n playbookTab: string,\n selectedMarketplaces: arrayOf(shape({})),\n selectedTeamMembers: arrayOf(shape({})),\n customStartDate: string,\n accountType: shape({}),\n onCreatePlaybookClick: func,\n createPlaybookBtnLoader: bool,\n singleSelectedMarketplaces: shape({}),\n};\n","import React from 'react';\n\nimport {\n arrayOf,\n shape,\n string,\n oneOfType,\n object,\n bool,\n func,\n} from 'prop-types';\n\nimport ServicesPlaybook from './ServicesPlaybook';\nimport OnboardingPlaybook from './OnboardingPlaybook';\nimport { PageLoader, WhiteCard } from '../../../../common';\nimport PlaybookServicesTab from './PlaybookServicesTab';\n\nfunction PlaybookTabDetails({\n dateType,\n isCustomer,\n customerId,\n playbookId,\n playbookTab,\n accountType,\n customStartDate,\n customEndDate,\n selectedService,\n playbookTaskData,\n playbookAPIError,\n isUserAssignedToBP,\n playbookDataLoader,\n selectedTeamMembers,\n selectedMarketplaces,\n onboardingPlaybookLoader,\n onboardingPlaybookData,\n getOnboardingPlaybook,\n getPlaybookTaskAndServices,\n onboardingPBTaskUpdateID,\n onCreatePlaybookClick,\n createPlaybookBtnLoader,\n updatedServicesOfPlaybookSummary,\n setUpdatedServicesOfPlaybookSummary,\n showSummaryPage,\n setShowSummaryPage,\n marketplacesList,\n servicePlaybookErrorMsg,\n singleSelectedMarketplaces,\n}) {\n // render onboarding playbook\n const renderOnboardingPlaybook = () => {\n return onboardingPlaybookLoader ? (\n \n ) : onboardingPlaybookData?.length ? (\n {\n getOnboardingPlaybook();\n }}\n />\n ) : (\n \n

    \n {playbookAPIError}\n

    \n
    \n );\n };\n\n // render playbook services services\n const renderServicesTab = () => {\n return (\n \n );\n };\n\n // render services playbook\n const servicesPlaybook = () => {\n return (\n <>\n {\n getPlaybookTaskAndServices(\n accountType?.value,\n selectedService?.value,\n customStartDate,\n customEndDate,\n selectedTeamMembers,\n selectedMarketplaces,\n );\n }}\n marketplacesList={marketplacesList}\n servicePlaybookErrorMsg={servicePlaybookErrorMsg}\n />\n \n );\n };\n\n // render Playbook Services Details\n const renderPlaybookTabDetails = () => {\n return playbookTab === 'playbook' ? (\n playbookDataLoader ? (\n \n ) : (\n servicesPlaybook()\n )\n ) : playbookTab === 'onboarding' || playbookTab === 'onboarding-gray' ? (\n renderOnboardingPlaybook()\n ) : playbookTab === 'standard-monthly' ||\n playbookTab === 'additional-one-time' ? (\n renderServicesTab()\n ) : null;\n };\n\n /* ********** main return statement of this component ********** */\n return <>{renderPlaybookTabDetails()};\n}\n\nexport default PlaybookTabDetails;\n\nPlaybookTabDetails.defaultProps = {\n playbookId: '',\n playbookAPIError: '',\n onboardingPBTaskUpdateID: '',\n isUserAssignedToBP: false,\n playbookDataLoader: false,\n onboardingPlaybookLoader: false,\n dateType: [],\n playbookTaskData: [],\n onboardingPlaybookData: [],\n getOnboardingPlaybook: () => {},\n getPlaybookTaskAndServices: () => {},\n onCreatePlaybookClick: () => {},\n createPlaybookBtnLoader: false,\n updatedServicesOfPlaybookSummary: {},\n setUpdatedServicesOfPlaybookSummary: () => {},\n showSummaryPage: false,\n setShowSummaryPage: () => {},\n marketplacesList: [],\n servicePlaybookErrorMsg: '',\n singleSelectedMarketplaces: {},\n};\n\nPlaybookTabDetails.propTypes = {\n playbookId: string,\n playbookAPIError: string,\n onboardingPBTaskUpdateID: string,\n customerId: string.isRequired,\n playbookTab: string.isRequired,\n customStartDate: string.isRequired,\n customEndDate: string.isRequired,\n playbookDataLoader: bool,\n onboardingPlaybookLoader: bool,\n isUserAssignedToBP: bool,\n isCustomer: bool.isRequired,\n getOnboardingPlaybook: func,\n getPlaybookTaskAndServices: func,\n accountType: shape({}).isRequired,\n selectedService: shape({}).isRequired,\n selectedTeamMembers: arrayOf(shape({})).isRequired,\n selectedMarketplaces: arrayOf(shape({})).isRequired,\n playbookTaskData: oneOfType([arrayOf(shape()), object]),\n onboardingPlaybookData: oneOfType([arrayOf(shape()), object]),\n onCreatePlaybookClick: func,\n createPlaybookBtnLoader: bool,\n updatedServicesOfPlaybookSummary: shape({}),\n setUpdatedServicesOfPlaybookSummary: func,\n showSummaryPage: bool,\n setShowSummaryPage: func,\n marketplacesList: arrayOf(shape({})),\n servicePlaybookErrorMsg: string,\n singleSelectedMarketplaces: shape({}),\n};\n","import React, { useState, useCallback, useEffect, useRef } from 'react';\n\nimport dayjs from 'dayjs';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { useMediaQuery } from 'react-responsive';\nimport Select, { components } from 'react-select';\nimport { toast, ToastContainer } from 'react-toastify';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, string, shape, bool, func } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport PlaybookTabDetails from './PlaybookTabDetails';\nimport { DropDown } from '../../../../common/DropDowns';\nimport { PlaybookNavbar, PlaybookStyle, RefreshButton } from './PlaybookStyle';\nimport {\n CustomDropDown,\n Tabs,\n DropdownIndicator,\n WhiteCard,\n ViewData,\n CustomMonthRangeModal,\n MultiSelectDropdown,\n GrayMessageBar,\n} from '../../../../common';\nimport {\n playbookAccountTypeOptions,\n PATH_CUSTOMER_DETAILS,\n playbookTabsConstants,\n HYBRID,\n SELLER,\n VENDOR,\n} from '../../../../constants';\nimport {\n createCustomerPlaybook,\n getOnboardingPlaybookData,\n getPlaybookTaskAndServicesData,\n getOnboardingPBTaskUpdateID,\n createCustomerPlaybookFromSummary,\n} from '../../../../api';\n\nconst PlaybookContainer = ({\n isCustomer,\n customerId,\n playbookEpicId,\n marketplacesList,\n playbookTeamsList,\n playbookTabActive,\n isBBEInternalUser,\n isUserAssignedToBP,\n customerAccountType,\n playbookServiceList,\n originalMarketplaceList,\n playbookAccess,\n onboardingPlaybookAccess,\n}) => {\n const history = useHistory();\n const mounted = useRef(false);\n\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in playbook\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n\n const { search } = history?.location;\n const isTablet = useMediaQuery({ minWidth: 768 });\n const { Option, SingleValue } = components;\n const [createPlaybookBtnLoader, setCreatePlaybookBtnLoader] = useState(false);\n const [\n updatedServicesOfPlaybookSummary,\n setUpdatedServicesOfPlaybookSummary,\n ] = useState({ create: [], delete: [] });\n const [showSummaryPage, setShowSummaryPage] = useState(false);\n\n const getAccountType =\n customerAccountType === HYBRID ? SELLER : customerAccountType;\n const [playbookTab, setPlaybookTab] = useState(\n playbookTabActive === 'onboarding' && search?.includes('nav=playbook')\n ? 'playbook'\n : playbookTabActive === 'onboarding' && search?.includes('nav=onboarding')\n ? 'onboarding'\n : search?.includes('nav=standard-monthly')\n ? 'standard-monthly'\n : search?.includes('nav=additional-one-time')\n ? 'additional-one-time'\n : search?.includes('nav=onboarding-gray')\n ? 'onboarding-gray'\n : playbookTabActive,\n );\n\n // marketplace filter use states\n const [selectedMarketplaces, setSelectedMarketplaces] =\n useState(marketplacesList);\n\n const [singleSelectedMarketplaces, setSingleSelectedMarteplace] = useState(\n originalMarketplaceList[0],\n );\n\n // team member filter use states\n const [selectedTeamMembers, setSelectedTeamMembers] =\n useState(playbookTeamsList);\n\n // service use states\n const [selectedService, setSelectedService] = useState(\n playbookServiceList?.[0],\n );\n const [accountType, setAccountType] = useState({\n label: getAccountType,\n value: getAccountType,\n });\n\n const [onboardingPlaybookLoader, setOnboardingPlaybookLoader] =\n useState(false);\n const [playbookDataLoader, setPlaybookDataLoader] = useState(false);\n const [servicePlaybookErrorMsg, setServicePlaybookErrorMsg] = useState('');\n const [onboardingPlaybookData, setOnboardingPlaybookData] = useState([]);\n const [onboardingPBTaskUpdateID, setOnboardingPBTaskUpdateID] = useState();\n const [playbookTaskData, setPlaybookTaskData] = useState([]);\n const [playbookId, setPlaybookId] = useState(null);\n const [playbookAPIError, setPlaybookAPIError] = useState(null);\n const [showCustomMonthModal, setShowCustomMonthModal] = useState(false);\n const newDate = new Date();\n newDate.setDate(1);\n\n const todaysDate = dayjs(newDate).format('YYYY-MM-DD');\n\n const [customStartDate, setCustomStartDate] = useState(todaysDate);\n const [customEndDate, setCustomEndDate] = useState(todaysDate);\n const currentDate = new Date();\n currentDate.setDate(1);\n const [customMonthRange, setCustomMonthRange] = useState([\n {\n startMonth: currentDate,\n endMonth: currentDate,\n key: 'playbookMonthSelection',\n },\n ]);\n\n const dateFilterOptions = [\n {\n label: 'Custom Month Range',\n value: 'custom-month',\n subLabel: 'Select Start and End Month',\n },\n ];\n\n const [dateType, setDateType] = useState(dateFilterOptions?.[0]);\n\n // calculate past and future months\n const getPastAndfutureDate = (date, type, value) => {\n if (type === 'date') {\n date.setDate(date.getDate() - value);\n }\n if (type === 'month') {\n date.setMonth(date.getMonth() - value);\n date.setDate('01');\n }\n\n return dayjs(date).format('YYYY-MM-DD');\n };\n\n const yesterday = getPastAndfutureDate(new Date(), 'date', 1);\n\n // calculte the last day of month\n const getLastDayOfMonth = (year, month, index) => {\n const lastDay = new Date(year, month, index);\n return lastDay;\n };\n\n const pastMonthDate = {\n firstDay: getPastAndfutureDate(new Date(), 'month', 1),\n lastDay: dayjs(\n getLastDayOfMonth(newDate?.getFullYear(), newDate?.getMonth(), 0),\n ).format('YYYY-MM-DD'),\n };\n const past3MonthDate = {\n firstDay: getPastAndfutureDate(new Date(), 'month', 3),\n lastDay: dayjs(\n getLastDayOfMonth(newDate?.getFullYear(), newDate?.getMonth(), 0),\n ).format('YYYY-MM-DD'),\n };\n\n // get id for changing the task status\n const getChangeTaskStatusId = useCallback(() => {\n const apiParams = {\n customer: customerId,\n onboarding: true,\n };\n setOnboardingPBTaskUpdateID();\n getOnboardingPBTaskUpdateID(apiParams).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n setOnboardingPBTaskUpdateID(response?.data?.results?.[0]?.id);\n } else {\n setOnboardingPBTaskUpdateID();\n }\n }\n });\n }, [customerId]);\n\n // bind subtask and hyperlink\n const bindTaskNameWithDocUrl = (task, label) => {\n if (task?.hyperlink_text && task?.link?.length) {\n const nameWithLink = `\n ${task?.hyperlink_text}\n `;\n const returnString = task?.[label]?.replace(\n task?.hyperlink_text,\n nameWithLink,\n );\n return returnString;\n }\n\n return task?.[label];\n };\n\n // bind onboarding playbook response data\n const bindPlaybookTaskData = useCallback((response) => {\n const responseData = response?.length ? response : [];\n const tempPlaybookdata = [];\n let deliverableAssignee = {};\n let taskAssignee = {};\n let subTaskAssignee = {};\n\n for (const item of responseData) {\n const tasks = [];\n if (item?.tasks?.length) {\n for (const task of item?.tasks) {\n const subTasks = [];\n\n // binding sub task data\n if (task?.sub_tasks?.length) {\n for (const subTask of task?.sub_tasks) {\n if (subTask?.first_name === null && subTask?.last_name === null) {\n subTaskAssignee = {};\n } else {\n subTaskAssignee = [\n {\n first_name: subTask?.first_name,\n last_name: subTask?.last_name,\n },\n ];\n }\n\n subTasks.push({\n id: subTask?.id,\n sub_task_id: subTask?.sub_task_id,\n sub_task_name: bindTaskNameWithDocUrl(subTask, 'sub_task_name'),\n team: subTask?.team?.replace(/[[\\]']+/g, ''),\n due_date:\n subTask?.due_date === null\n ? ''\n : dayjs(subTask?.due_date).format('DD MMM'),\n jira_id: subTask?.jira_id,\n jira_status: subTask?.jira_status,\n assignee: subTaskAssignee,\n });\n }\n }\n\n // binding task data\n if (task?.first_name === null && task?.last_name === null) {\n taskAssignee = {};\n } else {\n taskAssignee = [\n {\n first_name: task?.first_name,\n last_name: task?.last_name,\n },\n ];\n }\n\n tasks.push({\n id: task?.id,\n task_id: task?.task_id,\n task_name: task?.task_name,\n team: task?.team?.replace(/[[\\]']+/g, ''),\n due_date:\n task?.due_date === null\n ? ''\n : dayjs(task?.due_date).format('DD MMM'),\n jira_id: task?.jira_id,\n jira_status: task?.jira_status,\n assignee: taskAssignee,\n sub_tasks: subTasks,\n });\n }\n }\n\n // binding deliverable data\n if (item?.first_name === null && item?.last_name === null) {\n deliverableAssignee = {};\n } else {\n deliverableAssignee = [\n {\n first_name: item?.first_name,\n last_name: item?.last_name,\n },\n ];\n }\n\n tempPlaybookdata.push({\n id: item?.id,\n deliverable_id: item?.deliverable_task_id,\n deliverable_name: item?.task_name?.toLowerCase(),\n team: item?.team?.replace(/[[\\]']+/g, ''),\n due_date:\n item?.due_date === null ? '' : dayjs(item?.due_date).format('DD MMM'),\n jira_id: item?.jira_id,\n jira_status: item?.jira_status,\n assignee: deliverableAssignee,\n tasks,\n });\n }\n return tempPlaybookdata;\n }, []);\n\n // bind service playbook response data\n const bindServicePlaybookTaskData = useCallback(\n (response) => {\n const responseData = response?.length ? response : [];\n const tempPlaybookdata = [];\n let serviceAssignee = {};\n let deliverableAssignee = {};\n let taskAssignee = {};\n let subTaskAssignee = {};\n\n for (const item of responseData) {\n const deliverables = [];\n if (item?.deliverables?.length) {\n for (const deliverable of item?.deliverables) {\n const tasks = [];\n if (deliverable?.tasks?.length) {\n for (const task of deliverable?.tasks) {\n const subTasks = [];\n\n // binding sub task data\n if (task?.sub_tasks?.length) {\n for (const subTask of task?.sub_tasks) {\n if (\n subTask?.first_name === null &&\n subTask?.last_name === null\n ) {\n subTaskAssignee = {};\n } else {\n subTaskAssignee = [\n {\n first_name: subTask?.first_name,\n last_name: subTask?.last_name,\n },\n ];\n }\n\n subTasks.push({\n id: subTask?.id,\n sub_task_id: subTask?.sub_task_id,\n sub_task_name: bindTaskNameWithDocUrl(\n subTask,\n 'sub_task_name',\n ),\n team: subTask?.team?.replace(/[[\\]']+/g, ''),\n due_date:\n subTask?.due_date === null\n ? ''\n : dayjs(subTask?.due_date).format('DD MMM'),\n jira_id: subTask?.jira_id,\n marketplace: marketplacesList?.find(\n (marketplace) =>\n marketplace?.value === subTask?.marketplace,\n )?.label,\n jira_status: subTask?.jira_status,\n assignee: subTaskAssignee,\n });\n }\n }\n\n // binding task data\n if (task?.first_name === null && task?.last_name === null) {\n taskAssignee = {};\n } else {\n taskAssignee = [\n {\n first_name: task?.first_name,\n last_name: task?.last_name,\n },\n ];\n }\n\n tasks.push({\n id: task?.id,\n task_id: task?.task_id,\n task_name: bindTaskNameWithDocUrl(task, 'task_name'),\n team: task?.team?.replace(/[[\\]']+/g, ''),\n due_date:\n task?.due_date === null\n ? ''\n : dayjs(task?.due_date).format('DD MMM'),\n jira_id: task?.jira_id,\n jira_status: task?.jira_status,\n assignee: taskAssignee,\n marketplace: marketplacesList?.find(\n (marketplace) => marketplace?.value === task?.marketplace,\n )?.label,\n sub_tasks: subTasks,\n });\n }\n }\n\n // binding deliverable data\n if (\n deliverable?.first_name === null &&\n deliverable?.last_name === null\n ) {\n deliverableAssignee = {};\n } else {\n deliverableAssignee = [\n {\n first_name: deliverable?.first_name,\n last_name: deliverable?.last_name,\n },\n ];\n }\n deliverables.push({\n id: deliverable?.id,\n deliverable_id: deliverable?.deliverable_task_id,\n deliverable_name: bindTaskNameWithDocUrl(\n deliverable,\n 'task_name',\n ),\n team: deliverable?.team?.replace(/[[\\]']+/g, ''),\n marketplace: marketplacesList?.find(\n (marketplace) =>\n marketplace?.value === deliverable?.marketplace,\n )?.label,\n due_date:\n deliverable?.due_date === null\n ? ''\n : dayjs(deliverable?.due_date).format('DD MMM'),\n jira_id: deliverable?.jira_id,\n jira_status: deliverable?.jira_status,\n assignee: deliverableAssignee,\n tasks,\n });\n }\n }\n\n // binding service data\n if (item?.first_name && item?.last_name) {\n serviceAssignee = [\n {\n first_name: item?.first_name,\n last_name: item?.last_name,\n },\n ];\n } else {\n serviceAssignee = {};\n }\n\n tempPlaybookdata.push({\n id: item?.id,\n start_date: item?.start_date,\n service_id: item?.service_task_id,\n service_name: item?.task_name?.toLowerCase(),\n team: item?.team?.replace(/[[\\]']+/g, ''),\n due_date: item?.due_date\n ? item?.due_date === null\n ? ''\n : dayjs(item?.due_date).format('DD MMM')\n : '',\n jira_id: item?.jira_id,\n jira_status: item?.jira_status,\n marketplace: marketplacesList?.find(\n (marketplace) => marketplace?.value === item?.marketplace,\n )?.label,\n assignee: serviceAssignee,\n deliverables,\n });\n }\n return tempPlaybookdata;\n },\n [marketplacesList],\n );\n\n // get onboarding playbook data\n const getOnboardingPlaybook = useCallback(() => {\n setOnboardingPlaybookLoader(true);\n setOnboardingPlaybookData([]);\n setPlaybookAPIError(null);\n\n getOnboardingPlaybookData(customerId).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n setOnboardingPlaybookData(bindPlaybookTaskData(response?.data));\n setPlaybookAPIError(null);\n } else {\n setOnboardingPlaybookLoader(false);\n setOnboardingPlaybookData([]);\n setPlaybookAPIError(response?.data?.error);\n }\n setOnboardingPlaybookLoader(false);\n }\n });\n }, [bindPlaybookTaskData, customerId]);\n\n // get service playbook data\n const getPlaybookTaskAndServices = useCallback(\n (accountName, service, startDate, endDate, teams, marketplaces) => {\n setPlaybookDataLoader(true);\n setPlaybookTaskData([]);\n setPlaybookId(null);\n const tempMarketplaces = [];\n const tempTeamMembers = [];\n let marketplacesString = '';\n let teamsString = '';\n\n // formatting selected marketplace data\n if (marketplaces?.length) {\n for (const item of marketplaces) {\n if (item?.value !== 'all') {\n tempMarketplaces.push(item?.value);\n }\n }\n marketplacesString = tempMarketplaces?.toString();\n }\n\n // formatting selected teams data\n const AllTeamsSelected = teams?.find((option) => option?.value === 'all');\n if (AllTeamsSelected) {\n teamsString = 'all';\n } else {\n for (const item of teams) {\n tempTeamMembers.push(item?.value);\n }\n teamsString = tempTeamMembers?.toString();\n }\n const apiParams = {\n customer: customerId,\n // current_year: currentYear,\n account_type: accountName,\n service_name: service,\n start_date: startDate,\n end_date: endDate,\n teams: teamsString,\n marketplace: marketplacesString,\n };\n\n // calling the API\n getPlaybookTaskAndServicesData(apiParams).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n setServicePlaybookErrorMsg(null);\n setPlaybookId(response?.data?.customer_playbook_id);\n setPlaybookTaskData(\n bindServicePlaybookTaskData(\n response?.data?.customer_playbook_data,\n ),\n );\n setPlaybookDataLoader(false);\n } else {\n setPlaybookDataLoader(false);\n setPlaybookTaskData([]);\n setPlaybookId(null);\n setServicePlaybookErrorMsg(response?.data?.error);\n }\n }\n });\n },\n [bindServicePlaybookTaskData, customerId],\n );\n\n const onCreatePlaybookClick = (data = updatedServicesOfPlaybookSummary) => {\n setCreatePlaybookBtnLoader(true);\n\n createCustomerPlaybookFromSummary(customerId, data).then((res) => {\n setCreatePlaybookBtnLoader(false);\n\n if (res?.status === 200) {\n toast.success('Playbook Created successfully.');\n setShowSummaryPage(false);\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerId,\n )}?tab=playbook&nav=playbook`,\n 'main-playbook',\n );\n\n getPlaybookTaskAndServices(\n accountType?.value,\n playbookServiceList?.[0]?.value,\n todaysDate,\n todaysDate,\n playbookTeamsList,\n marketplacesList,\n );\n } else {\n toast.error('Something went wrong.');\n }\n });\n };\n\n useEffect(() => {\n if (\n playbookTabActive === 'onboarding' &&\n search?.includes('nav=playbook')\n ) {\n setPlaybookTab('playbook');\n } else if (\n playbookTabActive === 'onboarding' &&\n search?.includes('nav=onboarding')\n ) {\n setPlaybookTab('onboarding');\n } else if (search?.includes('nav=standard-monthly')) {\n setPlaybookTab('standard-monthly');\n } else if (search?.includes('nav=additional-one-time')) {\n setPlaybookTab('additional-one-time');\n } else if (search?.includes('nav=onboarding-gray')) {\n setPlaybookTab('onboarding-gray');\n } else {\n setPlaybookTab(playbookTabActive);\n }\n }, [customerId, playbookTabActive, search]);\n\n // useEffect function call\n useEffect(() => {\n mounted.current = true;\n\n if (playbookTabActive === 'playbook') {\n const tempTeamData = [\n {\n label: 'All Team Members',\n value: 'all',\n },\n ];\n const tempServicesData = [\n {\n label: 'All Services',\n value: 'all',\n },\n ];\n getPlaybookTaskAndServices(\n accountType?.value,\n tempServicesData?.[0]?.value,\n todaysDate,\n todaysDate,\n tempTeamData,\n marketplacesList,\n );\n }\n if (\n playbookTabActive === 'onboarding' ||\n playbookTabActive === 'onboarding-gray'\n ) {\n getOnboardingPlaybook();\n }\n if (playbookTabActive === 'onboarding') {\n getChangeTaskStatusId();\n }\n\n return () => {\n mounted.current = false;\n };\n }, [\n accountType,\n getChangeTaskStatusId,\n getOnboardingPlaybook,\n getPlaybookTaskAndServices,\n marketplacesList,\n playbookServiceList,\n playbookTabActive,\n playbookTeamsList,\n todaysDate,\n ]);\n\n const setSelectedtMarketplacesAccordingToActiveTab = useCallback(() => {\n if (playbookTab === 'playbook') {\n setSelectedMarketplaces([...marketplacesList]);\n }\n if (\n playbookTab === 'standard-monthly' ||\n playbookTab === 'additional-one-time'\n ) {\n setSingleSelectedMarteplace(originalMarketplaceList?.[0]);\n setSelectedMarketplaces([originalMarketplaceList?.[0]]);\n }\n }, [playbookTab, marketplacesList, originalMarketplaceList]);\n\n // useEffect function call\n useEffect(() => {\n mounted.current = true;\n setSelectedService(playbookServiceList?.[0]);\n setSelectedTeamMembers(playbookTeamsList);\n // setSelectedMarketplaces(marketplacesList);\n setSelectedtMarketplacesAccordingToActiveTab();\n return () => {\n mounted.current = false;\n };\n }, [\n playbookServiceList,\n playbookTeamsList,\n marketplacesList,\n setSelectedtMarketplacesAccordingToActiveTab,\n ]);\n\n // create customer playbook\n const createPlaybook = useCallback(() => {\n setPlaybookDataLoader(true);\n createCustomerPlaybook(customerId, 'BGS').then((response) => {\n if (response?.status === 200 || response?.status === 201) {\n toast.success('Playbook created succesfully!');\n window.location.reload();\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerId,\n )}?tab=playbook&nav=playbook`,\n 'main-playbook',\n );\n } else if (response?.status === 400) {\n toast.error('Only BGS assigned to the BP can create playbook.');\n setPlaybookDataLoader(false);\n } else {\n toast.error('Oops! some error occurred.');\n setPlaybookDataLoader(false);\n }\n });\n }, [customerId, history]);\n\n // handle playbook tab change events\n const handlePlaybookTabChangeEvents = (key) => {\n setPlaybookTab(key);\n setShowSummaryPage(false);\n setSelectedtMarketplacesAccordingToActiveTab();\n setSelectedTeamMembers(playbookTeamsList);\n\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerId,\n )}?tab=playbook&nav=${key}&access=${isBBEInternalUser}`,\n );\n\n if (key === 'onboarding' || key === 'onboarding-gray') {\n getOnboardingPlaybook();\n }\n if (key === 'playbook') {\n getPlaybookTaskAndServices(\n accountType?.value,\n selectedService?.value,\n todaysDate,\n todaysDate,\n playbookTeamsList,\n marketplacesList,\n );\n }\n setCustomMonthRange([\n {\n startMonth: currentDate,\n endMonth: currentDate,\n key: 'playbookMonthSelection',\n },\n ]);\n setCustomStartDate(todaysDate);\n setCustomEndDate(todaysDate);\n };\n\n // handle account type change events\n const handleAccountTypeChangeEvents = (event) => {\n setAccountType(event);\n setSelectedtMarketplacesAccordingToActiveTab();\n // setSelectedMarketplaces(marketplacesList);\n setSelectedTeamMembers(playbookTeamsList);\n setSelectedService(playbookServiceList?.[0]);\n setDateType(dateFilterOptions?.[0]);\n setCustomStartDate(todaysDate);\n setCustomEndDate(todaysDate);\n setCustomMonthRange([\n {\n startMonth: currentDate,\n endMonth: currentDate,\n key: 'playbookMonthSelection',\n },\n ]);\n getPlaybookTaskAndServices(\n event?.value,\n playbookServiceList?.[0]?.value,\n todaysDate,\n todaysDate,\n playbookTeamsList,\n marketplacesList,\n );\n };\n\n // handle Marketplace Change Events\n const handleDropdownChangeEvents = (event, type, action) => {\n let selectedValues = [];\n if (type === 'marketplaces') {\n selectedValues =\n action.action === 'select-option' && action?.option?.value === 'all'\n ? [{ value: 'all', label: 'All' }, ...marketplacesList]\n : action.action === 'deselect-option' &&\n action?.option?.value === 'all'\n ? [event[0]]\n : event?.filter((op) => op.value !== 'all');\n setSelectedMarketplaces(selectedValues);\n getPlaybookTaskAndServices(\n accountType?.value,\n selectedService?.value,\n customStartDate,\n customEndDate,\n selectedTeamMembers,\n selectedValues,\n );\n } else if (type === 'teamMembers') {\n selectedValues =\n action.action === 'select-option' && action?.option?.value === 'all'\n ? [{ value: 'all', label: 'All' }, ...playbookTeamsList]\n : action.action === 'deselect-option' &&\n action?.option?.value === 'all'\n ? [event[0]]\n : event?.filter((op) => op.value !== 'all');\n setSelectedTeamMembers(selectedValues);\n getPlaybookTaskAndServices(\n accountType?.value,\n selectedService?.value,\n customStartDate,\n customEndDate,\n selectedValues,\n selectedMarketplaces,\n );\n }\n };\n\n // handle service change events\n const handleServiceChangeEvents = (event) => {\n setSelectedService(event);\n\n getPlaybookTaskAndServices(\n accountType?.value,\n event?.value,\n customStartDate,\n customEndDate,\n selectedTeamMembers,\n selectedMarketplaces,\n );\n };\n\n // calling playbook task and services api when date changes\n const applyDateChangeEvents = (startDate, endDate) => {\n setCustomStartDate(startDate);\n setCustomEndDate(endDate || todaysDate);\n\n getPlaybookTaskAndServices(\n accountType?.value,\n selectedService?.value,\n startDate,\n endDate || todaysDate,\n selectedTeamMembers,\n selectedMarketplaces,\n );\n };\n\n // handle date change events\n const handleDateChangeEvents = (event) => {\n const value = event?.value;\n setDateType(event);\n\n if (value === 'today') {\n applyDateChangeEvents(todaysDate);\n }\n if (value === 'yesterday') {\n applyDateChangeEvents(yesterday, yesterday);\n }\n if (value === 'past-month') {\n applyDateChangeEvents(pastMonthDate?.firstDay, pastMonthDate?.lastDay);\n }\n if (value === 'past-3-months') {\n applyDateChangeEvents(past3MonthDate?.firstDay, past3MonthDate?.lastDay);\n }\n if (value === 'custom-month') {\n setShowCustomMonthModal(true);\n } else {\n setCustomMonthRange([\n {\n startMonth: currentDate,\n endMonth: currentDate,\n key: 'playbookMonthSelection',\n },\n ]);\n setShowCustomMonthModal(false);\n }\n };\n\n // handle custom date range changes events\n const handleCustomDateRangeEvents = (startDate, endDate, dateFlag) => {\n const newendDate = endDate || startDate;\n const lastDayOfEndMonth = getLastDayOfMonth(\n newendDate?.getFullYear(),\n newendDate?.getMonth() + 1,\n 0,\n );\n\n let tempStartDate = startDate;\n let tempEndDate = lastDayOfEndMonth;\n\n if (dateFlag === 'custom-month') {\n tempStartDate = dayjs(startDate).format('YYYY-MM-DD');\n tempEndDate = dayjs(lastDayOfEndMonth).format('YYYY-MM-DD');\n applyDateChangeEvents(tempStartDate, tempEndDate);\n }\n };\n\n // Apply selected custom date range\n const applyCustomMonthRange = () => {\n handleCustomDateRangeEvents(\n customMonthRange?.[0]?.startMonth,\n customMonthRange?.[0]?.endMonth,\n 'custom-month',\n );\n setShowCustomMonthModal(false);\n };\n\n // handle custom month range change events\n const handleCustomMonthRangeEvents = (date) => {\n const [startMonth, endMonth] = date;\n\n if (playbookTab === 'playbook') {\n setCustomMonthRange([\n {\n startMonth,\n endMonth,\n key: 'playbookMonthSelection',\n },\n ]);\n } else {\n const tempStartMonth = endMonth === null ? startMonth : endMonth;\n setCustomMonthRange([\n {\n startMonth: tempStartMonth,\n endMonth,\n key: 'playbookMonthSelection',\n },\n ]);\n }\n };\n\n // handle refresh button events\n const handleRefreshButtonEvents = () => {\n window.location.reload();\n\n if (playbookTab === 'onboarding') {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerId,\n )}?tab=onboarding&nav=onboarding`,\n 'onboarding',\n );\n } else {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerId,\n )}?tab=playbook&nav=playbook`,\n 'main-playbook',\n );\n }\n };\n\n // custome style for dropdown filters\n const filterCustomStyles = {\n control: (css) => ({\n ...css,\n 'min-height': '32px !important',\n background: '#fafafb !important',\n }),\n\n valueContainer: (css) => ({\n ...css,\n color: '#2E384D',\n overflow: 'hidden',\n 'white-space': 'nowrap',\n 'flex-wrap': 'nowrap',\n 'text-overflow': 'ellipsis',\n 'max-width': '140px',\n 'font-size': '14px',\n }),\n };\n\n // custom style for account type dropdown filter\n const accountTypleFilterCustomStyles = {\n control: (css) => ({\n ...css,\n background: '#ffeeea !important',\n border: 'none',\n 'min-height': '32px',\n }),\n\n singleValue: (css) => ({\n ...css,\n color: '#ff5933',\n }),\n };\n\n // render the selected custom date or month as a sub label in the time filter\n const renderCustomDateSubLabel = () => {\n return `From - ${dayjs(customStartDate).format('YYYY MMM')} To - ${dayjs(\n customEndDate,\n ).format('YYYY MMM')}`;\n };\n\n // component for custom dropdwon filter single value selected\n const customDropdownFilterSingleValue = (props) => {\n return (\n \n \n {props?.data?.label}\n \n \n );\n };\n\n // component for custom dropdown single filter menu option\n const customDropdownSingleFilterOption = (props) => {\n return (\n \n );\n };\n\n // getting the custom dropdown components\n const customDropdownFilterComponents = () => {\n return {\n Option: customDropdownSingleFilterOption,\n SingleValue: customDropdownFilterSingleValue,\n DropdownIndicator,\n };\n };\n\n // render custom dropdown filter using react-select\n const renderCustomDropdownFilter = (\n filterId,\n filterOptions,\n value,\n handleChangeEventsFunction,\n ) => {\n const filterStyle =\n filterId === 'playbook-account-type-filter'\n ? accountTypleFilterCustomStyles\n : filterCustomStyles;\n\n return (\n \n handleChangeEventsFunction(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n );\n };\n\n // render playbook account type filter\n const renderAccountTypeFilter = () => {\n return renderCustomDropdownFilter(\n 'playbook-account-type-filter',\n playbookAccountTypeOptions,\n accountType,\n handleAccountTypeChangeEvents,\n );\n };\n\n const handleSingleSelectMarketplaceChangeEvents = (event) => {\n setSingleSelectedMarteplace(event);\n setSelectedMarketplaces([event]);\n };\n\n // render marketplace filter\n const renderMarketplacesFilter = () => {\n return playbookTab === 'playbook' ? (\n <>\n marketplace.value !== 'all',\n )}\n label=\"Marketplaces\"\n value=\"marketplaces\"\n multiSelectedValues={{ marketplaces: selectedMarketplaces }}\n setMultiSelectedValues={setSelectedMarketplaces}\n handleMultiSelectChange={handleDropdownChangeEvents}\n />\n \n ) : (\n \n handleSingleSelectMarketplaceChangeEvents(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n );\n };\n\n // render playbook services filter\n const renderServiceFilter = () => {\n return (\n \n handleServiceChangeEvents(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n );\n };\n\n // render team member filter\n const renderTeamMembersFilter = () => {\n return (\n playbookTeams.value !== 'all',\n )}\n label=\"Team Members\"\n value=\"teamMembers\"\n multiSelectedValues={{ teamMembers: selectedTeamMembers }}\n setMultiSelectedValues={setSelectedTeamMembers}\n handleMultiSelectChange={handleDropdownChangeEvents}\n />\n );\n };\n\n const singleFilterOption = (props) => (\n \n \n {props.data.label}\n \n\n
    \n {renderCustomDateSubLabel(props)}\n
    \n
    \n );\n\n const filterOption = (props) => (\n \n );\n\n // render get select component for dropdown\n const getTimeFilterSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n // render month month filter\n const renderCustomDateFilter = () => {\n return DropDown(\n 'BT-playbookFilter',\n '',\n dateFilterOptions,\n dateFilterOptions[0].label,\n getTimeFilterSelectComponents,\n dateFilterOptions[0],\n handleDateChangeEvents,\n false,\n // isApiCall,\n null,\n dateType,\n false,\n );\n };\n\n const setMaxDate = () => {\n const currentD = new Date();\n return currentD.setMonth(currentD.getMonth() + 3);\n };\n\n // render custom month range modal\n const renderCustomMonthRangeModal = () => {\n return (\n {\n setShowCustomMonthModal(false);\n }}\n onDateChange={handleCustomMonthRangeEvents}\n onApply={() => applyCustomMonthRange()}\n currentMonth={currentDate}\n />\n );\n };\n\n // render refresh button\n const renderRefreshButton = () => {\n return (\n \n {\n handleRefreshButtonEvents();\n }}\n >\n \n
    \n \n );\n };\n\n // render playbook tabs\n const renderPlaybookTabs = () => {\n let playbookTabsToShow = [];\n\n if (playbookAccess) {\n playbookTabsToShow = playbookTabsConstants.filter(\n (item) => item.type === 'main-playbook',\n );\n }\n if (onboardingPlaybookAccess) {\n playbookTabsToShow = playbookTabsConstants.filter(\n (item) => item.type === 'onboarding-playbook',\n );\n }\n\n if (playbookAccess && onboardingPlaybookAccess) {\n playbookTabsToShow = playbookTabsConstants;\n }\n\n return (\n \n \n {playbookTabsToShow?.map((item) => {\n return (\n {\n handlePlaybookTabChangeEvents(item.key);\n }}\n role=\"presentation\"\n >\n {item?.label}\n \n );\n })}\n \n \n );\n };\n\n // render playbook filters\n const renderPlaybookDesktopFilters = () => {\n return (\n \n \n
    \n
    \n
    View data for:
    \n
    \n\n
    \n \n
      \n {playbookTab !== 'onboarding' ? (\n <>\n
    • \n {renderMarketplacesFilter()}\n
    • \n {/* {playbookTab === 'playbook' ? (\n
    • \n {renderServiceFilter()}\n
    • \n ) : null}{' '} */}\n
    • \n {renderTeamMembersFilter()}\n
    • \n \n ) : null}\n
    • \n {renderCustomDateFilter()}\n
    • \n
    \n \n
    \n
    \n
    \n
    \n );\n };\n\n // render Playbook Filters MobileView\n const renderPlaybookMobileFilters = () => {\n return (\n \n \n
    \n
    \n
    View data for:
    \n
    \n {playbookTab === 'playbook' ? (\n <>\n
    \n {renderAccountTypeFilter()}\n
    \n
    \n {renderRefreshButton()}\n
    \n
    \n {renderMarketplacesFilter()}\n
    \n
    \n {renderServiceFilter()}\n
    \n
    \n {renderTeamMembersFilter()}\n
    \n \n ) : null}\n\n
    \n {renderCustomDateFilter()}\n
    \n
    \n
    \n
    \n );\n };\n\n // render playbook tab header filter\n const renderPlaybookTabHeaderFilter = () => {\n const showRefreshButton = !isCustomer;\n return (\n \n
      \n {customerAccountType === 'Hybrid' &&\n (playbookTab === 'playbook' || playbookTab === 'standard-monthly') ? (\n
    • {renderAccountTypeFilter()}
    • \n ) : null}\n {showRefreshButton ? (\n
    • {renderRefreshButton()}
    • \n ) : null}\n
    \n
    \n );\n };\n\n // render playbook tabs header\n const renderPlaybookTabsHeader = () => {\n return (\n
    \n
    {renderPlaybookTabs()}
    \n
    \n {renderPlaybookTabHeaderFilter()}\n
    \n
    \n
    \n
    \n
    \n );\n };\n\n // https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in playbook\n // display playbook dynamic messages\n const displayPlaybookDynamicMessage = () => {\n let playbookDynamicMessage = null;\n if (playbookTab === 'playbook') {\n playbookDynamicMessage =\n accountType?.value === SELLER\n ? dynamicMessages?.main_playbook_seller?.placeholder\n : accountType?.value === VENDOR\n ? dynamicMessages?.main_playbook_vendor?.placeholder\n : null;\n }\n if (playbookTab === 'onboarding' || playbookTab === 'onboarding-gray') {\n playbookDynamicMessage =\n dynamicMessages?.onboarding_playbook?.placeholder;\n }\n return playbookDynamicMessage ? (\n \n ) : null;\n };\n\n // render playbook filter white card\n const renderPlaybookFilterWhiteCard = () => {\n return playbookTab !== 'onboarding' ? (\n
    \n {isTablet ? (\n
    {renderPlaybookDesktopFilters()}
    \n ) : (\n
    {renderPlaybookMobileFilters()}
    \n )}\n
    \n ) : null;\n };\n\n // render playbook Tab details component\n const renderPlaybookTabDetails = () => {\n return (\n
    \n
    \n \n
    \n
    \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n \n
    \n \n {renderPlaybookTabsHeader()}\n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in playbook */}\n {displayPlaybookDynamicMessage()}\n {renderPlaybookFilterWhiteCard()}\n {renderPlaybookTabDetails()}\n \n {renderCustomMonthRangeModal()}\n
    \n \n );\n};\n\nexport default PlaybookContainer;\n\nPlaybookContainer.defaultProps = {\n value: '',\n playbookTabActive: 'playbook',\n isBBEInternalUser: '',\n playbookEpicId: null,\n isUserAssignedToBP: false,\n isSelected: true,\n data: {},\n selectProps: {},\n selectedPlaybookQuarter: {},\n playbookTeamsList: [],\n playbookServiceList: [],\n marketplacesList: [],\n quarterMonths: [],\n playbookQuarterOptions: [],\n marketplaceChoices: [],\n setMarketplaceChoices: () => {},\n originalMarketplaceList: [],\n};\n\nPlaybookContainer.propTypes = {\n value: string,\n playbookEpicId: string,\n isBBEInternalUser: string,\n playbookTabActive: string,\n customerId: string.isRequired,\n currentYear: string.isRequired,\n currentMonth: string.isRequired,\n startMonthYear: string.isRequired,\n customerAccountType: string.isRequired,\n isSelected: bool,\n isUserAssignedToBP: bool,\n playbookAccess: bool.isRequired,\n onboardingPlaybookAccess: bool.isRequired,\n isCustomer: bool.isRequired,\n data: shape({}),\n selectProps: shape({}),\n selectedPlaybookQuarter: shape(),\n playbookTeamsList: arrayOf(shape({})),\n playbookServiceList: arrayOf(shape()),\n marketplacesList: arrayOf(shape()),\n quarterMonths: arrayOf(shape()),\n playbookQuarterOptions: arrayOf(shape()),\n marketplaceChoices: arrayOf(shape({})),\n setMarketplaceChoices: func,\n originalMarketplaceList: arrayOf(shape({})),\n};\n","import React from 'react';\n\nimport { shape } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport { Card } from '../../../../../common';\n\nconst MetricsInvoices = ({ data }) => {\n const returnFromatNumber = (value, type, decimalDigits = 0) => {\n if (value) {\n return `${type === 'currency' ? '$' : ''}${value\n .toFixed(decimalDigits)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')} ${\n type === 'percentage' ? '%' : ''\n }`;\n }\n return `${type === 'currency' ? '$' : ''}0${\n type === 'percentage' ? '%' : ''\n }`;\n };\n const renderCard = (heading, title, subTitle, titleColor) => {\n return (\n
    \n \n
    \n );\n };\n return (\n
    \n {data && (\n <>\n {renderCard(\n 'Total Outstanding',\n returnFromatNumber(data.total_outstanding, 'currency'),\n `${data.total_outstanding_cnt} open or overdue invoices`,\n )}\n {renderCard(\n 'Amount Overdue',\n returnFromatNumber(data.amount_overdue, 'currency'),\n `${data.amount_overdue_cnt} overdue invoice`,\n !data.amount_overdue ? Theme.gray35 : Theme.red,\n )}\n {renderCard(\n 'Average days past due',\n `${\n data.avg_days_past_due !== 0\n ? data.avg_days_past_due\n .toFixed(1)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n : 0\n } days`,\n 'After due date',\n )}\n {renderCard(\n 'Paid by due date',\n returnFromatNumber(data.paid_by_due_date, 'percentage'),\n )}\n \n )}\n
    \n );\n};\n\nexport default MetricsInvoices;\n\nMetricsInvoices.defaultProps = {\n data: {\n total_outstanding: 0,\n amount_overdue: 0,\n avg_days_past_due: 0,\n paid_by_due_date: 0,\n },\n};\n\nMetricsInvoices.propTypes = {\n data: shape({}),\n};\n","import React, { useState, useEffect } from 'react';\n\nimport Modal from 'react-modal';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport { getCurrencyOptions } from '../../../../api';\nimport {\n invoiceBreakdownOptions,\n paymentsMethod,\n StatusColorSet,\n} from '../../../../constants';\nimport {\n DesktopTable,\n HeaderDownloadFuntionality,\n ModalBox,\n PageLoader,\n} from '../../../../common';\n\nexport default function InvoiceBreakdownModal({\n showInvoiceModal,\n setshowInvoiceModal,\n invoiceDetails,\n setInvoiceDetails,\n invoicesData,\n}) {\n const customStyles = {\n content: {\n top: '50%',\n right: '0px',\n bottom: 'auto',\n maxWidth: '720px ',\n width: '100% ',\n maxHeight: '100%',\n overlay: ' {zIndex: 1000}',\n inset: '0% 0% 0% auto',\n marginRight: '0',\n borderRadius: '0px !important',\n },\n };\n\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [selectedCurrency, setSelectedCurrency] = useState();\n const [lineItems, setLineItems] = useState([]);\n\n // calculate total sum of array elements values\n const calculateSumOfArrayValues = (arrayData, key) => {\n let total = null;\n if (arrayData?.length > 0) {\n total = arrayData\n .map((item) => item?.[key])\n .reduce((prev, curr) => Number(prev) + Number(curr), 0);\n }\n return total;\n };\n const invoiceTaxes = invoiceDetails?.taxes;\n const totalTaxAmount = calculateSumOfArrayValues(invoiceTaxes, 'amount');\n const subTotal = calculateSumOfArrayValues(invoiceDetails?.items, 'amount');\n\n const totalDiscount =\n invoiceDetails?.discount?.length > 0\n ? calculateSumOfArrayValues(invoiceDetails?.discount, 'amount')\n : invoiceDetails?.discounts\n ? Number(invoiceDetails?.discounts)\n : null;\n\n const monthlyBudget =\n (subTotal || 0) + (totalTaxAmount || 0) - Number(totalDiscount);\n\n // use effect for bind line items data\n useEffect(() => {\n const invoicelineItems =\n invoiceDetails?.items?.length > 0\n ? invoiceDetails?.items\n : invoiceDetails?.line_items;\n\n const tempLineItems = [];\n if (invoicelineItems?.length > 0) {\n for (const item of invoicelineItems) {\n tempLineItems.push({\n ...item,\n type: item?.service_type || item?.type,\n name: item?.name,\n quantity: item?.quantity,\n description: item?.description,\n amount: item?.amount,\n });\n }\n }\n setLineItems(tempLineItems);\n }, [invoiceDetails]);\n\n useEffect(() => {\n setIsLoading({ loader: true, type: 'page' });\n getCurrencyOptions().then((currency) => {\n setSelectedCurrency(\n currency?.data\n ?.find((op) => op.value === invoiceDetails?.local_currency)\n ?.label?.split(' ')?.[0],\n );\n });\n setIsLoading({ loader: false, type: 'page' });\n }, [invoiceDetails]);\n\n const displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n const getIndexOfInvoiceData = () => {\n return invoicesData?.findIndex((op) => invoiceDetails?.id === op.id);\n };\n\n // tooltip data for showing various tax amount\n const generateTooltipHTML = () => {\n const toolTipDataArray = invoiceTaxes;\n return `
    \n ${toolTipDataArray\n ?.map((item) => {\n return `
    ${item?.name} ${\n item?.is_percent ? `(${item?.value}%)` : ''\n }: ${selectedCurrency}${item?.amount?.toFixed(2)}
    `;\n })\n ?.join('')}\n
    `;\n };\n\n // display tooltip icon\n const displayToolTipIcon = (dataText, dataFor) => {\n return (\n \n );\n };\n\n // display tooltip information\n const displayToolTipInfo = (dataId) => {\n return (\n \n );\n };\n\n // display invoice balance\n const displayInvoiceBalance = () => {\n const amountPaid = Number(invoiceDetails?.amount_paid || 0);\n const amountRefunded = Number(invoiceDetails?.amount_refunded || 0);\n let invoiceBalance = 0;\n if (monthlyBudget >= amountPaid) {\n invoiceBalance = monthlyBudget - amountPaid - amountRefunded;\n } else {\n invoiceBalance = amountPaid - monthlyBudget - amountRefunded;\n }\n\n return (\n <>\n {selectedCurrency}\n {displayNumber(invoiceBalance?.toFixed(2))}\n \n );\n };\n\n // display invoice field\n const displayInvoiceField = (label, amount, isTextBold, key) => {\n const showTooltip = key === 'taxes';\n const tooltipData = showTooltip ? generateTooltipHTML(key) : null;\n return (\n <>\n
    \n \n {label}\n {showTooltip ? (\n \n {displayToolTipIcon(tooltipData, key)}\n {displayToolTipInfo(key)}\n \n ) : null}\n
    \n
    \n
    \n \n {selectedCurrency}\n {displayNumber(amount ? Number(amount)?.toFixed(2) : '0.00')}\n
    \n
    \n \n );\n };\n\n const renderInvoiceDetails = () => {\n return (\n
    \n
    \n
    \n {' '}\n {getIndexOfInvoiceData() === 0 ? null : (\n {\n setInvoiceDetails(\n invoicesData[\n getIndexOfInvoiceData() === 0\n ? null\n : getIndexOfInvoiceData() - 1\n ] || showInvoiceModal.previous,\n );\n setshowInvoiceModal({\n ...showInvoiceModal,\n previous:\n invoicesData[\n getIndexOfInvoiceData() === 0\n ? null\n : getIndexOfInvoiceData() - 1\n ],\n next: invoicesData[\n getIndexOfInvoiceData() === invoicesData?.length - 1\n ? null\n : getIndexOfInvoiceData() + 1\n ],\n });\n }}\n role=\"presentation\"\n >\n {' '}\n \n )}\n {invoiceDetails?.invoice_type}\n \n {' '}\n #{invoiceDetails?.invoiced_id}{' '}\n \n {getIndexOfInvoiceData() === invoicesData?.length - 1 ? null : (\n {\n setInvoiceDetails(\n invoicesData[\n getIndexOfInvoiceData() === invoicesData?.length - 1\n ? null\n : getIndexOfInvoiceData() + 1\n ] || showInvoiceModal.next,\n );\n setshowInvoiceModal({\n ...showInvoiceModal,\n previous:\n invoicesData[\n getIndexOfInvoiceData() === 0\n ? null\n : getIndexOfInvoiceData() - 1\n ],\n next: invoicesData[\n getIndexOfInvoiceData() === invoicesData?.length - 1\n ? null\n : getIndexOfInvoiceData() + 1\n ],\n });\n }}\n role=\"presentation\"\n >\n {' '}\n \n )}\n
    \n
    \n
    \n
    \n
    INVOICE DETAILS
    \n
    \n {invoiceBreakdownOptions.map((item) => (\n
    \n
    \n {item.key === 'customer'\n ? invoiceDetails?.[item.key].name\n : invoiceDetails?.[item.key] || item.label}\n
    \n
    \n ))}\n
    \n );\n };\n\n const renderLineItems = () => {\n return (\n <>\n
    Line Items
    \n\n {invoiceDetails?.line_items?.length ? (\n
    \n \n \n \n ITEM\n QTY\n RATE\n \n AMOUNT\n \n \n \n \n {lineItems?.map((item) => (\n \n \n
    \n \n {item?.type}\n {' '}\n {item?.name}\n
    \n
    \n {item?.description || ''}\n
    \n {/*
    \n \n {' '}\n Marketplace(s) managed:\n {' '}\n United States\n
    */}\n \n {item?.quantity || 0}\n \n {selectedCurrency}\n {displayNumber(item?.amount)}\n \n \n {selectedCurrency}\n {displayNumber(item?.quantity * item?.amount)}\n \n \n ))}\n \n
    \n\n
    \n
    \n
    \n {/* ********** Sub Total ********** */}\n
    \n {displayInvoiceField('Subtotal', subTotal, true, 'subTotal')}\n
    \n\n {/* ********** Discount ********** */}\n {totalDiscount ? (\n
    \n {displayInvoiceField(\n 'Discount',\n totalDiscount,\n false,\n 'discounts',\n )}\n
    \n ) : null}\n {/* ********** Taxes ********** */}\n {invoiceTaxes?.length > 0 ? (\n
    \n {displayInvoiceField(\n 'Taxes',\n totalTaxAmount,\n false,\n 'taxes',\n )}\n
    \n ) : null}\n\n
    \n\n
    \n {/* ********** total monthly budget ********** */}\n {displayInvoiceField(\n 'Total',\n monthlyBudget,\n true,\n 'monthly_budget',\n )}\n {/* ********** Amount paid ********** */}\n {displayInvoiceField(\n 'Amount Paid',\n invoiceDetails?.amount_paid,\n false,\n 'amount_paid',\n )}\n {/* ********** Amount refunded ********** */}\n {displayInvoiceField(\n 'Amount Refunded',\n invoiceDetails?.amount_refunded,\n false,\n 'amount_refunded',\n )}\n
    \n
    \n {/* ********** Balance ********** */}\n
    \n
    \n
    \n Balance\n
    \n
    \n
    \n
    \n {displayInvoiceBalance()}\n
    \n
    \n
    \n
    \n
    \n
    \n ) : (\n
    No Line Item Record Found.
    \n )}\n \n );\n };\n\n // https://bbe.atlassian.net/browse/PDV-9350 - DSP Notes - Activity Logs and Billing Overlay\n const displayDspNotes = (note) => {\n return (\n
    \n
    \n
    \n

    \n Note added to the Brand Partner\n

    \n\n \n {note}\n
    \n
    \n
    \n );\n };\n\n const renderPaymentDetails = () => {\n return (\n
    \n
    \n
    \n

    \n Installment payments made\n

    \n
    Payments
    \n\n {invoiceDetails?.payments?.length ? (\n
    \n \n \n \n Date\n Method\n \n AMOUNT\n \n \n \n \n {invoiceDetails?.payments?.map((invoice) => (\n \n \n {dayjs(new Date(invoice?.date)).format('MMM DD, YYYY')}\n \n \n {paymentsMethod?.[invoice?.method]\n ? paymentsMethod?.[invoice?.method]\n : invoice?.method}\n \n \n {selectedCurrency}\n {displayNumber(invoice?.amount)}\n \n \n ))}\n \n \n
    \n ) : (\n
    No Payments Record Found.
    \n )}\n
    \n
    \n );\n };\n\n return (\n \n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n \n setshowInvoiceModal(false)}\n className=\"float-right cursor px-3\"\n />\n
    \n
    \n
    \n
    \n {invoiceDetails?.invoice_type || 'Retainer'} Invoice\n
    \n
    \n
    \n
    \n
    \n \n
    \n {renderInvoiceDetails()}\n
    \n {renderLineItems()}\n {/* https://bbe.atlassian.net/browse/PDV-9350 - DSP Notes - Activity Logs and Billing Overlay */}\n {invoiceDetails?.invoice_type === 'DSP Service' &&\n invoiceDetails?.notes\n ? displayDspNotes(invoiceDetails?.notes)\n : null}\n {renderPaymentDetails()}\n
    \n \n \n )}\n \n \n );\n}\n\nInvoiceBreakdownModal.defaultProps = {\n showInvoiceModal: { modal: false, id: '' },\n setshowInvoiceModal: () => {},\n invoiceDetails: {},\n setInvoiceDetails: () => {},\n invoicesData: {},\n};\n\nInvoiceBreakdownModal.propTypes = {\n showInvoiceModal: shape({\n modal: bool,\n id: string,\n index: string,\n }),\n setshowInvoiceModal: func,\n invoiceDetails: shape({ id: string }),\n setInvoiceDetails: func,\n invoicesData: shape({ id: string }),\n};\n\nconst InvoiceBody = styled.div`\n .invoice-details {\n padding: 0 30px 30px 30px;\n overflow: scroll;\n max-height: 95vh;\n }\n\n .out-door {\n color: ${Theme.green};\n }\n .capsule-status {\n border-radius: 12px;\n background: ${(props) =>\n props.status.toLowerCase().includes('paid')\n ? Theme.green\n : props.status.toLowerCase().includes('refunded')\n ? StatusColorSet.refunded\n : StatusColorSet[props.status.split(' ')[0].toLowerCase()]};\n font-family: ${Theme.baseMediumFontFamily};\n font-size: 10px;\n width: fit-content;\n color: ${(props) =>\n props.status.toLowerCase().includes('paid') ? Theme.white : Theme.black};\n padding: 3px 8px;\n\n &.small-text {\n font-size: 8px;\n }\n &.service-type {\n background-color: ${Theme.green};\n color: ${Theme.white};\n vertical-align: middle;\n }\n }\n .sub-text {\n color: ${Theme.gray35};\n font-size: ${Theme.extraSmall};\n }\n\n .total-subtotal {\n font-size: ${Theme.title};\n color: ${Theme.black};\n }\n .table-container {\n // max-height: 45vh;\n padding-bottom: 50px;\n }\n`;\n","import React from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport styled from 'styled-components';\nimport { arrayOf, bool, func, string } from 'prop-types';\n\nimport { InputFormField } from '../../../../../../common';\n\nconst InvoiceAdjust = ({\n invoiceInputs,\n setInvoiceInputs,\n returnTotalAmount,\n parseNumber,\n invoiceType,\n loading,\n formatNumber,\n currencySymbol,\n}) => {\n const { totalCurrentBudget, totalNewBudget } = returnTotalAmount();\n const onChangeInput = (input, index, { target }) => {\n const resultArray = [...invoiceInputs];\n resultArray[index] = {\n ...invoiceInputs[index],\n newAmount: target.value,\n marketplace: input.marketplace,\n change:\n parseNumber(target.value) === input.new_budget\n ? 0\n : parseNumber(target.value) - input.new_budget > 0\n ? `+${Math.abs(input.new_budget - parseNumber(target.value))}`\n : `-${Math.abs(input.new_budget - parseNumber(target.value))}`,\n };\n setInvoiceInputs(resultArray);\n };\n return (\n \n
    \n
    \n
    \n
    Marketplace
    \n
    \n
    \n {invoiceType === 'one time' ? null : (\n
    From
    \n )}\n
    \n
    \n
    \n {invoiceType === 'one time' ? 'Additional Amount' : 'To'}\n
    \n
    \n\n
    \n {invoiceInputs &&\n invoiceInputs.length > 0 &&\n invoiceInputs.map((input, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n \n
    \n
    {input?.marketplace}
    \n
    \n
    \n {invoiceType !== 'one time' ? (\n
    \n {formatNumber(\n input.new_budget,\n getSymbolFromCurrency(\n input?.local_currency\n ? input?.local_currency\n : 'USD',\n ),\n )}\n
    \n ) : null}\n
    \n
    \n \n
    \n \n {getSymbolFromCurrency(\n input?.local_currency\n ? input?.local_currency\n : 'USD',\n )}\n \n {\n onChangeInput(input, index, e);\n }}\n thousandSeparator\n decimalScale={2}\n allowNegative={false}\n value={input?.newAmount}\n />\n
    \n
    \n
    \n
    \n );\n })}\n\n {invoiceInputs && invoiceInputs.length === 0 && !loading ? (\n No Invoice Adjust Data Found\n ) : null}\n
    \n
    \n
    Total
    \n
    \n
    \n {invoiceType !== 'one time' ? (\n
    \n {totalCurrentBudget\n ? formatNumber(totalCurrentBudget, currencySymbol || '$')\n : `${currencySymbol || '$'}0`}\n
    \n ) : null}\n
    \n
    \n
    \n {totalNewBudget\n ? formatNumber(totalNewBudget, currencySymbol || '$')\n : `${currencySymbol || '$'}0`}\n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default InvoiceAdjust;\n\nInvoiceAdjust.defaultProps = {\n invoiceInputs: [],\n currencySymbol: '$',\n loading: false,\n setInvoiceInputs: () => {},\n returnTotalAmount: () => {},\n parseNumber: () => {},\n};\n\nInvoiceAdjust.propTypes = {\n invoiceInputs: arrayOf(Array),\n currencySymbol: string,\n invoiceType: string.isRequired,\n loading: bool,\n setInvoiceInputs: func,\n returnTotalAmount: func,\n parseNumber: func,\n formatNumber: func.isRequired,\n};\n\nconst GrayTable = styled.div`\n background-color: #f4f6fc;\n`;\n\nconst NoData = styled.div`\n margin: 3em 0em;\n text-align: center;\n`;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport { arrayOf, bool, func, string } from 'prop-types';\n\nimport { ModalRadioCheck } from '../../../../../../common';\n\nconst InvoicePause = ({\n invoiceChoices,\n setInvoiceChoices,\n returnTotalAmount,\n loading,\n formatNumber,\n currencySymbol,\n}) => {\n const { totalNewBudget } = returnTotalAmount();\n\n const onClick = (item, value, inputIndex) => {\n const resultArray = [...invoiceChoices];\n invoiceChoices.forEach((element, index) => {\n if (element.marketplace === item.marketplace && inputIndex === index) {\n resultArray[index] = {\n ...invoiceChoices[index],\n marketplace: item.marketplace,\n is_sent_for_pause: value,\n newAmount: value ? 0 : element.new_budget,\n };\n setInvoiceChoices(resultArray);\n }\n });\n };\n\n return (\n \n
    \n
    \n
    \n
    Marketplace
    \n
    \n
    \n
    Invoice Amount
    \n
    \n
    \n
    Pause
    \n
    \n\n
    \n {invoiceChoices &&\n invoiceChoices.length > 0 &&\n invoiceChoices.map((item, index) => {\n return (\n \n
    \n
    {item.marketplace}
    \n
    \n
    \n \n {formatNumber(\n item.new_budget,\n getSymbolFromCurrency(\n item?.local_currency ? item?.local_currency : 'USD',\n ),\n )}\n
    \n
    \n
    \n
      \n
    • \n \n \n {}}\n onClick={() => onClick(item, true, index)}\n disabled={item?.is_sent_for_pause}\n />\n \n Yes\n \n \n
    • \n
    • \n \n \n {}}\n onClick={() => onClick(item, false, index)}\n disabled={item?.pause_approved}\n />\n \n No\n \n \n
    • \n
    \n
    \n \n );\n })}\n {invoiceChoices && invoiceChoices.length === 0 && !loading ? (\n No Invoice Adjust Data Found\n ) : null}\n
    \n
    \n
    Total
    \n
    \n
    \n
    \n {totalNewBudget\n ? formatNumber(totalNewBudget, '$')\n : `${currencySymbol || '$'}0`}\n
    \n
    \n {/*
    \n
    ${returnTotalAmount()}
    \n
    */}\n
    \n
    \n \n );\n};\n\nexport default InvoicePause;\n\nInvoicePause.defaultProps = {\n invoiceChoices: [],\n setInvoiceChoices: () => {},\n returnTotalAmount: () => {},\n loading: false,\n};\n\nInvoicePause.propTypes = {\n invoiceChoices: arrayOf(Array),\n setInvoiceChoices: func,\n returnTotalAmount: func,\n loading: bool,\n currencySymbol: string.isRequired,\n formatNumber: func.isRequired,\n};\n\nconst GrayTable = styled.div`\n background-color: #f4f6fc;\n`;\n\nconst NoData = styled.div`\n margin: 3em 0em;\n text-align: center;\n`;\n","import React from 'react';\n\nimport { arrayOf, func, number } from 'prop-types';\n\nconst OneTimeInvoiceAdjustConfirm = ({\n adjustmentData,\n totalNewBudget,\n formatNumber,\n}) => {\n const renderDesktopView = () => {\n return (\n
    \n
    \n
    \n
    Marketplace
    \n
    \n
    \n
    \n
    Additional Budget
    \n
    \n
    \n
    \n\n {adjustmentData &&\n adjustmentData.length > 0 &&\n adjustmentData.map((item) => {\n const textClass =\n item.change && item.change !== 0\n ? 'normal-text text-bold'\n : 'gray-normal-text';\n return (\n
    \n
    \n
    {item.marketplace}
    \n
    \n
    \n
    \n
    \n {!item.newAmount || item.newAmount === 0\n ? '-'\n : `$${item.newAmount}`}\n
    \n
    \n
    \n );\n })}\n\n
    \n
    \n
    \n
    One-time invoice
    \n
    \n
    \n
    \n
    \n {formatNumber(totalNewBudget, '$')}\n
    \n
    \n
    \n
    \n );\n };\n\n return <>{renderDesktopView()};\n};\n\nexport default OneTimeInvoiceAdjustConfirm;\n\nOneTimeInvoiceAdjustConfirm.defaultProps = {\n adjustmentData: [],\n};\n\nOneTimeInvoiceAdjustConfirm.propTypes = {\n adjustmentData: arrayOf(Array),\n totalNewBudget: number.isRequired,\n formatNumber: func.isRequired,\n};\n","import React, { Fragment, useEffect, useState } from 'react';\n\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport dayjs from 'dayjs';\nimport { arrayOf, func, number, shape, string } from 'prop-types';\n\nimport OneTimeInvoiceAdjustConfirm from './OneTimeInvoiceAdjustConfirm';\nimport {\n ArrowRightBlackIcon,\n ArrowRightIcon,\n LeftArrowIcon,\n} from '../../../../../../../theme/images';\nimport {\n ModalBox,\n Button,\n GreyCard,\n ErrorMsgBox,\n} from '../../../../../../../common';\n\nconst InvoiceAdjustConfirm = ({\n onBackClick,\n adjustmentData,\n returnTotalAmount,\n selectedMonthYear,\n invoiceType,\n onApply,\n today,\n formatNumber,\n currencySymbol,\n}) => {\n const isPermanentAdditional = invoiceType === 'permanent additional';\n const [showError, setShoeError] = useState(false);\n const { totalCurrentBudget, totalNewBudget } = returnTotalAmount();\n\n useEffect(() => {\n if (isPermanentAdditional) {\n const isRecordExits = adjustmentData.filter((element) => {\n return element.change && element.change < 0;\n });\n if (isRecordExits.length) {\n setShoeError(true);\n }\n }\n }, [isPermanentAdditional, adjustmentData]);\n\n const returnInvoiceBillDate = () => {\n if (today > 10) {\n if (invoiceType === 'standard') {\n return `${dayjs(selectedMonthYear?.value)\n .subtract(1, 'M')\n .format('MMMM')}`;\n }\n if (\n dayjs(selectedMonthYear?.value).subtract(1, 'M').format('MMMM') ===\n dayjs().format('MMMM')\n ) {\n return `${dayjs(selectedMonthYear?.value).format('MMMM')}`;\n }\n return `${dayjs(selectedMonthYear?.value).format('MMMM')}`;\n }\n if (invoiceType === 'standard') {\n return `${dayjs(selectedMonthYear?.value)\n .subtract(1, 'M')\n .format('MMMM')}`;\n }\n if (\n dayjs(selectedMonthYear?.value).format('MMMM') !== dayjs().format('MMMM')\n ) {\n return `${dayjs(selectedMonthYear?.value).format('MMMM')}`;\n }\n return `${dayjs().format('MMMM')}`;\n };\n\n const totalChangeAmount =\n totalNewBudget - totalCurrentBudget > 0\n ? `+${currencySymbol || '$'}${formatNumber(\n Math.abs(totalCurrentBudget - totalNewBudget),\n )}`\n : `-${currencySymbol || '$'}${formatNumber(\n Math.abs(totalCurrentBudget - totalNewBudget),\n )}`;\n\n const renderResponsiveView = () => {\n return (\n
    \n {adjustmentData &&\n adjustmentData.length > 0 &&\n adjustmentData.map((item) => {\n const textClass =\n item.change && item.change !== 0\n ? 'normal-text text-bold'\n : 'gray-normal-text';\n return (\n \n
    \n
    \n
    Marketplace
    \n
    {item.marketplace}
    \n
    \n\n
    \n
    From
    \n
    \n {formatNumber(\n item.new_budget,\n getSymbolFromCurrency(\n item?.local_currency ? item?.local_currency : 'USD',\n ),\n )}\n
    \n
    \n
    \n
    \n \"arrow\"{' '}\n
    \n
    \n
    \n
    To
    \n
    \n {item.newAmount\n ? `$${item.newAmount}`\n : formatNumber(\n item.new_budget,\n getSymbolFromCurrency(\n item?.local_currency\n ? item?.local_currency\n : 'USD',\n ),\n )}\n
    \n
    \n
    \n
    Change
    \n
    \n {item.change\n ? item.change === 0\n ? '-'\n : formatNumber(\n item.change,\n getSymbolFromCurrency(\n item?.local_currency\n ? item?.local_currency\n : 'USD',\n ),\n '',\n false,\n true,\n )\n : '-'}\n
    \n
    \n
    \n
    \n \n );\n })}\n\n
    \n
    \n
    \n
    Total invoice
    \n
    \n\n
    \n
    From
    \n
    \n {formatNumber(totalCurrentBudget, currencySymbol || '$')}\n
    \n
    \n
    \n
    \n \"arrow\"{' '}\n
    \n
    \n
    \n
    To
    \n
    \n {formatNumber(totalNewBudget, currencySymbol || '$')}\n
    \n
    \n
    \n
    Change
    \n
    {totalChangeAmount}
    \n
    \n
    \n
    \n );\n };\n\n const renderDesktopView = () => {\n return (\n
    \n
    \n
    \n
    Marketplace
    \n
    \n
    \n
    From
    \n
    \n
    \n
    To
    \n
    \n
    \n
    Change
    \n
    \n
    \n
    \n\n {adjustmentData &&\n adjustmentData.length > 0 &&\n adjustmentData.map((item) => {\n const textClass =\n item.change && item.change !== 0\n ? 'normal-text text-bold'\n : 'gray-normal-text';\n return (\n
    \n
    \n
    {item.marketplace}
    \n
    \n
    \n
    \n {formatNumber(\n item.new_budget,\n getSymbolFromCurrency(\n item?.local_currency ? item?.local_currency : 'USD',\n ),\n )}\n
    \n
    \n
    \n
    \n \"arrow\"{' '}\n
    \n
    \n
    \n
    \n {item.newAmount\n ? `$${item.newAmount}`\n : formatNumber(\n item.new_budget,\n getSymbolFromCurrency(\n item?.local_currency ? item?.local_currency : 'USD',\n ),\n )}\n
    \n
    \n
    \n
    \n {item.change\n ? item.change === 0\n ? '-'\n : formatNumber(\n item.change,\n getSymbolFromCurrency(\n item?.local_currency\n ? item?.local_currency\n : 'USD',\n ),\n '',\n false,\n true,\n )\n : '-'}\n
    \n
    \n
    \n );\n })}\n\n
    \n
    \n
    \n
    Total invoice
    \n
    \n
    \n
    \n {formatNumber(totalCurrentBudget, `${currencySymbol || '$'}`)}\n
    \n
    \n
    \n
    \n \"arrow\"{' '}\n
    \n
    \n
    \n
    \n {formatNumber(totalNewBudget, `${currencySymbol || '$'}`)}\n
    \n
    \n
    \n
    {totalChangeAmount}
    \n
    \n
    \n
    \n );\n };\n\n return (\n <>\n \n
    \n

    \n \n Invoice Adjustment\n

    \n
    \n
    \n {invoiceType !== 'one time' ? (\n <>\n {renderDesktopView()}\n {renderResponsiveView()}\n \n ) : (\n \n )}\n
    \n {invoiceType !== 'one time' ? (\n

    \n The new invoice amount will be available to spend from{' '}\n \n {invoiceType === 'standard'\n ? selectedMonthYear?.value.split(' ')[0]\n : dayjs(selectedMonthYear?.value)\n .add(1, 'M')\n .format('MMMM')}{' '}\n onwards.\n \n
    The first bill for this amount will be sent{' '}\n {returnInvoiceBillDate()} 11.\n

    \n ) : null}\n {invoiceType === 'permanent additional' && (\n \n

    \n Additional DSP invoice ({returnInvoiceBillDate()} only)\n

    \n

    \n {' '}\n {totalChangeAmount.replace('+', '')}\n

    \n

    \n This will be a one-off invoice, providing additional budget to\n spend in {returnInvoiceBillDate()}. This invoice will be sent\n as soon as brand partner approves the proposal.\n

    \n
    \n )}\n {invoiceType === 'one time' ? (\n

    \n The will be a one-off invoice, providing additional budget to\n spend in{' '}\n {dayjs(selectedMonthYear?.value).format('MMMM')} only.\n

    \n ) : null}\n
    \n {showError ? (\n \n Please enter a value that is higher than the initial budget.\n \n ) : null}\n
    \n
    \n
    \n
    \n \n Confirm\n \n
    \n \n \n );\n};\n\nexport default InvoiceAdjustConfirm;\n\nInvoiceAdjustConfirm.defaultProps = {\n onBackClick: () => {},\n adjustmentData: [],\n returnTotalAmount: () => {},\n selectedMonthYear: {},\n onApply: () => {},\n};\n\nInvoiceAdjustConfirm.propTypes = {\n onBackClick: func,\n returnTotalAmount: func,\n adjustmentData: arrayOf(Array),\n selectedMonthYear: shape({}),\n invoiceType: string.isRequired,\n currencySymbol: string.isRequired,\n onApply: func,\n today: number.isRequired,\n formatNumber: func.isRequired,\n};\n","import React, { Fragment } from 'react';\n\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport { arrayOf, func, shape, string } from 'prop-types';\n\nimport { Button, ModalBox } from '../../../../../../../common';\nimport { LeftArrowIcon } from '../../../../../../../theme/images';\n\nconst InvoicePauseConfirm = ({\n adjustmentData,\n returnTotalAmount,\n onApply,\n onBackClick,\n selectedMonthYear,\n formatNumber,\n currencySymbol,\n}) => {\n const { totalNewBudget } = returnTotalAmount();\n const renderResponsiveView = () => {\n return (\n
    \n {adjustmentData &&\n adjustmentData.length > 0 &&\n adjustmentData.map((item) => {\n const textClass =\n item && item.is_sent_for_pause\n ? 'normal-text text-bold'\n : 'gray-normal-text';\n return (\n \n
    \n
    \n
    Marketplace
    \n
    {item.marketplace}
    \n
    \n\n
    \n
    Invoice Amount
    \n
    \n {formatNumber(\n item.new_budget,\n getSymbolFromCurrency(\n item?.local_currency ? item?.local_currency : 'USD',\n ),\n )}\n
    \n
    \n
    \n
    Pause Invoice
    \n
    \n {item.is_sent_for_pause ? 'Yes' : 'No'}\n
    \n
    \n
    \n
    \n \n );\n })}\n\n
    \n
    \n
    \n
    Total invoice
    \n
    \n\n
    \n
    Invoice Amount
    \n
    \n {formatNumber(totalNewBudget, `${currencySymbol || '$'}`)}\n
    \n
    \n
    \n
    \n The change will apply to\n {selectedMonthYear?.value.split(' ')[0]} only.\n
    \n
    \n
    \n );\n };\n\n const renderDesktopView = () => {\n return (\n
    \n
    \n
    \n
    Marketplace
    \n
    \n
    \n
    Invoice Amount
    \n
    \n
    \n
    Pause Invoice
    \n
    \n
    \n
    \n\n {adjustmentData &&\n adjustmentData.length > 0 &&\n adjustmentData.map((item) => {\n const textClass =\n item && item.is_sent_for_pause\n ? 'normal-text text-bold'\n : 'gray-normal-text';\n return (\n
    \n
    \n
    {item.marketplace}
    \n
    \n
    \n
    \n {formatNumber(\n item.new_budget,\n getSymbolFromCurrency(\n item?.local_currency ? item?.local_currency : 'USD',\n ),\n )}\n
    \n
    \n
    \n
    \n {item.is_sent_for_pause ? 'Yes' : 'No'}\n
    \n
    \n
    \n );\n })}\n\n
    \n
    \n
    \n
    Total invoice
    \n
    \n
    \n
    \n {formatNumber(totalNewBudget, `${currencySymbol || '$'}`)}\n
    \n
    \n
    \n
    \n
    \n

    \n The change will apply to{' '}\n {selectedMonthYear?.value.split(' ')[0]} only.\n

    \n
    \n );\n };\n\n return (\n <>\n \n
    \n

    \n \n Confirm Pause\n

    \n
    \n
    \n {renderDesktopView()}\n {renderResponsiveView()}\n
    \n
    \n
    \n \n Confirm\n \n
    \n \n \n );\n};\n\nexport default InvoicePauseConfirm;\n\nInvoicePauseConfirm.defaultProps = {\n adjustmentData: [],\n onApply: () => {},\n onBackClick: () => {},\n returnTotalAmount: () => {},\n selectedMonthYear: {},\n};\n\nInvoicePauseConfirm.propTypes = {\n adjustmentData: arrayOf(Array),\n currencySymbol: string.isRequired,\n onApply: func,\n onBackClick: func,\n returnTotalAmount: func,\n selectedMonthYear: shape({}),\n formatNumber: func.isRequired,\n};\n","import React, { useState, useEffect, useCallback, useRef } from 'react';\n\nimport dayjs from 'dayjs';\nimport Modal from 'react-modal';\nimport Select from 'react-select';\nimport ReactTooltip from 'react-tooltip';\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport { useHistory } from 'react-router-dom';\nimport { bool, func, shape, string } from 'prop-types';\nimport { toast } from 'react-toastify';\n\nimport InvoiceAdjust from './InvoiceAdjust';\nimport InvoicePause from './InvoicePause';\nimport InvoiceAdjustConfirm from './InvoiceAdjustPauseConfirm/InvoiceAdjustConfirm';\nimport Theme from '../../../../../../theme/Theme';\nimport { CloseIcon, helpCircleIcon } from '../../../../../../theme/images';\nimport {\n getDSPBudgetAdjustData,\n postDSPBudgetAdjustPauseInvoiceData,\n} from '../../../../../../api';\nimport {\n ModalBox,\n Button,\n Tabs,\n ModalRadioCheck,\n ContractInputSelect,\n DropdownIndicator,\n PageLoader,\n FormField,\n} from '../../../../../../common';\nimport { adjustInvoiceChoices } from '../../../../../../constants/CustomerConstants';\nimport { PATH_CUSTOMER_DETAILS } from '../../../../../../constants';\nimport InvoicePauseConfirm from './InvoiceAdjustPauseConfirm/InvoicePauseConfirm';\nimport useFormatNumber from '../../../../../../hooks/useFormatNumber';\n\nconst todaysDate = new Date();\nconst day = todaysDate.getDate();\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nconst InvoiceAdjustPauseModal = ({\n id,\n customerId,\n isOpen,\n style,\n onModalClose,\n onApply,\n bpName,\n}) => {\n const history = useHistory();\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n const [loader, setLoader] = useState(false);\n const [invoiceInputs, setInvoiceInputs] = useState([]);\n const [invoiceType, setInvoiceType] = useState('standard');\n const [viewComponent, setViewComponent] = useState('adjustInvoice');\n const [monthRange, setMonthRange] = useState(12);\n const [selectedMonthYear, setselectedMonthYear] = useState({\n value: dayjs().format('MMMM YYYY'),\n label: dayjs().format('MMMM YYYY'),\n });\n const mounted = useRef(false);\n const [monthsYears, setMonthsYears] = useState([\n {\n value: dayjs().format('MMMM YYYY'),\n label: dayjs().format('MMMM YYYY'),\n },\n ]);\n const [currencySymbol, setCurrencySymbol] = useState(null);\n const [dspInvoiceNote, setDspInvoiceNote] = useState('');\n\n // fetch latest stadandard invoice data\n const getAdjustInvoices = useCallback(\n (date) => {\n setLoader(true);\n setInvoiceInputs([]);\n\n getDSPBudgetAdjustData(\n invoiceType,\n customerId,\n viewComponent,\n dayjs(date).format('YYYY-MM-DD'),\n ).then((res) => {\n if (mounted.current) {\n if (res && res.status === 200) {\n setCurrencySymbol(\n getSymbolFromCurrency(\n res?.data?.global_currency ? res?.data?.global_currency : 'USD',\n ),\n );\n\n // PDV-8701 restric user to select future month- its as per contract end date (BE key- max_end_date)\n const newDate = new Date();\n const maxEndDate = new Date(res?.data?.max_end_date);\n\n // PDV-9118 -fixed time zone issue- if it's MST time zone then added 12 hr. in that date\n // so that we will get accurate date.\n if (maxEndDate && maxEndDate?.getTimezoneOffset() > 0) {\n maxEndDate.setHours(maxEndDate?.getHours() + 12);\n }\n\n let totalMonths = 1;\n\n if (\n maxEndDate !== null &&\n maxEndDate !== undefined &&\n res?.data?.max_end_date\n ) {\n totalMonths =\n maxEndDate.getMonth() -\n newDate.getMonth() +\n 12 * (maxEndDate.getFullYear() - newDate.getFullYear());\n\n if (invoiceType !== 'standard') {\n // for one time invoice\n totalMonths += 1;\n } else {\n // for standard invoice\n totalMonths -= 1;\n }\n }\n\n setMonthRange(totalMonths <= 0 ? 1 : totalMonths);\n setInvoiceInputs(res?.data?.adjustments);\n // https://bbe.atlassian.net/browse/PDV-6849\n setDspInvoiceNote(res?.data?.notes || '');\n setLoader(false);\n } else {\n setLoader(false);\n }\n setLoader(false);\n }\n });\n },\n [customerId, invoiceType, viewComponent],\n );\n\n const returnMonthStart = useCallback(\n (monthIndex) => {\n if (invoiceType !== 'standard') {\n return monthIndex - 1;\n }\n if (day > 10 && invoiceType === 'standard') {\n return monthIndex + 1;\n }\n return monthIndex - 0;\n },\n [invoiceType],\n );\n\n // PDV-8701 restric user to select future month- its as per contract end date (BE key- max_end_date)\n useEffect(() => {\n mounted.current = true;\n getAdjustInvoices(\n dayjs().add(returnMonthStart(1), 'M').format('MMMM YYYY'),\n );\n return () => {\n mounted.current = false;\n };\n }, [getAdjustInvoices, returnMonthStart]);\n\n // add Month year (from currrent month to 12 months) data for applies from dropdown\n useEffect(() => {\n mounted.current = true;\n const monthsDropDown = [];\n for (let monthIndex = 1; monthIndex <= monthRange; monthIndex += 1) {\n monthsDropDown.push({\n value: dayjs()\n .add(returnMonthStart(monthIndex), 'M')\n .format('MMMM YYYY'),\n label: dayjs()\n .add(returnMonthStart(monthIndex), 'M')\n .format('MMMM YYYY'),\n });\n }\n setMonthsYears(monthsDropDown);\n setselectedMonthYear(monthsDropDown[0]);\n return () => {\n mounted.current = false;\n };\n }, [monthRange, returnMonthStart]);\n\n const renderToastMessage = useCallback(\n (message) => {\n toast.success(message);\n setTimeout(() => {\n history.push(\n PATH_CUSTOMER_DETAILS.replace(':id', customerId),\n 'dsp service',\n );\n onApply(true);\n }, 2000);\n },\n [customerId, history, onApply],\n );\n\n // submit standard, onetime & pause invoice\n const onSendDSPBudgetAdjustInvoice = useCallback(() => {\n const toastMsg = `${bpName} invoice ${\n viewComponent === 'adjustInvoice' ? 'Adjustment created' : 'Pause'\n } successfully for ${selectedMonthYear.value}`;\n setLoader(true);\n postDSPBudgetAdjustPauseInvoiceData(\n invoiceInputs,\n selectedMonthYear,\n invoiceType,\n customerId,\n viewComponent === 'adjustInvoice' ? 'adjust' : 'pause',\n dspInvoiceNote,\n ).then((res) => {\n if (res && res.status === 500) {\n setLoader(false);\n toast.error('Something went wrong');\n }\n if (res && res.status === 400) {\n setLoader(false);\n toast.error('Something went wrong');\n }\n if (res && res.status === 201) {\n renderToastMessage(toastMsg);\n setLoader(false);\n }\n setLoader(false);\n });\n }, [\n bpName,\n customerId,\n dspInvoiceNote,\n invoiceInputs,\n invoiceType,\n renderToastMessage,\n selectedMonthYear,\n viewComponent,\n ]);\n\n const onSendInvoice = () => {\n onSendDSPBudgetAdjustInvoice();\n onApply();\n };\n\n // Removed commas & convert string to number\n const parseNumber = (value) => {\n return value\n ? isNaN(Number(value.toString().replace(/,/g, '')))\n ? 0\n : Number(value.toString().replace(/,/g, ''))\n : 0;\n };\n\n // based on user filled the inputs calculate total for exstitng amoount & new amount total.\n const returnTotalAmount = useCallback(() => {\n if (invoiceInputs && invoiceInputs.length > 0) {\n const totalAmount = { totalCurrentBudget: 0, totalNewBudget: 0 };\n invoiceInputs.forEach((item) => {\n if (item && item.new_budget && ['standard'].includes(invoiceType)) {\n totalAmount.totalCurrentBudget += parseNumber(\n item.new_budget.toString(),\n );\n }\n if (Object.prototype.hasOwnProperty.call(item, 'newAmount')) {\n totalAmount.totalNewBudget += parseNumber(\n item.newAmount === '' && ['standard'].includes(invoiceType)\n ? item.new_budget\n : item.newAmount,\n );\n } else if (\n Object.prototype.hasOwnProperty.call(item, 'new_budget') &&\n ['standard', 'permanent additional'].includes(invoiceType)\n ) {\n totalAmount.totalNewBudget += parseNumber(item.new_budget.toString());\n }\n });\n\n return totalAmount;\n }\n return 0;\n }, [invoiceInputs, invoiceType]);\n\n const renderSubmitAndPauseTab = () => {\n return (\n \n {' '}\n
      \n {\n setViewComponent('adjustInvoice');\n }}\n >\n Submit Invoice\n \n {\n setInvoiceType('standard');\n setViewComponent('pauseInvoice');\n }}\n >\n Pause Invoice\n \n
    \n
    \n );\n };\n\n const renderStandardAndOneTimeOptions = () => {\n return (\n <>\n {viewComponent === 'adjustInvoice' ? (\n
      \n {adjustInvoiceChoices.map((item) => {\n return (\n
    • \n \n \n {\n setInvoiceType(e.target.name);\n }}\n id={item.id}\n />\n \n {item.label}\n \n \n
    • \n );\n })}\n
    \n ) : null}\n \n );\n };\n\n const renderMonthYearDropDown = () => {\n return (\n
    \n \n \n {monthsYears && (\n {\n getAdjustInvoices(event.value);\n setselectedMonthYear(event);\n }}\n placeholder={monthsYears[0].label}\n />\n )}\n \n
    \n );\n };\n\n // https://bbe.atlassian.net/browse/PDV-6849 - Enable Next user to add a note in the DSP invoice request to be added in the next DSP invoice\n // displat text area for invoice note\n const displayInvoiceNoteTextArea = () => {\n return (\n \n {\n setDspInvoiceNote(event?.target?.value);\n }}\n />\n \n );\n };\n\n return (\n <>\n \n \n {!showConfirmationModal ? (\n \n
    \n

    Invoice Adjustment

    \n\n {renderSubmitAndPauseTab()}\n\n {renderStandardAndOneTimeOptions()}\n\n {loader ? (\n \n ) : null}\n\n {renderMonthYearDropDown()}\n {/* https://bbe.atlassian.net/browse/PDV-6849 */}\n {viewComponent === 'adjustInvoice'\n ? displayInvoiceNoteTextArea()\n : null}\n
    \n\n {!loader ? (\n
    \n {viewComponent === 'adjustInvoice' ? (\n \n ) : (\n \n )}\n
    \n ) : null}\n\n
    \n
    \n
    \n {\n setShowConfirmationModal(true);\n }}\n type=\"button\"\n className=\"btn-primary on-boarding w-100\"\n >\n {loader ? (\n \n ) : (\n 'Continue'\n )}\n \n
    \n
    \n \n ) : viewComponent === 'pauseInvoice' ? (\n {\n setShowConfirmationModal(false);\n }}\n returnTotalAmount={returnTotalAmount}\n selectedMonthYear={selectedMonthYear}\n invoiceType={invoiceType}\n onApply={() => {\n onSendInvoice();\n }}\n formatNumber={useFormatNumber}\n currencySymbol={currencySymbol}\n />\n ) : (\n {\n setShowConfirmationModal(false);\n }}\n returnTotalAmount={returnTotalAmount}\n selectedMonthYear={selectedMonthYear}\n invoiceType={invoiceType}\n onApply={() => {\n onSendInvoice();\n }}\n today={day}\n formatNumber={useFormatNumber}\n currencySymbol={currencySymbol}\n />\n )}\n \n \n );\n};\n\nexport default InvoiceAdjustPauseModal;\n\nInvoiceAdjustPauseModal.defaultProps = {\n isOpen: false,\n id: '',\n style: {},\n onModalClose: () => {},\n onApply: () => {},\n bpName: '',\n};\n\nInvoiceAdjustPauseModal.propTypes = {\n isOpen: bool,\n id: string,\n customerId: string.isRequired,\n style: shape({}),\n onModalClose: func,\n onApply: func,\n bpName: string,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport dayjs from 'dayjs';\nimport { ToastContainer } from 'react-toastify';\nimport { useMediaQuery } from 'react-responsive';\nimport { bool, func, shape, string } from 'prop-types';\n\nimport {\n getInvoiceStatusKey,\n invoiceStatusIcons,\n StatusColorSet,\n} from '../../../../../../constants';\nimport { ModalBox, Status } from '../../../../../../common';\nimport {\n ArrowRightBlackIcon,\n ArrowRightIcon,\n CloseIcon,\n LeftArrowIcon,\n} from '../../../../../../theme/images';\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nconst InvoiceRequestViewModal = ({\n id,\n isOpen,\n style,\n onClick,\n onApply,\n adjustmentDetails,\n}) => {\n const isOneTime = adjustmentDetails?.dsp_invoice_subtype === 'one time';\n const isPauseInvoice = adjustmentDetails?.is_sent_for_pause;\n const previousMonth = new Date(adjustmentDetails?.applicable_from);\n previousMonth.setMonth(previousMonth.getMonth() - 1);\n\n const status = adjustmentDetails?.status\n ? adjustmentDetails?.status\n : 'created';\n\n const isMobile = useMediaQuery({ maxWidth: 767 });\n\n const generateAmount = (value, valueFor, currencySymbol) => {\n if (value && value !== null && value !== 0) {\n value = Number(value.toFixed(2));\n return `${\n value < 0 ? '-' : valueFor === 'change' ? '+' : ''\n }${currencySymbol}${value\n .toString()\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n }\n\n return valueFor === 'change' ? '-' : `${currencySymbol}0`;\n };\n\n const renderDesktopView = () => {\n return (\n
    \n
    \n {isOneTime ? (\n <>\n
    \n
    Marketplace
    \n
    \n
    \n
    Additional Amount
    \n
    \n \n ) : (\n <>\n
    \n
    Marketplace
    \n
    \n
    \n
    From
    \n
    \n
    \n
    To
    \n
    \n
    \n
    Change
    \n
    \n \n )}\n
    \n
    \n {adjustmentDetails?.adjustments &&\n adjustmentDetails?.adjustments.length >= 1\n ? adjustmentDetails?.adjustments.map((item, index) => (\n
    \n
    \n \n {item?.marketplace}\n
    \n
    \n {!isOneTime ? (\n <>\n
    \n \n {generateAmount(\n item?.old_budget,\n 'from',\n getSymbolFromCurrency(item?.local_currency),\n )}\n
    \n
    \n
    \n
    \n {' '}\n
    \n
    \n \n ) : null}\n\n \n \n {generateAmount(\n item?.new_budget,\n 'to',\n getSymbolFromCurrency(item?.local_currency),\n )}\n
    \n
    \n\n {!isOneTime ? (\n
    \n \n {generateAmount(\n item?.new_budget - item?.old_budget,\n 'change',\n getSymbolFromCurrency(item?.local_currency),\n )}\n
    \n
    \n ) : null}\n
    \n ))\n : null}\n\n
    \n
    \n
    \n
    \n {isOneTime ? 'One-time invoice' : 'Total invoice'}\n
    \n
    \n {!isOneTime ? (\n <>\n \n
    \n {generateAmount(\n adjustmentDetails?.from_amount,\n '',\n getSymbolFromCurrency(adjustmentDetails?.global_currency),\n )}\n
    \n
    \n\n
    \n
    \n \"arrow\"{' '}\n
    \n
    \n \n ) : null}\n {isOneTime ?
    : null}\n\n
    \n
    \n {generateAmount(\n adjustmentDetails?.to_amount,\n '',\n getSymbolFromCurrency(adjustmentDetails?.global_currency),\n )}\n
    \n
    \n {!isOneTime ? (\n
    \n
    \n {generateAmount(\n adjustmentDetails?.to_amount - adjustmentDetails?.from_amount,\n 'change',\n getSymbolFromCurrency(adjustmentDetails?.global_currency),\n )}\n
    \n
    \n ) : null}\n
    \n
    \n );\n };\n\n const renderMobileView = () => {\n return (\n
    \n {adjustmentDetails?.adjustments &&\n adjustmentDetails?.adjustments.length >= 1\n ? adjustmentDetails?.adjustments.map((item) => (\n <>\n
    \n
    \n
    Marketplace
    \n \n {item?.marketplace}\n
    \n
    \n\n
    \n
    From
    \n \n {generateAmount(\n item?.old_budget,\n 'from',\n getSymbolFromCurrency(item?.local_currency),\n )}\n
    \n
    \n\n
    \n
    \n \"arrow\"{' '}\n
    \n
    \n\n
    \n
    To
    \n \n {generateAmount(\n item?.new_budget,\n 'to',\n getSymbolFromCurrency(item?.local_currency),\n )}\n
    \n
    \n\n
    \n
    Change
    \n \n {generateAmount(\n item?.new_budget - item?.old_budget,\n 'change',\n getSymbolFromCurrency(item?.local_currency),\n )}\n
    \n
    \n
    \n
    \n \n ))\n : null}\n\n
    \n
    \n
    Total Invoice
    \n
    \n\n
    \n
    From
    \n
    \n {' '}\n {generateAmount(\n adjustmentDetails?.from_amount,\n '',\n getSymbolFromCurrency(adjustmentDetails?.global_currency),\n )}\n
    \n
    \n\n
    \n
    \n \"arrow\"{' '}\n
    \n
    \n\n
    \n
    To
    \n
    \n {' '}\n {generateAmount(\n adjustmentDetails?.to_amount,\n '',\n getSymbolFromCurrency(adjustmentDetails?.global_currency),\n )}\n
    \n
    \n\n
    \n
    Change
    \n
    \n {generateAmount(\n adjustmentDetails?.to_amount - adjustmentDetails?.from_amount,\n 'change',\n getSymbolFromCurrency(adjustmentDetails?.global_currency),\n )}\n
    \n
    \n
    \n
    \n );\n };\n\n return (\n <>\n \n \n \n \n
    \n \n

    \n {' '}\n onApply()}\n />\n Invoice Adjustment\n

    \n
    \n \n
    \n
    \n
    \n
    \n {isMobile && !isOneTime\n ? renderMobileView()\n : renderDesktopView()}\n\n
    \n\n {isPauseInvoice || status === 'cancelled' ? null : isOneTime ? (\n

    \n This will be a one-off invoice, providing additional budget to\n spend in the{' '}\n \n {dayjs(adjustmentDetails.applicable_from).format('MMMM')}{' '}\n only.\n {' '}\n

    \n ) : (\n

    \n The new invoice amount will be available to spend from{' '}\n {dayjs(adjustmentDetails.applicable_from).format('MMMM')}{' '}\n onwards.\n
    The first bill for this amount will be sent{' '}\n {dayjs(previousMonth).format('MMMM')} 11.\n

    \n )}\n
    \n
    \n \n \n \n );\n};\n\nexport default InvoiceRequestViewModal;\n\nInvoiceRequestViewModal.defaultProps = {\n isOpen: false,\n id: '',\n style: {},\n adjustmentDetails: [],\n onClick: () => {},\n onApply: () => {},\n};\n\nInvoiceRequestViewModal.propTypes = {\n isOpen: bool,\n id: string,\n adjustmentDetails: shape([]),\n style: shape({}),\n onClick: func,\n onApply: func,\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport { useMediaQuery } from 'react-responsive';\nimport { bool, string } from 'prop-types';\nimport { toast, ToastContainer } from 'react-toastify';\n\nimport Theme from '../../../../../theme/Theme';\nimport useFormatNumber from '../../../../../hooks/useFormatNumber';\nimport { CloseIcon } from '../../../../../theme/images';\nimport { InvoiceRequestViewModal } from './InvoiceAdjustmentModals';\nimport {\n cancelInvoiceRequest,\n getInvoiceAdjustmentData,\n} from '../../../../../api';\nimport {\n getInvoiceStatusKey,\n invoiceStatusIcons,\n InvoiceTypeNames,\n StatusColorSet,\n} from '../../../../../constants';\nimport {\n PageLoader,\n Status,\n Table,\n NoData,\n TableMobileView,\n ModalBox,\n Button,\n CommonPagination,\n} from '../../../../../common';\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nconst InvoiceAdjustmentList = ({\n customerId,\n isAllowToCreateAdjustment,\n invokeAdjustmentListApi,\n}) => {\n const isMobile = useMediaQuery({ maxWidth: 767 });\n const mounted = useRef(true);\n const [pageNumber, setPageNumber] = useState(1);\n const [adjustmentDetails, setAdjustmentDetails] = useState();\n const [invoiceRequestDataCount, setInvoiceRequestDataCount] = useState();\n\n const [invoicesAdjustmentData, setInvoicesAdjustmentData] = useState();\n const [invoiceAdjustmentLoader, setInvoiceAdjustmentLoader] = useState(false);\n const [isCancelRequest, setIsCancelRequest] = useState(false);\n\n const [showViewInvoiceRequestModal, setShowViewInvoiceRequestModal] =\n useState(false);\n const [showInvoiceCancelRequestModal, setShowInvoiceCancelRequestModal] =\n useState(false);\n const [invoiceCancelRequestDetails, setInvoiceCancelRequestDetails] =\n useState();\n\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n const getAdjustmentData = useCallback(\n (page) => {\n setInvoiceAdjustmentLoader(true);\n getInvoiceAdjustmentData(customerId, page).then((res) => {\n if (mounted.current) {\n if (\n (res && res.status === 500) ||\n res.status === 400 ||\n res.status === 404\n ) {\n setInvoiceAdjustmentLoader(false);\n setInvoicesAdjustmentData(null);\n }\n\n if (res && res.status === 200) {\n if (res.data && res.data.results) {\n setInvoiceRequestDataCount(res?.data.count);\n setInvoicesAdjustmentData(res?.data?.results);\n } else {\n setInvoicesAdjustmentData(null);\n }\n setInvoiceAdjustmentLoader(false);\n }\n }\n });\n },\n [customerId],\n );\n\n useEffect(() => {\n mounted.current = true;\n getAdjustmentData(1);\n return () => {\n mounted.current = false;\n };\n }, [getAdjustmentData]);\n\n useEffect(() => {\n if (invokeAdjustmentListApi) {\n getAdjustmentData(1);\n }\n }, [getAdjustmentData, invokeAdjustmentListApi]);\n\n const setAdjustmentsData = (adjustments) => {\n const result = [];\n if (adjustments?.length) {\n for (const item of adjustments) {\n result.push({\n id: item.id,\n pause_approved: false,\n });\n }\n }\n return result;\n };\n\n const onCancelRequest = useCallback(\n (requestDetails) => {\n setIsCancelRequest(true);\n const data = {};\n if (requestDetails?.is_sent_for_pause) {\n data.pause_approved = false;\n data.adjustments = setAdjustmentsData(requestDetails.adjustments);\n }\n data.budget_approved = false;\n data.status = 'cancelled';\n data.customer = customerId;\n cancelInvoiceRequest(requestDetails.id, data).then((res) => {\n if (mounted.current) {\n if (res && res.status === 200) {\n setShowInvoiceCancelRequestModal(false);\n toast.success('Invoice cancel request has been sent successfully.');\n getAdjustmentData(1);\n setPageNumber(1);\n } else {\n toast.error('Something went wrong');\n }\n setIsCancelRequest(false);\n }\n });\n },\n [customerId, getAdjustmentData],\n );\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getAdjustmentData(currentPage);\n };\n\n const handleMobileViewORCancelRequest = (selectedColumn, item) => {\n if (selectedColumn === 'view') {\n setAdjustmentDetails(item);\n setShowViewInvoiceRequestModal(true);\n } else if (selectedColumn === 'cancel') {\n setInvoiceCancelRequestDetails(item);\n setShowInvoiceCancelRequestModal(true);\n }\n };\n\n const renderDateWithFormat = (\n dateType,\n fromDate,\n toDate,\n invoiceType = '',\n ) => {\n if (dateType === 'from') {\n if (invoiceType === 'one time' || invoiceType === 'Pause') {\n return dayjs(fromDate).format('MMMM');\n }\n if (toDate === 'Ongoing') {\n return dayjs(fromDate).format(\"MMMM 'YYYY\");\n }\n return `${dayjs(fromDate).format(\"MMM 'YY\")} -`;\n }\n if (dateType === 'to') {\n if (invoiceType === 'one time' || invoiceType === 'Pause') {\n return dayjs(toDate).format('YYYY');\n }\n if (toDate !== 'Ongoing') {\n return dayjs(toDate).format(\"MMM 'YY\");\n }\n }\n return toDate;\n };\n\n const renderTableHeader = () => {\n return (\n \n \n Type / Marketplace\n \n \n Month(s)\n \n \n Amount\n \n \n Status\n \n \n {' '}\n \n \n );\n };\n\n const renderTableData = (item, numberFormat) => {\n const status = item?.status ? item?.status : 'created';\n\n return (\n \n \n
    \n {InvoiceTypeNames[item?.dsp_invoice_subtype.toLowerCase()]}\n
    \n
    {item?.marketplaces}
    \n \n \n {renderDateWithFormat(\n 'from',\n item.applicable_from,\n item.to_date,\n item?.dsp_invoice_subtype,\n )}\n \n {renderDateWithFormat(\n 'to',\n item.applicable_from,\n item.to_date,\n item?.dsp_invoice_subtype,\n )}\n
    \n \n \n {numberFormat(\n item.to_amount === null ? 0 : item.to_amount,\n getSymbolFromCurrency(\n item?.global_currency ? item?.global_currency : 'USD',\n ),\n )}\n \n \n \n \n \n
      \n {status === 'pending' && isAllowToCreateAdjustment ? (\n <>\n
    • \n {\n setShowInvoiceCancelRequestModal(true);\n setInvoiceCancelRequestDetails(item);\n }}\n >\n Cancel\n

      \n
    • \n
    • \n \n ) : null}\n\n
    • \n {\n setAdjustmentDetails(item);\n setShowViewInvoiceRequestModal(true);\n }}\n >\n View\n

      \n
    • \n
    \n \n \n );\n };\n\n const renderDesktopView = () => {\n return (\n <>\n {invoiceAdjustmentLoader ? (\n \n ) : (\n <>\n
    \n \n {renderTableHeader()}\n {invoicesAdjustmentData && invoicesAdjustmentData.length >= 1 ? (\n \n {invoicesAdjustmentData.map((item) =>\n renderTableData(item, useFormatNumber),\n )}\n \n ) : null}\n
    \n\n {invoiceRequestDataCount > 0 ? (\n <>\n \n \n \n ) : null}\n\n {!invoicesAdjustmentData ||\n (invoicesAdjustmentData && invoicesAdjustmentData.length === 0) ? (\n No Invoice Adjustments Found\n ) : null}\n \n )}\n \n );\n };\n\n const renderMobileInvoiceRequestList = (numberFormat) => {\n return invoicesAdjustmentData.map((item) => {\n const status = item?.status ? item?.status : 'created';\n return (\n <>\n {\n handleMobileViewORCancelRequest(option, item);\n }}\n isCancelRequest={status === 'pending' && isAllowToCreateAdjustment}\n />\n \n );\n });\n };\n\n const renderMobileView = () => {\n return (\n <>\n {invoiceAdjustmentLoader ? (\n \n ) : invoicesAdjustmentData && invoicesAdjustmentData.length >= 1 ? (\n <>\n {renderMobileInvoiceRequestList(useFormatNumber)}\n <>\n \n \n \n \n ) : (\n No Invoices Found\n )}\n \n );\n };\n\n const renderCancelRequestModal = () => {\n return (\n \n setShowInvoiceCancelRequestModal(false)}\n role=\"presentation\"\n />\n \n
    \n \n

    Cancel Invoice Request

    \n
    \n\n
    \n Are you sure, you want to cancel the invoice request?\n
    \n
    \n onCancelRequest(invoiceCancelRequestDetails)}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\"\n >\n {isCancelRequest ? (\n \n ) : (\n 'Yes'\n )}\n \n setShowInvoiceCancelRequestModal(false)}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \"\n >\n Don't Cancel\n \n
    \n
    \n
    \n \n );\n };\n\n return (\n \n {!isMobile ? renderDesktopView() : renderMobileView(useFormatNumber)}\n\n {showViewInvoiceRequestModal ? (\n {\n setShowViewInvoiceRequestModal(false);\n }}\n onApply={() => {\n setShowViewInvoiceRequestModal(false);\n }}\n />\n ) : null}\n\n {showInvoiceCancelRequestModal ? renderCancelRequestModal() : null}\n \n \n );\n};\n\nexport default InvoiceAdjustmentList;\n\nInvoiceAdjustmentList.defaultProps = {\n customerId: '',\n isAllowToCreateAdjustment: false,\n invokeAdjustmentListApi: bool,\n};\n\nInvoiceAdjustmentList.propTypes = {\n customerId: string,\n isAllowToCreateAdjustment: bool,\n invokeAdjustmentListApi: bool,\n};\n\nconst Wrapper = styled.div`\n td {\n padding: 20px 10px 3px 0px !important;\n }\n .statusContainer {\n margin-top: 0px !important;\n }\n\n .pending-status {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: inline-block;\n margin-left: 10px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &.divide-gap {\n border-right: 1px solid #bfc5d2;\n width: 2px;\n height: 12px;\n }\n }\n }\n`;\n","import React, { useEffect, useState, useCallback } from 'react';\n\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, shape, string } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\n\nimport Theme from '../../../../../theme/Theme';\nimport InvoiceAdjustmentList from './InvoiceAdjustmentList';\nimport { getDSPContact } from '../../../../../api';\nimport { InvoiceAdjustPauseModal } from './InvoiceAdjustmentModals';\nimport { WhiteCard, Button, PageLoader } from '../../../../../common';\nimport {\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n dspSignOffRoles,\n} from '../../../../../constants';\n\nconst InvoiceAdjustmentsContainer = ({ id, bpName, memberData }) => {\n const isMobile = useMediaQuery({ maxWidth: 767 });\n const userInfo = useSelector((state) => state.userState.userInfo);\n const customerState = useSelector((state) => state.customerState.data);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n\n const [showInvoiceAdjustmentModal, setShowInvoiceAdjustmentModal] =\n useState(false);\n const [isAllowToCreateAdjustment, setIsAllowToCreateAdjustment] =\n useState(false);\n const [adjustmentListApi, setAdjustmentListApi] = useState(false);\n const [dspButtonLoader, setDSPButtonLoader] = useState(false);\n\n // ***********PLEASE NOT REMOVE THIS COMMENTED CODE***********\n // const getDSPContactInfo = useCallback(() => {\n // if (dspSignOffRoles.userRole[userInfo?.role]) {\n // setIsAllowToCreateAdjustment(true);\n // } else {\n // for (const user of memberData) {\n // if (user.user) {\n // if (\n // dspSignOffRoles.grpRole[user?.role_group?.name] &&\n // user?.user?.id === userInfo?.id\n // ) {\n // setIsAllowToCreateAdjustment(true);\n // break;\n // }\n // }\n // }\n // }\n // }, [memberData, userInfo]);\n\n const getDSPContactInfo = useCallback(() => {\n setDSPButtonLoader(true);\n getDSPContact(id).then((res) => {\n if (res?.status === 200) {\n setDSPButtonLoader(false);\n if (res?.data?.allow_dsp_invoice_creation) {\n for (const user of memberData) {\n if (user.user) {\n if (\n (dspSignOffRoles.grpRole[user?.role_group?.name] &&\n user?.user?.id === userInfo?.id) ||\n dspSignOffRoles.userRole[userInfo?.role]\n ) {\n setIsAllowToCreateAdjustment(true);\n break;\n }\n }\n }\n } else {\n setDSPButtonLoader(false);\n setIsAllowToCreateAdjustment(false);\n }\n } else {\n setDSPButtonLoader(false);\n setIsAllowToCreateAdjustment(false);\n }\n });\n }, [id, memberData, userInfo]);\n\n useEffect(() => {\n getDSPContactInfo();\n }, [getDSPContactInfo]);\n\n return (\n \n {!isMobile ? (\n \n
    \n
    \n \n Invoice Requests\n

    \n
    \n {customerState?.account_type !== 'parent' ? (\n
    \n {\n setShowInvoiceAdjustmentModal(true);\n setAdjustmentListApi(false);\n }}\n type=\"button\"\n className=\"btn-primary invoice-adjustment\"\n >\n {dspButtonLoader ? (\n \n ) : (\n 'Submit Invoice Request'\n )}\n \n
    \n ) : null}\n \n
    \n\n \n\n
    \n \n ) : (\n <>\n
    \n
    \n \n Invoice Requests\n

    \n
    \n {customerState?.account_type !== 'parent' ? (\n
    \n {\n setShowInvoiceAdjustmentModal(true);\n setAdjustmentListApi(false);\n }}\n type=\"button\"\n className=\"btn-primary invoice-adjustment\"\n >\n {dspButtonLoader ? (\n \n ) : (\n 'Submit Invoice Request'\n )}\n \n
    \n ) : null}\n \n
    \n \n \n )}\n\n {showInvoiceAdjustmentModal && (\n {\n setShowInvoiceAdjustmentModal(false);\n }}\n onApply={(apply = false) => {\n setAdjustmentListApi(apply);\n setShowInvoiceAdjustmentModal(false);\n }}\n bpName={bpName}\n />\n )}\n \n );\n};\n\nexport default InvoiceAdjustmentsContainer;\n\nInvoiceAdjustmentsContainer.defaultProps = {\n id: '',\n bpName: '',\n};\n\nInvoiceAdjustmentsContainer.propTypes = {\n id: string,\n bpName: string,\n memberData: arrayOf(shape({})).isRequired,\n};\n\nconst Wrapper = styled.div`\n td {\n padding: 20px 10px 3px 0px !important;\n }\n .statusContainer {\n margin-top: 0px !important;\n }\n`;\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\n\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport copy from 'copy-to-clipboard';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { toast, ToastContainer } from 'react-toastify';\nimport { arrayOf, bool, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport useFormatNumber from '../../../../../hooks/useFormatNumber';\nimport InvoiceBreakdownModal from '../../Modals/InvoiceBreakdownModal';\nimport InvoiceAdjustmentsContainer from './InvoiceAdjustmentsContainer';\nimport { getInvoiceData } from '../../../../../api';\nimport {\n StatusColorSet,\n InvoiceTypeNames,\n invoiceStatusIcons,\n getInvoiceStatusKey,\n} from '../../../../../constants';\nimport {\n CommonPagination,\n PageLoader,\n Status,\n Table,\n WhiteCard,\n NoData,\n TableMobileView,\n} from '../../../../../common';\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nconst InvoiceList = ({\n loader,\n invoiceType,\n id,\n bpName,\n channelInvoiceType,\n memberData,\n}) => {\n const isDSPService = invoiceType === 'dsp service';\n const isMobile = useMediaQuery({ maxWidth: 768 });\n const [invoicesData, setInvoicesData] = useState();\n const [pastInvoiceLoader, setPastInvoiceLoader] = useState(false);\n const [isApicall, setIsApiCall] = useState(false);\n const [invoiceTotalCount, setInvoiceTotalCount] = useState();\n const [pageNumber, setPageNumber] = useState(1);\n const [showInvoiceModal, setshowInvoiceModal] = useState({\n modal: false,\n });\n const [invoiceDetails, setInvoiceDetails] = useState({});\n const mounted = useRef(false);\n const invoiceDataLength = invoicesData?.length;\n\n const getDSPInvoicesData = useCallback(\n (type, currentPage) => {\n setPastInvoiceLoader(true);\n getInvoiceData(type, id, channelInvoiceType, currentPage).then((res) => {\n if (mounted.current) {\n if (\n res?.status === 500 ||\n res?.status === 400 ||\n res?.status === 404\n ) {\n setPastInvoiceLoader(false);\n setInvoicesData(null);\n }\n\n if (res?.status === 200) {\n if (res.data?.results) {\n setInvoicesData(res.data.results);\n setInvoiceTotalCount(res.data.count);\n setPageNumber(currentPage);\n } else {\n setInvoicesData(null);\n setInvoiceTotalCount(null);\n setPageNumber(1);\n }\n setPastInvoiceLoader(false);\n } else {\n setInvoicesData(null);\n setInvoiceTotalCount(null);\n setPageNumber(1);\n }\n setPastInvoiceLoader(false);\n }\n });\n },\n [channelInvoiceType, id],\n );\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getDSPInvoicesData(invoiceType, currentPage);\n\n window.scrollTo(0, 0);\n };\n\n useEffect(() => {\n mounted.current = true;\n\n if (!isApicall) {\n getDSPInvoicesData(invoiceType);\n setIsApiCall(true);\n }\n return () => {\n mounted.current = false;\n };\n }, [getDSPInvoicesData, invoiceType, isApicall, setIsApiCall]);\n\n const renderMobilePastInvoice = (numberFormat) => {\n return invoicesData.map((item) => {\n let sentInvoiceType = '';\n let invoiceMonth = '';\n if (item?.description?.budget_type !== null) {\n sentInvoiceType = item?.description?.budget_type;\n }\n if (item?.month !== null) {\n invoiceMonth = item?.month;\n }\n return (\n \n );\n });\n };\n\n const renderMobileView = () => {\n return (\n <>\n \n
    \n
    \n
    \n {invoiceType === 'rev share'\n ? 'Revenue Share Invoices'\n : invoiceType === 'upsell'\n ? 'Upsell Invoices'\n : invoiceType === 'retainer'\n ? 'Monthly Retainer Invoices'\n : 'Sent Invoices'}\n
    \n
    \n
    \n
    \n\n
    \n {pastInvoiceLoader && isDSPService ? (\n \n ) : invoiceDataLength >= 1 ? (\n <>\n {renderMobilePastInvoice(useFormatNumber)}\n\n <>\n \n \n \n \n ) : (\n \n No{' '}\n {invoiceType === 'rev share'\n ? 'Revenue Share Invoices'\n : invoiceType === 'upsell'\n ? 'Upsell Invoices'\n : invoiceType === 'retainer'\n ? 'Monthly Retainer Invoices'\n : invoiceType === 'dsp service'\n ? 'DSP Invoices'\n : 'AMC Invoices'}{' '}\n Found\n \n )}\n \n );\n };\n\n const renderTableHeader = () => {\n return (\n \n \n {isDSPService ? 'Type/ #' : 'Invoice Type / Number'}\n \n \n Amount\n \n \n Created On\n \n \n Due\n \n \n Status\n \n \n );\n };\n\n const renderPastInvoiceTableData = (item, numberFormat, index) => {\n const pastInvoicetype = item?.description?.budget_type;\n return (\n <>\n {\n setshowInvoiceModal({\n modal: true,\n previous: invoicesData[index === 0 ? null : index - 1],\n next: invoicesData[\n index === invoiceDataLength - 1 ? null : index + 1\n ],\n });\n setInvoiceDetails(item);\n }}\n className=\"cursor\"\n >\n \n
    \n {isDSPService\n ? `${\n pastInvoicetype !== null\n ? InvoiceTypeNames[pastInvoicetype]\n : ''\n } ${item?.month !== null ? `(${item?.month})` : ''}`\n : item?.invoice_type}\n {item?.invoice_status !== 'void' &&\n item?.invoice_status !== 'paid' &&\n item?.payment_link !== null ? (\n {\n copy(item?.payment_link);\n toast.success('copied');\n }}\n />\n ) : null}\n
    \n
    \n #{item?.next_invoiced_id}{' '}\n {isDSPService && item?.description?.marketplaces\n ? `| ${item?.description?.marketplaces}`\n : null}\n
    \n \n \n
    \n {getSymbolFromCurrency(item?.local_currency)}\n {numberFormat(item?.monthly_budget)}\n
    \n \n \n {dayjs(item?.generated_at).format('MM/DD/YY')}\n \n \n {dayjs(item?.due_date).format('MM/DD/YY')}\n \n \n \n \n \n \n );\n };\n\n const renderDesktopView = () => {\n return (\n <>\n \n

    \n {invoiceType === 'rev share'\n ? 'Revenue Share Invoices'\n : invoiceType === 'upsell'\n ? 'Upsell Invoices'\n : invoiceType === 'retainer'\n ? 'Monthly Retainer Invoices'\n : 'Sent Invoices'}\n

    \n\n
    \n {pastInvoiceLoader ? (\n \n ) : (\n <>\n \n {renderTableHeader()}\n {invoiceDataLength >= 1 ? (\n \n {invoicesData.map((item, index) =>\n renderPastInvoiceTableData(item, useFormatNumber, index),\n )}\n \n ) : null}\n
    \n\n {invoiceDataLength > 0 ? (\n <>\n \n \n \n ) : null}\n {!invoicesData || invoiceDataLength === 0 ? (\n \n No{' '}\n {invoiceType === 'rev share'\n ? 'Revenue Share Invoices'\n : invoiceType === 'upsell'\n ? 'Upsell Invoices'\n : invoiceType === 'retainer'\n ? 'Monthly Retainer Invoices'\n : invoiceType === 'dsp service'\n ? 'DSP Invoices'\n : 'AMC Invoices'}{' '}\n Found\n \n ) : null}\n \n )}\n \n \n );\n };\n\n return (\n \n {loader ? (\n \n ) : !isMobile ? (\n renderDesktopView()\n ) : (\n renderMobileView()\n )}\n {isDSPService ? (\n \n ) : null}\n \n {showInvoiceModal.modal ? (\n \n ) : null}\n \n );\n};\n\nexport default InvoiceList;\n\nInvoiceList.defaultProps = {\n invoiceType: 'rev share',\n id: '',\n bpName: '',\n channelInvoiceType: 'all',\n};\n\nInvoiceList.propTypes = {\n loader: bool.isRequired,\n invoiceType: string,\n id: string,\n bpName: string,\n channelInvoiceType: string,\n memberData: arrayOf(shape({})).isRequired,\n};\n\nconst Wrapper = styled.div`\n td {\n padding: 20px 10px 3px 0px !important;\n }\n .statusContainer {\n margin-top: 0px !important;\n }\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { arrayOf, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport MetricsInvoices from './MetricsInvoices';\nimport InvoiceList from './InvoiceList';\nimport { PageLoader } from '../../../../../common';\nimport { getMetricsInvoiceData } from '../../../../../api';\n\nconst Invoice = ({\n onLoading,\n id,\n invoiceType,\n channelInvoiceType,\n bpName,\n memberData,\n}) => {\n const [loader, setLoader] = useState(false);\n const [invoiceMetricsData, setInvoiceMetricsData] = useState(null);\n const mounted = useRef(false);\n\n // get invoice metrics data\n const getInvoiceMericsData = useCallback(\n (type, channelType) => {\n setLoader(true);\n\n getMetricsInvoiceData(type, id, channelType).then((response) => {\n if (mounted.current) {\n if (response?.status === 200 && response?.data) {\n setInvoiceMetricsData(response?.data);\n setLoader(false);\n } else {\n setInvoiceMetricsData(null);\n setLoader(false);\n }\n }\n });\n },\n [id],\n );\n\n // use effect for get invoice metrics data\n useEffect(() => {\n mounted.current = true;\n getInvoiceMericsData(invoiceType, channelInvoiceType);\n return () => {\n mounted.current = false;\n };\n }, [channelInvoiceType, getInvoiceMericsData, invoiceType]);\n\n useEffect(() => {\n onLoading(loader);\n }, [loader, onLoading]);\n\n return (\n
    \n {loader ? (\n \n ) : (\n <>\n \n \n \n )}\n
    \n );\n};\n\nexport default Invoice;\n\nInvoice.defaultProps = {\n invoiceType: 'rev share',\n channelInvoiceType: 'all',\n onLoading: () => {},\n bpName: '',\n};\n\nInvoice.propTypes = {\n id: string.isRequired,\n invoiceType: string,\n channelInvoiceType: string,\n onLoading: func,\n bpName: string,\n memberData: arrayOf(shape({})).isRequired,\n};\n","import React, { useState, useEffect } from 'react';\n\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport NumberFormat from 'react-number-format';\nimport { toast } from 'react-toastify';\nimport { bool, func, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../../../theme/Theme';\nimport { GroupUser } from '../../../../../theme/Global';\nimport { CloseIcon } from '../../../../../theme/images';\nimport {\n SpreetailRole,\n billingAddress,\n billingStaticMessage,\n} from '../../../../../constants';\nimport { saveBillingInfo, getBillingDetails } from '../../../../../api';\n\nimport {\n Button,\n ErrorMsg,\n ModalBox,\n PageLoader,\n InputFormField,\n GetInitialName,\n ModalRadioCheck,\n WhiteCard,\n} from '../../../../../common';\n\nexport default function BillingContactList({\n id,\n userInfo,\n onBoardingId,\n showContactModal,\n setShowContactModal,\n data,\n setData,\n additionContactFormData,\n setAdditionContactFormData,\n}) {\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const [selectedContact, setSelectedContact] = useState({});\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [showBtn, setShowBtn] = useState(false);\n const [apiError, setApiError] = useState({});\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [contactForDelete, setContactForDelete] = useState(null);\n\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n minHeight: '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n const tempContact = {\n uniqueKey: Math.random(),\n first_name: '',\n last_name: '',\n email: '',\n phone_number: '',\n channel: '',\n };\n\n // useEffect(() => {\n // getBillingDetails(id).then((response) => {\n // setData(response?.data);\n // });\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, []);\n\n useEffect(() => {\n if (Object.keys(selectedContact)?.length !== 0) {\n setAdditionContactFormData(selectedContact);\n } else {\n if (!data?.billing_contact?.length) {\n tempContact.primary_contact = true;\n }\n setAdditionContactFormData(tempContact);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedContact, data]);\n\n useEffect(() => {\n if (\n additionContactFormData?.first_name &&\n additionContactFormData?.last_name &&\n additionContactFormData?.email\n ) {\n setShowBtn(true);\n }\n }, [additionContactFormData]);\n\n const handleChange = (event, item, type) => {\n if (type === 'primaryContact') {\n setAdditionContactFormData({\n ...additionContactFormData,\n [item.key]: true,\n });\n } else {\n setAdditionContactFormData({\n ...additionContactFormData,\n [item.key]: event.target.value,\n });\n }\n setApiError({\n ...apiError,\n [type]: {\n ...apiError[type],\n [item.key]: '',\n },\n 0: '',\n });\n };\n\n const saveBillingData = () => {\n setIsLoading({ loader: true, type: 'button' });\n\n const details = {\n billing_contact: [additionContactFormData],\n billing_address: data?.billing_address?.[0],\n customer_onboarding:\n data?.customer_onboarding ||\n userInfo.customer_onboarding ||\n onBoardingId,\n };\n\n const contactType = !additionContactFormData?.id\n ? 'newContactDataDetails'\n : null;\n const toastTextMessage = contactType\n ? 'Contact added successfully'\n : 'Contact updated successfully';\n\n saveBillingInfo(details, data?.id ? data?.id : null, contactType).then(\n (res) => {\n if (res?.status === 200 || res?.status === 201) {\n setIsLoading({ loader: false, type: 'button' });\n setShowContactModal(false);\n toast.success(toastTextMessage);\n getBillingDetails(id).then((response) => {\n setData(response?.data);\n });\n setAdditionContactFormData({});\n setApiError({});\n } else {\n setIsLoading({ loader: false, type: 'button' });\n let contact = {};\n contact = res?.data?.billing_contact?.[0];\n\n setApiError({\n billing_contact: contact,\n });\n }\n },\n );\n };\n\n const generateInput = (item, type) => {\n return (\n handleChange(event, item, type)}\n maxLength={item.key === 'postal_code' ? 10 : ''}\n />\n );\n };\n\n const generateNumeric = (item, type) => {\n return (\n handleChange(event, item, type)}\n placeholder={`Enter ${item.label}`}\n defaultValue={additionContactFormData?.[item.key]}\n isNumericString\n />\n );\n };\n\n const mapContactDetails = () => {\n return (\n <>\n
    \n
    \n \n \n Set as default\n \n handleChange(\n event,\n { key: 'primary_contact' },\n 'primaryContact',\n )\n }\n checked={additionContactFormData?.primary_contact}\n />\n \n \n \n
    \n
    \n
    \n {billingAddress\n .filter((op) => op.section === 'contact')\n .map((item) => {\n return (\n
    \n \n \n \n \n {apiError?.billing_contact?.[item.key]?.[0]}\n \n
    \n );\n })}\n
    \n \n );\n };\n\n const deleteContact = () => {\n setIsLoading({ loader: true, type: 'button' });\n saveBillingInfo(\n { billing_contact_id: contactForDelete?.id },\n data?.id,\n ).then((res) => {\n if (res?.status === 200) {\n setIsLoading({ loader: false, type: 'button' });\n setShowDeleteModal(false);\n setAdditionContactFormData({});\n toast.success('Contact deleted successfully');\n getBillingDetails(id).then((response) => {\n setData(response?.data);\n });\n }\n });\n };\n\n const renderContacts = (channel) => {\n // PDV-9763 - Contact Sync Automation\n const billingContacts = data?.billing_contact?.filter(\n (item) => item?.channel === channel,\n );\n\n const primaryContacts =\n billingContacts?.length &&\n billingContacts?.filter((item) => item?.primary_contact);\n\n if (billingContacts?.length) {\n return billingContacts?.map((item) => {\n return (\n \n
    \n
    \n \n {data?.id ? (\n \n ) : (\n ''\n )}\n
    \n {`${item?.first_name} ${item?.last_name}`}\n {item?.primary_contact ? (\n Default\n ) : (\n ''\n )}\n
    \n
    {item?.email}
    \n
    \n
    \n {item?.phone_number}\n
    \n
    \n
    \n \n
    \n
    \n {!isSpreetailUser ? (\n
      \n {\n setSelectedContact(item);\n setAdditionContactFormData(item);\n setShowContactModal(true);\n }}\n role=\"presentation\"\n >\n {' '}\n Edit\n \n {(item?.primary_contact && primaryContacts?.length <= 1) ||\n billingContacts?.length < 1 ? null : (\n {\n setShowDeleteModal(true);\n setContactForDelete(item);\n }}\n role=\"presentation\"\n >\n \n Delete\n \n )}\n
    \n ) : null}\n
    \n
    \n
    \n \n );\n });\n }\n return '';\n };\n\n const renderContactEditModal = () => {\n return (\n \n \n {\n setShowDeleteModal(false);\n setApiError({});\n setShowBtn(false);\n setShowContactModal(false);\n setAdditionContactFormData({});\n }}\n role=\"presentation\"\n />\n
    \n {showContactModal ? (\n <>\n

    Add Additional Billing Contact

    \n
    \n \n {apiError && apiError[0]}\n \n {mapContactDetails()}\n
    \n \n ) : (\n ''\n )}\n
    \n {showBtn ? (\n <>\n
    \n saveBillingData()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n `${\n !additionContactFormData?.id\n ? 'Confirm and Add New Contact'\n : 'Confirm and Save'\n }`\n )}\n \n
    \n \n ) : (\n ''\n )}\n
    \n \n );\n };\n\n const renderContactDeleteModal = () => {\n return (\n \n \n {\n setShowDeleteModal(false);\n setApiError({});\n setAdditionContactFormData({});\n }}\n role=\"presentation\"\n />{' '}\n
    \n {showDeleteModal ? (\n <>\n

    CONFIRM CONTACT DELETE

    \n
    \n \n {`Are you sure you would like to delete ${contactForDelete?.first_name} ${contactForDelete?.last_name}\n from your Contacts List? This action cannot be undone.`}\n \n
    \n \n ) : (\n ''\n )}\n
    \n
    \n deleteContact()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Confirm & Delete'\n )}\n \n
    \n
    \n \n );\n };\n\n // display billing contact details\n const displayBillingContactDetails = (channel) => {\n return (\n <>\n
    {`${\n channel === 'amazon' ? 'Amazon' : 'Walmart'\n } Billing Recipients`}
    \n {channel === 'walmart' ? (\n {billingStaticMessage?.walmartRecipientMessage}\n ) : null}\n {renderContacts(channel)}\n {!isSpreetailUser ? (\n <>\n {data?.billing_contact?.find((item) => item?.primary_contact) ? (\n {\n setShowContactModal(true);\n setAdditionContactFormData({ channel });\n }}\n >\n \n Add Additional Billing Contact\n \n ) : (\n ''\n )}\n \n ) : null}\n \n );\n };\n\n return (\n
    \n \n

    Billing Contacts

    \n {displayBillingContactDetails('amazon')}\n {/* PDV-9763 - Contact Sync Automation */}\n {displayBillingContactDetails('walmart')}\n {renderContactEditModal()}\n {renderContactDeleteModal()}\n
    \n
    \n );\n}\n\nBillingContactList.defaultProps = {\n onBoardingId: '',\n showContactModal: false,\n additionContactFormData: {},\n setData: () => {},\n setShowContactModal: () => {},\n setAdditionContactFormData: () => {},\n};\n\nBillingContactList.propTypes = {\n id: string.isRequired,\n userInfo: shape({\n customer_onboarding: string,\n }).isRequired,\n onBoardingId: string,\n showContactModal: bool,\n data: shape({\n billing_contact: shape({}),\n }).isRequired,\n additionContactFormData: shape({}),\n setData: func,\n setShowContactModal: func,\n setAdditionContactFormData: func,\n};\n\nconst CardOuter = styled.div`\n .edit-delete-icons {\n list-style-type: none;\n margin: 0;\n padding: 0;\n display: none;\n\n li {\n margin-right: 10px;\n display: block;\n color: #171725;\n font-size: 14px;\n cursor: pointer;\n margin-bottom: 3px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n :hover {\n .edit-delete-icons {\n display: block;\n }\n }\n`;\n\nconst DeleteContent = styled.div`\n margin-top: 20px;\n font-size: ${Theme.extraMedium};\n color: ${Theme.black};\n`;\n\nconst AddContactButton = styled.div`\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n\n /* .fa-plus {\n margin-right: 9px;\n color: ${Theme.baseColor};\n } */\n\n :hover {\n color: #ff5933;\n cursor: pointer;\n }\n`;\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport Modal from 'react-modal';\nimport Select, { components } from 'react-select';\nimport NumberFormat from 'react-number-format';\nimport ReactTooltip from 'react-tooltip';\nimport { toast } from 'react-toastify';\nimport { shape, string, arrayOf } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport BillingContactList from './BillingContactList';\nimport {\n SpreetailRole,\n billingAddress,\n paymentTermValueLabel,\n} from '../../../../../constants';\nimport {\n CloseIcon,\n EditOrangeIcon,\n helpCircleIcon,\n} from '../../../../../theme/images';\nimport {\n getBillingDetails,\n getPaymentTermsDetails,\n getPaymentTermsOptions,\n saveBillingInfo,\n saveDSPContact,\n savePaymentTerms,\n} from '../../../../../api';\nimport {\n Button,\n InputFormField,\n ErrorMsg,\n ModalBox,\n PageLoader,\n WhiteCard,\n CustomDropDown,\n DropdownIndicator,\n ErrorMsgBox,\n} from '../../../../../common';\n\nexport default function BillingDetails({\n id,\n userInfo,\n onBoardingId,\n customerStatus,\n memberData,\n}) {\n const { Option, SingleValue } = components;\n\n // https://bbe.atlassian.net/browse/PDV-9155 - Removing hard coded user emails and integrating dynamic access to edit payment terms\n const hasEditPaymentTermsAccess =\n ['BGS Admin', 'Finance'].includes(userInfo?.role) ||\n userInfo?.payment_term_team;\n\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const [data, setData] = useState({});\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [showModal, setShowModal] = useState({ type: '', isOpen: false });\n const [showPaymentTermsModal, setShowPaymentTermsModal] = useState(false);\n const [apiError, setApiError] = useState({});\n const [formData, setFormData] = useState({});\n const [paymentTermsData, setPaymentTermsData] = useState([]);\n const [paymentTermsOptions, setPaymentTermsOptions] = useState([]);\n const [paymentTermsValue, setPaymentTermsValue] = useState([]);\n const [showBtn, setShowBtn] = useState(false);\n const [showDSPModal, setShowDSPModal] = useState(false);\n const [showDSPErrorTostr, setShowDSPErrorTostr] = useState(false);\n const [isAllowToEdit, setIsAllowToEdit] = useState(false);\n const [showContactModal, setShowContactModal] = useState(false);\n const [additionContactFormData, setAdditionContactFormData] = useState({});\n\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n minHeight: '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n const renderDspToolTipInfo = `The payment terms you select here will only apply to one-time DSP invoices.
    \n (Standard monthly DSP invoices have default payment terms which cannot be changed.)`;\n\n const billingDetails = useCallback(() => {\n setIsLoading({ loader: true, type: 'page' });\n getBillingDetails(id).then((response) => {\n setData(response?.data);\n\n setIsLoading({ loader: false, type: 'page' });\n setFormData({\n billing_contact: response?.data?.billing_contact?.[0],\n billing_address: response?.data?.billing_address?.[0],\n });\n });\n }, [id]);\n\n const getPaymentTerms = useCallback(() => {\n setIsLoading({ loader: true, type: 'page' });\n getPaymentTermsDetails(id).then((response) => {\n setIsLoading({ loader: false, type: 'page' });\n setPaymentTermsData(response?.data?.results);\n });\n getPaymentTermsOptions(id).then((response) => {\n setIsLoading({ loader: false, type: 'page' });\n setPaymentTermsOptions(response?.data);\n });\n }, [id]);\n\n // https://bbe.atlassian.net/browse/PDV-9155 - Removing hard coded user emails and integrating dynamic access to edit payment terms\n // use effect for edit payment term access\n useEffect(() => {\n if (hasEditPaymentTermsAccess) {\n setIsAllowToEdit(true);\n } else {\n for (const user of memberData) {\n if (user.user) {\n if (\n (user?.role_group?.name === 'BGS Manager' ||\n user?.role_group?.name === 'BGS') &&\n user?.user?.id === userInfo?.id\n ) {\n setIsAllowToEdit(true);\n break;\n }\n }\n }\n }\n }, [hasEditPaymentTermsAccess, memberData, userInfo]);\n\n useEffect(() => {\n billingDetails();\n getPaymentTerms();\n }, [billingDetails, getPaymentTerms]);\n\n const mapDefaultValues = (type, key) => {\n if (type === 'dsp_contact') {\n return key;\n }\n\n if (data?.[type]?.[0]) {\n return data[type][0][key];\n }\n return '';\n };\n const renderPaymentTermLabel = (value) => {\n return paymentTermValueLabel.filter((field) => field.value === value)[0]\n ?.label !== undefined ? (\n paymentTermValueLabel.filter((field) => field.value === value)[0].label\n ) : (\n
    {value}
    \n );\n };\n\n const mapPaymentTermsDefaultValues = (type, label) => {\n const value = paymentTermsData.filter((op) => op.invoice_type === type);\n return value?.length ? (\n
    \n {label === 'Dsp' ? (\n <>\n
    \n DSP (one-time)\n \n
    \n \n \n ) : (\n
    {label}
    \n )}\n
    \n {renderPaymentTermLabel(value?.[0]?.payment_term)}\n
    \n
    \n ) : null;\n };\n\n const handleChange = (event, item, type) => {\n setShowBtn(true);\n setFormData({\n ...formData,\n [type]: {\n ...formData[type],\n [item.key]: event.target.value,\n },\n });\n setApiError({\n ...apiError,\n [type]: {\n ...apiError[type],\n [item.key]: '',\n 0: {\n [item.key]: '',\n },\n },\n 0: '',\n });\n };\n const handlePaymentTermChange = (event, type) => {\n setShowBtn(true);\n setPaymentTermsValue([\n ...paymentTermsValue,\n {\n invoice_type: type,\n payment_term: event.value,\n },\n ]);\n };\n\n const generateNumeric = (item, type) => {\n return (\n handleChange(event, item, type)}\n placeholder={`Enter ${item.label}`}\n defaultValue={formData?.[type]?.[item.key]}\n isNumericString\n />\n );\n };\n\n const generateInput = (item, type) => {\n return (\n handleChange(event, item, type)}\n maxLength={item.key === 'postal_code' ? 10 : ''}\n />\n );\n };\n\n const mapContactDetails = (type) => {\n return (\n
    \n {billingAddress\n .filter((op) => op.section === 'contact')\n .map((item) => {\n return (\n \n \n \n \n \n {apiError?.billing_contact?.[0]?.[item.key]?.[0]}\n \n
    \n );\n })}\n
    \n );\n };\n\n const mapAddressDetails = () => {\n return (\n
    \n {billingAddress\n .filter((op) => op.section === 'address')\n .map((item) => {\n return (\n \n \n \n \n \n {apiError?.billing_address?.[item.key]?.[0]}\n \n
    \n );\n })}\n
    \n );\n };\n\n const getOptions = () => {\n const options = paymentTermsOptions.filter((op) => op.value !== 'standard');\n return options;\n };\n\n const dropdownSingleFilterOption = (props) => (\n \n {props.data.label}\n\n
    {props.data.sub}
    \n
    \n );\n\n const dropdownFilterOption = (props) => (\n \n );\n\n const getDropdDownComponents = () => {\n return {\n Option: dropdownFilterOption,\n SingleValue: dropdownSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n const generateDropdown = (type) => {\n const value = paymentTermsData.filter((op) => op.invoice_type === type);\n const invoiceType = value?.length ? value[0].invoice_type : null;\n const paymentTerm = value?.length ? value[0].payment_term : null;\n return (\n ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n styles={{\n menuPortal: (base) => ({ ...base, zIndex: 9999 }),\n option: (provided) => ({\n ...provided,\n color: 'black',\n }),\n }}\n menuPortalTarget={document.body}\n name={invoiceType}\n components={getDropdDownComponents()}\n onChange={(event) => handlePaymentTermChange(event, type)}\n />\n );\n };\n\n const mapPaymentTermsModalDetails = (type, label) => {\n const paymentTerm = paymentTermsData?.filter(\n (item) => item?.invoice_type === type,\n );\n return paymentTerm?.length ? (\n
    \n
    \n {label}\n {paymentTerm[0].invoice_type === 'dsp service' ? (\n \n ) : null}\n
    \n \n \n {generateDropdown(paymentTerm[0].invoice_type)}\n \n
    \n ) : null;\n };\n\n const saveBillingData = () => {\n setIsLoading({ loader: true, type: 'button' });\n if (showDSPModal && formData.dsp_contact) {\n saveDSPContact(\n { ...formData.dsp_contact, customer: id },\n formData?.dsp_contact?.id,\n ).then((res) => {\n if (res?.status === 400) {\n setApiError({ ...apiError, dsp_contact: res.data });\n if (\n res.data?.first_name?.[0].includes(\n 'This field may not be blank.',\n ) ||\n res.data?.last_name?.[0].includes('This field may not be blank.') ||\n res.data?.email?.[0].includes('This field may not be blank.') ||\n res.data?.first_name?.[0].includes('This field is required.') ||\n res.data?.last_name?.[0].includes('This field is required.') ||\n res.data?.email?.[0].includes('This field is required.')\n ) {\n setShowDSPErrorTostr(true);\n setTimeout(() => {\n setShowDSPErrorTostr(false);\n }, 4000);\n } else setShowDSPErrorTostr(false);\n\n setIsLoading({ loader: false, type: 'button' });\n }\n if (res?.status === 201 || res?.status === 200) {\n setShowDSPModal(false);\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n } else {\n let details = {\n customer_onboarding:\n data?.customer_onboarding ||\n userInfo.customer_onboarding ||\n onBoardingId,\n };\n if (\n formData?.billing_address &&\n Object.keys(formData.billing_address).length !== 0\n ) {\n details = {\n ...details,\n ...formData,\n billing_address: formData?.billing_address,\n };\n }\n if (\n formData?.billing_contact &&\n Object.keys(formData.billing_contact).length !== 0\n ) {\n const billingContact = formData?.billing_contact || null;\n if (billingContact) {\n billingContact.primary_contact = true;\n }\n details = {\n ...details,\n ...formData,\n billing_contact: [billingContact],\n };\n }\n\n saveBillingInfo(\n details,\n formData?.old_billinginfo_id ? null : data?.id,\n ).then((res) => {\n if (res?.status === 200 || res?.status === 201) {\n setIsLoading({ loader: false, type: 'button' });\n billingDetails();\n setShowModal({ type: '', isOpen: false });\n setShowBtn(false);\n }\n if (res?.status === 400) {\n setIsLoading({ loader: false, type: 'button' });\n setApiError(res?.data);\n }\n });\n }\n };\n\n const savePaymentTermsData = () => {\n setIsLoading({ loader: true, type: 'button' });\n savePaymentTerms(paymentTermsValue, id).then((res) => {\n if (res?.status === 200 || res?.status === 201) {\n setIsLoading({ loader: false, type: 'button' });\n getPaymentTerms();\n setShowModal({ type: '', isOpen: false });\n setShowPaymentTermsModal(false);\n setShowBtn(false);\n toast.success('You have successfully changed your payment terms');\n }\n if (res?.status === 400) {\n setIsLoading({ loader: false, type: 'button' });\n setApiError(res && res.data);\n }\n });\n };\n\n const renderPaymentTermsPanel = () => {\n return (\n \n

    Payment Terms

    \n {isAllowToEdit ? (\n setShowPaymentTermsModal(true)}\n >\n \"\"\n Edit\n
    \n ) : (\n ''\n )}\n
    \n {mapPaymentTermsDefaultValues('retainer', 'Monthly Retainer')}\n {mapPaymentTermsDefaultValues('rev share', 'Revenue share')}\n {mapPaymentTermsDefaultValues('dsp service', 'Dsp')}\n {mapPaymentTermsDefaultValues('upsell', 'Upsells')}\n {mapPaymentTermsDefaultValues('amc service', 'AMC')}\n
    \n
    \n );\n };\n\n const renderBillingAddressPanel = () => {\n return (\n \n

    Billing Address

    \n\n {!isSpreetailUser && customerStatus?.value !== 'pending' ? (\n \n setShowModal({ type: 'billingAddress', isOpen: true })\n }\n >\n \"\"\n Edit\n
    \n ) : null}\n
    \n
    \n {' '}\n
    Address
    \n
    \n {mapDefaultValues('billing_address', 'address')}\n
    \n
    \n
    \n
    State
    \n
    \n {mapDefaultValues('billing_address', 'state')}\n
    \n
    \n\n
    \n
    City
    \n
    \n {mapDefaultValues('billing_address', 'city')}\n
    \n
    \n
    \n
    Postal Code
    \n
    \n {mapDefaultValues('billing_address', 'postal_code')}\n
    \n
    \n
    \n \n );\n };\n\n const renderBillingContactsPanel = () => {\n return (\n <>\n \n \n );\n };\n\n const renderPaymentTermsEditModal = () => {\n return (\n \n {\n setShowPaymentTermsModal(false);\n setShowBtn(false);\n setApiError({});\n }}\n role=\"presentation\"\n />\n \n
    \n

    Payment Terms

    \n
    \n
    \n {mapPaymentTermsModalDetails('retainer', 'Monthly Retainer')}\n {mapPaymentTermsModalDetails('rev share', 'Revenue share')}\n {mapPaymentTermsModalDetails('dsp service', 'Dsp (one-time)')}\n {mapPaymentTermsModalDetails('upsell', 'Upsells')}\n {mapPaymentTermsModalDetails('amc service', 'AMC')}\n
    \n
    \n
    \n\n
    \n
    \n savePaymentTermsData()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Save Changes'\n )}\n \n
    \n \n \n );\n };\n\n const renderDSPContactModal = () => {\n return (\n \n {\n setShowModal({ type: '', isOpen: false });\n setShowBtn(false);\n setApiError({});\n setShowDSPModal(false);\n billingDetails();\n }}\n role=\"presentation\"\n />\n \n {' '}\n
    \n {showDSPModal ? (\n <>\n

    Edit DSP Contact

    \n
    \n {showDSPErrorTostr ? (\n \n You need to fill out all required fields before submitting\n the DSP Contact.\n \n ) : null}\n {mapContactDetails('dsp')}\n \n ) : (\n <>\n

    Payment Details

    \n
    \n \n {apiError && apiError[0]}\n \n
    \n\n {showModal?.type === 'billingAddress' ? (\n <>\n

    Billing Address

    \n {mapAddressDetails()}\n \n ) : null}\n {showModal?.type === 'billingContact' ? (\n <>\n

    Billing Contact

    \n {mapContactDetails('billing')}\n \n ) : null}\n
    \n \n )}\n
    \n {showBtn ? (\n <>\n
    \n
    \n saveBillingData()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Confirm'\n )}\n \n {\n setShowModal({ type: '', isOpen: false });\n setShowBtn(false);\n setApiError({});\n setShowDSPModal(false);\n billingDetails();\n }}\n >\n Discard Changes\n \n
    \n \n ) : (\n ''\n )}\n \n \n );\n };\n\n return (\n <>\n {' '}\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n
    \n
    \n
    \n {paymentTermsData?.length ? renderPaymentTermsPanel() : ''}\n {renderBillingAddressPanel()}\n
    \n {renderBillingContactsPanel()}\n
    \n
    \n )}\n {renderDSPContactModal()}\n {/* payment terms edit modal */}\n {renderPaymentTermsEditModal()}\n \n );\n}\n\nBillingDetails.defaultProps = {\n onBoardingId: null,\n customerStatus: null,\n memberData: [],\n data: {},\n};\n\nBillingDetails.propTypes = {\n id: string.isRequired,\n userInfo: shape({\n customer_onboarding: string,\n }).isRequired,\n onBoardingId: string,\n customerStatus: shape({}),\n memberData: arrayOf(shape({})),\n data: shape({\n label: string,\n sub: string,\n }),\n};\n","import React, { useEffect, useState } from 'react';\n\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { shape, string, arrayOf } from 'prop-types';\n\nimport Invoice from './Invoice/Invoice';\nimport BillingDetails from './BillingDetails/BillingDetails';\nimport {\n Tabs,\n ViewData,\n WhiteCard,\n DropdownIndicator,\n SingleSelectDropdown,\n GrayMessageBar,\n} from '../../../../common';\nimport {\n billingNavigationOptions,\n channelInvoiceTypeOptions,\n financeTabsOptions,\n PATH_CUSTOMER_DETAILS,\n} from '../../../../constants';\n\nconst BillingContainer = ({\n id,\n userInfo,\n onBoardingId,\n customerStatus,\n redirectType,\n bpName,\n memberData,\n isBBEInternalUser,\n childBPList,\n}) => {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in billing section\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const billingDynamicMessage =\n params?.nav === 'retainer'\n ? dynamicMessages?.billing_section_monthly_retainer?.placeholder\n : params?.nav === 'rev share'\n ? dynamicMessages?.billing_section_rev_share?.placeholder\n : params?.nav === 'upsell'\n ? dynamicMessages?.billing_section_upsell?.placeholder\n : params?.nav === 'dsp service'\n ? dynamicMessages?.billing_section_dsp?.placeholder\n : params?.nav === 'amc service'\n ? dynamicMessages?.billing_section_amc?.placeholder\n : params?.nav === 'billing-details'\n ? dynamicMessages?.billing_section_billing_details?.placeholder\n : null;\n\n // https://bbe.atlassian.net/browse/PDV-9667\n // As an internal user, I should be able to view and identify the type of invoices issued to the BP under the billing section\n const showChannelInvoiceTypeFilter =\n params?.nav === 'retainer' ||\n params?.nav === 'rev share' ||\n params?.nav === 'upsell';\n\n const [channelInvoiceTypes, setChannelInvoiceTypes] = useState(\n params?.nav === 'retainer'\n ? channelInvoiceTypeOptions?.monthlyRetainer\n : params?.nav === 'rev share'\n ? channelInvoiceTypeOptions?.revShare\n : params?.nav === 'upsell'\n ? channelInvoiceTypeOptions?.upsell\n : [],\n );\n\n const [viewComponent, setViewComponent] = useState(redirectType);\n const [loader, setLoader] = useState(false);\n const [selectedCustomerId, setSelectedCustomerId] = useState(\n childBPList?.length ? childBPList?.[0]?.value : id,\n );\n const [selectedChannelInvoiceType, setSelectedChannelInvoiceType] = useState(\n channelInvoiceTypes?.[0],\n );\n\n useEffect(() => {\n if (childBPList.length) {\n setSelectedCustomerId(childBPList[0]?.value);\n }\n }, [childBPList]);\n\n const onLoading = (value) => {\n setLoader(value);\n };\n\n // handle billing tab change events\n const handleBillingTabClickEvents = (item) => {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(':id', id)}?tab=billing&nav=${\n item?.key || params?.nav\n }&access=${isBBEInternalUser}`,\n item.key,\n );\n\n setViewComponent(item.key);\n // logic - change the dropdwon options as per the billing tab when user click on it.\n const dropdownOptions =\n item?.key === 'retainer'\n ? channelInvoiceTypeOptions?.monthlyRetainer\n : item?.key === 'rev share'\n ? channelInvoiceTypeOptions?.revShare\n : item?.key === 'upsell'\n ? channelInvoiceTypeOptions?.upsell\n : [];\n setChannelInvoiceTypes(dropdownOptions);\n setSelectedChannelInvoiceType(dropdownOptions?.[0]);\n };\n\n // handle child bp filter events\n const handleChildBPFilterEvents = (event) => {\n if (event?.value !== selectedCustomerId) {\n setSelectedCustomerId(event?.value);\n }\n };\n\n // handle channel invoice type filter events\n const handleChannelInvoiceTypeFilterEvents = (event) => {\n if (event?.value !== selectedChannelInvoiceType?.value) {\n setSelectedChannelInvoiceType(event);\n }\n };\n\n // get single select dropdown components\n const getSingleSelectComponents = () => {\n return {\n DropdownIndicator,\n };\n };\n\n // display single select dropdown filter\n const displaySingleSelectDropdownfilter = (\n filterId,\n dropdownOptions,\n selectedValue,\n onChangeHandler,\n dropdownComponents,\n isApiCall,\n ) => {\n return (\n \n );\n };\n\n // display child bp filter\n const displayChildBPFilter = () => {\n return (\n op?.value === selectedCustomerId,\n )}\n onChangeHandler={handleChildBPFilterEvents}\n dropdownComponents={getSingleSelectComponents}\n isApiCall={loader}\n isSearchable={false}\n />\n );\n };\n\n // display billing filters\n const displayBillingFilters = () => {\n return (\n \n \n
    \n \n
    View data for:
    \n
    \n
    \n {childBPList?.length ? displayChildBPFilter() : null}\n
    \n {showChannelInvoiceTypeFilter ? (\n
    \n {displaySingleSelectDropdownfilter(\n 'BT-billingChannelInvoiceTypeFilter',\n channelInvoiceTypes,\n selectedChannelInvoiceType,\n handleChannelInvoiceTypeFilterEvents,\n getSingleSelectComponents,\n loader,\n )}\n
    \n ) : null}\n
    \n \n \n );\n };\n\n return (\n
    \n \n
      \n {financeTabsOptions.map((item) => {\n return (\n {\n handleBillingTabClickEvents(item);\n }}\n role=\"presentation\"\n >\n {item.value}\n \n );\n })}\n\n {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=billing&nav=billing-details&access=${isBBEInternalUser}`,\n 'Billing',\n );\n setViewComponent('Billing');\n }}\n role=\"presentation\"\n >\n Billing Details\n \n
    \n
    \n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in billing section */}\n {billingDynamicMessage ? (\n \n ) : null}\n {/* billing filters row */}\n {childBPList?.length || showChannelInvoiceTypeFilter\n ? displayBillingFilters()\n : null}\n {billingNavigationOptions.includes(viewComponent) ? (\n op?.value === selectedCustomerId)\n ?.label || bpName\n }\n memberData={memberData}\n />\n ) : (\n \n )}\n
    \n );\n};\n\nexport default BillingContainer;\n\nBillingContainer.defaultProps = {\n onBoardingId: null,\n customerStatus: {},\n redirectType: 'retainer',\n bpName: '',\n isBBEInternalUser: 'internal',\n childBPList: [],\n};\n\nBillingContainer.propTypes = {\n id: string.isRequired,\n userInfo: shape({\n customer_onboarding: string,\n }).isRequired,\n onBoardingId: string,\n customerStatus: shape({}),\n redirectType: string,\n bpName: string,\n memberData: arrayOf(shape({})).isRequired,\n isBBEInternalUser: string,\n childBPList: arrayOf(shape({})),\n};\n","/* eslint-disable no-inner-declarations */\n/* eslint-disable camelcase */\nimport React, { useEffect, useRef } from 'react';\n\nimport { arrayOf, shape, string } from 'prop-types';\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport 'react-date-range/dist/styles.css';\nimport 'react-date-range/dist/theme/default.css';\n\nimport {\n SummaryGraphColorSet as colorSet,\n tooltipNames,\n} from '../../../../constants/SummaryDashabordConstants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\n\nconst _ = require('lodash');\n\nexport default function SummaryPerformanceChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n groupBy,\n}) {\n const chart = useRef(null);\n useEffect(() => {\n const sameAxisValue = [\n 'revenueTotal',\n 'revenuePpc',\n 'revenueOrganic',\n 'revenueDsp',\n 'sponsoredAdSpend',\n 'dspSpend',\n 'adSpendTotal',\n ];\n\n // function to generate complete tooltip html\n function generateToolTipHTML(tooltipValue, startDate, endDate) {\n let html = '';\n if (groupBy === 'weekly' || groupBy === 'monthly') {\n html = `
    \n From - ${startDate} To - ${endDate}\n
    \n ${tooltipValue}`;\n } else {\n html = tooltipValue;\n }\n\n return html;\n }\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 20;\n chart.current.logo.disabled = true;\n\n // create value axis function\n function createValueAxis() {\n const localValueAxis = chart.current.yAxes.push(\n new am4charts.ValueAxis(),\n );\n localValueAxis.renderer.grid.template.disabled = true;\n localValueAxis.cursorTooltipEnabled = false;\n localValueAxis.renderer.baseGrid.disabled = true;\n localValueAxis.numberFormatter = new am4core.NumberFormatter();\n localValueAxis.numberFormatter.numberFormat = `#.#a`;\n localValueAxis.extraMax = 0.005;\n localValueAxis.min = 0;\n localValueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n localValueAxis.numberFormatter.smallNumberPrefixes = [];\n return localValueAxis;\n }\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n \n `;\n\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (sameAxisValue.includes(item)) {\n format = `${currencySymbol}#.#a`;\n } else if (item === 'unitsSold' || item === 'traffic') {\n format = `#.#a`;\n } else if (item === 'conversion') {\n format = `#.#'%'`;\n }\n return format;\n }\n\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n\n // create object of first value axis\n const valueAxis = createValueAxis();\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n const selectedMetricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMetricsFlag) {\n // create object of 2nd value axis\n let valueAxis2;\n const snapToSeries = [];\n let tooltipValue = '';\n let firstAxis = null;\n\n // loop for generate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n const previousLabel = `${item}PreviousLabel`;\n const colorCode = colorSet[item];\n\n tooltipValue = `${tooltipValue} ${_.startCase(item)}`;\n if (sameAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n }\n } else if (item === 'traffic' || item === 'unitsSold') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n null,\n '#,###',\n )}`;\n }\n } else if (item === 'conversion') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n '%',\n null,\n )}`;\n }\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const previousValue = `${item}Previous`;\n const seriesName = `${item}Series`;\n const colorCode = colorSet[item];\n\n if (index === 0) {\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (sameAxisValue.includes(item)) {\n firstAxis = 'currency';\n } else {\n firstAxis = 'other';\n }\n }\n if (index === 1) {\n if (sameAxisValue.includes(item)) {\n if (firstAxis === 'currency') {\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n } else {\n // create second value axis\n valueAxis2 = createValueAxis();\n series.yAxis = valueAxis2;\n series2.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n }\n } else {\n valueAxis2 = createValueAxis();\n series.yAxis = valueAxis2;\n series2.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n }\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n // series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = previousValue;\n series2.name = previousValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n // series2.tooltipHTML = `${tooltipValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n series2.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.previousDate,\n dateRange?.previousEndDate,\n );\n });\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n let firstAxis = null;\n let secondAxis = null;\n let thirdAxis = null;\n let valueAxis2;\n let valueAxis3;\n let valueAxis4;\n\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n\n if (sameAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (item === 'traffic' || item === 'unitsSold') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n } else if (item === 'conversion') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n null,\n '%',\n null,\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n if (index === 0) {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (sameAxisValue.includes(item)) {\n firstAxis = 'currency';\n } else {\n firstAxis = 'other';\n }\n } else if (index === 1) {\n if (sameAxisValue.includes(item)) {\n if (firstAxis === 'currency') {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'currency';\n }\n } else {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n }\n } else if (index === 2) {\n if (sameAxisValue.includes(item)) {\n if (firstAxis === 'currency') {\n series.yAxis = valueAxis;\n\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === 'currency') {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else {\n if (valueAxis3 === undefined) {\n valueAxis3 = createValueAxis();\n }\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n thirdAxis = 'currency';\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n }\n } else if (secondAxis === null) {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else {\n if (valueAxis3 === undefined) {\n valueAxis3 = createValueAxis();\n }\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'other';\n }\n } else if (index === 3) {\n if (sameAxisValue.includes(item)) {\n if (firstAxis === 'currency') {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === 'currency') {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (thirdAxis === 'currency') {\n if (valueAxis3 === undefined) {\n valueAxis3 = createValueAxis();\n }\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n } else {\n if (valueAxis4 === undefined) {\n valueAxis4 = createValueAxis();\n }\n series.yAxis = valueAxis4;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n }\n } else if (secondAxis === null) {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else if (thirdAxis === null) {\n if (valueAxis3 === undefined) {\n valueAxis3 = createValueAxis();\n }\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n } else {\n if (valueAxis4 === undefined) {\n valueAxis4 = createValueAxis();\n }\n series.yAxis = valueAxis4;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis4.renderer.opposite = true;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.labels.template.disabled = true;\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n valueAxis4.renderer.labels.template.disabled = true;\n }\n }\n\n series.dataFields.valueY = `${item}Current`;\n series.dataFields.dateX = 'date';\n series.name = `${item}Series`;\n series.strokeWidth = 2;\n // series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorSet[item]);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorSet[item]);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n return () => chart.current && chart.current.dispose();\n }, [\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n groupBy,\n ]);\n\n return
    ;\n}\n\nSummaryPerformanceChart.defaultProps = {\n chartData: [],\n currencySymbol: '',\n selectedMetrics: {},\n selectedDF: '',\n groupBy: '',\n};\n\nSummaryPerformanceChart.propTypes = {\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n currencySymbol: string,\n selectedMetrics: shape({}),\n selectedDF: string,\n groupBy: string,\n};\n","import styled from 'styled-components';\n\nimport Theme from '../../../../theme/Theme';\n\nconst BreakDown = styled.div`\n .dropdown-revenue-input {\n border-radius: 6px;\n position: relative;\n border: 1px solid ${Theme.gray45};\n width: 75%;\n min-width: 93px;\n text-align: left;\n font-size: ${Theme.extraNormal};\n border-radius: 6px;\n min-height: 32px;\n color: ${Theme.gray85};\n padding: 7px;\n cursor: pointer;\n\n span.selected-list {\n position: fixed;\n color: ${Theme.black};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 65%;\n margin-left: 4px;\n position: absolute;\n }\n\n .dropdown-arrow-icon {\n position: absolute;\n right: 9px;\n top: 9px;\n }\n }\n .dropdown-revenue-filter {\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n padding: 0 14px;\n position: absolute;\n z-index: 99999;\n top: 35px;\n color: ${Theme.gray85};\n text-align: left;\n top: 37px;\n right: 15px;\n width: 100%;\n\n &.hide {\n display: none;\n }\n &.show {\n display: block;\n }\n\n .options-list {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: block;\n padding: 0;\n }\n }\n }\n`;\n\nexport default BreakDown;\n","/* eslint-disable camelcase */\nimport React, { Fragment, useEffect, useRef, useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { components } from 'react-select';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport SummaryPerformanceGraph from './SummaryPerformanceGraph';\nimport useFormatNumber from '../../../../hooks/useFormatNumber';\nimport { ArrowUpIcon, ArrowDownIcon } from '../../../../theme/images';\nimport { setCustomerSelectedTab } from '../../../../store/actions/customerState';\nimport {\n dateOptionsWithYear,\n noGraphDataMessage,\n metricsClasses,\n revenuMetricsSubTypes,\n PATH_CUSTOMER_DETAILS,\n metricsResponseKey,\n adSpendMetricsSubTypes,\n showMetricsTooltipForSales,\n tooltipNames,\n revenuSubTypeKeys,\n metricsTootlNames,\n} from '../../../../constants';\nimport {\n WhiteCard,\n PageLoader,\n CustomDateModal,\n NoData,\n DropdownIndicator,\n ToggleButton,\n CardMetrics,\n CheckBox,\n} from '../../../../common';\n\nimport 'react-date-range/dist/styles.css';\nimport 'react-date-range/dist/theme/default.css';\nimport BreakDown from './SummaryPerformanceStyle';\n\nconst _ = require('lodash');\n\nam4core.useTheme(am4themes_dataviz);\nexport default function SummaryPerformanceView({\n renderCustomDateSubLabel,\n selectedPeformanceMetrics,\n currencySymbol,\n setSelectedPeformanceMetrics,\n handleTimeFrameFilter,\n selectedTimeFrame,\n showCustomDateModal,\n customDateState,\n setShowCustomDateModal,\n setCustomDateState,\n currentDate,\n applyCustomDate,\n handleGroupBy,\n groupBy,\n performanceCurrentTotal,\n performanceDifference,\n performancePreviousTotal,\n performanceGraphLoader,\n summaryPerformanceGraphData,\n isMetricsDisabled,\n isDisabledTimeFrame,\n setIsDisabledTimeFrame,\n daysDiff,\n generateSingleSelectDropdownHTML,\n}) {\n const history = useHistory();\n const dispatch = useDispatch();\n const { Option, SingleValue } = components;\n const customerState = useSelector((state) => state.customerState.data);\n const [isRevenueDropDownOpen, setIsRevenueDropDownOpen] = useState(false);\n const [selectedRevenueSubType, setSelectedRevenueSubType] = useState({\n revenueTotal: true,\n revenuePpc: false,\n revenueDsp: false,\n });\n\n const [isAdSpendDropDownOpen, setIsAdSpendDropDownOpen] = useState(false);\n const [selectedAdSpendSubType, setSelectedAdSpendSubType] = useState({\n adSpendTotal: true,\n sponsoredAdSpend: false,\n dspSpend: false,\n });\n\n function useOutsideAlerter(ref, type) {\n useEffect(() => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n if (type === 'adSpend') setIsAdSpendDropDownOpen(false);\n else setIsRevenueDropDownOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, type]);\n }\n\n const revenueRef = useRef(null);\n useOutsideAlerter(revenueRef, 'revenue');\n const advertisingRef = useRef(null);\n useOutsideAlerter(advertisingRef, 'adSpend');\n\n const filterOption = (props) => (\n \n );\n\n const singleFilterOption = (props) => (\n \n \n {props.data.label}\n \n\n
    \n {renderCustomDateSubLabel(props, 'sp')}\n
    \n
    \n );\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const bindValues = (value, isShowCurrencySymbol) => {\n const decimal = _.split(value, '.', 2);\n if (decimal[1] !== undefined) {\n return (\n \n {isShowCurrencySymbol ? currencySymbol : null}\n {decimal[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n .{decimal[1].slice(0, 2)}\n \n );\n }\n return (\n \n {isShowCurrencySymbol ? currencySymbol : null}\n {decimal[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n \n );\n };\n\n const setPerformanceMetricsClass = (name, classValue) => {\n let selectedClass = '';\n if (\n !performanceCurrentTotal?.revenue &&\n !performancePreviousTotal?.revenue &&\n Object.prototype.hasOwnProperty.call(selectedPeformanceMetrics, name)\n ) {\n selectedClass = `order-chart-box ${classValue} fix-height disabled`;\n } else if (\n !performanceCurrentTotal?.ad_spend_total &&\n !performancePreviousTotal?.ad_spend_total &&\n name === 'adSpendTotal'\n ) {\n selectedClass = `order-chart-box fix-height disabled`;\n } else if (\n Object.prototype.hasOwnProperty.call(selectedPeformanceMetrics, name)\n ) {\n selectedClass = `order-chart-box ${classValue} fix-height`;\n } else if (\n _.size(selectedPeformanceMetrics) === 4 ||\n (isMetricsDisabled[name] &&\n ![\n 'revenueTotal',\n 'revenueOrganic',\n 'revenuePpc',\n 'revenueDsp',\n ].includes(name)) ||\n (['revenueTotal', 'revenueOrganic', 'revenuePpc', 'revenueDsp'].includes(\n name,\n ) &&\n isMetricsDisabled.revenueTotal &&\n isMetricsDisabled.revenueOrganic &&\n isMetricsDisabled.revenuePpc &&\n isMetricsDisabled.revenueDsp)\n ) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n return selectedClass;\n };\n\n const setBoxToggle = (name) => {\n // Below Commented this code beacuase PDV-6723\n // const localMetrics = selectedPeformanceMetrics;\n if (\n Object.prototype.hasOwnProperty.call(selectedPeformanceMetrics, name) &&\n _.size(selectedPeformanceMetrics) > 1\n ) {\n setSelectedPeformanceMetrics(_.omit(selectedPeformanceMetrics, [name]));\n\n // enable the time frame filter when we don't have a disabled selected metrics.\n // const commanElement = _.intersectionWith(\n // _.keys(localMetrics),\n // _.keys(_.pickBy(isMetricsDisabled)),\n // _.isEqual,\n // );\n // if (commanElement.length === 1 && name === commanElement[0]) {\n // setIsDisabledTimeFrame(false);\n // }\n } else if (_.size(selectedPeformanceMetrics) < 4) {\n setSelectedPeformanceMetrics(\n _.omit(_.assign(selectedPeformanceMetrics, { [name]: true })),\n );\n }\n };\n\n const setRevenueMetricsToggle = (name) => {\n const localMetrics = { ...selectedPeformanceMetrics };\n const otherMetrics = [\n 'sponsoredAdSpend',\n 'dspSpend',\n 'adSpendTotal',\n 'unitsSold',\n 'traffic',\n 'conversion',\n ];\n // remove the metrics\n if (\n Object.prototype.hasOwnProperty.call(selectedPeformanceMetrics, name) &&\n _.keys(selectedPeformanceMetrics).some((item) =>\n otherMetrics.includes(item),\n )\n ) {\n // enable the time frame filter when we don't have a disabled selected metrics.\n const commanElement = _.intersectionWith(\n _.keys(localMetrics),\n _.keys(_.pickBy(isMetricsDisabled)),\n _.isEqual,\n );\n\n if (commanElement.length === 1) {\n setIsDisabledTimeFrame(false);\n }\n\n // set the default drop-down value as- revenueTotal\n delete localMetrics.revenueTotal;\n delete localMetrics.revenueDsp;\n delete localMetrics.revenuePpc;\n\n setSelectedPeformanceMetrics(localMetrics);\n setSelectedRevenueSubType({\n revenueTotal: true,\n revenuePpc: false,\n revenueDsp: false,\n });\n } else if (_.size(selectedPeformanceMetrics) < 4) {\n // select the metrics\n setSelectedPeformanceMetrics(\n _.omit(_.assign(selectedPeformanceMetrics, { [name]: true })),\n );\n }\n };\n\n const setAdSpendMetricsToggle = (name) => {\n const localMetrics = { ...selectedPeformanceMetrics };\n const otherMetrics = [\n 'revenueTotal',\n 'revenuePpc',\n 'revenueOrganic',\n 'revenueDsp',\n 'unitsSold',\n 'traffic',\n 'conversion',\n ];\n // remove the metrics\n if (\n Object.prototype.hasOwnProperty.call(selectedPeformanceMetrics, name) &&\n _.keys(selectedPeformanceMetrics).some((item) =>\n otherMetrics.includes(item),\n )\n ) {\n // enable the time frame filter when we don't have a disabled selected metrics.\n const commanElement = _.intersectionWith(\n _.keys(localMetrics),\n _.keys(_.pickBy(isMetricsDisabled)),\n _.isEqual,\n );\n if (commanElement.length === 1) {\n setIsDisabledTimeFrame(false);\n }\n\n // set the default drop-down value as- adSpendTotal\n delete localMetrics.sponsoredAdSpend;\n delete localMetrics.dspSpend;\n delete localMetrics.adSpendTotal;\n\n setSelectedPeformanceMetrics(localMetrics);\n setSelectedAdSpendSubType({\n adSpendTotal: true,\n sponsoredAdSpend: false,\n dspSpend: false,\n });\n } else if (_.size(selectedPeformanceMetrics) < 4) {\n // select the metrics\n setSelectedPeformanceMetrics(\n _.omit(_.assign(selectedPeformanceMetrics, { [name]: true })),\n );\n }\n };\n\n const onHandleRevenueSubType = (event) => {\n // get selected dropdown keys\n let localSelectedSubype = _.keys(\n _.pickBy(selectedRevenueSubType, _.identity),\n );\n\n // at least one option is selected\n if (\n localSelectedSubype.includes(event.target.id) &&\n _.size(localSelectedSubype) === 1\n ) {\n return;\n }\n\n if (\n _.size(selectedPeformanceMetrics) === 3 &&\n !_.keys(selectedPeformanceMetrics).some((item) =>\n localSelectedSubype.includes(item),\n )\n ) {\n setSelectedRevenueSubType({\n ...selectedRevenueSubType,\n revenueTotal: false,\n [event.target.id]: !selectedRevenueSubType[event.target.id],\n });\n localSelectedSubype = _.drop(localSelectedSubype);\n } else {\n setSelectedRevenueSubType({\n ...selectedRevenueSubType,\n [event.target.id]: !selectedRevenueSubType[event.target.id],\n });\n }\n\n // if metrics is not selected and we directly clicked on dropdown option then we we need to set the others option too\n if (!_.keys(selectedPeformanceMetrics).includes(event.target.id)) {\n for (const option of localSelectedSubype) {\n if (!_.keys(selectedPeformanceMetrics).includes(option)) {\n setBoxToggle(option);\n }\n }\n }\n\n setBoxToggle(event.target.id);\n };\n\n const onHandleAdSpendeSubType = (event) => {\n // get selected dropdown keys\n let localSelectedSubype = _.keys(\n _.pickBy(selectedAdSpendSubType, _.identity),\n );\n\n // at least one option is selected\n if (\n localSelectedSubype.includes(event.target.id) &&\n _.size(localSelectedSubype) === 1\n ) {\n return;\n }\n\n if (\n _.size(selectedPeformanceMetrics) === 3 &&\n !_.keys(selectedPeformanceMetrics).some((item) =>\n localSelectedSubype.includes(item),\n )\n ) {\n setSelectedAdSpendSubType({\n ...selectedAdSpendSubType,\n adSpendTotal: false,\n [event.target.id]: !selectedAdSpendSubType[event.target.id],\n });\n localSelectedSubype = _.drop(localSelectedSubype);\n } else {\n setSelectedAdSpendSubType({\n ...selectedAdSpendSubType,\n [event.target.id]: !selectedAdSpendSubType[event.target.id],\n });\n }\n if (!_.keys(selectedPeformanceMetrics).includes(event.target.id)) {\n // if metrics is not selected and we directly clicked on dropdown option then we we need to set the others option too\n for (const option of localSelectedSubype) {\n if (!_.keys(selectedPeformanceMetrics).includes(option)) {\n setBoxToggle(option);\n }\n }\n }\n\n setBoxToggle(event.target.id);\n };\n\n const renderFilterDropDown = () => {\n const localDateOptionsWithYear = dateOptionsWithYear;\n\n // PDV-6572 If PPC or DSP selected then disabled the year_to_date option\n localDateOptionsWithYear[3].isDisabled = _.keys(\n selectedPeformanceMetrics,\n ).some((item) => ['revenuePpc', 'revenueDsp'].includes(item));\n\n let options = [...localDateOptionsWithYear];\n if (daysDiff && options) {\n const updatedOption = options.map((obj) => {\n if (obj.value === 'week' && daysDiff < 7) {\n obj.isDisabled = true;\n }\n if (obj.value === 'month' && daysDiff < currentDate?.getDate()) {\n obj.isDisabled = true;\n }\n if (obj.value === '30days' && daysDiff < 30) {\n obj.isDisabled = true;\n }\n\n if (\n obj.value === 'year' &&\n daysDiff <\n dayjs(currentDate).diff(\n dayjs(`${currentDate?.getFullYear()}-01-01`),\n 'days',\n )\n ) {\n obj.isDisabled = true;\n }\n\n return obj;\n });\n options = [...updatedOption];\n }\n\n return (\n
    \n {generateSingleSelectDropdownHTML(\n 'BT-SummaryPerformanceTimeFrame',\n '',\n options,\n selectedTimeFrame,\n handleTimeFrameFilter,\n getSelectComponents,\n performanceGraphLoader || isDisabledTimeFrame,\n false,\n )}\n
    \n );\n };\n\n const rednerPeformanceGroupByFilters = () => {\n return (\n
    \n {_.size(selectedPeformanceMetrics) <= 2 ? (\n
    \n
      \n
    • \n
      \n \n Recent\n
      \n
    • \n {selectedTimeFrame.value !== 'custom' ? (\n
    • \n
      \n
        \n \n \n
      \n\n Previous\n
      \n
    • \n ) : null}\n
    \n
    \n ) : (\n
    \n )}\n
    \n \n
    \n \n
  • \n handleGroupBy('daily')}\n onChange={() => {}}\n />\n \n
  • \n\n
  • \n handleGroupBy('weekly')}\n />\n \n
  • \n\n
  • \n handleGroupBy('monthly')}\n />\n \n
  • \n \n
    \n
    \n
    \n
    \n );\n };\n\n const returnTooltipMessge = (key = '') => {\n return `No ${key} available for this period.`;\n };\n\n const renderRevenueMetrics = (metricsName, formatNumber) => {\n let currentTotal = 0;\n let previousTotal = 0;\n let difference = 0;\n let boxActiveClass = metricsClasses[metricsName];\n let name = metricsName;\n let dropdownName = '';\n\n let responseKey = metricsResponseKey[name];\n\n // find out keys which is having true value OR seperate out selected option.\n const localSelectedSubType = _.keys(\n _.pickBy(selectedRevenueSubType, _.identity),\n );\n [name] = localSelectedSubType;\n boxActiveClass = metricsClasses[localSelectedSubType[0]];\n\n // If the user selects multiple metrics with “Total” being one of them then display the total value\n if (selectedRevenueSubType.revenueTotal) {\n dropdownName = 'Total Sales';\n responseKey = metricsResponseKey.revenueTotal;\n currentTotal =\n performanceCurrentTotal && performanceCurrentTotal[responseKey]\n ? performanceCurrentTotal[responseKey]\n : 0;\n previousTotal =\n performancePreviousTotal && performancePreviousTotal[responseKey]\n ? performancePreviousTotal[responseKey]\n : 0;\n difference =\n performanceDifference && performanceDifference[responseKey]\n ? performanceDifference[responseKey]\n : 'N/A';\n } // If the user selects both PPC and DSP then sum up both values\n else if (\n !selectedRevenueSubType.revenueTotal &&\n localSelectedSubType.length > 1\n ) {\n dropdownName = 'PPC & DSP Sales';\n const dspCurrentTotal = performanceCurrentTotal?.revenue_dsp\n ? performanceCurrentTotal.revenue_dsp\n : 0;\n\n const dspPreviousTotal = performancePreviousTotal?.revenue_dsp\n ? performancePreviousTotal.revenue_dsp\n : 0;\n\n const ppcCurrentTotal = performanceCurrentTotal?.revenue_ppc\n ? performanceCurrentTotal.revenue_ppc\n : 0;\n\n const ppcPreviousTotal = performancePreviousTotal?.revenue_ppc\n ? performancePreviousTotal.revenue_ppc\n : 0;\n\n currentTotal = dspCurrentTotal + ppcCurrentTotal;\n previousTotal = dspPreviousTotal + ppcPreviousTotal;\n difference = ((currentTotal - previousTotal) * 100) / previousTotal;\n } // If the user selects a single metric just display the value for this metric\n else {\n if (localSelectedSubType[0] === 'revenuePpc') {\n dropdownName = 'PPC Sales';\n } else if (localSelectedSubType[0] === 'revenueDsp') {\n dropdownName = 'DSP Sales';\n }\n\n responseKey = metricsResponseKey[localSelectedSubType[0]];\n currentTotal = performanceCurrentTotal?.[responseKey]\n ? performanceCurrentTotal[responseKey]\n : 0;\n previousTotal = performancePreviousTotal?.[responseKey]\n ? performancePreviousTotal[responseKey]\n : 0;\n difference = performanceDifference?.[responseKey]\n ? performanceDifference[responseKey]\n : 'N/A';\n }\n\n const firstSelectedMetrics = Object.keys(selectedRevenueSubType).find(\n (i) => selectedRevenueSubType[i] === true,\n );\n\n return (\n
    \n \n {\n setRevenueMetricsToggle(name);\n }}\n role=\"presentation\"\n >\n {' '}\n <>\n
    \n
    \n REVENUE\n {customerState?.display_sales_performance ? (\n {\n dispatch(setCustomerSelectedTab('performance'));\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerState?.id,\n )}?tab=performance${\n customerState?.customer_account_type\n ? `&sub=${\n customerState?.customer_account_type ===\n 'Hybrid' ||\n customerState?.customer_account_type ===\n 'Seller'\n ? 'seller'\n : 'vendor'\n }`\n : ''\n }&nav=salePerformance&access=external`,\n 'salePerformance',\n );\n }}\n />\n ) : null}\n
    \n\n
    \n {\n e.stopPropagation();\n }}\n >\n {\n setIsRevenueDropDownOpen(!isRevenueDropDownOpen);\n }}\n id=\"clickbox\"\n >\n {dropdownName}\n \n
    \n\n {isRevenueDropDownOpen ? (\n \n
      \n {revenuMetricsSubTypes.map((item) => {\n return (\n \n {' '}\n \n \n {\n onHandleRevenueSubType(event);\n }}\n disabled={\n isMetricsDisabled[item.value] ||\n (_.size(selectedPeformanceMetrics) ===\n 4 &&\n !selectedRevenueSubType[item.value])\n }\n />\n \n {item.label}\n \n \n \n );\n })}\n
    \n
    \n ) : null}\n \n
    \n
    \n \n
    {bindValues(currentTotal, true)}
    \n
    \n
    \n {' '}\n vs {formatNumber(previousTotal, currencySymbol, '')}\n
    \n 0 ? 'perentage-value ' : 'perentage-value down '\n }\n >\n {!Number.isNaN(difference) && difference > 0 ? (\n \n ) : !Number.isNaN(difference) && difference < 0 ? (\n \n ) : null}\n {difference !== 'N/A'\n ? `${difference.toFixed(2).toString().replace('-', '')}%`\n : 'N/A'}\n
    \n
    \n
    \n \n
    \n );\n };\n\n const renderAdSpendMetrics = (metricsName, formatNumber) => {\n let currentTotal = 0;\n let previousTotal = 0;\n let difference = 0;\n let boxActiveClass = metricsClasses[metricsName];\n let name = metricsName;\n let dropdownName = '';\n\n let responseKey = metricsResponseKey[name];\n // find out keys which is having true value OR seperate out selected option.\n const localSelectedSubType = _.keys(\n _.pickBy(selectedAdSpendSubType, _.identity),\n );\n [name] = localSelectedSubType;\n boxActiveClass = metricsClasses[localSelectedSubType[0]];\n\n // If the user selects multiple metrics with “Total” being one of them then display the total value\n if (selectedAdSpendSubType.adSpendTotal) {\n dropdownName = 'Total Spend';\n responseKey = metricsResponseKey.adSpendTotal;\n currentTotal =\n performanceCurrentTotal && performanceCurrentTotal[responseKey]\n ? performanceCurrentTotal[responseKey]\n : 0;\n previousTotal =\n performancePreviousTotal && performancePreviousTotal[responseKey]\n ? performancePreviousTotal[responseKey]\n : 0;\n difference =\n performanceDifference && performanceDifference[responseKey]\n ? performanceDifference[responseKey]\n : 'N/A';\n } // If the user selects both PPC and DSP then sum up both values\n else if (\n !selectedAdSpendSubType.adSpendTotal &&\n localSelectedSubType.length > 1\n ) {\n dropdownName = 'PPC & DSP Spend';\n const dspCurrentTotal = performanceCurrentTotal?.dsp_spends\n ? performanceCurrentTotal.dsp_spends\n : 0;\n\n const dspPreviousTotal = performancePreviousTotal?.dsp_spends\n ? performancePreviousTotal.dsp_spends\n : 0;\n\n const ppcCurrentTotal = performanceCurrentTotal?.sponsored_ad_spend\n ? performanceCurrentTotal.sponsored_ad_spend\n : 0;\n\n const ppcPreviousTotal = performancePreviousTotal?.sponsored_ad_spend\n ? performancePreviousTotal.sponsored_ad_spend\n : 0;\n\n currentTotal = dspCurrentTotal + ppcCurrentTotal;\n previousTotal = dspPreviousTotal + ppcPreviousTotal;\n\n difference = ((currentTotal - previousTotal) * 100) / previousTotal;\n } // If the user selects a single metric just display the value for this metric\n else {\n if (localSelectedSubType[0] === 'sponsoredAdSpend') {\n dropdownName = 'PPC Spend';\n } else if (localSelectedSubType[0] === 'dspSpend') {\n dropdownName = 'DSP Spend';\n }\n\n responseKey = metricsResponseKey[localSelectedSubType[0]];\n currentTotal = performanceCurrentTotal?.[responseKey]\n ? performanceCurrentTotal[responseKey]\n : 0;\n previousTotal = performancePreviousTotal?.[responseKey]\n ? performancePreviousTotal[responseKey]\n : 0;\n difference = performanceDifference?.[responseKey]\n ? performanceDifference[responseKey]\n : 'N/A';\n }\n\n const firstSelectedMetrics = Object.keys(selectedAdSpendSubType).find(\n (i) => selectedAdSpendSubType[i] === true,\n );\n\n return (\n
    \n \n {\n setAdSpendMetricsToggle(name);\n }}\n role=\"presentation\"\n >\n {' '}\n <>\n
    \n
    \n ADVERTISING SPEND\n {customerState?.display_ad_performance ? (\n {\n e.stopPropagation();\n dispatch(setCustomerSelectedTab('performance'));\n\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerState?.id,\n )}?tab=performance${\n customerState?.customer_account_type\n ? `&sub=${\n customerState?.customer_account_type ===\n 'Hybrid' ||\n customerState?.customer_account_type ===\n 'Seller'\n ? 'seller'\n : 'vendor'\n }`\n : ''\n }&nav=adPerformance&access=external`,\n 'adPerformance',\n );\n }}\n />\n ) : null}\n
    \n\n
    \n {\n e.stopPropagation();\n }}\n >\n {\n setIsAdSpendDropDownOpen(!isAdSpendDropDownOpen);\n }}\n id=\"clickbox\"\n >\n {dropdownName}\n \n
    \n\n {isAdSpendDropDownOpen ? (\n
    \n
      \n {adSpendMetricsSubTypes.map((item) => {\n return (\n \n {' '}\n \n \n {\n onHandleAdSpendeSubType(event);\n }}\n disabled={\n isMetricsDisabled[item.value] ||\n (_.size(selectedPeformanceMetrics) ===\n 4 &&\n !selectedAdSpendSubType[item.value])\n }\n />\n \n {item.label}\n {item.isShowTooltip ? (\n <>\n \n \n \n ) : null}\n \n \n \n );\n })}\n
    \n
    \n ) : null}\n \n
    \n
    \n \n
    {bindValues(currentTotal, true)}
    \n
    \n
    \n {' '}\n vs {formatNumber(previousTotal, currencySymbol, '')}\n
    \n 0 ? 'perentage-value ' : 'perentage-value down '\n }\n >\n {!Number.isNaN(difference) && difference > 0 ? (\n \n ) : !Number.isNaN(difference) && difference < 0 ? (\n \n ) : null}\n {difference !== 'N/A'\n ? `${difference.toFixed(2).toString().replace('-', '')}%`\n : 'N/A'}\n
    \n
    \n
    \n \n
    \n );\n };\n\n const renderPeformanceMetrics = (metricsName, className, formatNumber) => {\n let currentTotal = 0;\n let previousTotal = 0;\n let difference = 0;\n const name = metricsName;\n let displayMetricsName = metricsName;\n\n if (name === 'unitsSold') {\n currentTotal =\n performanceCurrentTotal && performanceCurrentTotal?.units_sold\n ? performanceCurrentTotal.units_sold\n : 0;\n previousTotal =\n performancePreviousTotal && performancePreviousTotal?.units_sold\n ? performancePreviousTotal.units_sold\n : 0;\n difference =\n performanceDifference && performanceDifference?.units_sold\n ? performanceDifference.units_sold\n : 'N/A';\n\n displayMetricsName = 'Units sold';\n } else if (name === 'traffic') {\n currentTotal = performanceCurrentTotal?.traffic\n ? performanceCurrentTotal.traffic\n : 0;\n previousTotal = performancePreviousTotal?.traffic\n ? performancePreviousTotal.traffic\n : 0;\n difference = performanceDifference?.traffic\n ? performanceDifference.traffic\n : 'N/A';\n } else if (name === 'conversion') {\n currentTotal = performanceCurrentTotal?.conversion\n ? performanceCurrentTotal.conversion\n : 0;\n previousTotal = performancePreviousTotal?.conversion\n ? performancePreviousTotal.conversion\n : 0;\n difference = performanceDifference?.conversion\n ? performanceDifference.conversion\n : 'N/A';\n }\n\n return (\n
    \n \n {\n setBoxToggle(name);\n }}\n role=\"presentation\"\n >\n {' '}\n
    \n {displayMetricsName.toUpperCase()}{' '}\n
    \n
    \n {formatNumber(currentTotal, '', name === 'conversion' ? '%' : '')}\n
    \n
    \n
    \n {' '}\n vs{' '}\n {formatNumber(\n previousTotal,\n '',\n name === 'conversion' ? '%' : '',\n )}\n
    \n 0 ? 'perentage-value ' : 'perentage-value down '\n }\n >\n {!Number.isNaN(difference) && difference > 0 ? (\n \n ) : !Number.isNaN(difference) && difference < 0 ? (\n \n ) : null}\n {difference !== 'N/A'\n ? `${difference.toFixed(2).toString().replace('-', '')}%`\n : 'N/A'}\n
    \n
    \n
    \n \n
    \n );\n };\n\n const renderPerformancePanel = () => {\n return (\n \n
    \n
    \n

    Performance

    \n
    \n {renderFilterDropDown()}\n
    \n
    \n {renderRevenueMetrics('revenue', useFormatNumber)}\n {renderAdSpendMetrics('adSpend', useFormatNumber)}\n {renderPeformanceMetrics(\n 'traffic',\n 'col-lg-4 col-md-6 col-12 pr-1 pl-1 mb-3',\n useFormatNumber,\n )}\n {renderPeformanceMetrics(\n 'unitsSold',\n 'col-lg-4 col-md-6 col-12 pr-1 pl-1 mb-3',\n useFormatNumber,\n )}\n {renderPeformanceMetrics(\n 'conversion',\n 'col-lg-4 col-md-6 col-12 pl-1 pr-0 mb-3',\n useFormatNumber,\n )}\n
    \n {rednerPeformanceGroupByFilters()}\n
    \n\n {performanceGraphLoader ? (\n \n ) : summaryPerformanceGraphData.length !== 0 ? (\n \n ) : (\n {noGraphDataMessage}\n )}\n \n );\n };\n\n return (\n <>\n {showMetricsTooltipForSales.map((key) => {\n let keyName = key;\n let dataForMetric = key;\n if (\n ['revenue', 'revenue_ppc', 'revenue_dsp', 'revenue_organic'].includes(\n key,\n )\n ) {\n dataForMetric = Object.keys(selectedRevenueSubType).find(\n (i) => selectedRevenueSubType[i] === true,\n );\n keyName = revenuSubTypeKeys[dataForMetric];\n } else if (\n ['ad_spend_total', 'dsp_spends', 'sponsored_ad_spend'].includes(key)\n ) {\n dataForMetric = Object.keys(selectedAdSpendSubType).find(\n (i) => selectedAdSpendSubType[i] === true,\n );\n keyName = revenuSubTypeKeys[dataForMetric];\n }\n\n return (\n \n {!performanceCurrentTotal[keyName] &&\n !performancePreviousTotal[keyName] &&\n !performanceGraphLoader ? (\n \n ) : null}\n \n );\n })}\n {renderPerformancePanel()}\n {/* custom date modal for performance graph */}\n\n {\n setShowCustomDateModal(false);\n setCustomDateState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n }}\n onChange={(item) => {\n setCustomDateState([item.selection]);\n }}\n onApply={() => applyCustomDate('SPDate')}\n currentDate={currentDate}\n minDate={new Date('01/01/1901')}\n />\n \n );\n}\n\nSummaryPerformanceView.defaultProps = {\n isDisabled: false,\n showCustomDateModal: false,\n isDisabledTimeFrame: false,\n performanceGraphLoader: false,\n groupBy: '',\n currencySymbol: '',\n currency: '',\n daysDiff: 0,\n data: {},\n currentDate: {},\n selectedTimeFrame: {},\n isMetricsDisabled: {},\n performanceDifference: {},\n performanceCurrentTotal: {},\n performancePreviousTotal: {},\n selectedPeformanceMetrics: {},\n customDateState: [],\n summaryPerformanceGraphData: [],\n handleGroupBy: () => {},\n applyCustomDate: () => {},\n setCustomDateState: () => {},\n handleTimeFrameFilter: () => {},\n setShowCustomDateModal: () => {},\n setIsDisabledTimeFrame: () => {},\n renderCustomDateSubLabel: () => {},\n setSelectedPeformanceMetrics: () => {},\n generateSingleSelectDropdownHTML: () => {},\n};\n\nSummaryPerformanceView.propTypes = {\n showCustomDateModal: bool,\n performanceGraphLoader: bool,\n isDisabledTimeFrame: bool,\n isDisabled: bool,\n isApliedCustom: bool.isRequired,\n currencySymbol: string,\n groupBy: string,\n currency: string,\n id: string.isRequired,\n daysDiff: number,\n data: shape({}),\n currentDate: shape({}),\n isMetricsDisabled: shape({}),\n selectedTimeFrame: shape({}),\n performanceDifference: shape({}),\n performanceCurrentTotal: shape({}),\n performancePreviousTotal: shape({}),\n customDateState: arrayOf(shape({})),\n selectedPeformanceMetrics: shape({}),\n summaryPerformanceGraphData: arrayOf(shape({})),\n marketplace: string.isRequired,\n handleGroupBy: func,\n applyCustomDate: func,\n setCustomDateState: func,\n handleTimeFrameFilter: func,\n setIsDisabledTimeFrame: func,\n setShowCustomDateModal: func,\n renderCustomDateSubLabel: func,\n setSelectedPeformanceMetrics: func,\n generateSingleSelectDropdownHTML: func,\n};\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport { func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport { ArrowUpIcon, ArrowDownIcon } from '../../../../../theme/images';\n\nconst TableMobileView = ({\n className,\n utilization,\n utlPercent,\n maxShip,\n maxShipPercent,\n openShip,\n openShipPercent,\n onhand,\n onhandPercent,\n onClick,\n formatNumber,\n timeframe,\n label,\n}) => {\n const col = 'col-6';\n return (\n \n
    {' '}\n
    \n
    \n
    Storage Type
    \n
    {label}
    \n
    \n
    \n
    utilization
    \n
    \n {formatNumber(utilization, '', '%')}\n {timeframe?.value === 'custom' || utlPercent === null ? (\n N/A\n ) : utlPercent === 0 ? (\n \n {formatNumber(utlPercent, '', '%')}\n \n ) : utlPercent > 0 ? (\n \n \"arrow-up\"\n {formatNumber(utlPercent, '', '%')}\n \n ) : (\n \n \"arrow-up\"\n {formatNumber(Math.abs(utlPercent), '', '%')}\n \n )}\n
    \n
    \n\n
    \n
    Max Shipment
    \n
    \n {maxShip}\n\n {timeframe?.value === 'custom' || maxShipPercent === null ? (\n N/A\n ) : maxShipPercent === 0 ? (\n \n {formatNumber(maxShipPercent, '', '%')}\n \n ) : maxShipPercent > 0 ? (\n \n \"arrow-up\"\n {formatNumber(maxShipPercent, '', '%')}\n \n ) : (\n \n \"arrow-up\"\n {formatNumber(Math.abs(maxShipPercent), '', '%')}\n \n )}\n
    \n
    \n\n
    \n
    Open Inventory
    \n
    \n {openShip}\n {timeframe?.value === 'custom' || openShipPercent === null ? (\n N/A\n ) : openShipPercent === 0 ? (\n \n {formatNumber(openShipPercent, '', '%')}\n \n ) : openShipPercent > 0 ? (\n \n \"arrow-up\"\n {formatNumber(openShipPercent, '', '%')}\n \n ) : (\n \n \"arrow-up\"\n {formatNumber(Math.abs(openShipPercent), '', '%')}\n \n )}\n
    \n
    \n\n
    \n
    Onhand
    \n
    \n {onhand}\n {timeframe?.value === 'custom' || onhandPercent === null ? (\n N/A\n ) : onhandPercent === 0 ? (\n \n {formatNumber(onhandPercent, '', '%')}\n \n ) : onhandPercent > 0 ? (\n \n \"arrow-up\"\n {formatNumber(onhandPercent, '', '%')}\n \n ) : (\n \n \"arrow-up\"\n {formatNumber(Math.abs(onhandPercent), '', '%')}\n \n )}\n
    \n
    \n
    \n \n );\n};\n\nexport default TableMobileView;\n\nconst TableMobileViewWrapper = styled.div`\n .card-staus-right {\n float: right;\n }\n\n .label-bold {\n font-weight: bold;\n }\n .sub-label-text {\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n }\n`;\n\nTableMobileView.defaultProps = {\n className: '',\n utilization: '',\n utlPercent: '',\n openShip: '',\n openShipPercent: '',\n onhand: '',\n onhandPercent: '',\n maxShip: '',\n maxShipPercent: '',\n label: '',\n onClick: () => {},\n formatNumber: () => {},\n};\n\nTableMobileView.propTypes = {\n className: string,\n utilization: string,\n utlPercent: string,\n openShip: string,\n openShipPercent: string,\n onhand: string,\n onhandPercent: string,\n maxShip: string,\n maxShipPercent: string,\n label: string,\n onClick: func,\n formatNumber: func,\n timeframe: shape({}).isRequired,\n};\n","import React, { Fragment } from 'react';\n\nimport { bool, func, shape } from 'prop-types';\n\nimport { NoData, PageLoader, Table } from '../../../../../common';\nimport useFormatNumber from '../../../../../hooks/useFormatNumber';\nimport { ArrowDownIcon, ArrowUpIcon } from '../../../../../theme/images';\nimport Theme from '../../../../../theme/Theme';\nimport RestockMobileView from './RestockMobileView';\nimport {\n summaryRestockLimitHeader,\n summaryRestockLimitStorageType,\n} from '../../../../../constants';\n\nconst SummaryRestockLimits = ({\n restockData,\n restockLoader,\n isDesktop,\n formatNumber,\n selectedTimeFrame,\n}) => {\n const renderTableHeader = () => {\n return (\n <>\n \n {summaryRestockLimitHeader.map((item) => {\n return (\n \n {item.label}\n \n );\n })}\n \n \n );\n };\n\n const renderInventoryData = (item) => {\n return (\n <>\n \n {item.label}\n\n \n \n {formatNumber(\n restockData?.storage[item.key]?.utilization,\n '',\n '%',\n )}\n \n {selectedTimeFrame?.value === 'custom' ||\n restockData?.storage[item.key]?.utilization_change === null ? (\n 'N/A'\n ) : restockData?.storage[item.key]?.utilization_change === 0 ? (\n \n {formatNumber(\n restockData?.storage[item.key]?.utilization_change,\n '',\n '%',\n )}\n \n ) : restockData?.storage[item.key]?.utilization_change > 0 ? (\n \n \"arrow-up\"\n {formatNumber(\n restockData?.storage[item.key]?.utilization_change,\n '',\n '%',\n )}\n \n ) : (\n \n \"arrow-up\"\n {formatNumber(\n Math.abs(restockData?.storage[item.key]?.utilization_change),\n '',\n '%',\n )}\n \n )}\n \n\n \n \n {' '}\n {formatNumber(\n restockData?.storage[item.key]?.max_shipment,\n '',\n '',\n true,\n )}\n \n {selectedTimeFrame?.value === 'custom' ||\n restockData?.storage[item.key]?.max_shipment_change === null ? (\n 'N/A'\n ) : restockData?.storage[item.key]?.max_shipment_change === 0 ? (\n \n {formatNumber(\n restockData?.storage[item.key]?.max_shipment_change,\n '',\n '%',\n )}\n \n ) : restockData?.storage[item.key]?.max_shipment_change > 0 ? (\n \n \"arrow-up\"\n {formatNumber(\n restockData?.storage[item.key]?.max_shipment_change,\n '',\n '%',\n )}\n \n ) : (\n \n \"arrow-up\"\n {formatNumber(\n Math.abs(restockData?.storage[item.key]?.max_shipment_change),\n '',\n '%',\n )}\n \n )}\n \n\n \n \n {formatNumber(\n restockData?.storage[item.key]?.open_shipment,\n '',\n '',\n true,\n )}{' '}\n \n {selectedTimeFrame?.value === 'custom' ||\n restockData?.storage[item.key]?.open_shipment_change === null ? (\n 'N/A'\n ) : restockData?.storage[item.key]?.open_shipment_change === 0 ? (\n \n {formatNumber(\n restockData?.storage[item.key]?.open_shipment_change,\n '',\n '%',\n )}\n \n ) : restockData?.storage[item.key]?.open_shipment_change > 0 ? (\n \n \"arrow-up\"\n {formatNumber(\n restockData?.storage[item.key]?.open_shipment_change,\n '',\n '%',\n )}\n \n ) : (\n \n \"arrow-up\"\n {formatNumber(\n Math.abs(\n restockData?.storage[item.key]?.open_shipment_change,\n ),\n '',\n '%',\n )}\n \n )}\n \n\n \n \n {formatNumber(\n restockData?.storage[item.key]?.on_hand,\n '',\n '',\n true,\n )}{' '}\n \n {selectedTimeFrame?.value === 'custom' ||\n restockData?.storage[item.key]?.on_hand_change === null ? (\n 'N/A'\n ) : restockData?.storage[item.key]?.on_hand_change === 0 ? (\n \n {formatNumber(\n restockData?.storage[item.key]?.on_hand_change,\n '',\n '%',\n )}\n \n ) : restockData?.storage[item.key]?.on_hand_change > 0 ? (\n \n \"arrow-up\"\n {formatNumber(\n restockData?.storage[item.key]?.on_hand_change,\n '',\n '%',\n )}\n \n ) : (\n \n \"arrow-up\"\n {formatNumber(\n Math.abs(restockData?.storage[item.key]?.on_hand_change),\n '',\n '%',\n )}\n \n )}\n \n \n \n );\n };\n\n return (\n
    \n {isDesktop ? (\n \n {renderTableHeader()}\n\n {restockData && Object.keys(restockData).length !== 0\n ? summaryRestockLimitStorageType.map((item) => {\n return (\n {renderInventoryData(item)}\n );\n })\n : null}\n
    \n ) : (\n <>\n {restockData && Object.keys(restockData).length !== 0\n ? summaryRestockLimitStorageType.map((item) => {\n return (\n \n \n \n );\n })\n : null}\n \n )}\n\n {restockLoader ? (\n \n ) : null}\n\n {Object.keys(restockData).length === 0 &&\n restockData.constructor === Object &&\n !restockLoader ? (\n No Restock Limits Data Found\n ) : null}\n
    \n );\n};\n\nexport default SummaryRestockLimits;\n\nSummaryRestockLimits.defaultProps = {\n restockData: {},\n};\n\nSummaryRestockLimits.propTypes = {\n restockLoader: bool.isRequired,\n isDesktop: bool.isRequired,\n restockData: shape({}),\n formatNumber: func.isRequired,\n selectedTimeFrame: shape({}).isRequired,\n};\n","import React from 'react';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { bool, func, shape } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport { CardMetrics } from '../../../../../common';\nimport { asinMetrics, PATH_CUSTOMER_DETAILS } from '../../../../../constants';\nimport { ArrowDownIcon, ArrowUpIcon } from '../../../../../theme/images';\nimport { setCustomerSelectedTab } from '../../../../../store/actions/customerState';\n\nconst InventoryMetrics = ({ metricsData, formatNumber, isCustomer }) => {\n const history = useHistory();\n const dispatch = useDispatch();\n\n const customer = useSelector((state) => state.customerState.data);\n\n return (\n
    \n {asinMetrics.map((item) => {\n return (\n \n \n \n
    {item.label}
    \n
    \n {formatNumber(metricsData?.[item.asinValue])}\n
    \n\n
    \n {isCustomer &&\n (customer?.display_inventory_management ||\n customer?.display_under_over_stocked_inventory) ? (\n {\n dispatch(setCustomerSelectedTab('inventoryManagement'));\n history.push(\n PATH_CUSTOMER_DETAILS.replace(':id', customer?.id),\n item.key,\n );\n }}\n style={{ color: Theme.orange }}\n className=\"vs cursor\"\n aria-hidden=\"true\"\n >\n View All\n
    \n ) : null}\n 0\n ? 'perentage-value '\n : 'perentage-value down '\n }\n >\n {metricsData?.[item.percentChnage] &&\n metricsData?.[item.percentChnage] > 0 ? (\n \n ) : metricsData?.[item.percentChnage] &&\n metricsData?.[item.percentChnage] < 0 ? (\n \n ) : (\n ''\n )}\n\n {metricsData?.[item.percentChnage]\n ? formatNumber(\n Math.abs(metricsData?.[item.percentChnage]),\n '',\n '%',\n )\n : 'N/A'}\n
    \n
    \n
    \n \n
    \n );\n })}\n
    \n );\n};\n\nexport default InventoryMetrics;\n\nInventoryMetrics.defaultProps = { metricsData: null, formatNumber: () => {} };\n\nInventoryMetrics.propTypes = {\n metricsData: shape({}),\n formatNumber: func,\n isCustomer: bool.isRequired,\n};\n","import React from 'react';\n\nimport Select from 'react-select';\n\nimport { CustomDropDown } from '../../../../common';\nimport Theme from '../../../../theme/Theme';\n\nexport const DropDown = (\n id,\n className,\n options,\n placeholder,\n components,\n handleOnChange,\n isDisabled,\n reff = null,\n selectedValue,\n isSearchable = true,\n isLoading = false,\n) => {\n const YearOverYearOptionStyles = {\n menuList: (styles) => ({\n ...styles,\n maxHeight: '340px !important',\n }),\n };\n\n return (\n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n value={selectedValue}\n onChange={(event) => handleOnChange(event)}\n styles={{\n YearOverYearOptionStyles,\n menuPortal: (base) => ({ ...base, zIndex: 9999 }),\n }}\n menuPortalTarget={document.body}\n isLoading={isLoading}\n isOptionDisabled={(option) => option.isDisabled}\n isSearchable={isSearchable}\n />\n \n );\n};\n\nexport default DropDown;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport { shape, string } from 'prop-types';\nimport { components } from 'react-select';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport SummaryRestockLimits from './SummaryRestockLimits';\nimport InventoryMetrics from './InventoryMetrics';\nimport useFormatNumber from '../../../../../hooks/useFormatNumber';\nimport Theme from '../../../../../theme/Theme';\nimport { DropDown } from '../../CompanyPerformance/DropDown';\nimport { getRestockLimitsData, getSummaryASIN } from '../../../../../api';\nimport { setCustomerSelectedTab } from '../../../../../store/actions/customerState';\nimport {\n PATH_CUSTOMER_DETAILS,\n timeFilterOptions,\n} from '../../../../../constants';\nimport {\n WhiteCard,\n DropdownIndicator,\n CustomSingleDateModal,\n} from '../../../../../common';\n\nconst currentDate = new Date();\ncurrentDate.setDate(currentDate.getDate() - 1);\nexport default function SummaryInventoryView({ id, selectedMarketplace }) {\n const mounted = useRef(false);\n const history = useHistory();\n const dispatch = useDispatch();\n const isDesktop = useMediaQuery({ minWidth: 767 });\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const customer = useSelector((state) => state?.customerState?.data);\n const isCustomer = userInfo?.role?.includes('Customer');\n const [selectedCustomDateState, setSelectedCustomDateState] =\n useState(currentDate);\n const [customDateState, setCustomDateState] = useState(currentDate);\n const [selectedTimeFrame, setSelectedTimeFrame] = useState({\n value: 'yesterday',\n label: 'Today',\n sub: 'vs Yesterday',\n });\n const [metricsData, setMetricsData] = useState(null);\n const [showCustomDateModal, setShowCustomDateModal] = useState(false);\n const [isCustomDateApply, setIsCustomDateApply] = useState(false);\n const [restockLoader, setRestockLoader] = useState(false);\n const [asinLoader, setAsinLoader] = useState(false);\n const [restockData, setRestockData] = useState({});\n\n const getASINMetricsData = useCallback(\n (timeframe, marketplace, selectedDate) => {\n setMetricsData(null);\n setAsinLoader(true);\n getSummaryASIN(id, marketplace, timeframe, selectedDate)\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setAsinLoader(false);\n setMetricsData(res?.data?.results?.[0] || null);\n }\n setAsinLoader(false);\n }\n })\n .catch(() => {\n setAsinLoader(false);\n setMetricsData(null);\n });\n },\n [id],\n );\n\n const getRestockLimitsDataLocal = useCallback(\n (timeframe, marketplace, selectedDate) => {\n setRestockLoader(true);\n setRestockData({});\n getRestockLimitsData(id, timeframe, marketplace, selectedDate).then(\n (res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setRestockData(res?.data?.results[0] || {});\n } else {\n setRestockData({});\n }\n setRestockLoader(false);\n }\n },\n );\n },\n [id],\n );\n\n useEffect(() => {\n mounted.current = true;\n if (selectedMarketplace !== '') {\n getRestockLimitsDataLocal(\n selectedTimeFrame.value,\n selectedMarketplace,\n customDateState,\n );\n\n getASINMetricsData(\n selectedTimeFrame.value,\n selectedMarketplace,\n customDateState,\n );\n }\n\n return () => {\n mounted.current = false;\n };\n }, [\n getRestockLimitsDataLocal,\n getASINMetricsData,\n selectedMarketplace,\n selectedTimeFrame,\n customDateState,\n ]);\n\n const { Option, SingleValue } = components;\n\n const singleFilterOption = (props) => (\n \n \n {props?.data?.label}\n \n\n
    \n {selectedTimeFrame.value === 'custom' && isCustomDateApply\n ? `${dayjs(customDateState).format('MMM D, YYYY')}`\n : props?.data?.sub}\n
    \n
    \n );\n\n const filterOption = (props) => (\n \n );\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const handleDailyFact = (event) => {\n const { value } = event;\n if (value !== selectedTimeFrame.value) {\n setIsCustomDateApply(false);\n if (value !== 'custom') {\n setSelectedTimeFrame(event);\n setCustomDateState(currentDate);\n }\n }\n if (value === 'custom') {\n setShowCustomDateModal(true);\n }\n };\n\n const applyCustomDate = () => {\n setIsCustomDateApply(true);\n setSelectedTimeFrame({\n value: 'custom',\n label: 'Custom',\n sub: 'Select date',\n });\n setShowCustomDateModal(false);\n setCustomDateState(selectedCustomDateState);\n };\n\n return (\n \n
    \n
    \n \n Inventory{' '}\n {isCustomer &&\n (customer?.display_inventory_management ||\n customer?.display_under_over_stocked_inventory) ? (\n {\n dispatch(setCustomerSelectedTab('inventoryManagement'));\n history.push(\n PATH_CUSTOMER_DETAILS.replace(':id', customer?.id),\n 'inventory',\n );\n }}\n icon=\"fa-light fa-square-arrow-up-right\"\n style={{\n fontSize: '16px',\n color: Theme.orange,\n marginLeft: '8px',\n }}\n />\n ) : null}\n \n
    \n
    \n \n {DropDown(\n 'BT-InventoryBPTimeframe',\n 'days-performance',\n timeFilterOptions,\n timeFilterOptions[0].label,\n getSelectComponents,\n handleDailyFact,\n restockLoader || asinLoader,\n null,\n selectedTimeFrame,\n )}\n
    \n
    \n\n \n\n \n {\n setShowCustomDateModal(false);\n }}\n onChange={(item) => {\n setSelectedCustomDateState(item);\n }}\n onApply={() => applyCustomDate()}\n currentDate={currentDate}\n />\n \n );\n}\n\nSummaryInventoryView.defaultProps = {\n data: {},\n};\n\nSummaryInventoryView.propTypes = {\n id: string.isRequired,\n selectedMarketplace: string.isRequired,\n data: shape({}),\n};\n","/* eslint-disable camelcase */\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_animated from '@amcharts/amcharts4/themes/animated';\nimport styled from 'styled-components';\nimport { string, arrayOf, shape } from 'prop-types';\n\n// Themes begin\nfunction am4themes_colorTheme(target) {\n if (target instanceof am4core.ColorSet) {\n target.list = [am4core.color('#97ca61'), am4core.color('#EAEFF2')];\n }\n}\nam4core.useTheme(am4themes_colorTheme);\nam4core.useTheme(am4themes_animated);\nfunction InventoryScoreGraph({ chartId, pieData }) {\n const chart = useRef(null);\n const createInventoryScoreGraph = useCallback(() => {\n chart.current = am4core.create(chartId, am4charts.PieChart);\n chart.current.data = pieData;\n chart.current.resizable = true;\n chart.current.hiddenState.properties.opacity = 0; // this creates initial fade-in\n chart.current.radius = am4core.percent(100);\n chart.current.innerRadius = am4core.percent(70);\n chart.current.startAngle = 180;\n chart.current.endAngle = 360;\n chart.current.logo.disabled = true;\n // create Pie series chart\n const pieSeries = chart.current.series.push(new am4charts.PieSeries());\n pieSeries.dataFields.value = 'value';\n pieSeries.dataFields.category = 'name';\n pieSeries.alignLabels = false;\n pieSeries.slices.template.stroke = am4core.color('#fff');\n pieSeries.slices.template.strokeWidth = 7;\n // This creates initial animation\n pieSeries.hiddenState.properties.opacity = 1;\n pieSeries.hiddenState.properties.startAngle = 90;\n pieSeries.hiddenState.properties.endAngle = 90;\n // Disable ticks and labels\n pieSeries.labels.template.disabled = true;\n pieSeries.ticks.template.disabled = true;\n // Disable tooltips\n pieSeries.slices.template.tooltipText = '';\n // Disable sliding out of slices\n pieSeries.slices.template.states.getKey(\n 'active',\n ).properties.shiftRadius = 0;\n pieSeries.slices.template.states.getKey('hover').properties.shiftRadius = 0;\n pieSeries.slices.template.states.getKey('hover').properties.scale = 1;\n }, [chartId, pieData]);\n\n useEffect(() => {\n createInventoryScoreGraph();\n return () => chart.current && chart.current.dispose();\n }, [createInventoryScoreGraph]);\n\n return ;\n}\n\nexport default InventoryScoreGraph;\n\nInventoryScoreGraph.defaultProps = {\n pieData: [],\n};\nInventoryScoreGraph.propTypes = {\n chartId: string.isRequired,\n pieData: arrayOf(shape({})),\n};\n\nconst PieChartDiv = styled.div`\n max-width: 250px;\n width: 100%;\n height: 140px;\n margin: 0 auto;\n @media only screen and (max-width: 991px) {\n margin: 0 auto 40px auto;\n }\n`;\n","import React from 'react';\n\nimport { arrayOf, shape } from 'prop-types';\n\nimport SummaryInventoryScoreGraph from './SummaryInventoryScoreGraph';\nimport { WhiteCard } from '../../../../../common';\n\nconst InventoryScore = ({ pieData, dspData }) => {\n return (\n
    \n \n

    Inventory Score (IPI)

    \n \n
    \n {pieData?.length && !Number.isNaN(pieData[0].value)\n ? pieData[0].value\n : 'N/A'}\n
    Out of 1000
    \n
    \n
    \n Last updated: {dspData?.latest_date}\n
    \n
    \n
    \n );\n};\n\nexport default InventoryScore;\n\nInventoryScore.defaultProps = { dspData: null, pieData: [{}] };\n\nInventoryScore.propTypes = {\n dspData: shape({}),\n pieData: arrayOf(shape({})),\n};\n","import React from 'react';\n\nimport { shape } from 'prop-types';\n\nimport { WhiteCard } from '../../../../../common';\n\nconst PositiveFeedback = ({ dspData }) => {\n const displaySellerHealth = (value) => {\n return (\n
    \n {value && value !== 'nan' ? `${value}%` : 'N/A'}\n
    \n );\n };\n\n return (\n
    \n \n

    Positive Feedback

    \n {displaySellerHealth(dspData?.feedback_30)}\n
    Last 30 days
    \n {displaySellerHealth(dspData?.feedback_365)}\n
    Last 12 months
    \n
    Last updated: {dspData?.latest_date}
    \n
    \n
    \n );\n};\n\nexport default PositiveFeedback;\n\nPositiveFeedback.defaultProps = { dspData: null };\n\nPositiveFeedback.propTypes = {\n dspData: shape({}),\n};\n","import React from 'react';\n\nimport { shape } from 'prop-types';\n\nimport { WhiteCard } from '../../../../../common';\n\nconst OrderIssuesCard = ({ dspData }) => {\n const displaySellerHealth = (value) => {\n return (\n
    \n {value && value !== 'nan' ? `${value}%` : 'N/A'}\n
    \n );\n };\n\n return (\n
    \n \n

    Order Issues

    \n {displaySellerHealth(dspData?.order_defect_fba)}\n
    Order Defect Rate
    \n {displaySellerHealth(dspData?.policy_issues)}\n
    Policy Violations
    \n
    Last updated: {dspData?.latest_date}
    \n
    \n
    \n );\n};\n\nexport default OrderIssuesCard;\n\nOrderIssuesCard.defaultProps = { dspData: null };\n\nOrderIssuesCard.propTypes = {\n dspData: shape({}),\n};\n","import React from 'react';\n\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { shape } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport useFormatNumber from '../../../../../hooks/useFormatNumber';\nimport { WhiteCard } from '../../../../../common';\nimport { PATH_CUSTOMER_DETAILS } from '../../../../../constants';\nimport { setCustomerSelectedTab } from '../../../../../store/actions/customerState';\n\nconst SummaryInvoicesCard = ({ invoiceData }) => {\n const history = useHistory();\n const dispatch = useDispatch();\n const customer = useSelector((state) => state.customerState.data);\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isSuperAdmin = userInfo?.role?.includes('Super Admin');\n\n return (\n
    \n \n
    \n {\n dispatch(setCustomerSelectedTab('billing'));\n history.push(\n PATH_CUSTOMER_DETAILS.replace(':id', customer?.id),\n 'retainer',\n );\n }}\n aria-hidden=\"true\"\n >\n Invoices{' '}\n \n \n
    \n
    \n {useFormatNumber(\n invoiceData?.total_outstanding ? invoiceData?.total_outstanding : 0,\n getSymbolFromCurrency(invoiceData?.local_currency),\n '',\n true,\n )}\n
    \n
    \n Total Outstanding ({invoiceData?.total_outstanding_cnt} Invoices)\n
    \n \n {useFormatNumber(\n invoiceData?.amount_overdue ? invoiceData?.amount_overdue : 0,\n getSymbolFromCurrency(invoiceData?.local_currency),\n '',\n true,\n )}\n
    \n
    \n Amount Overdue ({invoiceData?.amount_overdue_cnt} Invoices)\n
    \n \n
    \n );\n};\n\nexport default SummaryInvoicesCard;\n\nSummaryInvoicesCard.defaultProps = { invoiceData: null };\n\nSummaryInvoicesCard.propTypes = {\n invoiceData: shape({}),\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport { string } from 'prop-types';\nimport { useSelector } from 'react-redux';\n\nimport InventoryScoreCard from './InventoryScoreCard';\nimport PositiveFeedbackCard from './PositiveFeedbackCard';\nimport OrderIssuesCard from './OrderIssuesCard';\nimport SummaryInvoicesCard from './SummaryInvoicesCard';\nimport {\n getSummaryInvoice,\n getSummarySellerPerformance,\n} from '../../../../../api';\n\nexport default function SummarySellerHealthView({ selectedMarketplace, id }) {\n const mounted = useRef(false);\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isSuperAdmin = userInfo?.role?.includes('Super Admin');\n\n const [invScore, setInvScore] = useState([\n { name: 'Inventory', value: 'N/A' },\n { name: 'Total', value: 1000 },\n ]);\n\n const [feeback, setFeeback] = useState(null);\n const [invoiceData, setInvoiceData] = useState(null);\n\n const onGetSummaryInvoices = useCallback(() => {\n getSummaryInvoice(id)\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setInvoiceData(res.data);\n }\n }\n })\n .catch(() => {});\n }, [id]);\n\n const onGetSummaryHealthData = useCallback(() => {\n getSummarySellerPerformance(id, selectedMarketplace)\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (res?.data?.pf_oi_is?.length) {\n const lastUpdated = res.data.pf_oi_is[0]?.latest_date;\n res.data.pf_oi_is[0].latest_date =\n dayjs(lastUpdated).format('MMM DD YYYY');\n\n setFeeback(res?.data?.pf_oi_is[0]);\n\n const ipiValue = parseFloat(\n res.data.pf_oi_is[0]?.inventory_performance_index,\n );\n if (Number.isNaN(ipiValue)) {\n setInvScore([\n {\n name: 'Inventory',\n value: 'N/A',\n },\n {\n name: 'Total',\n value: 1000,\n },\n ]);\n } else {\n setInvScore([\n {\n name: 'Inventory',\n value: ipiValue,\n },\n {\n name: 'Total',\n value: 1000 - ipiValue,\n },\n ]);\n }\n } else {\n setInvScore([\n { name: 'Inventory', value: 'N/A' },\n { name: 'Total', value: 1000 },\n ]);\n }\n }\n }\n })\n .catch(() => {\n setInvScore([\n { name: 'Inventory', value: 'N/A' },\n { name: 'Total', value: 1000 },\n ]);\n });\n }, [id, selectedMarketplace]);\n\n useEffect(() => {\n mounted.current = true;\n onGetSummaryHealthData();\n onGetSummaryInvoices();\n }, [onGetSummaryHealthData, onGetSummaryInvoices]);\n\n return (\n
    \n {/* https://bbe.atlassian.net/browse/PDV-9229 - hide seller health\n data for user other than super Admin */}\n {isSuperAdmin ? (\n <>\n \n \n \n \n ) : null}\n \n
    \n );\n}\n\nSummarySellerHealthView.defaultProps = {};\n\nSummarySellerHealthView.propTypes = {\n selectedMarketplace: string.isRequired,\n id: string.isRequired,\n};\n","/* eslint-disable camelcase */\nimport React, { useEffect, useState, useCallback, useRef } from 'react';\n\nimport dayjs from 'dayjs';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, shape, string } from 'prop-types';\nimport 'react-date-range/dist/styles.css';\nimport 'react-date-range/dist/theme/default.css';\n\nimport SummaryPerformanceView from './SummaryPerformanceView';\nimport SummaryInventoryView from './SummaryInventoryView/SummaryInventoryView';\nimport SummarySellerHealthView from './SummaryHealthView/SummarySellerHealthView';\nimport { metricsResponseKey, tooltipNames } from '../../../../constants';\nimport {\n getSalesAndAdMinDate,\n getSummaryPerformanceData,\n} from '../../../../api';\nimport {\n WhiteCard,\n CustomDateModal,\n DropdownIndicator,\n ViewData,\n SingleSelectDropdown,\n} from '../../../../common';\n\nconst initialDisabledMetrics = {\n revenueTotal: true,\n revenueOrganic: true,\n revenuePpc: true,\n revenueDsp: true,\n sponsoredAdSpend: true,\n dspSpend: true,\n unitsSold: true,\n traffic: true,\n conversion: true,\n};\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nam4core.useTheme(am4themes_dataviz);\nconst _ = require('lodash');\n\nexport default function SummaryViewContainer({ marketplaceChoices, id }) {\n const mounted = useRef(false);\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const customerState = useSelector((state) => state?.customerState?.data);\n const isSuperAdmin = userInfo?.role === 'Super Admin';\n const isThirdPartyBrand = customerState?.is_third_party_potential_brand;\n const hidePerformanceSection = !isSuperAdmin && !isThirdPartyBrand;\n const [isCustomDateApply, setIsCustomDateApply] = useState(false);\n const [currencySymbol, setCurrencySymbol] = useState(null);\n const [responseId, setResponseId] = useState(null);\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() - 2);\n const [customDateState, setCustomDateState] = useState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n const [customDate, setCustomDate] = useState({\n startDate: currentDate,\n endDate: currentDate,\n });\n const [summaryPerformanceGraphData, setSummaryPerformanceGraphData] =\n useState([]);\n const [showCustomDateModal, setShowCustomDateModal] = useState(false);\n const [groupBy, setGroupBy] = useState('daily');\n const [marketplaceOptions, setMarketplaceOptions] = useState([]);\n const [selectedTimeFrame, setSelectedTimeFrame] = useState({\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n });\n const [performanceCurrentTotal, setPerformanceCurrentTotal] = useState({});\n const [performancePreviousTotal, setPerformancePreviousTotal] = useState({});\n const [performanceDifference, setPerformanceDifference] = useState({});\n const [performanceGraphLoader, setPerformanceGraphLoader] = useState(false);\n const [isDisabledTimeFrame, setIsDisabledTimeFrame] = useState(false);\n const [isMetricsDisabled, setIsMetricsDisabled] = useState(\n initialDisabledMetrics,\n );\n const [isAppliedCustom, setIsAppliedCustom] = useState(false);\n const [selectedPeformanceMetrics, setSelectedPeformanceMetrics] = useState({\n revenueTotal: true,\n });\n const [selectedMarketplaceOption, setSelectedMarketplaceOption] = useState({\n label: 'United states',\n value: 'Amazon.com',\n });\n const [summaryMinDate, setSummaryMinDate] = useState(null);\n const [minDateLoader, setMinDateLoader] = useState(false);\n\n // API to get the data available date fro sales, sposnored, dsp\n const getMinDate = useCallback(\n (marketplace) => {\n setMinDateLoader(true);\n getSalesAndAdMinDate(id, marketplace).then((res) => {\n if (res?.status === 200) {\n if (res?.data[0]) {\n setSummaryMinDate(res?.data[0].sales_performance_date);\n } else {\n setSummaryMinDate(null);\n }\n setMinDateLoader(false);\n } else {\n setSummaryMinDate(null);\n setMinDateLoader(false);\n }\n });\n },\n [id],\n );\n\n useEffect(() => {\n if (selectedMarketplaceOption?.value)\n getMinDate(selectedMarketplaceOption.value);\n }, [getMinDate, selectedMarketplaceOption]);\n\n const bindPerformanceResponseData = useCallback(\n (response, timeFrame) => {\n const tempData = [];\n\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.report_date)\n : response?.dates?.[\n dateParam === 'current'\n ? 'current_end_date'\n : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n // filterout previous data in one temporary object.\n if (\n response?.previous &&\n response?.previous !== null &&\n response?.previous.length\n ) {\n response.previous.forEach((item, index) => {\n const previousDate = dayjs(item.report_date).format('MMM D YYYY');\n tempData.push({\n revenueTotalPrevious: item.revenue,\n revenueOrganicPrevious: item.revenue_organic,\n revenuePpcPrevious: item.revenue_ppc,\n revenueDspPrevious: item.revenue_dsp,\n sponsoredAdSpendPrevious: item.sponsored_ad_spend,\n dspSpendPrevious: item.dsp_spends,\n adSpendTotalPrevious: item.ad_spend_total,\n unitsSoldPrevious: item.units_sold,\n trafficPrevious: item.traffic,\n conversionPrevious: item.conversion,\n previousDate,\n previousEndDate: nextReportDate(\n index,\n response?.previous,\n 'previous',\n ),\n\n revenueTotalPreviousLabel:\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00',\n revenueOrganicPreviousLabel:\n item.revenue_organic !== null\n ? item.revenue_organic.toFixed(2)\n : '0.00',\n revenuePpcPreviousLabel:\n item.revenue_ppc !== null ? item.revenue_ppc.toFixed(2) : '0.00',\n revenueDspPreviousLabel:\n item.revenue_dsp !== null ? item.revenue_dsp.toFixed(2) : '0.00',\n sponsoredAdSpendPreviousLabel:\n item.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend.toFixed(2)\n : '0.00',\n dspSpendPreviousLabel:\n item.dsp_spends !== null ? item.dsp_spends.toFixed(2) : '0.00',\n adSpendTotalPreviousLabel:\n item.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00',\n unitsSoldPreviousLabel:\n item.units_sold !== null ? item.units_sold.toFixed(0) : '0',\n trafficPreviousLabel:\n item.traffic !== null ? item.traffic.toFixed(0) : '0',\n conversionPreviousLabel:\n item.conversion !== null ? item.conversion.toFixed(2) : '0',\n });\n });\n }\n\n // filterout current data in one temporary object.\n if (\n response?.current &&\n response?.current !== null &&\n response.current.length\n ) {\n response.current.forEach((item, index) => {\n const currentReportDate = dayjs(item.report_date).format(\n 'MMM D YYYY',\n );\n let indexNumber = index;\n // add the current data at same index of prevoius in temporary object\n if (response.previous && index < response.previous.length) {\n tempData[index].date = currentReportDate;\n tempData[index].revenueTotalCurrent = item.revenue;\n tempData[index].revenueOrganicCurrent = item.revenue_organic;\n tempData[index].revenuePpcCurrent = item.revenue_ppc;\n tempData[index].revenueDspCurrent = item.revenue_dsp;\n tempData[index].sponsoredAdSpendCurrent = item.sponsored_ad_spend;\n tempData[index].dspSpendCurrent = item.dsp_spends;\n tempData[index].adSpendTotalCurrent = item.ad_spend_total;\n tempData[index].unitsSoldCurrent = item.units_sold;\n tempData[index].trafficCurrent = item.traffic;\n tempData[index].conversionCurrent = item.conversion;\n tempData[index].endDate = nextReportDate(\n index,\n response?.current,\n 'current',\n );\n\n tempData[index].revenueTotalCurrentLabel =\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00';\n tempData[index].revenueOrganicCurrentLabel =\n item.revenue_organic !== null\n ? item.revenue_organic.toFixed(2)\n : '0.00';\n tempData[index].revenuePpcCurrentLabel =\n item.revenue_ppc !== null ? item.revenue_ppc.toFixed(2) : '0.00';\n tempData[index].revenueDspCurrentLabel =\n item.revenue_dsp !== null ? item.revenue_dsp.toFixed(2) : '0.00';\n tempData[index].sponsoredAdSpendCurrentLabel =\n item.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend.toFixed(2)\n : '0.00';\n tempData[index].dspSpendCurrentLabel =\n item.dsp_spends !== null ? item.dsp_spends.toFixed(2) : '0.00';\n tempData[index].adSpendTotalCurrentLabel =\n item.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00';\n\n tempData[index].unitsSoldCurrentLabel =\n item.units_sold !== null ? item.units_sold.toFixed(0) : '0';\n tempData[index].trafficCurrentLabel =\n item.traffic !== null ? item.traffic.toFixed(0) : '0';\n tempData[index].conversionCurrentLabel =\n item.conversion !== null ? item.conversion.toFixed(2) : '0';\n\n // to add the dotted line. we have to check null matrix and add the dummy number like 8\n if (index > 0) {\n indexNumber = index - 1;\n } else {\n indexNumber = index;\n }\n\n tempData[indexNumber].revenueTotalDashLength =\n item.revenue === null ? 8 : null;\n tempData[indexNumber].revenueOrganicDashLength =\n item.revenue_organic === null ? 8 : null;\n tempData[indexNumber].revenuePpcDashLength =\n item.revenue_ppc === null ? 8 : null;\n tempData[indexNumber].revenueDspDashLength =\n item.revenue_dsp === null ? 8 : null;\n tempData[indexNumber].sponsoredAdSpendDashLength =\n item.sponsored_ad_spend === null ? 8 : null;\n tempData[indexNumber].dspSpendDashLength =\n item.dsp_spends === null ? 8 : null;\n tempData[indexNumber].adSpendTotalDashLength =\n item.ad_spend_total === null ? 8 : null;\n tempData[indexNumber].unitsSoldDashLength =\n item.units_sold === null ? 8 : null;\n tempData[indexNumber].trafficDashLength =\n item.traffic === null ? 8 : null;\n tempData[indexNumber].conversionDashLength =\n item.conversion === null ? 8 : null;\n } else {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previous value null and previous label 0\n tempData.push({\n revenueTotalCurrent: item.revenue,\n revenueOrganicCurrent: item.revenue_organic,\n revenuePpcCurrent: item.revenue_ppc,\n revenueDspCurrent: item.revenue_dsp,\n sponsoredAdSpendCurrent: item.sponsored_ad_spend,\n dspSpendCurrent: item.dsp_spends,\n adSpendTotalCurrent: item.ad_spend_total,\n unitsSoldCurrent: item.units_sold,\n trafficCurrent: item.traffic,\n conversionCurrent: item.conversion,\n date: currentReportDate,\n endDate: nextReportDate(index, response?.current, 'current'),\n\n revenueTotalPrevious: null,\n revenueOrganicPrevious: null,\n revenuePpcPrevious: null,\n revenueDspPrevious: null,\n sponsoredAdSpendPrevious: null,\n dspSpendPrevious: null,\n adSpendTotalPrevious: null,\n unitsSoldPrevious: null,\n trafficPrevious: null,\n conversionPrevious: null,\n\n revenueTotalCurrentLabel:\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00',\n revenueOrganicCurrentLabel:\n item.revenue_organic !== null\n ? item.revenue_organic.toFixed(2)\n : '0.00',\n revenuePpcCurrentLabel:\n item.revenue_ppc !== null\n ? item.revenue_ppc.toFixed(2)\n : '0.00',\n revenueDspCurrentLabel:\n item.revenue_dsp !== null\n ? item.revenue_dsp.toFixed(2)\n : '0.00',\n sponsoredAdSpendCurrentLabel:\n item.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend.toFixed(2)\n : '0.00',\n dspSpendCurrentLabel:\n item.dsp_spends !== null ? item.dsp_spends.toFixed(2) : '0.00',\n adSpendTotalCurrentLabel:\n item.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00',\n unitsSoldCurrentLabel:\n item.units_sold !== null ? item.units_sold.toFixed(0) : '0',\n trafficCurrentLabel:\n item.traffic !== null ? item.traffic.toFixed(0) : '0',\n conversionCurrentLabel:\n item.conversion !== null ? item.conversion.toFixed(2) : '0',\n\n revenueTotalPreviousLabel: '0.0',\n revenueOrganicPreviousLabel: '0.0',\n revenuePpcPreviousLabel: '0.0',\n revenueDspPreviousLabel: '0.0',\n sponsoredAdSpendPreviousLabel: '0.0',\n dspSpendPreviousLabel: '0.0',\n adSpendTotalPreviousLabel: '0.0',\n unitsSoldPreviousLabel: '0',\n trafficPreviousLabel: '0',\n conversionPreviousLabel: '0',\n });\n }\n });\n }\n\n setIsDisabledTimeFrame(false);\n\n // if we get total value of any metrics is 0, then disabled that metrics\n // we setting the disable flag for each metrics\n let localMetricDisabled = {};\n _.keys(tooltipNames).filter((option) => {\n if (\n (timeFrame === 'custom' &&\n response?.current_sum[metricsResponseKey[option]] === 0) ||\n (response?.current_sum[metricsResponseKey[option]] === 0 &&\n response?.previous_sum[metricsResponseKey[option]] === 0) ||\n (option === 'revenueDsp' &&\n customerState?.is_active_dspagreement === false)\n ) {\n localMetricDisabled = { ...localMetricDisabled, [option]: true };\n } else if (timeFrame === 'year') {\n // PDV-6572 If year_to_date option selected then disabled PPC and DSP\n localMetricDisabled = { ...localMetricDisabled, revenuePpc: true };\n localMetricDisabled = { ...localMetricDisabled, revenueDsp: true };\n } else {\n localMetricDisabled = { ...localMetricDisabled, [option]: false };\n }\n return null;\n });\n\n // if we don't have data for PPC then we need to disabled the PPC and organic also.\n\n if (\n (timeFrame === 'custom' &&\n response?.current_sum[metricsResponseKey.revenuePpc] === 0) ||\n (response?.current_sum[metricsResponseKey.revenuePpc] === 0 &&\n response?.previous_sum[metricsResponseKey.revenuePpc] === 0)\n ) {\n localMetricDisabled = {\n ...localMetricDisabled,\n revenueOrganic: true,\n };\n }\n // Below Commented this code beacuase PDV-6723\n // if we get total value of any metrics is 0 when we change the Time frame, then disabled that Tiem frame filter\n // _.keys(tooltipNames).filter((option) => {\n // if (\n // _.keys(selectedMetrics).includes(option) &&\n // localMetricDisabled[option] === true\n // ) {\n // setIsDisabledTimeFrame(true);\n // }\n // return null;\n // });\n\n setIsMetricsDisabled(localMetricDisabled);\n return tempData;\n },\n [customerState],\n );\n\n const getPerformanceData = useCallback(\n (\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n selectedMetrics,\n startDate = null,\n endDate = null,\n ) => {\n setPerformanceGraphLoader(true);\n getSummaryPerformanceData(\n id,\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n startDate,\n endDate,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 400) {\n setPerformanceGraphLoader(false);\n }\n if (res?.status === 200) {\n if (res?.data?.result) {\n const responseData = res?.data?.result;\n const performanceGraphData = bindPerformanceResponseData(\n res?.data?.result,\n selectedDailyFact,\n selectedMetrics,\n );\n setSummaryPerformanceGraphData(performanceGraphData);\n setPerformanceCurrentTotal(responseData?.current_sum || {});\n setPerformancePreviousTotal(responseData?.previous_sum || {});\n setPerformanceDifference(responseData?.difference_data || {});\n } else {\n setSummaryPerformanceGraphData([]);\n setPerformanceCurrentTotal({});\n setPerformancePreviousTotal({});\n setPerformanceDifference({});\n setIsMetricsDisabled(initialDisabledMetrics);\n }\n setPerformanceGraphLoader(false);\n }\n }\n });\n },\n\n [bindPerformanceResponseData, id],\n );\n\n useEffect(() => {\n mounted.current = true;\n let marketPlaceList = [];\n if (mounted.current && marketplaceChoices.length) {\n for (const option of marketplaceChoices) {\n marketPlaceList.push({\n value: option.name,\n label: option.country_currency.country,\n currency: option.country_currency.currency,\n });\n }\n\n if (marketPlaceList.length === 2) {\n marketPlaceList = marketPlaceList.filter(\n (item) => item.value !== 'all',\n );\n }\n setMarketplaceOptions(marketPlaceList);\n if (responseId === null) {\n const initialMarketplace =\n marketPlaceList.length > 1 ? marketPlaceList[1] : marketPlaceList[0];\n setSelectedMarketplaceOption(initialMarketplace);\n setCurrencySymbol(getSymbolFromCurrency(initialMarketplace?.currency));\n getPerformanceData(\n selectedTimeFrame.value,\n groupBy,\n initialMarketplace?.value,\n selectedPeformanceMetrics,\n );\n setResponseId('12345');\n }\n }\n return () => {\n mounted.current = false;\n };\n }, [\n selectedPeformanceMetrics,\n getPerformanceData,\n groupBy,\n marketplaceChoices,\n selectedTimeFrame,\n responseId,\n ]);\n\n const renderCustomDateSubLabel = (props, flag) => {\n if (flag === 'sp') {\n if (selectedTimeFrame?.value === 'custom' && isCustomDateApply) {\n return `From - ${dayjs(customDateState[0]?.startDate).format(\n 'MMM D, YYYY',\n )} To - ${dayjs(customDateState[0]?.endDate).format('MMM D, YYYY')}`;\n }\n }\n return props?.data?.sub;\n };\n\n // function call only when selected option is custom\n const checkDifferenceBetweenDates = (\n startDate,\n endDate,\n flag = null,\n marketplace = selectedMarketplaceOption?.value,\n ) => {\n const temp = 'daily';\n let sd = startDate;\n let ed = endDate;\n setGroupBy(temp);\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n setCustomDate({ startDate: sd, endDate: ed });\n getPerformanceData(\n flag,\n temp,\n marketplace,\n selectedPeformanceMetrics,\n sd,\n ed,\n );\n };\n\n const handleTimeFrameFilter = (event) => {\n const { value } = event;\n setIsAppliedCustom(false);\n setSelectedTimeFrame(event);\n if (value !== 'custom') {\n setIsCustomDateApply(false);\n setCustomDateState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n }\n\n if (value === 'custom') {\n setShowCustomDateModal(true);\n } else {\n let groupByOption = 'daily';\n if (value === 'year') {\n groupByOption = 'weekly';\n }\n setGroupBy(groupByOption);\n getPerformanceData(\n value,\n groupByOption,\n selectedMarketplaceOption?.value,\n selectedPeformanceMetrics,\n );\n }\n };\n\n const handleMarketplaceOptions = (event) => {\n if (event?.value !== selectedMarketplaceOption?.value) {\n setSelectedMarketplaceOption(event);\n setCurrencySymbol(getSymbolFromCurrency(event.currency));\n\n if (selectedTimeFrame.value === 'custom') {\n checkDifferenceBetweenDates(\n customDateState[0].startDate,\n customDateState[0].endDate,\n 'custom',\n event.value,\n );\n } else {\n getPerformanceData(\n selectedTimeFrame.value,\n groupBy,\n event.value,\n selectedPeformanceMetrics,\n );\n }\n }\n };\n\n const handleGroupBy = (value) => {\n if (value !== groupBy) {\n setGroupBy(value);\n if (selectedTimeFrame.value === 'custom') {\n getPerformanceData(\n selectedTimeFrame.value,\n value,\n selectedMarketplaceOption?.value,\n selectedPeformanceMetrics,\n customDate.startDate,\n customDate.endDate,\n );\n } else {\n getPerformanceData(\n selectedTimeFrame.value,\n value,\n selectedMarketplaceOption?.value,\n selectedPeformanceMetrics,\n );\n }\n }\n };\n\n const applyCustomDate = () => {\n setSelectedTimeFrame({\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n\n checkDifferenceBetweenDates(\n customDateState[0].startDate,\n customDateState[0].endDate,\n 'custom',\n );\n setShowCustomDateModal(false);\n setIsCustomDateApply(true);\n };\n\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n const generateSingleSelectDropdownHTML = (\n filterId,\n className,\n dropdownOptions,\n selectedValue,\n onChangeHandler,\n dropdownComponents,\n isApiCall,\n isSearchable = false,\n ) => {\n return (\n
    \n \n
    \n );\n };\n\n const renderMarketplaceDropDown = () => {\n return (\n \n \n
    \n
    \n
    View data for:
    {' '}\n
    \n
    \n
    \n {generateSingleSelectDropdownHTML(\n 'BT-summaryperformancedata-countryfilter',\n '',\n marketplaceOptions,\n selectedMarketplaceOption,\n handleMarketplaceOptions,\n getSelectDropdownIndicator,\n performanceGraphLoader,\n true,\n )}\n
    \n
    \n
    \n
    \n );\n };\n\n const daysDiffForSummary = dayjs(currentDate).diff(\n dayjs(summaryMinDate),\n 'days',\n );\n\n const returnMinDate = () =>\n summaryMinDate === null ? new Date('01/01/1901') : new Date(summaryMinDate);\n\n return (\n
    \n {renderMarketplaceDropDown()}\n {/* https://bbe.atlassian.net/browse/PDV-9525 - FE 2 - BP / Internal /\n Partner List Views - Stop pulling Seller and Vendor data via Amazon APIs\n Logic - If user is not Super Admin AND BP is BBE BP i.e. not Spreetail\n bp then hide performnce section. */}\n {hidePerformanceSection ? null : (\n \n )}\n \n \n {\n setShowCustomDateModal(false);\n setCustomDateState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n }}\n onChange={(item) => {\n setCustomDateState([item.selection]);\n }}\n onApply={() => {\n setIsAppliedCustom(true);\n applyCustomDate('SPDate');\n }}\n currentDate={currentDate}\n minDate={returnMinDate()}\n />\n
    \n );\n}\n\nSummaryViewContainer.defaultProps = {\n id: '',\n data: {},\n marketplaceChoices: [],\n};\n\nSummaryViewContainer.propTypes = {\n id: string,\n data: shape({}),\n marketplaceChoices: arrayOf(shape({})),\n};\n","import React, { useState, useCallback, useEffect } from 'react';\n\nimport Modal from 'react-modal';\nimport { useSelector } from 'react-redux';\nimport { DebounceInput } from 'react-debounce-input';\nimport { string, bool, func, shape } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { CloseIcon, SearchIcon } from '../../../../../theme/images';\nimport { getAllMembers } from '../../../../../api';\nimport {\n Button,\n CommonPagination,\n GetInitialName,\n InputSearchWithRadius,\n ModalBox,\n PageLoader,\n} from '../../../../../common';\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n minHeight: '220px',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nfunction ChangeAssigneeModal({\n modalId,\n isOpen,\n afterSubmitAPI,\n handleAddAssignee,\n selectedAssignee,\n setSelectedAssignee,\n}) {\n const customerMemberData = useSelector(\n (state) => state.customerState.customerMembers,\n );\n\n const designerRoleGroupId = customerMemberData.find(\n (item) => item?.role_group?.name === 'Designer',\n )?.role_group?.id;\n\n const [isSubmitApiCall, setIsSubmitApiCall] = useState(false);\n const [isDataLoading, setIsDataLoading] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [bbeUsersData, setBbeUsersData] = useState([]);\n const [pageNumber, setPageNumber] = useState(1);\n const [totalCount, setTotalCount] = useState(0);\n\n const getDesignerMemberList = useCallback(\n (page, searchString) => {\n setIsDataLoading(true);\n setBbeUsersData([]);\n setTotalCount(0);\n getAllMembers(designerRoleGroupId, true, page, searchString).then(\n (response) => {\n if (response?.status === 200) {\n setBbeUsersData(response?.data?.results);\n setTotalCount(response?.data?.count);\n } else {\n setBbeUsersData([]);\n setTotalCount(0);\n }\n setIsDataLoading(false);\n },\n );\n },\n [designerRoleGroupId],\n );\n\n useEffect(() => {\n getDesignerMemberList(1, '');\n }, [getDesignerMemberList]);\n\n // before and after calling api\n const eventsBeforeAndAfterApi = useCallback(() => {\n setBbeUsersData([]);\n setTotalCount(0);\n afterSubmitAPI();\n }, [afterSubmitAPI]);\n\n // Handle Search events\n const handleSearch = (event) => {\n event.persist();\n setSearchQuery(event.target.value);\n setPageNumber(1);\n setTimeout(() => {\n getDesignerMemberList(1, event?.target?.value);\n }, 1000);\n setSelectedAssignee({});\n };\n\n // Handle Pagination events\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getDesignerMemberList(currentPage, searchQuery);\n };\n\n // render Input Search With Radius\n const renderInputSearchWithRadius = () => {\n return (\n \n {\n handleSearch(event);\n }}\n value={searchQuery || ''}\n debounceTimeout={600}\n />\n \"search\"\n \n );\n };\n // render bbe assigned and unassigned users list\n const renderBBEUsersList = () => {\n return bbeUsersData?.map((user) => {\n return (\n {\n setSelectedAssignee(user);\n }}\n >\n
    \n
    \n \n
    \n
    \n {`${user?.first_name} ${user?.last_name}`}\n
    \n {user?.role}\n
    \n
    \n
    \n\n
    \n {selectedAssignee?.id === user?.id ? (\n
    \n \n
    \n ) : (\n \n )}\n
    \n
    \n );\n });\n };\n\n // render submit button html\n const renderSubmitButton = () => {\n return (\n {\n e.stopPropagation();\n setIsSubmitApiCall(false);\n handleAddAssignee(selectedAssignee);\n }}\n >\n {isSubmitApiCall ? : 'Submit'}\n \n );\n };\n\n // render cancel button html\n const renderCancelButton = () => {\n return (\n {\n e.stopPropagation();\n eventsBeforeAndAfterApi();\n }}\n >\n Cancel\n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n \n {\n afterSubmitAPI();\n setBbeUsersData([]);\n }}\n role=\"presentation\"\n />\n \n <>\n
    \n

    Change Task Assignee

    \n\n {renderInputSearchWithRadius()}\n
    \n \n
    \n {isDataLoading ? (\n \n ) : bbeUsersData?.length === 0 ? (\n
    \n No User Found.\n
    \n ) : (\n <>{renderBBEUsersList()}\n )}\n
    \n
    \n {totalCount > 10 ? (\n <>\n
    \n
    \n \n
    \n \n ) : null}\n
    \n\n
    \n
    \n
    \n
    {renderSubmitButton()}
    \n
    {renderCancelButton()}
    \n
    \n
    \n \n \n \n \n );\n}\n\nexport default ChangeAssigneeModal;\n\nChangeAssigneeModal.defaultProps = {\n modalId: '',\n isOpen: false,\n afterSubmitAPI: () => {},\n handleAddAssignee: () => {},\n selectedAssignee: {},\n setSelectedAssignee: () => {},\n};\n\nChangeAssigneeModal.propTypes = {\n modalId: string,\n isOpen: bool,\n afterSubmitAPI: func,\n handleAddAssignee: func,\n selectedAssignee: shape({}),\n setSelectedAssignee: func,\n};\n","import React, { useState } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, string, bool, func } from 'prop-types';\n\nimport ChangeAssigneeModal from './ChangeAssigneeModal';\nimport { GetInitialName } from '../../../../../common';\n\nfunction AddAssignee({ id, assigneeData, handleAddAssignee, isEditFlagOn }) {\n const [showChangeCOSAssigneeModal, setShowChangeCOSAssigneeModal] =\n useState(false);\n const [selectedAssignee, setSelectedAssignee] = useState({});\n\n // render assignee tooltip\n const renderAssigneeTooltip = (item) => {\n return (\n \n \n {item?.first_name || ' '} {item?.last_name || ' '}\n \n \n );\n };\n\n // get initial letter from first name and last name of user name\n const renderGetInitialName = (item) => {\n return (\n \n );\n };\n\n // render COS assignee\n const renderCOSAssignee = (item) => {\n const firstName = item?.first_name;\n const lastName = item?.last_name;\n const showAssigneeTooltip = firstName !== null && lastName !== null;\n\n return showAssigneeTooltip ? (\n {\n setShowChangeCOSAssigneeModal(true);\n }}\n data-tip\n data-for={item?.id}\n >\n {renderGetInitialName(item)}\n {renderAssigneeTooltip(item)}\n
    \n ) : null;\n };\n\n // render plus sign circle\n const renderPlusSign = () => {\n return (\n {\n setShowChangeCOSAssigneeModal(true);\n }}\n >\n \n
    \n );\n };\n\n // render task assignee and plus sign\n const renderCOSAssigneeData = () => {\n return assigneeData\n ? renderCOSAssignee(assigneeData)\n : isEditFlagOn\n ? renderPlusSign()\n : '';\n };\n\n // render change assignee modal\n const renderChangeCOSAssigneeModal = () => {\n return (\n {\n setShowChangeCOSAssigneeModal(false);\n }}\n handleAddAssignee={(selectedMember) => {\n handleAddAssignee(selectedMember);\n setShowChangeCOSAssigneeModal(false);\n }}\n selectedAssignee={selectedAssignee}\n setSelectedAssignee={setSelectedAssignee}\n />\n );\n };\n\n return (\n <>\n {renderCOSAssigneeData()}\n {showChangeCOSAssigneeModal ? renderChangeCOSAssigneeModal() : null}\n \n );\n}\n\nexport default AddAssignee;\n\nAddAssignee.defaultProps = {\n assigneeData: [],\n id: '',\n handleAddAssignee: () => {},\n\n isEditFlagOn: false,\n};\n\nAddAssignee.propTypes = {\n assigneeData: arrayOf(shape({})),\n id: string,\n handleAddAssignee: func,\n isEditFlagOn: bool,\n};\n","import React, { useState } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, bool, func } from 'prop-types';\n\nimport { WhiteCard, CollapseTableMobileView } from '../../../../../common';\n\nfunction COSMobileView({\n cosData,\n asinsList,\n stickyColumns,\n tableColumns,\n isEditFlagOn,\n displayInputBox,\n displayValues,\n selectedViewType,\n cosAccessOfBP,\n displayDownloadBtn,\n isSingleMonthSelected,\n displayAddNewRowBtn,\n}) {\n const [viewMoreDetailsFlag, setViewMoreDetailsFlag] = useState({\n index: null,\n flag: null,\n });\n const totalColumns = stickyColumns.concat(tableColumns);\n\n const displayTableData = (cos, cosIndex) => {\n if (viewMoreDetailsFlag?.index === cosIndex && viewMoreDetailsFlag?.flag) {\n return totalColumns?.map((item) => {\n return (\n
    \n
    \n {item?.label}\n
    \n
    \n {isEditFlagOn\n ? displayInputBox(item, cos, cosIndex)\n : displayValues(item, cos, cosIndex)}\n
    \n
    \n );\n });\n }\n return totalColumns.slice(0, 4)?.map((item) => {\n return (\n
    \n
    \n {item?.label}\n
    \n
    \n {isEditFlagOn\n ? displayInputBox(item, cos, cosIndex)\n : displayValues(item, cos, cosIndex)}\n
    \n
    \n );\n });\n };\n\n const displayStickyTable = () => {\n return (\n <>\n {cosData?.length && asinsList?.length ? (\n cosData?.length ? (\n asinsList?.map((cos, cosIndex) => {\n return (\n
    \n
    \n {displayTableData(cos, cosIndex)}\n {\n setViewMoreDetailsFlag({\n index: cosIndex,\n flag: !viewMoreDetailsFlag.flag,\n });\n }}\n >\n {viewMoreDetailsFlag?.index === cosIndex &&\n viewMoreDetailsFlag?.flag\n ? 'View less details'\n : `View 29 more details`}\n \n
    \n
    \n \n );\n })\n ) : (\n No Data Available\n )\n ) : (\n

    No COS Data

    \n )}\n \n );\n };\n\n return (\n \n \n
    {selectedViewType?.label}
    \n {cosData?.length && cosAccessOfBP?.show ? displayDownloadBtn() : ''}\n
    \n {displayStickyTable()}\n {cosData?.length &&\n isEditFlagOn &&\n cosAccessOfBP?.show &&\n isSingleMonthSelected()\n ? displayAddNewRowBtn()\n : null}\n
    \n );\n}\n\nexport default COSMobileView;\n\nCOSMobileView.defaultProps = {\n cosData: [],\n asinsList: [],\n stickyColumns: [],\n tableColumns: [],\n isEditFlagOn: false,\n displayInputBox: () => {},\n displayValues: () => {},\n selectedViewType: {},\n cosAccessOfBP: {},\n displayDownloadBtn: () => {},\n isSingleMonthSelected: () => {},\n displayAddNewRowBtn: () => {},\n};\n\nCOSMobileView.propTypes = {\n cosData: arrayOf(shape({})),\n asinsList: arrayOf(shape({})),\n stickyColumns: arrayOf(shape({})),\n tableColumns: arrayOf(shape({})),\n isEditFlagOn: bool,\n displayInputBox: func,\n displayValues: func,\n selectedViewType: shape({}),\n cosAccessOfBP: shape({}),\n displayDownloadBtn: func,\n isSingleMonthSelected: func,\n displayAddNewRowBtn: func,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { bool, func } from 'prop-types';\n\nimport { CloseIcon } from '../../../../../theme/images';\nimport { ModalBox, Button } from '../../../../../common';\n\nexport default function DeleteConfirmationModal({\n showModal,\n setShowModal,\n handleDeleteSelection,\n}) {\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n return (\n \n {\n setShowModal({ flag: false, selectedCosId: null, index: null });\n }}\n role=\"presentation\"\n />\n \n
    \n
    \n
    \n Are you sure you want to Delete?\n
    \n
    \n
    \n handleDeleteSelection(true)}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\"\n >\n Delete\n \n handleDeleteSelection(false)}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \"\n >\n Cancel\n \n
    \n
    \n
    \n \n );\n}\n\nDeleteConfirmationModal.defaultProps = {\n showModal: false,\n setShowModal: () => {},\n handleDeleteSelection: () => {},\n};\n\nDeleteConfirmationModal.propTypes = {\n showModal: bool,\n setShowModal: func,\n handleDeleteSelection: func,\n};\n","import styled from 'styled-components';\n\nimport Theme from '../../../../theme/Theme';\n\nexport const COSNav = styled.div`\n ul {\n margin: 0;\n padding: 0;\n\n li {\n display: inline-block;\n width: 100%;\n max-width: 216px;\n margin-right: 16px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.action-btn {\n max-width: fit-content;\n width: fit-content;\n }\n }\n }\n`;\n\nexport const GoalsNav = styled.div`\n .inline-content {\n margin-top: -6px;\n li {\n width: 160px;\n margin-right: 16px;\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n vertical-align: top;\n &.action-btn {\n max-width: fit-content;\n width: fit-content;\n button {\n font-size: 14px;\n min-height: 40px;\n border-radius: 6px;\n padding: 5px 7px;\n }\n }\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n @media only screen and (max-width: 600px) {\n text-align: left;\n .inline-content {\n li {\n width: ${(props) => (props.show ? '46%' : '37%')};\n margin-right: 8px;\n\n &.action-btn {\n max-width: 100%;\n width: auto;\n }\n }\n }\n }\n\n @media only screen and (max-width: 370px) {\n .inline-content {\n li {\n width: ${(props) => (props.show ? '45%' : '34%')};\n\n .dropdown-goal-filter {\n min-width: auto;\n }\n }\n }\n }\n`;\n\nexport const SyncButton = styled.div`\n height: 32px;\n width: 32px;\n border: 1px solid ${Theme.gray45};\n border-radius: 6px;\n color: ${Theme.gray90};\n text-align: center;\n padding: 7px;\n font-size: ${Theme.extraNormal};\n`;\nexport const DesktopStickyTable = styled.table`\n position: relative;\n /* width: 100%; */\n border-spacing: 0;\n table {\n position: relative;\n }\n thead {\n tr {\n text-align: left;\n background: ${Theme.gray8};\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n th {\n padding: 17px 0px 17px 10px;\n text-transform: uppercase;\n color: ${Theme.gray40};\n font-size: 11px;\n font-family: ${Theme.titleFontFamily};\n min-height: 48px;\n\n /* &:last-child {\n padding-right: 16px;\n } */\n }\n &.gray-border-radius {\n th {\n &:first-child {\n border-top-left-radius: 10px;\n }\n /* &:last-child {\n border-top-right-radius: 10px;\n } */\n }\n }\n }\n .showme {\n display: none;\n }\n tr:hover .showme {\n display: block;\n }\n }\n tbody {\n position: relative;\n\n tr {\n background: ${Theme.gray1};\n /* &:hover {\n background: ${Theme.gray8};\n } */\n\n td {\n color: ${Theme.black};\n padding: 22px 10px 22px 10px;\n font-size: ${Theme.extraNormal};\n border-bottom: 1px solid ${Theme.gray11};\n\n .creative-input {\n border: none;\n font-size: 14px;\n &:focus {\n outline: none !important;\n border-width: 0px !important;\n border: none !important;\n }\n }\n\n &.border-none {\n border-bottom: none;\n }\n\n &.BPLogo {\n .company-logo {\n border-radius: 10px;\n width: 45px;\n height: 45px;\n margin-right: 14px;\n float: left;\n }\n\n .company-name {\n min-height: 20px;\n text-transform: capitalize;\n word-break: break-all;\n }\n\n .status {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n word-break: break-all;\n text-transform: capitalize;\n }\n }\n\n &.goals-no-data {\n vertical-align: top;\n }\n\n span.collapse-icon {\n width: 16px;\n height: 16px;\n background: rgb(244, 246, 252);\n margin-right: 10px;\n display: inline-block;\n text-align: center;\n vertical-align: middle;\n }\n .large-text {\n font-size: ${Theme.extraMedium};\n font-family: ${Theme.baseMediumFontFamily};\n }\n .small-text {\n font-size: ${Theme.extraSmall};\n }\n &.text-bold {\n font-family: ${Theme.titleFontFamily};\n }\n\n .text-extra-small {\n font-size: ${Theme.textExtraSmall};\n }\n &.word-break {\n word-break: break-all;\n }\n\n div.range {\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.baseMediumFontFamily};\n &.increase-rate {\n color: ${Theme.lighterGreen};\n }\n &.decrease-rate {\n color: ${Theme.red};\n }\n &.normal-font {\n font-size: ${Theme.extraNormal};\n }\n }\n .asin-trash {\n padding-right: 5px;\n }\n\n .display-flex {\n display: flex;\n }\n }\n }\n }\n &.metrics-table {\n tbody {\n tr:last-child td {\n border-bottom: 2px solid #e0e6e8;\n }\n }\n }\n\n &.services-playbook-table {\n tbody {\n position: relative;\n tr {\n td {\n a {\n color: #000;\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n }\n }\n`;\n\nexport const TableWrapper = styled.div`\n .body-content {\n max-height: 75vh !important;\n .sc-cbDGPM {\n margin: initial;\n max-width: 73%;\n }\n }\n\n .modal-body {\n //vertical scroll bar\n overflow: auto;\n ::-webkit-scrollbar {\n width: 7px;\n height: 5px;\n }\n ::-webkit-scrollbar-thumb {\n background: ${Theme.gray11} !important;\n }\n ::-webkit-scrollbar-track {\n background: ${Theme.white} !important;\n }\n }\n\n tbody {\n tr {\n border-bottom: 1px solid #e0e6e8;\n &.collapse-body-row {\n background: #fae9e6;\n font-size: ${Theme.extraSmall};\n text-transform: uppercase;\n }\n\n td {\n .goals-text-data {\n max-width: calc(100% - 40px);\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.marketplace-row {\n border-bottom: 1px solid ${Theme.white};\n }\n }\n }\n }\n\n .sticky-column {\n position: sticky;\n left: 0;\n z-index: 9;\n background: ${Theme.white};\n &.header {\n background: ${Theme.gray8};\n }\n &.collapse-body {\n background: #fae9e6;\n color: ${Theme.orange};\n font-family: ${Theme.titleFontFamily};\n z-index: 2;\n white-space: nowrap;\n }\n &.sticky-panel {\n background: rgb(250, 250, 250);\n }\n &.br-1 {\n border-right: 1px solid #bfc5d2;\n }\n &.col-left-70 {\n left: 70px;\n }\n &.col-left-190 {\n left: 190px;\n }\n &.col-left-260 {\n left: 260px;\n }\n }\n`;\n\nexport const GoalsStyle = styled.div`\n .goals-radio-button-list {\n margin-top: 10px;\n ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n li {\n display: inline-block;\n margin-right: 15px;\n }\n li:last-child {\n margin-right: 0px;\n }\n }\n }\n .new-item {\n padding: 4px 6px;\n border-radius: 6px;\n text-align: center;\n font-size: 9px;\n &.added {\n color: ${Theme.green};\n background: #d6eed5;\n }\n &.edited {\n color: ${Theme.gray90};\n background: ${Theme.gray8};\n }\n }\n .add-new-cos-btn {\n padding: 24px;\n }\n .goals-gray-box {\n border: 1px solid ${Theme.gray11};\n background: ${Theme.gray8};\n color: #2e384d;\n font-size: 13px;\n border-radius: 1px;\n padding: 5px 6px;\n width: 100%;\n min-height: 28px;\n }\n`;\n\nexport const BorderLessField = styled.div`\n input {\n border: 1px solid ${Theme.gray11};\n background: transparent;\n color: ${Theme.gray90};\n font-size: ${Theme.extraSmall};\n border-radius: 1px;\n padding: 6px;\n width: 100%;\n\n &:focus {\n outline: ${Theme.orange};\n border: ${Theme.orange};\n border: 1px solid ${Theme.orange};\n }\n }\n`;\n\nexport const AsinStatus = styled.div`\n .asin-status {\n background: ${Theme.white};\n border: 1px solid ${Theme.gray35};\n height: 20px;\n width: 20px;\n border-radius: 4px;\n }\n\n /* .parent-status {\n float: right;\n } */\n\n .selected-asin-status {\n border: 1px solid #ffffff;\n text-align: center;\n padding-top: 1px;\n }\n .waiting-for-assets {\n background: ${Theme?.lightYellow};\n color: ${Theme?.yellow};\n }\n\n .in-progress-creative {\n background: ${Theme?.lightOrange};\n color: ${Theme?.orange};\n }\n .ready-for-upload {\n background: #cce0ff;\n color: #0045b4;\n }\n .uploaded {\n background: ${Theme?.lightGreen};\n color: ${Theme?.darkGreen};\n }\n\n .option-icon {\n padding: 2px;\n text-align: center;\n display: inline-block;\n }\n\n .option-label {\n display: inline-block;\n vertical-align: middle;\n padding-left: 10px;\n }\n .dropdown-notes-filter {\n background-color: ${Theme.white};\n border-radius: 4px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n width: 250px;\n padding: 15px;\n position: absolute;\n z-index: 99999;\n /* left: 35px; */\n /* width: 100%; */\n\n &.hide {\n display: none;\n }\n &.show {\n display: block;\n }\n .notes-option {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n padding-bottom: 14px;\n cursor: pointer;\n\n &.checkbox-option {\n padding-bottom: 4px;\n }\n\n &.teams-title {\n color: ${Theme.gray40};\n text-transform: uppercase;\n font-size: 11px;\n padding: 5px 0 15px 0;\n font-family: ${Theme.titleFontFamily};\n }\n }\n }\n }\n`;\n\nexport const COSAsins = styled.div`\n .asin-count-label {\n font-size: ${Theme.extraNormal};\n }\n`;\n","import React, { useState, useRef, useEffect } from 'react';\n\nimport { toast } from 'react-toastify';\nimport dayjs from 'dayjs';\nimport DatePicker from 'react-date-picker';\nimport ReactTooltip from 'react-tooltip';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, bool, func, string } from 'prop-types';\n\nimport AddAssignee from './AddAssignee';\nimport COSMobileView from './COSMobileView';\nimport DeleteConfirmationModal from './DeleteConfirmationModal';\nimport { downloadCosReport, deleteCOS } from '../../../../../api';\nimport { InfoIcons, TrashIcons } from '../../../../../theme/images';\nimport { TaskStatus } from '../../Playbook/PlaybookStyle';\nimport { TableWrapper, AsinStatus, DesktopStickyTable } from '../GoalsStyle';\nimport {\n tableHeaders,\n defaultCOSData,\n stickyColumnHeaders,\n} from '../../../../../constants';\nimport {\n Button,\n WhiteCard,\n DesktopTable,\n SingleSelectDropdown,\n DropdownIndicator,\n ToggleSwitch,\n ErrorMsg,\n PageLoader,\n InputFormField,\n} from '../../../../../common';\n\nfunction COSTable({\n isEditFlagOn,\n cosData,\n asinsList,\n setAsinsList,\n selectedViewType,\n isSingleMonthSelected,\n cosAccessOfBP,\n errors,\n setError,\n id,\n customStartDate,\n customEndDate,\n setNewRowFlag,\n getAsinCountData,\n}) {\n const isDesktop = useMediaQuery({ minWidth: 767 });\n\n const [downloadLoader, setDownloadLoader] = useState(false);\n const [showDeleteConfirmationModal, setShowDeleteconfirmationModal] =\n useState({ flag: false, selectedCosId: null, index: null });\n const [downloadUrl, setDownloadUrl] = useState(null);\n const [showStatusDropdown, setShowStatusDropdown] = useState({\n index: null,\n viewFor: '',\n });\n const dropdownRef = useRef(null);\n\n const handleClickOutside = () => {\n setShowStatusDropdown({ index: null, viewFor: '' });\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n const tableColumns = tableHeaders\n ?.map((headers) => [...headers?.columns])\n .flat();\n const stickyColumns = stickyColumnHeaders\n ?.map((headers) => [...headers?.columns])\n .flat();\n\n const handleDownloadBtn = () => {\n setDownloadLoader(true);\n const link = document.createElement('a');\n downloadCosReport(id, customStartDate, customEndDate).then((res) => {\n setDownloadLoader(false);\n\n if (res?.status === 200) {\n setDownloadUrl(res?.data?.url);\n link.href = res?.data?.url;\n link.click();\n }\n });\n };\n\n const displayDownloadBtn = () => {\n return (\n \n {\n handleDownloadBtn();\n }}\n value=\"download\"\n className={` btn-primary extraNormal-text w-25`}\n >\n {downloadLoader ? (\n \n ) : (\n 'Download'\n )}\n \n \n );\n };\n\n // get dropdwon indicator for dropdown filter\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n const handleChange = (event, item, asinData, cosIndex) => {\n asinData[item?.key] = event?.value;\n\n const list = [...asinsList];\n list[cosIndex] = asinData;\n setAsinsList([...list]);\n };\n\n const handleError = (cosIndex, item) => {\n if (Object.keys(errors)?.length) {\n const list = { ...errors };\n\n if (\n list &&\n Object.keys(list) &&\n Object.keys(list)?.includes(cosIndex?.toString())\n )\n delete list[cosIndex][item?.key];\n setError({ ...list });\n }\n };\n\n const handleInputChange = (event, asinData, cosIndex) => {\n asinData[event?.target?.name] = event?.target?.value;\n\n const list = [...asinsList];\n list[cosIndex] = asinData;\n setAsinsList([...list]);\n };\n\n const handleDateChange = (event, item, asinData, cosIndex) => {\n const formattedDate = dayjs(event).format('YYYY-MM-DD');\n asinData[item?.key] = formattedDate;\n\n const list = [...asinsList];\n list[cosIndex] = asinData;\n setAsinsList([...list]);\n };\n const handleAddAssignee = (event, item, asinData, cosIndex) => {\n asinData[item?.key] = event?.id;\n asinData[item?.valueKey] = {\n id: event?.id,\n first_name: event?.first_name,\n last_name: event?.last_name,\n };\n\n const list = [...asinsList];\n list[cosIndex] = asinData;\n setAsinsList([...list]);\n };\n\n const handleRadioBtn = (event, item, asinData, cosIndex) => {\n asinData[item?.key] = event;\n\n const list = [...asinsList];\n list[cosIndex] = asinData;\n setAsinsList([...list]);\n };\n\n const applyClassNameOfStatus = (key) => {\n let className = '';\n if (key === 'waiting on assets') {\n className = 'selected-asin-status waiting-for-assets';\n }\n if (key === 'in progress - creative') {\n className = 'selected-asin-status in-progress-creative';\n }\n if (key === 'ready for upload') {\n className = 'selected-asin-status ready-for-upload';\n }\n if (key === 'uploaded') {\n className = 'selected-asin-status uploaded';\n }\n return className;\n };\n\n const applyStatusIcons = (key) => {\n let iconName = '';\n if (key === 'waiting on assets') {\n iconName = 'fa-exclamation';\n }\n if (key === 'in progress - creative') {\n iconName = 'fa-bars-progress';\n }\n if (key === 'ready for upload') {\n iconName = 'fa-upload';\n }\n if (key === 'uploaded') {\n iconName = 'fa-check';\n }\n return iconName;\n };\n\n const onCancelOfAddNewRow = (selectedDeleteCosId) => {\n if (selectedDeleteCosId) {\n const list = [...asinsList];\n const filterListofCOSWithIds = list.filter(\n (item) => item?.id !== selectedDeleteCosId,\n );\n setAsinsList([...filterListofCOSWithIds]);\n } else {\n setNewRowFlag(false);\n const list = [...asinsList];\n list.splice(showDeleteConfirmationModal?.index, 1);\n setAsinsList([...list]);\n }\n setShowDeleteconfirmationModal({\n flag: false,\n selectedCosId: null,\n index: null,\n });\n };\n\n const deleteCos = () => {\n if (showDeleteConfirmationModal?.selectedCosId) {\n deleteCOS(showDeleteConfirmationModal?.selectedCosId).then(() => {\n toast.success('COS Deleted successfully!');\n getAsinCountData();\n onCancelOfAddNewRow(showDeleteConfirmationModal?.selectedCosId);\n });\n } else {\n onCancelOfAddNewRow();\n }\n };\n\n const displayInputBox = (item, asinData, cosIndex) => {\n switch (item?.type) {\n case 'radio':\n return (\n
    \n \n \n \n {' '}\n No\n \n {\n handleRadioBtn(\n !asinData[item?.key],\n item,\n asinData,\n cosIndex,\n );\n }}\n defaultChecked={asinsList[cosIndex][item.key]}\n />\n \n \n {' '}\n Yes\n \n \n \n
    \n );\n\n case 'choice':\n return (\n option.value === asinsList[cosIndex][item.key],\n )}\n onChangeHandler={(event) =>\n handleChange(event, item, asinData, cosIndex)\n }\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n />\n );\n\n case 'checkbox':\n return (\n
    \n {item.key === 'parent_status' ? (\n \n \n setShowDeleteconfirmationModal({\n flag: true,\n selectedCosId: asinData?.id,\n index: cosIndex,\n })\n }\n role=\"presentation\"\n />{' '}\n \n ) : (\n ''\n )}\n \n {\n setShowStatusDropdown({\n index: cosIndex,\n viewFor: item?.key,\n });\n }}\n >\n \n
    \n \n \n \n
      \n {item?.options.map((statusOption) => {\n return (\n \n handleChange(statusOption, item, asinData, cosIndex)\n }\n >\n
      \n \n \n
      \n\n
      \n {statusOption.label}\n
      \n
    \n \n );\n })}\n \n
    \n
    \n \n
    \n );\n\n case 'date':\n return (\n \n {\n handleDateChange(date, item, asinData, cosIndex);\n }}\n onKeyDown={(e) => {\n e.preventDefault();\n }}\n />\n \n );\n\n case 'avtar':\n return (\n \n handleAddAssignee(event, item, asinData, cosIndex)\n }\n asinData={asinData}\n header={item}\n cosIndex={cosIndex}\n isEditFlagOn={isEditFlagOn}\n />\n );\n\n default:\n return (\n <>\n \n \n \n\n {errors?.[cosIndex]?.[item.key] ? (\n {errors?.[cosIndex]?.[item.key]}\n ) : null}\n \n );\n }\n };\n\n const calculateHeight = (index = 0) => {\n const right = document\n .getElementById(`${index}non-sticky`)\n ?.getBoundingClientRect().height;\n const left = document\n .getElementById(`${index}sticky`)\n ?.getBoundingClientRect().height;\n if (!left && !right) return '64px';\n return left > right ? `${left}px` : `${right}px`;\n };\n\n const displayStickyEditableTable = (asinData, cosIndex, tableType) => {\n return (\n \n {stickyColumns?.map((item) => (\n \n {displayInputBox(item, asinData, cosIndex)}\n \n ))}\n \n );\n };\n\n const displayEditableTable = (asinData, cosIndex, tableType) => {\n return (\n \n {tableColumns?.map((item) => (\n \n {displayInputBox(item, asinData, cosIndex)}\n \n ))}\n \n );\n };\n\n const displayValuesForTextInput = (item, asinData, cosIndex) => {\n const linkfields = [\n 'pdp_url',\n 'bp_url',\n 'link_to_assets',\n 'link_to_completed_design_deliverables',\n 'design_link_to_jira_project',\n 'link_to_completed_copy_deliverables',\n 'copy_link_to_jira_project',\n ];\n\n if (linkfields.includes(item.key)) {\n return asinsList[cosIndex][item.key] ? (\n \n Link\n \n ) : (\n -\n );\n }\n if (item.key === 'design_project_status') {\n return {asinsList[cosIndex][item.key]};\n }\n if (item.key === 'copy_project_status') {\n return {asinsList[cosIndex][item.key]};\n }\n return (\n <>\n \n {asinsList[cosIndex][item.key]?.length > 11\n ? asinsList[cosIndex][item.key]?.slice(0, 11)\n : asinsList[cosIndex][item.key]}\n {asinsList[cosIndex][item.key]?.length > 11 ? (\n ...\n ) : (\n ''\n )}\n \n \n \n );\n };\n\n // render progress label className\n const renderProgressLabelClassName = (status) => {\n let className = '';\n switch (status) {\n case 'Keyword Research':\n className = 'progress-label gray-label';\n break;\n\n case 'Copywriting':\n className = 'progress-label blue-label';\n break;\n\n case 'Sub Editing':\n className = 'progress-label voilet-label';\n break;\n\n case 'Copy/Proof Editing':\n className = 'progress-label orange-label';\n break;\n case 'Completed':\n className = 'progress-label green-label';\n break;\n case 'On Hold':\n className = 'progress-label yellow-label';\n break;\n case 'Waiting for Design':\n className = 'progress-label red-label';\n break;\n case 'In Process':\n className = 'progress-label orange-label';\n break;\n\n case 'Sent to Copyeditor':\n className = 'progress-label blue-label';\n break;\n case 'Sent to Copywriter':\n className = 'progress-label blue-label';\n break;\n case 'Revision':\n className = 'progress-label red-label';\n break;\n\n default:\n break;\n }\n return className;\n };\n\n const displayValues = (item, asinData, cosIndex) => {\n const status = item?.options?.find(\n (option) => option.value === asinsList[cosIndex][item.key],\n );\n\n switch (item?.type) {\n case 'radio':\n return (\n
    \n {asinsList[cosIndex][item.key] ? 'Yes' : 'No'}\n
    \n );\n\n case 'choice':\n return (\n
    \n {item?.key === 'design_project_status' ||\n item?.key === 'copy_project_status' ? (\n {\n event.stopPropagation();\n }}\n >\n
    {status?.label}
    \n \n ) : (\n status?.label\n )}\n
    \n );\n\n case 'checkbox':\n return (\n \n \n \n
    \n\n \n \n );\n\n case 'date':\n return (\n
    \n {asinsList[cosIndex][item.key]\n ? dayjs(asinsList[cosIndex][item.key]).format('DD MMM YYYY')\n : ''}\n
    \n );\n\n case 'avtar':\n return (\n \n handleAddAssignee(event, item, asinData, cosIndex)\n }\n asinData={asinData}\n header={item}\n cosIndex={cosIndex}\n isEditFlagOn={isEditFlagOn}\n />\n );\n\n default:\n return <>{displayValuesForTextInput(item, asinData, cosIndex)};\n }\n };\n const displayStickyNonEditableTable = (asinData, cosIndex, tableType) => {\n return (\n \n {stickyColumns?.map((item) => (\n \n {displayValues(item, asinData, cosIndex)}\n \n ))}\n \n );\n };\n\n const displayNonEditableTable = (asinData, cosIndex, tableType) => {\n return (\n \n {tableColumns?.map((item) => (\n \n {displayValues(item, asinData, cosIndex)}\n \n ))}\n \n );\n };\n\n const displayTableData = (asinData, cosIndex, tableType) => {\n return isEditFlagOn\n ? tableType === 'sticky'\n ? displayStickyEditableTable(asinData, cosIndex, tableType)\n : displayEditableTable(asinData, cosIndex, tableType)\n : tableType === 'sticky'\n ? displayStickyNonEditableTable(asinData, cosIndex, tableType)\n : displayNonEditableTable(asinData, cosIndex, tableType);\n };\n\n const addNewRow = () => {\n setAsinsList([...asinsList, { ...defaultCOSData }]);\n setNewRowFlag(true);\n };\n\n const displayAddNewRowBtn = () => {\n return (\n
    \n {\n addNewRow();\n }}\n style={{ textTransform: 'uppercase', minHeight: '0' }}\n >\n {' '}\n Add New Row\n \n
    \n );\n };\n\n const displayTableHeaders = (item, index) => {\n return (\n \n {item?.label}\n {item?.info ? (\n <>\n {' '}\n {' '}\n {' '}\n \n ) : (\n ''\n )}\n \n );\n };\n\n const calculateHeaderHeight = () => {\n const right = document\n .getElementById(`non-sticky-header`)\n ?.getBoundingClientRect().height;\n const left = document\n .getElementById(`sticky-header`)\n ?.getBoundingClientRect().height;\n if (!left && !right) return '61px';\n return left > right ? `${left}px` : `${right}px`;\n };\n\n const displayStickyTable = () => {\n return (\n <>\n {cosData?.length && asinsList?.length ? (\n \n
    \n \n \n \n {stickyColumns?.map((item, index) => {\n return displayTableHeaders(item, index);\n })}\n \n \n \n {cosData?.length ? (\n asinsList?.map((cos, cosIndex) => {\n return displayTableData(cos, cosIndex, 'sticky');\n })\n ) : (\n No Data Available\n )}\n \n \n
    \n
    \n ) : null}\n {cosData?.length &&\n isEditFlagOn &&\n cosAccessOfBP?.show &&\n isSingleMonthSelected()\n ? displayAddNewRowBtn()\n : null}\n \n );\n };\n\n const displayTable = () => {\n return (\n <>\n {cosData?.length && asinsList?.length ? (\n \n
    \n \n \n \n {tableColumns?.map((item, index) => {\n return displayTableHeaders(item, index);\n })}\n \n \n \n {cosData?.length ? (\n asinsList?.map((cos, cosIndex) => {\n return displayTableData(cos, cosIndex, 'non-sticky');\n })\n ) : (\n No Data Available\n )}\n \n \n
    \n
    \n ) : (\n

    No COS Data

    \n )}\n \n );\n };\n\n const handleDeleteSelection = (flag) => {\n if (flag) {\n deleteCos();\n } else {\n setShowDeleteconfirmationModal({\n flag: false,\n selectedCosId: null,\n index: null,\n });\n }\n };\n\n return isDesktop ? (\n <>\n {' '}\n {showDeleteConfirmationModal?.flag ? (\n \n ) : null}\n \n
    \n
    \n
    \n {selectedViewType?.label}\n
    \n
    \n
    \n {cosData?.length && cosAccessOfBP?.show ? displayDownloadBtn() : ''}\n
    \n
    \n
    \n
    {displayStickyTable()}
    \n
    {displayTable()}
    \n
    \n
    \n \n ) : (\n \n );\n}\n\nexport default COSTable;\n\nCOSTable.defaultProps = {\n isEditFlagOn: false,\n cosData: [],\n asinsList: [],\n setAsinsList: () => {},\n selectedViewType: {},\n isSingleMonthSelected: () => {},\n cosAccessOfBP: {},\n errors: {},\n setError: () => {},\n id: '',\n customStartDate: '',\n customEndDate: '',\n setNewRowFlag: () => {},\n getAsinCountData: () => {},\n};\n\nCOSTable.propTypes = {\n isEditFlagOn: bool,\n cosData: arrayOf(shape({})),\n asinsList: arrayOf(shape({})),\n setAsinsList: func,\n selectedViewType: shape({}),\n isSingleMonthSelected: func,\n cosAccessOfBP: shape({}),\n errors: shape({}),\n setError: func,\n id: string,\n customStartDate: string,\n customEndDate: string,\n setNewRowFlag: func,\n getAsinCountData: func,\n};\n","import React, { useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport Select, { components } from 'react-select';\nimport { string, func, shape } from 'prop-types';\n\nimport CustomMonthRangeModal from '../../../../../common/CustomMonthRangeModal';\nimport { DropdownIndicator } from '../../../../../common';\n\nconst filterCustomStyles = {\n valueContainer: (css) => ({\n ...css,\n color: '#2E384D',\n overflow: 'hidden',\n 'white-space': 'nowrap',\n 'flex-wrap': 'nowrap',\n 'text-overflow': 'ellipsis',\n 'max-width': '130px',\n 'font-size': '12px',\n 'font-family': 'Noah-Medium',\n }),\n};\n\nfunction COSMonthPicker({\n cosAccessOfBP,\n customStartDate,\n setCustomStartDate,\n customEndDate,\n setCustomEndDate,\n customMonth,\n setCustomMonth,\n isSingleMonthSelected,\n}) {\n const { Option, SingleValue } = components;\n const dateFilterOptions = [\n {\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n ];\n\n const [dateType, setDateType] = useState(dateFilterOptions[0]);\n\n const [appliedDate, setAppliedDate] = useState(customMonth);\n const [showCustomMonthRangeModal, setShowCustomMonthRangeModal] =\n useState(false);\n\n // render the selected custom date or month as a sub label in the time filter\n const renderCustomDateSubLabel = (props) => {\n if (dateType?.value === 'custom') {\n if (isSingleMonthSelected()) {\n return `${dayjs(customStartDate).format('MMM, YYYY')}`;\n }\n return `${dayjs(customStartDate).format('MMM, YYYY')} - ${dayjs(\n customEndDate,\n ).format('MMM, YYYY')}`;\n }\n return props?.data?.sub;\n };\n\n const singleFilterOption = (props) => {\n return (\n \n );\n };\n\n const singleFilterValue = (props) => {\n return (\n \n \n {renderCustomDateSubLabel(props)}\n \n \n );\n };\n\n // render get select component for dropdown\n const getSelectComponents = () => {\n return {\n Option: singleFilterOption,\n SingleValue: singleFilterValue,\n DropdownIndicator,\n };\n };\n\n // handle date filter events\n const handleDateFilterEvents = (event) => {\n const { value } = event;\n setDateType(event);\n\n if (value === 'custom') {\n setShowCustomMonthRangeModal(true);\n }\n };\n\n // renderGoaldateFilter\n const renderCOSDateFilter = () => {\n return (\n handleDateFilterEvents(event)}\n styles={filterCustomStyles}\n isSearchable={false}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#1A1A1A',\n primary: 'none',\n primary25: 'none',\n primary50: 'none',\n },\n })}\n />\n );\n };\n\n // set default date\n const setDefaultDate = () => {\n setCustomMonth({\n startMonth: appliedDate?.startMonth,\n endMonth: appliedDate?.endMonth,\n });\n };\n\n // Handeling the custom month range selection\n const onMonthChange = (date) => {\n const [startMonth, endMonth] = date;\n\n setCustomMonth({\n startMonth,\n endMonth,\n });\n };\n\n // calling goals api when date changes\n const applyDateChangeEvents = (startDate, endDate) => {\n setCustomStartDate(startDate);\n setCustomEndDate(endDate);\n };\n\n // handle custom date range changes events\n const handleCustomDateRangeEvents = (startDate, endDate, dateFlag) => {\n const newEndDate = endDate || startDate;\n let tempStartDate = startDate;\n let tempEndDate = newEndDate;\n\n if (dateFlag === 'custom') {\n tempStartDate = dayjs(tempStartDate).format('YYYY-MM-DD');\n tempEndDate = dayjs(tempEndDate).format('YYYY-MM-DD');\n applyDateChangeEvents(tempStartDate, tempEndDate);\n }\n };\n\n // apply custom month range\n const applyCustomMonthRange = () => {\n setAppliedDate(customMonth);\n handleCustomDateRangeEvents(\n customMonth?.startMonth,\n customMonth?.endMonth,\n 'custom',\n );\n setShowCustomMonthRangeModal(false);\n };\n\n // render modals\n const renderModals = () => {\n return (\n {\n setShowCustomMonthRangeModal(false);\n setDefaultDate();\n }}\n onDateChange={onMonthChange}\n onApply={() => {\n applyCustomMonthRange();\n }}\n />\n );\n };\n\n return (\n
    \n {renderCOSDateFilter()}\n {showCustomMonthRangeModal ? renderModals() : null}\n
    \n );\n}\n\nexport default COSMonthPicker;\n\nCOSMonthPicker.defaultProps = {\n cosAccessOfBP: {},\n customStartDate: '',\n setCustomStartDate: () => {},\n customEndDate: '',\n setCustomEndDate: () => {},\n customMonth: {},\n setCustomMonth: () => {},\n data: {},\n isSingleMonthSelected: () => {},\n};\n\nCOSMonthPicker.propTypes = {\n cosAccessOfBP: shape({}),\n customStartDate: string,\n setCustomStartDate: func,\n customEndDate: string,\n setCustomEndDate: func,\n customMonth: shape({}),\n setCustomMonth: func,\n data: shape({}),\n isSingleMonthSelected: func,\n};\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { toast } from 'react-toastify';\nimport { useParams } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { bool, func } from 'prop-types';\n\nimport COSTable from './COSTable';\nimport COSMonthPicker from './COSMonthPicker';\nimport { GoalsStyle, GoalsNav, COSAsins } from '../GoalsStyle';\nimport {\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n cosViewTypes,\n} from '../../../../../constants';\nimport {\n getCOS,\n getBPsCOSAccess,\n updateCOS,\n getTotalAsinsCount,\n} from '../../../../../api';\nimport {\n Button,\n DropdownIndicator,\n SingleSelectDropdown,\n ViewData,\n WhiteCard,\n PageLoader,\n GrayMessageBar,\n} from '../../../../../common';\n\nfunction CreativeOptimizationScheduleContainer({\n clickOnRefreshBtnFlag,\n setClickOnRefreshBtn,\n}) {\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in goals and cos section\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const cosDynamicMessage = dynamicMessages?.forecast_cos?.placeholder;\n\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n\n const { id } = useParams();\n const [cosLoader, setCOSLoader] = useState(false);\n const [cosAccessOfBP, setCOSAccessOfBP] = useState({});\n const [cosData, setCOSResponse] = useState([]);\n const [totalAsinsCount, setTotalAsinsCountData] = useState({\n total_asin: 0,\n total_contractual_asin: 0,\n });\n const [selectedViewType, setSelectedViewType] = useState({\n label: 'General',\n value: 'general',\n });\n const [isEditFlagOn, setEditFlag] = useState(false);\n const [newRowFlag, setNewRowFlag] = useState(false);\n const [asinsList, setAsinsList] = useState([]);\n const [errors, setError] = useState({});\n const defaultDate = new Date();\n const [customStartDate, setCustomStartDate] = useState(\n `${defaultDate?.getFullYear()}-${defaultDate?.getMonth() + 1}-${1}`,\n );\n const [customEndDate, setCustomEndDate] = useState(\n `${defaultDate?.getFullYear()}-${defaultDate?.getMonth() + 1}-${1}`,\n );\n const [customMonth, setCustomMonth] = useState({\n startMonth: new Date(customStartDate),\n endMonth: new Date(customEndDate),\n });\n\n // auto scroll to specific table cell\n const autoScrollToElement = useCallback((elId) => {\n const element = document.getElementById(elId);\n if (element !== null) {\n element.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n }, []);\n\n const getAsinCountData = useCallback(() => {\n getTotalAsinsCount(id, customStartDate, customEndDate).then((res) => {\n if (res?.status === 200) {\n setTotalAsinsCountData(res?.data);\n } else {\n setTotalAsinsCountData({});\n }\n });\n }, [id, customStartDate, customEndDate]);\n\n const getCOSData = useCallback(() => {\n setCOSLoader(true);\n getCOS(id, customStartDate, customEndDate).then((res) => {\n setCOSLoader(false);\n setClickOnRefreshBtn(false);\n setNewRowFlag(false);\n setEditFlag(false);\n setError({});\n setSelectedViewType({\n label: 'General',\n value: 'general',\n });\n if (res?.status === 200) {\n setCOSResponse(res?.data);\n } else {\n setCOSResponse([]);\n }\n });\n\n getAsinCountData();\n }, [\n id,\n customStartDate,\n customEndDate,\n setClickOnRefreshBtn,\n getAsinCountData,\n ]);\n\n useEffect(() => {\n getBPsCOSAccess(id).then((res) => {\n if (res?.status === 200) {\n setCOSAccessOfBP(res?.data);\n if (res?.data?.start_date || res?.data?.end_date) getCOSData();\n }\n });\n }, [id, getCOSData, clickOnRefreshBtnFlag]);\n\n useEffect(() => {\n setAsinsList(cosData?.map((cos) => [...cos?.asins]).flat());\n }, [cosData, setAsinsList]);\n\n // handle view type filter events\n const handleViewTypeFilterEvents = (event) => {\n const { value } = event;\n if (value !== selectedViewType?.value) {\n setSelectedViewType(event);\n autoScrollToElement(value);\n }\n };\n\n // display cos header asins count\n const displayASINsCount = () => {\n return (\n \n
    \n \n Number of contractual ASINs:\n {' '}\n {totalAsinsCount?.total_contractual_asin || 0}{' '}\n {totalAsinsCount?.total_contractual_asin === 'N/A'\n ? ''\n : 'Asins per month'}\n
    \n
    \n \n Number of actual ASINs:\n {' '}\n {totalAsinsCount?.total_asin || 0} Asins per month\n
    \n
    \n );\n };\n\n // calculate month difference\n const isSingleMonthSelected = () => {\n const startDate = new Date(customStartDate);\n const endDate = new Date(customEndDate);\n return startDate?.getMonth() === endDate?.getMonth();\n };\n\n const saveCOS = () => {\n let data = [];\n if (isSingleMonthSelected()) {\n data = [\n {\n ...cosData[0],\n asins: asinsList,\n },\n ];\n } else {\n data = [...cosData];\n }\n\n updateCOS(id, customStartDate, customEndDate, data).then((res) => {\n if (res?.status === 200) {\n getCOSData();\n setEditFlag(false);\n setNewRowFlag(false);\n toast.success('COS Added/Updated successfully!');\n } else if (res?.status === 400) {\n toast.error('Something went wrong');\n setError(res?.data);\n document.getElementById('0stickyTdparent_status').click();\n }\n });\n };\n\n const checkIfAllRowsHaveData = () => {\n const list = [];\n asinsList.forEach((asin) => {\n let flag = false;\n Object.values(asin).forEach((value) => {\n if (value) {\n flag = true;\n }\n });\n if (flag) list.push(asin);\n });\n\n if (asinsList?.length !== 0 && list.length === asinsList?.length)\n return true;\n return false;\n };\n\n // display edit and save button\n const displayEditAndSaveButton = () => {\n return isEditFlagOn ? (\n <>\n {\n if (checkIfAllRowsHaveData()) saveCOS();\n }}\n >\n \n Save\n \n {checkIfAllRowsHaveData() ? null : (\n \n )}\n \n ) : (\n <>\n {\n setEditFlag(true);\n }}\n disabled={isSpreetailUser}\n >\n {' '}\n Edit\n \n \n \n );\n };\n\n // get dropdwon indicator for dropdown filter\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n const displayTable = () => {\n return (\n \n );\n };\n\n // display cos header section\n const displayCOSHeader = () => {\n return (\n \n \n
    \n
    \n
    \n {displayASINsCount()}\n
    {' '}\n
    \n
    \n \n
      \n
    • \n {cosData?.length && cosAccessOfBP?.show\n ? displayEditAndSaveButton()\n : ''}\n
    • \n
    • \n
      \n \n
      \n
    • \n
    • \n
      \n \n
      \n
    • \n
    \n {isSingleMonthSelected() ? null : (\n <>\n
    \n \n Option to add new row will not be visible when multiple\n months is selected.\n {' '}\n \n )}\n
    \n
    \n
    \n
    \n
    \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in goals and cos section */}\n {cosDynamicMessage ? (\n \n ) : null}\n {cosLoader ? (\n \n ) : cosData?.length ? (\n <>\n {displayCOSHeader()}\n {displayTable()}\n \n ) : (\n

    No COS created

    \n )}\n \n );\n}\n\nexport default CreativeOptimizationScheduleContainer;\n\nCreativeOptimizationScheduleContainer.defaultProps = {\n clickOnRefreshBtnFlag: false,\n setClickOnRefreshBtn: () => {},\n};\n\nCreativeOptimizationScheduleContainer.propTypes = {\n clickOnRefreshBtnFlag: bool,\n setClickOnRefreshBtn: func,\n};\n","import React from 'react';\n\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\nimport { bool, func } from 'prop-types';\n\nimport CreativeOptimizationScheduleContainer from './CreativeOptimizationScheduleContainer';\n\nfunction COSContainer({ clickOnRefreshBtnFlag, setClickOnRefreshBtn }) {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {params?.nav === 'cos' ? (\n \n ) : null}\n
    \n );\n}\n\nexport default COSContainer;\n\nCOSContainer.defaultProps = {\n clickOnRefreshBtnFlag: false,\n\n setClickOnRefreshBtn: () => {},\n};\n\nCOSContainer.propTypes = {\n clickOnRefreshBtnFlag: bool,\n\n setClickOnRefreshBtn: func,\n};\n","import React, { useState } from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\n\n// local file imports\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, func, shape, bool, objectOf } from 'prop-types';\nimport { Collapse } from 'react-collapse';\n\nimport { WhiteCard, CollapseTableMobileView } from '../../../../../common';\n\nconst GoalMobileView = ({\n selectedMarketplaces,\n editedGoalsData,\n marketplaceCollapse,\n changeCollapseFlag,\n monthNames,\n newGoalsData,\n isEditGoals,\n customerData,\n displayAddNewGoalBtn,\n displaySaveAndCancelBtn,\n marketplaceForNewGoal,\n showAddNewGoalRow,\n displayGoalMilestoneLabel,\n displayGoalValueAndInputbox,\n displayMarketplaceCollapseIcon,\n}) => {\n const [viewMoreDetailsCount, setViewMoreDetailsCount] = useState({\n milestoneId: null,\n count: 2,\n message: `View ${monthNames.length - 2} more details`,\n });\n\n const showMonthValues = (\n milestones,\n selectedMarketplace,\n goal,\n monthData,\n index,\n ) => {\n return milestones?.milestone\n .slice(0, viewMoreDetailsCount?.count)\n ?.filter(\n (milestone) =>\n milestone?.year === monthData?.year &&\n milestone?.month === monthData?.month,\n )\n ?.map((item) => {\n return displayGoalValueAndInputbox(\n item,\n index,\n selectedMarketplace,\n milestones,\n goal,\n );\n });\n };\n\n // display view more detail message in capsule collapse\n const viewMoreDetailsMessage = (milestoneId) => {\n if (viewMoreDetailsCount?.count === 2) {\n setViewMoreDetailsCount({\n milestoneId,\n count: monthNames.length,\n message: 'View less',\n });\n } else {\n setViewMoreDetailsCount({\n milestoneId,\n count: 2,\n message: `View ${monthNames.length - 2} more details`,\n });\n }\n };\n\n // display goal milestones with capsule collapse\n const displayMilestones = (goal, selectedMarketplace) => {\n return goal?.milestones?.map((milestone) => {\n const isCollapseOpened = marketplaceCollapse?.find(\n (item) => item?.marketplace === selectedMarketplace?.id,\n )?.collapse;\n\n return (\n
    \n \n
    \n
    \n
    \n {displayGoalMilestoneLabel(milestone)}\n
    \n {viewMoreDetailsCount?.milestoneId === milestone?.id\n ? monthNames\n .slice(0, viewMoreDetailsCount?.count)\n ?.map((item, index) => {\n return (\n
    \n
    \n {dayjs(item?.label).format('MMMM')}\n
    \n
    \n {showMonthValues(\n milestone,\n selectedMarketplace,\n goal,\n item,\n index,\n )}\n
    \n
    \n );\n })\n : monthNames.slice(0, 2)?.map((item, index) => {\n return (\n
    \n
    \n {dayjs(item?.label).format('MMMM')}\n
    \n
    \n {showMonthValues(\n milestone,\n selectedMarketplace,\n goal,\n item,\n index,\n )}\n
    \n
    \n );\n })}\n
    \n {monthNames.length > 2 ? (\n {\n viewMoreDetailsMessage(milestone?.id);\n }}\n >\n {viewMoreDetailsCount?.milestoneId === milestone?.id\n ? viewMoreDetailsCount?.message\n : `View ${monthNames.length - 2} more details`}\n\n \n
    \n ) : (\n ''\n )}\n \n \n
    \n );\n });\n };\n\n // display goals marketplace collapse head\n const displayGoalMarketplaceCollapseHead = (marketplace) => {\n return (\n {\n changeCollapseFlag(marketplace);\n }}\n onKeyDown={() => {\n changeCollapseFlag(marketplace);\n }}\n >\n
    \n
    {marketplace?.label}
    \n
    \n
    \n {\n changeCollapseFlag(marketplace);\n }}\n onKeyDown={() => {\n changeCollapseFlag(marketplace);\n }}\n >\n {displayMarketplaceCollapseIcon(\n marketplace?.id,\n '5px',\n '15px',\n null,\n )}\n \n
    \n
    \n );\n };\n\n // display goals mobile view\n const displayGoalsMobileView = () => {\n return selectedMarketplaces?.map((marketplace) => {\n return editedGoalsData\n ?.filter((goal) => goal?.marketplace === marketplace?.id)\n .map((goal) => {\n return (\n \n {displayGoalMarketplaceCollapseHead(marketplace)}\n {displayMilestones(goal, marketplace)}\n {/* Add goal */}\n {isEditGoals\n ? newGoalsData\n ?.filter((newGoal) =>\n Object.keys(newGoal)?.includes(marketplace?.id),\n )?.[0]\n ?.[marketplace?.id]?.map((item, index) => (\n
    \n {showAddNewGoalRow(marketplace, goal, item, index)}\n
    \n ))\n : null}\n {!customerData?.goal_set?.show || !isEditGoals\n ? null\n : displayAddNewGoalBtn(marketplace, goal)}\n {marketplaceForNewGoal?.id === marketplace?.id &&\n newGoalsData?.length\n ? displaySaveAndCancelBtn(marketplace)\n : null}\n
    \n );\n });\n });\n };\n\n return (\n \n {displayGoalsMobileView()}\n \n );\n};\n\nexport default GoalMobileView;\nGoalMobileView.defaultProps = {\n isEditGoals: false,\n selectedMarketplaces: [],\n editedGoalsData: [],\n marketplaceCollapse: [],\n changeCollapseFlag: () => {},\n newGoalsData: [],\n showAddNewGoalRow: () => {},\n marketplaceForNewGoal: {},\n displaySaveAndCancelBtn: () => {},\n displayAddNewGoalBtn: () => {},\n customerData: {},\n displayGoalMilestoneLabel: () => {},\n displayGoalValueAndInputbox: () => {},\n displayMarketplaceCollapseIcon: () => {},\n};\n\nGoalMobileView.propTypes = {\n isEditGoals: bool,\n selectedMarketplaces: arrayOf(shape({})),\n editedGoalsData: arrayOf(shape({})),\n marketplaceCollapse: arrayOf(shape({})),\n changeCollapseFlag: func,\n showAddNewGoalRow: func,\n monthNames: arrayOf(shape({})).isRequired,\n marketplaceForNewGoal: shape({}),\n newGoalsData: arrayOf(shape({})),\n displaySaveAndCancelBtn: func,\n displayAddNewGoalBtn: func,\n customerData: objectOf({ goal_set: objectOf({ show: bool }) }),\n displayGoalMilestoneLabel: func,\n displayGoalValueAndInputbox: func,\n displayMarketplaceCollapseIcon: func,\n};\n","/* eslint-disable no-unused-expressions */\nimport React, { useEffect, useCallback } from 'react';\n\n// third party imports\nimport NumberFormat from 'react-number-format';\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { Collapse } from 'react-collapse';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, func, shape, bool, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// local file imports\nimport GoalMobileView from './GoalMobileView';\nimport Theme from '../../../../../theme/Theme';\nimport { InfoIcons } from '../../../../../theme/images';\nimport { goalsDataType } from '../../../../../constants';\nimport { TableWrapper, GoalsStyle, BorderLessField } from '../GoalsStyle';\nimport { DesktopTable, Button, ModalRadioCheck } from '../../../../../common';\n\nfunction Goals({\n goalsType,\n isEditGoals,\n monthNames,\n selectedMarketplaces,\n editedGoalsData,\n setEditedGoalsData,\n updateGoals,\n newGoalsData,\n setNewGoalsData,\n deleteAddedGoal,\n isNewGoalAdded,\n setIsNewGoalAdded,\n marketplaceCollapse,\n setMarketplaceCollapse,\n marketplaceForNewGoal,\n setMarketplaceforNewGoal,\n}) {\n const customerData = useSelector((state) => state?.customerState.data);\n const isHavingPpc = customerData?.having_contract_type?.is_having_ppc;\n const isHavingDsp = customerData?.having_contract_type?.is_having_dsp;\n\n const monthLength = monthNames?.length;\n const isTablet = useMediaQuery({ minWidth: 768 });\n const cellTHWidth =\n monthLength === 1\n ? '50%'\n : monthLength === 2\n ? '33.33%'\n : monthLength === 3\n ? '25%'\n : monthLength === 4\n ? '20%'\n : '300px';\n\n const cellWidth =\n monthLength === 1\n ? '50%'\n : monthLength === 2\n ? '33.33%'\n : monthLength === 3\n ? '25%'\n : monthLength === 4\n ? '20%'\n : '300px';\n\n // handle new goals input change events\n const handleNewGoalInput = (\n event,\n monthIndex,\n selectedMarketplace,\n item,\n newlyAddedGoalIndex,\n ) => {\n let value = '';\n if (item?.data_type === 'percentage') {\n value = event?.target?.value?.slice(0, -1);\n } else if (item?.data_type === 'dollar') {\n value = event?.target?.value?.slice(1);\n } else {\n value = event?.target?.value;\n }\n\n const editedValue = event?.target?.value\n ? value?.replace(/,/g, '')?.replace(/^0+/, '')\n : event?.target?.value;\n\n const list = [...item?.milestone];\n list[monthIndex] = { ...list[monthIndex], value: editedValue };\n\n const listOfNewlyAddedGoalOfMarketplce = newGoalsData?.filter((newGoal) =>\n Object.keys(newGoal)?.includes(selectedMarketplace?.id),\n );\n\n listOfNewlyAddedGoalOfMarketplce[0][selectedMarketplace?.id][\n newlyAddedGoalIndex\n ] = {\n ...listOfNewlyAddedGoalOfMarketplce[0][selectedMarketplace?.id][\n newlyAddedGoalIndex\n ],\n milestone: [...list],\n };\n\n // extract list of other marketplace and its newly added goal except selected marketpalce\n const goalsExceptUpdatedGoal = newGoalsData?.filter((newGoal) => {\n return !Object.keys(newGoal)?.includes(selectedMarketplace?.id);\n });\n\n // push updated object in list of goals which not contain selected marketplace data. so final list is created\n const finalGoalsData = [\n ...goalsExceptUpdatedGoal,\n listOfNewlyAddedGoalOfMarketplce[0],\n ];\n\n // update original list\n setNewGoalsData(finalGoalsData);\n };\n\n // handle the goals input value change\n const handleInputChange = (\n event,\n monthData,\n index,\n selectedMarketplace,\n milestones,\n ) => {\n let value = '';\n if (milestones?.data_type === 'percentage') {\n value = event?.target?.value?.slice(0, -1);\n } else if (milestones?.data_type === 'dollar') {\n value = event?.target?.value?.slice(1);\n } else {\n value = event?.target?.value;\n }\n\n const editedValue = event?.target?.value\n ? milestones?.goal_name === 'DSP Ad Budget' ||\n milestones?.goal_name === 'PPC Ad Budget'\n ? value?.replace(/,/g, '')\n : value?.replace(/,/g, '')?.replace(/^0+/, '')\n : event?.target?.value;\n\n if (isEditGoals) {\n // takeout goal from editedlist which is changed\n const goalFromEditedGoalList = editedGoalsData?.filter(\n (goalsData) => goalsData?.marketplace === selectedMarketplace?.id,\n );\n\n let milestonesToBeUpdated = {};\n let milestonesIndex = null;\n\n if (goalFromEditedGoalList?.length) {\n // take milestone which we want to update\n milestonesToBeUpdated = goalFromEditedGoalList[0]?.milestones.find(\n (milestonesData) => milestonesData?.id === milestones?.id,\n );\n\n // Use findIndex to get the index of the milestone to update\n milestonesIndex = goalFromEditedGoalList[0]?.milestones?.findIndex(\n (milestoneData) => milestoneData?.id === milestones?.id,\n );\n }\n\n // below code to update milestones list\n const list = [...milestonesToBeUpdated?.milestone];\n\n list[index] = {\n ...milestonesToBeUpdated?.milestone[index],\n value: editedValue,\n };\n\n milestonesToBeUpdated = {\n ...milestonesToBeUpdated,\n milestone: [...list],\n };\n\n let parentMilestone = [];\n\n if (goalFromEditedGoalList?.length) {\n parentMilestone = [...goalFromEditedGoalList[0]?.milestones];\n parentMilestone[milestonesIndex] = milestonesToBeUpdated;\n }\n\n // calculation of Tacos goals\n if (\n milestones?.goal_name === 'Overall Sales Goals' ||\n milestones?.goal_name === 'DSP Ad Budget' ||\n milestones?.goal_name === 'PPC Ad Budget'\n ) {\n let tacosMilestonesToBeUpdated = {};\n let tacosMilestonesIndex = null;\n\n let overallSalesMilestoneList = [];\n let ppcAdMilestoneList = [];\n let dspAdMilestoneList = [];\n\n if (goalFromEditedGoalList?.length) {\n // take tacos milestone which we want to update\n tacosMilestonesToBeUpdated =\n goalFromEditedGoalList[0]?.milestones.find(\n (milestonesData) => milestonesData?.goal_name === 'TACOS',\n );\n\n // get milestones of overall sales goals\n overallSalesMilestoneList =\n goalFromEditedGoalList[0]?.milestones.find(\n (milestonesData) =>\n milestonesData?.goal_name === 'Overall Sales Goals',\n )?.milestone;\n\n // get milestones of ppc ad budget\n ppcAdMilestoneList = goalFromEditedGoalList[0]?.milestones.find(\n (milestonesData) => milestonesData?.goal_name === 'PPC Ad Budget',\n )?.milestone;\n\n // get milestones of dsp ad budget\n dspAdMilestoneList = goalFromEditedGoalList[0]?.milestones.find(\n (milestonesData) => milestonesData?.goal_name === 'DSP Ad Budget',\n )?.milestone;\n\n // Use findIndex to get the index of the milestone to update\n tacosMilestonesIndex =\n goalFromEditedGoalList[0]?.milestones?.findIndex(\n (milestoneData) => milestoneData?.goal_name === 'TACOS',\n );\n }\n\n // PDV-7533 - calculation of tacos values\n // this should automatically be calculated as soon as [overall sales] goal and [total ad budget] goal is entered\n // Total Ad budget / overall sales * 100 where total ad budget will be a sum of ppc + dsp budget\n // if BP only has PPC = PPC budget / overall sales * 100\n // if BP only has DSP = DSP budget / overall sales * 100\n // if BP has both PPC and DSP = Total Ad budget / overall sales * 100\n\n // get the overall sales values entered by user or previous value\n const overallSalesValue =\n milestones?.goal_name === 'Overall Sales Goals'\n ? Number(editedValue)\n : Number(overallSalesMilestoneList?.[index]?.value);\n // get the ppc ad budget values entered by user or previous value\n const ppcAdBudgetValue =\n milestones?.goal_name === 'PPC Ad Budget'\n ? Number(editedValue)\n : Number(ppcAdMilestoneList?.[index]?.value);\n // get the dsp ad budget values entered by user or previous value\n const dspAdBudgetValue =\n milestones?.goal_name === 'DSP Ad Budget'\n ? Number(editedValue)\n : Number(dspAdMilestoneList?.[index]?.value);\n\n // calculate total ad budget as per ppc-dsp flag\n const totalAdValue =\n isHavingPpc && isHavingDsp\n ? ppcAdBudgetValue + dspAdBudgetValue\n : isHavingPpc && !isHavingDsp\n ? ppcAdBudgetValue\n : !isHavingPpc && isHavingDsp\n ? dspAdBudgetValue\n : 0;\n\n // below code to update tacos milestones list\n const tacosMilestoneList = [...tacosMilestonesToBeUpdated?.milestone];\n // get previous tacos value\n let tacosValue = tacosMilestoneList?.[index]?.value;\n\n // calculate the tacos value\n if (overallSalesValue > 0) {\n tacosValue = (totalAdValue / overallSalesValue) * 100;\n } else {\n tacosValue = 0;\n }\n\n // update the auto calculated tacos values to current milestone month index\n tacosMilestoneList[index] = {\n ...tacosMilestonesToBeUpdated?.milestone[index],\n value:\n tacosValue > 0 ? Number(tacosValue?.toFixed(2))?.toString() : '',\n };\n\n // update the new tacos milestone array in the tacos milestones object\n tacosMilestonesToBeUpdated = {\n ...tacosMilestonesToBeUpdated,\n milestone: [...tacosMilestoneList],\n };\n\n // update the tacos milestones in the parent milestone\n parentMilestone[tacosMilestonesIndex] = tacosMilestonesToBeUpdated;\n }\n\n let updatedGoalObject = {};\n\n if (goalFromEditedGoalList?.length) {\n updatedGoalObject = {\n ...goalFromEditedGoalList[0],\n milestones: parentMilestone,\n };\n }\n\n if (!goalFromEditedGoalList?.length) {\n const listtt = [...editedGoalsData];\n listtt.push(updatedGoalObject);\n setEditedGoalsData([...listtt]);\n } else {\n let editedGoalIndex = null;\n\n // Use findIndex to get the index of the milestone to update\n editedGoalIndex = editedGoalsData?.findIndex(\n (editedListGoal) =>\n editedListGoal?.marketplace === selectedMarketplace?.id,\n );\n\n const listtt = [...editedGoalsData];\n listtt[editedGoalIndex] = { ...updatedGoalObject };\n setEditedGoalsData([...listtt]);\n }\n } else {\n const list = [...newGoalsData?.milestone];\n list[index] = {\n value: editedValue,\n month: monthData?.month,\n year: monthData?.year,\n };\n setNewGoalsData({ ...newGoalsData, milestone: [...list] });\n\n const goalFromEditedGoalList = editedGoalsData?.filter(\n (goalsData) => goalsData?.marketplace === selectedMarketplace?.id,\n );\n const updatedMilestoneList = [...goalFromEditedGoalList[0]?.milestones];\n const newlAddedMilestone = updatedMilestoneList?.filter(\n (milestone) => milestone?.type === 'optional' && !milestone?.id,\n );\n let milestoneIndex = updatedMilestoneList?.length;\n\n if (newlAddedMilestone?.length) {\n milestoneIndex = updatedMilestoneList?.findIndex(\n (milestone) => milestone?.type === 'optional' && !milestone?.id,\n );\n }\n updatedMilestoneList[milestoneIndex] = {\n ...newGoalsData,\n milestone: [...list],\n };\n\n let editedGoalIndex = null;\n\n // Use findIndex to get the index of the milestone to update\n editedGoalIndex = editedGoalsData?.findIndex(\n (editedListGoal) =>\n editedListGoal?.marketplace === selectedMarketplace?.id,\n );\n\n const listtt = [...editedGoalsData];\n listtt[editedGoalIndex] = {\n ...listtt[editedGoalIndex],\n milestones: [...updatedMilestoneList],\n };\n setEditedGoalsData([...listtt]);\n }\n };\n\n // auto scroll to specific table cell\n const autoScrollToElement = useCallback((elId) => {\n const element = document.getElementById(elId);\n if (element !== null) {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'start',\n });\n }\n }, []);\n\n // useEffect\n useEffect(() => {\n autoScrollToElement('scrollToElement');\n }, [autoScrollToElement]);\n\n const changeCollapseFlag = (marketplace) => {\n const changedCollapseItem = marketplaceCollapse?.find(\n (collapseItem) => collapseItem?.marketplace === marketplace?.id,\n );\n\n const updatedList = marketplaceCollapse?.map((item) => {\n if (item?.marketplace === marketplace?.id) {\n return { ...item, collapse: !changedCollapseItem?.collapse };\n }\n return item;\n });\n setMarketplaceCollapse(updatedList);\n };\n\n // display react-tooltip icon\n const displayTooltipIcon = (tooltipId, tooltipData) => {\n return (\n \n );\n };\n\n // display react-tooltip data\n const displayTooltipData = (tooltipId) => {\n return (\n \n );\n };\n\n // Number input validation for goal value = 0 not allowed\n const checkGoalInputValiadation = (inputValue) => {\n const { value } = inputValue;\n\n if (Number(value) > 0 || value?.length === 0) {\n return true;\n }\n return false;\n };\n\n // display numer input box for goal\n const showNumberInputbox = (\n monthData,\n index,\n selectedMarketplace,\n milestones,\n goal,\n ) => {\n const goalName =\n milestones?.goal_name === 'Traffic' && goalsType !== 'seller'\n ? 'Glance Views'\n : milestones?.goal_name;\n const milestoneNameString = goalName?.replace(/\\s+/g, '');\n const dataCy = `BT-Goals-InputBox-${goalsType}-${goal?.marketplace}-${milestoneNameString}-${monthData?.year}-${monthData?.month}`;\n\n const dataType = milestones?.data_type;\n const isZeroNotAllowed =\n goalName?.includes('Overall Sales Goals') ||\n goalName?.includes('PPC Ad Budget');\n return (\n \n {goalName === 'Advertising Goals' ||\n milestones?.data_type === 'text' ? (\n \n handleInputChange(\n event,\n monthData,\n index,\n selectedMarketplace,\n milestones,\n false,\n )\n }\n />\n ) : isZeroNotAllowed ? (\n {\n handleInputChange(\n event,\n monthData,\n index,\n selectedMarketplace,\n milestones,\n );\n }}\n defaultValue={monthData?.value}\n thousandSeparator\n prefix={dataType === 'dollar' ? '$' : ''}\n suffix={dataType === 'percentage' ? '%' : ''}\n allowNegative={false}\n decimalSeparator=\".\"\n decimalScale={2}\n isAllowed={checkGoalInputValiadation}\n data-cy={dataCy}\n />\n ) : (\n {\n handleInputChange(\n event,\n monthData,\n index,\n selectedMarketplace,\n milestones,\n );\n }}\n defaultValue={monthData?.value}\n thousandSeparator\n prefix={dataType === 'dollar' ? '$' : ''}\n suffix={dataType === 'percentage' ? '%' : ''}\n allowNegative={false}\n decimalSeparator=\".\"\n decimalScale={2}\n data-cy={dataCy}\n />\n )}\n \n );\n };\n\n // display numer input box for newly added goal\n const showNumberInputboxForNewGoals = (\n monthData,\n monthIndex,\n selectedMarketplace,\n goal,\n item,\n newlyAddedGoalIndex,\n ) => {\n const dataType = item?.data_type;\n const dataCy = `BT-Goals-InputBox-${goalsType}-${goal?.marketplace}-NewGoal-${monthData?.year}-${monthData?.month}`;\n\n return (\n \n {dataType === 'text' ? (\n {\n handleNewGoalInput(\n event,\n monthIndex,\n selectedMarketplace,\n item,\n newlyAddedGoalIndex,\n );\n }}\n />\n ) : (\n {\n handleNewGoalInput(\n event,\n monthIndex,\n selectedMarketplace,\n item,\n newlyAddedGoalIndex,\n );\n }}\n defaultValue={monthData?.value}\n thousandSeparator\n prefix={dataType === 'dollar' ? '$' : ''}\n suffix={dataType === 'percentage' ? '%' : ''}\n allowNegative={false}\n decimalSeparator=\".\"\n decimalScale={2}\n data-cy={dataCy}\n />\n )}\n \n );\n };\n\n // function - handle new goal name change events\n const handleGoalNameChange = (event, selectedMarketplace, index) => {\n // fetch goals data of selectedmarketplace from newGoalsData list\n const data = newGoalsData?.filter((newGoal) =>\n Object.keys(newGoal)?.includes(selectedMarketplace?.id),\n );\n\n // if already present data in newGoalsData list of selected marketplace\n if (data?.length) {\n // get array of newly added goals in list variable\n const list = [...data?.[0]?.[selectedMarketplace?.id]];\n // push new goal object in list of goals of selected marketplace\n list[index] = { ...list[index], goal_name: event?.target?.value };\n\n // extract list of other marketplace and its newly added goal except selected marketpalce\n const goalsExceptUpdatedGoal = newGoalsData?.filter((newGoal) => {\n return !Object.keys(newGoal)?.includes(selectedMarketplace?.id);\n });\n\n // create new object with updated list of newly added goal to update in original list 'newGoalsData'\n const updatedGoal = { [selectedMarketplace?.id]: list };\n // push updated object in list of goals which not contain selected marketplace data. so final list is created\n const finalGoalsData = [...goalsExceptUpdatedGoal, updatedGoal];\n\n // update original list\n setNewGoalsData(finalGoalsData);\n }\n };\n\n // function - number formatter for goals value\n const displayNumber = (num) => {\n const goalValue = Number(num);\n const res = goalValue\n ?.toFixed(2)\n .toString()\n ?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n // display goal value and input box\n const displayGoalValueAndInputbox = (\n monthYearValue,\n index,\n selectedMarketplace,\n milestones,\n goal,\n ) => {\n const goalName =\n milestones?.goal_name === 'Traffic' && goalsType !== 'seller'\n ? 'Glance Views'\n : milestones?.goal_name;\n const milestoneNameString = goalName?.replace(/\\s+/g, '');\n const dataCy = `BT-Goals-${goalsType}-${goal?.marketplace}-${milestoneNameString}-${monthYearValue?.year}-${monthYearValue?.month}`;\n const dataType = milestones?.data_type;\n const isTextData =\n goalName === 'Advertising Goals' || milestones?.data_type === 'text';\n const isTacos = goalName === 'TACOS';\n\n return isEditGoals && !isTacos ? (\n showNumberInputbox(\n monthYearValue,\n index,\n selectedMarketplace,\n milestones,\n goal,\n )\n ) : monthYearValue?.value ? (\n <>\n {isTextData ? (\n <>\n
    \n \n {monthYearValue?.value?.length > 11\n ? monthYearValue?.value?.slice(0, 11)\n : monthYearValue?.value}\n {monthYearValue?.value?.length > 11 ? (\n ...\n ) : (\n ''\n )}\n \n \n
    \n \n ) : (\n \n {dataType === 'dollar' ? '$' : ''}\n {displayNumber(monthYearValue?.value)}\n {dataType === 'percentage' ? '%' : ''}\n
    \n )}\n \n ) : isEditGoals && milestones?.goal_name === 'TACOS' ? (\n
    \n {monthYearValue?.value ? (\n <>\n {dataType === 'dollar' ? '$' : ''}\n {monthYearValue.value}\n {dataType === 'percentage' ? '%' : ''}\n \n ) : null}\n
    \n ) : (\n
    \n );\n };\n\n // mapping the goals value in respective months column cell\n const showGoalsValuebyMonthNames = (\n milestones,\n selectedMarketplace,\n goal,\n ) => {\n return monthNames?.map((monthData, index) => {\n return milestones?.milestone\n ?.filter(\n (milestone) =>\n milestone?.year === monthData?.year &&\n milestone?.month === monthData?.month,\n )\n ?.map((item) => {\n return (\n \n {displayGoalValueAndInputbox(\n item,\n index,\n selectedMarketplace,\n milestones,\n goal,\n )}\n \n );\n });\n });\n };\n\n // create milestone list with empty value and respective year and month\n const setDefaultMilestoneToNewGoal = () => {\n const list = [];\n if (editedGoalsData?.length) {\n editedGoalsData?.[0]?.milestones?.[0]?.milestone?.forEach(\n (originalGoalMilestone) => {\n list.push({\n year: originalGoalMilestone?.year,\n month: originalGoalMilestone?.month,\n value: '',\n });\n },\n );\n return list;\n }\n return [];\n };\n\n // function - handle add new goal events\n const onClickAddNewGoal = (selectedMarketplace, goal) => {\n // fetch goals data of selectedmarketplace from newGoalsData list\n const data = newGoalsData?.filter((newGoal) =>\n Object.keys(newGoal)?.includes(selectedMarketplace?.id),\n );\n\n const lastSequenceOfGoal =\n goal?.milestones?.[goal?.milestones?.length - 1]?.sequence;\n const lengthOfNewGoalOFMarketplace = data?.[0]?.[selectedMarketplace?.id]\n ?.length\n ? data?.[0]?.[selectedMarketplace?.id]?.length\n : 0;\n\n // created default data to patch\n const patchData = {\n goal: goal?.id,\n sequence: lastSequenceOfGoal + lengthOfNewGoalOFMarketplace + 1,\n milestone: setDefaultMilestoneToNewGoal(goal),\n goal_name: '',\n type: 'optional',\n data_type: 'text',\n };\n // if already present data in newGoalsData list of selected marketplace\n if (data?.length) {\n // get array of newly added goals in list variable\n const list = [...data?.[0]?.[selectedMarketplace?.id]];\n // push new goal object in list of goals of selected marketplace\n list.push(patchData);\n\n // extract list of other marketplace and its newly added goal except selected marketpalce\n const goalsExceptUpdatedGoal = newGoalsData?.filter((newGoal) => {\n return !Object.keys(newGoal)?.includes(selectedMarketplace?.id);\n });\n\n // create new object with updated list of newly added goal to update in original list 'newGoalsData'\n const updatedGoal = { [selectedMarketplace?.id]: list };\n // push updated object in list of goals which not contain selected marketplace data. so final list is created\n const finalGoalsData = [...goalsExceptUpdatedGoal, updatedGoal];\n\n // update original list\n setNewGoalsData(finalGoalsData);\n } // if not present data in newGoalsData list of selected marketplace then simply add dictionary\n else {\n setNewGoalsData([\n ...newGoalsData,\n { [selectedMarketplace?.id]: [patchData] },\n ]);\n }\n };\n\n // handle new goals data type change events\n const handleNewGoalsDataTypeChangeEvents = (\n index,\n item,\n option,\n selectedMarketplace,\n ) => {\n const marketplaceID = selectedMarketplace?.id;\n if (item?.type === 'default') {\n // takeout goal from editedlist which is changed\n const goalFromEditedGoalList = editedGoalsData?.filter(\n (goalsData) => goalsData?.marketplace === selectedMarketplace?.id,\n );\n\n let milestonesToBeUpdated = goalFromEditedGoalList[0]?.milestones[index];\n\n milestonesToBeUpdated = {\n ...milestonesToBeUpdated,\n data_type: option?.type,\n };\n\n let parentMilestone = [];\n if (goalFromEditedGoalList?.length) {\n parentMilestone = [...goalFromEditedGoalList[0]?.milestones];\n parentMilestone[index] = milestonesToBeUpdated;\n }\n\n let updatedGoalObject = {};\n\n if (goalFromEditedGoalList?.length) {\n updatedGoalObject = {\n ...goalFromEditedGoalList[0],\n milestones: parentMilestone,\n };\n }\n\n if (!goalFromEditedGoalList?.length) {\n const listtt = [...editedGoalsData];\n listtt.push(updatedGoalObject);\n setEditedGoalsData([...listtt]);\n } else {\n let editedGoalIndex = null;\n\n // Use findIndex to get the index of the milestone to update\n editedGoalIndex = editedGoalsData?.findIndex(\n (editedListGoal) =>\n editedListGoal?.marketplace === selectedMarketplace?.id,\n );\n const listtt = [...editedGoalsData];\n listtt[editedGoalIndex] = { ...updatedGoalObject };\n\n setEditedGoalsData([...listtt]);\n }\n } else {\n const list = newGoalsData?.[0]?.[marketplaceID];\n list[index] = { ...list[index], data_type: option?.type };\n\n setNewGoalsData([{ [marketplaceID]: list }]);\n }\n };\n\n // render new goals data type html\n const renderNewGoalsDataTypeHTML = (\n newlyAddedGoalsIndex,\n item,\n dataType,\n selectedMarketplace,\n ) => {\n const goalName =\n item?.goal_name === 'Rev Share' && item?.type === 'default'\n ? 'Rev Share'\n : 'NewGoal';\n return (\n
    \n
      \n {goalsDataType?.map((option) => {\n const inputId = `${goalsType}${option?.label}${selectedMarketplace?.id}${newlyAddedGoalsIndex}`;\n const inputName = `${goalsType}${selectedMarketplace?.id}${item?.goal_name}${newlyAddedGoalsIndex}`;\n return (\n
    • \n \n \n {option?.label}\n \n handleNewGoalsDataTypeChangeEvents(\n newlyAddedGoalsIndex,\n item,\n option,\n selectedMarketplace,\n event,\n )\n }\n checked={dataType === option?.type}\n />\n \n \n \n
    • \n );\n })}\n
    \n
    \n );\n };\n\n // Add new goal html\n const showAddNewGoalRow = (selectedMarketplace, goal, item, index) => {\n const dataType = item?.data_type;\n const dataCy = `BT-Goals-${goalsType}-${goal?.marketplace}-NewGoal`;\n\n return (\n <>\n {isTablet ? (\n <>\n \n \n \n handleGoalNameChange(event, selectedMarketplace, index)\n }\n />\n \n {renderNewGoalsDataTypeHTML(\n index,\n item,\n dataType,\n selectedMarketplace,\n )}\n \n {monthNames?.map((monthData, monthIndex) => {\n return (\n \n {showNumberInputboxForNewGoals(\n monthData,\n monthIndex,\n selectedMarketplace,\n goal,\n item,\n index,\n )}\n \n );\n })}\n \n ) : (\n
    \n
    \n
    \n \n \n handleGoalNameChange(event, selectedMarketplace, index)\n }\n />\n \n
    \n {monthNames?.map((monthData, monthIndex) => {\n return (\n
    \n
    \n {dayjs(monthData?.label).format('MMMM')}\n
    \n {showNumberInputboxForNewGoals(\n monthData,\n monthIndex,\n selectedMarketplace,\n goal,\n item,\n index,\n )}\n
    \n );\n })}\n
    \n {renderNewGoalsDataTypeHTML(\n index,\n item,\n dataType,\n selectedMarketplace,\n )}\n
    \n
    \n
    \n )}\n \n );\n };\n\n // function for saving the newly added goals data\n const saveNewGoal = () => {\n const newGoalsMarketplaceKeys = newGoalsData?.map(\n (newGoal) => Object.keys(newGoal)?.[0],\n );\n\n const finalDataOfNewlyaddedGoal = [];\n newGoalsMarketplaceKeys?.forEach((marketplace) => {\n let goalsWithGoalName = [];\n newGoalsData?.forEach((goal) => {\n if (goal?.[marketplace]?.length) {\n goalsWithGoalName = goal?.[marketplace].filter(\n (newItem) => newItem?.goal_name,\n );\n }\n });\n\n finalDataOfNewlyaddedGoal.push({ [marketplace]: goalsWithGoalName });\n });\n\n const updatedData = [...editedGoalsData];\n let newlyAddedGoalsMilestones = [];\n\n newGoalsMarketplaceKeys?.forEach((marketplace) => {\n editedGoalsData?.forEach((originalGoal, index) => {\n if (originalGoal?.marketplace === marketplace) {\n const originalGoalsMilestones = [...originalGoal?.milestones];\n const goalFromNewList = finalDataOfNewlyaddedGoal?.filter((newGoal) =>\n Object.keys(newGoal)?.includes(marketplace),\n )?.[0];\n\n newlyAddedGoalsMilestones = goalFromNewList?.[marketplace]\n ? goalFromNewList?.[marketplace]\n : [];\n const finalListOfMilestones = [\n ...originalGoalsMilestones,\n ...newlyAddedGoalsMilestones,\n ];\n\n originalGoal = {\n ...originalGoal,\n milestones: [...finalListOfMilestones],\n };\n\n updatedData[index] = originalGoal;\n }\n });\n });\n\n if (newlyAddedGoalsMilestones?.length) {\n updateGoals(updatedData, goalsType);\n } else {\n setNewGoalsData([]);\n setIsNewGoalAdded(false);\n }\n };\n\n // cancel events of newly added goals\n const onCancelOfAddNewGoal = () => {\n setNewGoalsData([]);\n setIsNewGoalAdded(false);\n };\n\n const enableForClickedMarketplace = (selectedMarketplace) => {\n const newGoalsMarketplaceKey = newGoalsData?.map(\n (newGoal) => Object.keys(newGoal)?.[0],\n )?.[0];\n if (newGoalsMarketplaceKey === selectedMarketplace?.id) return false;\n return true;\n };\n\n // function - display add new goal button\n const displayAddNewGoalBtn = (selectedMarketplace, goal) => {\n return (\n \n \n {\n setMarketplaceforNewGoal(selectedMarketplace);\n onClickAddNewGoal(selectedMarketplace, goal);\n setIsNewGoalAdded(true);\n }}\n style={{ textTransform: 'uppercase', minHeight: '0' }}\n data-cy={`BT-Goals-${goalsType}-${selectedMarketplace?.id}-Add`}\n >\n {' '}\n Add Goal\n \n \n \n );\n };\n\n // function - display save and cancel button for newly added goal\n const displaySaveAndCancelBtn = (selectedMarketplace) => {\n return (\n <>\n {isTablet ? (\n \n \n
    \n saveNewGoal(selectedMarketplace)}\n data-cy={`BT-Goals-${goalsType}-${selectedMarketplace?.id}-Save`}\n >\n Save\n \n {\n setMarketplaceforNewGoal({});\n onCancelOfAddNewGoal(selectedMarketplace);\n }}\n data-cy={`BT-Goals-${goalsType}-${selectedMarketplace?.id}-Cancel`}\n >\n Cancel\n \n
    \n \n \n ) : (\n
    \n saveNewGoal(selectedMarketplace)}\n data-cy={`BT-Goals-${goalsType}-${selectedMarketplace?.id}-Save`}\n >\n Save\n \n {\n setMarketplaceforNewGoal({});\n onCancelOfAddNewGoal(selectedMarketplace);\n }}\n data-cy={`BT-Goals-${goalsType}-${selectedMarketplace?.id}-Cancel`}\n >\n Cancel\n \n
    \n )}\n \n );\n };\n\n // display marketplace collapse Icon\n const displayMarketplaceCollapseIcon = (marketplaceId, top, right, left) => {\n return (\n item?.marketplace === marketplaceId,\n )?.collapse\n ? 'fa-regular fa-minus'\n : 'fa-regular fa-plus'\n }`}\n style={{\n color: Theme.orange,\n fontSize: Theme.small,\n position: 'absolute',\n top,\n right,\n left,\n }}\n />\n );\n };\n\n // display badge for newly added goal\n const displayNewLable = (milestone, marketplaceId) => {\n const newGoalName = milestone?.goal_name?.replace(/\\s+/g, '');\n const dataCy = `BT-Goals-${goalsType}-${marketplaceId}-${newGoalName}-Delete`;\n\n return milestone?.type !== 'default' ? (\n <>\n New\n {customerData?.goal_set?.show ? (\n <>\n {\n deleteAddedGoal(milestone);\n }}\n icon=\"fa-regular fa-trash\"\n style={{\n color: '#d63649',\n fontSize: '14px',\n }}\n className=\"cursor pl-1\"\n data-tip=\"Delete\"\n data-for=\"delete\"\n data-cy={dataCy}\n />\n \n \n ) : null}\n \n ) : null;\n };\n\n // display tolltip for milestone label\n const displayMilestoneLabelTooltip = (milestone) => {\n return (\n <>\n {milestone?.goal_name === 'DSP Ad Budget' ? (\n <>\n {displayTooltipIcon(\n 'dspGoals',\n \"If BP has no DSP service, input '0' as value.\",\n )}\n {displayTooltipData('dspGoals')}\n \n ) : null}\n {milestone?.goal_name === 'PPC Ad Budget' ||\n milestone?.goal_name === 'Overall Sales Goals' ? (\n <>\n {displayTooltipIcon(\n 'ppcGoals',\n \"Mandatory - '0' value is not allowed.\",\n )}\n {displayTooltipData('ppcGoals')}\n \n ) : null}\n {milestone?.goal_name === 'TACOS' ? (\n <>\n {displayTooltipIcon('tacos', 'TACOS is auto-calculated.')}\n {displayTooltipData('tacos')}\n \n ) : null}\n \n );\n };\n\n // display goal milestone label\n const displayGoalMilestoneLabel = (milestone, marketplaceId) => {\n const goalLabel =\n milestone?.goal_name === 'Traffic' && goalsType !== 'seller'\n ? 'Glance Views'\n : milestone?.goal_name;\n return (\n
    \n \n {milestone?.type === 'optional' ? goalLabel?.slice(0, 11) : goalLabel}\n {milestone?.type === 'optional' && goalLabel?.length > 11 ? (\n ...\n ) : (\n ''\n )}\n \n \n {displayNewLable(milestone, marketplaceId)}\n {displayMilestoneLabelTooltip(milestone)}\n
    \n );\n };\n\n // display goal marketplace collapse header row\n const displayMarketplaceCollpaseHead = (marketplace) => {\n return (\n {\n changeCollapseFlag(marketplace);\n }}\n >\n \n {\n changeCollapseFlag(marketplace);\n }}\n >\n {displayMarketplaceCollapseIcon(\n marketplace?.id,\n '15px',\n null,\n '20px',\n )}\n \n {marketplace?.label}\n \n \n \n );\n };\n\n // display goal marketplace collapse Body row\n const displayMarketplaceCollpaseBody = (marketplace, goal) => {\n return (\n \n \n item?.marketplace === marketplace?.id,\n )?.collapse\n }\n >\n \n \n {goal?.milestones?.map((milestone, milestoneIndex) => {\n return (\n \n \n {displayGoalMilestoneLabel(\n milestone,\n goal?.marketplace,\n )}\n {isEditGoals && milestone?.goal_name === 'Rev Share'\n ? renderNewGoalsDataTypeHTML(\n milestoneIndex,\n milestone,\n milestone?.data_type,\n marketplace,\n )\n : null}\n \n {showGoalsValuebyMonthNames(milestone, marketplace, goal)}\n \n );\n })}\n {isEditGoals\n ? newGoalsData\n ?.filter((newGoal) =>\n Object.keys(newGoal)?.includes(marketplace?.id),\n )?.[0]\n ?.[marketplace?.id]?.map((item, index) => (\n \n {showAddNewGoalRow(marketplace, goal, item, index)}\n \n ))\n : null}\n {!customerData?.goal_set?.show || !isEditGoals || isNewGoalAdded\n ? null\n : displayAddNewGoalBtn(marketplace, goal)}\n {marketplaceForNewGoal?.id === marketplace?.id &&\n newGoalsData?.length\n ? displaySaveAndCancelBtn(marketplace)\n : null}\n \n
    \n \n \n \n );\n };\n\n // dispaly goals table data\n const displayGoalsTable = () => {\n return selectedMarketplaces?.map((marketplace) => {\n return editedGoalsData\n ?.filter(\n (goal) =>\n goal?.marketplace === marketplace?.id &&\n goal?.contract_account_type === marketplace?.accountType,\n )\n .map((goal) => {\n return (\n \n {displayMarketplaceCollpaseHead(marketplace)}\n {displayMarketplaceCollpaseBody(marketplace, goal)}\n \n );\n });\n });\n };\n\n // display gooals desktop view\n const displayGoalsTabletAndDesktopView = () => {\n return (\n \n
    \n
    \n \n \n \n \n FORECAST\n \n {monthNames?.map((item) => {\n return (\n \n {dayjs(item?.label).format('MMM YYYY')}\n \n );\n })}\n \n \n {displayGoalsTable()}\n \n
    \n
    \n
    \n );\n };\n\n // display goals mobile view\n const displayGoalsMobileView = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n {selectedMarketplaces?.length && editedGoalsData?.length ? (\n \n {isTablet\n ? displayGoalsTabletAndDesktopView()\n : displayGoalsMobileView()}\n \n ) : (\n \n No Goals created\n

    \n )}\n \n );\n}\n\nexport default Goals;\nGoals.defaultProps = {\n isEditGoals: false,\n isNewGoalAdded: false,\n\n goalsType: '',\n\n marketplaceForNewGoal: {},\n\n monthNames: [],\n marketplaceCollapse: [],\n newGoalsData: [],\n editedGoalsData: [],\n selectedMarketplaces: [],\n\n updateGoals: () => {},\n deleteAddedGoal: () => {},\n setNewGoalsData: () => {},\n setIsNewGoalAdded: () => {},\n setEditedGoalsData: () => {},\n setMarketplaceCollapse: () => {},\n setMarketplaceforNewGoal: () => {},\n};\n\nGoals.propTypes = {\n goalsType: string,\n\n isEditGoals: bool,\n isNewGoalAdded: bool,\n\n marketplaceForNewGoal: shape({}),\n monthNames: arrayOf(shape({})),\n selectedMarketplaces: arrayOf(shape({})),\n marketplaceCollapse: arrayOf(shape({})),\n newGoalsData: arrayOf(shape({})),\n editedGoalsData: arrayOf(shape({})),\n\n updateGoals: func,\n deleteAddedGoal: func,\n setNewGoalsData: func,\n setIsNewGoalAdded: func,\n setEditedGoalsData: func,\n setMarketplaceCollapse: func,\n setMarketplaceforNewGoal: func,\n};\n","import React, { useEffect, useRef } from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, func, shape, string, bool } from 'prop-types';\n\n// tlocal file imports\nimport Theme from '../../../../../theme/Theme';\nimport { CheckBox } from '../../../../../common';\n\nfunction MarketplaceDropdown({\n marketplaceOptions,\n handleChange,\n selectedMarketplaces,\n dropdownLabel,\n isMarketplaceDropdownOpen,\n setIsMarketplaceDropdownOpen,\n}) {\n const customerData = useSelector((state) => state?.customerState?.data);\n const isPPC = customerData?.having_contract_type?.is_having_ppc;\n const isDSP = customerData?.having_contract_type?.is_having_dsp;\n const isDspOnlyBP = isDSP && !isPPC;\n function useOutsideAlerter(ref, type) {\n useEffect(() => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n setIsMarketplaceDropdownOpen(false);\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, type]);\n }\n\n const revenueRef = useRef(null);\n useOutsideAlerter(revenueRef, 'revenue');\n\n return (\n {\n e.stopPropagation();\n }}\n >\n {\n setIsMarketplaceDropdownOpen(!isMarketplaceDropdownOpen);\n }}\n id=\"clickbox\"\n >\n {dropdownLabel}\n \n
    \n\n {isMarketplaceDropdownOpen ? (\n \n
      \n {marketplaceOptions.map((item) => {\n return (\n
    • \n \n \n \n marketplace?.value === item?.value &&\n marketplace?.accountType === item?.accountType,\n )?.value\n }\n onChange={(event) => {\n handleChange(event, item);\n }}\n />\n \n {item?.label}{' '}\n {!isDspOnlyBP && item?.accountType ? (\n \n ({item.accountType})\n \n ) : (\n ''\n )}\n \n \n
    • \n );\n })}\n
    \n
    \n ) : null}\n \n );\n}\n\nexport default MarketplaceDropdown;\n\nMarketplaceDropdown.defaultProps = {\n dropdownLabel: '',\n isMarketplaceDropdownOpen: false,\n marketplaceOptions: [],\n\n selectedMarketplaces: [],\n handleChange: () => {},\n setIsMarketplaceDropdownOpen: () => {},\n};\n\nMarketplaceDropdown.propTypes = {\n dropdownLabel: string,\n isMarketplaceDropdownOpen: bool,\n handleChange: func,\n setIsMarketplaceDropdownOpen: func,\n marketplaceOptions: arrayOf(shape({})),\n selectedMarketplaces: arrayOf(shape({})),\n};\n\nconst GoalFilterMarketPlace = styled.div`\n .dropdown-goal-filter {\n border-radius: 6px;\n position: relative;\n border: 1px solid ${Theme.gray45};\n width: 100%;\n min-width: 93px;\n text-align: left;\n font-size: ${Theme.extraNormal};\n border-radius: 6px;\n min-height: 40px;\n color: ${Theme.gray90};\n font-size: 14px;\n padding: 11px 7px;\n cursor: pointer;\n span.selected-list {\n position: fixed;\n color: ${Theme.gray90};\n white-space: nowrap;\n background-color: white;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 75%;\n margin-left: 4px;\n position: absolute;\n }\n .dropdown-arrow-icon {\n position: absolute;\n right: 9px;\n top: 13px;\n }\n }\n .dropdown-option-menu {\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n padding: 0 14px;\n position: absolute;\n z-index: 99999;\n top: 35px;\n color: ${Theme.gray90};\n text-align: left;\n top: 55px;\n width: -webkit-fill-available;\n overflow: auto;\n max-height: 300px;\n max-width: 200px;\n\n &.hide {\n display: none;\n }\n &.show {\n display: block;\n }\n .options-list {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n display: block;\n padding: 0;\n }\n }\n @media only screen and (max-width: 776px) {\n width: 95%;\n }\n }\n`;\n","import React from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport Select, { components } from 'react-select';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// local file imports\nimport Theme from '../../../../../theme/Theme';\nimport MarketplaceDropdown from './MarketplaceDropdown';\nimport {\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n} from '../../../../../constants';\nimport {\n CustomDropDown,\n ViewData,\n WhiteCard,\n DropdownIndicator,\n Button,\n SingleSelectDropdown,\n DropdownOptions,\n DropdownSingleValue,\n} from '../../../../../common';\n\nconst filterCustomStyles = {\n valueContainer: (css) => ({\n ...css,\n color: '#2E384D',\n overflow: 'hidden',\n 'white-space': 'nowrap',\n 'flex-wrap': 'nowrap',\n 'text-overflow': 'ellipsis',\n 'max-width': '130px',\n 'font-size': '12px',\n 'font-family': 'Noah-Medium',\n }),\n};\n\nfunction GoalsAndStrategyFilters({\n newGoalsDataLength,\n editedGoalsDataLength,\n accountTypeOptions,\n selectedAccountType,\n handleAccountTypeOnChange,\n marketplaceOptions,\n handleOnChangeOfMarketplaces,\n selectedMarketplaces,\n dropdownLabel,\n isMarketplaceDropdownOpen,\n setIsMarketplaceDropdownOpen,\n dateType,\n isCustomMonthApply,\n customStartDate,\n customEndDate,\n dateFilterOptions,\n handleDateFilterEvents,\n isEditGoals,\n updateGoals,\n setEditGoals,\n setMarketplaceforNewGoal,\n}) {\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const customerData = useSelector((state) => state?.customerState?.data);\n const isPPC = customerData?.having_contract_type?.is_having_ppc;\n const isDSP = customerData?.having_contract_type?.is_having_dsp;\n const isDspOnlyBP = isDSP && !isPPC;\n const { Option, SingleValue } = components;\n\n // render the selected custom date or month as a sub label in the time filter\n const renderCustomDateSubLabel = (props) => {\n if (dateType?.value === 'custom' && isCustomMonthApply) {\n return `${dayjs(customStartDate).format('MMM, YYYY')} - ${dayjs(\n customEndDate,\n ).format('MMM, YYYY')}`;\n }\n return props?.data?.sub;\n };\n\n // custom dropdown menu for timeframe filter\n const singleFilterOption = (props) => {\n return (\n \n );\n };\n\n // custom dropdown single value for timeframe filter\n const singleFilterValue = (props) => {\n return (\n \n \n {renderCustomDateSubLabel(props)}\n \n \n );\n };\n\n // render get select component for dropdown\n const getSelectComponents = () => {\n return {\n Option: singleFilterOption,\n SingleValue: singleFilterValue,\n DropdownIndicator,\n };\n };\n\n // get dropdown components\n const getAccountTypeDropdDownComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n // function - display account type filter\n const displayAccountTypeFilter = () => {\n return (\n <>\n \n \n
    \n \n );\n };\n\n const displayMarketplaceFilter = () => {\n return (\n \n \n \n );\n };\n\n // renderGoaldateFilter\n const renderGoalDateFilter = () => {\n return (\n \n handleDateFilterEvents(event)}\n styles={filterCustomStyles}\n isSearchable={false}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#1A1A1A',\n primary: 'none',\n primary25: 'none',\n primary50: 'none',\n },\n })}\n />\n \n );\n };\n\n // display edit and save button for goal\n const displayEditandSaveBtn = () => {\n return isEditGoals ? (\n {\n updateGoals();\n }}\n data-cy=\"BT-Goals-SaveBtn\"\n >\n \n Save\n \n ) : (\n <>\n {\n setEditGoals(true);\n setMarketplaceforNewGoal();\n }}\n disabled={isSpreetailUser}\n data-cy=\"BT-Goals-EditBtn\"\n >\n \n Edit\n \n \n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n \n
    \n
    \n
    \n View data for:\n
    \n
    \n
    \n \n
      \n
    • \n {!customerData?.goal_set?.show ||\n !selectedMarketplaces?.length > 0 ||\n !editedGoalsDataLength > 0\n ? null\n : displayEditandSaveBtn()}\n
    • \n
    • \n {displayAccountTypeFilter()}\n
    • \n
    • {displayMarketplaceFilter()}
    • \n
    • {renderGoalDateFilter()}
    • \n
    \n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default GoalsAndStrategyFilters;\n\nGoalsAndStrategyFilters.defaultProps = {\n isMarketplaceDropdownOpen: false,\n isCustomMonthApply: false,\n isEditGoals: false,\n newGoalsDataLength: false,\n\n isBBEInternalUser: '',\n accountType: '',\n dropdownLabel: '',\n customStartDate: '',\n customEndDate: '',\n\n editedGoalsDataLength: number,\n\n data: {},\n dateType: {},\n selectedAccountType: {},\n\n accountTypeOptions: [],\n dateFilterOptions: [],\n marketplaceOptions: [],\n selectedMarketplaces: [],\n\n updateGoals: () => {},\n setEditGoals: () => {},\n setSelectedAccountType: () => {},\n setMarketplaceforNewGoal: () => {},\n handleDateFilterEvents: () => {},\n handleAccountTypeOnChange: () => {},\n setIsMarketplaceDropdownOpen: () => {},\n handleOnChangeOfMarketplaces: () => {},\n};\n\nGoalsAndStrategyFilters.propTypes = {\n isMarketplaceDropdownOpen: bool,\n isCustomMonthApply: bool,\n isEditGoals: bool,\n newGoalsDataLength: bool,\n\n dropdownLabel: string,\n customStartDate: string,\n customEndDate: string,\n accountType: string,\n isBBEInternalUser: string,\n\n editedGoalsDataLength: number,\n\n data: shape({\n label: string,\n sub: string,\n }),\n selectedAccountType: shape({}),\n dateType: shape({}),\n\n accountTypeOptions: arrayOf(shape({})),\n dateFilterOptions: arrayOf(shape({})),\n marketplaceOptions: arrayOf(shape({})),\n selectedMarketplaces: arrayOf(shape({})),\n\n updateGoals: func,\n setEditGoals: func,\n setSelectedAccountType: func,\n setMarketplaceforNewGoal: func,\n handleDateFilterEvents: func,\n handleAccountTypeOnChange: func,\n setIsMarketplaceDropdownOpen: func,\n handleOnChangeOfMarketplaces: func,\n};\n\nconst GoalsNav = styled.div`\n .inline-content {\n margin-top: -6px;\n li {\n width: 200px;\n margin-right: 16px;\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n vertical-align: top;\n &.action-btn {\n max-width: fit-content;\n width: fit-content;\n button {\n font-size: 14px;\n min-height: 40px;\n border-radius: 6px;\n padding: 5px 7px;\n }\n }\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n @media only screen and (max-width: 600px) {\n text-align: left;\n .inline-content {\n li {\n width: ${(props) => (props.show ? '46%' : '37%')};\n margin-right: 8px;\n\n &.action-btn {\n max-width: 100%;\n width: auto;\n }\n }\n }\n }\n\n @media only screen and (max-width: 370px) {\n .inline-content {\n li {\n width: ${(props) => (props.show ? '45%' : '34%')};\n\n .dropdown-goal-filter {\n min-width: auto;\n }\n }\n }\n }\n`;\n","import React, { useEffect, useState, useCallback, useMemo } from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\nimport queryString from 'query-string';\nimport { useMediaQuery } from 'react-responsive';\nimport { toast } from 'react-toastify';\nimport { bool, func, shape, string } from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useParams, useHistory } from 'react-router-dom';\n\n// local file imports\nimport Goals from './Goals';\nimport GoalsAndStrategyFilters from './GoalsAndStrategyFilters';\nimport CustomMonthRangeModal from '../../../../../common/CustomMonthRangeModal';\nimport { getCustomerDetails } from '../../../../../store/actions/customerState';\nimport {\n GrayMessageBar,\n PageLoader,\n Tabs,\n WhiteCard,\n} from '../../../../../common';\nimport {\n getGoals,\n getGoalsMarketPlaceList,\n updateGoal,\n deleteGoal,\n getGoalsReport,\n} from '../../../../../api';\nimport {\n HYBRID,\n SELLER,\n VENDOR,\n accountTypeOptionsForGoals,\n calculateMonthDifference,\n dateFilterOptions,\n getPastAndfutureDate,\n getPastAndfutureMonths,\n rivianaAndChildBrandIds,\n vendorSubTabOptions,\n} from '../../../../../constants';\n\nfunction GoalsAndStrategyContainer({\n downloadReportLoader,\n viewComponent,\n clickOnRefreshBtnFlag,\n goalsAccountTypeFlag,\n setClickOnRefreshBtn,\n setIsDataLoading,\n setIsDataAvailable,\n setDownloadReportLoader,\n}) {\n const dispatch = useDispatch();\n const history = useHistory();\n const isTablet = useMediaQuery({ minWidth: 768 });\n const params = queryString.parse(history.location.search);\n const customerData = useSelector((state) => state?.customerState?.data);\n const isPPC = customerData?.having_contract_type?.is_having_ppc;\n const isDSP = customerData?.having_contract_type?.is_having_dsp;\n const isDspOnlyBP = isDSP && !isPPC;\n\n const goalsStartDate = customerData?.goal_set?.start_date;\n const goalsEndDate = customerData?.goal_set?.end_date;\n const { id } = useParams();\n\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in goals and cos section\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const goalsHybridMessage = dynamicMessages?.forecast_hybrid?.placeholder;\n const goalsSellerMessage = dynamicMessages?.forecast_seller?.placeholder;\n const goalsVendorMessage = dynamicMessages?.forecast_vendor?.placeholder;\n\n // collapse by marketplace hooks\n const [sellerMarketplaceCollapse, setSellerMarketplaceCollapse] = useState(\n [],\n );\n const [shippedCOGsMarketplaceCollapse, setShippedCOGsMarketplaceCollapse] =\n useState([]);\n const [\n orderedRevenueMarketplaceCollapse,\n setOrderedRevenueMarketplaceCollapse,\n ] = useState([]);\n\n const [marketplaceOptions, setMarketplaceOptions] = useState([]);\n const [selectedMarketplaces, setSelectedMarketplaces] = useState([]);\n const [marketplaceChoices, setMarketplaceChoices] = useState([]);\n const [isMarketplaceDropdownOpen, setIsMarketplaceDropdownOpen] =\n useState(false);\n const [isPrimaryMarketplaceSame, setIsPrimaryMarketplaceSame] =\n useState(false);\n\n // edit goal hooks\n const [isEditSellerGoals, setIsEditSellerGoals] = useState(false);\n const [isEditOrderedRevenueGoals, setIsEditOrderedRevenueGoals] =\n useState(false);\n const [isEditShippedCOGsGoals, setIsEditShippedCOGsGoals] = useState(false);\n const [isNewGoalAdded, setIsNewGoalAdded] = useState(false);\n\n // marketplace for new goal hooks\n const [marketplaceForSellerNewGoal, setMarketplaceForSellerNewGoal] =\n useState({});\n const [\n marketplaceForOrderedRevenuNewGoal,\n setMarketplaceForOrderedRevenueNewGoal,\n ] = useState({});\n const [\n marketplaceForShippedCOGsNewGoal,\n setMarketplaceForShippedCOGsNewGoal,\n ] = useState({});\n\n const [goalLoader, setGoalLoader] = useState(false);\n const [goalsActivityLoader, setGoalsActivityLoader] = useState(false);\n\n // goals data by acount types\n const [editedSellerGoalsData, setEditedSellerGoalsData] = useState([]);\n const [editedShippedCOGsGoalsData, setEditedShippedCOGsGoalsData] = useState(\n [],\n );\n const [editedOrderedRevenueGoalsData, setEditedOrderedRevenueGoalsData] =\n useState([]);\n\n // new goals data by acount types\n const [sellerNewGoalsData, setSellerNewGoalsData] = useState([]);\n const [orderedRevenueNewGoalsData, setOrderedRevenueNewGoalsData] = useState(\n [],\n );\n const [shippedCOGsNewGoalsData, setShippedCOGsNewGoalsData] = useState([]);\n\n const [dropdownLabel, setDropdownLabel] = useState('All Marketplace');\n const [showMonthLimitMsg, setShowMonthLimitMsg] = useState(null);\n const [showCustomMonthRangeModal, setShowCustomMonthRangeModal] =\n useState(false);\n const [isCustomMonthApply, setIsCustomMonthApply] = useState(true);\n const [dateType, setDateType] = useState(dateFilterOptions?.[0]);\n const [customMonthNames, setCustomMonthNames] = useState();\n const [customDate, setCustomDate] = useState({\n startDate: '',\n endDate: '',\n });\n const [customStartDate, setCustomStartDate] = useState(null);\n const [customEndDate, setCustomEndDate] = useState(null);\n const [customMonth, setCustomMonth] = useState([\n {\n startMonth: customDate?.startDate,\n endMonth: customDate?.endDate,\n },\n ]);\n const [appliedDate, setAppliedDate] = useState(customMonth);\n const [accountTypeFilterOptions, setAccountTypeFilterOptions] = useState([]);\n const hasSellerGoals =\n goalsAccountTypeFlag?.seller || goalsAccountTypeFlag?.hybrid;\n const hasVendorGoals =\n goalsAccountTypeFlag?.vendor || goalsAccountTypeFlag?.hybrid;\n const hasHybridGoals = goalsAccountTypeFlag?.hybrid || false;\n const InitialGoalsAccountType = hasHybridGoals\n ? HYBRID\n : hasSellerGoals\n ? SELLER\n : hasVendorGoals\n ? VENDOR\n : null;\n\n const [selectedAccountType, setSelectedAccountType] = useState(\n hasHybridGoals\n ? accountTypeOptionsForGoals?.[0]\n : hasSellerGoals\n ? accountTypeOptionsForGoals?.[1]\n : hasVendorGoals\n ? accountTypeOptionsForGoals?.[2]\n : {},\n );\n\n // Comfort Products --> CMwIJql\n // Riviana Parent Company and its child brands --> rivianaAndChildBrands,\n const comfortProductsId = ['CMwIJql'];\n const BPsListToHideOrderedRevenue = comfortProductsId.concat(\n rivianaAndChildBrandIds,\n );\n const hideOrderedRevenue = BPsListToHideOrderedRevenue?.some(\n (item) => item === id,\n );\n\n const [selectedVendorSubTab, setSelectedVendorSubTab] = useState(\n hideOrderedRevenue ? vendorSubTabOptions?.[1] : vendorSubTabOptions?.[0],\n );\n\n const todaysDate = useMemo(() => {\n const date = new Date();\n date.setDate(1);\n return date;\n }, []);\n\n const [contractStartDate, setContractstartDate] = useState(todaysDate);\n // const [contractEndDate, setContractEndDate] = useState(todaysDate);\n\n const [currentMonth, setCurrentMonth] = useState();\n const [goalsDataLoader, setGoalsDataLoader] = useState(false);\n\n // generate month names\n const bindCustomDateFilterData = useCallback(() => {\n setGoalsDataLoader(true);\n const tempStartDate = new Date(goalsStartDate);\n const tempEndDate = new Date(goalsEndDate);\n\n const timezoneOffset = tempStartDate?.getTimezoneOffset();\n if (timezoneOffset > 0) {\n tempStartDate.setHours(tempStartDate.getHours() + 12);\n tempEndDate.setHours(tempEndDate.getHours() + 12);\n }\n\n const startDate = getPastAndfutureDate(tempStartDate, '01');\n const endDate = getPastAndfutureDate(tempEndDate, '01');\n setContractstartDate(startDate);\n // setContractEndDate(endDate);\n\n const startMonthDiff = calculateMonthDifference(startDate, todaysDate);\n const endMonthDiff = calculateMonthDifference(todaysDate, endDate);\n\n const tempMonthNames = [];\n const minLimit = 4;\n const maxLimit = 7;\n let minMonthLimit = 0;\n let maxMonthLimit = 12;\n if (startMonthDiff >= minLimit && endMonthDiff >= maxLimit) {\n minMonthLimit = minLimit;\n maxMonthLimit = maxLimit;\n } else if (startMonthDiff < minLimit && endMonthDiff < maxLimit) {\n minMonthLimit = startMonthDiff;\n maxMonthLimit = endMonthDiff;\n } else if (startMonthDiff >= minLimit && endMonthDiff < maxLimit) {\n minMonthLimit = minLimit;\n maxMonthLimit = endMonthDiff;\n } else {\n minMonthLimit = startMonthDiff;\n if (minLimit - startMonthDiff > endMonthDiff - maxLimit) {\n maxMonthLimit = maxLimit + (endMonthDiff - maxLimit);\n } else {\n maxMonthLimit = maxLimit + (minLimit - startMonthDiff);\n }\n }\n\n // get past months\n for (let i = minMonthLimit; i > 0; i -= 1) {\n const newDate = new Date();\n newDate.setDate(15);\n const pastMonth = getPastAndfutureMonths(newDate, -i);\n tempMonthNames.push({\n label: pastMonth,\n month: pastMonth?.getMonth() + 1,\n year: pastMonth?.getFullYear(),\n key: i === 1 ? 'scrollToElement' : '',\n });\n }\n\n // get current month\n const newDate = new Date();\n newDate.setDate(15);\n const todaysMonth = getPastAndfutureMonths(newDate, 0);\n setCurrentMonth(todaysMonth);\n tempMonthNames.push({\n label: todaysMonth,\n month: todaysMonth?.getMonth() + 1,\n year: todaysMonth?.getFullYear(),\n });\n\n // get future month\n for (let i = 1; i <= maxMonthLimit; i += 1) {\n const newDate1 = new Date();\n newDate1.setDate(15);\n const futureMonth = getPastAndfutureMonths(newDate1, i);\n tempMonthNames.push({\n label: futureMonth,\n month: futureMonth?.getMonth() + 1,\n year: futureMonth?.getFullYear(),\n });\n }\n\n const lastMonthElement = tempMonthNames?.slice(-1);\n\n setCustomDate({\n startDate: tempMonthNames?.[0]?.label,\n endDate: lastMonthElement?.[0]?.label,\n });\n\n const todayDate = new Date();\n const todayMonth = todayDate?.getMonth() + 1;\n const todaysYear = todayDate?.getFullYear();\n\n const currentMonthData = (element) =>\n element?.month === todayMonth && element?.year === todaysYear;\n\n const index = tempMonthNames.findIndex(currentMonthData);\n\n if (viewComponent === 'goals') {\n setCustomStartDate(\n dayjs(tempMonthNames?.[0]?.label).format('YYYY-MM-DD'),\n );\n setCustomEndDate(\n dayjs(lastMonthElement?.[0]?.label).format('YYYY-MM-DD'),\n );\n } else {\n setCustomStartDate(\n dayjs(tempMonthNames?.[index]?.label).format('YYYY-MM-DD'),\n );\n setCustomEndDate(\n dayjs(tempMonthNames?.[index + 3]?.label).format('YYYY-MM-DD'),\n );\n }\n\n setGoalsDataLoader(false);\n }, [todaysDate, goalsStartDate, goalsEndDate, viewComponent]);\n\n useEffect(() => {\n bindCustomDateFilterData();\n }, [bindCustomDateFilterData]);\n\n // set marketplace collapse\n useEffect(() => {\n const sellerMarketplaces = selectedMarketplaces\n ?.filter((mrktplc) =>\n mrktplc?.id ? mrktplc && mrktplc?.accountType === SELLER : null,\n )\n ?.map((item) => {\n return {\n marketplace: item?.id,\n accountType: item?.accountType,\n collapse: true,\n };\n });\n const vendorMarketplaces = selectedMarketplaces\n ?.filter((mrktplc) =>\n mrktplc?.id ? mrktplc && mrktplc?.accountType === VENDOR : null,\n )\n ?.map((item) => {\n return {\n marketplace: item?.id,\n accountType: item?.accountType,\n collapse: true,\n };\n });\n setSellerMarketplaceCollapse(sellerMarketplaces);\n setOrderedRevenueMarketplaceCollapse(vendorMarketplaces);\n setShippedCOGsMarketplaceCollapse(vendorMarketplaces);\n }, [selectedMarketplaces]);\n\n // bind the dropdown options for account type filter\n const bindAccountTypeFilterOptions = useCallback(\n (sellerFlag, vendorFlag, hybridFlag) => {\n const tempOptions = [];\n accountTypeOptionsForGoals.forEach((item) => {\n tempOptions.push({\n id: item?.id,\n label: item?.label,\n value: item?.value,\n isDisabled:\n item?.value === HYBRID\n ? !hybridFlag\n : item?.value === SELLER\n ? !sellerFlag\n : item?.value === VENDOR\n ? !vendorFlag\n : true,\n dataCy: `BT-Goals-AccountTypeFilter-${item?.value}`,\n });\n return tempOptions;\n });\n setAccountTypeFilterOptions(tempOptions);\n return tempOptions;\n },\n [],\n );\n\n // generate custom month names\n const generateMonthNames = useCallback((response) => {\n const responseData = response?.length ? response : [];\n const todayDate = new Date();\n const todaysMonth = todayDate?.getMonth();\n const todaysYear = todayDate?.getFullYear();\n const tempMonthNames = [];\n const milestone = responseData?.[0]?.milestones?.[0]?.milestone\n ? responseData?.[0]?.milestones?.[0]?.milestone\n : [];\n const timezoneOffset = new Date()?.getTimezoneOffset();\n if (milestone?.length) {\n for (const item of milestone) {\n const milestoneDate = new Date(`${item?.year}-${item?.month}-01`);\n if (timezoneOffset > 0) {\n milestoneDate.setHours(milestoneDate.getHours() + 12);\n }\n tempMonthNames.push({\n id: `${item?.month}${item?.year}`,\n label: milestoneDate,\n month: item?.month,\n year: item?.year,\n key:\n item?.year === todaysYear &&\n item?.month === todaysMonth &&\n milestone?.length > 4\n ? 'scrollToElement'\n : '',\n });\n }\n }\n return tempMonthNames;\n }, []);\n\n // get marketplace list\n const getMarketPlace = useCallback(\n (accType) => {\n let finalMarketplaces;\n setGoalsActivityLoader(true);\n setIsDataLoading(true);\n getGoalsMarketPlaceList(id, accType).then((res) => {\n if (res?.status === 200 && res?.data?.length) {\n if (res?.data?.length > 1) {\n setDropdownLabel('All Marketplaces');\n } else {\n const defaultMarketplace = res?.data?.[0];\n setDropdownLabel(\n `${defaultMarketplace?.country_currency?.country} ${\n defaultMarketplace?.is_primary ? '(Primary)' : ''\n } ${isDspOnlyBP ? '' : `(${defaultMarketplace?.account_type})`}`,\n );\n }\n finalMarketplaces = res?.data;\n\n finalMarketplaces.splice(0, 0, {\n name: 'all',\n country_currency: { country: 'All Marketplaces' },\n });\n\n let marketPlaceList = [];\n if (finalMarketplaces?.length) {\n for (const option of finalMarketplaces) {\n marketPlaceList.push({\n value: option.name,\n label: `${option?.country_currency?.country} ${\n option?.is_primary ? '(Primary)' : ''\n }`,\n id: option?.id,\n collapse: true,\n accountType: option?.account_type,\n isPrimary: option?.is_primary,\n uniqueId: `${option?.account_type}-${option?.id}`,\n dataCy: `BT-Goals-${option?.id}`,\n });\n }\n\n if (marketPlaceList.length === 2) {\n marketPlaceList = marketPlaceList.filter(\n (item) => item.value !== 'all',\n );\n }\n if (accType === 'Hybrid') {\n const sellerPrimaryMarketplace = marketPlaceList?.find(\n (item) => item?.accountType === SELLER && item?.isPrimary,\n );\n const vendorPrimaryMarketplace = marketPlaceList?.find(\n (item) => item?.accountType === VENDOR && item?.isPrimary,\n );\n if (\n sellerPrimaryMarketplace?.id === vendorPrimaryMarketplace?.id\n ) {\n setIsPrimaryMarketplaceSame(true);\n } else {\n setIsPrimaryMarketplaceSame(false);\n }\n } else {\n setIsPrimaryMarketplaceSame(false);\n }\n\n setMarketplaceOptions(marketPlaceList);\n setSelectedMarketplaces(marketPlaceList);\n setMarketplaceChoices(\n marketPlaceList.filter((item, index) =>\n index !== 0 ? item : null,\n ),\n );\n }\n } else {\n setMarketplaceOptions([]);\n setSelectedMarketplaces([]);\n setMarketplaceChoices([]);\n setDropdownLabel('No Marketplace Available');\n }\n setGoalsActivityLoader(false);\n });\n },\n [id, isDspOnlyBP, setIsDataLoading],\n );\n\n // callback function get bp goals data\n const getGoalsOfBP = useCallback(\n (\n marketplaces,\n accType,\n startDate,\n endDate,\n sameMarketplaceFlag = false,\n ) => {\n setGoalLoader(true);\n\n let primaryMarketplace = null;\n if (sameMarketplaceFlag) {\n const sellerPrimaryMarketplace = marketplaces?.find(\n (item) => item?.accountType === SELLER && item?.isPrimary,\n );\n const vendorPrimaryMarketplace = marketplaces?.find(\n (item) => item?.accountType === VENDOR && item?.isPrimary,\n );\n\n if (sellerPrimaryMarketplace?.id === vendorPrimaryMarketplace?.id) {\n primaryMarketplace = null;\n } else {\n if (sellerPrimaryMarketplace) {\n primaryMarketplace = `${sellerPrimaryMarketplace?.id}-${sellerPrimaryMarketplace?.accountType}`;\n }\n if (vendorPrimaryMarketplace) {\n primaryMarketplace = `${vendorPrimaryMarketplace?.id}-${vendorPrimaryMarketplace?.accountType}`;\n }\n }\n }\n\n setCustomMonthNames([]);\n if (marketplaces?.length > 0) {\n getGoals(\n id,\n accType,\n marketplaces,\n startDate,\n endDate,\n primaryMarketplace,\n ).then((res) => {\n if (res?.status === 200 && res?.data?.length) {\n const sellerGoals = res?.data?.filter(\n (item) => item?.contract_account_type === 'Seller',\n );\n const orderedRevenueGoals = res?.data?.filter(\n (item) => item?.vendor_sub_type === 'Ordered Revenue',\n );\n const shippedCogsGoals = res?.data?.filter(\n (item) => item?.vendor_sub_type === 'Shipped COGs',\n );\n\n setIsDataAvailable(true);\n setEditedSellerGoalsData(sellerGoals);\n setEditedShippedCOGsGoalsData(shippedCogsGoals);\n setEditedOrderedRevenueGoalsData(orderedRevenueGoals);\n setCustomMonthNames(generateMonthNames(res?.data));\n }\n setGoalLoader(false);\n setGoalsActivityLoader(false);\n setIsDataLoading(false);\n });\n }\n },\n [id, setIsDataLoading, setIsDataAvailable, generateMonthNames],\n );\n\n // set marketplace custom label\n const setMarketplaceLabel = (list, item) => {\n if (item?.value === 'all') {\n if (list?.length === 0) {\n setDropdownLabel('Select Marketplace');\n } else {\n setDropdownLabel('All Marketplaces');\n }\n } else if (list?.length === 1) {\n setDropdownLabel(`${list[0]?.label} (${list[0]?.accountType})`);\n } else if (list?.length === 0) {\n setDropdownLabel('Select Marketplace');\n } else if (list?.length === marketplaceOptions?.length) {\n setDropdownLabel('All Marketplaces');\n } else {\n setDropdownLabel('Mulitple');\n }\n };\n\n // use effect for refresh button\n useEffect(() => {\n if (clickOnRefreshBtnFlag) {\n if (params?.nav === 'goals') {\n getGoalsOfBP(\n selectedMarketplaces,\n InitialGoalsAccountType,\n customStartDate,\n customEndDate,\n isPrimaryMarketplaceSame,\n );\n bindAccountTypeFilterOptions(\n hasSellerGoals,\n hasVendorGoals,\n hasHybridGoals,\n );\n setIsNewGoalAdded(false);\n setIsEditSellerGoals(false);\n setIsEditShippedCOGsGoals(false);\n setIsEditOrderedRevenueGoals(false);\n setSellerNewGoalsData([]);\n setShippedCOGsNewGoalsData([]);\n setOrderedRevenueNewGoalsData([]);\n setSelectedMarketplaces([...marketplaceOptions]);\n setMarketplaceLabel(marketplaceOptions, {});\n }\n setClickOnRefreshBtn(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n clickOnRefreshBtnFlag,\n customEndDate,\n customStartDate,\n getGoalsOfBP,\n marketplaceOptions,\n params,\n selectedMarketplaces,\n setClickOnRefreshBtn,\n bindAccountTypeFilterOptions,\n hasSellerGoals,\n hasVendorGoals,\n hasHybridGoals,\n ]);\n\n // download bp goals report\n const downloadGoalsReport = useCallback(() => {\n getGoalsReport(id).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n } else {\n toast.error('Oops! Something went wrong...');\n }\n setDownloadReportLoader(false);\n });\n }, [id, setDownloadReportLoader]);\n\n // use effect for download report\n useEffect(() => {\n if (downloadReportLoader) {\n downloadGoalsReport();\n setDownloadReportLoader(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [downloadGoalsReport, downloadReportLoader]);\n\n const deleteAddedGoal = (milestone) => {\n setGoalsActivityLoader(true);\n deleteGoal(milestone?.id).then(() => {\n toast.success('Goal deleted successfully!');\n getGoalsOfBP(\n selectedMarketplaces,\n selectedAccountType?.value,\n customStartDate,\n customEndDate,\n isPrimaryMarketplaceSame,\n );\n });\n };\n\n // use effect\n useEffect(() => {\n getMarketPlace(InitialGoalsAccountType);\n bindAccountTypeFilterOptions(\n hasSellerGoals,\n hasVendorGoals,\n hasHybridGoals,\n );\n }, [\n InitialGoalsAccountType,\n bindAccountTypeFilterOptions,\n getMarketPlace,\n hasHybridGoals,\n hasSellerGoals,\n hasVendorGoals,\n ]);\n\n // use effect\n useEffect(() => {\n if (selectedMarketplaces?.length > 0) {\n getGoalsOfBP(\n selectedMarketplaces,\n selectedAccountType?.value,\n customStartDate,\n customEndDate,\n isPrimaryMarketplaceSame,\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n customEndDate,\n customStartDate,\n getGoalsOfBP,\n selectedAccountType,\n selectedMarketplaces,\n ]);\n\n // save the goals data\n const saveGoalsData = (updatedGoalsData) => {\n let api = '';\n if (viewComponent === 'goals') {\n setGoalsActivityLoader(true);\n api = updateGoal(\n id,\n updatedGoalsData,\n selectedMarketplaces,\n selectedAccountType?.value,\n customStartDate,\n customEndDate,\n );\n }\n\n api.then((res) => {\n if (res?.status === 400) {\n toast.error(res?.data?.error);\n }\n if (res?.status === 200) {\n if (viewComponent === 'goals')\n toast.success('Goal updated successfully!');\n }\n setIsNewGoalAdded(false);\n setIsEditSellerGoals(false);\n setIsEditShippedCOGsGoals(false);\n setIsEditOrderedRevenueGoals(false);\n if (viewComponent === 'goals') {\n dispatch(getCustomerDetails(id, false));\n setSellerNewGoalsData([]);\n setShippedCOGsNewGoalsData([]);\n setOrderedRevenueNewGoalsData([]);\n getGoalsOfBP(\n selectedMarketplaces,\n selectedAccountType?.value,\n customStartDate,\n customEndDate,\n isPrimaryMarketplaceSame,\n );\n }\n setGoalsActivityLoader(false);\n });\n };\n\n // calling goals api when date changes\n const applyDateChangeEvents = (startDate, endDate) => {\n setCustomStartDate(startDate);\n setCustomEndDate(endDate);\n };\n\n // handle custom date range changes events\n const handleCustomDateRangeEvents = (startDate, endDate, dateFlag) => {\n const newEndDate = endDate || startDate;\n let tempStartDate = startDate;\n let tempEndDate = newEndDate;\n\n if (dateFlag === 'custom') {\n tempStartDate = dayjs(startDate).format('YYYY-MM-DD');\n tempEndDate = dayjs(newEndDate).format('YYYY-MM-DD');\n applyDateChangeEvents(tempStartDate, tempEndDate);\n }\n };\n\n // apply custom month range\n const applyCustomMonthRange = () => {\n setIsCustomMonthApply(true);\n setAppliedDate(customMonth);\n handleCustomDateRangeEvents(\n customMonth?.[0]?.startMonth,\n customMonth?.[0]?.endMonth,\n 'custom',\n );\n setShowCustomMonthRangeModal(false);\n };\n\n // Handeling the custom month range selection\n const onMonthChange = (date) => {\n const [startMonth, endMonth] = date;\n\n let updatedEndMonth = endMonth ? new Date(endMonth) : null;\n\n if (startMonth && endMonth) {\n const selectedMonth = calculateMonthDifference(startMonth, endMonth);\n\n if (selectedMonth > 11) {\n const updatedDate = new Date(startMonth);\n updatedEndMonth = getPastAndfutureMonths(updatedDate, 11);\n setShowMonthLimitMsg('You can select max 12 months at a time.');\n } else {\n setShowMonthLimitMsg(null);\n }\n }\n\n setCustomMonth([\n {\n startMonth,\n endMonth: updatedEndMonth,\n },\n ]);\n };\n\n // set default date\n const setDefaultDate = () => {\n if (isCustomMonthApply) {\n setCustomMonth([\n {\n startMonth: appliedDate?.[0]?.startMonth,\n endMonth: appliedDate?.[0]?.endMonth,\n },\n ]);\n }\n };\n\n // handle account type change events\n const handleAccountTypeOnChange = (event) => {\n setSelectedAccountType(event);\n getMarketPlace(event?.value);\n };\n\n // handle date filter events\n const handleDateFilterEvents = (event) => {\n const { value } = event;\n setDateType(event);\n\n if (value === 'custom') {\n setShowCustomMonthRangeModal(true);\n }\n };\n\n // handle marketplace filter events\n const handleOnChangeOfMarketplaces = (event, item) => {\n setMarketplaceForSellerNewGoal({});\n setMarketplaceForShippedCOGsNewGoal({});\n setMarketplaceForOrderedRevenueNewGoal({});\n if (\n selectedMarketplaces?.find((marketplace) => marketplace?.value === 'all')\n ) {\n setDropdownLabel('All Marketplaces');\n }\n\n if (event?.target?.checked) {\n setIsMarketplaceDropdownOpen(false);\n if (item?.value === 'all') {\n setSelectedMarketplaces([...marketplaceOptions]);\n setMarketplaceLabel([...marketplaceOptions], item);\n } else {\n const list = [...selectedMarketplaces];\n list.push(item);\n\n if (marketplaceChoices?.length === list?.length) {\n list.push(marketplaceOptions[0]);\n }\n setSelectedMarketplaces(list);\n setMarketplaceLabel(list, item);\n }\n }\n if (!event?.target?.checked) {\n if (item?.value === 'all') {\n setIsMarketplaceDropdownOpen(true);\n setSelectedMarketplaces([]);\n setMarketplaceLabel([], item);\n } else {\n const list = selectedMarketplaces?.filter(\n (marketplace) =>\n marketplace?.uniqueId !== item?.uniqueId &&\n marketplace?.value !== 'all',\n );\n\n setSelectedMarketplaces([...list]);\n setMarketplaceLabel(list, item);\n if (list?.length > 0) {\n setIsMarketplaceDropdownOpen(false);\n } else {\n setIsMarketplaceDropdownOpen(true);\n }\n }\n }\n };\n\n // update the edited goals data\n const updateGoalsData = () => {\n let updatedGoalsData = [];\n\n if (editedSellerGoalsData?.length > 0) {\n updatedGoalsData = updatedGoalsData.concat(editedSellerGoalsData);\n }\n if (editedOrderedRevenueGoalsData?.length > 0) {\n updatedGoalsData = updatedGoalsData.concat(editedOrderedRevenueGoalsData);\n }\n if (editedShippedCOGsGoalsData?.length > 0) {\n updatedGoalsData = updatedGoalsData.concat(editedShippedCOGsGoalsData);\n }\n\n saveGoalsData(updatedGoalsData);\n };\n\n // update the goals data with newly added goals\n const updateNewGoalsData = (updatedGoals, goalsType) => {\n let newGoalsData = [];\n if (goalsType === 'seller') {\n newGoalsData = newGoalsData.concat(\n updatedGoals,\n editedOrderedRevenueGoalsData,\n editedShippedCOGsGoalsData,\n );\n }\n if (goalsType === 'orderedRevenue') {\n newGoalsData = newGoalsData.concat(\n editedSellerGoalsData,\n updatedGoals,\n editedShippedCOGsGoalsData,\n );\n }\n if (goalsType === 'shippedCOGs') {\n newGoalsData = newGoalsData.concat(\n editedSellerGoalsData,\n editedOrderedRevenueGoalsData,\n updatedGoals,\n );\n }\n saveGoalsData(newGoalsData);\n };\n\n // display goals dashboard\n const displayGoalsDashboard = (\n goalsType,\n editedGoalsData,\n setEditedGoalsData,\n newGoalsData,\n setNewGoalsData,\n isEditGoals,\n marketplaceForNewGoal,\n setMarketplaceforNewGoal,\n marketplaceCollapse,\n setMarketplaceCollapse,\n ) => {\n return (\n \n );\n };\n\n // display goals seller dashboard\n const displayGoalsSellerDashboard = () => {\n return displayGoalsDashboard(\n 'seller',\n editedSellerGoalsData,\n setEditedSellerGoalsData,\n sellerNewGoalsData,\n setSellerNewGoalsData,\n isEditSellerGoals,\n marketplaceForSellerNewGoal,\n setMarketplaceForSellerNewGoal,\n sellerMarketplaceCollapse,\n setSellerMarketplaceCollapse,\n );\n };\n\n // display goals seller panel\n const displayGoalsSellerPanel = () => {\n return isTablet ? (\n \n {isDspOnlyBP ? (\n
    DSP Forecast
    \n ) : (\n
    Seller Forecast
    \n )}\n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in goals and cos section */}\n {goalsSellerMessage ? (\n \n ) : null}\n {displayGoalsSellerDashboard()}\n
    \n ) : (\n <>\n {isDspOnlyBP ? (\n
    DSP Forecast
    \n ) : (\n \n
    Seller Forecast
    \n
    \n )}\n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in goals and cos section */}\n {goalsSellerMessage ? (\n \n ) : null}\n {displayGoalsSellerDashboard()}\n \n );\n };\n\n // display vendor goals tabs\n const displayVendorGoalsTab = () => {\n return (\n <>\n
    Vendor Forecast
    \n\n \n
      \n {vendorSubTabOptions?.map((option) => {\n return (\n {\n setSelectedVendorSubTab(option);\n }}\n role=\"presentation\"\n >\n {option?.label}\n \n );\n })}\n
    \n
    \n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in goals and cos section */}\n {goalsVendorMessage ? (\n \n ) : null}\n \n );\n };\n\n // display ordered revenue dashboard\n const displayOrderedRevenueDashboard = () => {\n return displayGoalsDashboard(\n 'orderedRevenue',\n editedOrderedRevenueGoalsData,\n setEditedOrderedRevenueGoalsData,\n orderedRevenueNewGoalsData,\n setOrderedRevenueNewGoalsData,\n isEditOrderedRevenueGoals,\n marketplaceForOrderedRevenuNewGoal,\n setMarketplaceForOrderedRevenueNewGoal,\n orderedRevenueMarketplaceCollapse,\n setOrderedRevenueMarketplaceCollapse,\n );\n };\n\n // display shipped cogs dashboard\n const displayShippedCOGsDashboard = () => {\n return displayGoalsDashboard(\n 'shippedCOGs',\n editedShippedCOGsGoalsData,\n setEditedShippedCOGsGoalsData,\n shippedCOGsNewGoalsData,\n setShippedCOGsNewGoalsData,\n isEditShippedCOGsGoals,\n marketplaceForShippedCOGsNewGoal,\n setMarketplaceForShippedCOGsNewGoal,\n shippedCOGsMarketplaceCollapse,\n setShippedCOGsMarketplaceCollapse,\n );\n };\n\n // display goals vendor panel\n const displayGoalsVendorPanel = () => {\n return isTablet ? (\n \n {displayVendorGoalsTab()}\n {selectedVendorSubTab?.value === 'orderedRevenue'\n ? displayOrderedRevenueDashboard()\n : displayShippedCOGsDashboard()}\n \n ) : (\n <>\n {displayVendorGoalsTab()}\n {selectedVendorSubTab?.value === 'orderedRevenue'\n ? displayOrderedRevenueDashboard()\n : displayShippedCOGsDashboard()}\n \n );\n };\n\n // display goals filters\n const displayGoalsFilters = () => {\n const isEditGoals =\n isEditSellerGoals || isEditShippedCOGsGoals || isEditOrderedRevenueGoals;\n const newGoalsDataLength =\n sellerNewGoalsData?.length > 0 ||\n orderedRevenueNewGoalsData?.length > 0 ||\n shippedCOGsNewGoalsData?.length > 0;\n const editedGoalsDataLength =\n editedSellerGoalsData?.length ||\n editedShippedCOGsGoalsData?.length ||\n editedOrderedRevenueGoalsData?.length;\n return (\n {\n setIsEditSellerGoals(true);\n setIsEditShippedCOGsGoals(true);\n setIsEditOrderedRevenueGoals(true);\n }}\n newGoalsDataLength={newGoalsDataLength}\n editedGoalsDataLength={editedGoalsDataLength}\n handleDateFilterEvents={handleDateFilterEvents}\n setMarketplaceforNewGoal={() => {\n setMarketplaceForSellerNewGoal({});\n setMarketplaceForShippedCOGsNewGoal({});\n setMarketplaceForOrderedRevenueNewGoal({});\n }}\n handleAccountTypeOnChange={handleAccountTypeOnChange}\n handleOnChangeOfMarketplaces={handleOnChangeOfMarketplaces}\n setIsMarketplaceDropdownOpen={setIsMarketplaceDropdownOpen}\n />\n );\n };\n\n // render goals month range modals\n const renderGoalsMonthRangeModals = () => {\n // We have provided random future date - 2100/12/31 to maxDate prop in custom month picker\n return (\n {\n setShowCustomMonthRangeModal(false);\n setDefaultDate();\n }}\n onDateChange={onMonthChange}\n onApply={() => {\n applyCustomMonthRange();\n setMarketplaceForSellerNewGoal({});\n setMarketplaceForShippedCOGsNewGoal({});\n setMarketplaceForOrderedRevenueNewGoal({});\n }}\n currentMonth={currentMonth}\n helperText={showMonthLimitMsg}\n />\n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n
    \n {displayGoalsFilters()}\n
    \n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in goals and cos section */}\n {selectedAccountType?.value === HYBRID && goalsHybridMessage ? (\n \n ) : null}\n {params?.nav === 'goals' ? (\n goalLoader || goalsDataLoader ? (\n \n ) : hasHybridGoals ||\n hasSellerGoals ||\n hasVendorGoals ||\n selectedMarketplaces?.length > 0 ? (\n
    \n {selectedAccountType?.value === SELLER ||\n selectedAccountType?.value === HYBRID\n ? displayGoalsSellerPanel()\n : null}\n {selectedAccountType?.value === VENDOR ||\n selectedAccountType?.value === HYBRID\n ? displayGoalsVendorPanel()\n : null}\n
    \n ) : (\n \n \n No Goals created\n

    \n
    \n )\n ) : null}\n {showCustomMonthRangeModal ? renderGoalsMonthRangeModals() : null}\n
    \n );\n}\n\nexport default GoalsAndStrategyContainer;\n\nGoalsAndStrategyContainer.defaultProps = {\n downloadReportLoader: false,\n viewComponent: '',\n clickOnRefreshBtnFlag: false,\n goalsAccountTypeFlag: {},\n setClickOnRefreshBtn: () => {},\n setIsDataLoading: () => {},\n setIsDataAvailable: () => {},\n setDownloadReportLoader: () => {},\n};\n\nGoalsAndStrategyContainer.propTypes = {\n downloadReportLoader: bool,\n viewComponent: string,\n clickOnRefreshBtnFlag: bool,\n goalsAccountTypeFlag: shape({}),\n setClickOnRefreshBtn: func,\n setIsDataLoading: func,\n setIsDataAvailable: func,\n setDownloadReportLoader: func,\n};\n","import React, { useState } from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport queryString from 'query-string';\nimport { useSelector } from 'react-redux';\nimport { shape, string } from 'prop-types';\nimport { useParams, useHistory } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// local file imports\nimport Theme from '../../../../theme/Theme';\nimport CosContainer from './COS/COSContainer';\nimport GoalsAndStrategyContainer from './Goals/GoalsAndStrategyContainer';\nimport { PageLoader, Tabs } from '../../../../common';\nimport { PATH_CUSTOMER_DETAILS, goalsTabConstant } from '../../../../constants';\n\nfunction GoalsAndCosContainer({\n isBBEInternalUser,\n accountType,\n goalsAccountTypeFlag,\n}) {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n // https://bbe.atlassian.net/browse/PDV-9253 - Hide COS TAB - Single BP View and BP View\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isSuperAdmin = userInfo?.role?.includes('Super Admin');\n const { id } = useParams();\n const [viewComponent, setViewComponent] = useState('goals');\n const [clickOnRefreshBtnFlag, setClickOnRefreshBtn] = useState(false);\n const [downloadReportLoader, setDownloadReportLoader] = useState(false);\n const [isDataAvailable, setIsDataAvailable] = useState(false);\n const [isDataLoading, setIsDataLoading] = useState(false);\n\n // display goals tab list\n const displayGoalsTabList = () => {\n return (\n \n
      \n {goalsTabConstant?.map((item) => {\n return (\n {\n setViewComponent(item?.key);\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=goals&nav=${item?.key}&access=${isBBEInternalUser}`,\n );\n }}\n role=\"presentation\"\n data-cy={item?.datacy}\n >\n {item?.label}\n \n );\n })}\n
    \n
    \n );\n };\n\n // display download report button\n const displayDownloadReportButton = () => {\n return (\n {\n setDownloadReportLoader(true);\n }}\n style={{ maxWidth: '150px' }}\n >\n {downloadReportLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n
    \n );\n };\n\n // display sync button\n const displaySyncButton = () => {\n return (\n {\n setClickOnRefreshBtn(true);\n }}\n className=\"cursor\"\n >\n \n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n
    \n
    {displayGoalsTabList()}
    \n
    \n {displayDownloadReportButton()}\n {displaySyncButton()}\n
    \n
    \n
    \n\n {params?.nav === 'goals' ? (\n \n ) : null}\n {params?.nav === 'cos' ? (\n \n ) : null}\n
    \n );\n}\n\nexport default GoalsAndCosContainer;\n\nGoalsAndCosContainer.defaultProps = {\n isBBEInternalUser: '',\n accountType: '',\n goalsAccountTypeFlag: {},\n};\n\nGoalsAndCosContainer.propTypes = {\n accountType: string,\n isBBEInternalUser: string,\n goalsAccountTypeFlag: shape({}),\n};\n\nconst SyncButton = styled.div`\n height: 32px;\n width: 32px;\n border: 1px solid ${Theme.gray45};\n border-radius: 6px;\n color: ${Theme.gray90};\n text-align: center;\n padding: 7px;\n font-size: ${Theme.extraNormal};\n`;\n","/* eslint-disable react/no-danger */\nimport React, { useEffect, useState } from 'react';\n\nimport { shape, string } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport { DesktopTable, Status } from '../../../../common';\n\nexport default function CustomerFeedbackDetails({\n selectedFeedbackForm,\n surveyType,\n}) {\n const [surveyData, setSurveyData] = useState([]);\n\n useEffect(() => {\n if (surveyType === 'accountSetup') {\n setSurveyData([\n {\n question: '1. How easy was your account setup?',\n answer: selectedFeedbackForm.ratings,\n },\n {\n question: '2. What can we do to make it better?',\n answer: selectedFeedbackForm.feedback,\n },\n ]);\n } else {\n setSurveyData(selectedFeedbackForm?.response?.questions);\n }\n }, [selectedFeedbackForm, surveyType]);\n\n const generateHTML = () => {\n return (\n <>\n {surveyData?.map((item) => (\n
    \n \n\n {item?.answer ? (\n \n {item?.answer}\n \n ) : (\n <>\n {item?.answers?.map((ans, index) => (\n <>\n \n <>\n {ans?.row_text ? <>{ans?.row_text} : : null}\n {/* {item?.question_type === 'matrix' &&\n ans?.choice_metadata?.weight\n ? `${ans.choice_metadata.weight}-`\n : ''} */}\n {ans?.text}\n {index < item?.answers?.length - 1 ? (\n ans?.row_text ? (\n
    \n ) : (\n ', '\n )\n ) : (\n ''\n )}\n \n \n \n ))}\n \n )}\n
    \n
    \n ))}\n \n );\n };\n\n return (\n
    \n \n \n \n Status\n Sent on\n Completed on\n \n \n \n \n <>\n \n \n \n {selectedFeedbackForm?.sent_on || 'N/A'}\n {selectedFeedbackForm?.completed_on || 'N/A'}\n \n \n \n \n
    \n {generateHTML()}\n
    \n
    \n );\n}\n\nCustomerFeedbackDetails.propTypes = {\n selectedFeedbackForm: shape({}).isRequired,\n surveyType: string.isRequired,\n};\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport Modal from 'react-modal';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { toast } from 'react-toastify';\n\nimport Theme from '../../../../theme/Theme';\nimport NoRecordFound from '../../../../common/NoRecordFound';\nimport CustomerFeedbackDetails from './CustomerFeedbackDetails';\nimport {\n emailRecipientFields,\n emailRecipientOption,\n customStylesForTableModal,\n} from '../../../../constants';\nimport {\n EditOrangeIcon,\n CloseIcon,\n AddNewIcons,\n TrashIcons,\n DefaultUser,\n EmailIcon,\n SaveIcon,\n} from '../../../../theme/images';\nimport { NotesSideBar } from '../CustomerDetailStyles';\nimport {\n getCustomerFeedback,\n getMonkeySurveyData,\n updateMonkeySurveyData,\n sendReminderOfCustomerFeedback,\n updateRecipientOfCustomerFeedback,\n} from '../../../../api';\nimport {\n DesktopTable,\n PageLoader,\n Status,\n ViewData,\n WhiteCard,\n DropdownIndicator,\n SingleSelectDropdown,\n ModalBox,\n Button,\n FormField,\n ModalRadioCheck,\n GrayMessageBar,\n CommonPagination,\n // GetInitialName,\n} from '../../../../common';\n\nexport default function CustomerFeedbackList({\n id,\n customerType,\n childBPList,\n memberData,\n}) {\n const customStyles = {\n content: {\n top: '50%',\n right: '0px',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n maxHeight: '100%',\n overlay: ' {zIndex: 1000}',\n inset: '0% 0% 0% auto',\n marginRight: '0',\n borderRadius: '0px !important',\n },\n };\n const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n\n const isExtraLargeDesktop = useMediaQuery({ minWidth: 1800 });\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [showDetailedFeedback, setShowDetailedFeedback] = useState(false);\n const [selectedFeedbackForm, setSelectedFeedbackForm] = useState({});\n const [surveyData, setSurveyData] = useState([]);\n const [onboadingsurveyData, setOnboardingSurveyData] = useState([]);\n const [surveyCount, setSurveyCount] = useState(0);\n const [pageNumber, setPageNumber] = useState(1);\n const [changeEmailRecipientData, setChangeEmailRecipientData] = useState({\n current_info: {},\n next_all_info: {},\n });\n\n const [uniqueRecipients, setUniqueRecipients] = useState([]);\n\n const [flagsForModal, setFlagsForModal] = useState(false);\n const [modalConfig, setModalConfig] = useState({});\n const [selectedCustomerId, setSelectedCustomerId] = useState(\n childBPList?.length ? childBPList?.[0]?.value : id,\n );\n const [isAllowToEditOrSkipSurvey, setIsAllowToEditOrSkipSurvey] =\n useState(false);\n\n // checking user permission\n const checkUserPermission = useCallback(() => {\n if (userInfo?.role?.includes('BGS Admin')) {\n setIsAllowToEditOrSkipSurvey(true);\n } else {\n for (const user of memberData) {\n if (user.user) {\n if (\n (user?.role_group?.name === 'BGS Manager' ||\n user?.role_group?.name === 'BGS') &&\n user?.user?.id === userInfo?.id\n ) {\n setIsAllowToEditOrSkipSurvey(true);\n }\n }\n }\n }\n }, [memberData, userInfo]);\n\n useEffect(() => {\n checkUserPermission();\n }, [checkUserPermission]);\n\n useEffect(() => {\n if (childBPList?.length) setSelectedCustomerId(childBPList?.[0]?.value);\n }, [childBPList]);\n\n const getOnboardingSurveyData = useCallback(() => {\n getCustomerFeedback(selectedCustomerId).then((res) => {\n if (res?.status === 200) {\n setOnboardingSurveyData(res?.data);\n }\n setIsLoading({ loader: false, type: 'page' });\n });\n }, [selectedCustomerId]);\n\n const getSurveyData = useCallback(() => {\n setSurveyData([]);\n getMonkeySurveyData(selectedCustomerId, pageNumber).then((survey) => {\n if (survey?.status === 200) {\n setSurveyCount(survey?.data?.count);\n setUniqueRecipients(survey?.data?.recipient_details);\n for (const item of survey?.data?.results) {\n if (item?.survey_responses?.length) {\n for (const qa of item.survey_responses) {\n qa.id = item.id;\n qa.sent_on = item.sent_on;\n qa.status = item.status;\n qa.survey_name = item.survey_name;\n qa.recipient_email = item.recipient_email;\n qa.recipient_first_name = item.recipient_first_name;\n qa.recipient_last_name = item.recipient_last_name;\n }\n setSurveyData((prevState) => [\n ...prevState,\n ...item.survey_responses,\n ]);\n } else {\n setSurveyData((prevState) => [...prevState, item]);\n }\n }\n }\n setIsLoading({ loader: false, type: 'page' });\n });\n }, [selectedCustomerId, pageNumber]);\n\n useEffect(() => {\n setIsLoading({ loader: true, type: 'page' });\n getOnboardingSurveyData();\n }, [getOnboardingSurveyData]);\n\n useEffect(() => {\n setIsLoading({ loader: true, type: 'page' });\n getSurveyData();\n }, [getSurveyData]);\n\n const skipSurvey = () => {\n setIsLoading({ loader: true, type: 'button' });\n updateMonkeySurveyData(modalConfig?.item?.id, { status: 'skipped' }).then(\n (res) => {\n setIsLoading({ loader: false, type: 'button' });\n\n if (res?.status === 200) {\n toast.success('Skipped survey Successfully.');\n setModalConfig({\n modalFor: 'skip',\n show: false,\n });\n getSurveyData();\n }\n },\n );\n };\n\n const updateRecipient = () => {\n setIsLoading({ loader: true, type: 'button' });\n updateRecipientOfCustomerFeedback(changeEmailRecipientData).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n\n if (res?.status === 200) {\n toast.success('Email Recipient updated Successfully.');\n setModalConfig({\n modalFor: 'sendReminder',\n show: false,\n });\n getSurveyData();\n }\n });\n };\n const sendReminderOfContract = () => {\n setIsLoading({ loader: true, type: 'button' });\n sendReminderOfCustomerFeedback({\n object_id: modalConfig?.item?.id,\n }).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n\n if (res?.status === 200) {\n toast.success('Reminder email has been sent successfully');\n setModalConfig({\n modalFor: 'sendReminder',\n show: false,\n });\n\n getSurveyData();\n }\n });\n };\n\n const renderSkipModal = () => {\n return (\n \n {\n setModalConfig({\n modalFor: 'skip',\n show: false,\n });\n }}\n role=\"presentation\"\n />\n \n
    \n {/*
    Skip survey
    */}\n\n
    \n

    Skip survey

    \n
    \n
    \n Are you sure you would like to skip sending this survey?\n
    \n This action can not be undone.\n
    \n
    \n
    \n
    \n skipSurvey()}\n >\n {isLoading?.loader && isLoading?.type === 'button' ? (\n \n ) : (\n 'Proceed'\n )}\n \n
    \n
    \n \n setModalConfig({\n modalFor: 'skip',\n show: false,\n })\n }\n >\n Cancel\n \n
    \n
    \n
    \n
    \n \n );\n };\n\n const renderSendReminderModal = () => {\n return (\n \n {\n setModalConfig({\n modalFor: 'sendReminder',\n show: false,\n });\n }}\n role=\"presentation\"\n />\n \n
    \n

    Send Reminder

    \n\n
    \n
    \n
    \n TO:{' '}\n \n {modalConfig?.item?.recipient_email}\n \n
    \n {/* {reminderError?.Contact} */}\n
    \n
    \n
    \n sendReminderOfContract()}\n // disabled={disabledCon || false}>\n >\n Send Reminder\n \n
    \n
    \n
    \n \n );\n };\n\n const returnRecipientDetails = () => {\n const fields = [];\n emailRecipientFields.map((contact) => {\n return fields.push(\n
    \n \n {\n setChangeEmailRecipientData({\n ...changeEmailRecipientData,\n current_info: {\n id: modalConfig?.item?.id,\n ...changeEmailRecipientData?.current_info,\n [event?.target?.name]: event?.target?.value,\n },\n });\n }}\n />\n \n
    ,\n );\n });\n return fields;\n };\n\n const displayAddNewContactForm = () => {\n const fields = [];\n fields.push(\n
    \n
    \n <>\n {emailRegex.test(\n changeEmailRecipientData?.current_info?.recipient_email,\n ) ? (\n {\n if (\n Object.keys(changeEmailRecipientData?.current_info)?.length\n ) {\n if (\n Object.keys(\n uniqueRecipients?.filter(\n (recipient) =>\n recipient?.recipient_email ===\n changeEmailRecipientData?.current_info\n ?.recipient_email,\n ),\n ).length === 0\n ) {\n uniqueRecipients.push(\n changeEmailRecipientData?.current_info,\n );\n setUniqueRecipients(uniqueRecipients);\n }\n }\n\n setFlagsForModal({\n ...flagsForModal,\n addNewContactFlag: false,\n });\n }}\n />\n ) : null}\n {\n setFlagsForModal({\n ...flagsForModal,\n addNewContactFlag: false,\n });\n\n setChangeEmailRecipientData({\n ...changeEmailRecipientData,\n current_info: {},\n });\n }}\n />\n\n
    \n
    \n {' '}\n \n
    \n
    \n
    {returnRecipientDetails()}
    \n
    \n
    \n \n
    \n
    ,\n );\n return fields;\n };\n\n const handleEmailRecipientRadioBtn = (event) => {\n setFlagsForModal({\n ...flagsForModal,\n succeeding_email: event?.target?.value,\n });\n if (\n event?.target?.value === 'no' &&\n Object.keys(changeEmailRecipientData?.next_all_info)?.length === 0\n ) {\n setChangeEmailRecipientData({\n ...changeEmailRecipientData,\n next_all_info: {\n recipient_first_name: modalConfig?.item?.recipient_first_name,\n recipient_last_name: modalConfig?.item?.recipient_last_name,\n recipient_email: modalConfig?.item?.recipient_email,\n },\n });\n }\n if (event?.target?.value === 'yes') {\n setChangeEmailRecipientData({\n ...changeEmailRecipientData,\n next_all_info: {\n ...changeEmailRecipientData?.current_info,\n },\n });\n }\n };\n\n const displayContact = () => {\n return uniqueRecipients.map((info) => {\n return (\n \n \n {info.recipient_first_name} {info && info.recipient_last_name}\n
    \n {\n const obj =\n info?.recipient_email !==\n changeEmailRecipientData?.next_all_info?.recipient_email\n ? changeEmailRecipientData?.next_all_info\n : {};\n setChangeEmailRecipientData({\n ...changeEmailRecipientData,\n current_info: { ...info, id: modalConfig?.item?.id },\n next_all_info: { ...obj },\n });\n }}\n />\n \n \n\n
    \n
    \n \n \"email\"\n {info && info.recipient_email}\n \n
    \n
    \n
    \n \n );\n });\n };\n\n const clearAllFilters = (item = modalConfig?.item) => {\n if (uniqueRecipients?.length === 1) {\n setChangeEmailRecipientData({\n ...changeEmailRecipientData,\n current_info: { ...uniqueRecipients[0], id: item?.id },\n });\n } else {\n setChangeEmailRecipientData({\n current_info: {},\n next_all_info: {},\n });\n }\n setFlagsForModal({});\n };\n\n const checkConditionForEmailChangeConfirmBtn = () => {\n if (\n changeEmailRecipientData?.current_info?.recipient_first_name &&\n changeEmailRecipientData?.current_info?.recipient_last_name &&\n changeEmailRecipientData?.current_info?.recipient_email &&\n !changeEmailRecipientData?.current_info?.recipient_email?.includes(\n '@buyboxexperts.com',\n ) &&\n emailRegex.test(\n changeEmailRecipientData?.current_info?.recipient_email,\n ) &&\n ((flagsForModal?.succeeding_email === 'no' &&\n Object.keys(changeEmailRecipientData?.next_all_info)?.length) ||\n flagsForModal?.succeeding_email === 'yes' ||\n surveyData?.[surveyData?.length - 1]?.id === modalConfig?.item?.id ||\n uniqueRecipients?.length === 1)\n ) {\n return false;\n }\n return true;\n };\n\n const renderEditRecipientModal = () => {\n return (\n \n {\n setModalConfig({\n modalFor: 'editRecipient',\n show: false,\n });\n clearAllFilters();\n }}\n role=\"presentation\"\n />\n \n
    \n

    Change Email Recipient

    \n
    \n {flagsForModal?.addNewContactFlag ? null : (\n
    {displayContact()}
    \n )}\n
    \n
    \n {flagsForModal?.addNewContactFlag ? null : (\n {\n setFlagsForModal({\n ...flagsForModal,\n addNewContactFlag: true,\n });\n setChangeEmailRecipientData({\n ...changeEmailRecipientData,\n current_info: {},\n });\n }}\n >\n \n Add New Recipent\n \n )}\n {flagsForModal?.addNewContactFlag\n ? displayAddNewContactForm()\n : null}\n
    \n
    \n
    \n {surveyData?.[surveyData?.length - 1]?.id ===\n modalConfig?.item?.id ? (\n \n ) : uniqueRecipients?.length === 1 ? null : (\n
    \n Will this recipient continue to receive succeeding survey?\n
    \n
      \n {emailRecipientOption?.map((item) => {\n return (\n
    • \n \n \n {item.label}\n \n handleEmailRecipientRadioBtn(event)\n }\n checked={\n flagsForModal?.succeeding_email ===\n item?.value\n }\n />\n \n \n \n
    • \n );\n })}\n
    \n {flagsForModal?.succeeding_email === 'no' &&\n uniqueRecipients?.length ? (\n
    \n List of Email Recipient\n
      \n {uniqueRecipients\n ?.filter(\n (recipient) =>\n recipient?.recipient_email !==\n changeEmailRecipientData?.current_info\n ?.recipient_email,\n )\n ?.map((recipientData) => {\n return (\n \n \n \n
      \n {recipientData.recipient_first_name}{' '}\n {recipientData?.recipient_last_name}\n
      \n {recipientData?.recipient_email}\n \n setChangeEmailRecipientData({\n ...changeEmailRecipientData,\n next_all_info: {\n ...recipientData,\n },\n })\n }\n checked={\n changeEmailRecipientData\n ?.next_all_info\n ?.recipient_email ===\n recipientData?.recipient_email\n }\n />\n \n \n
      \n \n );\n })}\n
    \n
    \n ) : null}\n
    \n
    \n )}\n
    \n
    \n
    \n updateRecipient()}\n disabled={checkConditionForEmailChangeConfirmBtn()}\n >\n {isLoading?.loader && isLoading?.type === 'button' ? (\n \n ) : (\n 'Confirm'\n )}\n \n
    \n
    \n
    \n \n );\n };\n\n // handle child bp filter events\n const handleChildBPFilterEvents = (event) => {\n if (event?.value !== selectedCustomerId) {\n setSelectedCustomerId(event?.value);\n }\n };\n\n // get single select dropdown components\n const getSingleSelectComponents = () => {\n return {\n DropdownIndicator,\n };\n };\n\n // display child bp filter\n const displayChildBPFilter = () => {\n return (\n op?.value === selectedCustomerId,\n )}\n onChangeHandler={handleChildBPFilterEvents}\n dropdownComponents={getSingleSelectComponents}\n // isApiCall={isApiCall}\n isSearchable={false}\n />\n );\n };\n\n const isSendReminderBtnEnabled = (item, itemIndex) => {\n const myDate = new Date(item?.sent_on);\n const newDate = new Date(myDate.setDate(myDate.getDate() + 10));\n\n // logic to keep send reminder btn enable\n if (\n item?.status === 'sent' &&\n newDate <= new Date() &&\n isAllowToEditOrSkipSurvey\n ) {\n if (\n surveyData?.[itemIndex + 1]?.status === 'sent' ||\n surveyData?.[itemIndex + 1]?.status === 'answered'\n ) {\n return false;\n }\n return true;\n }\n return false;\n };\n\n const displayTableContent = (tableData, tableType) => {\n return (\n \n {tableData?.map((item, index) => (\n {\n if (item?.status !== 'sent') {\n setShowDetailedFeedback(true);\n setSelectedFeedbackForm(item);\n }\n }}\n >\n <>\n {item.survey_name}\n \n \n \n {item.sent_on || 'N/A'}\n {item.completed_on || 'N/A'}\n \n
    \n \n {' '}\n {item?.recipient_first_name} {item?.recipient_last_name}\n \n {item?.status === 'drafted' && isAllowToEditOrSkipSurvey ? (\n {\n event.stopPropagation();\n setModalConfig({\n modalFor: 'editRecipient',\n show: true,\n item,\n });\n\n clearAllFilters(item);\n }}\n >\n \"\"\n \n ) : null}\n
    \n {item?.recipient_email}\n \n {tableType === 'bpSurveyTable' && isAllowToEditOrSkipSurvey ? (\n \n {\n event.stopPropagation();\n setModalConfig({\n modalFor: 'skip',\n show: true,\n item,\n });\n }}\n style={{ maxWidth: '130px' }}\n >\n Skip Survey\n \n {\n event.stopPropagation();\n setModalConfig({\n modalFor: 'sendReminder',\n show: true,\n item,\n });\n }}\n style={{ maxWidth: '130px' }}\n >\n Send Reminder\n \n \n ) : null}\n \n \n ))}\n \n );\n };\n\n const displayTable = (tableData, tableType) => {\n return tableData?.length !== 0 ? (\n
    \n \n \n \n \n {tableType === 'bpSurveyTable'\n ? 'BP Feedback Survey'\n : 'Onboarding Survey'}\n \n Status\n Survey scheduled on\n Survey answered on\n Recipent Email\n {tableType === 'bpSurveyTable' && isAllowToEditOrSkipSurvey ? (\n \n Action Required\n \n ) : null}\n \n \n\n {displayTableContent(tableData, tableType)}\n \n
    \n ) : null;\n };\n\n return (\n <>\n
    \n {childBPList?.length && customerType === 'parent' ? (\n \n \n
    \n
    \n
    View data for:
    {' '}\n
    \n
    \n
    \n {displayChildBPFilter()}\n
    \n
    \n
    \n
    \n ) : null}\n \n <>\n

    Partner Feedback

    \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n
    \n {displayTable(onboadingsurveyData, 'onboardingSurveyTable')}\n
    \n
    {displayTable(surveyData, 'bpSurveyTable')}
    \n {!onboadingsurveyData?.length && !surveyData?.length ? (\n \n ) : null}\n setPageNumber(currentPage)}\n />\n {renderSkipModal()}\n {renderSendReminderModal()}\n {renderEditRecipientModal()}\n \n )}\n \n
    \n
    \n\n {/* customer feedback detailed view modal */}\n \n \n
    \n
    \n {selectedFeedbackForm?.survey_name}\n
    \n
    \n setShowDetailedFeedback(false)}\n className=\"float-right cursor py-3\"\n />\n
    \n
    \n
    \n {Object.keys(selectedFeedbackForm).includes('feedback') &&\n Object.keys(selectedFeedbackForm).includes('ratings')\n ? 'Survey is collected from BP during the Next account setup process to receive feedback on the process and identify areas for improvements.'\n : 'Survey is collected from BP after four weeks from activating their account. Survey results are used to determine areas for improvement in the sales and onboarding processes. '}\n
    \n
    \n\n \n \n \n \n );\n}\n\nCustomerFeedbackList.defaultProps = {\n customerType: 'standalone',\n childBPList: [],\n memberData: [],\n};\n\nCustomerFeedbackList.propTypes = {\n id: string.isRequired,\n customerType: string,\n childBPList: arrayOf(shape({})),\n memberData: arrayOf(shape({})),\n};\n","// React imports\nimport React from 'react';\n\n// Third party imports\nimport styled from 'styled-components';\nimport Modal from 'react-modal';\nimport dayjs from 'dayjs';\nimport { func, string, shape, bool, arrayOf } from 'prop-types';\n\n// Local imports\nimport Theme from '../../../../theme/Theme';\nimport { PATH_AGREEMENT } from '../../../../constants';\nimport { HeaderDownloadFuntionality, Table } from '../../../../common';\nimport {\n CloseIcon,\n ExternalLink,\n OrangeDownloadPdf,\n} from '../../../../theme/images';\n\nexport default function PastAgreement({\n showPastAgreements,\n setShowPastAgreements,\n agreements,\n id,\n}) {\n const customNotesStyles = {\n content: {\n top: '50%',\n right: '0px',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n maxHeight: '100%',\n overlay: ' {zIndex: 1000}',\n inset: '0% 0% 0% auto',\n marginRight: '0',\n borderRadius: '0px !important',\n },\n };\n return (\n \n \n \n
    \n
    \n
    \n {' '}\n
    Past Agreements
    \n
    \n
    \n
      \n
    • \n \n
    • \n
    • \n setShowPastAgreements(false)}\n role=\"presentation\"\n />\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n {agreements && agreements.length === 0 ? (\n
    No Past Agreement found.
    \n ) : (\n \n \n \n \n \n \n \n \n {agreements?.map((item) => (\n \n \n window.open(\n PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n item.id,\n ),\n '_blank',\n )\n }\n role=\"presentation\"\n >\n {item?.contract_type?.toLowerCase()?.includes('notice')\n ? 'Recurring (90 day notice) Service Agreement'\n : item?.contract_type?.toLowerCase()?.includes('dsp')\n ? 'DSP Service Agreement'\n : 'Recurring Service Agreement'}{' '}\n \n \n \n \n ))}\n \n
    \n Agreement Type\n \n Date Expired\n
    \n {item.end_date\n ? dayjs(item.end_date).format('DD/MM/YYYY')\n : ''}\n\n \n \n \n
    \n )}\n
    \n
    \n \n );\n}\n\nPastAgreement.propTypes = {\n showPastAgreements: bool.isRequired,\n setShowPastAgreements: func.isRequired,\n agreements: arrayOf(shape({})).isRequired,\n id: string.isRequired,\n};\n\nconst NotesSideBar = styled.div`\n top: 0;\n background: #ffff;\n height: 100%;\n .footer-sticky {\n position: fixed;\n bottom: 0;\n max-width: 600px;\n width: 100%;\n background: white;\n }\n .notes-pin-unpin {\n position: relative;\n\n .pin-icon {\n background: #0062ff;\n padding: 2px;\n border-radius: 50%;\n width: 19px;\n position: absolute;\n top: 27px;\n left: 25px;\n transform: rotate(-46deg);\n }\n }\n .chat-info-icon {\n position: absolute;\n right: 47px;\n }\n .dropdown-select-all-notes {\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray2};\n border-radius: 20px;\n width: 230px;\n height: 40px;\n color: ${Theme.black};\n padding: 11px 2px 0 14px;\n }\n .dropdown-notes-filter {\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n max-width: 230px;\n padding: 15px;\n position: absolute;\n z-index: 99999;\n top: 45px;\n width: 100%;\n\n &.hide {\n display: none;\n }\n &.show {\n display: block;\n }\n .notes-option {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n padding-bottom: 14px;\n\n &.checkbox-option {\n padding-bottom: 4px;\n }\n\n &.teams-title {\n color: ${Theme.gray40};\n text-transform: uppercase;\n font-size: 11px;\n padding: 5px 0 15px 0;\n font-family: ${Theme.titleFontFamily};\n }\n }\n }\n }\n .commemt-inbox-body {\n height: 80vh;\n overflow: scroll;\n padding-bottom: 50px;\n }\n @media only screen and (max-width: 767px) {\n .dropdown-select-all-notes {\n width: 100%;\n max-width: 100%;\n }\n .commemt-inbox-body {\n height: 60vh;\n overflow: scroll;\n }\n }\n`;\n","import React from 'react';\n\n// Third Party Imports\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { Collapse } from 'react-collapse';\nimport { arrayOf, func, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// Local Imports\nimport Theme from '../../../../theme/Theme';\nimport { contractStatusIcons } from '../../../../constants';\nimport { Status, WhiteCard } from '../../../../common';\nimport {\n BrokenFile,\n CaretUp,\n DisabledRecurring,\n DspOnlyIcon,\n RecurringIcon,\n} from '../../../../theme/images';\n\nexport default function AgreementDetailTabMobView({\n agreementDetailsCollapse,\n setAgreementDetailsCollapse,\n multipleAgreement,\n toggleAccountType,\n showActionDropdown,\n generateBasicInfo,\n getPauseHTML,\n generateCardHTML,\n generateDSPAdvHTML,\n displayMarketplaces,\n displayOptimization,\n displayStdServices,\n displayMonthlyServices,\n displayNonUSServices,\n OptimizationArray,\n checkTheCount,\n displayOneTimeServices,\n displayAddendumStatus,\n accountType,\n handleOnAgreementStatusClick,\n getAgreementName,\n displayContactSignLinkValidity,\n displayContractExpiryCountdown,\n}) {\n return (\n <>\n {multipleAgreement?.map((agreement) => {\n const contractType = agreement?.contract_type?.toLowerCase();\n const marketplaceArray = contractType.includes('dsp')\n ? agreement?.dsp_marketplaces\n : agreement?.additional_marketplaces;\n return (\n <>\n \n
    \n
    \n {' '}\n

    \n {' '}\n {contractType?.includes('90')\n ? 'Recurring (90 day notice) Service Agreement'\n : contractType?.includes('dsp')\n ? 'DSP Service Agreement'\n : 'Recurring Service Agreement'}\n {displayContactSignLinkValidity(agreement)}\n {/* PDV-8634 condition to display icon only for collection and out of contract. */}\n {agreement?.in_collections ? (\n \n ) : null}\n {agreement?.out_of_contract ? (\n \n ) : null}\n

    \n \n \n
    \n \n handleOnAgreementStatusClick(agreement)\n }\n />\n {displayContractExpiryCountdown(agreement)}\n
    \n
    \n
    \n {contractType?.includes('recurring') &&\n agreement?.seller_type?.label === 'Hybrid' ? (\n <>{toggleAccountType(agreement.id)}\n ) : null}\n
    \n
    \n {' '}\n {showActionDropdown(agreement)}\n
    \n
    {' '}\n
      \n {generateBasicInfo('Duration', agreement?.length?.label)}\n {agreement?.contract_status?.value !== 'pause' ? (\n <>\n {generateBasicInfo(\n 'Original Start',\n dayjs(agreement?.start_date).format('MMM DD, YYYY'),\n )}\n {agreement?.is_renewed &&\n agreement?.contract_status.value === 'renewed' ? (\n <>\n {generateBasicInfo(\n 'Last Renewed',\n dayjs(agreement?.renewed_date).format('MMM DD, YYYY'),\n )}\n \n ) : null}\n {generateBasicInfo(\n 'Expires',\n dayjs(agreement?.end_date).format('MMM DD, YYYY'),\n )}\n \n ) : (\n <>{getPauseHTML(agreement && agreement.pause_contract)}\n )}\n {contractType?.includes('recurring') &&\n agreement?.seller_type?.label !== 'Hybrid' ? (\n
    • \n
      Agreement Type
      \n
      \n {agreement?.seller_type?.label}\n
      \n
    • \n ) : null}\n
    \n
    \n
      \n {(contractType.includes('recurring') &&\n agreement?.fee_structure &&\n Object.keys(agreement?.fee_structure)?.length &&\n !agreement?.fee_structure?.fee_type) ||\n contractType.includes('dsp') ? (\n <>\n {agreement?.fee_structure?.[accountType[agreement.id]]\n ?.fee_type ? (\n
      \n ) : null}\n {generateCardHTML(agreement, contractType)}\n \n ) : null}\n
    \n
    \n {/*
    */}\n {agreement?.additional_monthly_services?.find(\n (op) => op?.service?.name === 'DSP Advertising',\n ) ? (\n <>\n
    \n
    \n
      \n {generateDSPAdvHTML(agreement)}\n
    \n
    \n \n ) : null}\n {agreement?.contract_addendum?.length ||\n (contractType?.includes('dsp') &&\n agreement?.dsp_marketplaces &&\n Object.keys(agreement?.dsp_marketplaces)?.length) ||\n (contractType?.includes('recurring') &&\n agreement?.additional_marketplaces &&\n Object.keys(agreement?.additional_marketplaces)?.length) ||\n agreement?.primary_marketplace?.name ? (\n
    \n ) : null}\n
    \n {displayMarketplaces(\n marketplaceArray,\n agreement,\n contractType,\n contractType?.includes('dsp')\n ? 'DSP Marketplace(s)'\n : 'Marketplace(s)',\n )}\n\n {agreement?.contract_addendum?.length ? (\n <>{displayAddendumStatus(agreement?.contract_addendum)}\n ) : null}\n
    \n {contractType?.includes('recurring') ? (\n \n {displayOptimization(\n 'Optimizations / Month',\n agreement,\n OptimizationArray,\n )}\n {displayStdServices(\n 'Standard Services',\n agreement?.standard_us_services,\n agreement?.standard_non_us_services?.filter(\n (op) =>\n op.name !== 'VAT Registration' &&\n op.name !== 'VAT Filing',\n ),\n agreement?.id,\n )}\n {displayMonthlyServices(\n 'Additional Monthly Services',\n agreement?.additional_monthly_services,\n agreement?.id,\n )}\n {displayOneTimeServices(\n 'One Time Services',\n agreement?.additional_one_time_services,\n agreement?.id,\n )}\n {displayNonUSServices(\n 'VAT Registration',\n agreement?.standard_non_us_services?.filter(\n (op) => op.name === 'VAT Registration',\n ),\n agreement?.id,\n )}\n {displayNonUSServices(\n 'VAT Filing',\n agreement?.standard_non_us_services?.filter(\n (op) => op.name === 'VAT Filing',\n ),\n agreement?.id,\n )}\n \n ) : null}\n \n {contractType?.includes('recurring') &&\n checkTheCount(agreement.id) > 0 ? (\n \n setAgreementDetailsCollapse({\n [agreement.id]: !agreementDetailsCollapse[agreement.id],\n })\n }\n role=\"presentation\"\n >\n {!agreementDetailsCollapse[agreement.id]\n ? `Expand Agreement`\n : 'Collapse Agreement'}\n {' '}\n
    \n ) : null}\n \n );\n })}\n \n );\n}\n\nAgreementDetailTabMobView.defaultProps = {\n agreementDetailsCollapse: {},\n setAgreementDetailsCollapse: () => {},\n multipleAgreement: {},\n toggleAccountType: () => {},\n showActionDropdown: () => {},\n generateBasicInfo: () => {},\n getPauseHTML: () => {},\n generateCardHTML: () => {},\n generateDSPAdvHTML: () => {},\n displayMarketplaces: () => {},\n displayOptimization: () => {},\n displayStdServices: () => {},\n displayMonthlyServices: () => {},\n displayNonUSServices: () => {},\n OptimizationArray: [],\n checkTheCount: () => {},\n displayOneTimeServices: () => {},\n displayAddendumStatus: () => {},\n accountType: '',\n handleOnAgreementStatusClick: () => {},\n getAgreementName: () => {},\n displayContactSignLinkValidity: () => {},\n displayContractExpiryCountdown: () => {},\n};\n\nAgreementDetailTabMobView.propTypes = {\n agreementDetailsCollapse: shape({}),\n setAgreementDetailsCollapse: func,\n multipleAgreement: shape({}),\n toggleAccountType: func,\n showActionDropdown: func,\n generateBasicInfo: func,\n getPauseHTML: func,\n generateCardHTML: func,\n generateDSPAdvHTML: func,\n displayMarketplaces: func,\n displayOptimization: func,\n displayStdServices: func,\n displayMonthlyServices: func,\n displayNonUSServices: func,\n OptimizationArray: arrayOf(shape({})),\n checkTheCount: func,\n displayOneTimeServices: func,\n displayAddendumStatus: func,\n accountType: string,\n handleOnAgreementStatusClick: func,\n getAgreementName: func,\n displayContactSignLinkValidity: func,\n displayContractExpiryCountdown: func,\n};\n","import styled from 'styled-components';\n\nimport Theme from '../../../../theme/Theme';\n\nconst AgreementDetailOuterContainer = styled.div`\n .agreement-type {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: inline-table;\n margin-right: 20px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:first-child {\n border-right: 1px solid ${Theme.gray3};\n }\n\n &.other-details {\n margin-top: 5px;\n }\n }\n\n @media only screen and (max-width: 991px) {\n li {\n margin-right: 50px;\n\n &:first-child {\n border-right: none;\n }\n }\n }\n }\n\n .in-collcetion {\n list-style-type: none;\n padding: 10px;\n\n li {\n display: flow-root;\n }\n }\n\n .metrics-card {\n .metrics-columns {\n padding: 0;\n margin: 0;\n list-style-type: none;\n display: flex;\n flex-wrap: wrap;\n\n li {\n width: 100%;\n display: inline-block;\n max-width: 20%;\n flex: 0 0 20%;\n position: relative;\n padding-right: 5px;\n padding-left: 5px;\n\n .breakdown-label {\n color: ${Theme.orange};\n font-size: ${Theme.extraSmall};\n cursor: pointer;\n }\n\n .metrics-right-label {\n position: absolute;\n top: 0;\n right: 16px;\n word-break: break-all;\n }\n }\n @media only screen and (max-width: 991px) {\n li {\n max-width: 33.33%;\n flex: 0 0 33.33%;\n margin-bottom: 0;\n }\n }\n @media only screen and (max-width: 767px) {\n li {\n max-width: 100%;\n flex: 0 0 100%;\n }\n }\n }\n }\n .collapse-in-out {\n border-radius: 20px;\n border: 1px solid ${Theme.gray11};\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n font-family: ${Theme.baseMediumFontFamily};\n background: ${Theme.white};\n width: fit-content;\n padding: 5px 10px 3px 12px;\n text-align: center;\n position: absolute;\n margin: -18px auto;\n right: 0;\n left: 0;\n cursor: pointer;\n }\n .copy-text img {\n vertical-align: middle;\n width: 16px;\n }\n .orange-clock-icon {\n width: 12px;\n margin-right: 5px;\n }\n .orange-label-icon {\n border-radius: 5px;\n width: fit-content;\n min-width: 70px;\n padding: 5px 10px;\n font-weight: 500;\n font-size: ${Theme.extraNormal};\n background-color: ${Theme.lighterOrange};\n }\n .right-side-content {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n .toggle-dropdown {\n display: inline-table;\n margin-right: 20px;\n width: 38%;\n vertical-align: top;\n &:last-child {\n margin-right: 0;\n }\n\n &.w-50 {\n width: 70%;\n }\n\n &.w-70 {\n width: 55%;\n text-align: -webkit-right;\n }\n }\n @media only screen and (max-width: 1200px) and (min-width: 1042px) {\n .toggle-dropdown {\n .days-tab {\n li.account-type {\n padding: 9px 5px;\n }\n }\n &.w-70 {\n width: 58% !important;\n margin-right: 10px;\n }\n }\n }\n @media only screen and (max-width: 1630px) {\n .toggle-dropdown {\n &.w-70 {\n width: 46%;\n text-align: -webkit-right;\n }\n }\n }\n @media only screen and (max-width: 991px) {\n .toggle-dropdown {\n width: 100%;\n &:last-child {\n margin-right: 0;\n }\n &.w-50 {\n width: 100%;\n }\n\n &.w-70 {\n width: 100%;\n text-align: -webkit-right;\n }\n }\n }\n }\n`;\n\nexport default AgreementDetailOuterContainer;\n","export default function ShowCurrencySymbol(currency) {\n if (currency === 'EUR') return '€';\n if (currency === 'GBP') return '£';\n return '$';\n}\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { func, shape } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../../theme/Theme';\nimport useFormatNumber from '../../../../hooks/useFormatNumber';\nimport { getCancellationBillingData } from '../../../../api';\nimport {\n invoiceTooltipMessages,\n pausingRequestInvoiceDetails,\n pausingRequestInvoiceTypes,\n pendingAgreementInvoiceDetails,\n} from '../../../../constants';\nimport {\n AllocateBar,\n HeaderDownloadFuntionality,\n ModalBox,\n PageLoader,\n} from '../../../../common';\nimport { InfoIcons } from '../../../../theme/images';\n\nexport default function PendingAgreementModal({\n setShowModal,\n selectedAgreement,\n}) {\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [invoiceDetails, setInvoiceDetails] = useState({});\n const isCancellationRquest = [\n 'pending for cancellation',\n 'pending cancellation approval',\n 'cancel',\n ].includes(selectedAgreement?.contractStatus);\n\n const invoiceTypeLabel = {\n 'rev share': 'Last Rev Share Date:',\n retainer: 'Last Retainer Date:',\n 'dsp service': 'Last DSP Date:',\n 'amc service': 'Last AMC Date:',\n };\n\n const cancellationBillingData = useCallback(() => {\n if (selectedAgreement?.id) {\n getCancellationBillingData(selectedAgreement?.id).then((res) => {\n if (res?.status === 200) {\n setInvoiceDetails(res?.data);\n // PDV-8928 - point no. 5 - show Is ending early - YES/NO by default\n // if (!res?.data?.is_off_boarded) {\n // const checkEarly = pendingAgreementInvoiceDetails.filter(\n // (op) =>\n // op.key === 'ending_early_label' || op.key === 'is_ending_early',\n // );\n // if (checkEarly.length) {\n // pendingAgreementInvoiceDetails.pop();\n // pendingAgreementInvoiceDetails.pop();\n // }\n // }\n if (res?.data?.is_off_boarded) {\n const checkServiceDate = pendingAgreementInvoiceDetails.filter(\n (op) => op.key === 'last_service_date',\n );\n if (checkServiceDate?.length === 0) {\n pendingAgreementInvoiceDetails.push(\n {\n key: 'last_date_label',\n property: 'col-6 mb-2',\n subProperty: 'normal-text-black text-bold',\n label: 'Last Service Date:',\n },\n {\n key: 'last_service_date',\n property: 'col-6 mb-2 text-right',\n subProperty: 'normal-text-black text-bold out-door',\n type: 'date',\n },\n );\n }\n } else {\n const checkServiceDate = pendingAgreementInvoiceDetails.filter(\n (op) =>\n op?.key === 'last_service_date' ||\n op?.key === 'last_date_label',\n );\n if (checkServiceDate?.length > 0) {\n pendingAgreementInvoiceDetails.pop();\n pendingAgreementInvoiceDetails.pop();\n }\n }\n }\n setIsLoading({ loader: false, type: 'page' });\n });\n }\n }, [selectedAgreement.id]);\n\n useEffect(() => {\n cancellationBillingData();\n }, [cancellationBillingData]);\n\n // get tooltip DataTip\n const getTooltipDataTip = (tooltipMessage) => {\n return `
    ${tooltipMessage}
    `;\n };\n\n // display react tooltip with info icon\n const displayTooltipWithInfoIcon = (dataTip, tooltipId, place) => {\n return (\n <>\n \n \n \n );\n };\n\n const renderCancellationRequestModal = (formatNumber) => {\n return (\n <>\n \n setShowModal(false)}\n />\n
    \n
    \n
    \n
    Cancellation Request
    \n \n {selectedAgreement?.type} Agreement\n \n
    \n {invoiceDetails?.is_off_boarded ? (\n
    \n
    \n \n This was the only ACTIVE agreement left for this Brand\n Partner. Hence it will automatically offboard the Brand\n Partner.\n \n
    \n ) : null}\n
    \n
    \n
    \n \n
    \n
    \n {pendingAgreementInvoiceDetails.map((item) => (\n
    \n
    \n {item?.type === 'date'\n ? invoiceDetails?.[item?.key]\n ? dayjs(invoiceDetails?.[item?.key]).format(\n 'MM/DD/YYYY',\n )\n : dayjs(selectedAgreement?.endDate).format('MM/DD/YYYY')\n : item?.key === 'requestor'\n ? `${invoiceDetails?.[item?.key]?.[0]} ${\n invoiceDetails?.[item?.key]?.[1]\n }`\n : invoiceDetails?.[item?.key] === true\n ? 'Yes'\n : invoiceDetails?.[item?.key] === false\n ? 'No'\n : invoiceDetails?.[item?.key] || item?.label || '-'}\n
    \n
    \n ))}\n\n {invoiceDetails?.cancelling_note ? (\n \n
    \n {invoiceDetails?.cancelling_note}\n
    \n
    \n ) : null}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    BILLING DATES
    \n
    \n {invoiceDetails?.invoice_type?.map((item) => {\n return (\n \n
    \n
    \n {invoiceTypeLabel?.[item?.invoice_type] || ''}\n
    \n
    \n
    \n
    \n {item?.end_date\n ? dayjs(item?.end_date).format('MM/DD/YYYY')\n : '-'}\n
    \n
    \n
    \n );\n })}\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    BILLING AMOUNTS
    \n
    \n {invoiceDetails?.invoice_type?.map((item) => {\n return (\n \n
    \n
    \n {item?.invoice_type === 'rev share'\n ? 'Rev Share:'\n : item?.invoice_type === 'retainer'\n ? 'Retainer:'\n : item?.invoice_type === 'dsp service'\n ? 'DSP:'\n : item?.invoice_type === 'amc service'\n ? 'AMC:'\n : ''}\n
    \n
    \n
    \n
    \n {item?.invoice_type === 'rev share'\n ? 'Dependent on Sales'\n : item?.invoice_amount\n ? formatNumber(item?.invoice_amount, item?.currency)\n : '-'}\n
    \n
    \n
    \n );\n })}\n
    \n
    \n
    \n
    \n \n );\n };\n\n const renderPauseRequestModal = (formatNumber) => {\n return (\n <>\n \n setShowModal(false)}\n />\n
    \n
    \n
    \n
    Pausing Request
    \n \n {selectedAgreement?.type} Agreement\n \n
    \n
    \n
    \n
    \n {/* render Requestor, request date and invoice type */}\n \n \n
    \n
    \n {pausingRequestInvoiceDetails.map((item) => (\n
    \n
    \n {item?.type === 'date'\n ? invoiceDetails?.[item?.key]\n ? dayjs(invoiceDetails?.[item?.key]).format(\n 'MM/DD/YYYY',\n )\n : dayjs(selectedAgreement?.endDate).format(\n 'MM/DD/YYYY',\n )\n : item?.key === 'requestor'\n ? `${invoiceDetails?.[item?.key]?.[0]} ${\n invoiceDetails?.[item?.key]?.[1]\n }`\n : invoiceDetails?.[item?.key] || item?.label || '-'}\n
    \n
    \n ))}\n
    \n\n {/* render invoice type */}\n
    \n
    \n
    Invoice Types
    \n
    \n {pausingRequestInvoiceTypes?.map((item) => {\n const invoiceTypeData = invoiceDetails?.invoice_type.filter(\n (ele) => ele?.invoice_type === item?.dbKey,\n );\n\n if (invoiceTypeData?.length)\n return (\n \n
    \n
    \n {`${item?.label} Paused? (Y/N):`}\n {/* https://bbe.atlassian.net/browse/PDV-9438 */}\n {invoiceTypeData[0]?.invoice_type === 'dsp service'\n ? displayTooltipWithInfoIcon(\n invoiceTooltipMessages?.dspStandardInfo,\n 'dspServiceInfo',\n 'top',\n )\n : null}\n
    \n
    \n
    \n
    \n {invoiceTypeData[0]?.is_pause ? 'Yes' : 'No'}\n
    \n
    \n
    \n );\n return null;\n })}\n
    \n
    \n
    \n \n\n {/* render last invoice and first invoice details */}\n
    \n \n
    \n {/* render last invoice details */}\n
    \n
    \n
    \n LAST INVOICE BEFORE PAUSING PERIOD\n
    \n
    \n {pausingRequestInvoiceTypes?.map((item) => {\n const lastInvoiceData = invoiceDetails?.invoice_type.filter(\n (ele) => ele?.invoice_type === item?.dbKey,\n );\n\n if (lastInvoiceData?.length)\n return (\n \n
    \n
    \n {`${item?.label}:`}\n
    \n
    \n
    \n
    \n {lastInvoiceData[0]?.start_date !== null\n ? dayjs(lastInvoiceData[0]?.start_date).format(\n 'MM/DD/YYYY',\n )\n : 'N/A'}\n
    \n
    \n
    \n );\n return null;\n })}\n
    \n\n
    \n\n {/* render first invoice details */}\n
    \n
    \n
    \n FIRST INVOICE AFTER PAUSING PERIOD\n
    \n
    \n {pausingRequestInvoiceTypes?.map((item) => {\n const firstInvoiceData =\n invoiceDetails?.invoice_type.filter(\n (ele) => ele?.invoice_type === item?.dbKey,\n );\n if (firstInvoiceData?.length)\n return (\n \n
    \n
    \n {`${item?.label}:`}\n
    \n
    \n
    \n
    \n {firstInvoiceData[0]?.end_date !== null\n ? dayjs(firstInvoiceData[0]?.end_date).format(\n 'MM/DD/YYYY',\n )\n : 'N/A'}\n
    \n
    \n
    \n );\n return null;\n })}\n
    \n
    \n \n
    \n {/* render billing details */}\n \n \n
    \n
    \n
    \n
    BILLING AMOUNTS
    \n
    \n {pausingRequestInvoiceTypes?.map((item) => {\n const invoiceAmountData =\n invoiceDetails?.invoice_type.filter(\n (ele) => ele?.invoice_type === item?.dbKey,\n );\n if (invoiceAmountData?.length)\n return (\n \n
    \n
    \n {`${item?.label}:`}\n
    \n
    \n
    \n
    \n {invoiceAmountData[0]?.invoice_type ===\n 'rev share'\n ? 'Dependent on Sales'\n : formatNumber(\n invoiceAmountData[0]?.invoice_amount,\n invoiceAmountData[0]?.currency,\n )}\n
    \n
    \n
    \n );\n return null;\n })}\n
    \n
    \n
    \n
    \n
    \n \n );\n };\n return (\n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n {isCancellationRquest\n ? renderCancellationRequestModal(useFormatNumber)\n : renderPauseRequestModal(useFormatNumber)}\n \n )}\n \n );\n}\n\nPendingAgreementModal.defaultProps = {\n selectedAgreement: {},\n setShowModal: () => {},\n};\n\nPendingAgreementModal.propTypes = {\n selectedAgreement: shape({}),\n setShowModal: func,\n};\n\nconst InvoiceBody = styled.div`\n .invoice-details {\n padding: 0 30px;\n }\n\n .out-door {\n color: ${Theme.green};\n }\n .capsule-status {\n border-radius: 12px;\n font-family: ${Theme.baseMediumFontFamily};\n font-size: 10px;\n width: fit-content;\n padding: 3px 8px;\n\n &.small-text {\n font-size: 8px;\n }\n &.service-type {\n background-color: ${Theme.green};\n color: ${Theme.white};\n vertical-align: middle;\n }\n }\n .sub-text {\n color: ${Theme.gray35};\n font-size: ${Theme.extraSmall};\n }\n\n .total-subtotal {\n font-size: ${Theme.title};\n color: ${Theme.black};\n }\n .table-container {\n max-height: 45vh;\n padding-bottom: 70px;\n overflow-x: auto;\n }\n`;\n","/* eslint-disable guard-for-in */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport dayjs from 'dayjs';\nimport Modal from 'react-modal';\nimport Select from 'react-select';\nimport ReactTooltip from 'react-tooltip';\nimport NumberFormat from 'react-number-format';\nimport { useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { Collapse } from 'react-collapse';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport AgreementDetailTabMobView from './AgreementDetailTabMobView';\nimport AgreementDetailOuterContainer from './AgreementDetailsStyled';\nimport ShowCurrencySymbol from '../../../../common/ShowCurrencySymbol';\nimport PendingAgreementModal from '../Modals/PendingAgreementModal';\nimport {\n getMarketplaces,\n getNonUSStandardServicesMarketplaces,\n} from '../../../../api';\nimport {\n agreementDSP,\n agreementRetainer,\n agreementRetainerRevShare,\n agreementRevShare,\n agreementToggleFeeType,\n PATH_AGREEMENT,\n quarterlyRetainerOptions,\n monthlyRetainerOptions,\n agreementDSPAdv,\n contractStatusIcons,\n agreementStatusNames,\n contractOptionsWithPaused,\n OptimizationArray,\n} from '../../../../constants';\nimport {\n CaretUp,\n DisabledRecurring,\n DspOnlyIcon,\n FileContract,\n BrokenFile,\n OrangeInfoIcon,\n RecurringIcon,\n} from '../../../../theme/images';\nimport {\n ActionDropDown,\n Button,\n CardMetrics,\n Status,\n ToggleButton,\n WhiteCard,\n} from '../../../../common';\n\nexport default function AgreementDetails({\n id,\n history,\n userRole,\n IconOption,\n DropdownIndicator,\n multipleAgreement,\n setDropdownOptions,\n draftContractOptions,\n handleContractOptions,\n getPauseHTML,\n isSpreetailUser,\n showContractSignatureLinkIcon,\n displayContactSignLinkValidity,\n displayContractExpiryCountdown,\n displayRemainingDaysOfContractSign,\n}) {\n const customerState = useSelector((state) => state.customerState.data);\n const isDesktop = useMediaQuery({ minWidth: 991 });\n const [agreementDetailsCollapse, setAgreementDetailsCollapse] = useState({});\n const [accountType, setAccountType] = useState({});\n const [showMoreCount, setShowMoreCount] = useState([]);\n const [marketplacesList, setMarketplacesList] = useState([]);\n const [showModal, setShowModal] = useState({\n modal: false,\n type: null,\n id: null,\n });\n const getCurrentMonth = dayjs().get('month');\n const customStyles = {\n content: {\n top: '50%',\n right: '0px',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n maxHeight: '100%',\n overlay: ' {zIndex: 1000}',\n inset: '0% 0% 0% auto',\n marginRight: '0',\n borderRadius: '0px !important',\n },\n };\n\n const displayMarketplacesName = (value, type) => {\n const marketplaceArray =\n type === 'vat' ? marketplacesList?.vat : marketplacesList?.marketplace;\n return marketplaceArray?.find((op) => value === op.value)?.label;\n };\n\n useEffect(() => {\n const fields = [];\n const counter = 0;\n getMarketplaces('amazon').then((res) => {\n setMarketplacesList({ marketplace: res?.data });\n getNonUSStandardServicesMarketplaces().then((market) => {\n setMarketplacesList((prevState) => ({ ...prevState, vat: market }));\n });\n for (const service of multipleAgreement) {\n if (\n service.content_optimization ||\n service.design_optimization ||\n service.photography_optimization ||\n service.copy_listing_translation ||\n service.creative_listing_translation\n ) {\n fields.push({ [service.id]: counter + 1 });\n }\n if (service.standard_us_services?.length > 0) {\n fields.push({ [service.id]: counter + 1 });\n }\n if (service?.additional_marketplaces?.length > 0) {\n fields.push({ [service.id]: counter + 1 });\n }\n if (service?.additional_monthly_services?.length > 0) {\n fields.push({ [service.id]: counter + 1 });\n }\n if (service?.amc_services?.length > 0) {\n fields.push({ [service.id]: counter + 1 });\n }\n if (service?.additional_one_time_services?.length > 0) {\n fields.push({ [service.id]: counter + 1 });\n }\n\n if (\n service?.standard_non_us_services?.length &&\n service?.standard_non_us_services?.find(\n (op) => op.name === 'VAT Filing',\n )\n ) {\n fields.push({ [service.id]: counter + 1 });\n }\n if (\n service?.standard_non_us_services?.length &&\n service?.standard_non_us_services?.find(\n (op) => op.name === 'VAT Registration',\n )\n ) {\n fields.push({ [service.id]: counter + 1 });\n }\n }\n setShowMoreCount(fields);\n });\n }, []);\n\n useEffect(() => {\n for (const item of multipleAgreement) {\n setAccountType((prevState) => ({\n ...prevState,\n [item.id]:\n item?.seller_type?.label === 'Hyrbid'\n ? accountType[item.id]\n : item?.seller_type?.label === 'Hybrid'\n ? 'seller'\n : item?.seller_type?.label?.toLowerCase(),\n }));\n }\n }, [multipleAgreement, setAccountType]);\n\n const generateBasicInfo = (label, value) => {\n return (\n
  • \n
    {label}
    \n
    \n {value === 'Invalid Date' ? '' : value}\n
    \n
  • \n );\n };\n\n const toggleAccountType = (contractId) => {\n return (\n \n
    \n
      \n {agreementToggleFeeType.map((item) => (\n \n setAccountType({\n ...accountType,\n [contractId]: item.key,\n })\n }\n >\n {item.name}\n \n ))}\n
    \n
    \n
    \n );\n };\n const showActionDropdown = (agreement) => {\n return (\n \n localStorage.setItem(\n 'agreementID',\n agreement.id,\n agreement?.contract_addendum?.[0]?.id,\n )\n }\n >\n {userRole === 'Customer' ? (\n
      \n {isDesktop ? (\n <>\n {agreement?.seller_type?.label === 'Hybrid' &&\n agreement?.contract_type?.includes('recurring') ? (\n
    • \n {' '}\n {toggleAccountType(agreement.id)}{' '}\n
    • \n ) : null}\n \n ) : null}\n \n \n \n
    \n ) : (\n <>\n
      \n {isDesktop ? (\n <>\n {agreement?.seller_type?.label === 'Hybrid' &&\n agreement?.contract_type?.includes('recurring') ? (\n
    • \n {' '}\n {toggleAccountType(agreement.id)}{' '}\n
    • \n ) : null}\n \n ) : null}\n\n \n {(userRole !== 'Customer' &&\n agreement?.draft_from &&\n (agreement?.contract_status?.value === 'active' ||\n agreement?.contract_status?.value === 'renewed' ||\n agreement?.contract_status?.value === 'pause' ||\n agreement?.contract_status?.value ===\n 'active pending for pause' ||\n agreement?.contract_status?.value ===\n 'active pending for pause request' ||\n agreement?.contract_status?.value ===\n 'pending cancellation approval' ||\n agreement?.contract_status?.value ===\n 'pending for cancellation')) ||\n (userRole !== 'Customer' &&\n !agreement?.draft_from &&\n agreement?.contract_status?.value !== 'pending contract' &&\n agreement?.contract_status?.value !==\n 'pending contract approval' &&\n agreement?.contract_status?.value !==\n 'pending contract signature') ? (\n \n {' '}\n \n handleContractOptions(\n event,\n agreement.id,\n agreement?.contract_addendum?.[0]?.id,\n )\n }\n components={{\n DropdownIndicator,\n Option: IconOption,\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n value=\"\"\n isSearchable={false}\n />\n \n ) : (\n \n {' '}\n item?.value !== 'edit',\n )\n }\n onChange={(event) =>\n handleContractOptions(event, agreement.id)\n }\n components={{\n DropdownIndicator,\n Option: IconOption,\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n value=\"\"\n />\n \n )}\n \n
    \n \n )}\n
    \n );\n };\n\n const displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n const displayQuarterMonth = (feeDetails, array, currency) => {\n if (feeDetails) {\n const fields = [];\n for (const item of array) {\n fields.push(`\n
    \n
    ${item.label}
    \n
    \n
    \n
    ${ShowCurrencySymbol(currency)}${displayNumber(\n feeDetails[item.key],\n )}\n
    \n
    \n `);\n }\n return fields.length ? fields.toString().replaceAll(' ,', '') : 'No Data';\n }\n return null;\n };\n\n const checkQuarterMonthType = (feeDetails, currency, item) => {\n if (feeDetails?.[item.subType] === 'quarterly') {\n if (item.key === 'monthly_retainer') {\n return `\n ${displayQuarterMonth(\n feeDetails?.quarterly_monthly_retainer,\n quarterlyRetainerOptions,\n currency,\n )}`;\n }\n if (item.key === 'sales_threshold') {\n return `\n ${displayQuarterMonth(\n feeDetails?.quarterly_rev_share,\n quarterlyRetainerOptions,\n currency,\n )}`;\n }\n }\n if (feeDetails?.[item.subType] === 'monthly') {\n if (item.key === 'monthly_retainer') {\n return `\n ${displayQuarterMonth(\n feeDetails?.monthly_monthly_retainer,\n monthlyRetainerOptions,\n currency,\n )}`;\n }\n if (item.key === 'sales_threshold') {\n return `\n ${displayQuarterMonth(\n feeDetails?.monthly_rev_share,\n monthlyRetainerOptions,\n currency,\n )}`;\n }\n }\n return null;\n };\n\n const getQuarterMonthData = (feeDetails, currency, item) => {\n return `\n
    \n
    \n ${checkQuarterMonthType(feeDetails, currency, item)}\n
    \n
    `;\n };\n\n const showDSPMarketplace = (marketplaces) => {\n const dspMarketplaces = [];\n for (const item of marketplaces) {\n dspMarketplaces.push(`\n
    \n
    \n
    ${displayMarketplacesName(item.name)}
    \n
    \n
    \n
    \n `);\n }\n return dspMarketplaces.length\n ? dspMarketplaces.toString().replaceAll(' ,', '')\n : 'No Data';\n };\n\n const displayAdBudget = (agreement, item) => {\n const fields = [];\n fields.push(`\n
    \n
    ${item.label}
    \n
    \n
    \n
    $${displayNumber(agreement?.[item.key])}\n
    \n
    \n `);\n return fields.length ? fields.toString().replaceAll(' ,', '') : 'No Data';\n };\n\n const getAdBudgetData = (agreement) => {\n return `\n
    \n
    \n ${displayAdBudget(agreement, {\n key: 'dsp_fee',\n label: `${dayjs(\n agreement?.dsp_marketplaces?.[0]?.monthly_budget_date,\n ).format('MMMM YY')}`,\n type: 'number-currency',\n prefix: '$',\n })}\n ${displayAdBudget(agreement, {\n key: 'dsp_fee_second',\n label: `${dayjs(\n agreement?.dsp_marketplaces?.[0]?.monthly_budget_second_date,\n ).format('MMMM YY')}`,\n type: 'number-currency',\n prefix: '$',\n })}\n ${displayAdBudget(agreement, {\n key: 'dsp_fee_third',\n label: `${dayjs(\n agreement?.dsp_marketplaces?.[0]?.monthly_budget_third_date,\n ).format('MMMM YY')}`,\n type: 'number-currency',\n prefix: '$',\n })}\n
    \n
    `;\n };\n\n const showDynamicDspMonthlyAdBudget = (agreement) => {\n return (\n <>\n \n \n View Other Ad Budget\n
    \n \n );\n };\n\n const generateDSPAdvHTML = (agreement) => {\n return agreementDSPAdv.map((item) => {\n if (agreement?.[item.key] || agreement?.[item.key]?.label) {\n return (\n
  • \n \n
    \n
    \n
    \n
    {item.label}
    \n
    \n {item.key === 'dsp_marketplaces' ? (\n <>\n {displayMarketplacesName(\n agreement?.[item.key]?.[0]?.name,\n 'dsp',\n )}{' '}\n {agreement?.[item.key]?.length > 1\n ? ` + ${agreement?.[item.key]?.length - 1} More`\n : null}\n <>\n {agreement?.[item.key]?.length > 1 ? (\n <>\n \n \n op.name !==\n agreement?.[item.key]?.[0]?.name,\n ),\n )}\n data-for=\"view-dsp\"\n data-html\n className=\"breakdown-label mt-2\"\n >\n View Marketplace(s)\n
    \n \n ) : null}\n \n \n ) : (\n <>\n {item.type === 'text' ? (\n agreement?.[item?.key]?.label || ''\n ) : agreement?.[item?.key] ? (\n <>\n {ShowCurrencySymbol(agreement?.currency?.value)}\n {displayNumber(agreement?.[item?.key])}\n {item?.key === 'dsp_fee' &&\n agreement?.is_dynamic_dsp_fee\n ? showDynamicDspMonthlyAdBudget(agreement)\n : ''}\n \n ) : (\n ''\n )}\n \n )}\n
    \n
    \n
    \n
  • \n \n \n );\n }\n return null;\n });\n };\n\n const showFirstValue = (feeDetails, currency, item) => {\n if (feeDetails?.[item.subType] === 'quarterly') {\n const qtrRange = quarterlyRetainerOptions.find((op) =>\n op.range.includes(getCurrentMonth),\n )?.key;\n if (item.key === 'monthly_retainer') {\n return `${ShowCurrencySymbol(currency)}${displayNumber(\n feeDetails?.quarterly_monthly_retainer?.[qtrRange],\n )}`;\n }\n if (item.key === 'sales_threshold') {\n return `${ShowCurrencySymbol(currency)}${displayNumber(\n feeDetails?.quarterly_rev_share?.[qtrRange],\n )}`;\n }\n }\n\n if (feeDetails?.[item.subType] === 'monthly') {\n const monthRange = monthlyRetainerOptions.find(\n (op, index) => index === getCurrentMonth,\n )?.key;\n if (item.key === 'monthly_retainer') {\n return `${ShowCurrencySymbol(currency)}${displayNumber(\n feeDetails?.monthly_monthly_retainer?.[monthRange],\n )}`;\n }\n if (item.key === 'sales_threshold') {\n return `${ShowCurrencySymbol(currency)}${displayNumber(\n feeDetails?.monthly_rev_share?.[monthRange],\n )}`;\n }\n }\n return null;\n };\n\n const checkMonthQuarterCondition = (feeDetails, item) => {\n if (feeDetails?.[item.subType] === 'quarterly') {\n if (item.key === 'monthly_retainer') {\n return false;\n }\n if (item.key === 'sales_threshold') {\n return false;\n }\n }\n if (feeDetails?.[item.subType] === 'monthly') {\n if (item.key === 'monthly_retainer') {\n return false;\n }\n if (item.key === 'sales_threshold') {\n return false;\n }\n }\n return true;\n };\n\n const generateCardHTML = (agreement, contractType) => {\n const feeDetails = contractType?.includes('dsp')\n ? agreement\n : agreement?.fee_structure?.[accountType[agreement.id]];\n const feeType =\n agreement?.fee_structure?.[accountType[agreement.id]]?.fee_type;\n\n const cardArray = contractType?.includes('dsp')\n ? agreementDSP\n : feeType === 'Retainer + % Rev Share'\n ? agreementRetainerRevShare\n : feeType === 'Retainer Only'\n ? agreementRetainer\n : feeType === 'Revenue Share Only'\n ? agreementRevShare\n : [\n {\n key: 'fee_type',\n label: 'Fee Type',\n type: 'text',\n },\n ];\n\n return (\n <>\n {cardArray.map((item) => {\n const isCombinedRevShare =\n item.key === 'rev_share' &&\n agreement?.seller_type?.label === 'Hybrid';\n if (\n feeDetails?.[item.key] ||\n feeDetails?.[item.key]?.label ||\n feeDetails?.[item.subType] === 'monthly' ||\n feeDetails?.[item.subType] === 'quarterly'\n ) {\n return (\n
  • \n \n
    \n
    \n
    \n
    {item?.label}
    \n
    \n {checkMonthQuarterCondition(feeDetails, item) ? (\n <>\n {item.type === 'text' ? (\n <>\n {!feeDetails?.[item?.key]?.label\n ? feeDetails?.[item?.key] ===\n 'Retainer + % Rev Share'\n ? 'Retainer + Rev Share'\n : feeDetails?.[item?.key]\n : feeDetails?.[item?.key]?.label}\n \n ) : (\n <>\n \n {item?.key === 'dsp_fee' &&\n agreement?.is_dynamic_dsp_fee\n ? showDynamicDspMonthlyAdBudget(agreement)\n : null}\n \n )}\n {isCombinedRevShare ? (\n <>\n \n \n ${\n agreement?.combined_rev_share\n ? `

    Combining SC/VC Sales

    \n

    Applying Rev Share % and Sales Threshold after combining SC & VC Sales.

    `\n : `

    Separating SC/VC Sales

    \n

    Applying Rev Share % and Sales Threshold separately to each of SC Sales & VC Sales.

    `\n }\n
    `}\n data-for=\"view-combinedRevShare\"\n data-html\n className=\"breakdown-label mt-2\"\n >\n Calculation Method{' '}\n \n
    \n \n ) : null}\n \n ) : null}\n
    \n\n
    \n {item.key === 'sales_threshold' &&\n !feeDetails?.threshold_type\n ? 'None'\n : feeDetails?.[item.subType] === 'monthly'\n ? monthlyRetainerOptions.find(\n (op, index) => index === getCurrentMonth,\n )?.shortForm\n : feeDetails?.[item.subType] === 'quarterly'\n ? quarterlyRetainerOptions.find((op) =>\n op.range.includes(getCurrentMonth),\n )?.shortForm\n : feeDetails?.[item.subType]}\n
    \n
    \n
  • \n {feeDetails?.[item.subType] === 'quarterly' ||\n feeDetails?.[item.subType] === 'monthly' ? (\n <>\n
    \n {showFirstValue(\n feeDetails,\n agreement?.currency?.value,\n item,\n )}\n
    \n \n \n {`View Other ${\n feeDetails?.[item.subType] === 'quarterly'\n ? 'Quarters'\n : 'Months'\n }`}\n
    \n \n ) : null}\n
    \n \n \n );\n }\n return null;\n })}\n \n );\n };\n\n const displayMarketplaces = (\n marketplaceArray,\n agreement,\n contractType,\n name,\n ) => {\n if (\n (contractType?.includes('dsp') &&\n agreement?.dsp_marketplaces &&\n Object.keys(agreement?.dsp_marketplaces)?.length) ||\n (contractType?.includes('recurring') &&\n agreement?.additional_marketplaces &&\n Object.keys(agreement?.additional_marketplaces)?.length) ||\n agreement?.primary_marketplace?.name\n ) {\n return (\n <>\n
    \n
    {name}
    \n
      \n {contractType?.includes('recurring') ? (\n
    • \n {displayMarketplacesName(\n agreement?.primary_marketplace?.name,\n )}{' '}\n (Primary)\n
    • \n ) : null}\n {marketplaceArray?.map((item) => {\n if (contractType?.includes('recurring')) {\n return (\n <>\n {item?.account_type?.toLowerCase() ===\n accountType[agreement.id] ? (\n
    • \n {displayMarketplacesName(item.name) || ''}\n
    • \n ) : null}\n \n );\n }\n return (\n
    • \n {displayMarketplacesName(item.name) || ''}\n
    • \n );\n })}\n
    \n
    \n \n );\n }\n return null;\n };\n\n const displayAddendumStatus = (contractAddendum) => {\n return (\n <>\n
    \n
    Addendum(s)
    \n {contractAddendum?.map((item) => {\n return (\n <>\n \n {item?.addendum_status === 'pending addendum signature' &&\n showContractSignatureLinkIcon &&\n displayRemainingDaysOfContractSign({\n id: item?.id,\n isAddendum: true,\n contract_signature_details: item?.addendum_signature_details\n ? {\n contract_signature_url:\n item?.addendum_signature_details\n ?.addendum_signature_url,\n created_date:\n item?.addendum_signature_details?.created_date,\n expiration_days:\n item?.addendum_signature_details?.expiration_days,\n }\n : null,\n })}\n
    \n \n );\n })}\n
    \n \n );\n };\n\n const displayOptimization = (name, agreement, array) => {\n const checkValueofArray = array.filter((op) => agreement[op.key] > 0);\n if (checkValueofArray?.length > 0) {\n return (\n <>\n
    \n
    \n {checkValueofArray.filter((op) => op.section === 1)?.length ? (\n
    \n
    {name}
    \n
      \n {checkValueofArray\n .filter((op) => op.section === 1)\n ?.map((item) => (\n
    • \n {item.label} - {agreement[item.key]} ASINs\n
    • \n ))}\n
    \n
    \n ) : null}\n {checkValueofArray.filter((op) => op.section === 2)?.length ? (\n
    \n
    Translation/ Month
    \n
      \n {checkValueofArray\n .filter((op) => op.section === 2)\n .map((item) => (\n
    • \n {item.label} - {agreement[item.key]} ASINs\n
    • \n ))}\n
    \n
    \n ) : null}\n
    \n \n );\n }\n return null;\n };\n\n const displayStdServices = (name, array, nonUSService) => {\n if (array?.length > 0 || nonUSService?.length > 0) {\n return (\n <>\n
    \n
    {name}
    \n
      \n {array?.map((item) => (\n
    • \n {item?.name || item?.service?.name}{' '}\n {item?.quantity ? `(${item.quantity})` : null}\n
    • \n ))}\n {nonUSService && nonUSService?.map((item) =>
    • {item?.name}
    • )}\n
    \n \n );\n }\n return null;\n };\n\n const formatAmazonStorefront = (services, channelType) => {\n const storeFrontHome = services?.find(\n (op) =>\n op?.service?.name?.includes(`${channelType} Storefront Home`) &&\n op?.quantity !== 0,\n );\n const storeFrontTab = services?.find(\n (op) =>\n op?.service?.name === `${channelType} Storefront Tab` &&\n op?.quantity !== 0,\n );\n const storeFrontSubTab = services?.find(\n (op) =>\n op?.service?.name?.includes(`${channelType} Storefront Sub`) &&\n op?.quantity !== 0,\n );\n return (\n
  • \n {`${channelType} Storefront (${\n storeFrontHome?.quantity\n ? `${storeFrontHome.quantity} Home Page(s)`\n : '0 Home Page'\n } \n ${\n storeFrontTab?.quantity\n ? ` + ${storeFrontTab.quantity} Tab(s)`\n : '+ 0 Tab'\n } \n ${\n storeFrontSubTab?.quantity\n ? ` + ${storeFrontSubTab?.quantity} Sub Tab(s)`\n : '+ 0 Sub Tab'\n })`}\n
  • \n );\n };\n const formatInforgraphics = (services) => {\n const infoOriginal = services?.find(\n (op) =>\n op?.service?.name?.includes('Infographics Original') &&\n op?.quantity !== 0,\n );\n const infoVariation = services?.find(\n (op) =>\n op?.service?.name === 'Infographics Variation' && op?.quantity !== 0,\n );\n return (\n
  • \n {`Infographics (${\n infoOriginal?.quantity\n ? `${infoOriginal.quantity} Original(s)`\n : '0 Original'\n } \n ${\n infoVariation?.quantity\n ? ` + ${infoVariation.quantity} Variation(s)`\n : '+ 0 Variation'\n })`}\n
  • \n );\n };\n\n const formatAContent = (services, serviceName) => {\n const similar = services?.find(\n (op) =>\n op?.service?.name?.includes(`${serviceName} Similar`) &&\n op?.quantity !== 0,\n );\n const original = services?.find(\n (op) =>\n op?.service?.name === `${serviceName} Original` && op?.quantity !== 0,\n );\n const premiumOriginal = services?.find(\n (op) =>\n op?.service?.name === `Premium ${serviceName} Content Original` &&\n op?.quantity !== 0,\n );\n const premiumVariation = services?.find(\n (op) =>\n op?.service?.name === `Premium ${serviceName} Content Variation` &&\n op?.quantity !== 0,\n );\n return (\n
  • \n {`${serviceName} Content (${\n similar?.quantity ? `${similar.quantity} Similar(s)` : '0 Similar'\n } \n ${\n original?.quantity\n ? ` + ${original.quantity} Original(s)`\n : '+ 0 Original'\n } \n ${\n premiumOriginal?.quantity\n ? ` + ${premiumOriginal.quantity} Premium Original(s)`\n : '+ 0 Premium Original'\n } \n ${\n premiumVariation?.quantity\n ? ` + ${premiumVariation.quantity} Premium Variation(s)`\n : '+ 0 Premium Variation'\n })`}\n
  • \n );\n };\n\n const displayOneTimeServices = (name, services) => {\n if (services?.length > 0) {\n const checkAmazonStoreFront = services?.some((op) =>\n op?.service?.name?.includes('Amazon Storefront'),\n );\n const checkWalmartStoreFront = services?.some((op) =>\n op?.service?.name?.includes('Walmart Storefront'),\n );\n const checkInfographics = services?.some((op) =>\n op?.service?.name?.includes('Infographics'),\n );\n const checkAContent = services?.some((op) =>\n op?.service?.name?.includes('A+'),\n );\n const checkEnhancedContent = services?.some((op) =>\n op?.service?.name?.includes('Enhanced'),\n );\n return (\n <>\n
    \n
    {name}
    \n
      \n {services\n .filter(\n (op) =>\n !op?.service?.name.includes('Amazon Storefront') &&\n !op?.service?.name.includes('Infographics') &&\n !op?.service?.name.includes('A+') &&\n !op?.service?.name.includes('Walmart Storefront') &&\n !op?.service?.name.includes('Enhanced'),\n )\n .map((item) => (\n
    • \n {item?.service?.name || ''} ({item?.quantity || ''})\n
    • \n ))}\n {checkAmazonStoreFront ? (\n <>{formatAmazonStorefront(services, 'Amazon')}\n ) : null}\n {checkWalmartStoreFront ? (\n <>{formatAmazonStorefront(services, 'Walmart')}\n ) : null}\n {checkInfographics ? <>{formatInforgraphics(services)} : null}\n {checkAContent ? <>{formatAContent(services, 'A+')} : null}\n {checkEnhancedContent ? (\n <>{formatAContent(services, 'Enhanced')}\n ) : null}\n
    \n \n );\n }\n return null;\n };\n\n const displayMonthlyServices = (name, array, contractId) => {\n if (array?.length > 0) {\n return (\n <>\n
    \n
    {name}
    \n
      \n {array.map((item) => (\n <>\n {item?.account_type?.toLowerCase() ===\n accountType[contractId] ? (\n
    • \n {item.service.name}{' '}\n {item.quantity ? `(${item.quantity})` : null}\n
    • \n ) : null}\n \n ))}\n
    \n \n );\n }\n return null;\n };\n\n const displayAdvertisingServices = (name, agreement) => {\n return (\n <>\n
    \n
    {name}
    \n
      \n {agreement?.is_dsp_advertising &&\n agreement?.contract_type?.includes('recurring') ? (\n
    • DSP Advertising
    • \n ) : null}\n {agreement?.amc_services?.map((item) => (\n
    • AMC Management {item.name}
    • \n ))}\n
    \n \n );\n };\n\n const displayNonUSServices = (name, services) => {\n if (services?.length > 0) {\n return (\n <>\n
    \n
    {name}
    \n
      \n {services?.map((item) => (\n
    • \n {displayMarketplacesName(item?.marketplace, 'vat') || ''}\n {item.frequency ? ` - ${item.frequency}` : null}\n
    • \n ))}\n
    \n \n );\n }\n return null;\n };\n\n const checkTheCount = (contractId) => {\n const a = showMoreCount?.filter(\n (op) => Object.keys(op)?.[0] === contractId,\n );\n return a?.length;\n };\n\n const getAgreementName = (agreementStatus) => {\n return agreementStatusNames?.[agreementStatus]\n ? agreementStatusNames?.[agreementStatus]\n : agreementStatus;\n };\n\n const handleOnAgreementStatusClick = (agreement) => {\n if (\n [\n 'pending for cancellation',\n 'pending cancellation approval',\n 'cancel',\n 'active partially pause',\n 'active pending for pause',\n 'active pending for pause request',\n 'pause',\n ].includes(agreement?.contract_status?.value)\n )\n setShowModal({\n modal: true,\n id: agreement?.suspend_contract,\n type: agreement?.contract_type,\n endDate: agreement?.end_date,\n contractStatus: agreement?.contract_status?.value,\n });\n };\n\n const displayAgreementName = (agreement) => {\n const contractType = agreement?.contract_type?.toLowerCase();\n\n switch (contractType) {\n case 'recurring':\n return agreement?.channel?.value === 'amazon'\n ? 'Amazon Recurring Service Agreement'\n : 'Walmart Recurring Service Agreement';\n case 'recurring (90 day notice)':\n return agreement?.channel?.value === 'amazon'\n ? 'Amazon Recurring (90 day notice) Service Agreement'\n : 'Walmart Recurring (90 day notice) Service Agreement';\n case 'dsp only':\n return 'Amazon DSP Service Agreement';\n default:\n return null;\n }\n };\n\n return (\n \n {isDesktop ? (\n <>\n {multipleAgreement.map((agreement) => {\n const contractType = agreement?.contract_type?.toLowerCase();\n const marketplaceArray = contractType?.includes('dsp')\n ? agreement?.dsp_marketplaces\n : agreement?.additional_marketplaces;\n return (\n <>\n \n
    \n \n
      \n
    • \n

      \n {' '}\n {displayAgreementName(agreement)}\n {/* PDV-8634 condition to display icon only for collection and out of contract. */}\n {agreement?.in_collections ? (\n \n ) : null}\n {agreement?.out_of_contract ? (\n \n ) : null}{' '}\n {displayContactSignLinkValidity(agreement)}\n

      \n \n \n
      \n \n handleOnAgreementStatusClick(agreement)\n }\n />\n {displayContractExpiryCountdown(agreement)}\n
      \n
    • \n\n {generateBasicInfo(\n 'Duration',\n agreement?.length?.label,\n )}\n {agreement?.contract_status?.value !== 'pause' ? (\n <>\n {generateBasicInfo(\n 'Original Start',\n dayjs(agreement?.start_date).format(\n 'MMM DD, YYYY',\n ),\n )}\n {/* PDV-9084- No need to show 'First Renewed date' for dsp only agreement */}\n {!contractType?.includes('dsp') &&\n agreement?.is_renewed &&\n (agreement?.contract_status?.value !== 'pending' ||\n agreement?.contract_status?.value !==\n 'pending account setup') ? (\n <>\n {generateBasicInfo(\n 'First Renewed',\n dayjs(agreement?.renewed_date).format(\n 'MMM DD, YYYY',\n ),\n )}\n \n ) : null}\n\n {/* PDV-8928 - Showing out of contract date */}\n {agreement?.out_of_contract\n ? generateBasicInfo(\n 'Out Of Contract',\n dayjs(agreement?.out_of_contract_date).format(\n 'MMM DD, YYYY',\n ),\n )\n : null}\n\n {generateBasicInfo(\n 'Expires',\n dayjs(agreement?.end_date).format('MMM DD, YYYY'),\n )}\n {contractType?.includes('recurring') &&\n agreement?.seller_type?.label !== 'Hybrid' &&\n agreement?.seller_type?.label ? (\n
    • \n
      Agreement Type
      \n
      \n {agreement?.seller_type?.label}\n
      \n
    • \n ) : null}\n \n ) : (\n <>\n {getPauseHTML(\n agreement && agreement.pause_contract,\n )}\n \n )}\n
    \n
    \n {showActionDropdown(agreement)}\n
    \n
    \n
      \n {contractType?.includes('recurring') &&\n agreement?.fee_structure &&\n Object.keys(agreement?.fee_structure)?.length &&\n !agreement?.fee_structure?.fee_type ? (\n <>\n {agreement?.fee_structure?.[\n accountType[agreement?.id]\n ]?.fee_type ? (\n
      \n ) : null}\n {generateCardHTML(agreement, contractType)}\n \n ) : null}\n
    \n
    \n {agreement?.additional_monthly_services?.find(\n (op) => op?.service?.name === 'DSP Advertising',\n ) || agreement?.is_dsp_advertising ? (\n <>\n
    \n
    \n
      \n {generateDSPAdvHTML(agreement)}\n
    \n
    \n \n ) : null}\n {agreement?.contract_addendum?.length ||\n (contractType?.includes('dsp') &&\n agreement?.dsp_marketplaces &&\n Object.keys(agreement?.dsp_marketplaces)?.length) ||\n (contractType?.includes('recurring') &&\n agreement?.additional_marketplaces &&\n Object.keys(agreement?.additional_marketplaces)?.length) ||\n agreement?.primary_marketplace?.name ? (\n
    \n ) : null}\n
    \n {displayMarketplaces(\n marketplaceArray,\n agreement,\n contractType,\n contractType?.includes('dsp')\n ? 'DSP Marketplace(s)'\n : 'Marketplace(s)',\n )}\n\n {agreement?.contract_addendum?.length ? (\n <>{displayAddendumStatus(agreement?.contract_addendum)}\n ) : null}\n
    \n\n \n {displayOptimization(\n 'Optimizations / Month',\n agreement,\n OptimizationArray,\n )}\n {displayStdServices(\n 'Standard Services',\n agreement?.standard_us_services,\n agreement?.standard_non_us_services?.filter(\n (op) =>\n op.name !== 'VAT Registration' &&\n op.name !== 'VAT Filing',\n ),\n agreement?.id,\n )}\n {displayMonthlyServices(\n 'Additional Monthly Services',\n agreement?.additional_monthly_services,\n agreement?.id,\n )}\n {displayAdvertisingServices(\n 'Advertising Services',\n agreement,\n )}\n {displayOneTimeServices(\n 'One Time Services',\n agreement?.additional_one_time_services,\n agreement?.id,\n )}\n {displayNonUSServices(\n 'VAT Registration',\n agreement?.standard_non_us_services?.filter(\n (op) => op.name === 'VAT Registration',\n ),\n agreement?.id,\n )}\n {displayNonUSServices(\n 'VAT Filing',\n agreement?.standard_non_us_services?.filter(\n (op) => op.name === 'VAT Filing',\n ),\n agreement?.id,\n )}\n \n \n {checkTheCount(agreement.id) > 0 ? (\n \n setAgreementDetailsCollapse({\n [agreement.id]: !agreementDetailsCollapse[agreement.id],\n })\n }\n role=\"presentation\"\n >\n {!agreementDetailsCollapse[agreement.id]\n ? `Expand Agreement`\n : 'Collapse Agreement'}\n {' '}\n
    \n ) : null}\n \n );\n })}\n \n ) : (\n \n )}\n \n \n \n \n );\n}\n\nAgreementDetails.defaultProps = {\n isSpreetailUser: false,\n multipleAgreement: [],\n history: {},\n showContractSignatureLinkIcon: false,\n displayContactSignLinkValidity: () => {},\n displayContractExpiryCountdown: () => {},\n displayRemainingDaysOfContractSign: () => {},\n};\n\nAgreementDetails.propTypes = {\n isSpreetailUser: bool,\n id: string.isRequired,\n history: shape({\n location: {},\n }),\n userRole: string.isRequired,\n multipleAgreement: arrayOf(shape({})),\n DropdownIndicator: func.isRequired,\n IconOption: func.isRequired,\n draftContractOptions: func.isRequired,\n setDropdownOptions: func.isRequired,\n handleContractOptions: func.isRequired,\n getPauseHTML: func.isRequired,\n showContractSignatureLinkIcon: bool,\n displayContactSignLinkValidity: func,\n displayContractExpiryCountdown: func,\n displayRemainingDaysOfContractSign: func,\n};\n","// React Imports\nimport React from 'react';\n\n// Third party imports\nimport Modal from 'react-modal';\nimport { bool, func } from 'prop-types';\n\n// local imports\nimport { CloseIcon } from '../../../theme/images';\nimport { ModalBox, Button, PageLoader } from '../../../common';\n\nfunction OneTimeAgreementCompletionDateComfirmationModal({\n showModal,\n setShowModal,\n updateAgreement,\n saveCompletionDateLoader,\n}) {\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n return (\n \n {\n setShowModal({ show: false, contractId: null });\n }}\n role=\"presentation\"\n />\n \n
    \n
    \n
    \n Are you sure you want to Save?\n
    \n
    \n You can no longer edit the completion date once it has been saved.\n
    \n
    \n
    \n {\n updateAgreement(showModal?.contractId);\n }}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\"\n >\n {saveCompletionDateLoader ? (\n \n ) : (\n 'Confirm'\n )}\n \n setShowModal({ show: false, contractId: null })}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \"\n >\n Cancel\n \n
    \n
    \n
    \n \n );\n}\n\nexport default OneTimeAgreementCompletionDateComfirmationModal;\n\nOneTimeAgreementCompletionDateComfirmationModal.defaultProps = {\n showModal: false,\n setShowModal: () => {},\n updateAgreement: () => {},\n saveCompletionDateLoader: false,\n};\n\nOneTimeAgreementCompletionDateComfirmationModal.propTypes = {\n showModal: bool,\n setShowModal: func,\n updateAgreement: func,\n saveCompletionDateLoader: bool,\n};\n","/* eslint no-shadow: \"off\" */\n\nimport axiosInstance from '../../axios';\nimport { API_CUSTOMER_CONTRACT } from '../../constants/ApiConstants';\nimport * as actionTypes from './actionTypes';\n\nexport const customerAccountRequestInitiated = () => {\n return {\n type: actionTypes.CUSTOMER_ACCOUNT_REQUEST_INITIATED,\n };\n};\n\nexport const customerAccountRequestSuccess = (data, multipleAgreement) => {\n return {\n type: actionTypes.CUSTOMER_ACCOUNT_REQUEST_SUCCESS,\n payload: data,\n multipleAgreement,\n };\n};\n\nexport const customerAccountRequestFail = (error) => {\n return {\n type: actionTypes.CUSTOMER_ACCOUNT_REQUEST_FAIL,\n error,\n };\n};\n\nexport const getAccountDetails = (id) => {\n const params = { customer: id, latest: 'True' };\n return (dispatch) => {\n dispatch(customerAccountRequestInitiated());\n axiosInstance\n .get(API_CUSTOMER_CONTRACT, { params })\n .then((response) => {\n dispatch(\n customerAccountRequestSuccess(\n response.data && response.data.results && response.data.results[0],\n response.data && response.data.results && response.data.results,\n ),\n );\n })\n .catch((error) => {\n dispatch(customerAccountRequestFail(error));\n });\n };\n};\n","import React, { useState } from 'react';\n\nimport Select from 'react-select';\nimport dayjs from 'dayjs';\nimport DatePicker from 'react-date-picker';\nimport { toast } from 'react-toastify';\nimport { Link } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { shape, string, func, arrayOf, bool } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../../theme/Theme';\nimport AgreementDetailOuterContainer from './AgreementDetailsStyled';\nimport OneTimeAgreementCompletionDateComfirmationModal from '../../../Contract/ContractModals/OneTimeAgreementCompletionDateComfirmationModal';\nimport { updateAccountDetails } from '../../../../api';\nimport { getAccountDetails } from '../../../../store/actions/accountState';\nimport {\n PATH_AGREEMENT,\n contractOptionsWithPaused,\n contractStatusIcons,\n draftContractOptions,\n} from '../../../../constants';\nimport { FileContract, ServiceIcon } from '../../../../theme/images';\nimport {\n Button,\n WhiteCard,\n PageLoader,\n ActionDropDown,\n ViewData,\n Status,\n InputFormField,\n SingleSelectDropdown,\n} from '../../../../common';\n\nexport default function OneTimeAgreement({\n agreements,\n id,\n history,\n DropdownIndicator,\n IconOption,\n setShowModal,\n userRole,\n childBPList,\n selectedCustomerId,\n setSelectedCustomerId,\n isSpreetailUser,\n displayContactSignLinkValidity,\n}) {\n const dispatch = useDispatch();\n const loader = useSelector((state) => state.accountState.isLoading);\n const [editCompletionDate, setEditCompletionDate] = useState(false);\n const [showCompletionDateModal, setShowCompletionDateModal] = useState({\n show: false,\n contractId: null,\n });\n const [saveCompletionDate, setSaveCompletionDate] = useState({});\n const [saveCompletionDateLoader, setSaveCompletionDateLoader] =\n useState(false);\n\n // https://bbe.atlassian.net/browse/PDV-8278\n // Removing the hard coded user emails and making it as dynamic access for authorized users.\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const allowedToComplete = userInfo?.allowed_to_completed_ontime_fe;\n\n // redirect to pages according to the option which we select from dropdown\n const handleContractOptions = (event, agreementId) => {\n switch (event.value) {\n case 'view':\n history.push({\n pathname: PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n agreementId,\n ),\n state: history?.location?.search,\n });\n break;\n case 'edit':\n history.push({\n pathname: PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n agreementId,\n ),\n state: history?.location?.search,\n showEditView: true,\n });\n break;\n case 'delete':\n setShowModal({ delete: true, agreementId });\n break;\n default:\n break;\n }\n };\n\n const formatAmazonStorefront = (services, channelType) => {\n const storeFrontHome = services?.find(\n (op) =>\n op?.service?.name?.includes(`${channelType} Storefront Home`) &&\n op?.quantity !== 0,\n );\n const storeFrontTab = services?.find(\n (op) =>\n op?.service?.name === `${channelType} Storefront Tab` &&\n op?.quantity !== 0,\n );\n const storeFrontSubTab = services?.find(\n (op) =>\n op?.service?.name?.includes(`${channelType} Storefront Sub`) &&\n op?.quantity !== 0,\n );\n return (\n
  • \n {`${channelType} Storefront (${\n storeFrontHome?.quantity\n ? `${storeFrontHome.quantity} Home Page(s)`\n : '0 Home Page'\n } \n ${\n storeFrontTab?.quantity\n ? ` + ${storeFrontTab.quantity} Tab(s)`\n : '+ 0 Tab'\n } \n ${\n storeFrontSubTab?.quantity\n ? ` + ${storeFrontSubTab?.quantity} Sub Tab(s)`\n : '+ 0 Sub Tab'\n })`}\n
  • \n );\n };\n\n const formatInforgraphics = (services) => {\n const infoOriginal = services?.find(\n (op) =>\n op?.service?.name?.includes('Infographics Original') &&\n op?.quantity !== 0,\n );\n const infoVariation = services?.find(\n (op) =>\n op?.service?.name === 'Infographics Variation' && op?.quantity !== 0,\n );\n return (\n
  • \n {`Infographics (${\n infoOriginal?.quantity\n ? `${infoOriginal.quantity} Original(s)`\n : '0 Original'\n } \n ${\n infoVariation?.quantity\n ? ` + ${infoVariation.quantity} Variation(s)`\n : '+ 0 Variation'\n })`}\n
  • \n );\n };\n\n const formatAContent = (services, serviceName) => {\n const similar = services?.find(\n (op) =>\n op?.service?.name?.includes(`${serviceName} Similar`) &&\n op?.quantity !== 0,\n );\n const original = services?.find(\n (op) =>\n op?.service?.name === `${serviceName} Original` && op?.quantity !== 0,\n );\n const premiumOriginal = services?.find(\n (op) =>\n op?.service?.name === `Premium ${serviceName} Content Original` &&\n op?.quantity !== 0,\n );\n const premiumVariation = services?.find(\n (op) =>\n op?.service?.name === `Premium ${serviceName} Content Variation` &&\n op?.quantity !== 0,\n );\n return (\n
  • \n {`${serviceName} Content (${\n similar?.quantity ? `${similar.quantity} Similar(s)` : '0 Similar'\n } \n ${\n original?.quantity\n ? ` + ${original.quantity} Original(s)`\n : '+ 0 Original'\n } \n ${\n premiumOriginal?.quantity\n ? ` + ${premiumOriginal.quantity} Premium Original(s)`\n : '+ 0 Premium Original'\n } \n ${\n premiumVariation?.quantity\n ? ` + ${premiumVariation.quantity} Premium Variation(s)`\n : '+ 0 Premium Variation'\n })`}\n
  • \n );\n };\n\n // function used to return one time services UI\n const displayOneTimeServices = (services) => {\n const checkAmazonStoreFront = services?.some((op) =>\n op?.service?.name?.includes('Amazon Storefront'),\n );\n const checkWalmartStoreFront = services?.some((op) =>\n op?.service?.name?.includes('Walmart Storefront'),\n );\n const checkInfographics = services?.some((op) =>\n op?.service?.name?.includes('Infographics'),\n );\n const checkAContent = services?.some((op) =>\n op?.service?.name?.includes('A+'),\n );\n\n // const checkAPlusContentSpecific = services?.find(\n // (op) => op?.service?.name === 'A+ Content',\n // );\n\n const checkEnhancedContent = services?.some((op) =>\n op?.service?.name?.includes('Enhanced'),\n );\n\n return (\n <>\n {services\n .filter(\n (op) =>\n !op?.service?.name.includes('Amazon Storefront') &&\n !op?.service?.name.includes('Infographics') &&\n !op?.service?.name.includes('A+') &&\n !op?.service?.name.includes('Walmart Storefront') &&\n !op?.service?.name.includes('Enhanced'),\n )\n .map((item) => (\n
  • \n {item?.service?.name || ''} ({item?.quantity || ''})\n
  • \n ))}\n {checkAmazonStoreFront ? (\n <>{formatAmazonStorefront(services, 'Amazon')}\n ) : null}\n {checkWalmartStoreFront ? (\n <>{formatAmazonStorefront(services, 'Walmart')}\n ) : null}\n {checkInfographics ? <>{formatInforgraphics(services)} : null}\n {checkAContent ? <>{formatAContent(services, 'A+')} : null}\n {checkEnhancedContent ? (\n <>{formatAContent(services, 'Enhanced')}\n ) : null}\n \n );\n };\n\n // update contract completion date\n const updateAgreement = (contractId) => {\n setSaveCompletionDateLoader(true);\n\n const details = {\n ...saveCompletionDate,\n end_date: dayjs(saveCompletionDate.end_date).format('YYYY-MM-DD'),\n };\n updateAccountDetails(contractId, details).then((res) => {\n setSaveCompletionDateLoader(false);\n if (res?.status === 200) {\n toast.success('Completion Date for One time agreement is updated.');\n dispatch(getAccountDetails(selectedCustomerId));\n setShowCompletionDateModal({ show: false, contractId: null });\n }\n });\n };\n\n // generate UI of dates inside one time agreement card\n const generateBasicInfo = (\n label,\n value,\n contractType,\n contractId,\n signedDate,\n ) => {\n return (\n
  • \n
    \n {label}\n {label === 'Completion Date' &&\n contractType === 'active' &&\n allowedToComplete ? (\n <>\n {' '}\n {saveCompletionDate?.end_date &&\n editCompletionDate[contractId] ? (\n {\n setShowCompletionDateModal({ show: true, contractId });\n }}\n >\n \n \n ) : (\n <>\n {!editCompletionDate[contractId] ? (\n {\n setEditCompletionDate({ [contractId]: true });\n setSaveCompletionDate({});\n }}\n >\n {' '}\n \n ) : null}\n \n )}\n \n ) : (\n ''\n )}\n
    \n {label === 'Completion Date' && editCompletionDate[contractId] ? (\n
    \n \n {\n setSaveCompletionDate({\n contract_status: 'completed',\n end_date: event,\n });\n }}\n onKeyDown={(e) => {\n e.preventDefault();\n }}\n />\n \n
    \n ) : (\n
    \n {value ? dayjs(value).format('MMM DD, YYYY') : value}\n
    \n )}\n
  • \n );\n };\n\n // return Agreement status name\n const getAgreementName = (agreementStatus) => {\n return agreementStatus === 'active'\n ? 'Signed'\n : agreementStatus === 'pending contract'\n ? 'Pending Agreement'\n : agreementStatus === 'pending contract approval'\n ? 'Pending Agreement Approval'\n : agreementStatus === 'pending contract signature'\n ? 'Pending Agreement Signature'\n : agreementStatus === 'completed'\n ? 'Completed'\n : agreementStatus;\n };\n\n // handle child bp filter events\n const handleChildBPFilterEvents = (event) => {\n if (event?.value !== selectedCustomerId) {\n setSelectedCustomerId(event?.value);\n }\n };\n\n // get single select dropdown components\n const getSingleSelectComponents = () => {\n return {\n DropdownIndicator,\n };\n };\n\n // display child bp filter\n const displayChildBPFilter = () => {\n return (\n op?.value === selectedCustomerId,\n )}\n onChangeHandler={handleChildBPFilterEvents}\n dropdownComponents={getSingleSelectComponents}\n // isApiCall={isApiCall}\n isSearchable={false}\n />\n );\n };\n\n // main return of the file\n return loader ? (\n \n ) : (\n <>\n {childBPList?.length ? (\n \n \n
    \n
    \n
    View data for:
    {' '}\n
    \n
    \n
    \n {displayChildBPFilter()}\n
    \n
    \n
    \n
    \n ) : null}\n {agreements && agreements.length === 0 ? (\n \n No One Time Service Agreement found.\n \n ) : (\n <>\n {agreements &&\n agreements.map((agreement) => (\n \n \n
    \n
    \n
      \n
    • \n

      \n \n {agreement?.channel?.label} One Time Service\n Agreement\n {displayContactSignLinkValidity(agreement)}\n

      \n
      \n \n
      \n
    • \n\n {generateBasicInfo(\n 'Signed Date',\n agreement?.contract_signed_date,\n agreement.contract_status?.value,\n agreement?.id,\n '',\n )}\n {generateBasicInfo(\n 'Completion Date',\n agreement?.end_date,\n agreement.contract_status?.value,\n agreement?.id,\n agreement?.contract_signed_date,\n )}\n
    \n
    \n
    \n {agreement?.contract_status?.value === 'completed' ||\n agreement?.contract_status?.value === 'active' ||\n userRole === 'Customer' ? (\n \n localStorage.setItem('agreementID', agreement.id)\n }\n >\n \n \n \n
    \n ) : (\n \n localStorage.setItem('agreementID', agreement.id)\n }\n >\n \n {' '}\n \n handleContractOptions(event, agreement.id)\n }\n components={{\n DropdownIndicator,\n Option: IconOption,\n }}\n value=\"\"\n />\n \n
    \n )}\n
    \n
    \n\n
    \n
    One Time Services
    \n {agreement?.additional_one_time_services ? (\n
      \n {displayOneTimeServices(\n agreement.additional_one_time_services,\n )}\n
    \n ) : (\n
    \n No One Time services added.\n
    \n )}\n
    \n \n
    \n ))}\n \n )}\n \n \n );\n}\n\nOneTimeAgreement.defaultProps = {\n isSpreetailUser: false,\n childBPList: [],\n setSelectedCustomerId: () => {},\n selectedCustomerId: '',\n displayContactSignLinkValidity: () => {},\n};\n\nOneTimeAgreement.propTypes = {\n isSpreetailUser: bool,\n id: string.isRequired,\n agreements: arrayOf(shape({})).isRequired,\n DropdownIndicator: func.isRequired,\n IconOption: func.isRequired,\n setShowModal: func.isRequired,\n history: shape({\n location: shape({\n pathname: string,\n }),\n push: () => {},\n }).isRequired,\n userRole: string.isRequired,\n childBPList: arrayOf(shape({})),\n setSelectedCustomerId: func,\n selectedCustomerId: string,\n displayContactSignLinkValidity: func,\n};\n","// react imports\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport DatePicker from 'react-datepicker';\nimport NumberFormat from 'react-number-format';\nimport { useSelector } from 'react-redux';\nimport { getDate, getMonth } from 'date-fns';\nimport { bool, func, string } from 'prop-types';\nimport { toast, ToastContainer } from 'react-toastify';\n\n// local imports\nimport Theme from '../../../../theme/Theme';\nimport useFormatNumber from '../../../../hooks/useFormatNumber';\nimport { EditInput, InputDateDropDown } from '../CustomerDetailStyles';\nimport {\n errorMessages,\n invoiceConstants,\n invoiceTooltipMessages,\n pauseAgreementStaticMesssages,\n pauseRequestNote,\n pendingPauseRequestOptions,\n} from '../../../../constants';\nimport {\n getAgreementData,\n agreementCancelPauseRequest,\n getPauseAgreementDSPAmounts,\n updateBillingOffBoardingApproveReject,\n getCancellationBillingData,\n} from '../../../../api';\nimport {\n EditExternalLinkOrange,\n InfoIcons,\n LeftArrowIcon,\n OrangeCheckMark,\n} from '../../../../theme/images';\nimport {\n ModalBox,\n Button,\n CheckBox,\n InputFormField,\n PageLoader,\n ErrorMsg,\n ModalRadioCheck,\n} from '../../../../common';\n\nexport default function AgreementPauseModal({\n agreementId,\n isBgs,\n isBgsManager,\n saveDetails,\n bgsManagerEmail,\n addBGSMangerEmail,\n setShowModal,\n}) {\n const mounted = useRef(false);\n const modalContentRef = useRef();\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const [modalContentHeight, setModalContentHeight] = useState(0);\n const [bgsManagerCheck, setBgsManagerCheck] = useState(true);\n const [loader, setLoader] = useState({ page: false });\n const [isDisabledRetainerEditOption, setIsDisabledRetainerEditOption] =\n useState(true);\n const [isAllowToEditRetainer, setIsAllowToEditRetainer] = useState(false);\n const [isAlreadyPaused, setIsAlreadyPaused] = useState(false);\n const [isRequestPending, setIsRequestPending] = useState(false);\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n const [showPendingPauseRequestModal, setShowPendingPauseRequestModal] =\n useState(false);\n const [agreementData, setAgreementData] = useState({});\n const [largerAmountErrorRetainer, setLargerAmountErrorRetainer] =\n useState(false);\n const [pauseModalStep, setPauseModalStep] = useState(1);\n const [monthlyRetainerAmount, setMonthlyRetainerAmount] = useState(0);\n const [dspAmount, setDspAmount] = useState({\n startAmount: null,\n endAmount: null,\n });\n const [\n selectedPendingPauseRequestOption,\n setSelectedPendingPauseRequestOption,\n ] = useState(null);\n const retainerDates = [29, 30, 31, 1];\n const nullDateObj = useMemo(() => {\n return {\n fromDate: null,\n toDate: null,\n };\n }, []);\n const initialPasueDate = useMemo(() => {\n return {\n monthlyRetainer: nullDateObj,\n revshare: nullDateObj,\n dsp: nullDateObj,\n amcService: nullDateObj,\n };\n }, [nullDateObj]);\n const [pauseDateDetails, setPauseDateDetails] = useState(initialPasueDate);\n const [pendingPauseRequestData, setPendingPauseRequestData] = useState([]);\n\n // use effect for modal content height\n useEffect(() => {\n // get updated modal content height\n const updateContentHeight = () => {\n if (modalContentRef.current) {\n setModalContentHeight(modalContentRef.current.clientHeight);\n }\n };\n\n // Set initial height\n updateContentHeight();\n\n // Create a new MutationObserver instance and set up a mutation observer to update the height when content changes\n const observer = new MutationObserver((mutationsList) => {\n // This callback runs whenever a mutation is observed\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList' || mutation.type === 'subtree') {\n // Update the height when children or subtree are modified\n updateContentHeight();\n }\n }\n });\n\n // set childList and subtree as true in observer to observe the mutation\n if (modalContentRef.current) {\n observer.observe(modalContentRef.current, {\n childList: true,\n subtree: true,\n });\n }\n\n // Cleanup observer on component unmount\n return () => {\n if (observer) {\n observer.disconnect();\n }\n };\n }, [modalContentRef]);\n\n // function - get pending agreement data\n const getPendingPauseRequestData = useCallback((suspendContractId) => {\n setLoader({ page: true });\n getCancellationBillingData(suspendContractId).then((response) => {\n if (response?.status === 200) {\n const tempInvoiceData = [];\n const invoiceData = response?.data?.invoice_type;\n\n if (invoiceData?.length) {\n for (const item of invoiceData) {\n const invoiceObj = invoiceConstants?.find(\n (obj) => obj?.invoiceType === item?.invoice_type,\n );\n\n tempInvoiceData.push({\n fromDate: item?.start_date ? new Date(item?.start_date) : null,\n toDate: item?.end_date ? new Date(item?.end_date) : null,\n invoiceType: item?.invoice_type,\n isPause: item?.is_pause,\n invoiceLabel: invoiceObj?.invoiceLabel,\n invoiceKey: invoiceObj?.invoiceKey,\n infoId: invoiceObj?.infoId,\n });\n }\n }\n\n setLoader({ page: false });\n setPendingPauseRequestData(tempInvoiceData);\n } else {\n setPendingPauseRequestData([]);\n setLoader({ page: false });\n }\n });\n }, []);\n\n // function - bind invoice api data of agreement\n const bindInvoiceDataOfAgreement = useCallback(\n (fromDate, toDate, dataItem) => {\n const invoiceObj = {\n fromDate,\n toDate,\n invoiceAmount: dataItem?.invoice_amount,\n currency: dataItem?.currency || '$',\n // isFromDateDisabled:\n // dataItem?.start_date !== null && dataItem?.end_date !== null,\n isToDateDisabled:\n toDate !== null && dayjs(toDate).diff(new Date(), 'day') < 0,\n id: dataItem?.id || '',\n };\n\n return invoiceObj;\n },\n [],\n );\n\n // function - bind pause agreement api data\n const bindAgreementDataResponse = useCallback(\n (resData) => {\n let dummyAgreementData = {};\n const invoiceTypes = resData?.invoice_type;\n const contractStartDate = resData?.contract_start_date;\n let setDefaultDate = { ...initialPasueDate };\n dummyAgreementData = {\n ...dummyAgreementData,\n suspendContractId: resData?.suspend_contract_id,\n };\n\n for (const item of invoiceTypes) {\n const fromDate = item?.start_date\n ? new Date(item?.start_date)\n : new Date();\n const toDate = item?.end_date ? new Date(item?.end_date) : null;\n const dateObj = {\n fromDate: fromDate || null,\n toDate: toDate || null,\n };\n\n if (item?.invoice_type === 'retainer') {\n if (item?.start_date === null && contractStartDate !== null) {\n const tempContractStartDate = new Date(contractStartDate);\n if (new Date(contractStartDate).getDate() === 1) {\n tempContractStartDate.setDate(2);\n } else if (new Date(contractStartDate).getDate() > 28) {\n tempContractStartDate.setDate(28);\n }\n\n fromDate.setDate(tempContractStartDate.getDate());\n }\n\n dummyAgreementData = {\n ...dummyAgreementData,\n monthlyRetainer: bindInvoiceDataOfAgreement(fromDate, toDate, item),\n };\n\n if (item?.invoice_amount !== null) {\n setMonthlyRetainerAmount(item?.invoice_amount);\n } else {\n setMonthlyRetainerAmount(0);\n }\n\n if (item?.start_date !== null && item?.end_date !== null) {\n setDefaultDate = {\n ...setDefaultDate,\n monthlyRetainer: dateObj,\n };\n }\n }\n\n if (item?.invoice_type === 'rev share') {\n if (toDate !== null) toDate.setDate(9);\n dummyAgreementData = {\n ...dummyAgreementData,\n revShare: bindInvoiceDataOfAgreement(fromDate, toDate, item),\n };\n\n if (item?.start_date !== null && item?.end_date !== null) {\n setDefaultDate = {\n ...setDefaultDate,\n revShare: dateObj,\n };\n }\n }\n\n if (item?.invoice_type === 'dsp service') {\n if (toDate !== null) toDate.setDate(11);\n dummyAgreementData = {\n ...dummyAgreementData,\n dsp: bindInvoiceDataOfAgreement(fromDate, toDate, item),\n };\n\n if (item?.start_date !== null && item?.end_date !== null) {\n setDefaultDate = {\n ...setDefaultDate,\n dsp: dateObj,\n };\n }\n }\n\n // PDV-8973- AMC service type added in pause modal\n if (item?.invoice_type === 'amc service') {\n // after testing change 'retianer' value. set as per api\n if (item?.start_date === null && contractStartDate !== null) {\n const tempContractStartDate = new Date(contractStartDate);\n if (new Date(contractStartDate).getDate() === 1) {\n tempContractStartDate.setDate(2);\n } else if (new Date(contractStartDate).getDate() > 28) {\n tempContractStartDate.setDate(28);\n }\n\n fromDate.setDate(tempContractStartDate.getDate());\n }\n\n dummyAgreementData = {\n ...dummyAgreementData,\n amcService: bindInvoiceDataOfAgreement(fromDate, toDate, item),\n };\n\n if (item?.start_date !== null && item?.end_date !== null) {\n setDefaultDate = {\n ...setDefaultDate,\n amcService: dateObj,\n };\n }\n }\n }\n\n if (resData?.request_status === 'pending') {\n setIsRequestPending(true);\n if (isBgs) {\n setShowConfirmationModal(true);\n } else {\n getPendingPauseRequestData(resData?.suspend_contract_id);\n setShowPendingPauseRequestModal(true);\n }\n }\n\n if (resData?.request_status === 'approved') {\n setIsAlreadyPaused(true);\n setPauseDateDetails(setDefaultDate);\n }\n\n return dummyAgreementData;\n },\n [\n bindInvoiceDataOfAgreement,\n getPendingPauseRequestData,\n initialPasueDate,\n isBgs,\n ],\n );\n\n // function - get pause agreement api data\n const getPauseAgreementData = useCallback(\n (id) => {\n setLoader({ page: true });\n getAgreementData(id, 'pause').then((res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n setLoader({ page: false });\n }\n if (res && res.status === 200) {\n if (res?.data?.invoice_type && res?.data?.invoice_type.length) {\n const resData = bindAgreementDataResponse(res?.data);\n setAgreementData(resData);\n } else {\n setAgreementData([]);\n }\n }\n\n setLoader({ page: false });\n }\n });\n },\n [bindAgreementDataResponse],\n );\n\n useEffect(() => {\n mounted.current = true;\n getPauseAgreementData(agreementId);\n return () => {\n mounted.current = false;\n };\n }, [agreementId, getPauseAgreementData]);\n\n // function - det dsp amount\n const getDspAmounts = useCallback((id, startDate, endDate) => {\n setLoader({ page: true });\n getPauseAgreementDSPAmounts(id, startDate, endDate).then((res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n setLoader({ page: false });\n }\n if (res && res.status === 200) {\n setDspAmount({\n startAmount: res.data.start_date_amount,\n endAmount: res.data.end_date_amount,\n });\n }\n\n setLoader({ page: false });\n }\n });\n }, []);\n\n // function - agreement pause request\n const agreementPauseRequest = useCallback(\n (id, data) => {\n setLoader({ ...loader, button: true });\n agreementCancelPauseRequest(id, data, null, 'pause').then((res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n setLoader({ ...loader, button: false });\n }\n if (res && res.status === 201) {\n saveDetails();\n }\n setLoader({ ...loader, button: false });\n }\n });\n },\n [loader, saveDetails],\n );\n\n // https://bbe.atlassian.net/browse/PDV-9280 - Billing Pausing Improvement Logic\n // submit pending pause request\n const submitPendingPauseRequest = (status) => {\n setLoader({ ...loader, button: true });\n\n updateBillingOffBoardingApproveReject(\n status,\n agreementData?.suspendContractId,\n ).then((response) => {\n if (response?.status === 200) {\n saveDetails(status);\n } else if (response?.status === 403) {\n toast.error(response?.data?.detail);\n setShowModal(false);\n } else {\n toast.error('Oops... Something went wrong!');\n setShowModal(false);\n }\n setLoader({ ...loader, button: false });\n });\n };\n\n // function - bind pause request final invoice data\n const bindFinalInvoiceData = (invoiceType, invoiceKey) => {\n const invoiceObj = {\n invoice_type: invoiceType,\n start_date: dayjs(pauseDateDetails?.[invoiceKey]?.fromDate).format(\n 'YYYY-MM-DD',\n ),\n end_date: dayjs(pauseDateDetails?.[invoiceKey]?.toDate).format(\n 'YYYY-MM-DD',\n ),\n };\n let finalInvoiceObj = { ...invoiceObj };\n\n if (invoiceKey === 'monthlyRetainer') {\n finalInvoiceObj = {\n ...invoiceObj,\n invoice_amount: monthlyRetainerAmount,\n };\n }\n if (invoiceKey === 'amcService') {\n finalInvoiceObj = {\n ...invoiceObj,\n invoice_amount: agreementData?.amcService?.invoiceAmount,\n };\n }\n\n return finalInvoiceObj;\n };\n\n // function - bind agreement pause request data\n const bindPauseRequest = () => {\n const retainer = pauseDateDetails?.monthlyRetainer;\n const revShare = pauseDateDetails?.revShare;\n const dsp = pauseDateDetails?.dsp;\n const amcService = pauseDateDetails?.amcService;\n // if curreent screen is 1 - dates screen, then go to screen 2 - amount screen and get the dsp amount\n if (pauseModalStep === 1) {\n setPauseModalStep(2);\n if (dsp?.fromDate && dsp?.toDate) {\n getDspAmounts(\n agreementId,\n dayjs(pauseDateDetails?.dsp?.fromDate).format('YYYY-MM-DD'),\n dayjs(pauseDateDetails?.dsp?.toDate).format('YYYY-MM-DD'),\n );\n }\n return;\n }\n // if curreent screen 2 - amount screen, then bind the final pause agreement invoice data and submit\n const finalRequestData = [];\n if (retainer?.fromDate && retainer?.toDate) {\n finalRequestData.push(\n bindFinalInvoiceData('retainer', 'monthlyRetainer'),\n );\n }\n if (revShare?.fromDate && revShare?.toDate) {\n finalRequestData.push(bindFinalInvoiceData('rev share', 'revShare'));\n }\n if (dsp?.fromDate && dsp?.toDate) {\n finalRequestData.push(bindFinalInvoiceData('dsp service', 'dsp'));\n }\n if (amcService?.fromDate && amcService?.toDate) {\n finalRequestData.push(bindFinalInvoiceData('amc service', 'amcService'));\n }\n\n agreementPauseRequest(agreementId, finalRequestData);\n };\n\n // function that return Min_date for all date picker.\n const setMinDate = (invoiceType, dateType) => {\n const agreement = agreementData[invoiceType];\n const selectedFromDate = pauseDateDetails[invoiceType]?.fromDate;\n\n // set min date for Monthly retainer\n if (invoiceType === 'monthlyRetainer') {\n // TO_DATE should be greater that 2 month from FROM_DATE - PDV-8441\n if (dateType === 'toDate' && selectedFromDate !== null) {\n return new Date(selectedFromDate).setMonth(\n getMonth(selectedFromDate) + 2,\n );\n }\n\n // dateType is fromDate OR (dateType is toDate && fromDate is null)\n // condition trigger- when last_invoice_date is greater than todays date\n if (new Date(agreement[dateType]).getDate() >= new Date().getDate()) {\n const tempDate = new Date();\n tempDate.setDate(getDate(agreement[dateType]));\n tempDate.setMonth(new Date().getMonth() - 1);\n return tempDate;\n }\n\n // return current month\n return new Date(agreement[dateType]).setMonth(getMonth(new Date()));\n }\n\n // set min date for rev share\n if (invoiceType === 'revShare') {\n // TO_DATE should be greater that 2 month from FROM_DATE - PDV-8441\n if (dateType === 'toDate' && selectedFromDate !== null) {\n return new Date(selectedFromDate).setMonth(\n getMonth(selectedFromDate) + 2,\n );\n }\n\n // dateType is fromDate OR (dateType is toDate && fromDate is null)\n // condition trigger- todays date is between 1-8, then return 9th of previous month\n if (new Date().getDate() < 9) {\n const tempDate = new Date();\n tempDate.setDate(getDate(9));\n tempDate.setMonth(new Date().getMonth() - 1);\n return tempDate;\n }\n\n // else - todays date is greater than =9, return 9th of current month\n const tempDate = new Date();\n tempDate.setDate(9);\n tempDate.setMonth(new Date().getMonth());\n return tempDate;\n }\n\n // set min date for DSP\n if (invoiceType === 'dsp') {\n // TO_DATE should be greater that 2 month from FROM_DATE - - PDV-8441\n if (dateType === 'toDate' && selectedFromDate !== null) {\n return new Date(selectedFromDate).setMonth(\n getMonth(selectedFromDate) + 2,\n );\n }\n\n // dateType is fromDate OR dateType is toDate && fromDate is null\n // condition trigger- todays date is between 1-10, then return 11th of previous month\n if (new Date().getDate() < 11) {\n const tempDate = new Date();\n tempDate.setDate(getDate(11));\n tempDate.setMonth(new Date().getMonth() - 1);\n return tempDate;\n }\n\n // else - todays date is greater than =11th, return 11th of current month\n const tempDate = new Date();\n tempDate.setDate(11);\n tempDate.setMonth(new Date().getMonth());\n return tempDate;\n }\n\n // set min date for AMC\n if (invoiceType === 'amcService') {\n if (dateType === 'toDate' && selectedFromDate !== null) {\n return new Date(selectedFromDate).setMonth(\n getMonth(selectedFromDate) + 2,\n );\n }\n\n // dateType is fromDate OR (dateType is toDate && fromDate is null)\n // condition trigger- when last_invoice_date is greater than todays date\n if (new Date(agreement[dateType]).getDate() >= new Date().getDate()) {\n const tempDate = new Date();\n tempDate.setDate(getDate(agreement[dateType]));\n tempDate.setMonth(new Date().getMonth() - 1);\n return tempDate;\n }\n\n // return current month\n return new Date(agreement[dateType]).setMonth(getMonth(new Date()));\n }\n\n return new Date();\n };\n\n // function - get retainer ans amc invoice day\n const filterRetainerAndAmcBillingDate = (date, invoiceKey) => {\n const day = getDate(date);\n const fromDate = agreementData?.[invoiceKey]?.fromDate.getDate();\n if (retainerDates?.includes(fromDate)) return day === 2;\n return day === fromDate;\n };\n\n // function - get rev share invoice day\n const filterRevShareBillingDate = (date) => {\n const day = getDate(date);\n return day === 9;\n };\n\n // function - get dsp invoice day\n const filterDSPBillingDate = (date) => {\n const day = getDate(date);\n return day === 11;\n };\n\n // function - check submit button validation\n const checkButtonValidation = () => {\n if (pauseModalStep === 1) {\n if (\n (agreementData?.monthlyRetainer &&\n pauseDateDetails?.monthlyRetainer?.fromDate !== null &&\n pauseDateDetails?.monthlyRetainer?.toDate !== null) ||\n (agreementData?.revShare &&\n pauseDateDetails?.revShare?.fromDate !== null &&\n pauseDateDetails?.revShare?.toDate !== null) ||\n (agreementData?.dsp &&\n pauseDateDetails?.dsp?.fromDate !== null &&\n agreementData?.dsp &&\n pauseDateDetails?.dsp.toDate !== null) ||\n (agreementData?.amcService &&\n pauseDateDetails?.amcService?.fromDate !== null &&\n pauseDateDetails?.amcService?.toDate !== null)\n ) {\n return false;\n }\n\n return true;\n }\n\n // pause modal step 2\n if (\n !bgsManagerCheck ||\n largerAmountErrorRetainer ||\n monthlyRetainerAmount === undefined ||\n monthlyRetainerAmount === ''\n ) {\n return true;\n }\n return false;\n };\n\n // function - handle date change events\n const handleDateChange = (date, invoiceType, dateType) => {\n const selectedDate = new Date(date);\n const selectedToDate = pauseDateDetails[invoiceType]?.toDate;\n\n if (invoiceType === 'revShare') {\n selectedDate.setDate(9);\n } else if (invoiceType === 'dsp') {\n selectedDate.setDate(11);\n } else if (invoiceType === 'amcService') {\n // only set fromDate, because for toDate we can select any date not billed date.\n if (dateType === 'fromDate') {\n const agreement = agreementData?.amcService;\n const lastBillDate = new Date(agreement?.[dateType]);\n selectedDate.setDate(\n invoiceType === 'amcService' &&\n [(29, 30, 31, 1)].includes(lastBillDate.getDate())\n ? 2\n : lastBillDate.getDate(),\n );\n }\n } else {\n // else - retainer invoice type\n if (dateType === 'fromDate' && date < new Date()) {\n setIsDisabledRetainerEditOption(true);\n setMonthlyRetainerAmount(\n agreementData?.monthlyRetainer?.invoiceAmount || 0,\n );\n setIsAllowToEditRetainer(false);\n setLargerAmountErrorRetainer(false);\n } else if (dateType === 'fromDate') {\n setIsDisabledRetainerEditOption(false);\n }\n\n // only set fromDate, because for toDate we can select any date not billed date.\n if (dateType === 'fromDate') {\n const agreement = agreementData?.monthlyRetainer;\n const lastBillDate = new Date(agreement?.[dateType]);\n selectedDate.setDate(\n invoiceType === 'monthlyRetainer' &&\n [(29, 30, 31, 1)].includes(lastBillDate.getDate())\n ? 2\n : lastBillDate.getDate(),\n );\n }\n }\n\n // check to_date is greater than from_date\n if (\n dateType === 'fromDate' &&\n selectedToDate !== null &&\n dayjs(selectedToDate).diff(selectedDate, 'month') < 2\n ) {\n setPauseDateDetails({\n ...pauseDateDetails,\n [invoiceType]: {\n ...pauseDateDetails[invoiceType],\n toDate: null,\n fromDate: selectedDate,\n },\n });\n } else {\n setPauseDateDetails({\n ...pauseDateDetails,\n [invoiceType]: {\n ...pauseDateDetails[invoiceType],\n [dateType]: selectedDate,\n },\n });\n }\n };\n\n // function - handle invoice amount change\n const handleAmountChange = (event) => {\n event.preventDefault();\n const actualAmount = agreementData?.monthlyRetainer?.invoiceAmount;\n let { value } = event.target;\n value = value.replace(agreementData?.monthlyRetainer?.currency, '');\n value = value.replaceAll(',', '');\n setMonthlyRetainerAmount(value);\n if (value > actualAmount) {\n setLargerAmountErrorRetainer(true);\n } else {\n setLargerAmountErrorRetainer(false);\n }\n };\n\n // display discard button\n const displayDiscardButton = () => {\n return (\n {\n setShowModal(false);\n }}\n type=\"button\"\n className=\"btn-transparent w-50 on-boarding\"\n >\n Discard\n \n );\n };\n\n // function - display bgs manager modal screen\n const renderBGSManagerModal = () => {\n return (\n
    \n
    Add BGS Manager
    \n\n

    \n For approval please add the{' '}\n addBGSMangerEmail()}\n role=\"presentation\"\n >\n BGS Manager\n {' '}\n first.\n

    \n
    \n );\n };\n\n // get tooltip DataTip\n const getTooltipDataTip = (tooltipMessage) => {\n return `
    ${tooltipMessage}
    `;\n };\n\n // display react tooltip with info icon\n const displayTooltipWithInfoIcon = (dataTip, tooltipId) => {\n return (\n <>\n \n \n \n );\n };\n\n // display invoice Dates header html\n const displayInvoiceDatesHeaderHTML = () => {\n return (\n <>\n
    \n
    \n invoice type\n
    \n
    \n\n
    \n
    \n From\n {displayTooltipWithInfoIcon(\n invoiceTooltipMessages?.fromDate,\n 'fromDateInfo',\n )}\n
    \n
    \n\n
    \n
    \n To\n {displayTooltipWithInfoIcon(\n invoiceTooltipMessages?.toDate,\n 'toDateInfo',\n )}\n
    \n
    \n \n );\n };\n\n // display invoice label with tooltip\n const displayInvoiceLabelWithTooltip = (\n label,\n invoiceKey,\n tooltipId,\n showPastDateMessage,\n ) => {\n return (\n \n \n
    \n );\n };\n\n // display invoice type with paused dates\n const displayInvoiceTypeWithPausedDates = (\n label,\n invoiceKey,\n fromDate,\n toDate,\n tooltipId,\n ) => {\n return (\n <>\n
    \n
    \n {displayInvoiceLabelWithTooltip(\n label,\n invoiceKey,\n tooltipId,\n false,\n )}\n
    \n
    \n
    \n
    \n {fromDate ? dayjs(fromDate).format('MM/DD/YYYY') : 'MM/DD/YYYY'}\n
    \n
    \n
    \n
    \n
    \n
    \n {toDate ? dayjs(toDate).format('MM/DD/YYYY') : 'MM/DD/YYYY'}\n
    \n
    \n
    \n
    \n
    \n \n );\n };\n\n // display paused request option\n const displayPauseRequestOptions = () => {\n return pendingPauseRequestOptions?.map((item) => {\n return (\n \n \n \n );\n });\n };\n\n // display confirmation modal screen\n const displayConfirmationScreen = () => {\n return (\n <>\n
    \n
    Confirmation
    \n
    \n

    \n {`There is already a ${\n isRequestPending ? 'pending' : 'approved'\n } pause request for an agreement. Would\n you like to proceed with canceling the old request and submitting a\n new one?`}\n

    \n
    \n
    \n
    \n {\n if (isBgs && isRequestPending) {\n setShowConfirmationModal(false);\n } else {\n bindPauseRequest();\n }\n }}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\"\n >\n {loader.button ? (\n \n ) : (\n 'Proceed'\n )}\n \n\n {displayDiscardButton()}\n
    \n
    \n \n );\n };\n\n // display pending pause request modal\n const renderPendingRequestModal = () => {\n return (\n <>\n
    \n
    Confirmation
    \n
    \n\n
    {displayInvoiceDatesHeaderHTML()}
    \n
    \n {loader.page ? (\n
    \n \n
    \n ) : pendingPauseRequestData?.length ? (\n <>\n {pendingPauseRequestData?.map((item) => {\n return displayInvoiceTypeWithPausedDates(\n item?.invoiceLabel,\n item?.invoiceKey,\n item?.fromDate,\n item?.toDate,\n item?.infoId,\n );\n })}\n

    \n There is already a pending pause request for an agreement. Would\n you like to proceed with:\n

    \n {displayPauseRequestOptions()}\n
    \n \n Note: {pauseRequestNote}\n \n
    \n \n ) : null}\n
    \n
    \n
    \n {\n if (selectedPendingPauseRequestOption === 'cancelled') {\n setShowPendingPauseRequestModal(false);\n } else {\n submitPendingPauseRequest(selectedPendingPauseRequestOption);\n }\n }}\n type=\"button\"\n className={`btn-primary on-boarding mr-2 pb-2 mb-1 ${\n selectedPendingPauseRequestOption ? '' : 'disabled'\n }`}\n >\n {loader.button ? (\n \n ) : (\n 'Proceed'\n )}\n \n {displayDiscardButton()}\n
    \n
    \n \n );\n };\n\n // get date picker for invoice\n const getDatePickerforInvoices = (\n invoiceKey,\n dateType,\n invoiceType,\n filterDate,\n ) => {\n return (\n handleDateChange(date, invoiceKey, dateType)}\n filterDate={(date) => filterDate(date, invoiceKey)}\n minDate={setMinDate(invoiceKey, dateType)}\n dateFormat=\"MM/dd/yyyy\"\n previousMonthAriaLabel={invoiceType}\n placeholderText=\"MM/DD/YY\"\n />\n );\n };\n\n // display input date picker dropdown for invoices\n const displayInputDatePickerDropdownForInvoice = (\n invoiceKey,\n filterDate,\n invoiceType,\n ) => {\n return (\n <>\n
    \n \n {getDatePickerforInvoices(\n invoiceKey,\n 'fromDate',\n invoiceType,\n filterDate,\n )}\n \n
    \n
    \n \n {getDatePickerforInvoices(\n invoiceKey,\n 'toDate',\n invoiceType,\n filterDate,\n )}\n \n
    \n
    \n \n );\n };\n\n // step 1 - pause agreement modal - dates screen\n const renderAgreementDatesModal = () => {\n // get html of InvoiceLabelWithTooltip\n const getInvoiceLabelWithTooltipHTML = (invoiceKey, filterDate) => {\n const invoiceObj = invoiceConstants?.find(\n (obj) => obj?.invoiceKey === invoiceKey,\n );\n\n return (\n <>\n
    \n {displayInvoiceLabelWithTooltip(\n invoiceObj?.invoiceLabel,\n invoiceObj?.invoiceKey,\n invoiceObj?.infoId,\n true,\n )}\n
    \n {displayInputDatePickerDropdownForInvoice(\n invoiceObj?.invoiceKey,\n filterDate,\n invoiceObj?.invoiceType,\n )}\n \n );\n };\n // function - html for monthly retainer dates\n const renderMonthlyRetainerDateDetails = () => {\n return agreementData?.monthlyRetainer\n ? getInvoiceLabelWithTooltipHTML(\n 'monthlyRetainer',\n filterRetainerAndAmcBillingDate,\n )\n : null;\n };\n\n // function - html for rev share dates\n const renderRavShareDateDetails = () => {\n return agreementData?.revShare\n ? getInvoiceLabelWithTooltipHTML('revShare', filterRevShareBillingDate)\n : null;\n };\n\n // function - html for dsp dates\n const renderDSPDateDetails = () => {\n return agreementData?.dsp ? (\n <>{getInvoiceLabelWithTooltipHTML('dsp', filterDSPBillingDate)}\n ) : null;\n };\n\n // function - html for amc dates\n const renderAmcServiceDateDetails = () => {\n return agreementData?.amcService\n ? getInvoiceLabelWithTooltipHTML(\n 'amcService',\n filterRetainerAndAmcBillingDate,\n )\n : null;\n };\n\n return (\n
    \n {displayInvoiceDatesHeaderHTML()}\n
    \n {renderMonthlyRetainerDateDetails()}\n {renderRavShareDateDetails()}\n {renderDSPDateDetails()}\n {renderAmcServiceDateDetails()}\n
    \n );\n };\n\n // step 2 - pause agreement modal - amount screen\n const renderAgreementAmountsModal = (formatNumber) => {\n // display invoive amount\n const displayInvoiveAmount = (invoiceKey) => {\n if (invoiceKey === 'revShare') {\n return (\n
    \n
    Dependent on Sales
    \n
    \n );\n }\n return (\n
    \n
    \n {agreementData?.[invoiceKey]?.invoiceAmount !== null\n ? formatNumber(\n agreementData?.[invoiceKey]?.invoiceAmount,\n agreementData?.[invoiceKey]?.currency,\n )\n : '-'}\n
    \n
    \n );\n };\n\n // function - html for amount header\n const renderAmountHeader = () => {\n return (\n <>\n
    \n
    \n invoice type{' '}\n
    \n
    \n\n
    \n
    \n Last Bill Before Pause\n
    \n
    \n\n
    \n
    \n First Bill After Pause\n
    \n
    \n \n );\n };\n\n // display icons for invoice\n const displayIconForInvoice = (isDisabled, iconLink, type) => {\n return (\n setIsAllowToEditRetainer(type === 'edit')}\n src={iconLink}\n alt={type}\n style={{ marginLeft: '75px' }}\n />\n );\n };\n\n // function - html for monthly retainer amount details\n const renderMonthlyRetainerAmountDetails = () => {\n return (\n <>\n {agreementData?.monthlyRetainer &&\n pauseDateDetails?.monthlyRetainer?.fromDate !== null &&\n pauseDateDetails?.monthlyRetainer?.toDate !== null ? (\n <>\n
    \n {displayInvoiceLabelWithTooltip(\n 'Monthly Retainer',\n 'monthlyRetainer',\n 'retainerInfo',\n true,\n )}\n
    \n\n
    \n \n \n handleAmountChange(event)}\n value={monthlyRetainerAmount}\n defaultValue={\n agreementData?.monthlyRetainer?.invoiceAmount\n }\n thousandSeparator\n allowNegative={false}\n />\n
    \n \n {!isAllowToEditRetainer\n ? displayIconForInvoice(\n isDisabledRetainerEditOption,\n EditExternalLinkOrange,\n 'edit',\n )\n : displayIconForInvoice(\n largerAmountErrorRetainer,\n OrangeCheckMark,\n 'check',\n )}\n \n \n
    \n\n {displayInvoiveAmount('monthlyRetainer')}\n {largerAmountErrorRetainer ? (\n
    \n {errorMessages.retainerAmount}\n
    \n ) : null}\n
    \n \n ) : null}\n \n );\n };\n\n // function - html for rev share amount details\n const renderRavShareAmountDetails = () => {\n return (\n <>\n {agreementData?.revShare &&\n pauseDateDetails?.revShare?.fromDate !== null &&\n pauseDateDetails?.revShare?.toDate !== null ? (\n <>\n
    \n {displayInvoiceLabelWithTooltip(\n 'Rev Share',\n 'revShare',\n 'revShareInfo',\n true,\n )}\n
    \n {displayInvoiveAmount('revShare')}\n {displayInvoiveAmount('revShare')}\n
    \n \n ) : null}\n \n );\n };\n\n // function - html for dsp service amount details\n const renderDSPAmountDetails = () => {\n return (\n <>\n {agreementData?.dsp &&\n pauseDateDetails?.dsp?.fromDate !== null &&\n pauseDateDetails?.dsp?.toDate !== null ? (\n <>\n
    \n {displayInvoiceLabelWithTooltip('DSP', 'dsp', 'dspInfo', true)}\n
    \n\n
    \n
    \n {dspAmount?.startAmount !== null\n ? formatNumber(\n dspAmount?.startAmount,\n agreementData?.dsp?.currency,\n )\n : '-'}\n
    \n
    \n\n
    \n
    \n {dspAmount?.endAmount !== null\n ? formatNumber(\n dspAmount?.endAmount,\n agreementData?.dsp?.currency,\n )\n : '-'}\n
    \n
    \n\n
    \n \n ) : null}\n \n );\n };\n\n // function - html for amc service amount details\n const renderAmcServiceAmountDetails = () => {\n return (\n <>\n {agreementData?.amcService &&\n pauseDateDetails?.amcService?.fromDate !== null &&\n pauseDateDetails?.amcService?.toDate !== null ? (\n <>\n
    \n {displayInvoiceLabelWithTooltip(\n 'AMC',\n 'amcService',\n 'amcInfo',\n true,\n )}\n
    \n {displayInvoiveAmount('amcService')}\n {displayInvoiveAmount('amcService')}\n
    \n \n ) : null}\n \n );\n };\n\n return (\n
    \n {renderAmountHeader()}\n
    \n {renderMonthlyRetainerAmountDetails()}\n {renderRavShareAmountDetails()}\n {renderDSPAmountDetails()}\n {renderAmcServiceAmountDetails()}\n
    \n );\n };\n\n // function modal footer\n const renderFooter = () => {\n return (\n
    \n {!isBgsManager &&\n userInfo?.role !== 'BGS Admin' &&\n pauseModalStep === 2 ? (\n \n \n Request approval from BGS Manager\n {\n setBgsManagerCheck(!bgsManagerCheck);\n }}\n />\n \n \n \n ) : null}\n\n
    \n {\n if (pauseModalStep === 2 && isAlreadyPaused) {\n setShowConfirmationModal(true);\n } else {\n bindPauseRequest();\n }\n }}\n type=\"button\"\n className={`btn-primary on-boarding w-100 ${\n checkButtonValidation() || loader.page ? 'disabled' : ''\n }`}\n >\n {loader.button ? (\n \n ) : pauseModalStep === 1 ? (\n 'Next'\n ) : (\n 'Confirm and Pause Agreement'\n )}\n \n
    \n
    \n );\n };\n\n // function - html for approved request modal\n const renderApprovedRequestModal = () => {\n return (\n <>\n
    \n 400 ? 'addendum-service-modal' : ''}\n ref={modalContentRef}\n >\n
    \n {pauseModalStep === 1 ? (\n <>\n {isRequestPending ? (\n {\n setShowPendingPauseRequestModal(true);\n setPauseDateDetails(initialPasueDate);\n }}\n className=\"modal-back-arrow\"\n src={LeftArrowIcon}\n alt=\"back-arrow\"\n />\n ) : null}\n Step 1/2: pause agreement: Dates\n \n ) : (\n <>\n {\n setPauseModalStep(1);\n setMonthlyRetainerAmount(\n agreementData?.monthlyRetainer?.invoiceAmount || 0,\n );\n setLargerAmountErrorRetainer(false);\n setIsAllowToEditRetainer(false);\n }}\n className=\"modal-back-arrow\"\n src={LeftArrowIcon}\n alt=\"back-arrow\"\n />{' '}\n Step 2/2: pause agreement: Amounts\n \n )}\n
    \n\n {!loader.page ? (\n

    \n {pauseModalStep === 1\n ? 'Please select the pause duration for the following invoice types'\n : 'Please confirm the amounts for the following invoice types'}\n

    \n ) : null}\n\n {loader.page ? (\n
    \n \n
    \n ) : pauseModalStep === 1 ? (\n renderAgreementDatesModal() // step 1\n ) : (\n renderAgreementAmountsModal(useFormatNumber) // step 2\n )}\n
    \n
    \n {renderFooter()}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n \n \n {!bgsManagerEmail\n ? renderBGSManagerModal()\n : showPendingPauseRequestModal\n ? renderPendingRequestModal()\n : showConfirmationModal\n ? displayConfirmationScreen()\n : renderApprovedRequestModal()}\n \n \n );\n}\n\n// prop types\nAgreementPauseModal.defaultProps = {\n isBgs: false,\n isBgsManager: false,\n agreementId: '',\n bgsManagerEmail: '',\n saveDetails: () => {},\n addBGSMangerEmail: () => {},\n setShowModal: () => {},\n};\n\nAgreementPauseModal.propTypes = {\n isBgs: bool,\n isBgsManager: bool,\n agreementId: string,\n bgsManagerEmail: string,\n saveDetails: func,\n addBGSMangerEmail: func,\n setShowModal: func,\n};\n","import React, { useState } from 'react';\n\nimport Select, { components } from 'react-select';\nimport { useHistory } from 'react-router-dom';\nimport { Controller, useForm } from 'react-hook-form';\nimport { arrayOf, func, shape, string } from 'prop-types';\n\nimport { createCustomer, createContract } from '../../../../api';\nimport { newChildAgreementTypes, PATH_AGREEMENT } from '../../../../constants';\nimport {\n Button,\n ContractInputSelect,\n ErrorMsg,\n InputFormField,\n ModalBox,\n PageLoader,\n DropDownIndicator,\n} from '../../../../common';\n\nexport default function AddChildAgreementModal({\n id,\n setShowAgreementModal,\n childBPList,\n}) {\n const { register, handleSubmit, errors, clearErrors, control } = useForm();\n const { Option } = components;\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n const [selectedAgreements, setSelectedAgreements] = useState({});\n const history = useHistory();\n const childBrand = [\n ...childBPList,\n { value: 'new_bp', label: 'Create a new Child Brand' },\n ];\n const agreementDetails = [\n {\n key: 'contract_type',\n label: 'Select Agreement Type',\n options: newChildAgreementTypes,\n },\n {\n key: 'child_account',\n label: 'Select Child Account',\n options: childBrand,\n },\n ];\n\n const createAgreement = (data, newCustomerId) => {\n const customerId =\n data?.child_account?.value === 'new_bp'\n ? newCustomerId\n : data?.child_account?.value;\n const agreementData = {\n contract_type: data.contract_type.value,\n customer_id: customerId,\n };\n createContract(agreementData).then((agreementRes) => {\n if (agreementRes?.status === 201) {\n setIsLoading({ loader: false, type: 'button' });\n history.push(\n PATH_AGREEMENT.replace(':id', customerId).replace(\n ':contract_id',\n agreementRes?.data?.id,\n ),\n );\n }\n });\n };\n\n const onSubmit = (data) => {\n setIsLoading({ loader: true, type: 'button' });\n if (data?.child_account?.value === 'new_bp') {\n createCustomer({\n company_name: data.company_name,\n account_type: 'child',\n child_bp_of: id,\n }).then((res) => {\n if (res?.status === 201) {\n createAgreement(data, res?.data?.id);\n }\n });\n } else {\n createAgreement(data, null);\n }\n };\n\n const IconOption = (dataProps) => (\n
    \n \n );\n\n const getSelectComponents = () => {\n return {\n Option: IconOption,\n DropDownIndicator,\n };\n };\n\n const generateDropdown = (item) => {\n return (\n <>\n \n \n setSelectedAgreements({\n ...selectedAgreements,\n [item.key]: event.value,\n })\n }\n render={({ onChange, ...field }) => (\n ({ ...base, zIndex: 9999 }) }}\n menuPortalTarget={document.body}\n options={item.options}\n placeholder={item.label}\n components={getSelectComponents()}\n componentsValue={{ Option: IconOption }}\n onChange={(event) => {\n onChange(event);\n setSelectedAgreements({\n ...selectedAgreements,\n [item.key]: event.value,\n });\n clearErrors(item.key);\n }}\n />\n )}\n />\n {errors?.[item.key]?.message}\n
    \n \n );\n };\n\n const generateNewBpHTML = () => {\n return (\n \n \n {errors?.company_name?.message}\n \n );\n };\n\n return (\n \n
    \n
    \n
    \n
    \n

    Add New Agreement

    \n
    \n
    \n {agreementDetails.map((item) => (\n \n {generateDropdown(item)}\n \n ))}\n {selectedAgreements?.child_account === 'new_bp' ? (\n <>\n {generateNewBpHTML()}\n
    \n \n ) : null}\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n
    \n {\n clearErrors();\n setShowAgreementModal(false);\n }}\n >\n Discard Changes\n \n
    \n
    \n
    \n \n \n );\n}\n\nAddChildAgreementModal.defaultProps = {\n id: '',\n setShowAgreementModal: () => {},\n childBPList: [],\n};\n\nAddChildAgreementModal.propTypes = {\n id: string,\n setShowAgreementModal: func,\n childBPList: arrayOf(shape({})),\n};\n","import React, { useState, useEffect } from 'react';\n\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport { string } from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\n\nimport Theme from '../../../../theme/Theme';\nimport { feedbackOptions } from '../../../../constants';\nimport { showOnboardingMsg } from '../../../../store/actions/userState';\nimport { AccountSetupIcon } from '../../../../theme/images';\nimport { getCustomerFeedback, saveCustomerFeedback } from '../../../../api';\nimport { ModalBox, Button, FormField, PageLoader } from '../../../../common';\n\nexport default function OtherModals({ id }) {\n const dispatch = useDispatch();\n const AccountSetupcustomStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '480px ',\n width: '100% ',\n minHeight: '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n const showOnBoardingSuccessMsg = useSelector(\n (state) => state.userState.showForgotMsg,\n );\n const [formData, setFormData] = useState({});\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n\n useEffect(() => {\n getCustomerFeedback(id).then((res) => {\n setFormData(res?.data?.[0]);\n });\n }, [id]);\n\n const saveFeedback = () => {\n setIsLoading({ loader: true, type: 'button' });\n const details = {\n customer: id,\n survey_name: 'Next Account Setup Survey',\n feedback: formData?.feedback || null,\n ratings: formData?.ratings,\n status: 'answered',\n };\n saveCustomerFeedback(formData?.id || null, details, id).then((response) => {\n if (response?.status === 201 || response?.status === 200) {\n setIsLoading({ loader: false, type: 'button' });\n dispatch(showOnboardingMsg(false));\n }\n });\n };\n\n return (\n <>\n \n \n
    \n \"company-icon\"\n\n

    Account Set Up Complete

    \n

    \n {' '}\n Congratulations on completing your account setup with Buy Box\n Experts! Expect to hear from your On-boarding Specialist in the\n next 24 hours to walk through final set up items and get you in\n contact with your Brand Growth Strategist.\n

    \n\n

    \n If you have any questions in the meantime please reach out to{' '}\n
    \n \n onboarding@buyboxexperts.com\n \n

    \n

    \n Overall, How easy or difficult was the account setup?\n

    \n\n \n
      \n {feedbackOptions.map((item) => (\n \n \n setFormData({\n ...formData,\n ratings: event.target.value,\n })\n }\n />\n \n \n ))}\n
    \n
    \n\n \n \n setFormData({ ...formData, feedback: event.target.value })\n }\n />\n \n saveFeedback()}\n disabled={!formData?.ratings}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Submit feedback'\n )}\n \n
    \n
    \n \n \n );\n}\n\nconst FeedbackContainer = styled.div`\n ul {\n text-decoration: 'none';\n margin: 0;\n padding: 0;\n\n li {\n display: inline-block;\n border-radius: 50%;\n text-align: center;\n width: 40px;\n height: 40px;\n border: 1px solid ${Theme.gray8};\n background: ${Theme.gray8};\n color: ${Theme.black};\n text-transform: Uppercase;\n display: inline-block;\n font-size: ${Theme.extraMedium};\n font-weight: 600;\n padding-top: 10px;\n\n &.active {\n border: 1px solid ${Theme.orange};\n background: ${Theme.lightOrange};\n }\n label,\n input {\n cursor: pointer;\n }\n }\n }\n`;\n\nOtherModals.propTypes = {\n id: string.isRequired,\n};\n\n// brand assets hidden for now\n// const showBrandAssetSuccessMsg = useSelector(\n// (state) => state.customerState.showBrandAssetMsg,\n// );\n// \n// \n//
    \n// \"company-icon\"\n\n//

    Brand Assets Received

    \n//

    \n// {' '}\n// Thank you for uploading your brand assets. Once you’ve spoken with our\n// Brand Growth Strategist and Creative Strategist, they will review your\n// products and request assets for the products we will use in our brand\n// sample, which will act as a guide for future optimization work. You\n// will receive an email as well as a notification in NEXT that will take\n// you to where you can upload the requested product assets.\n//

    \n\n// dispatch(showBrandAsset(false))}>\n// Ok. Got it!\n// \n//
    \n//
    \n// ;\n","import React, { useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport htmlToDraft from 'html-to-draftjs';\nimport draftToHtml from 'draftjs-to-html';\nimport { Editor } from 'react-draft-wysiwyg';\nimport { EditorState, convertToRaw, ContentState, Modifier } from 'draft-js';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\n\nimport Theme from '../theme/Theme';\n\nfunction EditorComponent({ setData, data, placeholder = null }) {\n const [editorState, setEditorState] = useState(null);\n const [contentState, setContentState] = useState(null);\n const maxLength = 2000;\n\n const editotIconOptions = [\n 'inline',\n 'blockType',\n 'fontSize',\n 'fontFamily',\n 'list',\n 'textAlign',\n 'colorPicker',\n 'remove',\n 'history',\n 'link',\n ];\n\n useEffect(() => {\n let contentBlock;\n\n if (data) {\n contentBlock = htmlToDraft(data);\n } else {\n contentBlock = htmlToDraft('

    ');\n }\n const content = ContentState.createFromBlockArray(\n contentBlock.contentBlocks,\n );\n setEditorState(EditorState.createWithContent(content));\n setContentState(data);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onEditorStateChange = (editorData) => {\n setEditorState(editorData);\n const content = editorData.getCurrentContent();\n const info = draftToHtml(convertToRaw(content))?.replace(/ /g, '');\n setData(info);\n };\n\n const handlePastedText = (input) => {\n const inputLength = editorState.getCurrentContent().getPlainText().length;\n const remainingLength = maxLength - inputLength;\n if (input.length + inputLength >= maxLength) {\n const newContent = Modifier.insertText(\n editorState.getCurrentContent(),\n editorState.getSelection(),\n input.slice(0, remainingLength),\n );\n onEditorStateChange(\n EditorState.push(editorState, newContent, 'insert-characters'),\n );\n return true;\n }\n return false;\n };\n\n const displayEditor = () => {\n return (\n \n {\n const textLength = editorState\n .getCurrentContent()\n .getPlainText().length;\n if (val && textLength >= maxLength) {\n return 'handled';\n }\n return 'not-handled';\n }}\n handlePastedText={handlePastedText}\n stripPastedStyles\n placeholder={placeholder === null ? ' Enter note' : placeholder}\n toolbar={{\n options: editotIconOptions,\n fontFamily: {\n options: [\n 'Arial',\n 'Georgia',\n 'Impact',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana',\n 'Open Sans',\n 'Helvetica-Regular',\n ],\n },\n }}\n />\n \n );\n };\n\n return
    {displayEditor()}
    ;\n}\n\nexport default EditorComponent;\nEditorComponent.defaultProps = {\n setData: () => {},\n data: '',\n placeholder: '',\n};\n\nEditorComponent.propTypes = {\n setData: PropTypes.func,\n data: PropTypes.string,\n\n placeholder: PropTypes.string,\n};\n\nexport const EditorToll = styled.div`\n .DraftEditor-editorContainer {\n line-height: 18px;\n }\n .rdw-editor-wrapper {\n border-radius: 4px;\n }\n .rdw-link-modal {\n min-height: 250px !important;\n }\n\n .rdw-embedded-modal {\n min-height: 250px !important;\n }\n .rdw-link-decorator-icon {\n left: auto;\n margin-left: 2px;\n }\n\n .rdw-editor-main {\n background: ${Theme.gray8};\n border: 1px solid ${Theme.gray45};\n padding: 8px 0;\n min-height: 150px;\n margin: 0 5px;\n\n span {\n color: inherit;\n font-size: ${Theme.extraNormal};\n font-weight: unset;\n }\n }\n\n .rdw-editor-toolbar {\n border: none;\n padding: 0;\n }\n`;\n","/* eslint-disable react/no-danger */\n/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { useEffect, useState, useCallback, useRef } from 'react';\n\nimport debounce from 'lodash.debounce';\nimport ReactTooltip from 'react-tooltip';\nimport $ from 'jquery';\nimport { toast } from 'react-toastify';\nimport { useSelector } from 'react-redux';\nimport { shape, string, bool, func, oneOfType } from 'prop-types';\n\nimport EditorComponent from '../../../common/EditorComponent';\nimport { NotesSideBar } from './CustomerDetailStyles';\nimport { filtersOption } from '../../../constants';\nimport { GroupUser } from '../../../theme/Global';\nimport { getNotes, saveNotes, deleteNote, updateNotes } from '../../../api';\nimport {\n InputSearchWithRadius,\n DropDownSelect,\n HeaderDownloadFuntionality,\n Button,\n CommonPagination,\n ModalRadioCheck,\n CheckBox,\n PageLoader,\n} from '../../../common';\nimport {\n SearchIcon,\n CloseIcon,\n OrangeChat,\n RedTrashIcon,\n DefaultUser,\n PinIcons,\n CaretUp,\n InfoIcon,\n} from '../../../theme/images';\n\nfunction Notes({\n setShowNotesModal,\n customerId,\n setNewNoteEditor,\n showNewNoteEditor,\n showNotesModal,\n customerName,\n}) {\n const [noteContent, setNoteContent] = useState('');\n const [showDelete, setShowDelete] = useState({ show: false });\n const [showDropdown, setShowDropdown] = useState({ show: false });\n const [searchQuery, setSearchQuery] = useState({\n q: JSON.parse(localStorage.getItem('noteFilters'))\n ? JSON.parse(localStorage.getItem('noteFilters')).q\n : '',\n });\n\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'page' });\n\n const [filters, setFilter] = useState(\n JSON.parse(localStorage.getItem('noteFilters')) || {\n archived: 'hide',\n team: [],\n notes: 'All Notes',\n q: JSON.parse(localStorage.getItem('noteFilters'))\n ? JSON.parse(localStorage.getItem('noteFilters')).q\n : '',\n },\n );\n\n const [data, setData] = useState({\n showNotesEditor: false,\n notes: [],\n count: 0,\n currentPage: 1,\n selectedNote: '',\n deleteNote: {},\n showEditor: false,\n showFilterDropdown: false,\n });\n const userInfo = useSelector((state) => state.userState.userInfo);\n const ref = useRef(null);\n const dropdownRef = useRef(null);\n\n const handleClickOutside = (event) => {\n if (ref.current && !ref.current.contains(event.target)) {\n setShowDelete({\n show: false,\n id: '',\n });\n }\n\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowDropdown({ show: false });\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n const getData = useCallback(\n (\n pageNumber,\n searchString = JSON.parse(localStorage.getItem('noteFilters'))\n ? JSON.parse(localStorage.getItem('noteFilters')).q\n : searchQuery.q,\n ) => {\n setIsLoading({ loader: true, type: 'page' });\n\n const selectedFilters = JSON.parse(localStorage.getItem('noteFilters'))\n ? JSON.parse(localStorage.getItem('noteFilters'))\n : { ...filters };\n\n if (!selectedFilters.archived) {\n delete selectedFilters.archived;\n }\n\n getNotes(customerId, searchString, pageNumber, selectedFilters).then(\n (res) => {\n setData({\n ...data,\n notes: res?.results,\n count: res?.count,\n currentPage: pageNumber,\n });\n setIsLoading({ loader: false, type: 'page' });\n },\n );\n },\n [customerId, filters],\n );\n\n useEffect(() => {\n getData(data.currentPage);\n }, [data.currentPage, getData]);\n\n const debouncedSave = useCallback(\n debounce((page, nextValue) => getData(page, nextValue), 500),\n [], // will be created only once initially\n );\n\n const handleChange = (event) => {\n setSearchQuery({ q: event.target.value });\n localStorage.setItem(\n 'noteFilters',\n JSON.stringify({\n ...filters,\n q: event.target.value,\n }),\n );\n debouncedSave(1, event.target.value);\n };\n\n const saveNote = () => {\n const postData = {\n note: noteContent,\n customer: customerId,\n };\n\n setIsLoading({ loader: true, type: 'page' });\n if (data?.selectedNote?.id) {\n updateNotes(data.selectedNote?.id, postData).then(() => {\n setIsLoading({ loader: false, type: 'page' });\n\n setData({ ...data, showNotesEditor: false, showEditor: false });\n getData(data.currentPage);\n });\n } else {\n saveNotes(postData).then(() => {\n setData({ ...data, showNotesEditor: false, showEditor: false });\n setIsLoading({ loader: false, type: 'page' });\n setNewNoteEditor(false);\n getData(1);\n });\n }\n };\n\n const renderEditor = () => {\n return (\n <>\n
    \n \n
    \n
    \n {\n setData({\n ...data,\n showEditor: false,\n showNotesEditor: false,\n selectedNote: '',\n });\n setNewNoteEditor(false);\n }}\n type=\"button\"\n className=\"btn-borderless on-boarding mr-2 pb-2 \"\n >\n Cancel\n \n saveNote()}\n type=\"button\"\n className={\n noteContent.length > 8 && !isLoading.loader\n ? ' btn-primary w-10 on-boarding '\n : ' btn-primary w-10 on-boarding disabled'\n }\n >\n {data.selectedNote ? 'Save' : 'Add Note'}\n \n
    \n \n );\n };\n\n const getInitials = (userData) => {\n const firstName =\n (userData && userData.first_name && userData.first_name.charAt(0)) || '';\n const lastName =\n (userData && userData.last_name && userData.last_name.charAt(0)) || '';\n return firstName + lastName;\n };\n\n const onDeleteNote = (noteId) => {\n deleteNote(noteId).then(() => {\n setShowNotesModal({ ...showNotesModal, deleteNote: true });\n getData(data.currentPage);\n setData({\n ...data,\n selectedNote: '',\n deleteNote: {\n showDeleteConfirmation: false,\n },\n });\n });\n };\n\n const onEditClick = (item) => {\n setData({\n ...data,\n selectedNote: item,\n showNotesEditor: true,\n showEditor: false,\n });\n setNewNoteEditor(false);\n };\n\n const onUpdateNote = (item, dataToPost) => {\n setIsLoading({ loader: true, type: 'button' });\n setData({\n ...data,\n selectedNote: item,\n });\n\n updateNotes(item?.id, dataToPost).then(() => {\n if (dataToPost.is_archieved) {\n toast.success(\n
    \n Note Archived\n \n {\n onUpdateNote(item, {\n is_archieved: false,\n });\n }}\n >\n Undo\n
    \n
    ,\n );\n }\n getData(data.currentPage);\n });\n };\n\n const displayUserInfo = (item) => {\n return (\n
    \n {item?.documents?.length ? (\n \n ) : (\n
    {getInitials(item)}
    \n )}\n
    \n );\n };\n\n const insertShowMoreProp = (note) => {\n const list = data.notes;\n list.forEach((item) => {\n if (item.id === note.id) {\n item.showMore = !item.showMore;\n } else if (!item.showMore) {\n item.showMore = false;\n }\n });\n setData({ ...data, notes: list });\n };\n\n const renderArchiveHtml = (item, isArchieved, label) => {\n return (\n \n onUpdateNote(item, {\n is_archieved: isArchieved,\n })\n }\n >\n {label}\n \n );\n };\n const renderPinnHtml = (item, isPinned, label) => {\n return (\n onUpdateNote(item, { is_pinned: isPinned })}\n >\n \n {label}\n \n );\n };\n\n const displayNotes = () => {\n return data?.notes?.length ? (\n data.notes.map((item) => {\n const noteType = item.note_type;\n return (\n
    \n \n {displayUserInfo(item.user)}\n
    \n \n {item.user?.first_name} {item.user?.last_name}:{' '}\n \n {data.showNotesEditor && data.selectedNote?.id === item.id ? (\n renderEditor()\n ) : (\n <>\n \n \n\n {item?.note.length > 155 ? (\n \n {!item.showMore ? '...' : ''}\n \n ) : (\n ''\n )}\n {item?.note.length > 155 ? (\n {\n insertShowMoreProp(item);\n }}\n >\n {!item.showMore ? ' show more' : ' show less'}\n \n ) : (\n ''\n )}\n \n\n
    \n {item?.created_at}\n \n
      \n {userInfo?.id === item?.user?.id &&\n noteType !== 'bp_profile' ? (\n <>\n onEditClick(item)}\n >\n Edit\n \n {item.is_archieved\n ? renderArchiveHtml(item, false, 'Unarchive')\n : renderArchiveHtml(item, true, 'Archive')}\n {item.hs_note_id ? (\n ''\n ) : (\n
    • \n {\n setShowDelete({\n show: true,\n id: item.id,\n });\n }}\n >\n Delete\n {item.id === showDelete?.id ? (\n onDeleteNote(item.id)}\n >\n \n Confirm Delete\n
    \n ) : (\n ''\n )}\n \n \n )}\n \n ) : (\n ''\n )}\n {item.is_pinned\n ? renderPinnHtml(item, false, 'Unpin')\n : renderPinnHtml(item, true, 'Pin')}\n \n \n
    \n \n )}\n
    \n
    \n \n {item.is_pinned ? (\n \"pin\"\n ) : (\n ''\n )}\n
    \n );\n })\n ) : (\n

    No Notes Found

    \n );\n };\n\n const handlePageChange = (pageNumber) => {\n setData({ ...data, currentPage: pageNumber });\n getData(pageNumber);\n };\n\n const handleFilters = (event, item, section) => {\n setData({ ...data, currentPage: 1 });\n if (section === 'notes') {\n if (item.label === 'My Notes') {\n setFilter({\n ...filters,\n [item.value]: event.target.checked,\n notes: item.label,\n team: [],\n q: searchQuery.q,\n });\n localStorage.setItem(\n 'noteFilters',\n JSON.stringify({\n ...filters,\n [item.value]: event.target.checked,\n notes: item.label,\n team: [],\n q: searchQuery.q,\n }),\n );\n } else {\n delete filters.my_notes;\n if (item.label === 'All Notes') {\n setFilter({\n ...filters,\n notes: item.label,\n team: [],\n q: searchQuery.q,\n });\n localStorage.setItem(\n 'noteFilters',\n JSON.stringify({\n ...filters,\n notes: item.label,\n team: [],\n q: searchQuery.q,\n }),\n );\n } else {\n setFilter({\n ...filters,\n notes: item.label,\n q: searchQuery.q,\n });\n localStorage.setItem(\n 'noteFilters',\n JSON.stringify({\n ...filters,\n notes: item.label,\n q: searchQuery.q,\n }),\n );\n }\n }\n }\n\n if (section === 'archived') {\n setFilter({ ...filters, archived: item.value, q: searchQuery.q });\n localStorage.setItem(\n 'noteFilters',\n JSON.stringify({\n ...filters,\n archived: item.value,\n q: searchQuery.q,\n }),\n );\n }\n\n if (section === 'team') {\n const list = filters.team;\n if (event.target.checked) {\n list.push(item.team);\n setFilter({ ...filters, team: list, q: searchQuery.q });\n localStorage.setItem(\n 'noteFilters',\n JSON.stringify({\n ...filters,\n team: list,\n q: searchQuery.q,\n }),\n );\n } else {\n const newList = [];\n list.map((ele) => {\n if (ele !== item.team) {\n newList.push(ele);\n }\n return '';\n });\n setFilter({ ...filters, team: newList, q: searchQuery.q });\n localStorage.setItem(\n 'noteFilters',\n JSON.stringify({\n ...filters,\n team: newList,\n q: searchQuery.q,\n }),\n );\n }\n }\n };\n\n const teamsHandleCheckbox = (item) => {\n if (filters.my_notes) {\n return false;\n }\n if (filters.notes === 'All Notes') {\n return true;\n }\n if (filters.team && filters.team.includes(item)) {\n return true;\n }\n return false;\n };\n\n const displayFilter = () => {\n return (\n \n
      \n {filtersOption.notes.map((item) => {\n return (\n
    • \n \n \n {item.label}\n handleFilters(event, item, 'notes')}\n defaultChecked={filters.notes === item.label}\n />\n \n \n \n
    • \n );\n })}\n
    • Teams
    • \n {filtersOption.teams.map((teamFilter) => {\n return (\n
    • \n \n \n {teamFilter.team}\n \n handleFilters(event, teamFilter, 'team')\n }\n checked={teamsHandleCheckbox(teamFilter.team)}\n />\n \n \n \n
    • \n );\n })}\n
      \n {filtersOption.archived.map((item) => {\n return (\n
    • \n \n \n {item.label}\n \n handleFilters(event, item, 'archived')\n }\n defaultChecked={filters.archived === item.value}\n />\n \n \n \n
    • \n );\n })}\n
    \n
    \n );\n };\n\n const displayTooltip = () => {\n let message = '';\n message += filters.notes;\n if (filters.notes === 'Team Notes' && filters.team.length) {\n message = `${message}:(${filters.team.join(', ')})`;\n }\n if (filters.archived === 'hide') {\n message += ', Hide Archived';\n }\n if (filters.archived === 'only_archived') {\n message += ', Only Show Archived';\n }\n if (filters.archived === '') {\n message += ', Show Archived';\n }\n return message;\n };\n\n return (\n \n \n
    \n
    \n
    \n
    {customerName}
    \n
    \n
    \n
      \n {\n setData({\n ...data,\n showEditor: true,\n selectedNote: '',\n });\n setNoteContent('');\n $('#editor').scrollTop(0);\n }}\n >\n \"check\"\n Add note \n \n
    • \n \n
    • \n
    • \n {\n setShowNotesModal(false);\n setNewNoteEditor(false);\n }}\n role=\"presentation\"\n />\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n handleChange(e)}\n />\n \n \n
    \n
    \n \n {\n setShowDropdown({ show: !showDropdown.show });\n }}\n >\n {filters?.notes}\n\n \n \n\n \n
    \n
    {displayFilter()}
    \n \n
    \n\n
    \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n
    \n {data.showEditor || showNewNoteEditor ? (\n \n {displayUserInfo(userInfo)}\n
    \n \n {userInfo?.first_name}\n {userInfo?.last_name}:\n \n {renderEditor()}\n
    \n
    \n ) : (\n ''\n )}\n {displayNotes()}\n
    \n
    \n
    \n \n
    \n
    \n
    \n )}\n
    \n
    \n \n );\n}\n\nNotes.defaultProps = {\n setShowNotesModal: () => {},\n customerId: '',\n setNewNoteEditor: () => {},\n showNewNoteEditor: false,\n showNotesModal: {},\n customerName: '',\n};\n\nNotes.propTypes = {\n setShowNotesModal: func,\n customerId: string,\n setNewNoteEditor: func,\n showNewNoteEditor: bool,\n showNotesModal: oneOfType([\n bool,\n shape({\n modal: bool,\n apiCall: bool,\n deleteNote: bool,\n }),\n ]),\n customerName: string,\n};\n\nexport default Notes;\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { func, shape, bool, string, oneOfType } from 'prop-types';\n\nimport Notes from '../Notes';\n\nexport default function NotesModal({\n id,\n showNotesModal,\n setShowNotesModal,\n setNewNoteEditor,\n showNewNoteEditor,\n customerName,\n}) {\n const customStyles = {\n content: {\n top: '50%',\n right: '0px',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n maxHeight: '100%',\n overlay: ' {zIndex: 1000}',\n inset: '0% 0% 0% auto',\n marginRight: '0',\n borderRadius: '0px !important',\n // marginTop: '113px',\n },\n };\n\n return (\n \n \n \n );\n}\n\nNotesModal.defaultProps = {\n setNewNoteEditor: () => {},\n setShowNotesModal: () => {},\n customerName: '',\n};\n\nNotesModal.propTypes = {\n showNotesModal: oneOfType([\n bool,\n shape({\n modal: bool,\n apiCall: bool,\n deleteNote: bool,\n }),\n ]).isRequired,\n id: string.isRequired,\n setNewNoteEditor: func,\n setShowNotesModal: func,\n showNewNoteEditor: bool.isRequired,\n customerName: string,\n};\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport { toast } from 'react-toastify';\nimport { string, func, shape, bool } from 'prop-types';\n\nimport { SearchIcon, CloseIcon } from '../../theme/images';\nimport { addCustomerMembers, getAllMembers } from '../../api';\nimport {\n CommonPagination,\n ModalBox,\n PageLoader,\n SearchInput,\n Button,\n GetInitialName,\n CheckBoxList,\n} from '../../common';\n\nexport default function AddTeamMember({\n id,\n getCustomerMemberList,\n setShowMemberList,\n showMemberList,\n setAgreementDetailModal,\n setShowCloseBtn,\n}) {\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [data, setData] = useState([]);\n const [count, setCount] = useState(null);\n const [pageNumber, setPageNumber] = useState();\n const [filterDetails] = useState({\n name: '',\n clear: false,\n });\n const [userRoleId, setUserRoleId] = useState([]);\n const [disabledRoles, setdisabledRoles] = useState([]);\n const [searchQuery, setSearchQuery] = useState('');\n const [showBtn, setShowBtn] = useState(false);\n\n const getMembers = useCallback(\n (currentPage) => {\n setIsLoading({ loader: true, type: 'page' });\n\n getAllMembers(\n showMemberList.agreement || showMemberList.requestApproval\n ? 'BGS Manager'\n : filterDetails.name.value,\n true,\n currentPage,\n searchQuery,\n ).then((response) => {\n setData(response && response.data && response.data.results);\n setCount(response && response.data && response.data.count);\n setPageNumber(currentPage);\n setIsLoading({ loader: false, type: 'page' });\n });\n },\n [\n searchQuery,\n filterDetails.name.value,\n showMemberList.agreement,\n showMemberList.requestApproval,\n ],\n );\n\n useEffect(() => {\n getMembers();\n }, [getMembers]);\n\n const saveNewMember = () => {\n setIsLoading({ loader: true, type: 'button' });\n const newMembersData = {\n customer: id,\n members: [\n { user: disabledRoles[0]?.['BGS Manager'], role_group: 'BGS Manager' },\n ],\n };\n\n addCustomerMembers(newMembersData).then(() => {\n if (!showMemberList.requestApproval) {\n getCustomerMemberList();\n }\n setShowCloseBtn(true);\n setIsLoading({ loader: false, type: 'button' });\n toast.success(`${userRoleId.length} Team Member(s) Added.`);\n const showAgreementModal = showMemberList.agreement;\n setShowMemberList({ add: false, show: false, modal: false });\n if (!showAgreementModal) setAgreementDetailModal({ pause: false });\n else setAgreementDetailModal(showAgreementModal);\n });\n };\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getMembers(currentPage, searchQuery, filterDetails.name.value);\n };\n\n const searchList = (event) => {\n setSearchQuery(event.target.value);\n setIsLoading({ loader: true, type: 'page' });\n };\n\n const checkDisable = (item) => {\n if (\n disabledRoles.find(\n (op) =>\n Object.keys(op)[0] === item.role && Object.values(op)[0] !== item.id,\n )\n ) {\n return true;\n }\n return false;\n };\n\n const handleRoles = (event, user) => {\n setShowBtn(true);\n\n const list = [...userRoleId];\n const roleName = [...disabledRoles];\n if (event.target.checked && event.target.name === user.id) {\n if (list.indexOf(user.id) === -1) {\n list.push(user.id);\n }\n if (roleName.indexOf(user.role) === -1) {\n roleName.push({ [user.role]: user.id });\n }\n } else if (!event.target.checked && event.target.name === user.id) {\n const remove = list.findIndex((item) => item === user.id);\n const removeRole = roleName.findIndex((item) => item === user.role);\n\n if (remove > -1) {\n list.splice(remove, 1);\n roleName.splice(removeRole, 1);\n }\n }\n setUserRoleId(list);\n setdisabledRoles(roleName);\n checkDisable(user);\n if (list && list.length === 0) setShowBtn(false);\n };\n\n return (\n \n {\n setShowMemberList({\n show: false,\n add: false,\n modal: false,\n });\n setShowCloseBtn(true);\n }}\n role=\"presentation\"\n />\n
    9 ? 'modal-body pb-0' : 'modal-body'}>\n

    Add Team Member

    \n
    \n <>\n
    \n
    \n \n searchList(event)}\n />\n \n \n
    \n
    \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n {data && data.length === 0 ? (\n
    \n No User Found.\n
    \n ) : (\n <>\n {data &&\n data.map((item) => (\n \n
    \n \n
    \n handleRoles(event, item)}\n disabled={checkDisable(item)}\n defaultChecked={userRoleId.find(\n (op) => op === item.id,\n )}\n />\n \n \n \n\n
    \n
    \n {' '}\n {item.first_name || ' '}{' '}\n {item.last_name || ' '}\n
    \n {item.email || ' '}\n
    \n
    \n \n
    \n
    \n {item.role || ''}\n
    \n
    \n
    \n
    \n \n ))}\n \n )}\n \n )}\n \n
    \n {!isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n ''\n )}\n
    \n\n {(showBtn && !isLoading.loader && isLoading.type === 'page') ||\n (isLoading.loader && isLoading.type === 'button') ? (\n <>\n
    \n
    \n saveNewMember()}>\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n `Add ${userRoleId.length} Team Member(s)`\n )}\n \n\n \n setShowMemberList({ show: false, add: false, modal: false })\n }>\n Discard Changes\n \n
    \n \n ) : (\n ''\n )}\n \n );\n}\n\nAddTeamMember.defaultProps = {\n id: '',\n getCustomerMemberList: () => {},\n setShowMemberList: () => {},\n setAgreementDetailModal: () => {},\n setShowCloseBtn: () => {},\n};\n\nAddTeamMember.propTypes = {\n id: string,\n getCustomerMemberList: func,\n setShowMemberList: func,\n showMemberList: shape({\n agreement: shape({ id: string }),\n requestApproval: bool,\n }).isRequired,\n setAgreementDetailModal: func,\n setShowCloseBtn: func,\n};\n","import React, { useState, useEffect } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { toast } from 'react-toastify';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useParams } from 'react-router-dom';\nimport { DebounceInput } from 'react-debounce-input';\nimport { shape, string, func, arrayOf } from 'prop-types';\n\nimport { getCustomerDetails } from '../../store/actions/customerState';\nimport { getAllMembers, addCustomerMembers } from '../../api';\nimport { CloseIcon, SearchIcon, LeftArrowIcon } from '../../theme/images';\nimport { SpreetailRole, SpreetailRoleRestrictMessage } from '../../constants';\nimport {\n Button,\n ModalBox,\n PageLoader,\n GetInitialName,\n CommonPagination,\n InputSearchWithRadius,\n} from '../../common';\n\n// Both the Showing Current Assigned Team Members & New Members to add are in this component\n// There are two lists to handle here 1.assignedMemebers (current team members) & 2. newly Added member list which we will submit on confirm (bulk-create)\n\nconst TeamMembers = ({\n customerID,\n currentMembers,\n setShowMemberList,\n getCustomerMemberList,\n}) => {\n const [loading, setLoading] = useState(false);\n const [buttonLoader, setButtonLoader] = useState(false);\n const [assignedMembers, setAssignedMembers] = useState(currentMembers);\n const [showCureentTeam, setShowCureentTeam] = useState(true);\n const [selectedRole, setSelectedRole] = useState({});\n const [unassignedMembers, setUnassignedMembers] = useState([]);\n const [newMembers, setNewMembers] = useState([]);\n const [pageNumber, setPageNumber] = useState();\n const [totalCount, setTotalCount] = useState(0);\n const [searchQuery, setSearchQuery] = useState('');\n const { id } = useParams();\n const dispatch = useDispatch();\n\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n\n useEffect(() => {\n // Get un-assigned members for current BP\n if (!showCureentTeam) {\n setLoading(true);\n getAllMembers(selectedRole.id, true, pageNumber, searchQuery).then(\n (res) => {\n setTotalCount(res.data.count);\n setUnassignedMembers(res.data.results);\n setLoading(false);\n },\n );\n }\n }, [showCureentTeam, selectedRole, pageNumber, searchQuery]);\n\n // Show un-assigned members for current BP\n const showUnassignedMembers = (member) => {\n setSelectedRole({ ...member.role_group, ...member });\n setShowCureentTeam(false);\n };\n\n // Redirect back to the original team members\n const backToTeamMembers = () => {\n setShowCureentTeam(true);\n setSearchQuery('');\n };\n\n // Add New members to Team\n const addNewMembers = (member) => {\n // Add New members in temporary\n const tempMembers = [...newMembers];\n tempMembers.push({\n user: member.id,\n role_group: selectedRole.id,\n type: selectedRole?.type,\n });\n\n // Also add newly added member in Current Assigned List (Main List)\n const newlyAssigned = assignedMembers.map((oldMember) => {\n if (oldMember.role_group.id === selectedRole.id) {\n return {\n id: Math.random(),\n user: {\n id: member.id,\n first_name: member.first_name,\n last_name: member.last_name,\n email: member.email,\n documents: member.documents,\n },\n role_group: {\n id: selectedRole.id,\n name: selectedRole.name,\n },\n type: selectedRole?.type,\n };\n }\n return oldMember;\n });\n\n // Set New Members to old Team List & updated list (data submit)\n setAssignedMembers([...newlyAssigned]);\n setNewMembers([...tempMembers]);\n setPageNumber();\n setSearchQuery('');\n setShowCureentTeam(true);\n };\n\n // Remove Team members\n const removeTeamMember = (member) => {\n const membersAfterRemove = assignedMembers.map((oldMember) => {\n if (oldMember.id === member.id) {\n return {\n role_group: oldMember.role_group,\n type: member?.type,\n };\n }\n return oldMember;\n });\n\n // Set it in temporary list when we submit data\n const tempMembers = [...newMembers];\n tempMembers.push({ role_group: member.role_group.id, type: member?.type });\n\n setAssignedMembers([...membersAfterRemove]);\n setNewMembers([...tempMembers]);\n };\n\n // Confirm all the changes made to team\n const saveTeamChanges = () => {\n const newMembersData = {\n customer: customerID,\n members: newMembers,\n };\n setButtonLoader(true);\n addCustomerMembers(newMembersData).then(() => {\n setButtonLoader(false);\n setShowMemberList({ add: false, show: false, modal: false });\n toast.success('Team Member(s) updated.');\n getCustomerMemberList();\n dispatch(getCustomerDetails(id, false));\n });\n };\n\n // Clear all the changes made to team\n const discardChanges = () => {\n setAssignedMembers(currentMembers);\n setNewMembers([]);\n };\n\n // Handle Pagination\n const handlePageChange = (currentPage) => {\n setLoading(true);\n setPageNumber(currentPage);\n getAllMembers(selectedRole.id, true, currentPage, searchQuery).then(\n (res) => {\n setTotalCount(res.data.count);\n setUnassignedMembers(res.data.results);\n setLoading(false);\n },\n );\n };\n\n // Handle Search\n const handleSearch = (event) => {\n setSearchQuery(event.target.value);\n event.persist();\n setLoading(true);\n setTimeout(() => {\n getAllMembers(selectedRole.id, true, '', event.target.value).then(\n (res) => {\n setTotalCount(res.data.count);\n setUnassignedMembers(res.data.results);\n setLoading(false);\n },\n );\n }, 1000);\n };\n\n const displayTeamMembers = (member) => {\n return (\n \n
    \n
    \n \n\n
    \n
    {member?.role_group?.name}
    \n {member.id ? (\n
    \n {`${member?.user?.first_name} ${member?.user?.last_name}`}\n
    \n ) : (\n
    \n Unassigned\n
    \n )}\n
    \n
    \n
    \n
    \n {member.id ? (\n <>\n removeTeamMember(member)}\n >\n Remove\n \n \n \n ) : (\n <>\n showUnassignedMembers(member)}\n disabled={isSpreetailUser}\n >\n Add team member\n \n \n \n )}\n\n
    \n
    \n \n );\n };\n\n return (\n \n \n setShowMemberList({ add: false, show: false, modal: false })\n }\n role=\"presentation\"\n />\n
    \n {showCureentTeam ? (\n

    Team Members

    \n ) : (\n backToTeamMembers()}\n >\n {' '}\n \n Back To Team Members\n \n )}\n\n {/* List of current Team members with specific Role */}\n {showCureentTeam ? (\n assignedMembers?.length ? (\n <>\n
    \n
    \n Default Roles\n
    \n
    \n {assignedMembers\n ?.filter((item) => item?.type === 'Default')\n ?.map((member) => {\n return displayTeamMembers(member);\n })}\n
    \n\n
    \n Optional Roles\n
    \n
    \n {assignedMembers\n ?.filter((item) => item?.type === 'Optional')\n ?.filter((item) => item?.role_group?.name !== 'Photography') // PDV-9295 Hide Photography NEXT User Role from FE only\n ?.map((member) => {\n return displayTeamMembers(member);\n })}\n
    \n
    \n\n
    \n
    \n
    \n \n saveTeamChanges()}\n disabled={isSpreetailUser}\n >\n {buttonLoader ? (\n \n ) : (\n <>Confirm\n )}\n \n
    \n
    \n discardChanges()}\n >\n {' '}\n Discard Changes\n \n
    \n
    \n \n
    \n \n ) : (\n
    \n No User Found.\n
    \n )\n ) : (\n <>\n {/* $$$$$$$$$$$$$$$$ Add or Search New Team members for selected Role $$$$$$$$$$$$$$$$$$$ */}\n
    \n \n handleSearch(event)}\n value={searchQuery || ''}\n />\n \n {' '}\n {loading ? (\n \n ) : unassignedMembers?.length === 0 ? (\n
    \n No User Found.\n
    \n ) : (\n <>\n
    \n
    \n {unassignedMembers.map((member) => {\n return (\n \n
    \n \n \n
    \n
    \n {`${member?.first_name} ${member?.last_name}`}\n
    \n {member.role}\n
    \n
    \n
    \n
    \n addNewMembers(member)}\n >\n Add\n \n
    \n
    \n \n );\n })}\n
    \n \n )}\n
    \n {!loading && unassignedMembers?.length !== 0 && totalCount > 10 ? (\n
    \n
    \n \n
    \n ) : null}\n \n )}\n
    \n \n );\n};\n\nTeamMembers.propTypes = {\n customerID: string.isRequired,\n currentMembers: arrayOf(shape({})).isRequired,\n setShowMemberList: func.isRequired,\n getCustomerMemberList: func.isRequired,\n};\n\nexport default TeamMembers;\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { string, func, shape, bool, arrayOf } from 'prop-types';\n\nimport { AddTeamMember, TeamMembers } from '../../../Team';\n\nexport default function TeamMemberModal({\n id,\n currentMembers,\n showMemberList,\n setShowMemberList,\n setAgreementDetailModal,\n customStyles,\n getCustomerMemberList,\n}) {\n // Sort all the member roles as per mentioned in PRD, here on the basis of sequence key\n const getCurrentMembers = () => {\n const sortedMembers = currentMembers.sort((member, nextNemmber) => {\n const memberIndex = member?.sequence;\n const nextMemberIndex = nextNemmber?.sequence;\n return memberIndex < nextMemberIndex\n ? -1\n : memberIndex > nextMemberIndex\n ? 1\n : 0;\n });\n\n return sortedMembers;\n };\n\n return (\n <>\n {showMemberList.modal && !showMemberList.agreement ? (\n \n \n \n ) : showMemberList.modal && showMemberList.agreement ? (\n \n \n \n ) : null}\n \n );\n}\n\nTeamMemberModal.defaultProps = {\n customStyles: {},\n setShowMemberList: () => {},\n setAgreementDetailModal: () => {},\n};\n\nTeamMemberModal.propTypes = {\n setShowMemberList: func,\n id: string.isRequired,\n currentMembers: arrayOf(shape({})).isRequired,\n showMemberList: shape({\n modal: bool,\n add: bool,\n }).isRequired,\n customStyles: shape({}),\n setAgreementDetailModal: func,\n getCustomerMemberList: func.isRequired,\n};\n","import React, { useState, useEffect, useCallback, useRef } from 'react';\n\nimport dayjs from 'dayjs';\nimport DatePicker from 'react-date-picker';\nimport { useParams } from 'react-router-dom';\nimport { toast } from 'react-toastify';\nimport { useDispatch } from 'react-redux';\nimport { func, string, shape } from 'prop-types';\n\nimport Theme from '../../../theme/Theme';\nimport AgreementDetailOuterContainer from './Agreement/AgreementDetailsStyled';\nimport { getCustomerDetails } from '../../../store/actions/customerState';\nimport {\n InvoiceIssueOptions,\n customerStatusNote,\n} from '../../../constants/CustomerConstants';\nimport {\n getcontractForIncollections,\n saveNotes,\n updateCustomerDetails,\n} from '../../../api';\nimport {\n RecurringIcon,\n RightArrowIcon,\n DisabledRecurring,\n DspOnlyIcon,\n} from '../../../theme/images';\nimport {\n Button,\n ModalBox,\n FormField,\n PageLoader,\n ErrorMsg,\n ModalRadioCheck,\n CheckBox,\n} from '../../../common';\n\nexport default function CustomerStatus({ type, setStatusModal, customer }) {\n const dispatch = useDispatch();\n const { id } = useParams();\n const mounted = useRef(false);\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n const [startDate, setStartDate] = useState(new Date());\n const [formData, setFormData] = useState({});\n const [selectedAgreement, setSelectedAgreement] = useState([]);\n const [selectedInvoiceIssueOptions, setSelectedInvoiceIssueOptions] =\n useState(InvoiceIssueOptions[0].value);\n const [contractLoader, setContractLoader] = useState(false);\n const [multipleActiveAgreement, setMultipleActiveAgreement] = useState([]);\n\n useEffect(() => {\n if (\n customer?.status?.value === 'pending cancellation' &&\n type === 'inactive'\n ) {\n setStartDate(customer?.end_date && new Date(customer.end_date));\n }\n }, [customer, type]);\n\n const getContractList = useCallback(() => {\n setContractLoader(true);\n getcontractForIncollections(id).then((res) => {\n if (res?.status === 200) {\n setMultipleActiveAgreement(res?.data.results);\n setContractLoader(false);\n } else {\n setContractLoader(false);\n }\n });\n }, [id]);\n\n useEffect(() => {\n mounted.current = true;\n if (mounted.current && type === 'in collections') getContractList();\n\n return () => {\n mounted.current = false;\n };\n }, [getContractList, type]);\n\n const generateText = () => {\n if (Object.keys(customerStatusNote).includes(type)) {\n return customerStatusNote?.[type];\n }\n return '';\n };\n\n const handleChange = (event, field) => {\n if (field === 'end_date') {\n setStartDate(event);\n setFormData({ ...formData, [field]: event });\n } else {\n setFormData({ ...formData, [field]: event.target.value });\n }\n };\n\n const saveStatus = () => {\n if (formData?.end_date) {\n formData.end_date = dayjs(formData.end_date).format('YYYY-MM-DD');\n }\n\n const checkStatus = () => {\n if (formData.end_date >= dayjs(new Date()).format('YYYY-MM-DD')) {\n return 'pending cancellation';\n }\n return 'inactive';\n };\n\n setIsLoading({ loader: true, type: 'button' });\n let dataFields = {\n status: type === 'inactive' ? checkStatus() : type,\n end_date: formData?.end_date,\n };\n if (type === 'in collections') {\n dataFields = {\n status: type,\n contracts: selectedAgreement,\n in_collections: selectedInvoiceIssueOptions === 'yes',\n };\n }\n\n updateCustomerDetails(customer.id, dataFields).then((response) => {\n if (response?.status === 200) {\n saveNotes({\n note: formData?.note,\n customer: customer.id,\n is_pinned: true,\n }).then(() => {\n toast.success('Status Updated!');\n dispatch(getCustomerDetails(customer.id));\n setStatusModal({ show: false, type });\n setIsLoading({ loader: false, type: 'button' });\n });\n }\n });\n };\n\n const renderExistigContracts = () => {\n return (\n
    \n {multipleActiveAgreement.map((agreement) => {\n const contractType = agreement?.contract_type?.toLowerCase();\n // render only renewed and active contract\n return (\n \n \n {\n if (event.target.checked) {\n setSelectedAgreement([\n ...selectedAgreement,\n event.target.id,\n ]);\n } else {\n setSelectedAgreement(\n selectedAgreement.filter(\n (op) => op !== event.target.id,\n ),\n );\n }\n }}\n checked={selectedAgreement.find((op) => op === agreement?.id)}\n />\n \n \n
    \n op === agreement?.id,\n )\n ? `1px solid ${Theme.orange}`\n : '1px solid #e0e7ff',\n }}\n >\n
  • \n

    \n {' '}\n {contractType?.includes('90')\n ? 'Recurring (90 day notice) Service Agreement'\n : contractType?.includes('dsp')\n ? 'DSP Service Agreement'\n : 'Recurring Service Agreement'}\n

    \n
    \n {agreement?.end_date\n ? `Expires ${dayjs(agreement?.end_date).format(\n 'MMM DD, YYYY',\n )}`\n : ''}{' '}\n {agreement?.primary_marketplace?.name ? (\n <>\n \n \n {agreement?.primary_marketplace?.name} (Primary)\n \n \n ) : null}\n
    \n
  • \n \n
    \n
    \n \n
    \n );\n })}\n
    \n );\n };\n\n const renderStatusIncollectionBody = () => {\n return (\n <>\n {/* add conditon- if have multiple agreement then show the below section. */}\n {multipleActiveAgreement.length > 1 ? (\n \n This Brand Partner has multiple ACTIVE contracts, please select\n which is "IN COLLECTIONS".\n \n ) : null}\n {renderExistigContracts()}\n
    \n

    \n Do we continue to automatically issue invoices to the Brand Partner?\n

    \n
    \n
    \n
      \n {InvoiceIssueOptions.map((item) => (\n
    • \n {' '}\n \n \n {item.label}\n \n setSelectedInvoiceIssueOptions(event.target.value)\n }\n defaultChecked={selectedInvoiceIssueOptions}\n />\n \n \n \n
    • \n ))}\n
    \n
    \n \n For any refund, void, cancellation and manual billing requests, please\n reach out to the Finance team directly.\n \n \n );\n };\n\n const confirmBtnDisabled = () => {\n if (formData?.note === undefined || formData?.note === '') {\n return 'disabled';\n }\n if (type === 'in collections') {\n if (\n selectedAgreement?.length &&\n formData?.note &&\n formData?.note !== ''\n ) {\n return '';\n }\n return 'disabled';\n }\n return '';\n };\n\n return (\n \n {contractLoader && type === 'in collections' ? (\n \n ) : (\n <>\n
    \n

    \n Account Status\n \"\"\n {type}\n

    \n

    {generateText()}

    \n\n {type === 'inactive' ? (\n \n \n \n ) : (\n ''\n )}\n\n \n \n \n {type === 'in collections' ? renderStatusIncollectionBody() : null}\n
    \n\n
    \n saveStatus()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Confirm'\n )}\n \n\n setStatusModal(false)}\n >\n Cancel\n \n
    \n \n )}\n
    \n );\n}\n\nCustomerStatus.defaultProps = {\n type: '',\n};\n\nCustomerStatus.propTypes = {\n type: string,\n setStatusModal: func.isRequired,\n customer: shape({\n id: string,\n note: string,\n end_date: string,\n status: shape({\n value: string,\n }),\n }).isRequired,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { func, shape, bool, string } from 'prop-types';\n\nimport CustomerStatus from '../CustomerStatus';\nimport { CloseIcon } from '../../../../theme/images';\n\nexport default function CustomerStatusModal({\n statusModal,\n customStyles,\n setStatusModal,\n customer,\n}) {\n return (\n \n setStatusModal({ ...statusModal, show: false })}\n role=\"presentation\"\n />\n \n \n );\n}\n\nCustomerStatusModal.defaultProps = {\n customStyles: {},\n setStatusModal: () => {},\n};\n\nCustomerStatusModal.propTypes = {\n statusModal: shape({\n show: bool,\n }).isRequired,\n customStyles: shape({}),\n setStatusModal: func,\n customer: shape({ id: string }).isRequired,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport { func, shape, bool, arrayOf } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport {\n CloseIcon,\n RecurringIcon,\n DspOnlyIcon,\n} from '../../../../theme/images';\nimport { ModalBox, Button, PageLoader } from '../../../../common';\n\nconst AddNewContractModal = ({\n customStyles,\n showAddContractModal,\n setShowAddContractModal,\n typeOfNewAgreement,\n existingContracts,\n confirmContract,\n contractLoader,\n setContractLoader,\n}) => {\n const handleConfirm = () => {\n setContractLoader(true);\n confirmContract();\n };\n const renderExistigContracts = () => {\n return existingContracts.map((contract) => (\n \n \n
    \n \n
    \n
    \n
    \n \n ));\n };\n\n return (\n \n \n setShowAddContractModal({\n agreement: showAddContractModal?.agreement,\n show: false,\n })\n }\n role=\"presentation\"\n />\n \n
    \n

    \n ADD {typeOfNewAgreement.label}{' '}\n {typeOfNewAgreement.sub ? (\n <><{typeOfNewAgreement.sub}>\n ) : null}\n

    {' '}\n

    \n This will replace the existing {typeOfNewAgreement.label} and will\n automatically be cancelled a day before the new agreement's\n signed date.\n

    \n

    \n If multiple agreements of the same type is ACTIVE, all will be\n cancelled once this new agreement is signed.{' '}\n

    \n {renderExistigContracts()}\n \n
    \n
    \n \n );\n};\n\nexport default AddNewContractModal;\n\nAddNewContractModal.defaultProps = {\n existingContracts: [],\n};\n\nAddNewContractModal.propTypes = {\n customStyles: shape({}).isRequired,\n showAddContractModal: bool.isRequired,\n setShowAddContractModal: func.isRequired,\n typeOfNewAgreement: shape({}).isRequired,\n existingContracts: arrayOf(shape({})),\n confirmContract: func.isRequired,\n contractLoader: bool.isRequired,\n setContractLoader: func.isRequired,\n};\n\nconst OrangeFieldSet = styled.div`\n border-radius: 4px;\n border: 1px solid ${Theme.gray11};\n padding: 0 11px 8px 11px;\n cursor: pointer;\n &.active {\n border: 1px solid ${Theme.orange};\n }\n`;\n\nconst CheckBoxContract = styled.div`\n label {\n cursor: pointer;\n }\n\n .checkbox input:checked ~ label:before {\n background-repeat: no-repeat;\n z-index: 2;\n background-position-y: 8px;\n background-position-x: 8px;\n content: '';\n }\n .checkbox input {\n display: none;\n }\n\n .checkbox label:before {\n margin-top: 25px;\n width: 6px;\n float: right;\n height: 11px;\n border: solid ${Theme.orange};\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n`;\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport DatePicker from 'react-datepicker';\nimport NumberFormat from 'react-number-format';\nimport { getDate } from 'date-fns';\nimport { func, number, string } from 'prop-types';\n\n// local files imports\nimport Theme from '../../../../theme/Theme';\nimport useFormatNumber from '../../../../hooks/useFormatNumber';\nimport { EditInput, InputDateDropDown } from '../CustomerDetailStyles';\nimport {\n errorMessages,\n offBoardedRadioButtons,\n cancelAgreementStaticMesssages,\n editBtnMessageForInvoice,\n invoiceTooltipMessages,\n} from '../../../../constants';\nimport {\n getAgreementData,\n agreementCancelPauseRequest,\n getPauseAgreementDSPAmounts,\n} from '../../../../api';\nimport {\n EditExternalLinkOrange,\n InfoIcons,\n LeftArrowIcon,\n OrangeCheckMark,\n} from '../../../../theme/images';\nimport {\n ModalBox,\n Button,\n InputFormField,\n PageLoader,\n ErrorMsg,\n FormField,\n ModalRadioCheck,\n} from '../../../../common';\n\nconst _ = require('lodash');\n\nexport default function AgreementCancelModal({\n agreementId,\n saveDetails,\n contractType,\n agreementCount,\n}) {\n // https://bbe.atlassian.net/browse/PDV-9195 - Contract Cancellation Logic Improvement\n\n // According to the new requirnmemts, request date is the date at which user raise a request for cancelling the agreement and it will be today's date.\n\n // FIRST AGREEMENT TERM --> starting from CONTRACT SIGNED DATE upto the CONTRACT FIRST RENEWED DATE - 1.\n // SECOND AGREEMENT TERM --> starting from CONTRACT FIRST RENEWED DATE upto the END OF CONTRACT FIRST RENEWAL i.e. OUT OF CONTRACT DATE - 1\n // THIRD AGREEMENT TERM --> BEYOND OUT OF CONTRACT DATE.\n\n /* ********** https://bbe.atlassian.net/browse/PDV-9788 - On Pro-rated Retainer Invoicing ********** */\n // According to the new requirnmemt, If user select last service date as future date and then instead of showing the enitire monthley retainer amount, it should only display the pro-rated amount that we will bill the BP for their last retainer. If user select last retainer invoice amount which is already issued then this logic is not applicable.\n // Formula - monthly retainer fee / no. of days in the specific billing cycle x no.of days we are servicing them for the last month.\n // hide edit button on monthly retainer\n\n const mounted = useRef(false);\n const modalContentRef = useRef();\n\n const [modalContentHeight, setModalContentHeight] = useState(0);\n const [loader, setLoader] = useState({ page: false });\n const [isDisabledEdit, setIsDisabledEdit] = useState(true);\n const [isAllowToEdit, setIsAllowToEdit] = useState(false);\n const [agreementData, setAgreementData] = useState({});\n // PDV-8948 - Contract Cancellation - AMC Invoice\n const [cancelDateDetails, setCancelDateDetails] = useState({\n monthlyRetainer: null,\n revShare: null,\n dsp: null,\n amc: null,\n });\n const [dspAmount, setDspAmount] = useState(0);\n const [pauseModalStep, setPauseModalStep] = useState(1);\n const [monthlyRetainerAmount, setMonthlyRetainerAmount] = useState(0);\n const [amcInvoiceAmount, setAmcInvoiceAmount] = useState(0);\n const [largerAmountError, setLargerAmountError] = useState(false);\n const [spanMonthError, setSpanMonthError] = useState(false);\n const [offBordedAnswers, setOffBordedAnswers] = useState({\n is_off_boarded: null,\n is_ending_early: null,\n last_service_date: null,\n cancelling_note: null,\n });\n\n const [isRetainerInvoiceHasFutureDate, setIsRetainerInvoiceHasFutureDate] =\n useState(false);\n const [isDspInvoiceHasFutureDate, setIsDspInvoiceHasFutureDate] =\n useState(false);\n const [isAmcInvoiceHasFutureDate, setIsAmcInvoiceHasFutureDate] =\n useState(false);\n\n // use memo hook for get date\n const requestDate = useMemo(() => {\n return new Date();\n }, []);\n\n // PDV-8559 - cancel agreement logic\n const invoiceDayOfMonthlyRetainer = new Date(\n agreementData?.monthlyRetainer?.lastBillDate,\n )?.getDate();\n\n const retainerDates = [29, 30, 31, 1];\n const invoiceDayOfRevShare = 9;\n const invoiceDayOfDsp = 11;\n const invoiceDayOfAmc = new Date(agreementData?.amc?.lastBillDate)?.getDate();\n // const [selectedRevShareMonth, setSelectedRevShareMonth] = useState(); commented due to- PDV-8464 - changed date logic\n\n useEffect(() => {\n const updateContentHeight = () => {\n if (modalContentRef.current) {\n setModalContentHeight(modalContentRef.current.clientHeight);\n }\n };\n\n updateContentHeight();\n\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList' || mutation.type === 'subtree') {\n updateContentHeight();\n }\n }\n });\n\n if (modalContentRef.current) {\n observer.observe(modalContentRef.current, {\n childList: true,\n subtree: true,\n });\n }\n\n return () => {\n if (observer) {\n observer.disconnect();\n }\n };\n }, [modalContentRef]);\n\n // function - bind invoice api data of agreement\n const bindInvoiceDataOfAgreement = useCallback((invoiceKey, dataItem) => {\n const tempStartDate = dataItem?.start_date\n ? new Date(dataItem?.start_date)\n : null;\n\n if (tempStartDate) {\n const timezoneOffset = tempStartDate?.getTimezoneOffset();\n if (timezoneOffset > 0) {\n tempStartDate.setHours(tempStartDate.getHours() + 12);\n }\n }\n\n const lastBillDate =\n tempStartDate !== null\n ? tempStartDate\n : invoiceKey === 'revShare'\n ? new Date(new Date().setDate(9))\n : invoiceKey === 'dsp'\n ? new Date(new Date().setDate(11))\n : new Date();\n\n const invoiceObj = {\n lastBillDate,\n invoiceAmount: dataItem?.invoice_amount || null,\n currency: dataItem?.currency || '$',\n originalLastBillDate: lastBillDate,\n };\n\n return invoiceObj;\n }, []);\n\n // function - bind agreement api data\n const bindAgreementDataResponse = useCallback(\n (data) => {\n let dummyAgreementData = {};\n for (const item of data) {\n if (item?.invoice_type === 'retainer') {\n dummyAgreementData = {\n ...dummyAgreementData,\n monthlyRetainer: bindInvoiceDataOfAgreement(\n 'monthlyRetainer',\n item,\n ),\n };\n\n if (item?.invoice_amount !== null) {\n setMonthlyRetainerAmount(item?.invoice_amount);\n } else {\n setMonthlyRetainerAmount(0);\n }\n }\n if (item?.invoice_type === 'rev share') {\n dummyAgreementData = {\n ...dummyAgreementData,\n revShare: bindInvoiceDataOfAgreement('revShare', item),\n };\n }\n if (item?.invoice_type === 'dsp service') {\n dummyAgreementData = {\n ...dummyAgreementData,\n dsp: bindInvoiceDataOfAgreement('dsp', item),\n };\n }\n if (item?.invoice_type === 'amc service') {\n dummyAgreementData = {\n ...dummyAgreementData,\n amc: bindInvoiceDataOfAgreement('amc', item),\n };\n\n if (item?.invoice_amount !== null) {\n setAmcInvoiceAmount(item?.invoice_amount);\n } else {\n setAmcInvoiceAmount(0);\n }\n }\n }\n return dummyAgreementData;\n },\n [bindInvoiceDataOfAgreement],\n );\n\n // function - get cancel agreement data\n const getCancelAgreementData = useCallback(\n (id) => {\n setLoader({ page: true });\n getAgreementData(id, 'cancel').then((res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n setLoader({ page: false });\n }\n if (res && res.status === 200) {\n if (res?.data?.invoice_type && res?.data?.invoice_type.length) {\n setAgreementData(\n bindAgreementDataResponse(res?.data?.invoice_type),\n );\n const renewdDate = new Date(res?.data?.renewed_date);\n const outOfcontractDate = new Date(\n res?.data?.out_of_contract_date,\n );\n\n const endDateOfContractFirstTerm = new Date(\n res?.data?.renewed_date,\n );\n endDateOfContractFirstTerm.setDate(\n endDateOfContractFirstTerm.getDate() - 1,\n );\n\n const endDateOfContractSecondTerm = new Date(\n res?.data?.out_of_contract_date,\n );\n endDateOfContractSecondTerm.setDate(\n endDateOfContractSecondTerm.getDate() - 1,\n );\n setOffBordedAnswers({\n is_off_boarded:\n res?.data?.is_off_boarded === true\n ? 'yes'\n : res?.data?.is_off_boarded === false\n ? 'no'\n : null,\n is_ending_early:\n res?.data?.is_ending_early === true\n ? 'yes'\n : res?.data?.is_ending_early === false ||\n new Date() > outOfcontractDate\n ? 'no'\n : null,\n last_service_date: res?.data?.last_service_date\n ? new Date(res?.data?.last_service_date)\n : null,\n cancelling_note: res?.data?.cancelling_note || null,\n contractStartDate:\n res?.data?.contract_start_date !== null\n ? new Date(res?.data?.contract_start_date)\n : new Date(),\n contractRenewedDate: renewdDate,\n outOfcontractDate,\n endDateOfContractFirstTerm,\n endDateOfContractSecondTerm,\n isAgreementFirstTerm: requestDate <= endDateOfContractFirstTerm,\n isAgreementSecondTerm:\n endDateOfContractFirstTerm < requestDate &&\n requestDate <= endDateOfContractSecondTerm,\n isAgreementThirdTerm: requestDate > endDateOfContractSecondTerm,\n });\n } else {\n setAgreementData({});\n }\n }\n\n setLoader({ page: false });\n }\n });\n },\n [bindAgreementDataResponse, requestDate],\n );\n\n // function - get dsp amount from api\n const getDspAmounts = useCallback((id, startDate, endDate) => {\n setLoader({ page: true });\n getPauseAgreementDSPAmounts(id, startDate, endDate).then((res) => {\n if (mounted.current) {\n if (res?.status === 400) {\n setLoader({ page: false });\n }\n if (res && res.status === 200) {\n setDspAmount(res?.data?.start_date_amount);\n }\n setLoader({ page: false });\n }\n });\n }, []);\n\n // function - save cancel agreement data\n const agreementCancelRequest = useCallback(\n (id, data, finalRequestOffboardedAnswers) => {\n setLoader({ ...loader, button: true });\n agreementCancelPauseRequest(\n id,\n data,\n finalRequestOffboardedAnswers,\n 'cancel',\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 400) {\n setLoader({ ...loader, button: false });\n }\n if (res?.status === 201) {\n saveDetails();\n }\n\n setLoader({ ...loader, button: false });\n }\n });\n },\n [loader, saveDetails],\n );\n\n // function - bind cancel agreement final invoice data\n const bindFinalInvoiceData = (invoiceType, invoiceKey) => {\n const invoiceObj = {\n invoice_type: invoiceType,\n end_date: dayjs(cancelDateDetails?.[invoiceKey]).format('YYYY-MM-DD'),\n };\n let finalInvoiceObj = { ...invoiceObj };\n\n if (invoiceKey === 'monthlyRetainer') {\n finalInvoiceObj = {\n ...invoiceObj,\n invoice_amount: monthlyRetainerAmount,\n };\n }\n if (invoiceKey === 'amcService') {\n finalInvoiceObj = {\n ...invoiceObj,\n invoice_amount: amcInvoiceAmount,\n };\n }\n\n return finalInvoiceObj;\n };\n\n // function calculate monthly retainer amount\n const calculateInvoiceAmount = (invoiceKey) => {\n const invoiceAmount = Number(agreementData?.[invoiceKey]?.invoiceAmount);\n let revisedInvoiceAmount = invoiceAmount;\n const isEndingEarly = offBordedAnswers?.is_ending_early;\n const lastServiceDate = new Date(offBordedAnswers?.last_service_date);\n const invoiceDate = new Date(cancelDateDetails?.[invoiceKey]);\n const dayOfInvoiceDate = invoiceDate.getDate();\n const monthOfLastServiceDate = lastServiceDate.getMonth() + 1;\n const yearOfLastServiceDate = lastServiceDate.getFullYear();\n const dayOfLastServiceDate = lastServiceDate.getDate();\n const expectedInvoiceDate = new Date(\n yearOfLastServiceDate,\n dayOfInvoiceDate < dayOfLastServiceDate\n ? monthOfLastServiceDate - 1\n : monthOfLastServiceDate - 2,\n dayOfInvoiceDate,\n );\n\n const isSameInvoiceDate =\n invoiceDate.getFullYear() === expectedInvoiceDate.getFullYear() &&\n invoiceDate.getMonth() === expectedInvoiceDate.getMonth() &&\n dayOfInvoiceDate === expectedInvoiceDate.getDate();\n\n const isProceedForCalculation =\n isEndingEarly === 'yes' &&\n lastServiceDate > requestDate &&\n lastServiceDate > new Date(invoiceDate) &&\n expectedInvoiceDate >= requestDate &&\n isSameInvoiceDate;\n\n /* ********** Conditions for invoice amount calculations ********** */\n // 1 - if user select is_ending_early as 'yes AND\n // 2 - if user select last_service_date as future date AND\n // 3 - if user select last_service_date greater than invoice date which is already issued AND\n // 4 - expected invoice date should be a future date AND\n // 5 - if user select the invoice date equal to expected invoice date.\n\n if (isProceedForCalculation) {\n // Get the last day of the month of selected lastServiceDate\n const totalDaysInMonth = new Date(\n yearOfLastServiceDate,\n monthOfLastServiceDate,\n 0,\n )?.getDate();\n // calculate the number of days between last service date and expected invoice date\n const timeDifference =\n lastServiceDate.getTime() - expectedInvoiceDate.getTime();\n const remainingDays = timeDifference / (1000 * 60 * 60 * 24);\n\n revisedInvoiceAmount = (\n (invoiceAmount / totalDaysInMonth) *\n remainingDays\n )?.toFixed(2);\n }\n\n return revisedInvoiceAmount;\n };\n\n // function bind cancel agreement data\n const bindCancelRequest = () => {\n const retainer = cancelDateDetails?.monthlyRetainer;\n const revShare = cancelDateDetails?.revShare;\n const dsp = cancelDateDetails?.dsp;\n const amc = cancelDateDetails?.amc;\n\n if (agreementCount === 1)\n setOffBordedAnswers({ ...offBordedAnswers, is_off_boarded: 'yes' });\n if (pauseModalStep === 1) {\n setPauseModalStep(2);\n return;\n }\n\n if (pauseModalStep === 2) {\n setMonthlyRetainerAmount(calculateInvoiceAmount('monthlyRetainer'));\n if (agreementData?.dsp) {\n getDspAmounts(\n agreementId,\n dayjs(dsp?.lastBillDate).format('YYYY-MM-DD'),\n null,\n );\n }\n // PDV-8990 - set AMC invoice amount to 0 if AMC invoice has future date.\n if (isAmcInvoiceHasFutureDate) {\n setAmcInvoiceAmount(0);\n } else {\n setAmcInvoiceAmount(agreementData?.amc?.invoiceAmount || 0);\n }\n setPauseModalStep(3);\n return;\n }\n\n const finalRequestOffboardedAnswers = {\n is_off_boarded:\n offBordedAnswers?.is_off_boarded === null\n ? false\n : offBordedAnswers?.is_off_boarded,\n is_ending_early: offBordedAnswers?.is_ending_early || null,\n last_service_date:\n dayjs(offBordedAnswers?.last_service_date)?.format('YYYY-MM-DD') ||\n null,\n cancelling_note: offBordedAnswers?.cancelling_note || '',\n };\n\n const finalRequestData = [];\n if (retainer) {\n finalRequestData.push(\n bindFinalInvoiceData('retainer', 'monthlyRetainer'),\n );\n }\n if (revShare) {\n finalRequestData.push(bindFinalInvoiceData('rev share', 'revShare'));\n }\n if (dsp) {\n finalRequestData.push(bindFinalInvoiceData('dsp service', 'dsp'));\n }\n\n // PDV-8948 - Contract Cancellation - AMC Invoice\n if (amc) {\n finalRequestData.push(bindFinalInvoiceData('amc service', 'amcService'));\n }\n\n // calling agreement cancel request function\n agreementCancelRequest(\n agreementId,\n finalRequestData,\n finalRequestOffboardedAnswers,\n );\n };\n\n // function - month validation for invoices\n const spanMonthValidation = useCallback((selectedDateDetails) => {\n let retainerDate = selectedDateDetails?.monthlyRetainer;\n let revShareDate = selectedDateDetails?.revShare;\n let dspDate = selectedDateDetails?.dsp;\n let amcDate = selectedDateDetails?.amc;\n\n const agreements = [];\n if (retainerDate !== null) {\n retainerDate = new Date(dayjs(retainerDate).format('MM/DD/YY'));\n agreements.push(retainerDate);\n }\n if (revShareDate !== null) {\n revShareDate = new Date(dayjs(revShareDate).format('MM/DD/YY'));\n agreements.push(revShareDate);\n }\n if (dspDate !== null) {\n dspDate = new Date(dayjs(dspDate).format('MM/DD/YY'));\n agreements.push(dspDate);\n }\n if (amcDate !== null) {\n amcDate = new Date(dayjs(amcDate).format('MM/DD/YY'));\n agreements.push(amcDate);\n }\n\n let minDate = agreements[0];\n let maxDate = agreements[0];\n\n for (const item of agreements) {\n const DifferenceInDaysMin = dayjs(minDate).diff(item, 'day');\n const DifferenceInDaysMax = dayjs(maxDate).diff(item, 'day');\n if (DifferenceInDaysMin > 0) {\n minDate = item;\n }\n if (DifferenceInDaysMax < 0) {\n maxDate = item;\n }\n }\n\n if (minDate !== undefined && maxDate !== undefined) {\n minDate = dayjs(minDate).set('date', 11);\n maxDate = dayjs(maxDate).set('date', 11);\n const diff = dayjs(maxDate).diff(minDate, 'month', true);\n if (diff > 2) {\n setSpanMonthError(true);\n } else {\n setSpanMonthError(false);\n }\n }\n }, []);\n\n useEffect(() => {\n mounted.current = true;\n getCancelAgreementData(agreementId);\n return () => {\n mounted.current = false;\n };\n }, [agreementId, getCancelAgreementData]);\n\n useEffect(() => {\n spanMonthValidation(cancelDateDetails);\n }, [cancelDateDetails, spanMonthValidation]);\n\n // get day from last bill date of retainer and amc\n const isRetainerAndAMCBillingDate = (date, invoiceKey) => {\n const day = getDate(date);\n const dayOfLastBillDate =\n agreementData?.[invoiceKey]?.lastBillDate.getDate();\n if (retainerDates.includes(dayOfLastBillDate)) return day === 2;\n return day === dayOfLastBillDate;\n };\n\n // get day from last bill date of rev share invoice\n const isRevShareBillingDate = (date) => {\n const day = getDate(date);\n return day === 9;\n };\n\n // get day from last bill date of dsp invoice\n const isDSPBillingDate = (date) => {\n const day = getDate(date);\n return day === 11;\n };\n\n // function - modal button validation\n const checkButtonValidation = () => {\n // if below condition are satisfy then return true otherwise false\n if (pauseModalStep === 1) {\n if (offBordedAnswers?.last_service_date === null) {\n return true;\n }\n return false;\n }\n\n if (pauseModalStep === 2) {\n if (\n _.isEmpty(agreementData) ||\n (agreementData?.monthlyRetainer &&\n cancelDateDetails?.monthlyRetainer === null) ||\n (agreementData?.revShare && cancelDateDetails?.revShare === null) ||\n (agreementData?.dsp && cancelDateDetails?.dsp === null) ||\n (agreementData?.amc && cancelDateDetails?.amc === null)\n ) {\n return true;\n }\n return false;\n }\n // pause modal step 3\n if (\n // !bgsManagerCheck ||\n largerAmountError ||\n spanMonthError ||\n monthlyRetainerAmount === undefined ||\n monthlyRetainerAmount === ''\n ) {\n return true;\n }\n return false;\n };\n\n // function handle date change of invoice\n const handleDateChange = (date, type) => {\n const selectedDate = new Date(date);\n if (type === 'revShare') {\n selectedDate.setDate(9);\n } else if (type === 'dsp') {\n selectedDate.setDate(11);\n } else if (type === 'amc') {\n // PDV-8948 - Contract Cancellation - AMC Invoice\n const amcInvoiceData = agreementData?.amc;\n const lastBillDate = new Date(amcInvoiceData?.lastBillDate);\n selectedDate.setDate(\n type === 'amc' && [(29, 30, 31, 1)].includes(lastBillDate.getDate())\n ? 2\n : lastBillDate.getDate(),\n );\n } else {\n if (date > new Date()) {\n setIsDisabledEdit(false);\n } else {\n setIsDisabledEdit(true);\n setMonthlyRetainerAmount(\n agreementData?.monthlyRetainer?.invoiceAmount || 0,\n );\n setIsAllowToEdit(false);\n setLargerAmountError(false);\n }\n const agreement = agreementData?.monthlyRetainer;\n const lastBillDate = new Date(agreement?.lastBillDate);\n selectedDate.setDate(\n type === 'monthlyRetainer' &&\n [(29, 30, 31, 1)].includes(lastBillDate.getDate())\n ? 2\n : lastBillDate.getDate(),\n );\n }\n setCancelDateDetails({\n ...cancelDateDetails,\n [type]: selectedDate,\n });\n };\n\n // Compare paramaters date with todays date, if its smallar than todays date then select similar date of next months date.\n const compareAndSetDates = (dateParam, type) => {\n // const monthCount = type === 'dsp' ? 0 : 1; commented due to- PDV-8464 - we can select previoe month for all invoice type.\n const monthCount = type === 'dsp' ? 0 : 0;\n if (dateParam < new Date()) {\n return new Date(dateParam.setMonth(dateParam.getMonth() + monthCount));\n }\n return dateParam;\n };\n\n // Set dates for dsp/retainer/rev share\n useEffect(() => {\n // get selected date for monthly retainer invoice\n let monthlyRetainerselectedDate = new Date();\n setMonthlyRetainerAmount(\n agreementData?.monthlyRetainer?.invoiceAmount || 0,\n );\n\n const agreement = _.cloneDeep(agreementData?.monthlyRetainer);\n const lastBillDate = new Date(agreement?.lastBillDate);\n if (lastBillDate < new Date()) {\n monthlyRetainerselectedDate.setDate(lastBillDate.getDate());\n monthlyRetainerselectedDate = compareAndSetDates(\n monthlyRetainerselectedDate,\n '',\n );\n } else {\n monthlyRetainerselectedDate = lastBillDate;\n }\n\n if (monthlyRetainerselectedDate > new Date()) {\n setIsDisabledEdit(false);\n } else {\n setIsDisabledEdit(true);\n setMonthlyRetainerAmount(\n agreementData?.monthlyRetainer?.invoiceAmount || 0,\n );\n setIsAllowToEdit(false);\n setLargerAmountError(false);\n }\n // get selected date for dsp invoice\n const dspSelectedDate = compareAndSetDates(\n new Date(new Date().setDate(11)),\n 'dsp',\n );\n // get selected date for rev share invoice\n const revShareSelectedDate = compareAndSetDates(\n new Date(new Date().setDate(9)),\n '',\n );\n\n // PDV-8948 - Contract Cancellation - AMC Invoice\n // get selected date for amc invoice\n let amcSelectedDate = new Date();\n const amcInvoiceData = _.cloneDeep(agreementData?.amc);\n const amcLastBillDate = new Date(amcInvoiceData?.lastBillDate);\n\n if (amcLastBillDate < new Date()) {\n amcSelectedDate.setDate(amcLastBillDate.getDate());\n amcSelectedDate = compareAndSetDates(amcSelectedDate, '');\n } else {\n amcSelectedDate = amcLastBillDate;\n }\n\n setCancelDateDetails({\n ...cancelDateDetails,\n dsp: agreementData?.dsp ? dspSelectedDate : null,\n monthlyRetainer: agreementData?.monthlyRetainer\n ? monthlyRetainerselectedDate\n : null,\n revShare: agreementData?.revShare ? revShareSelectedDate : null,\n amc: agreementData?.amc ? amcSelectedDate : null, // PDV-8948 - Contract Cancellation - AMC Invoice\n });\n\n // Set min/max date limits for retainer, dsp, rev share datepicker\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [agreementData]);\n\n // function handle invoice amount change\n const handleAmountChange = (event) => {\n event.preventDefault();\n const actualAmount = agreementData?.monthlyRetainer?.invoiceAmount;\n let { value } = event.target;\n value = value.replace(agreementData?.monthlyRetainer?.currency, '');\n value = value.replaceAll(',', '');\n setMonthlyRetainerAmount(value);\n if (value > actualAmount) {\n setLargerAmountError(true);\n } else {\n setLargerAmountError(false);\n }\n };\n\n // PDV-8559 - cancel agreement logic\n // get Invoice generated Day by invoice key\n const getInvoiceDay = (invoiceKey) => {\n const invoiceDay =\n invoiceKey === 'monthlyRetainer'\n ? invoiceDayOfMonthlyRetainer\n : invoiceKey === 'revShare'\n ? invoiceDayOfRevShare\n : invoiceKey === 'dsp'\n ? invoiceDayOfDsp\n : invoiceKey === 'amc'\n ? invoiceDayOfAmc\n : 1;\n\n return invoiceDay;\n };\n\n // checking id invoice has future bill date or not\n const isInvoiceHasFutureDate = (lastDate, invoiceKey) => {\n // Logic ---> If invoice bill date is greater than today's date and selected last service date i.e. invoice has future bill date and hasn't issued yet to the BP, then disabled the date picker for that invoice.\n const lastServiceDate = new Date(lastDate);\n\n const lastBillDate =\n agreementData?.[invoiceKey]?.originalLastBillDate !== null\n ? new Date(agreementData?.[invoiceKey]?.originalLastBillDate)\n : null;\n\n const hasFutureDate =\n lastBillDate !== null\n ? lastServiceDate <= lastBillDate && lastBillDate >= new Date()\n : false;\n\n return hasFutureDate;\n };\n\n // PDV-8559 - cancel agreement logic\n // calculate deafult max dates for invoice types when user select date of date previuos month as last service date\n const getDefaultSelectedDateForInvoices = (key, selectedDate) => {\n const dayOfLastServiceDate = selectedDate?.getDate();\n const invoiceDay = getInvoiceDay(key);\n const monthLimit =\n key === 'revShare'\n ? dayOfLastServiceDate >= invoiceDay\n ? 1\n : 0\n : dayOfLastServiceDate >= invoiceDay\n ? 0\n : -1;\n\n const getMonth = new Date(selectedDate)?.getMonth() + monthLimit;\n const getCurrentYear = new Date(selectedDate)?.getFullYear();\n const finalDate = new Date(getCurrentYear, getMonth, invoiceDay);\n\n return finalDate;\n };\n\n // calculate the available max date for invoice type\n const getMaxDateForInvoices = (key, selectedDate) => {\n // PDV-8559 - Billing Cancellation Logic Improvement\n const lastServiceDate = new Date(selectedDate);\n const currentMonth = new Date().getMonth();\n const dayOfLastServiceDate = lastServiceDate?.getDate();\n const monthOfLastServiceDate = lastServiceDate?.getMonth();\n const invoiceDay = getInvoiceDay(key);\n let monthLimit = 3;\n\n if (lastServiceDate < new Date()) {\n monthLimit =\n key === 'revShare'\n ? dayOfLastServiceDate >= invoiceDayOfRevShare\n ? 1\n : 0\n : key === 'dsp' || key === 'monthlyRetainer' || key === 'amc'\n ? monthOfLastServiceDate === currentMonth\n ? dayOfLastServiceDate >= invoiceDay\n ? 0\n : -1\n : 0\n : 3;\n } else {\n monthLimit =\n key === 'revShare'\n ? dayOfLastServiceDate >= invoiceDayOfRevShare\n ? 1\n : 0\n : key === 'dsp' || key === 'monthlyRetainer' || key === 'amc'\n ? dayOfLastServiceDate >= invoiceDay\n ? 0\n : -1\n : 3;\n }\n\n const getFutureMonths =\n lastServiceDate !== null\n ? new Date(lastServiceDate).getMonth() + monthLimit\n : new Date().getMonth() + monthLimit;\n const getCurrentYear =\n lastServiceDate !== null\n ? new Date(lastServiceDate).getFullYear()\n : new Date().getFullYear();\n const finalMaxDate = new Date(getCurrentYear, getFutureMonths, invoiceDay);\n\n return finalMaxDate;\n };\n\n // get max date when user select is ending early = 'no'\n const setMaxDate = (date, monthLimit) => {\n const getFutureMonths = new Date(date).getMonth() + monthLimit || 3;\n const getCurrentYear = new Date(date).getFullYear();\n return new Date(getCurrentYear, getFutureMonths, 0);\n };\n\n // calculate the min date for invoices\n const getMinDateForInvoices = (key, selectedDate, isEndingEarly) => {\n let monthLimit = 1;\n const lastServiceDate = new Date(selectedDate);\n const currentMonth = new Date().getMonth();\n const dayOfLastServiceDate = lastServiceDate?.getDate();\n const monthOfLastServiceDate = lastServiceDate?.getMonth();\n\n const invoiceDay = getInvoiceDay(key);\n\n if (isEndingEarly === 'yes' && lastServiceDate < new Date()) {\n monthLimit =\n key === 'dsp'\n ? monthOfLastServiceDate === currentMonth\n ? dayOfLastServiceDate >= invoiceDay\n ? -1\n : -2\n : -1\n : key === 'revShare'\n ? dayOfLastServiceDate >= invoiceDay\n ? 1\n : -1\n : key === 'monthlyRetainer' || key === 'amc'\n ? dayOfLastServiceDate >= invoiceDay\n ? 0\n : -1\n : 1;\n } else {\n if (key === 'monthlyRetainer' || key === 'amc' || key === 'dsp') {\n monthLimit =\n lastServiceDate < new Date()\n ? new Date().getDate() > invoiceDay\n ? -1\n : 0\n : invoiceDay >= new Date().getDate()\n ? -1\n : 0;\n }\n if (key === 'revShare') {\n monthLimit = new Date().getDate() > invoiceDay ? 0 : -1;\n }\n }\n\n const getFutureMonths =\n lastServiceDate < new Date()\n ? lastServiceDate?.getMonth() + monthLimit\n : new Date().getMonth() + monthLimit;\n const getCurrentYear =\n lastServiceDate < new Date()\n ? new Date(lastServiceDate).getFullYear()\n : new Date().getFullYear();\n const finalMinDate = new Date(getCurrentYear, getFutureMonths, invoiceDay);\n\n return finalMinDate;\n };\n\n // get min date\n const setMinDate = (key) => {\n const getFutureMonths = new Date().getMonth() + key;\n const getCurrentYear = new Date().getFullYear();\n return new Date(getCurrentYear, getFutureMonths, 1);\n };\n\n // PDV-8928 - Contract Cancellation Logic Improvement\n // get min date limit for last service date\n const getMinDateLimitForLastServiceDate = () => {\n let tempMinDate = new Date();\n const getMinDate = setMinDate(-1);\n const contractStartDate = new Date(offBordedAnswers?.contractStartDate);\n const outOfcontractDate = new Date(offBordedAnswers?.outOfcontractDate);\n\n if (offBordedAnswers?.is_ending_early === 'yes') {\n if (getMinDate <= contractStartDate) {\n tempMinDate = contractStartDate;\n } else {\n tempMinDate = getMinDate;\n }\n } else if (requestDate > outOfcontractDate) {\n tempMinDate = getMinDate;\n } else {\n outOfcontractDate.setDate(outOfcontractDate?.getDate() - 1);\n tempMinDate = outOfcontractDate;\n }\n return tempMinDate;\n };\n\n // PDV-8928 - Contract Cancellation Logic Improvement\n // https://bbe.atlassian.net/browse/PDV-9195 - Contract Cancellation Logic Improvement\n // get max date limit for last service date\n const getMaxDateLimitForLastServiceDate = () => {\n const isEndingEarly = offBordedAnswers?.is_ending_early;\n const isAgreementFirstTerm = offBordedAnswers?.isAgreementFirstTerm;\n const isAgreementSecondTerm = offBordedAnswers?.isAgreementSecondTerm;\n const isAgreementThirdTerm = offBordedAnswers?.isAgreementThirdTerm;\n const endDateOfContractFirstTerm = new Date(\n offBordedAnswers?.endDateOfContractFirstTerm,\n );\n const endDateOfContractSecondTerm = new Date(\n offBordedAnswers?.endDateOfContractSecondTerm,\n );\n const outOfcontractDate = new Date(offBordedAnswers?.outOfcontractDate);\n let tempMaxDate = new Date();\n\n // if request date is beyond SECOND AGREEMENT TERM then allow user to select max date upto the 3 month beyond requestDate\n if (isAgreementThirdTerm) {\n tempMaxDate = setMaxDate(requestDate, 3);\n } else if (isEndingEarly === 'yes') {\n if (isAgreementFirstTerm) {\n // if request date is within FIRST AGREEMENT TERM then allow user to select max date upto the endDateOfContractFirstTerm\n endDateOfContractFirstTerm.setDate(\n endDateOfContractFirstTerm?.getDate() - 1,\n );\n tempMaxDate = endDateOfContractFirstTerm;\n }\n\n // if request date is is within SECOND AGREEMENT TERM then allow user to select max date upto the end date of first contract renewal i.e. endDateOfContractSecondTerm\n if (isAgreementSecondTerm) {\n endDateOfContractSecondTerm.setDate(\n endDateOfContractSecondTerm?.getDate() - 1,\n );\n tempMaxDate = endDateOfContractSecondTerm;\n }\n } else {\n if (isAgreementFirstTerm) {\n // if request date is within FIRST AGREEMENT TERM then allow user to select max date upto the endDateOfContractFirstTerm\n tempMaxDate = endDateOfContractFirstTerm;\n }\n\n // if request date is is within SECOND AGREEMENT TERM then allow user to select max date upto the 3 month beyond endDateOfContractSecondTerm\n if (isAgreementSecondTerm) {\n tempMaxDate = setMaxDate(outOfcontractDate, 3);\n }\n }\n\n return tempMaxDate;\n };\n\n // handle last service date filter events\n const handleLastServiceDate = (date) => {\n const lastServiceDate = new Date(date);\n setOffBordedAnswers({\n ...offBordedAnswers,\n last_service_date: lastServiceDate,\n });\n\n // PDV-8559 - cancel agreement logic\n // set cancel date details when user select last service date\n let dspSelectedDate = agreementData?.dsp ? cancelDateDetails?.dsp : null;\n let revShareSelectedDate = agreementData?.revShare\n ? cancelDateDetails?.revShare\n : null;\n let monthlyRetainerSelectedDate = agreementData?.monthlyRetainer\n ? cancelDateDetails?.monthlyRetainer\n : null;\n let amcSelectedDate = agreementData?.amc ? cancelDateDetails?.amc : null;\n\n // checking if invoice bill date is future or not -- this is not applicable for rev share\n const isRetainerHasFutureDate = isInvoiceHasFutureDate(\n date,\n 'monthlyRetainer',\n );\n const isDspHasFutureDate = isInvoiceHasFutureDate(date, 'dsp');\n const isAmcHasFutureDate = isInvoiceHasFutureDate(date, 'amc');\n\n setIsRetainerInvoiceHasFutureDate(isRetainerHasFutureDate);\n setIsDspInvoiceHasFutureDate(isDspHasFutureDate);\n setIsAmcInvoiceHasFutureDate(isAmcHasFutureDate);\n\n // when user select is ending early = 'yes' and last service date then set the pre-selected dates for the invoices\n if (lastServiceDate < new Date()) {\n if (!isDspHasFutureDate) {\n dspSelectedDate = getDefaultSelectedDateForInvoices(\n 'dsp',\n lastServiceDate,\n );\n }\n\n revShareSelectedDate = getDefaultSelectedDateForInvoices(\n 'revShare',\n lastServiceDate,\n );\n\n if (!isRetainerHasFutureDate) {\n monthlyRetainerSelectedDate = getDefaultSelectedDateForInvoices(\n 'monthlyRetainer',\n lastServiceDate,\n );\n }\n\n if (!isAmcHasFutureDate) {\n amcSelectedDate = getDefaultSelectedDateForInvoices(\n 'amc',\n lastServiceDate,\n );\n }\n } else {\n if (!isDspHasFutureDate) {\n dspSelectedDate = getMaxDateForInvoices('dsp', lastServiceDate);\n }\n\n revShareSelectedDate = getMaxDateForInvoices('revShare', lastServiceDate);\n\n if (!isRetainerHasFutureDate) {\n monthlyRetainerSelectedDate = getMaxDateForInvoices(\n 'monthlyRetainer',\n lastServiceDate,\n );\n }\n\n if (!isAmcHasFutureDate) {\n amcSelectedDate = getMaxDateForInvoices('amc', lastServiceDate);\n }\n }\n\n // not allow to edit monthly retainer amount if retainer invoice is already issues.\n if (monthlyRetainerSelectedDate > new Date()) {\n setIsDisabledEdit(false);\n } else {\n setIsDisabledEdit(true);\n setIsAllowToEdit(false);\n }\n\n setCancelDateDetails({\n ...cancelDateDetails,\n dsp: agreementData?.dsp ? dspSelectedDate : null,\n monthlyRetainer: agreementData?.monthlyRetainer\n ? monthlyRetainerSelectedDate\n : null,\n revShare: agreementData?.revShare ? revShareSelectedDate : null,\n amc: agreementData?.amc ? amcSelectedDate : null,\n });\n };\n\n // function - handle events when user click on radio buttons\n const handleChangeRadioButtons = (radioName, radioValue) => {\n const endDateOfContractFirstTerm = new Date(\n offBordedAnswers?.endDateOfContractFirstTerm,\n );\n const outOfcontractDate = new Date(offBordedAnswers?.outOfcontractDate);\n const isAgreementFirstTerm = offBordedAnswers?.isAgreementFirstTerm;\n\n if (radioName === 'is_off_boarded' && radioValue === 'no') {\n setOffBordedAnswers({\n ...offBordedAnswers,\n [radioName]: radioValue,\n is_ending_early: null,\n last_service_date: null,\n });\n } else if (radioName === 'is_ending_early') {\n // when user select 'NO'\n if (radioValue === 'no') {\n // if isAgreementFirstTerm then last service date will be the end date of agreement first term\n if (isAgreementFirstTerm) {\n setOffBordedAnswers({\n ...offBordedAnswers,\n [radioName]: radioValue,\n last_service_date: endDateOfContractFirstTerm,\n });\n } else {\n // last service date will be the out od contract date - 1\n outOfcontractDate.setDate(outOfcontractDate?.getDate() - 1);\n setOffBordedAnswers({\n ...offBordedAnswers,\n [radioName]: radioValue,\n last_service_date: outOfcontractDate,\n });\n }\n } else {\n // when user select 'YES'\n let lastDay = null;\n let lastServiceDateOfDsp = _.cloneDeep(cancelDateDetails?.dsp);\n if (contractType === 'dsp only' && lastServiceDateOfDsp) {\n lastServiceDateOfDsp = new Date(\n lastServiceDateOfDsp.setMonth(lastServiceDateOfDsp?.getMonth() + 1),\n );\n const y = lastServiceDateOfDsp.getFullYear();\n const m = lastServiceDateOfDsp.getMonth();\n lastDay = contractType === new Date(y, m + 1, 0);\n }\n setOffBordedAnswers({\n ...offBordedAnswers,\n [radioName]: radioValue,\n last_service_date: lastDay,\n });\n }\n } else {\n setOffBordedAnswers({\n ...offBordedAnswers,\n [radioName]: radioValue,\n last_service_date: null,\n });\n }\n };\n\n // PDV-8559 - cancel agreement logic\n // display invoive static messages\n const displayInvoiceStaticMessages = (invoiceMessage) => {\n return (\n <>\n
    \n \n {invoiceMessage}\n \n \n );\n };\n\n // get tooltip DataTip\n const getTooltipDataTip = (tooltipMessage) => {\n return `
    ${tooltipMessage}
    `;\n };\n\n // display react tooltip with info icon\n const displayTooltipWithInfoIcon = (dataTip, tooltipId) => {\n return (\n <>\n \n \n \n );\n };\n\n // PDV-8559 - cancel agreement logic\n // display invoice types with dates\n const displayInvoiceTypeWithDates = (\n invoiceTypeLabel,\n invoiceTypeKey,\n filterDate,\n tooltipId,\n isDisabled,\n ) => {\n const invoiceLastDate =\n agreementData?.[invoiceTypeKey]?.originalLastBillDate !== null\n ? new Date(agreementData?.[invoiceTypeKey]?.originalLastBillDate)\n : null;\n const invoiceMessage = cancelAgreementStaticMesssages?.[invoiceTypeKey];\n const tooltipMessage = invoiceTooltipMessages?.[invoiceTypeKey];\n const cancelDate = new Date(cancelDateDetails?.[invoiceTypeKey]);\n\n return (\n <>\n
    \n \n \n {isDisabled ? (\n displayInvoiceStaticMessages(\n cancelAgreementStaticMesssages?.futureInvoiceDateMessage,\n )\n ) : (\n <>\n {invoiceTypeKey === 'monthlyRetainer' &&\n cancelDate <= new Date()\n ? displayInvoiceStaticMessages(invoiceMessage)\n : null}\n {invoiceTypeKey === 'revShare'\n ? displayInvoiceStaticMessages(invoiceMessage)\n : null}\n {invoiceTypeKey === 'dsp' && cancelDate <= new Date()\n ? displayInvoiceStaticMessages(invoiceMessage)\n : null}\n {invoiceTypeKey === 'amc' && cancelDate <= new Date()\n ? displayInvoiceStaticMessages(invoiceMessage)\n : null}\n \n )}\n
    \n
    \n \n handleDateChange(date, invoiceTypeKey)}\n filterDate={(date) => filterDate(date, invoiceTypeKey)}\n minDate={\n invoiceTypeKey !== 'revShare' &&\n new Date(offBordedAnswers?.last_service_date) > new Date() &&\n invoiceLastDate !== null &&\n invoiceLastDate > new Date()\n ? invoiceLastDate\n : getMinDateForInvoices(\n invoiceTypeKey,\n offBordedAnswers?.last_service_date,\n offBordedAnswers?.is_ending_early,\n )\n }\n maxDate={getMaxDateForInvoices(\n invoiceTypeKey,\n offBordedAnswers?.last_service_date,\n )}\n dateFormat=\"MM/dd/yyyy\"\n previousMonthAriaLabel={invoiceTypeKey}\n placeholderText=\"MM/DD/YY\"\n disabled={isDisabled}\n />\n \n
    \n
    \n
    \n \n );\n };\n\n // display agreement types dates with tooltip\n const renderAgreementServicesDates = () => {\n return (\n <>\n
    \n
    \n
    \n
    \n invoice type{' '}\n
    \n
    \n
    \n
    \n Last Bill Date\n {displayTooltipWithInfoIcon(\n invoiceTooltipMessages?.lastBillDate,\n 'lastBillInfo',\n )}\n
    \n
    \n
    \n
    \n {agreementData?.monthlyRetainer\n ? displayInvoiceTypeWithDates(\n 'Monthly Retainer',\n 'monthlyRetainer',\n isRetainerAndAMCBillingDate,\n 'retainerInfo',\n isRetainerInvoiceHasFutureDate,\n )\n : null}\n {agreementData?.revShare\n ? displayInvoiceTypeWithDates(\n 'Rev Share',\n 'revShare',\n isRevShareBillingDate,\n 'revShareInfo',\n false,\n )\n : null}\n {agreementData?.dsp\n ? displayInvoiceTypeWithDates(\n 'DSP',\n 'dsp',\n isDSPBillingDate,\n 'dspInfo',\n isDspInvoiceHasFutureDate,\n )\n : null}\n {agreementData?.amc\n ? displayInvoiceTypeWithDates(\n 'AMC',\n 'amc',\n isRetainerAndAMCBillingDate,\n 'amcInfo',\n isAmcInvoiceHasFutureDate,\n )\n : null}\n \n );\n };\n\n // function - display invoice with amount\n const displayInvoiceWithAmount = (invoiceKey, label, amount) => {\n return (\n <>\n
    \n \n
    \n
    \n
    \n {invoiceKey === 'revShare' ? 'Dependent on Sales' : amount}\n
    \n
    \n\n
    \n \n );\n };\n\n // display icons for invoice\n const displayIconForInvoice = (isDisabled, iconLink, type) => {\n return (\n setIsAllowToEdit(type === 'edit')}\n src={iconLink}\n alt={type}\n />\n );\n };\n\n // function html for cancel agreement - invoice amounts\n const renderAgreementServicesAmount = (formatNumber) => {\n return loader?.page ? (\n
    \n \n
    \n ) : (\n
    \n
    \n
    \n
    \n invoice type{' '}\n
    \n
    \n
    \n
    \n Last Bill Amount\n
    \n
    \n
    \n {agreementData?.monthlyRetainer ? (\n <>\n \n \n
    \n
    \n \n \n handleAmountChange(event)}\n value={monthlyRetainerAmount}\n defaultValue={agreementData?.monthlyRetainer?.invoiceAmount}\n thousandSeparator\n allowNegative={false}\n />\n
    \n \n {!isAllowToEdit\n ? displayIconForInvoice(\n isDisabledEdit,\n EditExternalLinkOrange,\n 'edit',\n )\n : displayIconForInvoice(\n largerAmountError,\n OrangeCheckMark,\n 'check',\n )}\n \n \n
    \n {largerAmountError ? (\n
    \n {errorMessages?.retainerAmount}\n
    \n ) : null}\n
    \n \n ) : null}\n\n {agreementData?.revShare\n ? displayInvoiceWithAmount('revShare', 'Rev Share', null)\n : null}\n\n {agreementData?.dsp\n ? displayInvoiceWithAmount(\n 'dsp',\n 'DSP',\n dspAmount !== null\n ? formatNumber(dspAmount, agreementData?.dsp?.currency)\n : '-',\n )\n : null}\n {agreementData?.amc\n ? displayInvoiceWithAmount(\n 'amc',\n 'AMC',\n amcInvoiceAmount !== null\n ? formatNumber(amcInvoiceAmount, agreementData?.amc?.currency)\n : '-',\n )\n : null}\n {cancelDateDetails?.monthlyRetainer && isDisabledEdit ? (\n \n {editBtnMessageForInvoice}\n \n ) : null}\n
    \n );\n };\n\n // fucntion - display radio buttons for cancel agreement\n const renderRadioButtonsForCancelModal = (radioName) => {\n const radioButtons = offBoardedRadioButtons?.map((radio) => {\n if (radio?.name === radioName) {\n return (\n \n = new Date(offBordedAnswers?.outOfcontractDate)\n ? 'disabled'\n : ''\n }`}\n htmlFor={radio?.key}\n >\n {radio?.label}\n \n handleChangeRadioButtons(radio?.name, radio?.value)\n }\n />\n \n \n \n );\n }\n return '';\n });\n return radioButtons;\n };\n\n // function - date picker for last servbice date\n const displayDatePickerForLastserviceDate = () => {\n // if user select 'NO' and contract is running in its first agreement term then disabled the date picker\n const isDisabled =\n offBordedAnswers?.is_ending_early === 'no' &&\n offBordedAnswers?.isAgreementFirstTerm;\n\n return (\n \n handleLastServiceDate(date, 'last_service_date')}\n minDate={getMinDateLimitForLastServiceDate()}\n maxDate={getMaxDateLimitForLastServiceDate()}\n dateFormat=\"MM/dd/yyyy\"\n previousMonthAriaLabel=\"retainer\"\n placeholderText=\"MM/DD/YY\"\n disabled={isDisabled}\n />\n \n );\n };\n\n // display step 1/3 - cancel agreement - reason\n const renderCancelAgreementReason = () => {\n return (\n <>\n
    \n
    \n {loader?.page ? (\n
    \n \n
    \n ) : (\n <>\n {agreementCount === 1 ? (\n
    \n

    \n This is the only remaining ACTIVE agreement for this Brand\n Partner.
    \n Cancelling this agreement will automatically offboard the\n Brand Partner.\n

    \n
    \n ) : null}\n
    \n
    \n Request Date:\n \n {dayjs(requestDate).format('MM/DD/YYYY')}\n \n
    \n
    \n
    \n
    Is the brand partner ending early?
    \n {renderRadioButtonsForCancelModal('is_ending_early')}\n
    \n {offBordedAnswers?.is_ending_early ? (\n
    \n
    What is the last service date?
    \n {displayDatePickerForLastserviceDate()}\n
    \n ) : (\n ''\n )}\n\n
    \n \n \n setOffBordedAnswers({\n ...offBordedAnswers,\n cancelling_note: event.target.value,\n })\n }\n />\n \n
    \n {`${offBordedAnswers?.cancelling_note?.length || 0}/250`}\n
    \n
    \n \n )}\n
    \n \n );\n };\n\n // function - back step button for modal\n const backStepButton = (pauseModalStepNumber) => {\n return (\n {\n setPauseModalStep(pauseModalStepNumber);\n setMonthlyRetainerAmount(\n agreementData?.monthlyRetainer?.invoiceAmount || 0,\n );\n setAmcInvoiceAmount(agreementData?.amc?.invoiceAmount || 0);\n setLargerAmountError(false);\n setIsAllowToEdit(false);\n }}\n className=\"modal-back-arrow\"\n src={LeftArrowIcon}\n alt=\"back-arrow\"\n />\n );\n };\n\n // function - modal footer\n const renderFooter = () => {\n return (\n
    \n {spanMonthError ? (\n {errorMessages.monthSpan}\n ) : null}\n\n
    \n {\n bindCancelRequest();\n }}\n type=\"button\"\n className={`btn-primary on-boarding w-100 ${\n checkButtonValidation() || loader?.page ? 'disabled' : ''\n }`}\n >\n {loader.button ? (\n \n ) : pauseModalStep === 1 || pauseModalStep === 2 ? (\n 'Next'\n ) : (\n 'Confirm and Cancel Agreement'\n )}\n \n
    \n
    \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n
    \n 500 ? 'addendum-service-modal' : ''}\n ref={modalContentRef}\n >\n
    \n {pauseModalStep === 1 ? (\n 'Step 1/3: cancel agreement: Reason'\n ) : pauseModalStep === 2 ? (\n <>\n {backStepButton(1)}\n Step 2/3: cancel agreement: Dates\n \n ) : (\n <>\n {backStepButton(2)}\n Step 3/3: cancel agreement: Amounts\n \n )}\n
    \n {pauseModalStep === 1\n ? renderCancelAgreementReason()\n : pauseModalStep === 2\n ? renderAgreementServicesDates()\n : renderAgreementServicesAmount(useFormatNumber)}\n
    \n
    \n\n {renderFooter()}\n \n );\n}\n\nAgreementCancelModal.defaultProps = {\n agreementId: '',\n contractType: '',\n agreementCount: 1,\n saveDetails: () => {},\n};\n\nAgreementCancelModal.propTypes = {\n agreementId: string,\n contractType: string,\n agreementCount: number,\n saveDetails: func,\n};\n","/* eslint-disable no-else-return */\nimport React, { useState, useEffect, useCallback } from 'react';\n\nimport dayjs from 'dayjs';\nimport Modal from 'react-modal';\nimport copy from 'copy-to-clipboard';\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { components } from 'react-select';\nimport { toast } from 'react-toastify';\nimport { useHistory } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { func, string, bool, shape, oneOfType, arrayOf } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport PastAgreement from './PastAgreement';\nimport AgreementDetails from './AgreementDetails';\nimport OneTimeAgreement from './OneTimeAgreement';\nimport AgreementPauseModal from '../Modals/AgreementPauseModal';\nimport AddChildAgreementModal from '../Modals/AddChildAgreementModal';\nimport { getAccountDetails } from '../../../../store/actions/accountState';\nimport { AddNewContractModal, AgreementCancelModal } from '../Modals';\nimport {\n FileContract,\n ArrowIcons,\n CloseIcon,\n ClockIcon,\n CopyLinkIcon,\n CopyIcon,\n} from '../../../../theme/images';\nimport {\n createContract,\n deleteContract,\n deleteContractAddendum,\n getBGSManagers,\n saveDraftAddendum,\n} from '../../../../api';\nimport {\n PageLoader,\n Tabs,\n ModalBox,\n Button,\n DropDownUncontained,\n DropdownIndicator,\n ViewData,\n DropDownSelect,\n WhiteCard,\n SingleSelectDropdown,\n GrayMessageBar,\n Status,\n} from '../../../../common';\nimport {\n PATH_AGREEMENT,\n contractOptions,\n draftContractOptions,\n newAgreementTypes,\n oneTimeAgreementOptions,\n contractOptionsWithoutPauseCancel,\n contractOptionsWithoutAddendum,\n draftAddendumOptions,\n contractOptionsWithAddendum,\n PATH_CUSTOMER_DETAILS,\n contractOptionsWithPaused,\n contractOptionsWithActivePendingPaused,\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n inactiveContractStatus,\n} from '../../../../constants';\n\nexport default function AgreementDetailContainer({\n id,\n setShowMemberList,\n showModal,\n setShowModal,\n userRole,\n memberData,\n params,\n isBBEInternalUser,\n childBPList,\n}) {\n const history = useHistory();\n const dispatch = useDispatch();\n\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in agreement section\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const agreementMessage =\n params?.nav === 'recurring'\n ? dynamicMessages?.recurring_agreements?.placeholder\n : params?.nav === 'one-time'\n ? dynamicMessages?.one_time_agreements?.placeholder\n : null;\n\n const multipleAgreement = useSelector(\n (state) => state.accountState.multipleAgreement,\n );\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const customerState = useSelector((state) => state.customerState.data);\n const loader = useSelector((state) => state.accountState.isLoading);\n const [showPastAgreements, setShowPastAgreements] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [bgsManagerEmail, setBgsManagerEmail] = useState(null);\n const [showAddContractModal, setShowAddContractModal] = useState({\n agreement: {},\n show: false,\n });\n const [typeOfNewAgreement, setTypeOfNewAgreement] = useState({});\n const [existingContracts, setExistingContracts] = useState([]);\n const [replaceExisting, setReplaceExisting] = useState('alongside');\n const [replacedContract, setReplacedContract] = useState('');\n const [contractLoader, setContractLoader] = useState(false);\n const [isAllowToCancelAgreement, setIsAllowToCancelAgreement] =\n useState(false);\n const [cancelAgreementAccess, setCancelAgreementAccess] = useState(false);\n const [isBgsManager, setIsBgsManager] = useState(false);\n const [showAgreementModal, setShowAgreementModal] = useState(false);\n const [showContractSignatureLinkIcon, setShowContractSignatureLinkIcon] =\n useState(false);\n\n // For Dropdown Options\n const [tempContractOptions, setTempContractOptions] =\n useState(contractOptions);\n const [tempContractOptionsPendingPause, setTempContractOptionsPendingPause] =\n useState(contractOptionsWithoutAddendum);\n const [\n tempContractOptionsWithoutPauseCancel,\n setTempContractOptionsWithoutPauseCancel,\n ] = useState(contractOptionsWithoutPauseCancel);\n const [selectedCustomerId, setSelectedCustomerId] = useState(\n childBPList?.length ? childBPList?.[0]?.value : id,\n );\n const [isBgs, setIsBgs] = useState(false);\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n const { Option } = components;\n\n // PDV-8556 - cancel agreement permissions\n const IconOption = (dataProps) => {\n return dataProps?.data?.value === 'cancel' &&\n !cancelAgreementAccess ? null : (\n \n );\n };\n\n const finalRequestApprovalUser = userInfo?.is_final_request_approvers;\n const firstRequestApprovalUser = userInfo?.is_primary_request_approvers;\n\n useEffect(() => {\n if (childBPList?.length) setSelectedCustomerId(childBPList?.[0]?.value);\n }, [childBPList]);\n\n const checkPermission = useCallback(\n (members) => {\n if (\n userInfo?.role?.includes('BGS Admin') ||\n finalRequestApprovalUser ||\n firstRequestApprovalUser\n ) {\n setIsAllowToCancelAgreement(true);\n }\n if (members) {\n for (const user of members) {\n if (user.user) {\n if (\n (user?.role_group?.name === 'BGS Manager' ||\n user?.role_group?.name === 'BGS' ||\n finalRequestApprovalUser ||\n firstRequestApprovalUser) &&\n user?.user?.id === userInfo?.id\n ) {\n setIsAllowToCancelAgreement(true);\n }\n\n if (\n user?.role_group?.name === 'BGS Manager' &&\n user?.user?.id === userInfo?.id\n ) {\n setIsBgsManager(true);\n }\n\n if (\n user?.role_group?.name === 'BGS' &&\n user?.user?.id === userInfo?.id\n ) {\n setIsBgs(true);\n }\n }\n }\n }\n },\n [userInfo, finalRequestApprovalUser, firstRequestApprovalUser],\n );\n\n // PDV-8556 - Cancel agreement permissions\n // checking the new permission for cancel agreement\n const checkCancelAgreementPermission = useCallback(\n (members) => {\n if (\n userInfo?.role?.includes('BGS Admin') ||\n finalRequestApprovalUser ||\n firstRequestApprovalUser\n ) {\n setCancelAgreementAccess(true);\n } else if (members) {\n for (const user of members) {\n if (user?.user) {\n const isBgsManagerAssignedToBP =\n user?.role_group?.name === 'BGS Manager' &&\n user?.user?.id === userInfo?.id;\n\n if (isBgsManagerAssignedToBP) {\n setCancelAgreementAccess(true);\n }\n }\n }\n }\n },\n [finalRequestApprovalUser, firstRequestApprovalUser, userInfo],\n );\n useEffect(() => {\n checkPermission(memberData);\n checkCancelAgreementPermission(memberData);\n }, [checkCancelAgreementPermission, checkPermission, memberData]);\n\n const checkContractSignatureLinkAccess = useCallback(() => {\n if (userInfo?.role?.includes('BGS Admin')) {\n setShowContractSignatureLinkIcon(true);\n } else {\n for (const user of memberData) {\n if (user?.user) {\n if (\n (user?.role_group?.name === 'BGS Manager' ||\n user?.role_group?.name === 'BGS') &&\n user?.user?.id === userInfo?.id\n ) {\n setShowContractSignatureLinkIcon(true);\n break;\n }\n }\n }\n }\n }, [memberData, userInfo]);\n\n useEffect(() => {\n checkContractSignatureLinkAccess();\n }, [checkContractSignatureLinkAccess]);\n\n const filterAddendumOptions = (param, setOptions) => {\n if (param && param.length) {\n const remainingAddendumOptions = param.filter(\n (item) => item.label !== 'Draft Addendum',\n );\n setOptions(remainingAddendumOptions);\n }\n };\n\n useEffect(() => {\n // Remove \"Draft Addendum\" from options if any addendum contract is not Active/Renewed.\n const showAddendumOption = multipleAgreement?.filter(\n (ele) =>\n ele?.contract_status?.value === 'active' ||\n ele?.contract_status?.value === 'renewed',\n );\n if (showAddendumOption?.length > 0) {\n setTempContractOptions(contractOptions);\n setTempContractOptionsPendingPause(contractOptionsWithoutAddendum);\n setTempContractOptionsWithoutPauseCancel(\n contractOptionsWithoutPauseCancel,\n );\n } else {\n filterAddendumOptions(tempContractOptions, setTempContractOptions);\n filterAddendumOptions(\n tempContractOptionsPendingPause,\n setTempContractOptionsPendingPause,\n );\n filterAddendumOptions(\n tempContractOptionsWithoutPauseCancel,\n setTempContractOptionsWithoutPauseCancel,\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [multipleAgreement]);\n\n useEffect(() => {\n dispatch(getAccountDetails(selectedCustomerId));\n getBGSManagers(selectedCustomerId).then((res) => {\n setBgsManagerEmail(res?.data?.email);\n });\n }, [dispatch, selectedCustomerId]);\n\n const countDays = (value) => {\n const date1 = new Date();\n const date2 = new Date(value);\n const diffTime = Math.abs(date2 - date1);\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return diffDays;\n };\n\n const createNewContract = (details) => {\n // Check if the agreemnt is draft or not & send API params accordingly\n createContract(details).then((res) => {\n setContractLoader(false);\n setIsLoading(false);\n history.push({\n pathname: PATH_AGREEMENT.replace(':id', selectedCustomerId).replace(\n ':contract_id',\n res?.data?.id,\n ),\n state: history?.location?.search,\n showEditView: true,\n });\n });\n };\n\n const addBGSMangerEmail = () => {\n const firstModal = showModal;\n setShowModal(false);\n setShowMemberList({\n show: true,\n add: true,\n modal: true,\n agreement: firstModal,\n });\n };\n\n const getPauseHTML = (agreement) => {\n return (\n <>\n
  • \n

    \n {agreement && agreement.pause_length} Days\n

    \n
  • \n
  • \n {/* */}\n

    \n Paused  \n {dayjs(agreement && agreement.start_date).format('MMM DD, YYYY')}\n

    \n
  • \n
  • \n {/* */}\n

    \n Expires:{' '}\n {dayjs(agreement && agreement.end_date).format('MMM DD, YYYY')}\n

    \n
  • \n \n );\n };\n\n const handleContractOptions = (event, agreementId, contractAddendumId) => {\n switch (event.value) {\n case 'view':\n history.push({\n pathname: PATH_AGREEMENT.replace(':id', selectedCustomerId).replace(\n ':contract_id',\n agreementId,\n ),\n state: history?.location?.search,\n });\n break;\n case 'draft':\n createNewContract({\n customer_id: selectedCustomerId,\n draft_from: agreementId,\n });\n break;\n case 'pause':\n setShowModal({ pause: true, agreementId });\n break;\n case 'cancel':\n setShowModal({ cancel: true, agreementId });\n break;\n case 'edit':\n history.push({\n pathname: PATH_AGREEMENT.replace(':id', selectedCustomerId).replace(\n ':contract_id',\n agreementId,\n ),\n state: history?.location?.search,\n showEditView: true,\n });\n break;\n case 'delete':\n setShowModal({ delete: true, agreementId });\n break;\n case 'addendum':\n saveDraftAddendum(null, { contract: agreementId }).then((res) => {\n if (res.status === 201 || res.status === 200) {\n history.push({\n pathname: PATH_AGREEMENT.replace(\n ':id',\n selectedCustomerId,\n ).replace(':contract_id', agreementId),\n state: history?.location?.search,\n showEditView: true,\n });\n }\n });\n break;\n case 'deleteAddendum':\n setShowModal({ delete: true, contractAddendumId });\n break;\n default:\n break;\n }\n };\n\n const setDropdownOptions = (agreement) => {\n if (isSpreetailUser) {\n return contractOptionsWithPaused;\n }\n if (\n agreement?.contract_status?.value === 'pause' ||\n agreement?.contract_status?.value === 'active pending for pause'\n ) {\n if (isBgsManager || userInfo?.role?.includes('BGS Admin') || isBgs)\n return contractOptionsWithActivePendingPaused;\n else return contractOptionsWithPaused;\n }\n\n if (agreement && agreement?.contract_addendum?.length) {\n // If agreements addendum_status is not active then show this dropdown options\n const notActiveAddendum = agreement.contract_addendum?.filter((item) => {\n if (item.addendum_status?.value) {\n return item?.addendum_status?.value !== 'active';\n }\n return item?.addendum_status !== 'active';\n });\n if (notActiveAddendum?.length) {\n return draftAddendumOptions;\n }\n }\n\n if (\n isAllowToCancelAgreement &&\n agreement?.contract_status?.value === 'active pending for pause' &&\n !agreement?.pause_contract?.is_approved\n ) {\n return tempContractOptionsPendingPause;\n }\n\n if (\n agreement?.contract_status?.value === 'pending for cancellation' ||\n agreement?.contract_status?.value === 'pending cancellation approval'\n ) {\n return tempContractOptionsWithoutPauseCancel;\n }\n\n if (\n (agreement?.contract_status?.value !== 'inactive' &&\n agreement?.contract_status?.value !== 'cancel') ||\n agreement?.contract_status?.value === 'active' ||\n agreement?.contract_status?.value === 'renewed'\n ) {\n // return contractOptions;\n if (isAllowToCancelAgreement) {\n return tempContractOptions;\n }\n return contractOptionsWithAddendum;\n }\n return tempContractOptionsWithoutPauseCancel;\n };\n\n const generateModals = () => {\n if (showModal.pauseApproval) {\n return (\n <>\n

    \n Pause Agreement\n

    \n {!bgsManagerEmail ? (\n

    \n For approval please add the{' '}\n addBGSMangerEmail()}\n role=\"presentation\"\n >\n BGS Manager\n {' '}\n first.\n

    \n ) : (\n ''\n )}\n

    \n {' '}\n Are you sure you would like to request approval to pause this\n agreement?\n

    \n \n );\n }\n if (showModal.contractAddendumId) {\n return (\n <>\n

    \n Delete Addendum\n

    \n
    \n Are you sure you would like to delete this addendum?\n
    This action cannot be undone.
    \n
    \n \n );\n }\n\n return (\n <>\n

    \n Delete Agreement\n

    \n
    \n Are you sure you would like to delete this agreement?\n
    This action cannot be undone.
    \n
    \n \n );\n };\n\n const saveDetails = (status) => {\n setIsLoading(true);\n if (showModal.cancel) {\n setShowModal(false);\n toast.success(\n `We've emailed to the concerned team for cancellation of your agreement.`,\n );\n dispatch(getAccountDetails(selectedCustomerId));\n } else if (showModal.pause) {\n // https://bbe.atlassian.net/browse/PDV-9280 - Billing Pausing Improvement Logic\n if (status) {\n toast.success(`Paused request ${status} successfully...`);\n } else if (!isBgsManager) {\n if (userInfo?.role === 'BGS Admin') {\n toast.success(`Pause Request has been approved.`);\n } else {\n toast.success(\n `We have emailed the BGS manager for Pausing your agreement.`,\n );\n }\n }\n setShowModal(false);\n dispatch(getAccountDetails(selectedCustomerId));\n } else if (showModal.contractAddendumId) {\n deleteContractAddendum(showModal.contractAddendumId).then(() => {\n setShowModal(false);\n setIsLoading(false);\n dispatch(getAccountDetails(selectedCustomerId));\n toast.success('Your Addendum is deleted successfully.');\n });\n } else {\n deleteContract(showModal.agreementId).then(() => {\n setShowModal(false);\n setIsLoading(false);\n dispatch(getAccountDetails(selectedCustomerId));\n toast.success('Your Agreement is deleted successfully.');\n });\n }\n };\n\n const addNewOneTime = (channel) => {\n const data = {\n customer_id: id,\n contract_type: 'one time',\n start_date: dayjs(new Date()).format('YYYY-MM-DD'),\n channel,\n };\n createContract(data).then((res) => {\n history.push({\n pathname: PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n res && res.data && res.data.id,\n ),\n state: history?.location?.search,\n });\n });\n };\n\n const checkExistingAgreements = (agreementType) => {\n if (params.nav === 'one-time') {\n addNewOneTime(agreementType?.channel);\n } else {\n // Filter active & renewed agreements of selected type\n const filteredContracts = multipleAgreement.filter(\n (agreement) =>\n agreement.contract_type === agreementType.value &&\n agreement?.channel?.value === agreementType?.channel &&\n (agreement.contract_status.value === 'active' ||\n agreement.contract_status.value === 'renewed'),\n );\n setExistingContracts([...filteredContracts]);\n\n // if there are any filterd agreements present then show modal, else create new agreement\n if (filteredContracts.length > 0) {\n setShowAddContractModal({ agreement: agreementType, show: true });\n setReplacedContract(filteredContracts[0].id);\n } else {\n setIsLoading(true);\n const data = {\n customer_id: selectedCustomerId,\n contract_type: agreementType.value,\n start_date: dayjs(new Date()).format('YYYY-MM-DD'),\n channel: agreementType?.channel,\n length: agreementType.value === 'dsp only' ? '3 Months' : '12 Months',\n };\n if (agreementType?.channel === 'walmart') {\n data.agency_fee = null;\n }\n createNewContract(data);\n }\n }\n };\n\n const confirmContract = () => {\n // if agreement will run alongside current agreement, else replace existing agreement\n\n const data = {\n customer_id: selectedCustomerId,\n contract_type: typeOfNewAgreement.value,\n channel: 'amazon',\n start_date: dayjs(new Date()).format('YYYY-MM-DD'),\n length:\n typeOfNewAgreement.value === 'dsp only' ? '3 Months' : '12 Months',\n };\n\n // PDV-9693 for walmart contract send agency_fee null\n if (showAddContractModal?.agreement?.channel === 'walmart') {\n data.agency_fee = null;\n data.channel = 'walmart';\n }\n // start date and length field added as per bug ticket PDV-9188\n createNewContract(data);\n };\n\n const checkActiveRenewedAgreementCount = () => {\n const fields = [];\n for (const agreement of multipleAgreement) {\n if (\n agreement.contract_status?.value === 'active' ||\n agreement.contract_status?.value === 'renewed' ||\n (agreement.contract_type.includes('one') &&\n agreement.contract_status?.value === 'active')\n )\n fields.push(agreement);\n }\n return fields.length;\n };\n\n // handle child bp filter events\n const handleChildBPFilterEvents = (event) => {\n if (event?.value !== selectedCustomerId) {\n setSelectedCustomerId(event?.value);\n }\n };\n\n // get single select dropdown components\n const getSingleSelectComponents = () => {\n return {\n DropdownIndicator,\n };\n };\n\n // display child bp filter\n const displayChildBPFilter = () => {\n return (\n op?.value === selectedCustomerId,\n )}\n onChangeHandler={handleChildBPFilterEvents}\n dropdownComponents={getSingleSelectComponents}\n isSearchable={false}\n />\n );\n };\n\n // https://bbe.atlassian.net/browse/PDV-9896\n const displayRemainingDaysOfContractSign = (agreementData) => {\n const tooltipId = `contract-sign-link-${agreementData?.id}`;\n const todaysDate = new Date();\n const contractSignatureDetails = agreementData?.contract_signature_details;\n const signLink = contractSignatureDetails?.contract_signature_url;\n let remainingDays = 0;\n\n if (contractSignatureDetails) {\n const signLinkCreatedDate = contractSignatureDetails?.created_date\n ? new Date(contractSignatureDetails.created_date)\n : new Date();\n const expirationDays = contractSignatureDetails?.expiration_days\n ? Number(contractSignatureDetails.expiration_days)\n : 0;\n\n const signLinkExpiryDate = new Date(signLinkCreatedDate);\n signLinkExpiryDate.setDate(\n signLinkCreatedDate.getDate() + expirationDays,\n );\n const remainingTime = signLinkExpiryDate.getTime() - todaysDate.getTime();\n remainingDays = Math.floor(remainingTime / (1000 * 60 * 60 * 24));\n }\n\n return (\n \n {\n event.preventDefault();\n if (contractSignatureDetails) {\n const isTextCopied = copy(signLink);\n if (isTextCopied) {\n toast.success('Copied');\n }\n }\n }}\n role=\"presentation\"\n >\n \n \n {contractSignatureDetails ? (\n \n \n \n {remainingDays} days\n \n \n ) : null}\n \n
    \n );\n };\n\n const displayContactSignLinkValidity = (agreementData) => {\n return agreementData?.contract_status?.value ===\n 'pending contract signature' && showContractSignatureLinkIcon\n ? displayRemainingDaysOfContractSign(agreementData)\n : null;\n };\n\n // https://bbe.atlassian.net/browse/PDV-4970\n // https://bbe.atlassian.net/browse/PDV-9896\n const displayContractExpiryCountdown = (agreement) => {\n const isContractInactive = inactiveContractStatus?.includes(\n agreement.contract_status?.value?.toLowerCase(),\n );\n\n const daysRemaining = countDays(agreement?.end_date);\n\n if (!agreement?.end_date) return null;\n if (isContractInactive || daysRemaining > 90) return null;\n\n return (\n \n );\n };\n\n return (\n <>\n
    \n
    \n \n
    \n \n
      \n \n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=agreement&nav=recurring&access=${isBBEInternalUser}`,\n )\n }\n role=\"presentation\"\n >\n Recurring Agreements\n \n \n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=agreement&nav=one-time&access=${isBBEInternalUser}`,\n )\n }\n role=\"presentation\"\n >\n One Time Agreements\n \n
    \n
    \n
    \n
    \n {/* Added below condition as per ticket PDV-8398 */}\n {userRole !== 'Customer' &&\n (customerState?.account_type === 'standalone' ||\n (customerState?.account_type === 'child' &&\n customerState?.active_contract)) ? (\n
    \n \n {childBPList?.length ? (\n setShowAgreementModal(true)}\n disabled={isSpreetailUser}\n >\n {' '}\n {' '}\n {params.nav === 'one-time'\n ? 'Add New One Time Agreement'\n : 'Add New Agreement'}\n \n ) : (\n \n {loader ? null : (\n \n )}\n \n )}\n \n \n
    \n ) : (\n ''\n )}\n
    \n
    \n\n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in agreement section */}\n {agreementMessage ? (\n \n ) : null}\n <>\n {loader ? (\n \n ) : (\n <>\n {params?.nav === 'recurring' ? (\n <>\n {childBPList?.length ? (\n \n \n
    \n
    \n
    \n View data for:\n
    {' '}\n
    \n
    \n
    \n {displayChildBPFilter()}\n
    \n
    \n
    \n
    \n ) : null}\n \n !ele.contract_type?.toLowerCase()?.includes('one') &&\n ele?.contract_status?.value !== 'inactive' &&\n ele?.contract_status?.value !== 'cancel',\n )}\n getPauseHTML={getPauseHTML}\n isSpreetailUser={isSpreetailUser}\n showContractSignatureLinkIcon={\n showContractSignatureLinkIcon\n }\n displayContactSignLinkValidity={\n displayContactSignLinkValidity\n }\n displayContractExpiryCountdown={\n displayContractExpiryCountdown\n }\n displayRemainingDaysOfContractSign={\n displayRemainingDaysOfContractSign\n }\n />\n
    \n

    \n {' '}\n Looking for Past Agreements?\n setShowPastAgreements(true)}\n style={{\n fontWeight: '600',\n marginLeft: '7px',\n position: 'relative',\n }}\n >\n {' '}\n View here\n \n \n

    \n
    \n \n ) : (\n <>\n \n op.contract_type.toLowerCase().includes('one'),\n )}\n id={selectedCustomerId}\n history={history}\n DropdownIndicator={DropdownIndicator}\n IconOption={IconOption}\n setShowModal={setShowModal}\n userRole={userRole}\n childBPList={childBPList}\n selectedCustomerId={selectedCustomerId}\n setSelectedCustomerId={setSelectedCustomerId}\n isSpreetailUser={isSpreetailUser}\n displayContactSignLinkValidity={\n displayContactSignLinkValidity\n }\n displayContractExpiryCountdown={\n displayContractExpiryCountdown\n }\n />\n \n )}\n \n )}\n \n {showPastAgreements ? (\n \n op?.contract_status?.value === 'inactive' ||\n op?.contract_status?.value === 'cancel',\n )}\n />\n ) : (\n ''\n )}\n \n {showModal.pause || showModal.cancel ? (\n {\n setShowModal(false);\n }}\n role=\"presentation\"\n />\n ) : null}\n\n {showModal.cancel ? (\n saveDetails()}\n bgsManagerEmail={bgsManagerEmail}\n addBGSMangerEmail={addBGSMangerEmail}\n contractType={\n multipleAgreement?.find(\n (item) => item?.id === showModal?.agreementId,\n )?.contract_type\n }\n agreementCount={checkActiveRenewedAgreementCount()}\n showModal={showModal}\n confirmContract={confirmContract}\n />\n ) : showModal.pause ? (\n saveDetails(status)}\n bgsManagerEmail={bgsManagerEmail}\n addBGSMangerEmail={addBGSMangerEmail}\n setShowModal={setShowModal}\n />\n ) : (\n \n
    \n {generateModals()}\n
    \n
    \n saveDetails()}\n disabled={!bgsManagerEmail && !showModal.delete}\n >\n {isLoading ? (\n \n ) : (\n 'Confirm Delete'\n )}\n \n
    \n
    \n {\n setShowModal({\n ...showModal,\n pause: false,\n pauseApproval: false,\n cancel: false,\n delete: false,\n });\n }}\n >\n Don't Delete\n \n
    \n
    \n
    \n
    \n )}\n \n {showAddContractModal?.show ? (\n \n ) : null}\n \n setShowAgreementModal(false)}\n className=\"float-right cursor p-3\"\n />\n \n \n
    \n \n );\n}\n\nAgreementDetailContainer.defaultProps = {\n memberData: [],\n isBBEInternalUser: 'internal',\n childBPList: [],\n};\n\nAgreementDetailContainer.propTypes = {\n id: string.isRequired,\n memberData: arrayOf(shape({})),\n setShowMemberList: func.isRequired,\n setShowModal: func.isRequired,\n showModal: oneOfType([bool, shape({})]).isRequired,\n userRole: string.isRequired,\n params: shape({}).isRequired,\n isBBEInternalUser: string,\n childBPList: arrayOf(shape({})),\n};\n\nconst AddNewAgreementDropdown = styled.div`\n &.bottom-line {\n margin: -15px 0 0 -15px;\n }\n\n &.agreement-line {\n margin: -13px 0 0 0;\n }\n\n .agreement-btn {\n border-radius: 18px;\n border: 1px solid ${Theme.gray11};\n min-height: 36px;\n text-align: center;\n font-size: ${Theme.extraNormal};\n font-family: ${Theme.baseMediumFontFamily};\n color: ${Theme.black};\n padding: 10px 12px;\n margin-bottom: 10px;\n background-color: ${Theme.gray6};\n }\n\n .dropdown-btn {\n padding: 6px 6px;\n }\n @media only screen and (max-width: 767px) {\n &.bottom-line,\n &.agreement-line {\n margin-top: 15px;\n }\n }\n`;\n","import React from 'react';\n\nimport { arrayOf, bool, func, shape } from 'prop-types';\n\nimport { PARENT } from '../../../../../constants';\nimport {\n WhiteCard,\n ViewData,\n DropdownIndicator,\n DropDowns,\n DropdownOptions,\n DropdownSingleValue,\n} from '../../../../../common';\n\nconst AdPerformanceFilters = ({\n dspPpcFlag,\n marketplaceOptions,\n handleMarketplaceOptions,\n isApiCall,\n selectedMarketplace,\n customerState,\n childBrandOptions,\n selectedChildBrand,\n setSelectedChildBrand,\n displayAccountTypeFilter,\n}) => {\n // get dropdown components\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n const handleChildBrandOptions = (event) => {\n if (event.value !== selectedChildBrand?.value) {\n setSelectedChildBrand(event);\n }\n };\n\n return (\n \n \n
    \n
    \n
    View data for:
    \n
    \n
    \n
    \n {customerState?.account_type === PARENT ? (\n
    \n {DropDowns(\n 'BT-adperformancedata-childBrandFilter',\n 'cursor',\n childBrandOptions,\n selectedChildBrand?.label,\n getSelectComponents,\n '',\n handleChildBrandOptions,\n isApiCall,\n null,\n selectedChildBrand,\n )}\n
    \n ) : (\n
    \n )}\n
    \n {displayAccountTypeFilter(isApiCall)}\n
    \n {dspPpcFlag?.isHavingDsp && !dspPpcFlag?.isHavingPpc ? null : (\n
    \n {DropDowns(\n 'BT-adperformancedata-countryfilter',\n 'cursor ',\n marketplaceOptions,\n selectedMarketplace?.label,\n getSelectComponents,\n '',\n handleMarketplaceOptions,\n isApiCall,\n null,\n selectedMarketplace,\n )}\n
    \n )}\n
    \n
    \n
    \n \n \n );\n};\n\nexport default AdPerformanceFilters;\n\nAdPerformanceFilters.defaultProps = {\n marketplaceOptions: {},\n selectedMarketplace: {},\n dspPpcFlag: {},\n isApiCall: false,\n customerState: {},\n childBrandOptions: [],\n selectedChildBrand: {},\n setSelectedChildBrand: () => {},\n handleMarketplaceOptions: () => {},\n displayAccountTypeFilter: () => {},\n};\n\nAdPerformanceFilters.propTypes = {\n marketplaceOptions: arrayOf(Array),\n selectedMarketplace: shape({}),\n dspPpcFlag: shape({}),\n isApiCall: bool,\n customerState: shape({}),\n childBrandOptions: arrayOf(shape({})),\n selectedChildBrand: shape({}),\n setSelectedChildBrand: func,\n handleMarketplaceOptions: func,\n displayAccountTypeFilter: func,\n};\n","/* eslint-disable camelcase */\nimport React, { useEffect, useRef } from 'react';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport PropTypes, { instanceOf } from 'prop-types';\n\nimport {\n ADCLICKRATE,\n ADCONVERSION,\n ADCOS,\n ADROAS,\n ADSALES,\n ADSPEND,\n COSTPERCLICK,\n CUSTOM,\n NTBSALES,\n PERCENTAGENTBORDERS,\n PERCENTAGENTBSALES,\n SALESPERCLICK,\n customReportGraphColorSet,\n} from '../../../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\nconst _ = require('lodash');\n\nexport default function AdPerformanceChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n groupBy,\n}) {\n const chart = useRef(null);\n useEffect(() => {\n const currencyAxisValue = [\n ADSALES,\n ADSPEND,\n COSTPERCLICK,\n SALESPERCLICK,\n ADROAS,\n NTBSALES,\n ];\n const percentageAxis = [\n ADCONVERSION,\n ADCLICKRATE,\n ADCOS,\n PERCENTAGENTBORDERS,\n PERCENTAGENTBSALES,\n ];\n // const colorSet = {\n // adSales: '#0045B4',\n // adSpend: '#8C54FF',\n // adConversion: '#30A8BD',\n // impressions: '#D6A307',\n // adCos: '#E05D37',\n // adRoas: '#E05D37',\n // adClicks: '#C84EC6',\n // adClickRate: '#A04848',\n // costPerClick: '#89A43C',\n // salesPerClick: '#89A43C',\n // ntbSales: '#89A43C',\n // ntbOrders: '#89A43C',\n // percentageNtbOrders: '#89A43C',\n // percentageNtbSales: '#89A43C',\n // };\n\n const tooltipNames = {\n adSales: 'AD SALES',\n adSpend: 'AD SPEND',\n adConversion: 'AD CONVERSION RATE',\n impressions: 'IMPRESSIONS',\n adCos: 'ACOS',\n adRoas: 'ROAS',\n adClicks: 'CLICKS',\n adClickRate: 'CLICK THROUGH RATE',\n costPerClick: 'COST PER CLICK',\n salesPerClick: 'SALES PER CLICK',\n ntbSales: 'NEW-TO-BRAND (NTB) SALES',\n ntbOrders: 'NEW-TO-BRAND (NTB) ORDERS',\n percentageNtbOrders: '% Of ORDERS NEW-TO-BRAND (NTB)',\n percentageNtbSales: '% Of SALES NEW-TO-BRAND (NTB)',\n };\n\n // create value axis function\n function createValueAxis(axisColor) {\n const localValueAxis = chart.current.yAxes.push(\n new am4charts.ValueAxis(),\n );\n localValueAxis.renderer.grid.template.disabled = true;\n localValueAxis.cursorTooltipEnabled = false;\n localValueAxis.renderer.baseGrid.disabled = true;\n localValueAxis.numberFormatter = new am4core.NumberFormatter();\n localValueAxis.numberFormatter.numberFormat = `#.#a`;\n localValueAxis.extraMax = 0.005;\n localValueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n localValueAxis.numberFormatter.smallNumberPrefixes = [];\n localValueAxis.stroke = am4core.color(axisColor);\n localValueAxis.strokeOpacity = 0.5;\n return localValueAxis;\n }\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.padding(20, 0, 10, 0);\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true; // disabled zoomout button\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n\n let valueAxis = createValueAxis();\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n // function to generate complete tooltip html\n function generateToolTipHTML(tooltipValue, startDate, endDate) {\n let html = '';\n if (groupBy === 'weekly' || groupBy === 'monthly') {\n html = `
    \n From - ${startDate} To - ${endDate}\n
    \n ${tooltipValue}`;\n } else {\n html = tooltipValue;\n }\n\n return html;\n }\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n `;\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (currencyAxisValue.includes(item)) {\n format = `${currencySymbol}#.#a`;\n } else if (percentageAxis.includes(item)) {\n format = `#.#'%'`;\n } else {\n // for unit axis\n format = `#.#a`;\n }\n return format;\n }\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n const snapToSeries = [];\n let tooltipValue = '';\n const dashLine = ``;\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item, index) => {\n const currentLabel = `${item}CurrentLabel`;\n const previousLabel = `${item}PreviousLabel`;\n const colorCode = customReportGraphColorSet[index];\n tooltipValue = `${tooltipValue} ${tooltipNames[item]}`;\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n }\n } else if (percentageAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n '%',\n null,\n )}`;\n }\n } else {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n null,\n '#.#a',\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n null,\n '#.#a',\n )}`;\n }\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const previousValue = `${item}Previous`;\n const seriesName = `${item}Series`;\n const colorCode = customReportGraphColorSet[index];\n\n valueAxis = createValueAxis(colorCode);\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (index === 1) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n // series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = previousValue;\n series2.name = previousValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n // series2.tooltipHTML = `${toolti pValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n series2.propertyFields.strokeDasharray = dashLine;\n series2.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.previousDate,\n dateRange?.previousEndDate,\n );\n });\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item, index) => {\n const value = `${item}CurrentLabel`;\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n customReportGraphColorSet[index],\n value,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (percentageAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n customReportGraphColorSet[index],\n value,\n null,\n '%',\n null,\n )}`;\n } else {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n customReportGraphColorSet[index],\n value,\n null,\n null,\n '#.#a',\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n valueAxis = createValueAxis(customReportGraphColorSet[index]);\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (index === 1 || index === 3) {\n valueAxis.renderer.opposite = true;\n }\n const currentValue = `${item}Current`;\n const seriesName = `${item}Series`;\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n // series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(customReportGraphColorSet[index]);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(\n customReportGraphColorSet[index],\n );\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n return () => chart.current && chart.current.dispose();\n }, [\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n groupBy,\n ]);\n\n return
    ;\n}\n\nAdPerformanceChart.defaultProps = {\n chartData: [],\n currencySymbol: '',\n selectedMetrics: {},\n selectedDF: '',\n groupBy: '',\n};\n\nAdPerformanceChart.propTypes = {\n chartId: PropTypes.string.isRequired,\n chartData: PropTypes.arrayOf(PropTypes.object),\n currencySymbol: PropTypes.string,\n selectedMetrics: instanceOf(Object),\n selectedDF: PropTypes.string,\n groupBy: PropTypes.string,\n};\n","// react imports\nimport React from 'react';\n\n// local file imports\nimport { ArrowDownIcon, ArrowUpIcon, UpDowGrayArrow } from '../theme/images';\n\nconst useValueWithChangeAndPercent = (\n value,\n changeInValue,\n changeInPercent,\n decimalDigits,\n isCustom,\n prefix,\n suffix,\n className,\n) => {\n const showPrefix = prefix || '';\n const showSuffix = suffix || '';\n const showValue = !(\n value === null ||\n value === undefined ||\n isNaN(Number(value))\n );\n\n const showChangeInValue = !(\n changeInValue === null ||\n changeInValue === undefined ||\n isNaN(Number(changeInValue))\n );\n\n const showChangeInPercent = !(\n changeInPercent === null ||\n changeInPercent === undefined ||\n isNaN(Number(changeInPercent))\n );\n\n const changeType =\n changeInValue?.toString().includes('-') ||\n changeInPercent?.toString().includes('-')\n ? '-ve'\n : '+ve';\n\n let showUpDownArrow = false;\n if (showChangeInValue && showChangeInPercent) {\n showUpDownArrow = !(changeInValue === 0 && changeInPercent === 0);\n } else if (showChangeInValue && !showChangeInPercent) {\n showUpDownArrow = !(showChangeInValue === 0);\n } else if (!showChangeInValue && showChangeInPercent) {\n showUpDownArrow = !(changeInPercent === 0);\n } else {\n showUpDownArrow = false;\n }\n\n const upDownArrowHTML = showUpDownArrow ? (\n changeType === '+ve' ? (\n \n ) : (\n \n )\n ) : (\n ''\n );\n\n if (showValue) {\n let formatedMetricsValue = '';\n if (value === 0) {\n formatedMetricsValue = `${showPrefix}${value}${showSuffix}`;\n } else {\n const [splitedValue, decimalValue] = value.toString()?.split('.');\n\n formatedMetricsValue = `${showPrefix}${splitedValue.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n ',',\n )}${\n decimalDigits > 0\n ? decimalValue > 0\n ? `.${decimalValue.slice(0, decimalDigits)}`\n : '.00'\n : ''\n }${showSuffix}`;\n }\n\n let formattedChangeInValue = '';\n if (showChangeInValue) {\n const spliitedChangeInValue = changeInValue.toString().includes('-')\n ? changeInValue.toString().split('-')[1]\n : changeInValue;\n if (spliitedChangeInValue === 0) {\n formattedChangeInValue = `${showPrefix}${changeInValue}${showSuffix}`;\n } else {\n const [splitedValue, decimalValue] = spliitedChangeInValue\n .toString()\n ?.split('.');\n\n formattedChangeInValue = `${showPrefix}${splitedValue.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n ',',\n )}${\n decimalDigits > 0\n ? decimalValue > 0\n ? `.${decimalValue.slice(0, decimalDigits)}`\n : '.00'\n : ''\n }${showSuffix}`;\n }\n }\n\n const formattedChangeInPercent = showChangeInPercent\n ? changeInPercent === 0\n ? '0%'\n : changeInPercent.toString().includes('-')\n ? `${Number(changeInPercent.toString().split('-')[1]).toFixed(2)}%`\n : `${Number(changeInPercent.toString()).toFixed(2)}%`\n : 'N/A';\n\n return (\n
    \n {formatedMetricsValue}\n {isCustom ? null : (\n \n {upDownArrowHTML}\n \n {formattedChangeInValue}{' '}\n \n {showChangeInValue ? (\n \n ({formattedChangeInPercent})\n \n ) : (\n \n {formattedChangeInPercent}\n \n )}\n
    \n )}\n
    \n );\n }\n\n return 'N/A';\n};\n\nexport default useValueWithChangeAndPercent;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport dayjs from 'dayjs';\n\nimport { toast } from 'react-toastify';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../../theme/Theme';\nimport useValueWithChangeAndPercent from '../../../../../../hooks/useValueWithChangeAndPercent';\nimport { getSponsoredAdAsinPerformanceData } from '../../../../../../api';\nimport {\n asinStatiMessages,\n sponsoredAsinTableConstant,\n} from '../../../../../../constants';\nimport {\n CommonPagination,\n DesktopTable,\n NoData,\n PageLoader,\n VisibleScrollableTable,\n} from '../../../../../../common';\n\nfunction SponsoredAsinPerformance({\n isCallSPAsinApi,\n downloadReportLoader,\n asinPerformanceLoader,\n customerId,\n childBrandId,\n selectedDF,\n accountType,\n currencySymbol,\n selectedMarketplace,\n sponsoredAdType,\n adState,\n setIsCallSPAsinApi,\n setDownloadReportLoader,\n setAsinPerformanceLoader,\n displayProductNameWithTooltip,\n displaySponsoredAsinTable,\n bindSpAsinPerformanceData,\n}) {\n const isTablet = useMediaQuery({ minWidth: 768 });\n const isCustom = selectedDF === 'custom';\n const [orderBy, setOrderBy] = useState('ad_sales');\n const [orderByKey, setOrderByKey] = useState('-ad_sales');\n const [pageCount, setPageCount] = useState(1);\n const [pageNumber, setPageNumber] = useState(1);\n const [fieldsetCollapse, setFieldsetCollapse] = useState({\n id: 0,\n isOpen: true,\n });\n const [sponsoredAsinData, setSponsoredAsinData] = useState([]);\n const [asinMessage, setAsinMessage] = useState(\n asinStatiMessages?.asinDataAvailabilityMessage,\n );\n\n // callback function for get sposored ad asin performance data\n const getAsinPerformanceData = useCallback(\n (orderByApiKey, page, startDate, endDate) => {\n setAsinPerformanceLoader(true);\n setSponsoredAsinData([]);\n\n const startDateLocal = dayjs(startDate).format('DD-MM-YYYY');\n const endDateLocal = dayjs(endDate).format('DD-MM-YYYY');\n\n // PDV-8401 - Logic - point no. 2 - when user select custom end date 4 months before today\n const fourMonthBeforeToday = new Date();\n fourMonthBeforeToday.setMonth(fourMonthBeforeToday.getMonth() - 4);\n\n if (endDate <= fourMonthBeforeToday) {\n setSponsoredAsinData([]);\n setAsinMessage('Available historical data is up to 4 months only');\n setAsinPerformanceLoader(false);\n } else {\n getSponsoredAdAsinPerformanceData(\n customerId,\n accountType,\n selectedMarketplace,\n sponsoredAdType,\n orderByApiKey,\n page,\n selectedDF,\n startDateLocal,\n endDateLocal,\n childBrandId,\n null,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.results?.length > 0) {\n setPageCount(response?.data?.count);\n setSponsoredAsinData(\n bindSpAsinPerformanceData(response?.data?.results),\n );\n } else {\n setSponsoredAsinData([]);\n setAsinMessage(asinStatiMessages?.asinDataAvailabilityMessage);\n }\n\n setAsinPerformanceLoader(false);\n });\n }\n },\n\n [\n accountType,\n bindSpAsinPerformanceData,\n childBrandId,\n customerId,\n selectedDF,\n selectedMarketplace,\n setAsinPerformanceLoader,\n sponsoredAdType,\n ],\n );\n\n // use effect\n useEffect(() => {\n if (!isCallSPAsinApi) {\n getAsinPerformanceData(\n orderByKey,\n 1,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n }\n setOrderBy('ad_sales');\n setOrderByKey('-ad_sales');\n setPageNumber(1);\n setIsCallSPAsinApi(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getAsinPerformanceData, isCallSPAsinApi]);\n\n // const handle download report events\n const handleDownloadReportEvents = useCallback(\n (\n selectedAccountType,\n marketplace,\n spAdType,\n timeframe,\n orderByApiKey,\n customDate,\n selectedChildBrand,\n ) => {\n const startDate = dayjs(customDate?.[0]?.startDate).format('DD-MM-YYYY');\n const endDate = dayjs(customDate?.[0]?.endDate).format('DD-MM-YYYY');\n\n getSponsoredAdAsinPerformanceData(\n customerId,\n selectedAccountType,\n marketplace,\n spAdType,\n orderByApiKey,\n null,\n timeframe,\n startDate,\n endDate,\n selectedChildBrand,\n true,\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n setDownloadReportLoader(false);\n } else {\n toast.error('Oops! Something went wrong...');\n setDownloadReportLoader(false);\n }\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n useEffect(() => {\n if (downloadReportLoader) {\n handleDownloadReportEvents(\n accountType,\n selectedMarketplace,\n sponsoredAdType,\n selectedDF,\n orderByKey,\n adState,\n childBrandId,\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [adState, downloadReportLoader, handleDownloadReportEvents, selectedDF]);\n\n // handle sorting events of asin table\n const handleSortingEvents = (key) => {\n let orderByApiKey = key;\n setOrderBy(key);\n if (orderByKey === `-${key}`) {\n setOrderByKey(key);\n orderByApiKey = key;\n } else {\n setOrderByKey(`-${key}`);\n orderByApiKey = `-${key}`;\n }\n getAsinPerformanceData(\n orderByApiKey,\n pageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n // handle fieldset collapse events\n const handleFieldsetCollapse = (id) => {\n if (id === fieldsetCollapse?.id) {\n if (fieldsetCollapse?.isOpen) {\n setFieldsetCollapse({ id, isOpen: false });\n } else {\n setFieldsetCollapse({ id, isOpen: true });\n }\n } else {\n setFieldsetCollapse({ id, isOpen: true });\n }\n };\n\n // handle pagination events\n const handlePaginationEvents = (currentPage) => {\n setPageNumber(currentPage);\n getAsinPerformanceData(\n orderByKey,\n currentPage,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n // display sortable up and down arrow icon\n const displaySortableUpDownArrow = (key) => {\n return (\n \n );\n };\n\n // display asin performance table\n const DisplayAsinPerformnaceTable = (numberFormatter) => {\n const tableDivId = 'visible-scrollable-table';\n const tableMinWidth =\n sponsoredAdType === 'sponsored_display_campaign_report'\n ? '2600px'\n : '1800px';\n const tableCols =\n sponsoredAdType === 'sponsored_display_campaign_report'\n ? sponsoredAsinTableConstant\n : sponsoredAsinTableConstant.slice(0, 12);\n return (\n \n \n \n \n {tableCols?.map((item) => {\n return (\n {\n if (item?.isSortable) handleSortingEvents(item?.key);\n }}\n style={{ width: item?.width }}\n >\n {item?.label}\n {item?.isSortable\n ? displaySortableUpDownArrow(item?.key)\n : null}\n \n );\n })}\n \n \n \n {sponsoredAsinData?.map((item, index) => {\n return displaySponsoredAsinTable(item, index, numberFormatter);\n })}\n \n \n \n );\n };\n\n // display asin performance mobile view\n const displayAsinPerformanceMobileView = (numberFormatter) => {\n return (\n
    \n {sponsoredAsinData?.map((item, index) => {\n const openCollapse =\n fieldsetCollapse?.id === index && fieldsetCollapse?.isOpen;\n return (\n
    \n
    \n
    \n
    \n
    Asin
    \n
    \n {item?.asin}\n
    \n
    \n
    \n
    Product Name
    \n \n {displayProductNameWithTooltip(\n item?.productName,\n index,\n item?.pdpLink,\n )}\n
    \n
    \n
    \n
    \n
    \n
    \n Ad Spend {displaySortableUpDownArrow('ad_spend')}\n
    \n
    \n {numberFormatter(\n item?.adSpendCurrent,\n item?.adSpendChangeInValue,\n item?.adSpendChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n
    \n
    \n
    \n
    \n Ad Sales {displaySortableUpDownArrow('ad_sales')}\n
    \n
    \n {numberFormatter(\n item?.adSalesCurrent,\n item?.adSalesChangeInValue,\n item?.adSalesChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n
    \n
    \n
    \n {openCollapse ? (\n
    \n
    \n
    \n
    \n Acos {displaySortableUpDownArrow('acos')}\n
    \n
    \n {numberFormatter(\n item?.acosCurrent,\n item?.acosChangeInValue,\n item?.acosChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n
    \n
    \n
    \n
    \n Roas {displaySortableUpDownArrow('roas')}\n
    \n
    \n {numberFormatter(\n item?.roasCurrent,\n item?.roasChangeInValue,\n item?.roasChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n
    \n
    \n
    \n
    \n
    \n
    \n Click Throught Rate\n {displaySortableUpDownArrow('ctr')}\n
    \n
    \n {numberFormatter(\n item?.ctrCurrent,\n item?.ctrChangeInValue,\n item?.ctrChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n
    \n
    \n
    \n
    \n Ad Conversion Rate\n {displaySortableUpDownArrow('ad_conversion_rate')}\n
    \n
    \n {numberFormatter(\n item?.adConversionCurrent,\n item?.adConversionChangeInValue,\n item?.adConversionChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n
    \n
    \n
    \n
    \n
    \n
    \n Cost Per Clicks{' '}\n {displaySortableUpDownArrow('cost_per_click')}\n
    \n
    \n {numberFormatter(\n item?.costPerClickCurrent,\n item?.costPerClickChangeInValue,\n item?.costPerClickChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n
    \n
    \n
    \n
    \n Sales Per Clicks{' '}\n {displaySortableUpDownArrow('sales_per_click')}\n
    \n
    \n {numberFormatter(\n item?.salesPerClickCurrent,\n item?.salesPerClickChangeInValue,\n item?.salesPerClickChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n
    \n
    \n
    \n
    \n
    \n
    \n Clicks {displaySortableUpDownArrow('clicks')}\n
    \n
    \n {numberFormatter(\n item?.clicksCurrent,\n item?.clicksChangeInValue,\n item?.clicksChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n
    \n
    \n
    \n
    \n Impressions{' '}\n {displaySortableUpDownArrow('impressions')}\n
    \n
    \n {numberFormatter(\n item?.impressionsCurrent,\n item?.impressionsChangeInValue,\n item?.impressionsChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n
    \n
    \n
    \n
    \n ) : null}\n\n {\n handleFieldsetCollapse(index);\n }}\n >\n {openCollapse ? 'View less' : 'View 7 more details'}\n \n \n \n
    \n );\n })}\n
    \n );\n };\n\n // display asin performance content\n const displayAsinPerformanceContent = () => {\n return (\n <>\n {asinPerformanceLoader ? (\n \n ) : sponsoredAsinData?.length > 0 ? (\n <>\n {isTablet\n ? DisplayAsinPerformnaceTable(useValueWithChangeAndPercent)\n : displayAsinPerformanceMobileView(useValueWithChangeAndPercent)}\n {!asinPerformanceLoader && pageCount > 10 ? (\n <>\n \n \n ) : null}\n \n ) : (\n {asinMessage}\n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return
    {displayAsinPerformanceContent()}
    ;\n}\n\nexport default SponsoredAsinPerformance;\n\nSponsoredAsinPerformance.defaultProps = {\n isCallSPAsinApi: false,\n downloadReportLoader: false,\n asinPerformanceLoader: false,\n childBrandId: null,\n selectedDF: '',\n accountType: '',\n currencySymbol: '$',\n selectedMarketplace: 'all',\n sponsoredAdType: 'all',\n adState: [],\n setIsCallSPAsinApi: () => {},\n setDownloadReportLoader: () => {},\n setAsinPerformanceLoader: () => {},\n displaySponsoredAsinTable: () => {},\n bindSpAsinPerformanceData: () => {},\n displayProductNameWithTooltip: () => {},\n};\nSponsoredAsinPerformance.propTypes = {\n isCallSPAsinApi: bool,\n downloadReportLoader: bool,\n asinPerformanceLoader: bool,\n childBrandId: string,\n selectedDF: string,\n accountType: string,\n currencySymbol: string,\n selectedMarketplace: string,\n sponsoredAdType: string,\n customerId: string.isRequired,\n adState: arrayOf(shape()),\n setIsCallSPAsinApi: func,\n setDownloadReportLoader: func,\n setAsinPerformanceLoader: func,\n displaySponsoredAsinTable: func,\n bindSpAsinPerformanceData: func,\n displayProductNameWithTooltip: func,\n};\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport { toast } from 'react-toastify';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../../theme/Theme';\nimport useValueWithChangeAndPercent from '../../../../../../hooks/useValueWithChangeAndPercent';\nimport {\n asinStatiMessages,\n sponsoredAsinTableConstant,\n} from '../../../../../../constants';\nimport {\n getSpAdCampaignDownloadReport,\n getSponsoredAdCampaignAsinData,\n getSponsoredAdCampaignData,\n} from '../../../../../../api';\nimport {\n CommonPagination,\n DesktopTable,\n GrayMessageBar,\n NoData,\n PageLoader,\n VisibleScrollableTable,\n} from '../../../../../../common';\n\nfunction SponsoredCampaignReport({\n isCallSPAsinApi,\n campaignDataLoader,\n downloadReportLoader,\n campaignAsinDataLoader,\n orderBy,\n orderByKey,\n customerId,\n childBrandId,\n selectedDF,\n accountType,\n currencySymbol,\n campaignSearchQuery,\n selectedCampaignSortBy,\n selectedMarketplace,\n sponsoredAdType,\n adState,\n setOrderBy,\n setOrderByKey,\n setIsCallSPAsinApi,\n setCampaignDataLoader,\n setIsAsinDataAvailable,\n setDownloadReportLoader,\n setCampaignAsinDataLoader,\n displaySponsoredAsinTable,\n bindSpAsinPerformanceData,\n}) {\n const isTablet = useMediaQuery({ minWidth: 768 });\n const isCustom = selectedDF === 'custom';\n const [pageCount, setPageCount] = useState(1);\n const [pageNumber, setPageNumber] = useState(1);\n const [asinPageCount, setAsinPageCount] = useState(1);\n const [asinPageNumber, setAsinPageNumber] = useState(1);\n const [spCampaignCollapseData, setSpCampaignCollapseData] = useState([]);\n const [spCampaignAsinData, setSpCampaignAsinData] = useState({\n campaignAsinData: [],\n campaignAsinTotal: {},\n });\n const [selectedCampaignCollapse, setSelectedCampaignCollapse] = useState({});\n\n // bind sponsored campaign asin total response data\n const bindSpCampaignAsinTotal = useCallback((responseData) => {\n let tempCampaignAsinTotal = {};\n if (responseData) {\n tempCampaignAsinTotal = {\n asin: 'Total',\n adSpendCurrentTotal: responseData?.current?.ad_spend,\n adSalesCurrentTotal: responseData?.current?.ad_sales,\n acosCurrentTotal: responseData?.current?.acos,\n roasCurrentTotal: responseData?.current?.roas,\n ctrCurrentTotal: responseData?.current?.ctr,\n adConversionCurrentTotal: responseData?.current?.ad_conversion,\n clicksCurrentTotal: responseData?.current?.clicks,\n costPerClickCurrentTotal: responseData?.current?.cost_per_click,\n salesPerClickCurrentTotal: responseData?.current?.sales_per_click,\n impressionsCurrentTotal: responseData?.current?.impressions,\n\n adSpendChangeInValueTotal: responseData?.change?.ad_spend,\n adSalesChangeInValueTotal: responseData?.change?.ad_sales,\n acosChangeInValueTotal: responseData?.change?.acos,\n roasChangeInValueTotal: responseData?.change?.roas,\n ctrChangeInValueTotal: responseData?.change?.ctr,\n adConversionChangeInValueTotal: responseData?.change?.ad_conversion,\n clicksChangeInValueTotal: responseData?.change?.clicks,\n costPerClickChangeInValueTotal: responseData?.change?.cost_per_click,\n salesPerClickChangeInValueTotal: responseData?.change?.sales_per_click,\n impressionsChangeInValueTotal: responseData?.change?.impressions,\n\n adSpendChangeInPercentTotal: responseData?.per_change?.ad_spend,\n adSalesChangeInPercentTotal: responseData?.per_change?.ad_sales,\n acosChangeInPercentTotal: responseData?.per_change?.acos,\n roasChangeInPercentTotal: responseData?.per_change?.roas,\n ctrChangeInPercentTotal: responseData?.per_change?.ctr,\n adConversionChangeInPercentTotal:\n responseData?.per_change?.ad_conversion,\n clicksChangeInPercentTotal: responseData?.per_change?.clicks,\n costPerClickChangeInPercentTotal:\n responseData?.per_change?.cost_per_click,\n salesPerClickChangeInPercentTotal:\n responseData?.per_change?.sales_per_click,\n impressionsChangeInPercentTotal: responseData?.per_change?.impressions,\n };\n }\n\n return tempCampaignAsinTotal;\n }, []);\n\n // callback function for get sponsored campaign asin performance data\n const getSponsoredCampaignAsinData = useCallback(\n (\n campaignId,\n campaignStatus,\n asinCount,\n marketplaceId,\n orderByApiKey,\n page,\n startDate,\n endDate,\n ) => {\n setCampaignAsinDataLoader(true);\n\n setSpCampaignAsinData({\n campaignAsinData: [],\n campaignAsinTotal: {},\n });\n\n const startDateLocal = dayjs(startDate).format('DD-MM-YYYY');\n const endDateLocal = dayjs(endDate).format('DD-MM-YYYY');\n\n getSponsoredAdCampaignAsinData(\n customerId,\n accountType,\n sponsoredAdType,\n campaignId,\n campaignStatus,\n asinCount,\n marketplaceId,\n orderByApiKey,\n page,\n selectedDF,\n startDateLocal,\n endDateLocal,\n childBrandId,\n ).then((response) => {\n if (response?.status === 200) {\n setAsinPageCount(response?.data?.count);\n\n setSpCampaignAsinData({\n campaignAsinData: bindSpAsinPerformanceData(\n response?.data?.results,\n ),\n campaignAsinTotal: bindSpCampaignAsinTotal(response?.data?.total),\n adsReportType: response?.data?.ads_report_type,\n });\n } else {\n setSpCampaignAsinData({\n campaignAsinData: [],\n campaignAsinTotal: {},\n });\n }\n\n setCampaignAsinDataLoader(false);\n });\n },\n [\n accountType,\n bindSpAsinPerformanceData,\n bindSpCampaignAsinTotal,\n childBrandId,\n customerId,\n selectedDF,\n setCampaignAsinDataLoader,\n sponsoredAdType,\n ],\n );\n\n // bind sponsored campaign response data\n const bindSponsoredCampaignData = useCallback((responseData) => {\n const tempCampaignData = [];\n if (responseData?.length > 0) {\n responseData.forEach((dataItem, index) => {\n tempCampaignData.push({\n marketplace: dataItem?.marketplace,\n marketplaceId: dataItem?.marketplace_id,\n campaignStatus: dataItem?.campaign_status,\n campaignName: dataItem?.campaign_name,\n campaignId: dataItem?.campaign_id,\n asiCount: dataItem?.asin_count,\n dataIndex: index,\n });\n });\n }\n return tempCampaignData;\n }, []);\n\n // callback function for get sponsored campaign data\n const getSponsoredCampaignCollapseData = useCallback(\n (orderByApiKey, page, startDate, endDate) => {\n setCampaignDataLoader(true);\n setSpCampaignCollapseData([]);\n setSelectedCampaignCollapse({});\n\n const startDateLocal = dayjs(startDate).format('DD-MM-YYYY');\n const endDateLocal = dayjs(endDate).format('DD-MM-YYYY');\n\n getSponsoredAdCampaignData(\n customerId,\n accountType,\n selectedMarketplace,\n sponsoredAdType,\n selectedDF,\n selectedCampaignSortBy?.value,\n campaignSearchQuery,\n orderByApiKey,\n page,\n startDateLocal,\n endDateLocal,\n childBrandId,\n ).then((response) => {\n if (response?.status === 200) {\n setPageCount(response?.data?.count);\n setAsinPageNumber(1);\n\n if (response?.data?.results?.length > 0) {\n const formattedResponseData = bindSponsoredCampaignData(\n response?.data?.results,\n );\n setSpCampaignCollapseData(formattedResponseData);\n\n const dataItem = response?.data?.results?.[0];\n setSelectedCampaignCollapse(formattedResponseData?.[0]);\n getSponsoredCampaignAsinData(\n dataItem?.campaign_id,\n dataItem?.campaign_status,\n dataItem?.asin_count,\n dataItem?.marketplace_id,\n orderByApiKey,\n 1,\n startDate,\n endDate,\n );\n setIsAsinDataAvailable(true);\n } else {\n setIsAsinDataAvailable(false);\n setSpCampaignAsinData({\n campaignAsinData: [],\n campaignAsinTotal: {},\n });\n }\n } else {\n setPageCount(0);\n setAsinPageNumber(1);\n setSpCampaignCollapseData([]);\n setIsAsinDataAvailable(false);\n }\n setCampaignDataLoader(false);\n });\n },\n [\n accountType,\n bindSponsoredCampaignData,\n campaignSearchQuery,\n childBrandId,\n customerId,\n getSponsoredCampaignAsinData,\n selectedCampaignSortBy,\n selectedDF,\n selectedMarketplace,\n setCampaignDataLoader,\n setIsAsinDataAvailable,\n sponsoredAdType,\n ],\n );\n\n // use effect\n useEffect(() => {\n if (!isCallSPAsinApi) {\n getSponsoredCampaignCollapseData(\n orderByKey,\n 1,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n }\n setPageNumber(1);\n setIsCallSPAsinApi(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getSponsoredCampaignCollapseData, isCallSPAsinApi]);\n\n // const handle download report events\n const handleDownloadReportEvents = useCallback(\n (\n selectedAccountType,\n marketplace,\n spAdType,\n timeframe,\n campaignStatus,\n searchQuery,\n orderByApiKey,\n selectedChildBrand,\n startDate,\n endDate,\n ) => {\n const startDateLocal = dayjs(startDate).format('DD-MM-YYYY');\n const endDateLocal = dayjs(endDate).format('DD-MM-YYYY');\n\n getSpAdCampaignDownloadReport(\n customerId,\n selectedAccountType,\n marketplace,\n spAdType,\n timeframe,\n campaignStatus,\n searchQuery,\n orderByApiKey,\n startDateLocal,\n endDateLocal,\n selectedChildBrand,\n true,\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n } else {\n toast.error('Oops! Something went wrong...');\n }\n setDownloadReportLoader(false);\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [setDownloadReportLoader],\n );\n\n useEffect(() => {\n if (downloadReportLoader) {\n handleDownloadReportEvents(\n accountType,\n selectedMarketplace,\n sponsoredAdType,\n selectedDF,\n selectedCampaignSortBy?.value,\n campaignSearchQuery,\n orderByKey,\n childBrandId,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [downloadReportLoader, handleDownloadReportEvents, selectedDF]);\n\n // handle sorting events of asin table\n const handleSortingEvents = (key) => {\n let orderByApiKey = key;\n setOrderBy(key);\n if (orderByKey === `-${key}`) {\n setOrderByKey(key);\n orderByApiKey = key;\n } else {\n setOrderByKey(`-${key}`);\n orderByApiKey = `-${key}`;\n }\n getSponsoredCampaignAsinData(\n selectedCampaignCollapse?.campaignId,\n selectedCampaignCollapse?.campaignStatus,\n selectedCampaignCollapse?.asiCount,\n selectedCampaignCollapse?.marketplaceId,\n orderByApiKey,\n asinPageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n // handle campaign collapse events\n const handleCampaignCollapseEvents = (dataItem) => {\n if (selectedCampaignCollapse?.dataIndex !== dataItem?.dataIndex) {\n setSelectedCampaignCollapse(dataItem);\n getSponsoredCampaignAsinData(\n dataItem?.campaignId,\n dataItem?.campaignStatus,\n dataItem?.asiCount,\n dataItem?.marketplaceId,\n orderByKey,\n asinPageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n } else {\n setSelectedCampaignCollapse();\n }\n };\n\n // handle collapse pagination events\n const handleCollapsePaginationEvents = (currentPage) => {\n setPageNumber(currentPage);\n getSponsoredCampaignCollapseData(\n orderByKey,\n currentPage,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n // handle asin pagination events\n const handleAsinPaginationEvents = (currentPage) => {\n setAsinPageNumber(currentPage);\n getSponsoredCampaignAsinData(\n selectedCampaignCollapse?.campaignId,\n selectedCampaignCollapse?.campaignStatus,\n selectedCampaignCollapse?.asiCount,\n selectedCampaignCollapse?.marketplaceId,\n orderByKey,\n currentPage,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n // display page loader\n const displayPageLoader = () => {\n return (\n \n );\n };\n\n // display static campaign asin messages inside campaign table\n const displayStaticAsinMessageInsideTable = (type, tableDivId) => {\n return (\n \n \n \n \n
    \n \n \n );\n };\n\n // display sortable up and down arrow icon\n const displaySortableUpDownArrow = (key) => {\n return (\n \n );\n };\n\n // display sponsored campaign collapse Icon\n const displaySpCampaignCollapseIcon = (dataIndex) => {\n return (\n \n );\n };\n\n // display sponsored campaign collapse panel\n const displaySpCampaignCollapsePanel = (numberFormatter) => {\n const tableDivId = 'BT-sp-campaign-table';\n const tableMinWidth = '1900px';\n return (\n \n \n \n \n {sponsoredAsinTableConstant.slice(0, 12)?.map((item) => {\n return (\n {\n if (item?.isSortable) handleSortingEvents(item?.key);\n }}\n style={{ width: item?.width }}\n >\n {item?.label}\n {item?.isSortable\n ? displaySortableUpDownArrow(item?.key)\n : null}\n \n );\n })}\n \n \n\n {spCampaignCollapseData?.map((dataItem) => {\n const asinTotal = spCampaignAsinData?.campaignAsinTotal;\n const asinData = spCampaignAsinData?.campaignAsinData;\n\n return (\n <>\n \n {\n handleCampaignCollapseEvents(dataItem);\n }}\n >\n \n \n {displaySpCampaignCollapseIcon(dataItem?.dataIndex)}\n \n {dataItem?.campaignStatus !== null\n ? `${dataItem?.campaignStatus}${' '}`\n : ''}\n {dataItem?.marketplace !== null\n ? `| ${dataItem?.marketplace}${' '}`\n : ''}\n {dataItem?.campaignName !== null\n ? `| ${dataItem?.campaignName}${' '}`\n : ''}\n {dataItem?.asiCount !== null\n ? `| ${dataItem?.asiCount} `\n : ''}\n \n \n \n \n \n \n \n \n {dataItem?.dataIndex ===\n selectedCampaignCollapse?.dataIndex ? (\n <>\n {campaignAsinDataLoader ? (\n \n \n \n {displayPageLoader()}\n
    \n \n \n ) : (\n <>\n {asinData?.length > 0\n ? asinData?.map((item, index) => {\n return displaySponsoredAsinTable(\n item,\n index,\n numberFormatter,\n );\n })\n : null}\n {/* Display static user message for SP Brand + Video and SP Television campaign */}\n {asinData?.length === 0 &&\n spCampaignAsinData?.adsReportType ===\n 'brand_campaign_report'\n ? displayStaticAsinMessageInsideTable(\n 'brand_campaign_report',\n tableDivId,\n )\n : null}\n {asinData?.length === 0 &&\n spCampaignAsinData?.adsReportType ===\n 'television_campaign_report'\n ? displayStaticAsinMessageInsideTable(\n 'television_campaign_report',\n tableDivId,\n )\n : null}\n {Object.keys(asinTotal)?.length > 0 ? (\n \n \n {asinTotal?.asin}\n \n \n \n {numberFormatter(\n asinTotal?.adSpendCurrentTotal,\n asinTotal?.adSpendChangeInValueTotal,\n asinTotal?.adSpendChangeInPercentTotal,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n asinTotal?.adSalesCurrentTotal,\n asinTotal?.adSalesChangeInValueTotal,\n asinTotal?.adSalesChangeInPercentTotal,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n asinTotal?.acosCurrentTotal,\n asinTotal?.acosChangeInValueTotal,\n asinTotal?.acosChangeInPercentTotal,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n asinTotal?.roasCurrentTotal,\n asinTotal?.roasChangeInValueTotal,\n asinTotal?.roasChangeInPercentTotal,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n asinTotal?.ctrCurrentTotal,\n asinTotal?.ctrChangeInValueTotal,\n asinTotal?.ctrChangeInPercentTotal,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n asinTotal?.adConversionCurrentTotal,\n asinTotal?.adConversionChangeInValueTotal,\n asinTotal?.adConversionChangeInPercentTotal,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n asinTotal?.costPerClickCurrentTotal,\n asinTotal?.costPerClickChangeInValueTotal,\n asinTotal?.costPerClickChangeInPercentTotal,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n asinTotal?.salesPerClickCurrentTotal,\n asinTotal?.salesPerClickChangeInValueTotal,\n asinTotal?.salesPerClickChangeInPercentTotal,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n asinTotal?.clicksCurrentTotal,\n asinTotal?.clicksChangeInValueTotal,\n asinTotal?.clicksChangeInPercentTotal,\n 0,\n isCustom,\n '',\n '',\n )}\n \n \n {numberFormatter(\n asinTotal?.impressionsCurrentTotal,\n asinTotal?.impressionsChangeInValueTotal,\n asinTotal?.impressionsChangeInPercentTotal,\n 0,\n isCustom,\n '',\n '',\n )}\n \n \n ) : null}\n {asinData?.length === 0 &&\n Object.keys(asinTotal)?.length === 0 &&\n (spCampaignAsinData?.adsReportType !==\n 'brand_campaign_report' ||\n spCampaignAsinData?.adsReportType !==\n 'television_campaign_report') ? (\n \n \n \n \n {\n asinStatiMessages?.asinDataAvailabilityMessage\n }\n \n
    \n \n \n ) : null}\n {!campaignAsinDataLoader && asinPageCount > 10 ? (\n \n \n \n \n
    \n \n \n ) : null}\n \n )}\n \n ) : null}\n \n \n \n );\n })}\n \n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {campaignDataLoader ? (\n displayPageLoader()\n ) : spCampaignCollapseData?.length > 0 ? (\n <>\n {displaySpCampaignCollapsePanel(useValueWithChangeAndPercent)}\n {!campaignDataLoader && pageCount > 10 ? (\n
    \n \n
    \n ) : null}\n \n ) : (\n {asinStatiMessages?.campaignDataAvailabilityMessage}\n )}\n
    \n );\n}\n\nexport default SponsoredCampaignReport;\n\nSponsoredCampaignReport.defaultProps = {\n isCallSPAsinApi: false,\n campaignDataLoader: false,\n downloadReportLoader: false,\n campaignAsinDataLoader: false,\n orderBy: 'ad_sales',\n orderByKey: '-ad_sales',\n childBrandId: null,\n selectedDF: '',\n accountType: '',\n currencySymbol: '$',\n selectedMarketplace: 'all',\n sponsoredAdType: 'all',\n campaignSearchQuery: '',\n selectedCampaignSortBy: {},\n adState: [],\n setOrderBy: () => {},\n setOrderByKey: () => {},\n setIsCallSPAsinApi: () => {},\n setCampaignDataLoader: () => {},\n setIsAsinDataAvailable: () => {},\n setDownloadReportLoader: () => {},\n setCampaignAsinDataLoader: () => {},\n displaySponsoredAsinTable: () => {},\n bindSpAsinPerformanceData: () => {},\n};\n\nSponsoredCampaignReport.propTypes = {\n isCallSPAsinApi: bool,\n campaignDataLoader: bool,\n downloadReportLoader: bool,\n campaignAsinDataLoader: bool,\n orderBy: string,\n orderByKey: string,\n childBrandId: string,\n selectedDF: string,\n accountType: string,\n currencySymbol: string,\n selectedMarketplace: string,\n sponsoredAdType: string,\n customerId: string.isRequired,\n campaignSearchQuery: string,\n selectedCampaignSortBy: shape({}),\n adState: arrayOf(shape()),\n setOrderBy: func,\n setOrderByKey: func,\n setIsCallSPAsinApi: func,\n setCampaignDataLoader: func,\n setIsAsinDataAvailable: func,\n setDownloadReportLoader: func,\n setCampaignAsinDataLoader: func,\n displaySponsoredAsinTable: func,\n bindSpAsinPerformanceData: func,\n};\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport { DebounceInput } from 'react-debounce-input';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useSelector } from 'react-redux';\nimport { bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../../theme/Theme';\nimport { SearchIcon } from '../../../../../../theme/images';\nimport { Icon } from '../../../../../../theme/Global';\nimport {\n spCampaignAsinToggleOptions,\n campaignSortingOptions,\n asinStatiMessages,\n CAMPAIGN,\n ASIN,\n SELLERSMALL,\n VENDORSMALL,\n} from '../../../../../../constants';\nimport {\n DropdownIndicator,\n DropdownOptions,\n DropdownSingleValue,\n GrayMessageBar,\n InputSearchWithRadius,\n PageLoader,\n SingleSelectDropdown,\n ToggleButton,\n ViewData,\n} from '../../../../../../common';\n\nfunction SpCampaignAsinFilters({\n isAsinDataAvailable,\n downloadReportLoader,\n asinPerformanceLoader,\n accountType,\n sponsoredAdType,\n selectedAsinToggle,\n campaignSearchQuery,\n selectedCampaignSortBy,\n displayReactTooltip,\n setCampaignSearchQuery,\n setDownloadReportLoader,\n handleCampaignSearchEvents,\n handleCampaignAsinToggleEvents,\n handleCampaignStatusChangeEvents,\n}) {\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in SP CAMPAIGN & ASIN performance\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const spAsinMessage =\n accountType === SELLERSMALL\n ? dynamicMessages?.sponsored_performance_seller_asin?.placeholder\n : accountType === VENDORSMALL\n ? dynamicMessages?.sponsored_performance_vendor_asin?.placeholder\n : null;\n const spCampaignMessage =\n accountType === SELLERSMALL\n ? dynamicMessages?.sponsored_performance_seller_campaign?.placeholder\n : accountType === VENDORSMALL\n ? dynamicMessages?.sponsored_performance_vendor_campaign?.placeholder\n : null;\n\n const asinTooltipContent = `Available data is from June 1, 2023 onwards`;\n // PDV-8401 - Logic - point no. 1 - One October 2023 logic\n const todaysDate = dayjs(new Date()).format('YYYY-MM-DD');\n const oneOctober2023 = dayjs(new Date(2023, 9, 1)).format('YYYY-MM-DD');\n\n // display input dearch with radius\n const displayInputSearchWithRadius = () => {\n return (\n \n {\n handleCampaignSearchEvents(event);\n }}\n onKeyPress={(event) => {\n if (event.key === 'Enter') {\n handleCampaignSearchEvents(event);\n }\n }}\n value={campaignSearchQuery || ''}\n />\n\n \"search\"\n {campaignSearchQuery !== '' ? (\n setCampaignSearchQuery('')}\n />\n ) : null}\n \n );\n };\n\n // get dropdown components\n const getDropdDownComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n // display campaign status filters\n const displayCampaignSortByFilter = (isApiCall) => {\n return (\n \n \n
    \n );\n };\n\n // display campaign/asin toggle button\n const displayCampaignAsinToggleButton = () => {\n return (\n \n
    \n
      \n {spCampaignAsinToggleOptions?.map((option) => {\n return (\n
    • \n \n handleCampaignAsinToggleEvents(option?.value)\n }\n />\n \n
    • \n );\n })}\n
    \n
    \n
    \n );\n };\n\n // display download report button\n const displayDownloadReportButton = () => {\n return (\n {\n setDownloadReportLoader(true);\n }}\n style={{ maxWidth: '150px' }}\n >\n {downloadReportLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n
    \n );\n };\n\n // display statc asin message - PDV-8401 - Logic - point no. 3\n const displayStaticAsinMessage = (type) => {\n return ;\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n
    \n
    \n
    \n {selectedAsinToggle === CAMPAIGN\n ? 'Campaign and ASIN Performance'\n : 'ASIN Performance'}\n
    \n {todaysDate < oneOctober2023 ? (\n \n \n {displayReactTooltip('info-icon', 'top')}\n \n ) : null}\n
    \n\n
    \n {displayDownloadReportButton()}\n
    \n
    \n
    \n
      \n {selectedAsinToggle === CAMPAIGN ? (\n <>\n
    • {displayInputSearchWithRadius()}
    • \n
    • \n
        \n
      • Sort By
      • \n
      • {displayCampaignSortByFilter()}
      • \n
      \n
    • \n \n ) : null}\n\n
    • {displayCampaignAsinToggleButton()}
    • \n
    • \n {displayDownloadReportButton()}\n
    • \n
    \n
    \n
    \n
    \n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in DSP CAMPAIGN & ASIN performance */}\n {selectedAsinToggle === ASIN && spAsinMessage ? (\n \n ) : null}\n {selectedAsinToggle === CAMPAIGN && spCampaignMessage ? (\n \n ) : null}\n\n {(sponsoredAdType === 'brand_campaign_report' ||\n sponsoredAdType === 'all') &&\n selectedAsinToggle === ASIN\n ? displayStaticAsinMessage('brand_campaign_report')\n : null}\n {(sponsoredAdType === 'television_campaign_report' ||\n sponsoredAdType === 'all') &&\n selectedAsinToggle === CAMPAIGN\n ? displayStaticAsinMessage('television_campaign_report')\n : null}\n
    \n );\n}\n\nexport default SpCampaignAsinFilters;\n\nSpCampaignAsinFilters.defaultProps = {\n isAsinDataAvailable: false,\n downloadReportLoader: false,\n asinPerformanceLoader: false,\n accountType: '',\n sponsoredAdType: 'all',\n campaignSearchQuery: '',\n selectedCampaignSortBy: {},\n displayReactTooltip: () => {},\n setCampaignSearchQuery: () => {},\n setDownloadReportLoader: () => {},\n handleCampaignSearchEvents: () => {},\n handleCampaignAsinToggleEvents: () => {},\n handleCampaignStatusChangeEvents: () => {},\n};\n\nSpCampaignAsinFilters.propTypes = {\n isAsinDataAvailable: bool,\n downloadReportLoader: bool,\n asinPerformanceLoader: bool,\n accountType: string,\n sponsoredAdType: string,\n selectedAsinToggle: string.isRequired,\n campaignSearchQuery: string,\n selectedCampaignSortBy: shape({}),\n displayReactTooltip: func,\n setCampaignSearchQuery: func,\n setDownloadReportLoader: func,\n handleCampaignSearchEvents: func,\n handleCampaignAsinToggleEvents: func,\n handleCampaignStatusChangeEvents: func,\n};\n","import React, { useCallback, useState } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport SponsoredAsinPerformance from './SponsoredAsinPerformance';\nimport SponsoredCampaignReport from './SponsoredCampaignReport';\nimport Theme from '../../../../../../theme/Theme';\nimport SpCampaignAsinFilters from './SpCampaignAsinFilters';\nimport {\n ASIN,\n CAMPAIGN,\n campaignSortingOptions,\n} from '../../../../../../constants';\n\nfunction SpAsinAndCampaignContainer({\n isCallSPAsinApi,\n customerId,\n childBrandId,\n selectedDF,\n accountType,\n currencySymbol,\n selectedMarketplace,\n sponsoredAdType,\n adState,\n setIsCallSPAsinApi,\n}) {\n const isTablet = useMediaQuery({ minWidth: 768 });\n const isCustom = selectedDF === 'custom';\n const [campaignSearchQuery, setCampaignSearchQuery] = useState('');\n const [selectedCampaignSortBy, setSelectedCampaignSortBy] = useState(\n campaignSortingOptions?.[0],\n );\n const [selectedAsinToggle, setSelectedAsinToggle] = useState(CAMPAIGN);\n const [orderBy, setOrderBy] = useState('ad_sales');\n const [orderByKey, setOrderByKey] = useState('-ad_sales');\n const [campaignDataLoader, setCampaignDataLoader] = useState(false);\n const [campaignAsinDataLoader, setCampaignAsinDataLoader] = useState(false);\n const [asinPerformanceLoader, setAsinPerformanceLoader] = useState(false);\n const [isAsinDataAvailable, setIsAsinDataAvailable] = useState(false);\n const [downloadReportLoader, setDownloadReportLoader] = useState(false);\n\n // bind sponsored ad asin performance data\n const bindSpAsinPerformanceData = useCallback((responseData) => {\n const tempAsinData = [];\n\n if (responseData?.length > 0) {\n responseData.forEach((item) => {\n tempAsinData.push({\n asin: item?.asin,\n productName: item?.product_name || 'Not available',\n pdpLink: item?.pdp_link,\n\n adSpendCurrent: item?.current?.ad_spend,\n adSalesCurrent: item?.current?.ad_sales,\n acosCurrent: item?.current?.acos,\n roasCurrent: item?.current?.roas,\n ctrCurrent: item?.current?.ctr,\n adConversionCurrent: item?.current?.ad_conversion,\n clicksCurrent: item?.current?.clicks,\n costPerClickCurrent: item?.current?.cost_per_click,\n salesPerClickCurrent: item?.current?.sales_per_click,\n impressionsCurrent: item?.current?.impressions,\n percentageNtbOrdersCurrent: item?.current?.ntb_orders_percent,\n percentageNtbSalesCurrent: item?.current?.ntb_sales_percent,\n ntbOrdersCurrent: item?.current?.ntb_orders,\n ntbSalesCurrent: item?.current?.ntb_sales,\n\n adSpendChangeInValue: item?.change?.ad_spend,\n adSalesChangeInValue: item?.change?.ad_sales,\n acosChangeInValue: item?.change?.acos,\n roasChangeInValue: item?.change?.roas,\n ctrChangeInValue: item?.change?.ctr,\n adConversionChangeInValue: item?.change?.ad_conversion,\n clicksChangeInValue: item?.change?.clicks,\n costPerClickChangeInValue: item?.change?.cost_per_click,\n salesPerClickChangeInValue: item?.change?.sales_per_click,\n impressionsChangeInValue: item?.change?.impressions,\n percentageNtbOrdersChangeInValue: item?.change?.ntb_orders_percent,\n percentageNtbSalesChangeInValue: item?.change?.ntb_sales_percent,\n ntbOrdersChangeInValue: item?.change?.ntb_orders,\n ntbSalesChangeInValue: item?.change?.ntb_sales,\n\n adSpendChangeInPercent: item?.per_change?.ad_spend,\n adSalesChangeInPercent: item?.per_change?.ad_sales,\n acosChangeInPercent: item?.per_change?.acos,\n roasChangeInPercent: item?.per_change?.roas,\n ctrChangeInPercent: item?.per_change?.ctr,\n adConversionChangeInPercent: item?.per_change?.ad_conversion,\n clicksChangeInPercent: item?.per_change?.clicks,\n costPerClickChangeInPercent: item?.per_change?.cost_per_click,\n salesPerClickChangeInPercent: item?.per_change?.sales_per_click,\n impressionsChangeInPercent: item?.per_change?.impressions,\n percentageNtbOrdersChangeInPercent:\n item?.per_change?.ntb_orders_percent,\n percentageNtbSalesChangeInPercent:\n item?.per_change?.ntb_sales_percent,\n ntbOrdersChangeInPercent: item?.per_change?.ntb_orders,\n ntbSalesChangeInPercent: item?.per_change?.ntb_sales,\n });\n return tempAsinData;\n });\n }\n return tempAsinData;\n }, []);\n\n // handle campaign search events\n const handleCampaignSearchEvents = (event) => {\n setCampaignSearchQuery(event.target.value);\n };\n\n // handle campaign status change events\n const handleCampaignStatusChangeEvents = (event) => {\n setSelectedCampaignSortBy(event);\n };\n\n // handle campaign asin toggle button events\n const handleCampaignAsinToggleEvents = (key) => {\n setSelectedAsinToggle(key);\n if (key === CAMPAIGN) {\n setSelectedCampaignSortBy(campaignSortingOptions?.[0]);\n setCampaignSearchQuery('');\n }\n };\n\n // display react tooltip\n const displayReactTooltip = (id, place) => {\n return (\n \n );\n };\n\n // display product name with tooltip\n const displayProductNameWithTooltip = (productName, index, link) => {\n const textLimit = 50;\n return (\n \n ${productName}
    `}\n data-for={`product${index}`}\n >\n {productName?.length > textLimit\n ? `${productName?.slice(0, textLimit)}...`\n : productName}\n
    \n {displayReactTooltip(`product${index}`, 'top')}\n \n \n \n
    \n );\n };\n\n // display sponsored asin table\n const displaySponsoredAsinTable = (item, index, numberFormatter) => {\n const pdpLink = `https://www.${\n selectedMarketplace === 'all' || selectedMarketplace === 'Amazon.com'\n ? 'amazon.com'\n : selectedMarketplace?.toLowerCase()\n }/dp/${item?.asin}`;\n\n return (\n \n {item?.asin}\n \n {displayProductNameWithTooltip(item?.productName, index, pdpLink)}\n \n \n {numberFormatter(\n item?.adSpendCurrent,\n item?.adSpendChangeInValue,\n item?.adSpendChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n item?.adSalesCurrent,\n item?.adSalesChangeInValue,\n item?.adSalesChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n item?.acosCurrent,\n item?.acosChangeInValue,\n item?.acosChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n item?.roasCurrent,\n item?.roasChangeInValue,\n item?.roasChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n item?.ctrCurrent,\n item?.ctrChangeInValue,\n item?.ctrChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n item?.adConversionCurrent,\n item?.adConversionChangeInValue,\n item?.adConversionChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n item?.costPerClickCurrent,\n item?.costPerClickChangeInValue,\n item?.costPerClickChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n item?.salesPerClickCurrent,\n item?.salesPerClickChangeInValue,\n item?.salesPerClickChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n item?.clicksCurrent,\n item?.clicksChangeInValue,\n item?.clicksChangeInPercent,\n 0,\n isCustom,\n '',\n '',\n )}\n \n \n {numberFormatter(\n item?.impressionsCurrent,\n item?.impressionsChangeInValue,\n item?.impressionsChangeInPercent,\n 0,\n isCustom,\n '',\n '',\n )}\n \n {selectedAsinToggle === ASIN &&\n sponsoredAdType === 'sponsored_display_campaign_report' ? (\n <>\n \n {numberFormatter(\n item?.percentageNtbOrdersCurrent,\n item?.percentageNtbOrdersChangeInValue,\n item?.percentageNtbOrdersChangeInPercent,\n 0,\n isCustom,\n '',\n '',\n )}\n \n \n {numberFormatter(\n item?.percentageNtbSalesCurrent,\n item?.percentageNtbSalesChangeInValue,\n item?.percentageNtbSalesChangeInPercent,\n 0,\n isCustom,\n '',\n '',\n )}\n \n \n {numberFormatter(\n item?.ntbOrdersCurrent,\n item?.ntbOrdersChangeInValue,\n item?.ntbOrdersChangeInPercent,\n 0,\n isCustom,\n '',\n '',\n )}\n \n \n {numberFormatter(\n item?.ntbSalesCurrent,\n item?.ntbSalesChangeInValue,\n item?.ntbSalesChangeInPercent,\n 0,\n isCustom,\n '',\n '',\n )}\n \n \n ) : null}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n \n {/* ********** PDV-8693 Campaign report in sponsored ad section ********** */}\n {selectedAsinToggle === CAMPAIGN ? (\n \n ) : null}\n {/* ********** PDV-8401 Asin performance in sponsored ad section ********** */}\n {selectedAsinToggle === ASIN ? (\n \n ) : null}\n
    \n );\n}\n\nexport default SpAsinAndCampaignContainer;\n\nSpAsinAndCampaignContainer.defaultProps = {\n isCallSPAsinApi: false,\n childBrandId: null,\n selectedDF: '',\n accountType: '',\n currencySymbol: '$',\n selectedMarketplace: 'all',\n sponsoredAdType: 'all',\n adState: [],\n setIsCallSPAsinApi: () => {},\n};\n\nSpAsinAndCampaignContainer.propTypes = {\n isCallSPAsinApi: bool,\n childBrandId: string,\n selectedDF: string,\n accountType: string,\n currencySymbol: string,\n selectedMarketplace: string,\n sponsoredAdType: string,\n customerId: string.isRequired,\n adState: arrayOf(shape()),\n setIsCallSPAsinApi: func,\n};\n","/* eslint-disable camelcase */\nimport React, { useEffect, useRef } from 'react';\n\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport { arrayOf, shape, string } from 'prop-types';\nimport {\n ADCLICKRATE,\n ADCONVERSION,\n ADCOS,\n ADROAS,\n ADSALES,\n ADSPEND,\n COSTPERCLICK,\n IMPRESSIONS,\n} from '../../../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\n\nconst _ = require('lodash');\n\nfunction SponsoredAdPerformanceGoalsChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n}) {\n const chart = useRef(null);\n\n useEffect(() => {\n const colorSet = {\n adSales: '#0045B4',\n adSpend: '#8C54FF',\n adConversion: '#30A8BD',\n impressions: '#D6A307',\n adCos: '#E05D37',\n adRoas: '#E05D37',\n adClicks: '#C84EC6',\n adClickRate: '#A04848',\n costPerClick: '#89A43C',\n };\n\n const tooltipNames = {\n adSales: 'AD SALES',\n adSpend: 'AD SPEND',\n adConversion: 'AD CONVERSION RATE',\n impressions: 'IMPRESSIONS',\n adCos: 'ACOS',\n adRoas: 'ROAS',\n adClicks: 'CLICKS',\n adClickRate: 'CLICK THROUGH RATE',\n costPerClick: 'COST PER CLICK',\n };\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 20;\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true; // disabled zoomout button\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n // create object of first value axis\n const valueAxis = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.grid.template.disabled = true;\n valueAxis.renderer.baseGrid.disabled = true;\n valueAxis.cursorTooltipEnabled = false;\n valueAxis.numberFormatter = new am4core.NumberFormatter();\n valueAxis.extraMax = 0.005;\n valueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis.numberFormatter.smallNumberPrefixes = [];\n valueAxis.min = 0;\n valueAxis.numberFormatter.numberFormat = `#.#a`;\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n `;\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (item === ADSALES || item === ADSPEND || item === COSTPERCLICK) {\n format = `${currencySymbol}#.#a`;\n } else if (\n item === ADCONVERSION ||\n item === ADCLICKRATE ||\n item === ADCOS\n ) {\n format = `#.#'%'`;\n } else if (item === ADROAS) {\n format = `${currencySymbol}#.#`;\n } else {\n format = `#.#a`;\n }\n return format;\n }\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n let valueAxis2;\n const snapToSeries = [];\n let tooltipValue = '';\n const dashLine = ``;\n let firstAxis = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n const goalsLabel = `${item}GoalsLabel`;\n const colorCode = colorSet[item];\n tooltipValue = `${tooltipValue} ${_.startCase(item)}`;\n if (\n item === ADSALES ||\n item === ADSPEND ||\n item === ADROAS ||\n item === COSTPERCLICK\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n // if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n // }\n } else if (\n item === ADCONVERSION ||\n item === ADCLICKRATE ||\n item === ADCOS\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n // if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n '%',\n null,\n )}`;\n // }\n } else if (item === IMPRESSIONS) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n null,\n '#.#a',\n )}`;\n // if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n null,\n '#.#a',\n )}`;\n // }\n } else {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n // if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n null,\n '#,###',\n )}`;\n // }\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const goalsValue = `${item}Goals`;\n const seriesName = `${item}Series`;\n const colorCode = colorSet[item];\n\n if (index === 0) {\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (item === ADSALES || item === ADSPEND) {\n firstAxis = 'currency';\n }\n }\n if (index === 1) {\n if (\n firstAxis === 'currency' &&\n (item === ADSALES || item === ADSPEND)\n ) {\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n } else {\n valueAxis2 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis2.renderer.grid.template.disabled = true;\n valueAxis2.renderer.baseGrid.disabled = true;\n valueAxis2.cursorTooltipEnabled = false;\n valueAxis2.numberFormatter = new am4core.NumberFormatter();\n valueAxis2.numberFormatter.numberFormat = `#.#a`;\n valueAxis2.extraMax = 0.005;\n valueAxis2.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis2.numberFormatter.smallNumberPrefixes = [];\n valueAxis2.min = 0;\n series.yAxis = valueAxis2;\n series2.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n }\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = goalsValue;\n series2.name = goalsValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n series2.tooltipHTML = `${tooltipValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n series2.propertyFields.strokeDasharray = dashLine;\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n\n let firstAxis = null;\n let secondAxis = null;\n let thirdAxis = null;\n let valueAxis3;\n let valueAxis4;\n\n // create object of 2nd value axis\n const valueAxis2 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis2.renderer.grid.template.disabled = true;\n valueAxis2.renderer.baseGrid.disabled = true;\n valueAxis2.cursorTooltipEnabled = false;\n valueAxis2.numberFormatter = new am4core.NumberFormatter();\n valueAxis2.numberFormatter.numberFormat = `#.#a`;\n valueAxis2.extraMax = 0.005;\n valueAxis2.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis2.min = 0;\n valueAxis2.numberFormatter.smallNumberPrefixes = [];\n\n if (\n !(\n _.size(selectedMetrics) === 3 &&\n _.has(selectedMetrics, ADSALES) &&\n _.has(selectedMetrics, ADSPEND)\n )\n ) {\n // create object of 3rd value axis\n valueAxis3 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis3.renderer.grid.template.disabled = true;\n valueAxis3.renderer.baseGrid.disabled = true;\n valueAxis3.cursorTooltipEnabled = false;\n valueAxis3.numberFormatter = new am4core.NumberFormatter();\n valueAxis3.numberFormatter.numberFormat = `#.#a`;\n valueAxis3.extraMax = 0.005;\n valueAxis3.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis3.numberFormatter.smallNumberPrefixes = [];\n valueAxis3.min = 0;\n\n // create object of 4th value axis\n valueAxis4 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis4.renderer.grid.template.disabled = true;\n valueAxis4.renderer.baseGrid.disabled = true;\n valueAxis4.cursorTooltipEnabled = false;\n valueAxis4.numberFormatter = new am4core.NumberFormatter();\n valueAxis4.numberFormatter.numberFormat = `#.#a`;\n valueAxis4.extraMax = 0.005;\n valueAxis4.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis4.numberFormatter.smallNumberPrefixes = [];\n valueAxis4.min = 0;\n }\n\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const value = `${item}CurrentLabel`;\n\n if (\n item === ADSALES ||\n item === ADSPEND ||\n item === ADROAS ||\n item === COSTPERCLICK\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (\n item === ADCONVERSION ||\n item === ADCLICKRATE ||\n item === ADCOS\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n null,\n '%',\n null,\n )}`;\n } else if (item === IMPRESSIONS) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n null,\n null,\n '#.#a',\n )}`;\n } else {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n null,\n null,\n '#,###',\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n if (item === ADSALES || item === ADSPEND) {\n if (firstAxis === null || firstAxis === 'currency') {\n series.yAxis = valueAxis;\n firstAxis = 'currency';\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === null || secondAxis === 'currency') {\n series.yAxis = valueAxis2;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis2.renderer.opposite = true;\n secondAxis = 'currency';\n } else if (thirdAxis === null || thirdAxis === 'currency') {\n series.yAxis = valueAxis3;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis3.renderer.opposite = true;\n\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'currency';\n } else {\n series.yAxis = valueAxis4;\n valueAxis4.renderer.opposite = true;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n valueAxis4.renderer.labels.template.disabled = true;\n }\n } else if (index === 0) {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n firstAxis = 'others';\n } else if (index === 1) {\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else if (index === 2) {\n if (secondAxis === null) {\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else {\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'others';\n }\n } else if (index === 3) {\n if (thirdAxis === null) {\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'others';\n } else {\n series.yAxis = valueAxis4;\n valueAxis4.renderer.opposite = true;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n valueAxis4.renderer.labels.template.disabled = true;\n }\n }\n\n const currentValue = `${item}Current`;\n const seriesName = `${item}Series`;\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorSet[item]);\n series.fill = am4core.color('#2e384d');\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorSet[item]);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n return () => chart.current && chart.current.dispose();\n }, [chartId, chartData, currencySymbol, selectedMetrics, selectedDF]);\n\n return
    ;\n}\n\nexport default SponsoredAdPerformanceGoalsChart;\n\nSponsoredAdPerformanceGoalsChart.defaultProps = {\n chartData: [],\n currencySymbol: '',\n selectedMetrics: {},\n selectedDF: '',\n};\n\nSponsoredAdPerformanceGoalsChart.propTypes = {\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n currencySymbol: string,\n selectedMetrics: shape({}),\n selectedDF: string,\n};\n","import React from 'react';\n\nimport { number, string } from 'prop-types';\n\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n UpDowGrayArrow,\n} from '../../../theme/images';\n\nconst DifferenceAdMetric = ({ value, type }) => {\n if (value >= 0 || (type === 'dpvr' && value < 0)) {\n return (\n \n {value === 0 ? null : (\n \n )}\n {type === 'amcAudience' && !Number.isInteger(value)\n ? value?.toFixed(2).toString().replace('-', '')\n : value.toString().replace('-', '')}\n {type === 'roas' || type === 'totalRoas' ? '' : '%'}\n
    \n );\n }\n return (\n \n \n {type === 'amcAudience' && !Number.isInteger(value)\n ? value?.toFixed(2).toString().replace('-', '')\n : value.toString().replace('-', '')}\n {type === 'roas' || type === 'totalRoas' ? '' : '%'}\n
    \n );\n};\n\nexport default DifferenceAdMetric;\n\nDifferenceAdMetric.defaultProps = {\n value: '',\n type: '',\n};\n\nDifferenceAdMetric.propTypes = {\n value: number,\n type: string,\n};\n","// react imports\nimport React, { useRef, Fragment } from 'react';\n\n// third party imports\nimport ReactTooltip from 'react-tooltip';\nimport { toast } from 'react-toastify';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, instanceOf, shape, string } from 'prop-types';\n\n// local file imports\nimport DifferenceAdMetric from '../DifferenceAdMetric';\nimport CardMetrics from '../../../../common/CardMetrics';\nimport ToogleMetrics from '../../../../common/ToogleMetrics';\nimport { Icon } from '../../../../theme/Global';\nimport {\n ACOS,\n ADCOS,\n ADROAS,\n COSTPERCLICK,\n CPCandSPCToggleMetrics,\n ROAS,\n SALESPERCLICK,\n showMetricsTooltipForSponsored,\n sponosredMetricsTooltipInfo,\n sponsoredMetricsActiveClasses,\n sponsoredMetricsClasses,\n sponsoredMetricsDetails,\n toogleMetricsData,\n} from '../../../../constants';\n\n// thrid party variable\nconst _ = require('lodash');\n\nconst SponsoredAdMetrics = ({\n currencySymbol,\n selectedAdMetrics,\n setSelectedAdMetrics,\n adCurrentTotal,\n addThousandComma,\n adPreviousTotal,\n adDifference,\n isApiCall,\n sponsoredGoalsMetricData,\n sponsoredGoalsToggle,\n sponsoredAdMultiSelected,\n}) => {\n const currencySign = currencySymbol;\n const toogleMetrics = useRef(ACOS);\n const toggleCPCandSPCMetrics = useRef(COSTPERCLICK);\n\n const returnDisbaledClass = (current, previous) => {\n return !current && !previous ? 'disabled' : null;\n };\n\n // set sp metrics box classes\n const setBoxClasses = (name) => {\n let selectedClass = '';\n if (Object.prototype.hasOwnProperty.call(selectedAdMetrics, name)) {\n const metricsIndex = Object.keys(selectedAdMetrics).indexOf(name);\n selectedClass = `order-chart-box ${sponsoredMetricsActiveClasses[metricsIndex]} fix-height`;\n } else if (_.size(selectedAdMetrics) === 4) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n return selectedClass;\n };\n\n // handle sp metrics box toggle\n const setBoxToggle = (name) => {\n if (\n Object.prototype.hasOwnProperty.call(selectedAdMetrics, name) &&\n _.size(selectedAdMetrics) > 1\n ) {\n setSelectedAdMetrics(_.omit(selectedAdMetrics, [name]));\n } else if (_.size(selectedAdMetrics) < 4) {\n if (ADCOS in selectedAdMetrics && name === ADROAS) {\n const values = selectedAdMetrics;\n delete values.adCos;\n } else if (ADROAS in selectedAdMetrics && name === ADCOS) {\n const values = selectedAdMetrics;\n delete values.adRoas;\n }\n\n if (COSTPERCLICK in selectedAdMetrics && name === SALESPERCLICK) {\n const values = selectedAdMetrics;\n delete values.costPerClick;\n } else if (SALESPERCLICK in selectedAdMetrics && name === COSTPERCLICK) {\n const values = selectedAdMetrics;\n delete values.salesPerClick;\n }\n\n if (\n _.size(_.assign(selectedAdMetrics, { [name]: true })) === 2 &&\n sponsoredGoalsToggle\n ) {\n toast.info('Maximum two goals at a time');\n }\n setSelectedAdMetrics(\n _.omit(_.assign(selectedAdMetrics, { [name]: true })),\n );\n }\n };\n\n const onToggleMetrics = () => {\n if (toogleMetrics.current === ACOS) {\n setBoxToggle(ADCOS);\n } else if (toogleMetrics.current === ROAS) {\n setBoxToggle(ADROAS);\n }\n };\n\n // handle toggeling of CPC and SPC metrics\n const handleCPCandSPCToggleEvents = () => {\n if (toggleCPCandSPCMetrics.current === COSTPERCLICK) {\n setBoxToggle(COSTPERCLICK);\n } else if (toggleCPCandSPCMetrics.current === SALESPERCLICK) {\n setBoxToggle(SALESPERCLICK);\n }\n };\n\n const returnTooltipMessge = (key = '') => {\n return `No ${key} available for this period.`;\n };\n\n // display goals info\n const displayGoalsInfoOnCardMetrics = (metricName) => {\n const target = sponsoredGoalsMetricData?.[metricName]?.target;\n return sponsoredGoalsMetricData?.[metricName] ? (\n
    \n
    \n
    \n Target{' '}\n {sponsoredGoalsMetricData?.[metricName]?.sign === 'dollar'\n ? '$'\n : null}\n {sponsoredGoalsMetricData?.[metricName]?.value\n ?.toFixed(2)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n {sponsoredGoalsMetricData?.[metricName]?.sign === 'percentage'\n ? '%'\n : null}\n
    \n \n {' '}\n {target}\n
    \n
    \n
    \n ) : null;\n };\n\n // display metrics box html\n const displayMetricsBoxHTML = (\n className,\n id,\n metricsName,\n metricsKey,\n metricsNameKey,\n classNameKey,\n currentValue,\n previousValue,\n differenceValue,\n prefix,\n suffix,\n decimalDigits,\n hasGoalsToggle,\n differenceType = null,\n tooltipInfo,\n ) => {\n return (\n \n \n setBoxToggle(metricsNameKey, 'ad')}\n role=\"presentation\"\n className={`${setBoxClasses(\n metricsNameKey,\n classNameKey,\n )} ${returnDisbaledClass(currentValue, previousValue)} ${\n !hasGoalsToggle && sponsoredGoalsToggle ? 'disabled' : ''\n }`}\n >\n
    \n
    {metricsName}
    \n
    \n \n \n \n \n
    \n
    \n
    \n {currentValue\n ? `${prefix}${addThousandComma(\n currentValue,\n decimalDigits,\n )}${suffix}`\n : `${prefix}${decimalDigits === 0 ? '0' : '0.00'}${suffix}`}\n
    \n
    \n {previousValue\n ? `vs ${prefix}${addThousandComma(\n previousValue,\n decimalDigits,\n )}${suffix}`\n : `vs ${prefix}${decimalDigits === 0 ? '0' : '0.00'}${suffix}`}\n
    \n
    \n {differenceValue || differenceValue === 0 ? (\n \n ) : (\n
    N/A
    \n )}\n {displayGoalsInfoOnCardMetrics(metricsKey)}\n
    \n
    \n \n
    \n );\n };\n\n // display metrics value\n const displayMetricsValue = (metricsValue) => {\n return metricsValue\n ? `${currencySign}${addThousandComma(metricsValue)}`\n : `${currencySign}0.00`;\n };\n\n // display acos and roas toggle metrics card\n const displayAcosAndRoasToggleMetrics = (index) => {\n return (\n \n \n \n
    \n \n {\n toogleMetrics.current = val;\n }}\n value={toogleMetrics.current}\n toggleName=\"toggleMetrics\"\n />\n
    \n
    \n \n \n \n \n
    \n
    \n\n
    \n {toogleMetrics.current === ACOS\n ? adCurrentTotal && adCurrentTotal.acos\n ? `${addThousandComma(adCurrentTotal.acos)}%`\n : `0.00%`\n : displayMetricsValue(adCurrentTotal?.roas)}\n
    \n
    \n {toogleMetrics.current === ACOS\n ? adPreviousTotal && adPreviousTotal.acos\n ? `vs ${addThousandComma(adPreviousTotal.acos)}%`\n : `vs 0.00%`\n : `vs ${displayMetricsValue(adPreviousTotal?.roas)}`}\n
    \n
    \n {toogleMetrics.current === ACOS ? (\n adDifference?.acos || adDifference?.acos === 0 ? (\n \n ) : (\n
    N/A
    \n )\n ) : adDifference?.roas || adDifference?.roas === 0 ? (\n \n ) : (\n
    N/A
    \n )}\n {displayGoalsInfoOnCardMetrics(\n toogleMetrics.current === ACOS ? ACOS : ROAS,\n )}\n
    \n
    \n \n
    \n );\n };\n\n // display acos and roas toggle metrics card\n const displayCPCandSPCToggleMetrics = (index) => {\n return (\n \n \n \n
    \n \n {\n toggleCPCandSPCMetrics.current = val;\n }}\n value={toggleCPCandSPCMetrics.current}\n toggleName=\"CPCandSPCToggleMetrics\"\n />\n
    \n
    \n \n \n \n \n
    \n
    \n\n
    \n {toggleCPCandSPCMetrics.current === COSTPERCLICK\n ? displayMetricsValue(adCurrentTotal?.cost_per_click)\n : displayMetricsValue(adCurrentTotal?.sales_per_click)}\n
    \n
    \n {toggleCPCandSPCMetrics.current === COSTPERCLICK\n ? `vs ${displayMetricsValue(adPreviousTotal?.cost_per_click)}`\n : `vs ${displayMetricsValue(adPreviousTotal?.sales_per_click)}`}\n
    \n
    \n {toggleCPCandSPCMetrics.current === COSTPERCLICK ? (\n adDifference?.cost_per_click ||\n adDifference?.cost_per_click === 0 ? (\n \n ) : (\n
    N/A
    \n )\n ) : adDifference?.sales_per_click ||\n adDifference?.sales_per_click === 0 ? (\n \n ) : (\n
    N/A
    \n )}\n
    \n
    \n \n
    \n );\n };\n\n // display sp ad metrics\n const renderAdMetrics = () => {\n return (\n
    \n {sponsoredAdMultiSelected?.map((ele, index) =>\n ele?.value === ADCOS\n ? displayAcosAndRoasToggleMetrics(index)\n : ele?.value === COSTPERCLICK\n ? displayCPCandSPCToggleMetrics(index)\n : displayMetricsBoxHTML(\n sponsoredMetricsClasses[index],\n sponsoredMetricsDetails[ele?.value]?.id,\n sponsoredMetricsDetails[ele?.value]?.label,\n sponsoredMetricsDetails[ele?.value]?.metricsKey,\n sponsoredMetricsDetails[ele?.value]?.key,\n sponsoredMetricsActiveClasses[index],\n adCurrentTotal[sponsoredMetricsDetails[ele?.value]?.metricsKey],\n adPreviousTotal[\n sponsoredMetricsDetails[ele?.value]?.metricsKey\n ],\n adDifference[sponsoredMetricsDetails[ele?.value]?.metricsKey],\n sponsoredMetricsDetails[ele?.value]?.hasCurrency\n ? currencySymbol\n : '',\n sponsoredMetricsDetails[ele?.value]?.hasPercentage,\n sponsoredMetricsDetails[ele?.value]?.decimalDigits,\n sponsoredMetricsDetails[ele?.value]?.hasGoals,\n sponsoredMetricsDetails[ele?.value]?.differenceType,\n sponsoredMetricsDetails[ele?.value]?.tooltipInfo,\n ),\n )}\n
    \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n {showMetricsTooltipForSponsored?.map((key) => {\n return (\n \n {!adCurrentTotal?.[key] && !adPreviousTotal?.[key] && !isApiCall ? (\n \n ) : null}\n \n );\n })}\n {renderAdMetrics()}\n \n );\n};\n\nexport default SponsoredAdMetrics;\n\nSponsoredAdMetrics.defaultProps = {\n currencySymbol: '',\n sponsoredAdMultiSelected: [{}],\n setSelectedAdMetrics: () => {},\n selectedAdMetrics: {},\n adCurrentTotal: {},\n addThousandComma: () => {},\n adPreviousTotal: {},\n adDifference: {},\n sponsoredGoalsMetricData: {},\n isApiCall: false,\n sponsoredGoalsToggle: false,\n};\n\nSponsoredAdMetrics.propTypes = {\n currencySymbol: string,\n sponsoredAdMultiSelected: arrayOf(shape({})),\n setSelectedAdMetrics: func,\n selectedAdMetrics: instanceOf(Object),\n adCurrentTotal: instanceOf(Object),\n addThousandComma: func,\n adPreviousTotal: instanceOf(Object),\n adDifference: instanceOf(Object),\n sponsoredGoalsMetricData: instanceOf(Object),\n isApiCall: bool,\n sponsoredGoalsToggle: bool,\n};\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n arrayOf,\n bool,\n func,\n instanceOf,\n number,\n shape,\n string,\n} from 'prop-types';\n\nimport AdPerformanceChart from './AdPerformanceChart';\nimport SpAsinAndCampaignContainer from './SpAsinAndCampaignContainer';\nimport SponsoredAdPerformanceGoalsChart from './SponsoredAdPerformanceGoalsChart';\nimport SponsoredAdMetrics from '../../../../../BrandPartner/AdManagerAdminDashboard/SponsoredDashboard/SponsoredAdMetrics';\nimport {\n WhiteCard,\n PageLoader,\n ToggleButton,\n DropDowns,\n ToggleSwitch,\n GrayMessageBar,\n MultipleDashedLineLabel,\n MultiSelectDropdownWithoutAll,\n} from '../../../../../../common';\nimport {\n ADCOS,\n ADPERFORMANCE,\n ADSPEND,\n AdTypesOptions,\n CUSTOM,\n NTBORDERS,\n NTBSALES,\n PERCENTAGENTBORDERS,\n PERCENTAGENTBSALES,\n SELLERSMALL,\n VENDORSMALL,\n dailyWeeklyMonthlyOptions,\n noGraphDataMessage,\n performanceInsightMessage,\n sponoredMetricsList,\n sponsoredTooltipDataHTML,\n} from '../../../../../../constants';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\n\nconst _ = require('lodash');\n\nexport default function SponsoredPerformanceContainer({\n isCallSPAsinApi,\n customerId,\n childBrandId,\n currencySymbol,\n sponsoredAdType,\n setSelectedAdBox,\n selectedAdBox,\n adCurrentTotal,\n adPreviousTotal,\n adDifference,\n adGraphLoader,\n adChartData,\n selectedAdDF,\n adGroupBy,\n handleAdGroupBy,\n handleAdType,\n selectedAdType,\n getAdTypesSelectComponents,\n customDateError,\n subViewComponent,\n dateOptions,\n handleAdDailyFact,\n isApiCall,\n getSelectComponents,\n daysDiff,\n selectedMarketplace,\n adState,\n currentDateForSponsored,\n accountType,\n sponsoredGoalsMetricData,\n sponsoredGoalsToggle,\n setIsCallSPAsinApi,\n setSponsoredGoalsToggle,\n sponsoredAdGoalChartData,\n renderDataAvailableChildList,\n sponsoredAdMultiSelected,\n setSponsoredAdMultiSelected,\n handledSponsoredMetricsOnMenuClose,\n}) {\n let options = [...dateOptions];\n if (daysDiff && options) {\n const updatedOption = options.map((obj) => {\n if (obj.value === 'week' && daysDiff < 7) {\n obj.isDisabled = true;\n }\n if (\n obj.value === 'month' &&\n daysDiff < currentDateForSponsored?.getDate()\n ) {\n obj.isDisabled = true;\n }\n if (obj.value === '30days' && daysDiff < 30) {\n obj.isDisabled = true;\n }\n\n return obj;\n });\n options = [...updatedOption];\n }\n const dashboardDynamicError = useSelector(\n (state) => state.userState?.showDynamicMsg,\n );\n\n const getAdTypeOptions = () => {\n let localAdType = AdTypesOptions;\n if (\n selectedMarketplace?.value !== 'Amazon.com' &&\n selectedMarketplace?.value !== 'all'\n ) {\n localAdType = AdTypesOptions.map((ele) => {\n return {\n value: ele?.value,\n label: ele?.label,\n key: ele?.key,\n isDisabled: ele?.value === 'television_campaign_report',\n };\n });\n }\n return localAdType;\n };\n\n const getSponsoredMetricOptions = () => {\n let localAdMetricsOptions = sponoredMetricsList;\n\n localAdMetricsOptions = sponoredMetricsList.map((ele) => {\n // PDV-9017 NTBOrders, NTBSales, percentageNtbSales, percentageNtbOrders will only be enabled\n // if ad type filter is set to ALL, Sponsored Brands+Video, Sponsored Display otherwise, it will be grayed out.\n if (\n ([\n NTBORDERS,\n NTBSALES,\n PERCENTAGENTBORDERS,\n PERCENTAGENTBSALES,\n ].includes(ele?.value) &&\n ['product_campaign_report', 'television_campaign_report'].includes(\n selectedAdType?.value,\n )) ||\n // at least four option should be selected.\n (sponsoredAdMultiSelected?.length === 4 &&\n (sponsoredAdMultiSelected[0]?.value === ele?.value ||\n sponsoredAdMultiSelected[1]?.value === ele?.value ||\n sponsoredAdMultiSelected[2]?.value === ele?.value ||\n sponsoredAdMultiSelected[3]?.value === ele?.value))\n ) {\n return {\n value: ele?.value,\n label: ele?.label,\n isDisabled: true,\n };\n }\n\n // PDV-9017- if 8 metrics are already selected, the other metrics will be grayed out\n const isDisabled =\n sponsoredAdMultiSelected.length === 8 &&\n sponsoredAdMultiSelected.find((o) => o?.value === ele?.value) ===\n undefined;\n\n return {\n value: ele?.value,\n label: ele?.label,\n isDisabled,\n };\n });\n\n return localAdMetricsOptions;\n };\n\n // handle sponsored goals toggle events\n const handleSponsoredGoalsToggleEvents = () => {\n setSponsoredGoalsToggle(!sponsoredGoalsToggle);\n\n const isAdSpend = sponsoredAdMultiSelected?.some(\n (item) => item?.value === ADSPEND,\n );\n const isAdCos = sponsoredAdMultiSelected?.some(\n (item) => item?.value === ADCOS,\n );\n\n // if multiselected dropdown contain adspend or acos/roas metrics selected then make them TRUE in setSelectedAdbox and other metrics will be disabled otherwise setSponsoredGoalsToggle to false.\n if (isAdSpend) {\n setSelectedAdBox({ adSpend: true });\n } else if (isAdCos) {\n setSelectedAdBox({ adCos: true });\n } else {\n setSponsoredGoalsToggle(false);\n }\n };\n\n const renderSponsoredFilters = () => {\n let sponsoredDynamicErrorMessage = null;\n const sellerPlaceholder =\n dashboardDynamicError?.sponsored_performance_seller?.placeholder;\n const vendorPlaceholder =\n dashboardDynamicError?.sponsored_performance_vendor?.placeholder;\n if (accountType === SELLERSMALL && sellerPlaceholder) {\n sponsoredDynamicErrorMessage = sellerPlaceholder;\n }\n if (accountType === VENDORSMALL && vendorPlaceholder) {\n sponsoredDynamicErrorMessage = vendorPlaceholder;\n }\n\n return (\n <>\n
    \n
    \n Sponsored Ad Performance{' '}\n \n
    \n \n
    \n
    \n
      \n {/* render ad type drop-down */}\n \n {DropDowns(\n 'BT-SponsoredPerformanceAdTypes',\n 'days-performance',\n getAdTypeOptions(),\n AdTypesOptions[0].label,\n getAdTypesSelectComponents,\n AdTypesOptions[0],\n handleAdType,\n adGraphLoader,\n null,\n selectedAdType,\n )}\n \n \n {' '}\n {\n handledSponsoredMetricsOnMenuClose();\n }}\n multiselectLabel={null}\n />\n \n
    • \n {DropDowns(\n 'BT-AdPerformanceTimeFrame',\n 'days-performance',\n options,\n options[0].label,\n getSelectComponents,\n options[0],\n handleAdDailyFact,\n isApiCall,\n null,\n selectedAdDF,\n false,\n )}\n
    • \n
    {' '}\n
    \n
    \n {sponsoredDynamicErrorMessage !== null ? (\n \n ) : null}\n
    \n \n );\n };\n\n const addThousandComma = (num, decimalDigits = 2) => {\n if (num !== undefined && num !== null) {\n return num.toFixed(decimalDigits).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n return num;\n };\n\n const renderErrorMessage = () => {\n let { fromDate } = customDateError;\n let { toDate } = customDateError;\n\n fromDate = dayjs(fromDate).format('MM/DD/YYYY');\n toDate = dayjs(toDate).subtract(1, 'day').format('MM/DD/YYYY');\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n };\n\n const renderAdGroupBy = () => {\n const previousClassName =\n _.size(selectedAdBox) === 1 ? `adSales block` : 'darkGray block';\n return (\n <>\n {_.size(selectedAdBox) <= 2 ? (\n
    \n
      \n
    • \n
      \n \n\n {sponsoredGoalsToggle ? 'Metrics' : 'Recent'}\n
      \n
    • \n {selectedAdDF.value !== CUSTOM ? (\n
    • \n \n
    • \n ) : sponsoredGoalsToggle ? (\n
    • \n \n
    • \n ) : null}\n
    \n
    \n ) : (\n
    \n )}\n
    \n \n
    \n \n {dailyWeeklyMonthlyOptions?.map((item) => {\n return (\n
  • \n handleAdGroupBy(item?.value)}\n />\n \n
  • \n );\n })}\n \n
    \n
    \n
    \n \n );\n };\n\n const showGoalsToggle = () => {\n return (\n \n \n Goals\n {\n handleSponsoredGoalsToggleEvents();\n }}\n onChange={() => {}}\n checked={sponsoredGoalsToggle}\n />\n \n \n \n );\n };\n\n // dislplay sponsored asin and campaign performance section\n const displaySPCampaignAndAsinSection = () => {\n return (\n \n );\n };\n\n return (\n \n
    {renderSponsoredFilters()}
    \n {renderDataAvailableChildList('sponsored')}\n {selectedAdDF.value !== CUSTOM ? (\n \n ) : null}\n \n {showGoalsToggle()}\n {selectedAdDF.value === CUSTOM &&\n subViewComponent === customDateError?.accountType &&\n customDateError.selectedTab === ADPERFORMANCE\n ? renderErrorMessage()\n : null}\n
    {renderAdGroupBy()}
    \n {adGraphLoader ? (\n \n ) : adChartData.length >= 1 && !sponsoredGoalsToggle ? (\n \n ) : sponsoredAdGoalChartData?.length && sponsoredGoalsToggle ? (\n \n ) : (\n {noGraphDataMessage}\n )}\n
    \n {displaySPCampaignAndAsinSection()}\n \n );\n}\n\nSponsoredPerformanceContainer.defaultProps = {\n isCallSPAsinApi: false,\n customerId: '',\n childBrandId: null,\n sponsoredAdType: 'all',\n sponsoredGoalsToggle: false,\n adGraphLoader: false,\n isApiCall: false,\n daysDiff: 0,\n currencySymbol: '',\n subViewComponent: '',\n accountType: '',\n adGroupBy: '',\n selectedAdBox: {},\n adCurrentTotal: {},\n adPreviousTotal: {},\n adDifference: {},\n adChartData: {},\n selectedAdDF: {},\n selectedMarketplace: {},\n customDateError: {},\n sponsoredGoalsMetricData: {},\n sponsoredAdGoalChartData: [],\n selectedAdType: {},\n dateOptions: [{}],\n sponsoredAdMultiSelected: [{}],\n currentDateForSponsored: null,\n adState: [],\n setIsCallSPAsinApi: () => {},\n setSelectedAdBox: () => {},\n setSponsoredGoalsToggle: () => {},\n getAdTypesSelectComponents: () => {},\n getSelectComponents: () => {},\n handleAdDailyFact: () => {},\n handleAdGroupBy: () => {},\n handleAdType: () => {},\n renderDataAvailableChildList: () => {},\n setSponsoredAdMultiSelected: () => {},\n handledSponsoredMetricsOnMenuClose: () => {},\n};\n\nSponsoredPerformanceContainer.propTypes = {\n isCallSPAsinApi: bool,\n customerId: string,\n childBrandId: string,\n sponsoredAdType: string,\n sponsoredGoalsToggle: bool,\n adGraphLoader: bool,\n isApiCall: bool,\n currencySymbol: string,\n subViewComponent: string,\n adGroupBy: string,\n daysDiff: number,\n accountType: string,\n selectedMarketplace: shape({}),\n dateOptions: arrayOf(Array),\n adState: arrayOf(shape()),\n selectedAdBox: instanceOf(Object),\n adCurrentTotal: instanceOf(Object),\n adPreviousTotal: instanceOf(Object),\n adDifference: instanceOf(Object),\n adChartData: arrayOf(Array),\n selectedAdDF: instanceOf(Object),\n customDateError: shape({}),\n selectedAdType: shape({}),\n sponsoredAdMultiSelected: arrayOf(shape()),\n currentDateForSponsored: instanceOf(Date),\n sponsoredGoalsMetricData: instanceOf(Object),\n sponsoredAdGoalChartData: instanceOf(Object),\n setIsCallSPAsinApi: func,\n getAdTypesSelectComponents: func,\n handleAdDailyFact: func,\n getSelectComponents: func,\n setSponsoredGoalsToggle: func,\n handleAdGroupBy: func,\n handleAdType: func,\n renderDataAvailableChildList: func,\n setSelectedAdBox: func,\n setSponsoredAdMultiSelected: func,\n handledSponsoredMetricsOnMenuClose: func,\n};\nconst NoData = styled.div`\n margin: 3em;\n text-align: center;\n`;\n","import dayjs from 'dayjs';\n\nconst BindSponsoredAdGraphData = (response) => {\n const tempData = [];\n\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.revised_date)\n : response?.daily_facts?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n // filterout previous data in one temporary object.\n if (response?.daily_facts?.previous?.length) {\n response.daily_facts.previous.forEach((item, index) => {\n const previousDate = dayjs(item?.revised_date).format('MMM D YYYY');\n tempData.push({\n adSalesPrevious: item.ad_sales,\n adSpendPrevious: item.ad_spend,\n adConversionPrevious: item.ad_conversion_rate,\n impressionsPrevious: item.impressions,\n adCosPrevious: item.acos,\n adRoasPrevious: item.roas,\n adClicksPrevious: item.clicks,\n adClickRatePrevious: item.ctr,\n costPerClickPrevious: item.cost_per_click,\n salesPerClickPrevious: item?.sales_per_click,\n percentageNtbOrdersPrevious: item?.ntb_orders_percent,\n percentageNtbSalesPrevious: item?.ntb_sales_percent,\n ntbOrdersPrevious: item?.ntb_orders,\n ntbSalesPrevious: item?.ntb_sales,\n previousDate,\n previousEndDate: nextReportDate(\n index,\n response?.daily_facts?.previous,\n 'previous',\n ),\n\n adSalesPreviousLabel:\n item.ad_sales !== null ? item.ad_sales.toFixed(2) : '0.00',\n adSpendPreviousLabel:\n item.ad_spend !== null ? item.ad_spend.toFixed(2) : '0.00',\n adConversionPreviousLabel:\n item.ad_conversion_rate !== null\n ? item.ad_conversion_rate.toFixed(2)\n : '0.00',\n impressionsPreviousLabel:\n item.impressions !== null ? item.impressions : '0',\n adCosPreviousLabel: item.acos !== null ? item.acos.toFixed(2) : '0.00',\n adRoasPreviousLabel: item.roas !== null ? item.roas.toFixed(2) : '0.00',\n adClicksPreviousLabel: item.clicks !== null ? item.clicks : '0',\n adClickRatePreviousLabel:\n item.ctr !== null ? item.ctr.toFixed(2) : '0.00',\n costPerClickPreviousLabel:\n item.cost_per_click !== null\n ? item.cost_per_click.toFixed(2)\n : '0.00',\n salesPerClickPreviousLabel:\n item?.sales_per_click !== null\n ? item.sales_per_click.toFixed(2)\n : '0.00',\n\n percentageNtbOrdersPreviousLabel:\n item?.ntb_orders_percent !== null\n ? item.ntb_orders_percent.toFixed(2)\n : '0',\n percentageNtbSalesPreviousLabel:\n item?.ntb_sales_percent !== null\n ? item.ntb_sales_percent.toFixed(2)\n : '0',\n ntbOrdersPreviousLabel:\n item?.ntb_orders !== null ? item.ntb_orders.toFixed(2) : '0',\n ntbSalesPreviousLabel:\n item?.ntb_sales !== null ? item.ntb_sales.toFixed(2) : '0',\n });\n });\n }\n\n // filterout current data in one temporary object.\n if (response?.daily_facts?.current?.length) {\n response.daily_facts.current.forEach((item, index) => {\n const currentReportDate = dayjs(item?.revised_date).format('MMM D YYYY');\n // let indexNumber = index;\n // add the current data at same index of prevoius in temporary object\n if (\n response.daily_facts.previous &&\n index < response.daily_facts.previous.length\n ) {\n tempData[index].date = currentReportDate;\n tempData[index].adSalesCurrent = item.ad_sales;\n tempData[index].adSpendCurrent = item.ad_spend;\n tempData[index].adConversionCurrent = item.ad_conversion_rate;\n tempData[index].impressionsCurrent = item.impressions;\n tempData[index].adCosCurrent = item.acos;\n tempData[index].adRoasCurrent = item.roas;\n tempData[index].adClicksCurrent = item.clicks;\n tempData[index].adClickRateCurrent = item.ctr;\n tempData[index].costPerClickCurrent = item.cost_per_click;\n tempData[index].salesPerClickCurrent = item?.sales_per_click;\n\n tempData[index].percentageNtbOrdersCurrent = item?.ntb_orders_percent;\n tempData[index].percentageNtbSalesCurrent = item?.ntb_sales_percent;\n tempData[index].ntbOrdersCurrent = item?.ntb_orders;\n tempData[index].ntbSalesCurrent = item?.ntb_sales;\n\n tempData[index].endDate = nextReportDate(\n index,\n response?.daily_facts?.current,\n 'current',\n );\n\n tempData[index].adSalesCurrentLabel =\n item.ad_sales !== null ? item.ad_sales.toFixed(2) : '0.00';\n tempData[index].adSpendCurrentLabel =\n item.ad_spend !== null ? item.ad_spend.toFixed(2) : '0.00';\n tempData[index].adConversionCurrentLabel =\n item.ad_conversion_rate !== null\n ? item.ad_conversion_rate.toFixed(2)\n : '0.00';\n tempData[index].impressionsCurrentLabel =\n item.impressions !== null ? item.impressions : '0';\n tempData[index].adCosCurrentLabel =\n item.acos !== null ? item.acos.toFixed(2) : '0.00';\n tempData[index].adRoasCurrentLabel =\n item.roas !== null ? item.roas.toFixed(2) : '0.00';\n tempData[index].adClicksCurrentLabel =\n item.clicks !== null ? item.clicks : '0';\n tempData[index].adClickRateCurrentLabel =\n item.ctr !== null ? item.ctr.toFixed(2) : '0.00';\n tempData[index].costPerClickCurrentLabel =\n item.cost_per_click !== null\n ? item.cost_per_click.toFixed(2)\n : '0.00';\n tempData[index].salesPerClickCurrentLabel = item?.sales_per_click\n ? item.sales_per_click.toFixed(2)\n : '0.00';\n\n tempData[index].percentageNtbOrdersCurrentLabel =\n item?.ntb_orders_percent ? item.ntb_orders_percent.toFixed(2) : '0';\n tempData[index].percentageNtbSalesCurrentLabel = item?.ntb_sales_percent\n ? item.ntb_sales_percent.toFixed(2)\n : '0';\n tempData[index].ntbOrdersCurrentLabel = item?.ntb_orders\n ? item.ntb_orders.toFixed(2)\n : '0';\n tempData[index].ntbSalesCurrentLabel = item?.ntb_sales\n ? item.ntb_sales.toFixed(2)\n : '0';\n } else {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previou value null and previous label 0\n tempData.push({\n adSalesCurrent: item.ad_sales,\n adSpendCurrent: item.ad_spend,\n adConversionCurrent: item.ad_conversion_rate,\n impressionsCurrent: item.impressions,\n adCosCurrent: item.acos,\n adRoasCurrent: item.roas,\n adClicksCurrent: item.clicks,\n adClickRateCurrent: item.ctr,\n costPerClickCurrent: item.cost_per_click,\n salesPerClickCurrent: item?.sales_per_click,\n\n percentageNtbOrdersCurrent: item?.ntb_orders_percent,\n percentageNtbSalesCurrent: item?.ntb_sales_percent,\n ntbOrdersCurrent: item?.ntb_orders,\n ntbSalesCurrent: item?.ntb_sales,\n\n date: currentReportDate,\n endDate: nextReportDate(\n index,\n response?.daily_facts?.current,\n 'current',\n ),\n\n adSalesPrevious: null,\n adSpendPrevious: null,\n adConversionPrevious: null,\n impressionsPrevious: null,\n adCosPrevious: null,\n adRoasPrevious: null,\n adClicksPrevious: null,\n adClickRatePrevious: null,\n costPerClickPrevious: null,\n salesPerClickPrevious: null,\n percentageNtbOrders: null,\n percentageNtbSales: null,\n ntbOrders: null,\n ntbSales: null,\n\n adSalesCurrentLabel:\n item.ad_sales !== null ? item.ad_sales.toFixed(2) : '0.00',\n adSpendCurrentLabel:\n item.ad_spend !== null ? item.ad_spend.toFixed(2) : '0.00',\n adConversionCurrentLabel:\n item.ad_conversion_rate !== null\n ? item.ad_conversion_rate.toFixed(2)\n : '0.00',\n impressionsCurrentLabel:\n item.impressions !== null ? item.impressions : '0',\n adCosCurrentLabel: item.acos !== null ? item.acos.toFixed(2) : '0.00',\n adRoasCurrentLabel:\n item.roas !== null ? item.roas.toFixed(2) : '0.00',\n adClicksCurrentLabel: item.clicks !== null ? item.clicks : '0',\n adClickRateCurrentLabel:\n item.ctr !== null ? item.ctr.toFixed(2) : '0.00',\n costPerClickCurrentLabel:\n item.cost_per_click !== null\n ? item.cost_per_click.toFixed(2)\n : '0.00',\n salesPerClickCurrentLabel: item?.sales_per_click\n ? item.sales_per_click.toFixed(2)\n : '0.00',\n\n percentageNtbOrdersCurrentLabel: item?.ntb_orders_percent\n ? item.ntb_orders_percent.toFixed(2)\n : '0',\n percentageNtbSalesCurrentLabel: item?.ntb_sales_percent\n ? item.ntb_sales_percent.toFixed(2)\n : '0',\n ntbOrdersCurrentLabel: item?.ntb_orders\n ? item.ntb_orders.toFixed(2)\n : '0',\n ntbSalesCurrentLabel: item?.ntb_sales\n ? item.ntb_sales.toFixed(2)\n : '0',\n\n adSalesPreviousLabel: '0.00',\n adSpendPreviousLabel: '0.00',\n adConversionPreviousLabel: '0.00',\n impressionsPreviousLabel: '0',\n adCosPreviousLabel: '0.00',\n adRoasPreviousLabel: '0.00',\n adClicksPreviousLabel: '0',\n adClickRatePreviousLabel: '0.00',\n costPerClickPreviousLabel: '0.00',\n salesPerClickPreviousLabel: '0.00',\n percentageNtbOrdersPreviousLabel: '0',\n percentageNtbSalesPreviousLabel: '0',\n ntbOrdersPreviousLabel: '0',\n ntbSalesPreviousLabel: '0',\n });\n }\n });\n }\n\n return tempData;\n};\n\nexport default BindSponsoredAdGraphData;\n","import dayjs from 'dayjs';\n\nconst BindSponsoredAdGoalsGraphData = (response) => {\n const finalData = [];\n if (response?.daily_facts?.current?.length) {\n response.daily_facts.current.forEach((item) => {\n const tempData = {};\n const currentReportDate = dayjs(item?.revised_date).format('MMM D YYYY');\n tempData.date = currentReportDate;\n tempData.adSpendCurrent = item.ad_spend;\n tempData.adSpendGoals = item?.goal_ad_spend;\n tempData.adRoasCurrent = item.roas;\n tempData.adRoasGoals = item?.goal_roas;\n tempData.adCosCurrent = item.acos;\n tempData.adCosGoals = item?.goal_acos;\n\n tempData.adSpendCurrentLabel =\n item.sponsored_ad_spend !== null ? item.ad_spend.toFixed(2) : '0';\n tempData.adSpendGoalsLabel =\n item?.goal_ad_spend !== null ? item?.goal_ad_spend?.toFixed(2) : '0';\n tempData.adRoasCurrentLabel =\n item.roas !== null ? item.roas.toFixed(2) : '0.00';\n tempData.adRoasGoalsLabel =\n item?.goal_roas !== null ? item?.goal_roas?.toFixed(2) : '0.00';\n tempData.adCosCurrentLabel =\n item.acos !== null ? item.acos.toFixed(2) : '0.00';\n tempData.adCosGoalsLabel =\n item?.goal_acos !== null ? item?.goal_acos?.toFixed(2) : '0.00';\n\n // to add the dotted line. we have to check null matrix and add the dummy number like 8\n\n // tempData.revenueTotalDashLength = item.revenue === null ? 8 : null;\n // tempData.adSpendDashLength =\n // item.sponsored_ad_spend === null ? 8 : null;\n finalData.push(tempData);\n });\n }\n return finalData;\n};\n\nexport default BindSponsoredAdGoalsGraphData;\n","import styled from 'styled-components';\n\nconst AdPerformanceNav = styled.div`\n .ad-performance-nav {\n list-style-type: none;\n padding: 0;\n margin: 0;\n text-align: right;\n\n li {\n display: inline-block;\n padding: 0 0px 15px 8px;\n\n &.ad-performance {\n max-width: 260px;\n width: 100%;\n vertical-align: top;\n }\n .days-performance {\n max-width: 260px;\n width: 100%;\n }\n }\n }\n\n @media only screen and (max-width: 991px) {\n .ad-performance-nav {\n text-align: left;\n li {\n &.ad-performance {\n max-width: 50%;\n }\n .days-performance {\n max-width: 100%;\n }\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .ad-performance-nav {\n li {\n padding-left: 0;\n &.ad-performance {\n max-width: 100%;\n }\n .days-performance {\n max-width: 100%;\n }\n }\n }\n }\n`;\nexport default AdPerformanceNav;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState, useCallback, useRef } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport dayjs from 'dayjs';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { components } from 'react-select';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, bool, func, instanceOf, shape, string } from 'prop-types';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\n\nimport AdPerformanceFilters from './AdPerformanceFilters';\nimport SponsoredPerformanceContainer from './SponsoredAdPerformance/SponsoredPerformanceContainer';\nimport Theme from '../../../../../theme/Theme';\nimport BindSponsoredAdGraphData from './BindSponsoredAdGraphData';\nimport BindSponsoredAdGoalsGraphData from './BindSponsoredAdGoalsGraphData';\nimport AdPerformanceNav from './AdPerformanceStyle';\nimport { getAdPerformance } from '../../../../../api';\nimport {\n CustomDateModal,\n DropdownIndicator,\n DropdownSingleValue,\n} from '../../../../../common';\nimport {\n ADPERFORMANCE,\n AdTypesOptions,\n CUSTOM,\n SELLERSMALL,\n VENDORSMALL,\n dateOptions,\n sponoredMetricsList,\n} from '../../../../../constants';\n\nconst _ = require('lodash');\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nexport default function AdPerformance({\n id,\n dspPpcFlag,\n isCallSPAsinApi,\n accountType,\n selectedAdDF,\n setSelectedAdDF,\n adState,\n setAdState,\n currentDate,\n selectedMarketplace,\n setSelectedMarketplace,\n marketplaceOptions,\n goalsMarketplaceOptions,\n currencySymbol,\n setCurrencySymbol,\n adMinDate,\n selectedAdType,\n setSelectedAdType,\n customDateError,\n subViewComponent,\n bindErrorMessage,\n minDateLoader,\n goalsMarketplaceIds,\n childBrandOptions,\n selectedChildBrand,\n setIsCallSPAsinApi,\n setSelectedChildBrand,\n displayAccountTypeFilter,\n renderDataAvailableChildList,\n getDataAvailabeleChildBrandList,\n createMarektplaceIdsListOfGoals,\n}) {\n const isSponsoredDashboardDisabled = !dspPpcFlag?.isHavingPpc;\n const mounted = useRef(false);\n const customerState = useSelector((state) => state?.customerState?.data);\n\n const { Option, SingleValue } = components;\n\n const [sponsoredGoalsToggle, setSponsoredGoalsToggle] = useState(false);\n const [selectedAdBox, setSelectedAdBox] = useState({ adSales: true });\n\n const [sponsoredAdGoalChartData, setSponsoredAdGoalChartData] = useState([]);\n\n const [adGroupBy, setAdGroupBy] = useState('daily');\n\n const [adChartData, setAdChartData] = useState([]);\n const [adCurrentTotal, setAdCurrentTotal] = useState([]);\n const [adPreviousTotal, setAdPreviousTotal] = useState([]);\n const [adDifference, setAdDifference] = useState([]);\n const [adGraphLoader, setAdGraphLoader] = useState(false);\n const [sponsoredAdMultiSelected, setSponsoredAdMultiSelected] = useState(\n sponoredMetricsList.slice(0, 8),\n );\n const [sponsoredGoalsMetricData, setSponsoredGoalsMetricData] = useState([]);\n const [isCustomDateApply, setIsCustomDateApply] = useState(false);\n const [showAdCustomDateModal, setShowAdCustomDateModal] = useState(false);\n\n // need to reset the multi-selected drop-down and selected metrics,\n // when we changed the account type filter to vendor- because metrics multi select functionality only for seller (PDV-9017)\n useEffect(() => {\n if (subViewComponent === VENDORSMALL) {\n setSponsoredAdMultiSelected(sponoredMetricsList.slice(0, 8));\n setSelectedAdBox({ adSales: true });\n }\n }, [subViewComponent, selectedAdType]);\n\n // need to reset the multi-selected drop-down and selected metrics,\n // when we changed the sponsored type filter\n useEffect(() => {\n setSponsoredAdMultiSelected(sponoredMetricsList.slice(0, 8));\n setSelectedAdBox({ adSales: true });\n }, [selectedAdType]);\n\n // get sposored ad performnace data\n const getAdData = useCallback(\n (\n adType,\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n goalsMarketplaces,\n onGroupByClick = false,\n childBrand,\n startDate = null,\n endDate = null,\n ) => {\n setAdGraphLoader(true);\n getDataAvailabeleChildBrandList(\n id,\n 'sponsored',\n accountType,\n marketplace,\n adType,\n selectedDailyFact,\n startDate,\n endDate,\n );\n getAdPerformance(\n id,\n adType,\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n goalsMarketplaces,\n childBrand,\n startDate,\n endDate,\n accountType,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (res?.data?.daily_facts) {\n const adGraphData = BindSponsoredAdGraphData(res?.data);\n setAdChartData(adGraphData);\n const dailyFacts = res?.data?.daily_facts;\n\n setAdCurrentTotal(dailyFacts?.current_sum || []);\n setAdPreviousTotal(dailyFacts?.previous_sum || []);\n setAdDifference(dailyFacts?.difference_data || []);\n\n if (!onGroupByClick) {\n setSponsoredGoalsMetricData(\n res?.data?.daily_facts?.goal_metric,\n );\n }\n if (selectedDailyFact === CUSTOM) {\n const sponsoredAdGoalsGraphData = BindSponsoredAdGoalsGraphData(\n res?.data,\n );\n setSponsoredAdGoalChartData(sponsoredAdGoalsGraphData);\n }\n } else {\n setAdChartData([]);\n setAdPreviousTotal([]);\n setAdCurrentTotal([]);\n setAdDifference([]);\n }\n setAdGraphLoader(false);\n } else {\n setAdChartData([]);\n setAdPreviousTotal([]);\n setAdCurrentTotal([]);\n setAdDifference([]);\n setAdGraphLoader(false);\n }\n }\n });\n },\n [getDataAvailabeleChildBrandList, id, accountType],\n );\n\n const ADYearAndCustomDateFilter = (\n startDate,\n endDate,\n dailyFactFlag,\n marketplace,\n adType,\n ) => {\n const temp = 'daily';\n let sd = startDate;\n let ed = endDate;\n setAdGroupBy(temp);\n\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n getAdData(\n adType,\n dailyFactFlag,\n temp,\n marketplace,\n goalsMarketplaceIds,\n false,\n selectedChildBrand,\n sd,\n ed,\n );\n };\n\n useEffect(() => {\n mounted.current = true;\n if (mounted.current && selectedMarketplace?.value) {\n if (selectedAdDF?.value === CUSTOM) {\n setIsCustomDateApply(true);\n\n ADYearAndCustomDateFilter(\n adState[0].startDate,\n adState[0].endDate,\n CUSTOM,\n selectedMarketplace?.value,\n selectedAdType.value,\n );\n } else {\n getAdData(\n selectedAdType?.value,\n selectedAdDF?.value,\n adGroupBy,\n selectedMarketplace?.value,\n goalsMarketplaceIds,\n false,\n selectedChildBrand,\n );\n }\n }\n\n return () => {\n mounted.current = false;\n };\n }, [selectedMarketplace, selectedChildBrand, goalsMarketplaceIds]);\n\n const applyCustomDate = () => {\n if (selectedAdDF.value !== CUSTOM)\n setSelectedAdDF({\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n setIsCallSPAsinApi(true);\n setIsCustomDateApply(true);\n ADYearAndCustomDateFilter(\n adState[0].startDate,\n adState[0].endDate,\n CUSTOM,\n selectedMarketplace?.value,\n selectedAdType.value,\n );\n\n bindErrorMessage(ADPERFORMANCE, adMinDate);\n setShowAdCustomDateModal(false);\n };\n\n const renderCustomDateSubLabel = (props) => {\n if (selectedAdDF.value === CUSTOM && isCustomDateApply) {\n return `From- ${dayjs(adState[0].startDate).format(\n 'MMM D, YYYY',\n )} To- ${dayjs(adState[0].endDate).format('MMM D, YYYY')}`;\n }\n\n return props.data.sub;\n };\n\n const singleFilterOption = (props) => (\n \n {props.data.label}\n\n
    {renderCustomDateSubLabel(props)}
    \n
    \n );\n\n const filterOption = (props) => {\n return (\n \n );\n };\n\n const adTypefilterOption = (props) => {\n return (\n \n );\n };\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const getAdTypesSelectComponents = () => {\n return {\n Option: adTypefilterOption,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n const handleMarketplaceOptions = (event) => {\n if (event?.value !== selectedMarketplace?.value) {\n // PDV-8954\n // when Non-US markeplace selected then need to disabled the\n // television_campaign_report and all_ad _type option of sponsred ad type filter.\n // if television_campaign_report and all_ad _type is already selected then\n // first uncheck that option and then disabled that.\n\n // Improvements 27/11/2023 :: PDV-9024 - Show all ad types for non-US marketplaces. Removing the all_ad_type condition from below code.\n // ---------------------start---------------------\n if (\n selectedAdType?.value === 'television_campaign_report' &&\n event?.value !== 'Amazon.com'\n ) {\n setSelectedAdType(AdTypesOptions[0]);\n }\n // ---------------------end---------------------\n\n setSelectedMarketplace(event);\n createMarektplaceIdsListOfGoals(event, goalsMarketplaceOptions);\n setCurrencySymbol(getSymbolFromCurrency(event?.currency));\n setIsCallSPAsinApi(true);\n }\n };\n\n const handleAdGroupBy = (value) => {\n if (value !== adGroupBy) {\n setAdGroupBy(value);\n\n if (selectedAdDF.value === CUSTOM) {\n const { startDate } = adState[0];\n const { endDate } = adState[0];\n let sd = startDate;\n let ed = endDate;\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n getAdData(\n selectedAdType.value,\n selectedAdDF.value,\n value,\n selectedMarketplace?.value,\n goalsMarketplaceIds,\n true,\n selectedChildBrand,\n sd,\n ed,\n );\n } else {\n getAdData(\n selectedAdType.value,\n selectedAdDF.value,\n value,\n selectedMarketplace?.value,\n goalsMarketplaceIds,\n true,\n selectedChildBrand,\n );\n }\n }\n };\n\n const handleAdType = (event) => {\n const { value } = event;\n setSelectedAdType(event);\n\n if (selectedAdDF.value === CUSTOM) {\n ADYearAndCustomDateFilter(\n adState[0].startDate,\n adState[0].endDate,\n CUSTOM,\n selectedMarketplace?.value,\n value,\n );\n } else {\n getAdData(\n value,\n selectedAdDF.value,\n adGroupBy,\n selectedMarketplace?.value,\n goalsMarketplaceIds,\n false,\n selectedChildBrand,\n );\n }\n };\n\n const handleAdDailyFact = (event) => {\n const { value } = event;\n if (value !== CUSTOM) {\n setSponsoredGoalsToggle(false);\n setIsCustomDateApply(false);\n setSelectedAdDF(event);\n setAdState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n\n bindErrorMessage(ADPERFORMANCE, adMinDate);\n setIsCallSPAsinApi(true);\n }\n\n if (value === CUSTOM) {\n setShowAdCustomDateModal(true);\n } else {\n setAdGroupBy('daily');\n\n getAdData(\n selectedAdType.value,\n value,\n 'daily',\n selectedMarketplace?.value,\n goalsMarketplaceIds,\n false,\n selectedChildBrand,\n );\n }\n };\n\n const handledSponsoredMetricsOnMenuClose = () => {\n // set sponsored goals toggle to false to avoid conflicts between goals metrics and non goals metrics\n setSponsoredGoalsToggle(false);\n // return metrics which is selected in drop-down and in graph variable also.\n const localMetrics = sponsoredAdMultiSelected.filter((ele) =>\n Object.prototype.hasOwnProperty.call(selectedAdBox, ele?.value),\n );\n\n // we have acos and roas in same metrics (same for COS & SPC) &\n // sponsoredAdMultiSelected has only adcos and cos field\n // so, if user select the roas or SPC then its not ramain selected.\n // so, need to write seperate logic for both metrics (roas, SPC)\n\n if (\n sponsoredAdMultiSelected.filter((ele) => ele?.value === 'adCos').length &&\n Object.prototype.hasOwnProperty.call(selectedAdBox, 'adRoas')\n ) {\n localMetrics.push({ value: 'adRoas', label: 'ROAS', isDisabled: false });\n }\n\n if (\n sponsoredAdMultiSelected.filter((ele) => ele?.value === 'costPerClick')\n .length &&\n Object.prototype.hasOwnProperty.call(selectedAdBox, 'salesPerClick')\n ) {\n localMetrics.push({\n value: 'salesPerClick',\n label: 'Sales Per Click',\n isDisabled: false,\n });\n }\n\n // if metrics is selected and its removed from metrics-dropdown then need to remove from selectedAdBox\n if (localMetrics?.length) {\n const localSelectedMetrics = {};\n localMetrics.map((ele) => {\n _.assign(localSelectedMetrics, { [ele?.value]: true });\n return null;\n });\n setSelectedAdBox(localSelectedMetrics);\n } else {\n setSelectedAdBox({ [sponsoredAdMultiSelected[0]?.value]: true });\n }\n };\n\n const returnMinDate = () => {\n return adMinDate === null ? new Date('08/01/2022') : new Date(adMinDate);\n };\n\n const daysDiffForSponsored = dayjs(currentDate).diff(\n dayjs(adMinDate),\n 'days',\n );\n\n // render custom date modal\n const renderCustomDateModal = () => {\n return (\n {\n setShowAdCustomDateModal(false);\n\n if (selectedAdDF.value !== CUSTOM) {\n setAdState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setAdState([item.selection]);\n }}\n onApply={() => {\n applyCustomDate('AD');\n }}\n currentDate={currentDate}\n minDate={returnMinDate()}\n />\n );\n };\n\n // display ad performance filter section\n const displayAdPerformanceFilters = () => {\n return (\n \n );\n };\n\n // display sponsord performance section\n const displaySponsoredPerformance = () => {\n return (\n
    \n \n
    \n );\n };\n\n // render ad performance modals\n const renderAdPerformanceModals = () => {\n return <>{renderCustomDateModal()};\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n \n {displayAdPerformanceFilters()}\n {renderAdPerformanceModals()}\n {/* sponsored ad performance panel */}\n {displaySponsoredPerformance()}\n \n \n );\n}\nAdPerformance.defaultProps = {\n marketplaceChoices: {},\n id: '',\n minDateLoader: false,\n isCallSPAsinApi: false,\n subViewComponent: '',\n accountType: SELLERSMALL,\n data: {},\n dspPpcFlag: {},\n selectedAdDF: {},\n setSelectedAdDF: () => {},\n adState: [],\n setAdState: () => {},\n currentDate: new Date(),\n selectedMarketplace: {},\n customDateError: {},\n setSelectedMarketplace: () => {},\n marketplaceOptions: [],\n goalsMarketplaceOptions: [],\n childBrandOptions: [],\n selectedChildBrand: {},\n currencySymbol: '',\n setCurrencySymbol: () => {},\n selectedAdType: {},\n setSelectedAdType: () => {},\n adMinDate: '',\n bindErrorMessage: () => {},\n setSelectedChildBrand: () => {},\n isDisabled: false,\n goalsMarketplaceIds: [],\n marketplaceIds: [],\n setIsCallSPAsinApi: () => {},\n displayAccountTypeFilter: () => {},\n renderDataAvailableChildList: () => {},\n getDataAvailabeleChildBrandList: () => {},\n createMarektplaceIdsListOfGoals: () => {},\n};\n\nAdPerformance.propTypes = {\n marketplaceChoices: instanceOf(Object),\n id: string,\n minDateLoader: bool,\n isCallSPAsinApi: bool,\n subViewComponent: string,\n accountType: string,\n data: shape({\n label: string,\n sub: string,\n }),\n\n dspPpcFlag: shape({}),\n isDisabled: bool,\n selectedAdDF: shape({}),\n setSelectedAdDF: func,\n adState: arrayOf(shape()),\n setAdState: func,\n currentDate: instanceOf(Date),\n selectedChildBrand: shape({}),\n selectedMarketplace: shape({}),\n customDateError: shape({}),\n childBrandOptions: arrayOf(shape({})),\n setSelectedMarketplace: func,\n marketplaceOptions: arrayOf(shape({})),\n goalsMarketplaceOptions: arrayOf(shape({})),\n currencySymbol: string,\n setCurrencySymbol: func,\n selectedAdType: shape({}),\n setSelectedAdType: func,\n adMinDate: instanceOf(Date),\n bindErrorMessage: func,\n marketplaceIds: arrayOf(string),\n goalsMarketplaceIds: arrayOf(string),\n setSelectedChildBrand: func,\n setIsCallSPAsinApi: func,\n displayAccountTypeFilter: func,\n renderDataAvailableChildList: func,\n getDataAvailabeleChildBrandList: func,\n createMarektplaceIdsListOfGoals: func,\n};\n","import React, { useState } from 'react';\n\nimport { toast } from 'react-toastify';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, bool, func } from 'prop-types';\n\nimport {\n createNewQuery,\n updateQuery,\n deleteQuery,\n} from '../../../../../../api';\nimport {\n ErrorMsg,\n FormField,\n InputFormField,\n PageLoader,\n SingleSelectDropdown,\n} from '../../../../../../common';\n\nfunction AddUpdateNewQuery({\n setShowAddNewQueryModal,\n showAddNewQueryModal,\n QueryOptions,\n getSelectDropdownIndicator,\n getQueriesData,\n}) {\n const [loader, setLoader] = useState({ flag: false, btnType: '' });\n const [queryData, setQueryData] = useState({});\n const [error, setError] = useState({});\n const [selectedQuery, setSelectedQuery] = useState({\n label: 'New Query',\n value: 'new',\n });\n\n const QueryOptionsOnModal = [\n ...QueryOptions,\n { label: 'New Query', value: 'new' },\n ];\n\n const saveNewQuery = () => {\n setLoader({ flag: true, btnType: 'add' });\n if (selectedQuery?.value === 'new') {\n createNewQuery(queryData).then((res) => {\n if (res?.status === 201) {\n toast.success('Query added successfully!');\n setShowAddNewQueryModal(false);\n }\n if (res?.status === 400) {\n setError({ ...error, ...res?.data });\n }\n setLoader({ flag: false, btnType: 'add' });\n });\n } else {\n updateQuery(selectedQuery?.value, queryData).then((res) => {\n if (res?.status === 200) {\n toast.success('Query updated successfully!');\n setShowAddNewQueryModal(false);\n }\n setLoader({ flag: false, btnType: 'add' });\n });\n }\n };\n\n const deleteSelectedQuery = () => {\n setLoader({ flag: true, btnType: 'delete' });\n deleteQuery(selectedQuery?.value).then((res) => {\n if (res?.status === 204) {\n toast.success('Query Deleted successfully!');\n setShowAddNewQueryModal(false);\n }\n setLoader({ flag: false, btnType: 'delete' });\n });\n };\n\n const handleChange = (event) => {\n setError({ ...error, [event?.target?.name]: '' });\n setQueryData({\n ...queryData,\n [event?.target?.name]: event?.target?.value,\n });\n };\n\n return (\n <>\n
    \n {\n setShowAddNewQueryModal(!showAddNewQueryModal);\n getQueriesData();\n setSelectedQuery({ label: 'New Query', value: 'new' });\n setQueryData({});\n }}\n >\n \n Add/Update Query\n \n
    \n {showAddNewQueryModal ? (\n <>\n
    \n {\n setSelectedQuery(event);\n setQueryData({});\n }}\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n />\n \n \n \n handleChange(event)}\n />\n \n \n {error?.name}\n handleChange(event)}\n />\n {error?.query}\n \n
    \n
    \n
    \n saveNewQuery()}\n role=\"presentation\"\n style={{ color: '#FF5933', display: 'inline-flex' }}\n >\n {loader?.flag && loader?.btnType === 'add' ? (\n \n ) : selectedQuery?.value === 'new' ? (\n 'Save'\n ) : (\n 'Update'\n )}\n \n deleteSelectedQuery()}\n role=\"presentation\"\n style={{ color: '#FF5933', display: 'inline-flex' }}\n >\n {loader?.flag && loader?.btnType === 'delete' ? (\n \n ) : selectedQuery?.value === 'new' ? (\n ''\n ) : (\n 'Delete'\n )}\n \n\n setShowAddNewQueryModal(false)}\n role=\"presentation\"\n >\n Cancel\n \n
    \n
    \n
    \n
    \n \n ) : (\n ''\n )}\n \n );\n}\n\nexport default AddUpdateNewQuery;\n\nAddUpdateNewQuery.defaultProps = {\n setShowAddNewQueryModal: () => {},\n showAddNewQueryModal: false,\n QueryOptions: [],\n getSelectDropdownIndicator: () => {},\n getQueriesData: () => {},\n};\n\nAddUpdateNewQuery.propTypes = {\n setShowAddNewQueryModal: func,\n showAddNewQueryModal: bool,\n QueryOptions: arrayOf(shape({})),\n getSelectDropdownIndicator: func,\n getQueriesData: () => {},\n};\n","import React, { useState } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, bool, func } from 'prop-types';\n\nimport {\n NoRecordFound,\n CollapseTableMobileView,\n} from '../../../../../../common';\n\nfunction DSPAudienceMobileView({\n dspAudienceData,\n isEditFlagOn,\n displayInputFields,\n DSPAudienceHeaders,\n displayValue,\n newDSPAudienceData,\n}) {\n const [viewMoreDetailsFlag, setViewMoreDetailsFlag] = useState({\n index: null,\n flag: null,\n });\n const [viewMoreDetailsForNewRow, setViewMoreDetailsForNewRow] = useState({\n flag: null,\n });\n const displayTableData = (dspAudienceItem, dspAudienceItemIndex) => {\n if (\n viewMoreDetailsFlag?.index === dspAudienceItemIndex &&\n viewMoreDetailsFlag?.flag\n ) {\n return DSPAudienceHeaders?.map((audienceHeader) => {\n return (\n
    \n
    \n {audienceHeader?.label}\n
    \n
    \n {displayValue(dspAudienceItem, audienceHeader)}\n
    \n
    \n );\n });\n }\n return DSPAudienceHeaders.slice(0, 4)?.map((audienceHeader) => {\n return (\n
    \n
    \n {audienceHeader?.label}\n
    \n
    \n {displayValue(dspAudienceItem, audienceHeader)}\n
    \n
    \n );\n });\n };\n\n const displayNewlyAddedRow = () => {\n if (viewMoreDetailsForNewRow?.flag) {\n return DSPAudienceHeaders?.map((audienceHeader, headerIndex) => {\n return (\n
    \n
    \n {audienceHeader?.label}\n
    \n
    \n {displayInputFields(audienceHeader, headerIndex)}\n
    \n
    \n );\n });\n }\n return DSPAudienceHeaders.slice(0, 4)?.map(\n (audienceHeader, headerIndex) => {\n return (\n
    \n
    \n {audienceHeader?.label}\n
    \n
    \n {displayInputFields(audienceHeader, headerIndex)}\n
    \n
    \n );\n },\n );\n };\n\n const displayTable = () => {\n return (\n <>\n {dspAudienceData?.length ? (\n dspAudienceData?.map((dspAudienceItem, dspAudienceItemIndex) => {\n return (\n
    \n
    \n {displayTableData(dspAudienceItem, dspAudienceItemIndex)}\n\n {\n setViewMoreDetailsFlag({\n index: dspAudienceItemIndex,\n flag: !viewMoreDetailsFlag.flag,\n });\n }}\n >\n {viewMoreDetailsFlag?.index === dspAudienceItemIndex &&\n viewMoreDetailsFlag?.flag\n ? 'View less details'\n : `View 7 more details`}\n \n
    \n
    \n \n );\n })\n ) : (\n
    \n \n
    \n )}\n \n );\n };\n\n const displayNewlyAddedDSPAudienceRow = () => {\n return isEditFlagOn && Object.keys(newDSPAudienceData)?.length ? (\n
    \n
    \n {displayNewlyAddedRow(newDSPAudienceData)}\n {\n setViewMoreDetailsForNewRow({\n flag: !viewMoreDetailsForNewRow.flag,\n });\n }}\n >\n {viewMoreDetailsForNewRow?.flag\n ? 'View less details'\n : `View 7 more details`}\n \n
    \n
    \n \n ) : (\n ''\n );\n };\n\n return (\n \n {displayTable()}\n {displayNewlyAddedDSPAudienceRow()}\n \n );\n}\n\nexport default DSPAudienceMobileView;\n\nDSPAudienceMobileView.defaultProps = {\n dspAudienceData: [],\n isEditFlagOn: false,\n displayInputFields: () => {},\n DSPAudienceHeaders: [],\n displayValue: () => {},\n newDSPAudienceData: {},\n};\n\nDSPAudienceMobileView.propTypes = {\n dspAudienceData: arrayOf(shape({})),\n isEditFlagOn: bool,\n displayInputFields: func,\n DSPAudienceHeaders: arrayOf(shape({})),\n displayValue: func,\n newDSPAudienceData: shape({}),\n};\n","import React from 'react';\n\nimport DatePicker from 'react-date-picker';\nimport ReactTooltip from 'react-tooltip';\nimport { components } from 'react-select';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../../theme/Theme';\nimport DSPAudienceMobileView from './DSPAudienceMobileView';\nimport { TaskStatus } from '../../../Playbook/PlaybookStyle';\nimport { TableWrapper } from '../../../GoalsAndCOS/GoalsStyle';\nimport {\n DSPAudienceHeaders,\n audienceExpansionTypeOptions,\n refreshRateDaysOptions,\n} from '../../../../../../constants';\nimport {\n TrashIcons,\n InfoRedIcon,\n InfoIcons,\n} from '../../../../../../theme/images';\nimport {\n DesktopTable,\n DropdownIndicator,\n InputFormField,\n SingleSelectDropdown,\n ToggleSwitch,\n} from '../../../../../../common';\n\nfunction DSPAudienceTable({\n showAMCAudienceLookalike,\n QueryOptions,\n getSelectDropdownIndicator,\n isEditFlagOn,\n dspAudienceData,\n newDSPAudienceData,\n setNewDSPAudienceData,\n dspAudienceDefaultData,\n}) {\n const isDesktop = useMediaQuery({ minWidth: 767 });\n const { Option } = components;\n\n // https://bbe.atlassian.net/browse/PDV-9060\n // Adding new column - Audience Expansion Type in dsp audience table header\n const indexofRefreshRate = DSPAudienceHeaders?.findIndex(\n (item) => item?.key === 'refresh_rate_days',\n );\n\n let newDspAudienceHeaders = [...DSPAudienceHeaders];\n if (showAMCAudienceLookalike) {\n newDspAudienceHeaders = DSPAudienceHeaders?.toSpliced(\n indexofRefreshRate + 1,\n 0,\n {\n label: 'Audience Expansion Type',\n type: 'choice',\n key: 'expansion_type',\n },\n );\n }\n\n const handleDropdownChange = (event, key) => {\n setNewDSPAudienceData({ ...newDSPAudienceData, [key]: event?.value });\n };\n\n // get dropdown options for expansion type dropdwon\n const expansionTypeDropdwonOptions = (props) => {\n return (\n
    \n
    \n \n );\n };\n\n // get dropdown components for audience expansion type filter\n const getDropdownComponentsForExpansionType = () => {\n return { Option: expansionTypeDropdwonOptions, DropdownIndicator };\n };\n\n const displayQueryDropdown = (audienceHeader, headerIndex) => {\n // https://bbe.atlassian.net/browse/PDV-9060\n // get modified dropdown options for refresh rate days from index 7 to 21 when user clicked on AMCAudienceLookalike toggle button\n let modifiedRefreshRateDaysOptions = [...refreshRateDaysOptions];\n if (showAMCAudienceLookalike) {\n modifiedRefreshRateDaysOptions = refreshRateDaysOptions.slice(6);\n }\n const options =\n audienceHeader?.key === 'query'\n ? QueryOptions\n : modifiedRefreshRateDaysOptions;\n\n return audienceHeader?.key === 'expansion_type' ? (\n item?.value === newDSPAudienceData?.[audienceHeader?.key],\n ) || {}\n }\n onChangeHandler={(event) =>\n handleDropdownChange(event, audienceHeader?.key)\n }\n dropdownComponents={getDropdownComponentsForExpansionType}\n isSearchable={false}\n />\n ) : (\n \n option.value === newDSPAudienceData?.[audienceHeader?.key],\n )\n ? options?.find(\n (option) =>\n option.value === newDSPAudienceData?.[audienceHeader?.key],\n )\n : !newDSPAudienceData?.refresh_time_window &&\n audienceHeader?.key === 'refresh_rate_days'\n ? [{ label: '0', value: '0' }]\n : [{}]\n }\n onChangeHandler={(event) =>\n handleDropdownChange(event, audienceHeader?.key)\n }\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n />\n );\n };\n\n // render progress label className\n const renderProgressLabelClassName = (status) => {\n let className = '';\n switch (status) {\n case 'started':\n className = 'progress-label gray-label';\n break;\n\n case 'running':\n className = 'progress-label orange-label';\n break;\n\n case 'pending':\n className = 'progress-label yellow-label';\n break;\n\n case 'failed':\n className = 'progress-label red-label';\n break;\n case 'successful':\n className = 'progress-label green-label';\n break;\n\n default:\n break;\n }\n return className;\n };\n\n const displayStatus = (dspAudienceItem, rowIndex) => {\n return (\n {\n event.stopPropagation();\n }}\n >\n
    \n {dspAudienceItem?.status || '-'}\n {dspAudienceItem?.status === 'failed' ? (\n <>\n {' '}\n {' '}\n {' '}\n \n ) : (\n ''\n )}\n
    \n \n );\n };\n\n const handleRadioBtn = (event, key) => {\n if (event?.target?.checked) {\n setNewDSPAudienceData({\n ...newDSPAudienceData,\n [key]: event?.target?.checked,\n refresh_rate_days: 21,\n });\n } else {\n setNewDSPAudienceData({\n ...newDSPAudienceData,\n [key]: event?.target?.checked,\n refresh_rate_days: 0,\n });\n }\n };\n\n const displayToggleOfRefreshTimeWindow = (audienceHeader, headerIndex) => {\n return (\n
    \n \n \n \n
    \n );\n };\n\n const handleInputChange = (event) => {\n setNewDSPAudienceData({\n ...newDSPAudienceData,\n [event?.target?.name]: event?.target?.value,\n });\n };\n\n const handleDateChange = (event, key) => {\n setNewDSPAudienceData({\n ...newDSPAudienceData,\n [key]: event,\n });\n };\n\n const setMinDate = (key) => {\n const d = new Date();\n if (key === 'time_window_start') {\n d.setFullYear(d.getFullYear() - 1);\n return d;\n }\n if (key === 'time_window_end') {\n if (newDSPAudienceData?.time_window_start) {\n return newDSPAudienceData?.time_window_start;\n }\n }\n return null;\n };\n\n const setMaxDate = (key) => {\n if (key === 'time_window_start') {\n if (newDSPAudienceData?.time_window_end) {\n return newDSPAudienceData?.time_window_end;\n }\n }\n const d = new Date();\n d.setDate(d.getDate() - 1);\n return d;\n };\n\n const displayInputFields = (audienceHeader, headerIndex) => {\n switch (audienceHeader?.type) {\n case 'choice':\n return displayQueryDropdown(audienceHeader, headerIndex);\n case 'radio':\n return displayToggleOfRefreshTimeWindow(audienceHeader, headerIndex);\n case 'status':\n return '-';\n case 'date':\n return audienceHeader?.key === 'created_at' ? (\n '-'\n ) : (\n \n {\n handleDateChange(date, audienceHeader?.key);\n }}\n onKeyDown={(e) => {\n e.preventDefault();\n }}\n />\n \n );\n\n default:\n return (\n
    \n {audienceHeader?.key === 'advertiser_id' ? (\n \n setNewDSPAudienceData({})}\n role=\"presentation\"\n />{' '}\n \n ) : (\n ''\n )}\n {audienceHeader?.autoPopulatedField ? (\n \n {newDSPAudienceData?.[audienceHeader?.key]}\n \n ) : (\n \n \n \n )}\n
    \n );\n }\n };\n\n const getMSTTime = (value) => {\n const dateSplitterarray = value?.split('T');\n const timeSplitterarray = dateSplitterarray[1]?.split('-');\n let timeValue = timeSplitterarray?.[0];\n if (timeSplitterarray?.[0]?.includes('.')) {\n timeValue = timeSplitterarray?.[0]?.split('.')?.[0];\n }\n return `${dateSplitterarray?.[0]} T ${timeValue}`;\n };\n\n const displayValue = (dspAudienceItem, audienceHeader) => {\n if (audienceHeader?.key === 'status') {\n return displayStatus(dspAudienceItem);\n }\n\n if (audienceHeader?.key === 'instance_id') {\n return dspAudienceDefaultData?.instance_id;\n }\n if (audienceHeader?.key === 'advertiser_id') {\n return dspAudienceDefaultData?.advertiser_id;\n }\n\n if (audienceHeader?.key === 'query') {\n return dspAudienceItem?.query_detail?.name;\n }\n\n if (audienceHeader?.key === 'refresh_time_window') {\n return dspAudienceItem?.refresh_time_window === true ? 'True' : 'False';\n }\n\n if (\n audienceHeader?.key === 'created_at' ||\n audienceHeader?.key === 'time_window_start' ||\n audienceHeader?.key === 'time_window_end'\n ) {\n return (\n <>\n
    {getMSTTime(dspAudienceItem?.[audienceHeader?.key])}
    \n {audienceHeader?.key === 'created_at' ? (\n
    \n \n created by {dspAudienceItem?.created_by_details?.first_name}{' '}\n
    \n ) : (\n ''\n )}\n \n );\n }\n\n return <>{dspAudienceItem?.[audienceHeader?.key]};\n };\n\n const displayTableData = (dspAudienceItem) => {\n return (\n \n {newDspAudienceHeaders?.map((audienceHeader, headerIndex) => {\n return (\n \n {displayValue(dspAudienceItem, audienceHeader)}\n \n );\n })}\n \n );\n };\n\n const displayNewlyAddedRow = () => {\n return (\n \n {newDspAudienceHeaders?.map((audienceHeader, headerIndex) => {\n return (\n \n {displayInputFields(audienceHeader, headerIndex)}\n \n );\n })}\n \n );\n };\n\n const displayTable = () => {\n return (\n
    \n \n {/*
    */}\n \n \n \n {newDspAudienceHeaders?.map((item, i) => {\n return (\n \n {item?.label}\n {item?.info ? (\n <>\n {' '}\n ${item?.info}
    `}\n data-for={`${item?.label}`}\n />{' '}\n {' '}\n \n ) : (\n ''\n )}\n \n );\n })}\n \n \n \n {isEditFlagOn && Object.keys(newDSPAudienceData)?.length\n ? displayNewlyAddedRow()\n : ''}\n {dspAudienceData?.map((dspAudienceItem) => {\n return displayTableData(dspAudienceItem);\n })}\n \n \n {/*
    */}\n \n
    \n );\n };\n\n return isDesktop ? (\n
    {displayTable()}
    \n ) : (\n \n );\n}\n\nexport default DSPAudienceTable;\n\nDSPAudienceTable.defaultProps = {\n isSelected: false,\n showAMCAudienceLookalike: false,\n data: shape({}),\n QueryOptions: [],\n getSelectDropdownIndicator: () => {},\n isEditFlagOn: false,\n dspAudienceData: [],\n newDSPAudienceData: {},\n setNewDSPAudienceData: () => {},\n dspAudienceDefaultData: {},\n};\nDSPAudienceTable.propTypes = {\n isSelected: bool,\n showAMCAudienceLookalike: bool,\n data: shape({\n label: string,\n }),\n QueryOptions: arrayOf(shape()),\n getSelectDropdownIndicator: func,\n isEditFlagOn: bool,\n dspAudienceData: arrayOf(shape()),\n newDSPAudienceData: shape({}),\n setNewDSPAudienceData: func,\n dspAudienceDefaultData: shape({}),\n};\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport queryString from 'query-string';\nimport ReactTooltip from 'react-tooltip';\nimport { toast } from 'react-toastify';\nimport { useParams, useHistory } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, bool, shape } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport AddUpdateNewQuery from './AddUpdateNewQuery';\nimport DSPAudienceTable from './DSPAudienceTable';\nimport { InfoIcons } from '../../../../../../theme/images';\nimport {\n WhiteCard,\n Button,\n NoRecordFound,\n DropdownIndicator,\n PageLoader,\n CommonPagination,\n ViewData,\n SingleSelectDropdown,\n GrayMessageBar,\n} from '../../../../../../common';\nimport {\n getQueries,\n getDSPAudienceDefaultData,\n getDSPAudienceData,\n saveDSPAudience,\n} from '../../../../../../api';\nimport Theme from '../../../../../../theme/Theme';\nimport { statusFilterOptions } from '../../../../../../constants';\n\nfunction DSPAudienceContainer({ showAMCAudienceLookalike, memberData }) {\n const { id } = useParams();\n const history = useHistory();\n\n const params = queryString.parse(history.location.search);\n\n // https://bbe.atlassian.net/browse/PDV-8278\n // Removing the hard coded user emails and making it as dynamic access for authorized users.\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const allowedToAddUpdateQuery =\n userInfo?.allowed_to_add_update_dsp_audience_query_fe;\n const allowedToEditDspAudience = userInfo?.allowed_to_edit_dsp_audience_fe;\n\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in AMC\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const amcAudienceMessage =\n dynamicMessages?.amc_audience_bp_view?.placeholder || null;\n\n const [isEditFlagOn, setEditFlag] = useState(false);\n const [loader, setLoader] = useState({ type: 'btn', flag: false });\n const [queryOptions, setQueryOptions] = useState([]);\n const [showAddNewQueryModal, setShowAddNewQueryModal] = useState(false);\n const [dspAudienceData, setDSPAudienceData] = useState();\n const [newDSPAudienceData, setNewDSPAudienceData] = useState({});\n const [dspAudienceDefaultData, setDSPAudienceDefaultData] = useState();\n const [isAuthorizedUser, setIsAuthorizedUser] = useState(false);\n const [dspAudienceCount, setDSPAudienceCount] = useState(null);\n const [pageNumber, setPageNumber] = useState();\n const [selectedStatusFilter, setSelectedStatusFilter] = useState(\n statusFilterOptions[0],\n );\n const ViewDataFilterOptions = [\n {\n label: 'Most Recent to Oldest',\n value: '-created_at',\n },\n {\n label: 'Most Oldest to Recent',\n value: 'created_at',\n },\n ];\n const [selectedViewDataFilter, setSelectedViewDataFilter] = useState(\n ViewDataFilterOptions[0],\n );\n\n const checkPermission = useCallback(\n (members) => {\n if (allowedToEditDspAudience) {\n setIsAuthorizedUser(true);\n } else if (members) {\n for (const user of members) {\n if (user.user) {\n if (\n (user?.role_group?.name === 'DSP Ad Manager' ||\n user?.role_group?.name === 'DSP Specialist') &&\n user?.user?.id === userInfo?.id\n ) {\n setIsAuthorizedUser(true);\n }\n }\n }\n }\n },\n [userInfo, allowedToEditDspAudience],\n );\n\n useEffect(() => {\n checkPermission(memberData);\n }, [checkPermission, memberData]);\n\n const getQueriesData = useCallback(() => {\n getQueries().then((res) => {\n const options = res?.data?.map((item) => {\n return { label: item?.name, value: item?.id, query: item?.query };\n });\n setQueryOptions(options);\n });\n }, []);\n\n useEffect(() => {\n getQueriesData();\n }, [getQueriesData]);\n\n // this use effect will run after every 5 seconds to get new updated amc audience data\n useEffect(() => {\n let intervalId = '';\n let restrictMultipleApiCalls = null;\n\n if (!restrictMultipleApiCalls) {\n intervalId = setInterval(async () => {\n if (\n dspAudienceDefaultData?.id &&\n params?.nav === 'amcInsights' &&\n params?.subNav === 'dsp-audience' &&\n !restrictMultipleApiCalls\n ) {\n await getDSPAudienceData(\n dspAudienceDefaultData?.id,\n 1,\n selectedViewDataFilter,\n selectedStatusFilter,\n showAMCAudienceLookalike,\n ).then((res) => {\n restrictMultipleApiCalls = '1234';\n setDSPAudienceCount(res?.data?.count);\n setPageNumber(1);\n setDSPAudienceData(res?.data?.results);\n });\n }\n }, 300000);\n }\n\n return () => {\n clearInterval(intervalId);\n };\n }, [\n dspAudienceDefaultData,\n params,\n selectedStatusFilter,\n selectedViewDataFilter,\n showAMCAudienceLookalike,\n ]);\n\n // get amc audience data\n const getAudienceData = useCallback(\n (\n audienceId,\n page,\n sortBy = selectedViewDataFilter,\n status = selectedStatusFilter,\n AMCAudienceLookalike,\n ) => {\n setLoader({ type: 'page', flag: true });\n\n getDSPAudienceData(\n audienceId,\n page,\n sortBy,\n status,\n AMCAudienceLookalike,\n ).then((res) => {\n setLoader({ type: 'page', flag: false });\n setDSPAudienceCount(res?.data?.count);\n setDSPAudienceData(res?.data?.results);\n });\n },\n [selectedViewDataFilter, selectedStatusFilter],\n );\n\n // use effect for get amc audience data\n useEffect(() => {\n setLoader({ type: 'page', flag: true });\n setEditFlag(false);\n setNewDSPAudienceData({});\n getDSPAudienceDefaultData(id).then((res) => {\n setLoader({ type: 'page', flag: false });\n\n if (res?.status === 200) {\n if (res?.data?.results?.[0]) {\n setDSPAudienceDefaultData(res?.data?.results?.[0]);\n getAudienceData(\n res?.data?.results?.[0]?.id,\n 1,\n selectedViewDataFilter,\n selectedStatusFilter,\n showAMCAudienceLookalike,\n );\n }\n }\n });\n }, [\n id,\n getAudienceData,\n selectedViewDataFilter,\n selectedStatusFilter,\n showAMCAudienceLookalike,\n ]);\n\n // get dropdwon indicator for dropdown filter\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n const onSaveClick = () => {\n setLoader({ type: 'btn', flag: true });\n saveDSPAudience(newDSPAudienceData).then((res) => {\n setLoader({ type: 'btn', flag: false });\n\n if (res?.status === 201) {\n getAudienceData(\n dspAudienceDefaultData?.id,\n 1,\n selectedViewDataFilter,\n selectedStatusFilter,\n showAMCAudienceLookalike,\n );\n toast.success('DSP Audience Added successfully!');\n setPageNumber(1);\n\n setEditFlag(false);\n setNewDSPAudienceData({});\n }\n if (res?.status === 403) {\n toast.error(res?.data?.detail);\n }\n });\n };\n\n // validate whether user filled all the fields in newly added dsp audience row\n const checkIfAllColumnHaveData = () => {\n if (isEditFlagOn && Object.keys(newDSPAudienceData)?.length) {\n const copyObjOfNew = { ...newDSPAudienceData };\n delete copyObjOfNew.refresh_time_window;\n delete copyObjOfNew.refresh_rate_days;\n delete copyObjOfNew?.amc_audience_lookalike;\n\n return Object.values(copyObjOfNew).every((value) => value);\n }\n return false;\n };\n\n const executeScroll = (eleId) => {\n const element = document.getElementById(eleId);\n\n if (element) {\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'start',\n });\n }\n };\n\n // display edit and save button\n const displayEditAndSaveButton = () => {\n return isEditFlagOn ? (\n <>\n {\n if (checkIfAllColumnHaveData()) onSaveClick();\n }}\n >\n {loader?.flag && loader?.type === 'btn' ? (\n \n ) : (\n <>\n \n Save\n \n )}\n \n {checkIfAllColumnHaveData() ? null : (\n \n )}\n \n ) : (\n {\n setEditFlag(true);\n executeScroll('dsp-audience-table-id');\n }}\n >\n {' '}\n Edit\n \n );\n };\n\n // auto scroll to specific table cell\n const autoScrollToElement = useCallback((elId) => {\n const element = document.getElementById(elId);\n if (element !== null) {\n element.scrollIntoView({\n behavior: 'smooth',\n inline: 'start',\n });\n }\n }, []);\n\n const addNewRow = () => {\n const updatedNewDSPAudienceData = {\n ...newDSPAudienceData,\n instance_id: dspAudienceDefaultData?.instance_id,\n advertiser_id: dspAudienceDefaultData.advertiser_id,\n refresh_rate_days: 21,\n status: 'started',\n dsp_audience: dspAudienceDefaultData?.id,\n refresh_time_window: true,\n customer: id,\n description: '',\n name: '',\n query: '',\n time_window_start: '',\n time_window_end: '',\n };\n setNewDSPAudienceData(updatedNewDSPAudienceData);\n\n // https://bbe.atlassian.net/browse/PDV-9060\n // if user select AMC audience lookalike toggle then add two new fields in newDSPAudienceData\n if (showAMCAudienceLookalike) {\n setNewDSPAudienceData({\n ...updatedNewDSPAudienceData,\n expansion_type: '',\n amc_audience_lookalike: showAMCAudienceLookalike,\n });\n }\n autoScrollToElement('new-dsp-row');\n };\n\n // display Add DSP Audience button\n const displayAddNewRowBtn = () => {\n return (\n
    \n {\n addNewRow();\n }}\n style={{ textTransform: 'uppercase', minHeight: '0' }}\n >\n {' '}\n {showAMCAudienceLookalike\n ? 'Add DSP Audience Lookalike'\n : 'Add DSP Audience'}\n \n
    \n );\n };\n\n const displayTableLabelRow = () => {\n return (\n
    \n
    \n
    \n Request Logs{' '}\n <>\n {' '}\n {' '}\n {' '}\n \n
    \n {allowedToAddUpdateQuery ? (\n \n ) : (\n ''\n )}\n
    \n {isAuthorizedUser ? (\n
    {displayEditAndSaveButton()}
    \n ) : (\n ''\n )}\n
    \n );\n };\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getAudienceData(dspAudienceDefaultData?.id, currentPage);\n };\n\n const handleViewDataForFilterChange = (event) => {\n setSelectedViewDataFilter(event);\n };\n const handleStatusFilterChange = (event) => {\n setSelectedStatusFilter(event);\n };\n\n const displayviewDataforRow = () => {\n return (\n \n
    \n
    \n
    View data for:
    \n
    \n
    \n
    \n
    \n Sort by\n
    \n
    \n \n handleViewDataForFilterChange(event)\n }\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n />\n
    \n
    \n handleStatusFilterChange(event)}\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n />\n
    \n
    \n
    \n
    \n
    \n );\n };\n\n return (\n \n {loader?.flag && loader?.type === 'page' ? (\n \n ) : dspAudienceDefaultData && dspAudienceDefaultData?.is_active ? (\n <>\n {displayviewDataforRow()}{' '}\n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in AMC */}\n {amcAudienceMessage ? (\n \n ) : null}\n {displayTableLabelRow()}\n {dspAudienceData?.length || Object.keys(newDSPAudienceData).length ? (\n <>\n
    \n \n
    \n \n \n ) : isEditFlagOn ? (\n ''\n ) : (\n
    \n \n
    \n )}\n {isEditFlagOn && !Object.keys(newDSPAudienceData)?.length ? (\n
    {displayAddNewRowBtn()}
    \n ) : (\n ''\n )}\n \n ) : (\n
    \n \n
    \n )}\n
    \n );\n}\n\nexport default DSPAudienceContainer;\n\nDSPAudienceContainer.defaultProps = {\n showAMCAudienceLookalike: false,\n memberData: [],\n};\n\nDSPAudienceContainer.propTypes = {\n showAMCAudienceLookalike: bool,\n memberData: arrayOf(shape({})),\n};\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport styled from 'styled-components';\nimport { string } from 'prop-types';\nimport * as QuickSightEmbedding from 'amazon-quicksight-embedding-sdk';\n\nimport { getEmbeddedQuicksightDashboardURL } from '../../../../../api/AmcInsightsApi';\nimport { PageLoader, WhiteCard } from '../../../../../common';\n\nfunction AwsQuicksightContainer({ customerId, dashboardId, id }) {\n const [dashboardLoader, setDashboardLoader] = useState(true);\n\n // async function for embedding the quicksight dashboard automatically\n const getQuicksightDashboard = useCallback(\n async (URL) => {\n let embeddedDashboardExperience = null;\n // get context for dashboard\n const { createEmbeddingContext } = QuickSightEmbedding;\n\n const embeddingContext = await createEmbeddingContext();\n\n // Note - this ID should be unique\n const containerDiv = document.getElementById(id);\n\n // basic dashboard options\n const dashboardOptions = {\n url: URL,\n container: containerDiv,\n scrolling: 'no',\n width: '100%',\n height: '1280px',\n };\n\n // set parameters\n const dashboardParams = [\n {\n Name: 'nextID',\n Values: [customerId],\n },\n ];\n\n // filtered dashboard params\n const otherOptions = {\n parameters: dashboardParams,\n toolbarOptions: {\n export: true,\n },\n };\n\n // get filtered embedded dashboard\n embeddedDashboardExperience = await embeddingContext\n .embedDashboard(dashboardOptions, otherOptions)\n .then((response) => {\n embeddedDashboardExperience.setParameters(dashboardParams);\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return embeddedDashboardExperience;\n },\n [customerId, id],\n );\n\n // get embedded url of quicksight dashboard\n const getDashboardURL = useCallback(() => {\n setDashboardLoader(true);\n const params = {\n dashboard_id: dashboardId,\n };\n getEmbeddedQuicksightDashboardURL(params).then((response) => {\n if (response?.status === 200) {\n setDashboardLoader(false);\n getQuicksightDashboard(response?.data?.EmbedUrl);\n } else {\n setDashboardLoader(false);\n }\n });\n }, [getQuicksightDashboard, dashboardId]);\n\n useEffect(() => {\n getDashboardURL();\n }, [getDashboardURL]);\n\n /* ********** Main return statement of this component ********** */\n return (\n \n \n <>\n {dashboardLoader ? (\n \n ) : (\n <>\n
    \n \n )}\n
    \n \n \n \n );\n}\n\nAwsQuicksightContainer.defaultProps = {\n customerId: '',\n dashboardId: '',\n};\n\nAwsQuicksightContainer.propTypes = {\n customerId: string,\n dashboardId: string,\n id: string.isRequired,\n};\n\nexport default AwsQuicksightContainer;\nconst AWSQuicksightsDashboard = styled.div`\n #footer-strip {\n height: 30px;\n background: #ffffff;\n margin-top: -25px;\n position: relative;\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../../../../../theme/Theme';\n\nexport const AmcLabelWithDash = styled.div`\n ul {\n margin: 0;\n padding: 0;\n li {\n display: inline-block;\n margin-right: 15px;\n padding-bottom: 5px;\n color: #000000;\n font-family: ${Theme.baseFontFamily};\n font-size: 15px;\n\n span.dash-bullet {\n width: 14px;\n height: 2px;\n margin: 0 5px 4px 0;\n display: inline-block;\n }\n }\n li:last-child {\n margin-right: 0px;\n }\n }\n @media only screen and (min-width: 1200px) {\n ul {\n margin-top: 10px;\n }\n }\n`;\n\nexport const AMCStyle = styled.div`\n .orange-dot {\n background: ${Theme.orange};\n width: 6px;\n height: 6px;\n box-shadow: 0px 0px 14px 0px ${Theme.orange};\n display: inline-block;\n border-radius: 50%;\n margin-right: 10px;\n margin-bottom: 1px;\n }\n .second-level-navigation {\n display: inline-flex;\n padding-left: 0px;\n margin: 0;\n\n li {\n padding: 12px;\n list-style-type: none;\n border-radius: 6px;\n color: black;\n cursor: pointer;\n }\n .selected {\n background-color: #ff5933;\n color: white;\n }\n }\n`;\n\nexport const AMCTable = styled.table`\n position: relative;\n width: 100%;\n border-spacing: 0;\n\n tr {\n text-align: left;\n background: ${Theme.white};\n border-radius: 1px;\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n &.border-bottom td {\n border-bottom: 1px solid ${Theme.gray11};\n }\n\n th {\n padding: 5px 2px;\n text-transform: uppercase;\n color: ${Theme.black};\n font-size: 11px;\n background: ${Theme.white};\n font-weight: 600;\n font-family: ${Theme.baseMediumFontFamily};\n\n &.product-header {\n border-bottom: 1px solid ${Theme.gray11};\n }\n }\n\n td {\n padding: 5px 2px;\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.extraSmall};\n }\n }\n`;\n\nexport const AMCVerticleTable = styled.table`\n display: flex;\n align-items: center;\n position: relative;\n width: 100%;\n border-spacing: 0;\n thead {\n width: 100%;\n min-width: 100px;\n max-width: 100px;\n }\n tbody {\n display: flex;\n flex-direction: row;\n width: 100%;\n }\n tr {\n display: flex;\n flex-direction: column;\n text-align: left;\n background: ${Theme.white};\n border-radius: 1px;\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n max-width: 100px;\n &.border-bottom td {\n border-right: 2px solid ${Theme.gray11};\n }\n\n th {\n padding: 10px 7px;\n text-transform: uppercase;\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n background: ${Theme.white};\n font-weight: 600;\n font-family: ${Theme.baseMediumFontFamily};\n\n &.product-header {\n border-right: 2px solid ${Theme.gray11};\n }\n &.date {\n border-bottom: 2px solid ${Theme.gray11};\n }\n }\n\n td {\n padding: 10px 5px;\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.extraNormal};\n &.date {\n font-weight: 600;\n border-bottom: 2px solid ${Theme.gray11};\n }\n }\n }\n`;\n","/* eslint-disable new-cap */\nimport React, { useState, useEffect } from 'react';\n\nimport queryString from 'query-string';\nimport { useSelector } from 'react-redux';\nimport { shape, string, arrayOf } from 'prop-types';\nimport { useHistory } from 'react-router-dom';\n\nimport DSPAudienceContainer from './DSPAudience/DSPAudienceContainer';\nimport AwsQuicksightContainer from '../AwsQuicksight/AwsQuicksightContainer';\nimport { AMCStyle } from './AmcInsightStyle';\nimport { getActiveTabs } from '../../../../../api';\nimport {\n secondLevelNavBar,\n secondLevelNavBarForCustomer,\n PATH_CUSTOMER_DETAILS,\n} from '../../../../../constants';\nimport {\n NoRecordFound,\n PageLoader,\n WhiteCard,\n SingleSelectDropdown,\n DropdownIndicator,\n ToggleSwitch,\n} from '../../../../../common';\n\nexport default function AmcInsightContainer({\n customerID,\n memberData,\n isBBEInternalUser,\n}) {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n const dashboardOptions = {\n customized: [\n { label: 'Standard Dashboard', value: 'Standard Dashboard' },\n { label: 'Advanced Dashboard', value: 'Advanced Dashboard' },\n ],\n sample: [\n {\n label: 'Standard Dashboard-Sample',\n value: 'Standard Dashboard-Sample',\n },\n {\n label: 'Advanced/Customized Dashboard-Sample',\n value: 'Customized Dashboard-Sample',\n },\n ],\n };\n const [selectedSecondLevelNav, setSelectedSecondLevelNav] = useState(\n params?.subNav || 'standard',\n );\n const [activeTabLoader, setActiveTabLoader] = useState(true);\n const [activeTabs, setActiveTabs] = useState({});\n const [selectedDashboardFilterOption, setSelectedDashboardFilterOption] =\n useState(dashboardOptions[selectedSecondLevelNav]?.[0]);\n const [showAMCAudienceLookalike, setShowAMCAudienceLookalike] = useState(\n params?.amcAudience === 'lookalike' || false,\n );\n\n useEffect(() => {\n setActiveTabLoader(true);\n getActiveTabs(customerID).then((res) => {\n if (res?.status === 200) {\n setActiveTabs(res?.data);\n setActiveTabLoader(false);\n } else {\n setActiveTabLoader(false);\n }\n });\n }, [customerID, setActiveTabs]);\n\n const displayNoData = (type) => {\n return userInfo?.role === 'Customer' ? (\n !activeTabs?.standard_tab &&\n !activeTabs?.customized_tab &&\n !activeTabs?.advanced_tab ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n )\n ) : !activeTabs?.standard_tab &&\n !activeTabs?.customized_tab &&\n !activeTabs?.advanced_tab ? (\n
    \n \n
    \n ) : (\n
    \n \n
    \n );\n };\n\n const displayAMCDashboards = () => {\n if (selectedSecondLevelNav === 'standard') {\n if (activeTabs?.standard_tab) {\n return (\n \n );\n }\n return displayNoData('Standard');\n }\n\n if (selectedSecondLevelNav === 'customized') {\n if (\n activeTabs?.customized_tab &&\n selectedDashboardFilterOption?.value === 'Standard Dashboard'\n ) {\n return (\n \n );\n }\n if (\n activeTabs?.customized_tab &&\n selectedDashboardFilterOption?.value === 'Advanced Dashboard'\n ) {\n return (\n \n );\n }\n return displayNoData('Customized');\n }\n\n if (selectedSecondLevelNav === 'sample') {\n if (\n selectedDashboardFilterOption?.value === 'Standard Dashboard-Sample'\n ) {\n return (\n \n );\n }\n if (\n selectedDashboardFilterOption?.value === 'Customized Dashboard-Sample'\n ) {\n return (\n \n );\n }\n // return displayNoData('Customized');\n }\n\n if (selectedSecondLevelNav === 'advanced') {\n if (activeTabs?.advanced_tab) {\n return (\n \n );\n }\n return displayNoData('Advanced');\n }\n return null;\n };\n\n // get dropdwon indicator for dropdown filter\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n const handleDashboardFilter = (event) => {\n setSelectedDashboardFilterOption(event);\n };\n\n const dashboardDropdown = (key) => {\n return (\n handleDashboardFilter(event)}\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n />\n );\n };\n\n const setParams = (param, showLookalike) => {\n const paramsData = {};\n\n if (showLookalike) {\n paramsData.amcAudience = param;\n } else {\n delete paramsData?.amcAudience;\n delete params?.amcAudience;\n }\n\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n ...paramsData,\n });\n\n history.push({\n pathname: `${history.location.pathname}`,\n search: `${stringified}`,\n state: `${history.location.state}`,\n });\n };\n\n // https://bbe.atlassian.net/browse/PDV-9060 - AMC Audience Lookalike improvements\n // display AMC Audience Lookalike toggle button\n const displayAMCAudienceLookalikeToggle = () => {\n return (\n \n \n AMC Audience Lookalike\n {\n setParams('lookalike', event?.target?.checked);\n setShowAMCAudienceLookalike(!showAMCAudienceLookalike);\n }}\n onChange={() => {}}\n checked={showAMCAudienceLookalike}\n />\n \n \n \n );\n };\n\n /* ********** main return statement of this componant ********** */\n return (\n \n \n
    \n \n \n {(userInfo?.role === 'Customer'\n ? secondLevelNavBarForCustomer\n : secondLevelNavBar\n )?.map((item) => {\n return (\n {\n if (item?.value === 'dsp-audience') {\n setShowAMCAudienceLookalike(false);\n }\n setSelectedSecondLevelNav(item?.value);\n setSelectedDashboardFilterOption(\n dashboardOptions[item?.value]?.[0],\n );\n\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerID,\n )}?tab=${params.tab}&nav=amcInsights&subNav=${\n item?.value\n }&access=${isBBEInternalUser}`,\n 'amcInsights',\n item?.label,\n );\n }}\n className={\n selectedSecondLevelNav === item?.value ? 'selected' : ''\n }\n >\n {item?.label}\n \n );\n })}\n \n
    \n\n {selectedSecondLevelNav === 'customized' ||\n selectedSecondLevelNav === 'sample' ? (\n
    \n
    \n {dashboardDropdown(selectedSecondLevelNav)}\n
    \n
    \n ) : null}\n\n {selectedSecondLevelNav === 'dsp-audience' ? (\n
    \n
    {displayAMCAudienceLookalikeToggle()}
    \n
    \n ) : null}\n
    \n \n\n {activeTabLoader ? (\n \n ) : (\n displayAMCDashboards()\n )}\n\n {selectedSecondLevelNav === 'dsp-audience' &&\n userInfo?.role !== 'Customer' ? (\n \n ) : (\n ''\n )}\n \n );\n}\n\nAmcInsightContainer.defaultProps = {\n memberData: [],\n isBBEInternalUser: 'internal',\n};\n\nAmcInsightContainer.propTypes = {\n customerID: string.isRequired,\n memberData: arrayOf(shape({})),\n isBBEInternalUser: string,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, func, number, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport { Icon } from '../../../../../theme/Global';\nimport { OrangeDownloadPdf } from '../../../../../theme/images';\nimport { getCreativeProjectTableCSV } from '../../../../../api/CompanyPerformanceApi';\nimport {\n CommonPagination,\n DesktopTable,\n ToggleButton,\n} from '../../../../../common';\nimport {\n projectASINTableHeader,\n dataAfterCompletion,\n projectASINVendorTableHeader,\n projectASINVendorShippedCogsTableHeader,\n} from '../../../../../constants';\n\nexport default function ProjectAsinsTable({\n projectDetails,\n tableInfoDetails,\n id,\n params,\n filterationData,\n pageNumber,\n asinCounts,\n handlePageChange,\n setShowProjectAsinTable,\n showProjectAsinTable,\n getTotalOfTable,\n setPaginationChecksum,\n setPageNumber,\n paginationChecksum,\n selectedVendorReporting,\n}) {\n const [showCollapse, setShowCollapse] = useState({\n orangeProjectHeader: true,\n grayAsinHeader: false,\n });\n const [downloadCsv, setDownloadCsv] = useState(false);\n\n const tableView = Object.keys(showProjectAsinTable).find(\n (key) => showProjectAsinTable[key],\n );\n const tableHeader =\n params.sub === 'seller'\n ? projectASINTableHeader\n : selectedVendorReporting === 'ordered_revenue'\n ? projectASINVendorTableHeader\n : projectASINVendorShippedCogsTableHeader;\n\n const displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res?.toString().replace('-', '');\n };\n\n const getDownloadedCsv = () => {\n setDownloadCsv(true);\n getCreativeProjectTableCSV(\n id,\n params?.sub === 'seller' ? null : selectedVendorReporting,\n params?.sub || 'seller',\n filterationData,\n tableView?.split('_')?.[0],\n ).then((res) => {\n setDownloadCsv(false);\n if (res?.status === 200) window.location.assign(res?.data?.url);\n });\n };\n\n useEffect(() => {\n setShowCollapse({\n orangeProjectHeader: {\n [paginationChecksum || projectDetails?.[0]?.asin_checksum]: true,\n },\n grayAsinHeader: { [projectDetails?.[0]?.asin_checksum]: true },\n });\n }, []);\n\n useEffect(() => {\n if (showProjectAsinTable.project_view) {\n tableHeader[0].label = '';\n tableHeader[0].key = '';\n } else {\n tableHeader[0].label = 'Product';\n tableHeader[0].key = 'product';\n }\n }, [showProjectAsinTable, projectDetails]);\n\n const returnASINChangeStyle = (value) => {\n const styleObj = { class: 'range mt-1', color: Theme.black };\n if (value === null) {\n return styleObj;\n }\n if (value >= 0) {\n styleObj.class = 'range increase-rate mt-1';\n styleObj.color = Theme.green;\n return styleObj;\n }\n styleObj.class = 'range decrease-rate mt-1';\n styleObj.color = Theme.red;\n return styleObj;\n };\n\n const bindUpDownArrow = (isChangedValue, value) => {\n if (isChangedValue) {\n return (\n \n );\n }\n return null;\n };\n const renderProjectViewRowDetail = (\n item,\n completion,\n key,\n prefix,\n suffix,\n isChangedValue,\n changedKey,\n isShow2Decimal,\n ) => {\n const value =\n tableInfoDetails?.[tableView]?.[item?.asin_checksum]?.[\n completion?.value\n ]?.[0]?.[key];\n\n let changedValue = null;\n if (isChangedValue) {\n changedValue =\n tableInfoDetails?.[tableView]?.[item?.asin_checksum]?.[\n completion?.value\n ]?.[0]?.[changedKey];\n }\n\n if (value !== undefined && value !== null) {\n return (\n <>\n
    \n {`${prefix !== '' ? item?.currency : prefix}${displayNumber(\n isShow2Decimal ? value?.toFixed(2) : value,\n )}${suffix}`}\n
    \n {isChangedValue ? (\n
    \n {bindUpDownArrow(isChangedValue, changedValue)}\n {`${prefix !== '' ? item?.currency : prefix}${displayNumber(\n isShow2Decimal ? changedValue?.toFixed(2) : changedValue,\n )}${suffix}`}\n
    \n ) : null}\n \n );\n }\n\n return '-';\n };\n\n // Asin view - Total row\n const renderAsinViewTotalRow = (item, day) => {\n const isChangedValue = [\n '60_days_after',\n '90_days_after',\n '120_days_after',\n ].includes(day);\n\n return (\n \n <>\n TOTAL\n {params.sub === 'seller' ? (\n <>\n \n
    \n {item?.currency || '$'}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_ordered_prod_sales?.toFixed(2),\n ) || 0}\n
    \n\n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_prod_sales !== null ? (\n \n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_prod_sales,\n )}\n {item?.currency || '$'}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_prod_sales?.toFixed(2),\n ) || 0}\n
    \n ) : null}\n \n \n
    \n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_units_ordered,\n ) || '-'}\n
    \n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_units_ordered !== null ? (\n \n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_units_ordered,\n )}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_units_ordered,\n ) || '-'}\n
    \n ) : null}\n \n \n
    \n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.avg_average_units,\n ) || '-'}\n
    \n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_units_ordered != null ? (\n \n {' '}\n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_units_ordered,\n )}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_units_ordered,\n ) || '-'}\n
    \n ) : null}\n \n \n
    \n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_page_view,\n ) || '-'}\n
    \n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_page_view !== null ? (\n \n {' '}\n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_page_view,\n )}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_page_view,\n ) || '-'}\n
    \n ) : null}\n \n \n
    \n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_session,\n ) || '-'}\n
    \n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_session !== null ? (\n \n {' '}\n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_session,\n )}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_session,\n ) || '-'}\n
    \n ) : null}\n \n \n
    \n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.avg_bbe_percentage?.toFixed(2),\n ) || 0}\n %\n
    \n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_bbe_percentage !== null ? (\n \n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_bbe_percentage,\n )}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_bbe_percentage?.toFixed(2),\n ) || 0}\n %\n
    \n ) : null}\n \n \n
    \n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.avg_conversion?.toFixed(2),\n ) || 0}\n %\n
    \n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_conversion !== null ? (\n \n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_conversion,\n )}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_conversion?.toFixed(2),\n ) || 0}\n %\n
    \n ) : null}\n \n \n ) : (\n <>\n \n
    \n {item?.currency || '$'}\n {selectedVendorReporting === 'ordered_revenue'\n ? displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_ordered_revenue?.toFixed(2) || 0,\n )\n : displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_shipped_cogs?.toFixed(2),\n ) || 0}\n
    \n\n {isChangedValue &&\n (selectedVendorReporting === 'ordered_revenue'\n ? tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_revenue !== null\n : tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_shipped_cogs !== null) ? (\n \n {' '}\n {bindUpDownArrow(\n true,\n selectedVendorReporting === 'ordered_revenue'\n ? tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_revenue\n : tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_shipped_cogs,\n )}\n {item?.currency || '$'}\n {selectedVendorReporting === 'ordered_revenue'\n ? displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_revenue?.toFixed(2),\n )\n : displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_shipped_cogs?.toFixed(2),\n ) || 0}\n
    \n ) : null}\n \n \n
    \n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_glance_views,\n ) || '-'}\n
    \n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_glance_views !== null ? (\n \n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_glance_views,\n )}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_glance_views,\n ) || '-'}\n
    \n ) : null}\n \n \n
    \n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.avg_conversion_rate?.toFixed(2),\n ) || 0}\n %\n
    \n {isChangedValue &&\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_conversion_rate !== null ? (\n \n {bindUpDownArrow(\n true,\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_conversion_rate,\n )}\n {displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_avg_conversion_rate?.toFixed(2),\n ) || 0}\n %\n
    \n ) : null}\n \n \n
    \n {selectedVendorReporting === 'ordered_revenue'\n ? displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_ordered_units,\n ) || '-'\n : displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.total_shipped_units,\n ) || '-'}\n
    \n {isChangedValue &&\n (selectedVendorReporting === 'ordered_revenue'\n ? tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_units !== null\n : tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_shipped_units !== null) ? (\n \n {bindUpDownArrow(\n true,\n selectedVendorReporting === 'ordered_revenue'\n ? tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_units\n : tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_shipped_units,\n )}{' '}\n {selectedVendorReporting === 'ordered_revenue'\n ? displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_ordered_units,\n )\n : displayNumber(\n tableInfoDetails?.[tableView]?.[item.asin_checksum]?.[\n `${day}_total`\n ]?.change_total_shipped_units,\n ) || '-'}\n
    \n ) : null}\n \n \n )}\n \n \n );\n };\n\n const renderAsinViewTableData = (asin, currency) => {\n return (\n <>\n \n \n
    \n \n
    \n {asin?.child_asin}\n
    \n \n
    \n {asin?.product_name}\n
    \n
    \n
    \n \n {tableHeader?.map((item) => {\n if (item.asin_view)\n return (\n \n {asin?.[item.asin_view] ? (\n <>\n {item?.prefix !== '' ? currency : item?.prefix}\n {displayNumber(\n item?.isShow2Decimal\n ? asin?.[item.asin_view]?.toFixed(2)\n : asin?.[item.asin_view],\n )}\n {item.suffix}\n \n ) : (\n '-'\n )}\n \n );\n return null;\n })}\n \n \n );\n };\n\n // To display Total row of project view.\n const renderProjectViewTotalRow = (item, completion) => {\n return (\n \n Total\n {tableHeader?.map((field) => {\n if (tableView === 'project_view' && field.key)\n return (\n \n {renderProjectViewRowDetail(\n item,\n completion,\n field.total,\n field.prefix,\n field.suffix,\n ['60_days_after', '90_days_after', '120_days_after'].includes(\n completion.value,\n ),\n field.changedValueKey,\n field.isShow2Decimal,\n )}\n \n );\n return null;\n })}\n \n );\n };\n\n // To display Average row of project view.\n const renderProjectViewAvgRow = (item, completion) => {\n return (\n \n Average\n {tableHeader?.map((field) => {\n if (field.key)\n return (\n \n {renderProjectViewRowDetail(\n item,\n completion,\n field.avg,\n field.prefix,\n field.suffix,\n false, // ['60_days_after', '90_days_after', '120_days_after'].includes(completion.value)\n null, // change value key\n true, // isShow2Decimal, // we need to add 2 decimal for all average value -pdv- 8145\n )}\n \n );\n return null;\n })}\n \n );\n };\n\n useEffect(() => {\n if (showCollapse.orangeProjectHeader) {\n setPaginationChecksum(Object.keys(showCollapse.orangeProjectHeader)?.[0]);\n }\n }, [showCollapse]);\n\n const renderTotalAfterCompletionRow = (asinCheckSum, currency) => {\n if (getTotalOfTable?.length) {\n const total = getTotalOfTable?.find((op) => op[asinCheckSum])\n ? Object.values(getTotalOfTable.find((op) => op[asinCheckSum]))?.[0]\n : 0;\n\n return (\n \n <>\n TOTAL AFTER COMPLETION\n {params.sub === 'seller' ? (\n <>\n \n {' '}\n {currency || '$'}\n {displayNumber(total?.total_ordered_prod_sales?.toFixed(2)) ||\n 0}\n \n {displayNumber(total?.total_units_ordered) || '-'}\n {displayNumber(total?.avg_average_units) || '-'}\n {displayNumber(total?.total_page_view) || '-'}\n {displayNumber(total?.total_session) || '-'}\n \n {displayNumber(total?.avg_bbe_percentage?.toFixed(2)) || 0}%\n \n \n {displayNumber(total?.avg_conversion?.toFixed(2)) || 0}%\n \n \n ) : (\n <>\n \n {' '}\n {currency || '$'}\n {selectedVendorReporting === 'ordered_revenue'\n ? displayNumber(total?.total_ordered_revenue?.toFixed(2)) ||\n 0\n : displayNumber(total?.total_shipped_cogs?.toFixed(2)) || 0}\n \n {displayNumber(total?.total_glance_views) || 0}\n \n {displayNumber(total?.avg_conversion_rate?.toFixed(2)) || 0}%\n \n \n {selectedVendorReporting === 'ordered_revenue'\n ? displayNumber(total?.total_ordered_units) || 0\n : displayNumber(total?.total_shipped_units) || 0}\n %\n \n \n )}\n \n \n );\n }\n return null;\n };\n\n const performanceBreakdownHeader = () => {\n return (\n
    \n
    \n Performance Breakdown\n
    \n\n
    \n \n
    \n
      \n {\n setShowProjectAsinTable({\n project_view: true,\n asins_view: false,\n });\n }}\n >\n \n \n \n {\n setShowProjectAsinTable({\n project_view: false,\n asins_view: true,\n });\n }}\n >\n \n \n \n
    \n
    \n
    {' '}\n getDownloadedCsv()}\n >\n \n \n Download Report\n \n
    \n
    \n
    \n );\n };\n\n const performanceBreakdownTable = () => {\n return (\n \n \n \n {tableHeader?.map((item) => (\n \n {item.label}\n {item.show_info ? (\n \n \n \n \n ) : null}{' '}\n \n ))}\n \n \n \n {projectDetails?.map((item) => {\n return (\n <>\n \n {\n setShowCollapse({\n ...showCollapse,\n orangeProjectHeader: {\n [item.asin_checksum]:\n !showCollapse.orangeProjectHeader[\n item.asin_checksum\n ],\n },\n grayAsinHeader: false,\n });\n setPageNumber(1);\n }}\n role=\"presentation\"\n >\n \n \n \n {item?.marketplace_id} | {item?.project_type} |{' '}\n {item?.completion_date} |{' '}\n {item?.asins_listings?.split(',')?.length} ASINs\n \n \n {showCollapse?.orangeProjectHeader[item.asin_checksum] ? (\n <>\n {dataAfterCompletion.map((completion) => {\n return (\n <>\n \n \n setShowCollapse({\n ...showCollapse,\n grayAsinHeader: {\n ...showCollapse.grayAsinHeader,\n [`${[item?.asin_checksum]}-${[\n completion.value,\n ]}`]:\n !showCollapse.grayAsinHeader[\n `${[item?.asin_checksum]}-${[\n completion.value,\n ]}`\n ],\n },\n })\n }\n role=\"presentation\"\n >\n \n \n \n {completion.label}\n \n \n {!showCollapse?.grayAsinHeader[\n `${[item?.asin_checksum]}-${[completion?.value]}`\n ] ? (\n <>\n {tableView === 'project_view' ? (\n <>\n {renderProjectViewTotalRow(item, completion)}\n {renderProjectViewAvgRow(item, completion)}\n \n ) : (\n // render asin view table\n <>\n {tableInfoDetails?.[tableView]?.[\n item.asin_checksum\n ]?.[completion?.value]?.map((asin) => {\n return (\n <>\n {renderAsinViewTableData(\n asin,\n item?.currency,\n )}{' '}\n \n );\n })}\n {renderAsinViewTotalRow(\n item,\n completion?.value,\n )}\n \n )}\n \n ) : (\n ''\n )}\n \n );\n })}\n {renderTotalAfterCompletionRow(\n item.asin_checksum,\n item.currency,\n )}\n {tableView === 'asins_view' ? (\n \n \n op[item.asin_checksum],\n )\n ? Object.values(\n asinCounts.find(\n (op) => op[item.asin_checksum],\n ),\n )?.[0]\n : null\n : 1\n }\n pageNumber={pageNumber}\n handlePageChange={handlePageChange}\n />\n \n \n ) : null}\n \n ) : (\n ''\n )}\n \n );\n })}\n \n \n );\n };\n\n return projectDetails?.length ? (\n <>\n {performanceBreakdownHeader()}\n\n \n {performanceBreakdownTable()}\n \n \n ) : (\n
    \n No record found for Performance Breakdown.\n
    \n );\n}\n\nProjectAsinsTable.defaultProps = {\n projectDetails: [],\n tableInfoDetails: [],\n id: '',\n params: {},\n filterationData: {},\n pageNumber: 1,\n asinCounts: 1,\n handlePageChange: () => {},\n showProjectAsinTable: { project_view: true, asins_view: false },\n setShowProjectAsinTable: () => {},\n getTotalOfTable: [],\n setPaginationChecksum: () => {},\n setPageNumber: () => {},\n paginationChecksum: '',\n selectedVendorReporting: null,\n};\n\nProjectAsinsTable.propTypes = {\n projectDetails: arrayOf(shape({})),\n tableInfoDetails: arrayOf(shape({})),\n id: string,\n params: shape({}),\n filterationData: shape({}),\n pageNumber: number,\n asinCounts: number,\n handlePageChange: func,\n showProjectAsinTable: shape({}),\n setShowProjectAsinTable: func,\n getTotalOfTable: arrayOf(shape({})),\n setPaginationChecksum: func,\n setPageNumber: func,\n paginationChecksum: string,\n selectedVendorReporting: string,\n};\n\nconst ProductTableWrapper = styled.div`\n thead {\n tr {\n th {\n .asin-value {\n background: ${Theme.gray25};\n border-radius: 6px;\n font-size: ${Theme.textExtraSmall};\n color: ${Theme.gray6};\n padding: 2px 4px;\n width: fit-content;\n margin-bottom: 5px;\n }\n }\n }\n }\n tbody {\n tr {\n &.total-product {\n background: #33ac2e33;\n }\n td {\n &.parent-brand {\n background: ${Theme.lightOrange};\n color: ${Theme.orange};\n text-transform: uppercase;\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.titleFontFamily};\n }\n\n &.child-brand {\n background: ${Theme.gray8};\n color: ${Theme.gray40};\n text-transform: uppercase;\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.titleFontFamily};\n }\n\n &.product-col {\n border-right: 1px solid ${Theme.gray11};\n }\n\n .product-image {\n border-radius: 4px;\n border: 1px solid ${Theme.gray25};\n height: 42px;\n width: 42px;\n margin-right: 12px;\n float: left;\n }\n .product-name {\n font-size: ${Theme.extraNormal};\n }\n .product-number {\n color: ${Theme.gray85};\n }\n }\n }\n }\n`;\n","/* eslint-disable react/no-array-index-key */\n/* eslint-disable no-plusplus */\nimport React, { useState, useEffect } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport Select from 'react-select';\nimport DatePicker from 'react-date-picker';\nimport { toast } from 'react-toastify';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { func, string } from 'prop-types';\n\nimport { InfoIcons } from '../../../../../theme/images';\nimport Theme from '../../../../../theme/Theme';\nimport {\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n} from '../../../../../constants';\nimport {\n addCreativeProjectType,\n checkCreativeProjectTypes,\n getMarketPlaceList,\n getProjectTypes,\n uploadCreativeSheet,\n} from '../../../../../api';\nimport {\n Button,\n CustomDropDown,\n DesktopTable,\n ErrorMsg,\n InputFormField,\n PageLoader,\n WhiteCard,\n} from '../../../../../common';\n\nexport default function UploadCreativeAsins({\n setShowCreativeUploadScreen,\n id,\n accountType,\n type,\n getCreativeMonths,\n}) {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [asinList, setAsinList] = useState([]);\n const [isEditable, setIsEditable] = useState(false);\n const [getDropdownOptions, setGetDropdownOptions] = useState({\n projectTypes: [],\n marketplaces: [],\n });\n const [formCreativeData, setFormCreativeData] = useState({\n customer: id,\n account_type: accountType[0].toUpperCase() + accountType.slice(1),\n });\n const [addProjectType, setAddProjectType] = useState(false);\n const [showUploadScreen, setShowUploadScreen] = useState(true);\n const [unformattedAsins, setUnformattedAsins] = useState(null);\n const [tableRows, setTableRows] = useState([]);\n const [errorMessage, setErrorMessage] = useState(null);\n const [disableSaveButton, setDisableSaveButton] = useState(false);\n\n let disableSaveBtn = null;\n const [apiError, setApiError] = useState([]);\n\n const marketplaceInfo = () => {\n return (\n <>\n {' '}\n \n \n );\n };\n\n const getProjectData = () => {\n const projects = [];\n getProjectTypes().then((res) => {\n if (res?.status === 200) {\n for (const item of res?.data) {\n projects.push({ value: item.id, label: item.project_type });\n }\n }\n });\n return projects;\n };\n\n useEffect(() => {\n const marketplace = [];\n getMarketPlaceList(id, false).then((market) => {\n if (market?.status === 200) {\n for (const item of market?.data) {\n marketplace.push({\n value: item.name,\n label: item.country_currency.country,\n });\n }\n setGetDropdownOptions({\n projectTypes: getProjectData(),\n marketplaces: marketplace,\n });\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n }, [id]);\n\n const handleAsinFormat = (value) => {\n const asins = value\n ?.replace(/([^,\\w\\s]|(?<=,)(?=,))+/g, '')\n .replace(/,{2,}/g, '')\n .replace(/\\n/g, '')\n .replace(/\\s+/g, '');\n setUnformattedAsins(asins);\n };\n\n useEffect(() => {\n if (unformattedAsins) {\n const formattedAsins = unformattedAsins.split(',');\n const asinListing = [];\n formattedAsins.map((op) => asinListing.push(op.toUpperCase()));\n setAsinList(asinListing);\n }\n }, [setAsinList, unformattedAsins]);\n\n const generateDropdown = (options, key) => {\n return (\n
    \n \n \n op.value === formCreativeData[key]) || ''\n }\n onChange={(event) =>\n setFormCreativeData({\n ...formCreativeData,\n [key]: event.value,\n })\n }\n placeholder={\n key === 'marketplace' ? 'All Marketplaces' : 'All Project Types'\n }\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: Theme.white,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n {key === 'marketplace' ? marketplaceInfo() : null}\n \n \n
    \n );\n };\n\n const uploadData = (creativeId, data) => {\n uploadCreativeSheet(creativeId, data).then((creative) => {\n if (creative?.status === 200 || creative?.status === 201) {\n setIsEditable(false);\n setShowUploadScreen(true);\n setFormCreativeData({\n customer: id,\n account_type: accountType[0].toUpperCase() + accountType.slice(1),\n });\n toast.success('ASINs added successfully.');\n setIsLoading({ loader: false, type: 'button' });\n if (type === 'noData') getCreativeMonths();\n } else {\n const duplicateAsins = creative?.data?.asins_listings?.duplicates;\n toast.error(\n Object.values(duplicateAsins)?.length\n ? 'Duplicate ASINs. Some of the ASINs are already in our system.'\n : 'Please resolve the error.',\n );\n setIsLoading({ loader: false, type: 'button' });\n setApiError(creative?.data);\n }\n });\n };\n\n const saveAsinsData = () => {\n setIsLoading({ loader: true, type: 'button' });\n let formattedAsins = asinList.filter((op) => op !== '');\n checkCreativeProjectTypes(formCreativeData).then((res) => {\n formattedAsins = formattedAsins?.map((op) => op?.toUpperCase());\n if (res?.status === 200) {\n if (res?.data?.results?.length) {\n uploadData(res?.data?.results?.[0]?.id, {\n asins_listings: [\n ...res?.data?.results?.[0]?.asins_listings,\n ...formattedAsins,\n ],\n customer: id,\n });\n } else {\n uploadData(null, {\n ...formCreativeData,\n asins_listings: formattedAsins,\n });\n }\n } else {\n uploadData(null, {\n ...formCreativeData,\n asins_listings: formattedAsins,\n });\n toast.error(\n res?.data?.asins_listings || res?.data?.detail || res?.data,\n );\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n const saveProjectType = () => {\n addCreativeProjectType(formCreativeData.newProjectType).then((res) => {\n if (res.status === 201) {\n getProjectData();\n setGetDropdownOptions({\n ...getDropdownOptions,\n projectTypes: getProjectData(),\n });\n setAddProjectType(false);\n toast.success('New Project Type Added');\n }\n });\n };\n\n // handle upload asin events\n const handleUploadASINEvents = () => {\n const asinData = asinList.reduce((acc, val, i) => {\n if (i % 5 === 0) acc.push([]);\n acc[acc.length - 1].push(val);\n return acc;\n }, []);\n\n setTableRows(asinData);\n\n const formattedAsins = asinData.flat();\n // Check for duplicate ASINs\n const duplicateAsins = formattedAsins.filter(\n (item, index) => formattedAsins.indexOf(item) !== index,\n );\n // Check for ASIns are not exaclty of 10 characters\n const invalidAsins = formattedAsins.filter(\n (item) => item.length > 1 && item.length !== 10,\n );\n\n setDisableSaveButton(\n duplicateAsins?.length > 0 || invalidAsins?.length > 0,\n );\n setShowUploadScreen(false);\n };\n\n const handleTableDataChange = (value, rowIndex, colIndex) => {\n const formattedValue = value\n ?.replace(/([^,\\w\\s]|(?<=,)(?=,))+/g, '')\n .replace(/,{2,}/g, '')\n .replace(/\\n/g, '')\n .replace(/\\s+/g, '');\n\n setDisableSaveButton(false);\n const newData = [...tableRows];\n newData[rowIndex][colIndex] = formattedValue;\n\n setTableRows(newData);\n\n // Check for duplicate ASINs\n const formattedAsins = newData.flat();\n const duplicateAsins = formattedAsins.filter(\n (item, index) => formattedAsins.indexOf(item) !== index,\n );\n if (duplicateAsins.length > 0) {\n setErrorMessage('Duplicate ASINs are not allowed');\n } else {\n setErrorMessage(null);\n }\n\n // Check for ASIns are not exaclty of 10 characters\n const invalidAsins = formattedAsins.filter(\n (item) => item?.length > 1 && item?.length !== 10,\n );\n if (invalidAsins.length > 0) {\n setErrorMessage('10 alphanumeric characters is required.');\n } else {\n setErrorMessage(null);\n }\n setAsinList(formattedAsins);\n };\n\n const renderTableData = (value, rowIndex, colIndex) => {\n // remove all the nested arrays\n const formattedAsins = tableRows.flat();\n\n // get all the duplicate Asins\n const duplicateAsins = formattedAsins\n .filter((item, index) => formattedAsins.indexOf(item) !== index)\n .includes(value);\n // get all the asin if they are not exact 10\n const invalidAsins = value?.length > 1 && value?.length !== 10;\n let apiDuplicateAsins = [];\n if (invalidAsins || duplicateAsins) disableSaveBtn = true;\n if (\n apiError?.asins_listings?.duplicates &&\n Object.values(apiError?.asins_listings?.duplicates)?.length\n ) {\n const errorAsins = [\n ...Object.values(apiError?.asins_listings?.duplicates),\n ...formattedAsins,\n ];\n apiDuplicateAsins = errorAsins\n .filter((item, index) => errorAsins.indexOf(item) !== index)\n .includes(value);\n }\n\n return (\n \n \n handleTableDataChange(event.target.value, rowIndex, colIndex)\n }\n />\n {duplicateAsins && Duplicate ASINs.}\n {invalidAsins && (\n 10 alphanumeric characters is required.\n )}\n {apiError?.asins_listings?.duplicates &&\n Object.values(apiError?.asins_listings?.duplicates).length &&\n apiDuplicateAsins && (\n This ASIN exists in the same project.\n )}\n \n );\n };\n\n return (\n <>\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n \n
    \n
    \n {type === 'dataPresent' ? (\n setShowCreativeUploadScreen(false)}\n role=\"presentation\"\n style={{ lineHeight: 3 }}\n >\n \n \n Completed Project\n \n \n ) : (\n \n No creative projects available. Proceed to click on\n "Edit" button to backfill past completed creative\n projects.\n \n )}\n
    \n \n {\n if (isEditable) saveAsinsData();\n else setIsEditable(!isEditable);\n }}\n className={\n isEditable &&\n (asinList.length === 0 ||\n errorMessage ||\n showUploadScreen ||\n disableSaveBtn)\n ? 'isDisabled btn-primary extraNormal-text'\n : 'btn-primary extraNormal-text'\n }\n disabled={\n isSpreetailUser ||\n (isEditable &&\n (asinList.length === 0 ||\n errorMessage ||\n showUploadScreen ||\n disableSaveBtn ||\n disableSaveButton))\n }\n >\n {isLoading.loader && isLoading.type === 'button' ? null : (\n \n )}{' '}\n {isEditable ? (\n isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Save'\n )\n ) : (\n 'Edit'\n )}\n \n \n
    \n
    \n
    \n\n
    \n
    \n setAddProjectType(true)}\n >\n {' '}\n Add New Project Type\n \n {addProjectType ? (\n
    \n \n setFormCreativeData({\n ...formCreativeData,\n newProjectType: event.target.value,\n })\n }\n />\n saveProjectType()}\n role=\"presentation\"\n style={{ color: '#FF5933' }}\n >\n Save\n \n setAddProjectType(false)}\n role=\"presentation\"\n >\n Cancel\n \n
    \n ) : null}\n
    \n {generateDropdown(getDropdownOptions.projectTypes, 'project')}\n {generateDropdown(getDropdownOptions.marketplaces, 'marketplace')}\n\n
    \n \n {\n const date = new Date(event);\n const currentDate = `${date.getFullYear()}-${\n date.getMonth() + 1\n }-${date.getDate()}`;\n setFormCreativeData({\n ...formCreativeData,\n completion_date: currentDate,\n });\n }}\n />\n \n
    \n
    \n
    \n {formCreativeData.project &&\n formCreativeData.marketplace &&\n formCreativeData.completion_date ? (\n \n
    \n
    \n ASINS (Hint: 10 alphanumeric characters is\n required.)\n
    \n\n {\n setShowUploadScreen(true);\n setUnformattedAsins(asinList.toString());\n }}\n >\n {!showUploadScreen ? (\n < Back to uploading ASINs\n ) : null}\n
    \n \n\n {showUploadScreen ? (\n <>\n handleAsinFormat(event.target.value)}\n />\n {\n handleUploadASINEvents();\n }}\n disabled={!unformattedAsins || unformattedAsins === ''}\n >\n Upload ASINs\n \n \n ) : (\n \n \n {tableRows.map((row, rowIndex) => (\n \n {row.map((value, colIndex) =>\n renderTableData(value, rowIndex, colIndex),\n )}\n \n ))}\n \n \n )}\n
    \n ) : null}\n \n )}\n \n );\n}\n\nUploadCreativeAsins.defaultProps = {\n setShowCreativeUploadScreen: () => {},\n id: '',\n accountType: 'seller',\n type: '',\n getCreativeMonths: () => {},\n};\n\nUploadCreativeAsins.propTypes = {\n setShowCreativeUploadScreen: func,\n id: string,\n accountType: string,\n type: string,\n getCreativeMonths: func,\n};\n","import React from 'react';\n\nimport Select, { components } from 'react-select';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport { vendorReportTypes } from '../../../../../constants';\nimport {\n ViewData,\n WhiteCard,\n MultiSelectDropdown,\n DropdownIndicator,\n Button,\n CustomDropDown,\n} from '../../../../../common';\n\nexport default function CreativeProjectFilters({\n isApiCall,\n hideFilters,\n isDropDownDisabled,\n selectedAccountType,\n globalFiltersOptions,\n multiSelectedValues,\n setMultiSelectedValues,\n selectedVendorReporting,\n setSelectedVendorReporting,\n handleMultiSelectChange,\n getProjectsFilter,\n handleApplyOnClick,\n displayAccountTypeFilter,\n handleMonthFilterOnMenuClose,\n}) {\n const accountBasedCSS = (type) => {\n return type === 'btn'\n ? `col-xl-2 pl-md-0 apply-btn ${isDropDownDisabled ? 'isDisabled' : ''} ${\n hideFilters ? 'd-none' : ''\n }`\n : type === 'account-type'\n ? `col-xl-2 col-md-4 col-12 pl-md-0 mb-3`\n : `col-xl-2 col-md-4 col-12 pl-md-0 mb-3 ${\n isDropDownDisabled ? 'isDisabled' : ''\n } ${hideFilters ? 'd-none' : ''}`;\n };\n\n const isTablet = useMediaQuery({ minWidth: 768 });\n\n const { Option, SingleValue } = components;\n const generateViewData = () => {\n const handleOnChange = (e) => {\n setSelectedVendorReporting(e.value);\n };\n\n const dropdownSingleFilterOption = (props) => (\n \n {props.data.label}\n\n
    {props.data.sub}
    \n
    \n );\n\n const dropdownFilterOption = (props) => (\n \n );\n\n const getDropdDownComponents = () => {\n return {\n Option: dropdownFilterOption,\n SingleValue: dropdownSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n // display vendor type filter\n const displayVendorTypeFilter = () => {\n return (\n \n handleOnChange(event)}\n value={vendorReportTypes.find(\n (op) => op.value === selectedVendorReporting,\n )}\n styles={{\n menuPortal: (base) => ({ ...base, zIndex: 9999 }),\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n );\n };\n\n // display month dropdown filter\n const displayMonthDropdownfilter = () => {\n return (\n {\n handleMonthFilterOnMenuClose();\n }}\n />\n );\n };\n\n // display marketplace dropdown filter\n const displayMarketplaceDropdownFilter = () => {\n return (\n \n );\n };\n\n // display project type dropdown filter\n const displayProjectTypeDropdownFilter = () => {\n return (\n \n );\n };\n\n // display project dropdown filter\n const displayProjectDropdownFilter = () => {\n return (\n \n );\n };\n\n return (\n \n \n
    \n
    \n
    View data for:
    \n
    \n
    \n
    \n
    \n {displayAccountTypeFilter(isApiCall)}\n
    \n
    \n {displayMonthDropdownfilter()}\n
    \n {selectedAccountType?.value === 'vendor' ? (\n
    \n {displayVendorTypeFilter()}\n
    \n ) : null}\n
    \n {displayMarketplaceDropdownFilter()}\n
    \n
    \n {displayProjectTypeDropdownFilter()}\n
    \n
    \n {displayProjectDropdownFilter()}\n
    \n
    \n handleApplyOnClick()}\n >\n Apply\n \n
    \n
    \n
    \n
    \n
    \n
    \n );\n };\n\n return <>{generateViewData()};\n}\n\nCreativeProjectFilters.defaultProps = {\n isApiCall: false,\n hideFilters: false,\n isDropDownDisabled: false,\n selectedVendorReporting: '',\n globalFiltersOptions: [],\n data: {},\n multiSelectedValues: {},\n getProjectsFilter: {},\n selectedAccountType: {},\n setMultiSelectedValues: () => {},\n setSelectedVendorReporting: () => {},\n handleMultiSelectChange: () => {},\n handleApplyOnClick: () => {},\n displayAccountTypeFilter: () => {},\n handleMonthFilterOnMenuClose: () => {},\n};\n\nCreativeProjectFilters.propTypes = {\n isApiCall: bool,\n hideFilters: bool,\n isDropDownDisabled: bool,\n selectedVendorReporting: string,\n globalFiltersOptions: arrayOf(shape({})),\n multiSelectedValues: shape({}),\n getProjectsFilter: shape({}),\n selectedAccountType: shape({}),\n data: shape({}),\n setMultiSelectedValues: func,\n setSelectedVendorReporting: func,\n handleMultiSelectChange: func,\n handleApplyOnClick: func,\n displayAccountTypeFilter: func,\n handleMonthFilterOnMenuClose: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport $ from 'jquery';\nimport { toast } from 'react-toastify';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, func, string, bool } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport { CloseIcon } from '../../../../../theme/images';\nimport { deleteCreativeProject, uploadCreativeSheet } from '../../../../../api';\nimport {\n PerformanceSumarryTiles,\n asinsDeleteMessage,\n customStyles,\n orderedVendorPerformanceSumarryTiles,\n projectDeleteMessage,\n shippedVendorPerformanceSumarryTiles,\n} from '../../../../../constants';\nimport {\n CardMetrics,\n CheckBox,\n InputSearchWithRadius,\n PageLoader,\n ModalBox,\n Button,\n} from '../../../../../common';\n\nconst CardMetricsGraph = ({\n projectDetails,\n selectedCreativeProjectMetrics,\n setSelectedCreativeProjectMetrics,\n creativeProjectData,\n multiSelectedValues,\n setMultiSelectedValues,\n isLoadingGraph,\n accountType,\n selectedVendorReporting,\n isAllowToDeleteProject,\n getCreativeMonths,\n customerId,\n setIsSelectProjectDropdownOption,\n globalFiltersOptions,\n setGlobalFiltersOptions,\n setCallGraphApi,\n}) => {\n const [disableMetrics, setDisableMetrics] = useState(false);\n const [selectedSearchQuery, setSelectedSearchQuery] = useState(null);\n const [currencySymbol, setCurrencySymbol] = useState('$');\n const [deleteInfo, setDeleteInfo] = useState(null);\n const [deleteLoader, setDeleteLoader] = useState(false);\n const [asinData, setAsinData] = useState([\n { asinIds: [], originalAsinIds: [] },\n ]);\n const [showDeleteConfirmationModal, setShowDeleteConfirmationModal] =\n useState(false);\n\n let accountBasedArray = [];\n // check the account type and change the card metrics based on it.\n if (accountType === 'vendor') {\n if (selectedVendorReporting === 'ordered_revenue') {\n accountBasedArray = orderedVendorPerformanceSumarryTiles;\n } else if (selectedVendorReporting === 'shipped_cogs') {\n accountBasedArray = shippedVendorPerformanceSumarryTiles;\n }\n } else accountBasedArray = PerformanceSumarryTiles;\n\n // Set currency symbol as per selected marketplaces.\n // If more than two marketplaces are selected the show the dollor symbol\n useEffect(() => {\n if (multiSelectedValues?.marketplaces?.length === 1) {\n const projectObject = multiSelectedValues?.projects?.find(\n (item) =>\n item?.marketplace_id ===\n multiSelectedValues?.marketplaces?.[0]?.value,\n );\n setCurrencySymbol(projectObject?.currency);\n } else {\n // eslint-disable-next-line no-lonely-if\n if (multiSelectedValues?.asin?.length > 0) {\n if (multiSelectedValues?.asin?.length === 1) {\n const projectObject = multiSelectedValues?.projects?.find(\n (item) =>\n item?.asin_checksum ===\n multiSelectedValues?.asin?.[0]?.split('-')?.[1],\n );\n setCurrencySymbol(projectObject?.currency);\n } else {\n const fields = [];\n // if single/multiple asins selected\n for (const item of multiSelectedValues?.asin) {\n fields.push(item.split('-')?.[1]);\n const totalChecksums = [...new Set(fields)];\n if (totalChecksums?.length === 1) {\n // if single asins selected then show its currency\n const projectObject = multiSelectedValues?.projects?.find(\n (check) => check?.asin_checksum === totalChecksums[0],\n );\n setCurrencySymbol(projectObject?.currency);\n } else {\n // if multiple asins selected then show its currency\n let marketplaceNames = [];\n for (const check of totalChecksums) {\n for (const project of multiSelectedValues?.projects) {\n if (check === project?.asin_checksum) {\n marketplaceNames.push(project?.marketplace_id);\n }\n }\n }\n marketplaceNames = marketplaceNames?.length\n ? [...new Set(marketplaceNames)]\n : [];\n if (marketplaceNames?.length === 1) {\n // if multiple asins selected of the same project and marketplace then show its currency\n const projectForCurrency = multiSelectedValues?.projects?.find(\n (pro) => pro?.marketplace_id === marketplaceNames[0],\n );\n setCurrencySymbol(projectForCurrency?.currency);\n } else {\n // if multiple asins of different marketplaces are selected then show dollor\n setCurrencySymbol('$');\n }\n }\n }\n }\n } else {\n // const fields = [];\n // for (const item of multiSelectedValues?.asin) {\n // fields.push(item.split('-')?.[1]);\n // const totalChecksums = [...new Set(fields)];\n // if (totalChecksums?.length === 1) {\n // const projectObject = multiSelectedValues?.projects?.find(\n // (check) => check?.asin_checksum === totalChecksums[0],\n // );\n // setCurrencySymbol(projectObject?.currency);\n // } else {\n // console.log('11111');\n // setCurrencySymbol('$');\n // }\n // }\n // eslint-disable-next-line no-lonely-if\n if (multiSelectedValues?.projects?.length === 1) {\n setCurrencySymbol(multiSelectedValues?.projects?.[0]?.currency);\n } else {\n let projectCurrencies = [];\n for (const project of multiSelectedValues?.projects) {\n projectCurrencies.push(project?.currency);\n }\n projectCurrencies = projectCurrencies?.length\n ? [...new Set(projectCurrencies)]\n : [];\n if (projectCurrencies?.length > 1) {\n setCurrencySymbol('$');\n } else {\n setCurrencySymbol(projectCurrencies?.[0]);\n }\n }\n }\n }\n }, [multiSelectedValues]);\n\n useEffect(() => {\n // This useEffect is for, to get all the asins having same completion date and same project and keep in one object\n const fields = [];\n for (const details of projectDetails) {\n // Initially all asins are saved as a string and saperated by quammas, so first we saves that asins into an array\n const fieldsTemp = {\n id: details?.id,\n completion_date: details.completion_date,\n asin_checksum: details.asin_checksum,\n project_type: details.project_type,\n asins_listings: [],\n label: details.label,\n };\n for (const asin of details?.asins_listings?.split(',')) {\n if (asin) fieldsTemp.asins_listings.push(asin);\n }\n fields.push(fieldsTemp);\n }\n\n // Marge all the asins in to one array under project, whose completion date and project type are same, and keep its asin checksum which is of first project\n const combinedItems = (arr = []) => {\n const res = arr.reduce((acc, obj) => {\n let found = false;\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < acc.length; i++) {\n if (\n acc[i].completion_date === obj.completion_date &&\n acc[i].project_type === obj.project_type &&\n acc[i].label === obj.label\n ) {\n found = true;\n acc[i].asins_listings = [\n ...acc[i].asins_listings,\n ...obj.asins_listings,\n ];\n // eslint-disable-next-line no-plusplus\n acc[i].count++;\n }\n }\n if (!found) {\n obj.count = 1;\n acc.push(obj);\n }\n return acc;\n }, []);\n return res;\n };\n\n const combinedAsins = combinedItems(fields);\n if (combinedAsins?.length && deleteInfo === null) {\n if (selectedSearchQuery?.length > 0) {\n setAsinData({ ...asinData, originalAsinIds: combinedAsins });\n } else {\n setAsinData({ asinIds: combinedAsins, originalAsinIds: combinedAsins });\n }\n } else if (deleteInfo === null) {\n setAsinData({ asinIds: [], originalAsinIds: [] });\n }\n if (!deleteLoader) setDeleteInfo(null);\n }, [projectDetails]);\n\n useEffect(() => {\n // When the component loads first time then select the first card metric\n if (accountType === 'seller')\n setSelectedCreativeProjectMetrics({ ordered_product_sales: true });\n else if (accountType !== 'seller') {\n if (selectedVendorReporting === 'ordered_revenue')\n setSelectedCreativeProjectMetrics({ ordered_revenue: true });\n else setSelectedCreativeProjectMetrics({ shipped_cogs: true });\n }\n }, [accountType, selectedVendorReporting]);\n\n useEffect(() => {\n // Set disabled flag, if 4 card metrics are selected then disabled other metrics\n if (Object.keys(selectedCreativeProjectMetrics).length === 4) {\n setDisableMetrics(true);\n } else {\n setDisableMetrics(false);\n }\n }, [selectedCreativeProjectMetrics]);\n\n // Handle change function to select/ deselect card metrics on click\n const handleMetricsChange = (metricName) => {\n const selectedMetrics = Object.keys(selectedCreativeProjectMetrics);\n if (selectedMetrics.includes(metricName) && selectedMetrics?.length > 1) {\n const removeMetricName = { ...selectedCreativeProjectMetrics };\n delete removeMetricName[metricName];\n setSelectedCreativeProjectMetrics({\n ...removeMetricName,\n });\n } else {\n setSelectedCreativeProjectMetrics({\n ...selectedCreativeProjectMetrics,\n [metricName]: true,\n });\n }\n };\n\n // add quamma into number\n const displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n // Map each card metrics and its data\n const renderCardMetrics = () => {\n return (\n <>\n {accountBasedArray?.map((metric) => {\n const currentSumValue =\n creativeProjectData?.current_sum?.[metric?.key];\n const previousSumValue =\n creativeProjectData?.previous_sum?.[metric?.key];\n const differenceValue =\n creativeProjectData?.difference?.[metric?.key];\n return (\n <>\n \n handleMetricsChange(metric?.key)}\n >\n \n \n
    {metric?.name}
    \n
    \n {metric?.symbol === 'currency' ? currencySymbol : ''}\n {currentSumValue\n ? displayNumber(\n metric?.decimal\n ? currentSumValue?.toFixed(2)\n : currentSumValue,\n )\n : 0}\n {metric?.symbol === 'percentage' ? '%' : ''}\n
    \n
    \n vs {metric?.symbol === 'currency' ? currencySymbol : ''}\n {previousSumValue\n ? displayNumber(\n metric.decimal\n ? previousSumValue?.toFixed(2)\n : previousSumValue,\n )\n : 0}\n {metric?.symbol === 'percentage' ? '%' : ''}\n
    \n {differenceValue === 0 ? (\n
    0%
    \n ) : differenceValue ? (\n Number(differenceValue) > 0 ? (\n
    \n \n {Number(differenceValue)\n ? Number(differenceValue)\n : 0}\n %\n
    \n ) : (\n
    \n \n {Math?.abs(Number(differenceValue))\n ? Math?.abs(\n Number(\n displayNumber(\n creativeProjectData?.difference?.[\n metric?.key\n ]?.toFixed(2),\n ),\n ),\n )\n : 0}\n %\n
    \n )\n ) : (\n
    \n N/A\n
    \n )}\n \n
    \n \n \n \n \n );\n })}\n \n );\n };\n\n const parentAsinHandleChange = (\n completionDate,\n projectType,\n isChecked,\n isParentAsinChecked,\n asinChecksum,\n ) => {\n const selectedProjectAsin = asinData?.asinIds?.filter(\n (op) =>\n op?.completion_date === completionDate &&\n op?.project_type === projectType,\n );\n let selectedAsins = [];\n let selectedProjectLabels = [];\n if (multiSelectedValues?.asin?.length) {\n selectedAsins = [...multiSelectedValues.asin];\n }\n if (multiSelectedValues?.projectLabels?.length) {\n selectedProjectLabels = [...multiSelectedValues.projectLabels];\n }\n if (isChecked) {\n selectedProjectLabels = [...selectedProjectLabels, asinChecksum];\n if (selectedAsins?.length) {\n selectedAsins = [\n ...selectedAsins,\n ...selectedProjectAsin[0].asins_listings?.map(\n (item) => `${item}-${asinChecksum}`,\n ),\n ];\n } else {\n selectedAsins = [\n ...selectedProjectAsin[0].asins_listings?.map(\n (item) => `${item}-${asinChecksum}`,\n ),\n ];\n }\n } else {\n const uncheckedParentAsin = selectedProjectAsin.filter(\n (op) => op.asin_checksum === asinChecksum,\n );\n if (isParentAsinChecked) {\n selectedAsins = selectedAsins.filter(\n (val) =>\n !(\n uncheckedParentAsin?.[0]?.asins_listings.includes(\n val?.split('-')?.[0],\n ) &&\n uncheckedParentAsin?.[0]?.asin_checksum === val?.split('-')?.[1]\n ),\n );\n $('.checkboxes input:checkbox').prop('checked', false);\n }\n selectedProjectLabels = selectedProjectLabels.filter(\n (op) => asinChecksum !== op,\n );\n }\n\n setMultiSelectedValues({\n ...multiSelectedValues,\n asin: [...new Set(selectedAsins)],\n projectLabels: selectedProjectLabels,\n });\n setCallGraphApi(true);\n };\n\n // Handle asins on checkbox\n const childAsinHandleChange = (asin, asinChecksum) => {\n let selectedAsin = [];\n let selectedProjectLabels = multiSelectedValues?.projectLabels?.length\n ? [...multiSelectedValues?.projectLabels]\n : [];\n selectedProjectLabels = selectedProjectLabels?.filter(\n (op) => op !== asinChecksum,\n );\n if (multiSelectedValues?.asin?.length) {\n selectedAsin = [...multiSelectedValues?.asin];\n if (selectedAsin?.find((item) => item === `${asin}-${asinChecksum}`)) {\n selectedAsin = selectedAsin.filter(\n (op) => op !== `${asin}-${asinChecksum}`,\n );\n } else {\n selectedAsin = [...selectedAsin, `${asin}-${asinChecksum}`];\n }\n } else {\n selectedAsin = [`${asin}-${asinChecksum}`];\n }\n setMultiSelectedValues({\n ...multiSelectedValues,\n asin: selectedAsin,\n projectLabels: selectedProjectLabels,\n });\n setCallGraphApi(true);\n };\n\n const handledOnDeleteIconClick = (whatToDelete, deleteItemInfo, asinInfo) => {\n setShowDeleteConfirmationModal(true);\n setDeleteInfo({\n type: whatToDelete,\n projectInfo: deleteItemInfo,\n asinInfo,\n });\n };\n\n const handledOnConfirmDeleteClick = () => {\n setDeleteLoader(true);\n // If project is deleted.\n\n if (deleteInfo?.type === 'project') {\n // call this because to uncheck the selected project.\n parentAsinHandleChange(\n deleteInfo?.projectInfo?.completion_date,\n deleteInfo?.projectInfo?.project_type,\n false, // is checked\n true, // is parent\n deleteInfo?.projectInfo?.asin_checksum,\n );\n deleteCreativeProject(deleteInfo?.projectInfo?.id).then(() => {\n toast.success(`Project is deleted successfully.`);\n setShowDeleteConfirmationModal(false);\n setDeleteLoader(false);\n getCreativeMonths();\n });\n } else {\n // If asin is deleted.\n\n // to delete the asins we are calling the patch method of creative-project.\n // and removeing the deleted asin from parameters.\n const apiParameter = {\n customer: customerId,\n asins_listings: deleteInfo?.projectInfo?.asins_listings.filter(\n (ele) => ele !== deleteInfo?.asinInfo,\n ),\n };\n\n // removeing the asin from the display list \"asinData\"\n const local = JSON.parse(JSON.stringify(asinData.asinIds));\n local.forEach((ele) => {\n if (ele?.id === deleteInfo?.projectInfo?.id) {\n ele.asins_listings = ele.asins_listings.filter(\n (item) => item !== deleteInfo?.asinInfo,\n );\n }\n });\n setAsinData({ ...asinData, asinIds: local });\n\n // Patch API call to save the asin details.\n uploadCreativeSheet(\n deleteInfo?.projectInfo?.id || null,\n apiParameter,\n ).then((creative) => {\n if (creative?.status === 200) {\n // uncheck the selected asin from list\n childAsinHandleChange(\n deleteInfo?.asinInfo,\n deleteInfo?.projectInfo?.asin_checksum,\n );\n toast.success('ASIN is deleted successfully.');\n\n // removing the asin from main object\n const result = [];\n globalFiltersOptions.projects.forEach((ele) => {\n if (ele.id === deleteInfo?.projectInfo?.id) {\n const localProject = ele;\n localProject.asins_listings = ele?.asins_listings\n .replace(`${deleteInfo?.asinInfo}`, '')\n .replace(`,,`, ',');\n result.push(localProject);\n } else {\n result.push(ele);\n }\n });\n setGlobalFiltersOptions({\n ...globalFiltersOptions,\n projects: result,\n });\n setShowDeleteConfirmationModal(false);\n setDeleteLoader(false);\n setIsSelectProjectDropdownOption(true);\n } else {\n toast.error('Something went wrong.');\n setShowDeleteConfirmationModal(false);\n setDeleteLoader(false);\n }\n });\n }\n };\n\n const renderDeleteModal = () => {\n return (\n \n {\n setDeleteInfo(null);\n setShowDeleteConfirmationModal(false);\n }}\n role=\"presentation\"\n />\n \n
    \n

    \n {deleteInfo?.type === 'project'\n ? 'Delete Project'\n : 'Delete ASIN'}\n

    \n
    \n {deleteInfo?.type === 'project'\n ? projectDeleteMessage\n : asinsDeleteMessage}\n
    \n Please confirm if you would like to proceed.\n
    \n
    \n
    \n
    \n {\n handledOnConfirmDeleteClick();\n }}\n >\n {deleteLoader ? (\n \n ) : (\n 'Delete'\n )}\n \n
    \n
    \n {\n setDeleteInfo(null);\n setShowDeleteConfirmationModal(false);\n }}\n >\n Cancel\n \n
    \n
    \n
    \n
    \n \n );\n };\n\n // Show asin's completion date and asin ids on checkbox\n const renderAsinCheckboxex = () => {\n if (asinData?.asinIds?.length) {\n return asinData?.asinIds?.map((item) => {\n return (\n <>\n \n \n {item?.label}\n {\n parentAsinHandleChange(\n item?.completion_date,\n item?.project_type,\n event.target.checked,\n event.target.id === item?.asin_checksum,\n event.target.id,\n );\n }}\n checked={multiSelectedValues?.projectLabels?.find(\n (selectedLabel) =>\n selectedLabel?.toLowerCase() === item.asin_checksum,\n )}\n />\n\n \n \n {isAllowToDeleteProject &&\n multiSelectedValues?.projectLabels?.find(\n (selectedLabel) =>\n selectedLabel?.toLowerCase() === item.asin_checksum,\n ) ? (\n {\n handledOnDeleteIconClick('project', item, null);\n }}\n icon=\"fa-regular fa-trash\"\n style={{\n color: '#000',\n fontSize: '14px',\n }}\n className=\"cursor pl-1\"\n />\n ) : null}\n \n {item?.asins_listings?.map((asin) => {\n return (\n \n \n {asin}\n \n // selectedAsin?.toLowerCase() === asin?.toLowerCase(),\n // )}\n checked={multiSelectedValues?.asin?.find(\n (selectedAsin) =>\n selectedAsin?.toLowerCase() ===\n `${asin}-${item?.asin_checksum}`?.toLowerCase(),\n )}\n onChange={() => {\n childAsinHandleChange(asin, item.asin_checksum);\n }}\n />\n\n \n \n {isAllowToDeleteProject &&\n multiSelectedValues?.asin?.find(\n (selectedAsin) =>\n selectedAsin?.toLowerCase() ===\n `${asin}-${item?.asin_checksum}`?.toLowerCase(),\n ) ? (\n {\n handledOnDeleteIconClick('asins', item, asin);\n }}\n icon=\"fa-regular fa-trash\"\n style={{\n color: '#000',\n fontSize: '14px',\n }}\n className=\"cursor pl-1\"\n />\n ) : null}\n \n );\n })}\n \n );\n });\n }\n return
    No record found.
    ;\n };\n\n // To search proper asin according to input\n const searchAsinIds = (value) => {\n // first we filter the projects which haves that searched asin\n let searchedAsin = asinData?.originalAsinIds?.map((op) => {\n return op?.asins_listings?.filter((op1) =>\n op1.toLowerCase().includes(value) ? op : null,\n )?.length\n ? op\n : null;\n });\n searchedAsin = searchedAsin?.filter(Boolean);\n // Then we filter only that searched asin into the asin array of project\n const finalSearchedAsin = searchedAsin?.map((item) => {\n return {\n asin_checksum: item?.asin_checksum,\n completion_date: item?.completion_date,\n project_type: item?.project_type,\n label: item?.label,\n asins_listings: item?.asins_listings?.filter((op1) =>\n op1.toLowerCase().includes(value),\n ),\n };\n });\n setAsinData({ ...asinData, asinIds: finalSearchedAsin });\n };\n\n useEffect(() => {\n if (selectedSearchQuery?.length > 0) {\n searchAsinIds(selectedSearchQuery);\n }\n }, [selectedSearchQuery, multiSelectedValues]);\n\n return (\n <>\n
    \n
    \n {!isLoadingGraph?.loader ? (\n
    {renderCardMetrics()}
    \n ) : (\n \n )}\n
    \n
    \n \n \n {\n searchAsinIds(event.target.value.toLowerCase());\n setSelectedSearchQuery(event.target.value.toLowerCase());\n }}\n />\n \n \n {renderAsinCheckboxex()}\n \n
    \n
    \n {renderDeleteModal()}\n \n );\n};\n\nexport default CardMetricsGraph;\n\nCardMetricsGraph.defaultProps = {\n isAllowToDeleteProject: false,\n accountType: 'seller',\n selectedVendorReporting: 'ordered_revenue',\n customerId: '',\n projectDetails: [],\n globalFiltersOptions: [],\n selectedCreativeProjectMetrics: {},\n creativeProjectData: {},\n multiSelectedValues: {},\n isLoadingGraph: {},\n setMultiSelectedValues: () => {},\n setSelectedCreativeProjectMetrics: () => {},\n getCreativeMonths: () => {},\n setIsSelectProjectDropdownOption: () => {},\n setGlobalFiltersOptions: () => {},\n setCallGraphApi: () => {},\n};\n\nCardMetricsGraph.propTypes = {\n isAllowToDeleteProject: bool,\n accountType: string,\n customerId: string,\n selectedVendorReporting: string,\n projectDetails: arrayOf(shape({})),\n globalFiltersOptions: arrayOf(shape({})),\n selectedCreativeProjectMetrics: shape({}),\n creativeProjectData: shape({}),\n multiSelectedValues: shape({}),\n isLoadingGraph: shape({}),\n setSelectedCreativeProjectMetrics: func,\n setMultiSelectedValues: func,\n getCreativeMonths: func,\n setIsSelectProjectDropdownOption: func,\n setGlobalFiltersOptions: func,\n setCallGraphApi: func,\n};\n\nconst ProjectCheckList = styled.div`\n border-radius: 8px;\n background: ${Theme.gray8};\n padding: 24px 12px 9px 12px;\n max-height: 300px;\n overflow: auto;\n\n .check-main-label {\n font-size: ${Theme.extraMedium} !important;\n font-family: ${Theme.titleFontFamily};\n }\n\n .check-child-label {\n font-size: ${Theme.extraMedium} !important;\n font-family: ${Theme.baseFontFamily};\n }\n`;\n","import React, { useEffect, useRef } from 'react';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\n\n// eslint-disable-next-line camelcase\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport { string, shape } from 'prop-types';\nimport dayjs from 'dayjs';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\nconst _ = require('lodash');\n\nexport default function CreativeProjectChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n groupBy,\n completionDate,\n accountType,\n selectedVendorReporting,\n}) {\n const chart = useRef(null);\n useEffect(() => {\n const colorSet =\n accountType === 'seller'\n ? {\n ordered_product_sales: '#0045b4',\n units_ordered: '#74b035',\n units_sold: '#C84EC6',\n page_views: '#E05D37',\n sessions: '#89A43C',\n buy_box_percentage: '#A04848',\n conversion: '#8C54FF',\n }\n : selectedVendorReporting === 'ordered_revenue'\n ? {\n ordered_revenue: '#0045b4',\n glance_views: '#74b035',\n conversion_rate: '#C84EC6',\n ordered_units: '#E05D37',\n }\n : {\n shipped_cogs: '#0045b4',\n glance_views: '#74b035',\n conversion_rate: '#C84EC6',\n shipped_units: '#E05D37',\n };\n\n const tooltipNames =\n accountType === 'seller'\n ? {\n ordered_product_sales: 'Ordered Product Sales',\n units_ordered: 'Units Ordered',\n units_sold: 'Average Units Pper Order',\n page_views: 'Page Views',\n sessions: 'Sessions',\n buy_box_percentage: 'Buy Box %',\n conversion: 'Conversion',\n }\n : selectedVendorReporting === 'ordered_revenue'\n ? {\n ordered_revenue: 'Ordered Revenue',\n glance_views: 'Glance Views',\n conversion_rate: 'Conversion Rate',\n ordered_units: 'Ordered Units',\n }\n : {\n shipped_cogs: 'Shipped COGS',\n glance_views: 'Glance Views',\n conversion_rate: 'Conversion Rate',\n shipped_units: 'Shipped Units',\n };\n const completionDateColor = 'red';\n\n // Compare two dates, current node date on graph and completion date of thet project\n // If Completion date and current node date of the graph are same then return true\n const compareTwoDates = (startDateParam) => {\n const startDateTemp = new Date(startDateParam);\n const completionDateTemp = new Date(completionDate);\n const sameDate =\n startDateTemp?.getFullYear() === completionDateTemp?.getFullYear() &&\n startDateTemp?.getMonth() === completionDateTemp?.getMonth() &&\n startDateTemp?.getDate() === completionDateTemp?.getDate();\n\n return sameDate;\n };\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 20;\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true; // disabled zoomout button\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n // create object of first value axis\n const valueAxis = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.grid.template.disabled = true;\n valueAxis.renderer.baseGrid.disabled = true;\n valueAxis.cursorTooltipEnabled = false;\n valueAxis.numberFormatter = new am4core.NumberFormatter();\n valueAxis.extraMax = 0.005;\n valueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis.numberFormatter.smallNumberPrefixes = [];\n valueAxis.min = 0;\n valueAxis.numberFormatter.numberFormat = `#.#a`;\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n // function to generate complete tooltip html\n function generateToolTipHTML(tooltipValue, startDate, endDate) {\n let html = '';\n if (\n groupBy === 'weekly' ||\n groupBy === 'monthly' ||\n groupBy === 'quarterly'\n ) {\n const sameDate = compareTwoDates(startDate);\n if (sameDate) {\n html = `
    COMPLETION DATE: ${dayjs(\n completionDate,\n ).format('MM/DD/YYYY')}
    \n
    \n From - ${startDate} : To - ${endDate}\n
    \n ${tooltipValue}`;\n } else {\n html = `
    \n From - ${startDate} : To - ${endDate}\n
    \n ${tooltipValue}`;\n }\n } else {\n html = tooltipValue;\n }\n\n return html;\n }\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n `;\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (\n item === 'ordered_product_sales' ||\n item === 'ordered_revenue' ||\n item === 'shipped_cogs'\n ) {\n format = `${currencySymbol}#.#a`;\n } else if (\n item === 'buy_box_percentage' ||\n item === 'conversion' ||\n item === 'conversion_rate'\n ) {\n format = `#.#'%'`;\n } else {\n format = `#.#a`;\n }\n return format;\n }\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n let valueAxis2;\n const snapToSeries = [];\n let tooltipValue = '';\n let firstAxis = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const value = `${item}CurrentLabel`;\n // tooltipValue = `${tooltipValue} ${_.startCase(item)}`;\n if (\n item === 'ordered_product_sales' ||\n item === 'ordered_revenue' ||\n item === 'shipped_cogs'\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (\n item === 'buy_box_percentage' ||\n item === 'conversion' ||\n item === 'conversion_rate'\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n null,\n '%',\n null,\n )}`;\n } else {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n null,\n null,\n '#,###',\n )}`;\n }\n return '';\n });\n\n // Loop for series bind (dotted line and line)\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const seriesName = `${item}Series`;\n const colorCode = colorSet[item];\n\n if (index === 0) {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (\n item === 'units_ordered' ||\n item === 'page_views' ||\n item === 'units_sold' ||\n item === 'sessions' ||\n item === 'shipped_units' ||\n item === 'ordered_units' ||\n item === 'glaced_views'\n ) {\n firstAxis = 'unit';\n }\n if (\n item === 'buy_box_percentage' ||\n item === 'conversion' ||\n item === 'conversion_rate'\n ) {\n firstAxis = 'percentage';\n }\n }\n if (index === 1) {\n if (\n firstAxis === 'unit' &&\n (item === 'units_ordered' ||\n item === 'page_views' ||\n item === 'units_sold' ||\n item === 'sessions' ||\n item === 'shipped_units' ||\n item === 'ordered_units' ||\n item === 'glaced_views')\n ) {\n series.yAxis = valueAxis;\n } else if (\n firstAxis === 'percentage' &&\n (item === 'buy_box_percentage' ||\n item === 'conversion' ||\n item === 'conversion_rate')\n ) {\n series.yAxis = valueAxis;\n } else {\n valueAxis2 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis2.renderer.grid.template.disabled = true;\n valueAxis2.renderer.baseGrid.disabled = true;\n valueAxis2.cursorTooltipEnabled = false;\n valueAxis2.numberFormatter = new am4core.NumberFormatter();\n valueAxis2.numberFormatter.numberFormat = `#.#a`;\n valueAxis2.extraMax = 0.005;\n valueAxis2.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis2.numberFormatter.smallNumberPrefixes = [];\n valueAxis2.min = 0;\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n }\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n // circleBullet.circle.fill = am4core.color(colorCode);\n // Change the color of the particular node which haves the completion date\n if (chartData?.length > 1) {\n circleBullet.adapter.add('fill', (fill, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n if (compareTwoDates(dateRange?.date)) {\n return am4core.color(completionDateColor);\n }\n return am4core.color(colorCode);\n });\n } else {\n circleBullet.circle.fill = am4core.color(colorCode);\n }\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics (More than 2) selected\n\n let firstAxis = null;\n let secondAxis = null;\n let thirdAxis = null;\n\n // create object of 2nd value axis\n const valueAxis2 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis2.renderer.grid.template.disabled = true;\n valueAxis2.renderer.baseGrid.disabled = true;\n valueAxis2.cursorTooltipEnabled = false;\n valueAxis2.numberFormatter = new am4core.NumberFormatter();\n valueAxis2.numberFormatter.numberFormat = `#.#a`;\n valueAxis2.extraMax = 0.005;\n valueAxis2.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis2.min = 0;\n valueAxis2.numberFormatter.smallNumberPrefixes = [];\n\n const valueAxis3 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis3.renderer.grid.template.disabled = true;\n valueAxis3.renderer.baseGrid.disabled = true;\n valueAxis3.cursorTooltipEnabled = false;\n valueAxis3.numberFormatter = new am4core.NumberFormatter();\n valueAxis3.numberFormatter.numberFormat = `#.#a`;\n valueAxis3.extraMax = 0.005;\n valueAxis3.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis3.numberFormatter.smallNumberPrefixes = [];\n valueAxis3.min = 0;\n\n // create object of 4th value axis\n const valueAxis4 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis4.renderer.grid.template.disabled = true;\n valueAxis4.renderer.baseGrid.disabled = true;\n valueAxis4.cursorTooltipEnabled = false;\n valueAxis4.numberFormatter = new am4core.NumberFormatter();\n valueAxis4.numberFormatter.numberFormat = `#.#a`;\n valueAxis4.extraMax = 0.005;\n valueAxis4.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis4.numberFormatter.smallNumberPrefixes = [];\n valueAxis4.min = 0;\n\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const value = `${item}CurrentLabel`;\n\n if (\n item === 'ordered_product_sales' ||\n item === 'ordered_revenue' ||\n item === 'shipped_cogs'\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (\n item === 'buy_box_percentage' ||\n item === 'conversion' ||\n item === 'conversion_rate'\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n null,\n '%',\n null,\n )}`;\n } else {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n value,\n null,\n null,\n '#,###',\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n if (\n item === 'units_ordered' ||\n item === 'page_views' ||\n item === 'units_sold' ||\n item === 'sessions' ||\n item === 'shipped_units' ||\n item === 'ordered_units' ||\n item === 'glaced_views'\n ) {\n if (firstAxis === null || firstAxis === 'unit') {\n series.yAxis = valueAxis;\n firstAxis = 'unit';\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === null || secondAxis === 'unit') {\n series.yAxis = valueAxis2;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis2.renderer.opposite = true;\n secondAxis = 'unit';\n } else if (thirdAxis === null || thirdAxis === 'unit') {\n series.yAxis = valueAxis3;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis3.renderer.opposite = true;\n\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'unit';\n } else {\n series.yAxis = valueAxis4;\n valueAxis4.renderer.opposite = true;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n valueAxis4.renderer.labels.template.disabled = true;\n }\n } else if (\n item === 'buy_box_percentage' ||\n item === 'conversion' ||\n item === 'conversion_rate'\n ) {\n if (firstAxis === null || firstAxis === 'percentage') {\n series.yAxis = valueAxis;\n firstAxis = 'percentage';\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === null || secondAxis === 'percentage') {\n series.yAxis = valueAxis2;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis2.renderer.opposite = true;\n secondAxis = 'percentage';\n } else if (thirdAxis === null || thirdAxis === 'percentage') {\n series.yAxis = valueAxis3;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis3.renderer.opposite = true;\n\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'percentage';\n } else {\n series.yAxis = valueAxis4;\n valueAxis4.renderer.opposite = true;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n valueAxis4.renderer.labels.template.disabled = true;\n }\n } else if (\n item === 'ordered_product_sales' ||\n item === 'ordered_revenue' ||\n item === 'shipped_cogs'\n ) {\n // for currency metrics\n if (firstAxis === null) {\n series.yAxis = valueAxis;\n firstAxis = 'currency';\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === null) {\n series.yAxis = valueAxis2;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis2.renderer.opposite = true;\n secondAxis = 'currency';\n } else if (thirdAxis === null) {\n series.yAxis = valueAxis3;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis3.renderer.opposite = true;\n\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'currency';\n } else {\n series.yAxis = valueAxis4;\n valueAxis4.renderer.opposite = true;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n valueAxis4.renderer.labels.template.disabled = true;\n }\n }\n\n const currentValue = `${item}Current`;\n const seriesName = `${item}Series`;\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorSet[item]);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n // circleBullet.circle.fill = am4core.color(colorSet[item]);\n // Change the color of the particular node which haves the completion date\n if (chartData?.length > 1) {\n circleBullet.adapter.add('fill', (fill, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n if (compareTwoDates(dateRange?.date)) {\n return am4core.color(completionDateColor);\n }\n return am4core.color(colorSet[item]);\n });\n } else {\n circleBullet.circle.fill = am4core.color(colorSet[item]);\n }\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n return () => chart.current && chart.current.dispose();\n }, [\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n groupBy,\n completionDate,\n accountType,\n selectedVendorReporting,\n ]);\n\n return (\n <>\n
    \n \n );\n}\n\nCreativeProjectChart.defaultProps = {\n chartId: '',\n chartData: {},\n currencySymbol: '',\n selectedMetrics: {},\n groupBy: '',\n completionDate: '',\n accountType: 'seller',\n selectedVendorReporting: 'ordered_revenue',\n};\n\nCreativeProjectChart.propTypes = {\n chartId: string,\n chartData: shape({}),\n currencySymbol: string,\n selectedMetrics: {},\n groupBy: string,\n completionDate: string,\n accountType: string,\n selectedVendorReporting: string,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback } from 'react';\n\nimport Select from 'react-select';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { bool, func, shape, string } from 'prop-types';\nimport { useSelector } from 'react-redux';\n\nimport CardMetricsGraph from './CardMetricsGraph';\nimport CreativeProjectChart from './CreativeProjectChart';\nimport Theme from '../../../../../theme/Theme';\nimport { Icon } from '../../../../../theme/Global';\nimport {\n creativeAfterDaysOptions,\n noGraphDataMessage,\n daysConstant,\n SpreetailRoleRestrictMessage,\n SELLERSMALL,\n VENDORSMALL,\n} from '../../../../../constants';\nimport {\n WhiteCard,\n AllocateBar,\n CustomDropDown,\n DropdownIndicator,\n NoData,\n ToggleButton,\n GrayMessageBar,\n} from '../../../../../common';\n\nexport default function CreativeProjectPerformanceSummary({\n hideUploadCreativeProjectCTA,\n afterDaysDateDifference,\n afterDaysValue,\n setAfterDaysValue,\n isLoadingGraph,\n groupBy,\n multiSelectedValues,\n creativeProjectData,\n creativeProjectChartData,\n allowedToUploadDeleteProject,\n assignedBGSManager,\n loggedInRole,\n setShowCreativeUploadScreen,\n selectedProjects,\n selectedCreativeProjectMetrics,\n setMultiSelectedValues,\n accountType,\n selectedVendorReporting,\n currencySymbolForGraph,\n setSelectedCreativeProjectMetrics,\n handleGroupBy,\n params,\n isAllowToDeleteProject,\n getCreativeMonths,\n customerId,\n setIsSelectProjectDropdownOption,\n globalFiltersOptions,\n setGlobalFiltersOptions,\n setCallGraphApi,\n isSpreetailUser,\n}) {\n // https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in Creative project\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n\n const creativeProjectMessage =\n accountType === SELLERSMALL\n ? dynamicMessages?.creative_project_seller?.placeholder\n : accountType === VENDORSMALL\n ? dynamicMessages?.creative_project_vendor?.placeholder\n : null;\n\n // after_days_filter_option disabled conditions\n const checkAfterDaysDisabledCondition = (daysValue) => {\n let disabledCondition = true;\n\n if (daysValue === '30') {\n disabledCondition = false;\n } else if (daysValue === '60' && Number(afterDaysDateDifference) > 30) {\n disabledCondition = false;\n } else if (daysValue === '90' && Number(afterDaysDateDifference) > 60) {\n disabledCondition = false;\n } else if (daysValue === '120' && Number(afterDaysDateDifference) > 90) {\n disabledCondition = false;\n }\n\n return disabledCondition;\n };\n\n // render Info icon message of after_days_filter\n const showAfterDaysMessage = useCallback(() => {\n let infoToolTipMessage = '';\n if (afterDaysDateDifference && afterDaysDateDifference < 91) {\n infoToolTipMessage = `Information is available for ${afterDaysDateDifference} days only`;\n }\n if (!afterDaysDateDifference) {\n infoToolTipMessage = `Information is available for some days only`;\n }\n\n return infoToolTipMessage;\n }, [afterDaysDateDifference]);\n\n // render after_days_filter\n const renderAfterDaysDropdown = () => {\n return (\n \n \n item?.value === afterDaysValue,\n )}\n isSearchable={false}\n isOptionDisabled={(option) =>\n checkAfterDaysDisabledCondition(option.value)\n }\n onChange={(e) => {\n setAfterDaysValue(e.value);\n setCallGraphApi(true);\n }}\n isDisabled={isLoadingGraph?.loader}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n {showAfterDaysMessage() ? (\n \n \n \n \n ) : (\n ''\n )}\n
    \n );\n };\n\n // Show weekly, monthly, quarterly toggle button above graph\n const renderDaysToogleButton = () => {\n return daysConstant?.map((button) => {\n return (\n
  • \n handleGroupBy(button?.key)}\n onChange={() => {}}\n />\n \n
  • \n );\n });\n };\n\n // generate completion Date label\n const getProjectNameOnCompletionDate = useCallback(() => {\n const lattestProject = multiSelectedValues?.projects?.find(\n (project) =>\n project?.completion_date ===\n creativeProjectData?.dates?.current_start_date &&\n project?.marketplace_id ===\n creativeProjectData?.graph_country_currency?.country,\n );\n return lattestProject?.label;\n }, [creativeProjectData]);\n\n // render completion Date label and toogle btn\n const renderCompletionDateAndGroupBytoogleBtn = () => {\n return (\n
    \n
    \n {creativeProjectData?.dates?.current_start_date &&\n !isLoadingGraph?.loader ? (\n <>\n Completion Date:{' '}\n {getProjectNameOnCompletionDate()}\n \n ) : (\n ''\n )}\n
    \n
    \n \n
    \n \n {renderDaysToogleButton()}\n \n
    \n
    \n
    \n
    \n );\n };\n\n const showMessageForGraph = () => {\n const selectedProjectCompletionDates = multiSelectedValues?.projects\n ?.map((item) => item?.completion_date)\n ?.filter(Boolean)\n ?.sort();\n if (\n selectedProjectCompletionDates?.length > 1 &&\n creativeProjectChartData?.length\n ) {\n return (\n
    \n
    \n \n
    \n \n Graph is displaying the latest project selected only, for :{' '}\n {\n selectedProjectCompletionDates[\n selectedProjectCompletionDates?.length - 1\n ]\n }\n
    \n
    \n
    \n
    \n );\n }\n return '';\n };\n\n return (\n \n
    \n
    \n

    \n Performance Summary\n {hideUploadCreativeProjectCTA ? null : (\n <>\n \n !isSpreetailUser &&\n (allowedToUploadDeleteProject ||\n assignedBGSManager ||\n loggedInRole === 'BGS Admin')\n ? setShowCreativeUploadScreen(true)\n : null\n }\n role=\"presentation\"\n >\n Upload Completed Creative Project\n {' '}\n \n \n\n {allowedToUploadDeleteProject ||\n assignedBGSManager ||\n loggedInRole === 'BGS Admin' ? null : (\n <>\n \n \n \n )}\n \n )}\n

    \n
    \n {renderAfterDaysDropdown()}\n
    \n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in Creative project */}\n {creativeProjectMessage ? (\n \n ) : null}\n {creativeProjectData?.available_days &&\n multiSelectedValues?.projects?.length === 1 ? (\n \n ) : null}\n {' '}\n {showMessageForGraph()}\n {renderCompletionDateAndGroupBytoogleBtn()}\n {isLoadingGraph?.loader ? null : creativeProjectChartData?.length ? (\n \n ) : (\n {noGraphDataMessage}\n )}\n
    \n );\n}\n\nCreativeProjectPerformanceSummary.defaultProps = {\n hideUploadCreativeProjectCTA: false,\n isAllowToDeleteProject: false,\n assignedBGSManager: false,\n isSpreetailUser: false,\n allowedToUploadDeleteProject: false,\n\n loggedInRole: '',\n afterDaysDateDifference: '',\n afterDaysValue: '',\n groupBy: '',\n accountType: '',\n selectedVendorReporting: '',\n currencySymbolForGraph: '',\n customerId: '',\n\n multiSelectedValues: {},\n creativeProjectData: {},\n creativeProjectChartData: {},\n selectedProjects: {},\n isLoadingGraph: {},\n selectedCreativeProjectMetrics: {},\n params: {},\n\n globalFiltersOptions: [],\n\n getCreativeMonths: () => {},\n setSelectedCreativeProjectMetrics: () => {},\n handleGroupBy: () => {},\n setAfterDaysValue: () => {},\n setIsSelectProjectDropdownOption: () => {},\n setMultiSelectedValues: () => {},\n setShowCreativeUploadScreen: () => {},\n setGlobalFiltersOptions: () => {},\n setCallGraphApi: () => {},\n};\n\nCreativeProjectPerformanceSummary.propTypes = {\n hideUploadCreativeProjectCTA: bool,\n isAllowToDeleteProject: bool,\n assignedBGSManager: bool,\n isSpreetailUser: bool,\n allowedToUploadDeleteProject: bool,\n\n loggedInRole: string,\n afterDaysDateDifference: string,\n afterDaysValue: string,\n groupBy: string,\n accountType: string,\n selectedVendorReporting: string,\n currencySymbolForGraph: string,\n customerId: string,\n\n multiSelectedValues: shape({}),\n creativeProjectData: shape({}),\n creativeProjectChartData: shape({}),\n selectedProjects: shape({}),\n isLoadingGraph: shape({}),\n selectedCreativeProjectMetrics: shape({}),\n params: shape({}),\n\n globalFiltersOptions: shape([]),\n\n getCreativeMonths: func,\n setSelectedCreativeProjectMetrics: func,\n handleGroupBy: func,\n setAfterDaysValue: func,\n setIsSelectProjectDropdownOption: func,\n setMultiSelectedValues: func,\n setShowCreativeUploadScreen: func,\n setGlobalFiltersOptions: func,\n setCallGraphApi: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport dayjs from 'dayjs';\nimport queryString from 'query-string';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { toast } from 'react-toastify';\nimport { bool, func, shape, string } from 'prop-types';\n\nimport ProjectAsinsTable from './ProjectAsinsTable';\nimport UploadCreativeAsins from './UploadCreativeAsins';\nimport CreativeProjectFilters from './CreativeProjectFilters';\nimport CreativeProjectPerformanceSummary from './CreativeProjectPerformanceSummary';\nimport NoRecordFound from '../../../../../common/NoRecordFound';\nimport { WhiteCard, PageLoader } from '../../../../../common';\nimport { SpreetailRole } from '../../../../../constants';\nimport {\n getCreativeProjectGlobalFilters,\n getCreativeProjectMonths,\n getCreativeProjectTableInfo,\n getCreativeProjectGraphData,\n} from '../../../../../api/CompanyPerformanceApi';\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nexport default function CreativeProjectContainer({\n id,\n resetCreativeProjectFilters,\n setResetCreativeProjectFilters,\n setShowCreativeUploadScreen,\n selectedAccountType,\n assignedBGSManager,\n loggedInRole,\n setIsDisabledRefreshBtn,\n displayAccountTypeFilter,\n}) {\n // https://bbe.atlassian.net/browse/PDV-8278\n // Removing the hard coded user emails and making it as dynamic access for authorized users.\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const customerState = useSelector((state) => state?.customerState?.data);\n const isSuperAdmin = userInfo?.role === 'Super Admin';\n const isThirdPartyBrand = customerState?.is_third_party_potential_brand;\n const hideUploadCreativeProjectCTA = !isSuperAdmin && !isThirdPartyBrand;\n const allowedToUploadDeleteProject =\n userInfo?.allowed_to_upload_delete_creative_project_fe;\n\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [callGraphApi, setCallGraphApi] = useState(false);\n const [callTableApi, setCallTableApi] = useState(true);\n const [isItFirstTimeRender, setIsItFirstTimeRender] = useState(true);\n const [globalFiltersOptions, setGlobalFiltersOptions] = useState([]);\n const [getMonthsList, setGetMonthsList] = useState([]);\n const [tableInfoDetails, setTableInfoDetails] = useState([]);\n const [currencySymbolForGraph, setCurrencySymbolForGraph] = useState(null);\n const [getTotalOfTable, setGetTotalOfTable] = useState({});\n const [paginationChecksum, setPaginationChecksum] = useState();\n const [getProjectsFilter, setGetProjectsFilter] = useState({});\n const [creativeProjectData, setCreativeProjectData] = useState();\n const [creativeProjectChartData, setCreativeProjectChartData] = useState();\n const [groupBy, setGroupBy] = useState('weekly');\n const [afterDaysValue, setAfterDaysValue] = useState('30');\n const [afterDaysDateDifference, setAfterDaysDateDifference] = useState();\n const [asinCounts, setAsinCounts] = useState();\n const [pageNumber, setPageNumber] = useState(1);\n const [isSelectProjectDropdownOption, setIsSelectProjectDropdownOption] =\n useState(false);\n const [selectedVendorReporting, setSelectedVendorReporting] =\n useState('ordered_revenue');\n const [selectedCreativeProjectMetrics, setSelectedCreativeProjectMetrics] =\n useState({});\n const [selectedProjects, setSelectedProjects] = useState({\n table: [],\n search: [],\n });\n const [isTableLoading, setIsTableLoading] = useState({\n loader: true,\n type: 'table',\n });\n const [isLoadingGraph, setIsLoadingGraph] = useState({\n loader: true,\n type: 'graph',\n });\n const [showProjectAsinTable, setShowProjectAsinTable] = useState({\n project_view: true,\n asins_view: false,\n });\n\n const [multiSelectedValues, setMultiSelectedValues] = useState({\n months: [],\n marketplaces: [],\n project_type: [],\n projects: [],\n asins: [],\n projectLabels: [],\n });\n\n // delete access permission\n const isAllowToDeleteProject =\n allowedToUploadDeleteProject ||\n assignedBGSManager ||\n loggedInRole === 'BGS Admin';\n\n // create short name of project to display in dropdown\n const getShortProjectNames = (projects) => {\n const projectArray = projects || globalFiltersOptions?.projects;\n for (const item of projectArray) {\n if (item?.project_type?.includes('Brand Story - A+ Content')) {\n item.value = item.asin_checksum;\n item.label = `A+ BS ${item.marketplace_id} (${dayjs(\n item.completion_date,\n ).format('MM/DD/YYYY')})`;\n } else if (item?.project_type?.includes('Regular - A+ Content')) {\n item.value = item.asin_checksum;\n item.label = `A+ R ${item.marketplace_id} (${dayjs(\n item.completion_date,\n ).format('MM/DD/YYYY')})`;\n } else if (item?.project_type?.includes('Premium - A+ Content')) {\n item.value = item.asin_checksum;\n item.label = `A+ P ${item.marketplace_id} (${dayjs(\n item.completion_date,\n ).format('MM/DD/YYYY')})`;\n } else if (item?.project_type?.includes('Listing Updates')) {\n item.value = item.asin_checksum;\n item.label = `Listing ${item.marketplace_id} (${dayjs(\n item.completion_date,\n ).format('MM/DD/YYYY')})`;\n } else {\n item.value = item.asin_checksum;\n item.label = `${item.project_type} ${item.marketplace_id} (${dayjs(\n item.completion_date,\n ).format('MM/DD/YYYY')})`;\n }\n }\n };\n\n // handle toogle btn- weekly, monthly, quarterly\n const handleGroupBy = (value) => {\n if (value !== groupBy) {\n setGroupBy(value);\n setCallGraphApi(true);\n }\n };\n\n // bind the graph api response data to dispaly graph\n const bindCreativeProjectResponseData = (response) => {\n const tempData = [];\n\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.report_date)\n : response?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n // filterout Current data in one temporary object.\n if (response?.current?.length) {\n response.current.forEach((item, index) => {\n const currentReportDate = dayjs(item.report_date).format('MMM D YYYY');\n if (selectedAccountType?.value === 'seller') {\n tempData.push({\n buy_box_percentageCurrent: item.buy_box_percentage,\n conversionCurrent: item.conversion,\n ordered_product_salesCurrent: item.ordered_product_sales,\n page_viewsCurrent: item.page_views,\n sessionsCurrent: item.sessions,\n units_orderedCurrent: item.units_ordered,\n units_soldCurrent: item.units_sold,\n date: currentReportDate,\n endDate: nextReportDate(index, response?.current, 'current'),\n\n buy_box_percentageCurrentLabel:\n item.buy_box_percentage !== null\n ? item.buy_box_percentage?.toFixed(2)\n : '0.00',\n conversionCurrentLabel:\n item.conversion !== null ? item.conversion?.toFixed(2) : '0.00',\n ordered_product_salesCurrentLabel:\n item.ordered_product_sales !== null\n ? item.ordered_product_sales?.toFixed(2)\n : '0.00',\n page_viewsCurrentLabel:\n item.page_views !== null ? item.page_views : '0',\n sessionsCurrentLabel:\n item.sessions !== null ? item.sessions?.toFixed(2) : '0.00',\n units_orderedCurrentLabel:\n item.units_ordered !== null ? item.units_ordered : '0',\n units_soldCurrentLabel:\n item.units_sold !== null ? item.units_sold?.toFixed(2) : '0.00',\n });\n } else if (selectedVendorReporting === 'ordered_revenue') {\n tempData.push({\n conversionRateCurrent: item.conversion_rate,\n ordered_revenueCurrent: item.ordered_revenue,\n glance_viewsCurrent: item.glance_views,\n ordered_unitsCurrent: item.ordered_units,\n date: currentReportDate,\n endDate: nextReportDate(index, response?.current, 'current'),\n\n conversionRateCurrentLabel:\n item.conversion_rate !== null\n ? item.conversion_rate?.toFixed(2)\n : '0.00',\n ordered_revenueCurrentLabel:\n item.ordered_revenue !== null\n ? item.ordered_revenue?.toFixed(2)\n : '0.00',\n glance_viewsCurrentLabel:\n item.glance_views !== null ? item.glance_views : '0',\n ordered_unitsCurrentLabel:\n item.ordered_units !== null\n ? item.ordered_units?.toFixed(2)\n : '0',\n });\n } else if (selectedVendorReporting === 'shipped_cogs') {\n tempData.push({\n conversionRateCurrent: item.conversion_rate,\n shipped_cogsCurrent: item.shipped_cogs,\n glance_viewsCurrent: item.glance_views,\n shipped_unitsCurrent: item.shipped_units,\n date: currentReportDate,\n endDate: nextReportDate(index, response?.current, 'current'),\n\n conversionRateCurrentLabel:\n item.conversion_rate !== null\n ? item.conversion_rate?.toFixed(2)\n : '0.00',\n shipped_cogsCurrentLabel:\n item.shipped_cogs !== null\n ? item.shipped_cogs?.toFixed(2)\n : '0.00',\n glance_viewsCurrentLabel:\n item.glance_views !== null ? item.glance_views : '0',\n shipped_unitsCurrentLabel:\n item.shipped_units !== null\n ? item.shipped_units?.toFixed(2)\n : '0',\n });\n }\n });\n }\n\n return tempData;\n };\n\n // Disabled after 30, 60, 90, 120 days dropdown option if completion date and todays date difference is more\n // eg\": if completion date is after or before 45 days from todays date then enabe 30,60 and disabled 90, 120\n useEffect(() => {\n // a and b are javascript Date objects\n const a = new Date(); // todays date\n const b = new Date(creativeProjectData?.dates?.current_start_date); // completion date\n\n const MSPERDAY = 1000 * 60 * 60 * 24;\n // Discard the time and time-zone information.\n const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());\n const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());\n\n const dateDifference = Math.abs(Math.floor((utc2 - utc1) / MSPERDAY));\n setAfterDaysDateDifference(dateDifference);\n }, [creativeProjectData]);\n\n // Graph data api call\n useEffect(() => {\n if (callGraphApi) {\n setIsLoadingGraph({\n loader: true,\n type: 'graph',\n });\n getCreativeProjectGraphData(\n id,\n multiSelectedValues,\n groupBy,\n afterDaysValue,\n params.sub || 'seller',\n selectedAccountType?.value === 'vendor' ? selectedVendorReporting : '',\n ).then((response) => {\n const creativeProjectGraphData = bindCreativeProjectResponseData(\n response?.data,\n );\n setCreativeProjectChartData(creativeProjectGraphData);\n setCreativeProjectData(response?.data);\n // Set country symbol for graph according to lattest project selected\n setCurrencySymbolForGraph(\n getSymbolFromCurrency(\n response?.data?.graph_country_currency?.currency,\n ),\n );\n setIsLoadingGraph({\n loader: false,\n type: 'graph',\n });\n setCallGraphApi(false);\n });\n }\n }, [multiSelectedValues, groupBy, afterDaysValue, selectedVendorReporting]);\n\n // trigger when cganged the account type - seller or vendor\n useEffect(() => {\n setCallGraphApi(true);\n }, [selectedAccountType]);\n\n // trigger to enable OR disable refresh btn according to API call. (on loader)\n useEffect(() => {\n setIsDisabledRefreshBtn(\n isLoading?.loader || isTableLoading?.loader || isLoadingGraph.loader,\n );\n }, [isLoading, isTableLoading, isLoadingGraph]);\n\n const checkProjectList = (project) => {\n const fields = [];\n const search = [];\n for (const item of project) {\n for (const label of multiSelectedValues?.projects) {\n if (item?.label === label?.label) search.push(item);\n }\n // get the month\n for (const months of multiSelectedValues?.months) {\n if (item?.month === months?.value) {\n for (const market of multiSelectedValues?.marketplaces) {\n if (item?.marketplace_id === market?.value) {\n for (const type of multiSelectedValues?.project_type) {\n if (item?.project_type === type?.value) {\n fields.push(item);\n }\n }\n }\n }\n }\n }\n }\n setSelectedProjects({ table: fields, search });\n };\n\n useEffect(() => {\n if (globalFiltersOptions?.projects?.length)\n checkProjectList(globalFiltersOptions?.projects);\n }, [multiSelectedValues, globalFiltersOptions]);\n\n useEffect(() => {\n const isAllMonths = multiSelectedValues?.months?.filter(\n (op) => op.value === 'all',\n );\n\n if (\n (globalFiltersOptions?.months?.length &&\n multiSelectedValues?.marketplaces?.length === 0) ||\n isAllMonths?.length ||\n multiSelectedValues?.months?.length\n ) {\n setMultiSelectedValues({\n months: multiSelectedValues?.months || [\n globalFiltersOptions?.months?.[0],\n ],\n marketplaces: [globalFiltersOptions?.marketplaces?.[0]],\n project_type: [globalFiltersOptions?.project_type?.[0]],\n projects: [getProjectsFilter?.projects?.[0]],\n });\n if (isItFirstTimeRender) {\n setCallGraphApi(true);\n }\n }\n if (globalFiltersOptions?.projects?.length) {\n checkProjectList(globalFiltersOptions?.projects);\n getShortProjectNames(globalFiltersOptions?.projects);\n }\n }, [globalFiltersOptions]);\n\n // get filters option accordign to selected date\n const getCreativeDataOnMonths = (\n filterData,\n monthOptions,\n currentPage = 1,\n callTableAPIFlag = false,\n ) => {\n setIsLoading({ loader: true, type: 'page' });\n\n getCreativeProjectGlobalFilters(\n id,\n params?.sub || 'seller',\n filterData,\n ).then((response) => {\n if (response?.status === 200) {\n const uniqueProjectArray = Object.values(\n response?.data?.projects?.reduce(\n (acc, cur) =>\n Object.assign(acc, {\n [cur.project_type + cur.completion_date + cur.marketplace_id]:\n cur,\n }),\n {},\n ),\n );\n const projectsBasedOnMarketplaces = [];\n for (const pro of uniqueProjectArray) {\n if (\n response?.data?.marketplaces?.[0]?.value === pro.marketplace_id &&\n response?.data?.project_type?.[0]?.value === pro.project_type\n ) {\n projectsBasedOnMarketplaces.push(pro);\n }\n for (const currency of response?.data?.marketplaces) {\n if (pro.marketplace_id === currency.value) {\n pro.currency = getSymbolFromCurrency(\n currency?.country_currency?.currency,\n );\n }\n }\n }\n setGlobalFiltersOptions({\n ...response?.data,\n months: monthOptions,\n projects: uniqueProjectArray,\n });\n setGetProjectsFilter({ projects: projectsBasedOnMarketplaces });\n setMultiSelectedValues({\n ...filterData,\n marketplaces: [response?.data?.marketplaces?.[0]],\n project_type: [response?.data?.project_type?.[0]],\n projects: projectsBasedOnMarketplaces || [\n response?.data?.projects?.[0],\n ],\n });\n\n getShortProjectNames(response?.data?.projects);\n setIsLoading({ loader: false, type: 'page' });\n setPageNumber(currentPage || 1);\n setIsItFirstTimeRender(false);\n\n if (callTableApi || callTableAPIFlag) {\n setIsTableLoading({ loader: true, type: 'table' });\n const localMultiselectProject =\n projectsBasedOnMarketplaces?.[0]?.asin_checksum ||\n response?.data?.projects?.[0]?.asin_checksum;\n\n // get the table info\n getCreativeProjectTableInfo(\n id,\n params?.sub === 'seller' ? null : selectedVendorReporting,\n params?.sub || 'seller',\n filterData,\n pageNumber,\n paginationChecksum,\n [localMultiselectProject],\n ).then((res) => {\n if (res?.status === 200) {\n const total = [];\n for (const [key, value] of Object.entries(\n res?.data?.project_view,\n )) {\n total.push({ [key]: value.total });\n }\n setGetTotalOfTable(total);\n const counts = [];\n for (const [key, value] of Object.entries(\n res?.data?.asins_view,\n )) {\n counts.push({ [key]: value.count });\n }\n setAsinCounts(counts);\n setPageNumber(currentPage || 1);\n setTableInfoDetails(res?.data);\n\n setIsTableLoading({ loader: false, type: 'table' });\n } else {\n setGetTotalOfTable({});\n setAsinCounts();\n setTableInfoDetails([]);\n\n setIsTableLoading({ loader: false, type: 'table' });\n if (res?.status === 504)\n toast.error('Failed to fetch the data. Please try again.');\n }\n setCallTableApi(false);\n });\n }\n } else {\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n };\n\n // when click on applay CTA- call graph API and table info API\n const handleApplyOnClick = () => {\n setIsLoading({ loader: true, type: 'page' });\n setIsTableLoading({ loader: true, type: 'table' });\n\n // get graph data\n getCreativeProjectGraphData(\n id,\n multiSelectedValues,\n groupBy,\n afterDaysValue,\n params.sub || 'seller',\n selectedAccountType?.value === 'vendor' ? selectedVendorReporting : '',\n ).then((response) => {\n const creativeProjectGraphData = bindCreativeProjectResponseData(\n response?.data,\n );\n setCreativeProjectChartData(creativeProjectGraphData);\n setCreativeProjectData(response?.data);\n // Set country symbol for graph according to lattest project selected\n setCurrencySymbolForGraph(\n getSymbolFromCurrency(response?.data?.graph_country_currency?.currency),\n );\n setIsLoadingGraph({\n loader: false,\n type: 'graph',\n });\n setIsLoading({ loader: false, type: 'page' });\n });\n\n // get the table info\n getCreativeProjectTableInfo(\n id,\n params?.sub === 'seller' ? null : selectedVendorReporting,\n params?.sub || 'seller',\n multiSelectedValues?.months,\n pageNumber,\n paginationChecksum,\n multiSelectedValues.projects.map((element) => {\n if (element.value !== 'all') return element.asin_checksum;\n return null;\n }),\n ).then((res) => {\n if (res?.status === 200) {\n const total = [];\n for (const [key, value] of Object.entries(res?.data?.project_view)) {\n total.push({ [key]: value.total });\n }\n setGetTotalOfTable(total);\n const counts = [];\n for (const [key, value] of Object.entries(res?.data?.asins_view)) {\n counts.push({ [key]: value.count });\n }\n setAsinCounts(counts);\n setTableInfoDetails(res?.data);\n\n setIsTableLoading({ loader: false, type: 'table' });\n } else {\n setGetTotalOfTable({});\n setAsinCounts();\n setTableInfoDetails([]);\n\n setIsTableLoading({ loader: false, type: 'table' });\n if (res?.status === 504)\n toast.error('Failed to fetch the data. Please try again.');\n }\n });\n };\n\n // get the month dropdown options\n const getMonthsDropwonOptions = (callTableAPIFlag = false) => {\n setIsLoading({ loader: true, type: 'page' });\n getCreativeProjectMonths(id, params?.sub || 'seller').then((month) => {\n setGetMonthsList(month?.data);\n if (month?.data?.length) {\n getCreativeDataOnMonths(\n { months: [month?.data?.[0]] },\n month?.data,\n 1,\n callTableAPIFlag,\n );\n setMultiSelectedValues({\n ...multiSelectedValues,\n months: [month?.data?.[0]],\n });\n } else {\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n };\n\n // triger when click on refresh btn\n useEffect(() => {\n if (resetCreativeProjectFilters) {\n setCallGraphApi(true);\n getMonthsDropwonOptions(true);\n setResetCreativeProjectFilters(false);\n }\n }, [resetCreativeProjectFilters]);\n\n // get table info - triger at 1st time and when delete the asin\n useEffect(() => {\n if (multiSelectedValues?.months?.length || isSelectProjectDropdownOption) {\n setIsTableLoading({ loader: true, type: 'table' });\n getCreativeProjectTableInfo(\n id,\n params?.sub === 'seller' ? null : selectedVendorReporting,\n params?.sub || 'seller',\n multiSelectedValues,\n 1,\n paginationChecksum,\n multiSelectedValues.projects.map((element) => {\n if (element.value !== 'all') return element.asin_checksum;\n return null;\n }), // asin\n ).then((res) => {\n if (res?.status === 200) {\n const total = [];\n for (const [key, value] of Object.entries(res?.data?.project_view)) {\n total.push({ [key]: value.total });\n }\n setGetTotalOfTable(total);\n const counts = [];\n for (const [key, value] of Object.entries(res?.data?.asins_view)) {\n counts.push({ [key]: value.count });\n }\n setAsinCounts(counts);\n setPageNumber(1);\n setTableInfoDetails(res?.data);\n setIsLoading({ loader: false, type: 'page' });\n // setShowProjectAsinTable({ project_view: true, asins_view: false });\n } else {\n setGetTotalOfTable({});\n setAsinCounts();\n setTableInfoDetails([]);\n setIsLoading({ loader: false, type: 'page' });\n if (res?.status === 504)\n toast.error('Failed to fetch the data. Please try again.');\n }\n setIsTableLoading({ loader: false, type: 'table' });\n setIsSelectProjectDropdownOption(false);\n });\n }\n }, [isSelectProjectDropdownOption]);\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n setIsLoading({ loader: true, type: 'page' });\n setIsTableLoading({ loader: true, type: 'table' });\n getCreativeProjectTableInfo(\n id,\n params?.sub === 'seller' ? null : selectedVendorReporting,\n params?.sub || 'seller',\n multiSelectedValues,\n currentPage,\n paginationChecksum,\n multiSelectedValues.projects.map((element) => {\n if (element.value !== 'all') return element.asin_checksum;\n return null;\n }),\n ).then((res) => {\n if (res?.status === 200) {\n const counts = [];\n for (const [key, value] of Object.entries(res?.data?.asins_view)) {\n counts.push({ [key]: value.count });\n }\n setAsinCounts(counts);\n setPageNumber(currentPage);\n setTableInfoDetails(res?.data);\n setIsLoading({ loader: false, type: 'page' });\n setShowProjectAsinTable({ project_view: false, asins_view: true });\n } else {\n setAsinCounts();\n setTableInfoDetails([]);\n setIsLoading({ loader: false, type: 'page' });\n if (res?.status === 504)\n toast.error('Failed to fetch the data. Please try again.');\n }\n setIsTableLoading({ loader: false, type: 'table' });\n });\n };\n\n useEffect(() => {\n getMonthsDropwonOptions();\n }, [id]);\n\n // Remove asin and projectLabels from multiselected values if project is unselected from projects dropdown\n const removeAsinsonProjectChange = (asinChecksumParam) => {\n let multiSelectedValuesAsinTemp = multiSelectedValues?.asin?.length\n ? [...multiSelectedValues?.asin]\n : [];\n let multiSelectedValuesProjectLabelsTemp = multiSelectedValues\n ?.projectLabels?.length\n ? [...multiSelectedValues?.projectLabels]\n : [];\n multiSelectedValuesAsinTemp = multiSelectedValuesAsinTemp?.filter(\n (op) => op?.split('-')?.[1] !== asinChecksumParam,\n );\n multiSelectedValuesProjectLabelsTemp =\n multiSelectedValuesProjectLabelsTemp?.filter(\n (op) => op !== asinChecksumParam,\n );\n setMultiSelectedValues((prevState) => {\n return {\n ...prevState,\n asin: multiSelectedValuesAsinTemp,\n projectLabels: multiSelectedValuesProjectLabelsTemp,\n };\n });\n };\n\n // Trigger when changed value of any dropdown\n const handleMultiSelectChange = (event, type, action) => {\n if (type === 'projects' && action.action === 'deselect-option') {\n removeAsinsonProjectChange(action?.option?.asin_checksum);\n }\n\n if (type === 'project_type' || type === 'marketplaces') {\n const projectsBasedOnMarketplaces = [];\n if (\n action.option?.value === 'all' &&\n action.name === type &&\n action.action === 'deselect-option'\n ) {\n for (const item of getProjectsFilter?.projects) {\n for (const month of multiSelectedValues?.months) {\n if (item.month === month.value) {\n if (\n item?.[\n action.name === 'marketplaces'\n ? 'marketplace_id'\n : action.name\n ] === event?.[0]?.value\n ) {\n projectsBasedOnMarketplaces.push(item);\n }\n }\n }\n }\n } else {\n for (const project of globalFiltersOptions?.projects) {\n if (\n action.option?.value === 'all' &&\n action.name === type &&\n action.action === 'select-option'\n ) {\n projectsBasedOnMarketplaces.push(project);\n } else {\n for (const value of event) {\n if (\n value?.value ===\n project?.[\n action.name === 'marketplaces'\n ? 'marketplace_id'\n : action.name\n ]\n ) {\n projectsBasedOnMarketplaces.push(project);\n }\n }\n }\n }\n }\n setGetProjectsFilter({ projects: projectsBasedOnMarketplaces });\n setMultiSelectedValues((prevState) => {\n return {\n ...prevState,\n asin: [],\n projectLabels: [],\n projects: [projectsBasedOnMarketplaces?.[0]],\n };\n });\n }\n checkProjectList(globalFiltersOptions?.projects);\n };\n\n const handleMonthFilterOnMenuClose = () => {\n const months = multiSelectedValues?.months;\n getCreativeDataOnMonths({ months }, getMonthsList);\n };\n\n return (\n <>\n {/* render filters */}\n {/* {getMonthsList?.length ? ( */}\n 0}\n isDropDownDisabled={\n isLoading?.loader || isTableLoading?.loader || isLoadingGraph?.loader\n }\n selectedAccountType={selectedAccountType}\n globalFiltersOptions={globalFiltersOptions}\n multiSelectedValues={multiSelectedValues}\n setMultiSelectedValues={setMultiSelectedValues}\n selectedVendorReporting={selectedVendorReporting}\n setSelectedVendorReporting={setSelectedVendorReporting}\n handleMultiSelectChange={handleMultiSelectChange}\n getProjectsFilter={getProjectsFilter}\n handleApplyOnClick={handleApplyOnClick}\n displayAccountTypeFilter={displayAccountTypeFilter}\n handleMonthFilterOnMenuClose={handleMonthFilterOnMenuClose}\n />\n {/* ) : null} */}\n <>\n {isLoading.loader ? (\n \n \n \n ) : (\n <>\n {getMonthsList?.length ? (\n <>\n {/* render performance tab */}\n \n\n {/* render project and asin table */}\n \n {isTableLoading?.loader ? (\n \n ) : (\n \n )}\n \n \n ) : (\n // project upload functionality\n <>\n
    \n \n
    \n {hideUploadCreativeProjectCTA ? null : allowedToUploadDeleteProject ||\n assignedBGSManager ||\n loggedInRole === 'BGS Admin' ? (\n \n ) : null}\n \n )}\n \n )}\n \n \n );\n}\n\nCreativeProjectContainer.defaultProps = {\n assignedBGSManager: false,\n resetCreativeProjectFilters: false,\n\n id: '',\n loggedInRole: '',\n\n selectedAccountType: {},\n\n setResetCreativeProjectFilters: () => {},\n setShowCreativeUploadScreen: () => {},\n setIsDisabledRefreshBtn: () => {},\n displayAccountTypeFilter: () => {},\n};\n\nCreativeProjectContainer.propTypes = {\n assignedBGSManager: bool,\n resetCreativeProjectFilters: bool,\n\n id: string,\n loggedInRole: string,\n\n selectedAccountType: shape({}),\n\n setShowCreativeUploadScreen: func,\n setResetCreativeProjectFilters: func,\n setIsDisabledRefreshBtn: func,\n displayAccountTypeFilter: func,\n};\n","import dayjs from 'dayjs';\n\nconst BindSalesGraphResponseData = (response) => {\n const tempData = [];\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.report_date)\n : response?.daily_facts?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n if (response?.daily_facts?.previous?.length) {\n // filterout previous data in one temporary object.\n response.daily_facts.previous.forEach((item, index) => {\n const previousDate = dayjs(item?.report_date).format('MMM D YYYY');\n tempData.push({\n revenueTotalPrevious: item.revenue,\n revenueOrganicPrevious: item.revenue_organic,\n revenuePpcPrevious: item.revenue_ppc,\n revenueDspPrevious: item.revenue_dsp,\n unitsSoldPrevious: item.units_sold,\n trafficPrevious: item.traffic,\n conversionPrevious: item.conversion,\n // ad spend, tacos starts\n adSpendTotalPrevious: item?.ad_spend_total,\n adSpendPpcPrevious: item?.sponsored_ad_spend,\n adSpendDspPrevious: item?.dsp_spends,\n tacosPrevious: item?.tacos,\n // ad spend, tacos ends\n adSpendPrevious: item.sponsored_ad_spend,\n previousDate,\n previousEndDate: nextReportDate(\n index,\n response?.daily_facts?.previous,\n 'previous',\n ),\n\n revenueTotalPreviousLabel:\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00',\n revenueOrganicPreviousLabel:\n item.revenue_organic !== null\n ? item.revenue_organic.toFixed(2)\n : '0.00',\n revenuePpcPreviousLabel:\n item.revenue_ppc !== null ? item.revenue_ppc.toFixed(2) : '0.00',\n revenueDspPreviousLabel:\n item.revenue_dsp !== null ? item.revenue_dsp.toFixed(2) : '0.00',\n unitsSoldPreviousLabel:\n item.units_sold !== null ? item.units_sold.toFixed(0) : '0',\n trafficPreviousLabel:\n item.traffic !== null ? item.traffic.toFixed(0) : '0',\n conversionPreviousLabel:\n item.conversion !== null ? item.conversion.toFixed(2) : '0',\n // ad spend, tacos starts\n adSpendTotalPreviousLabel:\n item?.ad_spend_total !== null\n ? item?.ad_spend_total?.toFixed(2)\n : '0.00',\n adSpendPpcPreviousLabel:\n item.sponsored_ad_spend !== null\n ? item?.sponsored_ad_spend?.toFixed(2)\n : '0.00',\n adSpendDspPreviousLabel:\n item.dsp_spends !== null ? item?.dsp_spends?.toFixed(2) : '0.00',\n tacosPreviousLabel:\n item?.tacos !== null ? item?.tacos?.toFixed(2) : '0',\n // ad spend, tacos ends\n adSpendPreviousLabel:\n item.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend.toFixed(2)\n : '0',\n });\n });\n }\n\n // filterout current data in one temporary object.\n if (response?.daily_facts?.current?.length) {\n response.daily_facts.current.forEach((item, index) => {\n const currentReportDate = dayjs(item?.report_date).format('MMM D YYYY');\n let indexNumber = index;\n\n // add the current data at same index of prevoius in temporary object\n if (\n response.daily_facts.previous &&\n index < response.daily_facts.previous.length\n ) {\n tempData[index].date = currentReportDate;\n tempData[index].revenueTotalCurrent = item.revenue;\n tempData[index].revenueOrganicCurrent = item.revenue_organic;\n tempData[index].revenuePpcCurrent = item.revenue_ppc;\n tempData[index].revenueDspCurrent = item.revenue_dsp;\n tempData[index].unitsSoldCurrent = item.units_sold;\n tempData[index].trafficCurrent = item.traffic;\n tempData[index].conversionCurrent = item.conversion;\n // ad spend, tacos starts\n tempData[index].adSpendTotalCurrent = item?.ad_spend_total;\n tempData[index].adSpendPpcCurrent = item?.sponsored_ad_spend;\n tempData[index].adSpendDspCurrent = item?.dsp_spends;\n tempData[index].tacosCurrent = item?.tacos;\n // ad spend, tacos ends\n tempData[index].adSpendCurrent = item.sponsored_ad_spend;\n tempData[index].endDate = nextReportDate(\n index,\n response?.daily_facts?.current,\n 'current',\n );\n\n tempData[index].revenueTotalCurrentLabel =\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00';\n tempData[index].revenueOrganicCurrentLabel =\n item.revenue_organic !== null\n ? item.revenue_organic.toFixed(2)\n : '0.00';\n tempData[index].revenuePpcCurrentLabel =\n item.revenue_ppc !== null ? item.revenue_ppc.toFixed(2) : '0.00';\n tempData[index].revenueDspCurrentLabel =\n item.revenue_dsp !== null ? item.revenue_dsp.toFixed(2) : '0.00';\n tempData[index].unitsSoldCurrentLabel =\n item.units_sold !== null ? item.units_sold.toFixed(0) : '0';\n tempData[index].trafficCurrentLabel =\n item.traffic !== null ? item.traffic.toFixed(0) : '0';\n tempData[index].conversionCurrentLabel =\n item.conversion !== null ? item.conversion.toFixed(2) : '0';\n // ad spend, tacos starts\n tempData[index].adSpendTotalCurrentLabel =\n item?.ad_spend_total !== null\n ? item?.ad_spend_total?.toFixed(2)\n : '0.00';\n tempData[index].adSpendPpcCurrentLabel =\n item?.sponsored_ad_spend !== null\n ? item?.sponsored_ad_spend?.toFixed(2)\n : '0.00';\n tempData[index].adSpendDspCurrentLabel =\n item?.dsp_spends !== null ? item?.dsp_spends?.toFixed(2) : '0.00';\n tempData[index].tacosCurrentLabel =\n item?.tacos !== null ? item?.tacos?.toFixed(2) : '0';\n // ad spend, tacos ends\n tempData[index].adSpendCurrentLabel =\n item.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend.toFixed(2)\n : '0';\n\n // to add the dotted line. we have to check null matrix and add the dummy number like 8\n if (index > 0) {\n indexNumber = index - 1;\n } else {\n indexNumber = index;\n }\n tempData[indexNumber].revenueTotalDashLength =\n item.revenue === null ? 8 : null;\n tempData[indexNumber].revenueOrganicDashLength =\n item.revenue_organic === null ? 8 : null;\n tempData[indexNumber].revenuePpcDashLength =\n item.revenue_ppc === null ? 8 : null;\n tempData[indexNumber].revenueDspDashLength =\n item.revenue_dsp === null ? 8 : null;\n tempData[indexNumber].unitsSoldDashLength =\n item.units_sold === null ? 8 : null;\n tempData[indexNumber].trafficDashLength =\n item.traffic === null ? 8 : null;\n tempData[indexNumber].conversionDashLength =\n item.conversion === null ? 8 : null;\n // ad spend, tacos starts\n tempData[indexNumber].adSpendTotalDashLength =\n item?.ad_spend_total === null ? 8 : null;\n tempData[indexNumber].adSpendPpcDashLength =\n item?.sponsored_ad_spend === null ? 8 : null;\n tempData[indexNumber].adSpendDspDashLength =\n item?.dsp_spends === null ? 8 : null;\n tempData[indexNumber].tacosDashLength = item?.tacos === null ? 8 : null;\n // ad spend, tacos ends\n tempData[indexNumber].adSpendDashLength =\n item.sponsored_ad_spend === null ? 8 : null;\n } else {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previous value null and previous label 0\n tempData.push({\n revenueTotalCurrent: item.revenue,\n revenueOrganicCurrent: item.revenue_organic,\n revenuePpcCurrent: item.revenue_ppc,\n revenueDspCurrent: item.revenue_dsp,\n unitsSoldCurrent: item.units_sold,\n trafficCurrent: item.traffic,\n conversionCurrent: item.conversion,\n // ad spend, tacos starts\n adSpendTotalCurrent: item?.ad_spend_total,\n adSpendPpcCurrent: item?.sponsored_ad_spend,\n adSpendDspCurrent: item?.dsp_spends,\n tacosCurrent: item?.tacos,\n // ad spend, tacos ends\n adSpendCurrent: item.sponsored_ad_spend,\n date: currentReportDate,\n endDate: nextReportDate(\n index,\n response?.daily_facts?.current,\n 'current',\n ),\n\n revenueTotalPrevious: null,\n revenueOrganicPrevious: null,\n revenuePpcPrevious: null,\n revenueDspPrevious: null,\n unitsSoldPrevious: null,\n trafficPrevious: null,\n conversionPrevious: null,\n // ad spend, tacos starts\n adSpendTotalPrevious: null,\n adSpendPpcPrevious: null,\n adSpendDspPrevious: null,\n tacosPrevious: null,\n // ad spend, tacos ends\n adSpendPrevious: null,\n\n revenueTotalCurrentLabel:\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00',\n revenueOrganicCurrentLabel:\n item.revenue_organic !== null\n ? item.revenue_organic.toFixed(2)\n : '0.00',\n revenuePpcCurrentLabel:\n item.revenue_ppc !== null ? item.revenue_ppc.toFixed(2) : '0.00',\n revenueDspCurrentLabel:\n item.revenue_dsp !== null ? item.revenue_dsp.toFixed(2) : '0.00',\n unitsSoldCurrentLabel:\n item.units_sold !== null ? item.units_sold.toFixed(0) : '0',\n trafficCurrentLabel:\n item.traffic !== null ? item.traffic.toFixed(0) : '0',\n conversionCurrentLabel:\n item.conversion !== null ? item.conversion.toFixed(2) : '0',\n // ad spend, tacos starts\n adSpendTotalCurrentLabel:\n item?.ad_spend_total !== null\n ? item?.ad_spend_total?.toFixed(2)\n : '0.00',\n adSpendPpcCurrentLabel:\n item?.sponsored_ad_spend !== null\n ? item?.sponsored_ad_spend?.toFixed(2)\n : '0.00',\n adSpendDspCurrentLabel:\n item?.dsp_spends !== null ? item?.dsp_spends?.toFixed(2) : '0.00',\n tacosCurrentLabel:\n item?.tacos !== null ? item?.tacos?.toFixed(2) : '0',\n // ad spend, tacos ends\n adSpendCurrentLabel:\n item.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend.toFixed(2)\n : '0',\n\n revenueTotalPreviousLabel: '0.0',\n revenueOrganicPreviousLabel: '0.0',\n revenuePpcPreviousLabel: '0.0',\n revenueDspPreviousLabel: '0.0',\n unitsSoldPreviousLabel: '0',\n trafficPreviousLabel: '0',\n conversionPreviousLabel: '0',\n // ad spend, tacos starts\n adSpendTotalPreviousLabel: '0.0',\n adSpendPpcPreviousLabel: '0.0',\n adSpendDspPreviousLabel: '0.0',\n tacosPreviousLabel: '0',\n // ad spend, tacos ends\n adSpendPreviousLabel: '0',\n });\n }\n });\n }\n return tempData;\n};\n\nexport default BindSalesGraphResponseData;\n","import React from 'react';\n\nimport { bool, func, number, shape, string } from 'prop-types';\n\nimport { WhiteCard } from '../../../../../../common';\nimport { PARENT } from '../../../../../../constants';\n\nconst SellerASINPerformanceMobileView = ({\n index,\n isParentASINActive,\n formatNumber,\n asin,\n pdpLink,\n childBpName,\n revenue,\n revenueChange,\n revenuePercentChange,\n traffic,\n trafficChange,\n trafficPercentChange,\n units,\n unitsChange,\n unitsPercentChange,\n conversion,\n conversionChange,\n conversionPercentChange,\n currencySymbol,\n isAppliedCustom,\n productName,\n buyBox,\n buyBoxChange,\n buyBoxPercentChange,\n customerState,\n displayProductNameWithTooltip,\n}) => {\n return (\n \n
    \n
    \n
    \n {isParentASINActive ? 'Parent ASIN' : 'Child ASIN'}\n
    \n
    \n {isParentASINActive\n ? displayProductNameWithTooltip(asin, index, pdpLink, false, true)\n : asin}\n
    \n {customerState?.account_type === PARENT ? (\n
    \n {childBpName}\n
    \n ) : null}\n
    \n {!isParentASINActive ? (\n
    \n
    Product Name
    \n
    \n {displayProductNameWithTooltip(productName, index)}\n
    \n
    \n ) : null}\n\n
    \n
    Sales
    \n
    \n {revenue == null\n ? 'N/A'\n : formatNumber(\n revenue,\n isAppliedCustom ? null : revenueChange,\n isAppliedCustom ? null : revenuePercentChange,\n 2,\n currencySymbol,\n '',\n 'small-font mt-1',\n )}\n
    \n
    \n
    \n
    Traffic
    \n
    \n {traffic == null\n ? 'N/A'\n : formatNumber(\n traffic,\n isAppliedCustom ? null : trafficChange,\n isAppliedCustom ? null : trafficPercentChange,\n 0,\n '',\n '',\n 'small-font mt-1',\n )}\n
    \n
    \n
    \n
    units
    \n
    \n {units == null\n ? 'N/A'\n : formatNumber(\n units,\n isAppliedCustom ? null : unitsChange,\n isAppliedCustom ? null : unitsPercentChange,\n 0,\n '',\n '',\n 'small-font mt-1',\n )}\n
    \n
    \n
    \n
    Conversion
    \n
    \n {conversion == null\n ? 'N/A'\n : formatNumber(\n conversion,\n isAppliedCustom ? null : conversionChange,\n isAppliedCustom ? null : conversionPercentChange,\n 0,\n '',\n '%',\n 'small-font mt-1',\n )}\n
    \n
    \n
    \n
    Buy Box
    \n
    \n {buyBox == null\n ? 'N/A'\n : formatNumber(\n buyBox,\n isAppliedCustom ? null : buyBoxChange,\n isAppliedCustom ? null : buyBoxPercentChange,\n 0,\n '',\n '%',\n 'small-font mt-1',\n )}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default SellerASINPerformanceMobileView;\n\nSellerASINPerformanceMobileView.defaultProps = {\n index: '',\n formatNumber: () => {},\n asin: '',\n pdpLink: '',\n childBpName: '',\n currencySymbol: null,\n revenue: null,\n revenueChange: null,\n revenuePercentChange: null,\n traffic: null,\n trafficChange: null,\n trafficPercentChange: null,\n units: null,\n unitsChange: null,\n unitsPercentChange: null,\n conversion: null,\n conversionChange: null,\n conversionPercentChange: null,\n isAppliedCustom: false,\n customerState: {},\n productName: '',\n buyBox: null,\n buyBoxChange: null,\n buyBoxPercentChange: null,\n displayProductNameWithTooltip: () => {},\n};\n\nSellerASINPerformanceMobileView.propTypes = {\n index: number,\n formatNumber: func,\n asin: string,\n pdpLink: string,\n childBpName: string,\n currencySymbol: string,\n revenue: number,\n revenueChange: number,\n revenuePercentChange: number,\n traffic: number,\n trafficChange: number,\n trafficPercentChange: number,\n units: number,\n unitsChange: number,\n unitsPercentChange: number,\n conversion: number,\n conversionChange: number,\n conversionPercentChange: number,\n isParentASINActive: bool.isRequired,\n isAppliedCustom: bool,\n customerState: shape({}),\n productName: string,\n buyBox: number,\n buyBoxChange: number,\n buyBoxPercentChange: number,\n displayProductNameWithTooltip: func,\n};\n","import React from 'react';\n\nimport { bool, func, number, shape, string } from 'prop-types';\n\nimport { WhiteCard } from '../../../../../../common';\nimport { ORDEREDREVENUE, SHIPPEDCOGS } from '../../../../../../constants';\n\nconst VendorASINPerformanceMobileView = ({\n index,\n metricsData,\n metricsType,\n formatNumber,\n currencySymbol,\n isAppliedCustom,\n customerState,\n displayProductNameWithTooltip,\n}) => {\n let item = {};\n if (metricsType === ORDEREDREVENUE) {\n item = {\n currencyLabel: 'Ordered Revenue',\n currencyValue: metricsData?.current_ordered_revenue,\n currencyChange: metricsData?.ordered_revenue_change,\n currencyPercentChange: metricsData?.ordered_revenue_percent_change,\n\n unitLabel: 'Ordered Units',\n unitValue: metricsData?.current_ordered_unit,\n unitChange: metricsData?.ordered_units_change,\n unitPercentChange: metricsData?.ordered_units_percent_change,\n };\n } else if (metricsType === SHIPPEDCOGS) {\n item = {\n currencyLabel: 'Shipped COGS',\n currencyValue: metricsData?.current_shipped_cogs,\n currencyChange: metricsData?.shipped_cogs_change,\n currencyPercentChange: metricsData?.shipped_cogs_percent_change,\n\n unitLabel: 'Shipped Units',\n unitValue: metricsData?.current_shipped_unit,\n unitChange: metricsData?.shipped_unit_change,\n unitPercentChange: metricsData?.shipped_unit_percent_change,\n };\n }\n\n return (\n \n
    \n
    \n
    ASIN
    \n
    {metricsData?.asin}
    \n {customerState?.account_type === 'parent' ? (\n
    \n {metricsData?.bp_name}\n
    \n ) : null}\n
    \n\n
    \n
    Product Name
    \n
    \n {displayProductNameWithTooltip(metricsData?.product_name, index)}\n
    \n
    \n\n
    \n
    {item?.currencyLabel}
    \n
    \n {item?.currencyValue === null\n ? 'N/A'\n : formatNumber(\n item?.currencyValue,\n isAppliedCustom ? null : item?.currencyChange,\n isAppliedCustom ? null : item?.currencyPercentChange,\n 2,\n currencySymbol,\n '',\n 'small-font mt-1',\n )}\n
    \n
    \n\n
    \n
    Glance Views
    \n
    \n {metricsData?.current_glance_view === null\n ? 'N/A'\n : formatNumber(\n metricsData?.current_glance_view,\n isAppliedCustom ? null : metricsData?.glance_views_change,\n isAppliedCustom\n ? null\n : metricsData?.glance_views_percent_change,\n 0,\n '',\n '',\n 'small-font mt-1',\n )}\n
    \n
    \n\n
    \n
    {item?.unitLabel}
    \n
    \n {item?.unitValue === null\n ? 'N/A'\n : formatNumber(\n item?.unitValue,\n isAppliedCustom ? null : item?.unitChange,\n isAppliedCustom ? null : item?.unitPercentChange,\n 0,\n '',\n '',\n 'small-font mt-1',\n )}\n
    \n
    \n
    \n
    Conversion Rate
    \n
    \n {metricsData?.current_conversion === null\n ? 'N/A'\n : formatNumber(\n metricsData?.current_conversion,\n isAppliedCustom ? null : metricsData?.conversion_change,\n isAppliedCustom\n ? null\n : metricsData?.conversion_percent_change,\n 2,\n '',\n '%',\n 'small-font mt-1',\n )}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default VendorASINPerformanceMobileView;\n\nVendorASINPerformanceMobileView.defaultProps = {\n formatNumber: () => {},\n asin: '',\n metricsType: '',\n index: '',\n currencySymbol: null,\n isAppliedCustom: false,\n customerState: {},\n metricsData: {},\n displayProductNameWithTooltip: () => {},\n};\n\nVendorASINPerformanceMobileView.propTypes = {\n index: number,\n metricsType: string,\n formatNumber: func,\n asin: string,\n currencySymbol: string,\n isAppliedCustom: bool,\n customerState: shape({}),\n metricsData: shape({}),\n displayProductNameWithTooltip: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, {\n Fragment,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, number, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport SellerASINPerformanceMobileView from './SellerASINPerformanceMobileView';\nimport VendorASINPerformanceMobileView from './VendorASINPerformanceMobileView';\nimport useValueWithChangeAndPercent from '../../../../../../hooks/useValueWithChangeAndPercent';\nimport Theme from '../../../../../../theme/Theme';\nimport { Icon } from '../../../../../../theme/Global';\nimport { getASINPerformanceData } from '../../../../../../api';\nimport {\n CommonPagination,\n DesktopTable,\n GrayMessageBar,\n NoData,\n PageLoader,\n ToggleButton,\n ViewData,\n} from '../../../../../../common';\nimport {\n ASIN,\n CUSTOM,\n ORDEREDREVENUE,\n PARENT,\n SELLERSMALL,\n SHIPPEDCOGS,\n VENDORSMALL,\n asinTabOptions,\n childASINTableheader,\n parentASINTableheader,\n vendorOrderRevenueASINTableheader,\n vendorShippedCogsASINTableheader,\n} from '../../../../../../constants';\n\nconst ASINPerformance = ({\n selectedPeriod,\n customDate,\n isSelectCustom,\n customerId,\n marketplace,\n currencySymbol,\n selectedChildBrand,\n selectedAccountType,\n metricsType = '',\n isAsinApiCallCustom,\n}) => {\n const isTablet = useMediaQuery({ minWidth: 768 });\n const isExtraLargeDesktop = useMediaQuery({ minWidth: 1600 });\n const mounted = useRef(false);\n\n // PDV-8037 - ASIN TABLE on Sales Performance Tab: Add PDP Link\n // PARENT, CHILD, STANDALONE ASIN should be link to their respective Amazon PDP (Product Detail Page - https://www.amazon.com/dp/(ASIN)\n const baseURLForPdpLink = 'https://www.amazon.com/dp/';\n\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in ASIN performance\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const salesAsinMessage =\n selectedAccountType === SELLERSMALL\n ? dynamicMessages?.sales_performance_seller_asin?.placeholder\n : selectedAccountType === VENDORSMALL\n ? dynamicMessages?.sales_performance_vendor_asin?.placeholder\n : null;\n\n const customerState = useSelector((state) => state.customerState.data);\n const [activeASINTab, setActiveASINTab] = useState('parent_asin');\n const [asinLoader, setASINLoader] = useState(false);\n const [asinPerformanceData, setAsinPerformanceData] = useState([]);\n const [asinPerformanceFlag, setASINPerformanceFlag] = useState(true);\n const [asinPerformanceCount, setASINPerformanceCount] = useState(null);\n const [asinPerformancePageNumber, setASINPerformancePageNumber] = useState(1);\n const [downloadReportLoader, setDownloadReportLoader] = useState(false);\n const isParentASINActive = activeASINTab === 'parent_asin';\n const isAppliedCustom = selectedPeriod?.value === CUSTOM && isSelectCustom;\n\n const [asinOrderByKey, setASINOrderByKey] = useState(() => {\n return selectedAccountType === SELLERSMALL\n ? 'current_revenue'\n : metricsType === ORDEREDREVENUE\n ? 'current_ordered_revenue'\n : 'current_shipped_cogs';\n });\n\n useEffect(() => {\n mounted.current = true;\n if (selectedAccountType === VENDORSMALL && metricsType === ORDEREDREVENUE)\n setASINOrderByKey('current_ordered_revenue');\n else if (selectedAccountType === VENDORSMALL && metricsType === SHIPPEDCOGS)\n setASINOrderByKey('current_shipped_cogs');\n return () => {\n mounted.current = false;\n };\n }, [metricsType, selectedAccountType]);\n\n const getPerformanceASINData = useCallback(\n (\n asinType,\n orderKey,\n orderFlag,\n selectedMarketPlace,\n childBrand,\n vendorMetricsType,\n start,\n end,\n pagenumber,\n downloadReport,\n ) => {\n setASINLoader(true);\n setAsinPerformanceData([]);\n setASINPerformanceCount(0);\n getASINPerformanceData(\n customerId,\n selectedMarketPlace,\n childBrand,\n pagenumber,\n orderKey,\n orderFlag,\n asinType,\n selectedPeriod.value,\n start,\n end,\n selectedAccountType,\n vendorMetricsType,\n downloadReport,\n )\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setAsinPerformanceData(res.data?.results);\n setASINPerformanceCount(res.data?.count || 0);\n setASINLoader(false);\n }\n setASINLoader(false);\n }\n })\n .catch(() => {\n setASINPerformanceCount(0);\n setAsinPerformanceData([]);\n setASINLoader(false);\n });\n },\n [customerId, selectedAccountType, selectedPeriod],\n );\n\n // called if custom date is not selected\n useEffect(() => {\n mounted.current = true;\n if (!isAppliedCustom && marketplace) {\n setASINPerformancePageNumber(1);\n getPerformanceASINData(\n activeASINTab,\n asinOrderByKey,\n asinPerformanceFlag,\n marketplace,\n selectedChildBrand,\n metricsType,\n );\n }\n\n return () => {\n mounted.current = false;\n };\n }, [\n activeASINTab,\n asinOrderByKey,\n asinPerformanceFlag,\n getPerformanceASINData,\n isAppliedCustom,\n isSelectCustom,\n marketplace,\n selectedPeriod,\n selectedChildBrand,\n ]);\n\n // called if custom date is selected\n useEffect(() => {\n mounted.current = true;\n if (isAsinApiCallCustom || (isAppliedCustom && marketplace)) {\n const localCustomDate = [];\n\n // only for vendor account type\n if (selectedAccountType !== SELLERSMALL) {\n // PDV-9198 - seller have T-2 logic and Vendor have T-3 logic\n // so if T-2 date is selected for seller and switch to vendor then its should be T-3.\n // PDV-9198 - START //\n\n const localMaxDate = new Date();\n localMaxDate.setDate(localMaxDate.getDate() - 3);\n\n // set the start date\n localCustomDate.push(\n customDate[0]?.startDate > localMaxDate\n ? localMaxDate\n : customDate[0]?.startDate,\n );\n\n // set the end date\n localCustomDate.push(\n customDate[0]?.endDate > localMaxDate\n ? localMaxDate\n : customDate[0]?.endDate,\n );\n } else {\n // for seller account type\n localCustomDate.push(customDate[0]?.startDate);\n localCustomDate.push(customDate[0]?.endDate);\n }\n // PDV-9198 - END //\n\n setASINPerformancePageNumber(1);\n getPerformanceASINData(\n activeASINTab,\n asinOrderByKey,\n asinPerformanceFlag,\n marketplace,\n selectedChildBrand,\n metricsType,\n dayjs(localCustomDate[0]).format('DD-MM-YYYY'),\n dayjs(localCustomDate[1]).format('DD-MM-YYYY'),\n 1,\n );\n }\n return () => {\n mounted.current = false;\n };\n }, [\n isAsinApiCallCustom,\n activeASINTab,\n asinOrderByKey,\n asinPerformanceFlag,\n getPerformanceASINData,\n isAppliedCustom,\n isSelectCustom,\n marketplace,\n selectedPeriod,\n selectedChildBrand,\n ]);\n\n const onGetPerformanceASINData = (value) => {\n getPerformanceASINData(\n activeASINTab,\n asinOrderByKey,\n asinPerformanceFlag,\n marketplace,\n selectedChildBrand,\n metricsType,\n dayjs(customDate[0]?.startDate).format('DD-MM-YYYY'),\n dayjs(customDate[0]?.endDate).format('DD-MM-YYYY'),\n value,\n );\n };\n\n const showASINToolTipContent = `\n
      \n
    • Absolute Change = Recent Period Value - Previous Period Value
    • \n
    • \n % Change = [(Recent Period Value - Previous Period Values)/
      Previous\n Period Value] x 100\n
    • \n
    \n `;\n\n const handleDownloadReportEvents = () => {\n setDownloadReportLoader(true);\n\n getASINPerformanceData(\n customerId,\n marketplace,\n selectedChildBrand,\n 1,\n asinOrderByKey,\n asinPerformanceFlag,\n activeASINTab,\n selectedPeriod.value,\n dayjs(customDate[0]?.startDate).format('DD-MM-YYYY'),\n dayjs(customDate[0]?.endDate).format('DD-MM-YYYY'),\n selectedAccountType,\n metricsType,\n true,\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink, '_blank');\n }\n setDownloadReportLoader(false);\n });\n };\n\n // display download report button\n const displayDownloadReportButton = () => {\n return (\n {\n handleDownloadReportEvents();\n }}\n style={{ maxWidth: '150px' }}\n >\n {downloadReportLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n \n );\n };\n\n const renderASINTabs = () => {\n return (\n \n
    \n
    \n

    \n ASIN Performance\n

    \n \n \n \n \n
    \n
    \n
    \n
      \n
    • \n {selectedAccountType === SELLERSMALL ? (\n \n
      \n
        \n {asinTabOptions.map((item) => {\n return (\n \n {\n setASINOrderByKey('current_revenue');\n setASINPerformanceFlag(true);\n setActiveASINTab(item.value);\n }}\n onChange={() => {}}\n />\n \n \n );\n })}\n
      \n
      \n
      \n ) : null}\n
    • \n
    • \n {displayDownloadReportButton()}\n
    • \n
    \n
    \n
    \n
    {' '}\n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in ASIN performance */}\n {salesAsinMessage ? (\n \n ) : null}\n
    \n );\n };\n\n const handleSortFilters = (value) => {\n if (value === asinOrderByKey) {\n setASINPerformanceFlag(!asinPerformanceFlag);\n } else {\n setASINPerformanceFlag(true);\n setASINOrderByKey(value);\n }\n };\n\n // asin table soring keys\n const tableHeaderKeysForSorting = [\n 'parent_asin',\n 'child_asin',\n 'sku',\n 'product_name',\n 'shipped_cogs_asin',\n 'ordered_revenue_asin',\n ];\n\n const renderTableHeader = () => {\n let header = [];\n if (selectedAccountType === SELLERSMALL) {\n header = isParentASINActive\n ? parentASINTableheader\n : childASINTableheader;\n } else {\n header =\n metricsType === ORDEREDREVENUE\n ? vendorOrderRevenueASINTableheader\n : vendorShippedCogsASINTableheader;\n }\n return (\n \n \n {header.map((item) => {\n return (\n \n {\n if (!tableHeaderKeysForSorting?.includes(item?.key)) {\n handleSortFilters(item.key);\n }\n }}\n aria-hidden=\"true\"\n >\n {item.key === ASIN\n ? isParentASINActive\n ? 'Parent Asin'\n : 'Child Asin'\n : item.label}\n {!tableHeaderKeysForSorting?.includes(item?.key) && (\n \n )}\n {item?.key === 'current_buy_box_percentage' ? (\n \n \n \n \n ) : null}\n \n \n );\n })}\n \n \n );\n };\n\n // display react tooltip\n const displayReactTooltip = (id, place) => {\n return (\n \n );\n };\n\n // display product name with tooltip\n const displayProductNameWithTooltip = (\n productName,\n index,\n link,\n showTooltip,\n isAsin,\n ) => {\n const textLimit = isExtraLargeDesktop ? 70 : isTablet ? 50 : 30;\n return (\n \n ${productName}`}\n data-for={`product${index}`}\n >\n {productName?.length > textLimit\n ? `${productName?.slice(0, textLimit)}...`\n : productName}\n\n {showTooltip ? displayReactTooltip(`product${index}`, 'top') : null}\n \n \n \n \n \n );\n };\n\n // display seller asin table\n const renderSellerAsinTable = (item, index, formatNumber) => {\n const pdpLink = `${baseURLForPdpLink}${item?.asin}`;\n return (\n \n \n {isParentASINActive\n ? displayProductNameWithTooltip(\n item?.asin,\n index,\n pdpLink,\n false,\n true,\n )\n : item?.asin}\n {customerState?.account_type === PARENT ? (\n
    \n {item?.bp_name || ''}\n
    \n ) : null}\n \n {!isParentASINActive ? (\n \n {displayProductNameWithTooltip(\n item?.product_name,\n index,\n pdpLink,\n true,\n false,\n )}\n \n ) : null}\n\n \n
    \n {item?.current_revenue === null\n ? 'N/A'\n : formatNumber(\n item?.current_revenue,\n isAppliedCustom ? null : item?.revenue_change,\n isAppliedCustom ? null : item?.revenue_percent_change,\n 2,\n isSelectCustom,\n currencySymbol,\n '',\n 'small-font mt-1',\n )}\n
    \n \n \n
    \n {item?.current_traffic === null\n ? 'N/A'\n : formatNumber(\n item?.current_traffic,\n isAppliedCustom ? null : item?.traffic_change,\n isAppliedCustom ? null : item?.traffic_percent_change,\n 0,\n isSelectCustom,\n '',\n '',\n 'small-font mt-1',\n )}\n
    \n \n \n
    \n {item?.current_units_sold === null\n ? 'N/A'\n : formatNumber(\n item?.current_units_sold,\n isAppliedCustom ? null : item?.units_sold_change,\n isAppliedCustom ? null : item?.units_sold_percent_change,\n 0,\n isSelectCustom,\n '',\n '',\n 'small-font mt-1',\n )}\n
    \n \n \n
    \n {item?.current_conversion === null\n ? 'N/A'\n : formatNumber(\n item?.current_conversion,\n isAppliedCustom ? null : item?.conversion_change,\n isAppliedCustom ? null : item?.conversion_percent_change,\n 2,\n isSelectCustom,\n '',\n '%',\n 'small-font mt-1',\n )}\n
    \n \n \n
    \n {item?.current_buy_box_percentage === null\n ? 'N/A'\n : formatNumber(\n item?.current_buy_box_percentage,\n isAppliedCustom ? null : item?.buy_box_change,\n isAppliedCustom ? null : item?.buy_box_percentage_change,\n 2,\n isSelectCustom,\n '',\n '%',\n 'small-font mt-1',\n )}\n
    \n \n \n );\n };\n\n const renderVendorAsinTable = (itemData, index, formatNumber) => {\n const pdpLink = `${baseURLForPdpLink}${itemData?.asin}`;\n let item = {};\n if (metricsType === ORDEREDREVENUE) {\n item = {\n currencyValue: itemData?.current_ordered_revenue,\n currencyChange: itemData?.ordered_revenue_change,\n currencyPercentChange: itemData?.ordered_revenue_percent_change,\n\n unitValue: itemData?.current_ordered_unit,\n unitChange: itemData?.ordered_units_change,\n unitPercentChange: itemData?.ordered_units_percent_change,\n };\n } else if (metricsType === SHIPPEDCOGS) {\n item = {\n currencyValue: itemData?.current_shipped_cogs,\n currencyChange: itemData?.shipped_cogs_change,\n currencyPercentChange: itemData?.shipped_cogs_percent_change,\n\n unitValue: itemData?.current_shipped_unit,\n unitChange: itemData?.shipped_unit_change,\n unitPercentChange: itemData?.shipped_unit_percent_change,\n };\n }\n return (\n \n \n {itemData?.asin}\n {customerState?.account_type === PARENT ? (\n
    \n {itemData?.bp_name || ''}\n
    \n ) : null}\n \n\n \n {displayProductNameWithTooltip(\n itemData?.product_name,\n index,\n pdpLink,\n true,\n false,\n )}\n \n\n \n
    \n {item?.currencyValue === null\n ? 'N/A'\n : formatNumber(\n item?.currencyValue,\n isAppliedCustom ? null : item?.currencyChange,\n isAppliedCustom ? null : item?.currencyPercentChange,\n 2,\n isSelectCustom,\n currencySymbol,\n '',\n 'small-font mt-1',\n )}\n
    \n \n \n
    \n {itemData?.current_glance_view === null\n ? 'N/A'\n : formatNumber(\n itemData?.current_glance_view,\n isAppliedCustom ? null : itemData?.glance_views_change,\n isAppliedCustom\n ? null\n : itemData?.glance_views_percent_change,\n 0,\n isSelectCustom,\n '',\n '',\n 'small-font mt-1',\n )}\n
    \n \n \n
    \n {item?.unitValue === null\n ? 'N/A'\n : formatNumber(\n item?.unitValue,\n isAppliedCustom ? null : item?.unitChange,\n isAppliedCustom ? null : item?.unitPercentChange,\n 0,\n isSelectCustom,\n '',\n '',\n 'small-font mt-1',\n )}\n
    \n \n \n
    \n {itemData?.current_conversion === null\n ? 'N/A'\n : formatNumber(\n itemData?.current_conversion,\n isAppliedCustom ? null : itemData?.conversion_change,\n isAppliedCustom ? null : itemData?.conversion_percent_change,\n 2,\n isSelectCustom,\n '',\n '%',\n 'small-font mt-1',\n )}\n
    \n \n \n );\n };\n\n const renderDesktopView = (formatNumber) => {\n return (\n <>\n \n {renderTableHeader()}\n \n {asinPerformanceData?.length\n ? asinPerformanceData.map((item, index) => {\n return selectedAccountType === SELLERSMALL\n ? renderSellerAsinTable(item, index, formatNumber)\n : renderVendorAsinTable(item, index, formatNumber);\n })\n : null}\n \n \n \n );\n };\n\n return (\n
    \n
    \n {renderASINTabs()}\n {isTablet ? (\n renderDesktopView(useValueWithChangeAndPercent)\n ) : (\n <>\n {asinPerformanceData?.map((item, index) => {\n return (\n \n {selectedAccountType === SELLERSMALL ? (\n \n ) : (\n \n )}\n \n );\n })}\n \n )}\n\n {!asinLoader &&\n (!asinPerformanceData ||\n (asinPerformanceData && asinPerformanceData.length === 0)) ? (\n No ASIN Performance Data Found\n ) : null}\n\n {asinLoader ? (\n \n ) : null}\n\n {asinPerformanceCount > 10 ? (\n {\n setASINPerformancePageNumber(value);\n onGetPerformanceASINData(value);\n }}\n />\n ) : null}\n
    \n );\n};\n\nexport default ASINPerformance;\n\nASINPerformance.defaultProps = {\n isAsinApiCallCustom: 0,\n marketplace: '',\n selectedAccountType: '',\n metricsType: '',\n currencySymbol: null,\n selectedChildBrand: {},\n};\n\nASINPerformance.propTypes = {\n isAsinApiCallCustom: number,\n customerId: string.isRequired,\n marketplace: string,\n selectedAccountType: string,\n currencySymbol: string,\n metricsType: string,\n selectedChildBrand: shape({}),\n isSelectCustom: bool.isRequired,\n selectedPeriod: shape({}).isRequired,\n customDate: arrayOf(shape({})).isRequired,\n};\n","/* eslint-disable camelcase */\nimport React, { useEffect, useRef } from 'react';\n\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport { arrayOf, bool, shape, string } from 'prop-types';\n\nimport {\n ADSPEND,\n ADSPENDDSP,\n ADSPENDPPC,\n ADSPENDTOTAL,\n CONVERSION,\n CUSTOM,\n REVENUEDSP,\n REVENUEORGANIC,\n REVENUEPPC,\n REVENUETOTAL,\n TACOS,\n TRAFFIC,\n UNITSSOLD,\n salesGraphColorSet as colorSet,\n salesGraphTooltipNames as tooltipNames,\n} from '../../../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\n\nconst _ = require('lodash');\n\nexport default function SalePerformanceChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n isDashboard = false,\n groupBy,\n}) {\n const chart = useRef(null);\n\n useEffect(() => {\n const currencyAxisValue = [\n REVENUETOTAL,\n REVENUEPPC,\n REVENUEORGANIC,\n REVENUEDSP,\n ADSPENDTOTAL,\n ADSPENDPPC,\n ADSPENDDSP,\n ADSPEND,\n ];\n\n // function to generate complete tooltip html\n function generateToolTipHTML(tooltipValue, startDate, endDate) {\n let html = '';\n if (groupBy === 'weekly' || groupBy === 'monthly') {\n html = `
    \n From - ${startDate} To - ${endDate}\n
    \n ${tooltipValue}`;\n } else {\n html = tooltipValue;\n }\n\n return html;\n }\n\n // create value axis function\n function createValueAxis(axisColor) {\n const localValueAxis = chart.current.yAxes.push(\n new am4charts.ValueAxis(),\n );\n localValueAxis.renderer.grid.template.disabled = true;\n localValueAxis.cursorTooltipEnabled = false;\n localValueAxis.renderer.baseGrid.disabled = true;\n localValueAxis.numberFormatter = new am4core.NumberFormatter();\n localValueAxis.numberFormatter.numberFormat = `#.#a`;\n localValueAxis.extraMax = 0.005;\n localValueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n localValueAxis.numberFormatter.smallNumberPrefixes = [];\n localValueAxis.stroke = am4core.color(axisColor);\n localValueAxis.strokeOpacity = 0.5;\n return localValueAxis;\n }\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n \n
    \n \n `;\n\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (currencyAxisValue.includes(item)) {\n format = `${currencySymbol}#.#a`;\n } else if (item === UNITSSOLD || item === TRAFFIC) {\n format = `#.#a`;\n } else if (item === CONVERSION || item === TACOS) {\n format = `#.#'%'`;\n }\n return format;\n }\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 20;\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true; // disabled zoomout button\n\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n\n // create object of first value axis\n let valueAxis = createValueAxis();\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for generate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n const previousLabel = `${item}PreviousLabel`;\n const colorCode = colorSet[item];\n\n tooltipValue = `${tooltipValue} ${_.startCase(item)}`;\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n }\n } else if (item === TRAFFIC || item === UNITSSOLD) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n null,\n '#,###',\n )}`;\n }\n } else if (item === CONVERSION || item === TACOS) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n '%',\n null,\n )}`;\n }\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const previousValue = `${item}Previous`;\n const seriesName = `${item}Series`;\n const colorCode = colorSet[item];\n\n valueAxis = createValueAxis(colorCode);\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (index === 1) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n // series.tooltipHTML = `${weeklyDateRange} ${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = previousValue;\n series2.name = previousValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n // series2.tooltipHTML = `${weeklyDateRange}${tooltipValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n series2.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.previousDate,\n dateRange?.previousEndDate,\n );\n });\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (item === TRAFFIC || item === UNITSSOLD) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n } else if (item === CONVERSION || item === TACOS) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n null,\n '%',\n null,\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n valueAxis = createValueAxis(colorSet[item]);\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (index === 1 || index === 3) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = `${item}Current`;\n series.dataFields.dateX = 'date';\n series.name = `${item}Series`;\n series.strokeWidth = 2;\n series.stroke = am4core.color(colorSet[item]);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorSet[item]);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n\n return () => chart.current && chart.current.dispose();\n }, [\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n isDashboard,\n groupBy,\n ]);\n\n return
    ;\n}\n\nSalePerformanceChart.defaultProps = {\n isDashboard: false,\n chartData: [],\n currencySymbol: '',\n selectedMetrics: {},\n selectedDF: '',\n groupBy: '',\n};\n\nSalePerformanceChart.propTypes = {\n isDashboard: bool,\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n currencySymbol: string,\n selectedMetrics: shape({}),\n selectedDF: string,\n groupBy: string,\n};\n","/* eslint-disable camelcase */\n\nimport React, { useEffect, useRef } from 'react';\n\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport { arrayOf, bool, shape, string } from 'prop-types';\n\nimport {\n ADSPENDDSP,\n ADSPENDPPC,\n ADSPENDTOTAL,\n CONVERSION,\n REVENUEDSP,\n REVENUEPPC,\n REVENUETOTAL,\n TACOS,\n TRAFFIC,\n UNITSSOLD,\n salesGraphColorSet as colorSet,\n salesGraphTooltipNames as tooltipNames,\n} from '../../../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\n\nconst _ = require('lodash');\n\nfunction SalesPerformanceGoalsChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n isDashboard = false,\n groupBy,\n}) {\n const chart = useRef(null);\n useEffect(() => {\n const sameAxisValue = [\n REVENUETOTAL,\n REVENUEPPC,\n // 'revenueOrganic',\n REVENUEDSP,\n // 'adSpend',\n ];\n\n const percentageAxisValue = [TACOS, CONVERSION];\n\n // function to generate complete tooltip html\n function generateToolTipHTML(tooltipValue, startDate, endDate) {\n let html = '';\n if (groupBy === 'weekly' || groupBy === 'monthly') {\n html = `
    \n From - ${startDate} To - ${endDate}\n
    \n ${tooltipValue}`;\n } else {\n html = tooltipValue;\n }\n\n return html;\n }\n\n // create value axis function\n function createValueAxis() {\n const localValueAxis = chart.current.yAxes.push(\n new am4charts.ValueAxis(),\n );\n localValueAxis.renderer.grid.template.disabled = true;\n localValueAxis.cursorTooltipEnabled = false;\n localValueAxis.renderer.baseGrid.disabled = true;\n localValueAxis.numberFormatter = new am4core.NumberFormatter();\n localValueAxis.numberFormatter.numberFormat = `#.#a`;\n localValueAxis.extraMax = 0.005;\n localValueAxis.min = 0;\n localValueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n localValueAxis.numberFormatter.smallNumberPrefixes = [];\n return localValueAxis;\n }\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n \n `;\n\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (sameAxisValue.includes(item)) {\n format = `${currencySymbol}#.#a`;\n } else if (item === UNITSSOLD || item === TRAFFIC) {\n format = `#.#a`;\n } else if (item === CONVERSION || item === TACOS) {\n format = `#.#'%'`;\n } else if (item === ADSPENDTOTAL) {\n format = `${currencySymbol}#.#a`;\n }\n return format;\n }\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 20;\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true; // disabled zoomout button\n\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n\n // create object of first value axis\n const valueAxis = createValueAxis();\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n // user can select only two metrics when goals toggle is 'ON'\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n let valueAxis2;\n const snapToSeries = [];\n let tooltipValue = '';\n let firstAxis = null;\n\n // loop for generate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n const goalsLabel = `${item}GoalsLabel`;\n const colorCode = colorSet[item];\n\n tooltipValue = `${tooltipValue} ${_.startCase(item)}`;\n if (sameAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (\n item === ADSPENDTOTAL ||\n item === ADSPENDPPC ||\n item === ADSPENDDSP\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (percentageAxisValue?.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n '%',\n null,\n )}`;\n } else if (item === 'traffic') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '',\n null,\n )}`;\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n '',\n null,\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const goalsValue = `${item}Goals`;\n const seriesName = `${item}Series`;\n const colorCode = colorSet[item];\n\n if (index === 0) {\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (sameAxisValue.includes(item)) {\n firstAxis = 'currency';\n } else {\n firstAxis = 'other';\n }\n }\n if (index === 1) {\n if (sameAxisValue.includes(item)) {\n if (firstAxis === 'currency') {\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n } else {\n // create second value axis\n valueAxis2 = createValueAxis();\n series.yAxis = valueAxis2;\n series2.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n }\n } else {\n valueAxis2 = createValueAxis();\n series.yAxis = valueAxis2;\n series2.yAxis = valueAxis2;\n valueAxis2.renderer.minGridDistance = 40;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n }\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n // series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = goalsValue;\n series2.name = goalsValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n // series2.tooltipHTML = `${tooltipValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n // series2.propertyFields.strokeDasharray = dashLine;\n series2.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n\n let firstAxis = null;\n let secondAxis = null;\n let thirdAxis = null;\n let valueAxis2;\n let valueAxis3;\n let valueAxis4;\n\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n\n if (sameAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (item === TRAFFIC || item === UNITSSOLD) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n } else if (item === CONVERSION || item === TACOS) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n null,\n '%',\n null,\n )}`;\n } else if (\n item === ADSPENDTOTAL ||\n item === ADSPENDPPC ||\n item === ADSPENDDSP\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorSet[item],\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n if (index === 0) {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (sameAxisValue.includes(item)) {\n firstAxis = 'currency';\n } else {\n firstAxis = 'other';\n }\n } else if (index === 1) {\n if (sameAxisValue.includes(item)) {\n if (firstAxis === 'currency') {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'currency';\n }\n } else {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n }\n } else if (index === 2) {\n if (sameAxisValue.includes(item)) {\n if (firstAxis === 'currency') {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === 'currency') {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else {\n if (valueAxis3 === undefined) {\n valueAxis3 = createValueAxis();\n }\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'currency';\n }\n } else if (secondAxis === null) {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else {\n if (valueAxis3 === undefined) {\n valueAxis3 = createValueAxis();\n }\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'other';\n }\n } else if (index === 3) {\n if (sameAxisValue.includes(item)) {\n if (firstAxis === 'currency') {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === 'currency') {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (thirdAxis === 'currency') {\n if (valueAxis3 === undefined) {\n valueAxis3 = createValueAxis();\n }\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n } else {\n if (valueAxis4 === undefined) {\n valueAxis4 = createValueAxis();\n }\n series.yAxis = valueAxis4;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis4.renderer.opposite = true;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.labels.template.disabled = true;\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n }\n } else if (secondAxis === null) {\n if (valueAxis2 === undefined) {\n valueAxis2 = createValueAxis();\n }\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else if (thirdAxis === null) {\n if (valueAxis3 === undefined) {\n valueAxis3 = createValueAxis();\n }\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n thirdAxis = 'other';\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n } else {\n if (valueAxis4 === undefined) {\n valueAxis4 = createValueAxis();\n }\n series.yAxis = valueAxis4;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis4.renderer.opposite = true;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.labels.template.disabled = true;\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n }\n }\n\n series.dataFields.valueY = `${item}Current`;\n series.dataFields.dateX = 'date';\n series.name = `${item}Series`;\n series.strokeWidth = 2;\n // series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorSet[item]);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n 'location1',\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorSet[item]);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n return () => chart.current && chart.current.dispose();\n }, [\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n isDashboard,\n groupBy,\n ]);\n\n return
    ;\n}\n\nexport default SalesPerformanceGoalsChart;\n\nSalesPerformanceGoalsChart.defaultProps = {\n isDashboard: false,\n chartData: [],\n currencySymbol: '',\n selectedMetrics: {},\n selectedDF: '',\n groupBy: '',\n};\n\nSalesPerformanceGoalsChart.propTypes = {\n isDashboard: bool,\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n currencySymbol: string,\n selectedMetrics: shape({}),\n selectedDF: string,\n groupBy: string,\n};\n","/* eslint-disable jsx-a11y/label-has-for */\nimport React, { useState, useEffect, useRef, Fragment } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport { toast } from 'react-toastify';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { components } from 'react-select';\nimport {\n arrayOf,\n bool,\n func,\n instanceOf,\n number,\n shape,\n string,\n} from 'prop-types';\n\nimport ASINPerformance from './ASINPerformance';\nimport Theme from '../../../../../../theme/Theme';\nimport SalesPerformanceChart from './SalePerformanceChart';\nimport SalesPerformanceGoalsChart from './SalesPerformanceGoalsChart';\nimport useFormatNumber from '../../../../../../hooks/useFormatNumber';\nimport { ArrowUpIcon, ArrowDownIcon } from '../../../../../../theme/images';\nimport {\n WhiteCard,\n PageLoader,\n NoData,\n DropdownIndicator,\n ToggleButton,\n CardMetrics,\n CheckBox,\n DropDowns,\n ToggleSwitch,\n GrayMessageBar,\n MultipleDashedLineLabel,\n} from '../../../../../../common';\nimport {\n dateOptionsWithYear,\n metricsResponseKey,\n metricsTootlNames,\n noGraphDataMessage,\n performanceInsightMessage,\n revenuMetricsSubTypes,\n revenuSubTypeKeys,\n salesMetricsClasses,\n showMetricsTooltipForSales,\n adSpendMetricsSubTypesOptions,\n dailyWeeklyMonthlyOptions,\n SALEPERFORMANCE,\n SPONSOREDADSPEND,\n DSPSPEND,\n ADSPENDTOTAL,\n UNITSSOLD,\n TRAFFIC,\n CONVERSION,\n ADSPEND,\n TACOS,\n ADSPENDPPC,\n ADSPENDDSP,\n REVENUETOTAL,\n REVENUEPPC,\n REVENUEDSP,\n REVENUEORGANIC,\n CUSTOM,\n SELLERSMALL,\n} from '../../../../../../constants';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\n\nconst _ = require('lodash');\n\nexport default function SalesPerformancePanel({\n renderCustomDateSubLabel,\n selectedSalesMetrics,\n currencySymbol,\n setSelectedSalesMetrics,\n handleSalesDailyFact,\n isApiCall,\n selectedTimeFrame,\n state,\n handleGroupBy,\n groupBy,\n salesCurrentTotal,\n salesDifference,\n salesPreviousTotal,\n currency,\n salesGraphLoader,\n salesChartData,\n isAppliedCustom,\n id,\n marketplace,\n isMetricsDisabled,\n setIsDisabledTimeFrame,\n customDateError,\n daysDiff,\n currentDate,\n goalsMetricData,\n salesGoalsChartData,\n goalsToggle,\n setGoalsToggle,\n renderDataAvailableChildList,\n selectedChildBrand,\n isAsinApiCallCustom,\n selecteAdSpendSubType,\n setSelectedAdSpendSubType,\n}) {\n const { Option, SingleValue } = components;\n\n /* ********** PDV-7917 - Expose AMC and other Sections to BPs ********** */\n /* ********** PLEASE DO NOT REMOVE BELOW CODE. ********** */\n // const userInfo = useSelector((stateData) => stateData?.userState?.userInfo);\n // const customer = useSelector((stateData) => stateData.customerState.data);\n\n const [isRevenueDropDownOpen, setIsRevenueDropDownOpen] = useState(false);\n const [selectedRevenueSubType, setSelectedRevenueSubType] = useState({\n revenueTotal: true,\n revenuePpc: false,\n revenueDsp: false,\n });\n const [isAdSpendDropDownOpen, setIsAdSpendDropDownOpen] = useState(false);\n\n const dashboardDynamicError = useSelector(\n (newState) => newState.userState?.showDynamicMsg,\n );\n\n const shortTileName = (tileName) => {\n let tileNameTemp = tileName;\n if (\n window.screen.width < 1500 &&\n window.screen.width > 992 &&\n tileName?.length > 8\n ) {\n tileNameTemp = `${tileName?.substring(0, 8)}...`;\n }\n return tileNameTemp;\n };\n\n function useOutsideAlerter(ref, type) {\n useEffect(() => {\n function handleClickOutside(event) {\n if (ref.current && !ref.current.contains(event.target)) {\n if (type === 'revenue') {\n setIsRevenueDropDownOpen(false);\n } else {\n setIsAdSpendDropDownOpen(false);\n }\n }\n }\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [ref, type]);\n }\n\n const revenueRef = useRef(null);\n useOutsideAlerter(revenueRef, 'revenue');\n\n const adSpendRef = useRef(null);\n useOutsideAlerter(adSpendRef, ADSPEND);\n\n const filterOption = (props) => (\n \n );\n\n const singleFilterOption = (props) => (\n \n {props.data.label}\n\n
    \n {renderCustomDateSubLabel(props, 'sp')}\n
    \n
    \n );\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const bindValues = (value) => {\n const decimal = _.split(value, '.', 2);\n if (decimal[1] !== undefined) {\n return (\n \n {currencySymbol}\n {decimal[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n .{decimal[1].slice(0, 2)}\n \n );\n }\n return (\n \n {currencySymbol}\n {decimal[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n \n );\n };\n\n const setSalesMetricsClass = (name, classValue) => {\n let selectedClass = '';\n if (Object.prototype.hasOwnProperty.call(selectedSalesMetrics, name)) {\n selectedClass = `order-chart-box ${classValue} fix-height`;\n } else if (\n _.size(selectedSalesMetrics) === 4 ||\n (isMetricsDisabled[name] &&\n ![REVENUETOTAL, REVENUEORGANIC, REVENUEPPC, REVENUEDSP].includes(\n name,\n )) ||\n ([REVENUETOTAL, REVENUEORGANIC, REVENUEPPC, REVENUEDSP].includes(name) &&\n isMetricsDisabled.revenueTotal &&\n isMetricsDisabled.revenueOrganic &&\n isMetricsDisabled.revenuePpc &&\n isMetricsDisabled.revenueDsp)\n ) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else if (\n goalsToggle &&\n (_.size(selectedSalesMetrics) === 2 ||\n (isMetricsDisabled[name] &&\n ![\n REVENUETOTAL,\n REVENUEORGANIC,\n REVENUEPPC,\n REVENUEDSP,\n TACOS,\n ].includes(name)) ||\n ([REVENUETOTAL, REVENUEORGANIC, REVENUEPPC, REVENUEDSP, TACOS].includes(\n name,\n ) &&\n isMetricsDisabled.revenueTotal &&\n isMetricsDisabled.revenueOrganic &&\n isMetricsDisabled.revenuePpc &&\n isMetricsDisabled.revenueDsp))\n ) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n return selectedClass;\n };\n\n const setPerformanceMetricsClass = (name, classValue) => {\n let selectedClass = '';\n if (!salesCurrentTotal?.revenue && !salesPreviousTotal?.revenue) {\n selectedClass = `order-chart-box ${classValue} fix-height disabled`;\n } else if (\n Object.prototype.hasOwnProperty.call(selectedSalesMetrics, name)\n ) {\n selectedClass = `order-chart-box ${classValue} fix-height`;\n } else if (\n _.size(selectedSalesMetrics) === 4 ||\n (isMetricsDisabled[name] &&\n ![REVENUETOTAL, REVENUEORGANIC, REVENUEPPC, REVENUEDSP].includes(\n name,\n )) ||\n ([REVENUETOTAL, REVENUEORGANIC, REVENUEPPC, REVENUEDSP].includes(name) &&\n isMetricsDisabled.revenueTotal &&\n isMetricsDisabled.revenueOrganic &&\n isMetricsDisabled.revenuePpc &&\n isMetricsDisabled.revenueDsp) ||\n (goalsToggle && _.size(selectedSalesMetrics) === 2)\n ) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n return selectedClass;\n };\n\n const setBoxToggle = (name) => {\n // Below Commented this code beacuase PDV-6723\n // const localMetrics = selectedSalesMetrics;\n if (\n Object.prototype.hasOwnProperty.call(selectedSalesMetrics, name) &&\n _.size(selectedSalesMetrics) > 1\n ) {\n setSelectedSalesMetrics(_.omit(selectedSalesMetrics, [name]));\n\n // enable the time frame filter when we don't have a disabled selected metrics.\n // const commanElement = _.intersectionWith(\n // _.keys(localMetrics),\n // _.keys(_.pickBy(isMetricsDisabled)),\n // _.isEqual,\n // );\n\n // if (commanElement.length === 1 && name === commanElement[0]) {\n // setIsDisabledTimeFrame(false);\n // }\n } else if (_.size(selectedSalesMetrics) < 4) {\n if (\n _.size(_.assign(selectedSalesMetrics, { [name]: true })) === 2 &&\n goalsToggle\n ) {\n toast.info('Maximum two goals at a time');\n }\n setSelectedSalesMetrics(\n _.omit(_.assign(selectedSalesMetrics, { [name]: true })),\n );\n }\n };\n\n useEffect(() => {}, [selectedSalesMetrics]);\n\n // display goal target html\n const displayGoalTargetHTML = (sign, target, value) => {\n return (\n
    \n
    \n Target {sign === 'dollar' ? '$' : null}\n {value\n ?.toFixed(2)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n {sign === 'percentage' ? '%' : null}\n
    \n \n {target}\n
    \n
    \n );\n };\n\n const setRevenueMetricsToggle = (name) => {\n const localMetrics = { ...selectedSalesMetrics };\n const otherMetrics = [\n SPONSOREDADSPEND,\n DSPSPEND,\n ADSPENDTOTAL,\n UNITSSOLD,\n TRAFFIC,\n CONVERSION,\n ADSPEND,\n TACOS,\n ADSPENDPPC,\n ADSPENDDSP,\n ];\n // remove the metrics\n if (\n Object.prototype.hasOwnProperty.call(selectedSalesMetrics, name) &&\n _.keys(selectedSalesMetrics).some((item) => otherMetrics.includes(item))\n ) {\n // enable the time frame filter when we don't have a disabled selected metrics.\n const commanElement = _.intersectionWith(\n _.keys(localMetrics),\n _.keys(_.pickBy(isMetricsDisabled)),\n _.isEqual,\n );\n\n if (commanElement.length === 1) {\n setIsDisabledTimeFrame(false);\n }\n\n // set the default drop-down value as- revenueTotal\n delete localMetrics.revenueTotal;\n delete localMetrics.revenueDsp;\n delete localMetrics.revenuePpc;\n\n setSelectedSalesMetrics(localMetrics);\n setSelectedRevenueSubType({\n revenueTotal: true,\n revenuePpc: false,\n revenueDsp: false,\n });\n } else if (_.size(selectedSalesMetrics) < 4) {\n // select the metrics\n setSelectedSalesMetrics(\n _.omit(_.assign(selectedSalesMetrics, { [name]: true })),\n );\n }\n };\n\n const onHandleRevenueSubType = (event) => {\n // get selected dropdown keys\n let localSelectedSubype = _.keys(\n _.pickBy(selectedRevenueSubType, _.identity),\n );\n\n // at least one option is selected\n if (\n localSelectedSubype.includes(event.target.id) &&\n _.size(localSelectedSubype) === 1\n ) {\n return;\n }\n\n if (\n _.size(selectedSalesMetrics) === 3 &&\n !_.keys(selectedSalesMetrics).some((item) =>\n localSelectedSubype.includes(item),\n )\n ) {\n setSelectedRevenueSubType({\n ...selectedRevenueSubType,\n revenueTotal: false,\n [event.target.id]: !selectedRevenueSubType[event.target.id],\n });\n localSelectedSubype = _.drop(localSelectedSubype);\n } else {\n setSelectedRevenueSubType({\n ...selectedRevenueSubType,\n [event.target.id]: !selectedRevenueSubType[event.target.id],\n });\n }\n\n // if metrics is not selected and we directly clicked on dropdown option\n // then we we need to set the others option too\n if (!_.keys(selectedSalesMetrics).includes(event.target.id)) {\n for (const option of localSelectedSubype) {\n if (!_.keys(selectedSalesMetrics).includes(option)) {\n setBoxToggle(option);\n }\n }\n }\n\n setBoxToggle(event.target.id);\n };\n\n const renderFilterDropDown = () => {\n const localDateOptionsWithYear = dateOptionsWithYear;\n\n // PDV-6572 If PPC or DSP selected then disabled the year_to_date option\n localDateOptionsWithYear[3].isDisabled = _.keys(selectedSalesMetrics).some(\n (item) => [REVENUEPPC, REVENUEDSP].includes(item),\n );\n\n let options = [...localDateOptionsWithYear];\n if (daysDiff && options) {\n const updatedOption = options.map((obj) => {\n if (obj.value === 'week' && daysDiff < 7) {\n obj.isDisabled = true;\n }\n if (obj.value === 'month' && daysDiff < currentDate?.getDate()) {\n obj.isDisabled = true;\n }\n if (obj.value === '30days' && daysDiff < 30) {\n obj.isDisabled = true;\n }\n\n if (\n obj.value === 'year' &&\n daysDiff <\n dayjs(currentDate).diff(\n dayjs(`${currentDate?.getFullYear()}-01-01`),\n 'days',\n )\n ) {\n obj.isDisabled = true;\n }\n\n return obj;\n });\n options = [...updatedOption];\n }\n\n return (\n
    \n {DropDowns(\n 'BT-SalesPerformanceTimeFrame',\n 'days-performance',\n options,\n options[0].label,\n getSelectComponents,\n options[0],\n handleSalesDailyFact,\n isApiCall,\n null,\n selectedTimeFrame,\n null,\n isApiCall,\n )}\n
    \n
    \n );\n };\n\n const rednerSaleGroupBy = () => {\n const borderColor =\n _.keys(selectedSalesMetrics)[0] === ADSPEND\n ? 'salesAdSpend'\n : _.keys(selectedSalesMetrics)[0];\n const previousClassName =\n _.size(selectedSalesMetrics) === 1\n ? `${borderColor} block`\n : 'darkGray block';\n return (\n
    \n {_.size(selectedSalesMetrics) <= 2 ? (\n
    \n
      \n
    • \n
      \n \n {goalsToggle ? 'Metrics' : 'Recent'}\n
      \n
    • \n {selectedTimeFrame?.value !== CUSTOM ? (\n
    • \n \n
    • \n ) : goalsToggle ? (\n
    • \n \n
    • \n ) : null}\n
    \n
    \n ) : (\n
    \n )}\n
    \n \n
    \n
      \n {dailyWeeklyMonthlyOptions?.map((item) => {\n return (\n
    • \n handleGroupBy(item?.value)}\n />\n \n
    • \n );\n })}\n
    \n
    \n
    \n
    \n
    \n );\n };\n\n const returnTooltipMessge = (key = '') => {\n return `No ${key === 'Tacos' ? 'TACOS' : key} available for this period.`;\n };\n\n const renderRevenueMetrics = (metricsName, formatNumber) => {\n let currentTotal = 0;\n let previousTotal = 0;\n let difference = 0;\n let boxActiveClass = salesMetricsClasses[metricsName];\n let name = metricsName;\n let dropdownName = '';\n\n let responseKey = metricsResponseKey[name];\n // find out keys which is having true value OR seperate out selected option.\n const localSelectedSubType = _.keys(\n _.pickBy(selectedRevenueSubType, _.identity),\n );\n [name] = localSelectedSubType;\n boxActiveClass = salesMetricsClasses[localSelectedSubType[0]];\n\n // If the user selects multiple metrics with “Total” being one of them then display the total value\n if (selectedRevenueSubType.revenueTotal) {\n dropdownName = 'Total Sales';\n responseKey = metricsResponseKey.revenueTotal;\n currentTotal =\n salesCurrentTotal && salesCurrentTotal[responseKey]\n ? salesCurrentTotal[responseKey]\n : 0;\n previousTotal =\n salesPreviousTotal && salesPreviousTotal[responseKey]\n ? salesPreviousTotal[responseKey]\n : 0;\n difference =\n salesDifference && salesDifference[responseKey]\n ? salesDifference[responseKey]\n : 'N/A';\n } // If the user selects both PPC and DSP then sum up both values\n else if (\n !selectedRevenueSubType.revenueTotal &&\n localSelectedSubType.length > 1\n ) {\n dropdownName = 'PPC & DSP Sales';\n const dspCurrentTotal =\n salesCurrentTotal && salesCurrentTotal.revenue_dsp\n ? salesCurrentTotal.revenue_dsp\n : 0;\n\n const dspPreviousTotal =\n salesPreviousTotal && salesPreviousTotal.revenue_dsp\n ? salesPreviousTotal.revenue_dsp\n : 0;\n\n const ppcCurrentTotal =\n salesCurrentTotal && salesCurrentTotal.revenue_ppc\n ? salesCurrentTotal.revenue_ppc\n : 0;\n\n const ppcPreviousTotal =\n salesPreviousTotal && salesPreviousTotal.revenue_ppc\n ? salesPreviousTotal.revenue_ppc\n : 0;\n\n currentTotal = dspCurrentTotal + ppcCurrentTotal;\n previousTotal = dspPreviousTotal + ppcPreviousTotal;\n difference = ((currentTotal - previousTotal) * 100) / previousTotal;\n } // If the user selects a single metric just display the value for this metric\n else {\n if (localSelectedSubType[0] === REVENUEPPC) {\n dropdownName = 'PPC Sales';\n } else if (localSelectedSubType[0] === REVENUEDSP) {\n dropdownName = 'DSP Sales';\n }\n\n responseKey = metricsResponseKey[localSelectedSubType[0]];\n currentTotal =\n salesCurrentTotal && salesCurrentTotal[responseKey]\n ? salesCurrentTotal[responseKey]\n : 0;\n previousTotal =\n salesPreviousTotal && salesPreviousTotal[responseKey]\n ? salesPreviousTotal[responseKey]\n : 0;\n difference =\n salesDifference && salesDifference[responseKey]\n ? salesDifference[responseKey]\n : 'N/A';\n }\n\n const firstSelectedMetrics = Object.keys(selectedRevenueSubType).find(\n (i) => selectedRevenueSubType[i] === true,\n );\n\n return (\n
  • \n \n {\n setRevenueMetricsToggle(name);\n }}\n role=\"presentation\"\n >\n {' '}\n <>\n
    \n {`${shortTileName(`TOTAL REVENUE (${currency})`)}`}
    \n \n
    \n {\n e.stopPropagation();\n }}\n >\n {\n setIsRevenueDropDownOpen(!isRevenueDropDownOpen);\n }}\n id=\"clickbox\"\n >\n {dropdownName}\n \n
    \n\n {isRevenueDropDownOpen ? (\n \n
      \n {revenuMetricsSubTypes.map((item) => {\n return (\n \n {' '}\n \n \n {\n onHandleRevenueSubType(event);\n }}\n disabled={\n isMetricsDisabled[item.value] ||\n (_.size(selectedSalesMetrics) === 4 &&\n !selectedRevenueSubType[item.value])\n // (goalsToggle &&\n // _.size(selectedSalesMetrics) === 2)\n }\n />\n \n {item.label}\n \n \n \n );\n })}\n
    \n
  • \n ) : null}\n \n
    \n
    \n \n
    {bindValues(currentTotal)}
    \n
    \n {' '}\n vs {formatNumber(previousTotal, currencySymbol, '')}\n
    \n
    \n 0\n ? 'perentage-value mt-3 pt-1'\n : 'perentage-value down mt-3 pt-1'\n }\n >\n {!Number.isNaN(difference) && difference > 0 ? (\n \n ) : !Number.isNaN(difference) && difference < 0 ? (\n \n ) : null}\n\n {difference !== 'N/A'\n ? `${difference.toFixed(2).toString().replace('-', '')}%`\n : 'N/A'}\n
    \n {goalsMetricData?.revenue\n ? displayGoalTargetHTML(\n goalsMetricData?.revenue?.sign,\n goalsMetricData?.revenue?.target,\n goalsMetricData?.revenue?.value,\n )\n : null}\n
    \n \n \n \n );\n };\n\n // Ad spend metrics start\n\n const setAdSpendMetricsClass = (name, classValue) => {\n let selectedClass = '';\n if (\n !salesCurrentTotal?.ad_spend_total &&\n !salesPreviousTotal?.ad_spend_total\n ) {\n selectedClass = `order-chart-box ${classValue} fix-height disabled`;\n } else if (\n Object.prototype.hasOwnProperty.call(selectedSalesMetrics, name)\n ) {\n selectedClass = `order-chart-box ${classValue} fix-height`;\n } else if (\n _.size(selectedSalesMetrics) === 4 ||\n (isMetricsDisabled[name] &&\n ![ADSPENDTOTAL, ADSPENDPPC, ADSPENDDSP].includes(name)) ||\n ([ADSPENDTOTAL, ADSPENDPPC, ADSPENDDSP].includes(name) &&\n isMetricsDisabled.adSpendTotal &&\n isMetricsDisabled.adSpendPpc &&\n isMetricsDisabled.adSpendDsp) ||\n (goalsToggle && _.size(selectedSalesMetrics) === 2)\n ) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n return selectedClass;\n };\n\n const setAdSpendMetricsToggle = (name) => {\n const localMetrics = { ...selectedSalesMetrics };\n const otherMetrics = [\n SPONSOREDADSPEND,\n DSPSPEND,\n // 'adSpendTotal',\n UNITSSOLD,\n TRAFFIC,\n CONVERSION,\n ADSPEND,\n TACOS,\n REVENUETOTAL,\n REVENUEPPC,\n REVENUEDSP,\n ];\n // remove the metrics\n if (\n Object.prototype.hasOwnProperty.call(selectedSalesMetrics, name) &&\n _.keys(selectedSalesMetrics).some((item) => otherMetrics.includes(item))\n ) {\n // enable the time frame filter when we don't have a disabled selected metrics.\n const commanElement = _.intersectionWith(\n _.keys(localMetrics),\n _.keys(_.pickBy(isMetricsDisabled)),\n _.isEqual,\n );\n\n if (commanElement.length === 1) {\n setIsDisabledTimeFrame(false);\n }\n\n // set the default drop-down value as- adSpendTotal\n delete localMetrics.adSpendTotal;\n delete localMetrics.adSpendPpc;\n delete localMetrics.adSpendDsp;\n\n setSelectedSalesMetrics(localMetrics);\n\n setSelectedAdSpendSubType({\n adSpendTotal: true,\n adSpendPpc: false,\n adSpendDsp: false,\n });\n } else if (_.size(selectedSalesMetrics) < 4) {\n // select the metrics\n setSelectedSalesMetrics(\n _.omit(_.assign(selectedSalesMetrics, { [name]: true })),\n );\n }\n };\n\n const onHandleAdSpendSubType = (event) => {\n // get selected dropdown keys\n let localSelectedSubype = _.keys(\n _.pickBy(selecteAdSpendSubType, _.identity),\n );\n\n // at least one option is selected\n if (\n localSelectedSubype.includes(event.target.id) &&\n _.size(localSelectedSubype) === 1\n ) {\n return;\n }\n\n if (\n _.size(selectedSalesMetrics) === 3 &&\n !_.keys(selectedSalesMetrics).some((item) =>\n localSelectedSubype.includes(item),\n )\n ) {\n setSelectedAdSpendSubType({\n ...selecteAdSpendSubType,\n adSpendTotal: false,\n [event.target.id]: !selecteAdSpendSubType[event.target.id],\n });\n localSelectedSubype = _.drop(localSelectedSubype);\n } else {\n setSelectedAdSpendSubType({\n ...selecteAdSpendSubType,\n [event.target.id]: !selecteAdSpendSubType[event.target.id],\n });\n }\n\n // if metrics is not selected and we directly clicked on dropdown option\n // then we we need to set the others option too\n if (!_.keys(selectedSalesMetrics).includes(event.target.id)) {\n for (const option of localSelectedSubype) {\n if (!_.keys(selectedSalesMetrics).includes(option)) {\n setBoxToggle(option);\n }\n }\n }\n\n setBoxToggle(event.target.id);\n };\n\n const renderAdSpendMetrics = (metricsName, formatNumber) => {\n let currentTotal = 0;\n let previousTotal = 0;\n let difference = 0;\n let boxActiveClass = selecteAdSpendSubType[metricsName];\n let name = metricsName;\n\n let dropdownName = '';\n\n let responseKey = metricsResponseKey[name];\n // find out keys which is having true value OR seperate out selected option.\n const localSelectedSubType = _.keys(\n _.pickBy(selecteAdSpendSubType, _.identity),\n );\n [name] = localSelectedSubType;\n boxActiveClass = salesMetricsClasses[localSelectedSubType[0]];\n\n // If the user selects multiple metrics with “Total” being one of them then display the total value\n if (selecteAdSpendSubType.adSpendTotal) {\n dropdownName = 'Total Ad Spend';\n responseKey = metricsResponseKey.adSpendTotal;\n currentTotal =\n salesCurrentTotal && salesCurrentTotal[responseKey]\n ? salesCurrentTotal[responseKey]\n : 0;\n previousTotal =\n salesPreviousTotal && salesPreviousTotal[responseKey]\n ? salesPreviousTotal[responseKey]\n : 0;\n difference =\n salesDifference && salesDifference[responseKey]\n ? salesDifference[responseKey]\n : 'N/A';\n } // If the user selects both PPC and DSP then sum up both values\n else if (\n !selecteAdSpendSubType.adSpendTotal &&\n localSelectedSubType.length > 1\n ) {\n dropdownName = 'PPC & DSP Sales';\n const dspCurrentTotal =\n salesCurrentTotal && salesCurrentTotal?.dsp_spends\n ? salesCurrentTotal?.dsp_spends\n : 0;\n\n const dspPreviousTotal =\n salesPreviousTotal && salesPreviousTotal?.dsp_spends\n ? salesPreviousTotal?.dsp_spends\n : 0;\n\n const ppcCurrentTotal =\n salesCurrentTotal && salesCurrentTotal?.sponsored_ad_spend\n ? salesCurrentTotal?.sponsored_ad_spend\n : 0;\n\n const ppcPreviousTotal =\n salesPreviousTotal && salesPreviousTotal?.sponsored_ad_spend\n ? salesPreviousTotal?.sponsored_ad_spend\n : 0;\n\n currentTotal = dspCurrentTotal + ppcCurrentTotal;\n previousTotal = dspPreviousTotal + ppcPreviousTotal;\n difference = ((currentTotal - previousTotal) * 100) / previousTotal;\n } // If the user selects a single metric just display the value for this metric\n else {\n if (localSelectedSubType[0] === ADSPENDPPC) {\n dropdownName = 'PPC Sales';\n } else if (localSelectedSubType[0] === ADSPENDDSP) {\n dropdownName = 'DSP Sales';\n }\n responseKey = metricsResponseKey[localSelectedSubType[0]];\n currentTotal =\n salesCurrentTotal && salesCurrentTotal[responseKey]\n ? salesCurrentTotal[responseKey]\n : 0;\n previousTotal =\n salesPreviousTotal && salesPreviousTotal[responseKey]\n ? salesPreviousTotal[responseKey]\n : 0;\n difference =\n salesDifference && salesDifference[responseKey]\n ? salesDifference[responseKey]\n : 'N/A';\n }\n\n const firstSelectedMetrics = Object.keys(selecteAdSpendSubType).find(\n (i) => selecteAdSpendSubType[i] === true,\n );\n\n const isAdSpendTotalSelected =\n selecteAdSpendSubType?.adSpendTotal ||\n (selecteAdSpendSubType?.adSpendPpc && selecteAdSpendSubType?.adSpendDsp);\n\n return (\n
  • \n \n {\n setAdSpendMetricsToggle(name);\n }}\n role=\"presentation\"\n >\n {' '}\n <>\n
    \n \n {shortTileName('TOTAL AD SPEND')}\n
    \n \n
    \n {\n e.stopPropagation();\n }}\n >\n {\n setIsAdSpendDropDownOpen(!isAdSpendDropDownOpen);\n }}\n id=\"clickbox\"\n >\n {dropdownName}\n \n
    \n\n {isAdSpendDropDownOpen ? (\n \n
      \n {adSpendMetricsSubTypesOptions.map((item) => {\n return (\n \n {' '}\n \n \n {\n onHandleAdSpendSubType(event);\n }}\n disabled={\n isMetricsDisabled[item.value] ||\n (_.size(selectedSalesMetrics) === 4 &&\n !selecteAdSpendSubType[item.value])\n // (goalsToggle &&\n // _.size(selectedSalesMetrics) === 2)\n }\n />\n \n {item.label}\n \n \n \n );\n })}\n
    \n \n ) : null}\n \n \n \n \n
    {bindValues(currentTotal)}
    \n
    \n {' '}\n vs {formatNumber(previousTotal, currencySymbol, '')}\n
    \n
    \n 0\n ? 'perentage-value mt-3 pt-1'\n : 'perentage-value down mt-3 pt-1'\n }\n >\n {!Number.isNaN(difference) && difference > 0 ? (\n \n ) : !Number.isNaN(difference) && difference < 0 ? (\n \n ) : null}\n\n {difference !== 'N/A'\n ? `${difference.toFixed(2).toString().replace('-', '')}%`\n : 'N/A'}\n
    \n {isAdSpendTotalSelected && goalsMetricData?.ad_spend_total\n ? displayGoalTargetHTML(\n goalsMetricData?.ad_spend_total?.sign,\n goalsMetricData?.ad_spend_total?.target,\n goalsMetricData?.ad_spend_total?.value,\n )\n : null}\n {!isAdSpendTotalSelected &&\n selecteAdSpendSubType?.adSpendPpc &&\n goalsMetricData?.sponsored_ad_spend\n ? displayGoalTargetHTML(\n goalsMetricData?.sponsored_ad_spend?.sign,\n goalsMetricData?.sponsored_ad_spend?.target,\n goalsMetricData?.sponsored_ad_spend?.value,\n )\n : null}\n {!isAdSpendTotalSelected &&\n selecteAdSpendSubType?.adSpendDsp &&\n goalsMetricData?.dsp_spends\n ? displayGoalTargetHTML(\n goalsMetricData?.dsp_spends?.sign,\n goalsMetricData?.dsp_spends?.target,\n goalsMetricData?.dsp_spends?.value,\n )\n : null}\n \n \n \n
  • \n );\n };\n\n // Ad spend metrics Ends\n\n const showGoalsToggle = () => {\n return (\n \n \n Goals\n {\n setGoalsToggle(!goalsToggle);\n setSelectedSalesMetrics({\n revenueTotal: true,\n });\n setSelectedRevenueSubType({\n revenueTotal: true,\n revenuePpc: false,\n revenueDsp: false,\n });\n }}\n onChange={() => {}}\n checked={goalsToggle}\n />\n \n \n \n );\n };\n\n const renderSalesBox = (\n metricsLabel,\n matricsKey,\n currentValue,\n previousValue,\n differenceValue,\n valueSymbol,\n boxActiveClass,\n formatNumber,\n ) => {\n const showGoalsTarget =\n matricsKey === TACOS ||\n matricsKey === TRAFFIC ||\n matricsKey === CONVERSION;\n\n return (\n
  • \n \n setBoxToggle(matricsKey)}\n role=\"presentation\"\n >\n
    {metricsLabel.toUpperCase()}
    \n
    \n {formatNumber(currentValue, '', valueSymbol)}\n
    \n
    \n vs {formatNumber(previousValue, '', valueSymbol)}\n
    \n
    \n 0\n ? 'perentage-value mt-3 pt-1'\n : 'perentage-value down mt-3 pt-1'\n }\n >\n {!Number.isNaN(differenceValue) && differenceValue > 0 ? (\n \n ) : !Number.isNaN(differenceValue) && differenceValue < 0 ? (\n \n ) : (\n ''\n )}\n\n {differenceValue || differenceValue === 0\n ? `${differenceValue.toString().replace('-', '')}%`\n : 'N/A'}\n
    \n\n
    \n {showGoalsTarget && goalsMetricData?.[matricsKey]\n ? displayGoalTargetHTML(\n goalsMetricData?.[matricsKey]?.sign,\n goalsMetricData?.[matricsKey]?.target,\n goalsMetricData?.[matricsKey]?.value,\n )\n : null}\n
    \n \n \n \n
  • \n );\n };\n\n const renderErrorMessage = () => {\n let { fromDate } = customDateError;\n let { toDate } = customDateError;\n\n fromDate = dayjs(fromDate).format('MM/DD/YYYY');\n toDate = dayjs(toDate).subtract(1, 'day').format('MM/DD/YYYY');\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n };\n\n const renderSalePerformancePanel = () => {\n return (\n \n {/* ********** PDV-7917 - Expose AMC and other Sections to BPs ********** */}\n {/* ********** PLEASE DO NOT REMOVE BELOW CODE. ********** */}\n {/* {(userInfo?.role?.includes('Customer') &&\n customer?.display_sales_performance) ||\n !userInfo?.role?.includes('Customer') ? (\n <> */}\n
    \n
    \n {' '}\n

    \n {' '}\n Sales Performance\n

    \n
    \n {renderFilterDropDown()}\n
    \n {dashboardDynamicError?.sales_performance_seller?.placeholder ? (\n \n ) : null}\n
    \n
    \n\n {renderDataAvailableChildList('sales')}\n {selectedTimeFrame.value !== CUSTOM ? (\n \n ) : null}\n \n
      \n {renderRevenueMetrics('revenue', useFormatNumber)}\n {renderSalesBox(\n 'Tacos',\n TACOS,\n salesCurrentTotal?.tacos,\n salesPreviousTotal?.tacos,\n salesDifference?.tacos,\n '%',\n 'sales-tacos-active',\n useFormatNumber,\n )}\n {renderSalesBox(\n 'Units sold',\n UNITSSOLD,\n salesCurrentTotal?.units_sold,\n salesPreviousTotal?.units_sold,\n salesDifference?.units_sold,\n '',\n 'ad-spend-active',\n useFormatNumber,\n )}\n {renderSalesBox(\n 'Traffic',\n TRAFFIC,\n salesCurrentTotal?.traffic,\n salesPreviousTotal?.traffic,\n salesDifference?.traffic,\n '',\n 'ad-conversion-active',\n useFormatNumber,\n )}\n {renderSalesBox(\n 'Conversion',\n CONVERSION,\n salesCurrentTotal?.conversion,\n salesPreviousTotal?.conversion,\n salesDifference?.conversion,\n '%',\n 'impression-active',\n useFormatNumber,\n )}\n\n {renderAdSpendMetrics(ADSPEND, useFormatNumber)}\n
    \n
    \n {showGoalsToggle()}\n\n {selectedTimeFrame.value === CUSTOM &&\n customDateError.accountType === SELLERSMALL &&\n customDateError.selectedTab === SALEPERFORMANCE\n ? renderErrorMessage()\n : null}\n {rednerSaleGroupBy()}\n
    \n\n {salesGraphLoader ? (\n \n ) : salesChartData.length !== 0 && !goalsToggle ? (\n \n ) : salesGoalsChartData?.length && goalsToggle ? (\n \n ) : (\n {noGraphDataMessage}\n )}\n {/* \n ) : null} */}\n\n \n \n );\n };\n\n return (\n <>\n {showMetricsTooltipForSales.map((key) => {\n let keyName = key;\n let dataForMetric = key;\n const revenueKeys = [\n 'revenue',\n 'revenue_ppc',\n 'revenue_dsp',\n 'revenue_organic',\n ];\n const adSpendKeys = [\n 'ad_spend_total',\n 'sponsored_ad_spend',\n 'dsp_spends',\n ];\n\n // eslint-disable-next-line no-plusplus\n for (let i = 1; i <= 2; i++) {\n const exixtingKeys = i === 1 ? revenueKeys : adSpendKeys;\n const alreadySelectedSubType =\n i === 1 ? selectedRevenueSubType : selecteAdSpendSubType;\n\n if (exixtingKeys?.includes(key)) {\n dataForMetric = Object.keys(alreadySelectedSubType).find(\n (item) => alreadySelectedSubType[item] === true,\n );\n keyName = revenuSubTypeKeys[dataForMetric];\n }\n }\n return (\n \n {!salesCurrentTotal[keyName] &&\n !salesPreviousTotal[keyName] &&\n !isApiCall ? (\n \n ) : null}\n \n );\n })}\n\n {renderSalePerformancePanel()}\n \n );\n}\n\nSalesPerformancePanel.defaultProps = {\n isApiCall: false,\n salesGraphLoader: false,\n isDisabledTimeFrame: false,\n isDisabled: false,\n isAsinApiCallCustom: 0,\n groupBy: '',\n currencySymbol: '',\n marketplace: '',\n daysDiff: 0,\n currentDate: null,\n selectedValue: {},\n currency: '',\n selectedRevenueType: '',\n salesMinDate: '',\n selectedTimeFrame: {},\n selectedSalesMetrics: {},\n salesDifference: {},\n isMetricsDisabled: {},\n salesCurrentTotal: {},\n salesPreviousTotal: {},\n data: {},\n salesChartData: {},\n goalsMetricData: {},\n customDateError: {},\n state: [],\n salesGoalsChartData: [],\n selectedChildBrand: {},\n setSelectedSalesMetrics: () => {},\n handleSalesDailyFact: () => {},\n renderCustomDateSubLabel: () => {},\n handleGroupBy: () => {},\n setSelectedRevenueType: () => {},\n setIsDisabledTimeFrame: () => {},\n setSelectedRevenueDropDownOption: () => {},\n goalsToggle: false,\n setGoalsToggle: () => {},\n renderDataAvailableChildList: () => {},\n selecteAdSpendSubType: {},\n setSelectedAdSpendSubType: () => {},\n};\n\nSalesPerformancePanel.propTypes = {\n isApiCall: bool,\n salesGraphLoader: bool,\n isDisabledTimeFrame: bool,\n isDisabled: bool,\n isAppliedCustom: bool.isRequired,\n isAsinApiCallCustom: number,\n currencySymbol: string,\n groupBy: string,\n currency: string,\n selectedRevenueType: string,\n salesMinDate: string,\n id: string.isRequired,\n selectedTimeFrame: shape({}),\n selectedSalesMetrics: shape({}),\n data: shape({}),\n selectedValue: shape({}),\n goalsMetricData: shape({}),\n salesChartData: arrayOf(shape({})),\n state: arrayOf(shape({})),\n salesDifference: shape({}),\n salesCurrentTotal: shape({}),\n salesPreviousTotal: shape({}),\n isMetricsDisabled: shape({}),\n customDateError: shape({}),\n selectedChildBrand: shape({}),\n marketplace: string,\n daysDiff: number,\n currentDate: instanceOf(Date),\n renderCustomDateSubLabel: func,\n setSelectedSalesMetrics: func,\n handleSalesDailyFact: func,\n handleGroupBy: func,\n setSelectedRevenueType: func,\n setIsDisabledTimeFrame: func,\n setSelectedRevenueDropDownOption: func,\n salesGoalsChartData: arrayOf(shape({})),\n goalsToggle: bool,\n setGoalsToggle: func,\n renderDataAvailableChildList: func,\n selecteAdSpendSubType: shape({}),\n setSelectedAdSpendSubType: func,\n};\n\nconst BreakDown = styled.div`\n .dropdown-revenue-input {\n border-radius: 6px;\n position: relative;\n border: 1px solid ${Theme.gray45};\n width: 75%;\n min-width: 93px;\n text-align: left;\n font-size: ${Theme.extraNormal};\n border-radius: 6px;\n min-height: 32px;\n color: ${Theme.gray85};\n padding: 7px;\n cursor: pointer;\n\n span.selected-list {\n position: fixed;\n color: ${Theme.black};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 65%;\n margin-left: 4px;\n position: absolute;\n }\n\n .dropdown-arrow-icon {\n position: absolute;\n right: 9px;\n top: 9px;\n }\n @media only screen and (max-width: 776px) {\n min-width: 70px;\n }\n }\n .dropdown-revenue-filter {\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n padding: 0 14px;\n position: absolute;\n z-index: 99999;\n top: 35px;\n color: ${Theme.gray85};\n text-align: left;\n top: 37px;\n right: 15px;\n width: 100%;\n\n &.hide {\n display: none;\n }\n &.show {\n display: block;\n }\n\n .options-list {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n li {\n display: block;\n padding: 0;\n }\n }\n }\n`;\n\nconst FiveCardMetrics = styled.div`\n overflow: auto;\n ::-webkit-scrollbar {\n width: 5px;\n height: 4px;\n }\n ::-webkit-scrollbar-track {\n background-color: ${Theme.gray2};\n }\n ::-webkit-scrollbar-thumb {\n background-color: ${Theme.gray25};\n }\n\n .five-card-metrics {\n padding: 0;\n margin: 0 -5px 15px -5px;\n list-style-type: none;\n display: flex;\n flex-wrap: wrap;\n\n &.metric-card-scroll {\n display: flex;\n overflow: auto;\n flex-wrap: nowrap;\n }\n\n li {\n width: 100%;\n display: inline-block;\n flex: 0 0 25%;\n max-width: 25%;\n position: relative;\n padding-right: 5px;\n padding-left: 5px;\n margin-bottom: 15px;\n\n .justify-space-between {\n align-items: flex-end;\n }\n }\n @media only screen and (max-width: 991px) {\n li {\n max-width: 33.33% !important;\n flex: 0 0 33.33% !important;\n }\n }\n\n @media only screen and (max-width: 776px) {\n li {\n max-width: 50% !important;\n flex: 0 0 50% !important;\n }\n }\n\n @media only screen and (min-width: 779px) {\n // Add Horizontal scroll\n display: inline-block;\n // overflow: auto;\n // overflow-y: hidden;\n white-space: nowrap;\n width: 100%;\n\n /* width */\n ::-webkit-scrollbar {\n width: none !important;\n height: 8px;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: #f1f1f1;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: #bfc3d2;\n border-radius: 10px;\n }\n }\n }\n`;\n","/* eslint-disable camelcase */\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport am4themes_animated from '@amcharts/amcharts4/themes/animated';\nimport styled from 'styled-components';\nimport { string, arrayOf, shape } from 'prop-types';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.useTheme(am4themes_animated);\nam4core.color('red');\nfunction BbPercentChart({ chartId, chartData }) {\n const chart = useRef(null);\n const averageValue = (chartData && chartData[0]?.avg) || 0;\n\n const getValueAxisMaxValue = useCallback(() => {\n let valueAxisMaxValue = {};\n if (averageValue > 50) {\n valueAxisMaxValue = averageValue * 2;\n return valueAxisMaxValue;\n }\n valueAxisMaxValue = 110;\n return valueAxisMaxValue;\n }, [averageValue]);\n\n const createBbPercentChart = useCallback(() => {\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.padding(20, 10, 20, 0);\n chart.current.data = chartData;\n chart.current.logo.disabled = true;\n // Enable chart cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.stroke = am4core.color('#396478');\n chart.current.cursor.lineX.strokeWidth = 1;\n chart.current.cursor.lineX.strokeOpacity = 1;\n chart.current.cursor.lineX.strokeDasharray = '';\n chart.current.cursor.behavior = 'none';\n // Create Y axes\n const valueAxis = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.grid.template.disabled = true;\n valueAxis.renderer.baseGrid.disabled = true;\n valueAxis.renderer.minGridDistance = 10;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis.cursorTooltipEnabled = false;\n valueAxis.renderer.opposite = true;\n valueAxis.min = -0.5;\n valueAxis.max = getValueAxisMaxValue();\n valueAxis.strictMinMax = true;\n\n // Create X axes\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.grid.template.disabled = true;\n dateAxis.renderer.labels.template.disabled = true;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.startLocation = 0.5;\n dateAxis.endLocation = 1;\n // custom tooltip\n const tooltipHTML = `
    \n {date}
    {valueY}%\n
    `;\n // Create series\n const series = chart.current.series.push(new am4charts.LineSeries());\n series.name = 'Buy Box Percentage series';\n series.stroke = am4core.color('#000000');\n series.fill = am4core.color('#000000');\n series.strokeWidth = 2;\n series.tensionX = 1;\n series.dataFields.valueY = 'value';\n series.dataFields.dateX = 'date';\n series.tooltipHTML = tooltipHTML;\n series.tooltip.getFillFromObject = false;\n series.tooltip.background.fill = am4core.color('#2E384D');\n series.tooltip.background.fillOpacity = 1;\n series.tooltip.background.strokeWidth = 0;\n series.tooltip.label.fontSize = 14;\n series.tooltip.label.fill = am4core.color('#ffffff');\n series.tooltip.background.filters.clear();\n // Create saverage line\n const range = valueAxis.axisRanges.create();\n range.value = averageValue;\n range.grid.stroke = am4core.color('#BFC5D2');\n range.grid.strokeWidth = 1.5;\n range.grid.strokeOpacity = 1;\n range.label.background.fill = am4core.color('#BFC5d2');\n range.label.text = `${averageValue}%`;\n range.label.padding(8, 5, 5, 5);\n range.label.verticalCenter = 'bottom';\n }, [chartId, chartData, getValueAxisMaxValue, averageValue]);\n\n useEffect(() => {\n createBbPercentChart();\n getValueAxisMaxValue();\n return () => chart.current && chart.current.dispose();\n }, [createBbPercentChart, getValueAxisMaxValue]);\n return ;\n}\n\nexport default BbPercentChart;\nBbPercentChart.defaultProps = {\n chartData: [],\n};\nBbPercentChart.propTypes = {\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n};\n\nconst ChartDiv = styled.div`\n margin: 20px 0px;\n`;\n","import React from 'react';\n\nimport { components } from 'react-select';\nimport { arrayOf, bool, func, shape } from 'prop-types';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport BbPercentChart from './BbPercentChart';\nimport {\n dateOptions,\n bbDateOptions,\n noGraphDataMessage,\n} from '../../../../../../constants';\nimport {\n WhiteCard,\n PageLoader,\n CustomDateModal,\n NoData,\n DropdownIndicator,\n DropDowns,\n} from '../../../../../../common';\n\nexport default function BuyBoxPercentPanel({\n bBChartData,\n bBGraphLoader,\n handleBBDailyFact,\n isApiCall,\n bBDailyFact,\n dspData,\n showBBCustomDateModal,\n BBstate,\n setShowBBCustomDateModal,\n setBBState,\n applyCustomDate,\n currentDate,\n renderCustomDateSubLabel,\n}) {\n const { Option, SingleValue } = components;\n\n const bbFilterOption = (props) => (\n \n );\n\n const bbSingleFilterOption = (props) => (\n \n {props?.data?.label}\n\n
    \n {renderCustomDateSubLabel(props, 'bb')}\n
    \n
    \n );\n\n const getBBSelectComponents = () => {\n return {\n Option: bbFilterOption,\n SingleValue: bbSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n const renderBBPercentGraphPanel = () => {\n return (\n
    \n \n
    \n
    \n
    Buy Box %
    \n
    \n
    \n {DropDowns(\n 'BT-BuyBoxPercentTimeFrame',\n 'days-performance',\n bbDateOptions,\n dateOptions[0].label,\n getBBSelectComponents,\n bbDateOptions[0],\n handleBBDailyFact,\n isApiCall,\n null,\n bBDailyFact,\n )}\n
    \n
    \n
    \n
    \n
      \n
    • \n
      \n \n Daily %\n
      \n
    • \n
    • \n
      \n \n Average\n
      \n
    • \n
    \n
    \n
    \n
    \n {bBGraphLoader ? (\n \n ) : bBChartData && bBChartData.length > 1 ? (\n \n ) : (\n {noGraphDataMessage}\n )}\n
    \n
    \n
    \n Last updated: {dspData && dspData.latest_date}\n
    \n
    \n
    \n );\n };\n\n return (\n <>\n
    {renderBBPercentGraphPanel()}
    \n {/* custom date modal for BB% graph */}\n {\n setShowBBCustomDateModal(false);\n if (bBDailyFact.value !== 'custom') {\n setBBState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'BBselection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setBBState([item.BBselection]);\n }}\n onApply={() => applyCustomDate('BBDate')}\n currentDate={currentDate}\n minDate={new Date('01/01/1901')}\n />\n \n );\n}\n\nBuyBoxPercentPanel.defaultProps = {\n isApiCall: false,\n bBGraphLoader: false,\n showBBCustomDateModal: false,\n bBChartData: [],\n currentDate: '',\n bBDailyFact: {},\n dspData: {},\n BBstate: [{}],\n data: {},\n active: {},\n payload: {},\n setShowBBCustomDateModal: () => {},\n setBBState: () => {},\n applyCustomDate: () => {},\n handleBBDailyFact: () => {},\n getBBSelectComponents: () => {},\n renderCustomDateSubLabel: () => {},\n};\n\nBuyBoxPercentPanel.propTypes = {\n bBGraphLoader: bool,\n isApiCall: bool,\n showBBCustomDateModal: bool,\n bBDailyFact: shape({}),\n dspData: shape({}),\n data: shape({}),\n active: shape({}),\n payload: shape({}),\n currentDate: shape({}),\n bBChartData: arrayOf(shape({})),\n BBstate: arrayOf(shape({})),\n setBBState: func,\n applyCustomDate: func,\n handleBBDailyFact: func,\n getBBSelectComponents: func,\n setShowBBCustomDateModal: func,\n renderCustomDateSubLabel: func,\n};\n","/* eslint-disable camelcase */\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_animated from '@amcharts/amcharts4/themes/animated';\nimport styled from 'styled-components';\nimport { string, arrayOf, shape } from 'prop-types';\n\n// Themes begin\nfunction am4themes_colorTheme(target) {\n if (target instanceof am4core.ColorSet) {\n target.list = [am4core.color('#97ca61'), am4core.color('#EAEFF2')];\n }\n}\nam4core.useTheme(am4themes_colorTheme);\nam4core.useTheme(am4themes_animated);\nfunction InventoryScoreGraph({ chartId, pieData }) {\n const chart = useRef(null);\n const createInventoryScoreGraph = useCallback(() => {\n chart.current = am4core.create(chartId, am4charts.PieChart);\n chart.current.data = pieData;\n chart.current.resizable = true;\n chart.current.hiddenState.properties.opacity = 0; // this creates initial fade-in\n chart.current.radius = am4core.percent(100);\n chart.current.innerRadius = am4core.percent(70);\n chart.current.startAngle = 180;\n chart.current.endAngle = 360;\n chart.current.logo.disabled = true;\n // create Pie series chart\n const pieSeries = chart.current.series.push(new am4charts.PieSeries());\n pieSeries.dataFields.value = 'value';\n pieSeries.dataFields.category = 'name';\n pieSeries.alignLabels = false;\n pieSeries.slices.template.stroke = am4core.color('#fff');\n pieSeries.slices.template.strokeWidth = 7;\n // This creates initial animation\n pieSeries.hiddenState.properties.opacity = 1;\n pieSeries.hiddenState.properties.startAngle = 90;\n pieSeries.hiddenState.properties.endAngle = 90;\n // Disable ticks and labels\n pieSeries.labels.template.disabled = true;\n pieSeries.ticks.template.disabled = true;\n // Disable tooltips\n pieSeries.slices.template.tooltipText = '';\n // Disable sliding out of slices\n pieSeries.slices.template.states.getKey(\n 'active',\n ).properties.shiftRadius = 0;\n pieSeries.slices.template.states.getKey('hover').properties.shiftRadius = 0;\n pieSeries.slices.template.states.getKey('hover').properties.scale = 1;\n }, [chartId, pieData]);\n\n useEffect(() => {\n createInventoryScoreGraph();\n return () => chart.current && chart.current.dispose();\n }, [createInventoryScoreGraph]);\n\n return ;\n}\n\nexport default InventoryScoreGraph;\n\nInventoryScoreGraph.defaultProps = {\n pieData: [],\n};\nInventoryScoreGraph.propTypes = {\n chartId: string.isRequired,\n pieData: arrayOf(shape({})),\n};\n\nconst PieChartDiv = styled.div`\n max-width: 250px;\n width: 100%;\n height: 140px;\n margin: 0 auto;\n @media only screen and (max-width: 991px) {\n margin: 0 auto 40px auto;\n }\n`;\n","import dayjs from 'dayjs';\n\nconst BindSalesGoalsGraphResponse = (response) => {\n const finalData = [];\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.report_date)\n : response?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n if (response?.daily_facts?.current?.length) {\n response.daily_facts.current.forEach((item, index) => {\n const tempData = {};\n const currentReportDate = dayjs(item.report_date).format('MMM D YYYY');\n const adSpendTotal = item?.sponsored_ad_spend + item?.dsp_spends;\n const adSpendTotalGoals =\n item?.goal_sponsored_ad_spend + item?.goal_dsp_spends;\n tempData.date = currentReportDate;\n tempData.adSpendTotalCurrent = adSpendTotal;\n tempData.adSpendTotalGoals = adSpendTotalGoals;\n\n tempData.adSpendPpcCurrent = item?.sponsored_ad_spend;\n tempData.adSpendPpcGoals = item?.goal_sponsored_ad_spend;\n\n tempData.adSpendDspCurrent = item?.dsp_spends;\n tempData.adSpendDspGoals = item?.goal_dsp_spends;\n\n tempData.revenueTotalCurrent = item.revenue;\n tempData.revenueTotalGoals = item?.goal_revenue;\n\n tempData.revenuePpcCurrent = item.revenue_ppc;\n tempData.revenuePpcGoals = item?.goal_revenue;\n\n tempData.revenueDspCurrent = item.revenue_dsp;\n tempData.revenueDspGoals = item?.goal_revenue;\n\n tempData.tacosCurrent = item?.tacos;\n tempData.tacosGoals = item?.goal_tacos;\n\n tempData.trafficCurrent = item?.traffic;\n tempData.trafficGoals = item?.goal_traffic;\n\n tempData.conversionCurrent = item?.conversion;\n tempData.conversionGoals = item?.goal_conversion;\n\n tempData.endDate = nextReportDate(\n index,\n response?.daily_facts?.current,\n 'previous',\n );\n\n tempData.adSpendTotalCurrentLabel =\n adSpendTotal !== null ? adSpendTotal?.toFixed(2) : '0.00';\n tempData.adSpendTotalGoalsLabel =\n adSpendTotalGoals !== null ? adSpendTotalGoals?.toFixed(2) : '0.00';\n tempData.adSpendPpcCurrentLabel =\n item?.sponsored_ad_spend !== null\n ? item?.sponsored_ad_spend?.toFixed(2)\n : '0.00';\n tempData.adSpendPpcGoalsLabel =\n item?.goal_sponsored_ad_spend !== null\n ? item?.goal_sponsored_ad_spend?.toFixed(2)\n : '0.00';\n\n tempData.adSpendDspCurrentLabel =\n item?.dsp_spends !== null ? item?.dsp_spends?.toFixed(2) : '0.00';\n tempData.adSpendDspGoalsLabel =\n item?.goal_dsp_spends !== null\n ? item?.goal_dsp_spends?.toFixed(2)\n : '0.00';\n\n tempData.revenueTotalCurrentLabel =\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00';\n tempData.revenueTotalGoalsLabel =\n item?.goal_revenue !== null ? item?.goal_revenue?.toFixed(2) : '0.00';\n\n tempData.revenuePpcCurrentLabel =\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00';\n tempData.revenuePpcGoalsLabel =\n item?.goal_revenue !== null ? item?.goal_revenue?.toFixed(2) : '0.00';\n\n tempData.revenueDspCurrentLabel =\n item.revenue !== null ? item.revenue.toFixed(2) : '0.00';\n tempData.revenueDspGoalsLabel =\n item?.goal_revenue !== null ? item?.goal_revenue?.toFixed(2) : '0.00';\n\n tempData.tacosCurrentLabel =\n item?.tacos !== null ? item.tacos.toFixed(2) : '0.00';\n tempData.tacosGoalsLabel =\n item?.goal_tacos !== null ? item?.goal_tacos?.toFixed(2) : '0.00';\n\n tempData.trafficCurrentLabel =\n item?.traffic !== null ? item.traffic.toFixed(2) : '0.00';\n tempData.trafficGoalsLabel =\n item?.goal_traffic !== null ? item?.goal_traffic?.toFixed(2) : '0.00';\n\n tempData.conversionCurrentLabel =\n item?.conversion !== null ? item.conversion.toFixed(2) : '0.00';\n tempData.conversionGoalsLabel =\n item?.goal_conversion !== null\n ? item?.goal_conversion?.toFixed(2)\n : '0.00';\n // to add the dotted line. we have to check null matrix and add the dummy number like 8\n\n tempData.revenueTotalDashLength = item.revenue === null ? 8 : null;\n tempData.adSpendTotalDashLength =\n item.sponsored_ad_spend === null ? 8 : null;\n finalData.push(tempData);\n });\n }\n return finalData;\n};\n\nexport default BindSalesGoalsGraphResponse;\n","import styled from 'styled-components';\n\nimport Theme from '../../../../../../theme/Theme';\n\nexport const TableWrapper = styled.div`\n th.product-header {\n position: relative;\n img {\n position: absolute;\n top: 10px;\n transform: rotate(270deg);\n }\n .rotate {\n transform: rotate(90deg);\n top: 10px;\n }\n }\n`;\n\nexport const SellerHealth = styled.div`\n .border-line {\n border-right: 1px solid ${Theme.gray45};\n\n &:last-child {\n border-right: none;\n }\n @media only screen and (max-width: 767px) {\n border-right: none;\n border-bottom: 1px solid ${Theme.gray45};\n &:last-child {\n border-right: none;\n }\n }\n }\n`;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState, useCallback, useRef } from 'react';\n\nimport dayjs from 'dayjs';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, bool, func, instanceOf, shape, string } from 'prop-types';\n\nimport BindSalesGraphResponse from './BindSalesGraphResponse';\nimport SalesPerformancePanel from './SalesPerformancePanel';\nimport BuyBoxPercentPanel from './BuyBoxPercentPanel';\nimport InventoryScoreGraph from './InventoryScoreGraph';\nimport BindSalesGoalsGraphResponse from './BindSalesGoalsGraphResponse';\nimport { SellerHealth } from './ASINPerformanceStyle';\nimport { getPerformance, getBuyBoxChartData } from '../../../../../../api';\nimport {\n CUSTOM,\n PARENT,\n REVENUEDSP,\n SALEPERFORMANCE,\n SELLERSMALL,\n dataScrappedMsg,\n metricsResponseKey,\n salesMetricsResponseKey,\n} from '../../../../../../constants';\nimport {\n WhiteCard,\n CustomDateModal,\n DropdownIndicator,\n ViewData,\n DropDowns,\n GrayMessageBar,\n DropdownOptions,\n DropdownSingleValue,\n} from '../../../../../../common';\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\nconst _ = require('lodash');\n\nconst initialDisabledMetrics = {\n revenueTotal: true,\n revenueOrganic: true,\n revenuePpc: true,\n revenueDsp: true,\n unitsSold: true,\n traffic: true,\n conversion: true,\n adSpendTotal: true,\n adSpendPpc: true,\n adSpendDsp: true,\n adSpend: true,\n tacos: true,\n};\nexport default function PerformanceReport({\n id,\n dspPpcFlag,\n selectedTimeFrame,\n setSelectedTimeFrame,\n selectedState,\n setSelectedState,\n currentDate,\n selectedMarketplace,\n setSelectedMarketplace,\n marketplaceOptions,\n currency,\n setCurrency,\n currencySymbol,\n setCurrencySymbol,\n salesMinDate,\n customDateError,\n bindErrorMessage,\n minDateLoader,\n goalsMarketplaceIds,\n goalsMarketplaceOptions,\n createMarektplaceIdsListOfGoals,\n childBrandOptions,\n selectedChildBrand,\n setSelectedChildBrand,\n displayAccountTypeFilter,\n renderDataAvailableChildList,\n getDataAvailabeleChildBrandList,\n}) {\n const customerState = useSelector((state) => state.customerState.data);\n\n const mounted = useRef(false);\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isSuperAdmin = userInfo?.role?.includes('Super Admin');\n const isDashboardDisabled =\n dspPpcFlag?.isHavingDsp && !dspPpcFlag?.isHavingPpc;\n const [bBChartData, setBBChartData] = useState([{}]);\n const [dspData, setDspData] = useState(null);\n const [isSPCustomDateApply, setIsSPCustomDateApply] = useState(\n selectedTimeFrame.value === CUSTOM,\n );\n const [isBBCustomDateApply, setIsBBCustomDateApply] = useState(false);\n const [salesChartData, setSalesChartData] = useState([]);\n const [performanceData, setPerformanceResponse] = useState({});\n const [goalsMetricData, setGoalsMetricData] = useState({});\n const [goalsToggle, setGoalsToggle] = useState(false);\n const [salesGoalsChartData, setSalesGoalChartData] = useState([]);\n const [showCustomDateModal, setShowCustomDateModal] = useState(false);\n const [showBBCustomDateModal, setShowBBCustomDateModal] = useState(false);\n const [groupBy, setGroupBy] = useState('daily');\n const [BBGroupBy, setBBGroupBy] = useState('daily');\n const [salesCurrentTotal, setSalesCurrentTotal] = useState({});\n const [salesPreviousTotal, setSalesPreviousTotal] = useState({});\n const [salesDifference, setSalesDifference] = useState({});\n const [salesGraphLoader, setSalesGraphLoader] = useState(false);\n const [bBGraphLoader, setBbGraphLoader] = useState(false);\n const [isApiCall, setIsApiCall] = useState(false);\n const [isAsinApiCallCustom, setIsAsinApiCallCustom] = useState(0);\n const [isDisabledTimeFrame, setIsDisabledTimeFrame] = useState(false);\n const [isMetricsDisabled, setIsMetricsDisabled] = useState(\n initialDisabledMetrics,\n );\n const [selectedSalesMetrics, setSelectedSalesMetrics] = useState({\n revenueTotal: true,\n });\n const [bBDailyFact, setBBDailyFact] = useState({\n value: 'week',\n label: 'Current 7 days',\n });\n const [pieData, setPieData] = useState([\n { name: 'Inventory', value: 'N/A' },\n { name: 'Total', value: 1000 },\n ]);\n\n const [customDate, setCustomDate] = useState({\n startDate: currentDate,\n endDate: currentDate,\n });\n const [BBstate, setBBState] = useState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'BBselection',\n },\n ]);\n const dashboardDynamicError = useSelector(\n (newState) => newState.userState?.showDynamicMsg,\n );\n const [selecteAdSpendSubType, setSelectedAdSpendSubType] = useState({\n adSpendTotal: true,\n adSpendPpc: false,\n adSpendDsp: false,\n });\n\n const bindSalesResponseData = useCallback(\n (response, timeFrame) => {\n // filterout the dsp current total, previous total, and diffrence\n if (response?.daily_facts?.current_sum) {\n setSalesCurrentTotal(response.daily_facts.current_sum);\n } else {\n setSalesCurrentTotal({});\n }\n if (response?.daily_facts?.previous_sum) {\n setSalesPreviousTotal(response.daily_facts.previous_sum);\n } else {\n setSalesPreviousTotal({});\n }\n if (response?.daily_facts?.difference_data) {\n setSalesDifference(response.daily_facts.difference_data);\n } else {\n setSalesDifference({});\n }\n\n // if we get total value of any metrics is 0, then disabled that metrics\n // we setting the disable flag for each metrics\n let localMetricDisabled = {};\n const resData = response?.daily_facts;\n _.keys(salesMetricsResponseKey).filter((option) => {\n if (\n (timeFrame === CUSTOM &&\n resData?.current_sum[metricsResponseKey[option]] === 0) ||\n (resData?.current_sum[metricsResponseKey[option]] === 0 &&\n resData?.previous_sum[metricsResponseKey[option]] === 0) ||\n (option === REVENUEDSP &&\n customerState?.is_active_dspagreement === false)\n ) {\n localMetricDisabled = { ...localMetricDisabled, [option]: true };\n } else if (timeFrame === 'year') {\n // PDV-6572 If year_to_date option selected then disabled PPC and DSP\n localMetricDisabled = { ...localMetricDisabled, revenuePpc: true };\n localMetricDisabled = { ...localMetricDisabled, revenueDsp: true };\n } else {\n localMetricDisabled = { ...localMetricDisabled, [option]: false };\n }\n return null;\n });\n\n // if we don't have data for PPC then we need to disabled the PPC and organic also.\n\n if (\n (timeFrame === CUSTOM &&\n resData?.current_sum[metricsResponseKey.revenuePpc] === 0) ||\n (resData?.current_sum[metricsResponseKey.revenuePpc] === 0 &&\n resData?.previous_sum[metricsResponseKey.revenuePpc] === 0)\n ) {\n localMetricDisabled = {\n ...localMetricDisabled,\n revenueOrganic: true,\n };\n }\n // Commented this code beacuase PDV-6723\n // if we get total value of any metrics is 0 when we change the Time frame, then disabled that Tiem frame filter\n setIsDisabledTimeFrame(false);\n // _.keys(salesMetricsResponseKey).filter((option) => {\n // if (\n // _.keys(selectedMetrics).includes(option) &&\n // localMetricDisabled[option] === true\n // ) {\n // setIsDisabledTimeFrame(true);\n // }\n // return null;\n // });\n\n // Disabled tacos if selected date is less than 1st August 2022\n if (response?.daily_facts?.current?.length) {\n const isHavingDspPPC = {\n isHavingDsp: response?.having_contract_type?.is_having_dsp,\n isHavingPpc: response?.having_contract_type?.is_having_ppc,\n };\n\n const lastElement = response?.daily_facts?.current?.at(-1);\n if (\n timeFrame === CUSTOM &&\n new Date(dayjs(lastElement.report_date).format('MM D YYYY')) <\n new Date(dayjs('2022-08-01').format('MM D YYYY'))\n ) {\n const tacosData = response?.daily_facts?.current_sum?.tacos;\n\n if (isHavingDspPPC?.isHavingDsp && !isHavingDspPPC?.isHavingPpc) {\n if (tacosData === 0) {\n localMetricDisabled = {\n ...localMetricDisabled,\n tacos: true,\n };\n } else {\n localMetricDisabled = {\n ...localMetricDisabled,\n tacos: false,\n };\n }\n } else {\n localMetricDisabled = {\n ...localMetricDisabled,\n tacos: true,\n };\n }\n\n if (isHavingDspPPC?.isHavingDsp && isHavingDspPPC?.isHavingPpc) {\n localMetricDisabled = {\n ...localMetricDisabled,\n adSpendPpc: true,\n adSpendTotal: true,\n };\n }\n }\n }\n\n setIsMetricsDisabled(localMetricDisabled);\n },\n [customerState],\n );\n\n // determine goal target label\n const getGoalTargetLabel = useCallback((goalValue, metricValue) => {\n const twoPercentOfGoalValue = (goalValue * 2) / 100;\n const minValue = goalValue - twoPercentOfGoalValue;\n const maxValue = goalValue + twoPercentOfGoalValue;\n const goalTargetLabel =\n metricValue < minValue\n ? 'underspending'\n : metricValue > maxValue\n ? 'overspending'\n : 'on track';\n return goalTargetLabel;\n }, []);\n\n // calculate ad spend total goals\n const calculateAdSpendTotalGoal = useCallback(\n (goalMetric, metricsValue) => {\n const ppcGoalValue = goalMetric?.sponsored_ad_spend?.value || null;\n const dspGoalValue = goalMetric?.dsp_spends?.value || null;\n\n const totalGoalValue =\n ppcGoalValue !== null && dspGoalValue !== null\n ? ppcGoalValue + dspGoalValue\n : ppcGoalValue !== null && dspGoalValue === null\n ? ppcGoalValue\n : ppcGoalValue === null && dspGoalValue !== null\n ? dspGoalValue\n : null;\n let adSpendTotal = {};\n if (totalGoalValue !== null) {\n adSpendTotal = {\n sign:\n goalMetric?.sponsored_ad_spend?.sign ||\n goalMetric?.dsp_spends?.sign,\n target: getGoalTargetLabel(totalGoalValue, metricsValue),\n value: totalGoalValue,\n };\n }\n\n return adSpendTotal;\n },\n [getGoalTargetLabel],\n );\n\n const getBBData = useCallback(\n (\n marketplace,\n BBdailyFact,\n bBGroupBy,\n childBrandId,\n startDate = null,\n endDate = null,\n ) => {\n setIsApiCall(true);\n setBbGraphLoader(true);\n getBuyBoxChartData(\n id,\n marketplace,\n BBdailyFact,\n bBGroupBy,\n childBrandId,\n startDate,\n endDate,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 200 && res.data?.bbep) {\n const avg =\n res.data.bbep\n .filter((record) => record.bbep)\n .reduce((acc, record) => acc + record.bbep, 0) /\n res.data.bbep.length || 0;\n\n const tempBBData = res.data.bbep.map((data) => {\n return {\n date: dayjs(data?.report_date).format('MMM D YYYY'),\n value: data?.bbep,\n avg: avg.toFixed(2),\n };\n });\n const total = tempBBData?.length ? tempBBData.length : 0;\n for (let i = 0; i <= Math.floor((total * 10) / 100); i += 1) {\n tempBBData.push({ avg: avg.toFixed(2) });\n }\n setBBChartData(tempBBData);\n setIsApiCall(false);\n setBbGraphLoader(false);\n } else {\n setBBChartData([{}]);\n setIsApiCall(false);\n setBbGraphLoader(false);\n }\n }\n });\n },\n [id],\n );\n\n // get seller sales performance data - metrics and line graph data\n const getSalesPerformanceData = useCallback(\n (\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n selectedMetrics,\n goalsMarketplaces,\n onGroupByClick = false,\n childBrand,\n startDate = null,\n endDate = null,\n ) => {\n setIsApiCall(true);\n setSalesGraphLoader(true);\n getDataAvailabeleChildBrandList(\n id,\n 'sales',\n SELLERSMALL,\n marketplace,\n null,\n selectedDailyFact,\n startDate,\n endDate,\n );\n getPerformance(\n id,\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n goalsMarketplaces,\n childBrand,\n startDate,\n endDate,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (res?.data?.daily_facts) {\n setPerformanceResponse(res.data);\n\n const salesGraphData = BindSalesGraphResponse(\n res?.data,\n selectedDailyFact,\n );\n setSalesChartData(salesGraphData);\n bindSalesResponseData(res?.data, selectedDailyFact);\n\n // get goal matrics data\n if (!onGroupByClick) {\n const adSpendTotalMetricsValue =\n res?.data?.daily_facts?.current_sum?.ad_spend_total;\n const goalMetric = res?.data?.daily_facts?.goal_metric;\n const goalMetricLength = Object.keys(goalMetric)?.length;\n\n if (goalMetricLength > 0) {\n const adSpendTotalGoals = calculateAdSpendTotalGoal(\n goalMetric,\n adSpendTotalMetricsValue,\n );\n const tempGoalMetricData =\n Object.keys(adSpendTotalGoals)?.length > 0\n ? {\n ...goalMetric,\n ad_spend_total: adSpendTotalGoals,\n }\n : goalMetric;\n\n setGoalsMetricData(tempGoalMetricData);\n } else {\n setGoalsMetricData({});\n }\n }\n if (selectedDailyFact === CUSTOM) {\n const salesGoalsGraphData = BindSalesGoalsGraphResponse(\n res?.data,\n selectedDailyFact,\n selectedMetrics,\n );\n setSalesGoalChartData(salesGoalsGraphData);\n }\n } else {\n setGoalsMetricData({});\n setSalesChartData([]);\n setSalesGoalChartData([]);\n setIsMetricsDisabled({\n revenueTotal: true,\n revenueOrganic: true,\n revenuePpc: true,\n revenueDsp: true,\n unitsSold: true,\n traffic: true,\n conversion: true,\n adSpendTotal: true,\n adSpendPpc: true,\n adSpendDsp: true,\n tacos: true,\n });\n }\n\n if (res?.data?.pf_oi_is?.length) {\n const lastUpdated = res?.data?.pf_oi_is[0]?.latest_date;\n res.data.pf_oi_is[0].latest_date =\n dayjs(lastUpdated).format('MMM DD YYYY');\n\n setDspData(res.data.pf_oi_is[0]);\n const ipiValue = parseFloat(\n res?.data?.pf_oi_is[0]?.inventory_performance_index,\n );\n if (Number.isNaN(ipiValue)) {\n setPieData([\n {\n name: 'Inventory',\n value: 'N/A',\n },\n {\n name: 'Total',\n value: 1000,\n },\n ]);\n } else {\n setPieData([\n {\n name: 'Inventory',\n value: ipiValue,\n },\n {\n name: 'Total',\n value: 1000 - ipiValue,\n },\n ]);\n }\n } else {\n setDspData(null);\n setPieData([\n { name: 'Inventory', value: 'N/A' },\n { name: 'Total', value: 1000 },\n ]);\n }\n setIsApiCall(false);\n setSalesGraphLoader(false);\n } else {\n setIsApiCall(false);\n setSalesGraphLoader(false);\n }\n }\n });\n },\n\n [\n getDataAvailabeleChildBrandList,\n id,\n bindSalesResponseData,\n calculateAdSpendTotalGoal,\n ],\n );\n\n // function call only when selected option is custom\n const checkDifferenceBetweenDates = (\n startDate,\n endDate,\n flag = null,\n marketplace = selectedMarketplace?.value,\n ) => {\n const temp = 'daily';\n let sd = startDate;\n let ed = endDate;\n setGroupBy(temp);\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n setCustomDate({ startDate, endDate });\n\n getSalesPerformanceData(\n flag,\n temp,\n marketplace,\n selectedSalesMetrics,\n goalsMarketplaceIds,\n false,\n selectedChildBrand,\n sd,\n ed,\n );\n };\n\n useEffect(() => {\n mounted.current = true;\n if (\n mounted.current &&\n (selectedMarketplace?.value || goalsMarketplaceIds?.length)\n ) {\n if (selectedTimeFrame.value === CUSTOM) {\n setIsSPCustomDateApply(true);\n checkDifferenceBetweenDates(\n selectedState[0].startDate,\n selectedState[0].endDate,\n CUSTOM,\n selectedMarketplace?.value,\n );\n } else {\n getSalesPerformanceData(\n selectedTimeFrame.value,\n groupBy,\n selectedMarketplace?.value,\n selectedSalesMetrics,\n goalsMarketplaceIds,\n false,\n selectedChildBrand,\n );\n }\n getBBData(\n selectedMarketplace?.value,\n bBDailyFact.value,\n BBGroupBy || 'daily',\n selectedChildBrand,\n );\n }\n return () => {\n mounted.current = false;\n };\n }, [selectedMarketplace, selectedChildBrand, goalsMarketplaceIds]);\n\n const renderCustomDateSubLabel = (props, flag) => {\n if (flag === 'sp') {\n if (selectedTimeFrame.value === CUSTOM && isSPCustomDateApply) {\n return `From - ${dayjs(selectedState[0].startDate).format(\n 'MMM D, YYYY',\n )} To - ${dayjs(selectedState[0].endDate).format('MMM D, YYYY')}`;\n }\n } else if (bBDailyFact.value === CUSTOM && isBBCustomDateApply) {\n return `From - ${dayjs(BBstate[0].startDate).format(\n 'MMM D, YYYY',\n )} To - ${dayjs(BBstate[0].endDate).format('MMM D, YYYY')}`;\n }\n\n return props.data.sub;\n };\n\n const getDays = (startDate, endDate) => {\n const diffTime = Math.abs(startDate - endDate);\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return diffDays;\n };\n\n const BBYearAndCustomDateFilter = (startDate, endDate, value) => {\n let temp = '';\n\n let sd = startDate;\n let ed = endDate;\n const diffDays = getDays(startDate, endDate);\n\n if (diffDays <= 60) {\n temp = 'daily';\n setBBGroupBy('daily');\n } else if (diffDays > 60 && diffDays <= 180) {\n temp = 'weekly';\n setBBGroupBy('weekly');\n } else if (diffDays > 180) {\n temp = 'monthly';\n setBBGroupBy('monthly');\n }\n\n if (value === CUSTOM) {\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n getBBData(\n selectedMarketplace?.value,\n value,\n temp,\n selectedChildBrand,\n sd,\n ed,\n );\n } else {\n getBBData(selectedMarketplace?.value, value, temp, selectedChildBrand);\n }\n };\n\n const handleSalesDailyFact = (event) => {\n const { value } = event;\n if (value !== CUSTOM) {\n setGoalsToggle(false);\n let groupByOption = 'daily';\n if (value === 'year') {\n groupByOption = 'weekly';\n }\n setIsSPCustomDateApply(false);\n setSelectedTimeFrame(event);\n setSelectedState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n setGroupBy(groupByOption);\n\n getSalesPerformanceData(\n value,\n groupByOption,\n selectedMarketplace?.value,\n selectedSalesMetrics,\n goalsMarketplaceIds,\n false,\n selectedChildBrand,\n );\n bindErrorMessage(SALEPERFORMANCE, salesMinDate);\n setIsAsinApiCallCustom(0);\n } else {\n setShowCustomDateModal(true);\n }\n };\n\n const handleBBDailyFact = (event) => {\n const { value } = event;\n\n if (value !== CUSTOM) {\n setBBDailyFact(event);\n setIsBBCustomDateApply(false);\n setBBState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'BBselection',\n },\n ]);\n getBBData(selectedMarketplace?.value, value, 'daily', selectedChildBrand);\n setBBGroupBy('daily');\n } else if (value === CUSTOM) {\n setShowBBCustomDateModal(true);\n }\n };\n\n const handleMarketplaceOptions = (event) => {\n if (event.value !== selectedMarketplace?.value) {\n setSelectedMarketplace(event);\n createMarektplaceIdsListOfGoals(event, goalsMarketplaceOptions);\n setCurrency(event.currency);\n setCurrencySymbol(getSymbolFromCurrency(event.currency));\n }\n };\n\n const handleChildBrandOptions = (event) => {\n if (event.value !== selectedChildBrand?.value) {\n setSelectedChildBrand(event);\n }\n };\n\n const handleGroupBy = (value) => {\n if (value !== groupBy) {\n setGroupBy(value);\n if (selectedTimeFrame.value === CUSTOM) {\n let sd = customDate.startDate;\n let ed = customDate.endDate;\n\n sd = `${customDate.startDate.getDate()}-${\n customDate.startDate.getMonth() + 1\n }-${customDate.startDate.getFullYear()}`;\n ed = `${customDate.endDate.getDate()}-${\n customDate.endDate.getMonth() + 1\n }-${customDate.endDate.getFullYear()}`;\n\n getSalesPerformanceData(\n selectedTimeFrame.value,\n value,\n selectedMarketplace?.value,\n selectedSalesMetrics,\n goalsMarketplaceIds,\n true,\n selectedChildBrand,\n sd,\n ed,\n );\n } else {\n getSalesPerformanceData(\n selectedTimeFrame.value,\n value,\n selectedMarketplace?.value,\n selectedSalesMetrics,\n goalsMarketplaceIds,\n true,\n selectedChildBrand,\n );\n }\n }\n };\n\n const applyCustomDate = (flag) => {\n if (flag === 'BBDate') {\n if (bBDailyFact.value !== CUSTOM)\n setBBDailyFact({\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n BBYearAndCustomDateFilter(\n BBstate[0].startDate,\n BBstate[0].endDate,\n CUSTOM,\n );\n setShowBBCustomDateModal(false);\n setIsBBCustomDateApply(true);\n } else {\n if (selectedTimeFrame.value !== CUSTOM)\n setSelectedTimeFrame({\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n checkDifferenceBetweenDates(\n selectedState[0].startDate,\n selectedState[0].endDate,\n CUSTOM,\n );\n bindErrorMessage(SALEPERFORMANCE, salesMinDate);\n setShowCustomDateModal(false);\n setIsSPCustomDateApply(true);\n setIsAsinApiCallCustom(Math.random());\n }\n };\n\n // get dropdown components\n const getDropdDownComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n const renderSalesPerformanceFilter = () => {\n return (\n \n \n
    \n
    \n
    View data for:
    \n
    \n
    \n
    \n {customerState?.account_type === PARENT ? (\n
    \n {DropDowns(\n 'BT-salesperformancedata-childBrandFilter',\n 'cursor',\n childBrandOptions,\n selectedChildBrand?.label,\n getDropdDownComponents,\n '',\n handleChildBrandOptions,\n salesGraphLoader || bBGraphLoader,\n null,\n selectedChildBrand,\n )}\n
    \n ) : (\n
    \n )}\n
    \n {displayAccountTypeFilter(isApiCall)}\n
    \n {dspPpcFlag?.isHavingDsp && !dspPpcFlag?.isHavingPpc ? null : (\n
    \n {DropDowns(\n 'BT-salesperformancedata-countryfilter',\n 'cursor',\n marketplaceOptions,\n selectedMarketplace?.label,\n getDropdDownComponents,\n '',\n handleMarketplaceOptions,\n salesGraphLoader || bBGraphLoader || minDateLoader,\n null,\n selectedMarketplace,\n )}\n
    \n )}\n
    \n
    \n
    \n \n \n );\n };\n\n const renderPositiveFeedbackPanel = () => {\n return (\n
    \n
    Positive Feedback
    \n
    \n {dataScrappedMsg}\n
    \n
    \n {dspData?.feedback_30\n ? dspData.feedback_30 === 'nan'\n ? 'N/A'\n : `${dspData?.feedback_30}%`\n : 'N/A'}\n
    \n
    Last 30 days
    \n
    \n {dspData?.feedback_365\n ? dspData.feedback_365 === 'nan'\n ? 'N/A'\n : `${dspData?.feedback_365}%`\n : 'N/A'}\n
    \n
    Last 12 months
    \n
    Last updated: {dspData?.latest_date}
    \n
    \n );\n };\n\n const renderOrderIssuesPanel = () => {\n return (\n
    \n {' '}\n
    Order Issues
    \n
    \n {dataScrappedMsg}\n
    \n
    \n {dspData?.order_defect_fba\n ? dspData.order_defect_fba === 'nan'\n ? 'N/A'\n : `${dspData.order_defect_fba}`\n : 'N/A'}\n
    \n
    Order Defect Rate
    \n
    \n {dspData?.policy_issues\n ? dspData.policy_issues === 'nan'\n ? 'N/A'\n : dspData.policy_issues\n : 'N/A'}\n
    \n
    Policy Violations
    \n
    Last updated: {dspData?.latest_date}
    \n
    \n );\n };\n\n const renderInventoryScorePanel = () => {\n return (\n
    \n
    Inventory Score (IPI)
    \n
    \n {dataScrappedMsg}\n
    \n \n
    \n {pieData?.length && !Number.isNaN(pieData[0].value)\n ? pieData[0].value\n : 'N/A'}\n
    Out of 1000
    \n
    \n
    \n Last updated: {dspData?.latest_date}\n
    \n
    \n );\n };\n\n const returnMinDate = () => {\n return salesMinDate === null\n ? new Date('01/01/1901')\n : new Date(salesMinDate);\n };\n\n const daysDiffForSales = dayjs(currentDate).diff(dayjs(salesMinDate), 'days');\n\n useEffect(() => {\n if (\n new Date(dayjs(selectedState[0].endDate).format('MM D YYYY')) <\n new Date(dayjs('2022-08-01').format('MM D YYYY'))\n ) {\n if (performanceData?.having_contract_type?.is_having_dsp) {\n setSelectedAdSpendSubType({\n adSpendTotal: false,\n adSpendPpc: false,\n adSpendDsp: true,\n });\n\n setIsMetricsDisabled({\n ...isMetricsDisabled,\n adSpendTotal: false,\n adSpendPpc: true,\n adSpendDsp: false,\n });\n }\n if (performanceData?.having_contract_type?.is_having_ppc) {\n setSelectedAdSpendSubType({\n adSpendTotal: true,\n adSpendPpc: false,\n adSpendDsp: false,\n });\n\n setIsMetricsDisabled({\n ...isMetricsDisabled,\n adSpendTotal: false,\n adSpendPpc: false,\n adSpendDsp: true,\n });\n }\n if (\n performanceData?.having_contract_type?.is_having_ppc &&\n performanceData?.having_contract_type?.is_having_dsp\n ) {\n setSelectedAdSpendSubType({\n adSpendTotal: false,\n adSpendPpc: false,\n adSpendDsp: true,\n });\n\n setIsMetricsDisabled({\n ...isMetricsDisabled,\n adSpendPpc: true,\n adSpendTotal: true,\n adSpendDsp: false,\n });\n }\n } else {\n if (performanceData?.having_contract_type?.is_having_dsp) {\n setSelectedAdSpendSubType({\n adSpendTotal: false,\n adSpendPpc: false,\n adSpendDsp: true,\n });\n\n setIsMetricsDisabled({\n ...isMetricsDisabled,\n adSpendTotal: true,\n adSpendPpc: true,\n adSpendDsp: false,\n });\n }\n if (performanceData?.having_contract_type?.is_having_ppc) {\n setSelectedAdSpendSubType({\n adSpendTotal: false,\n adSpendPpc: true,\n adSpendDsp: false,\n });\n\n setIsMetricsDisabled({\n ...isMetricsDisabled,\n adSpendTotal: true,\n adSpendPpc: false,\n adSpendDsp: true,\n });\n }\n if (\n performanceData?.having_contract_type?.is_having_ppc &&\n performanceData?.having_contract_type?.is_having_dsp\n ) {\n setSelectedAdSpendSubType({\n adSpendTotal: true,\n adSpendPpc: false,\n adSpendDsp: false,\n });\n\n setIsMetricsDisabled({\n ...isMetricsDisabled,\n adSpendTotal: false,\n adSpendPpc: false,\n adSpendDsp: false,\n });\n }\n }\n }, [selectedState]);\n\n return (\n <>\n
    \n {renderSalesPerformanceFilter()}\n {/* ********** PDV-7917 - Expose AMC and other Sections to BPs ********** */}\n {/* ********** PLEASE DO NOT REMOVE BELOW CODE. ********** */}\n {/* {!userInfo?.role?.includes('Customer') ||\n (userInfo?.role?.includes('Customer') &&\n customerState?.display_sales_performance) ? ( */}\n \n {/* ) : null} */}\n\n {/* ********** PDV-7917 - Expose AMC and other Sections to BPs ********** */}\n {/* ********** PLEASE DO NOT REMOVE BELOW CODE. ********** */}\n {/* {!userInfo?.role?.includes('Customer') ||\n (userInfo?.role?.includes('Customer') &&\n customerState?.display_seller_health) ? ( */}\n {/* https://bbe.atlassian.net/browse/PDV-9229 - hide seller health\n data for user other than super Admin */}\n <>\n {isSuperAdmin ? (\n \n

    Seller Health

    \n
    \n
    \n {dashboardDynamicError?.sales_performance_seller\n ?.seller_health ? (\n \n ) : null}\n
    \n
    \n\n \n
    \n {renderInventoryScorePanel()}\n {renderPositiveFeedbackPanel()}\n {renderOrderIssuesPanel()}\n
    \n
    \n
    \n ) : null}\n \n \n {/* ) : null} */}\n
    \n {/* custom date modal for sale performance graph */}\n {\n setShowCustomDateModal(false);\n if (selectedTimeFrame.value !== CUSTOM) {\n setSelectedState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setSelectedState([item.selection]);\n }}\n onApply={() => {\n applyCustomDate('SPDate');\n }}\n currentDate={currentDate}\n minDate={returnMinDate()}\n />\n \n );\n}\n\nPerformanceReport.defaultProps = {\n id: '',\n data: {},\n minDateLoader: false,\n dspPpcFlag: {},\n selectedTimeFrame: {},\n setSelectedTimeFrame: () => {},\n selectedState: [],\n setSelectedState: () => {},\n currentDate: new Date(),\n selectedMarketplace: {},\n customDateError: {},\n childBrandOptions: [],\n selectedChildBrand: {},\n setSelectedMarketplace: () => {},\n createMarektplaceIdsListOfGoals: () => {},\n marketplaceOptions: [],\n salesMinDate: '',\n currency: '',\n setCurrency: () => {},\n currencySymbol: '',\n setCurrencySymbol: () => {},\n bindErrorMessage: () => {},\n goalsMarketplaceIds: [],\n goalsMarketplaceOptions: [],\n setSelectedChildBrand: () => {},\n displayAccountTypeFilter: () => {},\n renderDataAvailableChildList: () => {},\n getDataAvailabeleChildBrandList: () => {},\n};\n\nPerformanceReport.propTypes = {\n id: string,\n data: shape({}),\n minDateLoader: bool,\n dspPpcFlag: shape({}),\n selectedTimeFrame: shape({}),\n setSelectedTimeFrame: func,\n selectedState: arrayOf(shape()),\n setSelectedState: func,\n currentDate: instanceOf(Date),\n selectedMarketplace: shape({}),\n createMarektplaceIdsListOfGoals: func,\n customDateError: shape({}),\n selectedChildBrand: shape({}),\n setSelectedMarketplace: func,\n marketplaceOptions: arrayOf(shape({})),\n goalsMarketplaceOptions: arrayOf(shape({})),\n childBrandOptions: arrayOf(shape({})),\n salesMinDate: string,\n currency: string,\n setCurrency: func,\n currencySymbol: string,\n setCurrencySymbol: func,\n bindErrorMessage: func,\n goalsMarketplaceIds: arrayOf(string),\n setSelectedChildBrand: func,\n displayAccountTypeFilter: func,\n renderDataAvailableChildList: func,\n getDataAvailabeleChildBrandList: func,\n};\n","import dayjs from 'dayjs';\n\nconst BindVendorSalesGraphData = (response, selectedMetrics) => {\n const tempData = [];\n // filterout previous data in one temporary object.\n if (response?.result?.previous?.length) {\n response.result.previous.forEach((item) => {\n const previousDate = dayjs(item?.report_date).format('MMM D YYYY');\n if (selectedMetrics === 'orderedRevenue') {\n tempData.push({\n orderedRevenuePrevious: item?.ordered_revenue,\n glanceViewsPrevious: item?.glance_views,\n conversionRatePrevious: item?.conversion_rate,\n orderedUnitsPrevious: item?.ordered_units,\n previousDate,\n\n orderedRevenuePreviousLabel:\n item?.ordered_revenue !== null\n ? item?.ordered_revenue.toFixed(2)\n : '0.00',\n glanceViewsPreviousLabel:\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0',\n orderedUnitsPreviousLabel:\n item?.ordered_units !== null ? item.ordered_units.toFixed(0) : '0',\n conversionRatePreviousLabel:\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0',\n });\n } else {\n tempData.push({\n shippedCOGsPrevious: item?.shipped_cogs,\n glanceViewsPrevious: item?.glance_views,\n conversionRatePrevious: item?.conversion_rate,\n shippedUnitsPrevious: item?.shipped_units,\n previousDate,\n\n shippedCOGsPreviousLabel:\n item?.shipped_cogs !== null ? item.shipped_cogs.toFixed(2) : '0.00',\n glanceViewsPreviousLabel:\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0',\n shippedUnitsPreviousLabel:\n item?.shipped_units !== null ? item.shipped_units.toFixed(0) : '0',\n conversionRatePreviousLabel:\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0',\n });\n }\n });\n }\n\n // filterout current data in one temporary object.\n if (response?.result?.current?.length) {\n response.result.current.forEach((item, index) => {\n const currentReportDate = dayjs(item?.report_date).format('MMM D YYYY');\n // let indexNumber = index;\n // add the current data at same index of prevoius in temporary object\n if (response.result.previous && index < response.result.previous.length) {\n if (selectedMetrics === 'orderedRevenue') {\n tempData[index].date = currentReportDate;\n tempData[index].orderedRevenueCurrent = item?.ordered_revenue;\n tempData[index].glanceViewsCurrent = item?.glance_views;\n tempData[index].orderedUnitsCurrent = item?.ordered_units;\n tempData[index].conversionRateCurrent = item?.conversion_rate;\n\n tempData[index].orderedRevenueCurrentLabel =\n item?.ordered_revenue !== null\n ? item.ordered_revenue.toFixed(2)\n : '0.00';\n tempData[index].glanceViewsCurrentLabel =\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0';\n tempData[index].orderedUnitsCurrentLabel =\n item?.ordered_units !== null ? item.ordered_units.toFixed(0) : '0';\n tempData[index].conversionRateCurrentLabel =\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0';\n } else {\n tempData[index].date = currentReportDate;\n tempData[index].shippedCOGsCurrent = item?.shipped_cogs;\n tempData[index].glanceViewsCurrent = item?.glance_views;\n tempData[index].shippedUnitsCurrent = item?.shipped_units;\n tempData[index].conversionRateCurrent = item?.conversion_rate;\n\n tempData[index].shippedCOGsCurrentLabel =\n item?.shipped_cogs !== null ? item.shipped_cogs.toFixed(2) : '0.00';\n tempData[index].glanceViewsCurrentLabel =\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0';\n tempData[index].shippedUnitsCurrentLabel =\n item?.shipped_units !== null ? item.shipped_units.toFixed(0) : '0';\n tempData[index].conversionRateCurrentLabel =\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0';\n }\n } else if (selectedMetrics === 'orderedRevenue') {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previous value null and previous label 0\n\n tempData.push({\n orderedRevenueCurrent: item?.ordered_revenue,\n glanceViewsCurrent: item?.glance_views,\n orderedUnitsCurrent: item?.ordered_units,\n conversionRateCurrent: item?.conversion_rate,\n date: currentReportDate,\n\n orderedRevenuePrevious: null,\n glanceViewsPrevious: null,\n orderedUnitsPrevious: null,\n conversionRatePrevious: null,\n\n orderedRevenueCurrentLabel:\n item?.ordered_revenue !== null\n ? item.ordered_revenue.toFixed(2)\n : '0.00',\n glanceViewsCurrentLabel:\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0',\n orderedUnitsCurrentLabel:\n item?.ordered_units !== null ? item.ordered_units.toFixed(0) : '0',\n conversionRateCurrentLabel:\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0',\n\n orderedRevenuePreviousLabel: '0.00',\n glanceViewsPreviousLabel: '0',\n orderedUnitsPreviousLabel: '0',\n conversionRatePreviousLabel: '0',\n });\n } else {\n tempData.push({\n shippedCOGsCurrent: item?.shipped_cogs,\n glanceViewsCurrent: item?.glance_views,\n shippedUnitsCurrent: item?.shipped_units,\n conversionRateCurrent: item?.conversion_rate,\n date: currentReportDate,\n\n shippedCOGsPrevious: null,\n glanceViewsPrevious: null,\n shippedUnitsPrevious: null,\n conversionRatePrevious: null,\n\n shippedCOGsCurrentLabel:\n item?.shipped_cogs !== null ? item.shipped_cogs.toFixed(2) : '0.00',\n glanceViewsCurrentLabel:\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0',\n shippedUnitsCurrentLabel:\n item?.shipped_units !== null ? item.shipped_units.toFixed(0) : '0',\n conversionRateCurrentLabel:\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0',\n\n shippedCOGsPreviousLabel: '0.00',\n glanceViewsPreviousLabel: '0',\n shippedUnitsPreviousLabel: '0',\n conversionRatePreviousLabel: '0',\n });\n }\n });\n }\n\n return tempData;\n};\n\nexport default BindVendorSalesGraphData;\n","import dayjs from 'dayjs';\nimport { ORDEREDREVENUE } from '../../../../../../constants';\n\nconst BindVendorSalesGoalsGraphData = (response, selectedMetrics) => {\n const finalData = [];\n\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.report_date)\n : response?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n // filterout current data in one temporary object.\n if (response?.result?.current?.length) {\n response.result.current.forEach((item, index) => {\n const tempData = {};\n const currentReportDate = dayjs(item?.report_date).format('MMM D YYYY');\n tempData.endDate = nextReportDate(\n index,\n response?.result?.current,\n 'previous',\n );\n tempData.date = currentReportDate;\n if (selectedMetrics === ORDEREDREVENUE) {\n tempData.orderedRevenueCurrent = item?.ordered_revenue;\n tempData.orderedRevenueGoals = item?.goal_ordered_revenue;\n\n tempData.glanceViewsCurrent = item?.glance_views;\n tempData.glanceViewsGoals = item?.goal_glance_views;\n\n tempData.conversionRateCurrent = item?.conversion_rate;\n tempData.conversionRateGoals = item?.goal_conversion_rate;\n\n tempData.orderedRevenueCurrentLabel =\n item?.ordered_revenue !== null\n ? item.ordered_revenue.toFixed(2)\n : '0.00';\n tempData.orderedRevenueGoalsLabel = item?.goal_ordered_revenue\n ? item?.goal_ordered_revenue?.toFixed(2)\n : '0.00';\n\n tempData.glanceViewsCurrentLabel =\n item?.glance_views !== null ? item.glance_views.toFixed(2) : '0.00';\n tempData.glanceViewsGoalsLabel = item?.goal_glance_views\n ? item?.goal_glance_views?.toFixed(2)\n : '0.00';\n\n tempData.conversionRateCurrentLabel =\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0.00';\n tempData.conversionRateGoalsLabel = item?.goal_conversion_rate\n ? item?.goal_conversion_rate?.toFixed(2)\n : '0.00';\n } else {\n tempData.shippedCOGsCurrent = item?.shipped_cogs;\n tempData.shippedCOGsGoals = item?.goal_shipped_cogs;\n\n tempData.glanceViewsCurrent = item?.glance_views;\n tempData.glanceViewsGoals = item?.goal_glance_views;\n\n tempData.conversionRateCurrent = item?.conversion_rate + 200;\n tempData.conversionRateGoals = item?.goal_conversion_rate + 200;\n\n tempData.shippedCOGsCurrentLabel =\n item?.shipped_cogs !== null ? item.shipped_cogs.toFixed(2) : '0.00';\n tempData.shippedCOGsGoalsLabel = item?.goal_shipped_cogs\n ? item?.goal_shipped_cogs?.toFixed(2)\n : '0.00';\n\n tempData.glanceViewsCurrentLabel =\n item?.glance_views !== null ? item.glance_views.toFixed(2) : '0.00';\n tempData.glanceViewsGoalsLabel = item?.goal_glance_views\n ? item?.goal_glance_views?.toFixed(2)\n : '0.00';\n\n tempData.conversionRateCurrentLabel =\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0.00';\n tempData.conversionRateGoalsLabel = item?.goal_conversion_rate\n ? item?.goal_conversion_rate?.toFixed(2)\n : '0.00';\n }\n\n finalData.push(tempData);\n });\n }\n\n return finalData;\n};\n\nexport default BindVendorSalesGoalsGraphData;\n","/* eslint-disable camelcase */\nimport React, { useEffect, useRef } from 'react';\n\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport { arrayOf, shape, string } from 'prop-types';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport {\n CONVERSIONRATE,\n CUSTOM,\n GLANCEVIEWS,\n ORDEREDREVENUE,\n ORDEREDUNITS,\n SHIPPEDCOGS,\n SHIPPEDUNITS,\n VendorMetricsColorSet,\n VendorMetricsNames,\n} from '../../../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\n\nconst _ = require('lodash');\n\nexport default function VendorSalePerformanceChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n}) {\n const chart = useRef(null);\n\n useEffect(() => {\n const currencyAxisValue = [ORDEREDREVENUE, SHIPPEDCOGS];\n const percentageAxisValue = [CONVERSIONRATE];\n const unitAxisValues = [GLANCEVIEWS, ORDEREDUNITS, SHIPPEDUNITS];\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 10;\n chart.current.paddingLeft = 0;\n chart.current.margin(0);\n chart.current.logo.disabled = true; // disable amchart logo\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n\n function createValueAxis(axisColor) {\n const localValueAxis = chart.current.yAxes.push(\n new am4charts.ValueAxis(),\n );\n localValueAxis.renderer.grid.template.disabled = true;\n localValueAxis.cursorTooltipEnabled = false;\n localValueAxis.renderer.baseGrid.disabled = true;\n localValueAxis.numberFormatter = new am4core.NumberFormatter();\n localValueAxis.numberFormatter.numberFormat = `#.#a`;\n localValueAxis.extraMax = 0.005;\n localValueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n localValueAxis.numberFormatter.smallNumberPrefixes = [];\n localValueAxis.stroke = am4core.color(axisColor);\n localValueAxis.strokeOpacity = 0.5;\n return localValueAxis;\n }\n\n let valueAxis = createValueAxis();\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n \n `;\n\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (currencyAxisValue.includes(item)) {\n format = `${currencySymbol}#.#a`;\n } else if (unitAxisValues.includes(item)) {\n format = `#.#a`;\n } else if (percentageAxisValue.includes(item)) {\n format = `#.#'%'`;\n }\n return format;\n }\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n\n const snapToSeries = [];\n let tooltipValue = '';\n let lableName = '';\n\n // loop for generate tooltip\n _.keys(selectedMetrics).map((item) => {\n lableName = VendorMetricsNames[item];\n const currentLabel = `${item}CurrentLabel`;\n const previousLabel = `${item}PreviousLabel`;\n const colorCode = VendorMetricsColorSet[item];\n\n tooltipValue = `${tooltipValue} ${lableName}`;\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n null,\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n currencySymbol,\n null,\n null,\n )}`;\n }\n } else if (unitAxisValues.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n null,\n null,\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n null,\n null,\n )}`;\n }\n } else if (percentageAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n if (selectedDF !== CUSTOM) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n '%',\n null,\n )}`;\n }\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const previousValue = `${item}Previous`;\n const seriesName = `${item}Series`;\n const colorCode = VendorMetricsColorSet[item];\n\n valueAxis = createValueAxis(colorCode);\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (index === 1) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = previousValue;\n series2.name = previousValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n series2.tooltipHTML = `${tooltipValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n // series2.propertyFields.strokeDasharray = dashLine;\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n VendorMetricsNames[item],\n VendorMetricsColorSet[item],\n currentLabel,\n currencySymbol,\n null,\n null,\n )}`;\n } else if (unitAxisValues.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n VendorMetricsNames[item],\n VendorMetricsColorSet[item],\n currentLabel,\n null,\n null,\n null,\n )}`;\n } else if (percentageAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n VendorMetricsNames[item],\n VendorMetricsColorSet[item],\n currentLabel,\n null,\n '%',\n null,\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n valueAxis = createValueAxis(VendorMetricsColorSet[item]);\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (index === 1 || index === 3) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = `${item}Current`;\n series.dataFields.dateX = 'date';\n series.name = `${item}Series`;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(VendorMetricsColorSet[item]);\n series.fill = am4core.color('#2e384d');\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(VendorMetricsColorSet[item]);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n return () => chart.current && chart.current.dispose();\n }, [chartData, chartId, currencySymbol, selectedDF, selectedMetrics]);\n\n return
    ;\n}\n\nVendorSalePerformanceChart.defaultProps = {\n currencySymbol: '',\n selectedDF: '',\n chartData: [],\n selectedMetrics: {},\n};\n\nVendorSalePerformanceChart.propTypes = {\n currencySymbol: string,\n selectedDF: string,\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n selectedMetrics: shape({}),\n};\n","/* eslint-disable camelcase */\nimport React, { useEffect, useRef } from 'react';\n\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport { arrayOf, shape, string } from 'prop-types';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport {\n CONVERSIONRATE,\n GLANCEVIEWS,\n ORDEREDREVENUE,\n ORDEREDUNITS,\n SHIPPEDCOGS,\n SHIPPEDUNITS,\n VendorMetricsColorSet,\n VendorMetricsNames,\n} from '../../../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\n\nconst _ = require('lodash');\n\nfunction VendorSalePerformanceGoalsChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n}) {\n const chart = useRef(null);\n useEffect(() => {\n const currencyAxisValue = [ORDEREDREVENUE, SHIPPEDCOGS];\n const percentageAxisValue = [CONVERSIONRATE];\n const unitAxisValues = [GLANCEVIEWS, ORDEREDUNITS, SHIPPEDUNITS];\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 10;\n chart.current.paddingLeft = 0;\n chart.current.margin(0);\n chart.current.logo.disabled = true; // disable amchart logo\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n\n function createValueAxis(axisColor) {\n const localValueAxis = chart.current.yAxes.push(\n new am4charts.ValueAxis(),\n );\n localValueAxis.renderer.grid.template.disabled = true;\n localValueAxis.cursorTooltipEnabled = false;\n localValueAxis.renderer.baseGrid.disabled = true;\n localValueAxis.numberFormatter = new am4core.NumberFormatter();\n localValueAxis.numberFormatter.numberFormat = `#.#a`;\n localValueAxis.extraMax = 0.005;\n localValueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n localValueAxis.numberFormatter.smallNumberPrefixes = [];\n localValueAxis.stroke = am4core.color(axisColor);\n localValueAxis.strokeOpacity = 0.5;\n return localValueAxis;\n }\n\n let valueAxis = createValueAxis();\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n \n `;\n\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (currencyAxisValue.includes(item)) {\n format = `${currencySymbol}#.#a`;\n } else if (unitAxisValues.includes(item)) {\n format = `#.#a`;\n } else if (percentageAxisValue.includes(item)) {\n format = `#.#'%'`;\n }\n return format;\n }\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n\n const snapToSeries = [];\n let tooltipValue = '';\n let lableName = '';\n\n // loop for generate tooltip\n _.keys(selectedMetrics).map((item) => {\n lableName = VendorMetricsNames[item];\n const currentLabel = `${item}CurrentLabel`;\n const goalsLabel = `${item}GoalsLabel`;\n const colorCode = VendorMetricsColorSet[item];\n\n tooltipValue = `${tooltipValue} ${lableName}`;\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n null,\n )}`;\n\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n currencySymbol,\n null,\n null,\n )}`;\n } else if (unitAxisValues.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n null,\n null,\n )}`;\n\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n null,\n null,\n )}`;\n } else if (percentageAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n '%',\n null,\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const goalsValue = `${item}Goals`;\n const seriesName = `${item}Series`;\n const colorCode = VendorMetricsColorSet[item];\n\n valueAxis = createValueAxis(colorCode);\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (index === 1) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = goalsValue;\n series2.name = goalsValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n series2.tooltipHTML = `${tooltipValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n // series2.propertyFields.strokeDasharray = dashLine;\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n VendorMetricsNames[item],\n VendorMetricsColorSet[item],\n currentLabel,\n currencySymbol,\n null,\n null,\n )}`;\n } else if (unitAxisValues.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n VendorMetricsNames[item],\n VendorMetricsColorSet[item],\n currentLabel,\n null,\n null,\n null,\n )}`;\n } else if (percentageAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n VendorMetricsNames[item],\n VendorMetricsColorSet[item],\n currentLabel,\n null,\n '%',\n null,\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n valueAxis = createValueAxis(VendorMetricsColorSet[item]);\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (index === 1 || index === 3) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = `${item}Current`;\n series.dataFields.dateX = 'date';\n series.name = `${item}Series`;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(VendorMetricsColorSet[item]);\n series.fill = am4core.color('#2e384d');\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(VendorMetricsColorSet[item]);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n return () => chart.current && chart.current.dispose();\n }, [chartData, chartId, currencySymbol, selectedDF, selectedMetrics]);\n\n return
    ;\n}\n\nexport default VendorSalePerformanceGoalsChart;\n\nVendorSalePerformanceGoalsChart.defaultProps = {\n currencySymbol: '',\n selectedDF: '',\n chartData: [],\n selectedMetrics: {},\n};\n\nVendorSalePerformanceGoalsChart.propTypes = {\n currencySymbol: string,\n selectedDF: string,\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n selectedMetrics: shape({}),\n};\n","import React, { Fragment } from 'react';\n\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { toast } from 'react-toastify';\nimport { components } from 'react-select';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport ASINPerformance from '../SellerReporting/ASINPerformance';\nimport VendorSalePerformanceChart from './VendorSalePerformanceChart';\nimport VendorSalePerformanceGoalsChart from './VendorSalePerformanceGoalsChart';\nimport { ArrowUpIcon, ArrowDownIcon } from '../../../../../../theme/images';\nimport {\n WhiteCard,\n PageLoader,\n NoData,\n DropdownIndicator,\n ToggleButton,\n CardMetrics,\n DropDowns,\n ToggleSwitch,\n GrayMessageBar,\n MultipleDashedLineLabel,\n} from '../../../../../../common';\nimport {\n vendorSalesMetricsTypeOptions,\n noGraphDataMessage,\n VendorMetricsNames,\n performanceInsightMessage,\n showMetricsTooltipForVendorSales,\n metricsVendorSalesKey,\n dailyWeeklyMonthlyOptions,\n ORDEREDREVENUE,\n SHIPPEDCOGS,\n GLANCEVIEWS,\n CONVERSIONRATE,\n ORDEREDUNITS,\n SHIPPEDUNITS,\n CUSTOM,\n SALEPERFORMANCE,\n VENDORSMALL,\n} from '../../../../../../constants';\n\nconst _ = require('lodash');\n\nexport default function VendorSalesPerformancePanel({\n isApiCall,\n goalsToggle,\n salesGraphLoader,\n hideOrderedRevenue,\n isSPCustomDateApply,\n\n isAsinApiCallCustom,\n\n groupBy,\n customerId,\n currencySymbol,\n\n metricsType,\n activeSales,\n selectedValue,\n goalsMetricData,\n salesDifference,\n customDateError,\n salesCurrentTotal,\n salesPreviousTotal,\n selectedChildBrand,\n selectedMarketplace,\n\n customDate,\n salesChartData,\n salesGoalChartData,\n\n setActiveSales,\n handleMetricsType,\n handleGroupBy,\n setGoalsToggle,\n renderDataAvailableChildList,\n}) {\n const { Option, SingleValue } = components;\n\n const metricsTypeFilterOption = (props) => {\n return (\n \n
    \n {props?.data?.label}\n
    \n \n );\n };\n\n const metricsTypeSingleFilterOption = (props) => (\n \n {props?.data?.label}\n \n );\n\n const getMetricTypeSelectComponents = () => {\n return {\n Option: metricsTypeFilterOption,\n SingleValue: metricsTypeSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n const dashboardDynamicError = useSelector(\n (newState) => newState.userState?.showDynamicMsg,\n );\n\n const bindValues = (value, name = null) => {\n const decimal = _.split(value, '.', 2);\n if (decimal[1] !== undefined) {\n return (\n \n {name === ORDEREDREVENUE || name === SHIPPEDCOGS\n ? currencySymbol\n : null}\n {decimal[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n .{decimal[1].slice(0, 2)}\n \n );\n }\n return (\n \n {name === ORDEREDREVENUE || name === SHIPPEDCOGS\n ? currencySymbol\n : null}\n {decimal[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n \n );\n };\n\n const setSalesBoxClass = (name, classValue) => {\n let selectedClass = '';\n if (Object.prototype.hasOwnProperty.call(activeSales, name)) {\n selectedClass = `order-chart-box ${classValue} fix-height`;\n } else if (_.size(activeSales) === 4) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else if (goalsToggle && _.size(activeSales) === 2) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n return selectedClass;\n };\n\n const setBoxToggle = (name) => {\n if (\n Object.prototype.hasOwnProperty.call(activeSales, name) &&\n _.size(activeSales) > 1\n ) {\n setActiveSales(_.omit(activeSales, [name]));\n } else if (_.size(activeSales) < 4) {\n setActiveSales(_.omit(_.assign(activeSales, { [name]: true })));\n if (\n _.size(_.assign(activeSales, { [name]: true })) === 2 &&\n goalsToggle\n ) {\n toast.info('Maximum two goals at a time');\n }\n }\n };\n\n const renderMetricsType = () => {\n return (\n
    \n {DropDowns(\n 'BT-VendorSalesPerformanceFilters',\n 'days-performance',\n vendorSalesMetricsTypeOptions,\n metricsType?.label,\n getMetricTypeSelectComponents,\n vendorSalesMetricsTypeOptions?.[0],\n handleMetricsType,\n isApiCall,\n null,\n metricsType,\n )}\n
    \n
    \n );\n };\n\n const rednerSaleGroupBy = () => {\n const previousClassName =\n _.size(activeSales) === 1\n ? `${_.keys(activeSales)[0]} block`\n : 'darkGray block';\n return (\n
    \n {_.size(activeSales) <= 2 ? (\n
    \n
      \n
    • \n
      \n \n Recent\n
      \n
    • \n {selectedValue.value !== CUSTOM ? (\n
    • \n \n
    • \n ) : goalsToggle ? (\n
    • \n \n
    • \n ) : null}\n
    \n
    \n ) : (\n
    \n )}\n
    \n \n
    \n
      \n {dailyWeeklyMonthlyOptions?.map((item) => {\n return (\n
    • \n handleGroupBy(item?.value)}\n />\n \n
    • \n );\n })}\n
    \n
    \n
    \n
    \n
    \n );\n };\n\n const returnDisbaledClass = (current, previous) => {\n return !current && !previous ? 'disabled' : null;\n };\n\n const returnTooltipMessge = (key = '') => {\n return `No ${key} available for this period.`;\n };\n\n // display goal target html\n const displayGoalTargetHTML = (sign, target, value) => {\n return (\n
    \n
    \n Target {sign === 'dollar' ? '$' : null}\n {value\n ?.toFixed(2)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n {sign === 'percentage' ? '%' : null}\n
    \n \n {target}\n
    \n
    \n );\n };\n\n const renderSalesBox = (matricsName, className) => {\n let currentTotal = 0;\n let previousTotal = 0;\n let difference = 0;\n let boxActiveClass = '';\n const name = matricsName;\n let displayMatricsName;\n\n if (name === ORDEREDREVENUE) {\n currentTotal = salesCurrentTotal?.ordered_revenue\n ? salesCurrentTotal.ordered_revenue\n : 0;\n previousTotal = salesPreviousTotal?.ordered_revenue\n ? salesPreviousTotal.ordered_revenue\n : 0;\n difference = salesDifference?.ordered_revenue\n ? salesDifference.ordered_revenue\n : 'N/A';\n boxActiveClass = 'ad-sales-active';\n displayMatricsName = matricsName;\n } else if (name === SHIPPEDCOGS) {\n currentTotal = salesCurrentTotal?.shipped_cogs\n ? salesCurrentTotal.shipped_cogs\n : 0;\n previousTotal = salesPreviousTotal?.shipped_cogs\n ? salesPreviousTotal.shipped_cogs\n : 0;\n difference = salesDifference?.shipped_cogs\n ? salesDifference.shipped_cogs\n : 'N/A';\n boxActiveClass = 'ad-sales-active';\n displayMatricsName = matricsName;\n } else if (name === GLANCEVIEWS) {\n currentTotal = salesCurrentTotal?.glance_views\n ? salesCurrentTotal.glance_views\n : 0;\n previousTotal = salesPreviousTotal?.glance_views\n ? salesPreviousTotal.glance_views\n : 0;\n difference = salesDifference?.glance_views\n ? salesDifference.glance_views\n : 'N/A';\n\n boxActiveClass = 'ad-spend-active';\n displayMatricsName = matricsName;\n } else if (name === CONVERSIONRATE) {\n currentTotal = salesCurrentTotal?.conversion_rate\n ? salesCurrentTotal.conversion_rate\n : 0;\n previousTotal = salesPreviousTotal?.conversion_rate\n ? salesPreviousTotal.conversion_rate\n : 0;\n difference = salesDifference?.conversion_rate\n ? salesDifference.conversion_rate\n : 'N/A';\n\n boxActiveClass = 'ad-conversion-active';\n displayMatricsName = matricsName;\n } else if (name === ORDEREDUNITS) {\n currentTotal = salesCurrentTotal?.ordered_units\n ? salesCurrentTotal.ordered_units\n : 0;\n previousTotal = salesPreviousTotal?.ordered_units\n ? salesPreviousTotal.ordered_units\n : 0;\n difference = salesDifference?.ordered_units\n ? salesDifference.ordered_units\n : 'N/A';\n\n boxActiveClass = 'impression-active';\n displayMatricsName = matricsName;\n } else if (name === SHIPPEDUNITS) {\n currentTotal = salesCurrentTotal?.shipped_units\n ? salesCurrentTotal.shipped_units\n : 0;\n previousTotal = salesPreviousTotal?.shipped_units\n ? salesPreviousTotal.shipped_units\n : 0;\n difference = salesDifference?.shipped_units\n ? salesDifference.shipped_units\n : 'N/A';\n\n boxActiveClass = 'impression-active';\n displayMatricsName = matricsName;\n }\n\n const showGoalsTarget =\n matricsName === ORDEREDREVENUE ||\n matricsName === SHIPPEDCOGS ||\n matricsName === GLANCEVIEWS ||\n matricsName === CONVERSIONRATE;\n\n return (\n
    \n \n setBoxToggle(name)}\n role=\"presentation\"\n >\n {' '}\n
    \n {VendorMetricsNames[displayMatricsName].toUpperCase()}\n
    \n
    \n {name === CONVERSIONRATE\n ? `${currentTotal.toFixed(2)}%`\n : bindValues(currentTotal, name)}\n
    \n
    \n {' '}\n vs{' '}\n {name === CONVERSIONRATE\n ? `${previousTotal.toFixed(2)}%`\n : name === ORDEREDREVENUE || name === SHIPPEDCOGS\n ? `${\n currencySymbol !== null ? currencySymbol : ''\n }${previousTotal\n .toFixed(2)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`\n : previousTotal\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n
    \n
    \n 0\n ? 'perentage-value mt-3 pt-1'\n : 'perentage-value down mt-3 pt-1'\n }\n >\n {!Number.isNaN(difference) && difference > 0 ? (\n \n ) : !Number.isNaN(difference) && difference < 0 ? (\n \n ) : (\n ''\n )}\n {difference !== 'N/A'\n ? `${difference.toString().replace('-', '')}%`\n : 'N/A'}\n
    \n {showGoalsTarget && goalsMetricData?.[matricsName]\n ? displayGoalTargetHTML(\n goalsMetricData?.[matricsName]?.sign,\n goalsMetricData?.[matricsName]?.target,\n goalsMetricData?.[matricsName]?.value,\n )\n : null}\n
    \n
    \n \n
    \n );\n };\n\n // display goals toggle button\n const showGoalsToggle = () => {\n return (\n \n \n Goals\n {\n setGoalsToggle(!goalsToggle);\n setActiveSales(\n metricsType?.value === ORDEREDREVENUE\n ? {\n orderedRevenue: true,\n }\n : {\n shippedCOGs: true,\n },\n );\n }}\n checked={goalsToggle}\n />\n \n \n \n );\n };\n\n const renderErrorMessage = () => {\n let { fromDate } = customDateError;\n let { toDate } = customDateError;\n\n fromDate = dayjs(fromDate).format('MM/DD/YYYY');\n toDate = dayjs(toDate).subtract(1, 'day').format('MM/DD/YYYY');\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n };\n\n const renderSalePerformancePanel = () => {\n return (\n \n <>\n
    \n
    \n {' '}\n

    \n {' '}\n Sales Performance\n

    \n
    \n {renderMetricsType()}\n
    \n
    \n
    \n {dashboardDynamicError?.sales_performance_vendor?.placeholder ? (\n \n ) : null}\n
    \n
    \n\n {renderDataAvailableChildList('sales')}\n {selectedValue.value !== CUSTOM ? (\n \n ) : null}\n\n {metricsType.value === ORDEREDREVENUE ? (\n
    \n {renderSalesBox(\n ORDEREDREVENUE,\n 'col-lg-3 col-md-3 pr-1 pl-0 col-6 mb-3',\n )}\n {renderSalesBox(\n GLANCEVIEWS,\n 'col-lg-3 col-md-3 pr-1 pl-1 col-6 mb-3',\n )}\n {renderSalesBox(\n CONVERSIONRATE,\n 'col-lg-3 col-md-3 pr-1 pl-1 col-6 mb-3',\n )}\n {renderSalesBox(\n ORDEREDUNITS,\n 'col-lg-3 col-md-3 pl-1 pr-0 col-6 mb-3',\n )}\n
    \n ) : (\n
    \n {renderSalesBox(\n SHIPPEDCOGS,\n 'col-lg-3 col-md-3 pr-1 pl-0 col-6 mb-3',\n )}\n {renderSalesBox(\n GLANCEVIEWS,\n 'col-lg-3 col-md-3 pr-1 pl-1 col-6 mb-3',\n )}\n {renderSalesBox(\n CONVERSIONRATE,\n 'col-lg-3 col-md-3 pr-1 pl-1 col-6 mb-3',\n )}\n {renderSalesBox(\n SHIPPEDUNITS,\n 'col-lg-3 col-md-3 pl-1 pr-0 col-6 mb-3',\n )}\n
    \n )}\n {showGoalsToggle()}\n {selectedValue.value === CUSTOM &&\n customDateError.accountType === VENDORSMALL &&\n customDateError.selectedTab === SALEPERFORMANCE\n ? renderErrorMessage()\n : null}\n {rednerSaleGroupBy()}\n
    \n\n {salesGraphLoader ? (\n \n ) : salesChartData?.length !== 0 && !goalsToggle ? (\n \n ) : salesGoalChartData?.length !== 0 && goalsToggle ? (\n \n ) : (\n {noGraphDataMessage}\n )}\n \n\n \n \n );\n };\n\n return (\n <>\n {showMetricsTooltipForVendorSales.map((key) => {\n return (\n \n {!salesCurrentTotal[key] &&\n !salesPreviousTotal[key] &&\n !isApiCall ? (\n \n ) : null}\n \n );\n })}\n {renderSalePerformancePanel()}\n \n );\n}\n\nVendorSalesPerformancePanel.defaultProps = {\n isApiCall: false,\n salesGraphLoader: false,\n isSPCustomDateApply: false,\n hideOrderedRevenue: false,\n goalsToggle: false,\n\n isAsinApiCallCustom: 0,\n\n groupBy: '',\n customerId: '',\n\n currencySymbol: '',\n\n data: {},\n metricsType: {},\n activeSales: {},\n selectedValue: {},\n goalsMetricData: {},\n salesDifference: {},\n customDateError: {},\n salesCurrentTotal: {},\n salesPreviousTotal: {},\n selectedChildBrand: {},\n selectedMarketplace: {},\n\n customDate: [],\n salesChartData: [],\n salesGoalChartData: [],\n\n setActiveSales: () => {},\n handleMetricsType: () => {},\n handleGroupBy: () => {},\n setGoalsToggle: () => {},\n renderDataAvailableChildList: () => {},\n};\n\nVendorSalesPerformancePanel.propTypes = {\n isApiCall: bool,\n goalsToggle: bool,\n salesGraphLoader: bool,\n hideOrderedRevenue: bool,\n isSPCustomDateApply: bool,\n\n isAsinApiCallCustom: number,\n\n groupBy: string,\n customerId: string,\n currencySymbol: string,\n\n data: shape({}),\n metricsType: shape({}),\n activeSales: shape({}),\n selectedValue: shape({}),\n goalsMetricData: shape({}),\n salesDifference: shape({}),\n customDateError: shape({}),\n salesCurrentTotal: shape({}),\n salesPreviousTotal: shape({}),\n selectedChildBrand: shape({}),\n selectedMarketplace: shape({}),\n\n customDate: arrayOf(shape({})),\n salesChartData: arrayOf(shape({})),\n salesGoalChartData: arrayOf(shape({})),\n\n setActiveSales: func,\n handleMetricsType: func,\n handleGroupBy: func,\n setGoalsToggle: func,\n renderDataAvailableChildList: func,\n};\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, bool, func, instanceOf, number, shape } from 'prop-types';\n\nimport { PARENT } from '../../../../../../constants';\nimport {\n WhiteCard,\n ViewData,\n DropdownIndicator,\n DropDowns,\n DropdownOptions,\n DropdownSingleValue,\n} from '../../../../../../common';\n\nconst VendorSalesPerformanceFilters = ({\n dspPpcFlag,\n selectedMarketplace,\n marketplaceOptions,\n handleMarketplaceOptions,\n dateOptions,\n getSelectComponents,\n handleDailyFact,\n selectedSalesDF,\n isApiCall,\n daysDiff,\n currentDate,\n selectedChildBrand,\n childBrandOptions,\n handleChildBrandOptions,\n displayAccountTypeFilter,\n}) => {\n const customerState = useSelector((state) => state?.customerState?.data);\n\n let options = [...dateOptions];\n if (daysDiff && options) {\n const updatedOption = options.map((obj) => {\n if (obj.value === 'week' && daysDiff < 7) {\n obj.isDisabled = true;\n }\n if (obj.value === 'month' && daysDiff < currentDate?.getDate()) {\n obj.isDisabled = true;\n }\n if (obj.value === '30days' && daysDiff < 30) {\n obj.isDisabled = true;\n }\n\n if (\n obj.value === 'year' &&\n daysDiff <\n dayjs(currentDate).diff(\n dayjs(`${currentDate?.getFullYear()}-01-01`),\n 'days',\n )\n ) {\n obj.isDisabled = true;\n }\n\n return obj;\n });\n options = [...updatedOption];\n }\n\n // get dropdown components\n const getDropDownComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n return (\n \n \n
    \n
    \n
    View data for:
    \n
    \n
    \n
    \n {customerState?.account_type === PARENT ? (\n
    \n {' '}\n {DropDowns(\n 'BT-salesperformancedata-childBrandFilter-vendor',\n 'cursor',\n childBrandOptions,\n selectedChildBrand?.label,\n getDropDownComponents,\n '',\n handleChildBrandOptions,\n isApiCall,\n null,\n selectedChildBrand,\n )}\n
    \n ) : (\n
    \n )}\n
    \n {displayAccountTypeFilter(isApiCall)}\n
    \n
    \n {dspPpcFlag?.isHavingDsp && !dspPpcFlag?.isHavingPpc\n ? null\n : DropDowns(\n 'BT-adperformancedata-countryfilter-vendor',\n 'cursor',\n marketplaceOptions,\n selectedMarketplace?.label,\n getDropDownComponents,\n '',\n handleMarketplaceOptions,\n isApiCall,\n null,\n selectedMarketplace,\n )}{' '}\n
    \n
    \n {DropDowns(\n 'BT-VendorSalesPerformanceTimeFrame',\n 'un-searchable',\n dateOptions,\n\n dateOptions[0].label,\n getSelectComponents,\n dateOptions[0],\n handleDailyFact,\n isApiCall,\n null,\n selectedSalesDF,\n false,\n )}\n
    \n
    \n
    \n
    \n \n \n );\n};\n\nexport default VendorSalesPerformanceFilters;\n\nVendorSalesPerformanceFilters.defaultProps = {\n selectedSalesDF: {},\n marketplaceOptions: {},\n dspPpcFlag: {},\n selectedMarketplace: {},\n dateOptions: {},\n isApiCall: false,\n daysDiff: 0,\n currentDate: null,\n selectedChildBrand: {},\n childBrandOptions: [],\n getSelectComponents: () => {},\n handleMarketplaceOptions: () => {},\n handleDailyFact: () => {},\n handleChildBrandOptions: () => {},\n displayAccountTypeFilter: () => {},\n};\n\nVendorSalesPerformanceFilters.propTypes = {\n isApiCall: bool,\n dspPpcFlag: shape({}),\n selectedMarketplace: shape({}),\n selectedSalesDF: instanceOf(Object),\n marketplaceOptions: arrayOf(Array),\n dateOptions: arrayOf(Array),\n selectedChildBrand: shape({}),\n childBrandOptions: arrayOf(shape({})),\n daysDiff: number,\n currentDate: instanceOf(Date),\n handleMarketplaceOptions: func,\n getSelectComponents: func,\n handleDailyFact: func,\n handleChildBrandOptions: func,\n displayAccountTypeFilter: func,\n};\n","import React, { useEffect, useState, useCallback, useRef } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport dayjs from 'dayjs';\n\nimport { components } from 'react-select';\nimport { arrayOf, bool, func, instanceOf, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../../../../theme/Theme';\nimport BindVendorSalesGraphData from './BindVendorSalesGraphData';\nimport BindVendorSalesGoalsGraphData from './BindVendorSalesGoalsGraphData';\nimport VendorSalesPerformancePanel from './VendorSalesPerformancePanel';\nimport VendorSalesPerformanceFilters from './VendorSalesPerformanceFilters';\nimport { getVendorReportingData } from '../../../../../../api';\nimport { CustomDateModal, DropdownIndicator } from '../../../../../../common';\nimport {\n CUSTOM,\n ORDEREDREVENUE,\n SALEPERFORMANCE,\n SHIPPEDCOGS,\n VENDORSMALL,\n dateOptionsWithYear,\n} from '../../../../../../constants';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nexport default function VendorSalesPerformanceContainer({\n id,\n dspPpcFlag,\n selectedSalesDF,\n setSelectedSalesDF,\n selectedState,\n setSelectedState,\n currentDate,\n selectedMarketplace,\n setSelectedMarketplace,\n marketplaceOptions,\n goalsMarketplaceIds,\n goalsMarketplaceOptions,\n setCurrency,\n currencySymbol,\n setCurrencySymbol,\n salesMinDate,\n customDateError,\n bindErrorMessage,\n minDateLoader,\n childBrandOptions,\n selectedChildBrand,\n setSelectedChildBrand,\n displayAccountTypeFilter,\n renderDataAvailableChildList,\n getDataAvailabeleChildBrandList,\n createMarektplaceIdsListOfGoals,\n}) {\n // PDV-8274 - FE - Disable \"Ordered Revenue\" from single BP view for Riviana and Comfort Products\n // Comfort Products --> CMwIJql\n // Riviana Foods --> ’CMQ44sG’\n // Riviana Foods child brands --> 'CMm4jj8', 'CMrQttI', 'CMQJEW3', 'CMasKLQ', 'CMtCWXm', 'CMPNrYy',\n // Riviana Parent Company --> 'CMS0uTu' , PDV-8354 -Disable ordered rev and show shipped cogs by default message for Riviana Parent profile\n const BPsListToHideOrderedRevenue = [\n 'CMwIJql',\n 'CMQ44sG',\n 'CMm4jj8',\n 'CMrQttI',\n 'CMQJEW3',\n 'CMasKLQ',\n 'CMtCWXm',\n 'CMPNrYy',\n 'CMS0uTu',\n ];\n const hideOrderedRevenue = BPsListToHideOrderedRevenue?.some(\n (item) => item === id,\n );\n\n const mounted = useRef(false);\n const { Option, SingleValue } = components;\n const [isSPCustomDateApply, setIsSPCustomDateApply] = useState(\n selectedSalesDF.value === CUSTOM,\n );\n const [salesChartData, setSalesChartData] = useState([]);\n const [showCustomDateModal, setShowCustomDateModal] = useState(false);\n const [groupBy, setGroupBy] = useState('daily');\n const [salesCurrentTotal, setSalesCurrentTotal] = useState({});\n const [salesPreviousTotal, setSalesPreviousTotal] = useState({});\n const [salesDifference, setSalesDifference] = useState({});\n const [goalsMetricData, setGoalsMetricData] = useState({});\n const [salesGoalChartData, setSalesGoalChartData] = useState([]);\n const [goalsToggle, setGoalsToggle] = useState(false);\n const [salesGraphLoader, setSalesGraphLoader] = useState(false);\n const [isApiCall, setIsApiCall] = useState(false);\n const [activeSales, setActiveSales] = useState(\n hideOrderedRevenue ? { shippedCOGs: true } : { orderedRevenue: true },\n );\n const [isAsinApiCallCustom, setIsAsinApiCallCustom] = useState(0);\n const [selectedVendorMetricsType, setSelectedVendorMetricsType] = useState(\n hideOrderedRevenue\n ? { value: SHIPPEDCOGS, label: 'Shipped COGs' }\n : {\n value: ORDEREDREVENUE,\n label: 'Ordered Revenue',\n },\n );\n\n const [customDate, setCustomDate] = useState(selectedState);\n\n // if we changed the T-3 logic - applay that change in useEffect of ASINPerformance.js file.\n const maxDate = new Date();\n maxDate.setDate(maxDate.getDate() - 3); // PDV-8793 - Update Vendor Sales data to T-3\n\n // get vendor sales metrics and graph data\n const getData = useCallback(\n (\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n goalMarketplaces,\n metricsType,\n childBrand,\n startDate = null,\n endDate = null,\n onGroupByClick = false,\n ) => {\n setIsApiCall(true);\n setSalesGraphLoader(true);\n getDataAvailabeleChildBrandList(\n id,\n metricsType,\n VENDORSMALL,\n marketplace?.value,\n null,\n selectedDailyFact,\n startDate,\n endDate,\n );\n getVendorReportingData(\n id,\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n goalMarketplaces,\n childBrand,\n startDate,\n endDate,\n metricsType,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 400 || res?.status === 500) {\n setIsApiCall(false);\n setSalesGraphLoader(false);\n }\n if (res?.status === 200) {\n if (res?.data?.result) {\n const salesGraphData = BindVendorSalesGraphData(\n res?.data,\n metricsType,\n );\n setSalesChartData(salesGraphData);\n // filterout the dsp current total, previous total, and diffrence\n const responseData = res?.data;\n setSalesCurrentTotal(responseData?.result?.current_sum || {});\n setSalesPreviousTotal(responseData?.result?.previous_sum || {});\n setSalesDifference(responseData?.result?.difference_data || {});\n\n // get goals line graph data\n if (selectedDailyFact === CUSTOM) {\n const salesGoalsGraphData = BindVendorSalesGoalsGraphData(\n res?.data,\n metricsType,\n );\n setSalesGoalChartData(salesGoalsGraphData);\n }\n // get goals matrics data\n if (!onGroupByClick) {\n const goalMetric = res?.data?.result?.goal_metric;\n const goalMetricLength = Object.keys(goalMetric)?.length;\n\n if (goalMetricLength > 0) {\n const tempGoalMetricsData = {\n ...goalMetric,\n orderedRevenue: goalMetric?.ordered_revenue,\n shippedCOGs: goalMetric?.shipped_cogs,\n glanceViews: goalMetric?.glance_views,\n conversionRate: goalMetric?.conversion_rate,\n };\n\n setGoalsMetricData(tempGoalMetricsData);\n } else {\n setGoalsMetricData({});\n }\n } else {\n setGoalsMetricData({});\n }\n } else {\n setGoalsMetricData({});\n setSalesChartData([]);\n setSalesGoalChartData([]);\n }\n setIsApiCall(false);\n setSalesGraphLoader(false);\n }\n }\n });\n },\n [getDataAvailabeleChildBrandList, id],\n );\n\n // function call only when selected option is custom\n const checkDifferenceBetweenDates = useCallback(\n (\n startDate,\n endDate,\n flag = null,\n marketplace = selectedMarketplace,\n metricsType = selectedVendorMetricsType.value,\n ) => {\n const temp = 'daily';\n let sd = startDate;\n let ed = endDate;\n setGroupBy(temp);\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n setCustomDate([{ startDate, endDate }]);\n getData(\n flag,\n temp,\n marketplace,\n goalsMarketplaceIds,\n metricsType,\n selectedChildBrand,\n sd,\n ed,\n false,\n );\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [goalsMarketplaceIds],\n );\n\n useEffect(() => {\n mounted.current = true;\n\n if (mounted.current && selectedMarketplace?.value) {\n // PDV-9198 - seller have T-2 logic and Vendor have T-3 logic\n // so if T-2 date is selected for seller and switch to vendor then its should be T-3.\n // PDV-9198 - START //\n const localCustomDate = [];\n\n // set the start date\n localCustomDate.push(\n selectedState[0]?.startDate > maxDate\n ? maxDate\n : selectedState[0]?.startDate,\n );\n\n // set the end date\n localCustomDate.push(\n selectedState[0]?.endDate > maxDate\n ? maxDate\n : selectedState[0]?.endDate,\n );\n\n setSelectedState([\n {\n startDate: localCustomDate[0],\n endDate: localCustomDate[1],\n key: 'selection',\n },\n ]);\n setCustomDate([\n {\n startDate: localCustomDate[0],\n endDate: localCustomDate[1],\n key: 'selection',\n },\n ]);\n // PDV-9198 - END //\n\n if (selectedSalesDF.value === CUSTOM) {\n setIsSPCustomDateApply(true);\n checkDifferenceBetweenDates(\n localCustomDate[0],\n localCustomDate[1],\n CUSTOM,\n selectedMarketplace,\n );\n } else {\n getData(\n selectedSalesDF.value,\n groupBy,\n selectedMarketplace,\n goalsMarketplaceIds,\n selectedVendorMetricsType?.value,\n selectedChildBrand,\n null,\n null,\n false,\n );\n }\n }\n return () => {\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n selectedMarketplace,\n selectedChildBrand,\n goalsMarketplaceIds,\n checkDifferenceBetweenDates,\n getData,\n ]);\n\n const renderCustomDateSubLabel = (props, flag) => {\n if (flag === 'sp') {\n if (selectedSalesDF.value === CUSTOM && isSPCustomDateApply) {\n return `From- ${dayjs(selectedState[0].startDate).format(\n 'MMM D, YYYY',\n )} To- ${dayjs(selectedState[0].endDate).format('MMM D, YYYY')}`;\n }\n }\n\n return props.data.sub;\n };\n\n const singleFilterOption = (props) => (\n \n {props.data.label}\n\n
    \n {renderCustomDateSubLabel(props, 'sp')}\n
    \n
    \n );\n\n const filterOption = (props) => (\n \n );\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const handleDailyFact = (event) => {\n const { value } = event;\n\n if (value !== CUSTOM) {\n setGoalsToggle(false);\n let groupByOption = 'daily';\n if (value === 'year') {\n groupByOption = 'weekly';\n }\n setSelectedSalesDF(event);\n setIsSPCustomDateApply(false);\n setSelectedState([\n {\n startDate: maxDate,\n endDate: maxDate,\n key: 'selection',\n },\n ]);\n setGroupBy(groupByOption);\n bindErrorMessage(SALEPERFORMANCE, salesMinDate);\n getData(\n value,\n groupByOption,\n selectedMarketplace,\n goalsMarketplaceIds,\n selectedVendorMetricsType.value,\n selectedChildBrand,\n null,\n null,\n false,\n );\n setIsAsinApiCallCustom(0);\n } else if (value === CUSTOM) {\n setShowCustomDateModal(true);\n }\n };\n\n const handleMetricsType = (event) => {\n const { value } = event;\n\n if (value === ORDEREDREVENUE) {\n setActiveSales({ orderedRevenue: true });\n setSelectedVendorMetricsType({\n value: ORDEREDREVENUE,\n label: 'Ordered Revenue',\n });\n } else {\n setActiveSales({ shippedCOGs: true });\n setSelectedVendorMetricsType({\n value: SHIPPEDCOGS,\n label: 'Shipped COGs',\n });\n }\n\n if (selectedSalesDF.value === CUSTOM) {\n checkDifferenceBetweenDates(\n selectedState[0].startDate,\n selectedState[0].endDate,\n CUSTOM,\n selectedMarketplace,\n value,\n );\n } else {\n getData(\n selectedSalesDF.value,\n groupBy,\n selectedMarketplace,\n goalsMarketplaceIds,\n value,\n selectedChildBrand,\n null,\n null,\n false,\n );\n }\n };\n\n const handleMarketplaceOptions = (event) => {\n if (event.value !== selectedMarketplace?.value) {\n setSelectedMarketplace(event);\n createMarektplaceIdsListOfGoals(event, goalsMarketplaceOptions);\n setCurrency(event.currency);\n setCurrencySymbol(getSymbolFromCurrency(event.currency));\n }\n };\n\n const handleChildBrandOptions = (event) => {\n if (event.value !== selectedChildBrand?.value) {\n setSelectedChildBrand(event);\n }\n };\n\n const handleGroupBy = (value) => {\n if (value !== groupBy) {\n setGroupBy(value);\n if (selectedSalesDF.value === CUSTOM) {\n let sd = customDate[0]?.startDate;\n let ed = customDate[0]?.endDate;\n\n sd = `${customDate[0]?.startDate.getDate()}-${\n customDate[0]?.startDate.getMonth() + 1\n }-${customDate[0]?.startDate.getFullYear()}`;\n ed = `${customDate[0]?.endDate.getDate()}-${\n customDate[0]?.endDate.getMonth() + 1\n }-${customDate[0]?.endDate.getFullYear()}`;\n\n getData(\n selectedSalesDF.value,\n value,\n selectedMarketplace,\n goalsMarketplaceIds,\n selectedVendorMetricsType.value,\n selectedChildBrand,\n sd,\n ed,\n true,\n );\n } else {\n getData(\n selectedSalesDF.value,\n value,\n selectedMarketplace,\n goalsMarketplaceIds,\n selectedVendorMetricsType.value,\n selectedChildBrand,\n null,\n null,\n true,\n );\n }\n }\n };\n\n const applyCustomDate = () => {\n if (selectedSalesDF.value !== CUSTOM)\n setSelectedSalesDF({\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n bindErrorMessage(SALEPERFORMANCE, salesMinDate);\n setShowCustomDateModal(false);\n setIsSPCustomDateApply(true);\n setIsAsinApiCallCustom(Math.random());\n checkDifferenceBetweenDates(\n selectedState[0].startDate,\n selectedState[0].endDate,\n CUSTOM,\n selectedMarketplace,\n );\n };\n\n const returnMinDate = () => {\n return salesMinDate === null\n ? new Date('01/01/1901')\n : new Date(salesMinDate);\n };\n\n const daysDiffForSales = dayjs(currentDate).diff(dayjs(salesMinDate), 'days');\n\n return (\n <>\n \n\n \n\n {/* custom date modal for sale performance graph */}\n {\n setSelectedState([item.selection]);\n }}\n onApply={() => applyCustomDate()}\n onClick={() => {\n setShowCustomDateModal(false);\n if (selectedSalesDF.value !== CUSTOM) {\n setSelectedState([\n {\n startDate: maxDate,\n endDate: maxDate,\n key: 'selection',\n },\n ]);\n }\n }}\n minDate={returnMinDate()}\n />\n \n );\n}\n\nVendorSalesPerformanceContainer.defaultProps = {\n id: '',\n salesMinDate: '',\n minDateLoader: false,\n isDisabled: false,\n data: {},\n dspPpcFlag: {},\n marketplaceChoices: {},\n selectedSalesDF: {},\n setSelectedSalesDF: () => {},\n selectedState: [],\n childBrandOptions: [],\n selectedChildBrand: {},\n setSelectedState: () => {},\n currentDate: new Date(),\n selectedMarketplace: {},\n customDateError: {},\n setSelectedMarketplace: () => {},\n goalsMarketplaceIds: [],\n marketplaceOptions: [],\n goalsMarketplaceOptions: [],\n currency: '',\n setCurrency: () => {},\n currencySymbol: '',\n setCurrencySymbol: () => {},\n bindErrorMessage: () => {},\n setSelectedChildBrand: () => {},\n displayAccountTypeFilter: () => {},\n renderDataAvailableChildList: () => {},\n getDataAvailabeleChildBrandList: () => {},\n createMarektplaceIdsListOfGoals: () => {},\n};\n\nVendorSalesPerformanceContainer.propTypes = {\n id: string,\n salesMinDate: string,\n minDateLoader: bool,\n isDisabled: bool,\n data: shape({}),\n dspPpcFlag: shape({}),\n marketplaceChoices: instanceOf(Object),\n selectedSalesDF: shape({}),\n customDateError: shape({}),\n selectedChildBrand: shape({}),\n childBrandOptions: arrayOf(shape({})),\n setSelectedSalesDF: func,\n selectedState: arrayOf(shape()),\n setSelectedState: func,\n currentDate: instanceOf(Date),\n selectedMarketplace: shape({}),\n setSelectedMarketplace: func,\n goalsMarketplaceIds: arrayOf(string),\n marketplaceOptions: arrayOf(shape({})),\n goalsMarketplaceOptions: arrayOf(shape({})),\n currency: string,\n setCurrency: func,\n currencySymbol: string,\n setCurrencySymbol: func,\n bindErrorMessage: func,\n setSelectedChildBrand: func,\n displayAccountTypeFilter: func,\n renderDataAvailableChildList: func,\n getDataAvailabeleChildBrandList: func,\n createMarektplaceIdsListOfGoals: func,\n};\n","import React from 'react';\n\nimport { arrayOf, bool, func, instanceOf, shape, string } from 'prop-types';\n\nimport PerformanceReport from './SellerReporting/PerformanceReport';\nimport VendorSalesPerformanceContainer from './VendorReporting/VendorSalesPerformanceContainer';\nimport { SELLERSMALL, VENDORSMALL } from '../../../../../constants';\n\nfunction SalesPerformanceContainer({\n customerId,\n currency,\n currencySymbol,\n subViewComponent,\n sellerSalesMinDate,\n vendorSalesMinDate,\n\n minDateLoader,\n\n currentDate,\n dspPpcFlag,\n customDateError,\n selectedTimeFrame,\n selectedChildBrand,\n selectedAccountType,\n selectedMarketplace,\n\n childBrandOptions,\n selectedState,\n marketplaceOptions,\n goalsMarketplaceIds,\n goalsMarketplaceOptions,\n\n setCurrency,\n bindErrorMessage,\n setSelectedState,\n setCurrencySymbol,\n setSelectedTimeFrame,\n setSelectedChildBrand,\n setSelectedMarketplace,\n displayAccountTypeFilter,\n renderDataAvailableChildList,\n getDataAvailabeleChildBrandList,\n createMarektplaceIdsListOfGoals,\n}) {\n // display seller sales performance\n const displaySellerSalesPerformance = () => {\n return (\n \n );\n };\n\n // display vendor sales performance\n const displayVendorSalesPerformance = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {subViewComponent === SELLERSMALL\n ? displaySellerSalesPerformance()\n : subViewComponent === VENDORSMALL\n ? displayVendorSalesPerformance()\n : null}\n
    \n );\n}\n\nexport default SalesPerformanceContainer;\n\nSalesPerformanceContainer.defaultProps = {\n customerId: '',\n currency: '',\n currencySymbol: '',\n subViewComponent: '',\n sellerSalesMinDate: '',\n vendorSalesMinDate: '',\n\n minDateLoader: false,\n\n currentDate: new Date(),\n dspPpcFlag: {},\n customDateError: {},\n selectedTimeFrame: {},\n selectedChildBrand: {},\n selectedAccountType: {},\n selectedMarketplace: {},\n\n selectedState: [],\n childBrandOptions: [],\n marketplaceOptions: [],\n goalsMarketplaceIds: [],\n goalsMarketplaceOptions: [],\n\n setCurrency: () => {},\n bindErrorMessage: () => {},\n setSelectedState: () => {},\n setCurrencySymbol: () => {},\n setSelectedTimeFrame: () => {},\n setSelectedChildBrand: () => {},\n setSelectedMarketplace: () => {},\n displayAccountTypeFilter: () => {},\n renderDataAvailableChildList: () => {},\n getDataAvailabeleChildBrandList: () => {},\n createMarektplaceIdsListOfGoals: () => {},\n};\n\nSalesPerformanceContainer.propTypes = {\n customerId: string,\n currency: string,\n currencySymbol: string,\n subViewComponent: string,\n sellerSalesMinDate: string,\n vendorSalesMinDate: string,\n\n minDateLoader: bool,\n\n currentDate: instanceOf(Date),\n dspPpcFlag: shape({}),\n customDateError: shape({}),\n selectedTimeFrame: shape({}),\n selectedChildBrand: shape({}),\n selectedAccountType: shape({}),\n selectedMarketplace: shape({}),\n\n selectedState: arrayOf(shape()),\n childBrandOptions: arrayOf(shape()),\n marketplaceOptions: arrayOf(shape()),\n goalsMarketplaceIds: arrayOf(string),\n goalsMarketplaceOptions: arrayOf(shape({})),\n\n setCurrency: func,\n bindErrorMessage: func,\n setSelectedState: func,\n setCurrencySymbol: func,\n setSelectedTimeFrame: func,\n setSelectedChildBrand: func,\n setSelectedMarketplace: func,\n displayAccountTypeFilter: func,\n renderDataAvailableChildList: func,\n getDataAvailabeleChildBrandList: func,\n createMarektplaceIdsListOfGoals: func,\n};\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport styled from 'styled-components';\nimport { bool, func, shape, string } from 'prop-types';\n\nimport { dspPacingTooltipConstants } from '../../../../../../constants';\nimport Theme from '../../../../../../theme/Theme';\nimport { InfoIcons, LeftArrowIcon } from '../../../../../../theme/images';\nimport { AllocateBar, PageLoader } from '../../../../../../common';\n\nexport default function DspAdPacing({\n dspData,\n isDspPacingLoading,\n currencySymbol,\n isAllowToSplitBalance,\n setShowEscrowReallocationModal,\n marketplace,\n}) {\n const dspPacing = dspData?.dsp_pacing;\n\n const addThousandSeperator = (value, type = '', showMinus = true) => {\n if (value && value !== null && value !== 0) {\n value = Number(value.toFixed(2));\n return `${value < 0 && showMinus ? '-' : ''}${\n type === 'currency' ? currencySymbol : ''\n }${value\n .toString()\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n }\n return 0;\n };\n\n const calculateDspDiff = () => {\n const result = dspPacing?.planed_to_spend - dspPacing?.total_spend;\n\n if (Math.sign(result) === 1) {\n return 'Underspend to Date';\n }\n if (Math.sign(result) === -1) {\n return 'Overspend to Date';\n }\n return '';\n };\n\n const displayMonth = () => {\n const currentDateOfMonth = new Date().getDate();\n if (currentDateOfMonth === 1) {\n const currentDate = new Date();\n currentDate.setMonth(currentDate.getMonth() - 1, 1);\n return dayjs(new Date(currentDate)).format('MMMM');\n }\n return dayjs(new Date()).format('MMMM');\n };\n\n const renderToolTipIcon = (dataText, dataFor) => {\n return (\n \n );\n };\n const renderToolTipInfo = (dataId) => {\n return (\n \n );\n };\n const renderDspPacingLabel = () => {\n const dspPacingFlag = dspData?.dsp_pacing?.dsp_pacing_flag;\n const pacingLabel =\n dspPacingFlag === '1'\n ? 'Overspending'\n : dspPacingFlag === '0'\n ? 'On Track'\n : dspPacingFlag === '-1'\n ? 'Underspending'\n : null;\n\n return (\n <>\n \n {pacingLabel}\n
    \n \n {dspPacingFlag === '0'\n ? 'You are currently on track to hit your monthly DSP budget.'\n : `You are currently ${\n pacingLabel === 'Overspending'\n ? 'overspending'\n : 'underspending'\n } by an average of ${addThousandSeperator(\n dspPacing?.current_spend_status,\n 'currency',\n )} per day.`}\n

    \n \n );\n };\n\n // display html of dsp breakdown filed\n const displayDspBreakdownFieldsHTML = (\n fieldLabel,\n fieldInfoKey,\n fieldAmount,\n percentValue = null,\n showBoldLabel = false,\n useNumberFormatter = true,\n ) => {\n const showBoldValue = fieldAmount === 'escrow';\n const dataCyLabel = `${dspPacingTooltipConstants?.[fieldInfoKey]?.dataCy}-label`;\n const dataCyValue = `${dspPacingTooltipConstants?.[fieldInfoKey]?.dataCy}-value`;\n return (\n <>\n
    \n \n {fieldLabel} \n {dspPacingTooltipConstants?.[fieldInfoKey]?.text\n ? renderToolTipIcon(\n dspPacingTooltipConstants?.[fieldInfoKey]?.text,\n dspPacingTooltipConstants?.[fieldInfoKey]?.id,\n )\n : null}\n
    \n {dspPacingTooltipConstants?.[fieldInfoKey]?.text\n ? renderToolTipInfo(dspPacingTooltipConstants?.[fieldInfoKey]?.id)\n : null}\n
    \n
    \n \n {useNumberFormatter\n ? `${addThousandSeperator(dspPacing?.[fieldAmount], 'currency')}${\n percentValue !== null\n ? ` (${addThousandSeperator(\n dspPacing?.[percentValue],\n '',\n )}%)`\n : ''\n }`\n : dspPacing?.[fieldAmount]}\n
    \n
    \n \n );\n };\n\n const renderBreakdownFields = () => {\n return (\n
    \n {displayDspBreakdownFieldsHTML(\n 'Total DSP invested till date',\n 'totalAmountPaidTillDateInfo',\n 'total_amount_paid_till_date',\n null,\n false,\n true,\n )}\n {displayDspBreakdownFieldsHTML(\n 'Invoice Paid',\n 'invoicePaidInfo',\n 'invoice_amount',\n null,\n false,\n true,\n )}\n {displayDspBreakdownFieldsHTML(\n 'Carry-over',\n 'carryOverInfo',\n 'carry_over',\n null,\n false,\n true,\n )}\n {displayDspBreakdownFieldsHTML(\n `Initial Total Budget for ${displayMonth()}`,\n 'initialTotalbudgetInfo',\n 'total_budget',\n null,\n true,\n true,\n )}\n {displayDspBreakdownFieldsHTML(\n `Initial Daily Budget ${displayMonth()}`,\n 'initialDailyBudgetInfo',\n 'daily_budget',\n null,\n true,\n true,\n )}\n {displayDspBreakdownFieldsHTML(\n 'Days Passed',\n 'dayPassedInfo',\n 'days_passed',\n null,\n false,\n false,\n )}\n
    \n );\n };\n\n const renderSpendDetails = () => {\n return (\n
    \n {displayDspBreakdownFieldsHTML(\n 'Planned Spend to Date',\n 'plannedSpendToDateInfo',\n 'planed_to_spend',\n 'planed_to_spend_percentage',\n false,\n true,\n )}\n {displayDspBreakdownFieldsHTML(\n 'Actual Spend to Date',\n 'actualSpendToDateInfo',\n 'total_spend',\n 'total_spend_percentage',\n false,\n true,\n )}\n\n
    \n \n {calculateDspDiff()}\n
    \n
    \n
    \n \n {addThousandSeperator(dspPacing?.dsp_pacing_diff, 'currency')}\n  (\n {addThousandSeperator(dspPacing?.dsp_pacing_diff_percentage, '')}\n %)\n
    \n
    \n\n {displayDspBreakdownFieldsHTML(\n `Remaining Budget for ${displayMonth()}`,\n 'remainingBudgetInfo',\n 'remaining_budget',\n null,\n true,\n true,\n )}\n
    \n );\n };\n\n const renderDailyBudget = () => {\n return (\n
    \n
    \n \n Suggested Daily Budget\n
    \n
    \n
    \n \n {dspPacing?.suggested_spend === 0 ||\n dspPacing?.suggested_spend === 0.0\n ? 'N/A'\n : addThousandSeperator(dspPacing?.suggested_spend, 'currency')}\n
    \n \n
    \n
    \n For rest of month to hit budget\n
    \n
    \n {isNaN(dspPacing?.suggested_spend) ? (\n ''\n ) : (\n
    \n
    \n Per day\n
    \n
    \n )}\n \n );\n };\n\n const renderEscrowBalance = () => {\n return (\n <>\n
    \n {displayDspBreakdownFieldsHTML(\n 'Escrow Balance',\n 'escrowBalanceInfo',\n 'escrow',\n null,\n true,\n true,\n )}\n
    \n\n {isAllowToSplitBalance ? (\n \n
    \n
    \n \n {dspPacing?.escrow_sum < 0\n ? `${addThousandSeperator(\n dspPacing?.escrow_sum,\n 'currency',\n false,\n )} of the escrow planned for future month was allocated to current month`\n : `${addThousandSeperator(\n dspPacing?.escrow_sum,\n 'currency',\n )} of the escrow is planned carry-over for future months`}\n
    \n
    \n
    \n {marketplace !== 'all' ? (\n setShowEscrowReallocationModal(true)}\n role=\"presentation\"\n >\n Allocate Balance\n \n
    \n ) : null}\n
    \n
    \n \n \n ) : null}\n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n {isDspPacingLoading ? (\n \n ) : Object.keys(dspData).length ? (\n <>\n e.stopPropagation()}\n >\n
    \n

    DSP Monthly Budget Pacing

    \n \n {displayMonth()} 1 - {dspPacing?.last_day}{' '}\n    \n {dspPacing?.days_remains} days remaining\n

    \n
    \n
    \n
    \n
    Spend Status
    \n {renderDspPacingLabel()}\n
    \n
    Breakdown
    \n {renderBreakdownFields()}\n
    \n {renderSpendDetails()}\n
    \n {renderDailyBudget()}\n
    \n {renderEscrowBalance()}\n
    \n
    \n \n \n ) : (\n \n )}\n \n );\n}\n\nconst DspAdPacingModal = styled.div`\n top: 0;\n background: ${Theme.white};\n height: 100%;\n .modal-header {\n padding: 15px 15px 0 15px;\n\n .dot {\n background-color: ${Theme.gray35};\n border-radius: 50%;\n width: 3px;\n height: 3px;\n position: absolute;\n top: 38px;\n margin-left: 3px;\n }\n }\n .modal-body-section {\n padding: 0 15px;\n height: 85vh;\n overflow: scroll;\n\n .status-heading-red {\n color: ${Theme.red};\n font-size: 26px;\n\n &.green {\n color: ${Theme.lighterGreen};\n }\n }\n .dotted-horizontal-line {\n border-bottom: 2px dotted ${Theme.gray4};\n }\n\n .text-red {\n color: ${Theme.red};\n }\n .text-bold {\n font-weight: bold;\n }\n .budget-text {\n color: ${Theme.gray85};\n font-size: ${Theme.extraSmall};\n }\n .dspPacingTooltip {\n width: 240px;\n font-size: 14px;\n }\n }\n`;\n\nDspAdPacing.defaultProps = {\n isDspPacingLoading: false,\n isAllowToSplitBalance: false,\n currencySymbol: '',\n marketplace: '',\n dspData: {},\n setShowEscrowReallocationModal: () => {},\n};\n\nDspAdPacing.propTypes = {\n isDspPacingLoading: bool,\n isAllowToSplitBalance: bool,\n currencySymbol: string,\n marketplace: string,\n dspData: shape({}),\n setShowEscrowReallocationModal: func,\n};\n","/* eslint-disable no-underscore-dangle */\n/* eslint-disable func-names */\n/* eslint-disable camelcase */\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_animated from '@amcharts/amcharts4/themes/animated';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport { string, arrayOf, shape } from 'prop-types';\n\nam4core.useTheme(am4themes_animated);\nfunction DspPacingBarGraph({ chartId, chartData, currencySymbol }) {\n const chart = useRef(null);\n\n const createDspPacingBarGraph = useCallback(() => {\n const getDate = new Date();\n const currentMonthYear = dayjs(getDate).format('MMM YY');\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.logo.disabled = true;\n chart.current.padding(0, 30, 0, 0);\n chart.current.zoomOutButton.disabled = true;\n // Enable chart cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n const bindAmountAndCurrency = (amount) => {\n if (amount < 0) {\n return `-${currencySymbol}${amount\n .toFixed(2)\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n }\n return `${currencySymbol}${amount}`;\n };\n const renderToolTip = (\n invoiceAmount,\n carrOverAmount,\n totalInitialBudget,\n ) => {\n const htmlTooptip = `
    {categoryY}
    \n
      \n
    • \n
      \n
    • \n
    • INVOICE PAID
    • \n
    • ${bindAmountAndCurrency(\n invoiceAmount,\n )}
    • \n
    • \n
    \n
      \n
    • \n
      \n
    • \n
    • CARRY-OVER
    • \n
    • ${bindAmountAndCurrency(\n carrOverAmount,\n )}
    • \n
    • \n
    \n
      \n
    • \n
      \n
    • \n
    • INITIAL TOTAL BUDGET
    • \n
    • ${bindAmountAndCurrency(\n totalInitialBudget,\n )}
    • \n
    • \n
    `;\n return htmlTooptip;\n };\n\n // create category axis\n const categoryAxis = chart.current.yAxes.push(new am4charts.CategoryAxis());\n categoryAxis.renderer.grid.template.disabled = true;\n categoryAxis.renderer.minGridDistance = 20;\n categoryAxis.cursorTooltipEnabled = false;\n categoryAxis.dataFields.category = 'monthYear';\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.inversed = true;\n categoryAxis.renderer.labels.template.fill = am4core.color('#556178');\n categoryAxis.renderer.labels.template.padding(15, 40, 15, 20);\n categoryAxis.renderer.labels.template.location = 0.5;\n\n // create value axis\n const valueAxis = chart.current.xAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.opposite = true;\n valueAxis.cursorTooltipEnabled = false;\n valueAxis.renderer.baseGrid.disabled = true;\n valueAxis.renderer.grid.template.stroke = am4core.color('#f1f1f5');\n valueAxis.renderer.grid.template.strokeWidth = 1;\n valueAxis.renderer.grid.template.strokeOpacity = 1;\n valueAxis.renderer.minGridDistance = 100;\n valueAxis.renderer.labels.template.dy = -5;\n valueAxis.renderer.labels.template.fill = am4core.color('#556178');\n valueAxis.numberFormatter = new am4core.NumberFormatter();\n valueAxis.numberFormatter.numberFormat = `#.#a`;\n valueAxis.renderer.labels.template.adapter.add('text', (text) => {\n if (text !== undefined) {\n if (text.includes('-')) {\n return `-${currencySymbol}${text.replace('-', '')}`;\n }\n }\n return `${currencySymbol}${text}`;\n });\n // create series for invoice amount\n const series1 = chart.current.series.push(new am4charts.ColumnSeries());\n series1.columns.template.height = am4core.percent(20);\n series1.name = 'Series 1';\n series1.dataFields.categoryY = 'monthYear';\n series1.dataFields.valueX = 'invoiceAmount';\n series1.stacked = true;\n series1.columns.template.fill = am4core.color('#8798ad');\n series1.columns.template.column.cornerRadius(0, 10, 0, 10);\n series1.columns.template.strokeWidth = 0;\n\n // create series for carry over\n const series2 = chart.current.series.push(new am4charts.ColumnSeries());\n series2.columns.template.height = am4core.percent(20);\n series2.name = 'Series 2';\n series2.dataFields.categoryY = 'monthYear';\n series2.dataFields.valueX = 'carryOver';\n series2.stacked = true;\n series2.columns.template.fill = am4core.color('#30a8bd');\n series2.columns.template.column.cornerRadius(10, 10, 10, 10);\n series2.columns.template.strokeWidth = 0;\n\n // create series for actual spent\n const series3 = chart.current.series.push(new am4charts.ColumnSeries());\n series3.columns.template.height = am4core.percent(80);\n series3.name = 'Series 3';\n series3.dataFields.categoryY = 'monthYear';\n series3.dataFields.valueX = 'actualSpent';\n series3.stacked = false;\n series3.clustered = false;\n series3.columns.template.propertyFields.fill = 'colorCode';\n series3.columns.template.fillOpacity = 0.1;\n series3.columns.template.strokeWidth = 0;\n\n series3.tooltip.getFillFromObject = false;\n series3.tooltip.background.fill = am4core.color('#2E384D');\n series3.tooltip.background.fillOpacity = 1;\n series3.tooltip.background.strokeWidth = 0;\n series3.tooltip.background.filters.clear();\n series3.tooltip.background.cornerRadius = 10;\n series3.tooltip.background.pointerLength = 10;\n series3.columns.template.adapter.add(\n 'tooltipHTML',\n function (text, target) {\n if (target.dataItem) {\n if (target.dataItem._index <= 3) {\n series3.tooltip.pointerOrientation = 'up';\n series3.tooltip.dy = 10;\n }\n if (target.dataItem._index > 3) {\n series3.tooltip.pointerOrientation = 'down';\n series3.tooltip.dy = -10;\n }\n if (target.dataItem.valueX > 0) {\n return `
    \n ${renderToolTip(\n target.dataItem._dataContext.invoiceAmount,\n target.dataItem._dataContext.carryOver,\n target.dataItem._dataContext.totalInitialBudget,\n )}\n
    \n
      \n
    • ACTUAL SPENT
    • \n
    • ${currencySymbol}{actualSpent}
    • \n
    • \n
    \n
    `;\n }\n }\n return `
    \n ${renderToolTip(\n target.dataItem._dataContext.invoiceAmount,\n target.dataItem._dataContext.carryOver,\n target.dataItem._dataContext.totalInitialBudget,\n )}\n
    `;\n },\n );\n // color bullets for actual spent series 3\n const valueLabel = series3.columns.template.createChild(am4core.Label);\n valueLabel.text = '';\n valueLabel.width = 2;\n valueLabel.height = am4core.percent(100);\n valueLabel.align = 'right';\n valueLabel.valign = 'middle';\n valueLabel.background.propertyFields.fill = 'colorCode';\n valueLabel.fillOpacity = 1;\n // create date range to highlight current month\n const dateRange = categoryAxis.axisRanges.create();\n dateRange.category = currentMonthYear;\n dateRange.endCategory = currentMonthYear;\n dateRange.label.fontWeight = 'bold';\n dateRange.label.horizontalCenter = 'center';\n dateRange.label.verticalCenter = 'middle';\n dateRange.label.padding(15, 40, 15, 19);\n dateRange.label.isMeasured = true;\n dateRange.label.background.fill = am4core.color('#f4f6fc');\n dateRange.axisFill.fill = am4core.color('#f4f6fc');\n dateRange.axisFill.fillOpacity = 1;\n dateRange.grid.disabled = true;\n\n // Set cell size in pixels\n const cellSize = 50;\n chart.current.events.on('datavalidated', function (ev) {\n // Get objects of interest\n const chartObj = ev.target;\n const categoryAxisNew = chartObj.yAxes.getIndex(0);\n // Calculate how we need to adjust chart height\n const adjustHeight =\n chartObj.data.length * cellSize - categoryAxisNew.pixelHeight;\n // get current chart height\n const targetHeight = chartObj.pixelHeight + adjustHeight;\n // Set it on chart's container\n chartObj.svgContainer.htmlElement.style.height = `${targetHeight}px`;\n });\n }, [chartData, chartId, currencySymbol]);\n\n useEffect(() => {\n createDspPacingBarGraph();\n return () => chart.current && chart.current.dispose();\n }, [createDspPacingBarGraph]);\n\n return ;\n}\n\nexport default DspPacingBarGraph;\nDspPacingBarGraph.defaultProps = {\n chartData: [],\n currencySymbol: '',\n};\nDspPacingBarGraph.propTypes = {\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n currencySymbol: string,\n};\nconst ChartDiv = styled.div`\n margin: 20px 0px;\n`;\n","import dayjs from 'dayjs';\n\nconst BindDspResponsData = (response) => {\n const tempData = [];\n\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.revised_date)\n : response?.dsp_spend?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n // filterout previous data in one temporary object.\n if (response?.dsp_spend?.previous?.length) {\n response.dsp_spend.previous.forEach((item, index) => {\n const previousDate = dayjs(item?.revised_date).format('MMM D YYYY');\n tempData.push({\n dspImpressionsPrevious: item.impressions,\n dspSpendPrevious: item.dsp_spend,\n dspTotalProductSalesPrevious: item.total_product_sales,\n dspTotalRoasPrevious: item.total_roas,\n dspTotalDpvrPrevious: item.total_dpvr,\n dspTtlNewBrandPurchasesPrevious: item.ttl_new_brand_purchases,\n dspProductSalesPrevious: item.product_sales,\n dspRoasPrevious: item.roas,\n previousDate,\n previousEndDate: nextReportDate(\n index,\n response.dsp_spend.previous,\n 'previous',\n ),\n\n dspImpressionsPreviousLabel:\n item.impressions !== null ? item.impressions.toFixed(2) : '0.00',\n dspSpendPreviousLabel:\n item.dsp_spend !== null ? item.dsp_spend.toFixed(2) : '0.00',\n dspTotalProductSalesPreviousLabel:\n item.total_product_sales !== null\n ? item.total_product_sales.toFixed(2)\n : '0.00',\n dspTotalRoasPreviousLabel:\n item.total_roas !== null ? item.total_roas : '0',\n dspTotalDpvrPreviousLabel:\n item.total_dpvr !== null ? item.total_dpvr.toFixed(2) : '0.00',\n dspTtlNewBrandPurchasesPreviousLabel:\n item.ttl_new_brand_purchases !== null\n ? item.ttl_new_brand_purchases\n : '0',\n dspProductSalesPreviousLabel:\n item.product_sales !== null ? item.product_sales.toFixed(2) : '0.00',\n dspRoasPreviousLabel:\n item.roas !== null ? item.roas.toFixed(2) : '0.00',\n });\n });\n }\n\n // filterout current data in one temporary object.\n if (response?.dsp_spend?.current?.length) {\n response.dsp_spend.current.forEach((item, index) => {\n const currentReportDate = dayjs(item?.revised_date).format('MMM D YYYY');\n // add the current data at same index of prevoius in temporary object\n if (\n response.dsp_spend.previous &&\n index < response.dsp_spend.previous.length\n ) {\n tempData[index].date = currentReportDate;\n tempData[index].dspImpressionsCurrent = item.impressions;\n tempData[index].dspSpendCurrent = item.dsp_spend;\n tempData[index].dspTotalProductSalesCurrent = item.total_product_sales;\n tempData[index].dspTotalRoasCurrent = item.total_roas;\n tempData[index].dspTotalDpvrCurrent = item.total_dpvr;\n tempData[index].dspTtlNewBrandPurchasesCurrent =\n item.ttl_new_brand_purchases;\n tempData[index].dspProductSalesCurrent = item.product_sales;\n tempData[index].dspRoasCurrent = item.roas;\n tempData[index].endDate = nextReportDate(\n index,\n response?.dsp_spend?.current,\n 'current',\n );\n\n tempData[index].dspImpressionsCurrentLabel =\n item.impressions !== null ? item.impressions.toFixed(2) : '0.00';\n tempData[index].dspSpendCurrentLabel =\n item.dsp_spend !== null ? item.dsp_spend.toFixed(2) : '0.00';\n tempData[index].dspTotalProductSalesCurrentLabel =\n item.total_product_sales !== null\n ? item.total_product_sales.toFixed(2)\n : '0.00';\n tempData[index].dspTotalRoasCurrentLabel =\n item.total_roas !== null ? item.total_roas : '0';\n tempData[index].dspTotalDpvrCurrentLabel =\n item.total_dpvr !== null ? item.total_dpvr.toFixed(2) : '0.00';\n tempData[index].dspTtlNewBrandPurchasesCurrentLabel =\n item.ttl_new_brand_purchases !== null\n ? item.ttl_new_brand_purchases.toFixed(2)\n : '0.00';\n tempData[index].dspProductSalesCurrentLabel =\n item.product_sales !== null ? item.product_sales : '0';\n tempData[index].dspRoasCurrentLabel =\n item.roas !== null ? item.roas.toFixed(2) : '0.00';\n } else {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previou value null and previous label 0\n tempData.push({\n dspImpressionsCurrent: item.impressions,\n dspSpendCurrent: item.dsp_spend,\n dspTotalProductSalesCurrent: item.total_product_sales,\n dspTotalRoasCurrent: item.total_roas,\n dspTotalDpvrCurrent: item.total_dpvr,\n dspTtlNewBrandPurchasesCurrent: item.ttl_new_brand_purchases,\n dspProductSalesCurrent: item.product_sales,\n dspRoasCurrent: item.roas,\n date: currentReportDate,\n endDate: nextReportDate(\n index,\n response?.dsp_spend?.current,\n 'current',\n ),\n\n dspImpressionsPrevious: null,\n dspSpendPrevious: null,\n dspTotalProductSalesPrevious: null,\n dspTotalRoasPrevious: null,\n dspTotalDpvrPrevious: null,\n dspTtlNewBrandPurchasesPrevious: null,\n dspProductSalesPrevious: null,\n dspRoasPrevious: null,\n\n dspImpressionsCurrentLabel:\n item.impressions !== null ? item.impressions.toFixed(2) : '0.00',\n dspSpendCurrentLabel:\n item.dsp_spend !== null ? item.dsp_spend.toFixed(2) : '0.00',\n dspTotalProductSalesCurrentLabel:\n item.total_product_sales !== null\n ? item.total_product_sales.toFixed(2)\n : '0.00',\n dspTotalRoasCurrentLabel:\n item.total_roas !== null ? item.total_roas : '0',\n dspTotalDpvrCurrentLabel:\n item.total_dpvr !== null ? item.total_dpvr.toFixed(2) : '0.00',\n dspTtlNewBrandPurchasesCurrentLabel:\n item.ttl_new_brand_purchases !== null\n ? item.ttl_new_brand_purchases.toFixed(2)\n : '0.00',\n dspProductSalesCurrentLabel:\n item.product_sales !== null ? item.product_sales : '0',\n dspRoasCurrentLabel:\n item.roas !== null ? item.roas.toFixed(2) : '0.00',\n\n dspImpressionsPreviousLabel: '0.00',\n dspSpendPreviousLabel: '0.00',\n dspTotalProductSalesPreviousLabel: '0.00',\n dspTotalRoasPreviousLabel: '0',\n dspTotalDpvrPreviousLabel: '0.00',\n dspTtlNewBrandPurchasesPreviousLabel: '0.00',\n dspProductSalesPreviousLabel: '0',\n dspRoasPreviousLabel: '0.00',\n });\n }\n });\n }\n\n return tempData;\n};\n\nexport default BindDspResponsData;\n","/* eslint-disable camelcase */\nimport React, { useEffect, useRef } from 'react';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport PropTypes, { instanceOf } from 'prop-types';\n\nimport { dspColorSet } from '../../../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\nconst _ = require('lodash');\n\nexport default function DspPerformanceChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n groupBy,\n}) {\n const chart = useRef(null);\n useEffect(() => {\n const currencyAxisValue = [\n 'dspSpend',\n 'dspTotalProductSales',\n 'dspProductSales',\n 'dspTotalRoas',\n 'dspRoas',\n ];\n const percentageAxisValue = ['dspTtlNewBrandPurchases', 'dspTotalDpvr'];\n const unitAxisValue = ['dspImpressions'];\n const tooltipNames = {\n dspImpressions: 'IMPRESSIONS',\n dspSpend: 'DSP SPEND',\n dspTotalProductSales: 'TOTAL PRODUCT SALES',\n dspTotalRoas: 'TOTAL ROAS',\n dspTotalDpvr: 'TOTAL DPVR',\n dspTtlNewBrandPurchases: 'TTL NEW BRAND PURCHASES',\n dspProductSales: 'PRODUCT SALES',\n dspRoas: 'ROAS',\n };\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 20;\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true;\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n\n // create value axis function\n function createValueAxis(axisColor) {\n const localValueAxis = chart.current.yAxes.push(\n new am4charts.ValueAxis(),\n );\n localValueAxis.renderer.grid.template.disabled = true;\n localValueAxis.cursorTooltipEnabled = false;\n localValueAxis.renderer.baseGrid.disabled = true;\n localValueAxis.numberFormatter = new am4core.NumberFormatter();\n localValueAxis.numberFormatter.numberFormat = `#.#a`;\n localValueAxis.extraMax = 0.009;\n localValueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n localValueAxis.numberFormatter.smallNumberPrefixes = [];\n localValueAxis.stroke = am4core.color(axisColor);\n localValueAxis.strokeOpacity = 0.5;\n return localValueAxis;\n }\n // create object of first value axis\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n // function to generate complete tooltip html\n function generateToolTipHTML(tooltipValue, startDate, endDate) {\n let html = '';\n if (groupBy === 'weekly' || groupBy === 'monthly') {\n html = `
    \n From - ${startDate} To - ${endDate}\n
    \n ${tooltipValue}`;\n } else {\n html = tooltipValue;\n }\n\n return html;\n }\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n \n `;\n\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (currencyAxisValue.includes(item)) {\n format = `${currencySymbol}#.#a`;\n } else if (percentageAxisValue.includes(item)) {\n format = `#.#'%'`;\n } else {\n format = `#.#a`;\n }\n return format;\n }\n\n let valueAxis = createValueAxis();\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n const snapToSeries = [];\n let tooltipValue = '';\n const dashLine = ``;\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n const previousLabel = `${item}PreviousLabel`;\n const colorCode = dspColorSet[item];\n if (item === 'dspTtlNewBrandPurchases') {\n tooltipValue = `${tooltipValue} TTL New Brand Purchases`;\n } else {\n tooltipValue = `${tooltipValue} ${_.startCase(\n _.lowerCase(tooltipNames[item]),\n )}`;\n }\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n }\n } else if (percentageAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n '%',\n null,\n )}`;\n }\n } else if (unitAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n dspColorSet[item],\n currentLabel,\n null,\n null,\n '#.#a',\n )}`;\n if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n null,\n '#.#a',\n )}`;\n }\n }\n\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const previousValue = `${item}Previous`;\n const seriesName = `${item}Series`;\n const colorCode = dspColorSet[item];\n\n valueAxis = createValueAxis(colorCode);\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (index === 1) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n // series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = previousValue;\n series2.name = previousValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n // series2.tooltipHTML = `${tooltipValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n series2.propertyFields.strokeDasharray = dashLine;\n series2.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.previousDate,\n dateRange?.previousEndDate,\n );\n });\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const value = `${item}CurrentLabel`;\n if (currencyAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n dspColorSet[item],\n value,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (percentageAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n dspColorSet[item],\n value,\n null,\n '%',\n null,\n )}`;\n } else if (unitAxisValue.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n dspColorSet[item],\n value,\n null,\n null,\n '#.#a',\n )}`;\n } else {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n dspColorSet[item],\n value,\n null,\n null,\n '#,###',\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n valueAxis = createValueAxis(dspColorSet[item]);\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (index === 1 || index === 3) {\n valueAxis.renderer.opposite = true;\n }\n\n const currentValue = `${item}Current`;\n const seriesName = `${item}Series`;\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(dspColorSet[item]);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target.tooltipDataItem.dataContext;\n return generateToolTipHTML(\n tooltipValue,\n dateRange?.date,\n dateRange?.endDate,\n );\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(dspColorSet[item]);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n\n return () => chart.current && chart.current.dispose();\n }, [\n chartId,\n chartData,\n currencySymbol,\n selectedDF,\n selectedMetrics,\n groupBy,\n ]);\n\n return
    ;\n}\n\nDspPerformanceChart.defaultProps = {\n chartData: [],\n currencySymbol: '',\n selectedDF: '',\n selectedMetrics: {},\n groupBy: '',\n};\n\nDspPerformanceChart.propTypes = {\n chartId: PropTypes.string.isRequired,\n chartData: PropTypes.arrayOf(PropTypes.object),\n currencySymbol: PropTypes.string,\n selectedDF: PropTypes.string,\n selectedMetrics: instanceOf(Object),\n groupBy: PropTypes.string,\n};\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { components } from 'react-select';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../../theme/Theme';\nimport {\n DropDowns,\n DropdownIndicator,\n DropdownOptions,\n DropdownSingleValue,\n ViewData,\n WhiteCard,\n} from '../../../../../../common';\n\nfunction DspPerformanceFilters({\n isApiCall,\n isDSPCustomDateApply,\n customerState,\n selectedDspDF,\n selectedChildBrand,\n selectedDspMarketplace,\n dspState,\n childBrandOptions,\n dateFilterOptions,\n dspMarketplacesList,\n handleDSPDailyFact,\n handleChildBrandOptions,\n handleDspMarketplaceFilterEvents,\n}) {\n const { Option, SingleValue } = components;\n\n // collecting the dsp marketplaces dropdown filter components\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n // render dsp marketplace filter\n const displayDspMarketplaceFilter = () => {\n return (\n
    \n {DropDowns(\n 'BT-dsp-marketplace-filter',\n 'cursor ',\n dspMarketplacesList,\n selectedDspMarketplace?.label,\n getSelectComponents,\n '',\n handleDspMarketplaceFilterEvents,\n isApiCall,\n null,\n selectedDspMarketplace,\n )}\n
    \n );\n };\n\n const renderDSPCustomDateSubLabel = (props) => {\n if (selectedDspDF?.value === 'custom' && isDSPCustomDateApply) {\n return `From- ${dayjs(dspState?.[0]?.startDate).format(\n 'MMM D, YYYY',\n )} To- ${dayjs(dspState?.[0]?.endDate).format('MMM D, YYYY')}`;\n }\n\n return props?.data?.sub;\n };\n\n const singleDSPFilterOption = (props) => (\n \n {props?.data?.label}\n\n
    \n {renderDSPCustomDateSubLabel(props)}\n
    \n
    \n );\n\n const filterOption = (props) => {\n return (\n \n );\n };\n\n const getDSPSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleDSPFilterOption,\n DropdownIndicator,\n };\n };\n\n // render Time frame filter\n const renderTimeFrameFilter = () => {\n return (\n
    \n {DropDowns(\n 'BT-DspAdPerformanceTimeFrame',\n '',\n dateFilterOptions,\n dateFilterOptions?.[0]?.label,\n getDSPSelectComponents,\n dateFilterOptions?.[0],\n handleDSPDailyFact,\n isApiCall,\n null,\n selectedDspDF,\n false,\n )}\n
    \n );\n };\n\n return (\n
    \n \n \n
    \n
    \n
    View data for:
    \n
    \n
    \n
    \n {customerState?.account_type === 'parent' ? (\n
    \n
    \n {DropDowns(\n 'BT-adperformancedata-childBrandFilter',\n 'cursor',\n childBrandOptions,\n selectedChildBrand?.label,\n getSelectComponents,\n '',\n handleChildBrandOptions,\n isApiCall,\n null,\n selectedChildBrand,\n )}\n
    \n
    \n ) : (\n
    \n )}\n\n
    \n {dspMarketplacesList?.length > 0\n ? displayDspMarketplaceFilter()\n : null}\n
    \n
    \n {renderTimeFrameFilter()}\n
    \n
    \n
    \n
    \n \n \n
    \n );\n}\n\nexport default DspPerformanceFilters;\n\nDspPerformanceFilters.defaultProps = {\n // boolean\n isDisabled: false,\n isApiCall: false,\n isDSPCustomDateApply: false,\n data: {},\n selectedDspDF: {},\n customerState: {},\n selectedChildBrand: {},\n selectedDspMarketplace: {},\n dspState: [],\n childBrandOptions: [],\n dateFilterOptions: [],\n dspMarketplacesList: [],\n handleDSPDailyFact: () => {},\n handleChildBrandOptions: () => {},\n handleDspMarketplaceFilterEvents: () => {},\n};\n\nDspPerformanceFilters.propTypes = {\n // boolean\n isDisabled: bool,\n isApiCall: bool,\n isDSPCustomDateApply: bool,\n data: shape({\n label: string,\n sub: string,\n }),\n selectedDspDF: shape({}),\n customerState: shape({}),\n selectedChildBrand: shape({}),\n selectedDspMarketplace: shape({}),\n dspState: arrayOf(shape({})),\n childBrandOptions: arrayOf(shape({})),\n dateFilterOptions: arrayOf(shape({})),\n dspMarketplacesList: arrayOf(shape({})),\n handleDSPDailyFact: func,\n handleChildBrandOptions: func,\n handleDspMarketplaceFilterEvents: func,\n};\n","import React, { useState, useCallback } from 'react';\n\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport { storeEscrowReallocation } from '../../../../../../api';\nimport { LeftArrowIcon } from '../../../../../../theme/images';\nimport {\n Button,\n PageLoader,\n Table,\n AllocateBar,\n} from '../../../../../../common';\n\nexport default function ConfirmMarketPlaceAllocation({\n customerId,\n selectedMarketplace,\n currentMonthYear,\n currencySymbol,\n onClick,\n addThousandSeperator,\n totalEscrowBalance,\n escrowBalanceMarketplace,\n getEscrowBalanceMarketplace,\n getDSPPacing,\n setShowMarketPlaceAllocation,\n showConfirmMarketplaceAllocation,\n setShowConfirmMarketplaceAllocation,\n setShowEscrowMonthlyAllocation,\n}) {\n const [isApiCall, setIsApiCall] = useState(false);\n\n const balanceChangeValue = (value, type = '') => {\n if (value && value !== null && value !== 0) {\n value = Number(value.toFixed(2));\n return `${value < 0 ? '-' : '+'}${\n type === 'currency' ? currencySymbol : ''\n }${value\n .toString()\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n }\n return 0;\n };\n\n const submitEscrowReallocatedData = useCallback(\n (reallocatedData) => {\n setIsApiCall(true);\n const filteReallocatedData = reallocatedData.filter(\n (item, index) => index !== 0 && item.balanceChanged,\n );\n const tempData = [];\n filteReallocatedData.forEach((item) => {\n if (item?.balanceChanged > 0) {\n tempData.push({\n customer: `${customerId}`,\n month_year: `${currentMonthYear}`,\n from_marketplace: `${selectedMarketplace}`,\n to_marketplace: `${item.value}`,\n escrow_reallocated_amount_usd: Number(\n item.balanceChanged.toFixed(2),\n ),\n });\n }\n if (item?.balanceChanged < 0) {\n tempData.push({\n customer: `${customerId}`,\n month_year: `${currentMonthYear}`,\n from_marketplace: `${item.value}`,\n to_marketplace: `${selectedMarketplace}`,\n escrow_reallocated_amount_usd: Number(\n Math.abs(item.balanceChanged.toFixed(2)),\n ),\n });\n }\n return tempData;\n });\n storeEscrowReallocation(tempData).then((res) => {\n if (res && res.status === 201) {\n onClick();\n setShowConfirmMarketplaceAllocation(false);\n setShowEscrowMonthlyAllocation(true);\n getEscrowBalanceMarketplace();\n getDSPPacing(selectedMarketplace);\n }\n setIsApiCall(true);\n });\n },\n [\n currentMonthYear,\n customerId,\n getDSPPacing,\n getEscrowBalanceMarketplace,\n onClick,\n selectedMarketplace,\n setShowConfirmMarketplaceAllocation,\n setShowEscrowMonthlyAllocation,\n ],\n );\n const renderAllocateBar = () => {\n return (\n
    \n \n
    \n Total Escrow Balance: \n {totalEscrowBalance === 0\n ? `$${totalEscrowBalance}`\n : addThousandSeperator(totalEscrowBalance, 'currency')}\n
    \n
    \n \n
    \n );\n };\n const renderReallocationTableHead = () => {\n return (\n \n \n \n Marketplace\n \n \n From\n \n \n To\n \n \n change\n \n \n \n );\n };\n\n const renderReallocationTableBody = () => {\n const results = escrowBalanceMarketplace.filter(\n (item) => item.balanceChanged,\n );\n return (\n \n {results?.map((item) => {\n return (\n \n \n {item.label}\n \n \n {item.escrowBalance === 0\n ? `$0`\n : balanceChangeValue(item.escrowBalance, 'currency')}\n \n \n {item.escrowReallocatedBalance === 0\n ? `$0`\n : balanceChangeValue(\n item.escrowReallocatedBalance,\n 'currency',\n )}\n \n \n {item.balanceChanged === 0\n ? `$0`\n : balanceChangeValue(item.balanceChanged, 'currency')}\n \n \n );\n })}\n \n );\n };\n const renderReallocationDesktopView = () => {\n return (\n \n {renderReallocationTableHead()}\n {renderReallocationTableBody()}\n
    \n );\n };\n const renderReallocationMobileView = () => {\n const results = escrowBalanceMarketplace.filter(\n (item) => item.balanceChanged,\n );\n return results?.map((item) => {\n return (\n <>\n
    \n
    \n
    Marketplace
    \n
    {item.label}
    \n
    \n
    \n
    From
    \n
    \n {item.escrowBalance === 0\n ? `$0`\n : balanceChangeValue(item.escrowBalance, 'currency')}\n
    \n
    \n
    \n
    To
    \n
    \n {item.escrowReallocatedBalance === 0\n ? `$0`\n : balanceChangeValue(\n item.escrowReallocatedBalance,\n 'currency',\n )}\n
    \n
    \n
    \n
    Change
    \n
    \n {item.balanceChanged === 0\n ? `$0`\n : balanceChangeValue(item.balanceChanged, 'currency')}\n
    \n
    \n
    \n \n );\n });\n };\n const renderReallocatedBalanceTable = () => {\n return (\n <>\n
    \n {renderReallocationDesktopView()}\n
    \n
    \n {renderReallocationMobileView()}\n
    \n \n );\n };\n return (\n <>\n {showConfirmMarketplaceAllocation ? (\n <>\n
    \n

    \n {\n setShowMarketPlaceAllocation(true);\n setShowConfirmMarketplaceAllocation(false);\n }}\n role=\"presentation\"\n />\n Allocate Balance\n

    \n
    \n

    \n Please confirm you wish to make the following changes. A\n confirmation email will be sent to the BGS, BGS Manager, DSP Ad\n Manager.\n

    \n
    \n {renderAllocateBar()}\n
    {renderReallocatedBalanceTable()}
    \n
    \n
    \n
    \n
    \n
    \n
    \n {\n submitEscrowReallocatedData(escrowBalanceMarketplace);\n }}\n >\n {isApiCall ? (\n \n ) : (\n 'Confirm'\n )}\n \n
    \n
    \n \n ) : (\n ''\n )}\n \n );\n}\n\nConfirmMarketPlaceAllocation.defaultProps = {\n customerId: '',\n selectedMarketplace: '',\n currencySymbol: '',\n currentMonthYear: '',\n totalEscrowBalance: number,\n onClick: () => {},\n addThousandSeperator: () => {},\n escrowBalanceMarketplace: [],\n getEscrowBalanceMarketplace: () => {},\n getDSPPacing: () => {},\n setShowMarketPlaceAllocation: func,\n showConfirmMarketplaceAllocation: bool,\n setShowConfirmMarketplaceAllocation: func,\n setShowEscrowMonthlyAllocation: func,\n};\n\nConfirmMarketPlaceAllocation.propTypes = {\n customerId: string,\n selectedMarketplace: string,\n currencySymbol: string,\n currentMonthYear: string,\n totalEscrowBalance: number,\n addThousandSeperator: func,\n onClick: func,\n escrowBalanceMarketplace: arrayOf(shape()),\n getEscrowBalanceMarketplace: func,\n getDSPPacing: func,\n setShowMarketPlaceAllocation: func,\n showConfirmMarketplaceAllocation: bool,\n setShowConfirmMarketplaceAllocation: func,\n setShowEscrowMonthlyAllocation: func,\n};\n","import React, { useState } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport { bool, func, number, string, arrayOf, shape } from 'prop-types';\n\nimport ConfirmMarketPlaceAllocation from './ConfirmMarketPlaceAllocation';\nimport { InfoRedIcon, LeftArrowIcon } from '../../../../../../theme/images';\nimport {\n Button,\n InputFormField,\n AllocateBar,\n ErrorMsgBox,\n} from '../../../../../../common';\n\nexport default function EditMarketplaceAllocation({\n customerId,\n currencySymbol,\n currentMonthYear,\n selectedMarketplace,\n escrowBalanceMarketplace,\n setEscrowBalanceMarketplace,\n totalEscrowBalance,\n addThousandSeperator,\n setIsDataLoading,\n getEscrowBalanceMarketplace,\n getDSPPacing,\n showMarketPlaceAllocation,\n setShowMarketPlaceAllocation,\n setShowEscrowMonthlyAllocation,\n}) {\n const [isAllowToContinue, setIsAllowToContinue] = useState(false);\n const [isEscrowBalanceExceed, setIsEscrowBalanceExceed] = useState(\n totalEscrowBalance < 0,\n );\n const [\n showConfirmMarketplaceAllocation,\n setShowConfirmMarketplaceAllocation,\n ] = useState(false);\n\n const calculateSumOfNewEscrowBalance = (newValues) => {\n const sumAll = newValues\n .map((item, index) => index !== 0 && item.escrowReallocatedBalance)\n .reduce((prev, curr) => Number(prev) + Number(curr), 0);\n return sumAll;\n };\n\n const handleOnChange = (event, index) => {\n const tempData = [...escrowBalanceMarketplace];\n const newAllocatedBalance = event.target.value.replace(/,/g, '');\n const oldEscrowBalance = tempData[index].escrowBalance;\n\n let newEscrowBalance = '';\n if (newAllocatedBalance === '' || newAllocatedBalance === null) {\n setIsAllowToContinue(false);\n } else {\n newEscrowBalance = newAllocatedBalance;\n setIsAllowToContinue(true);\n }\n\n const balanceChanged = newEscrowBalance - oldEscrowBalance;\n tempData[index].balanceChanged = balanceChanged;\n tempData[index].escrowReallocatedBalance = Number(newEscrowBalance);\n\n if (tempData[index].escrowReallocatedBalance === oldEscrowBalance) {\n setIsAllowToContinue(false);\n }\n\n const sumOfNewEscrowBalance = calculateSumOfNewEscrowBalance(tempData);\n const updatedBalance = totalEscrowBalance - sumOfNewEscrowBalance;\n tempData[0].escrowReallocatedBalance = Number(updatedBalance.toFixed(2));\n tempData[0].balanceChanged = updatedBalance - tempData[0].escrowBalance;\n setEscrowBalanceMarketplace(tempData);\n if (\n updatedBalance < 0 ||\n (escrowBalanceMarketplace[index]?.escrowBalance < 0 &&\n parseFloat(event.target.value.replace(/,/g, '')) <\n escrowBalanceMarketplace[index]?.escrowBalance)\n ) {\n setIsEscrowBalanceExceed(true);\n setIsAllowToContinue(false);\n } else setIsEscrowBalanceExceed(false);\n };\n\n const renderAllocateBar = () => {\n return (\n
    \n \n
    \n Total Escrow Balance: \n {totalEscrowBalance === 0\n ? `$${totalEscrowBalance}`\n : addThousandSeperator(totalEscrowBalance, 'currency')}\n
    \n
    \n \n
    \n );\n };\n\n const renderMarketplace = () => {\n const getIndex = escrowBalanceMarketplace.findIndex(\n (item) => item.value === selectedMarketplace,\n );\n if (getIndex >= 0) {\n const splicedObj = escrowBalanceMarketplace.splice(getIndex, 1)[0];\n escrowBalanceMarketplace.splice(0, 0, splicedObj);\n }\n return escrowBalanceMarketplace?.map((item, index) => {\n return (\n
    \n
    \n

    {item.label}

    \n
    \n
    \n \n \n
    \n \n $\n \n handleOnChange(event, index)}\n thousandSeparator\n decimalScale={2}\n // allowNegative={!index}\n />\n
    \n
    \n
    \n
    \n );\n });\n };\n const renderErrorMessageBox = () => {\n return (\n \n \"info\"\n All budgets across the selected marketplaces need to add up to the\n available escrow balance\n \n );\n };\n const renderModalFooter = () => {\n return (\n
    \n
    \n {\n setShowConfirmMarketplaceAllocation(true);\n setShowMarketPlaceAllocation(false);\n }}\n type=\"button\"\n role=\"presentation\"\n >\n Continue\n \n
    \n
    \n );\n };\n return (\n <>\n {showMarketPlaceAllocation ? (\n <>\n
    \n

    \n {\n setShowMarketPlaceAllocation(false);\n setShowEscrowMonthlyAllocation(true);\n getEscrowBalanceMarketplace();\n setIsAllowToContinue(false);\n setIsEscrowBalanceExceed(false);\n }}\n role=\"presentation\"\n />\n Marketplace Allocation\n

    \n
    \n
    {renderAllocateBar()}
    \n {isEscrowBalanceExceed ? renderErrorMessageBox() : null}\n {renderMarketplace()}\n
    \n
    \n
    \n {renderModalFooter()}\n \n ) : (\n ''\n )}\n {showConfirmMarketplaceAllocation ? (\n \n ) : (\n ''\n )}\n \n );\n}\n\nEditMarketplaceAllocation.defaultProps = {\n customerId: '',\n currencySymbol: '',\n currentMonthYear: '',\n selectedMarketplace: '',\n totalEscrowBalance: 0,\n escrowBalanceMarketplace: [],\n setEscrowBalanceMarketplace: () => {},\n setIsDataLoading: () => {},\n addThousandSeperator: () => {},\n getEscrowBalanceMarketplace: () => {},\n getDSPPacing: () => {},\n showMarketPlaceAllocation: bool,\n setShowMarketPlaceAllocation: () => {},\n setShowEscrowMonthlyAllocation: () => {},\n};\n\nEditMarketplaceAllocation.propTypes = {\n customerId: string,\n currencySymbol: string,\n currentMonthYear: string,\n selectedMarketplace: string,\n totalEscrowBalance: number,\n escrowBalanceMarketplace: arrayOf(shape()),\n setEscrowBalanceMarketplace: func,\n addThousandSeperator: func,\n setIsDataLoading: func,\n getEscrowBalanceMarketplace: func,\n getDSPPacing: func,\n showMarketPlaceAllocation: bool,\n setShowMarketPlaceAllocation: func,\n setShowEscrowMonthlyAllocation: func,\n};\n","import React, {\n useState,\n useCallback,\n useRef,\n useEffect,\n useMemo,\n} from 'react';\n\nimport Modal from 'react-modal';\nimport NumberFormat from 'react-number-format';\nimport dayjs from 'dayjs';\nimport { bool, func, string } from 'prop-types';\n\nimport EditMarketplaceAllocation from './EditMarketplaceAllocation';\nimport {\n getDspPacingData,\n getEscrowBalanceMarketplaceData,\n storeAllocatedBudget,\n} from '../../../../../../api';\nimport {\n CloseIcon,\n AddIcons,\n InfoRedIcon,\n LeftArrowIcon,\n} from '../../../../../../theme/images';\nimport {\n ModalBox,\n Button,\n InputFormField,\n PageLoader,\n AllocateBar,\n ErrorMsgBox,\n Tabs,\n} from '../../../../../../common';\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n minHeight: '220px',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\nexport default function EscrowBudgetAllocationModal({\n id,\n isOpen,\n onClick,\n customerId,\n marketplace,\n}) {\n const mounted = useRef(false);\n const currencySymbol = '$';\n const currentDate = useMemo(() => {\n return new Date();\n }, []);\n currentDate.setDate(1);\n currentDate.setHours(currentDate.getHours() + 12);\n const newCurrentDate = useMemo(() => {\n return new Date();\n }, []);\n newCurrentDate.setDate(1);\n newCurrentDate.setHours(currentDate.getHours());\n const currentMonthYear = dayjs(newCurrentDate).format('YYYY-MM-DD');\n\n const [escrowBalanceMarketplace, setEscrowBalanceMarketplace] = useState([]);\n const [oldEscrowAllocation, setOldEscrowAllocation] = useState([]);\n const [selectedMarketplace, setSelectedMarketplace] = useState(marketplace);\n const [totalEscrowBalance, setTotalEscrowBalance] = useState();\n const [selectedMarketplaceBalance, setSelectedMarketplaceBalance] =\n useState();\n const [showEscrowMonthlyAllocation, setShowEscrowMonthlyAllocation] =\n useState(true);\n const [showMarketPlaceAllocation, setShowMarketPlaceAllocation] =\n useState(false);\n const [allocatedMonths, setAllocatedMonths] = useState([]);\n const [isAllowToEdit, setIsAllowToEdit] = useState(false);\n const [isDataLoading, setIsDataLoading] = useState(true);\n const [isMonthlyDataLoading, setIsMonthlyDataLoading] = useState(true);\n const [isApiCall, setIsApiCall] = useState(false);\n const [isEscrowBalanceExceed, setIsEscrowBalanceExceed] = useState(\n totalEscrowBalance < 0,\n );\n const [escrowAllocatedMonthIndex, setEscrowAllocatedMonthIndex] =\n useState(null);\n\n // thousand separator for numbers with currency symbol\n const addThousandSeperator = (value, type = '') => {\n if (value && value !== null && value !== 0) {\n value = Number(value.toFixed(2));\n return `${value < 0 ? '-' : ''}${\n type === 'currency' ? currencySymbol : ''\n }${value\n .toString()\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n }\n return 0;\n };\n\n // bind escrow balance data of marketplaces\n const bindEscrowMarketplaceData = useCallback((response) => {\n const tempData = [];\n if (response) {\n setTotalEscrowBalance(\n response?.total_escrow ? response?.total_escrow : 0,\n );\n if (response?.marketplace?.length) {\n response.marketplace.forEach((item, index) => {\n tempData.push({\n label: item?.label ? item?.label : null,\n value: item?.value ? item?.value : null,\n key: item?.id ? item.id : `${item.label}${index}`,\n escrowBalance: item?.total ? item?.total : 0,\n escrowReallocatedBalance: item?.total ? item?.total : 0,\n });\n setOldEscrowAllocation(tempData);\n });\n }\n }\n return tempData;\n }, []);\n\n // get escrow balance of various marketplaces\n const getEscrowBalanceMarketplace = useCallback(() => {\n setIsDataLoading(true);\n getEscrowBalanceMarketplaceData(customerId).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const getData = bindEscrowMarketplaceData(response?.data);\n setEscrowBalanceMarketplace(getData);\n const data = getData.filter(\n (item) => item.value === selectedMarketplace,\n );\n setIsAllowToEdit(data[0]?.escrowBalance >= 0);\n }\n setIsDataLoading(false);\n }\n });\n }, [bindEscrowMarketplaceData, customerId, selectedMarketplace]);\n\n // bind escrow allocated balance data\n const bindEscrowAllocatedBalanceData = useCallback((response) => {\n const tempEscrowData = [];\n for (const item of response) {\n tempEscrowData.push({\n escrow_allocated: item?.escrow_allocated,\n escrow_allocated_converted_usd: item?.escrow_allocated_converted_usd,\n escrow_allocated_converted_usd_old:\n item?.escrow_allocated_converted_usd,\n month_year: item?.month_year,\n });\n }\n return tempEscrowData;\n }, []);\n\n // get monthly allocated data from dsp pacing api\n const getDSPPacing = useCallback(\n (currentMarketplace) => {\n setIsMonthlyDataLoading(true);\n setAllocatedMonths([]);\n getDspPacingData(customerId, currentMarketplace).then((res) => {\n if (mounted.current) {\n if (res && res.status === 200) {\n const dspPacing = res?.data?.dsp_pacing;\n const currentEscrowBalance = dspPacing?.escrow_converted_usd\n ? dspPacing?.escrow_converted_usd\n : 0;\n setSelectedMarketplaceBalance(currentEscrowBalance);\n setIsEscrowBalanceExceed(currentEscrowBalance < 0);\n setAllocatedMonths(\n dspPacing?.allocated_balance?.length\n ? bindEscrowAllocatedBalanceData(dspPacing?.allocated_balance)\n : [\n {\n month_year: dayjs(currentDate).format('YYYY-MM-DD'),\n escrow_allocated_converted_usd: currentEscrowBalance,\n },\n ],\n );\n }\n setIsMonthlyDataLoading(false);\n }\n });\n },\n [bindEscrowAllocatedBalanceData, currentDate, customerId],\n );\n\n // submit the monthly escrow distribution for future months\n const submitAllocatedBudget = useCallback(() => {\n setIsApiCall(true);\n storeAllocatedBudget(allocatedMonths, customerId, selectedMarketplace).then(\n (res) => {\n if (mounted.current) {\n if (res && res.status === 200) {\n onClick();\n }\n setIsApiCall(false);\n }\n },\n );\n }, [allocatedMonths, customerId, selectedMarketplace, onClick]);\n\n // use effect hook\n useEffect(() => {\n mounted.current = true;\n getEscrowBalanceMarketplace();\n return () => {\n mounted.current = false;\n };\n }, [getEscrowBalanceMarketplace]);\n\n useEffect(() => {\n mounted.current = true;\n getDSPPacing(marketplace);\n return () => {\n mounted.current = false;\n };\n }, [getDSPPacing, marketplace]);\n\n // calculate the total of monthly allocated balance\n const calculateSumOfFutureMonths = (newValues) => {\n const sumAll = newValues\n .map((item, index) => index !== 0 && item.escrow_allocated_converted_usd)\n .reduce((prev, curr) => Number(prev) + Number(curr), 0);\n return sumAll;\n };\n\n // handle monthly allocated balance change events\n const handleEscrowAllocation = (event, currentIndex) => {\n const tempData = [...allocatedMonths];\n const newValue = Number(event?.target?.value?.replace(/,/g, ''));\n const oldValue = tempData[currentIndex]?.escrow_allocated_converted_usd;\n const valueDiff = newValue - oldValue;\n\n if (newValue > selectedMarketplaceBalance) {\n setIsEscrowBalanceExceed(true);\n setEscrowAllocatedMonthIndex(currentIndex);\n } else if (valueDiff >= 0) {\n setIsEscrowBalanceExceed(false);\n setEscrowAllocatedMonthIndex(null);\n tempData[currentIndex].escrow_allocated_converted_usd = newValue;\n\n let remainingAmount = valueDiff;\n\n for (let index = 0; index < allocatedMonths?.length; index += 1) {\n const monthAmount = tempData[index]?.escrow_allocated_converted_usd;\n if (remainingAmount !== 0) {\n if (monthAmount !== 0 && index !== currentIndex) {\n if (remainingAmount > monthAmount) {\n tempData[index].escrow_allocated_converted_usd = Number(0.0);\n remainingAmount -= monthAmount;\n } else {\n const changeInEscrow = monthAmount - remainingAmount;\n tempData[index].escrow_allocated_converted_usd = Number(\n changeInEscrow.toFixed(2),\n );\n remainingAmount = 0.0;\n }\n }\n } else break;\n }\n } else {\n setIsEscrowBalanceExceed(false);\n setEscrowAllocatedMonthIndex(null);\n tempData[currentIndex].escrow_allocated_converted_usd = newValue;\n const sumOfFutureMonths = calculateSumOfFutureMonths(tempData);\n const currentMonthAmount = selectedMarketplaceBalance - sumOfFutureMonths;\n\n tempData[0].escrow_allocated_converted_usd = Number(\n currentMonthAmount.toFixed(2),\n );\n }\n tempData[currentIndex].escrow_allocated_converted_usd = newValue;\n\n setAllocatedMonths(tempData);\n };\n\n /* ********** backup of handle on change function PLEASE DO NOT REMOVE BELOW CODE ********** */\n // const handleOnChange = (event, index) => {\n // const tempData = [...allocatedMonths];\n // tempData[index].escrow_allocated_converted_usd = event.target.value.replace(\n // /,/g,\n // '',\n // );\n // const sumOfFutureMonths = calculateSumOfFutureMonths(tempData);\n // const currentMonthAmount = selectedMarketplaceBalance - sumOfFutureMonths;\n // tempData[0].escrow_allocated_converted_usd = String(\n // currentMonthAmount.toFixed(2),\n // );\n // if (currentMonthAmount < 0) setIsEscrowBalanceExceed(true);\n // else setIsEscrowBalanceExceed(false);\n // setAllocatedMonths(tempData);\n // };\n\n // handle add another month events\n const handleOnAddAnotherMonth = () => {\n const lastRecord = allocatedMonths[allocatedMonths.length - 1];\n const nextMonth = new Date(lastRecord?.month_year);\n nextMonth.setHours(nextMonth.getHours() + 12);\n nextMonth.setMonth(nextMonth.getMonth() + 1);\n setAllocatedMonths([\n ...allocatedMonths,\n {\n month_year: dayjs(nextMonth).format('YYYY-MM-DD'),\n escrow_allocated_converted_usd: addThousandSeperator(0),\n },\n ]);\n };\n\n // rendering the allocated escrow balance with edit marketplace reallocation button\n const renderAllocateBar = () => {\n return (\n
    \n \n
    \n
    \n
    \n Escrow Balance: \n {selectedMarketplaceBalance === 0\n ? `$${selectedMarketplaceBalance}`\n : addThousandSeperator(\n selectedMarketplaceBalance,\n 'currency',\n )}\n
    \n
    \n
    \n {escrowBalanceMarketplace?.length > 1 ? (\n
    \n {\n setShowMarketPlaceAllocation(true);\n setShowEscrowMonthlyAllocation(false);\n }}\n >\n Edit marketplace Allocation\n \n
    \n
    \n ) : null}\n
    \n
    \n
    \n \n
    \n );\n };\n\n // render marketplaces tab with scroll bar\n const renderMarketplaceTab = () => {\n const getIndex = escrowBalanceMarketplace.findIndex(\n (item) => item.value === selectedMarketplace,\n );\n if (getIndex >= 0) {\n const splicedObj = escrowBalanceMarketplace.splice(getIndex, 1)[0];\n escrowBalanceMarketplace.splice(0, 0, splicedObj);\n }\n return (\n <>\n
    \n \n
      \n {escrowBalanceMarketplace.map((item) => {\n return (\n {\n setSelectedMarketplace(item.value);\n getDSPPacing(item.value);\n }}\n role=\"presentation\"\n >\n {item.label}  (\n {item.escrowBalance === 0\n ? `$${item.escrowBalance}`\n : addThousandSeperator(item.escrowBalance, 'currency')}\n )\n \n );\n })}\n
    \n
    \n
    \n \n );\n };\n\n // render month and monthly allocated balance\n const renderMonths = () => {\n return allocatedMonths?.map((item, index) => {\n const isDisabled =\n !index ||\n (isEscrowBalanceExceed && index !== escrowAllocatedMonthIndex);\n return (\n <>\n
    \n
    \n \n \n \n
    \n \n \n
    \n \n
    \n \n \n $\n \n handleEscrowAllocation(event, index)}\n placeholder={0}\n thousandSeparator\n decimalScale={2}\n allowNegative={!index}\n />\n
    \n \n
    \n
    \n \n );\n });\n };\n\n // render add annother month button\n const renderAddAnotherMonth = () => {\n return (\n
    \n
    \n 6 || selectedMarketplaceBalance < 0\n ? 'btn-add-contact disabled'\n : 'btn-add-contact '\n }\n onClick={() => handleOnAddAnotherMonth()}\n >\n {' '}\n Add another Month\n \n
    \n
    \n );\n };\n\n // render error message\n const renderErrorMessageBox = (errorMessage) => {\n return (\n \n \"info\"\n {errorMessage}\n \n );\n };\n\n // render modal footer\n const renderModalFooter = () => {\n return (\n
    \n
    \n
    \n submitAllocatedBudget()}\n type=\"button\"\n >\n {isApiCall ? (\n \n ) : (\n 'Confirm'\n )}\n \n
    \n
    \n
    \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n \n {\n onClick();\n }}\n role=\"presentation\"\n />\n \n <>\n {showEscrowMonthlyAllocation ? (\n <>\n
    \n

    Allocate Balance

    \n
    \n {renderAllocateBar()}\n {escrowBalanceMarketplace?.length > 0\n ? renderMarketplaceTab()\n : null}\n
    \n\n \n {isDataLoading ? (\n \n ) : (\n \n {isMonthlyDataLoading ? (\n \n ) : (\n <>\n
    \n {renderMonths()}\n {renderAddAnotherMonth()}\n
    \n
    \n {isEscrowBalanceExceed\n ? renderErrorMessageBox(\n 'All budgets across the selected months need to add up to the available escrow balance',\n )\n : null}\n
    \n \n )}\n\n {/* ---------- PLEASE DO NOT REMOVE BELOW CODE..... ---------- */}\n\n {/* ) : escrowBalanceMarketplace?.length > 0 ? (\n
    \n {renderMonths()}\n {renderAddAnotherMonth()}\n {isEscrowBalanceExceed\n ? renderErrorMessageBox()\n : null}\n
    \n ) : null} */}\n
    \n )}\n
    \n
    \n\n
    \n {renderModalFooter()}\n \n ) : null}\n \n \n \n \n \n );\n}\n\nEscrowBudgetAllocationModal.defaultProps = {\n id: '',\n customerId: '',\n marketplace: '',\n isOpen: false,\n onClick: () => {},\n};\n\nEscrowBudgetAllocationModal.propTypes = {\n id: string,\n customerId: string,\n marketplace: string,\n isOpen: bool,\n onClick: func,\n};\n","/* eslint-disable camelcase */\n\nimport React, { useEffect, useRef } from 'react';\n\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport PropTypes, { instanceOf } from 'prop-types';\n\nimport { dspColorSet } from '../../../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\nconst _ = require('lodash');\n\nfunction DspAdPerformanceGoalsChart({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n isDashboard = false,\n}) {\n const chart = useRef(null);\n useEffect(() => {\n const tooltipNames = {\n dspImpressions: 'IMPRESSIONS',\n dspSpend: 'DSP SPEND',\n dspTotalProductSales: 'TOTAL PRODUCT SALES',\n dspTotalRoas: 'TOTAL ROAS',\n dspTotalDpvr: 'TOTAL DPVR',\n dspTtlNewBrandPurchases: 'TTL NEW BRAND PURCHASES',\n dspProductSales: 'PRODUCT SALES',\n dspRoas: 'ROAS',\n };\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.paddingRight = 20;\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true;\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n // create object of first value axis\n const valueAxis = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis.renderer.grid.template.disabled = true;\n valueAxis.renderer.baseGrid.disabled = true;\n valueAxis.cursorTooltipEnabled = false;\n valueAxis.numberFormatter = new am4core.NumberFormatter();\n valueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis.numberFormatter.smallNumberPrefixes = [];\n valueAxis.min = 0;\n valueAxis.extraMax = 0.009;\n valueAxis.numberFormatter.numberFormat = `#.#a`;\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n {' '}\n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n \n `;\n\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (\n item === 'dspSpend' ||\n item === 'dspTotalProductSales' ||\n item === 'dspProductSales' ||\n item === 'dspTotalRoas' ||\n item === 'dspRoas'\n ) {\n format = `${currencySymbol}#.#a`;\n } else if (\n item === 'dspTtlNewBrandPurchases' ||\n item === 'dspTotalDpvr'\n ) {\n format = `#.#'%'`;\n } else {\n format = `#.#a`;\n }\n return format;\n }\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n let valueAxis2;\n const snapToSeries = [];\n let tooltipValue = '';\n const dashLine = ``;\n let firstAxis = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const currentLabel = `${item}CurrentLabel`;\n const goalsLabel = `${item}GoalsLabel`;\n const colorCode = dspColorSet[item];\n if (item === 'dspTtlNewBrandPurchases') {\n tooltipValue = `${tooltipValue} TTL New Brand Purchases`;\n } else {\n tooltipValue = `${tooltipValue} ${_.startCase(\n _.lowerCase(tooltipNames[item]),\n )}`;\n }\n if (\n item === 'dspSpend' ||\n item === 'dspTotalProductSales' ||\n item === 'dspProductSales' ||\n item === 'dspTotalRoas' ||\n item === 'dspRoas'\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n // if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n // }\n } else if (\n item === 'dspTtlNewBrandPurchases' ||\n item === 'dspTotalDpvr'\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n // if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n '%',\n null,\n )}`;\n // }\n } else if (item === 'dspImpressions') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n dspColorSet[item],\n currentLabel,\n null,\n null,\n '#.#a',\n )}`;\n if (selectedDF !== 'custom') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Goals',\n colorCode,\n goalsLabel,\n null,\n null,\n '#.#a',\n )}`;\n }\n }\n\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const series2 = chart.current.series.push(new am4charts.LineSeries());\n const currentValue = `${item}Current`;\n const goalsValue = `${item}Goals`;\n const seriesName = `${item}Series`;\n const colorCode = dspColorSet[item];\n\n if (index === 0) {\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (\n item === 'dspSpend' ||\n item === 'dspProductSales' ||\n (isDashboard && item === 'dspTotalProductSales')\n ) {\n firstAxis = 'currency';\n }\n }\n if (index === 1) {\n if (\n firstAxis === 'currency' &&\n (item === 'dspSpend' ||\n item === 'dspProductSales' ||\n (isDashboard && item === 'dspTotalProductSales'))\n ) {\n series.yAxis = valueAxis;\n series2.yAxis = valueAxis;\n } else {\n valueAxis2 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis2.renderer.grid.template.disabled = true;\n valueAxis2.renderer.baseGrid.disabled = true;\n valueAxis2.cursorTooltipEnabled = false;\n valueAxis2.numberFormatter = new am4core.NumberFormatter();\n // valueAxis2.numberFormatter.numberFormat = `#.#a`;\n valueAxis2.extraMax = 0.009;\n valueAxis2.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis2.numberFormatter.smallNumberPrefixes = [];\n valueAxis2.min = 0;\n\n series.yAxis = valueAxis2;\n series2.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n }\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n series2.dataFields.valueY = goalsValue;\n series2.name = goalsValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n series2.tooltipHTML = `${tooltipValue}`;\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n series2.propertyFields.strokeDasharray = dashLine;\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n\n snapToSeries.push(series);\n snapToSeries.push(series2);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n let firstAxis = null;\n let secondAxis = null;\n let thirdAxis = null;\n let valueAxis2 = null;\n let valueAxis3 = null;\n let valueAxis4 = null;\n\n let isBindValueAxis2 = true;\n let isBindValueAxis3 = true;\n let isBindValueAxis4 = true;\n\n if (isDashboard) {\n if (_.size(selectedMetrics) === 3) {\n if (\n _.has(selectedMetrics, 'dspSpend') &&\n _.has(selectedMetrics, 'dspProductSales') &&\n _.has(selectedMetrics, 'dspTotalProductSales')\n ) {\n isBindValueAxis2 = false;\n isBindValueAxis3 = false;\n isBindValueAxis4 = false;\n } else if (\n (_.has(selectedMetrics, 'dspSpend') &&\n _.has(selectedMetrics, 'dspProductSales')) ||\n (_.has(selectedMetrics, 'dspSpend') &&\n _.has(selectedMetrics, 'dspTotalProductSales')) ||\n (_.has(selectedMetrics, 'dspProductSales') &&\n _.has(selectedMetrics, 'dspTotalProductSales'))\n ) {\n isBindValueAxis2 = true;\n isBindValueAxis3 = false;\n isBindValueAxis4 = false;\n }\n } else if (_.size(selectedMetrics) === 4) {\n if (\n _.has(selectedMetrics, 'dspSpend') &&\n _.has(selectedMetrics, 'dspProductSales') &&\n _.has(selectedMetrics, 'dspTotalProductSales')\n ) {\n isBindValueAxis2 = true;\n isBindValueAxis3 = false;\n isBindValueAxis4 = false;\n }\n }\n } else if (\n _.size(selectedMetrics) === 3 &&\n _.has(selectedMetrics, 'dspSpend') &&\n _.has(selectedMetrics, 'dspProductSales')\n ) {\n isBindValueAxis2 = true;\n isBindValueAxis3 = false;\n isBindValueAxis4 = false;\n }\n\n if (isBindValueAxis2) {\n // create object of 2nd value axis\n valueAxis2 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis2.renderer.grid.template.disabled = true;\n valueAxis2.renderer.baseGrid.disabled = true;\n valueAxis2.cursorTooltipEnabled = false;\n valueAxis2.numberFormatter = new am4core.NumberFormatter();\n valueAxis2.extraMax = 0.009;\n valueAxis2.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis2.numberFormatter.smallNumberPrefixes = [];\n valueAxis2.min = 0;\n }\n if (isBindValueAxis3) {\n valueAxis3 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis3.renderer.grid.template.disabled = true;\n valueAxis3.renderer.baseGrid.disabled = true;\n valueAxis3.cursorTooltipEnabled = false;\n valueAxis3.numberFormatter = new am4core.NumberFormatter();\n valueAxis3.extraMax = 0.009;\n valueAxis3.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis3.numberFormatter.smallNumberPrefixes = [];\n valueAxis3.min = 0;\n }\n if (isBindValueAxis4) {\n // create object of 4th value axis\n valueAxis4 = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis4.renderer.grid.template.disabled = true;\n valueAxis4.renderer.baseGrid.disabled = true;\n valueAxis4.cursorTooltipEnabled = false;\n valueAxis4.numberFormatter = new am4core.NumberFormatter();\n valueAxis4.extraMax = 0.009;\n valueAxis4.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis4.numberFormatter.smallNumberPrefixes = [];\n valueAxis4.min = 0;\n }\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item) => {\n const value = `${item}CurrentLabel`;\n // const currentLabel = `${_.keys(selectedMetrics)[0]}CurrentLabel`;\n if (\n item === 'dspSpend' ||\n item === 'dspTotalProductSales' ||\n item === 'dspProductSales' ||\n item === 'dspTotalRoas' ||\n item === 'dspRoas'\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n dspColorSet[item],\n value,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (\n item === 'dspTtlNewBrandPurchases' ||\n item === 'dspTotalDpvr'\n ) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n dspColorSet[item],\n value,\n null,\n '%',\n null,\n )}`;\n } else if (item === 'dspImpressions') {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n dspColorSet[item],\n value,\n null,\n null,\n '#.#a',\n )}`;\n } else {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n dspColorSet[item],\n value,\n null,\n null,\n '#,###',\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n\n if (\n item === 'dspSpend' ||\n item === 'dspProductSales' ||\n (isDashboard && item === 'dspTotalProductSales')\n ) {\n if (firstAxis === null || firstAxis === 'currency') {\n series.yAxis = valueAxis;\n firstAxis = 'currency';\n valueAxis.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n } else if (secondAxis === null || secondAxis === 'currency') {\n series.yAxis = valueAxis2;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis2.renderer.opposite = true;\n secondAxis = 'currency';\n } else if (thirdAxis === null || thirdAxis === 'currency') {\n series.yAxis = valueAxis3;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis3.renderer.opposite = true;\n\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n\n thirdAxis = 'currency';\n } else {\n series.yAxis = valueAxis4;\n valueAxis4.renderer.opposite = true;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n valueAxis4.renderer.labels.template.disabled = true;\n }\n } else if (index === 0) {\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n firstAxis = 'others';\n } else if (index === 1) {\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else if (index === 2) {\n if (secondAxis === null) {\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else {\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'others';\n }\n } else if (index === 3) {\n if (secondAxis === null) {\n series.yAxis = valueAxis2;\n valueAxis2.renderer.opposite = true;\n valueAxis2.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n secondAxis = 'other';\n } else if (thirdAxis === null) {\n series.yAxis = valueAxis3;\n valueAxis3.renderer.opposite = true;\n valueAxis3.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n thirdAxis = 'others';\n } else {\n series.yAxis = valueAxis4;\n valueAxis4.renderer.opposite = true;\n valueAxis4.numberFormatter.numberFormat =\n bindValueAxisFormatter(item);\n valueAxis.renderer.line.strokeOpacity = 0;\n valueAxis2.renderer.line.strokeOpacity = 0;\n valueAxis3.renderer.line.strokeOpacity = 0;\n valueAxis4.renderer.line.strokeOpacity = 0;\n valueAxis.renderer.labels.template.disabled = true;\n valueAxis2.renderer.labels.template.disabled = true;\n valueAxis3.renderer.labels.template.disabled = true;\n valueAxis4.renderer.labels.template.disabled = true;\n }\n }\n\n const currentValue = `${item}Current`;\n const seriesName = `${item}Series`;\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.tooltipHTML = `${tooltipValue}`;\n series.stroke = am4core.color(dspColorSet[item]);\n series.fill = am4core.color('#2e384d');\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(dspColorSet[item]);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n\n return () => chart.current && chart.current.dispose();\n }, [\n chartId,\n chartData,\n currencySymbol,\n selectedDF,\n selectedMetrics,\n isDashboard,\n ]);\n\n return
    ;\n}\n\nexport default DspAdPerformanceGoalsChart;\n\nDspAdPerformanceGoalsChart.defaultProps = {\n chartData: [],\n currencySymbol: '',\n selectedDF: '',\n selectedMetrics: {},\n isDashboard: false,\n};\n\nDspAdPerformanceGoalsChart.propTypes = {\n chartId: PropTypes.string.isRequired,\n chartData: PropTypes.arrayOf(PropTypes.object),\n currencySymbol: PropTypes.string,\n selectedDF: PropTypes.string,\n selectedMetrics: instanceOf(Object),\n isDashboard: PropTypes.bool,\n};\n","import React from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { DebounceInput } from 'react-debounce-input';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../../theme/Theme';\nimport { Icon } from '../../../../../../theme/Global';\nimport {\n ASIN,\n CAMPAIGN,\n asinStatiMessages,\n campaignSortingOptions,\n dspCampaignAsinToggleOptions,\n} from '../../../../../../constants';\nimport {\n PageLoader,\n ToggleButton,\n InputSearchWithRadius,\n ViewData,\n DropdownOptions,\n DropdownSingleValue,\n DropdownIndicator,\n SingleSelectDropdown,\n GrayMessageBar,\n} from '../../../../../../common';\n\nfunction DspAsinAndCampaignFilters({\n dspAsinData,\n asinPerformanceLoader,\n handleDownloadReportEvents,\n downloadReportLoader,\n showAsinTooltipMessage,\n todaysDate,\n oneOctober2023,\n handleSortByFilter,\n handleCampaignAsinToogle,\n isCallDSPAsinApi,\n selectedCampaignAsinToggle,\n selectedSortByOrder,\n dspCampaignSearchQuery,\n setDspCampaignSearchQuery,\n handleCampaignSearch,\n}) {\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in DSP CAMPAIGN & ASIN performance\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const dspAsinMessage =\n dynamicMessages?.dsp_performance_asin?.placeholder || null;\n const dspCampaignMessage =\n dynamicMessages?.dsp_performance_campaign?.placeholder || null;\n\n // display react tooltip\n const displayReactTooltip = (id, place) => {\n return (\n \n );\n };\n\n // display input dearch with radius\n const displayInputSearchWithRadius = () => {\n return (\n \n {\n handleCampaignSearch(event);\n }}\n onKeyPress={(event) => {\n if (event.key === 'Enter') {\n handleCampaignSearch(event);\n }\n }}\n value={dspCampaignSearchQuery || ''}\n />\n {' '}\n {dspCampaignSearchQuery !== '' ? (\n setDspCampaignSearchQuery('')}\n />\n ) : null}\n \n );\n };\n\n // get dropdown components\n const getDropdDownComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n // display campaign status filters\n const displayCampaignSortByFilter = () => {\n return (\n \n \n
    \n );\n };\n\n // display campaign/asin toggle button\n const displayCampaignAsinToggleButton = () => {\n return (\n \n
    \n
      \n {dspCampaignAsinToggleOptions?.map((option) => {\n return (\n \n handleCampaignAsinToogle(option?.value)}\n />\n \n \n );\n })}\n
    \n
    \n
    \n );\n };\n\n // display download report button\n const displayDownloadReportButton = () => {\n return (\n {\n handleDownloadReportEvents();\n }}\n style={{ maxWidth: '150px' }}\n >\n {downloadReportLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n
    \n );\n };\n\n // display asin performance header\n const displayAsinPerformanceHeader = () => {\n return (\n <>\n \n
    \n
    \n
    \n {selectedCampaignAsinToggle === CAMPAIGN\n ? 'Campaign and ASIN Performance'\n : 'ASIN Performance'}\n
    \n {todaysDate < oneOctober2023 ? (\n \n \n {displayReactTooltip('info-icon', 'top')}\n \n ) : null}\n {showAsinTooltipMessage ? (\n \n \n {displayReactTooltip('info-icon', 'top')}\n \n ) : null}\n
    \n\n
    \n {displayDownloadReportButton()}\n
    \n
    \n
    \n
      \n {selectedCampaignAsinToggle === CAMPAIGN ? (\n <>\n {/* According to Amber's feedback(pdv-8693), we don't have campaign status for the DSP \n so, instead of removing we just hide that using d-none. (because that might be use in future) */}\n
    • \n
        \n
      • Sort By
      • \n
      • {displayCampaignSortByFilter()}
      • \n
      \n
    • \n
    • {displayInputSearchWithRadius()}
    • \n \n ) : null}\n\n
    • {displayCampaignAsinToggleButton()}
    • \n
    • \n {displayDownloadReportButton()}\n
    • \n
    \n
    \n
    \n
    \n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in DSP CAMPAIGN & ASIN performance */}\n {selectedCampaignAsinToggle === ASIN && dspAsinMessage ? (\n \n ) : null}\n {selectedCampaignAsinToggle === CAMPAIGN && dspCampaignMessage ? (\n \n ) : null}\n
    \n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return
    {displayAsinPerformanceHeader()}
    ;\n}\n\nexport default DspAsinAndCampaignFilters;\n\nDspAsinAndCampaignFilters.defaultProps = {\n downloadReportLoader: false,\n isCallDSPAsinApi: false,\n asinPerformanceLoader: false,\n showAsinTooltipMessage: false,\n selectedCampaignAsinToggle: '',\n todaysDate: '',\n oneOctober2023: '',\n dspCampaignSearchQuery: '',\n dspAsinData: [],\n selectedSortByOrder: {},\n handleDownloadReportEvents: () => {},\n handleSortByFilter: () => {},\n handleCampaignAsinToogle: () => {},\n setDspCampaignSearchQuery: () => {},\n handleCampaignSearch: () => {},\n};\nDspAsinAndCampaignFilters.propTypes = {\n downloadReportLoader: bool,\n isCallDSPAsinApi: bool,\n asinPerformanceLoader: bool,\n showAsinTooltipMessage: bool,\n selectedCampaignAsinToggle: string,\n todaysDate: string,\n oneOctober2023: string,\n dspCampaignSearchQuery: string,\n dspAsinData: arrayOf(shape({})),\n selectedSortByOrder: shape({}),\n handleDownloadReportEvents: func,\n handleSortByFilter: func,\n handleCampaignAsinToogle: func,\n setDspCampaignSearchQuery: func,\n handleCampaignSearch: func,\n};\n","import React from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../../theme/Theme';\nimport useValueWithChangeAndPercent from '../../../../../../hooks/useValueWithChangeAndPercent';\nimport { dspAsinTableConstant } from '../../../../../../constants';\nimport {\n CommonPagination,\n DesktopTable,\n NoData,\n PageLoader,\n} from '../../../../../../common';\n\nfunction DspAsinPerformanceTable({\n isCustom,\n asinPerformanceLoader,\n dspAsinData,\n isTablet,\n asinPageCount,\n asinPageNumber,\n handleAsinPaginationEvents,\n asinMessage,\n handleSortingEvents,\n currencySymbol,\n orderBy,\n orderByKey,\n}) {\n // display react tooltip\n const displayReactTooltip = (id, place) => {\n return (\n \n );\n };\n\n // display product name with tooltip\n const displayProductNameWithTooltip = (productName, index, link) => {\n const textLimit = 50;\n return (\n \n ${productName}
    `}\n data-for={`product${index}`}\n data-cy=\"BT-dsp-asinData-productName\"\n >\n {productName?.length > textLimit\n ? `${productName?.slice(0, textLimit)}...`\n : productName}\n
    \n {displayReactTooltip(`product${index}`, 'top')}\n \n \n \n
    \n );\n };\n\n // display sortable up and down arrow icon\n const displaySortableUpDownArrow = (key) => {\n return (\n \n );\n };\n\n const renderTableRow = (data, numberFormatter) => {\n return (\n <>\n {data?.map((item, index) => {\n return (\n \n \n {item?.asin}\n \n \n {displayProductNameWithTooltip(\n item?.productName,\n index,\n item?.pdpLink,\n )}\n \n \n \n {numberFormatter(\n item?.totalProductSalesCurrent,\n item?.totalProductSalesChangeInValue,\n item?.totalProductSalesChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n item?.ttlNewBrandPurchasesCurrent,\n item?.ttlNewBrandPurchasesChangeInValue,\n item?.ttlNewBrandPurchasesChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n item?.totalDetailPageViewsCurrent,\n item?.totalDetailPageViewsChangeInValue,\n item?.totalDetailPageViewsChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n \n \n {numberFormatter(\n item?.totalAddToCartCurrent,\n item?.totalAddToCartChangeInValue,\n item?.totalAddToCartChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n \n \n );\n })}\n \n );\n };\n\n // display asin performance table\n const DisplayAsinPerformnaceTable = (numberFormatter) => {\n return (\n \n \n \n {dspAsinTableConstant?.map((item) => {\n return (\n {\n if (item?.isSortable) handleSortingEvents(item?.key);\n }}\n style={{ width: item?.width }}\n >\n {item?.label}\n {item?.isSortable\n ? displaySortableUpDownArrow(item?.key)\n : null}\n \n );\n })}\n \n \n {renderTableRow(dspAsinData, numberFormatter)}\n \n );\n };\n\n // display asin performance mobile view\n const displayAsinPerformanceMobileView = (numberFormatter) => {\n return (\n
    \n {dspAsinData?.map((item, index) => {\n return (\n
    \n
    \n
    \n
    \n
    Asin
    \n
    \n {item?.asin}\n
    \n
    \n
    \n
    Product Name
    \n \n {displayProductNameWithTooltip(\n item?.productName,\n index,\n item?.pdpLink,\n )}\n
    \n
    \n
    \n
    \n
    \n
    \n Total Product Sales{' '}\n {displaySortableUpDownArrow('ad_spend')}\n
    \n
    \n {numberFormatter(\n item?.totalProductSalesCurrent,\n item?.totalProductSalesChangeInValue,\n item?.totalProductSalesChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n
    \n
    \n
    \n
    \n TTL New Brand Purchases{' '}\n {displaySortableUpDownArrow('ad_sales')}\n
    \n
    \n {numberFormatter(\n item?.ttlNewBrandPurchasesCurrent,\n item?.ttlNewBrandPurchasesChangeInValue,\n item?.ttlNewBrandPurchasesChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n Total Detail Page Views{' '}\n {displaySortableUpDownArrow('acos')}\n
    \n
    \n {numberFormatter(\n item?.totalDetailPageViewsCurrent,\n item?.totalDetailPageViewsChangeInValue,\n item?.totalDetailPageViewsChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n
    \n
    \n
    \n
    \n Total Add to Cart\n {displaySortableUpDownArrow('roas')}\n
    \n
    \n {numberFormatter(\n item?.totalAddToCartCurrent,\n item?.totalAddToCartChangeInValue,\n item?.totalAddToCartChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n
    \n
    \n
    \n
    \n \n
    \n );\n })}\n
    \n );\n };\n\n // display asin performance content\n const displayAsinPerformanceContent = () => {\n return (\n <>\n {asinPerformanceLoader ? (\n \n ) : dspAsinData?.length > 0 ? (\n <>\n
    \n {isTablet\n ? DisplayAsinPerformnaceTable(useValueWithChangeAndPercent)\n : displayAsinPerformanceMobileView(\n useValueWithChangeAndPercent,\n )}\n
    \n {!asinPerformanceLoader && asinPageCount > 10 ? (\n
    \n \n
    \n ) : null}\n \n ) : (\n {asinMessage}\n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return
    {displayAsinPerformanceContent()}
    ;\n}\n\nexport default DspAsinPerformanceTable;\n\nDspAsinPerformanceTable.defaultProps = {\n isCustom: false,\n asinPerformanceLoader: false,\n isTablet: false,\n asinPageCount: 0,\n asinPageNumber: 0,\n dspAsinData: [],\n handleAsinPaginationEvents: '',\n asinMessage: '',\n handleSortingEvents: '',\n currencySymbol: '',\n orderBy: '',\n orderByKey: '',\n};\nDspAsinPerformanceTable.propTypes = {\n isCustom: bool,\n asinPerformanceLoader: bool,\n isTablet: bool,\n asinPageCount: number,\n asinPageNumber: number,\n\n asinMessage: string,\n currencySymbol: string,\n orderBy: string,\n orderByKey: string,\n dspAsinData: arrayOf(shape({})),\n handleAsinPaginationEvents: func,\n\n handleSortingEvents: func,\n};\n","import React from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\nimport { Collapse } from 'react-collapse';\n\nimport Theme from '../../../../../../theme/Theme';\nimport useValueWithChangeAndPercent from '../../../../../../hooks/useValueWithChangeAndPercent';\nimport { dspAsinTableConstant } from '../../../../../../constants';\n\nimport {\n CommonPagination,\n DesktopTable,\n NoData,\n PageLoader,\n VisibleScrollableTable,\n} from '../../../../../../common';\n\nfunction DspCampaignPerformanceTable({\n isCustom,\n campaignAsinLoader,\n campaignCollapseLoader,\n isTablet,\n handleSortingEvents,\n orderBy,\n orderByKey,\n campaignListData,\n campaignAsinData,\n currencySymbol,\n asinMessage,\n setCampaignListData,\n campaignPageCount,\n campaignPageNumber,\n campaignAsinPageCount,\n campaignAsinPageNumber,\n handleCampaignPaginationEvents,\n handleCampaignAsinPaginationEvents,\n handleCollapseClick,\n}) {\n // display sortable up and down arrow icon\n const displaySortableUpDownArrow = (key) => {\n return (\n \n );\n };\n\n const changeCollapseFlag = (campaignId, flag = false) => {\n const localDspCampaignData = [...campaignListData];\n localDspCampaignData.forEach((value, index) => {\n if (value?.id === campaignId) {\n localDspCampaignData[index].isOpen = flag;\n } else {\n localDspCampaignData[index].isOpen = false;\n }\n });\n\n return localDspCampaignData;\n };\n\n // display collapse Icon\n const displayCollapseIcon = (campaignId, top, right, left) => {\n const localCampaign = campaignListData?.find(\n (item) => item?.id === campaignId,\n );\n return (\n {\n setCampaignListData(\n changeCollapseFlag(campaignId, !!localCampaign?.isOpen),\n );\n }}\n />\n );\n };\n\n // display react tooltip\n const displayReactTooltip = (id, place) => {\n return (\n \n );\n };\n\n // display product name with tooltip\n const displayProductNameWithTooltip = (productName, index, link) => {\n const textLimit = 50;\n return (\n \n ${productName}
    `}\n data-for={`product${index}`}\n data-cy=\"BT-dsp-asinData-productName\"\n >\n {productName?.length > textLimit\n ? `${productName?.slice(0, textLimit)}...`\n : productName}\n
    \n {displayReactTooltip(`product${index}`, 'top')}\n \n \n \n
    \n );\n };\n\n // display campaign collapse header row\n const displayCampaignCollpaseHead = (campaignDetails, index) => {\n const marketplace = campaignDetails?.marketpalceValue || '';\n const campaignName = campaignDetails?.campaign || '';\n const asinCount = campaignDetails?.numberOfAsins || '';\n\n return (\n {\n setCampaignListData(\n changeCollapseFlag(campaignDetails?.id, !campaignDetails?.isOpen),\n );\n handleCollapseClick(campaignDetails?.id);\n }}\n >\n \n \n {displayCollapseIcon(campaignDetails?.id, '15px', null, '20px')}\n \n \n {marketplace ? `${marketplace} | ` : ''}\n {campaignName ? `${campaignName} | ` : ''}\n {asinCount || ''}\n \n \n \n \n );\n };\n\n // display campaign collapse Body row\n const displayCampaignCollpaseBody = (\n campaignDetails,\n numberFormatter,\n tableId,\n campaignIndex,\n ) => {\n // Note --> Width of should be match with the width mentioned in dspAsinTableConstant for column alignment\n return (\n \n \n \n \n \n {campaignAsinLoader ? (\n \n \n \n \n
    \n \n \n ) : (\n <>\n {campaignAsinData?.asinData?.length > 0\n ? campaignAsinData?.asinData?.map((item, index) => {\n return (\n \n \n {item?.asin}\n \n \n {displayProductNameWithTooltip(\n item?.productName,\n index,\n item?.pdpLink,\n )}\n \n \n \n {numberFormatter(\n item?.totalProductSalesCurrent,\n item?.totalProductSalesChangeInValue,\n item?.totalProductSalesChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n item?.ttlNewBrandPurchasesCurrent,\n item?.ttlNewBrandPurchasesChangeInValue,\n item?.ttlNewBrandPurchasesChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n item?.totalDetailPageViewsCurrent,\n item?.totalDetailPageViewsChangeInValue,\n item?.totalDetailPageViewsChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n \n \n {numberFormatter(\n item?.totalAddToCartCurrent,\n item?.totalAddToCartChangeInValue,\n item?.totalAddToCartChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n \n \n );\n })\n : null}\n {/* bind the TOTAL row */}\n {Object.keys(campaignAsinData?.asinTotal)?.length > 0 ? (\n \n \n
    \n {campaignAsinData?.asinTotal?.asin}\n
    \n \n \n \n \n {numberFormatter(\n campaignAsinData?.asinTotal\n ?.totalProductSalesCurrent,\n campaignAsinData?.asinTotal\n ?.totalProductSalesChangeInValue,\n campaignAsinData?.asinTotal\n ?.totalProductSalesChangeInPercent,\n 2,\n isCustom,\n currencySymbol,\n '',\n )}\n \n \n {numberFormatter(\n campaignAsinData?.asinTotal\n ?.ttlNewBrandPurchasesCurrent,\n campaignAsinData?.asinTotal\n ?.ttlNewBrandPurchasesChangeInValue,\n campaignAsinData?.asinTotal\n ?.ttlNewBrandPurchasesChangeInPercent,\n 2,\n isCustom,\n '',\n '%',\n )}\n \n \n {numberFormatter(\n campaignAsinData?.asinTotal\n ?.totalDetailPageViewsCurrent,\n campaignAsinData?.asinTotal\n ?.totalDetailPageViewsChangeInValue,\n campaignAsinData?.asinTotal\n ?.totalDetailPageViewsChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n \n \n {numberFormatter(\n campaignAsinData?.asinTotal?.totalAddToCartCurrent,\n campaignAsinData?.asinTotal\n ?.totalAddToCartChangeInValue,\n campaignAsinData?.asinTotal\n ?.totalAddToCartChangeInPercent,\n 2,\n isCustom,\n '',\n '',\n )}\n \n \n ) : null}\n {campaignAsinPageCount > 10 ? (\n \n \n \n \n handleCampaignAsinPaginationEvents(\n event,\n campaignDetails,\n )\n }\n />\n \n \n \n ) : null}\n \n )}\n \n \n \n \n \n );\n };\n\n // dispaly campaign table data\n const displayCampaignTable = (tableId) => {\n return campaignCollapseLoader ? (\n \n \n \n \n \n ) : (\n \n {campaignListData?.map((campaignDetails, index) => {\n return (\n <>\n {/* render campaign table heading */}\n {displayCampaignCollpaseHead(campaignDetails, index)}\n {/* render campaign table body */}\n {displayCampaignCollpaseBody(\n campaignDetails,\n useValueWithChangeAndPercent,\n tableId,\n index,\n )}\n \n \n );\n })}\n \n );\n };\n\n const displayCampaignPerformanceContent = () => {\n const tableMinWidth = '1200px';\n const tableDivId = 'BT-dsp-campaign-table';\n return (\n \n \n \n \n {dspAsinTableConstant?.map((item) => {\n return (\n {\n if (item?.isSortable) handleSortingEvents(item?.key);\n }}\n >\n {item?.label}\n {item?.isSortable\n ? displaySortableUpDownArrow(item?.key)\n : null}\n \n );\n })}\n \n \n {displayCampaignTable(tableDivId)} {/* render campaign table data */}\n \n {campaignPageCount > 10 ? (\n
    \n \n
    \n ) : null}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n {campaignCollapseLoader ? (\n \n ) : campaignListData?.length > 0 ? (\n displayCampaignPerformanceContent() // render tables\n ) : (\n {asinMessage}\n )}\n \n );\n}\n\nexport default DspCampaignPerformanceTable;\n\nDspCampaignPerformanceTable.defaultProps = {\n isCustom: false,\n campaignAsinLoader: false,\n campaignCollapseLoader: false,\n isTablet: false,\n campaignPageCount: 0,\n campaignPageNumber: 0,\n campaignAsinPageCount: 0,\n campaignAsinPageNumber: 0,\n orderBy: '',\n orderByKey: '',\n currencySymbol: '',\n asinMessage: '',\n campaignListData: [],\n campaignAsinData: {},\n handleSortingEvents: () => {},\n setCampaignListData: () => {},\n handleCampaignPaginationEvents: () => {},\n handleCampaignAsinPaginationEvents: () => {},\n handleCollapseClick: () => {},\n};\nDspCampaignPerformanceTable.propTypes = {\n isCustom: bool,\n campaignAsinLoader: bool,\n campaignCollapseLoader: bool,\n isTablet: bool,\n campaignPageCount: number,\n campaignPageNumber: number,\n campaignAsinPageCount: number,\n campaignAsinPageNumber: number,\n orderBy: string,\n orderByKey: string,\n currencySymbol: string,\n asinMessage: string,\n campaignListData: arrayOf(shape({})),\n campaignAsinData: shape({}),\n handleSortingEvents: func,\n setCampaignListData: func,\n handleCampaignPaginationEvents: func,\n handleCampaignAsinPaginationEvents: func,\n handleCollapseClick: func,\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport dayjs from 'dayjs';\n\nimport { toast } from 'react-toastify';\nimport { useMediaQuery } from 'react-responsive';\n\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport DspAsinAndCampaignFilters from './DspAsinAndCampaignFilters';\nimport DspAsinPerformanceTable from './DspAsinPerformanceTable';\nimport DspCampaignPerformanceTable from './DspCampaignPerformanceTable';\nimport {\n getDspCampaignList,\n getDspAdAsinPerformanceData,\n getDspCampaignPerformanceData,\n getDspCampaignDownloadReport,\n} from '../../../../../../api';\nimport {\n ASIN,\n CUSTOM,\n asinStatiMessages,\n campaignSortingOptions,\n dspCampaignAsinToggleOptions,\n} from '../../../../../../constants';\n\nfunction DspAsinAndCampaignContainer({\n customerId,\n childBrandId,\n selectedDF,\n selectedMarketplace,\n adState,\n currencySymbol,\n isCallDSPAsinApi,\n setIsCallDSPAsinApi,\n}) {\n const isTablet = useMediaQuery({ minWidth: 768 });\n const isCustom = selectedDF === 'custom';\n const [orderBy, setOrderBy] = useState('total_product_sales');\n const [orderByKey, setOrderByKey] = useState('-total_product_sales');\n const [asinPageCount, setAsinPageCount] = useState(1);\n const [asinPageNumber, setAsinPageNumber] = useState(1);\n const [dspAsinData, setDspAsinData] = useState([]);\n const [asinPerformanceLoader, setAsinPerformanceLoader] = useState(false);\n const [campaignCollapseLoader, setCampaignCollapseLoader] = useState(false);\n const [campaignAsinLoader, setCampaignAsinLoader] = useState(false);\n const [downloadReportLoader, setDownloadReportLoader] = useState(false);\n const [campaignListData, setCampaignListData] = useState([]);\n const [campaignAsinData, setCampaignAsinData] = useState({\n asinData: [],\n asinTotal: {},\n });\n\n const [dspCampaignSearchQuery, setDspCampaignSearchQuery] = useState('');\n const [campaignPageCount, setCampaignPageCount] = useState(1);\n const [campaignPageNumber, setCampaignPageNumber] = useState(1);\n const [campaignAsinPageCount, setCampaignAsinPageCount] = useState(1);\n const [campaignAsinPageNumber, setCampaignAsinPageNumber] = useState(1);\n const [selectedSortByOrder, setSelectedSortByOrder] = useState(\n campaignSortingOptions?.[0],\n );\n const [selectedCampaignAsinToggle, setSelectedCampaignAsinToggle] = useState(\n dspCampaignAsinToggleOptions[0]?.value,\n );\n const [asinMessage, setAsinMessage] = useState(\n asinStatiMessages?.asinDataAvailabilityMessage,\n );\n\n // PDV-8401 - Logic - point no. 1 - One October 2023 logic\n const todaysDate = dayjs(new Date()).format('YYYY-MM-DD');\n const oneOctober2023 = dayjs(new Date(2023, 9, 1)).format('YYYY-MM-DD');\n\n // PDV-8422 - Logic - when user select custom end date 4 months before today\n const fourMonthBeforeToday = useMemo(() => {\n const today = new Date();\n today.setMonth(today.getMonth() - 4);\n return today;\n }, []);\n\n const showAsinTooltipMessage = adState?.[0]?.startDate < fourMonthBeforeToday;\n\n // bind dsp ad asin performance data\n const bindDspAsinPerformanceData = useCallback((responseData) => {\n const tempAsinData = [];\n\n if (responseData?.length > 0) {\n responseData.forEach((item) => {\n tempAsinData.push({\n asin: item?.asin,\n productName: item?.product_name || 'Not available',\n pdpLink: item?.pdp_link,\n\n totalProductSalesCurrent: item?.current?.total_product_sales,\n ttlNewBrandPurchasesCurrent: item?.current?.ttl_new_brand_purchases,\n totalDetailPageViewsCurrent: item?.current?.total_detail_page_views,\n totalAddToCartCurrent: item?.current?.total_add_to_cart,\n\n totalProductSalesChangeInValue: item?.change?.total_product_sales,\n ttlNewBrandPurchasesChangeInValue:\n item?.change?.ttl_new_brand_purchases,\n totalDetailPageViewsChangeInValue:\n item?.change?.total_detail_page_views,\n totalAddToCartChangeInValue: item?.change?.total_add_to_cart,\n\n totalProductSalesChangeInPercent:\n item?.per_change?.total_product_sales,\n ttlNewBrandPurchasesChangeInPercent:\n item?.per_change?.ttl_new_brand_purchases,\n totalDetailPageViewsChangeInPercent:\n item?.per_change?.total_detail_page_views,\n totalAddToCartChangeInPercent: item?.per_change?.total_add_to_cart,\n });\n return tempAsinData;\n });\n }\n return tempAsinData;\n }, []);\n\n // bind DSP campaign asin total response data\n const bindDspCampaignAsinTotal = useCallback((responseData) => {\n let tempCampaignAsinTotal = {};\n if (responseData !== null) {\n tempCampaignAsinTotal = {\n asin: 'Total',\n totalProductSalesCurrent: responseData?.current?.total_product_sales,\n ttlNewBrandPurchasesCurrent:\n responseData?.current?.ttl_new_brand_purchases,\n totalDetailPageViewsCurrent:\n responseData?.current?.total_detail_page_views,\n totalAddToCartCurrent: responseData?.current?.total_add_to_cart,\n\n totalProductSalesChangeInValue:\n responseData?.change?.total_product_sales,\n ttlNewBrandPurchasesChangeInValue:\n responseData?.change?.ttl_new_brand_purchases,\n totalDetailPageViewsChangeInValue:\n responseData?.change?.total_detail_page_views,\n totalAddToCartChangeInValue: responseData?.change?.total_add_to_cart,\n\n totalProductSalesChangeInPercent:\n responseData?.per_change?.total_product_sales,\n ttlNewBrandPurchasesChangeInPercent:\n responseData?.per_change?.ttl_new_brand_purchases,\n totalDetailPageViewsChangeInPercent:\n responseData?.per_change?.total_detail_page_views,\n totalAddToCartChangeInPercent:\n responseData?.per_change?.total_add_to_cart,\n };\n }\n\n return tempCampaignAsinTotal;\n }, []);\n\n // bind Campaign list data\n const bindCampaignListData = useCallback((responseData) => {\n const tempCampaignData = [];\n\n if (responseData?.length > 0) {\n responseData.forEach((item, index) => {\n tempCampaignData.push({\n id: item?.order_id,\n marketpalceLabel: item?.country,\n marketpalceValue: item?.marketplace_name,\n campaign: item?.order_name,\n numberOfAsins: item?.asin_count,\n isOpen: index === 0,\n });\n return tempCampaignData;\n });\n }\n\n return tempCampaignData;\n }, []);\n\n // callback function for get dsp ad asin performance data\n const getAsinPerformanceData = useCallback(\n (orderByApiKey, page, startDate, endDate) => {\n setAsinPerformanceLoader(true);\n setDspAsinData([]);\n\n const startDateLocal = dayjs(startDate).format('DD-MM-YYYY');\n const endDateLocal = dayjs(endDate).format('DD-MM-YYYY');\n\n if (endDate <= fourMonthBeforeToday) {\n setDspAsinData([]);\n setAsinMessage(asinStatiMessages?.asinHistoricalDataMessage);\n setAsinPerformanceLoader(false);\n } else {\n getDspAdAsinPerformanceData(\n customerId,\n selectedMarketplace,\n orderByApiKey,\n page,\n selectedDF,\n startDateLocal,\n endDateLocal,\n childBrandId,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.results?.length > 0) {\n setAsinPageCount(response?.data?.count);\n setDspAsinData(bindDspAsinPerformanceData(response?.data?.results));\n } else {\n setDspAsinData([]);\n setAsinPageCount(1);\n setAsinMessage(asinStatiMessages?.asinDataAvailabilityMessage);\n }\n\n setAsinPerformanceLoader(false);\n });\n }\n },\n\n [\n bindDspAsinPerformanceData,\n childBrandId,\n customerId,\n fourMonthBeforeToday,\n selectedDF,\n selectedMarketplace,\n ],\n );\n\n // callback function for get dsp campaign- asin performance data - (campaign details)\n const getCampaignAsinPerformanceData = useCallback(\n (orderByApiKey, page, startDate, endDate, campaignOrderId) => {\n setCampaignAsinLoader(true);\n setCampaignAsinData({\n asinData: [],\n asinTotal: {},\n });\n const startDateLocal = dayjs(startDate).format('DD-MM-YYYY');\n const endDateLocal = dayjs(endDate).format('DD-MM-YYYY');\n\n getDspCampaignPerformanceData(\n customerId,\n selectedMarketplace,\n orderByApiKey,\n page,\n selectedDF,\n startDateLocal,\n endDateLocal,\n childBrandId,\n null,\n campaignOrderId,\n ).then((response) => {\n if (response?.status === 200) {\n setCampaignAsinPageCount(response?.data?.count);\n\n setCampaignAsinData({\n asinData: bindDspAsinPerformanceData(\n response?.data?.results?.asin_data,\n ),\n asinTotal: bindDspCampaignAsinTotal(\n response?.data?.results?.asin_total,\n ),\n });\n } else {\n setCampaignAsinData({\n asinData: [],\n asinTotal: {},\n });\n setCampaignAsinPageCount(1);\n setAsinMessage(asinStatiMessages?.asinDataAvailabilityMessage);\n }\n\n setCampaignAsinLoader(false);\n });\n },\n\n [\n bindDspAsinPerformanceData,\n bindDspCampaignAsinTotal,\n childBrandId,\n customerId,\n selectedDF,\n selectedMarketplace,\n ],\n );\n\n // callback function for get campaign data\n const getCampaignListData = useCallback(\n (orderByApiKey, page, startDate, endDate) => {\n setCampaignCollapseLoader(true);\n setCampaignListData([]);\n\n const startDateLocal = dayjs(startDate).format('DD-MM-YYYY');\n const endDateLocal = dayjs(endDate).format('DD-MM-YYYY');\n if (endDate <= fourMonthBeforeToday) {\n setDspAsinData([]);\n setAsinMessage(asinStatiMessages?.asinHistoricalDataMessage);\n setCampaignCollapseLoader(false);\n } else {\n getDspCampaignList(\n customerId,\n selectedMarketplace,\n orderByApiKey,\n page,\n selectedDF,\n dspCampaignSearchQuery,\n childBrandId,\n startDateLocal,\n endDateLocal,\n ).then((response) => {\n if (response?.status === 200) {\n setCampaignPageCount(response?.data?.count);\n const localCampaignData = bindCampaignListData(\n response?.data?.results,\n );\n setCampaignListData(localCampaignData);\n if (localCampaignData?.length) {\n getCampaignAsinPerformanceData(\n orderByApiKey,\n 1,\n startDate,\n endDate,\n localCampaignData?.[0]?.id,\n );\n } else {\n setAsinMessage(\n asinStatiMessages?.campaignDataAvailabilityMessage,\n );\n }\n } else {\n setCampaignPageCount(1);\n setCampaignListData([]);\n setCampaignAsinData({\n asinData: [],\n asinTotal: {},\n });\n setAsinMessage(asinStatiMessages?.campaignDataAvailabilityMessage);\n }\n setCampaignCollapseLoader(false);\n });\n }\n },\n\n [\n bindCampaignListData,\n childBrandId,\n customerId,\n dspCampaignSearchQuery,\n fourMonthBeforeToday,\n getCampaignAsinPerformanceData,\n selectedDF,\n selectedMarketplace,\n ],\n );\n\n // use effect\n useEffect(() => {\n if (!isCallDSPAsinApi && selectedDF !== CUSTOM) {\n if (selectedCampaignAsinToggle === ASIN) {\n getAsinPerformanceData(\n '-total_product_sales',\n 1,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n setAsinPageNumber(1);\n } else {\n getCampaignListData(\n '-total_product_sales',\n 1,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n getAsinPerformanceData,\n getCampaignListData,\n isCallDSPAsinApi,\n selectedDF,\n ]);\n\n // use effect when apply custom date filter\n useEffect(() => {\n if (isCallDSPAsinApi) {\n if (selectedCampaignAsinToggle === ASIN) {\n getAsinPerformanceData(\n orderByKey,\n 1,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n setAsinPageNumber(1);\n setIsCallDSPAsinApi(false);\n } else {\n getCampaignListData(\n orderByKey,\n 1,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n setIsCallDSPAsinApi(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getAsinPerformanceData, getCampaignListData, isCallDSPAsinApi]);\n\n // handle download report events\n const handleDownloadReportEvents = () => {\n setDownloadReportLoader(true);\n const startDate = dayjs(adState?.[0]?.startDate).format('DD-MM-YYYY');\n const endDate = dayjs(adState?.[0]?.endDate).format('DD-MM-YYYY');\n\n if (selectedCampaignAsinToggle === ASIN) {\n getDspAdAsinPerformanceData(\n customerId,\n selectedMarketplace,\n orderByKey,\n asinPageNumber,\n selectedDF,\n startDate,\n endDate,\n childBrandId,\n true,\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n setDownloadReportLoader(false);\n } else {\n toast.error('Oops! Something went wrong...');\n setDownloadReportLoader(false);\n }\n });\n } else {\n getDspCampaignDownloadReport(\n customerId,\n selectedMarketplace,\n selectedDF,\n orderByKey,\n dspCampaignSearchQuery,\n startDate,\n endDate,\n childBrandId,\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n setDownloadReportLoader(false);\n } else {\n toast.error('Oops! Something went wrong...');\n setDownloadReportLoader(false);\n }\n });\n }\n };\n\n // handle campaign list collapse\n const handleCollapseClick = (campaignOrderId) => {\n getCampaignAsinPerformanceData(\n orderByKey,\n 1,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n campaignOrderId,\n );\n setCampaignAsinPageNumber(1);\n };\n\n // handle sorting(order by- column header) events of asin table\n const handleSortingEvents = (key) => {\n let orderByApiKey = key;\n setOrderBy(key);\n if (orderByKey === `-${key}`) {\n setOrderByKey(key);\n orderByApiKey = key;\n } else {\n setOrderByKey(`-${key}`);\n orderByApiKey = `-${key}`;\n }\n if (selectedCampaignAsinToggle === ASIN) {\n getAsinPerformanceData(\n orderByApiKey,\n asinPageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n } else {\n getCampaignListData(\n orderByApiKey,\n asinPageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n }\n };\n\n // handle Asin toggle pagination events\n const handleAsinPaginationEvents = (currentPage) => {\n setAsinPageNumber(currentPage);\n getAsinPerformanceData(\n orderByKey,\n currentPage,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n // handle Campaign toggle pagination events\n const handleCampaignPaginationEvents = (currentPage) => {\n setCampaignPageNumber(currentPage);\n getCampaignListData(\n orderByKey,\n currentPage,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n // handle Campaign-Asin toggle pagination events\n const handleCampaignAsinPaginationEvents = (currentPage, campaignDetails) => {\n setCampaignAsinPageNumber(currentPage);\n getCampaignAsinPerformanceData(\n orderByKey,\n currentPage,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n campaignDetails?.id,\n );\n };\n\n // handle sort by filter (enabled, paused, archived)\n const handleSortByFilter = (event) => {\n setSelectedSortByOrder(event);\n getCampaignListData(\n orderByKey,\n asinPageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n // handlesort campaign and asin toogle options\n const handleCampaignAsinToogle = (type) => {\n setSelectedCampaignAsinToggle(type);\n if (type === ASIN) {\n setSelectedSortByOrder(campaignSortingOptions?.[0]);\n setDspCampaignSearchQuery('');\n getAsinPerformanceData(\n orderByKey,\n asinPageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n } else {\n getCampaignListData(\n orderByKey,\n asinPageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n }\n };\n\n const handleCampaignSearch = (event) => {\n setDspCampaignSearchQuery(event?.target?.value);\n getCampaignListData(\n orderByKey,\n asinPageNumber,\n adState?.[0]?.startDate,\n adState?.[0]?.endDate,\n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n \n\n {selectedCampaignAsinToggle === ASIN ? (\n \n ) : (\n \n )}\n
    \n );\n}\n\nexport default DspAsinAndCampaignContainer;\n\nDspAsinAndCampaignContainer.defaultProps = {\n isCallDSPAsinApi: false,\n childBrandId: null,\n selectedDF: '',\n currencySymbol: '',\n selectedMarketplace: 'all',\n adState: [],\n setIsCallDSPAsinApi: () => {},\n};\nDspAsinAndCampaignContainer.propTypes = {\n isCallDSPAsinApi: bool,\n childBrandId: string,\n selectedDF: string,\n selectedMarketplace: string,\n currencySymbol: string,\n customerId: string.isRequired,\n adState: arrayOf(shape()),\n setIsCallDSPAsinApi: func,\n};\n","// react imports\nimport React, { Fragment, useCallback } from 'react';\n\n// third party imports\nimport ReactTooltip from 'react-tooltip';\nimport { bool, func, string, shape } from 'prop-types';\n\n// local file imports\nimport DifferenceAdMetric from '../DifferenceAdMetric';\nimport CardMetrics from '../../../../common/CardMetrics';\nimport {\n dspMetricsConstants,\n showMetricsTooltipForDSP,\n} from '../../../../constants';\n\nconst DspMetrics = ({\n setBoxToggle,\n setBoxClasses,\n dspCurrentTotal,\n dspPreviousTotal,\n dspDifference,\n currencySymbol,\n isApiCall,\n dspGoalsMetricData,\n dspGoalsToggle,\n}) => {\n const returnTooltipMessge = (key = '') => {\n return `No ${key} available for this period.`;\n };\n\n const addThousandComma = useCallback((number, decimalDigits = 2) => {\n if (number !== undefined && number !== null) {\n return number\n .toFixed(decimalDigits)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n return number;\n }, []);\n\n // display dsp goals data\n const displayGoalsInfoOnCardMetrics = (metricName) => {\n const target = dspGoalsMetricData?.[metricName]?.target;\n return dspGoalsMetricData?.[metricName] ? (\n
    \n
    \n
    \n Target{' '}\n {`${\n dspGoalsMetricData?.[metricName]?.sign === 'dollar' ? '$' : ''\n }${dspGoalsMetricData?.[metricName]?.value\n ?.toFixed(2)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n ${\n dspGoalsMetricData?.[metricName]?.sign === 'percentage'\n ? '%'\n : ''\n }`}\n
    \n \n {target}\n
    \n
    \n \n ) : null;\n };\n\n // display metrics box html\n const displayDspMetricsBoxHTML = (metrics) => {\n const metricsKey = metrics?.metricsKey;\n const classNameKey = metrics?.activeClassName;\n const currentValue = dspCurrentTotal?.[metricsKey];\n const previousValue = dspPreviousTotal?.[metricsKey];\n const differenceValue = dspDifference?.[metricsKey];\n const prefix = metrics?.prefix === 'currency' ? currencySymbol : '';\n const suffix = metrics?.suffix;\n const decimalDigits = metrics?.decimalDigits;\n const hasGoalsToggle = metrics?.hasGoals;\n const differenceType = metrics?.differenceType;\n\n return (\n
    \n \n setBoxToggle(metrics?.key, 'dsp')}\n role=\"presentation\"\n data-cy={metrics?.dataCy}\n className={`${setBoxClasses(metrics?.key, classNameKey, 'dsp')} ${\n !currentValue && !previousValue ? 'disabled' : null\n } ${hasGoalsToggle && dspGoalsToggle ? 'disabled' : ''}`}\n >\n
    {metrics?.label}
    \n
    \n {currentValue\n ? `${prefix}${addThousandComma(\n currentValue,\n decimalDigits,\n )}${suffix}`\n : `${prefix}${decimalDigits === 0 ? '0' : '0.00'}${suffix}`}\n
    \n
    \n {previousValue\n ? `vs ${prefix}${addThousandComma(\n previousValue,\n decimalDigits,\n )}${suffix}`\n : `vs ${prefix}${decimalDigits === 0 ? '0' : '0.00'}${suffix}`}\n
    \n
    \n {differenceValue || differenceValue === 0 ? (\n \n ) : (\n
    N/A
    \n )}\n {displayGoalsInfoOnCardMetrics(metrics?.metricsKey)}\n
    \n
    \n \n \n );\n };\n\n return (\n <>\n {showMetricsTooltipForDSP?.map((key) => {\n return (\n \n {!dspCurrentTotal[key] && !dspPreviousTotal[key] && !isApiCall ? (\n \n ) : null}\n \n );\n })}\n
    \n {displayDspMetricsBoxHTML(dspMetricsConstants?.dspImpressions)}\n {displayDspMetricsBoxHTML(dspMetricsConstants?.dspSpend)}\n {displayDspMetricsBoxHTML(dspMetricsConstants?.dspTotalProductSales)}\n {displayDspMetricsBoxHTML(dspMetricsConstants?.dspTotalRoas)}\n {displayDspMetricsBoxHTML(dspMetricsConstants?.dspTotalDpvr)}\n {displayDspMetricsBoxHTML(dspMetricsConstants?.dspTtlNewBrandPurchases)}\n {displayDspMetricsBoxHTML(dspMetricsConstants?.dspProductSales)}\n {displayDspMetricsBoxHTML(dspMetricsConstants?.dspRoas)}\n
    \n \n );\n};\n\nexport default DspMetrics;\n\nDspMetrics.defaultProps = {\n currencySymbol: '$',\n isApiCall: false,\n dspGoalsToggle: false,\n dspCurrentTotal: {},\n dspPreviousTotal: {},\n dspDifference: {},\n dspGoalsMetricData: {},\n};\n\nDspMetrics.propTypes = {\n isApiCall: bool,\n dspGoalsToggle: bool,\n currencySymbol: string,\n dspGoalsMetricData: shape({}),\n dspCurrentTotal: shape({}),\n dspPreviousTotal: shape({}),\n dspDifference: shape({}),\n setBoxClasses: func.isRequired,\n setBoxToggle: func.isRequired,\n};\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport dayjs from 'dayjs';\nimport Modal from 'react-modal';\nimport { useSelector } from 'react-redux';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { arrayOf, func, string, shape } from 'prop-types';\nimport 'react-date-range/dist/theme/default.css';\nimport 'react-date-range/dist/styles.css';\n\nimport Theme from '../../../../../theme/Theme';\nimport DspAdPacing from './DspPacing/DspAdPacingOverlay';\nimport DspPacingBarGraph from './DspPacing/DspPacingBarGraph';\nimport BindDspResponsData from './DspAdvertising/BindDspResponsData';\nimport DspPerformanceChart from './DspAdvertising/DspPerformanceChart';\nimport DspPerformanceFilters from './DspAdvertising/DspPerformanceFilters';\nimport EscrowBudgetAllocationModal from './DspPacing/EscrowBudgetAllocationModal';\nimport DspAdPerformanceGoalsChart from './DspAdvertising/DspAdPerformanceGoalsChart';\nimport DspAsinAndCampaignContainer from './DspAsinAndCampaign/DspAsinAndCampaignContainer';\nimport DspMetrics from '../../../../BrandPartner/AdManagerAdminDashboard/DspDashboard/DspMetrics';\nimport {\n ArrowRightBlackIcon,\n CloseIcon,\n LeftArrowIcon,\n} from '../../../../../theme/images';\nimport {\n CUSTOM,\n PERFORMANCE,\n dailyWeeklyMonthlyOptions,\n dateOptions,\n noGraphDataMessage,\n performanceInsightMessage,\n} from '../../../../../constants';\nimport {\n getDSPPacingGraphData,\n getDSPPerformance,\n getDspMarketPlacesList,\n getDspPacingData,\n getGoalsMarketPlaceList,\n getSalesAndAdMinDate,\n} from '../../../../../api';\nimport {\n PageLoader,\n WhiteCard,\n ToggleButton,\n AllocateBar,\n ToggleSwitch,\n GrayMessageBar,\n MultipleDashedLineLabel,\n CustomDateModal,\n NoData,\n} from '../../../../../common';\n\nconst _ = require('lodash');\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nconst customDspAdPacingStyles = {\n content: {\n top: '50%',\n right: '0px',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n maxHeight: '100%',\n overlay: ' {zIndex: 1000}',\n inset: '0% 0% 0% auto',\n marginRight: '0',\n borderRadius: '1px !important',\n },\n};\n\nexport default function DspPerformanceContainer({\n customerId,\n selectedChildBrand,\n memberData,\n childBrandOptions,\n setSelectedChildBrand,\n setIsDspDashboardDisabled,\n renderDataAvailableChildList,\n getDataAvailabeleChildBrandList,\n getGoalsMarketplaceIdBySelectedMarketplace,\n}) {\n const mounted = useRef(false);\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const customerState = useSelector((state) => state?.customerState?.data);\n const isHavingDsp = customerState?.having_contract_type?.is_having_dsp;\n\n const currentDateForDSP = useMemo(() => {\n const todaysDate = new Date();\n todaysDate.setDate(todaysDate.getDate() - 1);\n return todaysDate;\n }, []);\n\n const [dateFilterOptions, setDateFilterOptions] = useState(dateOptions);\n const [dspGraphLoader, setDspGraphLoader] = useState(false);\n const [dspMarketplaceLoader, setDspMarketplaceLoader] = useState(false);\n const [isDspPacingLoading, setIsDspPacingLoading] = useState(false);\n const [performancePacingFlag, setPerformancePacingFlag] =\n useState(PERFORMANCE);\n const [dspGoalsToggle, setDspGoalsToggle] = useState(false);\n const [selectedDspBox, setSelectedDspBox] = useState({\n dspImpressions: true,\n });\n const [showEscrowReallocationModal, setShowEscrowReallocationModal] =\n useState(false);\n const [showDspAdPacingModal, setShowDspAdPacingModal] = useState({\n show: false,\n });\n const [showDSPCustomDateModal, setShowDSPCustomDateModal] = useState(false);\n const [isCallDSPAsinApi, setIsCallDSPAsinApi] = useState(false);\n const [dspAdGoalChartData, setDspAdGoalChartData] = useState([]);\n const [dspGoalsMetricData, setDspGoalsMetricData] = useState({});\n const [dspGroupBy, setDSPGroupBy] = useState('daily');\n const [dspChartData, setDSPChartData] = useState([]);\n const [dspPacingChartData, setDSPPacingChartData] = useState([]);\n const [dspData, setDspData] = useState({});\n const [dspCurrentTotal, setDspCurrentTotal] = useState({});\n const [dspPreviousTotal, setDspPreviousTotal] = useState({});\n const [dspDifference, setDspDifference] = useState({});\n const [isDSPCustomDateApply, setIsDSPCustomDateApply] = useState(false);\n const [dspMarketplacesList, setDspMarketplacesList] = useState([]);\n const [selectedDspMarketplace, setSelectedDspMarketplace] = useState(\n dspMarketplacesList?.[0],\n );\n const [dspGoalMarketplaceIds, setDspGoalMarketplaceIds] = useState([]);\n const [dspGoalsMarketplaceOptions, setDspGoalsMarketplaceOptions] = useState(\n [],\n );\n const [dspCurrencySymbol, setDspCurrencySymbol] = useState('$');\n const [dspMinDate, setDspMinDate] = useState(null);\n const [selectedDspDF, setSelectedDspDF] = useState({\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n });\n const defaultCustomDate = [\n {\n startDate: currentDateForDSP,\n endDate: currentDateForDSP,\n key: 'selection',\n },\n ];\n const [dspState, setDSPState] = useState(defaultCustomDate);\n const [customDateErrorForDsp, setCustomDateErrorForDsp] = useState(null);\n const [isAllowToSplitBalance, setIsAllowToSplitBalance] = useState(false);\n const dashboardDynamicError = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n let DSPDynamicErrorMessage = null;\n const sellerPlaceholder =\n dashboardDynamicError?.dsp_performance_seller?.placeholder;\n const vendorPlaceholder =\n dashboardDynamicError?.dsp_performance_vendor?.placeholder;\n if (sellerPlaceholder) {\n DSPDynamicErrorMessage = sellerPlaceholder;\n }\n if (vendorPlaceholder) {\n DSPDynamicErrorMessage = vendorPlaceholder;\n }\n\n const checkPermission = useCallback(() => {\n if (selectedChildBrand !== null && selectedChildBrand?.value !== 'all') {\n setIsAllowToSplitBalance(true);\n } else if (userInfo?.role?.includes('Ad Manager Admin')) {\n setIsAllowToSplitBalance(true);\n } else {\n for (const user of memberData) {\n if (user.user) {\n if (\n (user?.role_group?.name === 'DSP Ad Manager' ||\n user?.role_group?.name === 'BGS Manager' ||\n user?.role_group?.name === 'BGS') &&\n user?.user?.id === userInfo?.id\n ) {\n setIsAllowToSplitBalance(true);\n break;\n }\n }\n }\n }\n }, [memberData, userInfo, selectedChildBrand]);\n\n useEffect(() => {\n checkPermission();\n }, [checkPermission]);\n\n const bindDSPPacingResponseData = (response) => {\n const tempData = [];\n\n // filterout previous data in one temporary object.\n if (response && response.length) {\n let skipData = false;\n response.forEach((item) => {\n const monthYear = dayjs(item?.month_year).format('MMM YY');\n\n // PDV- 5569- Hide old data till Nov 2021, so adding this condition\n if (item?.month_year === '2021-11-01') {\n skipData = true;\n }\n if (!skipData) {\n tempData.push({\n monthYear,\n invoiceAmount:\n item.invoice_amount !== null ? item.invoice_amount : 0,\n invoiceAmountUsd:\n item.invoice_amount_converted_usd !== null\n ? item.invoice_amount_converted_usd\n : 0,\n carryOver: item.carry_over !== null ? item.carry_over : 0,\n carryOverUsd:\n item.carry_over_converted_usd !== null\n ? item.carry_over_converted_usd\n : 0,\n totalInitialBudget:\n item.total_budget !== null ? item.total_budget : 0,\n totalInitialbudgetUsd:\n item.total_budget_converted_usd !== null\n ? item.total_budget_converted_usd\n : 0,\n actualSpent: item.total_spend,\n actualSpentUsd: item.total_spend_converted_usd,\n dspPacingFlag: item.dsp_pacing_flag,\n colorCode: item.dsp_pacing_flag === '0' ? '#d6a307' : '#d63649',\n });\n }\n });\n }\n return tempData;\n };\n\n const bindDspAdGoalsResData = (response) => {\n const finalData = [];\n if (response?.dsp_spend?.current?.length) {\n response.dsp_spend.current.forEach((item) => {\n const tempData = {};\n const currentReportDate = dayjs(item.revised_date).format('MMM D YYYY');\n tempData.date = currentReportDate;\n tempData.dspSpendCurrent = item.dsp_spend;\n tempData.dspSpendGoals = item?.goal_dsp_spend;\n tempData.dspRoasCurrent = item.roas;\n tempData.dspRoasGoals = item?.goal_roas;\n\n tempData.dspSpendCurrentLabel =\n item.dsp_spend !== null ? item.dsp_spend.toFixed(2) : '0';\n tempData.dspSpendGoalsLabel =\n item?.goal_dsp_spend !== null\n ? item?.goal_dsp_spend?.toFixed(2)\n : '0';\n tempData.dspRoasCurrentLabel =\n item.roas !== null ? item.roas.toFixed(2) : '0.00';\n tempData.dspRoasGoalsLabel =\n item?.goal_roas !== null ? item?.goal_roas?.toFixed(2) : '0.00';\n\n // to add the dotted line. we have to check null matrix and add the dummy number like 8\n\n // tempData.revenueTotalDashLength = item.revenue === null ? 8 : null;\n // tempData.adSpendDashLength =\n // item.sponsored_ad_spend === null ? 8 : null;\n finalData.push(tempData);\n });\n }\n return finalData;\n };\n\n const getDSPData = useCallback(\n (\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n goalsMarketplaces,\n childBrand,\n onGroupByClick = false,\n startDate = null,\n endDate = null,\n ) => {\n setDspGraphLoader(true);\n\n getDataAvailabeleChildBrandList(\n customerId,\n 'dsp',\n null,\n marketplace,\n null,\n selectedDailyFact,\n startDate,\n endDate,\n );\n getDSPPerformance(\n customerId,\n selectedDailyFact,\n selectedGroupBy,\n marketplace,\n goalsMarketplaces,\n childBrand,\n startDate,\n endDate,\n ).then((res) => {\n if (mounted.current) {\n if (res && res.status === 200) {\n if (res?.data?.dsp_spend) {\n const dspGraphData = BindDspResponsData(res?.data);\n setDSPChartData(dspGraphData);\n const dspSpend = res?.data?.dsp_spend;\n setDspCurrentTotal(dspSpend?.current_sum || {});\n setDspPreviousTotal(dspSpend?.previous_sum || {});\n setDspDifference(dspSpend?.difference_data || {});\n\n if (!onGroupByClick) {\n setDspGoalsMetricData(res.data?.dsp_spend?.goal_metric);\n }\n if (selectedDailyFact === CUSTOM) {\n const dspAdGoalsGraphData = bindDspAdGoalsResData(res?.data);\n setDspAdGoalChartData(dspAdGoalsGraphData);\n }\n } else {\n setDSPChartData([]);\n setDspCurrentTotal({});\n setDspPreviousTotal({});\n setDspDifference({});\n }\n setDspGraphLoader(false);\n } else {\n setDspGraphLoader(false);\n }\n }\n });\n },\n [getDataAvailabeleChildBrandList, customerId],\n );\n\n const getDspGoalMarketplaceIds = useCallback(\n (initialMarketplace, marketplaceList) => {\n const marketplaceId = getGoalsMarketplaceIdBySelectedMarketplace(\n initialMarketplace,\n marketplaceList,\n );\n setDspGoalMarketplaceIds(marketplaceId);\n return null;\n },\n [getGoalsMarketplaceIdBySelectedMarketplace],\n );\n\n const getDspGoalMarketPlacesData = useCallback(\n (initialMarketplace) => {\n let finalMarketplaces;\n\n getGoalsMarketPlaceList(customerId).then((res) => {\n if (res?.status === 200 && res?.data?.length) {\n finalMarketplaces = res?.data;\n\n const marketPlaceList = [];\n if (finalMarketplaces?.length) {\n for (const option of finalMarketplaces) {\n marketPlaceList.push({\n value: option?.name,\n label: option?.country_currency.country,\n id: option?.id,\n collapse: true,\n });\n }\n setDspGoalsMarketplaceOptions(marketPlaceList);\n getDspGoalMarketplaceIds(initialMarketplace, marketPlaceList);\n }\n setDspMarketplaceLoader(false);\n } else {\n setDspGoalsMarketplaceOptions([]);\n setDspGoalMarketplaceIds([]);\n setDspMarketplaceLoader(false);\n }\n });\n },\n [customerId, getDspGoalMarketplaceIds],\n );\n\n const bindDspMarketPlaces = useCallback((responseData) => {\n const tempMarketplacesList = [];\n\n if (responseData?.length > 0) {\n for (const item of responseData) {\n tempMarketplacesList.push({\n marketplaceId: item?.id,\n label: `${item?.country_currency?.country} ${\n item?.name !== 'all' && !item?.is_active ? '( Inactive )' : ''\n }`,\n value: item?.name,\n currency: item?.country_currency?.currency,\n isActive: item?.name === 'all' ? true : item?.is_active,\n });\n }\n }\n if (tempMarketplacesList?.length > 1) {\n tempMarketplacesList.unshift({\n marketplaceId: 'all',\n label: 'All Marketplaces',\n value: 'all',\n currency: 'USD',\n });\n }\n\n return tempMarketplacesList;\n }, []);\n\n const getDspMarketPlaces = useCallback(() => {\n setDspMarketplaceLoader(true);\n getDspMarketPlacesList(customerId).then((response) => {\n if (response?.status === 200 && response?.data?.length > 0) {\n const marketplacesData = bindDspMarketPlaces(response?.data);\n const defaultMarketplace = marketplacesData?.[0];\n setSelectedDspMarketplace(defaultMarketplace);\n setDspCurrencySymbol(\n getSymbolFromCurrency(defaultMarketplace?.currency),\n );\n getDspGoalMarketPlacesData(defaultMarketplace);\n setDspMarketplacesList(marketplacesData);\n } else {\n setSelectedDspMarketplace({});\n setDspMarketplacesList([]);\n setDspCurrencySymbol('$');\n }\n });\n }, [bindDspMarketPlaces, customerId, getDspGoalMarketPlacesData]);\n\n useEffect(() => {\n getDspMarketPlaces();\n }, [getDspMarketPlaces]);\n\n const getStringOfCustomDate = useCallback((date) => {\n let tempDate = null;\n\n if (date !== null) {\n tempDate = `${date.getDate()}-${\n date.getMonth() + 1\n }-${date.getFullYear()}`;\n }\n\n return tempDate;\n }, []);\n\n const DSPYearAndCustomDateFilter = useCallback(\n (startDate, endDate, dspMarketplace, goalMarketplaceId) => {\n const tempGroupBy = 'daily';\n\n let tempStartDate = startDate;\n let tempEndDate = endDate;\n\n setDSPGroupBy(tempGroupBy);\n\n tempStartDate = getStringOfCustomDate(startDate);\n tempEndDate = getStringOfCustomDate(endDate);\n\n getDSPData(\n CUSTOM,\n tempGroupBy,\n dspMarketplace,\n goalMarketplaceId,\n selectedChildBrand,\n false,\n tempStartDate,\n tempEndDate,\n );\n },\n [getDSPData, getStringOfCustomDate, selectedChildBrand],\n );\n\n useEffect(() => {\n mounted.current = true;\n\n if (\n mounted.current &&\n !dspMarketplaceLoader &&\n selectedDspMarketplace?.value\n ) {\n if (selectedDspDF?.value === CUSTOM) {\n DSPYearAndCustomDateFilter(\n dspState?.[0]?.startDate,\n dspState?.[0]?.endDate,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n );\n } else {\n getDSPData(\n selectedDspDF?.value,\n 'daily',\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n selectedChildBrand,\n false,\n null,\n null,\n );\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n DSPYearAndCustomDateFilter,\n dspGoalMarketplaceIds,\n dspMarketplaceLoader,\n getDSPData,\n selectedChildBrand,\n selectedDspMarketplace,\n ]);\n\n const getDSPPacing = useCallback(\n (marketplace) => {\n setIsDspPacingLoading(true);\n getDspPacingData(customerId, marketplace, selectedChildBrand).then(\n (res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setDspData(res?.data);\n\n // https://bbe.atlassian.net/browse/PDV-9794\n // if bp don't have dsp contract exist but still have remaining budget and escrow then enable the dsp dashboard\n // https://bbe.atlassian.net/browse/PDV-9858 - enable dsp dashboard for inactive bp\n const remainingBudget = res?.data?.dsp_pacing?.remaining_budget;\n const escrowBalance = res?.data?.dsp_pacing?.escrow_converted_usd;\n\n setIsDspDashboardDisabled(\n customerState?.status?.value === 'inactive'\n ? false\n : !isHavingDsp &&\n Number(remainingBudget) === 0 &&\n Number(escrowBalance) === 0,\n );\n\n if (\n res?.data?.dsp_pacing === null ||\n res?.data?.dsp_pacing === undefined\n ) {\n setIsAllowToSplitBalance(false);\n } else {\n checkPermission();\n }\n }\n setIsDspPacingLoading(false);\n }\n },\n );\n },\n [\n checkPermission,\n customerId,\n customerState,\n isHavingDsp,\n selectedChildBrand,\n setIsDspDashboardDisabled,\n ],\n );\n\n const getPacingGraphData = useCallback(\n (marketplace) => {\n setDspGraphLoader(true);\n getDSPPacingGraphData(customerId, marketplace, selectedChildBrand).then(\n (res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (res?.data?.dsp_pacing_graph) {\n const dspPacingGraphData = bindDSPPacingResponseData(\n res.data.dsp_pacing_graph,\n );\n setDSPPacingChartData(dspPacingGraphData);\n } else {\n setDSPPacingChartData([]);\n }\n setDspGraphLoader(false);\n } else {\n setDspGraphLoader(false);\n }\n }\n },\n );\n },\n [customerId, selectedChildBrand],\n );\n\n useEffect(() => {\n mounted.current = true;\n\n if (mounted.current && selectedDspMarketplace?.value) {\n getDSPPacing(selectedDspMarketplace?.value);\n }\n return () => {\n mounted.current = false;\n };\n }, [selectedDspMarketplace, getDSPPacing]);\n\n const generateDateFilterOptions = useCallback(\n (minDate) => {\n const daysDiff = dayjs(currentDateForDSP).diff(dayjs(minDate), 'days');\n\n let tempDateOptions = [...dateOptions];\n if (daysDiff && tempDateOptions?.length > 0) {\n const updatedOption = tempDateOptions.map((obj) => {\n if (obj?.value === 'week' && daysDiff < 7) {\n obj.isDisabled = true;\n }\n if (\n obj?.value === 'month' &&\n daysDiff < currentDateForDSP?.getDate()\n ) {\n obj.isDisabled = true;\n }\n if (obj.value === '30days' && daysDiff < 30) {\n obj.isDisabled = true;\n }\n\n return obj;\n });\n tempDateOptions = [...updatedOption];\n }\n return tempDateOptions;\n },\n [currentDateForDSP],\n );\n\n // bind the dsp error message if data not available for selecetd custom date\n const bindErrorMessageForDsp = useCallback((minDate, customState) => {\n const dates = [];\n\n dates.push(\n new Date(dayjs(customState?.[0]?.startDate).format('MM/DD/YYYY')),\n );\n dates.push(new Date(dayjs(minDate).format('MM/DD/YYYY')));\n\n // if selected date is lower that data_availeble_date then bind the date period for showing error message\n if (dates[0] < dates[1]) {\n setCustomDateErrorForDsp({\n fromDate: dates[0],\n toDate: dates[1],\n });\n } else {\n setCustomDateErrorForDsp(null);\n }\n }, []);\n\n // API to get the min date of data availability for dsp\n const getMinDateForDsp = useCallback(\n (marketplace, customDate) => {\n getSalesAndAdMinDate(customerId, marketplace).then((res) => {\n if (res?.status === 200) {\n if (res?.data[0]) {\n const minDate = res?.data[0]?.dsp_performance_date;\n setDspMinDate(minDate);\n setDateFilterOptions(generateDateFilterOptions(minDate));\n bindErrorMessageForDsp(minDate, customDate);\n } else {\n setDspMinDate(null);\n }\n } else {\n setDspMinDate(null);\n }\n });\n },\n [bindErrorMessageForDsp, customerId, generateDateFilterOptions],\n );\n\n useEffect(() => {\n if (selectedDspMarketplace?.value)\n getMinDateForDsp(selectedDspMarketplace?.value, dspState);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getMinDateForDsp, selectedDspMarketplace]);\n\n const handleChildBrandOptions = (event) => {\n if (event.value !== selectedChildBrand?.value) {\n setSelectedChildBrand(event);\n }\n };\n\n const handleDspMarketplaceFilterEvents = (event) => {\n if (event?.value !== selectedDspMarketplace?.value) {\n setSelectedDspMarketplace(event);\n getDspGoalMarketplaceIds(event, dspGoalsMarketplaceOptions);\n setDspCurrencySymbol(getSymbolFromCurrency(event?.currency));\n setIsCallDSPAsinApi(true);\n }\n };\n\n // aaply dsp custom date\n const applyCustomDate = () => {\n if (selectedDspDF?.value !== CUSTOM)\n setSelectedDspDF({\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n setIsCallDSPAsinApi(true);\n setIsDSPCustomDateApply(true);\n\n DSPYearAndCustomDateFilter(\n dspState?.[0]?.startDate,\n dspState?.[0]?.endDate,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n );\n bindErrorMessageForDsp(dspMinDate, dspState);\n setShowDSPCustomDateModal(false);\n };\n\n // handle dsp daily facts\n const handleDSPDailyFact = (event) => {\n const { value } = event;\n\n if (value === CUSTOM) {\n setShowDSPCustomDateModal(true);\n } else {\n setDspGoalsToggle(false);\n setIsDSPCustomDateApply(false);\n setSelectedDspDF(event);\n setDSPState(defaultCustomDate);\n setIsCallDSPAsinApi(false);\n getDSPData(\n event?.value,\n dspGroupBy,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n selectedChildBrand,\n false,\n null,\n null,\n );\n bindErrorMessageForDsp(dspMinDate, defaultCustomDate);\n }\n };\n\n // handle dsp group by toggle events\n const handleDSPGroupBy = (value) => {\n if (value !== dspGroupBy) {\n setDSPGroupBy(value);\n\n if (selectedDspDF?.value === CUSTOM) {\n const tempStartDate = getStringOfCustomDate(dspState?.[0]?.startDate);\n const tempEndDate = getStringOfCustomDate(dspState?.[0]?.endDate);\n\n getDSPData(\n selectedDspDF?.value,\n value,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n selectedChildBrand,\n true,\n tempStartDate,\n tempEndDate,\n );\n } else {\n getDSPData(\n selectedDspDF?.value,\n value,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n selectedChildBrand,\n true,\n null,\n null,\n );\n }\n }\n };\n\n // handle performance/pacing toggle events\n const handlePeformancePacingToggle = (value) => {\n setPerformancePacingFlag(value);\n if (value === PERFORMANCE) {\n if (selectedDspDF?.value === CUSTOM) {\n const tempStartDate = getStringOfCustomDate(dspState?.[0]?.startDate);\n const tempEndDate = getStringOfCustomDate(dspState?.[0]?.endDate);\n\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n selectedChildBrand,\n false,\n tempStartDate,\n tempEndDate,\n );\n } else {\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n selectedChildBrand,\n false,\n null,\n null,\n );\n }\n } else {\n getPacingGraphData(selectedDspMarketplace?.value);\n }\n };\n\n // handle dsp modal On close events\n const handleDspModalOnCloseEvents = () => {\n if (selectedDspDF.value === CUSTOM) {\n const tempStartDate = getStringOfCustomDate(dspState?.[0]?.startDate);\n const tempEndDate = getStringOfCustomDate(dspState?.[0]?.endDate);\n\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n selectedChildBrand,\n false,\n tempStartDate,\n tempEndDate,\n );\n } else {\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n selectedDspMarketplace?.value,\n dspGoalMarketplaceIds,\n selectedChildBrand,\n false,\n null,\n null,\n );\n }\n getDSPPacing(selectedDspMarketplace?.value);\n if (performancePacingFlag === 'pacing') {\n getPacingGraphData(selectedDspMarketplace?.value);\n }\n };\n\n // handle escrow balance modal onClick events\n const handleEscrowModalOnClickEvents = () => {\n if (showDspAdPacingModal.show) {\n setShowEscrowReallocationModal(false);\n\n handleDspModalOnCloseEvents();\n } else {\n setShowEscrowReallocationModal(false);\n getDSPPacing(selectedDspMarketplace?.value);\n }\n };\n\n const setBoxClasses = (name, classValue, graphType) => {\n let selectedClass = '';\n if (graphType === 'dsp') {\n if (Object.prototype.hasOwnProperty.call(selectedDspBox, name)) {\n selectedClass = `order-chart-box ${classValue} fix-height`;\n } else if (_.size(selectedDspBox) === 4) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n }\n return selectedClass;\n };\n\n const setBoxToggle = (name, GraphType) => {\n if (GraphType === 'dsp') {\n if (\n Object.prototype.hasOwnProperty.call(selectedDspBox, name) &&\n _.size(selectedDspBox) > 1\n ) {\n setSelectedDspBox(_.omit(selectedDspBox, [name]));\n } else if (_.size(selectedDspBox) < 4) {\n if (\n _.size(_.assign(selectedDspBox, { [name]: true })) === 2 &&\n dspGoalsToggle\n ) {\n toast.info('Maximum two goals at a time');\n }\n setSelectedDspBox(_.omit(_.assign(selectedDspBox, { [name]: true })));\n }\n }\n };\n\n const displayDspPacingLabel = () => {\n const dspPacingFlag = dspData?.dsp_pacing?.dsp_pacing_flag;\n const pacingLabel =\n String(dspPacingFlag) === '1'\n ? 'Overspending'\n : String(dspPacingFlag) === '0'\n ? 'On Track'\n : String(dspPacingFlag) === '-1'\n ? 'Underspending'\n : null;\n if (dspPacingFlag) {\n return (\n \n {pacingLabel}\n \n  \n
    \n );\n }\n return null;\n };\n\n // Return class name according to status and label\n const displayDspPacingClassName = () => {\n const dspPacingFlag = dspData?.dsp_pacing?.dsp_pacing_flag;\n if (String(dspPacingFlag) === '1') return 'orange-text'; // Overspending\n if (String(dspPacingFlag) === '0') return 'green'; // On Track\n if (String(dspPacingFlag) === '-1') return 'orange-text'; // Underspending\n return `${Theme.gray40}`; // Default\n };\n\n const displayMonth = () => {\n const currentDateOfMonth = new Date().getDate();\n if (currentDateOfMonth === 1) {\n const todayDate = new Date();\n todayDate.setMonth(todayDate.getMonth() - 1, 1);\n return dayjs(new Date(todayDate)).format('MMMM');\n }\n return dayjs(new Date()).format('MMMM');\n };\n\n // display dsp pacing metrics value\n const displayDspPacingMetricsValue = (metricsValue) => {\n const valueString = `${\n metricsValue < 0 ? '-' : ''\n }${dspCurrencySymbol}${metricsValue\n .toFixed(2)\n .toString()\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n return valueString;\n };\n\n const renderDspPacingData = () => {\n return (\n \n {dspData?.dsp_pacing\n ? `Monthly Budget Pacing ( ${displayMonth()} )`\n : ''}\n
    \n {/* dsp pacing label - overspending and underspending */}\n {!userInfo?.role?.includes('Customer') ? (\n setShowDspAdPacingModal({ show: true })}\n >\n {displayDspPacingLabel()}\n \n ) : null}\n {/* Remaining Budget and Escrow balance status and link */}\n \n {performancePacingFlag === PERFORMANCE\n ? `Remaining Budget :`\n : ` Total Escrow Balance :`}\n {\n if (\n isAllowToSplitBalance &&\n selectedDspMarketplace?.value !== 'all'\n ) {\n setShowEscrowReallocationModal(true);\n }\n }}\n >\n {' '}\n {performancePacingFlag === PERFORMANCE\n ? dspData?.dsp_pacing?.remaining_budget\n ? displayDspPacingMetricsValue(\n dspData.dsp_pacing.remaining_budget,\n )\n : `${dspCurrencySymbol}0`\n : dspData?.dsp_pacing?.escrow\n ? displayDspPacingMetricsValue(dspData.dsp_pacing.escrow)\n : `${dspCurrencySymbol}0`}\n \n \n \n );\n };\n\n // display dsp performance filters\n const displayDspPerformanceFilters = () => {\n return (\n \n );\n };\n\n // render pacing & performance toggle button\n const renderPacingAndPerformanceToggleButton = () => {\n return (\n \n {!userInfo?.role?.includes('Customer') ? (\n
    \n
      \n \n handlePeformancePacingToggle(PERFORMANCE)}\n onChange={() => {}}\n />\n \n \n
    • \n handlePeformancePacingToggle('pacing')}\n onChange={() => {}}\n />\n \n
    • \n
    \n
    \n ) : null}\n
    \n );\n };\n\n // render Dsp Dynamic Error Message\n const renderDspDynamicErrorMessage = () => {\n return DSPDynamicErrorMessage !== null ? (\n \n ) : null;\n };\n\n // render dsp performance header section\n const renderDspAdHeaderSection = () => {\n return (\n <>\n
    \n
    \n

    \n DSP Ad Performance\n

    \n
    {renderDspPacingData()}
    \n
    \n
    \n {renderPacingAndPerformanceToggleButton()}\n
    \n
    {renderDspPacingData()}
    \n
    {renderDspDynamicErrorMessage()}
    \n
    \n\n {/* display list of child brands whos data is available */}\n {renderDataAvailableChildList('dsp')}\n {selectedDspDF.value !== CUSTOM ? (\n \n ) : null}\n \n
    \n
    \n \n {performancePacingFlag === PERFORMANCE\n ? `Remaining Budget (${displayMonth()}): `\n : `Total Escrow Balance : `}\n \n {performancePacingFlag === PERFORMANCE\n ? dspData?.dsp_pacing?.remaining_budget\n ? displayDspPacingMetricsValue(\n dspData.dsp_pacing.remaining_budget,\n )\n : `${dspCurrencySymbol}0`\n : dspData?.dsp_pacing?.escrow\n ? displayDspPacingMetricsValue(dspData.dsp_pacing.escrow)\n : `${dspCurrencySymbol}0`}\n \n
    {' '}\n
    \n {isAllowToSplitBalance &&\n selectedDspMarketplace?.value !== 'all' ? (\n
    \n {\n setShowEscrowReallocationModal(true);\n }}\n >\n Allocate Balance{' '}\n \n
    \n
    \n
    \n ) : null}\n \n
    \n \n );\n };\n\n const renderDSPGroupBy = () => {\n const previousClassName =\n _.size(selectedDspBox) === 1\n ? `${_.keys(selectedDspBox)[0]} block`\n : 'darkGray block';\n return (\n <>\n
    \n {_.size(selectedDspBox) <= 2 ? (\n
    \n
      \n
    • \n
      \n \n\n {dspGoalsToggle ? 'Metrics' : 'Recent'}\n
      \n
    • \n {selectedDspDF?.value !== CUSTOM ? (\n
    • \n \n
    • \n ) : dspGoalsToggle ? (\n
    • \n \n
    • \n ) : null}\n
    \n
    \n ) : (\n
    \n )}\n\n
    \n \n
    \n \n {dailyWeeklyMonthlyOptions?.map((item) => {\n return (\n
  • \n handleDSPGroupBy(item?.value)}\n />\n \n
  • \n );\n })}\n \n
    \n
    \n
    \n
    \n \n );\n };\n\n const showGoalsToggle = () => {\n return (\n \n \n Goals\n {\n setDspGoalsToggle(!dspGoalsToggle);\n setSelectedDspBox({ dspSpend: true });\n }}\n onChange={() => {}}\n checked={dspGoalsToggle}\n />\n \n \n \n );\n };\n\n // display error message for custom date\n const renderErrorMessage = () => {\n let { fromDate } = customDateErrorForDsp;\n let { toDate } = customDateErrorForDsp;\n\n fromDate = dayjs(fromDate).format('MM/DD/YYYY');\n toDate = dayjs(toDate).subtract(1, 'day').format('MM/DD/YYYY');\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n };\n\n // display dsp ad pacing ovarlay\n const displayDspPacingOverlay = () => {\n return (\n \n setShowDspAdPacingModal({ show: false })}\n role=\"presentation\"\n />\n {\n handleDspModalOnCloseEvents();\n }}\n isAllowToSplitBalance={isAllowToSplitBalance}\n setShowEscrowReallocationModal={setShowEscrowReallocationModal}\n />\n \n );\n };\n\n // render escroe budget reallocation modal\n const renderEscrowBudgetAllocationModal = () => {\n return (\n {\n handleEscrowModalOnClickEvents();\n }}\n />\n );\n };\n\n const returnMinDate = () => {\n return dspMinDate === null ? new Date('01/01/2019') : new Date(dspMinDate);\n };\n\n const renderCustomDateModal = () => {\n return (\n {\n setShowDSPCustomDateModal(false);\n\n if (selectedDspDF?.value !== CUSTOM) {\n setDSPState([\n {\n startDate: currentDateForDSP,\n endDate: currentDateForDSP,\n key: 'selection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setDSPState([item?.selection]);\n }}\n onApply={() => {\n applyCustomDate('DSP');\n }}\n currentDate={currentDateForDSP}\n minDate={returnMinDate()}\n />\n );\n };\n\n // render ad performance modals\n const renderDspPerformanceModals = () => {\n return (\n <>\n {displayDspPacingOverlay()}\n {showEscrowReallocationModal\n ? renderEscrowBudgetAllocationModal()\n : null}\n {renderCustomDateModal()}\n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n \n {displayDspPerformanceFilters()}\n \n {renderDspAdHeaderSection()}\n {performancePacingFlag === PERFORMANCE ? (\n <>\n \n {showGoalsToggle()}\n {selectedDspDF?.value === CUSTOM && customDateErrorForDsp !== null\n ? renderErrorMessage()\n : null}\n {renderDSPGroupBy()}\n {dspGraphLoader || dspMarketplaceLoader ? (\n \n ) : dspChartData?.length >= 1 && !dspGoalsToggle ? (\n \n ) : dspAdGoalChartData?.length && dspGoalsToggle ? (\n \n ) : (\n {noGraphDataMessage}\n )}\n \n ) : (\n <>\n {dspGraphLoader || dspMarketplaceLoader ? (\n \n ) : dspPacingChartData.length >= 1 ? (\n \n ) : (\n {noGraphDataMessage}\n )}\n \n )}\n
    \n {/* ********** PDV-8422 Asin performance in dsp ad section ********** */}\n \n {renderDspPerformanceModals()}\n \n \n );\n}\n\nDspPerformanceContainer.defaultProps = {\n customerId: null,\n selectedChildBrand: {},\n memberData: [],\n childBrandOptions: [],\n setSelectedChildBrand: () => {},\n setIsDspDashboardDisabled: () => {},\n renderDataAvailableChildList: () => {},\n getDataAvailabeleChildBrandList: () => {},\n getGoalsMarketplaceIdBySelectedMarketplace: () => {},\n};\n\nDspPerformanceContainer.propTypes = {\n customerId: string,\n selectedChildBrand: shape({}),\n childBrandOptions: arrayOf(shape({})),\n memberData: arrayOf(shape({})),\n setSelectedChildBrand: func,\n setIsDspDashboardDisabled: func,\n renderDataAvailableChildList: func,\n getDataAvailabeleChildBrandList: func,\n getGoalsMarketplaceIdBySelectedMarketplace: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect, useCallback } from 'react';\n\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport queryString from 'query-string';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../../theme/Theme';\nimport AdPerformance from './AdPerformanceView/AdPerformance';\nimport AmcInsightContainer from './AmcInsights/AmcInsightContainer';\nimport CreativeProjectContainer from './CreativeProjects/CreativeProjectContainer';\nimport UploadCreativeAsins from './CreativeProjects/UploadCreativeAsins';\nimport SalesPerformanceContainer from './SalesPerformance/SalesPerformanceContainer';\nimport DspPerformanceContainer from './DspAdPerformance/DspPerformanceContainer';\nimport { RefreshButton } from '../Playbook/PlaybookStyle';\nimport {\n getChildBps,\n getDataAvailabeleChildBrand,\n getMarketPlaceList,\n getSalesAndAdMinDate,\n getGoalsMarketPlaceList,\n} from '../../../../api';\nimport {\n AllocateBar,\n DropdownIndicator,\n DropdownOptions,\n DropdownSingleValue,\n SingleSelectDropdown,\n Tabs,\n} from '../../../../common';\nimport {\n ADPERFORMANCE,\n AMCINSIGHTS,\n childBrandDataAvailableMessage,\n CREATIVEPROJECTS,\n CUSTOM,\n DSPPERFORMANCE,\n HYBRID,\n PARENT,\n PATH_CUSTOMER_DETAILS,\n SALEPERFORMANCE,\n SELLER,\n SELLERSMALL,\n VENDOR,\n VENDORSMALL,\n} from '../../../../constants';\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nexport default function CompanyPerformance({\n marketplaceChoices,\n id,\n memberData,\n // showAdperformanceSpecificBP,\n // showSalesReportSpecificBP,\n customer,\n childBPList,\n isBBEInternalUser,\n setShowCreativeUploadScreen,\n showCreativeUploadScreen,\n}) {\n const history = useHistory();\n const currentDate = new Date();\n const params = queryString.parse(history.location.search);\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const customerState = useSelector((state) => state?.customerState?.data);\n const isSuperAdmin = userInfo?.role === 'Super Admin';\n const isThirdPartyBrand = customerState?.is_third_party_potential_brand;\n const hideSalesAndSponsoredTab = !isSuperAdmin && !isThirdPartyBrand;\n // https://bbe.atlassian.net/browse/PDV-9256 - Hide Creative Projects Tab on Single BP View\n const hideCreativeProjectTab = !isSuperAdmin;\n const dspPpcFlag = {\n isHavingDsp: customerState?.having_contract_type?.is_having_dsp,\n isHavingPpc: customerState?.having_contract_type?.is_having_ppc,\n };\n\n const customerAccountType = customerState?.customer_account_type;\n const isSeller =\n customerAccountType === SELLER || customerAccountType === HYBRID;\n const isVendor =\n customerAccountType === VENDOR || customerAccountType === HYBRID;\n\n const [isDspDashboardDisabled, setIsDspDashboardDisabled] = useState(false);\n\n const [selectedMarketplace, setSelectedMarketplace] = useState({});\n const [marketplaceOptions, setMarketplaceOptions] = useState([]);\n const [currency, setCurrency] = useState(null);\n const [currencySymbol, setCurrencySymbol] = useState(null);\n const [sellerSalesMinDate, setSellerSalesMinDate] = useState(null);\n const [sellerAdMinDate, setSellerAdMinDate] = useState(null);\n const [vendorSalesMinDate, setVendorSalesMinDate] = useState(null);\n const [vendorAdMinDate, setVendorAdMinDate] = useState(null);\n const [minDateLoader, setMinDateLoader] = useState(false);\n const [selectedChildBrand, setSelectedChildBrand] = useState(null);\n const [childBrandOptions, setChildBrandOptions] = useState(childBPList);\n const [actualChildList, setActualChildList] = useState(childBPList);\n const [salesDataAvailableChildList, setSalesDataAvailableChildList] =\n useState([]);\n const [adsDataAvailableChildList, setAdsDataAvailableChildList] = useState(\n [],\n );\n const [dspDataAvailableChildList, setDspDataAvailableChildList] = useState(\n [],\n );\n const [selectedAdType, setSelectedAdType] = useState({\n value: 'all',\n label: 'All Ad Types',\n });\n const [selectedTimeFrame, setSelectedTimeFrame] = useState({\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n });\n const [assignedBGSManager, setAssignedBGSManager] = useState(false);\n const accountTypeOptions = [\n {\n label: 'Seller Reporting',\n value: SELLERSMALL,\n isDisabled: customerAccountType === VENDOR,\n },\n {\n label: 'Vendor Reporting',\n value: VENDORSMALL,\n isDisabled: customerAccountType === SELLER,\n },\n ];\n\n const [selectedAccountType, setSelectedAccountType] = useState(\n params?.sub === VENDORSMALL && isVendor\n ? accountTypeOptions?.[1]\n : accountTypeOptions?.[0],\n );\n const [isCallSPAsinApi, setIsCallSPAsinApi] = useState(false);\n const baseURL = `${PATH_CUSTOMER_DETAILS.replace(':id', id)}?tab=${\n params?.tab\n }`;\n const [sellerViewComponent, setSellerViewComponent] = useState(params?.nav);\n currentDate.setDate(currentDate.getDate() - 2);\n const [selectedState, setSelectedState] = useState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'selection',\n },\n ]);\n const [customDateError, setCustomDateError] = useState({});\n const [vendorGoalsMarketplaceOptions, setVendorGoalsMarketplaceOptions] =\n useState([]);\n const [sellerGoalsMarketplaceOptions, setSellerGoalsMarketplaceOptions] =\n useState([]);\n\n const [sellerGoalsMarketplaceIds, setSellerGoalsMarketplaceIds] = useState(\n [],\n );\n const [vendorGoalsMarketplaceIds, setVendorGoalsMarketplaceIds] = useState(\n [],\n );\n\n const [showRefreshBtn, setShowRefreshBtn] = useState(false);\n const [resetCreativeProjectFilters, setResetCreativeProjectFilters] =\n useState(false);\n const [isDisabledRefreshBtn, setIsDisabledRefreshBtn] = useState(true);\n\n const setPerformanceTab = useCallback(() => {\n let defaultTab = params?.nav;\n const state = history?.location?.state;\n\n if (state === AMCINSIGHTS) {\n setTimeout(() => {\n document.getElementById('scroll').scrollRight += 1000;\n }, 1000);\n }\n if (state === 'dspMetrics') {\n setTimeout(() => {\n window.scrollTo(0, 1500);\n }, 1000);\n }\n\n // https://bbe.atlassian.net/browse/PDV-9525 - FE 2 - BP / Internal / Partner List Views - Stop pulling Seller and Vendor data via Amazon APIs\n // Logic - If user is not Super Admin AND BP is BBE BP i.e. not Spreetail bp then redirect user to dsp ad performance otherwise keep as it is.\n if (hideSalesAndSponsoredTab) {\n if ([AMCINSIGHTS, CREATIVEPROJECTS].includes(state)) {\n defaultTab = state || params?.nav;\n } else {\n history.push(\n `${baseURL}&nav=${DSPPERFORMANCE}&access=${isBBEInternalUser}`,\n DSPPERFORMANCE,\n );\n\n defaultTab = DSPPERFORMANCE;\n }\n } else if (\n [\n SALEPERFORMANCE,\n ADPERFORMANCE,\n DSPPERFORMANCE,\n AMCINSIGHTS,\n CREATIVEPROJECTS,\n ].includes(state)\n ) {\n defaultTab = state || params?.nav;\n }\n\n setSellerViewComponent(defaultTab);\n /* ********** PDV-7917 - Expose AMC and other Sections to BPs ********** */\n /* ********** PLEASE DO NOT REMOVE BELOW CODE. ********** */\n // if (\n // (userInfo?.role?.includes('Customer') &&\n // showAdperformanceSpecificBP &&\n // !showSalesReportSpecificBP) ||\n // history.location.state === 'adManager' ||\n // history.location.state === 'adPerformance' ||\n // history.location.state === 'dspMetrics'\n // ) {\n // return 'adPerformance';\n // }\n }, [baseURL, hideSalesAndSponsoredTab, history, isBBEInternalUser]);\n\n useEffect(() => {\n setPerformanceTab();\n }, [setPerformanceTab, customerState]);\n\n useEffect(() => {\n setIsDspDashboardDisabled(\n !(dspPpcFlag?.isHavingDsp || customerState?.status?.value === 'inactive'),\n );\n }, [customerState, dspPpcFlag]);\n\n useEffect(() => {\n // If AMC Insight tab is selected then move the horizontal scrollbar at the right end.\n\n const scrollBarElement = document?.querySelector('.scrollbar-outer');\n if (\n (params?.nav === AMCINSIGHTS || params?.nav === CREATIVEPROJECTS) &&\n scrollBarElement\n ) {\n setTimeout(() => {\n const scrollBarElementWidth = scrollBarElement?.clientWidth;\n scrollBarElement.scrollLeft = scrollBarElementWidth;\n }, 100);\n }\n }, [params]);\n\n const getGoalsMarketplaceIdBySelectedMarketplace = useCallback(\n (initialMarketplace, goalsMarketplaceOptions) => {\n let marketplaceIds = [];\n if (initialMarketplace?.value === 'all') {\n marketplaceIds = [];\n } else {\n marketplaceIds = goalsMarketplaceOptions\n ?.filter((marketplace) => {\n return initialMarketplace?.label?.includes(marketplace?.label)\n ? marketplace?.id\n : '';\n })\n ?.map((item) => item?.id);\n }\n return marketplaceIds;\n },\n [],\n );\n\n const createMarektplaceIdsListOfGoals = useCallback(\n (initialMarketplace, marketplaceList, accountType = null) => {\n const marketplaceId = getGoalsMarketplaceIdBySelectedMarketplace(\n initialMarketplace,\n marketplaceList,\n );\n if (accountType === null) {\n if (isSeller) {\n setSellerGoalsMarketplaceIds(marketplaceId);\n }\n if (isVendor) {\n setVendorGoalsMarketplaceIds(marketplaceId);\n }\n } else if (accountType === SELLER) {\n setSellerGoalsMarketplaceIds(marketplaceId);\n } else {\n setVendorGoalsMarketplaceIds(marketplaceId);\n }\n },\n [getGoalsMarketplaceIdBySelectedMarketplace, isSeller, isVendor],\n );\n\n const getGoalMarketPlacesData = useCallback(\n (initialMarketplace, accountType) => {\n let finalMarketplaces;\n\n getGoalsMarketPlaceList(id, accountType).then((res) => {\n if (res?.status === 200 && res?.data?.length) {\n finalMarketplaces = res?.data;\n\n const marketPlaceList = [];\n if (finalMarketplaces?.length) {\n for (const option of finalMarketplaces) {\n marketPlaceList.push({\n value: option?.name,\n label: option?.country_currency.country,\n id: option?.id,\n collapse: true,\n });\n }\n if (accountType === SELLER) {\n setSellerGoalsMarketplaceOptions(marketPlaceList);\n } else {\n setVendorGoalsMarketplaceOptions(marketPlaceList);\n }\n createMarektplaceIdsListOfGoals(\n initialMarketplace,\n marketPlaceList,\n accountType,\n );\n }\n }\n });\n },\n [createMarektplaceIdsListOfGoals, id],\n );\n\n useEffect(() => {\n let marketPlaceList = [];\n if (marketplaceChoices?.length) {\n for (const option of marketplaceChoices) {\n marketPlaceList.push({\n value: option?.name,\n label: `${option?.country_currency?.country} ${\n option?.name !== 'all' && !option?.is_active ? '( Inactive )' : ''\n }`,\n currency: option?.country_currency?.currency,\n isPrimary: option?.is_primary,\n id: option?.id,\n isActive: option?.name === 'all' ? true : option?.is_active,\n });\n }\n if (marketPlaceList?.length === 2) {\n marketPlaceList = marketPlaceList.filter(\n (item) => item?.value !== 'all',\n );\n }\n let initialMarketplace = {};\n setMarketplaceOptions(marketPlaceList);\n\n if (customerState?.account_type === PARENT) {\n [initialMarketplace] = marketPlaceList;\n } else {\n initialMarketplace =\n marketPlaceList.length > 1 ? marketPlaceList[1] : marketPlaceList[0];\n }\n\n setSelectedMarketplace(initialMarketplace);\n setCurrency(initialMarketplace?.currency);\n setCurrencySymbol(getSymbolFromCurrency(initialMarketplace?.currency));\n\n if (isSeller) {\n getGoalMarketPlacesData(initialMarketplace, SELLER);\n }\n if (isVendor) {\n getGoalMarketPlacesData(initialMarketplace, VENDOR);\n }\n }\n }, [\n customerState,\n getGoalMarketPlacesData,\n isSeller,\n isVendor,\n marketplaceChoices,\n ]);\n\n useEffect(() => {\n if (childBPList.length) {\n const localChildBrandList = JSON.parse(JSON.stringify(childBPList));\n localChildBrandList.splice(0, 0, {\n value: 'all',\n label: 'All Brands',\n status: 'active',\n bgs: null,\n });\n setChildBrandOptions(localChildBrandList);\n setActualChildList(childBPList);\n }\n }, [childBPList]);\n\n useEffect(() => {\n if (customerState?.account_type === PARENT) {\n setSelectedChildBrand({\n value: 'all',\n label: 'All Brands',\n isDisabled: false,\n bgs: null,\n });\n }\n }, [customerState]);\n\n const bindMarketplaceOptions = useCallback(\n (responseData) => {\n const localMarketplaceList = [];\n\n marketplaceChoices.forEach((element) => {\n const matchElement = responseData.find(\n (op) => op.name === element.name,\n );\n\n if (matchElement !== undefined) {\n localMarketplaceList.push({\n ...element,\n isDisabled: false,\n value: element?.name,\n label: element?.country_currency.country,\n currency: element?.country_currency.currency,\n });\n } else {\n localMarketplaceList.push({\n ...element,\n isDisabled: element?.name !== 'all',\n value: element?.name,\n label: element?.country_currency.country,\n currency: element?.country_currency.currency,\n });\n }\n\n return true;\n });\n\n // localMarketplaceList = localMarketplaceList.sort((marketplace) =>\n // marketplace?.name === 'Amazon.com' && marketplace?.is_primary\n // ? -1\n // : marketplace?.name === 'Amazon.com'\n // ? -1\n // : 1,\n // );\n\n setMarketplaceOptions(localMarketplaceList);\n },\n [marketplaceChoices],\n );\n\n const getMarketPlaceOnchild = useCallback(\n (custId) => {\n getMarketPlaceList(custId).then((res) => {\n if (res?.status === 200) {\n bindMarketplaceOptions(res?.data);\n }\n });\n },\n [bindMarketplaceOptions],\n );\n\n useEffect(() => {\n if (selectedChildBrand !== null) {\n if (selectedChildBrand.value !== 'all') {\n getMarketPlaceOnchild(selectedChildBrand.value);\n } else bindMarketplaceOptions(marketplaceChoices);\n }\n }, [\n selectedChildBrand,\n getMarketPlaceOnchild,\n bindMarketplaceOptions,\n marketplaceChoices,\n ]);\n\n const bindChidBrands = useCallback(\n (childBrandResponse) => {\n const localChildBrand = [\n {\n value: 'all',\n label: 'All Brands',\n isDisabled: false,\n bgs: null,\n },\n ];\n\n if (childBPList?.length > 0) {\n childBPList.forEach((element) => {\n const matchElement = childBrandResponse.find(\n (op) => op.value === element.value,\n );\n if (matchElement !== undefined) {\n localChildBrand.push({\n ...element,\n isDisabled: false,\n });\n } else {\n localChildBrand.push({\n ...element,\n isDisabled: true,\n });\n }\n return true;\n });\n }\n\n setChildBrandOptions(localChildBrand);\n },\n [childBPList],\n );\n\n const getChildBpList = useCallback(\n (customerId, marketplaceId) => {\n getChildBps(customerId, marketplaceId).then((res) => {\n if (res?.status === 200) {\n if (res?.data.length) {\n bindChidBrands(res?.data);\n setActualChildList(res?.data);\n }\n }\n });\n },\n [bindChidBrands],\n );\n\n useEffect(() => {\n if (\n customerState?.account_type === PARENT &&\n selectedMarketplace &&\n selectedMarketplace?.value\n ) {\n if (selectedMarketplace?.value === 'all') {\n bindChidBrands(childBPList);\n } else {\n getChildBpList(id, selectedMarketplace?.value);\n }\n }\n }, [\n bindChidBrands,\n childBPList,\n customerState,\n getChildBpList,\n id,\n selectedMarketplace,\n ]);\n\n const renderDataAvailableChildList = (messageFor) => {\n let brandList = [];\n if (messageFor === 'sales') {\n brandList = salesDataAvailableChildList;\n } else if (messageFor === 'sponsored') {\n brandList = adsDataAvailableChildList;\n } else if (messageFor === 'dsp') {\n brandList = dspDataAvailableChildList;\n }\n const lengthOfbrand = brandList.length;\n let isShowMessage = false;\n\n if (\n selectedChildBrand &&\n selectedChildBrand?.value === 'all' &&\n actualChildList?.length !== lengthOfbrand\n ) {\n isShowMessage = true;\n }\n\n return (\n <>\n {isShowMessage && lengthOfbrand ? (\n \n
    \n
    \n {' '}\n
    \n \n\n Only \n {brandList?.map((messageWord, index) => {\n return (\n \n {lengthOfbrand !== 1 && index === lengthOfbrand - 1 ? (\n and \n ) : null}\n {messageWord?.bp_name}\n {lengthOfbrand !== 1 &&\n index !== lengthOfbrand - 1 &&\n index !== lengthOfbrand - 2 ? (\n , \n ) : null}\n \n );\n })}\n\n {lengthOfbrand === 1 ? (\n has \n ) : (\n have \n )}\n {childBrandDataAvailableMessage[messageFor]}\n
    {' '}\n
    \n
    \n
    \n ) : null}\n \n );\n };\n\n const bindErrorMessage = useCallback(\n (\n type,\n minDate,\n accountType = selectedAccountType?.value,\n customState = selectedState,\n ) => {\n const dates = [];\n\n dates.push(\n new Date(dayjs(customState[0].startDate).format('MM/DD/YYYY')),\n );\n dates.push(new Date(dayjs(minDate).format('MM/DD/YYYY')));\n\n // if selected date is lower that data_availeble_date then we need to show the error message\n if (dates[0] < dates[1]) {\n setCustomDateError({\n accountType,\n selectedTab: type,\n fromDate: dates[0],\n toDate: dates[1],\n });\n } else {\n setCustomDateError({});\n }\n },\n [selectedAccountType, selectedState],\n );\n\n const clearingUseStateHooksForMinDateAPI = useCallback(() => {\n setSellerSalesMinDate(null);\n setSellerAdMinDate(null);\n setVendorSalesMinDate(null);\n setVendorAdMinDate(null);\n }, []);\n\n const getMinDate = useCallback(\n (marketplace, adType, accountType, customState, selectedTab) => {\n setMinDateLoader(true);\n getSalesAndAdMinDate(id, marketplace, adType, accountType).then((res) => {\n if (res?.status === 200) {\n if (res?.data[0]) {\n const performanceDate = res?.data[0]?.sales_performance_date;\n const minDate = new Date('08/01/2022');\n if (accountType === SELLERSMALL) {\n setSellerSalesMinDate(performanceDate);\n setSellerAdMinDate(minDate); // PDV-6723 set mindate Aug 1, 2022.\n } else {\n setVendorSalesMinDate(performanceDate);\n setVendorAdMinDate(minDate); // PDV-6723 set mindate Aug 1, 2022.\n }\n\n if (selectedTab === SALEPERFORMANCE) {\n bindErrorMessage(\n SALEPERFORMANCE,\n res?.data[0].sales_performance_date,\n accountType,\n customState,\n );\n } else {\n bindErrorMessage(\n ADPERFORMANCE,\n res?.data[0].sponsered_performance_date,\n accountType,\n customState,\n );\n }\n } else {\n clearingUseStateHooksForMinDateAPI();\n }\n setMinDateLoader(false);\n } else {\n clearingUseStateHooksForMinDateAPI();\n setMinDateLoader(false);\n }\n });\n },\n [bindErrorMessage, clearingUseStateHooksForMinDateAPI, id],\n );\n\n useEffect(() => {\n if (selectedMarketplace?.value)\n getMinDate(\n selectedMarketplace?.value,\n selectedAdType?.value,\n selectedAccountType?.value,\n selectedState,\n sellerViewComponent,\n );\n }, [\n getMinDate,\n selectedAdType,\n selectedMarketplace,\n selectedAccountType,\n selectedState,\n sellerViewComponent,\n ]);\n\n const getDataAvailabeleChildBrandList = useCallback(\n (\n customerId,\n dashboard,\n accountType = null,\n marketplace,\n sponsoredType,\n timeframe,\n startDate,\n endDate,\n ) => {\n if (customerState?.account_type === PARENT) {\n getDataAvailabeleChildBrand(\n customerId,\n dashboard,\n accountType,\n marketplace,\n sponsoredType,\n timeframe,\n startDate,\n endDate,\n ).then((res) => {\n if (res?.status === 200) {\n if (res?.data) {\n if (\n ['sales', 'orderedRevenue', 'shippedCOGs'].includes(dashboard)\n ) {\n setSalesDataAvailableChildList(res?.data);\n } else if (dashboard === 'sponsored') {\n setAdsDataAvailableChildList(res?.data);\n } else if (dashboard === 'dsp') {\n setDspDataAvailableChildList(res?.data);\n }\n }\n }\n });\n }\n },\n [customerState],\n );\n\n useEffect(() => {\n if (sellerViewComponent === CREATIVEPROJECTS) setShowRefreshBtn(true);\n else setShowRefreshBtn(false);\n }, [sellerViewComponent]);\n\n const handleTabClick = (type) => {\n if (type === SALEPERFORMANCE) {\n setSellerViewComponent(SALEPERFORMANCE);\n if (selectedTimeFrame.value === CUSTOM) {\n if (selectedAccountType?.value === SELLERSMALL) {\n bindErrorMessage(SALEPERFORMANCE, sellerSalesMinDate);\n } else {\n bindErrorMessage(SALEPERFORMANCE, vendorSalesMinDate);\n }\n }\n }\n\n if (type === ADPERFORMANCE) {\n setSellerViewComponent(ADPERFORMANCE);\n if (selectedTimeFrame.value === CUSTOM) {\n if (selectedAccountType?.value === SELLERSMALL) {\n bindErrorMessage(ADPERFORMANCE, sellerAdMinDate);\n } else {\n bindErrorMessage(ADPERFORMANCE, vendorAdMinDate);\n }\n }\n if (selectedTimeFrame.value === 'year') {\n setSelectedTimeFrame({\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n });\n }\n }\n\n if (type === DSPPERFORMANCE) {\n setSellerViewComponent(DSPPERFORMANCE);\n }\n\n if (type === AMCINSIGHTS) {\n setSellerViewComponent(AMCINSIGHTS);\n }\n\n if (type === CREATIVEPROJECTS) {\n setSellerViewComponent(CREATIVEPROJECTS);\n }\n };\n\n const resetCreativeFilters = () => {\n setResetCreativeProjectFilters(true);\n };\n\n useEffect(() => {\n if (memberData) {\n for (const user of memberData) {\n if (user.user) {\n if (\n user?.role_group?.name === 'BGS Manager' &&\n user?.user?.id === userInfo?.id\n ) {\n setAssignedBGSManager(true);\n }\n }\n }\n }\n }, [memberData, userInfo]);\n\n const getDropdDownComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: DropdownSingleValue,\n DropdownIndicator,\n };\n };\n\n const handleAccountTypeChangeEvents = (event) => {\n if (event?.value !== selectedAccountType?.value) {\n setSelectedAccountType(event);\n setIsCallSPAsinApi(true);\n setShowCreativeUploadScreen(false);\n\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(':id', customer.id)}?tab=${\n params?.tab\n }&sub=${event?.value}&nav=${\n params?.nav || SALEPERFORMANCE\n }&access=${isBBEInternalUser}`,\n );\n }\n };\n\n const displayAccountTypeFilter = (isApiCall) => {\n return (\n
    \n \n
    \n );\n };\n\n const renderAdPerformanceComponent = () => {\n return (\n \n );\n };\n\n const displayDspPerformanceSection = () => {\n return (\n
    \n \n
    \n );\n };\n\n const renderAMCInsightsComponent = () => {\n return (\n \n );\n };\n\n const renderCreativeProjectContainer = () => {\n return (\n \n );\n };\n\n const displaySalesPerformanceContainer = () => {\n return (\n \n );\n };\n\n const displayPerformanceTabComponents = () => {\n switch (sellerViewComponent) {\n case SALEPERFORMANCE:\n return displaySalesPerformanceContainer();\n case ADPERFORMANCE:\n return renderAdPerformanceComponent();\n case DSPPERFORMANCE:\n return displayDspPerformanceSection();\n case AMCINSIGHTS:\n return renderAMCInsightsComponent();\n case CREATIVEPROJECTS:\n return renderCreativeProjectContainer();\n default:\n return null;\n }\n };\n\n const handlePerformanceTabClickEvents = (key) => {\n handleTabClick(key);\n if (key === DSPPERFORMANCE) {\n history.push(`${baseURL}&nav=${key}&access=${isBBEInternalUser}`, key);\n } else if (key === AMCINSIGHTS) {\n history.push(\n `${baseURL}&nav=amcInsights&subNav=${\n params?.subNav || 'standard'\n }&access=${isBBEInternalUser}`,\n AMCINSIGHTS,\n );\n } else {\n history.push(\n `${baseURL}&sub=${\n params?.sub || SELLERSMALL\n }&nav=${key}&access=${isBBEInternalUser}`,\n key,\n );\n }\n };\n\n const displayPerformanceTabListHTML = (tabLabel, key, isDisabled = false) => {\n return (\n {\n handlePerformanceTabClickEvents(key);\n }}\n role=\"presentation\"\n >\n {tabLabel}\n \n );\n };\n\n const displayPerformanceTabList = () => {\n return (\n \n
      \n {/* {!userInfo?.role?.includes('Customer') ||\n showSalesReportSpecificBP ? ( */}\n {displayPerformanceTabListHTML('Sales Performance', SALEPERFORMANCE)}\n {/* ) : null} */}\n {/* {!userInfo?.role?.includes('Customer') ||\n showAdperformanceSpecificBP ? ( */}\n {displayPerformanceTabListHTML(\n 'Sponsored Ad Performance',\n ADPERFORMANCE,\n )}\n {displayPerformanceTabListHTML(\n 'DSP Ad Performance',\n DSPPERFORMANCE,\n isDspDashboardDisabled,\n )}\n {/* ) : null} */}\n {/* {!userInfo?.role?.includes('Customer') ? ( */}\n {displayPerformanceTabListHTML('AMC Insights', AMCINSIGHTS)}\n {/* ) : null} */}\n {!userInfo?.role?.includes('Customer') &&\n customer?.account_type !== PARENT\n ? displayPerformanceTabListHTML(\n 'Creative Projects',\n CREATIVEPROJECTS,\n hideCreativeProjectTab,\n )\n : null}\n
    \n
    \n );\n };\n\n const displayRefreshButton = () => {\n return (\n \n resetCreativeFilters()}\n >\n \n
    \n \n );\n };\n\n const displayPerformanceTabListAndButtons = () => {\n return (\n
    \n \n {displayPerformanceTabList()}\n
    \n\n \n {showRefreshBtn ? (\n \n
      \n
    • {displayRefreshButton()}
    • \n
    \n
    \n ) : null}\n
    \n \n );\n };\n\n return (\n \n {showCreativeUploadScreen ? (\n \n ) : (\n <>\n {displayPerformanceTabListAndButtons()}\n {displayPerformanceTabComponents()}\n \n )}\n \n );\n}\n\nCompanyPerformance.defaultProps = {\n marketplaceChoices: [],\n id: '',\n memberData: [],\n // showAdperformanceSpecificBP: false,\n // showSalesReportSpecificBP: false,\n childBPList: [],\n isBBEInternalUser: 'internal',\n setShowCreativeUploadScreen: () => {},\n showCreativeUploadScreen: false,\n};\n\nCompanyPerformance.propTypes = {\n marketplaceChoices: arrayOf(shape({})),\n id: string,\n memberData: arrayOf(shape({})),\n // showAdperformanceSpecificBP: bool,\n // showSalesReportSpecificBP: bool,\n customer: shape({\n id: string,\n }).isRequired,\n childBPList: arrayOf(shape({})),\n isBBEInternalUser: string,\n setShowCreativeUploadScreen: func,\n showCreativeUploadScreen: bool,\n};\n\nconst AmcReports = styled.div`\n margin: 5px 0 0 0;\n ul {\n padding: 0;\n margin: 0;\n list-style-type: none;\n li {\n display: inline-block;\n padding: 0 0 5px 0;\n }\n }\n\n @media only screen and (min-width: 768px) {\n text-align: right;\n border-bottom: 1px solid #e0e6e8;\n }\n`;\n","import React from 'react';\n\nimport Select from 'react-select';\n\nimport { CustomDropDown } from '../../../common';\nimport Theme from '../../../theme/Theme';\n\nexport const DropDown = (\n id,\n className,\n options,\n placeholder,\n components,\n defaultValue,\n handleOnChange,\n isDisabled,\n reff = null,\n selectedValue,\n isSearchable = true,\n isLoading = isDisabled,\n selectedReportType,\n) => {\n const YearOverYearOptionStyles = {\n menuList: (styles) => ({\n ...styles,\n maxHeight: '340px !important',\n }),\n };\n\n return (\n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n value={\n selectedReportType?.value === 'account_audit'\n ? { value: 'all-time', label: 'All-time' }\n : selectedValue\n }\n // defaultValue={defaultValue}\n onChange={(event) => handleOnChange(event)}\n styles={{\n YearOverYearOptionStyles,\n menuPortal: (base) => ({ ...base, zIndex: 9999 }),\n }}\n // menuPortalTarget={document.body}\n isLoading={isLoading}\n isOptionDisabled={(option) => option.isDisabled}\n />\n \n );\n};\n\nexport default DropDown;\n","import React, { useState } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport Select, { components } from 'react-select';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport Theme from '../../theme/Theme';\nimport { DropDown } from './CustomizedReports/ReportDropDown';\n\nimport {\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n bpAccountType,\n buttonDisabledMsg,\n timeFrameOptions,\n} from '../../constants';\nimport {\n WhiteCard,\n DropdownIndicator,\n Button,\n CustomDropDown,\n CheckBox,\n ModalRadioCheck,\n} from '../../common';\n\nconst ReportSectionFilter = ({\n bpList,\n handleBPList,\n isApiCall,\n handleTimeFrame,\n selectedTimeFrame,\n getTimeFrameSelectComponents,\n selectedBp,\n marketplaceChoices,\n marketplaceDefaultValue,\n selectedMarketplaceOption,\n isCustomer,\n handleMarketplace,\n marketplaceLoader,\n handleAccountType,\n selectedAccountType,\n reportTypeLoader,\n reportTypeOptions,\n selectedReportType,\n selectedReportTab,\n handleReportType,\n isUserAssignedToBP,\n handleResetFilter,\n onCreateReport,\n bpLoader,\n isUsedReportTemplate,\n setIsUsedReportTemplate,\n selectedReportTemplate,\n setSelectedReportTemplate,\n reportTemplateOption,\n}) => {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n const { Option, SingleValue } = components;\n const isFinanceReportSelected =\n selectedReportTab === 'standard' && selectedReportType?.value === 'finance';\n\n const customDropdownFilterOption = (props) => (\n \n );\n\n const customDropdownSingleFilterOption = (props) => (\n \n \n {props?.data?.label}\n \n \n );\n\n const customDropdownFilterComponents = () => {\n return {\n Option: customDropdownFilterOption,\n SingleValue: customDropdownSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n // component for marketplace dropdown\n // PDV-7818 - handeling of active and inactive marketplaces\n const marketplaceDropdownFilterOption = (props) => (\n \n );\n\n // component - single values for marketplace dropdown\n // PDV-7818 - handeling of active and inactive marketplaces\n const marketplaceDropdownSingleFilterOption = (props) => (\n \n \n {props.data.label}{' '}\n {props?.data?.isActive ||\n props?.data?.value === 'all' ||\n props?.data?.value === 'select' ||\n isFinanceReportSelected\n ? ''\n : '( Inactive )'}\n \n \n );\n\n // component - option for marketplace dropdown\n // PDV-7818 - handeling of active and inactive marketplaces\n const marketplaceDropdownComponent = () => {\n return {\n Option: marketplaceDropdownFilterOption,\n SingleValue: marketplaceDropdownSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n const renderBPDropdown = (className) => {\n return (\n \n handleBPList(event)}\n placeholder={bpList && bpList[0] && bpList[0].label}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n isLoading={bpLoader}\n />\n \n );\n };\n\n const renderAccountTypeDropdown = () => {\n return (\n \n handleAccountType(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n isLoading={isApiCall}\n />\n \n );\n };\n\n const renderReportTypeDropdown = () => {\n return (\n \n handleReportType(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n isLoading={reportTypeLoader}\n />\n \n );\n };\n\n const renderTimeFrameFilter = () => {\n return DropDown(\n 'BT-ReportBPDropdownTimeFilter',\n '',\n timeFrameOptions,\n timeFrameOptions?.[0]?.label,\n getTimeFrameSelectComponents,\n timeFrameOptions?.[0],\n handleTimeFrame,\n isApiCall,\n null,\n selectedTimeFrame,\n false,\n null,\n selectedReportType,\n );\n };\n\n const renderMarketplaceDropDown = () => {\n return (\n \n ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n isLoading={marketplaceLoader}\n />\n \n );\n };\n\n const renderReportTemplate = () => {\n return (\n \n
    \n \n Use Report Template\n {\n setIsUsedReportTemplate(!isUsedReportTemplate);\n }}\n onChange={() => {\n setSelectedReportTemplate(null);\n }}\n />\n \n \n
    \n
    \n );\n };\n\n const renderReportTemplateOptions = () => {\n return (\n <>\n {reportTemplateOption.map((item) => {\n return (\n \n \n {item.name}\n {\n setSelectedReportTemplate(event.target.id);\n }}\n />\n \n \n \n );\n })}\n \n );\n };\n\n const renderDekstopView = () => {\n return (\n \n
    \n

    \n {selectedReportTab === 'standard' ? 'Download' : 'Create'} Reports\n for\n

    \n \n Reset filters\n

    \n
    \n
    \n {!isCustomer ? (\n
    \n {renderBPDropdown()}\n
    \n ) : null}\n {selectedReportTab === 'standard' ? (\n
    \n {renderTimeFrameFilter('cursor')}\n
    \n ) : null}\n\n
    \n {renderMarketplaceDropDown()}\n
    \n\n
    \n {selectedReportTab === 'standard'\n ? renderReportTypeDropdown()\n : renderAccountTypeDropdown()}\n
    \n\n {reportTemplateOption?.length ? (\n
    \n {selectedReportTab === 'customized'\n ? renderReportTemplate()\n : null}\n
    \n ) : null}\n\n
    \n {selectedReportTab === 'customized' && isUsedReportTemplate\n ? renderReportTemplateOptions()\n : null}\n
    \n\n {selectedReportTab === 'customized' ? (\n
    \n \n Create Report\n \n {isSpreetailUser ? (\n \n ) : null}\n {selectedBp?.value === 'Select-BP' || !isUserAssignedToBP ? (\n
    \n {buttonDisabledMsg}\n
    \n ) : null}\n
    \n ) : null}\n
    \n
    \n );\n };\n\n const renderTabletView = () => {\n return (\n setIsCollapseOpen(!isCollapseOpen)}\n className=\"mb-3 d-lg-none d-block\"\n >\n
    \n
    \n
    \n

    \n Create Reports for\n

    \n \n Reset filters\n

    \n
    \n
    \n\n {!isCustomer ? (\n
    \n {renderBPDropdown('customer-list-header')}\n
    \n ) : null}\n\n
    \n {renderTimeFrameFilter('customer-list-header')}\n
    \n\n
    \n {renderMarketplaceDropDown()}\n
    \n\n
    \n {selectedReportTab === 'standard'\n ? renderReportTypeDropdown()\n : renderAccountTypeDropdown()}\n
    \n\n {reportTemplateOption?.length ? (\n
    \n {selectedReportTab === 'customized'\n ? renderReportTemplate()\n : null}\n
    \n ) : null}\n\n {selectedReportTab === 'customized' && isUsedReportTemplate ? (\n
    \n {renderReportTemplateOptions()}\n
    \n ) : null}\n\n {selectedReportTab === 'customized' ? (\n
    \n \n Create Report\n \n {isSpreetailUser ? (\n \n ) : null}\n {selectedBp?.value === 'Select-BP' || !isUserAssignedToBP ? (\n
    \n {buttonDisabledMsg}\n
    \n ) : null}\n
    \n ) : null}\n
    \n \n );\n };\n\n return <>{isDesktop ? renderDekstopView() : renderTabletView()};\n};\n\nexport default ReportSectionFilter;\n\nReportSectionFilter.defaultProps = {\n marketplaceChoices: [],\n marketplaceDefaultValue: null,\n isApiCall: false,\n isCustomer: false,\n marketplaceLoader: false,\n isSelected: true,\n reportTypeLoader: false,\n bpLoader: false,\n isUsedReportTemplate: false,\n selectedBp: {},\n data: {},\n selectedTimeFrame: {},\n selectedMarketplaceOption: {},\n bpList: null,\n selectedReportTemplate: '',\n reportTypeOptions: [{}],\n reportTemplateOption: [],\n handleBPList: () => {},\n handleTimeFrame: () => {},\n getTimeFrameSelectComponents: () => {},\n handleMarketplace: () => {},\n handleAccountType: () => {},\n handleReportType: () => {},\n handleResetFilter: () => {},\n onCreateReport: () => {},\n setIsUsedReportTemplate: () => {},\n setSelectedReportTemplate: () => {},\n};\n\nReportSectionFilter.propTypes = {\n selectedReportTab: string.isRequired,\n isApiCall: bool,\n isCustomer: bool,\n marketplaceLoader: bool,\n isSelected: bool,\n reportTypeLoader: bool,\n bpLoader: bool,\n isUserAssignedToBP: bool.isRequired,\n isUsedReportTemplate: bool,\n selectedReportTemplate: string,\n selectedMarketplaceOption: shape({}),\n selectedBp: shape({}),\n selectedTimeFrame: shape({}),\n bpList: arrayOf(shape({})),\n marketplaceChoices: arrayOf(shape({})),\n reportTypeOptions: arrayOf(shape({})),\n reportTemplateOption: arrayOf(shape({})),\n marketplaceDefaultValue: shape({}),\n data: shape({}),\n selectedAccountType: shape({}).isRequired,\n selectedReportType: shape({}).isRequired,\n handleBPList: func,\n handleTimeFrame: func,\n getTimeFrameSelectComponents: func,\n handleMarketplace: func,\n handleAccountType: func,\n handleReportType: func,\n handleResetFilter: func,\n onCreateReport: func,\n setIsUsedReportTemplate: func,\n setSelectedReportTemplate: func,\n};\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport Modal from 'react-modal';\n\nimport { bool, func, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../theme/Theme';\nimport { CloseIcon } from '../../../theme/images';\nimport { getPartnerOpportunitiesDropdownOptions } from '../../../api';\nimport {\n OBJECTIVE,\n PRODUCT,\n TITLE,\n objectiveDefalutList,\n productDefalutList,\n titleDefalutList,\n} from '../../../constants';\nimport {\n Button,\n ErrorMsg,\n InputFormField,\n ModalBox,\n PageLoader,\n SingleSelectDropdown,\n DropdownIndicator,\n} from '../../../common';\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n minHeight: '220px',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nfunction PartnerOpportunitiesReportModal({\n modalId,\n isOpen,\n isDownloading,\n selectedProduct,\n setSelectedProduct,\n selectedObjective,\n description,\n callToAction,\n setSelectedObjective,\n selectedTitle,\n setSelectedTitle,\n setDescription,\n setCallToAction,\n onDownload,\n onModalClose,\n customDateState,\n}) {\n const [isDataLoading, setIsDataLoading] = useState(false);\n const [productList, setProductList] = useState([]);\n const [objectiveList, setObjectiveList] = useState([]);\n const [titleList, setTitleList] = useState([]);\n\n // bind list label\n const bindDropdownLabel = useCallback((label) => {\n const afterReplace = label?.replaceAll('_', ' ').toLowerCase();\n\n const afterSplit = afterReplace.split(' ');\n\n return afterSplit\n .map((word) => {\n return word[0].toUpperCase() + word.substring(1);\n })\n .join(' ');\n }, []);\n\n // callback function for bind product list data\n const bindDropdownOptionsList = useCallback(\n (responseData) => {\n const localList = [];\n if (responseData?.length) {\n for (const item of responseData) {\n localList.push({\n label: bindDropdownLabel(item),\n value: item,\n });\n }\n }\n return localList;\n },\n [bindDropdownLabel],\n );\n\n // get the dropdown options\n const getDropdownList = useCallback(\n (field, product, objective) => {\n setIsDataLoading(true);\n getPartnerOpportunitiesDropdownOptions(\n 'custom',\n customDateState,\n product,\n objective,\n field,\n ).then((res) => {\n if (res?.status === 200) {\n if (field === PRODUCT) {\n const localList = bindDropdownOptionsList(res?.data);\n setProductList(localList);\n }\n if (field === OBJECTIVE) {\n const localList = bindDropdownOptionsList(res?.data);\n setObjectiveList(localList);\n }\n if (field === TITLE) {\n const localList = [];\n if (res?.data?.length) {\n for (const item of res?.data) {\n localList.push({\n label: item?.title,\n value: item?.id,\n description: item?.description,\n callToAction: item?.call_to_action,\n });\n }\n }\n setTitleList(localList);\n }\n } else {\n if (field === PRODUCT) {\n setProductList([productDefalutList]);\n }\n if (field === OBJECTIVE) {\n setObjectiveList([objectiveDefalutList]);\n }\n if (field === TITLE) {\n setTitleList([titleDefalutList]);\n setDescription('');\n setCallToAction('');\n }\n }\n setIsDataLoading(false);\n });\n },\n [bindDropdownOptionsList, customDateState, setCallToAction, setDescription],\n );\n\n useEffect(() => {\n getDropdownList(PRODUCT, selectedProduct, selectedObjective);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n const handleProductDropdown = (event) => {\n setSelectedProduct(event);\n if (event?.value === PRODUCT) {\n setSelectedObjective(objectiveDefalutList);\n setSelectedTitle(titleDefalutList);\n setDescription('');\n setCallToAction('');\n setObjectiveList([]);\n setTitleList([]);\n } else if (event.value !== selectedProduct?.value) {\n getDropdownList(OBJECTIVE, event, selectedObjective);\n setSelectedProduct(event);\n setSelectedObjective(objectiveDefalutList);\n setSelectedTitle(titleDefalutList);\n setDescription('');\n setCallToAction('');\n }\n };\n\n const handleObjectiveDropdown = (event) => {\n setSelectedObjective(event);\n if (event?.value === OBJECTIVE) {\n setSelectedTitle(titleDefalutList);\n setDescription('');\n setCallToAction('');\n setTitleList([]);\n } else if (event.value !== selectedObjective?.value) {\n setSelectedTitle(titleDefalutList);\n setDescription('');\n setCallToAction('');\n getDropdownList(TITLE, selectedProduct, event);\n }\n };\n\n const handleTitleDropdown = (event) => {\n setSelectedTitle(event);\n if (event.value === TITLE) {\n setDescription('');\n setCallToAction('');\n } else if (event.value !== selectedTitle?.value) {\n setDescription(event?.description);\n setCallToAction(event?.callToAction);\n }\n };\n\n const renderDropDownFilters = () => {\n return (\n
    \n
    \n {\n handleProductDropdown(event);\n }}\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n defaultValue={selectedProduct}\n />\n
    \n
    \n {\n handleObjectiveDropdown(event);\n }}\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n defaultValue={selectedObjective}\n />\n
    \n
    \n {\n handleTitleDropdown(event);\n }}\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n defaultValue={selectedTitle}\n />\n
    \n
    \n );\n };\n\n const renderDescriptionFiled = () => {\n return (\n
    \n \n \n {}}\n />\n \n\n {selectedProduct.value !== PRODUCT &&\n selectedObjective.value !== OBJECTIVE &&\n selectedTitle.value !== TITLE &&\n description === '' ? (\n This is a required field.\n ) : null}\n
    \n );\n };\n\n const renderCallToActionField = () => {\n return (\n
    \n \n \n {}}\n />\n \n\n {selectedProduct.value !== PRODUCT &&\n selectedObjective.value !== OBJECTIVE &&\n selectedTitle.value !== TITLE &&\n callToAction === '' ? (\n This is a required field.\n ) : null}\n
    \n );\n };\n\n const renderInfoMessage = () => {\n return (\n
    \n
    \n
    \n \n Dropdown selection depends on which reports are updated based on the\n month selected.{' '}\n
    \n
    \n
    \n );\n };\n // render modal footer\n const renderModalFooter = () => {\n return (\n
    \n
    \n
    \n onDownload()}\n type=\"button\"\n >\n {isDownloading ? (\n \n ) : (\n 'Proceed'\n )}\n \n
    \n
    \n
    \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n \n {\n onModalClose();\n setProductList([]);\n setObjectiveList([]);\n setTitleList([]);\n }}\n role=\"presentation\"\n />\n \n <>\n
    \n

    Download Report

    \n
    \n \n {isDataLoading ? (\n \n ) : (\n <>\n {renderDropDownFilters()}\n {renderDescriptionFiled()}\n {renderCallToActionField()}\n {renderInfoMessage()}\n \n )}\n
    \n
    \n\n {renderModalFooter()}\n \n
    \n \n \n );\n}\n\nexport default PartnerOpportunitiesReportModal;\n\nPartnerOpportunitiesReportModal.defaultProps = {\n isOpen: false,\n isDownloading: false,\n modalId: '',\n description: '',\n callToAction: '',\n selectedProduct: {},\n selectedObjective: {},\n selectedTitle: {},\n customDateState: {},\n setSelectedObjective: () => {},\n setCallToAction: () => {},\n setSelectedTitle: () => {},\n setSelectedProduct: () => {},\n setDescription: () => {},\n onDownload: () => {},\n onModalClose: () => {},\n};\n\nPartnerOpportunitiesReportModal.propTypes = {\n isOpen: bool,\n isDownloading: bool,\n modalId: string,\n description: string,\n callToAction: string,\n selectedProduct: shape({}),\n selectedObjective: shape({}),\n selectedTitle: shape({}),\n customDateState: shape({}),\n setSelectedObjective: func,\n setCallToAction: func,\n setSelectedTitle: func,\n setSelectedProduct: func,\n setDescription: func,\n onDownload: func,\n onModalClose: func,\n};\n","import React, { useState } from 'react';\n\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { toast } from 'react-toastify';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../theme/Theme';\nimport { getCustomReportActivity, getReportDownload } from '../../../api';\nimport PartnerOpportunitiesReportModal from './PartnerOpportunitiesReportModal';\nimport {\n CommonPagination,\n DesktopTable,\n NoData,\n PageLoader,\n} from '../../../common';\nimport {\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n cashflowStandardReportsKeys,\n objectiveDefalutList,\n productDefalutList,\n standardReportMessages,\n titleDefalutList,\n tooltipMsg,\n} from '../../../constants';\n\nconst DOWNLOAD_ACTION = 'downloaded';\n\nconst ReportSectionList = ({\n selectedReportTypeValue,\n reportsData,\n loader,\n selectedBp,\n count,\n pageNumber,\n handlePageChange,\n isCustomer,\n selectedTimeFrame,\n generateCustomDate,\n selectedMarketplaceOption,\n customDateState,\n customerId,\n}) => {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const [\n openPartnerOpportunitiesReportModal,\n setOpenPartnerOpportunitiesReportModal,\n ] = useState(false);\n\n const isDesktop = useMediaQuery({ minWidth: 767 });\n\n const isMTDorCustomDate =\n selectedTimeFrame?.value === 'custom' ||\n selectedTimeFrame?.value === 'month';\n\n const [itemLoader, setItemLoader] = useState({});\n const [downloadedReportDetails, setDownloadedReportDetails] = useState(null);\n const [selectedProduct, setSelectedProduct] = useState(productDefalutList);\n const [selectedObjective, setSelectedObjective] =\n useState(objectiveDefalutList);\n const [selectedTitle, setSelectedTitle] = useState(titleDefalutList);\n const [description, setDescription] = useState('');\n const [callToAction, setCallToAction] = useState('');\n\n // calling report download activity api function\n const onGetCustomReportActivity = (action, reportID) => {\n getCustomReportActivity(action, reportID).then(() => {});\n };\n\n const resetDropDownFilters = () => {\n setOpenPartnerOpportunitiesReportModal(false);\n setDownloadedReportDetails(null);\n setSelectedProduct(productDefalutList);\n setSelectedObjective(objectiveDefalutList);\n setSelectedTitle(titleDefalutList);\n setDescription('');\n setCallToAction('');\n };\n\n // Downloading the CSV report\n const onDownload = (id, index) => {\n let sd = null;\n let ed = null;\n\n const userId = isCustomer\n ? customerId\n : selectedReportTypeValue === 'finance'\n ? null\n : selectedBp;\n\n if (selectedTimeFrame?.value === 'custom') {\n sd = generateCustomDate(customDateState[0].startDate);\n ed = generateCustomDate(customDateState[0].endDate);\n }\n\n // https://bbe.atlassian.net/browse/PDV-7655\n // bind marketplace value\n const marketplace =\n selectedMarketplaceOption !== 'select' ? selectedMarketplaceOption : null;\n setItemLoader({ ...itemLoader, [index]: true });\n getReportDownload(\n userId,\n selectedTimeFrame?.value,\n sd,\n ed,\n id,\n marketplace,\n selectedTitle,\n ).then((res) => {\n if (res?.status === 200) {\n const csvLink = res?.data?.url;\n if (csvLink) {\n window.open(csvLink);\n }\n if (res?.data?.message) {\n toast.error(res?.data?.message, {\n position: isDesktop ? 'top-center' : 'top-right',\n });\n }\n onGetCustomReportActivity(DOWNLOAD_ACTION, id);\n } else {\n toast.error('Something went wrong', {\n position: isDesktop ? 'top-center' : 'top-right',\n });\n }\n setItemLoader((oldLoadingState) => ({\n ...oldLoadingState,\n [index]: false,\n }));\n resetDropDownFilters();\n });\n };\n\n const renderDesktopTableHeader = () => {\n return (\n \n \n NAME/TYPE\n DESCRIPTION\n Action\n \n \n );\n };\n\n // convert sentence to capitalize\n const returnReportType = (value) => {\n return value.replace(/(^\\w{1})|(\\s+\\w{1})/g, (letter) =>\n letter.toUpperCase(),\n );\n };\n\n // display download report button\n const displayDownloadReportButton = (item, index, label, view) => {\n return itemLoader[index] ? (\n \n ) : (\n <>\n {\n if (item?.report_type === 'finance' && isSpreetailUser) {\n return;\n }\n if (\n ((selectedBp !== 'Select-BP' || isCustomer) &&\n item?.is_data_available) ||\n (item?.is_data_available && item?.report_type === 'finance')\n ) {\n if (\n item?.report_name === 'Monthly Partner Opportunities Report'\n ) {\n setOpenPartnerOpportunitiesReportModal(true);\n setDownloadedReportDetails({ id: item?.id, index });\n } else {\n onDownload(item?.id, index);\n }\n }\n }}\n aria-hidden=\"true\"\n className={\n view === 'desktop'\n ? (item?.report_type === 'finance' && isSpreetailUser) ||\n (item?.sub_report_type === 'sp_advertising' &&\n !isMTDorCustomDate)\n ? 'inActive-download'\n : item?.is_data_available\n ? 'active-download'\n : 'inActive-download'\n : 'icon-with-border d-block mt-3'\n }\n data-tip={\n item?.report_type === 'finance' && isSpreetailUser\n ? SpreetailRoleRestrictMessage\n : !item?.is_data_available\n ? tooltipMsg\n : null\n }\n data-for=\"downloadReportInfo\"\n style={\n view === 'desktop'\n ? (item?.report_type === 'finance' && isSpreetailUser) ||\n (item?.sub_report_type === 'sp_advertising' &&\n !isMTDorCustomDate)\n ? { cursor: 'not-allowed' }\n : item?.is_data_available\n ? { cursor: 'pointer' }\n : { cursor: 'not-allowed' }\n : (item?.report_type === 'finance' && isSpreetailUser) ||\n (item?.sub_report_type === 'sp_advertising' &&\n !isMTDorCustomDate)\n ? {\n cursor: 'not-allowed',\n border: `1px solid ${Theme.gray25}`,\n }\n : item?.is_data_available\n ? {\n cursor: 'pointer',\n border: `1px solid ${Theme.orange}`,\n }\n : {\n cursor: 'not-allowed',\n border: `1px solid ${Theme.gray25}`,\n }\n }\n >\n \n {label !== null ? label : ''}\n \n\n {!item?.is_data_available ? (\n \n ) : null}\n \n );\n };\n\n // display tooltip message and icon\n const displayTooltipMessageWithIcon = (dataTip) => {\n return (\n <>\n \n \n \n );\n };\n\n // display report type tooltip\n const displayTooltipByReportType = (item) => {\n const reportKey = [\n 'Weekly Return and Review Report',\n 'Monthly Partner Opportunities Report',\n 'Sponsored Television Report',\n ].includes(item?.report_name)\n ? item?.report_name\n : ['sp_advertising', 'reconciliation'].includes(item?.sub_report_type)\n ? item?.sub_report_type\n : selectedTimeFrame?.value === 'custom' &&\n cashflowStandardReportsKeys?.includes(item?.sub_report_type)\n ? 'finance_custom'\n : item?.report_type;\n\n // 28/12/2023 - https://bbe.atlassian.net/browse/PDV-8442 - add another sentence on finance report tooltip as: Select the entire month range to download past monthly report.\n return standardReportMessages?.[reportKey]\n ? displayTooltipMessageWithIcon(standardReportMessages[reportKey])\n : '';\n };\n\n const renderDesktopTable = () => {\n return (\n \n {reportsData?.map((item, index) => {\n return (\n \n \n
    {item?.report_name}
    \n

    \n {returnReportType(item?.report_type.replace('_', ' '))}\n {displayTooltipByReportType(item)}\n

    \n \n \n
    {item?.report_description}
    \n \n \n {displayDownloadReportButton(\n item,\n index,\n 'Download',\n 'desktop',\n )}\n \n \n );\n })}\n \n );\n };\n\n const renderMobileView = () => {\n return (\n \n {reportsData?.map((item, index) => {\n return (\n
    \n
    \n
    \n \n {item?.report_type.replace('_', ' ')}\n {displayTooltipByReportType(item)}\n

    \n
    \n {item?.report_name}\n
    \n

    \n {item?.report_description}\n

    \n
    \n
    \n {displayDownloadReportButton(item, index, null, 'mobile')}\n
    \n
    \n
    \n
    \n );\n })}\n \n );\n };\n\n return (\n <>\n {loader ? (\n \n ) : isDesktop ? (\n <>\n \n {renderDesktopTableHeader()}\n {renderDesktopTable()}\n \n \n ) : (\n renderMobileView()\n )}\n\n {reportsData.length >= 1 ? (\n \n ) : null}\n\n {reportsData.length === 0 && !loader ? (\n No reports data found.\n ) : null}\n {openPartnerOpportunitiesReportModal ? (\n {\n onDownload(\n downloadedReportDetails?.id,\n downloadedReportDetails?.index,\n );\n }}\n onModalClose={() => {\n resetDropDownFilters();\n }}\n customDateState={{\n startDate: generateCustomDate(customDateState[0].startDate),\n endDate: generateCustomDate(customDateState[0].endDate),\n }}\n />\n ) : null}\n \n );\n};\n\nexport default ReportSectionList;\n\nReportSectionList.defaultProps = {\n selectedReportTypeValue: '',\n isCustomer: false,\n count: 0,\n pageNumber: 1,\n handlePageChange: () => {},\n generateCustomDate: () => {},\n customerId: '',\n};\n\nReportSectionList.propTypes = {\n selectedReportTypeValue: string,\n pageNumber: number,\n count: number,\n loader: bool.isRequired,\n isCustomer: bool,\n selectedBp: string.isRequired,\n customerId: string,\n reportsData: arrayOf(Array).isRequired,\n handlePageChange: func,\n generateCustomDate: func,\n selectedTimeFrame: shape({}).isRequired,\n selectedMarketplaceOption: string.isRequired,\n customDateState: arrayOf(shape({})).isRequired,\n};\n\nconst ReportsMobiveView = styled.div`\n .icon-with-border {\n border-radius: 8px;\n border: 1px solid #bfc5d2;\n height: 38px;\n width: 38px;\n padding: 10px;\n }\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { getReportsSectionData } from '../../../api';\n\nimport ReportSectionList from './ReportSectionList';\n\nconst StandardReportContainer = ({\n selectedBp,\n selectedTimeFrame,\n generateCustomDate,\n isCustomDateApply,\n selectedMarketplaceOption,\n customDateState,\n selectedReportType,\n searchQuery,\n}) => {\n const mounted = useRef(false);\n\n const userInfo = useSelector((state) => state.userState.userInfo);\n const customer = useSelector((state) => state.customerState.data);\n const customerId = customer?.id;\n const isCustomer = userInfo?.role?.includes('Customer');\n\n const [reportsData, setReportsData] = useState([]);\n const [reportsLoader, setReportsLoader] = useState(false);\n\n const [reportCount, setReportCount] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n\n const getReportsData = useCallback(\n (\n reportType,\n searchString,\n page,\n id,\n dailyFact,\n marketplace,\n startDate,\n endDate,\n ) => {\n setReportsLoader(true);\n getReportsSectionData(\n reportType,\n searchString,\n page,\n id,\n dailyFact,\n marketplace,\n startDate,\n endDate,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (res?.data?.results) {\n setReportsData(res?.data?.results);\n setReportCount(res?.data?.count);\n } else {\n setReportsData([]);\n }\n } else {\n setReportsData([]);\n setReportCount(0);\n }\n\n setReportsLoader(false);\n }\n });\n },\n [],\n );\n\n useEffect(() => {\n mounted.current = true;\n\n const userId = isCustomer ? customerId : selectedBp;\n if (selectedMarketplaceOption !== '') {\n if (isCustomDateApply && selectedTimeFrame?.value === 'custom') {\n let startDate = null;\n let endDate = null;\n startDate = generateCustomDate(customDateState[0]?.startDate);\n endDate = generateCustomDate(customDateState[0]?.endDate);\n getReportsData(\n selectedReportType?.value,\n searchQuery,\n 1,\n userId,\n selectedTimeFrame?.value,\n selectedMarketplaceOption,\n startDate,\n endDate,\n );\n }\n if (!isCustomDateApply && selectedTimeFrame?.value !== 'custom') {\n getReportsData(\n selectedReportType?.value,\n searchQuery,\n 1,\n userId,\n selectedTimeFrame?.value,\n selectedMarketplaceOption,\n );\n }\n }\n return () => {\n mounted.current = false;\n };\n }, [\n customDateState,\n customerId,\n generateCustomDate,\n getReportsData,\n isCustomDateApply,\n isCustomer,\n searchQuery,\n selectedBp,\n selectedMarketplaceOption,\n selectedReportType,\n selectedTimeFrame,\n ]);\n\n const handlePageChange = (currentPage) => {\n if (isCustomDateApply && selectedTimeFrame.value === 'custom') {\n let startDate = null;\n let endDate = null;\n startDate = generateCustomDate(customDateState[0].startDate);\n endDate = generateCustomDate(customDateState[0].endDate);\n getReportsData(\n selectedReportType?.value,\n searchQuery,\n currentPage,\n isCustomer ? customerId : selectedBp,\n selectedTimeFrame.value,\n selectedMarketplaceOption,\n startDate,\n endDate,\n );\n }\n if (!isCustomDateApply && selectedTimeFrame.value !== 'custom') {\n getReportsData(\n selectedReportType?.value,\n searchQuery,\n currentPage,\n isCustomer ? customerId : selectedBp,\n selectedTimeFrame.value,\n selectedMarketplaceOption,\n );\n }\n setPageNumber(currentPage);\n };\n\n return (\n <>\n \n \n );\n};\n\nexport default StandardReportContainer;\n\nStandardReportContainer.defaultProps = {\n generateCustomDate: () => {},\n isCustomDateApply: false,\n searchQuery: '',\n};\n\nStandardReportContainer.propTypes = {\n isCustomDateApply: bool,\n searchQuery: string,\n selectedBp: string.isRequired,\n generateCustomDate: func,\n selectedTimeFrame: shape({}).isRequired,\n selectedReportType: shape({}).isRequired,\n selectedMarketplaceOption: string.isRequired,\n customDateState: arrayOf(shape({})).isRequired,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { bool, func, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { ModalBox } from '../../../common';\n\nfunction ReportPDFStatusModal({\n isModalOpen,\n currentPDFUser,\n afterModalCloseAPI,\n}) {\n // render report pdf status modal\n const renderReportPDFStatusModalContent = () => {\n return (\n <>\n \n {\n afterModalCloseAPI();\n }}\n role=\"presentation\"\n />\n\n \n <>\n
    \n

    Report Status

    \n\n
    \n
    \n \n As {currentPDFUser} is currently editing this report, you\n cannot edit the report until \n {currentPDFUser} is done editing it.\n

    \n
    \n
    \n \n \n \n \n );\n };\n /* ********** main return statement of this component ********** */\n return
    {renderReportPDFStatusModalContent()}
    ;\n}\n\nexport default ReportPDFStatusModal;\n\nReportPDFStatusModal.defaultProps = {\n currentPDFUser: '',\n isModalOpen: false,\n afterModalCloseAPI: () => {},\n};\n\nReportPDFStatusModal.propTypes = {\n currentPDFUser: string,\n isModalOpen: bool,\n afterModalCloseAPI: func,\n};\n","import React, { Fragment, useCallback, useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\n\nimport styled from 'styled-components';\nimport Theme from '../../../theme/Theme';\nimport NoRecordFound from '../../../common/NoRecordFound';\nimport ReportPDFStatusModal from './ReportPDFStatusModal';\nimport { ServiceAgreementIcon } from '../../../theme/images';\nimport { getCustomReportActivity, checkReportStatusToEdit } from '../../../api';\nimport {\n SpreetailRole,\n customizedReportTableHeadConstants,\n} from '../../../constants';\nimport {\n CommonPagination,\n DesktopTable,\n PageLoader,\n Status,\n} from '../../../common';\n\nconst DOWNLOAD_ACTION = 'downloaded';\nconst VIEW_ACTION = 'viewed';\n\nconst CustomizedReportsList = ({\n pageNumber,\n count,\n loader,\n data,\n handlePageChange,\n onEditView,\n reportTableAPICall,\n}) => {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const isDesktop = useMediaQuery({ minWidth: 767 });\n const [itemLoader, setItemLoader] = useState({});\n const [currentPDFUser, setCurrentPDFUser] = useState();\n const [reportPDFstatusModal, setReportPDFStatusModal] = useState(false);\n\n const onGetCustomReportActivity = useCallback((action, reportID) => {\n getCustomReportActivity(action, reportID).then(() => {});\n }, []);\n\n // handle download report\n const handleDownload = (url, reportName, id) => {\n setItemLoader({ ...itemLoader, [id]: true });\n fetch(url).then((response) => {\n response\n .blob()\n .then((blob) => {\n // Creating new object of PDF file\n const fileURL = window.URL.createObjectURL(blob);\n // Setting various property values\n const alink = document.createElement('a');\n alink.href = fileURL;\n alink.download = reportName;\n alink.click();\n setItemLoader((oldLoadingState) => ({\n ...oldLoadingState,\n [id]: false,\n }));\n })\n .catch(() =>\n setItemLoader((oldLoadingState) => ({\n ...oldLoadingState,\n [id]: false,\n })),\n );\n });\n\n onGetCustomReportActivity(DOWNLOAD_ACTION, id);\n };\n\n // render download report html\n const renderDownloadReportHTML = (item) => {\n return (\n <>\n {\n handleDownload(\n item?.presigned_url,\n `${item.customer_name}_${item?.name}_${dayjs(\n item?.created_at,\n ).format('DD MMM YYYY')}.pdf`,\n item?.id,\n );\n }}\n >\n {itemLoader[item?.id] ? (\n \n ) : (\n <>\n \n {isDesktop ? 'Download' : ''}\n \n )}\n \n \n );\n };\n\n // checking if pdf is editable or not\n const handleIsReportPDFEditable = (item) => {\n checkReportStatusToEdit(item?.id).then((response) => {\n if (response?.status === 200) {\n if (\n response?.data?.status === 'ready'\n // response?.data?.current_user?.id === userInfo?.id // restrict same user to edit the same report\n ) {\n setReportPDFStatusModal(false);\n onEditView(\n item?.id,\n item?.customer,\n item?.customer_name,\n 'readyToEdit',\n item?.presigned_url,\n `${item.customer_name}_${item.name}_${dayjs(item.created_at).format(\n 'DD MMM YYYY',\n )}`,\n );\n } else {\n const currenUser = `${response?.data?.current_user?.first_name} ${response?.data?.current_user?.last_name}`;\n setCurrentPDFUser(currenUser);\n setReportPDFStatusModal(true);\n }\n }\n });\n };\n\n // render report pdf edit html\n const renderReportPDFEditHTML = (item) => {\n const mobileStyle = { marginRight: '5px', padding: '8px 9px' };\n\n return (\n {\n handleIsReportPDFEditable(item);\n }}\n >\n \n {isDesktop ? 'Edit' : ''}\n \n );\n };\n\n // render report pdf view only html\n const renderReportPDFViewOnlyHTML = (item) => {\n const mobileStyle = { marginRight: '5px', padding: '8px 9px' };\n return (\n {\n onGetCustomReportActivity(VIEW_ACTION, item?.id);\n onEditView(\n item?.id,\n item?.customer,\n item?.customer_name,\n 'view',\n item?.presigned_url,\n `${item?.customer_name}_${item?.name}_${dayjs(\n item?.created_at,\n ).format('DD MMM YYYY')}`,\n );\n }}\n >\n \n {isDesktop ? 'View' : ''}\n \n );\n };\n\n // render report pdf status\n const renderReportPDFStatus = (status) => {\n const label = status === 'ready' ? 'Ready' : 'In Progress';\n const color = status === 'ready' ? '#407b00' : '#ff5933';\n const bgColor = status === 'ready' ? '#e1f2ce' : '#f6d2c9';\n\n return (\n \n );\n };\n\n // render report creation date\n const renderReportCreationDate = (item) => {\n return (\n <>\n {item?.created_at}\n {/* {dayjs(item.created_at).format('DD MMM YYYY')} */}\n \n \n {item?.upsert_action?.includes('created')\n ? 'Created by'\n : 'Updated by'}\n  \n {item?.user?.first_name} {item?.user?.last_name}\n \n \n );\n };\n\n // const render report table head\n const renderReportTableHead = () => {\n return (\n \n \n {customizedReportTableHeadConstants?.map((item) => {\n return (\n \n {item?.label}\n \n );\n })}\n \n \n );\n };\n\n // render report table body\n const renderReportTableBody = () => {\n return (\n \n {data?.map((item) => {\n return (\n \n \n
    {item?.customer_name}
    \n \n \n
    {item?.name}
    \n \n {item?.description}\n {renderReportCreationDate(item)}\n {renderReportPDFStatus(item?.status)}\n \n
    \n {!isSpreetailUser && item?.is_editable\n ? renderReportPDFEditHTML(item)\n : renderReportPDFViewOnlyHTML(item)}\n {renderDownloadReportHTML(item)}\n
    \n \n \n );\n })}\n\n {loader ? (\n \n ) : null}\n {data.length === 0 && !loader ? (\n \n ) : null}\n \n );\n };\n\n // render report mobile view\n const renderReportMobileView = () => {\n return (\n \n {data?.map((item) => {\n return (\n \n
    \n
    \n

    \n {item?.customer_name}\n

    \n
    \n
    \n
    \n {item?.is_editable\n ? renderReportPDFEditHTML(item)\n : renderReportPDFViewOnlyHTML(item)}\n {renderDownloadReportHTML(item)}\n
    \n
    \n
    \n

    {item?.name}

    \n

    {item?.description}

    \n

    \n {renderReportCreationDate(item)}\n

    \n
    \n
    \n
    \n \n );\n })}\n \n );\n };\n\n // render report pdf status modal\n const renderReportPDFStatusModal = () => {\n return (\n {\n reportTableAPICall();\n setReportPDFStatusModal(false);\n }}\n />\n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n
    \n {isDesktop ? (\n \n {renderReportTableHead()}\n {renderReportTableBody()}\n \n ) : (\n renderReportMobileView()\n )}\n\n {data.length >= 1 ? (\n \n ) : null}\n\n {reportPDFstatusModal ? renderReportPDFStatusModal() : null}\n
    \n );\n};\n\nexport default CustomizedReportsList;\n\nCustomizedReportsList.defaultProps = {\n count: 0,\n pageNumber: 1,\n handlePageChange: () => {},\n loader: false,\n onEditView: () => {},\n reportTableAPICall: () => {},\n};\n\nCustomizedReportsList.propTypes = {\n pageNumber: number,\n count: number,\n loader: bool,\n data: arrayOf(Array).isRequired,\n handlePageChange: func,\n onEditView: func,\n reportTableAPICall: func,\n};\nconst ReportsMobiveView = styled.div`\n .icon-with-border {\n border-radius: 8px;\n border: 1px solid ${Theme.gray25};\n height: 38px;\n width: 38px;\n padding: 8px 12px;\n }\n`;\n\nconst UpdatedStatus = styled.div`\n background: ${Theme.gray8};\n border-radius: 4px;\n padding: 4px;\n font-size: 8px;\n width: fit-content;\n margin-top: 4px;\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport styled from 'styled-components';\nimport Select from 'react-select';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { bool, func, string } from 'prop-types';\n\nimport Theme from '../../../theme/Theme';\nimport { getCustomzedReportData } from '../../../api';\n\nimport CustomizedReportsList from './CustomizedReportsList';\nimport { CustomDropDown } from '../../../common';\nimport { reportOrderOptions } from '../../../constants';\n\nconst CustomizedReportContainer = ({\n selectedBp,\n isUserAssignedToBP,\n searchQuery,\n onEditViewReport,\n}) => {\n const mounted = useRef(false);\n const [reportsLoader, setReportsLoader] = useState(false);\n const [customizedReportsData, setCustomizedReportsData] = useState([]);\n const [customizedReportsCount, setCustomizedReportsCount] = useState(0);\n const [pageNumber, setPageNumber] = useState(1);\n\n const [selectedReportOrder, setSelectedReportOrder] = useState({\n value: '-created_at',\n label: 'Most Recent to Oldest',\n });\n\n const onGetReportsData = useCallback(\n (page = 1) => {\n setReportsLoader(true);\n setCustomizedReportsData([]);\n setCustomizedReportsCount(0);\n getCustomzedReportData(\n page,\n searchQuery,\n selectedReportOrder?.value,\n ).then((res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n setReportsLoader(false);\n }\n if (res && res.status === 200) {\n if (res.data && res.data.results) {\n setCustomizedReportsData(res.data.results);\n setCustomizedReportsCount(res.data.count);\n } else {\n setCustomizedReportsData([]);\n }\n }\n setReportsLoader(false);\n }\n });\n },\n [searchQuery, selectedReportOrder],\n );\n\n useEffect(() => {\n mounted.current = true;\n\n onGetReportsData(1);\n return () => {\n mounted.current = false;\n };\n }, [onGetReportsData]);\n\n const handlePageChange = (currentPage) => {\n onGetReportsData(currentPage);\n setPageNumber(currentPage);\n };\n\n return (\n <>\n \n
    \n
    \n
    Activity Reports
    \n
    \n\n
    \n
      \n Sort by\n
    • \n \n {\n setPageNumber(1);\n setSelectedReportOrder(event);\n }}\n placeholder={\n reportOrderOptions &&\n reportOrderOptions[0] &&\n reportOrderOptions[0].label\n }\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n {' '}\n
    • \n
    • \n {\n onGetReportsData(1);\n setPageNumber(1);\n }}>\n
      \n \n
      \n \n
    • \n
    \n
    \n
    \n {\n onGetReportsData(pageNumber);\n }}\n />\n
    \n \n );\n};\n\nexport default CustomizedReportContainer;\n\nCustomizedReportContainer.defaultProps = {\n searchQuery: '',\n onEditViewReport: () => {},\n isUserAssignedToBP: false,\n};\n\nCustomizedReportContainer.propTypes = {\n selectedBp: string.isRequired,\n isUserAssignedToBP: bool,\n searchQuery: string,\n onEditViewReport: func,\n};\n\nconst RefreshButton = styled.div`\n .refresh-icon {\n border-radius: 6px;\n width: 40px;\n text-align: center;\n height: 40px;\n padding: 9px 7px;\n border: 1px solid #bfc5d2;\n color: ${Theme.black};\n border: 1px solid ${Theme.gray25};\n .refresh-arrow-icon {\n vertical-align: text-top;\n margin-right: 4px;\n }\n }\n`;\n\nconst ActivityReports = styled.div`\n .rep-activity {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n display: inline-block;\n margin-right: 15px;\n max-width: 200px;\n width: 100%;\n\n &:last-child {\n margin-right: 0;\n vertical-align: top;\n max-width: fit-content;\n }\n &.sorted-by {\n .jIDBKP {\n width: 152px !important;\n }\n }\n @media only screen and (max-width: 767px) {\n max-width: inherit;\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .rep-activity {\n display: flex;\n li {\n &.sorted-by {\n width: 99% !important;\n .jIDBKP {\n width: 99% !important;\n }\n }\n }\n }\n }\n`;\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\n\nimport { useMediaQuery } from 'react-responsive';\nimport { func, string, shape } from 'prop-types';\nimport { Document, Page, pdfjs } from 'react-pdf/dist/esm/entry.webpack';\nimport 'react-pdf/dist/esm/Page/AnnotationLayer.css';\n\nimport PdfLoadingMsg from './PdfLoadingMsg';\n\npdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;\n\nexport default function PdfViewer({\n pdf,\n loadingMsg,\n setShowAddendum,\n executeScroll,\n contractAddendumDetails,\n}) {\n const [totalPages, setNumPages] = useState(null);\n const [isLoader, setIsLoader] = useState({ loader: false });\n const pdfFile = useMemo(() => {\n return pdf;\n }, [pdf]);\n\n const isDesktopLarge = useMediaQuery({ minWidth: 1601 });\n const isDesktop = useMediaQuery({ minWidth: 1331, maxWidth: 1600 });\n const isDesktopView = useMediaQuery({ minWidth: 992, maxWidth: 1330 });\n const isTablet = useMediaQuery({ minWidth: 768, maxWidth: 991 });\n const isMobile = useMediaQuery({ minWidth: 590, maxWidth: 767 });\n const isMobileView = useMediaQuery({ minWidth: 455, maxWidth: 591 });\n const isMobileSmallView = useMediaQuery({ minWidth: 320, maxWidth: 456 });\n\n const giveWidth = useCallback(() => {\n if (isDesktopLarge) {\n return 1000;\n }\n if (isDesktop) {\n return 900;\n }\n if (isDesktopView) {\n return 590;\n }\n if (isTablet) {\n return 750;\n }\n\n if (isMobile) {\n return 550;\n }\n\n if (isMobileView) {\n return 450;\n }\n\n if (isMobileSmallView) {\n return 320;\n }\n return null;\n }, [\n isDesktopLarge,\n isDesktop,\n isDesktopView,\n isTablet,\n isMobile,\n isMobileView,\n isMobileSmallView,\n ]);\n\n const onDocumentLoadSuccess = useCallback(\n ({ numPages }) => {\n setNumPages(numPages);\n setIsLoader({ loader: false });\n setShowAddendum(true);\n executeScroll('draft-addendum');\n },\n [executeScroll, setShowAddendum],\n );\n\n const displayPdf = useCallback(() => {\n return (\n <>\n {isLoader.loader ? '' : ''}\n (\n \n )}\n loading={() => (\n \n )}\n onLoadSuccess={onDocumentLoadSuccess}\n >\n {Array.from(new Array(totalPages), (el, index) => (\n \n ))}\n \n \n );\n }, [\n pdfFile,\n giveWidth,\n totalPages,\n loadingMsg,\n isLoader,\n onDocumentLoadSuccess,\n ]);\n\n useEffect(() => {\n displayPdf();\n }, [displayPdf]);\n\n useEffect(() => {\n if (!pdf || contractAddendumDetails?.notActive) setShowAddendum(true);\n }, [pdf, setShowAddendum, contractAddendumDetails]);\n\n return
    {displayPdf()}
    ;\n}\n\nPdfViewer.defaultProps = {\n pdf: '',\n loadingMsg: '',\n setShowAddendum: () => {},\n executeScroll: () => {},\n contractAddendumDetails: {},\n};\n\nPdfViewer.propTypes = {\n pdf: string,\n loadingMsg: string,\n setShowAddendum: func,\n executeScroll: func,\n contractAddendumDetails: shape({}),\n};\n","/* eslint-disable no-underscore-dangle */\n/* eslint-disable camelcase */\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nimport dayjs from 'dayjs';\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport { arrayOf, bool, shape, string } from 'prop-types';\n\nimport {\n currencyAxis,\n customReportGraphColorSet,\n numberAxis,\n percentageAxis,\n customReportGraphTooltipNames as tooltipNames,\n} from '../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\n\nconst _ = require('lodash');\n\nexport default function SaleAdDspPerformanceGraph({\n chartId,\n chartData,\n currencySymbol,\n selectedMetrics,\n selectedDF,\n showPrevoisPoint,\n dateFrequency,\n currentEndDate,\n}) {\n const chart = useRef(null);\n // calculate past and future months\n const getYesterdayOfCurrentDate = (date) => {\n date.setDate(date?.getDate() - 1);\n\n return date;\n };\n\n // generate chart data with date range\n const chartDataWithDateRange = useCallback(\n (graphData) => {\n const graphDataNewLength = graphData?.length;\n const tempGraphData = [];\n const lastIndex = graphDataNewLength - 1;\n\n if (graphDataNewLength > 0) {\n graphData.map((item, index) => {\n let yesterday = null;\n const startDate = item?.date\n ? dayjs(new Date(item?.date)).format('MMM DD, YYYY')\n : null;\n\n if (index < lastIndex) {\n const getDate = graphData?.at(index + 1)?.date;\n if (getDate) {\n yesterday = dayjs(\n getYesterdayOfCurrentDate(new Date(getDate)),\n ).format('MMM DD, YYYY');\n } else {\n yesterday = dayjs(new Date(currentEndDate)).format(\n 'MMM DD, YYYY',\n );\n }\n } else if (index === lastIndex) {\n const getDate = graphData?.at(lastIndex)?.date;\n if (getDate) {\n yesterday = dayjs(new Date(currentEndDate)).format(\n 'MMM DD, YYYY',\n );\n } else {\n yesterday = startDate;\n }\n }\n\n tempGraphData.push({\n ...item,\n dateRange: {\n startDate,\n endDate: yesterday,\n },\n });\n\n return tempGraphData;\n });\n }\n\n return tempGraphData;\n },\n [currentEndDate],\n );\n\n useEffect(() => {\n // create value axis function\n function createValueAxis(axisColor) {\n const localValueAxis = chart.current.yAxes.push(\n new am4charts.ValueAxis(),\n );\n localValueAxis.renderer.grid.template.disabled = true;\n localValueAxis.cursorTooltipEnabled = false;\n localValueAxis.renderer.baseGrid.disabled = true;\n localValueAxis.numberFormatter = new am4core.NumberFormatter();\n localValueAxis.numberFormatter.numberFormat = `#.#a`;\n localValueAxis.extraMax = 0.005;\n localValueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n localValueAxis.numberFormatter.smallNumberPrefixes = [];\n localValueAxis.stroke = am4core.color(axisColor);\n localValueAxis.strokeOpacity = 0.5;\n return localValueAxis;\n }\n // function to generate complete tooltip html\n function generateToolTipHTML(dateRange, tooltipValue) {\n let html = '';\n if (dateFrequency === 'weekly') {\n html = `
    \n From - ${dateRange?.startDate} To - ${dateRange?.endDate}\n
    \n ${tooltipValue}`;\n } else {\n html = tooltipValue;\n }\n\n return html;\n }\n\n function renderTooltip(name, color, value, currency, percent, formatter) {\n const tooltipText = `
      \n
    • \n
      \n
    • \n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${currency !== null ? currency : ''}${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}`\n : `{${value}}`\n }${percent !== null ? percent : ''}\n
      \n
    • \n
    \n \n `;\n\n return tooltipText;\n }\n\n function bindValueAxisFormatter(item) {\n let format = '';\n if (currencyAxis.includes(item)) {\n format = `${currencySymbol}#.#a`;\n } else if (numberAxis.includes(item)) {\n format = `#.#a`;\n } else if (percentageAxis.includes(item)) {\n format = `#.#'%'`;\n }\n return format;\n }\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartDataWithDateRange(chartData);\n chart.current.paddingRight = 20;\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true; // disabled zoomout button\n\n // render X axis\n const dateAxis = chart.current.xAxes.push(new am4charts.DateAxis());\n dateAxis.renderer.minGridDistance = 50;\n dateAxis.renderer.grid.template.location = 0.5;\n dateAxis.renderer.labels.template.location = 0.5;\n dateAxis.dy = 10;\n dateAxis.gridIntervals.setAll([\n { timeUnit: 'day', count: 1 },\n { timeUnit: 'day', count: 5 },\n { timeUnit: 'day', count: 10 },\n { timeUnit: 'day', count: 15 },\n { timeUnit: 'day', count: 20 },\n { timeUnit: 'week', count: 1 },\n { timeUnit: 'week', count: 5 },\n { timeUnit: 'week', count: 10 },\n { timeUnit: 'month', count: 1 },\n { timeUnit: 'month', count: 2 },\n { timeUnit: 'month', count: 3 },\n { timeUnit: 'month', count: 6 },\n ]);\n dateAxis.cursorTooltipEnabled = false;\n dateAxis.periodChangeDateFormats.setKey('month', 'MMM');\n\n // create object of first value axis\n let valueAxis = createValueAxis();\n\n // Add cursor\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n\n const selectedMatricsFlag = _.size(selectedMetrics) <= 2;\n\n if (selectedMatricsFlag) {\n // create object of 2nd value axis\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for generate tooltip\n _.keys(selectedMetrics).map((item, index) => {\n const currentLabel = `${item}CurrentLabel`;\n const previousLabel = `${item}PreviousLabel`;\n const colorCode = customReportGraphColorSet[index];\n\n if (selectedDF === 'custom' || !showPrevoisPoint) {\n if (currencyAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (numberAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorCode,\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n } else if (percentageAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n }\n } else {\n tooltipValue = `${tooltipValue} ${tooltipNames[item]}`;\n if (currencyAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (numberAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n null,\n '#,###',\n )}`;\n } else if (percentageAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Recent',\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n\n tooltipValue = `${tooltipValue} ${renderTooltip(\n 'Previous',\n colorCode,\n previousLabel,\n null,\n '%',\n null,\n )}`;\n }\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n let series2 = null;\n if (showPrevoisPoint) {\n series2 = chart.current.series.push(new am4charts.LineSeries());\n }\n\n const currentValue = `${item}Current`;\n const previousValue = `${item}Previous`;\n const seriesName = `${item}Series`;\n const colorCode = customReportGraphColorSet[index];\n\n valueAxis = createValueAxis(colorCode);\n series.yAxis = valueAxis;\n if (showPrevoisPoint) {\n series2.yAxis = valueAxis;\n }\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n\n if (index === 1) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = currentValue;\n series.dataFields.dateX = 'date';\n series.name = seriesName;\n series.strokeWidth = 2;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target?._tooltipDataItem?._dataContext?.dateRange;\n return generateToolTipHTML(dateRange, tooltipValue);\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n if (showPrevoisPoint) {\n series2.dataFields.valueY = previousValue;\n series2.name = previousValue;\n series2.dataFields.dateX = 'date';\n series2.strokeWidth = 2;\n series2.stroke = am4core.color(colorCode);\n series2.fill = am4core.color('#2e384d');\n series2.strokeDasharray = '8,4';\n series2.adapter.add('tooltipHTML', (text, target) => {\n const dateRange =\n target?._tooltipDataItem?._dataContext?.previousDateRange;\n return generateToolTipHTML(dateRange, tooltipValue);\n });\n\n const bullet = series2.bullets.push(new am4charts.Bullet());\n const square = bullet.createChild(am4core.Rectangle);\n square.fill = am4core.color(colorCode);\n square.width = 8;\n square.height = 8;\n square.horizontalCenter = 'middle';\n square.verticalCenter = 'middle';\n }\n\n snapToSeries.push(series);\n if (showPrevoisPoint) {\n snapToSeries.push(series2);\n }\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n } else {\n // else part- for multiple metrics selected\n const snapToSeries = [];\n let tooltipValue = '';\n\n // loop for genearate tooltip\n _.keys(selectedMetrics).map((item, index) => {\n const currentLabel = `${item}CurrentLabel`;\n const colorCode = customReportGraphColorSet[index];\n\n if (currencyAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorCode,\n currentLabel,\n currencySymbol,\n null,\n '#,###',\n )}`;\n } else if (numberAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorCode,\n currentLabel,\n null,\n null,\n '#,###',\n )}`;\n } else if (percentageAxis.includes(item)) {\n tooltipValue = `${tooltipValue} ${renderTooltip(\n tooltipNames[item],\n colorCode,\n currentLabel,\n null,\n '%',\n null,\n )}`;\n }\n return '';\n });\n\n _.keys(selectedMetrics).map((item, index) => {\n const series = chart.current.series.push(new am4charts.LineSeries());\n const colorCode = customReportGraphColorSet[index];\n\n valueAxis = createValueAxis(colorCode);\n series.yAxis = valueAxis;\n valueAxis.numberFormatter.numberFormat = bindValueAxisFormatter(item);\n if (index === 1 || index === 3) {\n valueAxis.renderer.opposite = true;\n }\n\n series.dataFields.valueY = `${item}Current`;\n series.dataFields.dateX = 'date';\n series.name = `${item}Series`;\n series.strokeWidth = 2;\n series.stroke = am4core.color(colorCode);\n series.fill = am4core.color('#2e384d');\n series.adapter.add('tooltipHTML', (text, target) => {\n const dateRange = target?._tooltipDataItem?._dataContext?.dateRange;\n return generateToolTipHTML(dateRange, tooltipValue);\n });\n\n const circleBullet = series.bullets.push(new am4charts.CircleBullet());\n circleBullet.circle.fill = am4core.color(colorCode);\n circleBullet.circle.strokeWidth = 1;\n circleBullet.circle.radius = 5;\n\n snapToSeries.push(series);\n return '';\n });\n\n chart.current.cursor.snapToSeries = snapToSeries;\n }\n return () => chart.current && chart.current.dispose();\n }, [\n chartData,\n chartDataWithDateRange,\n chartId,\n currencySymbol,\n dateFrequency,\n selectedDF,\n selectedMetrics,\n showPrevoisPoint,\n ]);\n\n return
    ;\n}\n\nSaleAdDspPerformanceGraph.defaultProps = {\n dateFrequency: '',\n currentEndDate: '',\n showPrevoisPoint: false,\n chartData: [],\n currencySymbol: '',\n selectedMetrics: {},\n selectedDF: '',\n};\n\nSaleAdDspPerformanceGraph.propTypes = {\n dateFrequency: string,\n currentEndDate: string,\n showPrevoisPoint: bool,\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n currencySymbol: string,\n selectedMetrics: shape({}),\n selectedDF: string,\n};\n","import styled from 'styled-components';\nimport Theme from '../../../../theme/Theme';\n\nexport const CreateReportSidePanel = styled.div`\n .red-cross-icon {\n position: absolute;\n right: 21px;\n top: 25px;\n }\n .graph-title {\n font-size: ${Theme.extraMedium};\n font-family: ${Theme.titleFontFamily};\n height: 24px;\n letter-spacing: 0px;\n color: ${Theme.black};\n\n &.textLimit11 {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 125px;\n }\n }\n\n .delete-graph {\n position: absolute;\n top: 15px;\n right: 39px;\n }\n\n .days-container {\n max-width: 100%;\n width: 100%;\n &.spending {\n max-width: fit-content;\n .days-tab {\n li {\n label {\n padding: 7px 10px;\n }\n }\n }\n }\n\n .days-tab {\n #daysCheck:checked + label,\n #weeklyCheck:checked + label,\n #monthlyCheck:checked + label {\n color: ${Theme.orange};\n width: 100%;\n text-align: center;\n }\n\n li {\n width: 33.33%;\n text-align: center;\n }\n }\n }\n .metrics-tooltip {\n margin: -10px 0 0 -100px !important;\n @media only screen and (min-width: 1500px) {\n margin: -10px 0 0 -120px !important;\n }\n }\n`;\nexport const MainBodyReports = styled.div`\n .graph-flied {\n background: #f9fafe;\n border-radius: 0px;\n min-height: 268px;\n display: flex;\n justify-content: space-around;\n align-content: center;\n flex-wrap: wrap;\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n font-size: ${Theme.subTitle};\n margin-top: 48px;\n }\n`;\n\nexport const ReportPDFContainer = styled.div`\n width: 100%;\n background: #eef3f5;\n padding: 50px 0;\n @media only screen and (min-width: 1024px) {\n width: calc(100% - 336px);\n }\n @media only screen and (min-width: 1500px) {\n width: calc(100% - 406px);\n }\n`;\n\n// report pdf style\nexport const ReportPDFHeader = styled.div`\n .report-pdf-header {\n .pdf-header-list {\n font-size: 14px;\n font-family: 'Noah-Medium';\n ul {\n margin: 0;\n padding: 0;\n li {\n padding-bottom: 5px;\n color: #2e384d;\n }\n }\n }\n }\n`;\n\nexport const ReportPDFBody = styled.div`\n table {\n width: 99.5%;\n }\n .rdw-editor-toolbar.toolbarClassName {\n display: none;\n }\n .rdw-editor-main {\n background: #ffffff;\n border: none;\n padding: 8px 0;\n min-height: 0px;\n margin: 0px;\n }\n`;\n\nexport default CreateReportSidePanel;\n","import React from 'react';\n\nimport { func, shape } from 'prop-types';\n\nimport { BBEStandardLogo } from '../../../../theme/images';\nimport { ReportPDFHeader, ReportPDFBody } from './CreateReportStyle';\n\nfunction ReportPDFWithHperlink({\n html2pdfRef,\n pdfHeader,\n renderReportPDFBodyContent,\n}) {\n // generate pdf header html\n const renderReportPDFHeaderHTML = () => {\n return (\n \n
    \n
    \n
    \n
    \n
      \n
    • \n Customer Name:  \n {pdfHeader?.customerName}\n
    • \n
    • \n Marketplace:  \n {pdfHeader?.marketplace}\n
    • \n
    • \n Account Type:  \n {pdfHeader?.accountType}\n
    • \n
    • \n Date Range:  \n {pdfHeader?.dateRange}\n
    • \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
      \n
    • \n Report Summary:  \n {pdfHeader?.reportSummary}\n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n \n
    \n
    \n
    \n \n {renderReportPDFHeaderHTML()}\n {renderReportPDFBodyContent()}\n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default ReportPDFWithHperlink;\n\nReportPDFWithHperlink.defaultProps = {\n pdfHeader: {},\n html2pdfRef: {},\n renderReportPDFBodyContent: () => {},\n};\n\nReportPDFWithHperlink.propTypes = {\n renderReportPDFBodyContent: func,\n html2pdfRef: shape({}),\n pdfHeader: shape(),\n};\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport InventoryScoreGraph from '../../../Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/InventoryScoreGraph';\nimport useFormatNumber from '../../../../hooks/useFormatNumber';\nimport Theme from '../../../../theme/Theme';\nimport PdfViewer from '../../../../common/PdfViewer';\nimport SaleAdDspPerformanceGraph from './SaleAdDspPerformanceGraph';\nimport BbPercentChart from '../../../Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/BbPercentChart';\nimport {\n DesktopTable,\n GreyCard,\n NoData,\n ReportTextEditor,\n WhiteCard,\n} from '../../../../common';\nimport { MainBodyReports, ReportPDFContainer } from './CreateReportStyle';\nimport ReportPDFWithHperlink from './ReportPDFWithHperlink';\nimport {\n childAsinTableFields,\n currencyAxis,\n customReportGraphColorSet,\n customReportGraphTooltipNames,\n dataScrappedMsg,\n overstockInventoryTableFields,\n parentAsinTableFields,\n percentageAxis,\n strandedInventoryTableFields,\n understockInventoryTableFields,\n} from '../../../../constants';\n\nconst ReportLeftSidePanel = ({\n graphDetails,\n setGraphDetails,\n commanFieldsDetails,\n graphApiResponseData,\n reportStatus,\n customerName,\n dateToShow,\n reportSummary,\n html2pdfRef,\n currentEndDate,\n showReportPDFTemplate,\n}) => {\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const isMobile = useMediaQuery({ maxWidth: 767 });\n const accountType = commanFieldsDetails?.accountType?.value;\n // report pdf header\n const pdfHeader = {\n customerName,\n accountType,\n marketplace: commanFieldsDetails?.selectedMarketplace,\n dateRange: `From - ${dayjs(dateToShow?.startDate).format(\n 'MMM D, YYYY',\n )} To - ${dayjs(dateToShow?.endDate).format('MMM D, YYYY')}`,\n reportSummary,\n pdfName: `${customerName} ${commanFieldsDetails?.reportTitle} ${dayjs(\n new Date(),\n ).format('DD MMM YYYY')}.pdf`.replaceAll(' ', '_'),\n };\n\n const executeScroll = (eleId) => {\n const element = document.getElementById(eleId);\n const offset = isDesktop ? -150 : isMobile ? -220 : -220;\n const y =\n element?.getBoundingClientRect()?.top + window.pageYOffset + offset;\n window.scrollTo({ top: y });\n };\n\n const handleGraphDetailsOnChange = (\n graphIndex,\n keyName,\n fieldName,\n value,\n ) => {\n const newGraph = JSON.parse(JSON.stringify(graphDetails));\n newGraph[graphIndex][fieldName][keyName] = value;\n if (newGraph[graphIndex][fieldName][keyName] !== undefined) {\n setGraphDetails(newGraph);\n }\n };\n\n const renderEditComponent = (\n _graphData,\n graphIndex,\n fieldName,\n keyName,\n placeholder,\n isCharLimit,\n ) => {\n // let data = graphData[fieldName][keyName];\n let data =\n commanFieldsDetails?.editorDetails[graphIndex][fieldName][keyName];\n\n // setData is used to set the editor content in variable. This method called on_state_change of edior.\n // we are storing that value in a tempary varibale (editorDetails).\n // and when user click on procced button it will be store on orignal object (graphDetails).\n // so that orignal varible not update on every key stroke and graph will not be refresh.\n\n return (\n \n {\n data = value;\n const newEditorObject = JSON.parse(\n JSON.stringify(commanFieldsDetails?.editorDetails),\n );\n newEditorObject[graphIndex][fieldName][keyName] = value;\n if (newEditorObject[graphIndex][fieldName][keyName] !== undefined) {\n commanFieldsDetails.setEditorDetails(newEditorObject);\n }\n }}\n onFocusOut={(value) => {\n handleGraphDetailsOnChange(graphIndex, keyName, fieldName, value);\n }}\n data={data}\n placeholder={showReportPDFTemplate ? ' ' : placeholder}\n editorFor=\"customisedReport\"\n editorClassName=\"report-pdf-editor\"\n isCharLimit={isCharLimit}\n />\n
    \n );\n };\n\n // calculate past and future months\n const getYesterdayOfCurrentDate = (date) => {\n date.setDate(date?.getDate() - 1);\n\n return date;\n };\n\n // metrics value change style\n const renderMetricsValueChangeStyle = (key, value) => {\n const styleObj = { class: 'range mt-1', color: Theme.black };\n if (key[value] == null) {\n return styleObj;\n }\n if (key[value] >= 0) {\n styleObj.class = 'range increase-rate mt-1';\n styleObj.color = Theme.green;\n return styleObj;\n }\n styleObj.class = 'range decrease-rate mt-1';\n styleObj.color = Theme.red;\n return styleObj;\n };\n\n // render asins metrics value\n const renderMetricsValueWithChange = (\n dataItem,\n value,\n valueChange,\n percentChange,\n changeType,\n formatNumber,\n showDecimalPoint,\n prefix,\n postfix,\n showValue = true,\n isMetricsTable = false,\n ) => {\n const itemValue = showDecimalPoint\n ? formatNumber(value, prefix, postfix, false, false, 2)\n : formatNumber(value, prefix, postfix);\n\n const changeInValue = showDecimalPoint\n ? formatNumber(Math.abs(valueChange), prefix, postfix, false, false, 2)\n : formatNumber(Math.abs(valueChange), prefix, postfix);\n\n const changeInPercentage = formatNumber(Math.abs(percentChange), '', '%');\n const showChangeInValueAndPercent = (\n <>\n {changeInValue}({changeInPercentage})\n \n );\n const showMetricsTableChangeInValueAndPercent = (\n <>\n {changeInValue} \n {showReportPDFTemplate ? (\n
    {`(${changeInPercentage})`}
    \n ) : (\n `(${changeInPercentage})`\n )}\n \n );\n\n return (\n <>\n {showValue ? (\n
    {value == null ? 'N/A' : itemValue}
    \n ) : null}\n {commanFieldsDetails.selectedTimeFrame.value !== 'custom' ? (\n \n {changeInValue !== 'N/A' && changeInPercentage !== 'N/A' ? (\n <>\n \n {isMetricsTable\n ? showMetricsTableChangeInValueAndPercent\n : showChangeInValueAndPercent}\n \n ) : (\n 'N/A'\n )}\n
    \n ) : null}\n \n );\n };\n\n // get modified performance graph data\n const getLineGraphDataWithDateRange = (graphData) => {\n const graphDataNewLength = graphData?.length;\n const tempGraphData = [];\n const lastIndex = graphDataNewLength - 1;\n\n if (graphDataNewLength > 0) {\n graphData.map((item, index) => {\n let yesterday = null;\n const startDate = item?.date\n ? dayjs(new Date(item?.date)).format('MMM DD, YYYY')\n : null;\n\n if (index < lastIndex) {\n const getDate = graphData?.at(index + 1)?.date;\n if (getDate) {\n yesterday = dayjs(\n getYesterdayOfCurrentDate(new Date(getDate)),\n ).format('MMM DD, YYYY');\n } else {\n yesterday = dayjs(new Date(currentEndDate)).format('MMM DD, YYYY');\n }\n } else if (index === lastIndex) {\n const getDate = graphData?.at(lastIndex)?.date;\n if (getDate) {\n yesterday = dayjs(new Date(currentEndDate)).format('MMM DD, YYYY');\n } else {\n yesterday = startDate;\n }\n }\n\n tempGraphData.push({\n ...item,\n dateRange: {\n startDate,\n endDate: yesterday,\n },\n });\n\n return tempGraphData;\n });\n }\n\n return tempGraphData;\n };\n\n // render line graph\n const renderSalesAdDspGraph = (\n selectedFieldsData,\n graphIndex,\n metricsData,\n fieldName,\n ) => {\n const selectedMetricCount = Object.keys(\n selectedFieldsData?.[fieldName]?.selectedMetrics,\n );\n\n const dateFrequency =\n graphDetails?.[graphIndex]?.[fieldName]?.graphFrequency;\n\n return (\n \n {selectedMetricCount.length && metricsData?.length ? (\n <>\n \n
      \n
    • \n
      \n \n Recent\n
      \n
    • \n {selectedMetricCount.length <= 2 &&\n commanFieldsDetails?.selectedTimeFrame?.value !== 'custom' &&\n selectedFieldsData[fieldName]?.showPreviousDataPoint ? (\n
    • \n
      \n
        \n \n \n
      \n\n Previous\n
      \n
    • \n ) : null}\n
    \n
    \n \n\n \n
      \n {selectedMetricCount.map((option, index) => {\n return (\n
    • \n
      \n \n {customReportGraphTooltipNames[option]}\n
      \n
    • \n );\n })}\n
    \n
    \n \n ) : showReportPDFTemplate ? null : (\n
    \n {selectedMetricCount.length\n ? 'Data not available'\n : 'Add Graph here'}\n
    \n )}\n
    \n );\n };\n\n const renderMetricsTable = (\n graphData,\n indexNumber,\n fieldName,\n showTableFor,\n showTotalFor,\n formatNumber,\n ) => {\n let numberOfTableColumn = 0;\n let calculatedWidth = 0;\n const headerContent = [];\n const TotalHeaderContent = [];\n const tableRowContainer = [];\n const selectedMetrics = Object.keys(graphData[fieldName].selectedMetrics);\n let tableData = [];\n let tableTotalData = [];\n if (graphApiResponseData && graphApiResponseData.length) {\n tableData = getLineGraphDataWithDateRange(\n graphApiResponseData[indexNumber][fieldName][showTableFor],\n );\n tableTotalData =\n graphApiResponseData[indexNumber][fieldName][showTotalFor];\n }\n\n numberOfTableColumn = selectedMetrics.length;\n if (graphData[fieldName].showPreviousDataPoint) {\n numberOfTableColumn *= 3;\n }\n calculatedWidth = 100 / (numberOfTableColumn + 1);\n\n const columnHeaders = ['date'];\n if (graphData[fieldName].showPreviousDataPoint) {\n for (const option of selectedMetrics) {\n columnHeaders.push(`${option}Current`);\n columnHeaders.push(`${option}Previous`);\n columnHeaders.push(`${option}Comparison`);\n }\n } else {\n for (const option of selectedMetrics) {\n columnHeaders.push(`${option}Current`);\n }\n }\n\n for (let i = 0; i < selectedMetrics.length; i += 1) {\n if (!i) {\n headerContent.push(\n \n date\n ,\n );\n TotalHeaderContent.push(\n \n Total\n ,\n );\n }\n headerContent.push(\n \n {`${customReportGraphTooltipNames[selectedMetrics[i]]} Current`}\n ,\n );\n TotalHeaderContent.push(\n \n {formatNumber(\n tableTotalData[`${selectedMetrics[i]}Current`],\n currencyAxis.includes(selectedMetrics[i])\n ? commanFieldsDetails?.marketplaceCurrency\n : '',\n percentageAxis.includes(selectedMetrics[i]) ? '%' : '',\n false,\n false,\n 2,\n )}\n ,\n );\n\n if (graphData[fieldName].showPreviousDataPoint) {\n headerContent.push(\n <>\n \n {`${customReportGraphTooltipNames[selectedMetrics[i]]} Previous`}\n \n \n {`${\n customReportGraphTooltipNames[selectedMetrics[i]]\n } Comparison`}\n \n ,\n );\n\n TotalHeaderContent.push(\n <>\n \n {formatNumber(\n tableTotalData[`${selectedMetrics[i]}Previous`],\n currencyAxis.includes(selectedMetrics[i])\n ? commanFieldsDetails?.marketplaceCurrency\n : '',\n percentageAxis.includes(selectedMetrics[i]) ? '%' : '',\n false,\n false,\n 2,\n )}\n \n \n {renderMetricsValueWithChange(\n tableTotalData,\n null,\n tableTotalData[`${selectedMetrics[i]}ChangeInValue`],\n tableTotalData[`${selectedMetrics[i]}ChangeInPercent`],\n `${selectedMetrics[i]}ChangeInValue`,\n formatNumber,\n true,\n currencyAxis.includes(selectedMetrics[i])\n ? commanFieldsDetails?.marketplaceCurrency\n : '',\n percentageAxis.includes(selectedMetrics[i]) ? '%' : '',\n false,\n true,\n )}\n \n ,\n );\n }\n }\n const dateFrequency =\n graphDetails?.[indexNumber]?.[fieldName]?.graphFrequency;\n // bind the \n if (tableData && tableData?.length) {\n tableData.forEach((element) => {\n const tableDataContainer = [];\n for (let i = 0; i < selectedMetrics.length; i += 1) {\n if (element?.date) {\n if (!i) {\n tableDataContainer.push(\n dateFrequency === 'weekly' ? (\n \n {element?.dateRange?.startDate} -{' '}\n {element?.dateRange?.endDate}\n \n ) : (\n {element.date}\n ),\n );\n }\n\n tableDataContainer.push(\n \n {formatNumber(\n element[`${selectedMetrics[i]}CurrentLabel`],\n currencyAxis.includes(selectedMetrics[i])\n ? commanFieldsDetails?.marketplaceCurrency\n : '',\n percentageAxis.includes(selectedMetrics[i]) ? '%' : '',\n false,\n false,\n 2,\n )}\n ,\n );\n if (graphData[fieldName].showPreviousDataPoint) {\n tableDataContainer.push(\n <>\n \n {formatNumber(\n element[`${selectedMetrics[i]}Previous`],\n currencyAxis.includes(selectedMetrics[i])\n ? commanFieldsDetails?.marketplaceCurrency\n : '',\n percentageAxis.includes(selectedMetrics[i]) ? '%' : '',\n false,\n false,\n 2,\n )}\n \n \n {renderMetricsValueWithChange(\n element,\n null,\n element[`${selectedMetrics[i]}ChangeInValue`],\n element[`${selectedMetrics[i]}ChangeInPercent`],\n `${selectedMetrics[i]}ChangeInValue`,\n formatNumber,\n true,\n currencyAxis.includes(selectedMetrics[i])\n ? commanFieldsDetails?.marketplaceCurrency\n : '',\n percentageAxis.includes(selectedMetrics[i]) ? '%' : '',\n false,\n true,\n )}\n \n ,\n );\n }\n }\n }\n tableRowContainer.push(tableDataContainer);\n });\n }\n\n return (\n <>\n

    Metrics Table

    \n
    \n \n \n {headerContent}\n \n {graphData[fieldName]?.graphDataTableView === 'detailedView' ? (\n \n {tableRowContainer?.length !== 0 &&\n tableRowContainer?.map((option) => {\n return option?.length ? (\n {option}\n ) : null;\n })}\n \n ) : null}\n \n \n \n {TotalHeaderContent}\n \n \n {tableRowContainer?.length === 0 ? (\n Metrics Data Not Found\n ) : null}\n
    \n \n );\n };\n\n // render parent child asins table html\n const renderParentChildAsinsTable = (\n indexNumber,\n fieldName,\n showTableFor,\n tableHeading,\n formatNumber,\n graphData = null,\n ) => {\n const headerContent = [];\n let tableData = [];\n if (graphApiResponseData && graphApiResponseData.length) {\n tableData =\n graphApiResponseData[indexNumber]?.sellerDetails[showTableFor];\n }\n\n const showParentASINsTable = [\n 'topParentAsins',\n 'bottomParentAsins',\n 'allParentAsins',\n ].includes(showTableFor);\n const showChildASINsTable = [\n 'topChildAsins',\n 'bottomChildAsins',\n 'allChildAsins',\n ].includes(showTableFor);\n\n if (showParentASINsTable) {\n headerContent.push(\n parentAsinTableFields?.map((option) => {\n return (\n \n {option.name}\n \n );\n }),\n );\n }\n\n if (showChildASINsTable) {\n headerContent.push(\n childAsinTableFields?.map((option) => {\n return (\n \n {option.name}\n \n );\n }),\n );\n }\n\n return (\n
    \n

    {tableHeading}

    \n\n \n \n {headerContent}\n \n \n {tableData && tableData?.length !== 0\n ? tableData?.map((item) => {\n return (\n \n \n \n {item?.asin}\n \n \n {renderMetricsValueWithChange(\n item,\n item?.current_revenue,\n item?.revenue_change,\n item?.revenue_percent_change,\n 'revenue_change',\n formatNumber,\n true,\n commanFieldsDetails?.marketplaceCurrency,\n '',\n )}\n \n \n {renderMetricsValueWithChange(\n item,\n item?.current_traffic,\n item?.traffic_change,\n item?.traffic_percent_change,\n 'traffic_change',\n formatNumber,\n true,\n '',\n '',\n )}\n \n \n {renderMetricsValueWithChange(\n item,\n item?.current_units_sold,\n item?.units_sold_change,\n item?.units_sold_percent_change,\n 'units_sold_change',\n formatNumber,\n false,\n '',\n '',\n )}\n \n \n {renderMetricsValueWithChange(\n item,\n item.current_conversion,\n item?.conversion_change,\n item?.conversion_percent_change,\n 'conversion_change',\n formatNumber,\n true,\n '',\n '%',\n )}\n \n \n {renderMetricsValueWithChange(\n item,\n item?.current_buy_box_percentage,\n item?.buy_box_change,\n item?.buy_box_percentage_change,\n 'buy_box_change',\n formatNumber,\n true,\n '',\n '%',\n )}\n \n \n\n {showChildASINsTable &&\n graphData?.sellerDetails?.showChildProductName ? (\n \n \n \n {item?.product_name}\n \n \n \n ) : null}\n \n );\n })\n : null}\n \n \n\n {tableData?.length === 0 ? (\n {tableHeading} Data Not Found\n ) : null}\n
    \n );\n };\n\n const renderBBPgraph = (indexNumber) => {\n return (\n
    \n

    Buy Box %

    \n \n
      \n
    • \n
      \n \n Daily %\n
      \n
    • \n
    • \n
      \n \n Average\n
      \n
    • \n
    \n
    \n \n
    \n );\n };\n\n const renderBBEPTable = (\n graphData,\n indexNumber,\n fieldName,\n showTableFor,\n formatNumber,\n ) => {\n const headerContent = [];\n let tableData = '';\n\n headerContent.push(Date);\n headerContent.push(Value);\n tableData = graphApiResponseData[indexNumber]?.sellerDetails?.bbepData;\n const averageValue = tableData?.[0]?.avg;\n\n return (\n
    \n

    Buy Box % Table

    \n \n \n {headerContent}\n \n {graphData[fieldName]?.bbpTableView === 'detailedView' ? (\n \n {tableData?.map((option) => {\n return (\n \n \n
    {option?.date}
    \n \n \n
    \n {formatNumber(option?.value, '', '%', false, false, 2)}\n
    \n \n \n );\n })}\n \n ) : null}\n \n \n \n \n \n Average\n \n \n
    \n {formatNumber(averageValue, '', '%', false, false, 2)}\n
    \n \n \n \n \n {tableData?.length === 0 ? (\n Buy Box % Data Not Found\n ) : null}\n
    \n );\n };\n\n const renderPositiveFeedbackPanel = (indexNumber) => {\n const localData =\n graphApiResponseData[indexNumber]?.sellerDetails?.pfoiData;\n return (\n \n \n
    Positive Feedback
    \n
    \n {dataScrappedMsg}\n
    \n
    \n {localData && localData?.feedback_30\n ? localData?.feedback_30 === 'nan'\n ? 'N/A'\n : `${localData?.feedback_30}%`\n : 'N/A'}\n
    \n
    Last 30 days
    \n
    \n {localData && localData?.feedback_365\n ? localData?.feedback_365 === 'nan'\n ? 'N/A'\n : `${localData?.feedback_365}%`\n : 'N/A'}\n
    \n
    Last 12 months
    \n
    \n Last updated: {localData?.latest_date}\n
    \n
    \n \n );\n };\n\n const renderOrderIssuesPanel = (indexNumber) => {\n const localData =\n graphApiResponseData[indexNumber]?.sellerDetails?.pfoiData;\n return (\n \n \n {' '}\n
    Order Issues
    \n
    \n {dataScrappedMsg}\n
    \n
    \n {localData && localData?.order_defect_fba\n ? localData?.order_defect_fba === 'nan'\n ? 'N/A'\n : localData?.order_defect_fba\n : 'N/A'}\n
    \n
    Order Defect Rate
    \n
    \n {localData && localData?.policy_issues\n ? localData?.policy_issues === 'nan'\n ? 'N/A'\n : localData?.policy_issues\n : 'N/A'}\n
    \n
    Policy Violations
    \n
    \n Last updated: {localData?.latest_date}\n
    \n
    \n \n );\n };\n\n const renderInventoryScorePanel = (indexNumber) => {\n return (\n \n \n
    Inventory Score (IPI)
    \n
    \n {dataScrappedMsg}\n
    \n \n
    \n {graphApiResponseData[indexNumber]?.sellerDetails\n ?.inventoryScoreData &&\n !Number.isNaN(\n graphApiResponseData[indexNumber]?.sellerDetails\n ?.inventoryScoreData[0]?.value,\n )\n ? graphApiResponseData[indexNumber]?.sellerDetails\n ?.inventoryScoreData[0]?.value\n : 'N/A'}\n\n
    Out of 1000
    \n
    \n
    \n Last updated:{' '}\n {\n graphApiResponseData[indexNumber]?.sellerDetails?.pfoiData\n ?.latest_date\n }\n
    \n
    \n \n );\n };\n\n // render stranded inventory table\n const renderStrandedInventoryTable = (\n indexNumber,\n fieldName,\n showTableFor,\n tableHeading,\n numberFormat,\n graphData,\n ) => {\n const headerContent = [];\n let tableData = [];\n if (graphApiResponseData && graphApiResponseData.length) {\n tableData = graphApiResponseData[indexNumber][fieldName][showTableFor];\n }\n\n headerContent.push(\n strandedInventoryTableFields?.map((option) => {\n return (\n \n {option.name}\n \n );\n }),\n );\n\n return (\n
    \n

    {tableHeading}

    \n\n \n \n {headerContent}\n \n \n {tableData && tableData.length !== 0\n ? tableData.map((itemData) => {\n return (\n \n \n \n {itemData?.sku}\n \n \n {itemData?.asin}\n \n \n
    \n {numberFormat(itemData?.available, '', '')}\n
    \n \n \n {commanFieldsDetails.selectedTimeFrame.value ===\n 'custom' || itemData?.percent_change === null ? (\n 'N/A'\n ) : itemData?.percent_change === 0 ? (\n
    \n {numberFormat(itemData?.percent_change, '', '%')}\n
    \n ) : itemData?.percent_change > 0 ? (\n
    \n \n {numberFormat(itemData?.percent_change, '', '%')}\n
    \n ) : (\n
    \n \n {numberFormat(\n Math.abs(itemData?.percent_change),\n '',\n '%',\n )}\n
    \n )}\n \n \n
    \n {' '}\n {itemData?.stranded_event_date !== null\n ? dayjs(itemData?.stranded_event_date).format(\n 'MM/DD/YY',\n )\n : 'N/A'}\n
    \n \n \n
    \n {itemData?.stranded_reason || 'N/A'}\n
    \n \n \n {graphData[fieldName]?.showInventoryProductName ? (\n \n \n \n {itemData?.product_name}\n \n \n \n ) : null}\n
    \n );\n })\n : null}\n \n \n {tableData?.length === 0 ? (\n {tableHeading} Data Not Found\n ) : null}\n
    \n );\n };\n\n const renderUnderstockOverstockTable = (\n indexNumber,\n fieldName,\n showTableFor,\n tableHeading,\n numberFormat,\n graphData,\n ) => {\n const headerContent = [];\n let tableData = [];\n if (graphApiResponseData && graphApiResponseData.length) {\n tableData = graphApiResponseData[indexNumber][fieldName][showTableFor];\n }\n\n if (showTableFor === 'overstockInventory') {\n headerContent.push(\n overstockInventoryTableFields?.map((option) => {\n return (\n \n {option.name}\n \n );\n }),\n );\n }\n\n if (showTableFor === 'understockInventory') {\n headerContent.push(\n understockInventoryTableFields?.map((option) => {\n return (\n \n {option.name}\n \n );\n }),\n );\n }\n\n return (\n
    \n

    {tableHeading}

    \n\n \n \n {headerContent}\n \n \n {tableData && tableData?.length !== 0\n ? tableData.map((itemData) => {\n return (\n \n \n \n
    \n {itemData?.merchant_sku || 'N/A'}\n
    \n \n \n {itemData?.asin || 'N/A'}\n \n \n
    \n {numberFormat(\n itemData?.sales_last_30_days,\n commanFieldsDetails?.marketplaceCurrency,\n ) || 'N/A'}\n
    \n \n \n
    \n {itemData?.units_sold_last_30_days || 'N/A'}\n
    \n \n \n
    \n {itemData?.total_days_of_supply || 'N/A'}\n
    \n \n\n {showTableFor === 'understockInventory' ? (\n <>\n \n
    \n {itemData?.recommended_replenishment_quantity ||\n 'N/A'}\n
    \n \n \n
    \n {itemData?.recommended_ship_date !== null\n ? dayjs(\n itemData?.recommended_ship_date,\n ).format('MM/DD/YYYY')\n : 'N/A'}\n
    \n \n \n ) : null}\n \n {graphData[fieldName]?.showInventoryProductName ? (\n \n \n \n {itemData?.product_name}\n \n \n \n ) : null}\n
    \n );\n })\n : null}\n \n \n {tableData?.length === 0 ? (\n {tableHeading} Data Not Found\n ) : null}\n
    \n );\n };\n\n // render seller panel\n const renderSellerPanel = (graphData, graphIndex) => {\n return (\n \n
    \n
    \n
    \n {commanFieldsDetails.accountType.isHybrid ? (\n \n SELLER\n \n ) : null}\n {/* graph title editor */}\n {renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'graphTitle',\n ' Add Title Here',\n true,\n )}\n\n {/* metrics graph */}\n \n {graphData.sellerDetails.showMetricsGraph\n ? renderSalesAdDspGraph(\n graphData,\n graphIndex,\n graphApiResponseData[graphIndex]?.sellerDetails\n ?.sellerData,\n 'sellerDetails',\n )\n : null}\n
    \n
    \n {/* metrics table */}\n {graphData.sellerDetails.showDataTable &&\n Object.keys(graphData.sellerDetails.selectedMetrics).length\n ? renderMetricsTable(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'sellerData',\n 'sellerTotalData',\n useFormatNumber,\n )\n : null}\n
    \n {Object.keys(graphData.sellerDetails.selectedMetrics).length ||\n graphData.sellerDetails.showDataTable ? (\n
    \n {/* metric message editor */}\n {renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'metricMessage',\n ' Add Insight Summary Here',\n )}\n
    \n ) : null}\n {/* ******************************************* */}\n {/* Parent Top Asins */}\n
    \n {graphData.sellerDetails.isParentTopAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'topParentAsins',\n 'Top Parent ASINs',\n useFormatNumber,\n )\n : null}\n
    \n
    \n {/* Parent bottom Asins */}\n {graphData.sellerDetails.isParentBottomAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'bottomParentAsins',\n 'Bottom Parent ASINs',\n useFormatNumber,\n )\n : null}\n
    \n
    \n {/* Parent all Asins */}\n {graphData.sellerDetails.isParentAllAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'allParentAsins',\n 'All Parent ASINs',\n useFormatNumber,\n )\n : null}\n
    \n {[\n graphData.sellerDetails.isParentTopAsins,\n graphData.sellerDetails.isParentBottomAsins,\n graphData.sellerDetails.isParentAllAsins,\n ].filter(Boolean).length >= 1 ? (\n
    \n {/* parent asin message editor */}\n {renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'parentAsinMessage',\n ' Add Insight Summary Here',\n )}\n
    \n ) : null}\n {/* child top asins */}\n
    \n {graphData.sellerDetails.isChildTopAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'topChildAsins',\n 'Top Child ASINs',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n
    \n {/* child bottom asins */}\n {graphData.sellerDetails.isChildBottomAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'bottomChildAsins',\n 'Bottom Child ASINs',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n
    \n {/* child all asins */}\n {graphData.sellerDetails.isChildAllAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'allChildAsins',\n 'All Child ASINs',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n {[\n graphData?.sellerDetails?.isChildTopAsins,\n graphData?.sellerDetails?.isChildBottomAsins,\n graphData?.sellerDetails?.isChildAllAsins,\n ].filter(Boolean).length >= 1 ? (\n
    \n {/* child asin message editor */}\n {renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'childAsinMessage',\n ' Add Insight Summary Here',\n )}\n
    \n ) : null}\n\n {[\n graphData.sellerDetails.buyBoxGraph,\n graphData.sellerDetails.showBuyBoxGraphTable,\n graphData.sellerDetails.inventoryScore,\n graphData.sellerDetails.positiveFeedback,\n graphData.sellerDetails.orderIssue,\n ].filter(Boolean).length >= 1 ? (\n \n Seller Health\n \n ) : null}\n\n {/* need to show bbep graph and any one panel in one row, if one one panel is selected. \n If multiple panel selected then graph will be seperated */}\n\n
    \n {[\n graphData.sellerDetails.inventoryScore,\n graphData.sellerDetails.positiveFeedback,\n graphData.sellerDetails.orderIssue,\n ].filter(Boolean).length === 1 ? (\n \n {graphData.sellerDetails.inventoryScore\n ? renderInventoryScorePanel(graphIndex)\n : null}\n {graphData.sellerDetails.positiveFeedback\n ? renderPositiveFeedbackPanel(graphIndex)\n : null}\n {graphData.sellerDetails.orderIssue\n ? renderOrderIssuesPanel(graphIndex)\n : null}\n\n
    \n {graphData.sellerDetails.buyBoxGraph\n ? renderBBPgraph(graphIndex)\n : null}\n
    \n
    \n ) : (\n <>\n {graphData.sellerDetails.buyBoxGraph ? (\n \n {renderBBPgraph(graphIndex)}\n
    \n ) : null}\n \n )}\n
    \n\n
    \n {graphData?.sellerDetails?.showBuyBoxGraphTable\n ? renderBBEPTable(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'bbep',\n useFormatNumber,\n )\n : null}\n
    \n\n
    \n {[\n graphData.sellerDetails.inventoryScore,\n graphData.sellerDetails.positiveFeedback,\n graphData.sellerDetails.orderIssue,\n ].filter(Boolean).length !== 1 ? (\n \n {graphData?.sellerDetails?.inventoryScore\n ? renderInventoryScorePanel(graphIndex)\n : null}\n {graphData?.sellerDetails?.positiveFeedback\n ? renderPositiveFeedbackPanel(graphIndex)\n : null}\n {graphData?.sellerDetails?.orderIssue\n ? renderOrderIssuesPanel(graphIndex)\n : null}\n
    \n ) : null}\n \n\n {/* if any once fileds selected from seller helth, \n then and then only show the insight message editor */}\n {[\n graphData?.sellerDetails?.buyBoxGraph,\n graphData?.sellerDetails?.showBuyBoxGraphTable,\n graphData?.sellerDetails?.inventoryScore,\n graphData?.sellerDetails?.positiveFeedback,\n graphData?.sellerDetails?.orderIssue,\n ].filter(Boolean).length >= 1 ? (\n
    \n {/* sellerHeathMessge message editor */}\n {renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'sellerHeathMessge',\n ' Add Insight Summary Here',\n )}\n
    \n ) : null}\n\n {/* ********** inventory ********** */}\n {[\n graphData?.sellerDetails?.strandedInventory,\n graphData?.sellerDetails?.overstockInventory,\n graphData?.sellerDetails?.understockInventory,\n ].filter(Boolean).length >= 1 ? (\n
    \n

    \n Inventory Management\n

    \n
    \n {commanFieldsDetails?.inventoryDatesMessage}\n
    \n
    \n ) : null}\n {/* stranded inventory */}\n
    \n {graphData?.sellerDetails?.strandedInventory\n ? renderStrandedInventoryTable(\n graphIndex,\n 'sellerDetails',\n 'strandedInventory',\n 'Stranded Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n
    \n {/* overstock inventory */}\n {graphData?.sellerDetails?.overstockInventory\n ? renderUnderstockOverstockTable(\n graphIndex,\n 'sellerDetails',\n 'overstockInventory',\n 'Overstock Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n
    \n {/* understock inventory */}\n {graphData?.sellerDetails?.understockInventory\n ? renderUnderstockOverstockTable(\n graphIndex,\n 'sellerDetails',\n 'understockInventory',\n 'Understock Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n {/* inventory message editor */}\n {[\n graphData?.sellerDetails?.strandedInventory,\n graphData?.sellerDetails?.overstockInventory,\n graphData?.sellerDetails?.understockInventory,\n ].filter(Boolean).length >= 1 ? (\n
    \n {renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'inventoryManagementMessage',\n ' Add Insight Summary Here',\n )}\n
    \n ) : null}\n \n \n \n
    \n );\n };\n\n // render vendor panel data\n const renderVendorPanel = (graphData, graphIndex) => {\n return (\n \n
    \n
    \n
    \n {commanFieldsDetails.accountType.isHybrid ? (\n <>\n \n VENDOR\n \n \n ) : null}\n {/* graph title editor */}\n {renderEditComponent(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'graphTitle',\n ' Add Title Here',\n true,\n )}\n {/* metrics graph */}\n
    \n {graphData.vendorDetails.showMetricsGraph\n ? renderSalesAdDspGraph(\n graphData,\n graphIndex,\n graphApiResponseData[graphIndex]?.vendorDetails\n ?.vendorData,\n 'vendorDetails',\n )\n : null}\n
    \n
    \n {/* metrics table */}\n {graphData.vendorDetails.showDataTable &&\n Object.keys(graphData.vendorDetails.selectedMetrics).length\n ? renderMetricsTable(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'vendorData',\n 'vendorTotalData',\n useFormatNumber,\n )\n : null}\n
    \n {Object.keys(graphData.vendorDetails.selectedMetrics).length ||\n graphData.vendorDetails.showDataTable ? (\n
    \n {/* metric message editor */}\n {renderEditComponent(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'metricMessage',\n ' Add Insight Summary Here',\n )}\n
    \n ) : null}\n {[\n graphData.vendorDetails.strandedInventory,\n graphData.vendorDetails.overstockInventory,\n graphData.vendorDetails.understockInventory,\n ].filter(Boolean).length >= 1 ? (\n <>\n
    \n

    \n Inventory Management\n

    \n
    \n {commanFieldsDetails.inventoryDatesMessage}\n
    \n
    \n \n ) : null}\n
    \n {/* stranded inventory */}\n {graphData.vendorDetails.strandedInventory\n ? renderStrandedInventoryTable(\n graphIndex,\n 'vendorDetails',\n 'strandedInventory',\n 'Stranded Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n
    \n {/* overstock inventory */}\n {graphData.vendorDetails.overstockInventory\n ? renderUnderstockOverstockTable(\n graphIndex,\n 'vendorDetails',\n 'overstockInventory',\n 'Overstock Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n {/* understock inventory */}\n
    \n {graphData.vendorDetails.understockInventory\n ? renderUnderstockOverstockTable(\n graphIndex,\n 'vendorDetails',\n 'understockInventory',\n 'Understock Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n {/* inventory message editor */}\n {[\n graphData?.vendorDetails?.strandedInventory,\n graphData?.vendorDetails?.overstockInventory,\n graphData?.vendorDetails?.understockInventory,\n ].filter(Boolean).length >= 1 ? (\n
    \n {renderEditComponent(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'inventoryManagementMessage',\n ' Add Insight Summary Here',\n )}\n
    \n ) : null}\n
    \n
    \n
    \n
    \n );\n };\n\n // render graph detail html\n const renderGraphDetailHTML = () => {\n return graphDetails?.map((graphData, graphIndex) => {\n return (\n
    \n {/* for seller account type */}\n {commanFieldsDetails?.accountType?.isSeller ||\n commanFieldsDetails?.accountType?.isHybrid\n ? renderSellerPanel(graphData, graphIndex)\n : null}\n\n {/* for vendor account type */}\n {commanFieldsDetails?.accountType?.isVendor ||\n commanFieldsDetails?.accountType?.isHybrid\n ? renderVendorPanel(graphData, graphIndex)\n : null}\n
    \n );\n });\n };\n\n // checking is user selected seller field or not\n const isSellerMFieldSelected = (sellerDetails) => {\n const showMetricsGraph = Object.keys(sellerDetails.selectedMetrics).length;\n\n const showChildAsins =\n sellerDetails.isChildTopAsins ||\n sellerDetails.isChildBottomAsins ||\n sellerDetails.isChildAllAsins;\n\n const showParentAsins =\n sellerDetails.isParentTopAsins ||\n sellerDetails.isParentBottomAsins ||\n sellerDetails.isParentAllAsins;\n\n const showSellerHealth =\n sellerDetails.buyBoxGraph ||\n sellerDetails.showBuyBoxGraphTable ||\n sellerDetails.inventoryScore ||\n sellerDetails.positiveFeedback ||\n sellerDetails.orderIssue;\n\n const showInventory =\n sellerDetails.strandedInventory ||\n sellerDetails.overstockInventory ||\n sellerDetails.understockInventory;\n\n const showSellerData =\n showMetricsGraph ||\n showChildAsins ||\n showParentAsins ||\n showSellerHealth ||\n showInventory;\n return showSellerData;\n };\n\n // render pdf seller panel data\n const renderPDFSellerPanelData = (graphData, graphIndex) => {\n const { isHybrid } = commanFieldsDetails?.accountType;\n\n const showMetricsGraph = Object.keys(\n graphData?.sellerDetails?.selectedMetrics,\n ).length;\n\n const showChildAsins =\n graphData?.sellerDetails?.isChildTopAsins ||\n graphData?.sellerDetails?.isChildBottomAsins ||\n graphData?.sellerDetails?.isChildAllAsins;\n\n const showParentAsins =\n graphData?.sellerDetails?.isParentTopAsins ||\n graphData?.sellerDetails?.isParentBottomAsins ||\n graphData?.sellerDetails?.isParentAllAsins;\n\n const showSellerHealth =\n graphData?.sellerDetails?.buyBoxGraph ||\n graphData?.sellerDetails?.showBuyBoxGraphTable ||\n graphData?.sellerDetails?.inventoryScore ||\n graphData?.sellerDetails?.positiveFeedback ||\n graphData?.sellerDetails?.orderIssue;\n\n const showInventory =\n graphData?.sellerDetails?.strandedInventory ||\n graphData?.sellerDetails?.overstockInventory ||\n graphData?.sellerDetails?.understockInventory;\n\n const showSellerData = isSellerMFieldSelected(graphData?.sellerDetails);\n\n let applyPageBreak = false;\n\n if (graphIndex === 0) {\n applyPageBreak = false;\n } else {\n applyPageBreak = true;\n }\n\n return showSellerData ? (\n <>\n {/* ********** Adding report pdf page break ********** */}\n {applyPageBreak ? (\n
    \n ) : null}\n {/* ********** seller heading ********** */}\n {isHybrid ? (\n \n SELLER\n \n ) : null}\n {/* ********** graph title editor ********** */}\n {graphData?.sellerDetails?.graphTitle?.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'graphTitle',\n ' Add Title Here',\n true,\n )\n : null}\n {/* ********** seller performance metrics graph ********** */}\n {showMetricsGraph && graphData?.sellerDetails?.showMetricsGraph\n ? renderSalesAdDspGraph(\n graphData,\n graphIndex,\n graphApiResponseData[graphIndex]?.sellerDetails?.sellerData,\n 'sellerDetails',\n )\n : null}\n {/* ********** seller performance metrics table data ********** */}\n {graphData?.sellerDetails?.showDataTable && showMetricsGraph ? (\n <>\n {graphData?.sellerDetails?.showMetricsGraph &&\n graphData?.sellerDetails?.graphDataTableView === 'detailedView' ? (\n
    \n ) : null}\n {renderMetricsTable(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'sellerData',\n 'sellerTotalData',\n useFormatNumber,\n )}\n \n ) : null}\n {/* ********** metrics message editor ********** */}\n {(showMetricsGraph || graphData?.sellerDetails?.showDataTable) &&\n graphData?.sellerDetails?.metricMessage.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'metricMessage',\n ' Add Insight Summary Here',\n )\n : null}\n {/* ********** Parent Top Asins ********** */}\n {graphData?.sellerDetails?.isParentTopAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'topParentAsins',\n 'Top Parent ASINs',\n useFormatNumber,\n )\n : null}\n {/* ********** Parent bottom Asins ********** */}\n {graphData?.sellerDetails?.isParentBottomAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'bottomParentAsins',\n 'Bottom Parent ASINs',\n useFormatNumber,\n )\n : null}\n {/* ********** Parent all Asins ********** */}\n {graphData?.sellerDetails?.isParentAllAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'allParentAsins',\n 'All Parent ASINs',\n useFormatNumber,\n )\n : null}\n {/* ********** parent asin message editor ********** */}\n {showParentAsins &&\n graphData?.sellerDetails?.parentAsinMessage.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'parentAsinMessage',\n ' Add Insight Summary Here',\n )\n : null}\n {/* ********** child top asins ********** */}\n {graphData?.sellerDetails?.isChildTopAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'topChildAsins',\n 'Top Child ASINs',\n useFormatNumber,\n graphData,\n )\n : null}\n {/* ********** child bottom asins ********** */}\n {graphData?.sellerDetails?.isChildBottomAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'bottomChildAsins',\n 'Bottom Child ASINs',\n useFormatNumber,\n graphData,\n )\n : null}\n {graphData?.sellerDetails?.isParentAllAsins &&\n graphData?.sellerDetails?.isChildAllAsins &&\n graphData?.sellerDetails?.showChildProductName ? (\n
    \n ) : null}\n {/* ********** child all asins ********** */}\n {graphData.sellerDetails.isChildAllAsins\n ? renderParentChildAsinsTable(\n graphIndex,\n 'sellerDetails',\n 'allChildAsins',\n 'All Child ASINs',\n useFormatNumber,\n graphData,\n )\n : null}\n {/* ********** child asin message editor ********** */}\n {showChildAsins && graphData?.sellerDetails?.childAsinMessage.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'childAsinMessage',\n ' Add Insight Summary Here',\n )\n : null}\n {/* ********** seller health data ********** */}\n
    \n {[graphData?.sellerDetails?.buyBoxGraph].filter(Boolean).length > 0 ||\n [graphData?.sellerDetails?.showBuyBoxGraphTable].filter(Boolean)\n .length > 0 ? (\n

    \n Seller Health\n

    \n ) : null}\n {[\n graphData?.sellerDetails?.inventoryScore,\n graphData?.sellerDetails?.positiveFeedback,\n graphData?.sellerDetails?.orderIssue,\n ].filter(Boolean).length === 1 ? (\n
    \n {graphData?.sellerDetails?.inventoryScore\n ? renderInventoryScorePanel(graphIndex)\n : null}\n {graphData?.sellerDetails?.positiveFeedback\n ? renderPositiveFeedbackPanel(graphIndex)\n : null}\n {graphData?.sellerDetails?.orderIssue\n ? renderOrderIssuesPanel(graphIndex)\n : null}\n\n
    \n {graphData?.sellerDetails?.buyBoxGraph\n ? renderBBPgraph(graphIndex)\n : null}\n
    \n
    \n ) : (\n <>\n {graphData?.sellerDetails?.buyBoxGraph ? (\n
    \n {renderBBPgraph(graphIndex)}\n
    \n ) : null}\n \n )}\n
    \n
    \n {graphData?.sellerDetails?.showBuyBoxGraphTable\n ? renderBBEPTable(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'bbep',\n useFormatNumber,\n )\n : null}\n
    \n
    \n {[\n graphData?.sellerDetails?.buyBoxGraph,\n graphData?.sellerDetails?.showBuyBoxGraphTable,\n ].filter(Boolean).length === 0 &&\n [\n graphData?.sellerDetails?.inventoryScore,\n graphData?.sellerDetails?.positiveFeedback,\n graphData?.sellerDetails?.orderIssue,\n ].filter(Boolean).length > 1 ? (\n

    \n Seller Health\n

    \n ) : null}\n\n {[\n graphData?.sellerDetails?.inventoryScore,\n graphData?.sellerDetails?.positiveFeedback,\n graphData?.sellerDetails?.orderIssue,\n ].filter(Boolean).length !== 1 ? (\n
    \n {graphData?.sellerDetails?.inventoryScore\n ? renderInventoryScorePanel(graphIndex)\n : null}\n {graphData?.sellerDetails?.positiveFeedback\n ? renderPositiveFeedbackPanel(graphIndex)\n : null}\n {graphData?.sellerDetails?.orderIssue\n ? renderOrderIssuesPanel(graphIndex)\n : null}\n
    \n ) : null}\n
    \n {/* ********** seller health message editor ********** */}\n {showSellerHealth &&\n graphData?.sellerDetails?.sellerHeathMessge.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'sellerHeathMessge',\n ' Add Insight Summary Here',\n )\n : null}\n {/* ********** seller inventory ********** */}\n
    \n {[\n graphData?.sellerDetails?.strandedInventory,\n graphData?.sellerDetails?.overstockInventory,\n graphData?.sellerDetails?.understockInventory,\n ].filter(Boolean).length >= 1 ? (\n

    Inventory Management

    \n ) : null}\n\n {/* ********** stranded inventory ********** */}\n {graphData?.sellerDetails?.strandedInventory\n ? renderStrandedInventoryTable(\n graphIndex,\n 'sellerDetails',\n 'strandedInventory',\n 'Stranded Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n\n {/* ********** overstock inventory ********** */}\n {graphData?.sellerDetails?.overstockInventory\n ? renderUnderstockOverstockTable(\n graphIndex,\n 'sellerDetails',\n 'overstockInventory',\n 'Overstock Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n\n {/* ********** understock inventory ********** */}\n {graphData?.sellerDetails?.understockInventory\n ? renderUnderstockOverstockTable(\n graphIndex,\n 'sellerDetails',\n 'understockInventory',\n 'Understock Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n {/* ********** inventory message editor ********** */}\n {showInventory &&\n graphData?.sellerDetails?.inventoryManagementMessage.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'inventoryManagementMessage',\n ' Add Insight Summary Here',\n )\n : null}\n \n ) : null;\n };\n\n // render pdf vendor panel data\n const renderPDFVendorPanelData = (graphData, graphIndex) => {\n const { isHybrid } = commanFieldsDetails?.accountType;\n\n let applyPageBreak = false;\n if (accountType === 'Vendor') {\n if (graphIndex === 0) {\n applyPageBreak = false;\n } else {\n applyPageBreak = true;\n }\n }\n\n if (accountType === 'Hybrid') {\n if (graphIndex === 0) {\n const showSellerData = isSellerMFieldSelected(graphData?.sellerDetails);\n if (showSellerData) {\n applyPageBreak = true;\n } else {\n applyPageBreak = false;\n }\n } else {\n applyPageBreak = true;\n }\n }\n\n const showMetricsGraph = Object.keys(\n graphData?.vendorDetails?.selectedMetrics,\n ).length;\n\n const showInventory =\n graphData?.vendorDetails?.strandedInventory ||\n graphData?.vendorDetails?.overstockInventory ||\n graphData?.vendorDetails?.understockInventory;\n\n const showVendorData = showMetricsGraph || showInventory;\n\n return showVendorData ? (\n <>\n {/* ********** Adding report pdf page break ********** */}\n {applyPageBreak ? (\n
    \n ) : null}\n\n {/* ********** vendor heading ********** */}\n {isHybrid ? (\n <>\n \n VENDOR\n \n \n ) : null}\n\n {/* ********** graph title editor ********** */}\n {graphData?.vendorDetails?.graphTitle?.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'graphTitle',\n ' Add Title Here',\n true,\n )\n : null}\n\n {/* ********** vendor performance metrics graph ********** */}\n {showMetricsGraph && graphData?.vendorDetails?.showMetricsGraph\n ? renderSalesAdDspGraph(\n graphData,\n graphIndex,\n graphApiResponseData[graphIndex]?.vendorDetails?.vendorData,\n 'vendorDetails',\n )\n : null}\n\n {/* ********** vendor performance metrics table data ********** */}\n {graphData?.vendorDetails?.showDataTable && showMetricsGraph ? (\n <>\n {graphData?.vendorDetails?.showMetricsGraph &&\n graphData?.vendorDetails?.graphDataTableView === 'detailedView' ? (\n
    \n ) : null}\n {renderMetricsTable(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'vendorData',\n 'vendorTotalData',\n useFormatNumber,\n )}\n \n ) : null}\n\n {/* ********** metrics message editor ********** */}\n {(showMetricsGraph || graphData?.vendorDetails?.showDataTable) &&\n graphData?.vendorDetails?.metricMessage?.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'metricMessage',\n ' Add Insight Summary Here',\n )\n : null}\n\n {/* ********** vendor inventory ********** */}\n
    \n {[\n graphData?.vendorDetails?.strandedInventory,\n graphData?.vendorDetails?.overstockInventory,\n graphData?.vendorDetails?.understockInventory,\n ].filter(Boolean).length >= 1 ? (\n

    Inventory Management

    \n ) : null}\n\n {/* ********** stranded inventory ********** */}\n {graphData?.vendorDetails?.strandedInventory\n ? renderStrandedInventoryTable(\n graphIndex,\n 'vendorDetails',\n 'strandedInventory',\n 'Stranded Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n\n {/* ********** overstock inventory ********** */}\n {graphData?.vendorDetails?.overstockInventory\n ? renderUnderstockOverstockTable(\n graphIndex,\n 'vendorDetails',\n 'overstockInventory',\n 'Overstock Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n\n {/* ********** understock inventory ********** */}\n {graphData?.vendorDetails?.understockInventory\n ? renderUnderstockOverstockTable(\n graphIndex,\n 'vendorDetails',\n 'understockInventory',\n 'Understock Inventory',\n useFormatNumber,\n graphData,\n )\n : null}\n
    \n {/* ********** inventory message editor ********** */}\n {showInventory &&\n graphData?.vendorDetails?.inventoryManagementMessage?.length > 8\n ? renderEditComponent(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'inventoryManagementMessage',\n ' Add Insight Summary Here',\n )\n : null}\n \n ) : null;\n };\n\n // render report pdf body html\n const renderReportPDFBodyContent = () => {\n return graphDetails?.map((graphData, graphIndex) => {\n return (\n \n {/* for seller account type */}\n {commanFieldsDetails?.accountType?.isSeller ||\n commanFieldsDetails?.accountType?.isHybrid\n ? renderPDFSellerPanelData(graphData, graphIndex)\n : null}\n\n {/* for vendor account type */}\n {commanFieldsDetails?.accountType?.isVendor ||\n commanFieldsDetails?.accountType?.isHybrid\n ? renderPDFVendorPanelData(graphData, graphIndex)\n : null}\n \n );\n });\n };\n\n // render Report PDF with Hyperlink\n const renderReportPDFWithHyperlink = () => {\n return (\n \n \n \n );\n };\n\n return (\n
    \n {reportStatus === 'readyToEdit' || reportStatus === 'view' ? (\n
    \n {}}\n executeScroll={executeScroll}\n />\n
    \n ) : (\n <>\n {showReportPDFTemplate ? renderReportPDFWithHyperlink() : null}\n {renderGraphDetailHTML()}\n \n )}\n
    \n );\n};\n\nexport default ReportLeftSidePanel;\n\nReportLeftSidePanel.defaultProps = {\n customerName: '',\n reportStatus: '',\n reportSummary: '',\n currentEndDate: '',\n showReportPDFTemplate: false,\n commanFieldsDetails: {},\n graphApiResponseData: {},\n dateToShow: {},\n html2pdfRef: {},\n graphDetails: [],\n setGraphDetails: () => {},\n};\n\nReportLeftSidePanel.propTypes = {\n customerName: string,\n reportStatus: string,\n reportSummary: string,\n currentEndDate: string,\n showReportPDFTemplate: bool,\n dateToShow: shape({}),\n html2pdfRef: shape({}),\n graphApiResponseData: arrayOf(shape({})),\n commanFieldsDetails: shape({}),\n graphDetails: arrayOf(shape({})),\n setGraphDetails: func,\n};\n","import React from 'react';\n\nimport Select from 'react-select';\nimport ReactTooltip from 'react-tooltip';\nimport { Collapse } from 'react-collapse';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport {\n CheckBox,\n InfoMsg,\n ToggleButton,\n ToggleSwitch,\n} from '../../../../common';\nimport {\n AdTypesOptions,\n buyBoxPercentFieldOptions,\n graphToggleOptions,\n groupByFields,\n inventoryManagementFields,\n inventoryProductNameToggleOption,\n productNameToggleOption,\n sellerAdspendMetricsFields,\n sellerDspMetricsFields,\n sellerHealthFields,\n sellerRevenueMetricsFields,\n sellerSalesMetricsFields,\n sellerSponsoredMetricsFields,\n sponoredDspKeys,\n} from '../../../../constants';\n\nconst RenderSellerFields = ({\n graphData,\n graphIndex,\n accountType,\n handleGraphDetailsOnChange,\n renderCheckBox,\n getAdTypesSelectComponents,\n renderRadioButtons,\n renderNumberOfAsins,\n selectedTimeFrame,\n enabledGroupFrequencyList,\n reportStatus,\n checkSelectedKeys,\n renderErrorMessage,\n showMetricsTooltip,\n renderDataTableViewButton,\n metricsLoader,\n}) => {\n const renderHeadingAndCollapse = () => {\n return (\n <>\n
    \n

    Seller

    \n {graphData?.isSellerOpen ? (\n {\n handleGraphDetailsOnChange(\n graphIndex,\n 'sellerDetails',\n 'isSellerOpen',\n false,\n false, // isMetrics\n );\n }}\n />\n ) : (\n {\n handleGraphDetailsOnChange(\n graphIndex,\n 'sellerDetails',\n 'isSellerOpen',\n true,\n false, // isMetrics\n );\n }}\n />\n )}\n
    \n
    \n \n );\n };\n\n const rednerGraphFrequency = () => {\n return (\n <>\n
    \n Graph Frequency\n
    \n \n
    \n
      \n {groupByFields.map((option) => {\n return (\n \n {\n handleGraphDetailsOnChange(\n graphIndex,\n 'sellerDetails',\n 'graphFrequency',\n option?.name,\n false, // isMetrics\n );\n }}\n />\n \n \n );\n })}\n
    \n
    \n \n \n );\n };\n\n // render metrics tooltip\n const renderMetricsTooltip = (option) => {\n const showTooltip = showMetricsTooltip?.find(\n (item) => item?.[option?.keyName],\n );\n\n return showTooltip ? (\n \n ) : null;\n };\n\n const renderSalesPanelAndToggleOptions = () => {\n const showRevenueMetrics =\n checkSelectedKeys(graphData, [\n 'salesRevenueTotal',\n 'salesRevenuePpc',\n 'salesRevenueDsp',\n ])?.length > 0;\n\n const showSalesMetrics =\n checkSelectedKeys(graphData, [\n 'salesTacos',\n 'salesUnitSold',\n 'salesTraffic',\n 'salesConversion',\n ])?.length > 0;\n\n const showAdSpendMetrics =\n checkSelectedKeys(graphData, [\n 'salesAdSpendTotal',\n 'salesAdSpendPpc',\n 'salesAdSpendDsp',\n ])?.length > 0;\n\n return (\n <>\n {graphToggleOptions.map((option) => {\n if (\n selectedTimeFrame?.value === 'custom' &&\n option.id === 'previous'\n ) {\n return null;\n }\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `seller${graphIndex}${option?.id}`,\n option?.label,\n option?.fieldName,\n option?.keyName,\n option?.className,\n option?.spanClass,\n option?.isMetrics,\n )}\n \n );\n })}\n {checkSelectedKeys(graphData, ['showDataTable'])?.length === 0\n ? null\n : renderDataTableViewButton(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'graphDataTableView',\n 'metrics-table',\n )}\n\n {reportStatus === 'readyToEdit' ? null : (\n \n You can select a maximum of 4 metrics only in one graph.\n \n )}\n {reportStatus === 'readyToEdit' &&\n !showRevenueMetrics &&\n !showSalesMetrics &&\n !showAdSpendMetrics ? null : (\n <>\n
    \n Sales Performance metrics\n
    \n {renderErrorMessage(\n 'salesPeformance',\n graphData,\n graphIndex,\n 'sellerDetails',\n )}\n\n {reportStatus === 'readyToEdit' && !showSalesMetrics ? null : (\n <>\n {sellerSalesMetricsFields.map((option) => {\n return (\n \n \n {renderCheckBox(\n graphIndex,\n graphData,\n option.id,\n option.label,\n option.fieldName,\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n option.isSubType,\n option?.message,\n )}\n \n {renderMetricsTooltip(option)}\n \n );\n })}\n \n )}\n\n {reportStatus === 'readyToEdit' && !showRevenueMetrics ? null : (\n <>\n

    Total Revenue

    \n {sellerRevenueMetricsFields.map((option) => {\n return (\n
    \n
    \n \n \n {renderCheckBox(\n graphIndex,\n graphData,\n option?.id,\n option?.label,\n option?.fieldName,\n option?.keyName,\n option?.className,\n option?.spanClass,\n option?.isMetrics,\n option?.isSubType,\n )}\n \n {renderMetricsTooltip(option)}\n
    \n );\n })}\n \n )}\n\n {reportStatus === 'readyToEdit' && !showAdSpendMetrics ? null : (\n <>\n

    Total Ad Spend

    \n {sellerAdspendMetricsFields.map((option) => {\n return (\n
    \n
    \n \n \n {renderCheckBox(\n graphIndex,\n graphData,\n option?.id,\n option?.label,\n option?.fieldName,\n option?.keyName,\n option?.className,\n option?.spanClass,\n option?.isMetrics,\n option?.isSubType,\n option?.message,\n )}\n \n {renderMetricsTooltip(option)}\n
    \n );\n })}\n \n )}\n \n )}\n \n );\n };\n\n const renderAdPerformancePanel = () => {\n return reportStatus === 'readyToEdit' &&\n checkSelectedKeys(graphData, Object.keys(sponoredDspKeys))?.length ===\n 0 ? null : (\n \n \n Ad performance metrics\n
    \n {['year'].includes(selectedTimeFrame?.value) ? (\n \n We don't have data for selected time frame filter.\n \n ) : null}\n\n
    \n
      \n \n handleGraphDetailsOnChange(\n graphIndex,\n 'sellerDetails',\n 'adPerformance',\n 'sponsored',\n false, // isMetrics\n )\n }\n >\n {renderRadioButtons(\n `sellerSponsored${graphIndex}`,\n `${graphIndex}sellerAdype`,\n graphData?.adPerformance,\n graphData?.adPerformance === 'sponsored',\n 'Sponsored Ad',\n 'radio-container customer-list',\n )}\n \n \n handleGraphDetailsOnChange(\n graphIndex,\n 'sellerDetails',\n 'adPerformance',\n 'dsp',\n false, // isMetrics\n )\n }\n >\n {renderRadioButtons(\n `sellerDsp${graphIndex}`,\n `${graphIndex}sellerAdype`,\n graphData?.adPerformance,\n graphData?.adPerformance === 'dsp',\n 'DSP Ad',\n 'radio-container customer-list',\n )}\n \n
    \n
    \n\n {renderErrorMessage(\n 'adPeformance',\n graphData,\n graphIndex,\n 'sellerDetails',\n )}\n\n {graphData.adPerformance === 'sponsored' ? (\n <>\n
    \n Sponsored Ad type filter\n
    \n
    \n {\n handleGraphDetailsOnChange(\n graphIndex,\n 'sellerDetails',\n 'sponsoredType',\n event,\n false, // isMetrics\n );\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: Theme.white,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n
    \n\n {sellerSponsoredMetricsFields.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `${option.id}${graphData?.sponsoredType?.key}`,\n option.label,\n option.fieldName,\n `${option.id}${graphData?.sponsoredType?.key}`,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n \n ) : (\n sellerDspMetricsFields.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n option?.id,\n option?.label,\n option?.fieldName,\n option?.keyName,\n option?.className,\n option?.spanClass,\n option?.isMetrics,\n )}\n \n );\n })\n )}\n
    \n );\n };\n\n const renderAsinsPanel = () => {\n return (\n <>\n {reportStatus === 'readyToEdit' &&\n checkSelectedKeys(graphData, [\n 'isParentTopAsins',\n 'isParentBottomAsins',\n 'isParentAllAsins',\n ]).length === 0 ? null : (\n <>\n
    \n ASIN Performance\n
    \n
    Parent ASINs
    \n \n
    \n \n {renderCheckBox(\n graphIndex,\n graphData,\n 'parentTopAsins',\n 'Top ASINs',\n 'sellerDetails',\n 'isParentTopAsins',\n 'check-container checkboxes-std-services customer-pannel',\n 'checkmark',\n false,\n )}\n \n
    \n \n {renderNumberOfAsins(\n graphIndex,\n graphData,\n 'sellerDetails',\n 'parentTopAsins',\n )}\n
    \n
    \n \n {renderCheckBox(\n graphIndex,\n graphData,\n 'parentBottomAsins',\n 'Bottom ASINs',\n 'sellerDetails',\n 'isParentBottomAsins',\n 'check-container checkboxes-std-services customer-pannel',\n 'checkmark',\n false,\n )}\n \n
    \n \n {renderNumberOfAsins(\n graphIndex,\n graphData,\n 'sellerDetails',\n 'parentBottomAsins',\n )}\n
    \n
    \n\n \n {renderCheckBox(\n graphIndex,\n graphData,\n 'parentAllAsins',\n 'All ASINs',\n 'sellerDetails',\n 'isParentAllAsins',\n 'check-container checkboxes-std-services customer-pannel',\n 'checkmark',\n false,\n )}\n \n \n )}\n\n {reportStatus === 'readyToEdit' &&\n checkSelectedKeys(graphData, [\n 'isChildTopAsins',\n 'isChildBottomAsins',\n 'isChildAllAsins',\n ]).length === 0 ? null : (\n <>\n
    \n
    Child ASINs
    \n
    \n {productNameToggleOption.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `seller${graphIndex}${option?.id}`,\n option?.label,\n option?.fieldName,\n option?.keyName,\n option?.className,\n option?.spanClass,\n option?.isMetrics,\n )}\n \n );\n })}\n
    \n
    \n \n
    \n \n {renderCheckBox(\n graphIndex,\n graphData,\n 'ChildTopAsins',\n 'Top ASINs',\n 'sellerDetails',\n 'isChildTopAsins',\n 'check-container checkboxes-std-services customer-pannel',\n 'checkmark',\n false,\n )}\n \n
    \n \n {renderNumberOfAsins(\n graphIndex,\n graphData,\n 'sellerDetails',\n 'childTopAsins',\n )}\n
    \n
    \n \n {renderCheckBox(\n graphIndex,\n graphData,\n 'ChildBottomAsins',\n 'Bottom ASINs',\n 'sellerDetails',\n 'isChildBottomAsins',\n 'check-container checkboxes-std-services customer-pannel',\n 'checkmark',\n false,\n )}\n \n
    \n \n {renderNumberOfAsins(\n graphIndex,\n graphData,\n 'sellerDetails',\n 'childBottomAsins',\n )}\n
    \n
    \n\n \n {renderCheckBox(\n graphIndex,\n graphData,\n 'ChildAllAsins',\n 'All ASINs',\n 'sellerDetails',\n 'isChildAllAsins',\n 'check-container checkboxes-std-services customer-pannel',\n 'checkmark',\n false,\n )}\n \n \n )}\n \n );\n };\n\n const renderSellerHealth = () => {\n return reportStatus === 'readyToEdit' &&\n checkSelectedKeys(graphData, [\n 'buyBoxGraph',\n 'showBuyBoxGraphTable',\n 'inventoryScore',\n 'positiveFeedback',\n 'orderIssue',\n ])?.length === 0 ? null : (\n <>\n
    Seller health
    \n {sellerHealthFields.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n option.id,\n option.label,\n option.fieldName,\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n\n {buyBoxPercentFieldOptions.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n option.id,\n option.label,\n option.fieldName,\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n {checkSelectedKeys(graphData, ['showBuyBoxGraphTable'])?.length ===\n 0 ? null : (\n <>\n {renderDataTableViewButton(\n graphData,\n graphIndex,\n 'sellerDetails',\n 'bbpTableView',\n 'bbp-table',\n )}\n \n )}\n
    \n \n );\n };\n\n const renderInventoryManagement = () => {\n return reportStatus === 'readyToEdit' &&\n checkSelectedKeys(graphData, [\n 'strandedInventory',\n 'overstockInventory',\n 'understockInventory',\n ])?.length === 0 ? null : (\n \n
    \n Inventory Management\n
    \n {['year', 'month'].includes(selectedTimeFrame?.value) ? (\n \n We don't have data for selected time frame filter.\n \n ) : null}\n\n {inventoryProductNameToggleOption.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `seller${graphIndex}${option.id}`,\n option.label,\n 'sellerDetails',\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n\n {inventoryManagementFields.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `seller${option.id}${graphIndex}`,\n option.label,\n option.fieldName,\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n {accountType.isHybrid ? (\n
    \n ) : null}\n
    \n );\n };\n\n return (\n \n {accountType.isHybrid ? renderHeadingAndCollapse() : null}\n\n {graphData !== null ? (\n \n
      \n
    • {rednerGraphFrequency()}
    • \n
    • \n {renderSalesPanelAndToggleOptions()}\n {renderAdPerformancePanel()}\n {renderAsinsPanel()}\n {renderSellerHealth()}\n {renderInventoryManagement()}\n
    • \n
    \n \n ) : null}\n
    \n );\n};\n\nexport default RenderSellerFields;\n\nRenderSellerFields.defaultProps = {\n metricsLoader: false,\n graphIndex: 0,\n reportStatus: '',\n selectedTimeFrame: {},\n graphData: {},\n accountType: {},\n enabledGroupFrequencyList: [],\n showMetricsTooltip: [],\n handleGraphDetailsOnChange: () => {},\n renderCheckBox: () => {},\n getAdTypesSelectComponents: () => {},\n renderRadioButtons: () => {},\n renderNumberOfAsins: () => {},\n checkSelectedKeys: () => {},\n renderErrorMessage: () => {},\n renderDataTableViewButton: () => {},\n};\n\nRenderSellerFields.propTypes = {\n metricsLoader: bool,\n graphIndex: number,\n reportStatus: string,\n renderCheckBox: func,\n renderRadioButtons: func,\n renderNumberOfAsins: func,\n checkSelectedKeys: func,\n renderErrorMessage: func,\n renderDataTableViewButton: func,\n getAdTypesSelectComponents: func,\n handleGraphDetailsOnChange: func,\n graphData: shape({}),\n accountType: shape({}),\n selectedTimeFrame: shape({}),\n enabledGroupFrequencyList: arrayOf(Array),\n showMetricsTooltip: arrayOf(shape({})),\n};\n","import React from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Select from 'react-select';\nimport { Collapse } from 'react-collapse';\nimport { arrayOf, func, number, shape, string } from 'prop-types';\n\nimport {\n CheckBox,\n InfoMsg,\n ToggleButton,\n ToggleSwitch,\n} from '../../../../common';\nimport {\n AdTypesOptions,\n graphToggleOptions,\n groupByFields,\n sellerDspMetricsFields,\n vendorSalesMetricsFields,\n sellerSponsoredMetricsFields,\n inventoryManagementFields,\n inventoryProductNameToggleOption,\n} from '../../../../constants';\nimport Theme from '../../../../theme/Theme';\n\nconst RenderVendorFields = ({\n graphData,\n graphIndex,\n accountType,\n handleGraphDetailsOnChange,\n renderCheckBox,\n getAdTypesSelectComponents,\n renderRadioButtons,\n selectedTimeFrame,\n enabledGroupFrequencyList,\n reportStatus,\n checkSelectedKeys,\n renderErrorMessage,\n renderDataTableViewButton,\n}) => {\n const renderHeadingCollape = () => {\n return (\n <>\n
    \n

    Vendor

    \n {graphData?.isVendorOpen ? (\n {\n handleGraphDetailsOnChange(\n graphIndex,\n 'vendorDetails',\n 'isVendorOpen',\n false,\n false, // isMetrics\n );\n }}\n />\n ) : (\n {\n handleGraphDetailsOnChange(\n graphIndex,\n 'vendorDetails',\n 'isVendorOpen',\n true,\n false, // isMetrics\n );\n }}\n />\n )}\n
    \n
    \n \n );\n };\n\n const rednerGraphFrequency = () => {\n return (\n
  • \n
    \n Graph Frequency\n
    \n \n
    \n
      \n {groupByFields.map((option) => {\n return (\n \n {\n handleGraphDetailsOnChange(\n graphIndex,\n 'vendorDetails',\n 'graphFrequency',\n option.name,\n false, // isMetrics\n );\n }}\n />\n \n \n );\n })}\n
    \n
    \n
    \n
  • \n );\n };\n\n const renderSalesPanelAndToggleOptions = () => {\n return (\n \n {graphToggleOptions.map((option) => {\n if (\n selectedTimeFrame?.value === 'custom' &&\n option.id === 'previous'\n ) {\n return null;\n }\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `vendor${graphIndex}${option.id}`,\n option.label,\n 'vendorDetails',\n option.keyName,\n option.className,\n option.spanClass,\n false,\n )}\n \n );\n })}\n\n {checkSelectedKeys(graphData, ['showDataTable'])?.length === 0\n ? null\n : renderDataTableViewButton(\n graphData,\n graphIndex,\n 'vendorDetails',\n 'graphDataTableView',\n 'metrics-table',\n )}\n\n {reportStatus === 'readyToEdit' ? null : (\n \n You can select a maximum of 4 metrics only in one graph.\n \n )}\n {reportStatus === 'readyToEdit' &&\n checkSelectedKeys(graphData, [\n 'salesShippedCogs',\n 'salesShippedGlanceViews',\n 'salesShippedConversionRate',\n 'salesShippedUnits',\n 'salesOrderedRevenue',\n 'salesOrderedGlanceViews',\n 'salesOrderedConversionRate',\n 'salesOrderedUnits',\n ])?.length === 0 ? null : (\n <>\n
    \n Sales Performance metrics\n
    \n\n
    \n
      \n \n handleGraphDetailsOnChange(\n graphIndex,\n 'vendorDetails',\n 'saleType',\n 'shippedCogs',\n false, // isMetrics\n )\n }\n >\n {renderRadioButtons(\n `vendorSalesType${graphIndex}`,\n `${graphIndex}vendorSalesType`,\n graphData?.saleType,\n graphData?.saleType === 'shippedCogs',\n 'Shipped COGs',\n 'radio-container customer-list',\n )}\n \n \n handleGraphDetailsOnChange(\n graphIndex,\n 'vendorDetails',\n 'saleType',\n 'orderedRevenue',\n false, // isMetrics\n )\n }\n >\n {renderRadioButtons(\n `orderedRevenue${graphIndex}`,\n `${graphIndex}orderedRevenue`,\n graphData?.saleType,\n graphData?.saleType === 'orderedRevenue',\n 'Ordered Revenue',\n 'radio-container customer-list',\n )}\n \n
    \n
    \n \n )}\n\n {renderErrorMessage(\n 'vendorSalesPeformance',\n graphData,\n graphIndex,\n 'vendorDetails',\n )}\n\n {graphData.saleType === 'shippedCogs'\n ? vendorSalesMetricsFields?.shippedCogs.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n option.id,\n option.label,\n option.fieldName,\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })\n : vendorSalesMetricsFields?.orderedRevenue.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n option.id,\n option.label,\n option.fieldName,\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n
    \n );\n };\n\n const renderAdPerformancePanel = () => {\n return reportStatus === 'readyToEdit' &&\n checkSelectedKeys(graphData, [\n 'adSales',\n 'adSpend',\n 'adConversionRate',\n 'adImpressions',\n 'adAcos',\n 'adRoas',\n 'adCostPerClick',\n 'adClicks',\n 'adClickThroughRate',\n\n 'adSalesSP',\n 'adSpendSP',\n 'adConversionRateSP',\n 'adImpressionsSP',\n 'adAcosSP',\n 'adRoasSP',\n 'adClicksSP',\n 'adClickThroughRateSP',\n 'adCostPerClickSP',\n\n 'adSalesSB',\n 'adSpendSB',\n 'adConversionRateSB',\n 'adImpressionsSB',\n 'adAcosSB',\n 'adRoasSB',\n 'adClicksSB',\n 'adClickThroughRateSB',\n 'adCostPerClickSB',\n\n 'adSalesSBV',\n 'adSpendSBV',\n 'adConversionRateSBV',\n 'adImpressionsSBV',\n 'adAcosSBV',\n 'adRoasSBV',\n 'adClicksSBV',\n 'adClickThroughRateSBV',\n 'adCostPerClickSBV',\n\n 'adSalesSD',\n 'adSpendSD',\n 'adConversionRateSD',\n 'adImpressionsSD',\n 'adAcosSD',\n 'adRoasSD',\n 'adClicksSD',\n 'adClickThroughRateSD',\n 'adCostPerClickSD',\n\n 'dspImpressions',\n 'dspSpend',\n 'dspTotalProductSales',\n 'dspTotalRoas',\n 'dspTotalDpvr',\n 'dspTotalNewBrandPurchases',\n 'dspProductSales',\n 'dspRoas',\n ])?.length === 0 ? null : (\n \n
    \n Ad performance metrics\n
    \n {['year'].includes(selectedTimeFrame?.value) ? (\n \n We don't have data for selected time frame filter.\n \n ) : null}\n\n
    \n
      \n \n handleGraphDetailsOnChange(\n graphIndex,\n 'vendorDetails',\n 'adPerformance',\n 'sponsored',\n false, // isMetrics\n )\n }\n >\n {renderRadioButtons(\n `vendorSponsored${graphIndex}`,\n `${graphIndex}vendorAdype`,\n graphData?.adPerformance,\n graphData?.adPerformance === 'sponsored',\n 'Sponsored Ad',\n 'radio-container customer-list',\n )}\n \n \n handleGraphDetailsOnChange(\n graphIndex,\n 'vendorDetails',\n 'adPerformance',\n 'dsp',\n false, // isMetrics\n )\n }\n >\n {renderRadioButtons(\n `vendorDsp${graphIndex}`,\n `${graphIndex}vendorAdype`,\n graphData?.adPerformance,\n graphData?.adPerformance === 'dsp',\n 'DSP Ad',\n 'radio-container customer-list',\n )}\n \n
    \n
    \n {renderErrorMessage(\n 'adPeformance',\n graphData,\n graphIndex,\n 'vendorDetails',\n )}\n\n {graphData.adPerformance === 'sponsored' ? (\n <>\n
    \n Sponsored Ad type filter\n
    \n
    \n {\n handleGraphDetailsOnChange(\n graphIndex,\n 'vendorDetails',\n 'sponsoredType',\n event,\n false, // isMetrics\n );\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n styles={{\n control: (base, state) => ({\n ...base,\n background: '#F4F6FC',\n borderColor: '#D5D8E1',\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n }),\n placeholder: (defaultStyles) => {\n return {\n ...defaultStyles,\n color: '556178',\n };\n },\n }}\n />\n
    \n\n {sellerSponsoredMetricsFields.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `vendor${option.id}${graphData?.sponsoredType?.key}`,\n option.label,\n 'vendorDetails',\n `${option.id}${graphData?.sponsoredType?.key}`,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n \n ) : (\n sellerDspMetricsFields.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `vendor${option.id}`,\n option.label,\n 'vendorDetails',\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })\n )}\n
    \n );\n };\n\n const renderInventoryManagement = () => {\n return reportStatus === 'readyToEdit' &&\n checkSelectedKeys(graphData, [\n 'strandedInventory',\n 'overstockInventory',\n 'understockInventory',\n ])?.length === 0 ? null : (\n \n \n Inventory Management\n
    \n {['year', 'month'].includes(selectedTimeFrame?.value) ? (\n \n We don't have data for selected time frame filter.\n \n ) : null}\n\n {inventoryProductNameToggleOption.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `vendor${graphIndex}${option.id}`,\n option.label,\n 'vendorDetails',\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n\n {inventoryManagementFields.map((option) => {\n return (\n \n {renderCheckBox(\n graphIndex,\n graphData,\n `vendor${option.id}${graphIndex}`,\n option.label,\n 'vendorDetails',\n option.keyName,\n option.className,\n option.spanClass,\n option.isMetrics,\n )}\n \n );\n })}\n {accountType.isHybrid ? (\n
    \n ) : null}\n
    \n );\n };\n\n return (\n \n {accountType.isHybrid ? renderHeadingCollape() : null}\n\n {graphData !== null ? (\n \n
      \n {rednerGraphFrequency()}\n
    • \n {renderSalesPanelAndToggleOptions()}\n {renderAdPerformancePanel()}\n {accountType.isVendor ? renderInventoryManagement() : null}\n
    • \n
    \n \n ) : null}\n
    \n );\n};\n\nexport default RenderVendorFields;\n\nRenderVendorFields.defaultProps = {\n graphData: {},\n graphIndex: 0,\n reportStatus: '',\n accountType: {},\n enabledGroupFrequencyList: [],\n selectedTimeFrame: {},\n handleGraphDetailsOnChange: () => {},\n renderCheckBox: () => {},\n getAdTypesSelectComponents: () => {},\n checkSelectedKeys: () => {},\n renderRadioButtons: () => {},\n renderErrorMessage: () => {},\n renderDataTableViewButton: () => {},\n};\n\nRenderVendorFields.propTypes = {\n graphIndex: number,\n reportStatus: string,\n graphData: shape({}),\n accountType: shape({}),\n selectedTimeFrame: shape({}),\n enabledGroupFrequencyList: arrayOf(Array),\n handleGraphDetailsOnChange: func,\n renderCheckBox: func,\n getAdTypesSelectComponents: func,\n checkSelectedKeys: func,\n renderRadioButtons: func,\n renderErrorMessage: func,\n renderDataTableViewButton: func,\n};\n","import styled from 'styled-components';\nimport Theme from './Theme';\n\n// agreement side panel\nexport const SidePanel = styled.div`\n min-width: 60px;\n z-index: 1;\n width: 336px;\n position: fixed;\n top: 70px;\n right: 0;\n height: 85%;\n background: ${Theme.white};\n border-left: 1px solid ${Theme.gray7};\n overflow-y: auto;\n\n &.pdf-sidebar {\n height: 100%;\n\n .sidebar {\n padding-bottom: 170px;\n }\n }\n\n &.contract-sidebar {\n padding-bottom: 270px;\n }\n\n .sidebar {\n /* width: 335px; */\n }\n\n &.report-side-panel {\n top: 105px;\n height: 100%;\n padding-bottom: 100px;\n @media only screen and (max-width: 767px) {\n top: 255px !important;\n padding-bottom: 390px;\n }\n @media only screen and (max-width: 991px) {\n top: 186px;\n padding-bottom: 390px;\n }\n }\n .error-found {\n color: ${Theme.red};\n font-size: ${Theme.small};\n word-spacing: normal;\n font-weight: 300;\n }\n\n .sendar-details {\n color: ${Theme.black};\n font-size: ${Theme.extraMedium};\n font-family: ${Theme.baseFontFamily};\n text-transform: inherit;\n margin-top: 6px;\n margin-left: 16px;\n float: left;\n word-spacing: 3px;\n max-width: 237px;\n\n &.error-container {\n margin-top: -3px;\n }\n\n .green-check-select {\n width: 16px;\n position: absolute;\n right: 21px;\n top: 22px;\n }\n\n .red-cross {\n width: 16px;\n position: absolute;\n right: 21px;\n top: 25px;\n }\n\n .error-bg {\n height: 63px;\n background: ${Theme.lightRed};\n right: 0px;\n border-right: 2px solid #d63649;\n z-index: -2;\n top: 0px;\n position: absolute;\n width: 46px;\n\n .red-cross {\n width: 16px;\n position: absolute;\n right: 13px;\n top: 25px;\n }\n }\n .one-time-service {\n height: 85px;\n .red-cross {\n top: 35px;\n }\n }\n }\n\n .sender-profile {\n border: 1px solid ${Theme.gray9};\n border-radius: 100%;\n width: 48px;\n height: 48px;\n }\n .sender-name {\n text-transform: capitalize;\n color: ${Theme.gray90};\n font-size: ${Theme.medium};\n }\n\n .sticky-btn {\n bottom: 100px;\n position: absolute;\n }\n .service-detail {\n padding: 20px 20px 0 20px;\n }\n .service-agre {\n float: left;\n width: 32px;\n }\n h4 .sendar-details {\n float: left;\n margin: 9px 0px 0px 20px;\n }\n\n .add-market-place {\n font-size: 12px;\n color: ${Theme.orange};\n }\n\n .collapse-btn {\n width: 100%;\n padding: 15px;\n cursor: pointer;\n position: relative;\n\n .icon-collapse {\n position: absolute;\n right: 21px;\n top: 17px;\n color: ${Theme.black};\n font-size: 16px;\n }\n }\n .collapse-container {\n padding: 15px;\n }\n\n .collapse-inner {\n margin: 0;\n padding: 0;\n list-style-type: none;\n\n li {\n padding: 8px 20px;\n\n &:focus {\n background: ${Theme.lightOrange};\n }\n .small-para {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray40};\n line-height: 22px;\n }\n .edit-folder-icon {\n vertical-align: text-top;\n width: 17px;\n }\n\n .label-heading {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n text-transform: uppercase;\n font-weight: bold;\n }\n .listing-optimazation {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n }\n\n .text-end {\n text-align: end;\n }\n\n .increment {\n border: 1px solid ${Theme.gray45};\n border-radius: 0 2px 2px 0;\n width: 26px;\n height: 26px;\n padding: 4px;\n background: ${Theme.gray8};\n vertical-align: bottom;\n cursor: pointer;\n\n .plus-icon {\n width: 10px;\n }\n\n &:focus {\n outline: none;\n }\n }\n .decrement {\n border: 1px solid ${Theme.gray45};\n border-radius: 2px 0 0 2px;\n width: 26px;\n height: 26px;\n vertical-align: bottom;\n padding: 4px;\n background: ${Theme.gray8};\n font-family: ${Theme.titleFontFamily};\n cursor: pointer;\n\n .minus-icon {\n width: 10px;\n }\n &:focus {\n outline: none;\n }\n }\n .max-min-number {\n width: 26px;\n border: 1px solid ${Theme.gray45};\n vertical-align: bottom;\n color: ${Theme.black};\n height: 26px;\n font-size: 14px;\n font-family: ${Theme.titleFontFamily};\n text-align: center;\n }\n\n .contract-info-date {\n line-height: 22px;\n font-size: 14px;\n color: ${Theme.gray40};\n }\n .add-discount {\n color: #ff4817;\n font-size: 11px;\n position: absolute;\n right: 0;\n top: 4px;\n cursor: pointer;\n }\n .thershold {\n background-color: ${Theme.gray8};\n border-radius: 2px;\n margin-top: 7px;\n\n .days-tab {\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n .thresholdChecked {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray90};\n color: ${Theme.gray90};\n font-family: ${Theme.titleFontFamily} !important;\n font-weight: 600 !important;\n }\n\n li {\n display: inline-block;\n text-align: center;\n width: 25%;\n border: 1px solid ${Theme.gray45};\n\n label {\n color: ${Theme.black};\n padding: 9px 0px;\n height: 36px;\n font-size: ${Theme.extraNormal};\n display: inline-block;\n cursor: pointer;\n text-transform: capitalize;\n font-weight: inherit;\n /* font-weight: 300; */\n font-family: ${Theme.baseFontFamily};\n\n &.thresholdLable {\n text-transform: uppercase;\n }\n }\n }\n }\n }\n }\n }\n .contract-status {\n color: ${Theme.gray85};\n font-size: 14px;\n border-radius: 2px;\n text-align: center;\n background: ${Theme.extraLightYellow};\n padding: 12px 0;\n min-height: 40px;\n margin: 10px;\n\n &.pending-contract {\n background: ${Theme.gray8};\n }\n &.pending-signature {\n background: #ffded6;\n }\n &.signature {\n background: ${Theme.white};\n border: 1px solid ${Theme.gray45};\n }\n }\n\n .contract-file-icon {\n vertical-align: bottom;\n margin-right: 7px;\n }\n\n .activity-log {\n font-size: ${Theme.extraMedium};\n padding: 15px 15px 10px 15px;\n color: ${Theme.black};\n font-weight: 600;\n }\n .current-agreement-title {\n padding: 20px;\n text-transform: uppercase;\n border-bottom: 1px solid ${Theme.gray9};\n }\n .menu {\n padding: 0;\n margin: 0;\n li {\n color: ${Theme.white};\n text-align: center;\n font-size: 18px;\n font-weight: 900;\n list-style: none;\n display: flex;\n text-decoration: none;\n padding: 20px 15px;\n\n &:last-child {\n border-bottom: none;\n }\n\n .default-user-activity {\n width: 42px;\n height: 42px;\n border-radius: 50%;\n float: left;\n margin-right: 15px;\n margin-top: -2px;\n\n &.contract-mail {\n width: 20px;\n height: 20px;\n margin: 10px;\n }\n }\n\n .contract-email {\n background-color: #f4f6fc;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n float: left;\n margin-right: 10px;\n }\n\n .activity-user {\n font-size: ${Theme.normal};\n color: ${Theme.gray90};\n float: left;\n word-break: break-word;\n width: 85%;\n text-align: left;\n span {\n color: ${Theme.gray35};\n font-weight: 500;\n }\n .email-clicks {\n float: left;\n margin-top: 10px;\n margin-left: 5px;\n .email-opens {\n border-right: 1px solid ${Theme.gray35};\n padding: 0 8px;\n color: ${Theme.black};\n &:last-child {\n border-right: none;\n }\n }\n }\n }\n .default-user {\n width: 42px;\n height: 42px;\n border-radius: 50%;\n float: left;\n margin-right: 10px;\n }\n\n .time-date {\n color: ${Theme.gray40};\n font-size: ${Theme.small};\n font-weight: 500;\n text-align: left;\n }\n .pdf-download {\n width: 33px;\n height: 33px;\n margin-left: 10px;\n padding: 6px;\n cursor: pointer;\n float: right;\n\n &:hover {\n background: ${Theme.gray8};\n border-radius: 50%;\n width: 33px;\n height: 33px;\n padding: 6px;\n }\n }\n }\n }\n\n @media only screen and (max-width: 350px) {\n .sendar-details {\n max-width: 237px !important;\n .one-time-service {\n height: 85px !important;\n .red-cross {\n top: 35px !important;\n }\n }\n }\n }\n\n @media only screen and (max-width: 767px) {\n top: 200px !important;\n }\n @media only screen and (max-width: 991px) {\n z-index: 1;\n padding-bottom: 390px;\n width: 100%;\n position: fixed;\n top: 163px;\n right: 0;\n left: 0;\n\n .sendar-details {\n max-width: 100%;\n .one-time-service {\n height: 63px;\n .red-cross {\n top: 25px;\n }\n }\n }\n }\n\n @media only screen and (min-width: 1500px) {\n width: 406px;\n height: 93%;\n .sidebar {\n width: 400px;\n\n .sendar-details {\n max-width: 100%;\n .one-time-service {\n height: 63px;\n .red-cross {\n top: 25px;\n }\n }\n }\n }\n }\n`;\n\n// addendum.js style\nexport const AddendumParagraph = styled.div`\n .summary {\n margin: 0;\n li {\n margin-top: 10px;\n }\n }\n .contact-list table,\n td,\n th {\n border: 1px solid black;\n padding: 13px;\n }\n tr {\n .total-service {\n font-weight: 800;\n }\n th {\n text-align: left;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n }\n .refer-agreement {\n border-bottom: 1px solid black;\n font-weight: 400;\n margin-left: 35px;\n padding: 6px 0;\n\n .label {\n font-weight: 800;\n }\n }\n`;\n\nexport const EditorToll = styled.div`\n .rdw-editor-wrapper {\n border: 1px solid #f1f1f1;\n border-radius: 4px;\n }\n .rdw-link-modal {\n min-height: 250px !important;\n }\n\n .rdw-embedded-modal {\n min-height: 250px !important;\n }\n\n .rdw-editor-main {\n border: none;\n background: ${Theme['$base-03']};\n }\n\n .rdw-editor-toolbar {\n border: none;\n }\n`;\n\n// agreement.js style\nexport const AgreementParagraph = styled.div`\n .first-sub-category {\n margin: 0;\n padding-inline-start: 30px;\n li {\n margin-bottom: 17px;\n padding-left: 5px;\n }\n }\n &.testing {\n color: red !important;\n }\n\n .contact-list table,\n td,\n th {\n border: 1px solid black;\n padding: 13px;\n\n .total-service-bordless {\n font-weight: 500;\n border-bottom: hidden !important;\n }\n }\n\n tr {\n .total-service {\n font-weight: 800;\n }\n .total-service-bordless {\n font-weight: 500;\n border-bottom: hidden !important;\n padding: 7px 13px;\n }\n\n th {\n text-align: left;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n }\n`;\n\n// contractActivityLog.js\nexport const ContractActivityLogFooter = styled.div`\n border-top: 1px solid ${Theme.gray7};\n bottom: ${(props) => (props.bottom ? props.bottom : '0px')};\n background: ${Theme.white};\n box-shadow: ${Theme.boxShadow};\n position: fixed;\n min-height: 60px;\n z-index: 2;\n width: 336px;\n\n @media only screen and (max-width: 991px) {\n width: 100%;\n }\n @media only screen and (min-width: 1500px) {\n width: 405px;\n }\n`;\n\n// contract container.js\nexport const ContractTab = styled.div`\n background: ${Theme.gray6};\n padding-top: 70px;\n position: fixed;\n z-index: 1;\n width: 100%;\n\n .tabs {\n padding: 0;\n margin: 0;\n list-style-type: none;\n border-bottom: 1px solid ${Theme.gray5};\n\n li {\n display: inline-block;\n color: ${Theme.black};\n font-size: ${Theme.normal};\n padding: 23px 40px;\n cursor: pointer;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n padding-bottom: 23px;\n border-bottom: 2px solid ${Theme.orange};\n color: ${Theme.black};\n font-family: ${Theme.titleFontFamily};\n }\n\n &.active {\n padding-bottom: 23px;\n border-bottom: 2px solid ${Theme.orange};\n color: ${Theme.black};\n font-family: ${Theme.titleFontFamily};\n }\n }\n }\n @media only screen and (max-width: 767px) {\n padding-top: 120px;\n }\n`;\n\n// contractfooter.js\nexport const Footer = styled.div`\n border: 1px solid ${Theme.gray7};\n bottom: 0;\n width: 100%;\n background: ${Theme.white};\n box-shadow: ${Theme.boxShadow};\n position: fixed;\n min-height: 80px;\n padding-left: 15px;\n z-index: 2;\n .w-320 {\n width: 320px;\n /* width: 100%; */\n }\n\n .last-update {\n margin-top: 30px;\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n margin-left: 40px;\n\n &:first-child {\n margin-left: 20px;\n }\n\n .info-icon {\n vertical-align: text-bottom;\n width: 16px;\n margin-right: 8px;\n }\n }\n .unsave-changes {\n margin-left: 40px;\n }\n @media only screen and (max-width: 991px) {\n padding-left: 0px;\n /* padding-right: 17px; */\n .w-sm-100 {\n width: 100%;\n margin-bottom: 10px;\n }\n .w-sm-50 {\n width: 47% !important;\n margin-bottom: 10px;\n }\n .last-update {\n margin: 0 auto;\n display: table;\n }\n .unsave-changes {\n margin: 0 auto;\n display: table;\n }\n }\n @media only screen and (max-width: 831px) {\n .w-sm-50 {\n width: 46% !important;\n margin-bottom: 10px;\n }\n }\n @media only screen and (max-width: 632px) {\n .w-sm-50 {\n width: 47.5% !important;\n margin-left: 25px !important;\n margin-bottom: 10px;\n }\n .ml-0 {\n margin-left: 0 !important;\n }\n }\n @media only screen and (max-width: 530px) {\n .w-sm-50 {\n width: 47.3% !important;\n margin-bottom: 10px;\n }\n }\n @media only screen and (max-width: 491px) {\n .w-sm-50 {\n width: 45.7% !important;\n margin-bottom: 10px;\n }\n }\n`;\n\n// dsp addendum\nexport const DspAddendumParagraph = styled.div`\n .order-list-item {\n margin: 0;\n li {\n padding-left: 8px;\n }\n }\n .contact-list table,\n td,\n th {\n border: 1px solid black;\n padding: 13px;\n }\n tr {\n .total-service {\n font-weight: 800;\n }\n th {\n text-align: left;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n }\n .refer-agreement {\n border-bottom: 1px solid black;\n font-weight: 400;\n margin-left: 35px;\n padding: 6px 0;\n\n .label {\n font-weight: 800;\n }\n }\n`;\n\n// statement.js\nexport const StatementParagraph = styled.div`\n .summary {\n margin: 0;\n li {\n margin-top: 10px;\n }\n }\n\n .contact-list table,\n td,\n th {\n border: 1px solid black;\n padding: 13px;\n\n .total-service-bordless {\n font-weight: 500;\n border-bottom: hidden !important;\n }\n }\n\n tr {\n .total-service {\n font-weight: 800;\n }\n .total-service-bordless {\n font-weight: 500;\n border-bottom: hidden !important;\n padding: 7px 13px;\n }\n\n th {\n text-align: left;\n }\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n }\n`;\n","import React, { useState } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport Modal from 'react-modal';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport Select, { components } from 'react-select';\nimport { Collapse } from 'react-collapse';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, instanceOf, shape, string } from 'prop-types';\n\nimport RenderSellerFields from './RenderSellerFields';\nimport Theme from '../../../../theme/Theme';\nimport RenderVendorFields from './RenderVendorFields';\nimport { CreateReportSidePanel } from './CreateReportStyle';\nimport { SidePanel } from '../../../../theme/AgreementStyle';\n\nimport {\n CloseIcon,\n MinusIcon,\n PlusIcon,\n ServiceAgreementIcon,\n} from '../../../../theme/images';\nimport {\n commanFieldConstant,\n dateOptionsWithYear,\n customStyles,\n saveReportOptions,\n sponoredDspKeys,\n inventoryKeys,\n selleCollapseIds,\n vendorCollapseIds,\n} from '../../../../constants';\nimport {\n FormField,\n InputFormField,\n Button,\n DropdownIndicator,\n ModalBox,\n CustomDateModal,\n ErrorMsg,\n ModalRadioCheck,\n PageLoader,\n CustomDropDown,\n InfoMsg,\n} from '../../../../common';\n\nconst _ = require('lodash');\n\nconst ReportRightSidePanel = ({\n graphDetails,\n setGraphDetails,\n commanFieldsDetails,\n reportStatus,\n reportSummary,\n setReportSummary,\n selectedState,\n dateToShow,\n setSelectedState,\n currentDate,\n isTimeFrameDisabled,\n showMetricsTooltip,\n setIsTimeFrameDisabled,\n setShowReportPDFTemplate,\n templateTimeFrame,\n templateReportTitle,\n templateReportDescrition,\n}) => {\n const { Option, SingleValue } = components;\n const [showCustomDateModal, setShowCustomDateModal] = useState(false);\n\n const [indexToDeleteGraph, setIndexToDeleteGraph] = useState(null);\n const [editReportOptions, setEditReportOptions] = useState('keepExisitng');\n const [showSaveModalErrorMessage, setShowSaveModalErrorMessage] =\n useState(false);\n const [\n showDeleteGraphConfirmationModal,\n setShowDeleteGraphConfirmationModal,\n ] = useState(false);\n\n const handleGraphDetailsOnChange = (\n indexNumber,\n fieldName,\n keyName,\n value,\n isMetrics,\n ) => {\n // copy existing graph deatial and set value - start\n const newGraph = JSON.parse(JSON.stringify(graphDetails));\n newGraph[indexNumber][fieldName][keyName] = value;\n // copy existing graph deatial and set value- end\n\n // if showDataTable is false then clear the data table view\n if (keyName === 'showDataTable') {\n if (value) {\n newGraph[indexNumber][fieldName].graphDataTableView = 'detailedView';\n } else {\n newGraph[indexNumber][fieldName].graphDataTableView = null;\n }\n }\n // if buy box % option is deslected then buy box graph and buy box table should be deselected.\n if (keyName === 'isBuyBoxGraph' && !value) {\n newGraph[indexNumber][fieldName].buyBoxGraph = false;\n newGraph[indexNumber][fieldName].showBuyBoxGraphTable = false;\n }\n\n // if all child asin options deslected then 'show child product name' should be deselected.\n if (\n keyName === 'isChildBottomAsins' ||\n keyName === 'isChildTopAsins' ||\n (keyName === 'isChildAllAsins' && !value)\n ) {\n if (\n !newGraph[indexNumber][fieldName].isChildBottomAsins &&\n !newGraph[indexNumber][fieldName].isChildTopAsins &&\n !newGraph[indexNumber][fieldName].isChildAllAsins\n )\n newGraph[indexNumber][fieldName].showChildProductName = false;\n }\n\n // if all invemtory management options deslected then 'show inventory product name' should be deselected.\n if (\n keyName === 'strandedInventory' ||\n keyName === 'overstockInventory' ||\n (keyName === 'understockInventory' && !value)\n ) {\n if (\n !newGraph[indexNumber][fieldName].strandedInventory &&\n !newGraph[indexNumber][fieldName].overstockInventory &&\n !newGraph[indexNumber][fieldName].understockInventory\n )\n newGraph[indexNumber][fieldName].showInventoryProductName = false;\n }\n\n // if showBuyBoxGraphTable is false then clear the buybox percent table view\n if (keyName === 'showBuyBoxGraphTable') {\n if (value) {\n newGraph[indexNumber][fieldName].bbpTableView = 'detailedView';\n } else {\n newGraph[indexNumber][fieldName].bbpTableView = null;\n }\n }\n\n // auto scroll page when select field - start\n if (fieldName === 'sellerDetails' && value === true) {\n if (\n ['inventoryScore', 'positiveFeedback', 'orderIssue'].includes(\n keyName,\n ) &&\n [\n newGraph[indexNumber]?.sellerDetails?.inventoryScore,\n newGraph[indexNumber]?.sellerDetails?.positiveFeedback,\n newGraph[indexNumber]?.sellerDetails?.orderIssue,\n ].filter(Boolean).length === 1\n ) {\n commanFieldsDetails.setAutoScrollId(\n `collapseSellerBBEPgraph${indexNumber}`,\n );\n } else {\n commanFieldsDetails.setAutoScrollId(\n `${selleCollapseIds[keyName]}${indexNumber}`,\n );\n }\n }\n\n if (fieldName === 'vendorDetails' && value === true) {\n commanFieldsDetails.setAutoScrollId(\n `${vendorCollapseIds[keyName]}${indexNumber}`,\n );\n }\n // auto scroll page when select field- end\n\n // add and remove selected metrics\n if (isMetrics) {\n let localSelectedMetrics =\n newGraph[indexNumber][fieldName].selectedMetrics;\n\n // max 4 metrics selection logic\n if (Object.prototype.hasOwnProperty.call(localSelectedMetrics, keyName)) {\n localSelectedMetrics = _.omit(localSelectedMetrics, [keyName]);\n } else if (_.size(localSelectedMetrics) < 4) {\n localSelectedMetrics = _.omit(\n _.assign(localSelectedMetrics, { [keyName]: true }),\n );\n }\n newGraph[indexNumber][fieldName].selectedMetrics = localSelectedMetrics;\n }\n\n // if user unselect the asin field, then number_of_asin set to 0 for that field\n // and remove the data of that asin also from data object\n const localAsinObject = {\n isParentTopAsins: 'parentTopAsins',\n isParentBottomAsins: 'parentBottomAsins',\n isChildTopAsins: 'childTopAsins',\n isChildBottomAsins: 'childBottomAsins',\n };\n if (_.keys(localAsinObject).includes(keyName) && !value) {\n newGraph[indexNumber][fieldName][localAsinObject[keyName]] = 0;\n const graphApiResponce = JSON.parse(\n JSON.stringify(commanFieldsDetails.graphApiResponseData),\n );\n if (keyName === 'isParentTopAsins') {\n graphApiResponce[indexNumber].sellerDetails.topParentAsins = [];\n }\n if (keyName === 'isParentBottomAsins') {\n graphApiResponce[indexNumber].sellerDetails.bottomParentAsins = [];\n }\n if (keyName === 'isChildTopAsins') {\n graphApiResponce[indexNumber].sellerDetails.topChildAsins = [];\n }\n if (keyName === 'isChildBottomAsins') {\n graphApiResponce[indexNumber].sellerDetails.bottomChildAsins = [];\n }\n commanFieldsDetails.setGraphApiResponseData(graphApiResponce);\n }\n\n // call ASIN api when user select asin\n if (_.keys(localAsinObject).includes(keyName) && value) {\n newGraph[indexNumber][fieldName][localAsinObject[keyName]] = 1;\n commanFieldsDetails.getSalesAsinsReportData(\n indexNumber,\n localAsinObject[keyName],\n 1,\n commanFieldsDetails?.selectedTimeFrame?.value,\n );\n }\n\n // call ASIN api when user set/change the asin count\n if (\n [\n 'parentTopAsins',\n 'parentBottomAsins',\n 'isParentAllAsins',\n 'childBottomAsins',\n 'childTopAsins',\n 'isChildAllAsins',\n ].includes(keyName)\n ) {\n commanFieldsDetails.getSalesAsinsReportData(\n indexNumber,\n keyName,\n value,\n commanFieldsDetails?.selectedTimeFrame?.value,\n );\n }\n // if (!isTimeFrameDisabled)\n // // once user start filling options, then disabled the timeframe option\n // setIsTimeFrameDisabled(true);\n\n setGraphDetails(newGraph);\n\n // if we chnaged the graph frequency, then call the metrics data API to get data\n if (keyName === 'graphFrequency') {\n commanFieldsDetails.getMetricsReportData(\n indexNumber,\n value, // graph frequency\n // graphDetails[indexNumber][fieldName]?.sponsoredType?.value,\n commanFieldsDetails?.selectedTimeFrame?.value,\n fieldName,\n );\n }\n };\n\n // if sponsored, dsp and inventory field selected before selecting timeframe.\n // And user select year to date option then unselect that selected options\n // because for year to date time frame option, sponsored, dsp and inventory field is disabled.\n const unselectSelctedFields = (value, graphData) => {\n if (value === 'year') {\n const newGraph = JSON.parse(JSON.stringify(graphData));\n const sponoredDspInventoryKeys = { ...sponoredDspKeys, ...inventoryKeys };\n graphData.forEach((element, indexNumber) => {\n _.keys(sponoredDspInventoryKeys).map((option) => {\n if (\n (commanFieldsDetails.accountType.isSeller ||\n commanFieldsDetails.accountType.isHybrid) &&\n element.sellerDetails[option]\n ) {\n // set field as false- seller\n newGraph[indexNumber].sellerDetails[option] = false;\n\n // remove from selected metrics object - seller\n let localSelectedMetrics =\n newGraph[indexNumber]?.sellerDetails?.selectedMetrics;\n if (\n Object.prototype.hasOwnProperty.call(localSelectedMetrics, option)\n ) {\n localSelectedMetrics = _.omit(localSelectedMetrics, [option]);\n }\n newGraph[indexNumber].sellerDetails.selectedMetrics =\n localSelectedMetrics;\n }\n if (\n (commanFieldsDetails.accountType.isVendor ||\n commanFieldsDetails.accountType.isHybrid) &&\n element.vendorDetails[option]\n ) {\n // set field as false-vendor\n newGraph[indexNumber].vendorDetails[option] = false;\n\n // remove from selected metrics object- vendor\n let localSelectedMetrics =\n newGraph[indexNumber]?.vendorDetails?.selectedMetrics;\n if (\n Object.prototype.hasOwnProperty.call(localSelectedMetrics, option)\n ) {\n localSelectedMetrics = _.omit(localSelectedMetrics, [option]);\n }\n newGraph[indexNumber].vendorDetails.selectedMetrics =\n localSelectedMetrics;\n }\n return null;\n });\n });\n return newGraph;\n }\n\n if (value === 'month') {\n const newGraph = JSON.parse(JSON.stringify(graphData));\n graphData.forEach((element, indexNumber) => {\n _.keys(inventoryKeys).map((option) => {\n if (\n (commanFieldsDetails.accountType.isSeller ||\n commanFieldsDetails.accountType.isHybrid) &&\n element.sellerDetails[option]\n ) {\n newGraph[indexNumber].sellerDetails[option] = false;\n }\n if (\n commanFieldsDetails.accountType.isVendor &&\n element.vendorDetails[option]\n ) {\n newGraph[indexNumber].vendorDetails[option] = false;\n }\n return null;\n });\n });\n return newGraph;\n }\n\n if (value === 'custom') {\n const newGraph = JSON.parse(JSON.stringify(graphData));\n graphData.forEach((element, indexNumber) => {\n if (\n commanFieldsDetails.accountType.isSeller ||\n commanFieldsDetails.accountType.isHybrid\n ) {\n newGraph[indexNumber].sellerDetails.showPreviousDataPoint = false;\n }\n if (\n commanFieldsDetails.accountType.isVendor ||\n commanFieldsDetails.accountType.isHybrid\n ) {\n newGraph[indexNumber].vendorDetails.showPreviousDataPoint = false;\n }\n });\n return newGraph;\n }\n return graphData;\n };\n\n const handleTimeFramefilter = (event) => {\n const { value } = event;\n\n if (value !== 'custom') {\n const groupByOptions =\n commanFieldsDetails.checkIsGroupFrequencyDisabled(value);\n commanFieldsDetails.setEnabledGroupFrequencyList(\n groupByOptions.enabledList,\n );\n setGraphDetails(unselectSelctedFields(value, groupByOptions.newGraph));\n\n commanFieldsDetails.setSelectedTimeFrame(event);\n\n commanFieldsDetails.bindMultipleApiRequest(\n groupByOptions.newGraph,\n value,\n null,\n );\n setSelectedState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'reportSelection',\n },\n ]);\n\n // if user used template and changed the time_frame_filter\n // 1. then we need to reset the report_title and report_description.\n // 2. if user again set the same tiem_frame (which we got from template)\n // then set the predefine report_title and report_description.\n // (this logic is not applicable to custom_time_frame).\n\n if (\n reportStatus === 'new' &&\n templateReportTitle !== null &&\n templateTimeFrame.value !== value\n ) {\n commanFieldsDetails.setReportTitle('');\n commanFieldsDetails.setReportDescription('');\n } else if (\n reportStatus === 'new' &&\n templateReportTitle !== null &&\n templateTimeFrame.value === value\n ) {\n commanFieldsDetails.setReportTitle(templateReportTitle);\n commanFieldsDetails.setReportDescription(templateReportDescrition);\n }\n } else {\n setShowCustomDateModal(true);\n }\n };\n\n const handleOnProceedClick = () => {\n commanFieldsDetails.setShowSaveReportModal(true);\n const newGraph = JSON.parse(JSON.stringify(graphDetails));\n for (\n let index = 0;\n index < commanFieldsDetails.editorDetails.length;\n index += 1\n ) {\n if (\n commanFieldsDetails.accountType.isSeller ||\n commanFieldsDetails.accountType.isHybrid\n ) {\n newGraph[index].sellerDetails.graphTitle =\n commanFieldsDetails.editorDetails[index].sellerDetails.graphTitle;\n newGraph[index].sellerDetails.metricMessage =\n commanFieldsDetails.editorDetails[index].sellerDetails.metricMessage;\n newGraph[index].sellerDetails.parentAsinMessage =\n commanFieldsDetails.editorDetails[\n index\n ].sellerDetails.parentAsinMessage;\n newGraph[index].sellerDetails.childAsinMessage =\n commanFieldsDetails.editorDetails[\n index\n ].sellerDetails.childAsinMessage;\n newGraph[index].sellerDetails.sellerHeathMessge =\n commanFieldsDetails.editorDetails[\n index\n ].sellerDetails.sellerHeathMessge;\n newGraph[index].sellerDetails.inventoryManagementMessage =\n commanFieldsDetails.editorDetails[\n index\n ].sellerDetails.inventoryManagementMessage;\n }\n if (\n commanFieldsDetails.accountType.isVendor ||\n commanFieldsDetails.accountType.isHybrid\n ) {\n newGraph[index].vendorDetails.graphTitle =\n commanFieldsDetails.editorDetails[index].vendorDetails.graphTitle;\n newGraph[index].vendorDetails.metricMessage =\n commanFieldsDetails.editorDetails[index].vendorDetails.metricMessage;\n newGraph[index].vendorDetails.inventoryManagementMessage =\n commanFieldsDetails.editorDetails[\n index\n ].vendorDetails.inventoryManagementMessage;\n }\n }\n setGraphDetails(newGraph, commanFieldsDetails.editorDetails);\n };\n\n const applyCustomDate = () => {\n if (\n commanFieldsDetails?.selectedTimeFrame === undefined ||\n commanFieldsDetails?.selectedTimeFrame.value !== 'custom'\n )\n commanFieldsDetails.setSelectedTimeFrame({\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n\n const groupByOptions =\n commanFieldsDetails.checkIsGroupFrequencyDisabled('custom');\n commanFieldsDetails.setEnabledGroupFrequencyList(\n groupByOptions.enabledList,\n );\n\n setGraphDetails(unselectSelctedFields('custom', groupByOptions.newGraph));\n\n commanFieldsDetails.bindMultipleApiRequest(\n groupByOptions.newGraph,\n 'custom',\n null,\n );\n\n setShowCustomDateModal(false);\n };\n\n // check the key is slected or not\n const checkSelectedKeys = (objectName, arrayName) => {\n const availebleKeys = Object.keys(objectName).filter((key) => {\n return objectName[key] && arrayName.includes(key);\n });\n return availebleKeys;\n };\n\n const renderCustomDateSubLabel = (props) => {\n if (commanFieldsDetails?.selectedTimeFrame === undefined) {\n return null;\n }\n if (\n commanFieldsDetails?.selectedTimeFrame !== undefined &&\n commanFieldsDetails?.selectedTimeFrame.value === 'custom'\n ) {\n return `From - ${dayjs(selectedState[0].startDate).format(\n 'MMM D, YYYY',\n )} To - ${dayjs(selectedState[0].endDate).format('MMM D, YYYY')}`;\n }\n return props.data.sub;\n };\n\n const filterOption = (props) => (\n \n );\n\n const singleFilterOption = (props) => (\n \n \n {commanFieldsDetails?.selectedTimeFrame !== undefined\n ? props.data.label\n : 'Select Date'}\n \n\n
    {renderCustomDateSubLabel(props)}
    \n
    \n );\n\n const adTypesSingleFilterOption = (props) => (\n \n {props.data.label}\n\n
    {props.data.sub}
    \n
    \n );\n\n const getAdTypesSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: adTypesSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n const CalenderIndicator = ({ selectProps, ...props }) => (\n \n \n \n );\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator: CalenderIndicator,\n };\n };\n\n const renderTimeFilterDropDown = () => {\n return (\n \n {\n handleTimeFramefilter(event);\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: Theme.white,\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n value={commanFieldsDetails?.selectedTimeFrame}\n styles={{\n placeholder: (defaultStyles) => {\n return {\n ...defaultStyles,\n color: '#2E384D',\n };\n },\n }}\n />\n <>\n {commanFieldsDetails?.selectedTimeFrame === undefined &&\n reportStatus !== 'readyToEdit' ? (\n This is a required field.\n ) : null}\n {reportStatus === 'readyToEdit'\n ? `From - ${dayjs(dateToShow.startDate).format(\n 'MMM D, YYYY',\n )} To - ${dayjs(dateToShow.endDate).format('MMM D, YYYY')}`\n : null}\n \n \n );\n };\n\n const renderCheckBox = (\n graphIndex,\n graphData,\n idName,\n labelName,\n fieldName,\n keyName,\n className,\n spanClass,\n isMetrics,\n isSubType = false,\n ) => {\n let isDisabled = false;\n\n // you can select upto 4 metrics at a time, other will disabled\n if (isMetrics) {\n isDisabled =\n _.size(graphData?.selectedMetrics) === 4 &&\n !Object.prototype.hasOwnProperty.call(\n graphData?.selectedMetrics,\n keyName,\n );\n }\n\n // disabled the metric if data is not avalible for that metric\n if (\n isMetrics &&\n !isDisabled &&\n commanFieldsDetails?.metricsDataAvailabilityFlag.length\n ) {\n isDisabled =\n !commanFieldsDetails?.metricsDataAvailabilityFlag[graphIndex]?.[\n fieldName\n ]?.[keyName];\n\n if (isDisabled && graphData[keyName]) {\n handleGraphDetailsOnChange(\n graphIndex,\n fieldName,\n keyName,\n false,\n isMetrics,\n );\n }\n }\n\n if (commanFieldsDetails.metricDataLoader) {\n isDisabled = true;\n }\n\n if (keyName === 'showPreviousDataPoint') {\n isDisabled =\n _.size(graphData?.selectedMetrics) > 2 ||\n commanFieldsDetails?.selectedTimeFrame?.value === 'custom';\n if (isDisabled && graphData?.showPreviousDataPoint) {\n handleGraphDetailsOnChange(\n graphIndex,\n fieldName,\n keyName,\n false,\n isMetrics,\n );\n }\n }\n\n // if isBuyBoxGraph is not selected then, diabled the show graph and show table option of BB%\n if (\n (keyName === 'showBuyBoxGraphTable' || keyName === 'buyBoxGraph') &&\n !graphDetails[graphIndex][fieldName]?.isBuyBoxGraph\n ) {\n isDisabled = true;\n }\n\n // Work for Existing report- If Buy Box Graph Table OR buy Box Graph selected then set the isBuyBoxGraph as TRUE\n if (\n keyName === 'isBuyBoxGraph' &&\n !graphDetails[graphIndex][fieldName]?.isBuyBoxGraph &&\n (graphDetails[graphIndex][fieldName]?.showBuyBoxGraphTable ||\n graphDetails[graphIndex][fieldName]?.buyBoxGraph)\n ) {\n handleGraphDetailsOnChange(\n graphIndex,\n fieldName,\n keyName,\n true,\n isMetrics,\n );\n }\n\n if (\n reportStatus === 'readyToEdit' &&\n !graphDetails[graphIndex][fieldName][keyName]\n ) {\n return null;\n }\n\n return (\n
    \n \n {labelName}\n {\n if (reportStatus !== 'readyToEdit') {\n handleGraphDetailsOnChange(\n graphIndex,\n fieldName,\n keyName,\n event.target.checked,\n isMetrics,\n );\n }\n }}\n onChange={() => {}}\n checked={graphData[keyName]}\n />\n \n \n
    \n );\n };\n\n const renderRadioButtons = (\n id,\n name,\n value,\n isChecked,\n labelName,\n labelClass,\n ) => {\n return (\n <>\n {}}\n />\n \n \n );\n };\n\n // render rectangular shaped toggle button html\n const renderDataTableViewButton = (\n graphData,\n graphIndex,\n fieldName,\n keyName,\n tableName,\n ) => {\n const value = graphData?.[keyName];\n\n return (\n
    \n
      \n {\n if (reportStatus === 'edit' || reportStatus === 'new') {\n handleGraphDetailsOnChange(\n graphIndex,\n fieldName,\n keyName,\n 'detailedView',\n false, // isMetrics\n );\n }\n }}\n >\n {renderRadioButtons(\n `${tableName}DetailedView${graphIndex}`,\n `${tableName}-detailed-view-${graphIndex}`,\n value,\n value === 'detailedView',\n 'Detailed View',\n 'radio-container customer-list',\n )}\n \n {\n if (reportStatus === 'edit' || reportStatus === 'new') {\n handleGraphDetailsOnChange(\n graphIndex,\n fieldName,\n keyName,\n 'summaryView',\n false, // isMetrics\n );\n }\n }}\n >\n {renderRadioButtons(\n `${tableName}SummaryView${graphIndex}`,\n `${tableName}-summary-view-${graphIndex}`,\n value,\n value === 'summaryView',\n 'Summary View',\n 'radio-container customer-list',\n )}\n \n
    \n
    \n );\n };\n\n const renderNumberOfAsins = (index, data, fieldName, keyName) => {\n if (\n reportStatus === 'readyToEdit' &&\n !graphDetails[index][fieldName][keyName]\n ) {\n return null;\n }\n\n let numberLimit = 1;\n if (keyName === 'parentTopAsins' || keyName === 'parentBottomAsins') {\n numberLimit = commanFieldsDetails?.asinDataCount?.parent_asin || 1;\n } else if (keyName === 'childTopAsins' || keyName === 'childBottomAsins') {\n numberLimit = commanFieldsDetails?.asinDataCount?.child_asin || 1;\n }\n\n return (\n <>\n {\n if (reportStatus !== 'readyToEdit')\n handleGraphDetailsOnChange(\n index,\n fieldName,\n keyName,\n parseInt(data[keyName], 10) - 1\n ? parseInt(data[keyName], 10) - 1\n : 0,\n false, // isMetrics\n );\n }}\n disabled={\n parseInt(data[keyName], 10) <= 1 ||\n commanFieldsDetails.metricDataLoader\n }\n >\n \"\"\n \n\n {\n handleGraphDetailsOnChange(\n index,\n fieldName,\n keyName,\n parseInt(event.target.value, 10),\n false, // isMetrics\n );\n }}\n isAllowed={(values) => {\n const { floatValue } = values;\n return floatValue >= 1 && floatValue <= numberLimit;\n }}\n allowNegative={false}\n />\n\n {\n if (reportStatus !== 'readyToEdit')\n handleGraphDetailsOnChange(\n index,\n fieldName,\n keyName,\n parseInt(data[keyName], 10) + 1,\n false, // isMetrics\n );\n }}\n disabled={\n parseInt(data[keyName], 10) >= numberLimit ||\n commanFieldsDetails.metricDataLoader\n }\n >\n \"\"\n \n \n );\n };\n\n const renderReportHeader = () => {\n return (\n
    \n \"pdf\"\n

    Report 1

    \n {reportStatus === 'readyToEdit' || reportStatus === 'view' ? (\n \n ) : (\n \n )}\n
    \n
    \n );\n };\n\n const renderReportCommanFieldsDetails = () => {\n return (\n <>\n {reportStatus !== 'view' ? (\n
      \n \n {renderTimeFilterDropDown()}\n \n {commanFieldConstant.map((field) => {\n return (\n
    • \n \n \n {}}\n />\n \n
    • \n );\n })}\n
    • \n \n \n {\n setReportSummary(event.target.value);\n }}\n />\n \n {reportSummary === '' && reportStatus !== 'readyToEdit' ? (\n This is a required field.\n ) : null}\n
      \n
    • \n
    \n ) : null}\n \n );\n };\n\n const renderReportFooter = () => {\n return (\n
    \n
    \n {reportStatus === 'readyToEdit' ? (\n {\n commanFieldsDetails.checkReportStatus();\n }}\n >\n \n Edit Graph\n \n ) : (\n <>\n {\n commanFieldsDetails.handleAddAdditonalGraph();\n // disabled the timeframe option\n setIsTimeFrameDisabled(true);\n }}\n >\n {' '}\n Add Additional Graph\n \n {\n handleOnProceedClick();\n }}\n >\n Proceed\n \n \n )}\n
    \n );\n };\n\n const renderErrorMessage = (flag, selectedGraph, index, fieldName) => {\n if (\n reportStatus !== 'readyToEdit' &&\n !commanFieldsDetails.metricDataLoader\n ) {\n if (flag === 'adPeformance') {\n if (selectedGraph?.adPerformance === 'sponsored') {\n if (\n [\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adAcos,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adSpend,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adConversionRate,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adImpressions,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adAcos,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adRoas,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adCostPerClick,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adClicks,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.adClickThroughRate,\n ].filter(Boolean).length === 0\n ) {\n return (\n \n No sponsored advertising data available for this BP.\n \n );\n }\n }\n\n if (selectedGraph?.adPerformance === 'dsp') {\n if (\n [\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.dspImpressions,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.dspSpend,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.dspTotalProductSales,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.dspTotalRoas,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.dspTotalDpvr,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.dspTotalNewBrandPurchases,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.dspProductSales,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]?.[\n fieldName\n ]?.dspRoas,\n ].filter(Boolean).length === 0\n ) {\n return (\n \n No DSP advertising data available for this BP.\n \n );\n }\n }\n }\n if (flag === 'salesPeformance') {\n if (\n [\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.sellerDetails?.salesRevenueTotal,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.sellerDetails?.salesRevenuePpc,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.sellerDetails?.salesRevenueDsp,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.sellerDetails?.salesUnitSold,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.sellerDetails?.salesTraffic,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.sellerDetails?.salesConversion,\n ].filter(Boolean).length === 0\n ) {\n return (\n \n No sales performance data available for this BP.\n \n );\n }\n }\n\n if (flag === 'vendorSalesPeformance') {\n if (selectedGraph?.saleType === 'shippedCogs') {\n if (\n [\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.vendorDetails?.salesShippedCogs,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.vendorDetails?.salesShippedGlanceViews,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.vendorDetails?.salesShippedConversionRate,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.vendorDetails?.salesShippedUnits,\n ].filter(Boolean).length === 0\n ) {\n return (\n \n No shipped cogs data available for this BP.\n \n );\n }\n } else if (selectedGraph?.saleType === 'orderedRevenue') {\n if (\n [\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.vendorDetails?.salesOrderedRevenue,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.vendorDetails?.salesOrderedGlanceViews,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.vendorDetails?.salesOrderedConversionRate,\n commanFieldsDetails?.metricsDataAvailabilityFlag[index]\n ?.vendorDetails?.salesOrderedUnits,\n ].filter(Boolean).length === 0\n ) {\n return (\n \n No ordered revenue data available for this BP.\n \n );\n }\n }\n }\n }\n return null;\n };\n\n const handledSaveModal = () => {\n if (\n commanFieldsDetails?.reportTitle === '' ||\n commanFieldsDetails?.reportDescription === ''\n ) {\n setShowSaveModalErrorMessage(true);\n return null;\n }\n commanFieldsDetails.saveReportDetails(editReportOptions);\n return null;\n };\n\n const renderGraphFields = (value, graphIndex) => {\n let graphName = '';\n if (commanFieldsDetails.accountType.isSeller) {\n graphName = value?.sellerDetails?.graphTitle.replace(/(<([^>]+)>)/gi, '');\n } else if (commanFieldsDetails.accountType.isVendor) {\n graphName = value?.vendorDetails?.graphTitle.replace(/(<([^>]+)>)/gi, '');\n } else {\n // for hybrid account type\n graphName = value?.sellerDetails?.graphTitle.replace(/(<([^>]+)>)/gi, '');\n // if seller title not set then get the vendor title.\n if (graphName?.length <= 1) {\n graphName = value?.vendorDetails?.graphTitle.replace(\n /(<([^>]+)>)/gi,\n '',\n );\n }\n }\n\n return (\n \n
    \n 1 ? graphName : `GRAPH ${graphIndex + 1}`\n }\n data-for=\"graphTitleTooltip\"\n >\n {graphName?.length > 1 ? graphName : `GRAPH ${graphIndex + 1}`}{' '}\n \n {graphDetails.length !== 1 ? (\n {\n if (reportStatus !== 'readyToEdit') {\n setIndexToDeleteGraph(graphIndex);\n setShowDeleteGraphConfirmationModal(true);\n }\n }}\n />\n ) : null}\n {value.isOpen ? (\n {\n setGraphDetails(\n commanFieldsDetails.handleGraphCollapse(graphIndex, false),\n );\n }}\n />\n ) : (\n {\n setGraphDetails(\n commanFieldsDetails.handleGraphCollapse(graphIndex, true),\n );\n }}\n />\n )}\n
    \n
    \n
    \n \n {commanFieldsDetails.accountType.isSeller ||\n commanFieldsDetails.accountType.isHybrid ? (\n \n ) : null}\n\n {commanFieldsDetails.accountType.isVendor ||\n commanFieldsDetails.accountType.isHybrid ? (\n \n ) : null}\n \n \n
    \n );\n };\n\n const renderDeleteModal = () => {\n return (\n \n {\n setIndexToDeleteGraph(null);\n setShowDeleteGraphConfirmationModal(false);\n }}\n role=\"presentation\"\n />\n \n
    \n

    \n Delete Graph\n

    \n
    \n Are you sure you would like to delete this graph?\n
    \n This action cannot be undone.\n
    \n
    \n
    \n
    \n {\n graphDetails.splice(indexToDeleteGraph, 1);\n commanFieldsDetails.editorDetails.splice(\n indexToDeleteGraph,\n 1,\n );\n commanFieldsDetails.graphApiResponseData.splice(\n indexToDeleteGraph,\n 1,\n );\n commanFieldsDetails.metricsDataAvailabilityFlag.splice(\n indexToDeleteGraph,\n 1,\n );\n if (graphDetails.length === 1) {\n setIsTimeFrameDisabled(false);\n }\n setShowDeleteGraphConfirmationModal(false);\n }}\n >\n Confirm Delete\n \n
    \n
    \n {\n setIndexToDeleteGraph(null);\n setShowDeleteGraphConfirmationModal(false);\n }}\n >\n Don't Delete\n \n
    \n
    \n
    \n
    \n \n );\n };\n\n const renderSaveDetailsModal = () => {\n const splitedTimer = commanFieldsDetails?.countDownTimer.split(':');\n return (\n \n {!commanFieldsDetails.isRemainderUp ? (\n {\n commanFieldsDetails.setShowSaveReportModal(false);\n setShowReportPDFTemplate(false);\n }}\n role=\"presentation\"\n />\n ) : null}\n \n \n {(commanFieldsDetails.customReportId !== null ||\n commanFieldsDetails.customReportId !== '') &&\n reportStatus === 'edit' &&\n commanFieldsDetails.isRemainderUp ? (\n \n
    TIME REMAINING
    \n
    \n {splitedTimer[1]}MINUTES{' '}\n :\n {splitedTimer[2]}SECONDS\n
    \n
    \n Your session is expiring. If your session expires, all of\n your unsaved data will be lost. To save your data, click\n save.\n
    \n
    \n \n ) : null}\n\n

    \n {(commanFieldsDetails.customReportId !== null ||\n commanFieldsDetails.customReportId !== '') &&\n reportStatus === 'edit'\n ? 'Edit Downloaded Report'\n : 'Save Report'}\n

    \n\n {(commanFieldsDetails.customReportId !== null ||\n commanFieldsDetails.customReportId !== '') &&\n reportStatus === 'edit' &&\n commanFieldsDetails.isRemainderUp ? (\n
    \n You may continue to edit after saving your progress\n
    \n ) : null}\n\n
    \n\n {(commanFieldsDetails.customReportId !== null ||\n commanFieldsDetails.customReportId !== '') &&\n reportStatus === 'edit' ? (\n
      \n {saveReportOptions.map((option) => {\n return (\n \n \n \n \n \n );\n })}\n
    \n ) : null}\n\n
    \n \n \n {\n commanFieldsDetails.setReportTitle(event.target.value);\n }}\n />\n \n {showSaveModalErrorMessage &&\n commanFieldsDetails?.reportTitle === '' ? (\n This is a required field.\n ) : null}\n\n \n {\n commanFieldsDetails.setReportDescription(\n event.target.value,\n );\n }}\n />\n \n {showSaveModalErrorMessage &&\n commanFieldsDetails?.reportDescription === '' ? (\n This is a required field.\n ) : null}\n
    \n\n {templateReportTitle !== null ? (\n
    \n
    \n
    \n \n Report created is based on a template. Ensure that the\n necessary guide questions has been deleted and required\n information has been added.{' '}\n
    \n
    \n
    \n ) : null}\n\n
    \n
    \n {\n handledSaveModal();\n setShowReportPDFTemplate(true);\n }}\n >\n {commanFieldsDetails?.saveDetailsLoader ? (\n \n ) : (\n 'Save'\n )}\n \n
    \n
    \n
    \n
    \n \n );\n };\n\n const renderCustomDateModal = () => {\n return (\n {\n setShowCustomDateModal(false);\n if (\n commanFieldsDetails?.selectedTimeFrame !== undefined &&\n commanFieldsDetails?.selectedTimeFrame.value !== 'custom'\n ) {\n setSelectedState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'reportSelection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setSelectedState([item.reportSelection]);\n }}\n onApply={() => {\n applyCustomDate();\n }}\n currentDate={currentDate}\n minDate={new Date('01/01/1901')}\n />\n );\n };\n\n return (\n
    \n \n \n {renderReportHeader()}\n {reportStatus !== 'view' ? (\n <>\n {renderReportCommanFieldsDetails()}\n {graphDetails &&\n graphDetails.map((value, index) => {\n return renderGraphFields(value, index);\n })}\n {renderReportFooter()}\n \n ) : null}\n \n\n {renderDeleteModal()}\n\n {renderSaveDetailsModal()}\n\n {/* custom date modal for sale performance graph */}\n {renderCustomDateModal()}\n \n
    \n );\n};\n\nexport default ReportRightSidePanel;\n\nReportRightSidePanel.defaultProps = {\n customerName: '',\n reportStatus: '',\n templateTimeFrame: '',\n templateReportTitle: '',\n templateReportDescrition: '',\n isTimeFrameDisabled: false,\n graphDetails: [],\n commanFieldsDetails: {},\n data: {},\n selectProps: {},\n selectedState: {},\n dateToShow: {},\n reportSummary: '',\n setSelectedState: [],\n showMetricsTooltip: [],\n currentDate: new Date(),\n setGraphDetails: () => {},\n setReportStatus: () => {},\n setReportSummary: () => {},\n setIsTimeFrameDisabled: () => {},\n setShowReportPDFTemplate: () => {},\n};\n\nReportRightSidePanel.propTypes = {\n customerName: string,\n reportStatus: string,\n reportSummary: string,\n templateTimeFrame: string,\n templateReportTitle: string,\n templateReportDescrition: string,\n isTimeFrameDisabled: bool,\n setGraphDetails: func,\n setReportStatus: func,\n setSelectedState: func,\n setReportSummary: func,\n setIsTimeFrameDisabled: func,\n setShowReportPDFTemplate: func,\n currentDate: instanceOf(Date),\n data: shape({}),\n dateToShow: shape({}),\n commanFieldsDetails: shape({}),\n selectProps: shape({}),\n selectedState: arrayOf(shape({})),\n graphDetails: arrayOf(shape({})),\n showMetricsTooltip: arrayOf(shape({})),\n};\n\nconst TimmerOut = styled.div`\n margin: 0 auto;\n .timmer-block {\n border-radius: 4px;\n background: ${Theme.lightOrange};\n color: ${Theme.orange};\n padding: 4px 16px;\n color: ${Theme.gray40};\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.titleFontFamily};\n text-transform: uppercase;\n margin: 0 auto;\n width: fit-content;\n\n span {\n color: ${Theme.orange};\n font-size: ${Theme.secondaryTitleFontSize};\n vertical-align: sub;\n }\n .error-message {\n color: ${Theme.orange};\n font-size: ${Theme.extraNormal};\n text-transform: none;\n vertical-align: sub;\n padding: 5px 0;\n font-family: ${Theme.baseFontFamily};\n }\n }\n`;\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { bool, func } from 'prop-types';\n\nimport { Button, ModalBox } from '../../../common';\n\nimport { customStyles } from '../../../constants';\n\nexport default function ConfirmCloseReportModal({\n isModalOpen,\n afterModalCloseAPI,\n modalConfirmButtonEvents,\n}) {\n // render modal body content\n const renderModalBody = () => {\n return (\n
    \n

    CONFIRM NAVIGATION

    \n\n
    \n
    \n

    \n Do you want to leave this page? Changes you made will not be saved.\n If you would like to save your changes, click on the “Keep editing”\n button.\n

    \n
    \n
    \n
    \n );\n };\n\n // render modal footer\n const renderModalFooter = () => {\n return (\n
    \n
    \n
    \n {\n modalConfirmButtonEvents();\n }}\n >\n Close without saving\n \n
    \n
    \n {\n afterModalCloseAPI();\n }}\n >\n Keep editing\n \n
    \n
    \n
    \n );\n };\n\n // render modal content\n const renderModalContent = () => {\n return (\n <>\n \n \n {renderModalBody()}\n {renderModalFooter()}\n \n \n \n );\n };\n\n /* ********** main return statement of this component ********** */\n return
    {renderModalContent()}
    ;\n}\n\nConfirmCloseReportModal.defaultProps = {\n isModalOpen: false,\n afterModalCloseAPI: () => {},\n modalConfirmButtonEvents: () => {},\n};\n\nConfirmCloseReportModal.propTypes = {\n isModalOpen: bool,\n afterModalCloseAPI: func,\n modalConfirmButtonEvents: func,\n};\n","import dayjs from 'dayjs';\n\n// bind the all(sales, sponsores, dsp, shippedcogs, ordered) metrics responce to show the graph and table\nconst BindGraphDataApiResponse = (response, acType, selectedState) => {\n const tempData = [];\n let sellerVendorField = {};\n\n const previousKey =\n acType === 'seller' ? response.previous_seller : response.previous_vendor;\n const currentKey =\n acType === 'seller' ? response.current_seller : response.current_vendor;\n\n const previousTotalKey =\n acType === 'seller'\n ? response?.previous_seller_total\n : response?.previous_vendor_total;\n const currentTotalKey =\n acType === 'seller'\n ? response?.current_seller_total\n : response?.current_vendor_total;\n\n const currentChangeInValueKey =\n acType === 'seller'\n ? response?.current_seller_change\n : response?.current_vendor_change;\n const currentChangeInPercentKey =\n acType === 'seller'\n ? response?.current_seller_percent_change\n : response?.current_vendor_percent_change;\n\n const totalChangeInValueKey =\n acType === 'seller'\n ? response?.seller_total_change_data\n : response?.vendor_total_change_data;\n const totalChangeInPercentKey =\n acType === 'seller'\n ? response?.seller_total_percent_change_data\n : response?.vendor_total_percent_change_data;\n\n // get a last date of the week\n const getYesterday = (reportDate) => {\n const yesterday = new Date(reportDate);\n yesterday.setDate(yesterday.getDate() - 1);\n return yesterday;\n };\n\n const getEndDate = (index, graphDataArray) => {\n return dayjs(\n index + 1 < graphDataArray?.length\n ? getYesterday(graphDataArray[index + 1]?.report_date)\n : response?.previous_end_date,\n ).format('MMM D YYYY');\n };\n\n // filterout previous data in one temporary object.\n if (previousKey?.length) {\n previousKey.forEach((item, index) => {\n const previousDate = selectedState;\n\n if (acType === 'seller') {\n sellerVendorField = {\n salesRevenueTotalPrevious: item?.revenue,\n salesRevenuePpcPrevious: item?.revenue_ppc,\n salesRevenueDspPrevious: item?.revenue_dsp,\n salesTacosPrevious: item?.tacos,\n salesUnitSoldPrevious: item?.units_sold,\n salesTrafficPrevious: item?.traffic,\n salesConversionPrevious: item?.conversion,\n salesAdSpendTotalPrevious: item?.ad_spend_total,\n salesAdSpendPpcPrevious: item?.sales_ad_spend,\n salesAdSpendDspPrevious: item?.sales_dsp_spends,\n\n salesRevenueTotalPreviousLabel:\n item?.revenue !== null ? item.revenue.toFixed(2) : '0.00',\n salesRevenuePpcPreviousLabel:\n item?.revenue_ppc !== null ? item.revenue_ppc.toFixed(2) : '0.00',\n salesRevenueDspPreviousLabel:\n item?.revenue_dsp !== null ? item.revenue_dsp.toFixed(2) : '0.00',\n salesTacosPreviousLabel:\n item?.tacos !== null ? item.tacos.toFixed(2) : '0.00',\n salesUnitSoldPreviousLabel:\n item?.units_sold !== null ? item.units_sold.toFixed(0) : '0.00',\n salesTrafficPreviousLabel:\n item?.traffic !== null ? item.traffic.toFixed(0) : '0.00',\n salesConversionPreviousLabel:\n item?.conversion !== null ? item.conversion.toFixed(2) : '0.00',\n salesAdSpendTotalPreviousLabel:\n item?.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00',\n salesAdSpendPpcPreviousLabel:\n item?.sales_ad_spend !== null\n ? item.sales_ad_spend.toFixed(2)\n : '0.00',\n salesAdSpendDspPreviousLabel:\n item?.sales_dsp_spends !== null\n ? item.sales_dsp_spends.toFixed(2)\n : '0.00',\n };\n } else {\n sellerVendorField = {\n salesOrderedRevenuePrevious: item?.ordered_revenue,\n salesOrderedGlanceViewsPrevious: item?.glance_views,\n salesOrderedConversionRatePrevious: item?.conversion_rate,\n SalesOrderedUnitsPrevious: item?.ordered_units,\n salesShippedCogsPrevious: item?.shipped_cogs,\n salesShippedGlanceViewsPrevious: item?.glance_views,\n salesShippedConversionRatePrevious: item?.conversion_rate,\n salesShippedCogsUnitPrevious: item?.shipped_units,\n\n salesOrderedRevenuePreviousLabel:\n item?.ordered_revenue !== null\n ? item.ordered_revenue.toFixed(2)\n : '0.00',\n salesOrderedGlanceViewsPreviousLabel:\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0.00',\n salesOrderedConversionRatePreviousLabel:\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0.00',\n salesOrderedUnitsPreviousLabel:\n item?.ordered_units !== null\n ? item.ordered_units.toFixed(0)\n : '0.00',\n salesShippedCogsPreviousLabel:\n item?.shipped_cogs !== null ? item.shipped_cogs.toFixed(2) : '0.00',\n salesShippedGlanceViewsPreviousLabel:\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0.00',\n salesShippedUnitsPreviousLabel:\n item?.shipped_units !== null\n ? item.shipped_units.toFixed(0)\n : '0.00',\n salesShippedConversionRatePreviousLabel:\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0.00',\n };\n }\n\n tempData.push({\n ...sellerVendorField,\n\n /* ********** Binding the All sponsored previous keys ********** */\n adSalesPrevious: item?.all_ad_sales,\n adSpendPrevious: item?.all_ad_spend,\n adConversionRatePrevious: item?.all_ad_conversion_rate,\n adImpressionsPrevious: item?.all_impressions,\n adAcosPrevious: item?.all_acos,\n adRoasPrevious: item?.all_roas,\n adClicksPrevious: item?.all_clicks,\n adClickThroughRatePrevious: item?.all_ctr,\n adCostPerClickPrevious: item?.all_cost_per_click,\n\n /* ********** Binding the sponsored product previous keys ********** */\n adSalesSPPrevious: item?.product_campaign_report_ad_sales,\n adSpendSPPrevious: item?.product_campaign_report_ad_spend,\n adConversionRateSPPrevious:\n item?.product_campaign_report_ad_conversion_rate,\n adImpressionsSPPrevious: item?.product_campaign_report_impressions,\n adAcosSPPrevious: item?.product_campaign_report_acos,\n adRoasSPPrevious: item?.product_campaign_report_roas,\n adClicksSPPrevious: item?.product_campaign_report_clicks,\n adClickThroughRateSPPrevious: item?.product_campaign_report_ctr,\n adCostPerClickSPPrevious: item?.product_campaign_report_cost_per_click,\n\n /* ********** Binding the sponsored brand previous keys ********** */\n adSalesSBPrevious: item?.brand_campaign_report_ad_sales,\n adSpendSBPrevious: item?.brand_campaign_report_ad_spend,\n adConversionRateSBPrevious:\n item?.brand_campaign_report_ad_conversion_rate,\n adImpressionsSBPrevious: item?.brand_campaign_report_impressions,\n adAcosSBPrevious: item?.brand_campaign_report_acos,\n adRoasSBPrevious: item?.brand_campaign_report_roas,\n adClicksSBPrevious: item?.brand_campaign_report_clicks,\n adClickThroughRateSBPrevious: item?.brand_campaign_report_ctr,\n adCostPerClickSBPrevious: item?.brand_campaign_report_cost_per_click,\n\n /* ********** Binding the sponsored video previous keys ********** */\n adSalesSBVPrevious: item?.brand_video_campaign_report_ad_sales,\n adSpendSBVPrevious: item?.brand_video_campaign_report_ad_spend,\n adConversionRateSBVPrevious:\n item?.brand_video_campaign_report_ad_conversion_rate,\n adImpressionsSBVPrevious: item?.brand_video_campaign_report_impressions,\n adAcosSBVPrevious: item?.brand_video_campaign_report_acos,\n adRoasSBVPrevious: item?.brand_video_campaign_report_roas,\n adClicksSBVPrevious: item?.brand_video_campaign_report_clicks,\n adClickThroughRateSBVPrevious: item?.brand_video_campaign_report_ctr,\n adCostPerClickSBVPrevious:\n item?.brand_video_campaign_report_cost_per_click,\n\n /* ********** Binding the sponsored display previous keys ********** */\n adSalesSDPrevious: item?.sponsored_display_campaign_report_ad_sales,\n adSpendSDPrevious: item?.sponsored_display_campaign_report_ad_spend,\n adConversionRateSDPrevious:\n item?.sponsored_display_campaign_report_ad_conversion_rate,\n adImpressionsSDPrevious:\n item?.sponsored_display_campaign_report_impressions,\n adAcosSDPrevious: item?.sponsored_display_campaign_report_acos,\n adRoasSDPrevious: item?.sponsored_display_campaign_report_roas,\n adClicksSDPrevious: item?.sponsored_display_campaign_report_clicks,\n adClickThroughRateSDPrevious:\n item?.sponsored_display_campaign_report_ctr,\n adCostPerClickSDPrevious:\n item?.sponsored_display_campaign_report_cost_per_click,\n\n /* ********** Binding the dsp previous keys ********** */\n dspImpressionsPrevious: item?.dsp_impressions,\n dspSpendPrevious: item?.dsp_dsp_spend,\n dspTotalProductSalesPrevious: item?.total_product_sales,\n dspTotalRoasPrevious: item?.total_dsp_roas,\n dspTotalDpvrPrevious: item?.total_dpvr,\n dspTotalNewBrandPurchasesPrevious: item?.ttl_new_brand_purchases,\n dspProductSalesPrevious: item?.product_sales,\n dspRoasPrevious: item?.dsp_roas,\n\n previousDate,\n previousDateRange: {\n startDate: dayjs(item?.report_date).format('MMM D YYYY'),\n endDate: getEndDate(index, previousKey, 'previous'),\n },\n\n /* ********** Binding the All sponsored previous label keys ********** */\n adSalesPreviousLabel:\n item?.all_ad_sales !== null ? item.all_ad_sales.toFixed(2) : '0.00',\n adSpendPreviousLabel:\n item?.all_ad_spend !== null ? item.all_ad_spend.toFixed(2) : '0.00',\n adConversionRatePreviousLabel:\n item?.all_ad_conversion_rate !== null\n ? item.all_ad_conversion_rate.toFixed(2)\n : '0.00',\n adImpressionsPreviousLabel:\n item?.all_impressions !== null ? item.all_impressions : '0.00',\n adAcosPreviousLabel:\n item?.all_acos !== null ? item.all_acos.toFixed(2) : '0.00',\n adRoasPreviousLabel:\n item?.all_roas !== null ? item.all_roas.toFixed(2) : '0.00',\n adClicksPreviousLabel:\n item?.all_clicks !== null ? item.all_clicks : '0.00',\n adClickThroughRatePreviousLabel:\n item?.all_ctr !== null ? item.all_ctr.toFixed(2) : '0.00',\n adCostPerClickPreviousLabel:\n item?.all_cost_per_click !== null\n ? item.all_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the sponsored product previous label keys ********** */\n adSalesSPPreviousLabel:\n item?.product_campaign_report_ad_sales !== null\n ? item.product_campaign_report_ad_sales.toFixed(2)\n : '0.00',\n adSpendSPPreviousLabel:\n item?.product_campaign_report_ad_spend !== null\n ? item.product_campaign_report_ad_spend.toFixed(2)\n : '0.00',\n adConversionRateSPPreviousLabel:\n item?.product_campaign_report_ad_conversion_rate !== null\n ? item.product_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00',\n adImpressionsSPPreviousLabel:\n item?.product_campaign_report_impressions !== null\n ? item.product_campaign_report_impressions\n : '0.00',\n adAcosSPPreviousLabel:\n item?.product_campaign_report_acos !== null\n ? item.product_campaign_report_acos.toFixed(2)\n : '0.00',\n adRoasSPPreviousLabel:\n item?.product_campaign_report_roas !== null\n ? item.product_campaign_report_roas.toFixed(2)\n : '0.00',\n adClicksSPPreviousLabel:\n item?.product_campaign_report_clicks !== null\n ? item.product_campaign_report_clicks\n : '0.00',\n adClickThroughRateSPPreviousLabel:\n item?.product_campaign_report_ctr !== null\n ? item.product_campaign_report_ctr.toFixed(2)\n : '0.00',\n adCostPerClickSPPreviousLabel:\n item?.product_campaign_report_cost_per_click !== null\n ? item.product_campaign_report_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the sponsored brand previous label keys ********** */\n adSalesSBPreviousLabel:\n item?.brand_campaign_report_ad_sales !== null\n ? item.brand_campaign_report_ad_sales.toFixed(2)\n : '0.00',\n adSpendSBPreviousLabel:\n item?.brand_campaign_report_ad_spend !== null\n ? item.brand_campaign_report_ad_spend.toFixed(2)\n : '0.00',\n adConversionRateSBPreviousLabel:\n item?.brand_campaign_report_ad_conversion_rate !== null\n ? item.brand_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00',\n adImpressionsSBPreviousLabel:\n item?.brand_campaign_report_impressions !== null\n ? item.brand_campaign_report_impressions\n : '0.00',\n adAcosSBPreviousLabel:\n item?.brand_campaign_report_acos !== null\n ? item.brand_campaign_report_acos.toFixed(2)\n : '0.00',\n adRoasSBPreviousLabel:\n item?.brand_campaign_report_roas !== null\n ? item.brand_campaign_report_roas.toFixed(2)\n : '0.00',\n adClicksSBPreviousLabel:\n item?.brand_campaign_report_clicks !== null\n ? item.brand_campaign_report_clicks\n : '0.00',\n adClickThroughRateSBPreviousLabel:\n item?.brand_campaign_report_ctr !== null\n ? item.brand_campaign_report_ctr.toFixed(2)\n : '0.00',\n adCostPerClickSBPreviousLabel:\n item?.brand_campaign_report_cost_per_click !== null\n ? item.brand_campaign_report_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the sponsored video previous label keys ********** */\n adSalesSBVPreviousLabel:\n item?.brand_video_campaign_report_ad_sales !== null\n ? item.brand_video_campaign_report_ad_sales.toFixed(2)\n : '0.00',\n adSpendSBVPreviousLabel:\n item?.brand_video_campaign_report_ad_spend !== null\n ? item.brand_video_campaign_report_ad_spend.toFixed(2)\n : '0.00',\n adConversionRateSBVPreviousLabel:\n item?.brand_video_campaign_report_ad_conversion_rate !== null\n ? item.brand_video_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00',\n adImpressionsSBVPreviousLabel:\n item?.brand_video_campaign_report_impressions !== null\n ? item.brand_video_campaign_report_impressions\n : '0.00',\n adAcosSBVPreviousLabel:\n item?.brand_video_campaign_report_acos !== null\n ? item.brand_video_campaign_report_acos.toFixed(2)\n : '0.00',\n adRoasSBVPreviousLabel:\n item?.brand_video_campaign_report_roas !== null\n ? item.brand_video_campaign_report_roas.toFixed(2)\n : '0.00',\n adClicksSBVPreviousLabel:\n item?.brand_video_campaign_report_clicks !== null\n ? item.brand_video_campaign_report_clicks\n : '0.00',\n adClickThroughRateSBVPreviousLabel:\n item?.brand_video_campaign_report_ctr !== null\n ? item.brand_video_campaign_report_ctr.toFixed(2)\n : '0.00',\n adCostPerClickSBVPreviousLabel:\n item?.brand_video_campaign_report_cost_per_click !== null\n ? item.brand_video_campaign_report_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the sponsored display previous label keys ********** */\n adSalesSDPreviousLabel:\n item?.sponsored_display_campaign_report_ad_sales !== null\n ? item.sponsored_display_campaign_report_ad_sales.toFixed(2)\n : '0.00',\n adSpendSDPreviousLabel:\n item?.sponsored_display_campaign_report_ad_spend !== null\n ? item.sponsored_display_campaign_report_ad_spend.toFixed(2)\n : '0.00',\n adConversionRateSDPreviousLabel:\n item?.sponsored_display_campaign_report_ad_conversion_rate !== null\n ? item.sponsored_display_campaign_report_ad_conversion_rate.toFixed(\n 2,\n )\n : '0.00',\n adImpressionsSDPreviousLabel:\n item?.sponsored_display_campaign_report_impressions !== null\n ? item.sponsored_display_campaign_report_impressions\n : '0.00',\n adAcosSDPreviousLabel:\n item?.sponsored_display_campaign_report_acos !== null\n ? item.sponsored_display_campaign_report_acos.toFixed(2)\n : '0.00',\n adRoasSDPreviousLabel:\n item?.sponsored_display_campaign_report_roas !== null\n ? item.sponsored_display_campaign_report_roas.toFixed(2)\n : '0.00',\n adClicksSDPreviousLabel:\n item?.sponsored_display_campaign_report_clicks !== null\n ? item.sponsored_display_campaign_report_clicks\n : '0.00',\n adClickThroughRateSDPreviousLabel:\n item?.sponsored_display_campaign_report_ctr !== null\n ? item.sponsored_display_campaign_report_ctr.toFixed(2)\n : '0.00',\n adCostPerClickSDPreviousLabel:\n item?.sponsored_display_campaign_report_cost_per_click !== null\n ? item.sponsored_display_campaign_report_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the dsp previous label keys ********** */\n dspImpressionsPreviousLabel:\n item?.dsp_impressions !== null\n ? item.dsp_impressions.toFixed(2)\n : '0.00',\n dspSpendPreviousLabel:\n item?.dsp_dsp_spend !== null ? item.dsp_dsp_spend.toFixed(2) : '0.00',\n dspTotalProductSalesPreviousLabel:\n item?.total_product_sales !== null\n ? item.total_product_sales.toFixed(2)\n : '0.00',\n dspTotalRoasPreviousLabel:\n item?.total_dsp_roas !== null\n ? item.total_dsp_roas.toFixed(2)\n : '0.00',\n dspTotalDpvrPreviousLabel:\n item?.total_dpvr !== null ? item.total_dpvr.toFixed(2) : '0.00',\n dspTotalNewBrandPurchasesPreviousLabel:\n item?.ttl_new_brand_purchases !== null\n ? item.ttl_new_brand_purchases.toFixed(2)\n : '0.00',\n dspProductSalesPreviousLabel:\n item?.product_sales !== null ? item.product_sales.toFixed(2) : '0.00',\n dspRoasPreviousLabel:\n item?.dsp_roas !== null ? item.dsp_roas.toFixed(2) : '0.00',\n });\n });\n }\n\n // filterout current data in one temporary object.\n if (currentKey && currentKey.length) {\n currentKey.forEach((item, index) => {\n const currentReportDate = dayjs(item.report_date).format('MMM D YYYY');\n // add the current data at same index of prevoius in temporary object\n if (previousKey && index < previousKey.length) {\n if (acType === 'seller') {\n // bind seller metrics current value\n tempData[index].salesRevenueTotalCurrent = item?.revenue;\n tempData[index].salesRevenuePpcCurrent = item?.revenue_ppc;\n tempData[index].salesRevenueDspCurrent = item?.revenue_dsp;\n tempData[index].salesTacosCurrent = item?.tacos;\n tempData[index].salesUnitSoldCurrent = item?.units_sold;\n tempData[index].salesTrafficCurrent = item?.traffic;\n tempData[index].salesConversionCurrent = item?.conversion;\n tempData[index].salesAdSpendTotalCurrent = item?.ad_spend_total;\n tempData[index].salesAdSpendPpcCurrent = item?.sales_ad_spend;\n tempData[index].salesAdSpendDspCurrent = item?.sales_dsp_spends;\n\n // bind seller metrics current value for tooltip\n tempData[index].salesRevenueTotalCurrentLabel =\n item?.revenue !== null ? item.revenue.toFixed(2) : '0.00';\n tempData[index].salesRevenuePpcCurrentLabel =\n item?.revenue_ppc !== null ? item.revenue_ppc.toFixed(2) : '0.00';\n tempData[index].salesRevenueDspCurrentLabel =\n item?.revenue_dsp !== null ? item.revenue_dsp.toFixed(2) : '0.00';\n tempData[index].salesTacosCurrentLabel =\n item?.tacos !== null ? item.tacos.toFixed(2) : '0.00';\n tempData[index].salesUnitSoldCurrentLabel =\n item?.units_sold !== null ? item.units_sold.toFixed(0) : '0.00';\n tempData[index].salesTrafficCurrentLabel =\n item?.traffic !== null ? item.traffic.toFixed(0) : '0.00';\n tempData[index].salesConversionCurrentLabel =\n item?.conversion !== null ? item.conversion.toFixed(2) : '0.00';\n tempData[index].salesAdSpendTotalCurrentLabel =\n item?.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00';\n tempData[index].salesAdSpendPpcCurrentLabel =\n item?.sales_ad_spend !== null\n ? item.sales_ad_spend.toFixed(2)\n : '0.00';\n tempData[index].salesAdSpendDspCurrentLabel =\n item?.sales_dsp_spends !== null\n ? item.sales_dsp_spends.toFixed(2)\n : '0.00';\n } else {\n // bind vendor metrics current value\n tempData[index].salesOrderedRevenueCurrent = item?.ordered_revenue;\n tempData[index].salesOrderedGlanceViewsCurrent = item?.glance_views;\n tempData[index].salesOrderedUnitsCurrent = item?.ordered_units;\n tempData[index].salesOrderedConversionRateCurrent =\n item?.conversion_rate;\n tempData[index].salesShippedCogsCurrent = item?.shipped_cogs;\n tempData[index].salesShippedGlanceViewsCurrent = item?.glance_views;\n tempData[index].salesShippedConversionRateCurrent =\n item?.conversion_rate;\n tempData[index].salesShippedUnitsCurrent = item?.shipped_units;\n\n // bind vendor metrics current value for tooltip\n tempData[index].salesOrderedRevenueCurrentLabel =\n item?.ordered_revenue !== null\n ? item.ordered_revenue.toFixed(2)\n : '0.00';\n tempData[index].salesOrderedGlanceViewsCurrentLabel =\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0.00';\n tempData[index].salesOrderedUnitsCurrentLabel =\n item?.ordered_units !== null\n ? item.ordered_units.toFixed(0)\n : '0.00';\n tempData[index].salesOrderedConversionRateCurrentLabel =\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0.00';\n tempData[index].salesShippedCogsCurrentLabel =\n item?.shipped_cogs !== null ? item.shipped_cogs.toFixed(2) : '0.00';\n tempData[index].salesShippedUnitsCurrentLabel =\n item?.shipped_units !== null\n ? item.shipped_units.toFixed(0)\n : '0.00';\n tempData[index].salesShippedGlanceViewsCurrentLabel =\n item?.glance_views !== null ? item.glance_views.toFixed(0) : '0.00';\n tempData[index].salesShippedConversionRateCurrentLabel =\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0.00';\n }\n\n tempData[index].date = currentReportDate;\n\n /* ********** Binding the All sponsored current keys ********** */\n tempData[index].adSalesCurrent = item?.all_ad_sales;\n tempData[index].adSpendCurrent = item?.all_ad_spend;\n tempData[index].adConversionRateCurrent = item?.all_ad_conversion_rate;\n tempData[index].adImpressionsCurrent = item?.all_impressions;\n tempData[index].adAcosCurrent = item?.all_acos;\n tempData[index].adRoasCurrent = item?.all_roas;\n tempData[index].adClicksCurrent = item?.all_clicks;\n tempData[index].adClickThroughRateCurrent = item?.all_ctr;\n tempData[index].adCostPerClickCurrent = item?.all_cost_per_click;\n\n /* ********** Binding the sponsored product current keys ********** */\n tempData[index].adSalesSPCurrent =\n item?.product_campaign_report_ad_sales;\n tempData[index].adSpendSPCurrent =\n item?.product_campaign_report_ad_spend;\n tempData[index].adConversionRateSPCurrent =\n item?.product_campaign_report_ad_conversion_rate;\n tempData[index].adImpressionsSPCurrent =\n item?.product_campaign_report_impressions;\n tempData[index].adAcosSPCurrent = item?.product_campaign_report_acos;\n tempData[index].adRoasSPCurrent = item?.product_campaign_report_roas;\n tempData[index].adClicksSPCurrent =\n item?.product_campaign_report_clicks;\n tempData[index].adClickThroughRateSPCurrent =\n item?.product_campaign_report_ctr;\n tempData[index].adCostPerClickSPCurrent =\n item?.product_campaign_report_cost_per_click;\n\n /* ********** Binding the sponsored brand current keys ********** */\n tempData[index].adSalesSBCurrent = item?.brand_campaign_report_ad_sales;\n tempData[index].adSpendSBCurrent = item?.brand_campaign_report_ad_spend;\n tempData[index].adConversionRateSBCurrent =\n item?.brand_campaign_report_ad_conversion_rate;\n tempData[index].adImpressionsSBCurrent =\n item?.brand_campaign_report_impressions;\n tempData[index].adAcosSBCurrent = item?.brand_campaign_report_acos;\n tempData[index].adRoasSBCurrent = item?.brand_campaign_report_roas;\n tempData[index].adClicksSBCurrent = item?.brand_campaign_report_clicks;\n tempData[index].adClickThroughRateSBCurrent =\n item?.brand_campaign_report_ctr;\n tempData[index].adCostPerClickSBCurrent =\n item?.brand_campaign_report_cost_per_click;\n\n /* ********** Binding the sponsored video current keys ********** */\n tempData[index].adSalesSBVCurrent =\n item?.brand_video_campaign_report_ad_sales;\n tempData[index].adSpendSBVCurrent =\n item?.brand_video_campaign_report_ad_spend;\n tempData[index].adConversionRateSBVCurrent =\n item?.brand_video_campaign_report_ad_conversion_rate;\n tempData[index].adImpressionsSBVCurrent =\n item?.brand_video_campaign_report_impressions;\n tempData[index].adAcosSBVCurrent =\n item?.brand_video_campaign_report_acos;\n tempData[index].adRoasSBVCurrent =\n item?.brand_video_campaign_report_roas;\n tempData[index].adClicksSBVCurrent =\n item?.brand_video_campaign_report_clicks;\n tempData[index].adClickThroughRateSBVCurrent =\n item?.brand_video_campaign_report_ctr;\n tempData[index].adCostPerClickSBVCurrent =\n item?.brand_video_campaign_report_cost_per_click;\n\n /* ********** Binding the sponsored display current keys ********** */\n tempData[index].adSalesSDCurrent =\n item?.sponsored_display_campaign_report_ad_sales;\n tempData[index].adSpendSDCurrent =\n item?.sponsored_display_campaign_report_ad_spend;\n tempData[index].adConversionRateSDCurrent =\n item?.sponsored_display_campaign_report_ad_conversion_rate;\n tempData[index].adImpressionsSDCurrent =\n item?.sponsored_display_campaign_report_impressions;\n tempData[index].adAcosSDCurrent =\n item?.sponsored_display_campaign_report_acos;\n tempData[index].adRoasSDCurrent =\n item?.sponsored_display_campaign_report_roas;\n tempData[index].adClicksSDCurrent =\n item?.sponsored_display_campaign_report_clicks;\n tempData[index].adClickThroughRateSDCurrent =\n item?.sponsored_display_campaign_report_ctr;\n tempData[index].adCostPerClickSDCurrent =\n item?.sponsored_display_campaign_report_cost_per_click;\n\n /* ********** Binding the dsp current keys ********** */\n tempData[index].dspImpressionsCurrent = item?.dsp_impressions;\n tempData[index].dspSpendCurrent = item?.dsp_dsp_spend;\n tempData[index].dspTotalProductSalesCurrent = item?.total_product_sales;\n tempData[index].dspTotalRoasCurrent = item?.total_dsp_roas;\n tempData[index].dspTotalDpvrCurrent = item?.total_dpvr;\n tempData[index].dspTotalNewBrandPurchasesCurrent =\n item?.ttl_new_brand_purchases;\n tempData[index].dspProductSalesCurrent = item?.product_sales;\n tempData[index].dspRoasCurrent = item?.dsp_roas;\n\n /* ********** Binding the All sponsored current label keys ********** */\n tempData[index].adSalesCurrentLabel =\n item?.all_ad_sales !== null ? item.all_ad_sales.toFixed(2) : '0.00';\n tempData[index].adSpendCurrentLabel =\n item?.all_ad_spend !== null ? item.all_ad_spend.toFixed(2) : '0.00';\n tempData[index].adConversionRateCurrentLabel =\n item?.all_ad_conversion_rate !== null\n ? item.all_ad_conversion_rate.toFixed(2)\n : '0.00';\n tempData[index].adImpressionsCurrentLabel =\n item?.all_impressions !== null ? item.all_impressions : '0.00';\n tempData[index].adAcosCurrentLabel =\n item?.all_acos !== null ? item.all_acos.toFixed(2) : '0.00';\n tempData[index].adRoasCurrentLabel =\n item?.all_roas !== null ? item.all_roas.toFixed(2) : '0.00';\n tempData[index].adClicksCurrentLabel =\n item?.all_clicks !== null ? item.all_clicks : '0.00';\n tempData[index].adClickThroughRateCurrentLabel =\n item?.all_ctr !== null ? item.all_ctr.toFixed(2) : '0.00';\n tempData[index].adCostPerClickCurrentLabel =\n item?.all_cost_per_click !== null\n ? item.all_cost_per_click.toFixed(2)\n : '0.00';\n\n /* ********** Binding the sponsored product current label keys ********** */\n tempData[index].adSalesSPCurrentLabel =\n item?.product_campaign_report_ad_sales !== null\n ? item.product_campaign_report_ad_sales.toFixed(2)\n : '0.00';\n tempData[index].adSpendSPCurrentLabel =\n item?.product_campaign_report_ad_spend !== null\n ? item.product_campaign_report_ad_spend.toFixed(2)\n : '0.00';\n tempData[index].adConversionRateSPCurrentLabel =\n item?.product_campaign_report_ad_conversion_rate !== null\n ? item.product_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00';\n tempData[index].adImpressionsSPCurrentLabel =\n item?.product_campaign_report_impressions !== null\n ? item.product_campaign_report_impressions\n : '0.00';\n tempData[index].adAcosSPCurrentLabel =\n item?.product_campaign_report_acos !== null\n ? item.product_campaign_report_acos.toFixed(2)\n : '0.00';\n tempData[index].adRoasSPCurrentLabel =\n item?.product_campaign_report_roas !== null\n ? item.product_campaign_report_roas.toFixed(2)\n : '0.00';\n tempData[index].adClicksSPCurrentLabel =\n item?.product_campaign_report_clicks !== null\n ? item.product_campaign_report_clicks\n : '0.00';\n tempData[index].adClickThroughRateSPCurrentLabel =\n item?.product_campaign_report_ctr !== null\n ? item.product_campaign_report_ctr.toFixed(2)\n : '0.00';\n tempData[index].adCostPerClickSPCurrentLabel =\n item?.product_campaign_report_cost_per_click !== null\n ? item.product_campaign_report_cost_per_click.toFixed(2)\n : '0.00';\n\n /* ********** Binding the sponsored brand current label keys ********** */\n tempData[index].adSalesSBCurrentLabel =\n item?.brand_campaign_report_ad_sales !== null\n ? item.brand_campaign_report_ad_sales.toFixed(2)\n : '0.00';\n tempData[index].adSpendSBCurrentLabel =\n item?.brand_campaign_report_ad_spend !== null\n ? item.brand_campaign_report_ad_spend.toFixed(2)\n : '0.00';\n tempData[index].adConversionRateSBCurrentLabel =\n item?.brand_campaign_report_ad_conversion_rate !== null\n ? item.brand_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00';\n tempData[index].adImpressionsSBCurrentLabel =\n item?.brand_campaign_report_impressions !== null\n ? item.brand_campaign_report_impressions\n : '0.00';\n tempData[index].adAcosSBCurrentLabel =\n item?.brand_campaign_report_acos !== null\n ? item.brand_campaign_report_acos.toFixed(2)\n : '0.00';\n tempData[index].adRoasSBCurrentLabel =\n item?.brand_campaign_report_roas !== null\n ? item.brand_campaign_report_roas.toFixed(2)\n : '0.00';\n tempData[index].adClicksSBCurrentLabel =\n item?.brand_campaign_report_clicks !== null\n ? item.brand_campaign_report_clicks\n : '0.00';\n tempData[index].adClickThroughRateSBCurrentLabel =\n item?.brand_campaign_report_ctr !== null\n ? item.brand_campaign_report_ctr.toFixed(2)\n : '0.00';\n tempData[index].adCostPerClickSBCurrentLabel =\n item?.brand_campaign_report_cost_per_click !== null\n ? item.brand_campaign_report_cost_per_click.toFixed(2)\n : '0.00';\n\n /* ********** Binding the sponsored video current label keys ********** */\n tempData[index].adSalesSBVCurrentLabel =\n item?.brand_video_campaign_report_ad_sales !== null\n ? item.brand_video_campaign_report_ad_sales.toFixed(2)\n : '0.00';\n tempData[index].adSpendSBVCurrentLabel =\n item?.brand_video_campaign_report_ad_spend !== null\n ? item.brand_video_campaign_report_ad_spend.toFixed(2)\n : '0.00';\n tempData[index].adConversionRateSBVCurrentLabel =\n item?.brand_video_campaign_report_ad_conversion_rate !== null\n ? item.brand_video_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00';\n tempData[index].adImpressionsSBVCurrentLabel =\n item?.brand_video_campaign_report_impressions !== null\n ? item.brand_video_campaign_report_impressions\n : '0.00';\n tempData[index].adAcosSBVCurrentLabel =\n item?.brand_video_campaign_report_acos !== null\n ? item.brand_video_campaign_report_acos.toFixed(2)\n : '0.00';\n tempData[index].adRoasSBVCurrentLabel =\n item?.brand_video_campaign_report_roas !== null\n ? item.brand_video_campaign_report_roas.toFixed(2)\n : '0.00';\n tempData[index].adClicksSBVCurrentLabel =\n item?.brand_video_campaign_report_clicks !== null\n ? item.brand_video_campaign_report_clicks\n : '0.00';\n tempData[index].adClickThroughRateSBVCurrentLabel =\n item?.brand_video_campaign_report_ctr !== null\n ? item.brand_video_campaign_report_ctr.toFixed(2)\n : '0.00';\n tempData[index].adCostPerClickSBVCurrentLabel =\n item?.brand_video_campaign_report_cost_per_click !== null\n ? item.brand_video_campaign_report_cost_per_click.toFixed(2)\n : '0.00';\n\n /* ********** Binding the sponsored display current label keys ********** */\n tempData[index].adSalesSDCurrentLabel =\n item?.sponsored_display_campaign_report_ad_sales !== null\n ? item.sponsored_display_campaign_report_ad_sales.toFixed(2)\n : '0.00';\n tempData[index].adSpendSDCurrentLabel =\n item?.sponsored_display_campaign_report_ad_spend !== null\n ? item.sponsored_display_campaign_report_ad_spend.toFixed(2)\n : '0.00';\n tempData[index].adConversionRateSDCurrentLabel =\n item?.sponsored_display_campaign_report_ad_conversion_rate !== null\n ? item.sponsored_display_campaign_report_ad_conversion_rate.toFixed(\n 2,\n )\n : '0.00';\n tempData[index].adImpressionsSDCurrentLabel =\n item?.sponsored_display_campaign_report_impressions !== null\n ? item.sponsored_display_campaign_report_impressions\n : '0.00';\n tempData[index].adAcosSDCurrentLabel =\n item?.sponsored_display_campaign_report_acos !== null\n ? item.sponsored_display_campaign_report_acos.toFixed(2)\n : '0.00';\n tempData[index].adRoasSDCurrentLabel =\n item?.sponsored_display_campaign_report_roas !== null\n ? item.sponsored_display_campaign_report_roas.toFixed(2)\n : '0.00';\n tempData[index].adClicksSDCurrentLabel =\n item?.sponsored_display_campaign_report_clicks !== null\n ? item.sponsored_display_campaign_report_clicks\n : '0.00';\n tempData[index].adClickThroughRateSDCurrentLabel =\n item?.sponsored_display_campaign_report_ctr !== null\n ? item.sponsored_display_campaign_report_ctr.toFixed(2)\n : '0.00';\n tempData[index].adCostPerClickSDCurrentLabel =\n item?.sponsored_display_campaign_report_cost_per_click !== null\n ? item.sponsored_display_campaign_report_cost_per_click.toFixed(2)\n : '0.00';\n\n /* ********** Binding the dsp current label keys ********** */\n tempData[index].dspImpressionsCurrentLabel =\n item?.dsp_impressions !== null\n ? item.dsp_impressions.toFixed(2)\n : '0.00';\n tempData[index].dspSpendCurrentLabel =\n item?.dsp_dsp_spend !== null ? item.dsp_dsp_spend.toFixed(2) : '0.00';\n tempData[index].dspTotalProductSalesCurrentLabel =\n item?.total_product_sales !== null\n ? item.total_product_sales.toFixed(2)\n : '0.00';\n tempData[index].dspTotalRoasCurrentLabel =\n item?.total_dsp_roas !== null\n ? item.total_dsp_roas.toFixed(2)\n : '0.00';\n tempData[index].dspTotalDpvrCurrentLabel =\n item?.total_dpvr !== null ? item.total_dpvr.toFixed(2) : '0.00';\n tempData[index].dspTotalNewBrandPurchasesCurrentLabel =\n item?.ttl_new_brand_purchases !== null\n ? item.ttl_new_brand_purchases.toFixed(2)\n : '0.00';\n tempData[index].dspProductSalesCurrentLabel =\n item?.product_sales !== null ? item.product_sales.toFixed(2) : '0.00';\n tempData[index].dspRoasCurrentLabel =\n item?.dsp_roas !== null ? item.dsp_roas.toFixed(2) : '0.00';\n\n // to add the dotted line. we have to check null matrix and add the dummy number like 8\n } else {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previous value null and previous label 0\n\n if (acType === 'seller') {\n sellerVendorField = {\n // bind seller metrics current value\n salesRevenueTotalCurrent: item?.revenue,\n salesRevenuePpcCurrent: item?.revenue_ppc,\n salesRevenueDspCurrent: item?.revenue_dsp,\n salesTacosCurrent: item?.tacos,\n salesUnitSoldCurrent: item?.units_sold,\n salesTrafficCurrent: item?.traffic,\n salesConversionCurrent: item?.conversion,\n salesAdSpendTotalCurrent: item?.ad_spend_total,\n salesAdSpendPpcCurrent: item?.sales_ad_spend,\n salesAdSpendDspCurrent: item?.sales_dsp_spends,\n\n // bind seller metrics previous value\n salesRevenueTotalPrevious: null,\n salesRevenuePpcPrevious: null,\n salesRevenueDspPrevious: null,\n salesTacosPrevious: null,\n salesUnitSoldPrevious: null,\n salesTrafficPrevious: null,\n salesConversionPrevious: null,\n salesAdSpendTotalPrevious: null,\n salesAdSpendPpcPrevious: null,\n salesAdSpendDspPrevious: null,\n\n // bind seller metrics current value for tooltip\n salesRevenueTotalCurrentLabel:\n item?.revenue !== null ? item.revenue.toFixed(2) : '0.00',\n salesRevenuePpcCurrentLabel:\n item?.revenue_ppc !== null ? item.revenue_ppc.toFixed(2) : '0.00',\n salesRevenueDspCurrentLabel:\n item?.revenue_dsp !== null ? item.revenue_dsp.toFixed(2) : '0.00',\n salesTacosCurrentLabel:\n item?.tacos !== null ? item.tacos.toFixed(2) : '0.00',\n salesUnitSoldCurrentLabel:\n item?.units_sold !== null ? item.units_sold.toFixed(0) : '0.00',\n salesTrafficCurrentLabel:\n item?.traffic !== null ? item.traffic.toFixed(0) : '0.00',\n salesConversionCurrentLabel:\n item?.conversion !== null ? item.conversion.toFixed(2) : '0.00',\n salesAdSpendTotalCurrentLabel:\n item?.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00',\n salesAdSpendPpcCurrentLabel:\n item?.sales_ad_spend !== null\n ? item.sales_ad_spend.toFixed(2)\n : '0.00',\n salesAdSpendDspCurrentLabel:\n item?.sales_dsp_spends !== null\n ? item.sales_dsp_spends.toFixed(2)\n : '0.00',\n\n // bind seller metrics previous value for tooltip\n salesRevenueTotalPreviousLabel: '0.0',\n salesRevenuePpcPreviousLabel: '0.0',\n salesRevenueDspPreviousLabel: '0.0',\n salesTacosPreviousLabel: '0.0',\n salesUnitSoldPreviousLabel: '0.00',\n salesTrafficPreviousLabel: '0.00',\n salesConversionPreviousLabel: '0.00',\n salesAdSpendTotalPreviousLabel: '0.00',\n salesAdSpendPpcPreviousLabel: '0.00',\n salesAdSpendDspPreviousLabel: '0.00',\n };\n } else {\n sellerVendorField = {\n // bind vendor metrics current value\n salesOrderedRevenueCurrent: item?.ordered_revenue,\n salesOrderedGlanceViewsCurrent: item?.glance_views,\n salesOrderedUnitsCurrent: item?.ordered_units,\n salesOrderedConversionRateCurrent: item?.conversion_rate,\n salesShippedCogsCurrent: item?.shipped_cogs,\n salesShippedGlanceViewsCurrent: item?.glance_views,\n salesShippedConversionRateCurrent: item?.conversion_rate,\n salesShippedUnitsCurrent: item?.shipped_units,\n\n // bind vendor metrcis previous value\n salesOrderedRevenuePrevious: null,\n salesOrderedGlanceViewsPrevious: null,\n SalesOrderedUnitsPrevious: null,\n salesOrderedConversionRatePrevious: null,\n salesShippedCogsPrevious: null,\n salesShippedGlanceViewsPrevious: null,\n salesShippedUnitsPrevious: null,\n salesShippedConversionRatePrevious: null,\n\n // bind vendor metrcis current value for tooltip\n salesOrderedRevenueCurrentLabel:\n item?.ordered_revenue !== null\n ? item.ordered_revenue.toFixed(2)\n : '0.00',\n salesOrderedGlanceViewsCurrentLabel:\n item?.glance_views !== null\n ? item.glance_views.toFixed(0)\n : '0.00',\n salesOrderedUnitsCurrentLabel:\n item?.ordered_units !== null\n ? item.ordered_units.toFixed(0)\n : '0.00',\n salesOrderedConversionRateCurrentLabel:\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0.00',\n salesShippedCogsCurrentLabel:\n item?.shipped_cogs !== null\n ? item.shipped_cogs.toFixed(2)\n : '0.00',\n salesShippedGlanceViewsCurrentLabel:\n item?.glance_views !== null\n ? item.glance_views.toFixed(0)\n : '0.00',\n salesShippedUnitsCurrentLabel:\n item?.shipped_units !== null\n ? item.shipped_units.toFixed(0)\n : '0.00',\n salesShippedConversionRateCurrentLabel:\n item?.conversion_rate !== null\n ? item.conversion_rate.toFixed(2)\n : '0.00',\n\n // bind vendor metrics previous value for tooltip\n salesOrderedRevenuePreviousLabel: '0.00',\n salesOrderedGlanceViewsPreviousLabel: '0.00',\n salesOrderedUnitsPreviousLabel: '0.00',\n salesOrderedConversionRatePreviousLabel: '0.00',\n salesShippedCogsPreviousLabel: '0.00',\n salesShippedGanceViewsPreviousLabel: '0.00',\n salesShippedUnitsPreviousLabel: '0.00',\n salesShippedConversionRatePreviousLabel: '0.00',\n };\n }\n tempData.push({\n ...sellerVendorField,\n\n /* ********** Binding the All sponsored current keys ********** */\n adSalesCurrent: item?.all_ad_sales,\n adSpendCurrent: item?.all_ad_spend,\n adConversionRateCurrent: item?.all_ad_conversion_rate,\n adImpressionsCurrent: item?.all_impressions,\n adAcosCurrent: item?.all_acos,\n adRoasCurrent: item?.all_roas,\n adClicksCurrent: item?.all_clicks,\n adClickThroughRateCurrent: item?.all_ctr,\n adCostPerClickCurrent: item?.all_cost_per_click,\n\n /* ********** Binding the sponsored product current keys ********** */\n adSalesSPCurrent: item?.product_campaign_report_ad_sales,\n adSpendSPCurrent: item?.product_campaign_report_ad_spend,\n adConversionRateSPCurrent:\n item?.product_campaign_report_ad_conversion_rate,\n adImpressionsSPCurrent: item?.product_campaign_report_impressions,\n adAcosSPCurrent: item?.product_campaign_report_acos,\n adRoasSPCurrent: item?.product_campaign_report_roas,\n adClicksSPCurrent: item?.product_campaign_report_clicks,\n adClickThroughRateSPCurrent: item?.product_campaign_report_ctr,\n adCostPerClickSPCurrent: item?.product_campaign_report_cost_per_click,\n\n /* ********** Binding the sponsored brand current keys ********** */\n adSalesSBCurrent: item?.brand_campaign_report_ad_sales,\n adSpendSBCurrent: item?.brand_campaign_report_ad_spend,\n adConversionRateSBCurrent:\n item?.brand_campaign_report_ad_conversion_rate,\n adImpressionsSBCurrent: item?.brand_campaign_report_impressions,\n adAcosSBCurrent: item?.brand_campaign_report_acos,\n adRoasSBCurrent: item?.brand_campaign_report_roas,\n adClicksSBCurrent: item?.brand_campaign_report_clicks,\n adClickThroughRateSBCurrent: item?.brand_campaign_report_ctr,\n adCostPerClickSBCurrent: item?.brand_campaign_report_cost_per_click,\n\n /* ********** Binding the sponsored video current keys ********** */\n adSalesSBVCurrent: item?.brand_video_campaign_report_ad_sales,\n adSpendSBVCurrent: item?.brand_video_campaign_report_ad_spend,\n adConversionRateSBVCurrent:\n item?.brand_video_campaign_report_ad_conversion_rate,\n adImpressionsSBVCurrent:\n item?.brand_video_campaign_report_impressions,\n adAcosSBVCurrent: item?.brand_video_campaign_report_acos,\n adRoasSBVCurrent: item?.brand_video_campaign_report_roas,\n adClicksSBVCurrent: item?.brand_video_campaign_report_clicks,\n adClickThroughRateSBVCurrent: item?.brand_video_campaign_report_ctr,\n adCostPerClickSBVCurrent:\n item?.brand_video_campaign_report_cost_per_click,\n\n /* ********** Binding the sponsored display current keys ********** */\n adSalesSDCurrent: item?.sponsored_display_campaign_report_ad_sales,\n adSpendSDCurrent: item?.sponsored_display_campaign_report_ad_spend,\n adConversionRateSDCurrent:\n item?.sponsored_display_campaign_report_ad_conversion_rate,\n adImpressionsSDCurrent:\n item?.sponsored_display_campaign_report_impressions,\n adAcosSDCurrent: item?.sponsored_display_campaign_report_acos,\n adRoasSDCurrent: item?.sponsored_display_campaign_report_roas,\n adClicksSDCurrent: item?.sponsored_display_campaign_report_clicks,\n adClickThroughRateSDCurrent:\n item?.sponsored_display_campaign_report_ctr,\n adCostPerClickSDCurrent:\n item?.sponsored_display_campaign_report_cost_per_click,\n\n /* ********** Binding the dsp current keys ********** */\n dspImpressionsCurrent: item?.dsp_impressions,\n dspSpendCurrent: item?.dsp_dsp_spend,\n dspTotalProductSalesCurrent: item?.total_product_sales,\n dspTotalRoasCurrent: item?.total_dsp_roas,\n dspTotalDpvrCurrent: item?.total_dpvr,\n dspTotalNewBrandPurchasesCurrent: item?.ttl_new_brand_purchases,\n dspProductSalesCurrent: item?.product_sales,\n dspRoasCurrent: item?.dsp_roas,\n\n date: currentReportDate,\n\n adSalesPrevious: null,\n adSpendPrevious: null,\n adConversionPrevious: null,\n adImpressionsPrevious: null,\n adAcosPrevious: null,\n adRoasPrevious: null,\n adClicksPrevious: null,\n adClickThroughRatePrevious: null,\n adCostPerClickPrevious: null,\n\n adSalesSPPrevious: null,\n adSpendSPPrevious: null,\n adConversionSPPrevious: null,\n adImpressionsSPPrevious: null,\n adAcosSPPrevious: null,\n adRoasSPPrevious: null,\n adClicksSPPrevious: null,\n adClickThroughRateSPPrevious: null,\n adCostPerClickSPPrevious: null,\n\n adSalesSBPrevious: null,\n adSpendSBPrevious: null,\n adConversionSBPrevious: null,\n adImpressionsSBPrevious: null,\n adAcosSBPrevious: null,\n adRoasSBPrevious: null,\n adClicksSBPrevious: null,\n adClickThroughRateSBPrevious: null,\n adCostPerClickSBPrevious: null,\n\n adSalesSBVPrevious: null,\n adSpendSBVPrevious: null,\n adConversionSBVPrevious: null,\n adImpressionsSBVPrevious: null,\n adAcosSBVPrevious: null,\n adRoasSBVPrevious: null,\n adClicksSBVPrevious: null,\n adClickThroughRateSBVPrevious: null,\n adCostPerClickSBVPrevious: null,\n\n adSalesSDPrevious: null,\n adSpendSDPrevious: null,\n adConversionSDPrevious: null,\n adImpressionsSDPrevious: null,\n adAcosSDPrevious: null,\n adRoasSDPrevious: null,\n adClicksSDPrevious: null,\n adClickThroughRateSDPrevious: null,\n adCostPerClickSDPrevious: null,\n\n dspImpressionsPrevious: null,\n dspSpendPrevious: null,\n dspTotalProductSalesPrevious: null,\n dspTotalRoasPrevious: null,\n dspTotalDpvrPrevious: null,\n dspTotalNewBrandPurchasesPrevious: null,\n dspProductSalesPrevious: null,\n dspRoasPrevious: null,\n\n /* ********** Binding the All sponsored current label keys ********** */\n adSalesCurrentLabel:\n item?.all_ad_sales !== null ? item.all_ad_sales.toFixed(2) : '0.00',\n adSpendCurrentLabel:\n item?.all_ad_spend !== null ? item.all_ad_spend.toFixed(2) : '0.00',\n adConversionRateCurrentLabel:\n item?.all_ad_conversion_rate !== null\n ? item.all_ad_conversion_rate.toFixed(2)\n : '0.00',\n adImpressionsCurrentLabel:\n item?.all_impressions !== null ? item.all_impressions : '0.00',\n adAcosCurrentLabel:\n item?.all_acos !== null ? item.all_acos.toFixed(2) : '0.00',\n adRoasCurrentLabel:\n item?.all_roas !== null ? item.all_roas.toFixed(2) : '0.00',\n adClicksCurrentLabel:\n item?.all_clicks !== null ? item.all_clicks : '0.00',\n adClickThroughRateCurrentLabel:\n item?.all_ctr !== null ? item.all_ctr.toFixed(2) : '0.00',\n adCostPerClickCurrentLabel:\n item?.all_cost_per_click !== null\n ? item.all_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the sponsored product current label keys ********** */\n adSalesSPCurrentLabel:\n item?.product_campaign_report_ad_sales !== null\n ? item.product_campaign_report_ad_sales.toFixed(2)\n : '0.00',\n adSpendSPCurrentLabel:\n item?.product_campaign_report_ad_spend !== null\n ? item.product_campaign_report_ad_spend.toFixed(2)\n : '0.00',\n adConversionRateSPCurrentLabel:\n item?.product_campaign_report_ad_conversion_rate !== null\n ? item.product_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00',\n adImpressionsSPCurrentLabel:\n item?.product_campaign_report_impressions !== null\n ? item.product_campaign_report_impressions\n : '0.00',\n adAcosSPCurrentLabel:\n item?.product_campaign_report_acos !== null\n ? item.product_campaign_report_acos.toFixed(2)\n : '0.00',\n adRoasSPCurrentLabel:\n item?.product_campaign_report_roas !== null\n ? item.product_campaign_report_roas.toFixed(2)\n : '0.00',\n adClicksSPCurrentLabel:\n item?.product_campaign_report_clicks !== null\n ? item.product_campaign_report_clicks\n : '0.00',\n adClickThroughRateSPCurrentLabel:\n item?.product_campaign_report_ctr !== null\n ? item.product_campaign_report_ctr.toFixed(2)\n : '0.00',\n adCostPerClickSPCurrentLabel:\n item?.product_campaign_report_cost_per_click !== null\n ? item.product_campaign_report_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the sponsored brand current label keys ********** */\n adSalesSBCurrentLabel:\n item?.brand_campaign_report_ad_sales !== null\n ? item.brand_campaign_report_ad_sales.toFixed(2)\n : '0.00',\n adSpendSBCurrentLabel:\n item?.brand_campaign_report_ad_spend !== null\n ? item.brand_campaign_report_ad_spend.toFixed(2)\n : '0.00',\n adConversionRateSBCurrentLabel:\n item?.brand_campaign_report_ad_conversion_rate !== null\n ? item.brand_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00',\n adImpressionsSBCurrentLabel:\n item?.brand_campaign_report_impressions !== null\n ? item.brand_campaign_report_impressions\n : '0.00',\n adAcosSBCurrentLabel:\n item?.brand_campaign_report_acos !== null\n ? item.brand_campaign_report_acos.toFixed(2)\n : '0.00',\n adRoasSBCurrentLabel:\n item?.brand_campaign_report_roas !== null\n ? item.brand_campaign_report_roas.toFixed(2)\n : '0.00',\n adClicksSBCurrentLabel:\n item?.brand_campaign_report_clicks !== null\n ? item.brand_campaign_report_clicks\n : '0.00',\n adClickThroughRateSBCurrentLabel:\n item?.brand_campaign_report_ctr !== null\n ? item.brand_campaign_report_ctr.toFixed(2)\n : '0.00',\n adCostPerClickSBCurrentLabel:\n item?.brand_campaign_report_cost_per_click !== null\n ? item.brand_campaign_report_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the sponsored video current label keys ********** */\n adSalesSBVCurrentLabel:\n item?.brand_video_campaign_report_ad_sales !== null\n ? item.brand_video_campaign_report_ad_sales.toFixed(2)\n : '0.00',\n adSpendSBVCurrentLabel:\n item?.brand_video_campaign_report_ad_spend !== null\n ? item.brand_video_campaign_report_ad_spend.toFixed(2)\n : '0.00',\n adConversionRateSBVCurrentLabel:\n item?.brand_video_campaign_report_ad_conversion_rate !== null\n ? item.brand_video_campaign_report_ad_conversion_rate.toFixed(2)\n : '0.00',\n adImpressionsSBVCurrentLabel:\n item?.brand_video_campaign_report_impressions !== null\n ? item.brand_video_campaign_report_impressions\n : '0.00',\n adAcosSBVCurrentLabel:\n item?.brand_video_campaign_report_acos !== null\n ? item.brand_video_campaign_report_acos.toFixed(2)\n : '0.00',\n adRoasSBVCurrentLabel:\n item?.brand_video_campaign_report_roas !== null\n ? item.brand_video_campaign_report_roas.toFixed(2)\n : '0.00',\n adClicksSBVCurrentLabel:\n item?.brand_video_campaign_report_clicks !== null\n ? item.brand_video_campaign_report_clicks\n : '0.00',\n adClickThroughRateSBVCurrentLabel:\n item?.brand_video_campaign_report_ctr !== null\n ? item.brand_video_campaign_report_ctr.toFixed(2)\n : '0.00',\n adCostPerClickSBVCurrentLabel:\n item?.brand_video_campaign_report_cost_per_click !== null\n ? item.brand_video_campaign_report_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the sponsored display current label keys ********** */\n adSalesSDCurrentLabel:\n item?.sponsored_display_campaign_report_ad_sales !== null\n ? item.sponsored_display_campaign_report_ad_sales.toFixed(2)\n : '0.00',\n adSpendSDCurrentLabel:\n item?.sponsored_display_campaign_report_ad_spend !== null\n ? item.sponsored_display_campaign_report_ad_spend.toFixed(2)\n : '0.00',\n adConversionRateSDCurrentLabel:\n item?.sponsored_display_campaign_report_ad_conversion_rate !== null\n ? item.sponsored_display_campaign_report_ad_conversion_rate.toFixed(\n 2,\n )\n : '0.00',\n adImpressionsSDCurrentLabel:\n item?.sponsored_display_campaign_report_impressions !== null\n ? item.sponsored_display_campaign_report_impressions\n : '0.00',\n adAcosSDCurrentLabel:\n item?.sponsored_display_campaign_report_acos !== null\n ? item.sponsored_display_campaign_report_acos.toFixed(2)\n : '0.00',\n adRoasSDCurrentLabel:\n item?.sponsored_display_campaign_report_roas !== null\n ? item.sponsored_display_campaign_report_roas.toFixed(2)\n : '0.00',\n adClicksSDCurrentLabel:\n item?.sponsored_display_campaign_report_clicks !== null\n ? item.sponsored_display_campaign_report_clicks\n : '0.00',\n adClickThroughRateSDCurrentLabel:\n item?.sponsored_display_campaign_report_ctr !== null\n ? item.sponsored_display_campaign_report_ctr.toFixed(2)\n : '0.00',\n adCostPerClickSDCurrentLabel:\n item?.sponsored_display_campaign_report_cost_per_click !== null\n ? item.sponsored_display_campaign_report_cost_per_click.toFixed(2)\n : '0.00',\n\n /* ********** Binding the dsp current label keys ********** */\n dspImpressionsCurrentLabel:\n item?.dsp_impressions !== null\n ? item.dsp_impressions.toFixed(2)\n : '0.00',\n dspSpendCurrentLabel:\n item?.dsp_dsp_spend !== null\n ? item.dsp_dsp_spend.toFixed(2)\n : '0.00',\n dspTotalProductSalesCurrentLabel:\n item?.total_product_sales !== null\n ? item.total_product_sales.toFixed(2)\n : '0.00',\n dspTotalRoasCurrentLabel:\n item?.total_dsp_roas !== null\n ? item.total_dsp_roas.toFixed(2)\n : '0.00',\n dspTotalDpvrCurrentLabel:\n item?.total_dpvr !== null ? item.total_dpvr.toFixed(2) : '0.00',\n dspTotalNewBrandPurchasesCurrentLabel:\n item?.ttl_new_brand_purchases !== null\n ? item.ttl_new_brand_purchases.toFixed(2)\n : '0.00',\n dspProductSalesCurrentLabel:\n item?.product_sales !== null\n ? item.product_sales.toFixed(2)\n : '0.00',\n dspRoasCurrentLabel:\n item?.dsp_roas !== null ? item.dsp_roas.toFixed(2) : '0.00',\n\n adSalesPreviousLabel: '0.00',\n adSpendPreviousLabel: '0.00',\n adConversionPreviousLabel: '0.00',\n adImpressionsPreviousLabel: '0.00',\n adAcosPreviousLabel: '0.00',\n adRoasPreviousLabel: '0.00',\n adClicksPreviousLabel: '0.00',\n adClickThroughRatePreviousLabel: '0.00',\n adCostPerClickPreviousLabel: '0.00',\n\n adSalesSPPreviousLabel: '0.00',\n adSpendSPPreviousLabel: '0.00',\n adConversionSPPreviousLabel: '0.00',\n adImpressionsSPPreviousLabel: '0.00',\n adAcosSPPreviousLabel: '0.00',\n adRoasSPPreviousLabel: '0.00',\n adClicksSPPreviousLabel: '0.00',\n adClickThroughRateSPPreviousLabel: '0.00',\n adCostPerClickSPPreviousLabel: '0.00',\n\n adSalesSBPreviousLabel: '0.00',\n adSpendSBPreviousLabel: '0.00',\n adConversionSBPreviousLabel: '0.00',\n adImpressionsSBPreviousLabel: '0.00',\n adAcosSBPreviousLabel: '0.00',\n adRoasSBPreviousLabel: '0.00',\n adClicksSBPreviousLabel: '0.00',\n adClickThroughRateSBPreviousLabel: '0.00',\n adCostPerClickSBPreviousLabel: '0.00',\n\n adSalesSBVPreviousLabel: '0.00',\n adSpendSBVPreviousLabel: '0.00',\n adConversionSBVPreviousLabel: '0.00',\n adImpressionsSBVPreviousLabel: '0.00',\n adAcosSBVPreviousLabel: '0.00',\n adRoasSBVPreviousLabel: '0.00',\n adClicksSBVPreviousLabel: '0.00',\n adClickThroughRateSBVPreviousLabel: '0.00',\n adCostPerClickSBVPreviousLabel: '0.00',\n\n adSalesSDPreviousLabel: '0.00',\n adSpendSDPreviousLabel: '0.00',\n adConversionSDPreviousLabel: '0.00',\n adImpressionsSDPreviousLabel: '0.00',\n adAcosSDPreviousLabel: '0.00',\n adRoasSDPreviousLabel: '0.00',\n adClicksSDPreviousLabel: '0.00',\n adClickThroughRateSDPreviousLabel: '0.00',\n adCostPerClickSDPreviousLabel: '0.00',\n\n dspImpressionsPreviousLabel: '0.00',\n dspSpendPreviousLabel: '0.00',\n dspTotalProductSalesPreviousLabel: '0.00',\n dspTotalRoasPreviousLabel: '0.00',\n dspTotalDpvrPreviousLabel: '0.00',\n dspTotalNewBrandPurchasesPreviousLabel: '0.00',\n dspProductSalesPreviousLabel: '0.00',\n dspRoasPreviousLabel: '0.00',\n });\n }\n });\n }\n\n // filterout change in value data in one temporary object.\n if (currentChangeInValueKey?.length) {\n currentChangeInValueKey.forEach((item, index) => {\n // add the current change in value data at same index of current data in temporary object\n if (currentKey && index < currentKey?.length) {\n if (acType === 'seller') {\n // bind seller metrics comparison change in value\n tempData[index].salesRevenueTotalChangeInValue =\n item?.revenue !== null ? item.revenue : null;\n tempData[index].salesRevenuePpcChangeInValue =\n item?.revenue_ppc !== null ? item.revenue_ppc : null;\n tempData[index].salesRevenueDspChangeInValue =\n item?.revenue_dsp !== null ? item.revenue_dsp : null;\n tempData[index].salesTacosChangeInValue =\n item?.tacos !== null ? item.tacos : null;\n tempData[index].salesUnitSoldChangeInValue =\n item?.units_sold !== null ? item.units_sold : null;\n tempData[index].salesTrafficChangeInValue =\n item?.traffic !== null ? item.traffic : null;\n tempData[index].salesConversionChangeInValue =\n item?.conversion !== null ? item.conversion : null;\n tempData[index].salesAdSpendTotalChangeInValue =\n item?.ad_spend_total !== null ? item.ad_spend_total : null;\n tempData[index].salesAdSpendPpcChangeInValue =\n item?.sales_ad_spend !== null ? item.sales_ad_spend : null;\n tempData[index].salesAdSpendDspChangeInValue =\n item?.sales_dsp_spends !== null ? item.sales_dsp_spends : null;\n } else {\n // bind vendor metrics comparison change in value\n tempData[index].salesOrderedRevenueChangeInValue =\n item?.ordered_revenue !== null ? item.ordered_revenue : null;\n tempData[index].salesOrderedGlanceViewsChangeInValue =\n item?.glance_views !== null ? item.glance_views : null;\n tempData[index].salesOrderedUnitsChangeInValue =\n item?.ordered_units !== null ? item.ordered_units : null;\n tempData[index].salesOrderedConversionRateChangeInValue =\n item?.conversion_rate !== null ? item.conversion_rate : null;\n tempData[index].salesShippedCogsChangeInValue =\n item?.shipped_cogs !== null ? item.shipped_cogs : null;\n tempData[index].salesShippedGlanceViewsChangeInValue =\n item?.glance_views !== null ? item.glance_views : null;\n tempData[index].salesShippedConversionRateChangeInValue =\n item?.conversion_rate !== null ? item.conversion_rate : null;\n tempData[index].salesShippedUnitsChangeInValue =\n item?.shipped_units !== null ? item.shipped_units : null;\n }\n\n // bind sponsored all metrics comparison change in value\n tempData[index].adSalesChangeInValue =\n item?.all_ad_sales !== null ? item.all_ad_sales : null;\n tempData[index].adSpendChangeInValue =\n item?.all_ad_spend !== null ? item.all_ad_spend : null;\n tempData[index].adConversionRateChangeInValue =\n item?.all_ad_conversion_rate !== null\n ? item.all_ad_conversion_rate\n : null;\n tempData[index].adImpressionsChangeInValue =\n item?.all_impressions !== null ? item.all_impressions : null;\n tempData[index].adAcosChangeInValue =\n item?.all_acos !== null ? item.all_acos : null;\n tempData[index].adRoasChangeInValue =\n item?.all_roas !== null ? item.all_roas : null;\n tempData[index].adClicksChangeInValue =\n item?.all_clicks !== null ? item.all_clicks : null;\n tempData[index].adClickThroughRateChangeInValue =\n item?.all_ctr !== null ? item.all_ctr : null;\n tempData[index].adCostPerClickChangeInValue =\n item?.all_cost_per_click !== null ? item.all_cost_per_click : null;\n\n // bind sponsored product metrics comparison change in value\n tempData[index].adSalesSPChangeInValue =\n item?.product_campaign_report_ad_sales !== null\n ? item.product_campaign_report_ad_sales\n : null;\n tempData[index].adSpendSPChangeInValue =\n item?.product_campaign_report_ad_spend !== null\n ? item.product_campaign_report_ad_spend\n : null;\n\n tempData[index].adConversionRateSPChangeInValue =\n item?.product_campaign_report_ad_conversion_rate !== null\n ? item.product_campaign_report_ad_conversion_rate\n : null;\n tempData[index].adImpressionsSPChangeInValue =\n item?.product_campaign_report_impressions !== null\n ? item.product_campaign_report_impressions\n : null;\n tempData[index].adAcosSPChangeInValue =\n item?.product_campaign_report_acos !== null\n ? item.product_campaign_report_acos\n : null;\n tempData[index].adRoasSPChangeInValue =\n item?.product_campaign_report_roas !== null\n ? item.product_campaign_report_roas\n : null;\n tempData[index].adClicksSPChangeInValue =\n item?.product_campaign_report_clicks !== null\n ? item.product_campaign_report_clicks\n : null;\n tempData[index].adClickThroughRateSPChangeInValue =\n item?.product_campaign_report_ctr !== null\n ? item.product_campaign_report_ctr\n : null;\n tempData[index].adCostPerClickSPChangeInValue =\n item?.product_campaign_report_cost_per_click !== null\n ? item.product_campaign_report_cost_per_click\n : null;\n\n // bind sponsored brand metrics comparison change in value\n tempData[index].adSalesSBChangeInValue =\n item?.brand_campaign_report_ad_sales !== null\n ? item.brand_campaign_report_ad_sales\n : null;\n tempData[index].adSpendSBChangeInValue =\n item?.brand_campaign_report_ad_spend !== null\n ? item.brand_campaign_report_ad_spend\n : null;\n tempData[index].adConversionRateSBChangeInValue =\n item?.brand_campaign_report_ad_conversion_rate !== null\n ? item.brand_campaign_report_ad_conversion_rate\n : null;\n tempData[index].adImpressionsSBChangeInValue =\n item?.brand_campaign_report_impressions !== null\n ? item.brand_campaign_report_impressions\n : null;\n tempData[index].adAcosSBChangeInValue =\n item?.brand_campaign_report_acos !== null\n ? item.brand_campaign_report_acos\n : null;\n tempData[index].adRoasSBChangeInValue =\n item?.brand_campaign_report_roas !== null\n ? item.brand_campaign_report_roas\n : null;\n tempData[index].adClicksSBChangeInValue =\n item?.brand_campaign_report_clicks !== null\n ? item.brand_campaign_report_clicks\n : null;\n tempData[index].adClickThroughRateSBChangeInValue =\n item?.brand_campaign_report_ctr !== null\n ? item.brand_campaign_report_ctr\n : null;\n tempData[index].adCostPerClickSBChangeInValue =\n item?.brand_campaign_report_cost_per_click !== null\n ? item.brand_campaign_report_cost_per_click\n : null;\n\n // bind sponsored video metrics comparison change in value\n tempData[index].adSalesSBVChangeInValue =\n item?.brand_video_campaign_report_ad_sales !== null\n ? item.brand_video_campaign_report_ad_sales\n : null;\n tempData[index].adSpendSBVChangeInValue =\n item?.brand_video_campaign_report_ad_spend !== null\n ? item.brand_video_campaign_report_ad_spend\n : null;\n tempData[index].adConversionRateSBVChangeInValue =\n item?.brand_video_campaign_report_ad_conversion_rate !== null\n ? item.brand_video_campaign_report_ad_conversion_rate\n : null;\n tempData[index].adImpressionsSBVChangeInValue =\n item?.brand_video_campaign_report_impressions !== null\n ? item.brand_video_campaign_report_impressions\n : null;\n tempData[index].adAcosSBVChangeInValue =\n item?.brand_video_campaign_report_acos !== null\n ? item.brand_video_campaign_report_acos\n : null;\n tempData[index].adRoasSBVChangeInValue =\n item?.brand_video_campaign_report_roas !== null\n ? item.brand_video_campaign_report_roas\n : null;\n tempData[index].adClicksSBVChangeInValue =\n item?.brand_video_campaign_report_clicks !== null\n ? item.brand_video_campaign_report_clicks\n : null;\n tempData[index].adClickThroughRateSBVChangeInValue =\n item?.brand_video_campaign_report_ctr !== null\n ? item.brand_video_campaign_report_ctr\n : null;\n tempData[index].adCostPerClickSBVChangeInValue =\n item?.brand_video_campaign_report_cost_per_click !== null\n ? item.brand_video_campaign_report_cost_per_click\n : null;\n\n // bind sponsored display metrics comparison change in value\n tempData[index].adSalesSDChangeInValue =\n item?.sponsored_display_campaign_report_ad_sales !== null\n ? item.sponsored_display_campaign_report_ad_sales\n : null;\n tempData[index].adSpendSDChangeInValue =\n item?.sponsored_display_campaign_report_ad_spend !== null\n ? item.sponsored_display_campaign_report_ad_spend\n : null;\n tempData[index].adConversionRateSDChangeInValue =\n item?.sponsored_display_campaign_report_ad_conversion_rate !== null\n ? item.sponsored_display_campaign_report_ad_conversion_rate\n : null;\n\n tempData[index].adImpressionsSDChangeInValue =\n item?.sponsored_display_campaign_report_impressions !== null\n ? item.sponsored_display_campaign_report_impressions\n : null;\n tempData[index].adAcosSDChangeInValue =\n item?.sponsored_display_campaign_report_acos !== null\n ? item.sponsored_display_campaign_report_acos\n : 0;\n tempData[index].adRoasSDChangeInValue =\n item?.sponsored_display_campaign_report_roas !== null\n ? item.sponsored_display_campaign_report_roas\n : null;\n tempData[index].adClicksSDChangeInValue =\n item?.sponsored_display_campaign_report_clicks !== null\n ? item.sponsored_display_campaign_report_clicks\n : null;\n tempData[index].adClickThroughRateSDChangeInValue =\n item?.sponsored_display_campaign_report_ctr !== null\n ? item.sponsored_display_campaign_report_ctr\n : null;\n tempData[index].adCostPerClickSDChangeInValue =\n item?.sponsored_display_campaign_report_cost_per_click !== null\n ? item.sponsored_display_campaign_report_cost_per_click\n : null;\n\n // bind dsp metrics comparison change in value\n tempData[index].dspImpressionsChangeInValue =\n item?.dsp_impressions !== null ? item.dsp_impressions : null;\n tempData[index].dspSpendChangeInValue =\n item?.dsp_dsp_spend !== null ? item.dsp_dsp_spend : null;\n tempData[index].dspTotalProductSalesChangeInValue =\n item?.total_product_sales !== null ? item.total_product_sales : null;\n tempData[index].dspTotalRoasChangeInValue =\n item?.total_dsp_roas !== null ? item.total_dsp_roas : null;\n tempData[index].dspTotalDpvrChangeInValue =\n item?.total_dpvr !== null ? item.total_dpvr : null;\n tempData[index].dspTotalNewBrandPurchasesChangeInValue =\n item?.ttl_new_brand_purchases !== null\n ? item.ttl_new_brand_purchases\n : null;\n tempData[index].dspProductSalesChangeInValue =\n item?.product_sales !== null ? item.product_sales : null;\n tempData[index].dspRoasChangeInValue =\n item?.dsp_roas !== null ? item.dsp_roas : null;\n }\n });\n }\n\n // filterout current data in one temporary object.\n if (currentChangeInPercentKey?.length) {\n currentChangeInPercentKey.forEach((item, index) => {\n // add the current change in percentage data at same index of current in temporary object\n if (currentKey && index < currentKey?.length) {\n if (acType === 'seller') {\n // bind seller metrics comparison change in percent\n tempData[index].salesRevenueTotalChangeInPercent =\n item?.revenue !== null ? item.revenue : null;\n tempData[index].salesRevenuePpcChangeInPercent =\n item?.revenue_ppc !== null ? item.revenue_ppc : null;\n tempData[index].salesRevenueDspChangeInPercent =\n item?.revenue_dsp !== null ? item.revenue_dsp : null;\n tempData[index].salesTacosChangeInPercent =\n item?.tacos !== null ? item.tacos : null;\n tempData[index].salesUnitSoldChangeInPercent =\n item?.units_sold !== null ? item.units_sold : null;\n tempData[index].salesTrafficChangeInPercent =\n item?.traffic !== null ? item.traffic : null;\n tempData[index].salesConversionChangeInPercent =\n item?.conversion !== null ? item.conversion : null;\n tempData[index].salesAdSpendTotalChangeInPercent =\n item?.ad_spend_total !== null ? item.ad_spend_total : null;\n tempData[index].salesAdSpendPpcChangeInPercent =\n item?.sales_ad_spend !== null ? item.sales_ad_spend : null;\n tempData[index].salesAdSpendDspChangeInPercent =\n item?.sales_dsp_spends !== null ? item.sales_dsp_spends : null;\n } else {\n // bind vendor metrics comparison change in percent\n tempData[index].salesOrderedRevenueChangeInPercent =\n item?.ordered_revenue !== null ? item.ordered_revenue : null;\n tempData[index].salesOrderedGlanceViewsChangeInPercent =\n item?.glance_views !== null ? item.glance_views : null;\n tempData[index].salesOrderedUnitsChangeInPercent =\n item?.ordered_units !== null ? item.ordered_units : null;\n tempData[index].salesOrderedConversionRateChangeInPercent =\n item?.conversion_rate !== null ? item.conversion_rate : null;\n tempData[index].salesShippedCogsChangeInPercent =\n item?.shipped_cogs !== null ? item.shipped_cogs : null;\n tempData[index].salesShippedGlanceViewsChangeInPercent =\n item?.glance_views !== null ? item.glance_views : null;\n tempData[index].salesShippedConversionRateChangeInPercent =\n item?.conversion_rate !== null ? item.conversion_rate : null;\n tempData[index].salesShippedUnitsChangeInPercent =\n item?.shipped_units !== null ? item.shipped_units : null;\n }\n\n // bind sponsored all metrics comparison change in percent\n tempData[index].adSalesChangeInPercent =\n item?.all_ad_sales !== null ? item.all_ad_sales : null;\n tempData[index].adSpendChangeInPercent =\n item?.all_ad_spend !== null ? item.all_ad_spend : null;\n tempData[index].adConversionRateChangeInPercent =\n item?.all_ad_conversion_rate !== null\n ? item.all_ad_conversion_rate\n : null;\n tempData[index].adImpressionsChangeInPercent =\n item?.all_impressions !== null ? item.all_impressions : null;\n tempData[index].adAcosChangeInPercent =\n item?.all_acos !== null ? item.all_acos : null;\n tempData[index].adRoasChangeInPercent =\n item?.all_roas !== null ? item.all_roas : null;\n tempData[index].adClicksChangeInPercent =\n item?.all_clicks !== null ? item.all_clicks : null;\n tempData[index].adClickThroughRateChangeInPercent =\n item?.all_ctr !== null ? item.all_ctr : null;\n tempData[index].adCostPerClickChangeInPercent =\n item?.all_cost_per_click !== null ? item.all_cost_per_click : null;\n\n // bind sponsored product metrics comparison change in percent\n tempData[index].adSalesSPChangeInPercent =\n item?.product_campaign_report_ad_sales !== null\n ? item.product_campaign_report_ad_sales\n : null;\n tempData[index].adSpendSPChangeInPercent =\n item?.product_campaign_report_ad_spend !== null\n ? item.product_campaign_report_ad_spend\n : null;\n tempData[index].adConversionRateSPChangeInPercent =\n item?.product_campaign_report_ad_conversion_rate !== null\n ? item.product_campaign_report_ad_conversion_rate\n : null;\n tempData[index].adImpressionsSPChangeInPercent =\n item?.product_campaign_report_impressions !== null\n ? item.product_campaign_report_impressions\n : null;\n tempData[index].adAcosSPChangeInPercent =\n item?.product_campaign_report_acos !== null\n ? item.product_campaign_report_acos\n : null;\n tempData[index].adRoasSPChangeInPercent =\n item?.product_campaign_report_roas !== null\n ? item.product_campaign_report_roas\n : null;\n tempData[index].adClicksSPChangeInPercent =\n item?.product_campaign_report_clicks !== null\n ? item.product_campaign_report_clicks\n : null;\n tempData[index].adClickThroughRateSPChangeInPercent =\n item?.product_campaign_report_ctr !== null\n ? item.product_campaign_report_ctr\n : null;\n tempData[index].adCostPerClickSPChangeInPercent =\n item?.product_campaign_report_cost_per_click !== null\n ? item.product_campaign_report_cost_per_click\n : null;\n\n // bind sponsored brand metrics comparison change in percent\n tempData[index].adSalesSBChangeInPercent =\n item?.brand_campaign_report_ad_sales !== null\n ? item.brand_campaign_report_ad_sales\n : null;\n tempData[index].adSpendSBChangeInPercent =\n item?.brand_campaign_report_ad_spend !== null\n ? item.brand_campaign_report_ad_spend\n : null;\n tempData[index].adConversionRateSBChangeInPercent =\n item?.brand_campaign_report_ad_conversion_rate !== null\n ? item.brand_campaign_report_ad_conversion_rate\n : null;\n tempData[index].adImpressionsSBChangeInPercent =\n item?.brand_campaign_report_impressions !== null\n ? item.brand_campaign_report_impressions\n : null;\n tempData[index].adAcosSBChangeInPercent =\n item?.brand_campaign_report_acos !== null\n ? item.brand_campaign_report_acos\n : null;\n tempData[index].adRoasSBChangeInPercent =\n item?.brand_campaign_report_roas !== null\n ? item.brand_campaign_report_roas\n : null;\n tempData[index].adClicksSBChangeInPercent =\n item?.brand_campaign_report_clicks !== null\n ? item.brand_campaign_report_clicks\n : null;\n tempData[index].adClickThroughRateSBChangeInPercent =\n item?.brand_campaign_report_ctr !== null\n ? item.brand_campaign_report_ctr\n : null;\n tempData[index].adCostPerClickSBChangeInPercent =\n item?.brand_campaign_report_cost_per_click !== null\n ? item.brand_campaign_report_cost_per_click\n : null;\n\n // bind sponsored video metrics comparison change in percent\n tempData[index].adSalesSBVChangeInPercent =\n item?.brand_video_campaign_report_ad_sales !== null\n ? item.brand_video_campaign_report_ad_sales\n : null;\n tempData[index].adSpendSBVChangeInPercent =\n item?.brand_video_campaign_report_ad_spend !== null\n ? item.brand_video_campaign_report_ad_spend\n : null;\n tempData[index].adConversionRateSBVChangeInPercent =\n item?.brand_video_campaign_report_ad_conversion_rate !== null\n ? item.brand_video_campaign_report_ad_conversion_rate\n : null;\n tempData[index].adImpressionsSBVChangeInPercent =\n item?.brand_video_campaign_report_impressions !== null\n ? item.brand_video_campaign_report_impressions\n : null;\n tempData[index].adAcosSBVChangeInPercent =\n item?.brand_video_campaign_report_acos !== null\n ? item.brand_video_campaign_report_acos\n : null;\n tempData[index].adRoasSBVChangeInPercent =\n item?.brand_video_campaign_report_roas !== null\n ? item.brand_video_campaign_report_roas\n : null;\n tempData[index].adClicksSBVChangeInPercent =\n item?.brand_video_campaign_report_clicks !== null\n ? item.brand_video_campaign_report_clicks\n : null;\n tempData[index].adClickThroughRateSBVChangeInPercent =\n item?.brand_video_campaign_report_ctr !== null\n ? item.brand_video_campaign_report_ctr\n : null;\n tempData[index].adCostPerClickSBVChangeInPercent =\n item?.brand_video_campaign_report_cost_per_click !== null\n ? item.brand_video_campaign_report_cost_per_click\n : null;\n\n // bind sponsored display metrics comparison change in percent\n tempData[index].adSalesSDChangeInPercent =\n item?.sponsored_display_campaign_report_ad_sales !== null\n ? item.sponsored_display_campaign_report_ad_sales\n : null;\n tempData[index].adSpendSDChangeInPercent =\n item?.sponsored_display_campaign_report_ad_spend !== null\n ? item.sponsored_display_campaign_report_ad_spend\n : null;\n\n tempData[index].adConversionRateSDChangeInPercent =\n item?.sponsored_display_campaign_report_ad_conversion_rate !== null\n ? item.sponsored_display_campaign_report_ad_conversion_rate\n : null;\n tempData[index].adImpressionsSDChangeInPercent =\n item?.sponsored_display_campaign_report_impressions !== null\n ? item.sponsored_display_campaign_report_impressions\n : null;\n tempData[index].adAcosSDChangeInPercent =\n item?.sponsored_display_campaign_report_acos !== null\n ? item.sponsored_display_campaign_report_acos\n : null;\n tempData[index].adRoasSDChangeInPercent =\n item?.sponsored_display_campaign_report_roas !== null\n ? item.sponsored_display_campaign_report_roas\n : null;\n tempData[index].adClicksSDChangeInPercent =\n item?.sponsored_display_campaign_report_clicks !== null\n ? item.sponsored_display_campaign_report_clicks\n : null;\n tempData[index].adClickThroughRateSDChangeInPercent =\n item?.sponsored_display_campaign_report_ctr !== null\n ? item.sponsored_display_campaign_report_ctr\n : null;\n tempData[index].adCostPerClickSDChangeInPercent =\n item?.sponsored_display_campaign_report_cost_per_click !== null\n ? item.sponsored_display_campaign_report_cost_per_click\n : null;\n\n // bind dsp metrics comparison change in value\n tempData[index].dspImpressionsChangeInPercent =\n item?.dsp_impressions !== null ? item.dsp_impressions : null;\n tempData[index].dspSpendChangeInPercent =\n item?.dsp_dsp_spend !== null ? item.dsp_dsp_spend : null;\n tempData[index].dspTotalProductSalesChangeInPercent =\n item?.total_product_sales !== null ? item.total_product_sales : null;\n tempData[index].dspTotalRoasChangeInPercent =\n item?.total_dsp_roas !== null ? item.total_dsp_roas : null;\n tempData[index].dspTotalDpvrChangeInPercent =\n item?.total_dpvr !== null ? item.total_dpvr : null;\n tempData[index].dspTotalNewBrandPurchasesChangeInPercent =\n item?.ttl_new_brand_purchases !== null\n ? item.ttl_new_brand_purchases\n : null;\n tempData[index].dspProductSalesChangeInPercent =\n item?.product_sales !== null ? item.product_sales : null;\n tempData[index].dspRoasChangeInPercent =\n item?.dsp_roas !== null ? item.dsp_roas : null;\n }\n });\n }\n\n // set metrics total\n let localCurrrentTotal = {};\n if (acType === 'seller') {\n localCurrrentTotal = {\n // bind seller metrics previous total value\n salesRevenueTotalPrevious: previousTotalKey?.revenue,\n salesRevenuePpcPrevious: previousTotalKey?.revenue_ppc,\n salesRevenueDspPrevious: previousTotalKey?.revenue_dsp,\n salesTacosPrevious: previousTotalKey?.tacos,\n salesUnitSoldPrevious: previousTotalKey?.units_sold,\n salesTrafficPrevious: previousTotalKey?.traffic,\n salesConversionPrevious: previousTotalKey?.conversion,\n salesAdSpendTotalPrevious: previousTotalKey?.ad_spend_total,\n salesAdSpendPpcPrevious: previousTotalKey?.sales_ad_spend,\n salesAdSpendDspPrevious: previousTotalKey?.sales_dsp_spends,\n\n // bind seller metrics current total value\n salesRevenueTotalCurrent: currentTotalKey?.revenue,\n salesRevenuePpcCurrent: currentTotalKey?.revenue_ppc,\n salesRevenueDspCurrent: currentTotalKey?.revenue_dsp,\n salesTacosCurrent: currentTotalKey?.tacos,\n salesUnitSoldCurrent: currentTotalKey?.units_sold,\n salesTrafficCurrent: currentTotalKey?.traffic,\n salesConversionCurrent: currentTotalKey?.conversion,\n salesAdSpendTotalCurrent: currentTotalKey?.ad_spend_total,\n salesAdSpendPpcCurrent: currentTotalKey?.sales_ad_spend,\n salesAdSpendDspCurrent: currentTotalKey?.sales_dsp_spends,\n\n // bind seller metrics total comparison change in value\n salesRevenueTotalChangeInValue: totalChangeInValueKey?.revenue,\n salesRevenuePpcChangeInValue: totalChangeInValueKey?.revenue_ppc,\n salesRevenueDspChangeInValue: totalChangeInValueKey?.revenue_dsp,\n salesTacosChangeInValue: totalChangeInValueKey?.tacos,\n salesUnitSoldChangeInValue: totalChangeInValueKey?.units_sold,\n salesTrafficChangeInValue: totalChangeInValueKey?.traffic,\n salesConversionChangeInValue: totalChangeInValueKey?.conversion,\n salesAdSpendTotalChangeInValue: totalChangeInValueKey?.ad_spend_total,\n salesAdSpendPpcChangeInValue: totalChangeInValueKey?.sales_ad_spend,\n salesAdSpendDspChangeInValue: totalChangeInValueKey?.sales_dsp_spends,\n\n // bind seller metrics total comparison change in percentage\n salesRevenueTotalChangeInPercent: totalChangeInPercentKey?.revenue,\n salesRevenuePpcChangeInPercent: totalChangeInPercentKey?.revenue_ppc,\n salesRevenueDspChangeInPercent: totalChangeInPercentKey?.revenue_dsp,\n salesTacosChangeInPercent: totalChangeInPercentKey?.tacos,\n salesUnitSoldChangeInPercent: totalChangeInPercentKey?.units_sold,\n salesTrafficChangeInPercent: totalChangeInPercentKey?.traffic,\n salesConversionChangeInPercent: totalChangeInPercentKey?.conversion,\n salesAdSpendTotalChangeInPercent: totalChangeInPercentKey?.ad_spend_total,\n salesAdSpendPpcChangeInPercent: totalChangeInPercentKey?.sales_ad_spend,\n salesAdSpendDspChangeInPercent: totalChangeInPercentKey?.sales_dsp_spends,\n };\n } else if (acType === 'vendor') {\n localCurrrentTotal = {\n // bind vendor metrics previous total value\n salesOrderedRevenuePrevious: previousTotalKey?.ordered_revenue,\n salesOrderedGlanceViewsPrevious: previousTotalKey?.glance_views,\n salesOrderedConversionRatePrevious: previousTotalKey?.conversion_rate,\n SalesOrderedUnitsPrevious: previousTotalKey?.ordered_units,\n salesShippedCogsPrevious: previousTotalKey?.shipped_cogs,\n salesShippedGlanceViewsPrevious: previousTotalKey?.glance_views,\n salesShippedConversionRatePrevious: previousTotalKey?.conversion_rate,\n salesShippedCogsUnitPrevious: previousTotalKey?.shipped_units,\n\n // bind vendor metrics current total value\n salesOrderedRevenueCurrent: currentTotalKey.ordered_revenue,\n salesOrderedGlanceViewsCurrent: currentTotalKey.glance_views,\n salesOrderedUnitsCurrent: currentTotalKey.ordered_units,\n salesOrderedConversionRateCurrent: currentTotalKey.conversion_rate,\n salesShippedCogsCurrent: currentTotalKey.shipped_cogs,\n salesShippedGlanceViewsCurrent: currentTotalKey.glance_views,\n salesShippedConversionRateCurrent: currentTotalKey.conversion_rate,\n salesShippedUnitsCurrent: currentTotalKey.shipped_units,\n\n // bind vendor metrics total comparison change in value\n salesOrderedRevenueChangeInValue: totalChangeInValueKey?.ordered_revenue,\n salesOrderedGlanceViewsChangeInValue: totalChangeInValueKey?.glance_views,\n salesOrderedUnitsChangeInValue: totalChangeInValueKey?.ordered_units,\n salesOrderedConversionRateChangeInValue:\n totalChangeInValueKey?.conversion_rate,\n salesShippedCogsChangeInValue: totalChangeInValueKey?.shipped_cogs,\n salesShippedGlanceViewsChangeInValue: totalChangeInValueKey?.glance_views,\n salesShippedConversionRateChangeInValue:\n totalChangeInValueKey?.conversion_rate,\n salesShippedUnitsChangeInValue: totalChangeInValueKey?.shipped_units,\n\n // bind vendor metrics total comparison change in percentage\n salesOrderedRevenueChangeInPercent:\n totalChangeInPercentKey?.ordered_revenue,\n salesOrderedGlanceViewsChangeInPercent:\n totalChangeInPercentKey?.glance_views,\n salesOrderedUnitsChangeInPercent: totalChangeInPercentKey?.ordered_units,\n salesOrderedConversionRateChangeInPercent:\n totalChangeInPercentKey?.conversion_rate,\n salesShippedCogsChangeInPercent: totalChangeInPercentKey?.shipped_cogs,\n salesShippedGlanceViewsChangeInPercent:\n totalChangeInPercentKey?.glance_views,\n salesShippedConversionRateChangeInPercent:\n totalChangeInPercentKey?.conversion_rate,\n salesShippedUnitsChangeInPercent: totalChangeInPercentKey?.shipped_units,\n };\n }\n\n localCurrrentTotal = {\n ...localCurrrentTotal,\n\n adSalesPrevious: previousTotalKey?.all_ad_sales,\n adSpendPrevious: previousTotalKey?.all_ad_spend,\n adConversionRatePrevious: previousTotalKey?.all_ad_conversion_rate,\n adImpressionsPrevious: previousTotalKey?.all_impressions,\n adAcosPrevious: previousTotalKey?.all_acos,\n adRoasPrevious: previousTotalKey?.all_roas,\n adClicksPrevious: previousTotalKey?.all_clicks,\n adClickThroughRatePrevious: previousTotalKey?.all_ctr,\n adCostPerClickPrevious: previousTotalKey?.all_cost_per_click,\n\n adSalesSPPrevious: previousTotalKey?.product_campaign_report_ad_sales,\n adSpendSPPrevious: previousTotalKey?.product_campaign_report_ad_spend,\n adConversionRateSPPrevious:\n previousTotalKey?.product_campaign_report_ad_conversion_rate,\n adImpressionsSPPrevious:\n previousTotalKey?.product_campaign_report_impressions,\n adAcosSPPrevious: previousTotalKey?.product_campaign_report_acos,\n adRoasSPPrevious: previousTotalKey?.product_campaign_report_roas,\n adClicksSPPrevious: previousTotalKey?.product_campaign_report_clicks,\n adClickThroughRateSPPrevious: previousTotalKey?.product_campaign_report_ctr,\n adCostPerClickSPPrevious:\n previousTotalKey?.product_campaign_report_cost_per_click,\n\n adSalesSBPrevious: previousTotalKey?.brand_campaign_report_ad_sales,\n adSpendSBPrevious: previousTotalKey?.brand_campaign_report_ad_spend,\n adConversionRateSBPrevious:\n previousTotalKey?.brand_campaign_report_ad_conversion_rate,\n adImpressionsSBPrevious:\n previousTotalKey?.brand_campaign_report_impressions,\n adAcosSBPrevious: previousTotalKey?.brand_campaign_report_acos,\n adRoasSBPrevious: previousTotalKey?.brand_campaign_report_roas,\n adClicksSBPrevious: previousTotalKey?.brand_campaign_report_clicks,\n adClickThroughRateSBPrevious: previousTotalKey?.brand_campaign_report_ctr,\n adCostPerClickSBPrevious:\n previousTotalKey?.brand_campaign_report_cost_per_click,\n\n adSalesSBVPrevious: previousTotalKey?.brand_video_campaign_report_ad_sales,\n adSpendSBVPrevious: previousTotalKey?.brand_video_campaign_report_ad_spend,\n adConversionRateSBVPrevious:\n previousTotalKey?.brand_video_campaign_report_ad_conversion_rate,\n adImpressionsSBVPrevious:\n previousTotalKey?.brand_video_campaign_report_impressions,\n adAcosSBVPrevious: previousTotalKey?.brand_video_campaign_report_acos,\n adRoasSBVPrevious: previousTotalKey?.brand_video_campaign_report_roas,\n adClicksSBVPrevious: previousTotalKey?.brand_video_campaign_report_clicks,\n adClickThroughRateSBVPrevious:\n previousTotalKey?.brand_video_campaign_report_ctr,\n adCostPerClickSBVPrevious:\n previousTotalKey?.brand_video_campaign_report_cost_per_click,\n\n adSalesSDPrevious:\n previousTotalKey?.sponsored_display_campaign_report_ad_sales,\n adSpendSDPrevious:\n previousTotalKey?.sponsored_display_campaign_report_ad_spend,\n adConversionRateSDPrevious:\n previousTotalKey?.sponsored_display_campaign_report_ad_conversion_rate,\n adImpressionsSDPrevious:\n previousTotalKey?.sponsored_display_campaign_report_impressions,\n adAcosSDPrevious: previousTotalKey?.sponsored_display_campaign_report_acos,\n adRoasSDPrevious: previousTotalKey?.sponsored_display_campaign_report_roas,\n adClicksSDPrevious:\n previousTotalKey?.sponsored_display_campaign_report_clicks,\n adClickThroughRateSDPrevious:\n previousTotalKey?.sponsored_display_campaign_report_ctr,\n adCostPerClickSDPrevious:\n previousTotalKey?.sponsored_display_campaign_report_cost_per_click,\n\n dspImpressionsPrevious: previousTotalKey?.dsp_impressions,\n dspSpendPrevious: previousTotalKey?.dsp_dsp_spend,\n dspTotalProductSalesPrevious: previousTotalKey?.total_product_sales,\n dspTotalRoasPrevious: previousTotalKey?.total_dsp_roas,\n dspTotalDpvrPrevious: previousTotalKey?.total_dpvr,\n dspTotalNewBrandPurchasesPrevious:\n previousTotalKey?.ttl_new_brand_purchases,\n dspProductSalesPrevious: previousTotalKey?.product_sales,\n dspRoasPrevious: previousTotalKey?.dsp_roas,\n\n // bind sponsored all metrics current total value\n adSalesCurrent: currentTotalKey?.all_ad_sales,\n adSpendCurrent: currentTotalKey?.all_ad_spend,\n adConversionRateCurrent: currentTotalKey?.all_ad_conversion_rate,\n adImpressionsCurrent: currentTotalKey?.all_impressions,\n adAcosCurrent: currentTotalKey?.all_acos,\n adRoasCurrent: currentTotalKey?.all_roas,\n adClicksCurrent: currentTotalKey?.all_clicks,\n adClickThroughRateCurrent: currentTotalKey?.all_ctr,\n adCostPerClickCurrent: currentTotalKey?.all_cost_per_click,\n\n // bind sponsored product metrics current total value\n adSalesSPCurrent: currentTotalKey?.product_campaign_report_ad_sales,\n adSpendSPCurrent: currentTotalKey?.product_campaign_report_ad_spend,\n adConversionRateSPCurrent:\n currentTotalKey?.product_campaign_report_ad_conversion_rate,\n adImpressionsSPCurrent:\n currentTotalKey?.product_campaign_report_impressions,\n adAcosSPCurrent: currentTotalKey?.product_campaign_report_acos,\n adRoasSPCurrent: currentTotalKey?.product_campaign_report_roas,\n adClicksSPCurrent: currentTotalKey?.product_campaign_report_clicks,\n adClickThroughRateSPCurrent: currentTotalKey?.product_campaign_report_ctr,\n adCostPerClickSPCurrent:\n currentTotalKey?.product_campaign_report_cost_per_click,\n\n adSalesSBCurrent: currentTotalKey?.brand_campaign_report_ad_sales,\n adSpendSBCurrent: currentTotalKey?.brand_campaign_report_ad_spend,\n adConversionRateSBCurrent:\n currentTotalKey?.brand_campaign_report_ad_conversion_rate,\n adImpressionsSBCurrent: currentTotalKey?.brand_campaign_report_impressions,\n adAcosSBCurrent: currentTotalKey?.brand_campaign_report_acos,\n adRoasSBCurrent: currentTotalKey?.brand_campaign_report_roas,\n adClicksSBCurrent: currentTotalKey?.brand_campaign_report_clicks,\n adClickThroughRateSBCurrent: currentTotalKey?.brand_campaign_report_ctr,\n adCostPerClickSBCurrent:\n currentTotalKey?.brand_campaign_report_cost_per_click,\n\n adSalesSBVCurrent: currentTotalKey?.brand_video_campaign_report_ad_sales,\n adSpendSBVCurrent: currentTotalKey?.brand_video_campaign_report_ad_spend,\n adConversionRateSBVCurrent:\n currentTotalKey?.brand_video_campaign_report_ad_conversion_rate,\n adImpressionsSBVCurrent:\n currentTotalKey?.brand_video_campaign_report_impressions,\n adAcosSBVCurrent: currentTotalKey?.brand_video_campaign_report_acos,\n adRoasSBVCurrent: currentTotalKey?.brand_video_campaign_report_roas,\n adClicksSBVCurrent: currentTotalKey?.brand_video_campaign_report_clicks,\n adClickThroughRateSBVCurrent:\n currentTotalKey?.brand_video_campaign_report_ctr,\n adCostPerClickSBVCurrent:\n currentTotalKey?.brand_video_campaign_report_cost_per_click,\n\n adSalesSDCurrent:\n currentTotalKey?.sponsored_display_campaign_report_ad_sales,\n adSpendSDCurrent:\n currentTotalKey?.sponsored_display_campaign_report_ad_spend,\n adConversionRateSDCurrent:\n currentTotalKey?.sponsored_display_campaign_report_ad_conversion_rate,\n adImpressionsSDCurrent:\n currentTotalKey?.sponsored_display_campaign_report_impressions,\n adAcosSDCurrent: currentTotalKey?.sponsored_display_campaign_report_acos,\n adRoasSDCurrent: currentTotalKey?.sponsored_display_campaign_report_roas,\n adClicksSDCurrent:\n currentTotalKey?.sponsored_display_campaign_report_clicks,\n adClickThroughRateSDCurrent:\n currentTotalKey?.sponsored_display_campaign_report_ctr,\n adCostPerClickSDCurrent:\n currentTotalKey?.sponsored_display_campaign_report_cost_per_click,\n\n // bind sponsored all metrics total comparison change in value\n adSalesChangeInValue: totalChangeInValueKey?.all_ad_sales,\n adSpendChangeInValue: totalChangeInValueKey?.all_ad_spend,\n adConversionRateChangeInValue:\n totalChangeInValueKey?.all_ad_conversion_rate,\n adImpressionsChangeInValue: totalChangeInValueKey?.all_impressions,\n adAcosChangeInValue: totalChangeInValueKey?.all_acos,\n adRoasChangeInValue: totalChangeInValueKey?.all_roas,\n adClicksChangeInValue: totalChangeInValueKey?.all_clicks,\n adClickThroughRateChangeInValue: totalChangeInValueKey?.all_ctr,\n adCostPerClickChangeInValue: totalChangeInValueKey?.all_cost_per_click,\n\n // bind sponsored product metrics total comparison change in value\n adSalesSPChangeInValue:\n totalChangeInValueKey?.product_campaign_report_ad_sales,\n adSpendSPChangeInValue:\n totalChangeInValueKey?.product_campaign_report_ad_spend,\n adConversionRateSPChangeInValue:\n totalChangeInValueKey?.product_campaign_report_ad_conversion_rate,\n adImpressionsSPChangeInValue:\n totalChangeInValueKey?.product_campaign_report_impressions,\n adAcosSPChangeInValue: totalChangeInValueKey?.product_campaign_report_acos,\n adRoasSPChangeInValue: totalChangeInValueKey?.product_campaign_report_roas,\n adClicksSPChangeInValue:\n totalChangeInValueKey?.product_campaign_report_clicks,\n adClickThroughRateSPChangeInValue:\n totalChangeInValueKey?.product_campaign_report_ctr,\n adCostPerClickSPChangeInValue:\n totalChangeInValueKey?.product_campaign_report_cost_per_click,\n\n // bind sponsored brand metrics total comparison change in value\n adSalesSBChangeInValue:\n totalChangeInValueKey?.brand_campaign_report_ad_sales,\n adSpendSBChangeInValue:\n totalChangeInValueKey?.brand_campaign_report_ad_spend,\n adConversionRateSBChangeInValue:\n totalChangeInValueKey?.brand_campaign_report_ad_conversion_rate,\n adImpressionsSBChangeInValue:\n totalChangeInValueKey?.brand_campaign_report_impressions,\n adAcosSBChangeInValue: totalChangeInValueKey?.brand_campaign_report_acos,\n adRoasSBChangeInValue: totalChangeInValueKey?.brand_campaign_report_roas,\n adClicksSBChangeInValue:\n totalChangeInValueKey?.brand_campaign_report_clicks,\n adClickThroughRateSBChangeInValue:\n totalChangeInValueKey?.brand_campaign_report_ctr,\n adCostPerClickSBChangeInValue:\n totalChangeInValueKey?.brand_campaign_report_cost_per_click,\n\n // bind sponsored video metrics total comparison change in value\n adSalesSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_ad_sales,\n adSpendSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_ad_spend,\n adConversionRateSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_ad_conversion_rate,\n adImpressionsSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_impressions,\n adAcosSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_acos,\n adRoasSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_roas,\n adClicksSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_clicks,\n adClickThroughRateSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_ctr,\n adCostPerClickSBVChangeInValue:\n totalChangeInValueKey?.brand_video_campaign_report_cost_per_click,\n\n // bind sponsored display metrics total comparison change in value\n adSalesSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_ad_sales,\n adSpendSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_ad_spend,\n adConversionRateSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_ad_conversion_rate,\n adImpressionsSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_impressions,\n adAcosSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_acos,\n adRoasSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_roas,\n adClicksSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_clicks,\n adClickThroughRateSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_ctr,\n adCostPerClickSDChangeInValue:\n totalChangeInValueKey?.sponsored_display_campaign_report_cost_per_click,\n\n // bind sponsored all metrics total comparison change in percentage\n adSalesChangeInPercent: totalChangeInPercentKey?.all_ad_sales,\n adSpendChangeInPercent: totalChangeInPercentKey?.all_ad_spend,\n adConversionRateChangeInPercent:\n totalChangeInPercentKey?.all_ad_conversion_rate,\n adImpressionsChangeInPercent: totalChangeInPercentKey?.all_impressions,\n adAcosChangeInPercent: totalChangeInPercentKey?.all_acos,\n adRoasChangeInPercent: totalChangeInPercentKey?.all_roas,\n adClicksChangeInPercent: totalChangeInPercentKey?.all_clicks,\n adClickThroughRateChangeInPercent: totalChangeInPercentKey?.all_ctr,\n adCostPerClickChangeInPercent: totalChangeInPercentKey?.all_cost_per_click,\n\n // bind sponsored product metrics total comparison change in percentage\n adSalesSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_ad_sales,\n adSpendSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_ad_spend,\n adConversionRateSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_ad_conversion_rate,\n adImpressionsSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_impressions,\n adAcosSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_acos,\n adRoasSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_roas,\n adClicksSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_clicks,\n adClickThroughRateSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_ctr,\n adCostPerClickSPChangeInPercent:\n totalChangeInPercentKey?.product_campaign_report_cost_per_click,\n\n // bind sponsored brand metrics total comparison change in percentage\n adSalesSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_ad_sales,\n adSpendSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_ad_spend,\n adConversionRateSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_ad_conversion_rate,\n adImpressionsSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_impressions,\n adAcosSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_acos,\n adRoasSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_roas,\n adClicksSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_clicks,\n adClickThroughRateSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_ctr,\n adCostPerClickSBChangeInPercent:\n totalChangeInPercentKey?.brand_campaign_report_cost_per_click,\n\n // bind sponsored video metrics total comparison change in percentage\n adSalesSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_ad_sales,\n adSpendSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_ad_spend,\n adConversionRateSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_ad_conversion_rate,\n adImpressionsSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_impressions,\n adAcosSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_acos,\n adRoasSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_roas,\n adClicksSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_clicks,\n adClickThroughRateSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_ctr,\n adCostPerClickSBVChangeInPercent:\n totalChangeInPercentKey?.brand_video_campaign_report_cost_per_click,\n\n // bind sponsored display metrics total comparison change in percentage\n adSalesSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_ad_sales,\n adSpendSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_ad_spend,\n adConversionRateSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_ad_conversion_rate,\n adImpressionsSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_impressions,\n adAcosSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_acos,\n adRoasSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_roas,\n adClicksSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_clicks,\n adClickThroughRateSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_ctr,\n adCostPerClickSDChangeInPercent:\n totalChangeInPercentKey?.sponsored_display_campaign_report_cost_per_click,\n\n // bind dsp metrics current total value\n dspImpressionsCurrent: currentTotalKey?.dsp_impressions,\n dspSpendCurrent: currentTotalKey?.dsp_dsp_spend,\n dspTotalProductSalesCurrent: currentTotalKey?.total_product_sales,\n dspTotalRoasCurrent: currentTotalKey?.total_dsp_roas,\n dspTotalDpvrCurrent: currentTotalKey?.total_dpvr,\n dspTotalNewBrandPurchasesCurrent: currentTotalKey?.ttl_new_brand_purchases,\n dspProductSalesCurrent: currentTotalKey?.product_sales,\n dspRoasCurrent: currentTotalKey?.dsp_roas,\n\n // bind dsp metrics comparison change in value\n dspImpressionsChangeInValue: totalChangeInValueKey?.dsp_impressions,\n dspSpendChangeInValue: totalChangeInValueKey?.dsp_dsp_spend,\n dspTotalProductSalesChangeInValue:\n totalChangeInValueKey?.total_product_sales,\n dspTotalRoasChangeInValue: totalChangeInValueKey?.total_dsp_roas,\n dspTotalDpvrChangeInValue: totalChangeInValueKey?.total_dpvr,\n dspTotalNewBrandPurchasesChangeInValue:\n totalChangeInValueKey?.ttl_new_brand_purchases,\n dspProductSalesChangeInValue: totalChangeInValueKey?.product_sales,\n dspRoasChangeInValue: totalChangeInValueKey?.dsp_roas,\n\n // bind dsp metrics comparison change in percentage\n dspImpressionsChangeInPercent: totalChangeInPercentKey?.dsp_impressions,\n dspSpendChangeInPercent: totalChangeInPercentKey?.dsp_dsp_spend,\n dspTotalProductSalesChangeInPercent:\n totalChangeInPercentKey?.total_product_sales,\n dspTotalRoasChangeInPercent: totalChangeInPercentKey?.total_dsp_roas,\n dspTotalDpvrChangeInPercent: totalChangeInPercentKey?.total_dpvr,\n dspTotalNewBrandPurchasesChangeInPercent:\n totalChangeInPercentKey?.ttl_new_brand_purchases,\n dspProductSalesChangeInPercent: totalChangeInPercentKey?.product_sales,\n dspRoasChangeInPercent: totalChangeInPercentKey?.dsp_roas,\n };\n\n return { tempData, metricsTotal: localCurrrentTotal };\n};\n\nexport default BindGraphDataApiResponse;\n","/* eslint-disable new-cap */\n\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport axios from 'axios';\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport b64toBlob from 'b64-to-blob';\nimport html2pdf from 'html2pdf-jspdf2';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useMediaQuery } from 'react-responsive';\nimport { func, shape, string } from 'prop-types';\nimport { toast, ToastContainer } from 'react-toastify';\n\nimport Theme from '../../../../theme/Theme';\nimport axiosInstance from '../../../../axios';\nimport ReportPDFStatusModal from '../ReportPDFStatusModal';\nimport ReportLeftSidePanel from './ReportLeftSidePanel';\nimport ReportRightSidePanel from './ReportRightSidePanel';\nimport ConfirmCloseReportModal from '../ConfirmCloseReportModal';\nimport BindGraphDataApiResponse from './BindGraphDataApiResponse';\nimport { ContractTab } from '../../../../theme/AgreementStyle';\nimport { OrangeDownloadPdf } from '../../../../theme/images';\nimport { HeaderDownloadFuntionality, PageLoader } from '../../../../common';\nimport {\n API_DOCUMENTS,\n metricsDisabledOnAgreement,\n metricsTooltipArray,\n selleCollapseIds,\n sellerDetails,\n sellerDetailsEditor,\n setTimeFrame,\n vendorDetails,\n vendorDetailsEditor,\n} from '../../../../constants';\nimport {\n getBuyBoxChartData,\n getCutomReportASINPerformanceData,\n getReportGraphSelectedFileds,\n getRestockInventoryData,\n getSalesSponsoredDspMetricsData,\n getStrandedInventoryData,\n saveReport,\n getAsinDataCount,\n checkReportStatusToEdit,\n changeReportStatus,\n getCustomReportActivity,\n getReportTemplate,\n} from '../../../../api';\n\nconst _ = require('lodash');\nconst getSymbolFromCurrency = require('currency-symbol-map');\n\nconst DOWNLOAD_ACTION = 'downloaded';\n\nconst CreateReportContainer = ({\n onCloseReport,\n accType,\n marketplace,\n customReportStatus,\n reportId,\n customerId,\n customerName,\n pdfURL,\n selectedReportTemplate,\n}) => {\n const html2pdfRef = useRef();\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const nonDraftCustomStyles = {\n width: '50%',\n margin: '0',\n paddingLeft: '0',\n paddingRight: '0',\n };\n const mounted = useRef(false);\n const counterRef = useRef(null);\n\n const [accountType, setAccountType] = useState({\n isSeller: accType === 'Seller',\n isVendor: accType === 'Vendor',\n isHybrid: accType === 'Hybrid',\n value: accType,\n });\n\n // PDV-8793 - Update Vendor Sales data to T-3\n const dayLimit = accType === 'Vendor' ? 3 : 2;\n const todayDate = new Date();\n todayDate.setDate(todayDate.getDate() - dayLimit);\n const [currentDate] = useState(todayDate);\n\n const [selectedMarketplace, setSelectedMarketplace] = useState(\n marketplace || { label: 'United State', value: 'amazon.com' },\n );\n const [marketplaceCurrency, setMarketplaceCurrency] = useState(\n getSymbolFromCurrency(marketplace?.currency || 'USD'),\n );\n const [reportStatus, setReportStatus] = useState(customReportStatus || 'new');\n const [customReportId, setCustomReportId] = useState(reportId);\n const [reportSummary, setReportSummary] = useState('');\n const [reportPresignedUrl, setReportPresignedUrl] = useState(pdfURL);\n const [showTabResponsive, setShowTabResponsive] = useState('edit-report');\n const [selectedTimeFrame, setSelectedTimeFrame] = useState(undefined);\n const [getSelectedFieldLoader, setGetSelectedFieldLoader] = useState(false);\n const [saveDetailsLoader, setSaveDetailsLoader] = useState(false);\n const [showSaveReportModal, setShowSaveReportModal] = useState(false);\n const [reportDescription, setReportDescription] = useState('');\n const [reportTitle, setReportTitle] = useState('');\n const [metricDataLoader, setMetricDataLoader] = useState(false);\n const [downloader, setDownloader] = useState(false);\n const [autoScrollId, setAutoScrollId] = useState(null);\n\n const [countDownTimer, setCountDownTimer] = useState('00:00:00');\n const [inventoryDatesMessage, setInventoryDatesMessage] = useState();\n const [asinDataCount, setAsinData] = useState({});\n const [isRemainderUp, setIsRemainderUp] = useState(false);\n const [isTimeFrameDisabled, setIsTimeFrameDisabled] = useState(\n reportStatus === 'readyToEdit',\n );\n const [metricsDataAvailabilityFlag, setMetricsDataAvailabilityFlag] =\n useState([]);\n const [enabledGroupFrequencyList, setEnabledGroupFrequencyList] = useState([\n 'daily',\n 'weekly',\n 'monthly',\n ]);\n const [selectedState, setSelectedState] = useState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'reportSelection',\n },\n ]);\n const [dateToShow, setDateToShow] = useState({\n startDate: currentDate,\n endDate: currentDate,\n });\n\n // data variables\n const [graphApiResponseData, setGraphApiResponseData] = useState([]);\n const [currentPDFUser, setCurrentPDFUser] = useState();\n const [currentEndDate, setCurrentEndDate] = useState(null);\n const [reportPDFstatusModal, setReportPDFStatusModal] = useState(false);\n const [showReportPDFTemplate, setShowReportPDFTemplate] = useState(false);\n const [templateTimeFrame, setTemplateTimeFrame] = useState(null);\n const [templateReportTitle, setTemplateReportTitle] = useState(null);\n const [templateReportDescrition, setTemplateReportDescrition] =\n useState(null);\n const [showConfirmCloseReportModal, setShowConfirmCloseReportModal] =\n useState(false);\n const [showMetricsTooltip, setShowMetricsTooltip] = useState([]);\n\n // useeffet to get the asin data\n useEffect(() => {\n if (selectedTimeFrame !== undefined) {\n getAsinDataCount(\n customerId,\n selectedMarketplace?.value,\n selectedTimeFrame?.value,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setAsinData(res.data);\n }\n }\n });\n }\n }, [customerId, selectedMarketplace.value, selectedTimeFrame]);\n\n // useeffet to auto scroll functionality\n useEffect(() => {\n if (autoScrollId !== null) {\n const element = document.getElementById(autoScrollId);\n if (element !== null) element.scrollIntoView({ behavior: 'smooth' });\n }\n\n return () => setAutoScrollId(null);\n }, [autoScrollId]);\n\n // update the report status from 'inprogress' to 'ready'\n const updateReportStatus = (theReportStatus, reptId = customReportId) => {\n changeReportStatus(reptId, theReportStatus);\n };\n\n // Countdown functionality start //\n const getTimeRemaining = (e) => {\n const total = Date.parse(e) - Date.parse(new Date());\n const seconds = Math.floor((total / 1000) % 60);\n const minutes = Math.floor((total / 1000 / 60) % 60);\n const hours = Math.floor((total / 1000 / 60 / 60) % 24);\n return {\n total,\n hours,\n minutes,\n seconds,\n };\n };\n\n const startTimer = (e, localReportStatus) => {\n const { total, hours, minutes, seconds } = getTimeRemaining(e);\n if (total >= 0) {\n setCountDownTimer(\n `${hours > 9 ? hours : `0${hours}`}:${\n minutes > 9 ? minutes : `0${minutes}`\n }:${seconds > 9 ? seconds : `0${seconds}`}`,\n );\n }\n // replace 60000 to 300000- for 1 hr- 55 min\n // calculation-> 1 sec = 1000;\n // 5 min before so, 60*5 =300 (60 sec in min)\n // 300 * 1000 = 3000000\n if (total === 300000 && localReportStatus === 'edit') {\n setShowSaveReportModal(true);\n setIsRemainderUp(true);\n }\n if (total === -1000 && localReportStatus === 'edit') {\n changeReportStatus(customReportId, 'ready').then((res) => {\n if (res?.status === 200) {\n onCloseReport();\n clearInterval(counterRef.current);\n }\n });\n }\n };\n\n const clearTimer = (e, localReportStatus) => {\n // If you adjust it you should also need to\n // adjust the Endtime formula we are about\n // to code next\n\n setCountDownTimer('01:00:00'); // for 1 hr-setTimer('01:00:00');\n\n // If you try to remove this line the\n // updating of timer Variable will be\n // after 1000ms or 1sec\n if (counterRef.current) clearInterval(counterRef.current);\n\n const id = setInterval(() => {\n startTimer(e, localReportStatus);\n }, 1000);\n counterRef.current = id;\n };\n\n const getDeadTime = () => {\n const deadline = new Date();\n deadline.setSeconds(deadline.getSeconds() + 3600); // 3600 for 1 hr.\n return deadline;\n };\n\n // useeffet to timer functionality\n useEffect(() => {\n if (reportStatus === 'edit') {\n clearTimer(getDeadTime(), reportStatus);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reportStatus]);\n\n // Countdown functionality END //\n\n const bindGraphDetails = () => {\n const localGrapgh = [];\n const localEditor = [];\n if (accountType.isSeller) {\n localGrapgh.push({\n isOpen: true,\n sellerDetails,\n vendorDetails: null,\n });\n localEditor.push({\n sellerDetails: sellerDetailsEditor,\n vendorDetails: null,\n });\n } else if (accountType.isVendor) {\n localGrapgh.push({\n isOpen: true,\n sellerDetails: null,\n vendorDetails,\n });\n localEditor.push({\n sellerDetails: null,\n vendorDetails: vendorDetailsEditor,\n });\n } else if (accountType.isHybrid) {\n localGrapgh.push({\n isOpen: true,\n sellerDetails,\n vendorDetails,\n });\n localEditor.push({\n sellerDetails: sellerDetailsEditor,\n vendorDetails: vendorDetailsEditor,\n });\n }\n\n return { localGrapgh, localEditor };\n };\n\n const [graphDetails, setGraphDetails] = useState(\n bindGraphDetails().localGrapgh,\n );\n const [editorDetails, setEditorDetails] = useState(\n bindGraphDetails().localEditor,\n );\n\n const onGetCustomReportActivity = useCallback((action, reportID) => {\n getCustomReportActivity(action, reportID).then(() => {});\n }, []);\n\n // download report pdf\n const handleDownload = () => {\n if (reportPresignedUrl) {\n setDownloader(true);\n fetch(reportPresignedUrl).then((response) => {\n const pdfName = `${customerName} ${reportTitle} ${dayjs(\n new Date(),\n ).format('DD MMM YYYY')}.pdf`.replaceAll(' ', '_');\n\n response\n .blob()\n .then((blob) => {\n // Creating new object of PDF file\n const fileURL = window.URL.createObjectURL(blob);\n // Setting various property values\n const alink = document.createElement('a');\n alink.href = fileURL;\n alink.download = pdfName;\n alink.click();\n setDownloader(false);\n onGetCustomReportActivity(DOWNLOAD_ACTION, customReportId);\n })\n .catch(() => setDownloader(false));\n });\n }\n };\n\n // handle time zone offset\n const handleTimezoneOffset = (startDate, endDate) => {\n const tempStartDate = new Date(startDate);\n const tempEndDate = new Date(endDate);\n\n const timezoneOffset = tempStartDate?.getTimezoneOffset();\n if (timezoneOffset > 0) {\n tempStartDate.setHours(tempStartDate.getHours() + 12);\n tempEndDate.setHours(tempEndDate.getHours() + 12);\n }\n return { tempStartDate, tempEndDate };\n };\n\n // Checking show metrics tooltip\n const handleShowMetricsTooltip = (metricsData) => {\n const tempMetricsData = [];\n\n if (metricsTooltipArray?.length) {\n for (const item of metricsTooltipArray) {\n if (Object.hasOwnProperty.call(metricsData, item))\n tempMetricsData.push({\n [item]: metricsData?.[item] !== true,\n });\n }\n }\n\n return tempMetricsData;\n };\n\n // here we checked the metrics shoud be disabled or not in \"metricsDisabledOnAgreement[metricsFlag]\"\n // but when return value we used '! (not)' because the return value set as metric data availability, not metric disability\n\n const checkTacosMetricsAvailability = (\n flag,\n selectedTime,\n isHavingDspPPC,\n metricsName,\n ) => {\n const august1st2022 = new Date();\n august1st2022.setMonth(7);\n august1st2022.setDate(1);\n august1st2022.setYear(2022);\n\n const customEndDate = selectedState?.[0]?.endDate;\n if (!flag || selectedTime !== 'custom') {\n return flag;\n }\n\n let metricsFlag = metricsName;\n\n if (customEndDate < august1st2022) {\n metricsFlag = `${metricsFlag}Before`;\n if (isHavingDspPPC?.isHavingPpc) {\n metricsFlag = `${metricsFlag}Ppc`;\n }\n if (isHavingDspPPC?.isHavingDsp) {\n metricsFlag = `${metricsFlag}Dsp`;\n }\n } else if (customEndDate > august1st2022) {\n metricsFlag = `${metricsFlag}After`;\n if (isHavingDspPPC?.isHavingPpc) {\n metricsFlag = `${metricsFlag}Ppc`;\n }\n if (isHavingDspPPC?.isHavingDsp) {\n metricsFlag = `${metricsFlag}Dsp`;\n }\n }\n\n return !metricsDisabledOnAgreement[metricsFlag];\n\n // const isMetricsTrue = Object.values(salesPerformanceMetricsFlag).some(\n // (value) => value === true,\n // );\n\n // if (customEndDate < august1st2022 && selectedTime === 'custom') {\n // if (\n // isHavingDspPPC?.isHavingDsp &&\n // !isHavingDspPPC?.isHavingPpc &&\n // isMetricsTrue\n // ) {\n // metricsFlag = true;\n // } else {\n // metricsFlag = false;\n // }\n // }\n };\n\n // bind metrics vailability\n const bindMetricsDataAvailability = (\n response,\n type,\n selectedTime,\n isHavingDspPPC,\n ) => {\n let localMetricsData = {};\n\n if (\n response !== null &&\n response !== undefined &&\n Object.keys(response).length\n ) {\n if (type === 'seller') {\n localMetricsData = {\n salesRevenueTotal: response?.revenue_flag,\n salesRevenuePpc: response?.revenue_ppc_flag,\n salesRevenueDsp: response?.revenue_dsp_flag,\n salesTacos: checkTacosMetricsAvailability(\n response?.tacos_flag,\n selectedTime,\n isHavingDspPPC,\n 'salesTacos',\n ),\n salesUnitSold: response?.units_sold_flag,\n salesTraffic: response?.traffic_flag,\n salesConversion: response?.conversion_flag,\n salesAdSpendTotal: checkTacosMetricsAvailability(\n response?.ad_spend_total_flag,\n selectedTime,\n isHavingDspPPC,\n 'salesAdSpendTotal',\n ),\n salesAdSpendPpc: checkTacosMetricsAvailability(\n response?.sales_ad_spend_flag,\n selectedTime,\n isHavingDspPPC,\n 'salesAdSpendPpc',\n ),\n salesAdSpendDsp: checkTacosMetricsAvailability(\n response?.sales_dsp_spends_flag,\n selectedTime,\n isHavingDspPPC,\n 'salesAdSpendDsp',\n ),\n\n adSales: response?.all_ad_sales_flag,\n adSpend: response?.all_ad_spend_flag,\n adConversionRate: response?.all_ad_conversion_rate_flag,\n adImpressions: response?.all_impressions_flag,\n adAcos: response?.all_acos_flag,\n adRoas: response?.all_roas_flag,\n adCostPerClick: response?.all_cost_per_click_flag,\n adClicks: response?.all_clicks_flag,\n adClickThroughRate: response?.all_ctr_flag,\n\n adSalesSP: response?.product_campaign_report_ad_sales_flag,\n adSpendSP: response?.product_campaign_report_ad_spend_flag,\n adConversionRateSP:\n response?.product_campaign_report_ad_conversion_rate_flag,\n adImpressionsSP: response?.product_campaign_report_impressions_flag,\n adAcosSP: response?.product_campaign_report_acos_flag,\n adRoasSP: response?.product_campaign_report_roas_flag,\n adCostPerClickSP:\n response?.product_campaign_report_cost_per_click_flag,\n adClicksSP: response?.product_campaign_report_clicks_flag,\n adClickThroughRateSP: response?.product_campaign_report_ctr_flag,\n\n adSalesSB: response?.brand_campaign_report_ad_sales_flag,\n adSpendSB: response?.brand_campaign_report_ad_spend_flag,\n adConversionRateSB:\n response?.brand_campaign_report_ad_conversion_rate_flag,\n adImpressionsSB: response?.brand_campaign_report_impressions_flag,\n adAcosSB: response?.brand_campaign_report_acos_flag,\n adRoasSB: response?.brand_campaign_report_roas_flag,\n adCostPerClickSB: response?.brand_campaign_report_cost_per_click_flag,\n adClicksSB: response?.brand_campaign_report_clicks_flag,\n adClickThroughRateSB: response?.brand_campaign_report_ctr_flag,\n\n adSalesSBV: response?.brand_video_campaign_report_ad_sales_flag,\n adSpendSBV: response?.brand_video_campaign_report_ad_spend_flag,\n adConversionRateSBV:\n response?.brand_video_campaign_report_ad_conversion_rate_flag,\n adImpressionsSBV:\n response?.brand_video_campaign_report_impressions_flag,\n adAcosSBV: response?.brand_video_campaign_report_acos_flag,\n adRoasSBV: response?.brand_video_campaign_report_roas_flag,\n adCostPerClickSBV:\n response?.brand_video_campaign_report_cost_per_click_flag,\n adClicksSBV: response?.brand_video_campaign_report_clicks_flag,\n adClickThroughRateSBV: response?.brand_video_campaign_report_ctr_flag,\n\n adSalesSD: response?.sponsored_display_campaign_report_ad_sales_flag,\n adSpendSD: response?.sponsored_display_campaign_report_ad_spend_flag,\n adConversionRateSD:\n response?.sponsored_display_campaign_report_ad_conversion_rate_flag,\n adImpressionsSD:\n response?.sponsored_display_campaign_report_impressions_flag,\n adAcosSD: response?.sponsored_display_campaign_report_acos_flag,\n adRoasSD: response?.sponsored_display_campaign_report_roas_flag,\n adCostPerClickSD:\n response?.sponsored_display_campaign_report_cost_per_click_flag,\n adClicksSD: response?.sponsored_display_campaign_report_clicks_flag,\n adClickThroughRateSD:\n response?.sponsored_display_campaign_report_ctr_flag,\n\n dspImpressions: response?.dsp_impressions_flag,\n dspSpend: response?.dsp_dsp_spend_flag,\n dspTotalProductSales: response?.total_product_sales_flag,\n dspTotalRoas: response?.total_dsp_roas_flag,\n dspTotalDpvr: response?.total_dpvr_flag,\n dspTotalNewBrandPurchases: response?.ttl_new_brand_purchases_flag,\n dspProductSales: response?.product_sales_flag,\n dspRoas: response?.dsp_roas_flag,\n };\n } else {\n localMetricsData = {\n salesShippedCogs: response?.shipped_cogs_flag,\n salesShippedGlanceViews: response?.shipped_glance_views_flag,\n salesShippedConversionRate: response?.shipped_conversion_rate_flag,\n salesShippedUnits: response?.shipped_units_flag,\n salesOrderedRevenue: response?.ordered_revenue_flag,\n salesOrderedGlanceViews: response?.glance_views_flag,\n salesOrderedConversionRate: response?.conversion_rate_flag,\n salesOrderedUnits: response?.ordered_units_flag,\n\n adSales: response?.all_ad_sales_flag,\n adSpend: response?.all_ad_spend_flag,\n adConversionRate: response?.all_ad_conversion_rate_flag,\n adImpressions: response?.all_impressions_flag,\n adAcos: response?.all_acos_flag,\n adRoas: response?.all_roas_flag,\n adCostPerClick: response?.all_cost_per_click_flag,\n adClicks: response?.all_clicks_flag,\n adClickThroughRate: response?.all_ctr_flag,\n\n adSalesSP: response?.product_campaign_report_ad_sales_flag,\n adSpendSP: response?.product_campaign_report_ad_spend_flag,\n adConversionRateSP:\n response?.product_campaign_report_ad_conversion_rate_flag,\n adImpressionsSP: response?.product_campaign_report_impressions_flag,\n adAcosSP: response?.product_campaign_report_acos_flag,\n adRoasSP: response?.product_campaign_report_roas_flag,\n adCostPerClickSP:\n response?.product_campaign_report_cost_per_click_flag,\n adClicksSP: response?.product_campaign_report_clicks_flag,\n adClickThroughRateSP: response?.product_campaign_report_ctr_flag,\n\n adSalesSB: response?.brand_campaign_report_ad_sales_flag,\n adSpendSB: response?.brand_campaign_report_ad_spend_flag,\n adConversionRateSB:\n response?.brand_campaign_report_ad_conversion_rate_flag,\n adImpressionsSB: response?.brand_campaign_report_impressions_flag,\n adAcosSB: response?.brand_campaign_report_acos_flag,\n adRoasSB: response?.brand_campaign_report_roas_flag,\n adCostPerClickSB: response?.brand_campaign_report_cost_per_click_flag,\n adClicksSB: response?.brand_campaign_report_clicks_flag,\n adClickThroughRateSB: response?.brand_campaign_report_ctr_flag,\n\n adSalesSBV: response?.brand_video_campaign_report_ad_sales_flag,\n adSpendSBV: response?.brand_video_campaign_report_ad_spend_flag,\n adConversionRateSBV:\n response?.brand_video_campaign_report_ad_conversion_rate_flag,\n adImpressionsSBV:\n response?.brand_video_campaign_report_impressions_flag,\n adAcosSBV: response?.brand_video_campaign_report_acos_flag,\n adRoasSBV: response?.brand_video_campaign_report_roas_flag,\n adCostPerClickSBV:\n response?.brand_video_campaign_report_cost_per_click_flag,\n adClicksSBV: response?.brand_video_campaign_report_clicks_flag,\n adClickThroughRateSBV: response?.brand_video_campaign_report_ctr_flag,\n\n adSalesSD: response?.sponsored_display_campaign_report_ad_sales_flag,\n adSpendSD: response?.sponsored_display_campaign_report_ad_spend_flag,\n adConversionRateSD:\n response?.sponsored_display_campaign_report_ad_conversion_rate_flag,\n adImpressionsSD:\n response?.sponsored_display_campaign_report_impressions_flag,\n adAcosSD: response?.sponsored_display_campaign_report_acos_flag,\n adRoasSD: response?.sponsored_display_campaign_report_roas_flag,\n adCostPerClickSD:\n response?.sponsored_display_campaign_report_cost_per_click_flag,\n adClicksSD: response?.sponsored_display_campaign_report_clicks_flag,\n adClickThroughRateSD:\n response?.sponsored_display_campaign_report_ctr_flag,\n\n dspImpressions: response?.dsp_impressions_flag,\n dspSpend: response?.dsp_dsp_spend_flag,\n dspTotalProductSales: response?.total_product_sales_flag,\n dspTotalRoas: response?.total_dsp_roas_flag,\n dspTotalDpvr: response?.total_dpvr_flag,\n dspTotalNewBrandPurchases: response?.ttl_new_brand_purchases_flag,\n dspProductSales: response?.product_sales_flag,\n dspRoas: response?.dsp_roas_flag,\n };\n }\n }\n\n return localMetricsData;\n };\n\n const createDocument = (newPDF, pdfName, reptId) => {\n let api;\n let blob;\n // eslint-disable-next-line no-unused-expressions\n newPDF?.output('datauristring').then((doc) => {\n const base64ToBlob = doc?.split(',')[1];\n blob = b64toBlob(base64ToBlob, 'application/pdf');\n const formData = {\n original_name: pdfName,\n entity_id: reptId,\n entity_type: 'customreport',\n mime_type: blob.type,\n status: 'requested',\n size: blob.size,\n document_type: 'custom_report',\n };\n api = axiosInstance.post(API_DOCUMENTS, formData);\n\n api.then((res) => {\n if (res.data?.presigned_url !== '') {\n const request = {\n url: res.data.presigned_url,\n headers: {\n 'Content-type': res?.data?.mime_type,\n },\n };\n axios\n .put(request.url, blob, { headers: request.headers })\n .then(() => {\n axiosInstance\n .patch(`${API_DOCUMENTS + res?.data.id}/`, {\n status: 'available',\n })\n .then((response) => {\n toast.success('Your report has been saved successfully.');\n updateReportStatus('ready', reptId);\n setIsRemainderUp(false);\n clearInterval(counterRef.current);\n setCountDownTimer('00:00:00');\n setShowSaveReportModal(false);\n setReportStatus('readyToEdit');\n setSaveDetailsLoader(false);\n setReportPresignedUrl(response?.data?.presigned_url);\n setShowReportPDFTemplate(false);\n });\n });\n }\n return res;\n });\n });\n };\n\n const generatehtml2pdf = (reptId) => {\n if (html2pdfRef?.current) {\n const option = {\n margin: [5, 5, 7, 5],\n filename: 'html2pdf-jspdf2.pdf',\n image: { type: 'svg', quality: 1 },\n html2canvas: {\n useCORS: true,\n scale: 1.5,\n imageTimeout: 0,\n letterRendering: true,\n },\n\n jsPDF: {\n unit: 'mm',\n format: 'a4',\n orientation: 'portrait',\n compress: true,\n },\n pagebreak: {\n mode: ['avoid-all'],\n after: '.pdf-page-break',\n },\n };\n\n const finalPDF = html2pdf()\n .from(html2pdfRef?.current)\n .set(option)\n .toPdf()\n .get('pdf')\n .then((doc) => {\n // Customizing the pdf footer\n const totalPages = doc.internal.getNumberOfPages();\n const { pageSize } = doc?.internal;\n\n for (let i = 0; i < totalPages; i += 1) {\n doc.setPage(i + 1);\n doc.setTextColor(140);\n doc.setFontSize(8);\n const copyRightText = '© Buy Box Experts';\n const currentPage = `Page ${i + 1} of ${totalPages}`;\n doc.text(copyRightText, 5, pageSize?.getHeight() - 3, 0, 0, 'left');\n doc.text(\n currentPage,\n pageSize?.getWidth() - 5,\n pageSize?.getHeight() - 3,\n 0,\n 0,\n 'right',\n );\n }\n return doc;\n });\n const pdfName = `${customerName} ${reportTitle} ${dayjs(\n new Date(),\n ).format('DD MMM YYYY')}.pdf`.replaceAll(' ', '_');\n\n createDocument(finalPDF, pdfName, reptId);\n }\n };\n\n const getMetricsReportData = (\n indexNumber,\n frequencyValue,\n // adTypeValue,\n selectedTime,\n fieldName,\n ) => {\n setMetricDataLoader(true);\n\n let sd = '';\n let ed = '';\n const localSd = new Date(selectedState[0].startDate);\n const localEd = new Date(selectedState[0].endDate);\n\n sd = `${localSd.getDate()}-${\n localSd.getMonth() + 1\n }-${localSd.getFullYear()}`;\n ed = `${localEd.getDate()}-${\n localEd.getMonth() + 1\n }-${localEd.getFullYear()}`;\n\n getSalesSponsoredDspMetricsData(\n customerId,\n selectedMarketplace?.value,\n selectedTime,\n sd,\n ed,\n accountType?.value,\n frequencyValue,\n // adTypeValue,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n const newGraph = JSON.parse(JSON.stringify(graphApiResponseData));\n const dataAvailebleMetrics = JSON.parse(\n JSON.stringify(metricsDataAvailabilityFlag),\n );\n\n if (res?.data?.result) {\n const isHavingDspPPC = {\n isHavingDsp: res?.data?.result?.is_having_dsp,\n isHavingPpc: res?.data?.result?.is_having_ppc,\n };\n if (accountType.isSeller || accountType.isHybrid) {\n const sellerResponse = BindGraphDataApiResponse(\n res?.data?.result,\n 'seller',\n selectedState,\n );\n\n newGraph[indexNumber].sellerDetails.sellerData =\n sellerResponse.tempData;\n newGraph[indexNumber].sellerDetails.sellerTotalData =\n sellerResponse.metricsTotal;\n\n const returnObject = bindMetricsDataAvailability(\n res?.data?.result?.seller_performance_availability,\n 'seller',\n selectedTime,\n isHavingDspPPC,\n );\n\n dataAvailebleMetrics[indexNumber].sellerDetails = returnObject;\n setShowMetricsTooltip(handleShowMetricsTooltip(returnObject));\n }\n if (accountType.isVendor || accountType.isHybrid) {\n const vendorResponse = BindGraphDataApiResponse(\n res?.data?.result,\n 'vendor',\n selectedState,\n );\n newGraph[indexNumber].vendorDetails.vendorData =\n vendorResponse.tempData;\n newGraph[indexNumber].vendorDetails.vendorTotalData =\n vendorResponse.metricsTotal;\n dataAvailebleMetrics[indexNumber].vendorDetails =\n bindMetricsDataAvailability(\n res?.data?.result?.vendor_performance_availability,\n 'vendor',\n selectedTime,\n null,\n );\n }\n setCurrentEndDate(res?.data?.result?.current_end_date);\n } else {\n if (accountType.isSeller || accountType.isHybrid) {\n newGraph[indexNumber].sellerDetails.sellerData = [];\n dataAvailebleMetrics[indexNumber].sellerDetails = [];\n }\n if (accountType.isVendor || accountType.isHybrid) {\n newGraph[indexNumber].vendorDetails.vendorData = [];\n dataAvailebleMetrics[indexNumber].vendorDetails = [];\n }\n setCurrentEndDate();\n }\n setGraphApiResponseData(newGraph);\n setMetricsDataAvailabilityFlag(dataAvailebleMetrics);\n setMetricDataLoader(false);\n if (fieldName === 'sellerDetails') {\n setAutoScrollId(`collapseSellerGraph${indexNumber}`);\n } else {\n setAutoScrollId(`collapseVendorGraph${indexNumber}`);\n }\n } else {\n setMetricDataLoader(false);\n }\n }\n });\n };\n\n // parent asin data- on change value\n const getSalesAsinsReportData = (\n indexNumber,\n keyName,\n value,\n selectedTime,\n ) => {\n setMetricDataLoader(true);\n\n let asinType = '';\n let sortBy = '';\n let numberOfAsins = value;\n let sd = '';\n let ed = '';\n const localSd = new Date(selectedState[0].startDate);\n const localEd = new Date(selectedState[0].endDate);\n\n sd = `${localSd.getDate()}-${\n localSd.getMonth() + 1\n }-${localSd.getFullYear()}`;\n ed = `${localEd.getDate()}-${\n localEd.getMonth() + 1\n }-${localEd.getFullYear()}`;\n\n if (keyName === 'parentTopAsins') {\n asinType = 'parent_asin';\n sortBy = '-current_revenue';\n }\n\n if (keyName === 'parentBottomAsins') {\n asinType = 'parent_asin';\n sortBy = 'current_revenue';\n }\n if (keyName === 'isParentAllAsins') {\n asinType = 'parent_asin';\n sortBy = 'current_revenue';\n numberOfAsins = null;\n }\n if (keyName === 'childTopAsins') {\n asinType = 'child_asin';\n sortBy = '-current_revenue';\n }\n if (keyName === 'childBottomAsins') {\n asinType = 'child_asin';\n sortBy = 'current_revenue';\n }\n if (keyName === 'isChildAllAsins') {\n asinType = 'child_asin';\n sortBy = 'current_revenue';\n numberOfAsins = null;\n }\n\n getCutomReportASINPerformanceData(\n customerId,\n selectedMarketplace.value,\n asinType,\n sortBy,\n selectedTime,\n sd,\n ed,\n numberOfAsins,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n const newGraph = JSON.parse(JSON.stringify(graphApiResponseData));\n const dataAvailebleMetrics = JSON.parse(\n JSON.stringify(metricsDataAvailabilityFlag),\n );\n\n if (res?.data) {\n if (keyName === 'parentTopAsins') {\n newGraph[indexNumber].sellerDetails.topParentAsins = res?.data;\n }\n if (keyName === 'parentBottomAsins') {\n newGraph[indexNumber].sellerDetails.bottomParentAsins = res?.data;\n }\n if (keyName === 'isParentAllAsins') {\n newGraph[indexNumber].sellerDetails.allParentAsins =\n res?.data?.results;\n }\n if (keyName === 'childTopAsins') {\n newGraph[indexNumber].sellerDetails.topChildAsins = res?.data;\n }\n if (keyName === 'childBottomAsins') {\n newGraph[indexNumber].sellerDetails.bottomChildAsins = res?.data;\n }\n if (keyName === 'isChildAllAsins') {\n newGraph[indexNumber].sellerDetails.allChildAsins =\n res?.data?.results;\n }\n }\n\n setGraphApiResponseData(newGraph);\n setMetricsDataAvailabilityFlag(dataAvailebleMetrics);\n setMetricDataLoader(false);\n setAutoScrollId(`${selleCollapseIds[keyName]}${indexNumber}`);\n } else {\n setMetricDataLoader(false);\n }\n }\n });\n };\n\n // save and update report API fucntion- save btn click\n const saveReportDetails = useCallback(\n (editOption) => {\n setSaveDetailsLoader(true);\n const localGraphDetails = [];\n graphDetails.forEach((element) => {\n localGraphDetails.push({\n seller_detail: element.sellerDetails,\n vendor_detail: element.vendorDetails,\n });\n });\n\n let localGraphObject = {\n customer: customerId,\n name: reportTitle,\n timeframe: selectedTimeFrame.value,\n marketplace: selectedMarketplace.value,\n account_type: accountType.value,\n title: reportTitle,\n description: reportDescription,\n summary: reportSummary,\n custom_report_graph: localGraphDetails,\n };\n\n if (selectedTimeFrame.value === 'custom') {\n let sd = '';\n let ed = '';\n const localSd = new Date(selectedState[0].startDate);\n const localEd = new Date(selectedState[0].endDate);\n\n sd = `${localSd.getFullYear()}-${\n localSd.getMonth() + 1\n }-${localSd.getDate()}`;\n ed = `${localEd.getFullYear()}-${\n localEd.getMonth() + 1\n }-${localEd.getDate()}`;\n\n localGraphObject = {\n ...localGraphObject,\n start_date: sd,\n end_date: ed,\n };\n }\n\n saveReport(customReportId, localGraphObject, editOption).then((res) => {\n if (res?.status === 400) {\n setSaveDetailsLoader(false);\n }\n if (res?.status === 201 || res?.status === 200) {\n toast.info('Your downloaded report is being processed.');\n setCustomReportId(res?.data?.id);\n if (editOption === 'keepExisitng' && reportStatus === 'edit') {\n updateReportStatus('ready', customReportId);\n }\n\n if (res.data.timeframe === 'custom') {\n setSelectedState([\n {\n startDate: new Date(res?.data?.start_date),\n endDate: new Date(res?.data?.end_date),\n key: 'reportSelection',\n },\n ]);\n }\n\n const apiDate = handleTimezoneOffset(\n res?.data?.start_date,\n res?.data?.end_date,\n );\n setDateToShow({\n startDate: new Date(apiDate?.tempStartDate),\n endDate: new Date(apiDate?.tempEndDate),\n });\n setTimeout(() => {\n generatehtml2pdf(res?.data?.id);\n }, 5000);\n }\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n graphDetails,\n reportDescription,\n customReportId,\n reportSummary,\n reportTitle,\n selectedTimeFrame,\n ],\n );\n\n // according to selected time frame filter, return the enabled graph frequency\n const checkIsGroupFrequencyDisabled = (selectedField) => {\n let enabledList = [];\n if (selectedField === 'week') {\n enabledList = ['daily'];\n }\n\n if (selectedField === 'month' || selectedField === '30days') {\n enabledList = ['daily', 'weekly'];\n }\n\n if (selectedField === 'year') {\n const todaysDate = new Date();\n const startDate = new Date(todaysDate.getFullYear(), 0, 1);\n const endDate = currentDate; // alredy set T-2 days lag in global\n let diffDays = null;\n\n const diffTime = Math.abs(startDate - endDate);\n diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1;\n\n if (diffDays > 60) {\n enabledList = ['weekly', 'monthly'];\n } else enabledList = ['daily', 'weekly']; // if (diffDays <= 60)\n }\n\n if (selectedField === 'custom') {\n let diffDays = null;\n const diffTime = Math.abs(\n selectedState[0].startDate - selectedState[0].endDate,\n );\n diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1;\n\n if (diffDays > 60) {\n enabledList = ['weekly', 'monthly'];\n } else enabledList = ['daily', 'weekly']; // if (diffDays <= 60)\n }\n\n // according to selcted time frame, set the frequency option\n const newGraph = JSON.parse(JSON.stringify(graphDetails));\n graphDetails.forEach((option, index) => {\n if (accountType.isSeller || accountType.isHybrid) {\n if (\n !enabledList.includes(newGraph[index].sellerDetails.graphFrequency)\n ) {\n [newGraph[index].sellerDetails.graphFrequency] = enabledList;\n }\n }\n if (accountType.isVendor || accountType.isHybrid) {\n if (\n !enabledList.includes(newGraph[index].vendorDetails.graphFrequency)\n ) {\n [newGraph[index].vendorDetails.graphFrequency] = enabledList;\n }\n }\n });\n\n return { enabledList, newGraph };\n };\n\n // bind the seller helath response data\n const bindSellerHealthData = (localBbepData) => {\n const pieChartData = [];\n let tempBBData = {};\n let pfoiData = {};\n\n // buy box percentage graph data binding\n if (localBbepData.bbep) {\n const avg =\n localBbepData.bbep\n .filter((record) => record.bbep)\n .reduce((acc, record) => acc + record.bbep, 0) /\n localBbepData.bbep.length || 0;\n\n tempBBData = localBbepData.bbep.map((data) => {\n return {\n date: dayjs(data.report_date).format('MMM D YYYY'),\n value: data.bbep,\n avg: avg.toFixed(2),\n };\n });\n }\n\n // positive feedback, order issue and inventory score data binding\n if (localBbepData.pf_oi_is?.length) {\n const lastUpdated = localBbepData.pf_oi_is[0].latest_date;\n localBbepData.pf_oi_is[0].latest_date =\n dayjs(lastUpdated).format('MMM DD YYYY');\n\n [pfoiData] = localBbepData.pf_oi_is;\n\n const ipiValue = parseFloat(\n localBbepData.pf_oi_is[0].inventory_performance_index,\n );\n\n if (Number.isNaN(ipiValue)) {\n pieChartData.push(\n {\n name: 'Inventory',\n value: 'N/A',\n },\n {\n name: 'Total',\n value: 1000,\n },\n );\n } else {\n pieChartData.push(\n {\n name: 'Inventory',\n value: ipiValue,\n },\n {\n name: 'Total',\n value: 1000 - ipiValue,\n },\n );\n }\n } else {\n pieChartData.push(\n { name: 'Inventory', value: 'N/A' },\n { name: 'Total', value: 1000 },\n );\n }\n\n return [tempBBData, pfoiData, pieChartData];\n };\n\n // collect the response of multiple API calls\n const saveApiRequests = (apis, graphdata, isAddAdditional, timeFrame) => {\n axios\n .all(apis)\n .then(\n axios.spread((...responses) => {\n let responseIndex = 0;\n let availableDataCount = 0;\n\n const newGraph = JSON.parse(JSON.stringify(graphApiResponseData));\n\n const dataAvailebleMetrics = JSON.parse(\n JSON.stringify(metricsDataAvailabilityFlag),\n );\n\n if (isAddAdditional) {\n availableDataCount = newGraph.length;\n }\n const isHavingDspPPC = {\n isHavingDsp: responses?.[0]?.data?.result?.is_having_dsp,\n isHavingPpc: responses?.[0]?.data?.result?.is_having_ppc,\n };\n\n graphdata.forEach((element) => {\n if (isAddAdditional || graphApiResponseData.length === 0) {\n newGraph.push({\n sellerDetails: { sellerData: null },\n vendorDetails: { vendorData: null },\n });\n }\n dataAvailebleMetrics.push({\n sellerDetails: null,\n vendorDetails: null,\n });\n\n if (accountType.isSeller || accountType.isHybrid) {\n // bind metrics response\n const sellerResponse = BindGraphDataApiResponse(\n responses[responseIndex]?.data?.result,\n 'seller',\n selectedState,\n );\n\n newGraph[availableDataCount].sellerDetails.sellerData =\n sellerResponse.tempData;\n newGraph[availableDataCount].sellerDetails.sellerTotalData =\n sellerResponse.metricsTotal;\n\n const returnObject = bindMetricsDataAvailability(\n responses[responseIndex]?.data?.result\n ?.seller_performance_availability,\n 'seller',\n timeFrame,\n isHavingDspPPC,\n );\n dataAvailebleMetrics[availableDataCount].sellerDetails =\n returnObject;\n\n responseIndex += 1;\n setShowMetricsTooltip(handleShowMetricsTooltip(returnObject));\n // parent top response\n if (element.sellerDetails.isParentTopAsins) {\n newGraph[availableDataCount].sellerDetails.topParentAsins =\n responses[responseIndex]?.data;\n responseIndex += 1;\n }\n\n // parent bottom response\n if (element.sellerDetails.isParentBottomAsins) {\n newGraph[availableDataCount].sellerDetails.bottomParentAsins =\n responses[responseIndex]?.data;\n responseIndex += 1;\n }\n\n // parent all response\n if (element.sellerDetails.isParentAllAsins) {\n newGraph[availableDataCount].sellerDetails.allParentAsins =\n responses[responseIndex]?.data?.results;\n responseIndex += 1;\n }\n\n // child top response\n if (element.sellerDetails.isChildTopAsins) {\n newGraph[availableDataCount].sellerDetails.topChildAsins =\n responses[responseIndex]?.data;\n responseIndex += 1;\n }\n\n // child bottom response\n if (element.sellerDetails.isChildBottomAsins) {\n newGraph[availableDataCount].sellerDetails.bottomChildAsins =\n responses[responseIndex]?.data;\n responseIndex += 1;\n }\n\n // child all response\n if (element.sellerDetails.isChildAllAsins) {\n newGraph[availableDataCount].sellerDetails.allChildAsins =\n responses[responseIndex]?.data?.results;\n responseIndex += 1;\n }\n\n // bbep graph response\n const localBbepData = responses[responseIndex].data;\n const [tempBBData, pfoiData, pieChartData] =\n bindSellerHealthData(localBbepData);\n\n newGraph[availableDataCount].sellerDetails.bbepData = tempBBData;\n newGraph[availableDataCount].sellerDetails.pfoiData = pfoiData;\n newGraph[availableDataCount].sellerDetails.inventoryScoreData =\n pieChartData;\n responseIndex += 1;\n\n // stranded inventory response\n newGraph[availableDataCount].sellerDetails.strandedInventory =\n responses[responseIndex]?.data;\n responseIndex += 1;\n\n // understock inventory response\n newGraph[availableDataCount].sellerDetails.understockInventory =\n responses[responseIndex]?.data;\n responseIndex += 1;\n\n // overstock inventory response\n newGraph[availableDataCount].sellerDetails.overstockInventory =\n responses[responseIndex]?.data;\n responseIndex += 1;\n }\n\n if (accountType.isVendor || accountType.isHybrid) {\n // bind vendor\n\n const vendorResponse = BindGraphDataApiResponse(\n responses[responseIndex]?.data?.result,\n 'vendor',\n selectedState,\n );\n\n newGraph[availableDataCount].vendorDetails.vendorData =\n vendorResponse.tempData;\n newGraph[availableDataCount].vendorDetails.vendorTotalData =\n vendorResponse.metricsTotal;\n\n const returnVendorObject = bindMetricsDataAvailability(\n responses[responseIndex]?.data?.result\n .vendor_performance_availability,\n 'vendor',\n timeFrame,\n null,\n );\n\n dataAvailebleMetrics[availableDataCount].vendorDetails =\n returnVendorObject;\n responseIndex += 1;\n\n if (accountType.isVendor) {\n // stranded inventory response\n newGraph[availableDataCount].vendorDetails.strandedInventory =\n responses[responseIndex]?.data;\n responseIndex += 1;\n\n // understock inventory response\n newGraph[availableDataCount].vendorDetails.understockInventory =\n responses[responseIndex]?.data;\n responseIndex += 1;\n\n // overstock inventory response\n newGraph[availableDataCount].vendorDetails.overstockInventory =\n responses[responseIndex]?.data;\n responseIndex += 1;\n }\n }\n\n availableDataCount += 1;\n });\n\n setCurrentEndDate(responses[0]?.data?.result?.current_end_date);\n setGraphApiResponseData(newGraph);\n setMetricsDataAvailabilityFlag(dataAvailebleMetrics);\n setMetricDataLoader(false);\n }),\n )\n .catch(() => {\n setMetricDataLoader(false);\n });\n };\n\n // this function called when user come for edit report, when changed time frame and when add additional graph.\n const bindMultipleApiRequest = (\n graphdata,\n timeFrame,\n frequency,\n isAddAdditional = false,\n startDate,\n endDate,\n customTemplateFlag,\n ) => {\n const localApiRequests = [];\n setMetricDataLoader(true);\n\n let sd = '';\n let ed = '';\n // const localSd = new Date(startDate);\n // const localEd = new Date(endDate);\n const localSd = new Date(\n customTemplateFlag ? startDate : selectedState[0]?.startDate,\n );\n const localEd = new Date(\n customTemplateFlag ? endDate : selectedState[0]?.endDate,\n );\n sd = `${localSd.getDate()}-${\n localSd.getMonth() + 1\n }-${localSd.getFullYear()}`;\n ed = `${localEd.getDate()}-${\n localEd.getMonth() + 1\n }-${localEd.getFullYear()}`;\n\n const localStartDate = dayjs(new Date()).format('MMMM D, YYYY');\n let localEndDate = new Date();\n if (timeFrame === 'week') {\n localEndDate = dayjs(new Date())\n .subtract(7, 'day')\n .format('MMMM D, YYYY');\n }\n if (timeFrame === '30days') {\n localEndDate = dayjs(new Date())\n .subtract(30, 'day')\n .format('MMMM D, YYYY');\n }\n let message = `Based on the timeframe selected, inventory data displayed is\n for ${localStartDate} versus ${localEndDate}.`;\n\n if (timeFrame === 'custom') {\n message = `Based on the timeframe selected, inventory data displayed is\n for ${dayjs(selectedState[0].endDate).format('MMM D, YYYY')}`;\n }\n setInventoryDatesMessage(message);\n\n graphdata.forEach((element) => {\n if (accountType.isSeller || accountType.isHybrid) {\n // metrics data api\n localApiRequests.push(\n getSalesSponsoredDspMetricsData(\n customerId,\n selectedMarketplace.value,\n timeFrame,\n sd,\n ed,\n 'seller',\n frequency !== null\n ? frequency\n : element.sellerDetails.graphFrequency,\n // element?.sellerDetails?.sponsoredType?.value,\n ),\n );\n // parent top\n if (element.sellerDetails.isParentTopAsins) {\n localApiRequests.push(\n getCutomReportASINPerformanceData(\n customerId,\n selectedMarketplace.value,\n 'parent_asin',\n '-current_revenue',\n timeFrame,\n sd,\n ed,\n element.sellerDetails.parentTopAsins,\n ),\n );\n }\n\n // parent bottom\n if (element.sellerDetails.isParentBottomAsins) {\n localApiRequests.push(\n getCutomReportASINPerformanceData(\n customerId,\n selectedMarketplace.value,\n 'parent_asin',\n 'current_revenue',\n timeFrame,\n sd,\n ed,\n element.sellerDetails.parentBottomAsins,\n ),\n );\n }\n\n // parent all\n if (element.sellerDetails.isParentAllAsins) {\n localApiRequests.push(\n getCutomReportASINPerformanceData(\n customerId,\n selectedMarketplace.value,\n 'parent_asin',\n 'current_revenue',\n timeFrame,\n sd,\n ed,\n null,\n ),\n );\n }\n\n // child top\n if (element.sellerDetails.isChildTopAsins) {\n localApiRequests.push(\n getCutomReportASINPerformanceData(\n customerId,\n selectedMarketplace.value,\n 'child_asin',\n '-current_revenue',\n timeFrame,\n sd,\n ed,\n element.sellerDetails.childTopAsins,\n ),\n );\n }\n\n // child bottom\n if (element.sellerDetails.isChildBottomAsins) {\n localApiRequests.push(\n getCutomReportASINPerformanceData(\n customerId,\n selectedMarketplace.value,\n 'child_asin',\n 'current_revenue',\n timeFrame,\n sd,\n ed,\n element.sellerDetails.childBottomAsins,\n ),\n );\n }\n\n // child all\n if (element.sellerDetails.isChildAllAsins) {\n localApiRequests.push(\n getCutomReportASINPerformanceData(\n customerId,\n selectedMarketplace.value,\n 'child_asin',\n 'current_revenue',\n timeFrame,\n sd,\n ed,\n null,\n ),\n );\n }\n\n // bbep graph\n if (timeFrame === 'custom') {\n localApiRequests.push(\n getBuyBoxChartData(\n customerId,\n selectedMarketplace.value,\n timeFrame,\n 'daily',\n null,\n sd,\n ed,\n ),\n );\n } else {\n localApiRequests.push(\n getBuyBoxChartData(\n customerId,\n selectedMarketplace.value,\n timeFrame,\n 'daily',\n null,\n ),\n );\n }\n\n // stranded inventory api call\n localApiRequests.push(\n getStrandedInventoryData(\n customerId,\n timeFrame,\n selectedMarketplace.value,\n localEd,\n 'noPage',\n 'stranded_event_date',\n true,\n ),\n );\n\n // understock inventory api call\n localApiRequests.push(\n getRestockInventoryData(\n customerId,\n selectedMarketplace.value,\n 'noPage',\n 'recommended_ship_date',\n true,\n 'understocked',\n ),\n );\n\n // understock inventory api call\n localApiRequests.push(\n getRestockInventoryData(\n customerId,\n selectedMarketplace.value,\n 'noPage',\n 'sales_last_30_days',\n true,\n 'overstocked',\n ),\n );\n }\n\n if (accountType.isVendor || accountType.isHybrid) {\n localApiRequests.push(\n getSalesSponsoredDspMetricsData(\n customerId,\n selectedMarketplace.value,\n timeFrame,\n sd,\n ed,\n 'vendor',\n frequency !== null\n ? frequency\n : element.vendorDetails.graphFrequency,\n // element?.vendorDetails?.sponsoredType?.value,\n ),\n );\n\n if (accountType.isVendor) {\n // stranded inventory api call\n localApiRequests.push(\n getStrandedInventoryData(\n customerId,\n timeFrame,\n selectedMarketplace.value,\n localEd,\n 'noPage',\n 'stranded_event_date',\n true,\n ),\n );\n\n // understock inventory api call\n localApiRequests.push(\n getRestockInventoryData(\n customerId,\n selectedMarketplace.value,\n 'noPage',\n 'recommended_ship_date',\n true,\n 'understocked',\n ),\n );\n\n // understock inventory api call\n localApiRequests.push(\n getRestockInventoryData(\n customerId,\n selectedMarketplace.value,\n 'noPage',\n 'sales_last_30_days',\n true,\n 'overstocked',\n ),\n );\n }\n }\n });\n\n saveApiRequests(localApiRequests, graphdata, isAddAdditional, timeFrame);\n };\n\n // check the status of report\n const checkReportStatus = () => {\n setMetricDataLoader(true);\n checkReportStatusToEdit(customReportId).then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (\n res?.data.status === 'ready'\n // res?.data?.current_user?.id === userInfo?.id // restrict same user to edit the same report\n ) {\n updateReportStatus('inprogress'); // api call to change the report status\n setReportStatus('edit');\n bindMultipleApiRequest(graphDetails, selectedTimeFrame.value, null);\n setIsTimeFrameDisabled(false);\n } else if (res?.data.status === 'inprogress') {\n const currenUser = `${res?.data?.current_user?.first_name} ${res?.data?.current_user?.last_name}`;\n setCurrentPDFUser(currenUser);\n setReportPDFStatusModal(true);\n setMetricDataLoader(false);\n }\n }\n }\n });\n };\n\n const handleGraphCollapse = (indexNumber, flag) => {\n const newGraph = [...graphDetails];\n newGraph.forEach((_value, index) => {\n newGraph[index].isOpen = flag;\n // if collape graph, other will closed\n if (indexNumber === index) {\n newGraph[index].isOpen = flag;\n } else {\n newGraph[index].isOpen = false;\n }\n });\n return newGraph;\n };\n\n // when user add the new graph this function get called\n const handleAddAdditonalGraph = () => {\n let newGraphObject = {};\n let newEditorObject = {};\n if (accountType.isSeller) {\n newGraphObject = {\n isOpen: true,\n sellerDetails,\n vendorDetails: null,\n };\n newEditorObject = {\n sellerDetails: sellerDetailsEditor,\n vendorDetails: null,\n };\n\n [newGraphObject.sellerDetails.graphFrequency] = enabledGroupFrequencyList;\n } else if (accountType.isVendor) {\n newGraphObject = {\n isOpen: true,\n sellerDetails: null,\n vendorDetails,\n };\n newEditorObject = {\n sellerDetails: null,\n vendorDetails: vendorDetailsEditor,\n };\n [newGraphObject.vendorDetails.graphFrequency] = enabledGroupFrequencyList;\n } else if (accountType.isHybrid) {\n newGraphObject = {\n isOpen: true,\n sellerDetails,\n vendorDetails,\n };\n newEditorObject = {\n sellerDetails: sellerDetailsEditor,\n vendorDetails: vendorDetailsEditor,\n };\n [newGraphObject.sellerDetails.graphFrequency] = enabledGroupFrequencyList;\n [newGraphObject.vendorDetails.graphFrequency] = enabledGroupFrequencyList;\n }\n\n bindMultipleApiRequest(\n [newGraphObject],\n selectedTimeFrame.value,\n null,\n true,\n );\n\n // after adding new graph, if newly added graph should be open and other will close\n const existingObject = handleGraphCollapse(0, false);\n setGraphDetails([...existingObject, newGraphObject]);\n setEditorDetails([...editorDetails, newEditorObject]);\n };\n\n // PDV- 8212- we are removed the sponsored brand video option from sponsonred ad type,\n // so, for existing report if amy metrics is selected of tht type, then removed that options from selected metrics object.\n const removeSBVtypeMetrics = (data, Acctype) => {\n const sponsoredBrnadVideoMetricsKeys = [\n 'adSalesSBV',\n 'adSpendSBV',\n 'adConversionRateSBV',\n 'adImpressionsSBV',\n 'adAcosSBV',\n 'adRoasSBV',\n 'adCostPerClickSBV',\n 'adClicksSBV',\n 'adClickThroughRateSBV',\n ];\n\n let selectedMetrics = {};\n let selectedMetricsKeys = [];\n\n if (Acctype === 'seller') {\n selectedMetrics = data.seller_detail.selectedMetrics;\n selectedMetricsKeys = Object.keys(data?.seller_detail.selectedMetrics);\n } else if (Acctype === 'vendor') {\n selectedMetrics = data.vendor_detail.selectedMetrics;\n selectedMetricsKeys = Object.keys(data?.vendor_detail.selectedMetrics);\n }\n\n if (selectedMetricsKeys.length) {\n selectedMetricsKeys.filter((keyName) => {\n if (sponsoredBrnadVideoMetricsKeys.includes(keyName)) {\n selectedMetrics = _.omit(selectedMetrics, [keyName]);\n }\n return null;\n });\n }\n\n return selectedMetrics;\n };\n\n // get the graph selected fields API function\n const getGraphSelectedFields = useCallback((reptId) => {\n setGetSelectedFieldLoader(true);\n getReportGraphSelectedFileds(reptId).then((res) => {\n if (mounted.current) {\n if (res?.status === 400) {\n setGetSelectedFieldLoader(false);\n }\n if (res?.status === 200) {\n setReportSummary(res?.data?.summary);\n setSelectedTimeFrame(setTimeFrame[res?.data?.timeframe]);\n setReportDescription(res?.data?.description);\n setReportTitle(res?.data?.name);\n setAccountType({\n isSeller: res?.data?.account_type === 'Seller',\n isVendor: res?.data?.account_type === 'Vendor',\n isHybrid: res?.data?.account_type === 'Hybrid',\n value: res?.data?.account_type,\n });\n\n setSelectedMarketplace({\n label: res?.data?.marketplace_detail.country,\n value: res?.data?.marketplace,\n });\n\n setMarketplaceCurrency(\n getSymbolFromCurrency(res?.data?.marketplace_detail?.currency),\n );\n\n const localGraphDetails = [];\n const localEditorDetails = [];\n const groupByOptions = checkIsGroupFrequencyDisabled(\n res?.data?.timeframe,\n );\n setEnabledGroupFrequencyList(groupByOptions?.enabledList);\n\n // bind the seller and vendor selected fields\n res.data.graph_details.forEach((element, index) => {\n localGraphDetails.push({\n isOpen: index === 0,\n sellerDetails: element?.seller_detail,\n vendorDetails: element?.vendor_detail,\n });\n\n if (res?.data?.account_type === 'Seller') {\n localEditorDetails.push({\n sellerDetails: {\n graphTitle: element?.seller_detail?.graphTitle,\n metricMessage: element?.seller_detail?.metricMessage,\n parentAsinMessage: element?.seller_detail?.parentAsinMessage,\n childAsinMessage: element?.seller_detail?.childAsinMessage,\n sellerHeathMessge: element?.seller_detail?.sellerHeathMessge,\n inventoryManagementMessage:\n element?.seller_detail?.inventoryManagementMessage,\n },\n vendorDetails: null,\n });\n\n localGraphDetails[index].sellerDetails.selectedMetrics =\n removeSBVtypeMetrics(element, 'seller');\n\n if (\n ['SBV', 'SB'].includes(\n element?.seller_detail?.sponsoredType?.key,\n )\n ) {\n localGraphDetails[index].sellerDetails.sponsoredType = {\n key: 'SB',\n label: 'Sponsored Brand + Video',\n value: 'brand_campaign_report',\n };\n }\n }\n if (res?.data?.account_type === 'Vendor') {\n localEditorDetails.push({\n sellerDetails: null,\n vendorDetails: {\n graphTitle: element?.vendor_detail?.graphTitle,\n metricMessage: element?.vendor_detail?.metricMessage,\n inventoryManagementMessage:\n element?.vendor_detail?.inventoryManagementMessage,\n },\n });\n localGraphDetails[index].vendorDetail.selectedMetrics =\n removeSBVtypeMetrics(element, 'vendor');\n\n if (\n ['SBV', 'SB'].includes(\n element?.vendor_detail?.sponsoredType?.key,\n )\n ) {\n localGraphDetails[index].vendorDetails.sponsoredType = {\n key: 'SB',\n label: 'Sponsored Brand + Video',\n value: 'brand_campaign_report',\n };\n }\n }\n if (res?.data?.account_type === 'Hybrid') {\n localEditorDetails.push({\n sellerDetails: {\n graphTitle: element?.seller_detail?.graphTitle,\n metricMessage: element?.seller_detail?.metricMessage,\n parentAsinMessage: element?.seller_detail?.parentAsinMessage,\n childAsinMessage: element?.seller_detail?.childAsinMessage,\n sellerHeathMessge: element?.seller_detail?.sellerHeathMessge,\n inventoryManagementMessage:\n element?.seller_detail?.inventoryManagementMessage,\n },\n vendorDetails: {\n graphTitle: element?.vendor_detail?.graphTitle,\n metricMessage: element?.vendor_detail?.metricMessage,\n inventoryManagementMessage:\n element?.vendor_detail?.inventoryManagementMessage,\n },\n });\n localGraphDetails[index].sellerDetails.selectedMetrics =\n removeSBVtypeMetrics(element, 'seller');\n localGraphDetails[index].vendorDetails.selectedMetrics =\n removeSBVtypeMetrics(element, 'vendor');\n if (\n ['SBV', 'SB'].includes(\n element?.seller_detail?.sponsoredType?.key,\n )\n ) {\n localGraphDetails[index].sellerDetails.sponsoredType = {\n key: 'SB',\n label: 'Sponsored Brand + Video',\n value: 'brand_campaign_report',\n };\n }\n if (\n ['SBV', 'SB'].includes(\n element?.vendor_detail?.sponsoredType?.key,\n )\n ) {\n localGraphDetails[index].vendorDetails.sponsoredType = {\n key: 'SB',\n label: 'Sponsored Brand + Video',\n value: 'brand_campaign_report',\n };\n }\n }\n });\n\n setGraphDetails(localGraphDetails);\n setEditorDetails(localEditorDetails);\n if (res?.data?.timeframe === 'custom') {\n setSelectedState([\n {\n startDate: new Date(res?.data?.start_date),\n endDate: new Date(res?.data?.end_date),\n key: 'reportSelection',\n },\n ]);\n }\n\n const apiDate = handleTimezoneOffset(\n res?.data?.start_date,\n res?.data?.end_date,\n );\n setDateToShow({\n startDate: new Date(apiDate?.tempStartDate),\n endDate: new Date(apiDate?.tempEndDate),\n });\n setGetSelectedFieldLoader(false);\n }\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // get the template fileds\n const getGraphSelectedTemplateFields = useCallback((templateId) => {\n setGetSelectedFieldLoader(true);\n getReportTemplate(templateId).then((res) => {\n if (mounted.current) {\n if (res?.status === 400) {\n setGetSelectedFieldLoader(false);\n }\n if (res?.status === 200) {\n setReportSummary(res?.data?.summary);\n setSelectedTimeFrame(setTimeFrame[res?.data?.timeframe]);\n setTemplateTimeFrame(setTimeFrame[res?.data?.timeframe]);\n setReportDescription(res?.data?.description);\n\n if (res?.data?.name !== '' && res?.data?.name !== null) {\n const reportName = res?.data?.name.split('(')[0];\n setReportTitle(reportName);\n setTemplateReportTitle(reportName);\n }\n setTemplateReportDescrition(res?.data?.description);\n\n const localGraphDetails = [];\n const localEditorDetails = [];\n const groupByOptions = checkIsGroupFrequencyDisabled(\n res?.data?.timeframe,\n );\n setEnabledGroupFrequencyList(groupByOptions?.enabledList);\n\n // bind the seller and vendor selected fields\n res.data.graph_details.forEach((element, index) => {\n localGraphDetails.push({\n isOpen: index === 0,\n sellerDetails: element?.seller_detail,\n vendorDetails: element?.vendor_detail,\n });\n if (res?.data?.account_type === 'seller') {\n localEditorDetails.push({\n sellerDetails: {\n graphTitle: element?.seller_detail?.graphTitle,\n metricMessage: element?.seller_detail?.metricMessage,\n parentAsinMessage: element?.seller_detail?.parentAsinMessage,\n childAsinMessage: element?.seller_detail?.childAsinMessage,\n sellerHeathMessge: element?.seller_detail?.sellerHeathMessge,\n inventoryManagementMessage:\n element?.seller_detail?.inventoryManagementMessage,\n },\n vendorDetails: null,\n });\n }\n if (res?.data?.account_type === 'vendor') {\n localEditorDetails.push({\n sellerDetails: null,\n vendorDetails: {\n graphTitle: element?.vendor_detail?.graphTitle,\n metricMessage: element?.vendor_detail?.metricMessage,\n inventoryManagementMessage:\n element?.vendor_detail?.inventoryManagementMessage,\n },\n });\n }\n if (res?.data?.account_type === 'hybrid') {\n localEditorDetails.push({\n sellerDetails: {\n graphTitle: element?.seller_detail?.graphTitle,\n metricMessage: element?.seller_detail?.metricMessage,\n parentAsinMessage: element?.seller_detail?.parentAsinMessage,\n childAsinMessage: element?.seller_detail?.childAsinMessage,\n sellerHeathMessge: element?.seller_detail?.sellerHeathMessge,\n inventoryManagementMessage:\n element?.seller_detail?.inventoryManagementMessage,\n },\n vendorDetails: {\n graphTitle: element?.vendor_detail?.graphTitle,\n metricMessage: element?.vendor_detail?.metricMessage,\n inventoryManagementMessage:\n element?.vendor_detail?.inventoryManagementMessage,\n },\n });\n }\n });\n\n setGraphDetails(localGraphDetails);\n setEditorDetails(localEditorDetails);\n if (res?.data?.timeframe === 'custom') {\n setSelectedState([\n {\n startDate: new Date(res?.data?.start_date),\n endDate: new Date(res?.data?.end_date),\n key: 'reportSelection',\n },\n ]);\n }\n\n const apiDate = handleTimezoneOffset(\n res?.data?.start_date,\n res?.data?.end_date,\n );\n\n setDateToShow({\n startDate: new Date(apiDate?.tempStartDate),\n endDate: new Date(apiDate?.tempEndDate),\n });\n\n bindMultipleApiRequest(\n localGraphDetails,\n res?.data?.timeframe,\n null,\n false,\n res?.data?.start_date,\n res?.data?.end_date,\n true,\n );\n setGetSelectedFieldLoader(false);\n }\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n mounted.current = true;\n if (\n mounted.current &&\n selectedReportTemplate !== null &&\n reportStatus === 'new'\n ) {\n getGraphSelectedTemplateFields(selectedReportTemplate);\n }\n return () => {\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getGraphSelectedTemplateFields, selectedReportTemplate]);\n\n useEffect(() => {\n mounted.current = true;\n if (\n mounted.current &&\n reportStatus === 'readyToEdit' &&\n customReportId !== null\n ) {\n getGraphSelectedFields(customReportId);\n }\n return () => {\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getGraphSelectedFields, customReportId]);\n\n const dispalyTimeCounter = () => {\n const splitedTimer = countDownTimer.split(':');\n return (\n \n
    TIME REMAINING
    \n
    \n {splitedTimer[0]} HOUR{' '}\n :\n {splitedTimer[1]}MINUTES{' '}\n :\n {splitedTimer[2]}SECONDS\n
    \n
    \n );\n };\n\n // handle confirm close report modal events\n const handleConfirmCloseReportModalEvents = () => {\n if (reportStatus === 'new') {\n onCloseReport();\n setShowConfirmCloseReportModal(false);\n }\n if (reportStatus === 'edit') {\n changeReportStatus(customReportId, 'ready').then((res) => {\n if (res?.status === 200) {\n onCloseReport();\n clearInterval(counterRef.current);\n setShowConfirmCloseReportModal(false);\n }\n });\n }\n };\n // handle the colse report events\n const handleCloseReportEvents = () => {\n if (reportStatus === 'edit' || reportStatus === 'new') {\n setShowConfirmCloseReportModal(true);\n } else {\n onCloseReport();\n }\n };\n\n // rende report header\n const renderHeader = () => {\n return (\n \n
    \n
    \n
    Report Management
    \n
    \n {reportStatus === 'edit' || reportStatus === 'readyToEdit'\n ? dispalyTimeCounter()\n : null}\n
    \n
    \n
      \n \n {downloader ? (\n \n \n \n ) : (\n <>\n \n \n Download Report\n \n \n )}\n \n
    • \n \n
    • \n {\n handleCloseReportEvents();\n }}\n >\n \n \n
    \n
    \n
    \n
    \n
    \n );\n };\n\n // render report pdf status modal\n const renderReportPDFStatusModal = () => {\n return (\n {\n setReportPDFStatusModal(false);\n }}\n />\n );\n };\n\n // render confirm close report modal\n const renderConfirmCloseReportModal = () => {\n return (\n {\n handleConfirmCloseReportModalEvents();\n }}\n afterModalCloseAPI={() => {\n setShowConfirmCloseReportModal(false);\n }}\n />\n );\n };\n\n return (\n
    \n {renderHeader()}\n <>\n \n
      \n setShowTabResponsive('view-report')}\n >\n View Report\n \n setShowTabResponsive('edit-report')}\n >\n Edit Fields\n \n
    \n
    \n\n
    \n {isDesktop || showTabResponsive === 'view-report' ? (\n getSelectedFieldLoader || metricDataLoader ? (\n \n ) : (\n \n )\n ) : null}\n {isDesktop || showTabResponsive === 'edit-report' ? (\n \n ) : null}\n \n
    \n \n {reportPDFstatusModal ? renderReportPDFStatusModal() : null}\n {showConfirmCloseReportModal ? renderConfirmCloseReportModal() : null}\n
    \n );\n};\n\nexport default CreateReportContainer;\n\nCreateReportContainer.defaultProps = {\n reportId: '',\n customReportStatus: '',\n customerId: '',\n pdfURL: '',\n customerName: '',\n selectedReportTemplate: '',\n marketplace: null,\n onCloseReport: () => {},\n};\n\nCreateReportContainer.propTypes = {\n reportId: string,\n customerId: string,\n customReportStatus: string,\n pdfURL: string,\n customerName: string,\n selectedReportTemplate: string,\n accType: string.isRequired,\n marketplace: shape({}),\n onCloseReport: func,\n};\n\nconst TimmerOut = styled.div`\n margin: 0 auto;\n .timmer-block {\n border-radius: 4px;\n background: ${Theme.lightOrange};\n color: ${Theme.orange};\n padding: 4px 16px;\n color: ${Theme.gray40};\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.titleFontFamily};\n text-transform: uppercase;\n margin: 0 auto;\n width: fit-content;\n\n span {\n color: ${Theme.orange};\n font-size: ${Theme.secondaryTitleFontSize};\n vertical-align: sub;\n }\n }\n @media only screen and (max-width: 768px) {\n .timmer-block {\n font-size: ${Theme.textSmall};\n\n span {\n color: ${Theme.orange};\n font-size: ${Theme.title};\n }\n }\n }\n`;\n","import React from 'react';\n\nimport styled from 'styled-components';\n\nimport { WhiteCard } from '../../../common';\n\nfunction DashboardReportContainer() {\n return (\n \n \n
    \n \n
    \n
    \n \n \n );\n}\n\nexport default DashboardReportContainer;\nconst AWSQuicksightsDashboard = styled.div`\n #footer-strip {\n height: 30px;\n background: #ffffff;\n margin-top: -25px;\n position: relative;\n }\n`;\n","import React, {\n Fragment,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport _ from 'lodash';\nimport dayjs from 'dayjs';\nimport { components } from 'react-select';\nimport { bool, shape, string } from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { DebounceInput } from 'react-debounce-input';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Redirect, Route, Switch, useHistory } from 'react-router-dom';\n\nimport ReportSectionFilters from './ReportSectionFilters';\nimport StandardReportContainer from './StandardReports/StandardReportContainer';\nimport CustomizedReportContainer from './CustomizedReports/CustomizedReportContainer';\nimport Theme from '../../theme/Theme';\nimport CreateReportContainer from './CustomizedReports/CreateReport/CreateReportContainer';\nimport { hideHeader, showHeader } from '../../store/actions/userState';\nimport { BrandPartnerDashboard, DashboardCard } from '../../theme/Global';\nimport {\n getBPsAllMArketplaceList,\n getBPUserList,\n getCustomisedReportAccess,\n getReportTemplateList,\n getReportTypes,\n} from '../../api';\nimport {\n WhiteCard,\n DropdownIndicator,\n CustomDateModal,\n GlobalNavbar,\n Tabs,\n InputSearchWithRadius,\n} from '../../common';\nimport {\n bpAccountType,\n initalStateBP,\n initalStateTimeFrame,\n initialStateAccountType,\n initialStateReportType,\n reportTabOptions,\n} from '../../constants';\nimport DashboardReportContainer from './DashboardReports/DashboardReportContainer';\n\nfunction ReportsSectionContainer() {\n const mounted = useRef(false);\n const history = useHistory();\n const dispatch = useDispatch();\n\n const userInfo = useSelector((state) => state.userState.userInfo);\n const customer = useSelector((state) => state.customerState.data);\n const customerId = customer?.id;\n const isCustomer = userInfo?.role?.includes('Customer');\n const isSuperAdmin = userInfo?.role?.includes('Super Admin');\n const { Option, SingleValue } = components;\n const [isUserAssignedToBP, setIsUserAssignedToBP] = useState(false);\n const [bpList, setBpList] = useState(null);\n const [marketplaceLoader, setMarketplaceLoader] = useState(false);\n const [bpLoader, setBpLoader] = useState(false);\n const [reportTypeLoader, setReportTypeLoader] = useState(false);\n const [isCustomDateApply, setIsCustomDateApply] = useState(false);\n const [showAdCustomDateModal, setShowAdCustomDateModal] = useState(false);\n const [isCreateReport, setIsCreateReport] = useState(false);\n const [selectedBp, setSelectedBp] = useState(initalStateBP);\n const [reportTypeOptions, setReportTypesOptions] = useState([]);\n const [marketplaceChoices, setMarketplaceChoices] = useState([]);\n const [marketplaceDefaultValue, setMarketplaceDefaultValue] = useState();\n const [searchQuery, setSearchQuery] = useState('');\n const [isEditViewReport, setIsEditViewReport] = useState({});\n const [isUsedReportTemplate, setIsUsedReportTemplate] = useState(false);\n const [selectedReportTemplate, setSelectedReportTemplate] = useState(null);\n const [reportTemplateOption, setReportTemplateOption] = useState([]);\n const [selectedTimeFrame, setSelectedTimeFrame] =\n useState(initalStateTimeFrame);\n const [selectedAccountType, setAccountType] = useState(\n initialStateAccountType,\n );\n const [selectedReportType, setSelectedReportType] = useState(\n initialStateReportType,\n );\n const [selectedReportTab, setSelectedReportTab] = useState(\n isCustomer\n ? 'standard'\n : window.location.pathname.split('/').pop() || 'standard',\n );\n\n const currentDate = new Date();\n const [customDateState, setCustomDateState] = useState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'reportSection',\n },\n ]);\n const [selectedMarketplaceOption, setSelectedMarketplaceOption] = useState({\n label: 'Select Marketplace',\n value: 'select',\n });\n\n const generateCustomDate = useCallback((date) => {\n return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\n }, []);\n\n const getReportType = useCallback(() => {\n setReportTypeLoader(true);\n getReportTypes().then((res) => {\n if (mounted.current) {\n if (res && res.status === 200) {\n if (res?.data) {\n // https://bbe.atlassian.net/browse/PDV-9229 - hide seller health data for user other than super Admin\n const responseData = res?.data?.filter(\n (item) => item?.value !== 'seller_health',\n );\n\n const reportOptions = _.concat(\n [\n {\n value: 'reportType',\n label: 'Report Type',\n },\n ],\n isSuperAdmin ? res?.data : responseData,\n );\n setReportTypesOptions(reportOptions);\n } else {\n setReportTypesOptions([]);\n }\n }\n setReportTypeLoader(false);\n }\n });\n }, [isSuperAdmin]);\n\n // to set the customised tab as selected tab\n useEffect(() => {\n if (\n history.location.pathname === '/reports/customized-report' &&\n history.location.search === ''\n ) {\n setSelectedReportTab('customized');\n }\n }, [history.location.pathname, history.location.search]);\n\n // get the report types for standrard tab\n useEffect(() => {\n mounted.current = true;\n getReportType();\n return () => {\n mounted.current = false;\n };\n }, [getReportType]);\n\n // get the BP list to show in dropdwn\n const getBpList = useCallback((query) => {\n setBpLoader(true);\n getBPUserList(query).then((res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n setBpList([]);\n setBpLoader(false);\n }\n if (res && res.status === 200) {\n if (res?.data) {\n const list = [initalStateBP];\n if (res?.data?.length > 0)\n for (const option of res?.data) {\n list.push({\n value: option.id,\n label: option.company_name,\n account_type: option.customer_account_type,\n });\n }\n setBpList(list);\n setBpLoader(false);\n } else {\n setBpList([]);\n setBpLoader(false);\n }\n } else {\n setBpList([]);\n setBpLoader(false);\n }\n }\n });\n }, []);\n\n // get the BP list API call\n useEffect(() => {\n mounted.current = true;\n if (!isCustomer) {\n getBpList();\n }\n\n return () => {\n mounted.current = false;\n };\n }, [getBpList, isCustomer]);\n\n // template list API\n const getTemplateList = useCallback((accountType) => {\n setBpLoader(true);\n getReportTemplateList(accountType).then((res) => {\n if (mounted.current) {\n if (res.status === 400) {\n setReportTemplateOption([]);\n setBpLoader(false);\n }\n if (res?.status === 200 && res?.data?.results) {\n setReportTemplateOption(res?.data?.results);\n setBpLoader(false);\n } else {\n setReportTemplateOption([]);\n setBpLoader(false);\n }\n }\n });\n }, []);\n\n // get the template according to the account type.\n useEffect(() => {\n mounted.current = true;\n\n if (selectedAccountType?.value !== 'accountType')\n getTemplateList(selectedAccountType.value);\n\n return () => {\n mounted.current = false;\n };\n }, [getTemplateList, selectedAccountType.value]);\n\n const getMarketPlace = useCallback((id) => {\n setMarketplaceLoader(true);\n let finalMarketplaces = [\n {\n value: 'all',\n label: 'All Marketplaces',\n currency: 'USD',\n },\n ];\n\n // get Marketplace List\n getBPsAllMArketplaceList(id).then((res) => {\n if (mounted.current) {\n if (res?.status === 200 && res?.data && res?.data?.length) {\n let tempMarketPlaceList = [];\n // Sort by Primary marketPlace & prefrence to US marketplace\n tempMarketPlaceList = res?.data.sort((marketplace) =>\n marketplace?.name === 'Amazon.com' && marketplace?.is_primary\n ? -1\n : marketplace?.name === 'Amazon.com'\n ? -1\n : 1,\n );\n\n // set Marketplace dropdown format\n for (const option of tempMarketPlaceList) {\n finalMarketplaces.push({\n value: option.name,\n label: option.country_currency.country,\n currency: option.country_currency.currency,\n isActive: option?.is_active, // PDV-7818 - handeling of active and inactive marketplaces\n });\n }\n\n if (finalMarketplaces.length === 2) {\n finalMarketplaces = finalMarketplaces.filter(\n (item) => item.value !== 'all',\n );\n }\n\n const initialMarketplace =\n finalMarketplaces.length > 1\n ? finalMarketplaces[1]\n : finalMarketplaces[0];\n setMarketplaceDefaultValue(initialMarketplace);\n setSelectedMarketplaceOption(initialMarketplace);\n setMarketplaceChoices(finalMarketplaces);\n } else {\n setSelectedMarketplaceOption({\n label: 'Select Marketplace',\n value: 'select',\n });\n setMarketplaceDefaultValue(null);\n setMarketplaceChoices([]);\n }\n setMarketplaceLoader(false);\n }\n });\n }, []);\n\n // useeefect to set the marketplace\n useEffect(() => {\n mounted.current = true;\n // for BP view\n if (isCustomer) {\n getMarketPlace(customerId);\n }\n\n // for inital report lists impact on getReportsData api\n if (!isCustomer && selectedBp?.value === 'Select-BP') {\n setMarketplaceDefaultValue(null);\n setSelectedMarketplaceOption({\n label: 'Select Marketplace',\n value: 'select',\n });\n setMarketplaceChoices([]);\n }\n\n return () => {\n mounted.current = false;\n };\n }, [customerId, getMarketPlace, isCustomer, selectedBp]);\n\n // getting permission to create report\n const getCustomerMemberList = useCallback(() => {\n if (selectedBp?.value !== 'Select-BP') {\n getCustomisedReportAccess(selectedBp?.value)\n .then((res) => {\n if (res?.status === 200) {\n setIsUserAssignedToBP(res.data);\n } else {\n setIsUserAssignedToBP(false);\n }\n })\n .catch(() => {\n setIsUserAssignedToBP(false);\n });\n }\n }, [selectedBp]);\n\n useEffect(() => {\n getCustomerMemberList();\n }, [getCustomerMemberList]);\n\n const handleBPList = (event) => {\n if (event?.value !== selectedBp?.value) {\n setSelectedBp(event);\n const value = bpAccountType[event?.account_type]?.[0];\n if (event.value === 'Select-BP') {\n setAccountType(initialStateAccountType);\n } else {\n setAccountType(value);\n }\n // for intternal user\n if (!isCustomer && event?.value !== 'Select-BP') {\n getMarketPlace(event?.value);\n }\n }\n };\n\n const handleAccountType = (event) => {\n if (event.value !== selectedAccountType.value) {\n setAccountType(event);\n setSelectedReportTemplate(null);\n setIsUsedReportTemplate(false);\n }\n };\n\n const handleReportType = (event) => {\n if (event?.value !== selectedReportType?.value) {\n setSelectedReportType(event);\n if (event?.value === 'finance') {\n // 28/12/2023 - https://bbe.atlassian.net/browse/PDV-8442 - by default, all finance reports will be available for download is MTD filter is selected.\n setSelectedTimeFrame({ value: 'month', label: 'Month to Date' });\n setIsCustomDateApply(false);\n }\n }\n };\n\n // handle time frame filter event\n const handleTimeFrame = (event) => {\n const { value } = event;\n setIsCustomDateApply(false);\n if (value !== selectedTimeFrame?.value) {\n setSelectedTimeFrame(event);\n setIsCustomDateApply(false);\n if (value !== 'custom') {\n setCustomDateState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'reportSection',\n },\n ]);\n }\n }\n if (value === 'custom') {\n setShowAdCustomDateModal(true);\n }\n };\n\n const handleMarketplace = (event) => {\n if (event.value !== selectedMarketplaceOption?.value) {\n setSelectedMarketplaceOption(event);\n }\n };\n\n const applyCustomDate = () => {\n setIsCustomDateApply(true);\n setShowAdCustomDateModal(false);\n };\n\n const handleTab = (item) => {\n setSearchQuery('');\n setSelectedReportTab(item.key);\n\n if (!isCustomer) history.push(`/reports/${item.key}`);\n };\n\n const handleResetFilter = () => {\n if (!isCustomer) {\n setSelectedBp(initalStateBP);\n setSelectedMarketplaceOption({\n label: 'Select Marketplace',\n value: 'select',\n });\n setMarketplaceDefaultValue(null);\n setMarketplaceChoices([]);\n }\n if (selectedReportTab === 'standard') {\n setSelectedTimeFrame(initalStateTimeFrame);\n setSelectedReportType(initialStateReportType);\n } else {\n setAccountType(initialStateAccountType);\n }\n setIsUsedReportTemplate(false);\n setSelectedReportTemplate(null);\n };\n\n const handleSearch = (event) => {\n if (event?.target?.value && selectedReportTab !== 'standard') {\n handleResetFilter();\n }\n setSearchQuery(event?.target?.value);\n };\n\n // display selected custom date and month range as sub label\n const renderCustomDateSubLabel = (props) => {\n if (selectedTimeFrame?.value === 'custom' && isCustomDateApply) {\n return `From- ${dayjs(customDateState?.[0]?.startDate).format(\n 'MMM D, YYYY',\n )} To - ${dayjs(customDateState?.[0]?.endDate).format('MMM D, YYYY')}`;\n }\n return props?.data?.sub;\n };\n\n // time frame filter options\n const timeFrameFilterOption = (props) => {\n // https://bbe.atlassian.net/browse/PDV-8442 - Enabling the MTD option for finance report\n return (\n \n \n
    \n );\n };\n\n // time frame filter single value\n const singleTimeFrameFilterOption = (props) => (\n \n {props?.data?.label}\n
    \n {selectedReportType?.value === 'account_audit'\n ? ''\n : renderCustomDateSubLabel(props)}\n
    \n
    \n );\n\n // time frame filter components\n const getTimeFrameSelectComponents = () => {\n return {\n Option: timeFrameFilterOption,\n SingleValue: singleTimeFrameFilterOption,\n DropdownIndicator,\n };\n };\n\n const displayHeader = () => {\n return (\n
    \n
    \n
    \n
    \n

    Reports

    \n
    \n
    \n
    \n
    \n
    \n );\n };\n\n // display resport section filters\n const displayReportSectionFilters = () => {\n return (\n {\n setIsCreateReport(true);\n dispatch(hideHeader());\n history.push(\n `customized-report?customer=${selectedBp?.value}&report=new`,\n );\n }}\n bpLoader={bpLoader}\n selectedMarketplaceOption={selectedMarketplaceOption}\n />\n );\n };\n\n // display report section header\n const displayReportSectionHeader = () => {\n return (\n
    \n
    \n
    \n
    \n \n
      \n {reportTabOptions?.map((item) => {\n return (\n \n {item.key === 'standard' && isCustomer ? (\n handleTab(item)}\n role=\"presentation\"\n >\n {item.label}\n \n ) : !isCustomer ? (\n handleTab(item)}\n role=\"presentation\"\n >\n {item.label}\n \n ) : null}\n \n );\n })}\n
    \n
    \n
    \n
    \n {selectedReportTab === 'summary' ? null : (\n
    \n \n {\n handleSearch(event);\n }}\n value={searchQuery || ''}\n />\n \n {searchQuery !== '' ? (\n setSearchQuery('')}\n />\n ) : null}\n \n
    \n )}\n
    \n
    \n );\n };\n\n // render Dashboard Report Container\n const renderDashboardReportContainer = () => {\n return ;\n };\n\n // render Standard Report Container\n const renderStandardReportContainer = () => {\n const selectedCustomDate = customDateState;\n\n return (\n \n );\n };\n\n // render customized Report Container\n const renderCustomizedReportContainer = () => {\n return (\n {\n dispatch(hideHeader());\n setIsEditViewReport({\n reportId: id,\n showCustomReport: true,\n customerId: customerID,\n customerName,\n reportStatus: status,\n pdfURL: url,\n reportName,\n });\n history.push(`customized-report?customer=${customerID}&report=${id}`);\n }}\n />\n );\n };\n\n // render create report component\n const renderCreateReportContainer = () => {\n return (\n {\n dispatch(showHeader());\n setIsEditViewReport();\n setIsCreateReport(false);\n }}\n customerId={\n isEditViewReport?.showCustomReport\n ? isEditViewReport?.customerId\n : selectedBp?.value\n }\n customerName={\n isEditViewReport?.showCustomReport\n ? isEditViewReport?.customerName\n : selectedBp?.label\n }\n reportId={isEditViewReport?.reportId}\n pdfURL={isEditViewReport?.pdfURL}\n customReportPDFName={isEditViewReport?.reportName}\n selectedReportTemplate={selectedReportTemplate}\n />\n );\n };\n\n // render custom date modal\n const renderCustomDateModal = () => {\n return (\n {\n setShowAdCustomDateModal(false);\n setCustomDateState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'reportSection',\n },\n ]);\n }}\n onChange={(item) => {\n setCustomDateState([item?.reportSection]);\n }}\n onApply={() => applyCustomDate()}\n currentDate={currentDate}\n minDate={new Date('01/01/1901')}\n />\n );\n };\n\n return (\n <>\n {!isCustomer && !isCreateReport && !isEditViewReport?.showCustomReport ? (\n \n ) : null}\n\n {isCreateReport || isEditViewReport?.showCustomReport ? (\n \n \n {renderCreateReportContainer()}\n \n \n ) : (\n \n {!isCustomer ? displayHeader() : null}\n \n
    \n
    \n {selectedReportTab === 'summary' ? null : (\n \n {displayReportSectionFilters()}\n
    \n )}\n \n \n {displayReportSectionHeader()}\n\n
    \n
    \n {isCustomer && selectedReportTab === 'standard'\n ? renderStandardReportContainer()\n : null}\n \n \n {renderStandardReportContainer()}\n \n \n {renderCustomizedReportContainer()}\n \n \n {renderDashboardReportContainer()}\n \n (\n \n {renderStandardReportContainer()}\n \n )}\n />\n \n
    \n
    \n
    \n
    \n
    \n
    \n {renderCustomDateModal()}\n \n \n )}\n \n );\n}\n\nexport default ReportsSectionContainer;\n\nReportsSectionContainer.defaultProps = {\n isSelected: true,\n};\n\nReportsSectionContainer.propTypes = {\n isSelected: bool,\n};\n\nReportsSectionContainer.defaultProps = { data: {} };\n\nReportsSectionContainer.propTypes = {\n data: shape({ sub: string, label: string }),\n};\n","import React from 'react';\n\nimport { useSelector } from 'react-redux';\nimport { components } from 'react-select';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport {\n WhiteCard,\n DropdownIndicator,\n ViewData,\n DropDowns,\n} from '../../../../common';\n\nconst InventoryManagementFilters = ({\n marketplaceDefaultValue,\n marketplaceOptions,\n handleMarketplaceOptions,\n isApiCall,\n selectedMarketplace,\n childBrandOptions,\n selectedCustomerId,\n handleChildBrand,\n}) => {\n const customerState = useSelector((state) => state.customerState.data);\n const { Option, SingleValue } = components;\n\n const dropdownSingleFilterOption = (props) => (\n \n {props.data.label}\n\n
    {props.data.sub}
    \n
    \n );\n\n const dropdownFilterOption = (props) => (\n \n );\n\n const getDropdownComponents = () => {\n return {\n Option: dropdownFilterOption,\n SingleValue: dropdownSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n return (\n \n \n
    \n
    \n
    \n View data for:\n
    {' '}\n
    \n {customerState?.account_type === 'parent' ? (\n
    \n {' '}\n {DropDowns(\n 'BT-inventoryManagement-childBrandFilter',\n 'cursor',\n childBrandOptions,\n childBrandOptions?.find((op) => op.value === selectedCustomerId)\n ?.label,\n getDropdownComponents,\n '',\n handleChildBrand,\n isApiCall,\n null,\n childBrandOptions?.find(\n (op) => op.value === selectedCustomerId,\n ),\n )}\n
    \n ) : (\n
    \n )}\n\n
    \n {DropDowns(\n 'BT-InventoryBPMarketplacesFilter',\n 'cursor',\n marketplaceOptions,\n marketplaceDefaultValue && marketplaceDefaultValue[0],\n getDropdownComponents,\n marketplaceDefaultValue && marketplaceDefaultValue[0],\n handleMarketplaceOptions,\n isApiCall,\n null,\n selectedMarketplace,\n )}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default InventoryManagementFilters;\n\nInventoryManagementFilters.defaultProps = {\n isApiCall: false,\n isCustomDateApply: false,\n marketplaceDefaultValue: {},\n marketplaceOptions: {},\n data: {},\n selectedMarketplace: {},\n selectedCustomerId: '',\n handleMarketplaceOptions: () => {},\n childBrandOptions: [],\n handleChildBrand: () => {},\n};\n\nInventoryManagementFilters.propTypes = {\n isApiCall: bool,\n isCustomDateApply: bool,\n marketplaceDefaultValue: shape({}),\n marketplaceOptions: arrayOf(Array),\n data: shape({}),\n selectedCustomerId: string,\n selectedMarketplace: shape({}),\n handleMarketplaceOptions: func,\n childBrandOptions: arrayOf(shape({})),\n handleChildBrand: func,\n};\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { string } from 'prop-types';\nimport React from 'react';\nimport ReactTooltip from 'react-tooltip';\n\nimport { Icon } from '../../../../theme/Global';\nimport { inventoryManagementInfoIconConstants } from '../../../../constants';\n\nconst InventoryManagementInfoIcon = ({ infoIconId }) => {\n return (\n \n item?.id === infoIconId,\n )?.message\n }\n data-html\n icon=\"fa-regular fa-circle-info\"\n />\n \n \n );\n};\n\nexport default InventoryManagementInfoIcon;\n\nInventoryManagementInfoIcon.defaultProps = {\n infoIconId: '',\n};\n\nInventoryManagementInfoIcon.propTypes = {\n infoIconId: string,\n};\n","/* eslint-disable camelcase */\nimport React, { useEffect, useRef } from 'react';\n\nimport am4themes_dataviz from '@amcharts/amcharts4/themes/dataviz';\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport { arrayOf, shape, string } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\n\nimport {\n restockLimitsColorCodes as colorCode,\n storageSubTypes,\n} from '../../../../constants';\n\nam4core.useTheme(am4themes_dataviz);\nam4core.color('red');\n\nexport default function RestockLimitsGraph({ selectedDF, chartId, chartData }) {\n const chart = useRef(null);\n const isTablet = useMediaQuery({ minWidth: 768 });\n useEffect(() => {\n function renderTooltipSeriesValue(\n name,\n value,\n color,\n formatter,\n showIndicator,\n ) {\n return `
      \n ${\n showIndicator\n ? `
    • \n {' '}\n \n
    • `\n : ''\n }\n
    • \n
      ${name}
      \n
    • \n
    • \n
      ${\n formatter !== null\n ? `{${value}.formatNumber('${formatter}')}%`\n : `{${value}}`\n }\n
      \n
    • \n
    `;\n }\n\n function renderTooltip() {\n const tooltipText = `\n
    \n {categoryX}\n
    \n
    \n\n \n ONHAND \n \n ${renderTooltipSeriesValue(\n 'Current',\n 'onhandLabel',\n colorCode?.onhand,\n null,\n true,\n )}\n ${\n selectedDF?.value !== 'custom'\n ? renderTooltipSeriesValue(\n 'Previous',\n 'previousOnhandLabel',\n colorCode?.previousOnhand,\n null,\n true,\n )\n : ''\n }\n
    \n\n \n OPEN SHIPMENTS\n \n ${renderTooltipSeriesValue(\n 'Current',\n 'openShipmentLabel',\n colorCode?.openShipment,\n null,\n true,\n )}\n ${\n selectedDF?.value !== 'custom'\n ? renderTooltipSeriesValue(\n 'Previous',\n 'previousOpenShipmentLabel',\n colorCode?.previousOpenShipment,\n null,\n true,\n )\n : ''\n }\n
    \n\n \n MAXIMUM SHIPMENTS\n \n ${renderTooltipSeriesValue(\n 'Current',\n 'maximumShipmentLabel',\n colorCode?.maximumShipment,\n null,\n true,\n )}\n ${\n selectedDF?.value !== 'custom'\n ? renderTooltipSeriesValue(\n 'Previous',\n 'previousMaximumShipmentLabel',\n colorCode?.previousMaximumShipment,\n null,\n true,\n )\n : ''\n }\n
    \n\n \n UTILIZATION \n \n ${renderTooltipSeriesValue(\n 'Current',\n 'utilizationLabel',\n colorCode?.onhand,\n '#.#',\n false,\n )}\n ${\n selectedDF?.value !== 'custom'\n ? renderTooltipSeriesValue(\n 'Previous',\n 'previousUtilizationLabel',\n colorCode?.previousOnhand,\n '#.#',\n false,\n )\n : ''\n }\n `;\n\n return tooltipText;\n }\n\n chart.current = am4core.create(chartId, am4charts.XYChart);\n chart.current.data = chartData;\n chart.current.padding = (20, 20, 0, 0);\n chart.current.logo.disabled = true; // disable amchart logo\n chart.current.zoomOutButton.disabled = true; // disabled zoomout button\n\n chart.current.cursor = new am4charts.XYCursor();\n chart.current.cursor.lineY.disabled = true;\n chart.current.cursor.lineX.disabled = true;\n chart.current.cursor.behavior = 'none';\n chart.current.cursor.maxTooltipDistance = -1;\n\n const categoryAxis = chart.current.xAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = 'storageType';\n categoryAxis.title.text = 'Storage Type';\n categoryAxis.title.dy = 15;\n categoryAxis.title.fontWeight = 600;\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.minGridDistance = 20;\n categoryAxis.renderer.cellStartLocation = 0.2;\n categoryAxis.renderer.cellEndLocation = 0.8;\n categoryAxis.renderer.grid.template.disabled = true;\n categoryAxis.cursorTooltipEnabled = false;\n categoryAxis.renderer.labels.template.adapter.add('textOutput', (text) => {\n return text?.toUpperCase();\n });\n\n const label = categoryAxis.renderer.labels.template;\n label.wrap = true;\n label.maxWidth = 100;\n\n categoryAxis.events.on('sizechanged', (ev) => {\n const axis = ev.target;\n const cellWidth = axis.pixelWidth / (axis.endIndex - axis.startIndex);\n axis.renderer.labels.template.maxWidth = cellWidth;\n });\n\n const valueAxis = chart.current.yAxes.push(new am4charts.ValueAxis());\n valueAxis.min = 0;\n valueAxis.title.text = 'Allowed Storage Capacity';\n valueAxis.title.fontWeight = 600;\n valueAxis.renderer.grid.template.strokeDasharray = '3,3';\n valueAxis.cursorTooltipEnabled = false;\n valueAxis.numberFormatter = new am4core.NumberFormatter();\n valueAxis.numberFormatter.numberFormat = `#.#a`;\n valueAxis.extraMax = 0.005;\n valueAxis.numberFormatter.bigNumberPrefixes = [\n { number: 1e3, suffix: 'K' },\n { number: 1e6, suffix: 'M' },\n { number: 1e9, suffix: 'B' },\n ];\n valueAxis.numberFormatter.smallNumberPrefixes = [];\n\n const currentSeriesName = ['onhand', 'openShipment', 'maximumShipment'];\n const previousSeriesName = [\n 'previousOnhand',\n 'previousOpenShipment',\n 'previousMaximumShipment',\n ];\n const snapToSeries = [];\n // Create series\n function createSeries(field, name, stacked, color, dx = false) {\n const series = chart.current.series.push(new am4charts.ColumnSeries());\n series.dataFields.valueY = field;\n series.dataFields.categoryX = 'storageType';\n series.name = name;\n series.stacked = stacked;\n series.columns.template.width = am4core.percent(\n selectedDF?.value === 'custom' ? 100 : 100,\n );\n\n series.columns.template.fill = am4core.color(color);\n series.stroke = am4core.color(color);\n\n series.tooltip.getFillFromObject = false;\n series.tooltip.background.fill = am4core.color(\n colorCode?.tooltipBackground,\n );\n series.tooltipHTML = renderTooltip();\n series.tooltip.pointerOrientation = 'down';\n series.tooltip.ignoreBounds = true;\n series.columns.template.dx = dx ? 1 : 0;\n\n // corner Radius for Top-Right\n series.columns.template.column.adapter.add(\n 'cornerRadiusTopRight',\n (radius, item) => {\n const { dataItem } = item;\n let lastSeries;\n // for current_value series\n if (currentSeriesName.includes(field)) {\n chart.current.series.each((localSeries) => {\n if (currentSeriesName.includes(localSeries.dataFields.valueY)) {\n if (\n dataItem.dataContext[localSeries.dataFields.valueY] &&\n !localSeries.isHidden &&\n !localSeries.isHiding\n ) {\n lastSeries = localSeries;\n }\n }\n });\n } else {\n // for previous_value series\n chart.current.series.each((localSeries) => {\n if (previousSeriesName.includes(localSeries.dataFields.valueY)) {\n if (\n dataItem.dataContext[localSeries.dataFields.valueY] &&\n !localSeries.isHidden &&\n !localSeries.isHiding\n ) {\n lastSeries = localSeries;\n }\n }\n });\n }\n\n // If current series is the one, use rounded corner\n return dataItem.component === lastSeries ? 10 : radius;\n },\n );\n\n // corner Radius for Top-Left\n series.columns.template.column.adapter.add(\n 'cornerRadiusTopLeft',\n (radius, item) => {\n const { dataItem } = item;\n let lastSeries;\n // for current_value series\n if (currentSeriesName.includes(field)) {\n chart.current.series.each((localSeries) => {\n if (currentSeriesName.includes(localSeries.dataFields.valueY)) {\n if (\n dataItem.dataContext[localSeries.dataFields.valueY] &&\n !localSeries.isHidden &&\n !localSeries.isHiding\n ) {\n lastSeries = localSeries;\n }\n }\n });\n } else {\n // for previous_value series\n chart.current.series.each((localSeries) => {\n if (previousSeriesName.includes(localSeries.dataFields.valueY)) {\n if (\n dataItem.dataContext[localSeries.dataFields.valueY] &&\n !localSeries.isHidden &&\n !localSeries.isHiding\n ) {\n lastSeries = localSeries;\n }\n }\n });\n }\n\n // If current series is the one, use rounded corner\n return dataItem.component === lastSeries ? 10 : radius;\n },\n );\n\n // corner Radius for Bottom-Right\n series.columns.template.column.adapter.add(\n 'cornerRadiusBottomRight',\n (radius, item) => {\n const { dataItem } = item;\n let lastSeries = null;\n // for current_value series\n if (currentSeriesName.includes(field)) {\n chart.current.series.each((localSeries) => {\n if (\n lastSeries === null &&\n currentSeriesName.includes(localSeries.dataFields.valueY)\n ) {\n if (\n dataItem.dataContext[localSeries.dataFields.valueY] &&\n !localSeries.isHidden &&\n !localSeries.isHiding\n ) {\n lastSeries = localSeries;\n }\n }\n });\n } else {\n // for previous_value series\n chart.current.series.each((localSeries) => {\n if (\n lastSeries === null &&\n previousSeriesName.includes(localSeries.dataFields.valueY)\n ) {\n if (\n dataItem.dataContext[localSeries.dataFields.valueY] &&\n !localSeries.isHidden &&\n !localSeries.isHiding\n ) {\n lastSeries = localSeries;\n }\n }\n });\n }\n // If current series is the one, use rounded corner\n return dataItem.component === lastSeries ? 10 : radius;\n },\n );\n\n // corner Radius for Bottom-Left\n series.columns.template.column.adapter.add(\n 'cornerRadiusBottomLeft',\n (radius, item) => {\n const { dataItem } = item;\n let lastSeries = null;\n // for current_value series\n if (currentSeriesName.includes(field)) {\n chart.current.series.each((localSeries) => {\n if (\n lastSeries === null &&\n currentSeriesName.includes(localSeries.dataFields.valueY)\n ) {\n if (\n dataItem.dataContext[localSeries.dataFields.valueY] &&\n !localSeries.isHidden &&\n !localSeries.isHiding\n ) {\n lastSeries = localSeries;\n }\n }\n });\n } else {\n // for previous_value series\n chart.current.series.each((localSeries) => {\n if (\n lastSeries === null &&\n previousSeriesName.includes(localSeries.dataFields.valueY)\n ) {\n if (\n dataItem.dataContext[localSeries.dataFields.valueY] &&\n !localSeries.isHidden &&\n !localSeries.isHiding\n ) {\n lastSeries = localSeries;\n }\n }\n });\n }\n\n // If current series is the one, use rounded corner\n return dataItem.component === lastSeries ? 10 : radius;\n },\n );\n\n snapToSeries.push(series);\n return series;\n }\n\n // render series for current value\n storageSubTypes.map((subType) => {\n createSeries(\n subType?.key,\n subType?.label,\n subType?.isStacked,\n subType?.bgColor,\n false, // previousDx\n );\n return null;\n });\n\n // render series for current value\n if (selectedDF?.value !== 'custom') {\n storageSubTypes.map((subType) => {\n createSeries(\n subType?.previousKey,\n subType?.previousLabel,\n subType?.previousIsStacked,\n subType?.previousBgColor,\n subType?.previousDx,\n );\n return null;\n });\n }\n\n chart.current.cursor.snapToSeries = snapToSeries;\n\n return () => chart.current && chart.current.dispose();\n }, [chartData, chartId, selectedDF]);\n\n return (\n
    \n \n
    \n );\n}\n\nRestockLimitsGraph.defaultProps = {\n selectedDF: {},\n chartData: [],\n};\n\nRestockLimitsGraph.propTypes = {\n chartId: string.isRequired,\n chartData: arrayOf(shape({})),\n selectedDF: shape({}),\n};\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport { useSelector } from 'react-redux';\nimport { components } from 'react-select';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport InventoryManagementInfoIcon from './InventoryManagementInfoIcon';\nimport RestockLimitsGraph from './RestockLimitsGraph';\nimport Theme from '../../../../theme/Theme';\nimport { GroupUser } from '../../../../theme/Global';\nimport {\n dataScrappedMsg,\n restockLimitTypeInfo,\n restockLimitsColorCodes as colorCode,\n storageSubTypes,\n} from '../../../../constants';\nimport {\n AllocateBar,\n DropdownIndicator,\n DropDowns,\n NoData,\n PageLoader,\n} from '../../../../common';\n\nconst RestockLimitsContainer = ({\n restockLimitsGraphData,\n selectedTimeFrame,\n dateOptions,\n handleDailyFact,\n isApiCall,\n customDateState,\n isCustomDateApply,\n noDataMessage,\n}) => {\n const dashboardDynamicError = useSelector(\n (newState) => newState.userState?.showDynamicMsg,\n );\n const { Option, SingleValue } = components;\n\n const singleFilterOption = (props) => (\n \n {props.data.label}\n\n
    \n {selectedTimeFrame.value === 'custom' && isCustomDateApply\n ? `${dayjs(customDateState).format('MMM D, YYYY')}`\n : props.data.sub}\n
    \n
    \n );\n\n const filterOption = (props) => (\n \n );\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const renderRestockTimeFrameFilter = () => {\n return (\n \n {DropDowns(\n 'BT-InventoryBPTimeframe',\n 'days-performance',\n dateOptions,\n dateOptions[0].label,\n getSelectComponents,\n dateOptions[0],\n handleDailyFact,\n isApiCall,\n null,\n selectedTimeFrame,\n )}\n
    \n );\n };\n\n const renderRestockDynamicMessasge = () => {\n return (\n
    \n
    \n {dashboardDynamicError?.inventory?.restock_limits ? (\n \n
    \n
    \n {' '}\n
    \n \n {dashboardDynamicError?.inventory?.restock_limits}\n
    {' '}\n
    \n
    \n
    \n ) : null}\n
    \n
    \n );\n };\n const renderRestockGraphLegends = () => {\n return (\n
    \n
    \n
      \n
    • \n
      \n \n\n Current\n
      \n
    • \n {selectedTimeFrame.value !== 'custom' ? (\n
    • \n
      \n \n Previous\n
      \n
    • \n ) : null}\n
    \n
    \n\n
    \n
      \n {storageSubTypes.map((subType) => {\n return (\n
    • \n
      \n \n {selectedTimeFrame.value !== 'custom' ? (\n \n ) : null}\n\n {subType.label}\n
      \n
    • \n );\n })}\n
    \n
    \n
    \n );\n };\n\n return (\n <>\n
    \n
    \n
    \n {' '}\n Restock Limits \n
    \n
    \n {dataScrappedMsg}\n
    \n
    \n\n {renderRestockTimeFrameFilter()}\n
    \n\n {renderRestockDynamicMessasge()}\n\n {isApiCall ? (\n \n ) : restockLimitsGraphData?.length ? (\n
    \n
    \n <>\n {/* render restock limits graph legends */}\n {renderRestockGraphLegends()}\n\n {/* render restock limit graph */}\n \n \n
    \n\n {/* reneder restock limits right side info panel */}\n
    \n \n {restockLimitTypeInfo.map((info) => {\n return (\n \n
    \n {info.label} \n {info.subLabel}\n
    \n
    \n \n );\n })}\n \n
    \n
    \n ) : (\n {noDataMessage}\n )}\n
    \n \n );\n};\n\nexport default RestockLimitsContainer;\n\nRestockLimitsContainer.defaultProps = {\n isApiCall: false,\n isCustomDateApply: false,\n noDataMessage: '',\n selectedTimeFrame: {},\n data: {},\n marketplaceDefaultValue: {},\n marketplaceOptions: {},\n dateOptions: [],\n customDateState: {},\n restockLimitsGraphData: [],\n getSelectComponents: () => {},\n handleDailyFact: () => {},\n};\n\nRestockLimitsContainer.propTypes = {\n isApiCall: bool,\n isCustomDateApply: bool,\n noDataMessage: string,\n selectedTimeFrame: shape({}),\n marketplaceDefaultValue: shape({}),\n marketplaceOptions: shape({}),\n data: shape({}),\n customDateState: shape({}),\n dateOptions: arrayOf(shape({})),\n restockLimitsGraphData: arrayOf(Array),\n getSelectComponents: func,\n handleDailyFact: func,\n};\n\nconst RestockStorageTypeInfo = styled.div`\n border-radius: 8px;\n background: ${Theme.gray11};\n padding: 24px 12px 9px 12px;\n overflow: auto;\n\n .check-main-label {\n font-size: ${Theme.extraMedium} !important;\n font-family: ${Theme.titleFontFamily};\n }\n\n .check-child-label {\n font-size: ${Theme.extraMedium} !important;\n font-family: ${Theme.baseFontFamily};\n }\n`;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { func, string, bool } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport { WhiteCard } from '../../../../common';\nimport { stockedTooltip } from '../../../../constants';\n\nconst UnderStockOverStockASINMobileView = ({\n dataIndex,\n className,\n label,\n labelInfo,\n label1,\n label2,\n label3,\n label4,\n label5,\n label6,\n label7,\n label8,\n label9,\n labelInfo1,\n labelInfo2,\n labelInfo3,\n labelInfo4,\n labelInfo5,\n labelInfo6,\n labelInfo7,\n labelInfo8,\n labelInfo9,\n onClick,\n showBorder,\n labelProductName,\n labelInfoProductName,\n}) => {\n const renderASINsHTML = (\n key,\n value,\n valueClass,\n showTooltip,\n tooltipInfo,\n ) => {\n return (\n
    \n
    \n {key}\n {showTooltip ? (\n <>\n \n\n \n \n ) : null}\n
    \n
    {value}
    \n
    \n );\n };\n\n const renderTableView = () => {\n return (\n <>\n
    \n {renderASINsHTML(label, labelInfo, 'label-bold')}\n {renderASINsHTML(label1, labelInfo1)}\n {renderASINsHTML(labelProductName, labelInfoProductName)}\n {renderASINsHTML(label2, labelInfo2)}\n {label3 ? renderASINsHTML(label3, labelInfo3) : null}\n {label4 ? renderASINsHTML(label4, labelInfo4) : null}\n {label5 ? renderASINsHTML(label5, labelInfo5) : null}\n {label6 ? renderASINsHTML(label6, labelInfo6) : null}\n {label7\n ? renderASINsHTML(\n label7,\n labelInfo7,\n '',\n true,\n stockedTooltip?.recommended_replenishment_quantity,\n )\n : null}\n {label8\n ? renderASINsHTML(\n label8,\n labelInfo8,\n '',\n true,\n stockedTooltip?.recommended_ship_date,\n )\n : null}\n
    \n
    {label9}
    \n
    \n \n \n Amazon\n \n \n
    \n
    \n
    \n \n );\n };\n return (\n \n \n {showBorder ? (\n
    \n {renderTableView()}\n
    \n ) : (\n renderTableView()\n )}\n
    \n
    \n );\n};\n\nexport default UnderStockOverStockASINMobileView;\n\nconst TableMobileViewWrapper = styled.div`\n .label-bold {\n font-weight: bold;\n }\n .sub-label-text {\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n }\n`;\n\nUnderStockOverStockASINMobileView.defaultProps = {\n showBorder: false,\n dataIndex: '',\n className: '',\n label: '',\n labelInfo: '',\n label1: '',\n labelInfo1: '',\n label2: '',\n labelInfo2: '',\n label3: '',\n labelInfo3: '',\n label4: '',\n labelInfo4: '',\n label5: '',\n labelInfo5: '',\n label6: '',\n labelInfo6: '',\n label7: '',\n labelInfo7: '',\n label8: '',\n labelInfo8: '',\n label9: '',\n labelInfo9: '',\n labelProductName: '',\n labelInfoProductName: '',\n onClick: () => {},\n};\n\nUnderStockOverStockASINMobileView.propTypes = {\n showBorder: bool,\n dataIndex: string,\n className: string,\n label: string,\n labelInfo: string,\n label1: string,\n labelInfo1: string,\n label2: string,\n labelInfo2: string,\n label3: string,\n labelInfo3: string,\n label4: string,\n labelInfo4: string,\n label5: string,\n labelInfo5: string,\n label6: string,\n labelInfo6: string,\n label7: string,\n labelInfo7: string,\n label8: string,\n labelInfo8: string,\n label9: string,\n labelInfo9: string,\n labelProductName: string,\n labelInfoProductName: string,\n onClick: func,\n};\n","import styled from 'styled-components';\nimport Theme from '../../../../theme/Theme';\n\nexport const DropDownFiltersList = styled.div`\n ul {\n margin: 0;\n padding: 0;\n\n @media only screen and (min-width: 320px) {\n li {\n display: block;\n &.download-report {\n display: none;\n }\n }\n }\n @media only screen and (min-width: 768px) {\n text-align: right;\n li {\n display: inline-block;\n width: 100%;\n max-width: 160px;\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n &.download-report {\n max-width: 150px;\n display: inline-block;\n }\n }\n }\n }\n`;\n\nexport const SingleMonthFilter = styled.div`\n cursor: pointer;\n background-color: #ffffff !important;\n border-radius: 6px;\n border: 1px solid ${Theme.gray45};\n min-height: 40px;\n color: ${Theme.gray90};\n text-align: left;\n padding: 10px 8px 5px 8px;\n`;\n\nexport const IventoryTableWrapper = styled.div`\n .horizontal-scroll-visible {\n overflow: auto;\n ::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n margin-top: 10px;\n }\n ::-webkit-scrollbar-thumb {\n background: ${Theme.gray25} !important;\n border-radius: 4px;\n }\n ::-webkit-scrollbar-track {\n background: #f1f1f1;\n }\n .action-item {\n color: ${Theme.orange};\n margin-right: 16px;\n font-size: 14px;\n a {\n font-size: 14px;\n }\n &:last-child {\n margin-right: 0;\n }\n }\n }\n`;\n","import React, { Fragment } from 'react';\n\nimport { useSelector } from 'react-redux';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport useFormatNumber from '../../../../hooks/useFormatNumber';\nimport Theme from '../../../../theme/Theme';\nimport UnderStockOverStockASINMobileView from './UnderStockOverStockASINMobileView';\nimport {\n AllocateBar,\n CommonPagination,\n NoData,\n PageLoader,\n Table,\n Tabs,\n WhiteCard,\n} from '../../../../common';\nimport {\n OverStockTableheader,\n stockedTooltip,\n underStockTableheader,\n} from '../../../../constants';\nimport { IventoryTableWrapper } from './InventoryStyle';\nimport InventoryManagementInfoIcon from './InventoryManagementInfoIcon';\n\nconst UnderStockOverStockASIN = ({\n stockedData,\n isDesktop,\n isLoader,\n count,\n pageNumber,\n noDataMessage,\n stockedOrderByFlag,\n stockedOrderByKey,\n handlePageChange,\n handleSortFilters,\n activeASINTab,\n setActiveASINTab,\n marketPlace,\n setStockedOrderByKey,\n setStockedOrderBy,\n reportLoader,\n onDownloadStockedReport,\n stockedRef,\n}) => {\n const tabOptions = [\n {\n value: 'understocked',\n label: 'Understocked ASINs',\n id: 'understocked_asins',\n },\n {\n value: 'overstocked',\n label: 'Overstocked ASINs',\n id: 'overstocked_asins',\n },\n ];\n\n const dashboardDynamicError = useSelector(\n (newState) => newState.userState?.showDynamicMsg,\n );\n\n const renderKeyContributionTabs = () => {\n const selectedTab = activeASINTab;\n\n return (\n \n \n {tabOptions.map((item) => (\n \n {\n setActiveASINTab(item.value);\n if (item.value === 'overstocked') {\n setStockedOrderBy(false);\n setStockedOrderByKey('sales_last_30_days');\n } else {\n setStockedOrderBy(true);\n setStockedOrderByKey('poos_date');\n }\n }}\n role=\"presentation\"\n >\n {item.label}\n \n \n \n ))}\n \n \n );\n };\n\n const renderTableHeader = () => {\n const tableHeader =\n activeASINTab === 'understocked'\n ? underStockTableheader\n : OverStockTableheader;\n return (\n \n \n {tableHeader.map((header) => (\n {\n if (\n header.key !== 'asin' &&\n header.key !== 'recommended_action' &&\n header.key !== 'merchant_sku' &&\n header.key !== 'product_name' &&\n header.key !== 'action'\n ) {\n handleSortFilters(header.key);\n }\n }}\n className=\"product-header\"\n key={header.key}\n >\n {header.label}\n {header.sort ? (\n \n ) : null}\n {header.key === 'recommended_replenishment_quantity' ||\n header.key === 'recommended_ship_date' ? (\n \n ) : null}\n {header.key === 'recommended_replenishment_quantity' ||\n header.key === 'recommended_ship_date' ? (\n \n ) : null}\n \n ))}\n \n \n );\n };\n\n const renderTableData = (itemData, numberFormat) => {\n return (\n \n \n
    {itemData?.merchant_sku || 'N/A'}
    \n \n {itemData?.asin || 'N/A'}\n \n \n
    \n {itemData?.product_name || 'N/A'}\n
    \n \n \n
    \n {numberFormat(\n itemData?.sales_last_30_days,\n getSymbolFromCurrency(marketPlace?.currency),\n ) || 'N/A'}\n
    \n \n \n
    \n {itemData?.units_sold_last_30_days || 'N/A'}\n
    \n \n \n
    \n {itemData?.total_days_of_supply || 'N/A'}\n
    \n \n {activeASINTab === 'understocked' ? (\n <>\n \n {itemData?.available_in_stock || 'N/A'}\n \n \n {itemData?.poos_date\n ? dayjs(itemData.poos_date).format('MM/DD/YYYY')\n : 'N/A'}\n \n \n
    \n {itemData?.recommended_replenishment_quantity || 'N/A'}\n
    \n \n \n
    \n {itemData?.recommended_ship_date !== null\n ? dayjs(itemData?.recommended_ship_date).format('MM/DD/YYYY')\n : 'N/A'}\n
    \n \n \n ) : null}\n \n \n \n Amazon\n \n \n \n \n );\n };\n\n const renderMobileView = (numberFormat) => {\n if (activeASINTab === 'understocked') {\n return stockedData?.map((itemData, index) => (\n \n ));\n }\n return stockedData.map((itemData) => (\n \n ));\n };\n\n return (\n <>\n \n \n
    \n
    \n
    \n {renderKeyContributionTabs()}\n\n {reportLoader ? (\n \n ) : (\n {}}\n tabIndex={0}\n role=\"button\"\n >\n

    \n \n Download Report\n

    \n
    \n )}\n
    \n
    \n\n {dashboardDynamicError?.inventory?.under_over_stock ? (\n
    \n \n
    \n
    \n
    \n \n {dashboardDynamicError?.inventory?.under_over_stock}\n
    \n
    \n
    \n
    \n
    \n ) : null}\n
    \n\n {isDesktop ? (\n \n
    \n \n {renderTableHeader()}\n {stockedData.length >= 1 ? (\n <>\n \n {stockedData &&\n stockedData.map((item) =>\n renderTableData(item, useFormatNumber),\n )}\n \n \n ) : null}\n \n
    \n
    \n ) : stockedData.length >= 1 ? (\n renderMobileView(useFormatNumber)\n ) : null}\n\n {isLoader ? (\n \n ) : stockedData.length === 0 ? (\n {noDataMessage}\n ) : null}\n \n\n {count > 10 ? (\n <>\n
    \n \n \n ) : null}\n \n \n );\n};\n\nexport default UnderStockOverStockASIN;\n\nUnderStockOverStockASIN.defaultProps = {\n isDesktop: false,\n isLoader: false,\n stockedOrderByFlag: false,\n count: 1,\n pageNumber: 1,\n stockedOrderByKey: '',\n activeASINTab: 'underStocked',\n noDataMessage: 'No Data Found.',\n handlePageChange: () => {},\n handleSortFilters: () => {},\n setActiveASINTab: () => {},\n setStockedOrderByKey: () => {},\n setStockedOrderBy: () => {},\n onDownloadStockedReport: () => {},\n};\n\nUnderStockOverStockASIN.propTypes = {\n isDesktop: bool,\n isLoader: bool,\n stockedOrderByFlag: bool,\n reportLoader: bool.isRequired,\n count: number,\n pageNumber: number,\n stockedOrderByKey: string,\n activeASINTab: string,\n noDataMessage: string,\n stockedData: arrayOf(shape({})).isRequired,\n stockedRef: shape({}).isRequired,\n handlePageChange: func,\n handleSortFilters: func,\n setActiveASINTab: func,\n marketPlace: shape({}).isRequired,\n setStockedOrderByKey: func,\n setStockedOrderBy: func,\n onDownloadStockedReport: func,\n};\nconst Wrapper = styled.div`\n td {\n padding: 20px 10px 3px 0px !important;\n }\n tr {\n th {\n .caretUpDown {\n vertical-align: middle;\n position: absolute;\n margin-left: 2px;\n margin-top: -2px;\n }\n }\n }\n\n .tabs.scrollable-container li:first-child {\n margin-left: 0px;\n }\n\n .scrollable-table {\n table-layout: fixed;\n }\n\n .underOverstockedDownloadBtn {\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid ${Theme.gray11};\n\n .scrollable-container {\n border-bottom: 0;\n }\n @media only screen and (max-width: 767px) {\n text-align: left;\n flex-direction: column;\n border-bottom: none;\n\n .scrollable-container {\n border-bottom: 1px solid ${Theme.gray11};\n }\n\n .black-heading-title {\n padding: 15px 0;\n }\n }\n }\n`;\n","import React from 'react';\n\nimport { useSelector } from 'react-redux';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport useFormatNumber from '../../../../hooks/useFormatNumber';\nimport { ArrowDownIcon, ArrowUpIcon } from '../../../../theme/images';\nimport {\n AllocateBar,\n CommonPagination,\n NoData,\n PageLoader,\n Table,\n TableMobileView,\n} from '../../../../common';\n\nconst InventoryManagementStrandedTable = ({\n strandedData,\n isDesktop,\n isLoader,\n count,\n pageNumber,\n noDataMessage,\n strandedOrderByFlag,\n strandedOrderByKey,\n selectedTimeFrame,\n handlePageChange,\n handleSortFilters,\n}) => {\n const dashboardDynamicError = useSelector(\n (newState) => newState.userState?.showDynamicMsg,\n );\n\n const renderTableHeader = () => {\n return (\n \n \n \n SKU\n \n \n ASIN\n \n \n Product Name\n \n\n handleSortFilters('available')}\n >\n AVAILABLE\n \n \n handleSortFilters('percent_change')}\n >\n {' '}\n CHANGE\n \n \n handleSortFilters('stranded_event_date')}\n >\n {' '}\n DATE OF STRANDED EVENT\n \n \n handleSortFilters('stranded_reason')}\n >\n {' '}\n STRANDED REASON\n \n \n \n \n );\n };\n\n const renderTableData = (itemData, numberFormat) => {\n return (\n \n {itemData?.sku}\n {itemData?.asin}\n \n \n
    \n {itemData?.product_name || 'N/A'}\n
    \n \n \n {' '}\n
    \n {numberFormat(itemData?.available, '', '')}\n
    \n \n \n {selectedTimeFrame.value === 'custom' ||\n itemData?.percent_change === null ? (\n 'N/A'\n ) : itemData?.percent_change === 0 ? (\n \n {numberFormat(itemData?.percent_change, '', '%')}\n
    \n ) : itemData?.percent_change > 0 ? (\n \n \"arrow-up\"\n {numberFormat(itemData?.percent_change, '', '%')}\n
    \n ) : (\n
    \n \"arrow-up\"\n {numberFormat(Math.abs(itemData?.percent_change), '', '%')}\n
    \n )}\n \n \n
    \n {' '}\n {itemData?.stranded_event_date !== null\n ? dayjs(itemData?.stranded_event_date).format('MM/DD/YY')\n : 'N/A'}\n
    \n \n \n
    \n {itemData?.stranded_reason || 'N/A'}\n
    \n \n \n );\n };\n\n const renderMobileView = (numberFormat) => {\n return strandedData.map((itemData) => (\n 0\n ? numberFormat(itemData?.percent_change, '', '%')\n : numberFormat(Math.abs(itemData?.percent_change), '', '%')\n }\n isInventory\n isLabelInfo5Positive={itemData?.percent_change > 0}\n />\n ));\n };\n\n return (\n <>\n {' '}\n {isDesktop ? (\n
    \n
    \n
    \n
    Stranded Inventory
    \n
    \n
    \n\n
    \n
    \n {dashboardDynamicError?.inventory?.stranded_inventory ? (\n \n
    \n
    \n {' '}\n
    \n \n {dashboardDynamicError?.inventory?.stranded_inventory}\n
    {' '}\n
    \n
    \n
    \n ) : null}\n
    \n
    \n\n
    \n \n \n {renderTableHeader()}\n {strandedData.length >= 1 ? (\n <>\n \n {strandedData &&\n strandedData.map((item) =>\n renderTableData(item, useFormatNumber),\n )}\n \n \n ) : null}\n
    \n {isLoader ? (\n \n ) : strandedData.length === 0 ? (\n {noDataMessage}\n ) : null}\n
    \n\n {count > 10 ? (\n <>\n
    \n \n \n ) : null}\n
    \n ) : (\n
    \n
    \n
    \n
    \n Stranded Inventory\n
    \n
    \n
    \n {dashboardDynamicError?.inventory?.stranded_inventory ? (\n \n
    \n
    \n {' '}\n
    \n \n {dashboardDynamicError?.inventory?.stranded_inventory}\n
    {' '}\n
    \n
    \n
    \n ) : null}\n {isLoader ? (\n \n ) : strandedData.length >= 1 ? (\n
    {renderMobileView(useFormatNumber)}
    \n ) : (\n No Stranded Inventory Data Found\n )}{' '}\n \n
    \n )}\n \n );\n};\n\nexport default InventoryManagementStrandedTable;\n\nInventoryManagementStrandedTable.defaultProps = {\n isDesktop: false,\n isLoader: false,\n strandedOrderByFlag: false,\n count: 1,\n pageNumber: 1,\n strandedOrderByKey: '',\n noDataMessage: 'No Data Found.',\n selectedTimeFrame: {},\n handlePageChange: () => {},\n handleSortFilters: () => {},\n};\n\nInventoryManagementStrandedTable.propTypes = {\n isDesktop: bool,\n isLoader: bool,\n strandedOrderByFlag: bool,\n count: number,\n pageNumber: number,\n strandedOrderByKey: string,\n noDataMessage: string,\n selectedTimeFrame: shape({}),\n strandedData: arrayOf(shape({})).isRequired,\n handlePageChange: func,\n handleSortFilters: func,\n};\nconst Wrapper = styled.div`\n td {\n padding: 20px 10px 3px 0px !important;\n }\n tr {\n th {\n .caretUpDown {\n vertical-align: middle;\n position: absolute;\n margin-left: 2px;\n margin-top: -2px;\n }\n }\n }\n`;\n","import React, { useState, useCallback, useEffect } from 'react';\n\nimport { useSelector } from 'react-redux';\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport Select, { components } from 'react-select';\nimport { toast, ToastContainer } from 'react-toastify';\nimport { arrayOf, shape, string, bool } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../../theme/Theme';\nimport InventoryManagementInfoIcon from './InventoryManagementInfoIcon';\nimport { IventoryTableWrapper } from './InventoryStyle';\nimport {\n getEstimatedLostSalesAPIData,\n postAsinArchiveAndRestoreAPIData,\n} from '../../../../api';\nimport {\n AddThousandSeparator,\n CommonPagination,\n CustomDropDown,\n DesktopTable,\n DropdownIndicator,\n GrayMessageBar,\n NoData,\n PageLoader,\n Tabs,\n WhiteCard,\n} from '../../../../common';\nimport {\n estimatedLostSalesDateFilterOptions,\n estimatedLostSalesStatusFilterOptions,\n estimatedLostSalesTableHeaderConstants,\n estimatedLostSalesTabsConstants,\n} from '../../../../constants';\n\nexport default function EstimatedLostSales({\n customerId,\n currencySymbol,\n isMST12to10AM,\n noDataMessage,\n selectedMarketplace,\n estimatedLostSalesReasonList,\n}) {\n const dashboardDynamicError = useSelector(\n (newState) => newState.userState?.showDynamicMsg,\n );\n const ELSDynamicMessage =\n dashboardDynamicError?.inventory?.estimated_lost_sales;\n\n const { Option, SingleValue } = components;\n\n const [selectedReason, setSelectedReason] = useState(\n estimatedLostSalesReasonList?.[0],\n );\n const [selectedStatus, setSelectedStatus] = useState(\n estimatedLostSalesStatusFilterOptions?.[0],\n );\n const [dateType, setDateType] = useState(\n estimatedLostSalesDateFilterOptions?.[0],\n );\n const [estimatedLostSalesTab, setEstimatedLostSalesTab] = useState(\n estimatedLostSalesTabsConstants?.[0],\n );\n const [sortedBy, setSortedBy] = useState({\n key: 'estimated_lost_sales',\n flag: true,\n });\n const [pageNumber, setPageNumber] = useState(1);\n const [tableDataCount, setTableDataCount] = useState(0);\n const [estimatedLostSalesTableData, setEstimatedLostSalesTableData] =\n useState([]);\n const [estimatedLostSalesMetricsData, setEstimatedLostSalesMetricsData] =\n useState({\n totalAsins: null,\n totalFees: null,\n });\n const [isDataLoading, setIsDataLoading] = useState(false);\n const [downloadReportLoader, setDownloadReportLoader] = useState(false);\n\n // use callback fo GET long term storage fees data\n const bindEstimatedLostSalesData = useCallback(\n (apiData) => {\n let tempMetricsData = { totalAsins: null, totalFees: null };\n const tempTableData = [];\n const apiTableData = apiData?.results;\n\n if (!isMST12to10AM) {\n tempMetricsData = {\n totalAsins: apiData?.total_asins ? apiData.total_asins : null,\n totalSales: apiData?.total_estimate_lost_sales\n ? apiData.total_estimate_lost_sales\n : null,\n };\n\n if (apiTableData?.length) {\n for (const item of apiTableData) {\n tempTableData.push({\n asin: item?.asin ? item.asin : null,\n sku: item?.sku ? item.sku : null,\n productName: item?.product_name ? item?.product_name : null,\n reason: item?.reason ? item.reason : null,\n lastSoldDate: item?.last_sold_date\n ? dayjs(item.last_sold_date).format('MM/DD/YYYY')\n : 'N/A',\n inactiveDayscount: item?.inactive_day_count,\n strandedSince: item?.stranded_since\n ? dayjs(item.stranded_since).format('MM/DD/YYYY')\n : 'N/A',\n status: item?.status ? item.status : null,\n totalSales: item?.total_sales ? item.total_sales : null,\n avgDailySales: item?.average_daily_sales\n ? item.average_daily_sales\n : null,\n estLostSales: item?.estimated_lost_sales\n ? item.estimated_lost_sales\n : null,\n });\n }\n }\n }\n return { tableData: tempTableData, metricsData: tempMetricsData };\n },\n [isMST12to10AM],\n );\n\n // use callback fo GET long term storage fees data\n const getEstimatedLostSalesData = useCallback(\n (marketplace, selectedTab, orderBy, date, reason, status, page) => {\n setIsDataLoading(true);\n setEstimatedLostSalesTableData([]);\n setEstimatedLostSalesMetricsData({});\n setTableDataCount(0);\n\n const orderByKey = orderBy?.flag ? `-${orderBy?.key}` : orderBy?.key;\n\n getEstimatedLostSalesAPIData(\n customerId,\n marketplace,\n selectedTab,\n orderByKey,\n date,\n reason,\n status,\n page,\n ).then((response) => {\n if (response?.status === 200) {\n const getData = bindEstimatedLostSalesData(response?.data);\n setEstimatedLostSalesTableData(getData?.tableData);\n setEstimatedLostSalesMetricsData(getData?.metricsData);\n setTableDataCount(response?.data?.count || 0);\n } else {\n setEstimatedLostSalesTableData([]);\n setEstimatedLostSalesMetricsData({});\n setTableDataCount(0);\n\n setIsDataLoading(false);\n }\n setIsDataLoading(false);\n });\n },\n [bindEstimatedLostSalesData, customerId],\n );\n\n // use effect\n useEffect(() => {\n if (selectedMarketplace && selectedMarketplace?.value !== '') {\n const orderBy = {\n key: 'estimated_lost_sales',\n flag: true,\n };\n setEstimatedLostSalesTab({ label: 'Inactive', value: 'inactive' });\n if (!isMST12to10AM) {\n getEstimatedLostSalesData(\n selectedMarketplace,\n estimatedLostSalesTabsConstants?.[0]?.value,\n orderBy,\n estimatedLostSalesDateFilterOptions?.[0]?.value,\n null,\n estimatedLostSalesStatusFilterOptions?.[0]?.value,\n 1,\n );\n }\n }\n }, [getEstimatedLostSalesData, isMST12to10AM, selectedMarketplace]);\n\n // const handle download report events\n const handleDownloadReportEvents = () => {\n setDownloadReportLoader(true);\n const orderByKey = sortedBy?.flag ? `-${sortedBy?.key}` : sortedBy?.key;\n\n getEstimatedLostSalesAPIData(\n customerId,\n selectedMarketplace,\n estimatedLostSalesTab?.value,\n orderByKey,\n dateType?.value,\n selectedReason?.value,\n selectedStatus?.value,\n pageNumber,\n 'downloadReport',\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n setDownloadReportLoader(false);\n } else {\n toast.error('Oops! Something went wrong...');\n setDownloadReportLoader(false);\n }\n });\n };\n\n // handle archive and restore asins events\n const handleAsinArchiveAndRestoreEvents = (asin, sku, status, action) => {\n setIsDataLoading(true);\n\n const activeTab = estimatedLostSalesTab?.value;\n const asinStatus =\n activeTab === 'inactive'\n ? 'inactive'\n : activeTab === 'stranded'\n ? 'stranded'\n : status;\n const actionLabel =\n action === 'archive'\n ? 'ARCHIVED'\n : action === 'restore'\n ? 'RESTORED'\n : 'Updated';\n\n postAsinArchiveAndRestoreAPIData(\n customerId,\n asin,\n sku,\n asinStatus,\n action,\n ).then((response) => {\n if (response?.status === 200) {\n toast.success(`ASIN ${actionLabel} Successfully`);\n getEstimatedLostSalesData(\n selectedMarketplace,\n estimatedLostSalesTab?.value,\n sortedBy,\n dateType?.value,\n selectedReason?.value,\n selectedStatus?.value,\n pageNumber,\n );\n } else {\n toast.error(response?.data?.detail);\n setIsDataLoading(false);\n }\n });\n };\n\n // handle reason filter events\n const handleReasonFilterEvents = (event) => {\n const value = event?.value;\n setSelectedReason(event);\n setPageNumber(1);\n\n getEstimatedLostSalesData(\n selectedMarketplace,\n estimatedLostSalesTab?.value,\n sortedBy,\n dateType?.value,\n value,\n selectedStatus?.value,\n 1,\n );\n };\n\n // handle status filter events\n const handleStatusFilterEvents = (event) => {\n const value = event?.value;\n setSelectedStatus(event);\n setPageNumber(1);\n\n getEstimatedLostSalesData(\n selectedMarketplace,\n estimatedLostSalesTab?.value,\n sortedBy,\n dateType?.value,\n selectedReason?.value,\n value,\n 1,\n );\n };\n\n // handle date filter events\n const handleDateFilterEvents = (event) => {\n const value = event?.value;\n setDateType(event);\n setPageNumber(1);\n\n getEstimatedLostSalesData(\n selectedMarketplace,\n estimatedLostSalesTab?.value,\n sortedBy,\n value,\n selectedReason?.value,\n selectedStatus?.value,\n 1,\n );\n };\n\n // handle ELS tab change events\n const handleELSTabChangeEvents = (item) => {\n const value = item?.value;\n setPageNumber(1);\n setEstimatedLostSalesTab(item);\n setSelectedReason(estimatedLostSalesReasonList?.[0]);\n setSelectedStatus(estimatedLostSalesStatusFilterOptions?.[0]);\n const orderBy = {\n key: value === 'archive' ? 'status' : 'estimated_lost_sales',\n flag: true,\n };\n setSortedBy(orderBy);\n\n getEstimatedLostSalesData(\n selectedMarketplace,\n value,\n orderBy,\n dateType?.value,\n estimatedLostSalesReasonList?.[0]?.value,\n estimatedLostSalesStatusFilterOptions?.[0]?.value,\n 1,\n );\n };\n\n // handle sales data sorting\n const handleELSDataSortingEvents = (value) => {\n let sortingValue = { key: value, flag: false };\n\n if (value === sortedBy?.key) {\n setSortedBy({ key: value, flag: !sortedBy?.flag });\n sortingValue = { key: value, flag: !sortedBy?.flag };\n } else {\n setSortedBy({ key: value, flag: true });\n sortingValue = { key: value, flag: true };\n }\n setPageNumber(1);\n\n getEstimatedLostSalesData(\n selectedMarketplace,\n estimatedLostSalesTab?.value,\n sortingValue,\n dateType?.value,\n selectedReason?.value,\n selectedStatus?.value,\n 1,\n );\n };\n\n // handle pagination events\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n\n getEstimatedLostSalesData(\n selectedMarketplace,\n estimatedLostSalesTab?.value,\n sortedBy,\n dateType?.value,\n selectedReason?.value,\n selectedStatus?.value,\n currentPage,\n );\n };\n\n // configuring the date filter components - single value\n const getELSDateFilterOptions = (props) => {\n return (\n \n );\n };\n\n // configuring the date filter components - option list\n const getELSDateFilterValue = (props) => {\n return (\n \n {props.data.label}\n \n );\n };\n\n const getELSDateFilterComponents = () => {\n return {\n SingleValue: getELSDateFilterValue,\n Option: getELSDateFilterOptions,\n DropdownIndicator,\n };\n };\n\n // render reason filter\n const renderReasonFilter = () => {\n return (\n \n handleReasonFilterEvents(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n );\n };\n\n // render date filter\n const renderELSDateFilter = () => {\n return (\n \n handleDateFilterEvents(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n );\n };\n\n // render archive status filter\n const renderArchiveStatusFilter = () => {\n return (\n \n handleStatusFilterEvents(event)}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n );\n };\n\n // render download report button\n const renderDownloadReportButton = () => {\n return (\n
    \n {\n handleDownloadReportEvents();\n }}\n >\n {downloadReportLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n

    \n
    \n );\n };\n\n // render Estimated Lost Sales Filters\n const renderEstimatedLostSalesFilters = () => {\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n Estimated Lost Sales\n \n
    \n
    \n
    \n {renderDownloadReportButton()}\n
    \n
    \n
    \n
    \n
    \n
    \n {estimatedLostSalesTab?.value === 'stranded'\n ? renderReasonFilter()\n : null}\n {estimatedLostSalesTab?.value === 'archive'\n ? renderArchiveStatusFilter()\n : null}\n
    \n
    \n {renderELSDateFilter()}\n
    \n
    \n
    \n
    \n {ELSDynamicMessage ? (\n \n ) : null}\n \n );\n };\n\n // render Estimated Lost Sales Metrics Box\n const renderEstimatedLostSalesMetricsBox = (\n heading,\n value,\n prefix,\n suffix,\n postValueLabel,\n ) => {\n return (\n
    \n
    {heading}
    \n

    \n {value !== null && value !== undefined ? (\n <>\n \n  \n {postValueLabel}\n \n ) : (\n 'N/A'\n )}\n

    \n
    \n );\n };\n\n // render Estimated Lost Sales Metrics\n const renderEstimatedLostSalesMetrics = () => {\n return (\n
    \n
    \n {renderEstimatedLostSalesMetricsBox(\n 'Number of ASINs in the table',\n estimatedLostSalesMetricsData.totalAsins,\n '',\n '',\n estimatedLostSalesMetricsData.totalAsins > 1 ? 'ASINs' : 'ASIN',\n )}\n
    \n
    \n {renderEstimatedLostSalesMetricsBox(\n 'Total estimated lost sales',\n estimatedLostSalesMetricsData.totalSales,\n currencySymbol,\n '',\n '',\n )}\n
    \n
    \n );\n };\n\n // render Estimated Lost Sales Tabs\n const renderEstimatedLostSalesTabs = () => {\n return (\n
    \n \n
      \n {estimatedLostSalesTabsConstants?.map((item) => {\n return (\n {\n handleELSTabChangeEvents(item);\n }}\n >\n {item?.label}\n \n );\n })}\n
    \n
    \n
    {renderDownloadReportButton()}
    \n
    \n );\n };\n\n // // render Estimated Lost Sales Table head\n const renderEstimatedLostSalesTableHead = () => {\n let tableHeader = [];\n if (estimatedLostSalesTab?.value === 'inactive') {\n tableHeader = estimatedLostSalesTableHeaderConstants?.inactiveTableHeader;\n }\n\n if (estimatedLostSalesTab?.value === 'stranded') {\n tableHeader = estimatedLostSalesTableHeaderConstants?.strandedTableHeader;\n }\n\n if (estimatedLostSalesTab?.value === 'archive') {\n tableHeader = estimatedLostSalesTableHeaderConstants?.archiveTableHeader;\n }\n\n return (\n \n \n {tableHeader?.map((item) => {\n return (\n \n {\n if (item?.sorting) {\n handleELSDataSortingEvents(item?.value);\n }\n }}\n >\n {item?.label}\n {item?.info ? (\n \n ) : null}\n {item?.tooltip ? (\n <>\n \n \n \n ) : null}\n {item?.sorting ? (\n \n ) : null}\n \n \n );\n })}\n \n \n );\n };\n\n // render Estimated Lost Sales Table body\n const renderEstimatedLostSalesTableBody = () => {\n const inactiveTab = estimatedLostSalesTab?.value === 'inactive';\n const strandedTab = estimatedLostSalesTab?.value === 'stranded';\n const archiveTab = estimatedLostSalesTab?.value === 'archive';\n\n return (\n \n {estimatedLostSalesTableData?.map((item, index) => {\n return (\n \n {item?.asin}\n \n \n {item?.productName}\n
    \n \n \n\n {strandedTab ? (\n {item?.reason}\n ) : null}\n {archiveTab ? (\n {item?.status}\n ) : null}\n {inactiveTab || strandedTab ? (\n \n \n \n ) : null}\n {inactiveTab || strandedTab ? (\n \n \n \n ) : null}\n {inactiveTab ? {item?.lastSoldDate} : null}\n {strandedTab ? {item?.strandedSince} : null}\n {inactiveTab || strandedTab ? (\n \n \n \n ) : null}\n \n {archiveTab ? (\n {\n handleAsinArchiveAndRestoreEvents(\n item?.asin,\n item?.sku,\n item?.status,\n 'restore',\n );\n }}\n >\n Restore\n \n ) : (\n {\n handleAsinArchiveAndRestoreEvents(\n item?.asin,\n item?.sku,\n item?.status,\n 'archive',\n );\n }}\n >\n Archive\n \n )}\n \n \n Amazon\n \n \n \n \n );\n })}\n \n );\n };\n\n // render no data message\n const renderNoDataMessage = () => {\n return {noDataMessage};\n };\n\n // render table pagination\n const renderTablePagination = () => {\n return (\n <>\n
    \n \n \n );\n };\n\n // render Estimated Lost Sales Table\n const renderEstimatedLostSalesTable = () => {\n return (\n \n
    \n \n {renderEstimatedLostSalesTableHead()}\n {renderEstimatedLostSalesTableBody()}\n \n
    \n {estimatedLostSalesTableData?.length === 0\n ? renderNoDataMessage()\n : null}\n {tableDataCount > 0 ? renderTablePagination() : null}\n
    \n );\n };\n\n /* ********** main return statement of this component ********** */\n return (\n <>\n \n \n {renderEstimatedLostSalesFilters()}\n {renderEstimatedLostSalesMetrics()}\n {renderEstimatedLostSalesTabs()}\n
    \n {isDataLoading ? (\n \n ) : (\n renderEstimatedLostSalesTable()\n )}\n \n \n );\n}\n\nEstimatedLostSales.defaultProps = {\n currencySymbol: '$',\n selectedMarketplace: '',\n noDataMessage: 'No Data Found.',\n isMST12to10AM: false,\n data: {},\n estimatedLostSalesReasonList: [],\n};\n\nEstimatedLostSales.propTypes = {\n currencySymbol: string,\n selectedMarketplace: string,\n customerId: string.isRequired,\n noDataMessage: string,\n isMST12to10AM: bool,\n data: shape({}),\n estimatedLostSalesReasonList: arrayOf(shape({})),\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport { arrayOf, shape, string } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\nimport { useSelector } from 'react-redux';\nimport { toast } from 'react-toastify';\nimport { useHistory } from 'react-router-dom';\nimport dayjs from 'dayjs';\n\nimport InventoryManagementFilters from './InventoryManagementFilters';\nimport RestockLimitsContainer from './RestockLimitsContainer';\nimport UnderStockOverStockASIN from './UnderStockOverStockASIN';\nimport InventoryManagementStrandedTable from './InventoryManagementStrandedTable';\nimport EstimatedLostSales from './EstimatedLostSales';\n// import LongTermStorageFees from './LongTermStorageFees';\nimport { storageTypeConstants, timeFilterOptions } from '../../../../constants';\nimport { CustomSingleDateModal, WhiteCard } from '../../../../common';\nimport {\n getChildBps,\n getEstimatedLostSalesReasonListAPIData,\n getRestockLimitsData,\n getMarketPlaceList,\n getRestockInventoryData,\n getRestockInventoryReportData,\n getStrandedInventoryData,\n} from '../../../../api';\n\nexport default function InventoryManagementContainer({\n marketplaceChoices,\n id,\n childBPList,\n}) {\n // const userInfo = useSelector((state) => state.userState.userInfo);\n // const isCustomer = userInfo?.role?.includes('Customer');\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const customerState = useSelector((state) => state?.customerState?.data);\n const isSuperAdmin = userInfo?.role === 'Super Admin';\n const isThirdPartyBrand = customerState?.is_third_party_potential_brand;\n const hideEstimatedLostSales = !isSuperAdmin && !isThirdPartyBrand;\n\n const isDesktop = useMediaQuery({ minWidth: 768 });\n const mounted = useRef(false);\n const [currencySymbol, setCurrencySymbol] = useState('$');\n const restockMindate = new Date('2022-03-21');\n const [selectedMarketplace, setSelectedMarketplace] = useState();\n const [marketplaceOptions, setMarketplaceOptions] = useState([]);\n const [restockLimitsGraphData, setRestockLimitsGraphData] = useState([]);\n const [strandedInvetoryData, setStrandedInvetoryData] = useState([]);\n const [stockedData, setStockedData] = useState([]);\n const [strandedDataCount, setStrandedDataCount] = useState(0);\n const [stockedCount, setStockedCount] = useState(0);\n const [isCustomDateApply, setIsCustomDateApply] = useState(false);\n const [strandedOrderByFlag, setStrandedOrderBy] = useState(true);\n const [strandedOrderByKey, setStrandedOrderByKey] = useState(\n 'stranded_event_date',\n );\n const [stockedOrderByFlag, setStockedOrderBy] = useState(true);\n\n const [restockLimitsLoader, setRestockLimitsLoader] = useState(false);\n const [tableLoader, setTableLoader] = useState(false);\n const [stockedLoader, setStockedLoader] = useState(false);\n const [stockedReportLoader, setStockedReportLoader] = useState(false);\n const currentDate = new Date();\n const [customDateState, setCustomDateState] = useState(currentDate);\n const [selectedCustomDateState, setSelectedCustomDateState] =\n useState(currentDate);\n const [dataAvailableDate, setDataAvailableDate] = useState(currentDate);\n const [showCustomDateModal, setShowCustomDateModal] = useState(false);\n const [selectedTimeFrame, setSelectedTimeFrame] = useState({\n value: 'yesterday',\n label: 'Today',\n sub: 'vs Yesterday',\n });\n const [pageNumber, setPageNumber] = useState(1);\n const [stockedPageNumber, setStockedPageNumber] = useState(1);\n const stockedRef = useRef(null);\n const history = useHistory();\n\n const setTab = () => {\n const { state } = history?.location;\n if (state === 'overstocked') {\n return { tab: 'overstocked', orderBy: 'sales_last_30_days' };\n }\n return { tab: 'understocked', orderBy: 'poos_date' };\n };\n\n const [stockedOrderByKey, setStockedOrderByKey] = useState(setTab()?.orderBy);\n const [activeASINTab, setActiveASINTab] = useState(setTab()?.tab);\n const [childBrandOptions, setChildBrandOptions] = useState(childBPList);\n const [selectedCustomerId, setSelectedCustomerId] = useState(\n childBPList?.length ? childBPList?.[0]?.value : id,\n );\n const [estimatedLostSalesReasonList, setEstimatedLostSalesReasonList] =\n useState([]);\n\n let todaysDate = new Date();\n todaysDate = dayjs(todaysDate).format('YYYY-MM-DD');\n const selectedCustomDate = dayjs(customDateState).format('YYYY-MM-DD');\n\n // no data message as per mst timezone\n let isMST12to10AM = false;\n let noDataMessage = 'No Data Found';\n\n const todayDateInMST = new Date().toLocaleString('en-US', {\n timeZone: 'MST',\n });\n const getMSTHour = new Date(todayDateInMST).getHours();\n const getMSTMinutes = new Date(todayDateInMST).getMinutes();\n\n // MST time limit logic for restock limit, stranded inventory\n if (\n selectedTimeFrame?.value === 'custom' &&\n selectedCustomDate < todaysDate\n ) {\n noDataMessage = 'No Data Found';\n isMST12to10AM = false;\n } else if (getMSTHour < 9 || (getMSTHour === 9 && getMSTMinutes === 0)) {\n noDataMessage = 'Today’s data is currently being updated.';\n isMST12to10AM = true;\n } else {\n noDataMessage = 'No Data Found';\n isMST12to10AM = false;\n }\n\n // MST time limit logic for estimated lost sales and understock/overstock inventory\n let isMST12to10AMForELS = false;\n let noDataMessageForELS = 'No Data Found';\n if (getMSTHour < 9 || (getMSTHour === 9 && getMSTMinutes === 0)) {\n noDataMessageForELS = 'Today’s data is currently being updated.';\n isMST12to10AMForELS = true;\n } else {\n noDataMessageForELS = 'No Data Found';\n isMST12to10AMForELS = false;\n }\n\n const bindRestockLimitGraphData = (resData) => {\n const bindedRes = [];\n\n if (resData?.length) {\n storageTypeConstants.map((ele) => {\n const storageType = resData[0]?.storage?.[ele.key];\n bindedRes.push({\n storageType: ele?.label,\n onhand: storageType?.on_hand || null,\n openShipment: storageType?.open_shipment || null,\n maximumShipment: storageType?.max_shipment || null,\n utilization: storageType?.utilization || null,\n\n previousOnhand: storageType?.previous_on_hand || null,\n previousOpenShipment: storageType?.previous_open_shipment || null,\n previousMaximumShipment: storageType?.previous_max_shipment || null,\n previousUtilization: storageType?.previous_utilization || null,\n\n changeOnhand: storageType?.on_hand_change || null,\n changeOpenShipment: storageType?.open_shipment_change || null,\n changeMaximumShipment: storageType?.max_shipment_change || null,\n changeUtilization: storageType?.utilization_change || null,\n\n onhandLabel: storageType?.on_hand || 0,\n openShipmentLabel: storageType?.open_shipment || 0,\n maximumShipmentLabel: storageType?.max_shipment || 0,\n utilizationLabel: storageType?.utilization || 0,\n previousOnhandLabel: storageType?.previous_on_hand || 0,\n previousOpenShipmentLabel: storageType?.previous_open_shipment || 0,\n previousMaximumShipmentLabel: storageType?.previous_max_shipment || 0,\n previousUtilizationLabel: storageType?.previous_utilization || 0,\n changeOnhandLabel: storageType?.on_hand_change || 0,\n changeOpenShipmentLabel: storageType?.open_shipment_change || 0,\n changeMaximumShipmentLabel: storageType?.max_shipment_change || 0,\n changeUtilizationLabel: storageType?.utilization_change || 0,\n });\n return null;\n });\n }\n return bindedRes;\n };\n\n // use effect hook\n useEffect(() => {\n if (childBPList.length) {\n setChildBrandOptions(childBPList);\n setSelectedCustomerId(childBPList[0]?.value);\n }\n }, [childBPList]);\n\n useEffect(() => {\n const { state } = history?.location;\n\n if (\n stockedRef?.current &&\n (state === 'understocked' || state === 'overstocked')\n ) {\n stockedRef.current.scrollIntoView();\n }\n }, [history]);\n\n const getRestockLimitsGraphData = useCallback(\n (custId, timeframe, marketplace, selectedDate, isMSTTime = false) => {\n setRestockLimitsLoader(true);\n setRestockLimitsGraphData([]);\n getRestockLimitsData(custId, timeframe, marketplace, selectedDate).then(\n (res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (!isMSTTime) {\n const bindData = bindRestockLimitGraphData(res?.data?.results);\n setRestockLimitsGraphData(bindData);\n if (\n res?.data?.available_date &&\n res?.data?.available_date !== null\n ) {\n setDataAvailableDate(new Date(res?.data?.available_date));\n if (selectedTimeFrame.value !== 'custom')\n setSelectedCustomDateState(\n new Date(res?.data?.available_date),\n );\n } else {\n setDataAvailableDate(currentDate);\n }\n } else {\n setDataAvailableDate(currentDate);\n }\n } else {\n setRestockLimitsLoader(false);\n setRestockLimitsGraphData([]);\n setDataAvailableDate(currentDate);\n }\n setRestockLimitsLoader(false);\n }\n },\n );\n },\n [selectedTimeFrame],\n );\n\n const getStrandedData = useCallback(\n (\n custId,\n timeframe,\n marketplace,\n selectedDate,\n page,\n orderBykey,\n orderByFlag,\n isMSTTime = false,\n ) => {\n setTableLoader(true);\n setStrandedInvetoryData([]);\n setStrandedDataCount(0);\n getStrandedInventoryData(\n custId,\n timeframe,\n marketplace,\n selectedDate,\n page,\n orderBykey,\n orderByFlag,\n ).then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (!isMSTTime) {\n setStrandedInvetoryData(res?.data?.results || []);\n setStrandedDataCount(res?.data?.count || 0);\n setTableLoader(false);\n }\n } else {\n setTableLoader(false);\n setStrandedInvetoryData([]);\n setStrandedDataCount(0);\n }\n setTableLoader(false);\n }\n });\n },\n [],\n );\n\n const getUnderOverStockedASINData = useCallback(\n (custId, marketplace, page, orderBykey, orderByFlag, activeTab) => {\n setStockedLoader(true);\n setStockedData([]);\n setStockedCount(0);\n getRestockInventoryData(\n custId,\n marketplace,\n page,\n orderBykey,\n orderByFlag,\n activeTab,\n )\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n if (!isMST12to10AM) {\n setStockedData(res?.data?.results || []);\n setStockedCount(res?.data?.count || 0);\n setStockedLoader(false);\n }\n }\n setStockedLoader(false);\n }\n })\n .catch(() => {\n setStockedLoader(false);\n setStockedData([]);\n setStockedCount(0);\n });\n },\n [],\n );\n\n useEffect(() => {\n mounted.current = true;\n let marketPlaceList = [];\n if (mounted.current && marketplaceChoices.length) {\n for (const option of marketplaceChoices) {\n marketPlaceList.push({\n ...option,\n value: option.name,\n label: option.country_currency.country,\n currency: option.country_currency.currency,\n });\n }\n\n if (marketPlaceList.length === 2) {\n marketPlaceList = marketPlaceList.filter(\n (item) => item.value !== 'all',\n );\n }\n\n let initialMarketplace = {};\n setMarketplaceOptions(marketPlaceList);\n if (customerState?.account_type === 'parent') {\n initialMarketplace =\n marketPlaceList.find((value) => value.is_primary) ||\n marketPlaceList?.[0];\n } else {\n initialMarketplace =\n marketPlaceList.length > 1 ? marketPlaceList[0] : marketPlaceList[0];\n }\n\n setSelectedMarketplace(initialMarketplace);\n setCurrencySymbol(getSymbolFromCurrency(initialMarketplace?.currency));\n }\n return () => {\n mounted.current = false;\n };\n }, [customerState?.account_type, marketplaceChoices]);\n\n useEffect(() => {\n if (selectedMarketplace && selectedMarketplace?.value !== '') {\n getRestockLimitsGraphData(\n selectedCustomerId,\n selectedTimeFrame.value,\n selectedMarketplace?.value,\n customDateState,\n isMST12to10AM,\n );\n }\n }, [\n getRestockLimitsGraphData,\n selectedMarketplace,\n selectedTimeFrame,\n customDateState,\n selectedCustomerId,\n isMST12to10AM,\n ]);\n\n useEffect(() => {\n if (selectedMarketplace && selectedMarketplace?.value !== '') {\n setPageNumber(1);\n\n getStrandedData(\n selectedCustomerId,\n selectedTimeFrame.value,\n selectedMarketplace?.value,\n customDateState,\n 1,\n strandedOrderByKey,\n strandedOrderByFlag,\n isMST12to10AM,\n );\n }\n }, [\n selectedCustomerId,\n customDateState,\n getStrandedData,\n selectedMarketplace,\n selectedTimeFrame,\n strandedOrderByFlag,\n strandedOrderByKey,\n isMST12to10AM,\n ]);\n\n useEffect(() => {\n if (selectedMarketplace && selectedMarketplace?.value !== '') {\n setStockedPageNumber(1);\n if (!isMST12to10AMForELS) {\n getUnderOverStockedASINData(\n selectedCustomerId,\n selectedMarketplace?.value,\n 1,\n stockedOrderByKey,\n stockedOrderByFlag,\n activeASINTab,\n );\n }\n }\n }, [\n getUnderOverStockedASINData,\n selectedMarketplace,\n stockedOrderByKey,\n stockedOrderByFlag,\n activeASINTab,\n selectedCustomerId,\n isMST12to10AMForELS,\n ]);\n\n // bind the child brand list\n const bindChidBrands = (childBrandResponse) => {\n const localChildBrand = [];\n\n if (childBPList?.length > 0) {\n childBPList.forEach((element) => {\n const matchElement = childBrandResponse.find(\n (op) => op.value === element.value,\n );\n if (matchElement !== undefined) {\n localChildBrand.push({\n ...element,\n isDisabled: false,\n });\n } else {\n localChildBrand.push({\n ...element,\n isDisabled: true,\n });\n }\n return true;\n });\n }\n\n setChildBrandOptions(localChildBrand);\n };\n\n // API - get the child brand list based on selected marketplace\n const getChildBpList = (customerId, marketplaceId) => {\n getChildBps(customerId, marketplaceId).then((res) => {\n if (res?.status === 200) {\n if (res?.data.length) {\n bindChidBrands(res?.data);\n }\n }\n });\n };\n\n // get the child brand list based on selected marketplace\n useEffect(() => {\n if (\n childBPList.length &&\n customerState?.account_type === 'parent' &&\n selectedMarketplace &&\n selectedMarketplace?.value\n ) {\n if (selectedMarketplace?.value === 'all') {\n bindChidBrands(childBPList);\n } else {\n getChildBpList(id, selectedMarketplace?.value);\n }\n }\n }, [selectedMarketplace, childBPList]);\n\n // bind the marketplace options\n const bindMarketplaceOptions = (responseData) => {\n const localMarketplaceList = [];\n\n marketplaceChoices.forEach((element) => {\n const matchElement = responseData.find((op) => op.name === element.name);\n\n if (matchElement !== undefined) {\n localMarketplaceList.push({\n ...element,\n isDisabled: false,\n value: element?.name,\n label: element?.country_currency.country,\n currency: element?.country_currency.currency,\n });\n } else {\n localMarketplaceList.push({\n ...element,\n isDisabled: element?.name !== 'all',\n value: element?.name,\n label: element?.country_currency.country,\n currency: element?.country_currency.currency,\n });\n }\n\n return true;\n });\n\n setMarketplaceOptions(localMarketplaceList);\n };\n\n // API- get the marketplace list based on selected child brand\n const getMarketPlace = useCallback((custId) => {\n getMarketPlaceList(custId).then((res) => {\n if (res?.status === 200) {\n bindMarketplaceOptions(res?.data);\n }\n });\n }, []);\n\n // get the marketplace list based on selected child brand\n useEffect(() => {\n getMarketPlace(selectedCustomerId);\n }, [selectedCustomerId, getMarketPlace]);\n\n const getUnderOverStockedReportData = useCallback(\n (custID) => {\n setStockedReportLoader(true);\n getRestockInventoryReportData(\n custID,\n selectedMarketplace.value,\n activeASINTab,\n )\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n const csvLink = res?.data?.url;\n if (csvLink) window.open(csvLink);\n if (res?.data?.message)\n toast.error(res?.data?.message, {\n position: isDesktop ? 'top-center' : 'top-right',\n });\n setStockedReportLoader(false);\n }\n setStockedReportLoader(false);\n }\n })\n .catch(() => {\n toast.error('Something went wrong', {\n position: isDesktop ? 'top-center' : 'top-right',\n });\n setStockedReportLoader(false);\n });\n },\n [activeASINTab, id, isDesktop, selectedMarketplace],\n );\n\n // bind estimated reason list data\n const bindEstimatedLostSalesReasonList = useCallback((apiData) => {\n const tempReasonData = [\n {\n label: 'All Reasons',\n value: '',\n },\n ];\n\n if (apiData?.length) {\n for (const item of apiData) {\n tempReasonData.push({\n label: item,\n value: item,\n });\n }\n }\n return tempReasonData;\n });\n\n // get estimated lost sales reason list\n const getEstimatedLostSalesReasonList = useCallback(\n (customerId, marketplace) => {\n getEstimatedLostSalesReasonListAPIData(customerId, marketplace).then(\n (response) => {\n if (response?.status === 200) {\n const getData = bindEstimatedLostSalesReasonList(response?.data);\n setEstimatedLostSalesReasonList(getData);\n } else {\n setEstimatedLostSalesReasonList([]);\n }\n },\n );\n },\n [],\n );\n\n // useEffect for reason list\n useEffect(() => {\n if (selectedCustomerId !== null && selectedMarketplace?.value !== null)\n getEstimatedLostSalesReasonList(\n selectedCustomerId,\n selectedMarketplace?.value,\n );\n }, [selectedCustomerId, selectedMarketplace?.value]);\n\n const handleTimeFrame = (event) => {\n const { value } = event;\n if (value !== selectedTimeFrame.value) {\n setIsCustomDateApply(false);\n if (value !== 'custom') {\n setSelectedTimeFrame(event);\n setCustomDateState(currentDate);\n setSelectedCustomDateState(dataAvailableDate);\n }\n }\n if (value === 'custom') {\n setShowCustomDateModal(true);\n }\n };\n\n const handleMarketplace = (event) => {\n if (event.value !== selectedMarketplace.value) {\n setSelectedMarketplace(event);\n setCurrencySymbol(getSymbolFromCurrency(event?.currency));\n }\n };\n\n const handleChildBrandOptions = (event) => {\n if (event.value !== selectedCustomerId) {\n setSelectedCustomerId(event.value);\n }\n };\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getStrandedData(\n selectedCustomerId,\n selectedTimeFrame.value,\n selectedMarketplace.value,\n customDateState,\n currentPage,\n strandedOrderByKey,\n strandedOrderByFlag,\n );\n };\n\n const handleStockedPageChange = (currentPage) => {\n setStockedPageNumber(currentPage);\n getUnderOverStockedASINData(\n selectedCustomerId,\n selectedMarketplace.value,\n currentPage,\n stockedOrderByKey,\n stockedOrderByFlag,\n activeASINTab,\n );\n };\n\n const handleSortFilters = (value) => {\n if (value === strandedOrderByKey) {\n setStrandedOrderBy(!strandedOrderByFlag);\n } else {\n setStrandedOrderBy(true);\n setStrandedOrderByKey(value);\n }\n };\n\n const handleStockedSortFilters = (value) => {\n if (value === stockedOrderByKey) {\n setStockedOrderBy(!stockedOrderByFlag);\n } else {\n setStockedOrderBy(true);\n setStockedOrderByKey(value);\n }\n };\n\n const applyCustomDate = () => {\n setIsCustomDateApply(true);\n setSelectedTimeFrame({\n value: 'custom',\n label: 'Custom',\n sub: 'Select date',\n });\n setCustomDateState(selectedCustomDateState);\n setShowCustomDateModal(false);\n };\n\n return (\n
    \n {/* ********** PDV-7917 - Expose AMC and other Sections to BPs ********** */}\n {/* ********** PLEASE DO NOT REMOVE BELOW CODE. ********** */}\n {/* {!userInfo?.role?.includes('Customer') ||\n (userInfo?.role?.includes('Customer') &&\n customerState?.display_inventory_management) ? ( */}\n <>\n \n \n \n \n \n \n {/* ********** PDV-7917 - Expose AMC and other Sections to BPs ********** */}\n {/* ********** PLEASE DO NOT REMOVE BELOW CODE. ********** */}\n {/* ) : null}\n\n\n {(!userInfo?.role?.includes('Customer') &&\n userInfo?.is_restockinventory_visible) ||\n (userInfo?.role?.includes('Customer') &&\n customerState?.display_under_over_stocked_inventory) ? ( */}\n {\n getUnderOverStockedReportData(selectedCustomerId);\n }}\n />\n {/* ) : null} */}\n {/* {!isCustomer ? ( */}\n {/* https://bbe.atlassian.net/browse/PDV-9525 - FE 2 - BP / Internal /\n Partner List Views - Stop pulling Seller and Vendor data via Amazon APIs\n Logic - If user is not Super Admin AND BP is BBE BP i.e. not Spreetail\n bp then hide estimated lost sales. */}\n <>\n {hideEstimatedLostSales ? null : (\n \n )}\n {/* */}\n \n {/* ) : null} */}\n {\n setShowCustomDateModal(false);\n if (selectedTimeFrame.value !== 'custom')\n setSelectedCustomDateState(dataAvailableDate);\n }}\n onChange={(item) => {\n setSelectedCustomDateState(item);\n }}\n onApply={() => applyCustomDate()}\n currentDate={dataAvailableDate}\n />\n
    \n );\n}\n\nInventoryManagementContainer.defaultProps = {\n marketplaceChoices: [],\n id: '',\n childBPList: [],\n};\n\nInventoryManagementContainer.propTypes = {\n marketplaceChoices: arrayOf(shape({})),\n id: string,\n childBPList: arrayOf(shape({})),\n};\n","import styled from 'styled-components';\nimport Theme from '../../theme/Theme';\n\nexport const GreenCheckBox = styled.div`\n display: block;\n position: relative;\n padding-left: 35px;\n padding-bottom: 15px;\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n font-weight: 600;\n border-bottom: 1px dotted ${Theme.gray25};\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n }\n\n .steps-completed {\n color: ${Theme.lighterGreen};\n font-weight: 500;\n\n &.gray-color {\n color: ${Theme.gray40};\n }\n }\n\n input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 0;\n width: 0;\n }\n\n .checkmark {\n position: absolute;\n top: 4px;\n left: 0;\n border: 1px solid ${Theme.gray35};\n width: 24px;\n height: 24px;\n border-radius: 50%;\n }\n\n input:checked ~ .checkmark {\n background-color: #e5f1e5;\n }\n\n input:checked ~ .checkmark:after {\n display: block;\n }\n .checkmark:after {\n content: '';\n position: absolute;\n display: none;\n left: 9px;\n top: 4px;\n width: 5px;\n height: 12px;\n border: solid ${Theme.lighterGreen};\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n`;\n\nexport const ActiveAgreementTable = styled.div`\n position: relative;\n width: 100%;\n margin-top: 20px;\n ${Theme.extraNormal};\n color: ${Theme.black};\n\n table {\n width: 100%;\n\n tr {\n text-align: left;\n background: ${Theme.white};\n border: 1px solid rgba(46, 91, 255, 0.08);\n border-radius: 1px;\n font-family: ${Theme.baseFontFamily};\n width: 100%;\n\n th {\n padding: 5px 0px 12px 0px;\n position: relative;\n vertical-align: top;\n border-bottom: 1px solid #e2e2ea;\n }\n\n td {\n padding: 12px 0;\n\n /* .sign-box {\n background-color: #ffffff;\n border: 1px solid #d5d8e1;\n border-radius: 2px;\n max-width: 100px;\n height: 32px;\n text-align: center;\n padding: 6px;\n }\n .solid-icon {\n width: 36px;\n height: 36px;\n margin-right: 10px;\n }\n .recurring-service {\n font-size: 14px;\n } */\n }\n }\n }\n .solid-icon {\n width: 36px;\n height: 36px;\n margin-right: 10px;\n }\n .recurring-service {\n font-size: ${Theme.extraNormal};\n }\n .sign-box {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray45};\n border-radius: 2px;\n max-width: 100px;\n height: 32px;\n text-align: center;\n padding: 6px;\n }\n`;\n","import React, { useState, useEffect } from 'react';\n\nimport dayjs from 'dayjs';\nimport PropTypes from 'prop-types';\n\nimport { PageLoader, WhiteCard } from '../../common';\nimport { getAgreementList, getAssigneeCount } from '../../api';\nimport { customerAgreementTableHeaders } from '../../constants';\nimport { ActiveAgreementTable, GreenCheckBox } from './BrandAssetsStyle';\nimport {\n DspOnlyIcon,\n RecurringIcon,\n ServiceIcon,\n SignatureIcon,\n} from '../../theme/images';\n\nexport default function SetupCheckList({ id }) {\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [agreementData, setAgreementData] = useState({\n data: [],\n count: null,\n assigneeCount: null,\n });\n\n useEffect(() => {\n setIsLoading({ loader: true, type: 'page' });\n getAgreementList(id).then((response) => {\n setAgreementData({\n data: response?.data?.results,\n count: response?.data?.count,\n });\n getAssigneeCount(id).then((res) => {\n setAgreementData({\n data: response?.data?.results,\n count: response?.data?.count,\n assigneeCount: res?.data,\n });\n setIsLoading({ loader: false, type: 'page' });\n });\n });\n }, [id]);\n\n const checkList = [\n {\n label: 'Sign Agreement',\n active: true,\n subtitle: '1/1 Step completed by you',\n property: '',\n },\n {\n label: 'Complete Account Setup',\n active: true,\n subtitle: agreementData?.assigneeCount?.re_assigned\n ? `${agreementData?.assigneeCount?.total_steps}/3 Steps completed by you and ${agreementData?.assigneeCount?.re_assigned} other`\n : `${agreementData?.assigneeCount?.total_steps}/3 Steps completed by you`,\n property: 'mt-3 mb-3',\n },\n ];\n\n const countDays = (value) => {\n const date1 = new Date();\n const date2 = new Date(value);\n const diffTime = Math.abs(date2 - date1);\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return diffDays;\n };\n\n const displayAgreementName = (agreement) => {\n const contractType = agreement?.contract_type?.toLowerCase();\n\n switch (contractType) {\n case 'recurring':\n return agreement?.channel?.value === 'amazon'\n ? 'Amazon Recurring Service Agreement'\n : 'Walmart Recurring Service Agreement';\n case 'recurring (90 day notice)':\n return agreement?.channel?.value === 'amazon'\n ? 'Amazon Recurring (90 day notice) Service Agreement'\n : 'Walmart Recurring (90 day notice) Service Agreement';\n case 'dsp only':\n return 'Amazon DSP Service Agreement';\n default:\n return null;\n }\n };\n\n const displatAgreementType = (item) => {\n return (\n <>\n \n

    \n {displayAgreementName(item)}\n

    \n \n );\n };\n\n const displayAgreementStatus = (status) => {\n return (\n
    \n {status?.value === 'active' ? (\n <>\n \"signature\" Signed\n \n ) : (\n status?.label\n )}\n
    \n );\n };\n\n const displayAgreementTable = () => {\n return (\n \n \n \n {customerAgreementTableHeaders?.map((item) => {\n return (\n \n );\n })}\n \n {agreementData.data?.map((item) => (\n \n \n \n \n \n \n ))}\n \n
    \n {item?.label}\n
    {displatAgreementType(item)}{displayAgreementStatus(item?.contract_status)}{dayjs(item?.start_date).format('MMM DD, YYYY')}\n {item?.contract_type?.includes('one')\n ? 'N/A'\n : `${countDays(item?.end_date)} days`}\n
    \n );\n };\n\n const displayAgreementDataMobileView = () => {\n return agreementData.data?.map((item) => (\n \n
    \n
    Agreement Type
    \n
    \n
    {displatAgreementType(item)}
    \n
    \n
    \n
    \n
    Contract Status
    \n {displayAgreementStatus(item?.contract_status)}\n
    \n
    \n
    Start Date
    \n
    {dayjs(item?.start_date).format('MMM DD, YYYY')}
    \n
    \n
    \n
    Expires in
    \n
    \n {item?.contract_type?.includes('one')\n ? 'N/A'\n : `${countDays(item?.end_date)} days`}\n
    \n
    \n
    \n \n ));\n };\n\n return (\n
    \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n
    \n
    \n
    \n

    Setup Checklist

    \n
    \n
    \n
    \n \n
    100% Complete
    \n
    \n
    \n
    \n
    \n {checkList.map((item) => (\n \n \n \n ))}\n
    \n
    \n\n \n

    \n Active Agreement(s) ({agreementData.count})\n

    \n \n
    \n {displayAgreementTable()}\n
    \n
    \n {displayAgreementDataMobileView()}\n
    \n
    \n
    \n \n )}\n
    \n );\n}\n\nSetupCheckList.propTypes = {\n id: PropTypes.string.isRequired,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport styled from 'styled-components';\nimport { toast } from 'react-toastify';\nimport $ from 'jquery';\nimport queryString from 'query-string';\n\nimport Theme from '../../theme/Theme';\nimport {\n Button,\n OnBoardingBody,\n UnauthorizedHeader,\n CheckBox,\n InputFormField,\n PageLoader,\n ErrorMsg,\n} from '../../common';\nimport {\n PATH_BRAND_ASSET,\n PATH_CUSTOMER_DETAILS,\n PATH_THANKS,\n PATH_UNAUTHORIZED_BRAND_ASSET,\n PATH_UNAUTHROIZED_BRAND_ASSET_SUMMARY,\n PATH_BRAND_ASSET_SUMMARY,\n} from '../../constants';\nimport {\n OrangeCheckMark,\n EditOrangeIcon,\n SecurityLock,\n LeftArrowIcon,\n} from '../../theme/images';\nimport { getBrandAssetsDetail, updateBrandAssetStep } from '../../api';\n\nexport default function UploadDelegation() {\n const { id, brandId } = useParams();\n const history = useHistory();\n const [isChecked, setIsChecked] = useState(false);\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'email' });\n const [formData, setFormData] = useState({ email: '' });\n const [ifStepsNull, setIfStepsNull] = useState(false);\n const [data, setData] = useState({});\n const [editEmail, setEditEmail] = useState(false);\n const [apiError, setApiError] = useState({});\n const params = queryString.parse(history.location.search);\n\n const brandAssetData = useCallback(() => {\n setIsLoading({ loader: true, type: 'page' });\n\n getBrandAssetsDetail(brandId).then((response) => {\n if (response && response.status === 401) {\n history.push({ pathname: PATH_THANKS, search: 'step=completed' });\n setIsLoading({ loader: false, type: 'page' });\n } else {\n setData(response && response.data);\n if (\n (response && response.data && response.data.steps === undefined) ||\n (response && response.data && response.data.steps === null)\n ) {\n setIfStepsNull(true);\n } else {\n setIfStepsNull(false);\n }\n if (\n response &&\n response.data &&\n (response.data.re_assigned_email === null ||\n response.data.re_assigned_email === '')\n ) {\n setIsChecked(false);\n $('.checkboxes input:checkbox').prop('checked', false);\n } else {\n setIsChecked(true);\n $('.checkboxes input:checkbox').prop('checked', true);\n }\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n }, [brandId]);\n\n useEffect(() => {\n if (params && params.key) {\n localStorage.setItem('match', params.key);\n setIsChecked(false);\n }\n brandAssetData();\n }, [brandAssetData]);\n\n const sendEmail = () => {\n setIsLoading({ loader: true, type: 'email' });\n const detail = {\n customer: id,\n re_assigned_email: formData && formData.email,\n };\n updateBrandAssetStep(brandId, detail).then((res) => {\n if (res && res.status === 200) {\n setEditEmail(false);\n setFormData({ email: '' });\n toast.success('Request Sent Successfully!');\n setIsLoading({ loader: false, type: 'email' });\n brandAssetData();\n }\n if (res && res.status === 400) {\n setApiError(res && res.data);\n setIsLoading({ loader: false, type: 'email' });\n }\n });\n };\n\n const redirectTO = () => {\n if (\n !history.location.pathname.includes('/assigned-choose-delegate/') &&\n data &&\n data.re_assigned_email\n ) {\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', id));\n } else if (ifStepsNull) {\n updateBrandAssetStep(brandId, {\n steps: {\n brand_logo: null,\n font_files: null,\n brand_guidelines: null,\n iconography: null,\n additional_brand_material: null,\n },\n }).then((response) => {\n if (response && response.status === 200) {\n if (data && data.last_visited_step === 'summary') {\n history.push(\n history.location.pathname.includes('/assigned-brand-asset/')\n ? PATH_UNAUTHROIZED_BRAND_ASSET_SUMMARY.replace(\n ':id',\n id,\n ).replace(':brandId', brandId)\n : PATH_BRAND_ASSET_SUMMARY.replace(':id', id).replace(\n ':brandId',\n brandId,\n ),\n );\n } else {\n history.push({\n pathname:\n params && params.key\n ? PATH_UNAUTHORIZED_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n )\n : PATH_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n ),\n search:\n data && data.last_visited_step\n ? `step=${data.last_visited_step}`\n : 'step=brand-logo',\n });\n }\n }\n });\n } else if (data && data.last_visited_step === 'summary') {\n history.push(\n history.location.pathname.includes('/assigned-choose-delegate/')\n ? PATH_UNAUTHROIZED_BRAND_ASSET_SUMMARY.replace(':id', id).replace(\n ':brandId',\n brandId,\n )\n : PATH_BRAND_ASSET_SUMMARY.replace(':id', id).replace(\n ':brandId',\n brandId,\n ),\n );\n } else {\n history.push({\n pathname:\n params && params.key\n ? PATH_UNAUTHORIZED_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n )\n : PATH_BRAND_ASSET.replace(':id', id).replace(':brandId', brandId),\n search:\n data && data.last_visited_step\n ? `step=${data.last_visited_step}`\n : 'step=brand-logo',\n });\n }\n };\n\n const updateEmail = () => {\n updateBrandAssetStep(brandId, {\n re_assigned_email: '',\n }).then((response) => {\n if (response && response.status === 200) {\n setIsChecked(false);\n brandAssetData();\n }\n });\n };\n\n const updateInput = () => {\n setIsChecked(true);\n if (data && data.re_assigned_email) {\n setEditEmail(false);\n } else setEditEmail(true);\n };\n\n return (\n <>\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n {params && params.key ? (\n \n ) : (\n \n {' '}\n
    \n {' '}\n
    \n
    \n \n history.push(PATH_CUSTOMER_DETAILS.replace(':id', id))\n }>\n \n Back to Dashboard\n
    \n
    \n
    \n
    {' '}\n \n )}\n\n \n
    \n {/* {' '} */}\n

    Upload Your Brand Assets

    \n {params && params.key ? (\n ''\n ) : (\n <>\n \n \n Ask someone else to complete this section\n \n event.target.checked\n ? updateInput()\n : data && data.re_assigned_email\n ? updateEmail()\n : setIsChecked(false)\n }\n />\n \n \n \n {isChecked ? (\n
    \n \n \n \n {apiError &&\n apiError.re_assigned_email &&\n apiError.re_assigned_email[0]}\n \n {data && data.re_assigned_email ? (\n setEditEmail(true)}>\n {' '}\n Edit email address\n \n ) : (\n ''\n )}\n {data && data.re_assigned_email ? (\n

    \n We’ve emailed them a link to submit the information\n in this section.\n

    \n ) : (\n

    \n We’ll email them a link to submit the information in\n this section.\n

    \n )}\n sendEmail()}\n disabled={formData.email === '' || isLoading.loader}>\n {isLoading.loader && isLoading.type === 'email' ? (\n \n ) : (\n 'Send Email'\n )}\n \n
    \n
    \n ) : (\n ''\n )}\n \n )}\n
    \n You’ll need the following to complete this step:\n
    \n
      \n
    • \n \"check\"\n Your brand logo in vector format (e.g. AI or EPS)\n
    • \n
    • \n \"check\"A brand guidelines or\n style guide document\n
    • \n
    • \n \"check\"\n Brand font files\n
    • \n
    • \n \"check\"\n Iconography\n
    • \n
    • \n \"check\"\n Any other brand material\n
    • \n
    \n redirectTO()}\n disabled={\n !history.location.pathname.includes(\n '/assigned-choose-delegate/',\n ) &&\n isChecked &&\n !(data && data.re_assigned_email)\n }>\n Continue\n \n

    \n \"lock\"\n \n {' '}\n All files will be stored securely and never shared with a 3rd\n party.\n \n

    \n
    \n
    \n \n )}\n \n );\n}\n\nconst BackToStep = styled.div`\n position: fixed;\n background-color: ${Theme.white};\n z-index: 2;\n top: 70px;\n padding: 22px 0px 18px 0px;\n width: 100%;\n border-bottom: 1px solid ${Theme.gray5};\n\n .skip-steps {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n cursor: pointer;\n }\n`;\n","import React, { useState, useCallback, useEffect, useRef } from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useSelector } from 'react-redux';\nimport { useForm } from 'react-hook-form';\n\nimport Theme from '../../theme/Theme';\nimport {\n HeaderDownloadFuntionality,\n PageLoader,\n FormField,\n Button,\n CommonPagination,\n ErrorMsg,\n PdfAnnotator,\n} from '../../common';\nimport { GroupUser } from '../../theme/Global';\nimport {\n CloseIcon,\n TrashIcons,\n ChatBoxIcon,\n ArrowRightBlackIcon,\n AnnotationGoal,\n RedTrashIcon,\n} from '../../theme/images';\nimport {\n storeNewCommentData,\n getCommentsData,\n deleteComment,\n updateComment,\n} from '../../api';\n\nfunction BrandAssetsPreview({\n showAssetPreview,\n setShowAssetPreview,\n documentData,\n setShowConfirmationModal,\n isLoading,\n isDeleted,\n setIsImgDeleted,\n}) {\n const { handleSubmit } = useForm();\n const [isImageLoading, setImageLoading] = useState(false);\n const [showCommentSection, setShowCommentSection] = useState(false);\n const [newCommentData, setNewCommentData] = useState('');\n const [commentsCount, setCommentsCount] = useState(0);\n const [commentsLoader, setCommentsLoader] = useState(false);\n const [addCommentsLoader, setAddCommentsLoader] = useState(false);\n const userInfo = useSelector((state) => state.userState.userInfo);\n const [responseId, setResponseId] = useState(null);\n const [commentsData, setCommentData] = useState();\n const [storeCommentError, setStoreCommentError] = useState();\n const [maxAnnotationNumber, setMaxAnnotationNumber] = useState(null);\n const [clickOnAddNewAnnotation, setClickOnAddNewAnnotation] = useState(false);\n const [pageNumber, setPageNumber] = useState();\n const [showClickModal, setShowClickModal] = useState(false);\n const [isClickedOnImage, setIsClickedOnImage] = useState(false);\n const [newAnnotationPosition, setNewAnnotationPosition] = useState({\n top: 0,\n left: 0,\n });\n const fileType = ['font/ttf', 'font/otf', 'font/woff'];\n const [showDelete, setShowDelete] = useState(false);\n const [showTextArea, setShowTextArea] = useState(false);\n const ref = useRef(null);\n\n const handleClickOutside = (event) => {\n if (ref.current && !ref.current.contains(event.target)) {\n setShowDelete(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n const getComments = useCallback((currentPage, documnetId) => {\n setCommentsLoader(true);\n getCommentsData(currentPage, documnetId).then((res) => {\n if (res && res.status === 400) {\n setCommentsLoader(false);\n }\n if (res && res.status === 200) {\n setCommentData(res.data.results);\n setCommentsCount(res.data.count);\n setCommentsLoader(false);\n setImageLoading(false);\n if (res.data.max_annotation === null) {\n setMaxAnnotationNumber(1);\n } else {\n setMaxAnnotationNumber(res.data.max_annotation + 1);\n }\n }\n });\n }, []);\n\n const storeCommentData = useCallback(\n (message, documnetId, newPosition, annotationNumber) => {\n setAddCommentsLoader(true);\n\n storeNewCommentData(\n message,\n documnetId,\n userInfo.email,\n newPosition,\n annotationNumber,\n showClickModal,\n ).then((res) => {\n if (res && res.status === 400) {\n setStoreCommentError(res.data);\n }\n if (res && res.status === 201) {\n getComments(1, showAssetPreview.selectedFile.id);\n setPageNumber(1);\n setNewCommentData('');\n setClickOnAddNewAnnotation(false);\n setNewAnnotationPosition({ left: 0, top: 0 });\n setIsClickedOnImage(false);\n setShowClickModal(false);\n }\n setAddCommentsLoader(false);\n });\n },\n [getComments, showAssetPreview, userInfo.email, showClickModal],\n );\n\n useEffect(() => {\n if (isDeleted) {\n setResponseId(null);\n setCommentData();\n setIsClickedOnImage(false);\n setNewCommentData('');\n setClickOnAddNewAnnotation(false);\n setNewAnnotationPosition({\n left: 0,\n top: 0,\n });\n setStoreCommentError();\n setIsImgDeleted(false);\n\n setShowClickModal(false);\n setResponseId(null);\n setShowAssetPreview({\n ...showAssetPreview,\n selectedFile: null,\n });\n }\n if (\n showAssetPreview &&\n showAssetPreview.selectedFile &&\n showAssetPreview.selectedFile.id &&\n responseId === null\n ) {\n getComments(1, showAssetPreview.selectedFile.id);\n setResponseId('123');\n }\n }, [\n getComments,\n showAssetPreview,\n responseId,\n isDeleted,\n setIsImgDeleted,\n setShowAssetPreview,\n ]);\n\n const showImg = (type) => {\n setImageLoading(true);\n if (type === 'prev' && showAssetPreview.index > 0) {\n setShowAssetPreview({\n selectedFile: documentData[showAssetPreview.index - 1],\n show: true,\n documents: documentData,\n index: showAssetPreview.index > 0 ? showAssetPreview.index - 1 : 0,\n });\n\n getComments(1, documentData[showAssetPreview.index - 1].id);\n }\n if (type === 'next' && showAssetPreview.index < documentData.length - 1) {\n setShowAssetPreview({\n selectedFile: documentData[showAssetPreview.index + 1],\n show: true,\n documents: documentData,\n index:\n showAssetPreview.index < documentData.length - 1\n ? showAssetPreview.index + 1\n : documentData.length - 1,\n });\n\n getComments(1, documentData[showAssetPreview.index + 1].id);\n }\n setNewCommentData('');\n setClickOnAddNewAnnotation(false);\n setNewAnnotationPosition({\n left: 0,\n top: 0,\n });\n setStoreCommentError();\n\n setShowClickModal(false);\n setIsClickedOnImage(false);\n };\n\n const closeModal = () => {\n setShowAssetPreview({\n selectedFile: null,\n show: false,\n documents: documentData,\n index: 0,\n });\n setNewCommentData('');\n setClickOnAddNewAnnotation(false);\n setNewAnnotationPosition({\n left: 0,\n top: 0,\n });\n\n setMaxAnnotationNumber(null);\n setStoreCommentError();\n\n setShowClickModal(false);\n setIsClickedOnImage(false);\n };\n\n const getInitials = (firstName, lastName) => {\n let first = '';\n let last = '';\n if (firstName !== null && firstName !== undefined) {\n first = firstName.charAt(0) || '';\n }\n if (lastName !== null && lastName !== undefined) {\n last = lastName.charAt(0) || '';\n }\n return first + last;\n };\n\n const handleChange = (event) => {\n setNewCommentData(event.target.value);\n setStoreCommentError();\n };\n\n const onSubmit = () => {\n storeCommentData(\n newCommentData,\n showAssetPreview.selectedFile.id,\n newAnnotationPosition,\n maxAnnotationNumber,\n );\n };\n\n const onCommnetsLabelClick = () => {\n if (showCommentSection) {\n setNewCommentData('');\n setClickOnAddNewAnnotation(false);\n setNewAnnotationPosition({\n left: 0,\n top: 0,\n });\n setStoreCommentError();\n\n setShowClickModal(false);\n setIsClickedOnImage(false);\n }\n setShowCommentSection(!showCommentSection);\n };\n\n const onMouseDown = (e) => {\n e.preventDefault(true);\n\n if (!isClickedOnImage) {\n setIsClickedOnImage(true);\n }\n\n const theThing = document.querySelector('#thing');\n const container = document.querySelector('#imgContainer');\n\n if (theThing) {\n const offset = container.getBoundingClientRect();\n const clickX = e.clientX - offset.left - theThing.clientWidth / 2;\n const clickY = e.clientY - offset.top - theThing.clientHeight / 2;\n const percentXImg = (clickX * 100) / offset.width;\n const percentYImg = (clickY * 100) / offset.height;\n\n setNewAnnotationPosition({\n left: percentXImg,\n top: percentYImg,\n });\n }\n };\n\n const onPdfMouseDown = (e, selector) => {\n if (clickOnAddNewAnnotation) {\n e.preventDefault(true);\n\n if (!isClickedOnImage) {\n setIsClickedOnImage(true);\n }\n const container = document.querySelector(`.page_${selector}`);\n const theThing = document.querySelector('#thing');\n\n if (theThing) {\n const offset = container.getBoundingClientRect();\n const clickX = e.clientX - offset.left - theThing.clientWidth / 2;\n const clickY = e.clientY - offset.top - theThing.clientHeight / 2;\n const percentXImg = (clickX * 100) / offset.width;\n const percentYImg = (clickY * 100) / offset.height;\n\n setNewAnnotationPosition({\n page: `${selector}`,\n left: percentXImg,\n top: percentYImg,\n });\n }\n }\n };\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getComments(currentPage, showAssetPreview.selectedFile.id);\n };\n\n const cancelAnnotation = () => {\n setShowClickModal(false);\n setClickOnAddNewAnnotation(false);\n setIsClickedOnImage(false);\n setNewAnnotationPosition({ left: 0, top: 0 });\n };\n\n const setAddButtonClass = () => {\n if (\n newCommentData === '' ||\n (clickOnAddNewAnnotation && !isClickedOnImage)\n ) {\n return 'btn-primary w-100 mt-3 disabled';\n }\n return 'btn-primary w-100 mt-3';\n };\n\n const onDeleteComment = (id) => {\n deleteComment(id).then(() => {\n let pageNo = pageNumber;\n if (commentsCount % 10 === 1) {\n if (pageNumber === 1) {\n pageNo = 1;\n } else {\n pageNo = pageNumber - 1;\n }\n }\n\n getComments(pageNo, showAssetPreview.selectedFile.id);\n setPageNumber(pageNo);\n setShowDelete({ [id]: false });\n });\n };\n\n const editComment = (id) => {\n setAddCommentsLoader(true);\n updateComment(id, { message: newCommentData }).then((res) => {\n if (res && res.status === 200) {\n getComments(pageNumber, showAssetPreview.selectedFile.id);\n setShowTextArea(false);\n setNewCommentData('');\n setAddCommentsLoader(false);\n }\n if (res && res.status === 400) {\n setStoreCommentError(res.data);\n setAddCommentsLoader(false);\n }\n });\n };\n\n const generateTextArea = (item) => {\n return (\n \n handleChange(event)}\n />\n \n {storeCommentError &&\n storeCommentError.message &&\n storeCommentError.message[0]}\n {' '}\n
    \n
    \n editComment(item.id)}\n disabled={addCommentsLoader || newCommentData === ''}>\n {addCommentsLoader ? (\n \n ) : (\n 'Update'\n )}\n \n
    \n
    \n {\n setShowTextArea(false);\n setNewCommentData('');\n }}>\n Cancel\n \n
    \n
    \n
    \n );\n };\n\n const renderComments = () => {\n if (commentsLoader) {\n return (\n \n );\n }\n if (commentsCount === 0) {\n return (\n
    \n No comments added for this image yet.\n
    \n );\n }\n return commentsData.map((item) => {\n return (\n
  • \n \n
    \n {item.annotation\n ? item.annotation\n : getInitials(item.first_name, item.last_name)}\n
    \n
    \n \n {' '}\n {item.first_name} {item.last_name}:\n {' '}\n {showTextArea && showTextArea[item.id] ? (\n <>{generateTextArea(item)}\n ) : (\n <>{item.message}\n )}\n {item.user === userInfo.id ? (\n
    \n {item.created_at}\n \n
      \n <>\n setShowTextArea({ [item.id]: true })}>\n {' '}\n Edit\n \n
    • \n \n setShowDelete({\n [item.id]: true,\n })\n }\n role=\"presentation\">\n Delete{' '}\n {showDelete && showDelete[item.id] ? (\n onDeleteComment(item.id)}>\n {' '}\n \n Confirm Delete\n
    \n ) : (\n ''\n )}\n
    \n
  • \n \n \n \n
    \n ) : (\n /* setShowTextArea({ [item.id]: true })}\n role=\"presentation\">\n Edit\n
    \n \n setShowDelete({\n [item.id]: true,\n })\n }\n role=\"presentation\">\n Delete\n {showDelete && showDelete[item.id] ? (\n onDeleteComment(item.id)}>\n {' '}\n \n Confirm Delete\n
    \n ) : (\n ''\n )}\n
    */\n\n ''\n )}\n
    \n
    \n \n \n );\n });\n };\n\n const renderCommentPanel = () => {\n return (\n \n
    \n Comments\n onCommnetsLabelClick()}>\n \"arro\"\n
    \n
    \n
      \n {renderComments()}\n
    \n {commentsCount > 10 ? (\n \n \n \n ) : null}\n {!showTextArea ? (\n
    \n
    \n \n
    \n handleChange(event)}\n />\n \n {storeCommentError &&\n storeCommentError.message &&\n storeCommentError.message[0]}\n \n\n {!fileType.includes(\n showAssetPreview &&\n showAssetPreview.selectedFile &&\n showAssetPreview.selectedFile.mime_type,\n ) ? (\n {\n setShowClickModal(true);\n setClickOnAddNewAnnotation(true);\n }}\n role=\"presentation\">\n \"annotation\"\n Click to add an annotation\n
    \n ) : null}\n \n \n \n
    \n
    \n ) : (\n ''\n )}\n \n );\n };\n\n const renderImageAnnotations = (flag = false) => {\n if (showCommentSection && flag) {\n return (\n commentsData &&\n commentsData.map((item) => {\n if (item.annotation !== null) {\n return (\n \n {item.annotation}\n \n );\n }\n return null;\n })\n );\n }\n\n if (clickOnAddNewAnnotation) {\n return (\n \n {isClickedOnImage ? maxAnnotationNumber : null}\n \n );\n }\n return null;\n };\n\n const renderPDFAnnotations = (flag = false, index) => {\n if (showCommentSection && flag) {\n return (\n commentsData &&\n commentsData.map((item) => {\n if (item.annotation !== null) {\n return (\n \n {item.pdf_page_number === index ? item.annotation : ''}\n \n );\n }\n return null;\n })\n );\n }\n\n if (clickOnAddNewAnnotation) {\n return (\n \n {isClickedOnImage\n ? newAnnotationPosition.page === `${index}`\n ? maxAnnotationNumber\n : ''\n : null}\n \n );\n }\n return null;\n };\n\n return (\n <>\n {(isLoading.loader && isLoading.type === 'page') || isImageLoading ? (\n \n ) : (\n <>\n \n
    \n
    \n
    \n {' '}\n {showAssetPreview &&\n showAssetPreview.selectedFile &&\n showAssetPreview.selectedFile.original_name}\n
    \n
    \n
      \n \n {' '}\n \n {\n onCommnetsLabelClick();\n setNewCommentData('');\n setShowTextArea(false);\n }}>\n Comments ({commentsCount})\n \n \n
    • \n \n
    • \n setShowConfirmationModal(true)}\n role=\"presentation\">\n \n Delete\n \n
    • \n \n
    • \n
    • \n closeModal()}\n />\n
    • \n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n {showClickModal ? (\n
    \n Click anywhere on the image to add your annotaton{' '}\n {\n cancelAnnotation();\n }}>\n Cancel\n \n
    \n ) : null}\n \n showAssetPreview.index !== 0 ? showImg('prev') : null\n }>\n \n {' '}\n \"\"{' '}\n
    \n \n
    \n {showAssetPreview &&\n showAssetPreview.selectedFile &&\n showAssetPreview.selectedFile.mime_type.includes('pdf') ? (\n \n \n \n ) : (\n <>\n \n clickOnAddNewAnnotation ? onMouseDown(event) : null\n }\n id=\"imgContainer\"\n className={\n clickOnAddNewAnnotation\n ? 'image-thumbnail cursorPointer'\n : 'image-thumbnail'\n }\n data={\n showAssetPreview &&\n showAssetPreview.selectedFile &&\n showAssetPreview.selectedFile.presigned_url\n }\n type={\n showAssetPreview &&\n showAssetPreview.selectedFile &&\n showAssetPreview.selectedFile.mime_type\n }\n // width=\"550\"\n // height=\"250\"\n role=\"presentation\">\n
    \n
    \n {showAssetPreview &&\n showAssetPreview.selectedFile &&\n showAssetPreview.selectedFile.original_name}\n
    \n
    \n \n {renderImageAnnotations(true)}\n {renderImageAnnotations()}\n {}\n \n )}\n
    \n\n \n showAssetPreview.index !==\n (showAssetPreview.documents &&\n showAssetPreview.documents.length - 1)\n ? showImg('next')\n : null\n }>\n \n {' '}\n \"\"{' '}\n \n \n \n \n\n {showCommentSection ? (\n
    \n {renderCommentPanel()}\n
    \n ) : null}\n \n \n )}\n \n );\n}\n\nexport default BrandAssetsPreview;\n\nBrandAssetsPreview.defaultProps = {\n showAssetPreview: {},\n setShowAssetPreview: () => {},\n documentData: [],\n setShowConfirmationModal: () => {},\n isLoading: {},\n isDeleted: false,\n setIsImgDeleted: () => {},\n};\n\nBrandAssetsPreview.propTypes = {\n setShowAssetPreview: PropTypes.func,\n documentData: PropTypes.arrayOf(PropTypes.object),\n showAssetPreview: PropTypes.shape({\n selectedFile: PropTypes.shape({\n id: PropTypes.string,\n presigned_url: PropTypes.string,\n mime_type: PropTypes.string,\n original_name: PropTypes.string,\n }),\n index: PropTypes.number,\n show: PropTypes.bool,\n documents: PropTypes.arrayOf(PropTypes.object),\n }),\n setShowConfirmationModal: PropTypes.func,\n isLoading: PropTypes.shape({\n loader: PropTypes.bool,\n type: PropTypes.string,\n }),\n isDeleted: PropTypes.bool,\n setIsImgDeleted: PropTypes.func,\n};\n\nconst BrandAssetsPreviewBody = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n\n &.annotation-modal {\n background: #abafb8;\n height: 100%;\n }\n\n .click-for-annotation {\n background-color: ${Theme.gray8};\n border-radius: 4px;\n padding: 5px 15px;\n font-size: ${Theme.small};\n color: ${Theme.gray90};\n top: 10px;\n position: absolute;\n }\n\n .assetPreviewImg {\n position: absolute;\n top: 30%;\n display: flex;\n justify-content: center;\n\n .image-thumbnail {\n max-width: 500px;\n max-height: 250px;\n }\n\n .cursorPointer {\n cursor: pointer;\n }\n\n .unsupport-file-name {\n padding: 60px 0;\n color: ${Theme.black};\n\n .file-path {\n color: ${Theme.black};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 145px;\n vertical-align: middle;\n position: relative;\n margin: 0 auto;\n text-align: center;\n }\n }\n }\n\n .btn {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray4};\n border-radius: 8px;\n width: 50px;\n height: 50px;\n position: absolute;\n top: 40%;\n cursor: pointer;\n &.pervious-img {\n left: 29px;\n }\n &.next-img {\n right: 29px;\n }\n .arrow-icon {\n width: 15px;\n margin: 13px 0px 0px 13px;\n vertical-align: bottom;\n top: 5px;\n &.pervious {\n transform: rotate(180deg);\n margin: 8px 0px 0px 18px;\n }\n }\n }\n\n @media only screen and (max-width: 991px) {\n .assetPreviewImg {\n top: 35%;\n\n .image-thumbnail {\n max-width: 500px;\n max-height: 200px;\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .assetPreviewImg {\n max-width: 200px;\n height: 100px;\n .image-thumbnail {\n max-width: 200px;\n height: 100px;\n }\n }\n .btn {\n &.pervious-img {\n left: 15px;\n }\n &.next-img {\n right: 15px;\n }\n .arrow-icon {\n width: 15px;\n margin: 13px 0px 0px 13px;\n vertical-align: bottom;\n top: 5px;\n &.pervious {\n transform: rotate(180deg);\n margin: 8px 0px 0px 18px;\n }\n }\n }\n }\n @media only screen and (max-width: 480px) {\n .assetPreviewImg {\n max-width: 170px;\n height: 100px;\n left: auto;\n .image-thumbnail {\n max-width: 170px;\n height: 100px;\n }\n }\n .btn {\n .arrow-icon {\n width: 15px;\n margin: 13px 0px 0px 13px;\n vertical-align: bottom;\n top: 5px;\n &.pervious {\n transform: rotate(180deg);\n margin: 8px 0px 0px 18px;\n }\n }\n }\n }\n`;\n\nconst CommentAnnotationPanel = styled.div`\n border-left: 1px solid ${Theme.gray4};\n margin-top: 0px;\n height: calc(100% - -170px);\n\n .chat-header {\n border-bottom: 1px solid ${Theme.gray4};\n padding: 18px 10px;\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n text-transform: uppercase;\n font-weight: bold;\n position: relative;\n }\n .close-panel {\n position: absolute;\n right: 15px;\n top: 14px;\n border-left: 2px solid ${Theme.black};\n height: 21px;\n cursor: pointer;\n }\n\n .inbox-coment {\n list-style-type: none;\n padding: 0;\n margin: 0;\n overflow: auto;\n height: calc(100vh - 100px - 235px);\n padding-bottom: 70px;\n\n li {\n padding: 15px 15px 0 15px;\n }\n }\n .inbox-height {\n height: calc(100vh - 200px);\n list-style-type: none;\n padding: 0;\n margin: 0;\n overflow: auto;\n li {\n padding: 15px 15px 0 15px;\n }\n }\n .chat-footer {\n position: fixed;\n\n bottom: 10px;\n border-top: 1px solid ${Theme.gray4};\n width: 100%;\n\n .input-type-box {\n margin: 0 10px;\n background: ${Theme.white};\n width: 23%;\n .add-annotation {\n cursor: pointer;\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n img {\n width: 17px;\n vertical-align: text-top;\n margin: 0 8px;\n }\n }\n }\n }\n @media only screen and (max-width: 991px) {\n border-left: none;\n height: 100%;\n margin-top: 20px;\n\n .chat-header {\n margin-top: 40px;\n border-top: 1px solid ${Theme.gray4};\n }\n\n .inbox-comment {\n height: calc(100vh - 100px - 545px);\n }\n .chat-footer {\n .input-type-box {\n margin: 0 10px;\n width: 95%;\n }\n }\n .close-panel {\n transform: rotate(90deg);\n }\n }\n @media only screen and (max-width: 767px) {\n .inbox-comment {\n height: calc(100vh - 445px);\n padding-bottom: 180px;\n }\n }\n`;\n\nconst BrandAssetPdf = styled.div`\n min-height: 500px;\n overflow: auto;\n margin-top: -150px;\n max-width: 790px;\n height: 73vh;\n #ResumeContainer {\n width: 98%;\n .react-pdf__Document {\n width: 100% !important;\n padding-right: 0;\n background: ${Theme.white} !important;\n\n .react-pdf__Page {\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.1) !important;\n background: ${Theme.white} !important;\n margin-bottom: 10px !important;\n\n .react-pdf__Page__textContent {\n box-shadow: none;\n }\n & .pdf-view {\n width: 100% !important;\n }\n\n .react-pdf__Page__canvas {\n top: 0 !important;\n width: 100% !important;\n height: 100% !important;\n overflow: auto;\n }\n &:first-child {\n top: 0 !important;\n }\n }\n .feDBFU .not-found {\n font-weight: 500;\n color: black;\n margin-top: -70px;\n }\n\n @media only screen and (max-width: 991px) {\n padding-left: 0px !important;\n padding-right: 0;\n max-width: 550px;\n\n .react-pdf__Page {\n &:first-child {\n top: 0 !important;\n margin-bottom: 0 !important;\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .react-pdf__Page {\n &:first-child {\n top: 0 !important;\n margin-bottom: 0 !important;\n }\n }\n }\n }\n }\n @media only screen and (min-width: 1920px) {\n max-width: 950px;\n }\n @media only screen and (max-width: 991px) {\n margin-top: -16px;\n min-height: 100px;\n height: 40vh;\n }\n @media only screen and (max-width: 767px) {\n min-height: 100px;\n height: 26vh;\n }\n`;\n\nconst Footer = styled.div`\n border: 1px solid ${Theme.gray7};\n bottom: 195px;\n background: ${Theme.white};\n box-shadow: ${Theme.boxShadow};\n position: fixed;\n min-height: 60px;\n z-index: 2;\n width: 24%;\n\n &.pdf-footer-height {\n bottom: 0px;\n }\n\n @media only screen and (max-width: 991px) {\n width: 100%;\n }\n`;\n","/* eslint-disable no-unused-expressions */\n/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable no-loop-func */\n/* eslint-disable array-callback-return */\n\nimport React, { useState, useEffect, useRef } from 'react';\n\nimport styled from 'styled-components';\nimport queryString from 'query-string';\nimport ReactTooltip from 'react-tooltip';\nimport Select from 'react-select';\nimport Modal from 'react-modal';\nimport axios from 'axios';\nimport $ from 'jquery';\nimport 'react-sweet-progress/lib/style.css';\nimport { Progress } from 'react-sweet-progress';\nimport { useDropzone } from 'react-dropzone';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { toast, ToastContainer } from 'react-toastify';\n\nimport Theme from '../../theme/Theme';\nimport BrandAssetsPreview from './BrandAssetsPreview';\nimport axiosInstance from '../../axios';\nimport {\n deleteDocument,\n getDocuments,\n getBrandAssetsDetail,\n getBrandAssetsSummary,\n updateBrandAssetStep,\n} from '../../api';\nimport {\n PATH_BRAND_ASSET,\n PATH_BRAND_ASSET_SUMMARY,\n PATH_CUSTOMER_DETAILS,\n PATH_UNAUTHROIZED_BRAND_ASSET_SUMMARY,\n PATH_UNAUTHORIZED_BRAND_ASSET,\n API_DOCUMENTS,\n brandSteps,\n} from '../../constants';\nimport {\n Button,\n CheckBox,\n HeaderDownloadFuntionality,\n PageLoader,\n UnauthorizedHeader,\n ModalBox,\n ActionDropDown,\n DropdownIndicator,\n} from '../../common';\nimport {\n GrayCheckIcon,\n OrangeCheckMark,\n ArrowRightBlackIcon,\n GrayInfoIcon,\n LeftArrowIcon,\n OrangeDownloadPdf,\n CloseIcon,\n TrashIcons,\n RedTrashIcon,\n WhiteArrowRight,\n FileCloud,\n} from '../../theme/images';\n\nconst viewOptions = [\n { value: 'brand-logo', label: 'Brand Logo' },\n { value: 'brand-guidelines', label: 'Brand Guidelines' },\n { value: 'font-files', label: 'Font Files' },\n { value: 'iconography', label: 'Iconography' },\n { value: 'additional-brand-material', label: 'Additional Brand Material' },\n];\n\nconst customStyles = {\n content: {\n maxWidth: '100% ',\n width: '100% ',\n height: '100%',\n inset: '0px',\n },\n};\n\nconst customStylesForAlert = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '474px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nexport default function BrandAssetUpload() {\n const history = useHistory();\n const { id, brandId } = useParams();\n const params = queryString.parse(history.location.search);\n const [selectedStep, setSelectedStep] = useState(null);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [isLoadingDocument, setIsLoadingDocument] = useState(false);\n const [documentData, setDocumentData] = useState([]);\n const [showDeleteMsg, setShowDeleteMsg] = useState(false);\n const [brandAssetData, setBrandAssetData] = useState([]);\n const [droppedFiles, setDroppedFiles] = useState([]);\n const [noImages, setNoImages] = useState(false);\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n const [isImgDeleted, setIsImgDeleted] = useState(false);\n const [showAssetPreview, setShowAssetPreview] = useState({\n selectedFile: null,\n show: false,\n documents: documentData,\n index: 0,\n });\n const [showBtns, setShowBtns] = useState({ upload: null, download: null });\n const [selectedDropdown, setSelectedDropdown] = useState({});\n const [downloadIds, setDownloadIds] = useState([]);\n const downloadOptions = [\n { value: 'current', label: 'Current asset type only' },\n { value: 'all', label: 'All asset types' },\n ];\n\n const [uploadCount, setUploadCount] = useState({\n 'brand-logo': '0 files uploaded',\n 'brand-guidelines': '0 files uploaded',\n 'font-files': '0 files uploaded',\n iconography: '0 files uploaded',\n 'additional-brand-material': '0 files uploaded',\n });\n\n const formats = {\n 'brand-logo': '.ai, .eps, .png, .jpg or .gif',\n 'brand-guidelines': '.jpg, .png, .pdf, .tif, .psd, .docx',\n 'font-files': '.ttf, .otf, or .woff',\n iconography: '.ai, .eps, .svg, .png, .jpg or .gif',\n 'additional-brand-material': 'any',\n };\n const selectedFiles = [];\n const ref = useRef(null);\n\n const handleClickOutside = (event) => {\n if (ref.current && !ref.current.contains(event.target)) {\n setShowDeleteMsg(false);\n }\n };\n\n const convertBlobToText = (value, type) => {\n const blb = new Blob([value], {\n type: 'application/json',\n });\n const reader = new FileReader();\n // This fires after the blob has been read/loaded.\n reader.addEventListener('loadend', (e) => {\n const text = e.target.result;\n text.replace('\"', '');\n if (type === 'error') {\n toast.error(text);\n } else toast.success(text);\n });\n // Start reading the blob as text.\n reader.readAsText(blb);\n };\n\n const getfromMimeType = (value) => {\n if (value) {\n return value.includes('image')\n ? value.split('image/')[1]\n : value.includes('font')\n ? value.split('font/')[1]\n : value.includes('application')\n ? value.split('application/')[1]\n : value;\n }\n return value;\n };\n\n const downloadImage = () => {\n let only1File = '';\n if (downloadIds && downloadIds.length === 1) {\n only1File =\n documentData && documentData.find((op) => op.id === downloadIds[0]);\n }\n setIsLoading({ loader: true, type: 'button' });\n const url = `${\n process.env.REACT_APP_BASE_APP_URL +\n process.env.REACT_APP_API_VERSION +\n API_DOCUMENTS\n }download/`;\n const method = 'POST';\n axios\n .request({\n url,\n method,\n headers: {\n Authorization: `Token ${localStorage.getItem('token')} `,\n },\n responseType:\n only1File.mime_type && only1File.mime_type.includes('pdf')\n ? 'arraybuffer'\n : 'blob',\n data:\n selectedDropdown.total === downloadIds.length\n ? { brand_assets_id: brandId }\n : { document_ids: downloadIds },\n })\n .then(({ data }) => {\n if (data.type === 'application/json') {\n convertBlobToText(data, 'succes');\n } else {\n const downloadUrl = window.URL.createObjectURL(new Blob([data]));\n const link = document.createElement('a');\n link.href = downloadUrl;\n if (downloadIds.length === 1) {\n const fileType =\n only1File &&\n only1File.original_name &&\n only1File.original_name.includes('.')\n ? only1File.original_name.split('.')[1]\n : getfromMimeType(only1File && only1File.mime_type);\n link.setAttribute(\n 'download',\n `${\n only1File.original_name &&\n only1File.original_name.split('.') &&\n only1File.original_name.split('.')[0]\n }.${fileType}`,\n ); // any other extension\n } else {\n link.setAttribute(\n 'download',\n `${selectedDropdown.company_name}.zip`,\n ); // any other extension\n }\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n setIsLoading({ loader: false, type: 'button' });\n })\n .catch((error) => {\n convertBlobToText(error.response.data, 'error');\n setIsLoading({ loader: false, type: 'button' });\n });\n };\n\n const setPreviewImageData = (response) => {\n if (showAssetPreview.selectedFile && response) {\n // for first element\n if (showAssetPreview.index === 0) {\n setShowAssetPreview({\n selectedFile: response[showAssetPreview.index],\n show: true,\n documents: response,\n index: showAssetPreview.index,\n });\n }\n\n // for last element\n if (showAssetPreview.index === response.length) {\n const index = showAssetPreview.index ? showAssetPreview.index - 1 : 0;\n setShowAssetPreview({\n selectedFile: response[index],\n show: true,\n documents: response,\n index,\n });\n }\n\n // for middle\n if (\n showAssetPreview.index >= 1 &&\n showAssetPreview.index < response.length\n ) {\n setShowAssetPreview({\n selectedFile: response[showAssetPreview.index],\n show: true,\n documents: response,\n index: showAssetPreview.index,\n });\n }\n }\n // if docuemnt list is empty\n if (!(response && response.length)) {\n setShowAssetPreview({\n selectedFile: null,\n show: false,\n documents: response,\n index: 0,\n });\n }\n setShowConfirmationModal(false);\n setIsLoadingDocument(false);\n };\n\n const handleDownloadOptions = (event) => {\n setIsLoading({ loader: true, type: 'page' });\n getDocuments(\n brandId,\n 'brandassets',\n event.value === 'all' ? '' : selectedStep.key,\n ).then((response) => {\n const ids = [];\n response && response.forEach((op) => ids.push(op.id));\n setDownloadIds(ids);\n setSelectedDropdown({ ...selectedDropdown, dropdownValue: event });\n setIsLoading({ loader: false, type: 'page' });\n });\n };\n\n const getDocumentList = (docType) => {\n setDroppedFiles([]);\n setIsLoading({ loader: true, type: 'page' });\n if (\n selectedDropdown &&\n selectedDropdown.dropdownValue &&\n selectedDropdown.dropdownValue.value === 'all'\n )\n handleDownloadOptions({ value: 'all', label: 'All asset types' });\n\n getDocuments(brandId, 'brandassets', docType).then((response) => {\n if (\n (selectedDropdown &&\n selectedDropdown.dropdownValue &&\n selectedDropdown.dropdownValue.event === 'current') ||\n (selectedDropdown && selectedDropdown.dropdownValue === undefined)\n ) {\n const ids = [];\n response && response.forEach((op) => ids.push(op.id));\n setDownloadIds(ids);\n }\n setDocumentData(response);\n setPreviewImageData(response);\n setIsLoading({ loader: false, type: 'page' });\n });\n };\n\n const getAssetsSummary = () => {\n const tempCounts = {};\n getBrandAssetsSummary(brandId).then((response) => {\n setSelectedDropdown({\n ...selectedDropdown,\n total: response && response.data && response.data.total_images,\n company_name: response && response.data && response.data.company_name,\n });\n if (response && response.data && response.data.steps) {\n Object.keys(response.data.steps).forEach((key) => {\n const tempKey = key.replaceAll('_', '-');\n tempCounts[tempKey] = response.data.steps[key];\n });\n setUploadCount(tempCounts);\n }\n });\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n useEffect(() => {\n setSelectedStep(brandSteps.find((op) => op.url === params.step));\n const docType =\n brandSteps.find((op) => op.url === params.step) &&\n brandSteps.find((op) => op.url === params.step).key;\n if (\n selectedDropdown &&\n selectedDropdown.dropdownValue &&\n selectedDropdown.dropdownValue === 'all'\n ) {\n handleDownloadOptions({ value: 'all', label: 'All asset types' });\n }\n getDocumentList(docType);\n getAssetsSummary();\n getBrandAssetsDetail(brandId).then((response) => {\n setBrandAssetData(response && response.data);\n if (response && response.data && response.data.is_completed)\n setShowBtns({ ...showBtns, upload: false });\n else setShowBtns({ ...showBtns, upload: true });\n if (\n response &&\n response.data &&\n response.data.steps &&\n response.data.steps[\n params.step === 'additional-brand-material'\n ? 'additional_brand_material'\n : params.step\n ] === 'none'\n ) {\n setNoImages(true);\n $('.checkboxes input:checkbox').prop('checked', true);\n } else {\n setNoImages(false);\n $('.checkboxes input:checkbox').prop('checked', false);\n }\n });\n }, [params.step]);\n\n const destructureselectedFiles = () => {\n const formData = [];\n for (const files of selectedFiles) {\n for (const item of files) {\n formData.push({\n original_name: item.name,\n entity_id: brandId,\n entity_type: 'brandassets',\n size: item.size,\n mime_type: item.type\n ? item.type\n : params.step === 'font-files'\n ? `font/${item.name.split('.')[1]}`\n : item.name.split('.')[1],\n status: 'requested',\n document_type: selectedStep && selectedStep.key,\n });\n }\n }\n return formData;\n };\n const createMetaData = (name) => {\n for (const fileList of selectedFiles) {\n for (const item of fileList) {\n if (name === item.name) {\n return item;\n }\n }\n }\n return null;\n };\n\n const createDocument = (files) => {\n setIsLoading({ loader: true, type: 'page' });\n const documentError = { error: false, message: '' };\n if (files && files.length) setIsLoading({ loader: true, type: 'button' });\n const formData = destructureselectedFiles();\n const matchedNameArray = documentData.filter((object1) => {\n return formData.some((object2) => {\n return object1.original_name === object2.original_name;\n });\n });\n const filterFormData = formData.filter((object1) => {\n return !matchedNameArray.some((object2) => {\n return object1.original_name === object2.original_name;\n });\n });\n\n matchedNameArray.map((obj) => {\n const getmatchedName = obj.original_name;\n if (getmatchedName) {\n setIsLoading({ loader: false, type: 'button' });\n toast.error(`The file \"${getmatchedName}\" already exists.`);\n }\n });\n\n if (filterFormData && filterFormData.length > 0) {\n axiosInstance\n .post(API_DOCUMENTS, filterFormData, {\n onUploadProgress: () => {\n files &&\n files.map((file) => {\n if (file.progress > 0) file.progress = 50; // (data.loaded / data.total) * 100;\n });\n setDroppedFiles(files);\n },\n })\n .then((res) => {\n for (const detail of res.data) {\n if (detail && detail.presigned_url !== '') {\n const request = {\n meta: createMetaData(detail.original_name),\n url: detail.presigned_url,\n headers: {\n 'Content-type': detail.mime_type,\n },\n };\n if (detail && detail.error) {\n documentError.error = true;\n documentError.message = detail.error.mime_type\n ? detail.error.mime_type[0]\n : detail.error;\n const validFiles = files.filter((file) => {\n file.progress = 0;\n return detail.original_name !== file.original_name;\n });\n setDroppedFiles(validFiles);\n }\n axios\n .put(request.url, request.meta, { headers: request.headers })\n .then(() => {\n axiosInstance\n .patch(\n `${API_DOCUMENTS + detail.id}/`,\n {\n status: 'available',\n },\n {\n onUploadProgress: (data) => {\n files &&\n files.map((file) => {\n if (file.progress > 0)\n file.progress = Math.round(\n (100 * data.loaded) / data.total,\n );\n });\n setDroppedFiles(files);\n },\n },\n )\n .then((r) => {\n const newFiles = documentData || [];\n files &&\n files.map((file) => {\n file.progress = 0;\n });\n setDroppedFiles(files);\n newFiles.unshift(r.data);\n setDocumentData(newFiles);\n setDroppedFiles([]);\n setUploadCount({\n ...uploadCount,\n [params.step]:\n newFiles.length === 1\n ? '1 file uploaded'\n : `${newFiles.length} files uploaded`,\n });\n if (\n brandAssetData.is_completed &&\n (params.step === 'additional-brand-material' ||\n params.step === 'iconography') &&\n brandAssetData.steps[\n selectedStep && selectedStep.key\n ] === 'none'\n ) {\n updateBrandAssetStep(brandId, {\n steps: {\n ...brandAssetData.steps,\n [selectedStep && selectedStep.key]: 'completed',\n },\n });\n }\n })\n .catch((error) => {\n toast.error(\n error &&\n error.response &&\n error.response.data &&\n error.response.data.detail,\n );\n setIsLoading({ loader: false, type: 'page' });\n });\n setIsLoading({ loader: false, type: 'button' });\n });\n }\n }\n if (documentError && documentError.error) {\n toast.error(documentError && documentError.message);\n setIsLoading({ loader: false, type: 'button' });\n }\n return res;\n })\n .catch(() => {\n toast.error(\n
    \n The person who asked you to complete this section has changed who\n has access.\n
    Please reach out to onboarding@buyboxexperts.com if you\n have any questions.\n
    ,\n );\n setDroppedFiles([]);\n setIsLoading({ loader: false, type: 'page' });\n });\n } else {\n setDroppedFiles([]);\n }\n };\n const { getRootProps, getInputProps } = useDropzone({\n // accept: params && params.step && formats && formats[params.step],\n onDrop: (acceptedFiles) => {\n const files = [];\n selectedFiles.push(acceptedFiles);\n acceptedFiles.map((file) => {\n files.push({ file, progress: 1 });\n });\n setDroppedFiles(files);\n createDocument(files);\n },\n });\n\n const redirectTo = (value, step = null, type) => {\n setIsLoading({ loader: true, type: 'button' });\n updateBrandAssetStep(brandId, {\n steps: {\n ...brandAssetData.steps,\n [selectedStep && selectedStep.key]: noImages ? 'none' : value,\n },\n last_visited_step: selectedStep && selectedStep.skip,\n }).then((response) => {\n if (response && response.status === 200) {\n if (\n type === 'brandmaterial' &&\n params &&\n params.step === 'additional-brand-material'\n ) {\n setShowBtns({ upload: false, download: false });\n history.push({\n pathname: history.location.pathname.includes(\n '/assigned-brand-asset/',\n )\n ? PATH_UNAUTHORIZED_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n )\n : PATH_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n ),\n search: `step=additional-brand-material`,\n });\n } else if (\n type !== 'lhs' &&\n selectedStep &&\n selectedStep.skip === 'summary'\n ) {\n history.push(\n history.location.pathname.includes('/assigned-brand-asset/')\n ? PATH_UNAUTHROIZED_BRAND_ASSET_SUMMARY.replace(\n ':id',\n id,\n ).replace(':brandId', brandId)\n : PATH_BRAND_ASSET_SUMMARY.replace(':id', id).replace(\n ':brandId',\n brandId,\n ),\n );\n } else\n history.push({\n pathname: history.location.pathname.includes(\n '/assigned-brand-asset/',\n )\n ? PATH_UNAUTHORIZED_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n )\n : PATH_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n ),\n search: step\n ? `step=${step}`\n : `step=${selectedStep && selectedStep.skip}`,\n });\n\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n const deleteImage = (imageId) => {\n setIsLoading({ loader: true, type: 'page' });\n setIsLoadingDocument(true);\n deleteDocument(imageId).then((res) => {\n if (res && res.status === 204) {\n getDocumentList(selectedStep && selectedStep.key);\n getAssetsSummary();\n setShowDeleteMsg(false);\n setIsImgDeleted(true);\n }\n if (res && res.status === 401) {\n setIsLoading({ loader: false, type: 'page' });\n toast.error('Access Denied, Unable to upload.');\n }\n });\n };\n\n const saveLastStep = () => {\n updateBrandAssetStep(brandId, { last_visited_step: selectedStep.url });\n history.push(\n PATH_CUSTOMER_DETAILS.replace(':id', id).replace(':brandId', brandId),\n );\n };\n\n const handleDownloadIds = (event) => {\n const ids = [...downloadIds];\n if (event.target.checked) {\n const index = ids.indexOf(event.target.name);\n if (index === -1) ids.push(event.target.name);\n }\n if (!event.target.checked) {\n const index = ids.indexOf(event.target.name);\n if (index > -1) ids.splice(index, 1);\n }\n setDownloadIds(ids);\n };\n\n const navigateStep = (item) => {\n if (\n documentData &&\n documentData.length &&\n (params && params.step) !== item.url\n )\n redirectTo('completed', item.url, 'lhs');\n else\n history.push({\n pathname: history.location.pathname.includes('/assigned-brand-asset/')\n ? PATH_UNAUTHORIZED_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n )\n : PATH_BRAND_ASSET.replace(':id', id).replace(':brandId', brandId),\n search: `step=${item.url}`,\n });\n };\n\n const onClickOfObject = (file, i) => {\n // const result = documentData.filter((item) =>\n // item.mime_type.includes('image'),\n // );\n // setImagesAssets(result);\n setIsImgDeleted(false);\n setShowAssetPreview({\n selectedFile: file,\n show: true,\n documents: documentData,\n index: i,\n });\n };\n\n const showDocuments = () => {\n return (\n
      \n {droppedFiles &&\n droppedFiles.length > 0 &&\n droppedFiles.map((file) => (\n
    • \n \n \n {/* \n */}\n \n
      \n
      \n Uploading file\n
      {file.file.name}
      \n
      \n {file && file.progress && file.progress > 0 && (\n
      \n file.progress\n \n
      \n )}\n
      \n
      \n \n
      \n
    • \n ))}\n\n {documentData &&\n documentData.length > 0 &&\n documentData.map((file, i) => (\n
    • \n \n \n {showBtns.download ? (\n <>\n op === file.id,\n )}\n onChange={(event) => handleDownloadIds(event)}\n />\n {' '}\n \n ) : (\n ''\n )}\n \n \n
      \n
      \n {file && file.original_name}\n
      \n
      \n \n {/* FOR Object tag clickable */}\n {\n brandAssetData &&\n brandAssetData.is_completed &&\n (showBtns.upload || showBtns.download)\n ? ''\n : onClickOfObject(file, i);\n }}\n role=\"presentation\"\n />\n {showDeleteMsg[file.id] ?
      : ''}\n\n {brandAssetData &&\n brandAssetData.is_completed &&\n (showBtns.download || showBtns.upload) ? (\n ''\n ) : (\n setShowDeleteMsg({ [file.id]: true })}>\n \n
      \n )}\n\n {showDeleteMsg[file.id] ? (\n {\n deleteImage(file.id);\n }}\n role=\"presentation\">\n {' '}\n \n Confirm Delete\n \n ) : (\n ''\n )}\n
      \n \n
      \n
    • \n ))}\n
    \n );\n };\n\n return (\n <>\n \n {brandAssetData && brandAssetData.is_completed ? (\n \n
    \n
    \n {' '}\n
    \n {' '}\n
    Brand Assets
    \n
    \n
    \n
      \n \n setShowBtns({ download: false, upload: true })\n }>\n \n Upload\n \n
    • \n \n
    • \n {\n setShowBtns({ download: true, upload: false });\n }}>\n \n Download\n \n
    • \n \n
    • \n
    • \n {\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', id));\n }}\n role=\"presentation\"\n />\n
    • \n
    \n
    \n
    \n
    \n
    \n ) : (\n <>\n {history.location.pathname.includes('/assigned-brand-asset/') ? (\n \n ) : (\n \n {' '}\n
    \n {' '}\n
    \n
    \n saveLastStep()}>\n \n Back to Dashboard\n
    \n
    \n
    \n {' '}\n
    \n )}\n \n )}\n\n \n
    Your BrandSteps
    \n
      \n {brandSteps.map((item) => (\n navigateStep(item)}>\n {/* if step complete show this and add active class to item.label and file upload */}\n {item &&\n item.url &&\n uploadCount &&\n uploadCount[item.url] &&\n uploadCount[item.url] &&\n !uploadCount[item.url].includes('Skipped') &&\n uploadCount[item.url] !== '0 files uploaded' ? (\n \n ) : (\n \"check\"\n )}\n
      \n \n {item.label}\n
      \n \n {item && item.url && uploadCount && uploadCount[item.url]}{' '}\n {/* files uploaded */}\n \n \n {item.url === params.step ? (\n \n ) : (\n ''\n )}\n
      \n \n ))}\n
    \n \n\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n \n \n op.value === params.step)}\n onChange={(event) => {\n history.push({\n pathname: history.location.pathname.includes(\n '/assigned-brand-asset/',\n )\n ? PATH_UNAUTHORIZED_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n )\n : PATH_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n ),\n search: `step=${event.value}`,\n });\n }}\n components={{ DropdownIndicator }}\n />\n \n
    \n
    \n
    \n
    \n Part {selectedStep && selectedStep.step}/5\n
    \n\n

    \n {selectedStep && selectedStep.label}\n

    \n

    \n {selectedStep && selectedStep.subtitle}\n

    \n
    \n {selectedStep && selectedStep.format ? (\n <>\n Preferred format: {selectedStep.format}{' '}\n \n \n \n All Accepted Formats\n \n \n {formats && params.step && formats[params.step]}\n

    \n
    \n \n ) : (\n ''\n )}\n
    \n\n \n {(documentData && documentData.length) ||\n (droppedFiles && droppedFiles.length) ? (\n
    \n {showBtns.upload ||\n history.location.pathname.includes(\n '/assigned-brand-asset/',\n ) ? (\n \n \n\n
    \n \n
    \n Drag and drop your files here or{' '}\n browse \n
    \n
    \n ) : (\n ''\n )}\n\n {showDocuments()}\n \n ) : (\n \n {showBtns.upload ||\n history.location.pathname.includes(\n '/assigned-brand-asset/',\n ) ? (\n \n \n\n
    \n \n
    \n Drag and drop your files here or{' '}\n browse \n
    \n
    \n ) : (\n ''\n )}\n\n {showDocuments()}\n \n )}\n {params &&\n (params.step === 'additional-brand-material' ||\n params.step === 'iconography') &&\n documentData &&\n documentData.length === 0 ? (\n \n \n {params.step === 'iconography'\n ? 'We don’t have any special icons'\n : 'We don’t have any other branding materials'}\n {\n if (brandAssetData && brandAssetData.is_completed) {\n if (event.target.checked)\n redirectTo('none', '', 'brandmaterial');\n if (\n !event.target.checked &&\n documentData &&\n documentData.length === 0\n ) {\n setShowBtns({ upload: true, download: false });\n }\n }\n\n setNoImages(!noImages);\n }}\n />\n \n \n \n ) : (\n ''\n )}\n \n
    \n
    \n \n {showBtns.download ? (\n handleDownloadOptions(event)}\n components={{ DropdownIndicator }}\n />\n ) : (\n ''\n )}\n \n
    \n \n \n \n )}\n <>\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n {showBtns.download ||\n showBtns.upload ||\n !(brandAssetData && brandAssetData.is_completed) ? (\n \n
    \n
    \n
    \n {brandAssetData && brandAssetData.is_completed ? (\n \n {showBtns.download\n ? `${\n downloadIds && downloadIds.length\n } files selected`\n : ''}\n \n ) : (\n redirectTo('skipped', '', '')}\n role=\"presentation\">\n Skip this step\n \n )}\n\n {showBtns.download ? (\n <>\n downloadImage()}\n className=\"btn-primary\"\n disabled={\n isLoading.loader ||\n (downloadIds && downloadIds.length === 0)\n }>\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Download Selected'\n )}\n \n\n {\n getDocumentList(selectedStep && selectedStep.key);\n setShowBtns({ download: false, upload: false });\n setIsLoading({ loader: false, type: 'button' });\n }}>\n Cancel\n \n \n ) : (\n \n showBtns.upload &&\n brandAssetData &&\n brandAssetData.is_completed\n ? (setShowBtns({\n download: false,\n upload: false,\n }),\n getDocumentList(\n selectedStep && selectedStep.key,\n ))\n : redirectTo('completed', '', '')\n }>\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n <>\n {brandAssetData && brandAssetData.is_completed ? (\n <>\n {showBtns.upload\n ? 'Finish uploading'\n : 'Download Selected'}\n \n ) : (\n <>\n Next Step\n {' '}\n \n )}\n \n )}\n \n )}\n
    \n
    \n
    \n
    \n ) : (\n ''\n )}\n \n )}\n \n\n \n \n \n \n \n\n setShowConfirmationModal(false)}\n contentLabel=\"Edit modal\">\n \n
    \n
    \n Are you sure you want to delete this asset?\n
    \n
    \n {\n deleteImage(\n showAssetPreview &&\n showAssetPreview.selectedFile &&\n showAssetPreview.selectedFile.id,\n );\n }}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\">\n {isLoadingDocument ? (\n \n ) : (\n 'Yes'\n )}\n \n\n {\n setShowConfirmationModal(false);\n }}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \">\n Cancel\n \n\n {/* */}\n
    \n
    \n
    \n \n \n );\n}\n\nconst BrandAssetBody = styled.div`\n padding-left: 400px;\n padding-top: ${(props) => (props.completed ? '60px' : '170px')};\n .gray-info-icon {\n vertical-align: bottom;\n margin-left: 3px;\n }\n .gray-normal-text {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n }\n .steps-additional-asset {\n list-style-type: none;\n padding: 0;\n margin: 10px 0;\n li {\n display: inline-block;\n margin-right: 10px;\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n\n .forward-step-arrow {\n width: 17px;\n vertical-align: middle;\n }\n &.active {\n color: #ff4817;\n font-weight: 600;\n }\n &.step-completed {\n color: ${Theme.black};\n font-weight: 600;\n }\n }\n }\n .Image-container {\n list-style-type: none;\n padding: 0;\n margin: 0;\n display: contents;\n\n li {\n display: inline-block;\n margin-right: 20px;\n vertical-align: text-bottom;\n\n .remove-box {\n display: none;\n }\n .uploading-file-name {\n text-align: center;\n padding-top: 50px;\n color: ${Theme.black};\n\n .file-path {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 80px;\n margin: auto;\n }\n }\n\n &:hover {\n .remove-box {\n background-color: ${Theme.white};\n border: 1px solid ${Theme.gray4};\n border-radius: 6px;\n width: 40px;\n height: 40px;\n position: absolute;\n bottom: 3px;\n right: 3px;\n padding: 9px;\n display: block;\n .trash-icon {\n width: 22px;\n }\n }\n }\n }\n }\n @media only screen and (max-width: 991px) {\n padding-left: 95px;\n padding-right: 95px;\n margin-top: 80px;\n }\n @media only screen and (max-width: 767px) {\n padding-left: 15px;\n padding-right: 15px;\n margin-top: 80px;\n\n .Image-container {\n li {\n margin-right: 15px;\n }\n }\n }\n`;\n\nconst BrandAssetSideBar = styled.div`\n background-color: ${Theme.gray8};\n border-radius: 15px;\n max-width: 340px;\n position: fixed;\n top: ${(props) =>\n props.completed\n ? '110px'\n : props.history.includes('/assigned-brand-asset/')\n ? '80px'\n : '145px'};\n left: 20px;\n padding: 20px;\n width: 100%;\n height: 70%;\n bottom: 90px;\n\n .asset-check-list {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n margin-bottom: 15px;\n\n .check-list-item {\n float: left;\n word-break: break-all;\n width: 76%;\n .check-list-label {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n padding-bottom: 2px;\n font-family: ${Theme.baseFontFamily};\n &.active {\n font-family: ${Theme.titleFontFamily};\n }\n }\n .check-list-file-uploaded {\n font-size: ${Theme.extraNormal};\n color: ${Theme.gray40};\n &.active {\n color: ${Theme.orange};\n }\n }\n }\n .checked-gray {\n overflow-wrap: break-word;\n text-align: left;\n float: left;\n width: 16px;\n margin-right: 10px;\n margin-top: 12px;\n }\n .active-arrow-icon {\n width: 20px;\n float: right;\n margin-top: 11px;\n }\n }\n }\n`;\nconst BackToStep = styled.div`\n position: fixed;\n background-color: ${Theme.white};\n z-index: 3;\n top: 70px;\n padding: 22px 0px 18px 0px;\n width: 100%;\n border-bottom: 1px solid ${Theme.gray5};\n\n .skip-steps {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n cursor: pointer;\n }\n`;\n\nconst BrandAssetFooter = styled.div`\n border: 1px solid ${Theme.gray7};\n bottom: 0px;\n background: ${Theme.white};\n position: fixed;\n min-height: 60px;\n z-index: 2;\n width: 100%;\n padding: 8px 0;\n\n .skip-step {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n margin-right: 20px;\n }\n @media only screen and (max-width: 330px) {\n .skip-step {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n margin-right: 10px;\n }\n }\n`;\n\nconst DropDownBrandAsset = styled.div`\n margin-top: 50px;\n\n .css-yk16xz-control {\n background: ${Theme.gray8};\n border: none;\n }\n .css-1okebmr-indicatorSeparator {\n display: none;\n }\n`;\n\nconst CheckSelectImage = styled.div`\n background-color: ${Theme.gray8};\n border-radius: 8px;\n width: 170px;\n height: 170px;\n position: relative;\n\n .image-thumbnail {\n /* max-height: 100%;\n max-width: 100%;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: auto; */\n width: 170px;\n height: 170px;\n border-radius: 8px;\n }\n .unsupport-file-name {\n padding: 80px 0;\n color: ${Theme.black};\n\n .file-path {\n color: ${Theme.black};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 145px;\n vertical-align: middle;\n position: relative;\n margin: 0 auto;\n text-align: center;\n }\n }\n\n .blur-bg {\n background-color: rgba(46, 56, 77, 0.6);\n width: 170px;\n height: 170px;\n border-radius: 8px;\n position: absolute;\n top: 0;\n }\n .selected-img {\n position: absolute;\n top: 5px;\n left: 5px;\n }\n .confirm-delete-cross {\n position: absolute;\n width: 12px;\n top: 7px;\n }\n\n .delete-msg {\n border-radius: 6px;\n box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.1);\n background-color: ${Theme.white};\n max-width: 160px;\n color: ${Theme.red};\n font-size: 16px;\n text-align: center;\n position: absolute;\n top: 62px;\n padding: 16px 13px;\n width: 100%;\n left: 6px;\n font-weight: 600;\n .red-trash-icon {\n width: 18px;\n vertical-align: text-top;\n margin-right: 6px;\n }\n }\n\n .clickable {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n }\n\n @media only screen and (max-width: 767px) {\n width: 160px;\n height: 160px;\n .image-thumbnail {\n width: 160px;\n height: 160px;\n }\n .blur-bg {\n width: 160px;\n height: 160px;\n }\n .confirm-delete-cross {\n right: 4px;\n top: 4px;\n }\n .delete-msg {\n max-width: 150px;\n top: 62px;\n padding: 10px;\n width: 100%;\n left: 6px;\n font-weight: 600;\n }\n }\n`;\n\nconst DragDropImg = styled.div`\n padding-bottom: 120px;\n max-height: 70vh;\n overflow: auto;\n section {\n &.thumbnail-dropzone {\n display: flex;\n flex-flow: wrap;\n\n .dropzone {\n width: 170px;\n height: 170px;\n border: 1px dotted ${Theme.gray40};\n border-radius: 4px;\n padding: 50px 22px 0 20px;\n text-align: center;\n margin-right: 20px;\n cursor: pointer;\n }\n .thumbnail-select-files {\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n text-align: center;\n\n span {\n color: ${Theme.orange};\n }\n }\n }\n &.drag-drop {\n .dropzone {\n max-width: 550px;\n height: 170px;\n border: 1px dotted ${Theme.gray40};\n border-radius: 4px;\n padding: 50px 22px 0 20px;\n text-align: center;\n margin-right: 20px;\n cursor: pointer;\n }\n .select-files {\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n text-align: center;\n\n span {\n color: ${Theme.orange};\n }\n }\n }\n }\n @media only screen and (max-width: 767px) {\n section {\n &.thumbnail-dropzone {\n .dropzone {\n width: 160px;\n height: 160px;\n margin-right: 15px;\n }\n }\n }\n }\n @media only screen and (min-width: 1920px) {\n max-height: 100vh;\n }\n`;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport { useDispatch } from 'react-redux';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport { showBrandAsset } from '../../store/actions/customerState';\nimport { getBrandAssetsSummary, updateBrandAssetStep } from '../../api';\nimport { GrayClockIcon, OrangeCheckMark } from '../../theme/images';\nimport { OnBoardingBody, GreyCard, Button, PageLoader } from '../../common';\nimport {\n PATH_BRAND_ASSET,\n PATH_CUSTOMER_DETAILS,\n PATH_THANKS,\n PATH_UNAUTHORIZED_BRAND_ASSET,\n brandSteps,\n} from '../../constants';\n\nexport default function BrandAssetSummary() {\n const dispatch = useDispatch();\n const { id, brandId } = useParams();\n const history = useHistory();\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [data, setData] = useState({});\n const [showDashboard, setShowDashboard] = useState(false);\n\n useEffect(() => {\n getBrandAssetsSummary(brandId).then((response) => {\n if (\n response &&\n response.data &&\n Object.keys(response.data) &&\n Object.keys(response.data).length > 0\n ) {\n setData(response && response.data);\n const checkSkipped = brandSteps.filter(\n (item) =>\n response.data[item.key] === 'Skipped' ||\n response.data[item.key] === '0 files uploaded',\n );\n\n if (history.location.pathname.includes('/assigned-brand-summary/')) {\n if (checkSkipped && checkSkipped.length > 0) {\n setShowDashboard(true);\n } else setShowDashboard(false);\n }\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n }, [brandId]);\n\n const redirectTo = () => {\n if (history.location.pathname.includes('/assigned-brand-summary/')) {\n history.push({\n pathname: PATH_THANKS,\n search: `name=${data && data.user}`,\n });\n } else if (data && data.is_completed) {\n dispatch(showBrandAsset(true));\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', id));\n updateBrandAssetStep(brandId, {\n last_visited_step: 'summary',\n });\n } else {\n updateBrandAssetStep(brandId, {\n last_visited_step: 'summary',\n });\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', id));\n }\n };\n\n return (\n \n
    \n

    Brand Assets Summary

    \n\n
    \n Thanks! Below is a summary of everything that’s been submitted\n regarding brand assets.\n
    \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n \n {brandSteps.map((item) => (\n
    \n {item.label}\n {data &&\n data.steps &&\n data.steps[item.key] &&\n data.steps[item.key] === 'Skipped' ? (\n
    \n \n Skipped\n
    \n ) : data &&\n data.steps &&\n data.steps[item.key] &&\n data.steps[item.key] === '0 files uploaded' ? (\n
    \n \n {data && data.steps[item.key]}\n
    \n ) : (\n
    \n \n {data && data.steps[item.key]}\n
    \n )}\n \n history.push({\n pathname: history.location.pathname.includes(\n '/assigned-brand-summary/',\n )\n ? PATH_UNAUTHORIZED_BRAND_ASSET.replace(\n ':id',\n id,\n ).replace(':brandId', brandId)\n : PATH_BRAND_ASSET.replace(':id', id).replace(\n ':brandId',\n brandId,\n ),\n search: `step=${item.url}`,\n })\n }>\n {' '}\n View\n
    \n
    \n ))}\n \n {showDashboard ? (\n ''\n ) : (\n redirectTo()}>\n {history.location.pathname.includes('/assigned-brand-summary/')\n ? 'Submit'\n : 'Back to Dashboard'}\n \n )}\n \n )}\n \n
    \n );\n}\n","/* eslint-disable react/jsx-props-no-spreading */\n/* eslint no-restricted-syntax: off */\n/* eslint no-nested-ternary:off */\n\nimport React, { useState, useEffect } from 'react';\n\nimport { useDropzone } from 'react-dropzone';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Theme from '../../theme/Theme';\nimport {\n TrashIcons,\n RedTrashIcon,\n CloseIcon,\n FileCloud,\n} from '../../theme/images';\nimport { CheckBox } from '../../common';\n\nexport default function DragDrop({ setSelectedFiles, fileLength }) {\n const [files, setFiles] = useState([]);\n const [showDeleteMsg, setShowDeleteMsg] = useState(false);\n // const [currentRejectedFiles, setRejectedFiles] = useState([]);\n\n const img = {\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '8px',\n backgroundColor: '#f4f6fc',\n };\n\n useEffect(() => {\n if (fileLength === 0) {\n setSelectedFiles([]);\n setFiles([]);\n }\n }, [fileLength, setSelectedFiles]);\n\n const removeFile = (file) => {\n const newFiles = [...files];\n for (const fileList of newFiles) {\n for (const item of fileList) {\n if (file.name === item.name) {\n if (fileList.length === 1) {\n newFiles.splice(newFiles.indexOf(fileList), 1);\n } else {\n fileList.splice(fileList.indexOf(item), 1);\n }\n }\n }\n }\n setFiles(newFiles);\n setSelectedFiles(newFiles);\n setShowDeleteMsg({ [file.name]: false });\n };\n\n // const removeAll = () => {\n // setFiles([]);\n // setSelectedFiles([]);\n // };\n\n const showThumbnail = (thumbnail) => {\n return <>{thumbnail};\n };\n const Previews = () => {\n const { getRootProps, getInputProps } = useDropzone({\n accept: 'image/*',\n // : 'image/*, video/*, .pdf',\n onDrop: (acceptedFiles, rejectedFiles) => {\n // if (rejectedFiles) {\n // setRejectedFiles(rejectedFiles);\n // }\n setSelectedFiles([...files, acceptedFiles]);\n if (rejectedFiles.length === 0) {\n setFiles((prevFiles) => [\n ...prevFiles,\n acceptedFiles.map((file) =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n }),\n ),\n ]);\n }\n },\n });\n\n const generateFileType = (type, preview) => {\n if (type.includes('image')) {\n return \"img\";\n }\n return '';\n };\n\n const thumbnail = files.map((item) => (\n \n
      \n {item.map((file) => (\n
    • \n \n \n \n \n \n {' '}\n {generateFileType(file.type, file.preview)}\n {showDeleteMsg[file.name] ? (\n
      \n ) : (\n ''\n )}\n setShowDeleteMsg({ [file.name]: true })}>\n \n
      \n {showDeleteMsg[file.name] ? (\n {\n removeFile(file);\n }}\n role=\"presentation\">\n {' '}\n \n Confirm Delete\n {\n e.stopPropagation();\n setShowDeleteMsg({ [file.name]: false });\n }}\n role=\"presentation\"\n />\n \n ) : (\n ''\n )}\n
      \n \n
      \n
    • \n ))}\n
    \n
    \n ));\n return (\n \n
    \n
    \n \n \n \"file-cloud\"\n
    \n Drag and drop your files here or browse \n
    \n \n {showThumbnail(thumbnail)}\n\n {/* <>\n {files.length > 0 && (\n
    \n
    \n \n
    \n
    \n )}\n */}\n\n {/* {currentRejectedFiles.length ? (\n
    File size is larger than 26 Mb
    \n ) : (\n ''\n )} */}\n
    \n
    \n );\n };\n return ;\n}\n\nDragDrop.defaultProps = {\n setSelectedFiles: () => {},\n};\n\nDragDrop.propTypes = {\n setSelectedFiles: PropTypes.func,\n fileLength: PropTypes.number.isRequired,\n};\n\nconst CheckSelectImage = styled.div`\n background-color: ${Theme.gray8};\n border-radius: 8px;\n width: 180px;\n height: 180px;\n position: relative;\n\n .image-thumbnail {\n width: 180px;\n height: 180px;\n border-radius: 8px;\n }\n .blur-bg {\n background-color: rgba(46, 56, 77, 0.6);\n width: 180px;\n height: 180px;\n border-radius: 8px;\n position: absolute;\n top: 0;\n }\n .selected-img {\n position: absolute;\n top: 5px;\n left: 5px;\n }\n .confirm-delete-cross {\n position: absolute;\n width: 12px;\n top: 7px;\n }\n\n .delete-msg {\n border-radius: 6px;\n box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.1);\n background-color: ${Theme.white};\n max-width: 170px;\n color: ${Theme.red};\n font-size: 16px;\n text-align: center;\n position: absolute;\n top: 62px;\n padding: 16px;\n width: 100%;\n left: 6px;\n font-weight: 600;\n\n .red-trash-icon {\n width: 18px;\n vertical-align: text-top;\n margin-right: 6px;\n }\n }\n`;\n\nconst DragDropImg = styled.div`\n section {\n display: flex;\n flex-flow: wrap;\n cursor: pointer;\n .dropzone {\n min-height: 170px;\n max-width: 30%;\n border: 1px dotted ${Theme.gray40};\n border-radius: 4px;\n }\n .select-files {\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n text-align: center;\n margin-top: 30px;\n\n span {\n color: ${Theme.orange};\n }\n }\n }\n`;\n","import styled from 'styled-components';\nimport Theme from '../../../theme/Theme';\n\nexport const CustomerListPage = styled.div`\n background-color: ${Theme.gray6};\n padding-top: 60px;\n height: 100%;\n\n .main-body-container {\n width: 96%;\n margin: 0 auto;\n height: 100%;\n // overflow: scroll;\n\n .table-container {\n height: calc(100% - 160px);\n /* min-height: 578px; */\n overflow-y: auto;\n overflow-x: hidden;\n border-radius: 15px;\n top: 155px;\n width: 71%;\n position: fixed;\n padding: 15px;\n background: ${Theme.white};\n\n .fixed-customer-header {\n position: fixed;\n max-width: 69%;\n width: 100%;\n background-color: ${Theme.white};\n z-index: 3;\n top: 153px;\n padding-top: 5px;\n }\n }\n }\n\n .customer-list-table-header {\n th {\n padding-right: 10px;\n }\n }\n .dropdown-select-all-notes {\n background-color: rgba(224, 231, 255, 0.2);\n border: 1px solid ${Theme.gray2};\n border-radius: 20px;\n width: 100%;\n height: 40px;\n color: ${Theme.black};\n padding: 11px 2px 0 14px;\n margin-top: 10px;\n margin-bottom: 14px;\n cursor: pointer;\n span.selected-list {\n position: fixed;\n color: ${Theme.black};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 9%;\n margin-left: 4px;\n }\n }\n .dropdown-notes-filter {\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n padding: 5px 0 5px 0;\n position: absolute;\n z-index: 99999;\n top: 57px;\n width: 94%;\n color: ${Theme.black};\n text-align: left;\n &.hide {\n display: none;\n }\n &.show {\n display: block;\n }\n /* .notes-option {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n padding: 9px 15px 9px 15px;\n cursor: pointer;\n &.on-hover1 {\n &.hide {\n display: none;\n }\n }\n &.on-hover1 {\n &.hide {\n display: none;\n }\n &.show {\n .sub-menu-dropdown {\n display: block;\n background-color: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 5px 15px 0 rgba(68, 68, 79, 0.4);\n max-width: 230px;\n padding: 5px 0 5px 0;\n position: absolute;\n z-index: 99999;\n top: 122px;\n width: 100%;\n left: -101%;\n color: ${Theme.black};\n text-align: left;\n .notes-option {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n padding: 9px 15px 9px 15px;\n display: block;\n }\n }\n }\n }\n &.submenu-4 {\n &.show {\n .sub-menu-dropdown {\n top: 155px;\n }\n }\n }\n &.submenu-5 {\n &.show {\n .sub-menu-dropdown {\n top: 186px;\n }\n }\n }\n &.submenu-6 {\n &.show {\n .sub-menu-dropdown {\n top: 225px;\n }\n }\n }\n }\n &:hover {\n background: #deebff;\n }\n &.active {\n background: #2684ff;\n color: ${Theme.white};\n }\n &.selected {\n background: #2684ff;\n }\n }\n } */\n }\n\n .sticky-header {\n top: 130px;\n left: 353px;\n right: 0;\n background: white;\n height: 40px;\n z-index: 1;\n display: inline;\n }\n\n .customer-list-header-sticky {\n left: 64px;\n right: 0;\n z-index: 2;\n background-color: ${Theme.white};\n width: 100%;\n }\n .table-part {\n overflow: auto;\n height: calc(100vh - 250px);\n margin-bottom: 40px;\n\n ::-webkit-scrollbar {\n width: 5px;\n height: 4px;\n }\n ::-webkit-scrollbar-track {\n background-color: ${Theme.gray1};\n }\n ::-webkit-scrollbar-thumb {\n background-color: ${Theme.gray11};\n }\n }\n .customer-list-header {\n margin: 10px 0;\n &.w-80 {\n float: right;\n width: 94%;\n }\n }\n .footer-sticky {\n position: fixed;\n width: 71%;\n bottom: 0;\n background: white;\n margin: 0 -14px;\n border-radius: 15px;\n padding: 0 15px;\n z-index: 3;\n }\n @media only screen and (min-width: 2500px) {\n .conversion {\n padding-left: 3%;\n }\n }\n @media only screen and (min-width: 2000px) {\n .revenue {\n padding-left: 5.5%;\n }\n .units_sold {\n padding-left: 4.5%;\n }\n .traffic {\n padding-left: 3.4%;\n }\n .conversion {\n padding-left: 2.9%;\n }\n }\n @media only screen and (min-width: 1920px) {\n .customer-list-header {\n &.w-80 {\n width: 106% !important;\n }\n }\n }\n @media only screen and (min-width: 1600px) {\n .customer-list-header {\n &.w-80 {\n width: 97%;\n }\n }\n .dropdown-notes-filter {\n .notes-option {\n li {\n &.on-hover1 {\n &.show {\n .sub-menu-dropdown {\n left: -232px;\n }\n }\n }\n }\n }\n }\n }\n @media only screen and (min-width: 1200px) {\n .table-container,\n .footer-sticky {\n width: 80% !important;\n }\n .fixed-customer-header {\n max-width: 78% !important;\n }\n }\n @media only screen and (max-width: 1240px) {\n .dropdown-select-all-notes {\n span.selected-list {\n position: fixed;\n color: ${Theme.black};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 6%;\n }\n }\n }\n\n @media only screen and (max-width: 991.98px) {\n padding-left: 0px;\n\n .main-body-container {\n width: 100%;\n\n .table-container {\n background-color: transparent;\n padding: 0;\n width: 100%;\n .fixed-customer-header {\n max-width: 100%;\n background: ${Theme.gray6};\n top: 130px;\n }\n }\n }\n\n .customer-list-header-sticky {\n background-color: transparent;\n }\n .customer-list-header {\n margin: 5px 0;\n &.w-80 {\n width: 100%;\n }\n }\n .dropdown-select-all-notes {\n span.selected-list {\n width: 80%;\n }\n }\n .dropdown-notes-filter {\n .notes-option {\n li {\n &.on-hover1 {\n &.show {\n .sub-menu-dropdown {\n left: -232px;\n }\n }\n }\n }\n }\n }\n }\n @media only screen and (max-width: 767px) {\n .dropdown-notes-filter {\n width: 40%;\n right: 16px;\n }\n }\n @media only screen and (max-width: 577px) {\n .dropdown-notes-filter {\n .notes-option {\n li {\n &.on-hover1 {\n &.show {\n .sub-menu-dropdown {\n left: -101%;\n }\n }\n }\n }\n }\n }\n }\n .selectAll {\n border-right: 1px solid black;\n }\n .sort-arrow-up {\n width: 18px;\n position: absolute;\n bottom: 12px;\n margin-left: 2px;\n transform: rotate(180deg);\n }\n .sort-arrow-up.rotate {\n transform: rotate(360deg);\n bottom: 12px;\n }\n .collapse-icon {\n position: absolute;\n right: 0;\n }\n`;\n\nexport const CustomerLeftPannel = styled.div`\n height: 75%;\n overflow-y: auto;\n overflow-x: hidden;\n overflow: auto;\n border-radius: 15px;\n top: 155px;\n width: 100%;\n position: fixed;\n max-width: 23.5%;\n background: ${Theme.white};\n .customer-list-pannel {\n overflow: auto;\n padding-top: 20px;\n top: 130px;\n width: 100%;\n }\n .label {\n color: ${Theme.gray40};\n text-transform: uppercase;\n line-height: 22px;\n font-family: ${Theme.titleFontFamily};\n font-size: 11px;\n margin-bottom: 3px;\n position: relative;\n }\n .check-box-list {\n list-style-type: none;\n padding: 0;\n margin: 10px 0 5px 0;\n li {\n color: ${Theme.gray85};\n font-size: 14px;\n margin-bottom: 15px;\n }\n }\n .customer-list-filter {\n color: ${Theme.black};\n font-size: 16px;\n font-weight: 600;\n }\n .clear-filter {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n font-family: ${Theme.baseFontFamily};\n cursor: pointer;\n }\n .btn-apply {\n color: ${Theme.white};\n bottom: 20px;\n position: fixed;\n }\n @media only screen and (max-width: 991px) {\n display: none;\n }\n @media only screen and (min-width: 1200px) {\n max-width: 15%;\n }\n`;\nexport const MobileLeftSidebar = styled.div`\n display: none;\n\n @media only screen and (max-width: 991px) {\n background-color: ${Theme['$base-color']};\n display: block;\n #responsive-button {\n display: block;\n position: absolute;\n left: 0px;\n top: 43px;\n z-index: 999;\n .menu-icon {\n width: 24px;\n margin-top: -52px;\n margin-left: -20px;\n }\n }\n .content-header {\n padding: 30px 30px 10px !important;\n }\n .customer-list-filter {\n color: ${Theme.black};\n font-size: 16px;\n font-weight: 600;\n }\n .clear-filter {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n font-family: ${Theme.baseFontFamily};\n cursor: pointer;\n }\n }\n @media only screen and (max-width: 767px) {\n #responsive-button {\n .menu-icon {\n width: 24px;\n margin-top: -16px;\n position: absolute;\n margin-left: -20px;\n }\n }\n }\n`;\n\nexport const SideContent = styled.div`\n display: none;\n @media (max-width: 991.98px) {\n display: block;\n width: 100%;\n min-height: 300px;\n max-height: 450px;\n overflow-y: auto;\n top: 10px;\n left: 0;\n right: 0;\n background: white;\n\n .label {\n color: ${Theme.gray40};\n text-transform: uppercase;\n line-height: 22px;\n font-family: ${Theme.titleFontFamily};\n font-size: 11px;\n margin-bottom: 3px;\n position: relative;\n }\n .check-box-list {\n list-style-type: none;\n padding: 0;\n margin: 0;\n li {\n color: ${Theme.gray85};\n font-size: 14px;\n margin-bottom: 15px;\n }\n }\n .unselected {\n color: ${Theme.gray40};\n font-size: 14px;\n float: right;\n cursor: pointer;\n }\n .selected {\n float: right;\n color: ${Theme.gray40};\n border-right: 2px solid ${Theme.gray4};\n padding-right: 8px;\n cursor: pointer;\n }\n }\n`;\nexport const CustomerListTabletView = styled.div`\n background: ${Theme.gray6};\n height: 100%;\n padding-top: 130px;\n\n .black-heading-title {\n font-size: ${Theme.extraNormal};\n }\n .solid-icon {\n width: 36px;\n margin-right: 15px;\n }\n .recurring-contact {\n li {\n margin-right: 7px;\n margin-bottom: 6px;\n\n .recurring-service {\n border-radius: 5px;\n border: none;\n padding: 10px 4px 10px 12px;\n color: ${Theme.gray85};\n font-size: ${Theme.extraSmall};\n width: max-content;\n\n &.agreement {\n border: 1px solid ${Theme.gray45};\n padding: 9px 12px;\n background-color: ${Theme.white};\n }\n\n &.edit {\n background: ${Theme.lightPink};\n }\n\n &.count-days {\n background: ${Theme.lighterOrange};\n }\n\n &.file-check {\n background: ${Theme.extraLightYellow};\n }\n\n &.file {\n background: ${Theme.gray8};\n }\n\n .active-contract-icon {\n padding: 8px 10px;\n border-radius: 3px;\n margin-left: 10px;\n font-size: 14px;\n\n &.edit-file-icon {\n background: ${Theme.pink};\n\n img {\n vertical-align: middle;\n width: 16px;\n }\n }\n &.count-clock-icon {\n background: ${Theme.extraLighOrange};\n margin-left: 10px;\n\n img {\n vertical-align: text-top;\n width: 14px;\n margin-right: 3px;\n }\n }\n &.file-check-icon {\n background: ${Theme.lightYellow};\n img {\n vertical-align: text-top;\n width: 13px;\n }\n }\n &.file-icon {\n background: ${Theme.gray12};\n\n img {\n vertical-align: text-top;\n width: 14px;\n }\n }\n }\n }\n &.no-active-contract {\n color: ${Theme.gray40};\n font-size: 14px;\n text-transform: initial;\n }\n }\n }\n .company-logo {\n border-radius: 10px;\n width: 45px;\n height: 45px;\n margin-right: 14px;\n float: left;\n }\n .company-name {\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.title};\n font-weight: 600;\n }\n\n .status {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n }\n .label-info {\n font-weight: 600;\n }\n\n .small-value {\n font-weight: 300;\n font-size: ${Theme.extraNormal};\n }\n\n .increase-rate {\n color: ${Theme.lighterGreen};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n img {\n vertical-align: bottom;\n }\n &.grey {\n color: ${Theme.gray40};\n }\n }\n .decrease-rate {\n color: ${Theme.red};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n .red-arrow {\n width: 14px;\n transform: rotate(180deg);\n vertical-align: middle;\n }\n &.grey {\n color: ${Theme.gray40};\n }\n }\n @media (max-width: 996px) {\n padding-top: ${(props) => (props.showPerformance ? '260px' : '200px')};\n }\n @media (max-width: 767px) {\n padding-top: ${(props) => (props.showPerformance ? '360px' : '260px')};\n }\n @media only screen and (max-width: 370px) {\n .recurring-contact {\n .recurring-service {\n .active-contract-icon {\n display: table-cell;\n }\n }\n }\n }\n`;\nexport const EditColumn = styled.div`\n width: 305px;\n position: absolute;\n background: ${Theme.white};\n border-radius: 8px;\n box-shadow: 0 1px 15px 0 rgba(68, 68, 79, 22%);\n top: 59px;\n padding: 16px;\n z-index: 1000;\n\n .customise-column-cross {\n position: absolute;\n right: 15px;\n top: 17px;\n }\n @media (max-width: 996px) {\n max-width: 330px;\n width: 100%;\n }\n`;\n","import React, { useState } from 'react';\n\nimport $ from 'jquery';\nimport ReactTooltip from 'react-tooltip';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n CheckBox,\n CustomDropDown,\n WhiteCard,\n ToggleButton,\n} from '../../../common';\n\nimport { SideContent, EditColumn } from './CustomerListStyle';\nimport {\n CaretUp,\n CloseIcon,\n TableColumns,\n InfoIcons,\n} from '../../../theme/images';\nimport {\n columnsForSalesPerformance,\n columnsForSponsoredPerformance,\n columnsForDSPPerformance,\n vendorSalesPerformanceOptions,\n columnsForVendorSalesPerformance,\n} from '../../../constants';\n\nfunction CustomerListFilters({\n loader,\n handleFilters,\n generateDropdown,\n filters,\n showContractDetails,\n showPerformance,\n showAdPerformance,\n showDspAdPerformance,\n showOrderOption,\n selectedColumns,\n setSelectedColumns,\n showCustomizeColModal,\n setShowCustomiseColModal,\n isCsv,\n setIsCsv,\n displayInputSearchWithRadius,\n displayManagerFilter,\n displayRadioCheckFilters,\n displayPartnerCheckboxesFilter,\n displayPartnerAgreementTypesFilters,\n setSelectedVendorDashboard,\n activeVendorTab,\n setActiveVendorTab,\n}) {\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const isTablet = useMediaQuery({ minWidth: 768, maxWidth: 991 });\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n\n const selectedAccountTypes = JSON.parse(\n localStorage.getItem('filters'),\n )?.customer_account_type;\n\n const handleSelectedColumns = (event, column) => {\n if (event?.target?.checked) {\n $(`.${column?.value} input:checkbox`).prop('checked', true);\n const filterData = {\n ...filters,\n selectedColumns: [...selectedColumns, column],\n };\n setSelectedColumns([...selectedColumns, column]);\n if (Object.keys(column).includes('dashboard')) {\n filterData.vendor_dashboard = column.dashboard;\n setSelectedVendorDashboard(column.dashboard);\n }\n\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filterData,\n }),\n );\n } else if (selectedColumns?.length > 1) {\n $(`.${column?.value} input:checkbox`).prop('checked', false);\n\n const result = selectedColumns?.filter(\n (item) => item?.value !== column?.value,\n );\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n selectedColumns: [...result],\n }),\n );\n setSelectedColumns([...result]);\n }\n };\n\n const mapSelectedColumns = (column) => {\n const checkedItem = selectedColumns?.find(\n (item) => item.value === column?.value,\n );\n if (checkedItem) {\n return Object.keys(checkedItem)?.length;\n }\n return false;\n };\n\n const displayColumns = (columnList) => {\n return columnList?.map((column) => (\n \n
    \n \n \n {column?.label}{' '}\n handleSelectedColumns(event, column)}\n checked={mapSelectedColumns(column)}\n />\n \n {column?.info ? (\n <>\n {' '}\n {' '}\n {' '}\n \n ) : (\n ''\n )}\n \n \n
    \n
    \n ));\n };\n\n function getDifference(array1, array2) {\n return array1?.filter((object1) => {\n return !array2?.some((object2) => {\n return (\n object1?.value === object2?.value &&\n object1?.dashboard === object2?.dashboard\n );\n });\n });\n }\n\n const handleToggleToggleBtn = (item) => {\n setActiveVendorTab(item);\n const orderedRevenueColumns =\n columnsForVendorSalesPerformance.ordered_revenue_tab;\n const shippedCOGsColumns =\n columnsForVendorSalesPerformance.shipped_cogs_tab;\n\n let list = [];\n if (item?.value === 'ordered_revenue_tab') {\n if (\n selectedAccountTypes?.length === 1 &&\n selectedAccountTypes.includes('Vendor')\n ) {\n list = [...orderedRevenueColumns];\n } else {\n list = getDifference(selectedColumns, shippedCOGsColumns);\n }\n }\n if (item?.value === 'shipped_cogs_tab') {\n if (\n selectedAccountTypes?.length === 1 &&\n selectedAccountTypes.includes('Vendor')\n ) {\n list = [...shippedCOGsColumns];\n } else {\n list = getDifference(selectedColumns, orderedRevenueColumns);\n }\n }\n setSelectedColumns([...list]);\n };\n\n const displayVendorSalesPerformanceView = () => {\n return (\n <>\n \n
    \n
      \n {vendorSalesPerformanceOptions?.map((item) => {\n return (\n
    • \n {\n handleToggleToggleBtn(item);\n setSelectedVendorDashboard(item?.dashboard);\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n vendor_dashboard: item?.dashboard,\n }),\n );\n }}\n />\n \n
    • \n );\n })}\n
    \n
    \n
    \n {displayColumns(\n columnsForVendorSalesPerformance?.[activeVendorTab?.value],\n )}\n \n );\n };\n\n const handleSelectAllColumn = (type) => {\n $('.customise-column input:checkbox').prop('checked', true);\n\n if (filters?.showPerformance) {\n if (type === 'vendor') {\n const orderedRevenueColumns =\n columnsForVendorSalesPerformance?.ordered_revenue_tab;\n const shippedCOGsColumns =\n columnsForVendorSalesPerformance?.shipped_cogs_tab;\n\n let newColumnsToAdd = [];\n\n if (activeVendorTab?.value === 'ordered_revenue_tab') {\n const list = getDifference(selectedColumns, shippedCOGsColumns);\n newColumnsToAdd = [...list, ...orderedRevenueColumns];\n }\n if (activeVendorTab?.value === 'shipped_cogs_tab') {\n const list = getDifference(selectedColumns, orderedRevenueColumns);\n newColumnsToAdd = [...list, ...shippedCOGsColumns];\n }\n\n const dateArray = [...selectedColumns, ...newColumnsToAdd];\n\n const uniqueColumns = Array.from(\n new Set(dateArray.map((d) => JSON.stringify(d))),\n ).map((s) => {\n const d = JSON.parse(s);\n return { ...d };\n });\n setSelectedColumns([...uniqueColumns]);\n setSelectedVendorDashboard(activeVendorTab?.dashboard);\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n selectedColumns: [...uniqueColumns],\n vendor_dashboard: activeVendorTab?.dashboard,\n }),\n );\n } else {\n const arrayList = [...columnsForSalesPerformance, ...selectedColumns];\n const uniqueColumns = Array.from(\n new Set(arrayList.map((d) => JSON.stringify(d))),\n ).map((s) => {\n const d = JSON.parse(s);\n return { ...d };\n });\n setSelectedColumns([...uniqueColumns]);\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n selectedColumns: [...uniqueColumns],\n }),\n );\n }\n }\n if (filters?.showAdPerformance) {\n setSelectedColumns([...columnsForSponsoredPerformance]);\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n selectedColumns: [...columnsForSponsoredPerformance],\n }),\n );\n }\n if (filters?.showDspAdPerformance) {\n setSelectedColumns([...columnsForDSPPerformance]);\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n selectedColumns: [...columnsForDSPPerformance],\n }),\n );\n }\n };\n\n const displayCustomiseColumns = () => {\n let columnList = [];\n if (filters?.showPerformance) {\n columnList = columnsForSalesPerformance;\n\n if (\n (selectedAccountTypes?.includes('Seller') &&\n selectedAccountTypes?.includes('Vendor')) ||\n selectedAccountTypes?.includes('Hybrid') ||\n selectedAccountTypes?.length === 0\n ) {\n return (\n <>\n
    Seller
    \n
    {displayColumns(columnList)}
    \n
    Vendor
    \n
    \n handleSelectAllColumn('vendor')}\n >\n Select All\n

    \n
    \n
    {displayVendorSalesPerformanceView()}
    \n \n );\n }\n\n if (selectedAccountTypes?.includes('Vendor'))\n return (\n <>\n
    Vendor
    \n
    {displayVendorSalesPerformanceView()}
    \n \n );\n if (selectedAccountTypes?.includes('Seller'))\n return (\n <>\n
    Seller
    \n
    {displayColumns(columnList)}
    \n \n );\n }\n if (filters?.showAdPerformance) {\n columnList = columnsForSponsoredPerformance;\n if (\n selectedAccountTypes?.includes('Vendor') &&\n selectedAccountTypes?.length === 1\n ) {\n columnList = columnsForSponsoredPerformance.filter(\n (item) => item?.label !== 'TACOS' && item?.label !== 'Total AD Spend',\n );\n }\n\n return (\n <>\n
    \n {(selectedAccountTypes?.includes('Seller') &&\n selectedAccountTypes?.includes('Vendor')) ||\n selectedAccountTypes?.includes('Hybrid') ||\n selectedAccountTypes?.length === 0\n ? 'Hybrid'\n : selectedAccountTypes?.includes('Vendor')\n ? 'Vendor'\n : selectedAccountTypes?.includes('Seller')\n ? 'Seller'\n : ''}{' '}\n
    \n
    {displayColumns(columnList)}
    \n \n );\n }\n if (filters?.showDspAdPerformance) {\n columnList = columnsForDSPPerformance;\n return
    {displayColumns(columnList)}
    ;\n }\n return null;\n };\n\n const displayCustomiseColumnsFeature = () => {\n return (\n
    \n {showContractDetails ? (\n ''\n ) : (\n {\n setShowCustomiseColModal(!showCustomizeColModal);\n }}\n >\n {' '}\n Edit Columns\n
    \n )}\n {showCustomizeColModal ? (\n \n
    \n
    \n Edit Columns\n
    \n {\n setShowCustomiseColModal(false);\n }}\n />\n
    \n
    \n handleSelectAllColumn()}\n >\n Select All\n

    \n
    {displayCustomiseColumns()}
    \n
    \n
    \n ) : (\n ''\n )}\n \n );\n };\n\n // display partner dropdown filter\n const displyPartnerDropdownFilter = (dropdownKey) => {\n return (\n \n {generateDropdown(dropdownKey)}\n \n );\n };\n\n // display download report button\n const displayDownloadReportButton = () => {\n return (\n
    \n setIsCsv(true)}\n >\n \n \n Download\n \n
    \n \n );\n };\n\n // display partner dropdown filter row\n const displayPartnerDropdownFilterRow = () => {\n return (\n
    \n \n \n Partners\n

    \n {displayCustomiseColumnsFeature()}\n
    \n \n {displyPartnerDropdownFilter('view')}\n \n {showAdPerformance || showDspAdPerformance || showPerformance ? (\n \n {displyPartnerDropdownFilter('stats')}\n \n ) : null}\n\n \n {displyPartnerDropdownFilter('sort')}\n \n\n {!isDesktop &&\n ((showOrderOption && showAdPerformance) ||\n showDspAdPerformance ||\n showPerformance) ? (\n \n {displyPartnerDropdownFilter('order')}\n \n ) : null}\n
    \n {displayDownloadReportButton()}\n
    \n \n );\n };\n\n return (\n <>\n
    \n {isDesktop ? displayPartnerDropdownFilterRow() : ''}\n
    \n \n
    \n \n setIsCollapseOpen(!isCollapseOpen)}\n >\n
    \n
    \n

    Filters

    \n
    \n\n
    \n
    \n {\n event.stopPropagation();\n handleFilters(event, 'unselected');\n }}\n >\n Reset filters\n \n
    \n
    \n {!isDesktop ? (\n
    \n
    \n \n
    \n
    \n ) : null}\n
    \n
    \n {isCollapseOpen ? (\n \n
    \n
    \n {/* ********** input search filter ********** */}\n {displayInputSearchWithRadius()}\n
    \n
    \n
    \n
    \n {/* ********** bgs, ad, dsp manager filters ********** */}\n {displayManagerFilter()}\n {/* ********** channel types filters ********** */}\n {displayRadioCheckFilters(\n 'Channel Type',\n 'channel_type',\n 'mobile',\n )}\n {/* ********** partner types filters ********** */}\n {displayRadioCheckFilters(\n 'Partner Type',\n 'bpAccount',\n 'mobile',\n )}\n {/* ********** partner account status filters ********** */}\n {displayPartnerCheckboxesFilter(\n 'Partner Status',\n 'status',\n )}\n {/* ********** partner pipeline filters ********** */}\n {displayRadioCheckFilters(\n 'Partner Pipeline',\n 'pipeline',\n 'mobile',\n )}\n {/* ********** partner account types filters ********** */}\n {displayPartnerCheckboxesFilter(\n 'Account Type',\n 'customer_account_type',\n )}\n
    \n
    \n {/* ********** partner agreement types filters ********** */}\n {displayPartnerAgreementTypesFilters('mobile')}\n {/* ********** partner agreement status filters ********** */}\n {displayPartnerCheckboxesFilter(\n 'Agreement Status',\n 'contract_status',\n )}\n {/* ********** partner agreement addendum status filters ********** */}\n {displayPartnerCheckboxesFilter(\n 'Addendum Status',\n 'addendum_status',\n )}\n
    \n
    \n
    \n ) : null}\n
    \n
    \n \n \n \n
    \n {isDesktop ? null : (\n \n {displayPartnerDropdownFilterRow()}\n \n )}\n
    \n\n
    \n \n );\n}\n\nexport default CustomerListFilters;\nCustomerListFilters.defaultProps = {\n loader: false,\n handleFilters: () => {},\n generateDropdown: () => {},\n showContractDetails: true,\n showPerformance: false,\n showAdPerformance: false,\n showDspAdPerformance: false,\n selectedColumns: [],\n setSelectedColumns: () => {},\n showCustomizeColModal: false,\n setShowCustomiseColModal: () => {},\n isCsv: false,\n setIsCsv: () => {},\n displayInputSearchWithRadius: () => {},\n displayManagerFilter: () => {},\n displayRadioCheckFilters: () => {},\n displayPartnerCheckboxesFilter: () => {},\n displayPartnerAgreementTypesFilters: () => {},\n setSelectedVendorDashboard: () => {},\n activeVendorTab: {},\n setActiveVendorTab: () => {},\n};\n\nCustomerListFilters.propTypes = {\n loader: bool,\n handleFilters: func,\n generateDropdown: func,\n filters: shape({}).isRequired,\n showContractDetails: bool,\n showPerformance: bool,\n showAdPerformance: bool,\n showDspAdPerformance: bool,\n showOrderOption: bool.isRequired,\n selectedColumns: arrayOf(string),\n setSelectedColumns: func,\n showCustomizeColModal: bool,\n setShowCustomiseColModal: func,\n isCsv: bool,\n setIsCsv: func,\n displayInputSearchWithRadius: func,\n displayManagerFilter: func,\n displayRadioCheckFilters: func,\n displayPartnerCheckboxesFilter: func,\n displayPartnerAgreementTypesFilters: func,\n setSelectedVendorDashboard: func,\n activeVendorTab: shape({}),\n setActiveVendorTab: func,\n};\n","import React from 'react';\n\nimport { bool, func } from 'prop-types';\n\nimport { CustomerLeftPannel } from './CustomerListStyle';\n\nfunction CustomerListLeftSidePanel({\n loader,\n handleFilters,\n displayInputSearchWithRadius,\n displayManagerFilter,\n displayRadioCheckFilters,\n displayPartnerCheckboxesFilter,\n displayPartnerAgreementTypesFilters,\n}) {\n /* ********** Main return statement of this component ********** */\n return (\n <>\n \n
    \n
    \n
    \n
    \n
    Filters
    \n
    \n
    \n \n handleFilters(event, 'unselected', 'status')\n }\n role=\"presentation\"\n >\n Reset filters\n
    \n
    \n\n {/* ********** input search filter ********** */}\n
    \n {displayInputSearchWithRadius()}\n
    \n
    \n
    \n {/* ********** bgs, ad, dsp manager filters ********** */}\n {displayManagerFilter()}\n {/* ********** channel types filters ********** */}\n {displayRadioCheckFilters(\n 'Channel Type',\n 'channel_type',\n 'desktop',\n )}\n {/* ********** partner types filters ********** */}\n {displayRadioCheckFilters('Partner Type', 'bpAccount', 'desktop')}\n {/* ********** partner account status filters ********** */}\n {displayPartnerCheckboxesFilter('Partner Status', 'status')}\n {/* ********** partner pipeline filters ********** */}\n {displayRadioCheckFilters(\n 'Partner Pipeline',\n 'pipeline',\n 'desktop',\n )}\n {/* ********** partner account types filters ********** */}\n {displayPartnerCheckboxesFilter(\n 'Account Type',\n 'customer_account_type',\n )}\n {/* ********** partner agreement types filters ********** */}\n {displayPartnerAgreementTypesFilters('desktop')}\n {/* ********** partner agreement status filters ********** */}\n {displayPartnerCheckboxesFilter(\n 'Agreement Status',\n 'contract_status',\n )}\n {/* ********** partner agreement addendum status filters ********** */}\n {displayPartnerCheckboxesFilter(\n 'Addendum Status',\n 'addendum_status',\n )}\n
    \n
    \n
    \n \n \n );\n}\n\nCustomerListLeftSidePanel.defaultProps = {\n loader: false,\n\n handleFilters: () => {},\n displayInputSearchWithRadius: () => {},\n displayManagerFilter: () => {},\n displayRadioCheckFilters: () => {},\n displayPartnerCheckboxesFilter: () => {},\n displayPartnerAgreementTypesFilters: () => {},\n};\nexport default CustomerListLeftSidePanel;\nCustomerListLeftSidePanel.propTypes = {\n loader: bool,\n\n handleFilters: func,\n displayInputSearchWithRadius: func,\n displayManagerFilter: func,\n displayRadioCheckFilters: func,\n displayPartnerCheckboxesFilter: func,\n displayPartnerAgreementTypesFilters: func,\n};\n","import React from 'react';\n\nimport PropTypes, { func, shape } from 'prop-types';\nimport { Collapse } from 'react-collapse';\n\nimport NoRecordFound from '../../../common/NoRecordFound';\nimport { CustomerListTabletView } from './CustomerListStyle';\nimport { PATH_CUSTOMER_DETAILS, metricsCurrency } from '../../../constants';\nimport { CommonPagination, PageLoader, WhiteCard } from '../../../common';\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n UpDowGrayArrow,\n} from '../../../theme/images';\n\nexport default function CustomerListTablet({\n data,\n history,\n count,\n pageNumber,\n handlePageChange,\n isLoading,\n showContractDetails,\n showPerformance,\n showAdPerformance,\n showDspAdPerformance,\n selectedAccountTypes,\n generateLogoCompanyNameAndGs,\n generateCompanyStatus,\n generatePerformance,\n showContractsList,\n selectedColumns,\n showCollapseButton,\n showChildContracts,\n displayAccountStatus,\n returnTooltipMessgeLWA,\n redirectToCustomerDetailView,\n}) {\n const renderAdPerformanceDifference = (actualValue, grayArrow, matrics) => {\n let flag = '';\n let value = actualValue;\n if (value) {\n if (matrics === 'ACOS') {\n if (value.toString().includes('-')) {\n flag = 'green';\n value = value\n ? `${Number(value.toString().split('-')[1]).toFixed(2)} %`\n : '';\n } else {\n flag = 'red';\n value = value ? `${value.toFixed(2)} %` : '';\n }\n } else if (value.toString().includes('-')) {\n flag = 'red';\n value = value\n ? `${Number(value.toString().split('-')[1]).toFixed(2)} %`\n : '';\n } else {\n flag = 'green';\n value = value ? `${value.toFixed(2)} %` : '';\n }\n\n if (flag === 'red') {\n return (\n <>\n \n {' '}\n \n {value}\n \n \n );\n }\n return (\n <>\n \n \n {value}\n \n \n );\n }\n if (value === null) {\n return N/A;\n }\n return 0%;\n };\n\n const generateContractDetails = (item, child) => {\n return (\n \n {!child ? showCollapseButton(item?.id, item?.account_type) : ''}\n
    \n {generateLogoCompanyNameAndGs(\n item,\n item && item.company_name,\n item && item.brand_growth_strategist,\n )}\n
    \n
    \n
    \n
    \n
    \n
    Account type
    \n
    \n {item?.customer_account_type || item?.account_type === 'parent'\n ? displayAccountStatus(\n item?.account_type,\n item?.customer_account_type,\n )\n : ''}\n {Object.keys(item?.lwa).length\n ? returnTooltipMessgeLWA(item)\n : ''}\n
    \n
    \n
    \n
    Status
    \n
    {generateCompanyStatus(item?.status)}
    \n
    \n
    \n
    \n {showContractsList(item)}\n \n );\n };\n\n // display metrics data\n const displayMetricsData = (item, dashboard, column) => {\n const metricsUnit = metricsCurrency[column?.key]?.type;\n return (\n <>\n {generatePerformance(\n item?.[dashboard]?.current_sum?.[column?.value],\n 2,\n 'isTwiceReplace',\n metricsUnit === 'currency' ? '$' : '',\n metricsUnit === 'percentage' ? '%' : '',\n )}\n {renderAdPerformanceDifference(\n item?.[dashboard]?.difference_data?.[column?.value],\n false,\n [column?.value],\n )}\n \n );\n };\n\n // display metrics label with value\n const displayMetricsLabelWithValue = (\n item,\n dashboard,\n column,\n labelPrefix,\n ) => {\n return (\n
    \n
    \n {`${labelPrefix ? `${labelPrefix}_` : ''}${column?.label}`}\n
    \n
    \n {displayMetricsData(item, dashboard, column)}\n
    \n
    \n );\n };\n\n const renderCustomerDetails = (item) => {\n const dashboard = showPerformance\n ? 'sales_performance'\n : showAdPerformance\n ? 'sponsored_ad_performance'\n : showDspAdPerformance\n ? 'dsp_ad_performance'\n : null;\n\n const dashboardSC = `${dashboard}_sc`;\n const dashboardVC = `${dashboard}_vc`;\n\n const isHybrid =\n selectedAccountTypes?.includes('Hybrid') ||\n selectedAccountTypes?.length === 0;\n\n if (dashboard !== null) {\n return (\n \n {showCollapseButton(item?.id, item?.account_type)}\n {generateLogoCompanyNameAndGs(\n item,\n item?.company_name,\n item?.brand_growth_strategist,\n )}\n
    \n
    \n\n
    \n {showAdPerformance\n ? (selectedAccountTypes?.includes('Seller') &&\n selectedAccountTypes?.includes('Vendor')) ||\n isHybrid\n ? selectedColumns?.map((column) => {\n return ['TACOS', 'Total AD Spend']?.includes(\n column?.label,\n ) ? (\n displayMetricsLabelWithValue(\n item,\n dashboardSC,\n column,\n '',\n )\n ) : (\n <>\n {displayMetricsLabelWithValue(\n item,\n dashboardSC,\n column,\n 'SC',\n )}\n {displayMetricsLabelWithValue(\n item,\n dashboardVC,\n column,\n 'VC',\n )}\n \n );\n })\n : selectedAccountTypes?.includes('Seller') || isHybrid\n ? selectedColumns?.map((column) => {\n return displayMetricsLabelWithValue(\n item,\n dashboardSC,\n column,\n 'SC',\n );\n })\n : selectedAccountTypes?.includes('Vendor') || isHybrid\n ? selectedColumns?.map((column) => {\n return displayMetricsLabelWithValue(\n item,\n dashboardVC,\n column,\n 'VC',\n );\n })\n : null\n : selectedColumns?.map((column) => {\n return displayMetricsLabelWithValue(\n item,\n dashboard,\n column,\n '',\n );\n })}\n
    \n \n );\n }\n\n // for- view contract details\n if (showContractDetails) {\n return <>{generateContractDetails(item)};\n }\n return <>{generateContractDetails(item)};\n };\n\n // Rendering child brands\n const renderChildContractHtml = (parentCustomer) => {\n const child = true;\n return (\n \n
    \n {parentCustomer?.child_customer?.map((childBrand) => (\n \n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n childBrand?.id,\n )}?tab=performance${\n childBrand?.customer_account_type\n ? `&sub=${\n childBrand.customer_account_type === 'Hybrid' ||\n childBrand.customer_account_type === 'Seller'\n ? 'seller'\n : 'vendor'\n }`\n : ''\n }&nav=${'salePerformance'}`,\n history?.location?.state,\n )\n }\n role=\"presentation\"\n >\n {showPerformance || showAdPerformance || showDspAdPerformance\n ? renderCustomerDetails(childBrand, child)\n : generateContractDetails(childBrand, child)}\n
    \n ))}\n
    \n \n );\n };\n\n return (\n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : data?.length === 0 ? (\n \n ) : (\n
    \n
    \n {data?.map((item) => (\n <>\n {\n redirectToCustomerDetailView(item);\n }}\n role=\"presentation\"\n >\n {renderCustomerDetails(item)}\n
    \n
    \n {renderChildContractHtml(item)}\n
    \n \n ))}\n
    \n\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n \n )}\n
    \n )}\n \n );\n}\n\nCustomerListTablet.defaultProps = {\n count: null,\n pageNumber: 1,\n handlePageChange: () => {},\n showContractDetails: true,\n showPerformance: false,\n showAdPerformance: false,\n showDspAdPerformance: false,\n selectedColumns: [],\n selectedAccountTypes: [],\n showCollapseButton: () => {},\n showChildContracts: {},\n displayAccountStatus: () => {},\n returnTooltipMessgeLWA: () => {},\n redirectToCustomerDetailView: () => {},\n};\n\nCustomerListTablet.propTypes = {\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\n history: PropTypes.shape({\n length: PropTypes.number,\n push: PropTypes.func,\n location: PropTypes.shape({\n state: PropTypes.string,\n }),\n }).isRequired,\n count: PropTypes.number,\n pageNumber: PropTypes.number,\n handlePageChange: PropTypes.func,\n isLoading: PropTypes.shape({\n loader: PropTypes.bool,\n type: PropTypes.string,\n }).isRequired,\n showContractDetails: PropTypes.bool,\n showPerformance: PropTypes.bool,\n showAdPerformance: PropTypes.bool,\n showDspAdPerformance: PropTypes.bool,\n selectedAccountTypes: PropTypes.arrayOf(shape({})),\n generateLogoCompanyNameAndGs: PropTypes.func.isRequired,\n generateCompanyStatus: PropTypes.func.isRequired,\n generatePerformance: PropTypes.func.isRequired,\n showContractsList: PropTypes.func.isRequired,\n selectedColumns: PropTypes.arrayOf(PropTypes.shape({})),\n showCollapseButton: func,\n showChildContracts: shape({}),\n displayAccountStatus: func,\n returnTooltipMessgeLWA: func,\n redirectToCustomerDetailView: func,\n};\n","/* eslint-disable jsx-a11y/control-has-associated-label */\nimport React from 'react';\n\nimport { bool, func, number, shape } from 'prop-types';\nimport { useHistory } from 'react-router-dom';\n\nimport { Table } from '../../../common';\nimport { PATH_CUSTOMER_DETAILS } from '../../../constants';\n\nexport default function ChildCustomerListView({\n colSpanValue,\n parentCustomer,\n showContractsList,\n generateCompanyStatus,\n returnTooltipMessgeLWA,\n showPerformance,\n showAdPerformance,\n showDspAdPerformance,\n showContractDetails,\n displayTableData,\n displayAccountStatus,\n displaySPAdTableData,\n displaySalesPerformanceTableData,\n}) {\n const history = useHistory();\n\n const returnTableType = (item) => {\n if (showPerformance) {\n return displaySalesPerformanceTableData('sales_performance', item);\n }\n if (showAdPerformance) {\n return displaySPAdTableData('sponsored_ad_performance', item);\n }\n if (showDspAdPerformance) {\n return displayTableData('dsp_ad_performance', item);\n }\n return [];\n };\n\n // generate child brand table header\n const generateChildBrandTableHeader = (count) => {\n const tableHeader = [];\n if (count > 0) {\n for (let i = 0; i < count - 1; i += 1) {\n tableHeader.push();\n }\n }\n return tableHeader;\n };\n\n // Render Child brands in a table\n const renderChildCustomerList = () => {\n if (parentCustomer?.child_customer?.length) {\n return parentCustomer?.child_customer?.map((item) => {\n return (\n <>\n {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n item?.id,\n )}?tab=performance${\n item?.customer_account_type\n ? `&sub=${\n item.customer_account_type === 'Hybrid' ||\n item.customer_account_type === 'Seller'\n ? 'seller'\n : 'vendor'\n }`\n : ''\n }&nav=${'salePerformance'}`,\n history.location.state,\n );\n }}\n >\n \n
    \n
    \n {item?.company_name}\n
    \n \n {item?.brand_growth_strategist?.first_name}{' '}\n {item?.brand_growth_strategist?.last_name}\n \n \n {showContractDetails ? (\n <>\n \n {item?.customer_account_type\n ? displayAccountStatus(\n item?.account_type,\n item?.customer_account_type,\n )\n : ''}\n {Object.keys(item?.lwa).length\n ? returnTooltipMessgeLWA(item)\n : ''}\n {/*
    {item?.customer_account_type}
    */}\n \n \n {generateCompanyStatus(item?.status)}\n \n {showContractsList(item)}\n \n ) : (\n returnTableType(item)\n )}\n \n \n );\n });\n }\n return 'No Child Customers yet';\n };\n\n return (\n \n \n \n {showPerformance || showAdPerformance || showDspAdPerformance ? (\n generateChildBrandTableHeader(colSpanValue)?.map((thead) => {\n return thead;\n })\n ) : (\n <>\n \n \n {renderChildCustomerList()}\n
    \n \n \n \n \n )}\n
    \n );\n}\n\nChildCustomerListView.defaultProps = {\n colSpanValue: 1,\n parentCustomer: {},\n showContractsList: () => {},\n generateCompanyStatus: () => {},\n returnTooltipMessgeLWA: () => {},\n showPerformance: false,\n showAdPerformance: false,\n showDspAdPerformance: false,\n showContractDetails: true,\n displayTableData: () => {},\n displayAccountStatus: () => {},\n displaySPAdTableData: () => {},\n displaySalesPerformanceTableData: () => {},\n};\n\nChildCustomerListView.propTypes = {\n colSpanValue: number,\n parentCustomer: shape({}),\n showContractsList: func,\n generateCompanyStatus: func,\n returnTooltipMessgeLWA: func,\n showPerformance: bool,\n showAdPerformance: bool,\n showDspAdPerformance: bool,\n showContractDetails: bool,\n displayTableData: func,\n displayAccountStatus: func,\n displaySPAdTableData: func,\n displaySalesPerformanceTableData: func,\n};\n","import React, { useState } from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { useHistory } from 'react-router-dom';\nimport { Collapse } from 'react-collapse';\nimport { useDispatch } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape } from 'prop-types';\n\n// local file imports\nimport Theme from '../../../theme/Theme';\nimport { AccountStatus } from '../../../theme/Global';\nimport CustomerListTablet from './CustomerListTablet';\nimport ChildCustomerListView from './ChildCustomerListView';\nimport { setCustomerSelectedTab } from '../../../store/actions/customerState';\nimport {\n CommonPagination,\n NoRecordFound,\n PageLoader,\n Table,\n} from '../../../common';\nimport {\n PATH_AGREEMENT,\n PATH_CUSTOMER_DETAILS,\n metricsCurrency,\n} from '../../../constants';\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n AuthorizedSC,\n AuthorizedVC,\n CheckFileIcon,\n CountDayClock,\n EditFileIcon,\n FileIcon,\n SortUp,\n UnauthorizedSC,\n UnauthorizedVC,\n UpDowGrayArrow,\n} from '../../../theme/images';\n\nfunction CustomerListRightSidePanel({\n totalPageCount,\n pageNumber,\n orderByFlag,\n isCustomTimeFrame,\n showContractDetails,\n showPerformance,\n showAdPerformance,\n showDspAdPerformance,\n params,\n isLoading,\n selectedValue,\n selectedColumns,\n customerListData,\n getCustomer,\n handlePageChange,\n handleSortFilters,\n redirectIfContractExists,\n}) {\n const dispatch = useDispatch();\n const history = useHistory();\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const selectedAccountTypes = JSON.parse(\n localStorage.getItem('filters'),\n )?.customer_account_type;\n\n const [showContracts, setShowContracts] = useState(false);\n const [showChildContracts, setShowChildContracts] = useState({ id: null });\n const isSeller = selectedAccountTypes?.includes('Seller');\n const isVendor = selectedAccountTypes?.includes('Vendor');\n const isHybrid =\n (isSeller && isVendor) || selectedAccountTypes?.includes('Hybrid');\n const colSpanCount =\n showAdPerformance && (isHybrid || selectedAccountTypes?.length === 0)\n ? selectedColumns?.length * 2 + 1\n : selectedColumns?.length + 1;\n\n const countDays = (item) => {\n const date1 = new Date();\n const date2 = new Date(item);\n const diffTime = Math.abs(date2 - date1);\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\n return diffDays;\n };\n\n // function - display bp name logo and assigned bgs\n const generateLogoCompanyNameAndGs = (item, name, bgs) => {\n return (\n <>\n \n
    {name}
    \n
    \n {bgs.first_name} {bgs.last_name}\n
    \n {item?.child_customer?.length\n ? `${item?.child_customer?.length} Child Brands`\n : item?.account_type === 'parent'\n ? '0 Child Brands'\n : ''}\n
    \n
    \n
    \n \n );\n };\n\n // Return class name according to Account status\n const returnAccountStatusClass = (statusClass) => {\n switch (statusClass) {\n case 'pending':\n case 'pending account setup':\n return 'pending';\n case 'pending cancellation':\n return 'pending-cancellation';\n case 'active':\n return 'active';\n case 'inactive':\n return 'inactive';\n case 'out of contract':\n return 'outOfContract';\n case 'in collections':\n return 'inCollections';\n case 'at risk':\n return 'atRisk';\n default:\n return '';\n }\n };\n\n const showSellerVendorCentral = (\n centralArray,\n sellerArray,\n vendorArray,\n centralMarketplacesArray,\n item,\n // eslint-disable-next-line consistent-return\n ) => {\n const toolTip = (param, message, classStatus) => {\n const displayMarketplaces = () => {\n return `\n ${\n message?.length\n ? `Unauthorized marketplaces of ${param} :`\n : `BP has successfully authorized ${param} data access.`\n }\n
      \n ${message?.map(\n (item1) => `
    • ${item1}
    • `,\n )}\n
    `.replaceAll(',', '');\n };\n\n return (\n <>\n event.stopPropagation()}\n />\n \n \n );\n };\n\n if (item?.customer_account_type === 'Hybrid') {\n return (\n <>\n {toolTip(\n 'Sc',\n [...sellerArray, ...centralMarketplacesArray],\n !sellerArray?.length && !centralMarketplacesArray?.length\n ? AuthorizedSC\n : UnauthorizedSC,\n )}\n {toolTip(\n 'Vc',\n [...vendorArray, ...centralMarketplacesArray],\n !vendorArray?.length && !centralMarketplacesArray?.length\n ? AuthorizedVC\n : UnauthorizedVC,\n )}\n \n );\n }\n if (item?.customer_account_type === 'Seller') {\n return (\n <>\n {toolTip(\n 'Sc',\n [...sellerArray, ...centralMarketplacesArray],\n !sellerArray?.length ? AuthorizedSC : UnauthorizedSC,\n )}\n \n );\n }\n if (item?.customer_account_type === 'Vendor') {\n return (\n <>\n {toolTip(\n 'Vc',\n [...vendorArray, ...centralMarketplacesArray],\n !vendorArray?.length ? AuthorizedVC : UnauthorizedVC,\n )}\n \n );\n }\n };\n\n const returnTooltipMessgeLWA = (item) => {\n const centralArray = [];\n const sellerArray = [];\n const vendorArray = [];\n const centralMarketplacesArray = [];\n\n for (const [key, value] of Object.entries(item?.lwa)) {\n if (typeof value === 'boolean') {\n centralArray.push(value);\n if (!value) centralMarketplacesArray.push(key);\n }\n if (typeof value === 'object') {\n if (\n item?.customer_account_type === 'Seller' ||\n item?.customer_account_type === 'Hybrid'\n ) {\n centralArray.push(value.seller);\n if (!value?.seller && 'seller' in value) {\n sellerArray.push(key);\n }\n }\n if (\n item?.customer_account_type === 'Vendor' ||\n item?.customer_account_type === 'Hybrid'\n ) {\n centralArray.push(value.vendor);\n if (!value?.vendor && 'vendor' in value) {\n vendorArray.push(key);\n }\n }\n }\n }\n\n return showSellerVendorCentral(\n centralArray,\n sellerArray,\n vendorArray,\n centralMarketplacesArray,\n item,\n );\n };\n\n // genetae company status\n const generateCompanyStatus = (companyStatus) => {\n return (\n \n {companyStatus === 'at risk' ? (\n
    At Risk
    \n ) : (\n
    \n {companyStatus}\n
    \n )}\n
    \n );\n };\n\n // display account status\n const displayAccountStatus = (accountType, accountStatus) => {\n return (\n \n {accountType === 'parent' ? (\n <>\n Parent Brand\n \n ) : (\n accountStatus\n )}\n \n );\n };\n\n const showCollapseButton = (contractId, contractAccountType) => {\n return contractAccountType === 'parent' ? (\n \n {\n e.stopPropagation();\n setShowChildContracts({\n id: showChildContracts?.id !== contractId ? contractId : null,\n });\n }}\n />\n \n ) : (\n ''\n );\n };\n\n const getAgreementName = (agreementStatus) => {\n return agreementStatus === 'active'\n ? 'Signed'\n : agreementStatus === 'pending contract'\n ? 'Pending Agreement'\n : agreementStatus === 'pending contract approval'\n ? 'Pending Agreement Approval'\n : agreementStatus === 'pending contract signature'\n ? 'Pending Agreement Signature'\n : agreementStatus === 'cancel'\n ? 'Cancelled'\n : agreementStatus === 'pause'\n ? 'Paused'\n : agreementStatus === 'pending for cancellation'\n ? 'Cancelled - Pending for Billing'\n : agreementStatus === 'pending cancellation approval'\n ? 'Pending Cancellation Approval'\n : agreementStatus;\n };\n\n // https://bbe.atlassian.net/browse/PDV-9705\n // function - display contract label based on channer type\n const displayContractLabel = (type) => {\n const contractLabel =\n type.contract_type === 'dsp only'\n ? 'DSP only Service Agreement'\n : type?.contract_type === 'recurring' ||\n type?.contract_type === 'recurring (90 day notice)'\n ? `${type?.channel} ${type?.contract_type} Service Agreement`\n : `${type?.contract_type} Service Agreement`;\n\n return contractLabel;\n };\n\n const generateContractHTML = (type, id) => {\n if (\n countDays(type.end_date) <= 90 &&\n type.contract_type !== 'one time' &&\n type.contract_status !== 'inactive'\n ) {\n return (\n {\n getCustomer(id);\n e.stopPropagation();\n history.push({\n pathname: `${PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n type.contract_id,\n )}`,\n state: `${history.location.pathname}`,\n });\n }}\n role=\"presentation\"\n >\n
    \n {displayContractLabel(type, 'recurring (90 day notice)')}\n \n \"clock\"\n {countDays(type.end_date)}d\n \n
    \n \n );\n }\n if (type?.contract_status === 'pending contract') {\n return (\n {\n getCustomer(id);\n e.stopPropagation();\n history.push({\n pathname: `${PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n type.contract_id,\n )}`,\n state: `${history.location.pathname}`,\n });\n }}\n role=\"presentation\"\n data-tip=\"Pending Agreement\"\n style={{ textTransform: 'capitalize' }}\n >\n
    \n {displayContractLabel(type)}\n \n \"file\"\n \n
    \n \n );\n }\n if (type?.contract_status === 'pending contract approval') {\n return (\n {\n getCustomer(id);\n e.stopPropagation();\n history.push({\n pathname: `${PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n type.contract_id,\n )}`,\n state: `${history.location.pathname}`,\n });\n }}\n role=\"presentation\"\n data-tip=\"Pending Agreement Approval\"\n style={{ textTransform: 'capitalize' }}\n >\n
    \n {displayContractLabel(type)}\n \n \"check-file\"\n \n
    \n \n );\n }\n if (type?.contract_status === 'pending contract signature') {\n return (\n {\n getCustomer(id);\n e.stopPropagation();\n history.push({\n pathname: `${PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n type.contract_id,\n )}`,\n state: `${history.location.pathname}`,\n });\n }}\n role=\"presentation\"\n data-tip=\"Pending Agreement Signature\"\n style={{ textTransform: 'capitalize' }}\n >\n
    \n {displayContractLabel(type)}\n \n \"edit\"{' '}\n \n
    \n \n );\n }\n if (type?.contract_status === 'active') {\n return (\n {\n getCustomer(id);\n e.stopPropagation();\n redirectIfContractExists(type, id);\n }}\n role=\"presentation\"\n >\n
    \n {displayContractLabel(type)}\n
    \n \n );\n }\n\n return (\n {\n getCustomer(id);\n e.stopPropagation();\n redirectIfContractExists(type, id);\n }}\n role=\"presentation\"\n data-tip={getAgreementName(type.contract_status)}\n style={{ textTransform: 'capitalize' }}\n >\n
    \n {displayContractLabel(type)}\n
    \n \n );\n };\n\n const getChildActiveContracts = (childBps) => {\n const fields = [];\n\n if (childBps && childBps !== null && childBps !== undefined)\n for (const item of childBps) {\n if (item?.contract?.length) {\n for (const contract of item?.contract) {\n if (\n contract?.contract_status === 'active' ||\n contract?.contract_status === 'renewed'\n ) {\n fields.push(contract);\n }\n }\n }\n }\n return fields?.length || 0;\n };\n\n const showContractsList = (item) => {\n const contractLength = item.contract.length;\n const reduceContractLength = item.contract.length - 1;\n\n return (\n
      \n {item?.contract?.length ? (\n <>\n {!showContracts[item?.id]\n ? item.contract.slice(0, 1).map((type) => (\n \n \n {generateContractHTML(type, item.id)}\n \n ))\n : item.contract.map((type) => (\n \n \n {generateContractHTML(type, item?.id)}\n \n ))}\n \n ) : (\n <>\n {item?.account_type === 'parent' ? (\n
    • \n {`${getChildActiveContracts(\n item?.child_customer,\n )} active agreement(s)`}\n
    • \n ) : (\n
    • No active agreements
    • \n )}\n \n )}\n {reduceContractLength > 0 ? (\n {\n e.stopPropagation();\n setShowContracts({ [item.id]: !showContracts[item.id] });\n }}\n aria-hidden=\"true\"\n >\n {showContracts[item.id]\n ? 'show less'\n : `+ ${contractLength - 1} more`}\n \n ) : (\n ''\n )}\n
    \n );\n };\n\n const generatePerformance = (\n value,\n toFixedValue,\n isTwiceReplace,\n prefix,\n suffix,\n ) => {\n if (isTwiceReplace) {\n return value\n ? `${\n prefix +\n value\n .toFixed(toFixedValue)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n .replace('.00', '')\n }${suffix}`\n : `${prefix}0${suffix}`;\n }\n return value\n ? `${prefix}${value\n .toFixed(toFixedValue)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}${suffix}`\n : `${prefix}0${suffix}`;\n };\n\n const renderAdPerformanceDifference = (actualValue, grayArrow, matrics) => {\n const value = actualValue;\n let selectedClass = '';\n let selectedArrow = '';\n\n if (value) {\n if (matrics === 'ACOS') {\n if (value.toString().includes('-')) {\n selectedClass = 'increase-rate';\n selectedArrow = ArrowUpIcon;\n } else {\n selectedClass = 'decrease-rate';\n selectedArrow = ArrowDownIcon;\n }\n } else if (grayArrow) {\n if (value.toString().includes('-')) {\n selectedClass = 'decrease-rate grey';\n selectedArrow = UpDowGrayArrow;\n } else {\n selectedClass = 'increase-rate grey';\n selectedArrow = UpDowGrayArrow;\n }\n } else if (value.toString().includes('-')) {\n selectedClass = 'decrease-rate';\n selectedArrow = ArrowDownIcon;\n } else {\n selectedClass = 'increase-rate';\n selectedArrow = ArrowUpIcon;\n }\n\n if (value.toString().includes('-')) {\n return (\n <>\n
    \n \"arrow-up\"\n {`${Number(value.toString().split('-')[1]).toFixed(2)} %`}\n
    \n \n );\n }\n\n return (\n <>\n
    \n \n {value} %\n
    \n \n );\n }\n if (value === 0) {\n return
    0%
    ;\n }\n return
    N/A
    ;\n };\n\n const getTableHeaderLabel = (label, item, accountType) => {\n return (\n \n {label}\n handleSortFilters(item?.value, accountType)}\n />\n \n );\n };\n\n // display customer list table headers\n const renderHeaders = () => {\n if (showPerformance || showDspAdPerformance) {\n return selectedColumns.map((item) =>\n getTableHeaderLabel(item?.label, item),\n );\n }\n if (showAdPerformance) {\n if (\n (selectedAccountTypes?.includes('Seller') &&\n selectedAccountTypes?.includes('Vendor')) ||\n selectedAccountTypes?.includes('Hybrid') ||\n selectedAccountTypes?.length === 0\n ) {\n return selectedColumns.map((item) => (\n <>\n {['TACOS', 'Total AD Spend']?.includes(item?.label) ? (\n getTableHeaderLabel(`${item?.label}`, item, 'Seller')\n ) : (\n <>\n {' '}\n {getTableHeaderLabel(`SC_${item?.label}`, item, 'Seller')}\n {getTableHeaderLabel(`VC_${item?.label}`, item, 'Vendor')}\n \n )}\n \n ));\n }\n if (selectedAccountTypes?.includes('Seller')) {\n return selectedColumns.map((item) =>\n ['TACOS', 'Total AD Spend']?.includes(item?.label)\n ? getTableHeaderLabel(`${item?.label}`, item, 'Seller')\n : getTableHeaderLabel(`SC_${item?.label}`, item, 'Seller'),\n );\n }\n if (selectedAccountTypes?.includes('Vendor')) {\n return selectedColumns.map((item) =>\n getTableHeaderLabel(`VC_${item?.label}`, item, 'Vendor'),\n );\n }\n }\n return (\n <>\n \n Account Type\n \n \n Status\n \n \n Active Agreements\n \n \n );\n };\n\n const getTableData = (column, item, dashboard) => {\n const metricsUnit = metricsCurrency[column?.key]?.type;\n return (\n \n {generatePerformance(\n item[dashboard]?.current_sum?.[column?.value],\n 2,\n 'isTwiceReplace',\n metricsUnit === 'currency' ? '$' : '',\n metricsUnit === 'percentage' ? '%' : '',\n )}\n {isCustomTimeFrame\n ? null\n : renderAdPerformanceDifference(\n item[dashboard]?.difference_data?.[column?.value],\n false,\n column?.value,\n )}\n \n );\n };\n\n // display customer list table data\n const displayTableData = (dashboard, item) => {\n const tableData = [];\n\n selectedColumns.map((column) => {\n tableData.push(getTableData(column, item, dashboard));\n return null;\n });\n return tableData;\n };\n\n // display customer list table data\n const displaySalesPerformanceTableData = (dashboard, item) => {\n const tableData = [];\n\n selectedColumns.map((column) => {\n if (Object.keys(column).includes('dashboard')) {\n tableData.push(getTableData(column, item, column?.dashboard));\n } else {\n tableData.push(getTableData(column, item, dashboard));\n }\n return null;\n });\n return tableData;\n };\n\n // display customer list table data\n const displaySPAdTableData = (dashboard, item) => {\n const tableData = [];\n const dashboardSC = `${dashboard}_sc`;\n const dashboardVC = `${dashboard}_vc`;\n\n if (\n (selectedAccountTypes?.includes('Seller') &&\n selectedAccountTypes?.includes('Vendor')) ||\n selectedAccountTypes?.includes('Hybrid') ||\n selectedAccountTypes?.length === 0\n ) {\n selectedColumns.map((column) => {\n if (['TACOS', 'Total AD Spend']?.includes(column?.label)) {\n tableData.push(getTableData(column, item, dashboardSC));\n } else {\n tableData.push(getTableData(column, item, dashboardSC));\n tableData.push(getTableData(column, item, dashboardVC));\n }\n return null;\n });\n } else if (selectedAccountTypes?.includes('Seller')) {\n selectedColumns.map((column) => {\n tableData.push(getTableData(column, item, dashboardSC));\n return null;\n });\n } else if (selectedAccountTypes?.includes('Vendor')) {\n selectedColumns.map((column) => {\n tableData.push(getTableData(column, item, dashboardVC));\n return null;\n });\n }\n return tableData;\n };\n\n // Rendering child brands\n const renderChildContractHtml = (parentCustomer, colSpanValue) => {\n return (\n \n \n \n \n \n \n \n );\n };\n\n const generateContractDetails = (item) => {\n return (\n <>\n {\n dispatch(setCustomerSelectedTab('performance'));\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n item?.id,\n )}?tab=performance&${\n item?.customer_account_type\n ? `&sub=${\n item.customer_account_type === 'Hybrid' ||\n item.customer_account_type === 'Seller'\n ? 'seller'\n : 'vendor'\n }`\n : ''\n }&nav=${params?.nav ? params?.nav : 'salePerformance'}`,\n );\n\n localStorage.setItem(\n 'noteFilters',\n JSON.stringify({\n archived: 'hide',\n team: [],\n notes: 'All Notes',\n q: '',\n }),\n );\n }}\n >\n \n {showCollapseButton(item?.id, item?.account_type)}\n {generateLogoCompanyNameAndGs(\n item,\n item?.company_name,\n item?.brand_growth_strategist,\n )}\n \n \n {item?.customer_account_type || item?.account_type === 'parent'\n ? displayAccountStatus(\n item?.account_type,\n item?.customer_account_type,\n )\n : ''}\n {item?.lwa && Object.keys(item?.lwa).length\n ? returnTooltipMessgeLWA(item)\n : ''}\n \n \n {generateCompanyStatus(item?.status)}\n \n \n {showContractsList(item)}\n \n \n {item?.child_customer?.length ? (\n renderChildContractHtml(item, 4)\n ) : showChildContracts?.id === item?.id ? (\n

    No child Brands Available

    \n ) : (\n ''\n )}\n \n \n
    \n \n \n \n );\n };\n\n // redirect to customer detail view\n const redirectToCustomerDetailView = (item) => {\n dispatch(setCustomerSelectedTab('performance'));\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(':id', item?.id)}?tab=performance&${\n item?.customer_account_type\n ? `&sub=${\n item.customer_account_type === 'Hybrid' ||\n item.customer_account_type === 'Seller'\n ? 'seller'\n : 'vendor'\n }`\n : ''\n }&nav=${params?.nav ? params?.nav : 'salePerformance'}`,\n );\n };\n\n // display partner list and metrics table data for sales, sponsord ad and dsp performance view\n const renderCustomerDetails = (item) => {\n if (showPerformance) {\n return (\n <>\n {\n redirectToCustomerDetailView(item);\n }}\n >\n \n {showCollapseButton(item?.id, item?.account_type)}\n {generateLogoCompanyNameAndGs(\n item,\n item?.company_name,\n item?.brand_growth_strategist,\n )}\n \n\n {displaySalesPerformanceTableData('sales_performance', item)}\n \n {item?.child_customer?.length ? (\n renderChildContractHtml(item, colSpanCount)\n ) : showChildContracts?.id === item?.id ? (\n

    No child Brands Available

    \n ) : (\n ''\n )}\n \n \n
    \n \n \n \n );\n }\n if (showAdPerformance) {\n return (\n <>\n {\n redirectToCustomerDetailView(item);\n }}\n >\n \n {showCollapseButton(item?.id, item?.account_type)}\n {generateLogoCompanyNameAndGs(\n item,\n item?.company_name,\n item?.ad_manager,\n )}\n \n {displaySPAdTableData('sponsored_ad_performance', item)}\n \n {item?.child_customer?.length ? (\n renderChildContractHtml(item, colSpanCount)\n ) : showChildContracts?.id === item?.id ? (\n

    No child Brands Available

    \n ) : (\n ''\n )}\n \n \n
    \n \n \n \n );\n }\n if (showDspAdPerformance) {\n return (\n <>\n {\n redirectToCustomerDetailView(item);\n }}\n >\n \n {showCollapseButton(item?.id, item?.account_type)}\n {generateLogoCompanyNameAndGs(\n item,\n item?.company_name,\n item?.ad_manager,\n )}\n \n {displayTableData('dsp_ad_performance', item)}\n \n {item?.child_customer?.length ? (\n renderChildContractHtml(item, colSpanCount)\n ) : showChildContracts?.id === item?.id ? (\n

    No child Brands Available

    \n ) : (\n ''\n )}\n \n \n
    \n \n \n \n );\n }\n if (showContractDetails) {\n return <>{generateContractDetails(item)};\n }\n return <>{generateContractDetails(item)};\n };\n\n // display pagination\n const displayPagination = () => {\n return customerListData?.length > 0 ? (\n
    \n \n\n \n
    \n ) : null;\n };\n\n // display customer list desktop view\n const displayCustomerListDesktopView = () => {\n return (\n
    \n
    \n
    \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n \n \n \n \n {renderHeaders()}\n \n \n \n {customerListData?.length === 0 ? (\n \n ) : (\n customerListData?.map((item) => renderCustomerDetails(item))\n )}\n \n
    \n Partner\n
    \n )}\n
    \n
    \n {displayPagination()}\n
    \n );\n };\n\n // display customer list tablet view\n const displayCustomerMobileandTabletView = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {isDesktop\n ? displayCustomerListDesktopView()\n : displayCustomerMobileandTabletView()}\n
    \n );\n}\n\nexport default CustomerListRightSidePanel;\nCustomerListRightSidePanel.defaultProps = {\n totalPageCount: null,\n pageNumber: 1,\n\n orderByFlag: false,\n isCustomTimeFrame: false,\n showContractDetails: true,\n showPerformance: false,\n showAdPerformance: false,\n showDspAdPerformance: false,\n\n params: {},\n isLoading: {},\n selectedValue: {},\n\n selectedColumns: [],\n customerListData: [],\n\n getCustomer: () => {},\n handlePageChange: () => {},\n handleSortFilters: () => {},\n redirectIfContractExists: () => {},\n};\n\nCustomerListRightSidePanel.propTypes = {\n totalPageCount: number,\n pageNumber: number,\n\n orderByFlag: bool,\n isCustomTimeFrame: bool,\n showContractDetails: bool,\n showPerformance: bool,\n showAdPerformance: bool,\n showDspAdPerformance: bool,\n\n params: shape({}),\n isLoading: shape({}),\n selectedValue: shape({}),\n\n selectedColumns: arrayOf(shape({})),\n customerListData: arrayOf(shape({})),\n\n getCustomer: func,\n handlePageChange: func,\n handleSortFilters: func,\n redirectIfContractExists: func,\n};\n\nconst FontIconWrapper = styled.div`\n float: left;\n padding-right: 13px;\n\n .icon {\n width: 10px;\n height: 15px;\n vertical-align: bottom;\n padding: 0px 3px;\n color: ${Theme.black};\n border-radius: 2px;\n\n &:hover,\n &.active {\n background: ${Theme.gray8};\n }\n }\n\n @media only screen and (min-width: 320px) and (max-width: 769px) {\n .icon {\n position: absolute;\n left: -1px;\n top: 23px;\n }\n }\n`;\n","import React, { useState, useEffect, useCallback, useRef } from 'react';\n\nimport Modal from 'react-modal';\nimport $ from 'jquery';\nimport dayjs from 'dayjs';\nimport queryString from 'query-string';\nimport ReactTooltip from 'react-tooltip';\nimport Select, { components } from 'react-select';\nimport { toast } from 'react-toastify';\nimport { DateRange } from 'react-date-range';\nimport { enGB } from 'react-date-range/src/locale';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { DebounceInput } from 'react-debounce-input';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../../theme/Theme';\nimport CustomerListFilters from './CustomerListFilters';\nimport CustomerListLeftSidePanel from './CustomerListLeftSidePanel';\nimport CustomerListRightSidePanel from './CustomerListRightSidePanel';\nimport { CustomerListPage } from './CustomerListStyle';\nimport { getCustomerDetails } from '../../../store/actions/customerState';\nimport { CloseIcon, InfoIcon, SearchIcon } from '../../../theme/images';\nimport {\n contractChoices,\n contractStatus,\n} from '../../../constants/FieldConstants';\nimport {\n ModalBox,\n Button,\n GetInitialName,\n DropdownIndicator,\n GlobalNavbar,\n ModalRadioCheck,\n CheckBox,\n InputSearchWithRadius,\n CustomDropDown,\n} from '../../../common';\nimport {\n PATH_AGREEMENT,\n performanceSortOptions,\n sadSortOptions,\n dadSortOptions,\n sortOptions,\n sortByOrderOptions,\n options,\n timeFrameFilters,\n bpAccountTypes,\n pipelineChoices,\n vendorSalesPerformanceOptions,\n columnsForVendorSalesPerformance,\n bpChannelTypes,\n} from '../../../constants';\nimport {\n getCustomerList,\n getGrowthStrategist,\n getStatus,\n getManagersList,\n getSellerType,\n getcontract,\n getAddendumStatus,\n} from '../../../api';\n\nconst salesSortOptions = sortOptions.concat(performanceSortOptions);\nconst sponsorAdSortOptions = sortOptions.concat(sadSortOptions);\nconst dspAdSortOptions = sortOptions.concat(dadSortOptions);\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '420px ',\n width: '100% ',\n minHeight: '390px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nexport default function CustomerList() {\n const mounted = useRef(false);\n const dispatch = useDispatch();\n\n const history = useHistory();\n const selectInputRef = useRef();\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [isBGSLoading, setIsBGSLoading] = useState({\n loader: false,\n type: 'options',\n });\n const [allowApiCall, setAllowApiCall] = useState(true);\n\n const [data, setData] = useState([]);\n const [count, setCount] = useState(null);\n const [pageNumber, setPageNumber] = useState();\n const [brandGrowthStrategist, setBrandGrowthStrategist] = useState([]);\n const [showCustomDateModal, setShowCustomDateModal] = useState(false);\n const [searchQuery, setSearchQuery] = useState(\n JSON.parse(localStorage.getItem('filters'))\n ? JSON.parse(localStorage.getItem('filters')).searchQuery\n : '',\n );\n const [status, setStatus] = useState([]);\n const [selectedValue, setSelectedValue] = useState({\n view: null,\n 'order-by': '-created_at',\n });\n\n const [filters, setFilters] = useState(\n JSON.parse(localStorage.getItem('filters')) || {\n status: [],\n contract_status: [],\n cd_user: [],\n user: [],\n ad_user: [],\n dsp_user: [],\n contract_type: [],\n agreement_type: '',\n customer_account_type: [],\n addendum_status: [],\n bpAccount: 'all',\n channel_type: 'all_channels',\n },\n );\n\n const [showContractDetails, setShowContractDetails] = useState(\n !(\n JSON.parse(localStorage.getItem('filters')) &&\n (JSON.parse(localStorage.getItem('filters')).showPerformance ||\n JSON.parse(localStorage.getItem('filters')).showAdPerformance ||\n JSON.parse(localStorage.getItem('filters')).showDspAdPerformance)\n ),\n );\n\n const [showPerformance, setShowPerformance] = useState(\n JSON.parse(localStorage.getItem('filters'))\n ? JSON.parse(localStorage.getItem('filters')).showPerformance\n : false,\n );\n\n const [showAdPerformance, setShowAdPerformance] = useState(\n JSON.parse(localStorage.getItem('filters'))\n ? JSON.parse(localStorage.getItem('filters')).showAdPerformance\n : false,\n );\n const [showDspAdPerformance, setShowDspAdPerformance] = useState(\n JSON.parse(localStorage.getItem('filters'))\n ? JSON.parse(localStorage.getItem('filters')).showDspAdPerformance\n : false,\n );\n\n const setDefaultVendorDashboard = () => {\n const list = [];\n const selectedColumnsFromLocalstorage =\n JSON.parse(localStorage.getItem('filters'))?.selectedColumns || [];\n\n selectedColumnsFromLocalstorage.map((item) => list.push(item.value));\n\n const OrderedRevVendorValues = [\n ...columnsForVendorSalesPerformance.ordered_revenue_tab,\n ].map((item) => item.value);\n\n const shippedCOGsVendorValues = [\n ...columnsForVendorSalesPerformance.shipped_cogs_tab,\n ].map((item) => item.value);\n\n const isOrderedRevFieldSelected = list.some((element) => {\n return OrderedRevVendorValues.includes(element);\n });\n\n const isShippedCOGsFieldSelected = list.some((element) => {\n return shippedCOGsVendorValues.includes(element);\n });\n\n if (isOrderedRevFieldSelected) {\n return 'ordered_revenue';\n }\n if (isShippedCOGsFieldSelected) {\n return 'shipped_cogs';\n }\n return 'ordered_revenue';\n };\n\n const [selectedVendorDashboard, setSelectedVendorDashboard] = useState(\n setDefaultVendorDashboard(),\n );\n\n const [activeVendorTab, setActiveVendorTab] = useState(\n setDefaultVendorDashboard === 'shipped_cogs'\n ? vendorSalesPerformanceOptions[1]\n : vendorSalesPerformanceOptions[0],\n );\n\n const selectedAccountTypes = JSON.parse(\n localStorage.getItem('filters'),\n )?.customer_account_type;\n\n const setColumns = () => {\n if (showPerformance) {\n return JSON.parse(localStorage.getItem('filters'))?.selectedColumns\n ? [...JSON.parse(localStorage.getItem('filters')).selectedColumns]\n : selectedAccountTypes?.includes('Vendor')\n ? [...columnsForVendorSalesPerformance?.[activeVendorTab?.value]]\n : [...performanceSortOptions];\n }\n if (showAdPerformance)\n return JSON.parse(localStorage.getItem('filters'))?.selectedColumns\n ? JSON.parse(localStorage.getItem('filters')).selectedColumns\n : [...sadSortOptions];\n if (showDspAdPerformance)\n return JSON.parse(localStorage.getItem('filters'))?.selectedColumns\n ? JSON.parse(localStorage.getItem('filters')).selectedColumns\n : [...dadSortOptions];\n return [];\n };\n\n const [selectedColumns, setSelectedColumns] = useState(setColumns());\n\n const [selectedTimeFrame, setSelectedTimeFrame] = useState({\n daily_facts: JSON.parse(localStorage.getItem('filters'))\n ? JSON.parse(localStorage.getItem('filters')).daily_facts\n : 'week',\n });\n\n const [orderByFlag, setOrderByFlag] = useState(\n JSON.parse(localStorage.getItem('filters'))\n ? JSON.parse(localStorage.getItem('filters')).sequence\n : false,\n );\n const [showOrderOption, setShowOrderOption] = useState(false);\n\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const currentDate = new Date();\n\n const setDefaultDate = (\n customerAccountTypes = filters?.customer_account_type,\n isShowPerformance = showPerformance,\n isShowAdPerformance = showAdPerformance,\n isShowDspAdPerformance = showDspAdPerformance,\n ) => {\n const d = new Date();\n if (isShowPerformance) {\n if (customerAccountTypes?.length) {\n if (customerAccountTypes?.length === 1) {\n if (\n customerAccountTypes?.includes('Seller') ||\n customerAccountTypes?.includes('Hybrid')\n ) {\n d.setDate(d.getDate() - 2);\n }\n if (customerAccountTypes?.includes('Vendor')) {\n d.setDate(d.getDate() - 3);\n }\n } else {\n d.setDate(d.getDate() - 2);\n }\n } else {\n d.setDate(d.getDate() - 2);\n }\n }\n if (isShowAdPerformance) {\n d.setDate(d.getDate() - 2);\n }\n if (isShowDspAdPerformance) {\n d.setDate(d.getDate() - 1);\n }\n return new Date(d);\n };\n\n const [isCustomDateApply, setIsCustomDateApply] = useState(false);\n const [customDateData, setCustomDateData] = useState([\n {\n startDate: setDefaultDate(),\n endDate: setDefaultDate(),\n key: 'bgsSelection',\n },\n ]);\n\n const [showSortDropdown, setShowSortDropdown] = useState(false);\n const dropdownRef = useRef(null);\n\n const [expiringSoon, setExpiringSoon] = useState(\n !!(\n JSON.parse(localStorage.getItem('filters')) &&\n JSON.parse(localStorage.getItem('filters')).sort_by === 'expiring_soon'\n ),\n );\n const { Option, SingleValue } = components;\n\n const [accountType, setAccountType] = useState([]);\n const [addendumStatus, setAddendumStatus] = useState([]);\n const [showCustomizeColModal, setShowCustomiseColModal] = useState(false);\n\n const [isCsv, setIsCsv] = useState(false);\n\n const params = queryString.parse(history.location.search);\n\n const [filterCollapse, setFilterCollapse] = useState({\n status: false,\n contract_status: false,\n agreement_type: false,\n customer_account_type: false,\n addendum_status: false,\n bpAccount: false,\n channel_type: false,\n pipeline: false,\n });\n\n const CustomDateFilter = (startDate, endDate, type) => {\n let sd = startDate;\n let ed = endDate;\n\n if (type === 'custom') {\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n setSelectedTimeFrame({\n daily_facts: 'custom',\n start_date: sd,\n end_date: ed,\n startDate,\n endDate,\n });\n }\n };\n\n const applyCustomDate = (\n startDate = customDateData[0].startDate,\n endDate = customDateData[0].endDate,\n ) => {\n CustomDateFilter(startDate, endDate, 'custom');\n setIsCustomDateApply(true);\n setShowCustomDateModal(false);\n };\n\n const setMaxDate = () => {\n const d = currentDate;\n if (showPerformance) {\n // PDV-8793 - Update Vendor Sales data to T-3\n const accType = filters?.customer_account_type;\n if (accType?.length === 1 && accType?.[0] === 'Vendor') {\n d.setDate(d.getDate() - 3);\n } else {\n d.setDate(d.getDate() - 2);\n }\n }\n if (showAdPerformance) {\n d.setDate(d.getDate() - 2);\n }\n if (showDspAdPerformance) {\n d.setDate(d.getDate() - 1);\n }\n\n return d;\n };\n\n const renderCustomDateModal = () => {\n return (\n \n {\n setShowCustomDateModal(false);\n\n if (selectedTimeFrame?.daily_facts !== 'custom') {\n setCustomDateData([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'bgsSelection',\n },\n ]);\n }\n }}\n role=\"presentation\"\n />\n \n
    \n

    Select Date Range

    \n {\n setCustomDateData([item.bgsSelection]);\n }}\n ranges={customDateData}\n moveRangeOnFirstSelection={false}\n showDateDisplay={false}\n maxDate={setMaxDate()}\n rangeColors={[Theme.baseColor]}\n weekdayDisplayFormat=\"EEEEE\"\n locale={enGB}\n />\n
    \n applyCustomDate()}\n type=\"button\"\n className=\"btn-primary on-boarding w-100\"\n >\n Apply\n \n
    \n
    \n
    \n \n );\n };\n\n // function added for PDV-8257 subbrand ticket\n // Purpose of writting this function:- when user directly click on contract from\n // customer list then in customerState object latest child customer is not getting save.\n // It causes different customer object in state and opened contract is of different user\n // and call this function on every click on contract from customer list\n const getCustomer = (selectedCustomerId) => {\n dispatch(getCustomerDetails(selectedCustomerId));\n };\n\n const customerList = useCallback(\n (currentPage) => {\n if (allowApiCall) {\n setIsLoading({ loader: true, type: 'page' });\n getCustomerList(\n currentPage,\n selectedValue,\n JSON.parse(localStorage.getItem('filters')) || filters,\n searchQuery,\n showContractDetails,\n showPerformance,\n showAdPerformance,\n showDspAdPerformance,\n expiringSoon,\n selectedTimeFrame,\n orderByFlag ? { sequence: 'desc' } : { sequence: 'asc' },\n selectedColumns,\n selectedVendorDashboard,\n ).then((response) => {\n if (mounted.current) {\n setData(response && response.data && response.data.results);\n setPageNumber(currentPage);\n setCount(response && response.data && response.data.count);\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n }\n },\n [\n allowApiCall,\n selectedValue,\n filters,\n searchQuery,\n showContractDetails,\n showPerformance,\n showAdPerformance,\n showDspAdPerformance,\n expiringSoon,\n selectedTimeFrame,\n orderByFlag,\n selectedColumns,\n selectedVendorDashboard,\n ],\n );\n\n // Download csv report\n useEffect(\n () => {\n if (isCsv) {\n toast.warning('Download might take few minutes.');\n\n getCustomerList(\n pageNumber || 1,\n selectedValue,\n JSON.parse(localStorage.getItem('filters')) || filters,\n searchQuery,\n showContractDetails,\n showPerformance,\n showAdPerformance,\n showDspAdPerformance,\n expiringSoon,\n selectedTimeFrame,\n orderByFlag ? { sequence: 'desc' } : { sequence: 'asc' },\n selectedColumns,\n selectedVendorDashboard,\n isCsv,\n ).then((response) => {\n if (response?.status === 200) {\n if (response?.data?.message) {\n toast.warning(response?.data?.message);\n }\n\n if (response?.data?.url)\n window.location.assign(response?.data?.url);\n }\n setIsCsv(false);\n });\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isCsv],\n );\n\n useEffect(() => {\n if (showAdPerformance || showDspAdPerformance) {\n const type = showAdPerformance\n ? 'sponsored_ad_dashboard'\n : 'dsp_ad_performance';\n getManagersList(type).then((adm) => {\n if (mounted.current) {\n if (adm && adm.data) {\n const list = [{ value: 'any', label: 'All' }]; // for select one user\n for (const brand of adm.data) {\n list.push({\n value: brand.id,\n label: `${brand.first_name} ${brand.last_name}`,\n icon:\n brand.documents &&\n brand.documents[0] &&\n Object.values(brand.documents[0]),\n });\n }\n setBrandGrowthStrategist(list);\n }\n }\n });\n } else {\n setIsBGSLoading({ loader: true, type: 'options' });\n getGrowthStrategist().then((gs) => {\n setIsBGSLoading({ loader: false, type: 'options' });\n\n if (mounted.current) {\n if (gs && gs.data) {\n const list = [{ value: 'any', label: 'All' }]; // for select one use\n for (const brand of gs.data) {\n list.push({\n value: brand.id,\n label: `${brand.first_name} ${brand.last_name}`,\n icon:\n brand.documents &&\n brand.documents[0] &&\n Object.values(brand.documents[0]),\n });\n }\n setBrandGrowthStrategist(list);\n }\n }\n });\n }\n }, [showAdPerformance, showDspAdPerformance]);\n\n // use effect for addendum status, partner status and partner account type\n useEffect(() => {\n mounted.current = true;\n getAddendumStatus().then((res) => {\n setAddendumStatus(res?.data);\n });\n\n getStatus().then((statusResponse) => {\n if (statusResponse && statusResponse.status === 200) {\n setStatus(statusResponse.data);\n }\n });\n\n getSellerType().then((sellerResponse) => {\n if (sellerResponse && sellerResponse.status === 200) {\n setAccountType(sellerResponse.data);\n }\n });\n return () => {\n mounted.current = false;\n };\n }, []);\n\n // use effect for customer list data\n useEffect(() => {\n mounted.current = true;\n\n customerList(1);\n return () => {\n mounted.current = false;\n };\n }, [customerList]);\n\n const handleClickOutside = (event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowSortDropdown(false);\n }\n };\n\n useEffect(() => {\n if (showSortDropdown)\n document.addEventListener('click', handleClickOutside, true);\n return () => {\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, [showSortDropdown]);\n\n const handlePageChange = (currentPage) => {\n localStorage.setItem('page', currentPage || 1);\n setPageNumber(currentPage);\n customerList(currentPage, selectedValue, filters, searchQuery);\n };\n const handleSortFilters = (orderKey, orderByAccountType) => {\n setOrderByFlag(!orderByFlag);\n setExpiringSoon(false);\n const selectedData = {\n ...selectedValue,\n 'order-by': orderKey,\n sequence: !orderByFlag,\n };\n\n if (showAdPerformance) {\n selectedData['order-by-account-type'] = orderByAccountType;\n }\n\n setSelectedValue({\n ...selectedData,\n });\n const filterData = {\n ...filters,\n sort_by: orderKey,\n sequence: !orderByFlag,\n };\n\n if (showAdPerformance) {\n filterData['order-by-account-type'] = orderByAccountType;\n }\n setFilters({\n ...filterData,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filterData,\n }),\n );\n };\n\n const IconOption = (dataProps) => (\n \n );\n\n const IconSingleOption = (dataProps) => (\n \n {dataProps.data && dataProps.data.label !== 'All' ? (\n dataProps.data.icon ? (\n \n ) : (\n \n )\n ) : null}\n \n {dataProps.data.label}\n \n \n );\n const SortOption = (dataProps) => (\n \n {dataProps.data.label === 'Sales Performance' ||\n dataProps.data.label === 'Accounts' ||\n dataProps.data.label === 'Sponsored Ad Performance' ||\n dataProps.data.label === 'DSP Ad Performance'\n ? 'View:'\n : 'Sort by:'}\n  \n \n {dataProps.data.label}\n \n \n );\n\n const handleSearch = (event, type) => {\n localStorage.setItem('page', 1);\n if (type === 'view') {\n setShowOrderOption(false);\n setExpiringSoon(false);\n\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n sort_by: '-created_at',\n }),\n );\n setSelectedValue({\n ...selectedValue,\n 'order-by': '-created_at',\n });\n setFilters({\n ...filters,\n sort_by: '-created_at',\n });\n\n if (event.value === 'contract_details') {\n setShowContractDetails(true);\n setShowPerformance(false);\n setShowAdPerformance(false);\n setShowDspAdPerformance(false);\n setFilters({\n ...filters,\n showContractDetails: true,\n showPerformance: false,\n showAdPerformance: false,\n showDspAdPerformance: false,\n sort_by: '-created_at',\n sequence: false,\n daily_facts: 'week',\n selectedColumns: [],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n showContractDetails: true,\n showPerformance: false,\n showAdPerformance: false,\n showDspAdPerformance: false,\n sort_by: '-created_at',\n sequence: false,\n daily_facts: 'week',\n selectedColumns: [],\n }),\n );\n\n setSelectedColumns([]);\n setShowCustomiseColModal(false);\n } else if (event.value === 'performance') {\n setShowContractDetails(false);\n setShowPerformance(true);\n setShowAdPerformance(false);\n setShowDspAdPerformance(false);\n setSelectedValue({\n ...selectedValue,\n 'order-by': '-created_at',\n });\n // PDV-9198 default date and custom range selected logic\n // if daily fact !== custom then set default end date\n // else check if daily fact is custom and end date is > than default date\n // then set end date as default date\n // default date calculated as per t-2(seller) or t-3(vendor) logic for Sponsored Ad\n const salesDefaultDate = setDefaultDate(\n filters?.customer_account_type,\n true,\n false,\n false,\n );\n\n if (selectedTimeFrame?.daily_facts !== 'custom') {\n setCustomDateData([\n {\n startDate: salesDefaultDate,\n endDate: salesDefaultDate,\n key: 'bgsSelection',\n },\n ]);\n } else if (new Date(customDateData?.[0]?.endDate) > salesDefaultDate) {\n setCustomDateData([\n {\n startDate: customDateData?.[0]?.startDate,\n endDate: salesDefaultDate,\n key: 'bgsSelection',\n },\n ]);\n }\n\n const filterData = {\n ...filters,\n showContractDetails: false,\n showPerformance: true,\n showAdPerformance: false,\n showDspAdPerformance: false,\n sort_by: '-created_at',\n selectedColumns: [...performanceSortOptions],\n };\n if (\n selectedAccountTypes?.includes('Vendor') &&\n selectedAccountTypes?.length === 1\n ) {\n filterData.selectedColumns =\n columnsForVendorSalesPerformance?.ordered_revenue_tab;\n filterData.vendor_dashboard = 'ordered_revenue';\n setSelectedVendorDashboard('ordered_revenue');\n setActiveVendorTab(vendorSalesPerformanceOptions[0]);\n }\n setFilters({\n ...filterData,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filterData,\n }),\n );\n\n setSelectedColumns([...filterData.selectedColumns]);\n setShowCustomiseColModal(false);\n } else if (event.value === 'sponsored_ad_performance') {\n setShowContractDetails(false);\n setShowPerformance(false);\n setShowAdPerformance(true);\n setShowDspAdPerformance(false);\n setSelectedValue({\n ...selectedValue,\n 'order-by': '-created_at',\n });\n\n // PDV-9198 default date and custom range selected logic\n // if daily fact !== custom then set default end date\n // else check if daily fact is custom and end date is > than default date\n // then set end date as default date\n // default date calculated as per t-2 logic for Sponsored Ad\n\n const spAdDefaultDate = setDefaultDate(\n filters?.customer_account_type,\n false,\n true,\n false,\n );\n if (selectedTimeFrame?.daily_facts !== 'custom') {\n setCustomDateData([\n {\n startDate: spAdDefaultDate,\n endDate: spAdDefaultDate,\n key: 'bgsSelection',\n },\n ]);\n } else if (new Date(customDateData?.[0]?.endDate) > spAdDefaultDate) {\n setCustomDateData([\n {\n startDate: customDateData?.[0]?.startDate,\n endDate: spAdDefaultDate,\n key: 'bgsSelection',\n },\n ]);\n }\n\n setFilters({\n ...filters,\n showContractDetails: false,\n showPerformance: false,\n showAdPerformance: true,\n showDspAdPerformance: false,\n selectedColumns: [...sadSortOptions],\n sort_by: '-created_at',\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n showContractDetails: false,\n showPerformance: false,\n showAdPerformance: true,\n showDspAdPerformance: false,\n selectedColumns: [...sadSortOptions],\n sort_by: '-created_at',\n }),\n );\n\n setSelectedColumns([...sadSortOptions]);\n setShowCustomiseColModal(false);\n } else if (event.value === 'dsp_ad_performance') {\n setShowContractDetails(false);\n setShowPerformance(false);\n setShowAdPerformance(false);\n setShowDspAdPerformance(true);\n setSelectedValue({\n ...selectedValue,\n 'order-by': '-created_at',\n });\n\n // PDV-9198 default date and custom range selected logic\n // if daily fact !== custom then set default end date\n // else check if daily fact is custom and end date is > than default date\n // then set end date as default date\n // default date calculated as per t-3 logic for DSP\n\n const dspDefaultDate = setDefaultDate(\n filters?.customer_account_type,\n false,\n false,\n true,\n );\n\n if (selectedTimeFrame?.daily_facts !== 'custom') {\n setCustomDateData([\n {\n startDate: dspDefaultDate,\n endDate: dspDefaultDate,\n key: 'bgsSelection',\n },\n ]);\n } else if (new Date(customDateData?.[0]?.endDate) > dspDefaultDate) {\n setCustomDateData([\n {\n startDate: customDateData?.[0]?.startDate,\n endDate: dspDefaultDate,\n key: 'bgsSelection',\n },\n ]);\n }\n\n setFilters({\n ...filters,\n showContractDetails: false,\n showPerformance: false,\n showAdPerformance: false,\n showDspAdPerformance: true,\n selectedColumns: [...dadSortOptions],\n sort_by: '-created_at',\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n showContractDetails: false,\n showPerformance: false,\n showAdPerformance: false,\n showDspAdPerformance: true,\n selectedColumns: [...dadSortOptions],\n sort_by: '-created_at',\n }),\n );\n\n setSelectedColumns([...dadSortOptions]);\n setShowCustomiseColModal(false);\n }\n }\n if (type === 'sort') {\n setShowOrderOption(false);\n if (event && event.order) {\n setShowOrderOption(true);\n }\n if (event.value === 'expiring_soon') {\n setExpiringSoon(true);\n setSelectedValue({ ...selectedValue, 'order-by': 'expiring_soon' });\n setFilters({\n ...filters,\n sort_by: event.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n sort_by: event.value,\n }),\n );\n } else {\n setExpiringSoon(false);\n setSelectedValue({ ...selectedValue, 'order-by': event.value });\n setFilters({\n ...filters,\n sort_by: event.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n sort_by: event.value,\n }),\n );\n }\n }\n if (type === 'stats') {\n if (event.value === 'custom') {\n setShowCustomDateModal(true);\n } else {\n setIsCustomDateApply(false);\n setSelectedTimeFrame({ daily_facts: event.value });\n setFilters({\n ...filters,\n daily_facts: event.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n daily_facts: event.value,\n }),\n );\n setCustomDateData([\n {\n startDate: setDefaultDate(),\n endDate: setDefaultDate(),\n key: 'bgsSelection',\n },\n ]);\n }\n }\n if (type === 'search') {\n setTimeout(() => {\n customerList(\n pageNumber,\n selectedValue,\n filters,\n event && event.target && event.target.value ? event.target.value : '',\n showPerformance,\n );\n }, 1000);\n }\n\n if (type === 'order') {\n setOrderByFlag(event.value);\n setSelectedValue({\n ...selectedValue,\n sequence: event.value,\n });\n setFilters({\n ...filters,\n sequence: event.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n sequence: event.value,\n }),\n );\n }\n };\n\n const setStartEndDateOfFilter = (customerAccountType) => {\n let startDate = customDateData?.[0]?.startDate;\n let endDate = customDateData?.[0]?.endDate;\n const defaultDate = setDefaultDate(customerAccountType);\n\n if (\n customerAccountType?.includes('Vendor') &&\n customerAccountType?.length === 1\n ) {\n if (startDate > defaultDate) {\n startDate = defaultDate;\n }\n if (endDate > defaultDate) {\n endDate = defaultDate;\n }\n }\n\n setCustomDateData([\n {\n startDate,\n endDate,\n key: 'bgsSelection',\n },\n ]);\n if (selectedTimeFrame?.daily_facts === 'custom')\n applyCustomDate(new Date(startDate), new Date(endDate));\n };\n\n // handle customer list filter events\n const handleFilters = (event, key, type, action) => {\n if (action === 'agreement_type') {\n setAllowApiCall(false);\n } else {\n setAllowApiCall(true);\n }\n\n // for multi select user\n // const handleFilters = (event, key, type) => {\n // for one select user\n\n // if (key === 'user')\n // localStorage.setItem(\n // 'filters',\n // JSON.stringify({\n // ...filters,\n // cd_user: event,\n // }),\n // );\n\n if (key === 'user') {\n if (showContractDetails) {\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n cd_user: event?.value,\n }),\n );\n }\n if (showPerformance) {\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n user: event?.value,\n }),\n );\n }\n if (showAdPerformance) {\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n ad_user: event?.value,\n }),\n );\n }\n if (showDspAdPerformance) {\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n dsp_user: event?.value,\n }),\n );\n }\n }\n localStorage.setItem('page', 1);\n if (key === 'unselected') {\n $('.checkboxes input:checkbox').prop('checked', false);\n $('.checkboxes input:radio').prop('checked', false);\n if (selectInputRef && selectInputRef.current)\n selectInputRef.current.select.clearValue();\n // if (selectInputRefMobile && selectInputRefMobile.current)\n // selectInputRefMobile.current.select.clearValue();\n setSearchQuery('');\n setFilters({\n ...filters,\n status: [],\n contract_status: [],\n contract_type: [],\n agreement_type: '',\n customer_account_type: [],\n cd_user: [],\n user: [],\n ad_user: [],\n dsp_user: [],\n searchQuery: '',\n pipeline: [],\n addendum_status: [],\n bpAccount: 'all',\n channel_type: 'all_channels',\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n status: [],\n contract_status: [],\n contract_type: [],\n agreement_type: '',\n customer_account_type: [],\n cd_user: [],\n user: [],\n ad_user: [],\n dsp_user: [],\n searchQuery: '',\n pipeline: [],\n addendum_status: [],\n bpAccount: 'all',\n channel_type: 'all_channels',\n }),\n );\n }\n\n if (type === 'status' && key !== 'unselected') {\n if (\n event.target.checked &&\n filters.status.indexOf(event.target.name) === -1\n ) {\n setFilters({\n ...filters,\n status: [...filters.status, event.target.name],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n status: [...filters.status, event.target.name],\n }),\n );\n } else {\n setFilters({\n ...filters,\n status: filters.status.filter((op) => op !== event.target.name),\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n status: filters.status.filter((op) => op !== event.target.name),\n }),\n );\n }\n }\n\n if (type === 'contract_status' && key !== 'unselected') {\n if (\n event.target.checked &&\n filters.contract_status.indexOf(event.target.name) === -1\n ) {\n setFilters({\n ...filters,\n contract_status: [...filters.contract_status, event.target.name],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n contract_status: [...filters.contract_status, event.target.name],\n }),\n );\n } else {\n setFilters({\n ...filters,\n contract_status: filters.contract_status.filter(\n (op) => op !== event.target.name,\n ),\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n contract_status: filters.contract_status.filter(\n (op) => op !== event.target.name,\n ),\n }),\n );\n }\n }\n\n // For Adandum Status\n if (type === 'addendum_status' && key !== 'unselected') {\n if (\n event.target.checked &&\n filters?.addendum_status?.indexOf(event.target.name) === -1\n ) {\n setFilters({\n ...filters,\n addendum_status: [...filters.addendum_status, event.target.name],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n addendum_status: [...filters.addendum_status, event.target.name],\n }),\n );\n } else {\n setFilters({\n ...filters,\n addendum_status: filters.addendum_status.filter(\n (op) => op !== event.target.name,\n ),\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n addendum_status: filters.addendum_status.filter(\n (op) => op !== event.target.name,\n ),\n }),\n );\n }\n }\n\n // for account type\n if (type === 'customer_account_type' && key !== 'unselected') {\n if (\n event.target.checked &&\n filters.customer_account_type.indexOf(event.target.name) === -1\n ) {\n const customerAccountType = [\n ...filters.customer_account_type,\n event.target.name,\n ];\n\n // set default time filters start and end date\n setStartEndDateOfFilter(customerAccountType);\n\n setSelectedValue({\n ...selectedValue,\n 'order-by': '-created_at',\n });\n\n const filterData = {\n ...filters,\n customer_account_type: [...customerAccountType],\n sort_by: '-created_at',\n };\n\n if (filters?.showPerformance) {\n if (\n customerAccountType?.includes('Vendor') &&\n customerAccountType?.length === 1\n ) {\n filterData.selectedColumns =\n columnsForVendorSalesPerformance?.ordered_revenue_tab;\n filterData.vendor_dashboard = 'ordered_revenue';\n setSelectedVendorDashboard('ordered_revenue');\n setActiveVendorTab(vendorSalesPerformanceOptions[0]);\n } else {\n filterData.selectedColumns = [...performanceSortOptions];\n filterData.vendor_dashboard = 'ordered_revenue';\n setSelectedVendorDashboard('ordered_revenue');\n setActiveVendorTab(vendorSalesPerformanceOptions[0]);\n }\n setSelectedColumns([...filterData.selectedColumns]);\n }\n\n if (\n filters?.showAdPerformance &&\n customerAccountType?.includes('Vendor') &&\n customerAccountType?.length === 1\n ) {\n filterData.selectedColumns = selectedColumns?.filter(\n (item) =>\n item?.label !== 'TACOS' && item?.label !== 'Total AD Spend',\n );\n setSelectedColumns([...filterData.selectedColumns]);\n }\n\n setFilters({\n ...filterData,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filterData,\n }),\n );\n } else {\n const customerAccountType = filters.customer_account_type.filter(\n (op) => op !== event.target.name,\n );\n\n // set default time filters start and end date\n setStartEndDateOfFilter(customerAccountType);\n\n setSelectedValue({\n ...selectedValue,\n 'order-by': '-created_at',\n });\n const filterData = {\n ...filters,\n sort_by: '-created_at',\n\n customer_account_type: filters.customer_account_type.filter(\n (op) => op !== event.target.name,\n ),\n };\n\n if (\n customerAccountType?.includes('Vendor') &&\n customerAccountType?.length === 1\n ) {\n if (filters?.showPerformance) {\n filterData.selectedColumns =\n columnsForVendorSalesPerformance?.ordered_revenue_tab;\n setSelectedColumns([...filterData.selectedColumns]);\n filterData.vendor_dashboard = 'ordered_revenue';\n setSelectedVendorDashboard('ordered_revenue');\n setActiveVendorTab(vendorSalesPerformanceOptions[0]);\n }\n\n if (filters?.showAdPerformance) {\n filterData.selectedColumns = selectedColumns?.filter(\n (item) =>\n item?.label !== 'TACOS' && item?.label !== 'Total AD Spend',\n );\n setSelectedColumns([...filterData.selectedColumns]);\n }\n }\n\n if (\n customerAccountType?.includes('Seller') &&\n customerAccountType?.length === 1\n ) {\n if (filters?.showPerformance) {\n filterData.selectedColumns = performanceSortOptions;\n setSelectedColumns([...filterData.selectedColumns]);\n filterData.vendor_dashboard = '';\n }\n }\n\n setFilters({\n ...filterData,\n });\n\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filterData,\n }),\n );\n }\n }\n\n // for contract type\n if (type === 'contract_type' && key !== 'unselected') {\n if (\n event.target.checked &&\n filters.contract_type.indexOf(event.target.name) === -1\n ) {\n setFilters({\n ...filters,\n contract_type: [...filters.contract_type, event.target.name],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n contract_type: [...filters.contract_type, event.target.name],\n }),\n );\n } else {\n setFilters({\n ...filters,\n contract_type: filters.contract_type.filter(\n (op) => op !== event.target.name,\n ),\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n contract_type: filters.contract_type.filter(\n (op) => op !== event.target.name,\n ),\n }),\n );\n }\n }\n\n // for single user selected\n if (type === 'brand') {\n if (action.action === 'clear') {\n setFilters({\n ...filters,\n cd_user: [],\n user: [],\n ad_user: [],\n dsp_user: [],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n cd_user: [],\n user: [],\n ad_user: [],\n dsp_user: [],\n }),\n );\n } else {\n if (showContractDetails) {\n if (event.value === 'any') {\n setFilters({\n ...filters,\n cd_user: [],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n cd_user: [],\n }),\n );\n } else {\n setFilters({\n ...filters,\n\n cd_user: event.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n\n cd_user: event.value,\n }),\n );\n }\n }\n if (showPerformance) {\n if (event.value === 'any') {\n setFilters({\n ...filters,\n user: [],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n user: [],\n }),\n );\n } else {\n setFilters({\n ...filters,\n user: event.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n\n user: event.value,\n }),\n );\n }\n }\n\n if (showAdPerformance) {\n if (event.value === 'any') {\n setFilters({\n ...filters,\n ad_user: [],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n ad_user: [],\n }),\n );\n } else {\n setFilters({\n ...filters,\n\n ad_user: event.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n\n ad_user: event.value,\n }),\n );\n }\n }\n\n if (showDspAdPerformance) {\n if (event.value === 'any') {\n setFilters({\n ...filters,\n dsp_user: [],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n dsp_user: [],\n }),\n );\n } else {\n setFilters({\n ...filters,\n\n dsp_user: event.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n\n dsp_user: event.value,\n }),\n );\n }\n }\n }\n }\n\n if (type === 'radio') {\n if (event.target.checked) {\n if (action === 'pipeline') {\n setFilters({\n ...filters,\n pipeline: event.target.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n pipeline: event.target.value,\n }),\n );\n }\n if (action === 'channel_type') {\n setFilters({\n ...filters,\n channel_type: event.target.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n channel_type: event.target.value,\n }),\n );\n }\n if (action === 'bpAccount') {\n setFilters({\n ...filters,\n bpAccount: event.target.value,\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n bpAccount: event.target.value,\n }),\n );\n }\n if (action === 'agreement_type') {\n setFilters({\n ...filters,\n agreement_type: event?.target?.value,\n contract_type: [],\n });\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n agreement_type: event?.target?.value,\n contract_type: [],\n }),\n );\n }\n }\n }\n };\n\n const getSelectPlaceholder = (item) => {\n if (item === 'user') {\n return 'All';\n }\n\n if (item === 'sort') {\n if (isDesktop) {\n return 'Sort by: Recently Added';\n }\n return 'Sort by';\n }\n if (item === 'view') {\n if (isDesktop) {\n return 'View: Accounts';\n }\n return 'View';\n }\n if (item === 'stats') {\n if (isDesktop) {\n return 'Stats For: Last 7 days';\n }\n return 'Stats For';\n }\n if (item === 'order') {\n return 'Highest to Lowest';\n }\n return '';\n };\n\n const renderCustomDateSubLabel = (dataProps) => {\n if (selectedTimeFrame.daily_facts === 'custom' && isCustomDateApply) {\n return `From- ${dayjs(customDateData?.[0]?.startDate).format(\n 'D MMM, YYYY',\n )} To- ${dayjs(customDateData?.[0]?.endDate).format('D MMM, YYYY')}`;\n }\n\n return dataProps.data.sub;\n };\n\n const filterOption = (dataProps) => (\n \n );\n\n const TimeFrameFilters = (dataProps) => (\n \n Stats For: \n \n {dataProps.data.label}\n \n
    \n {renderCustomDateSubLabel(dataProps)}\n
    \n
    \n );\n const getSelectComponents = (key) => {\n if (key === 'user') {\n return {\n Option: IconOption,\n SingleValue: IconSingleOption,\n DropdownIndicator,\n };\n }\n if (key === 'sort') {\n if (isDesktop) {\n return {\n SingleValue: SortOption,\n DropdownIndicator,\n };\n }\n\n return DropdownIndicator;\n }\n if (key === 'stats') {\n if (isDesktop) {\n return {\n Option: filterOption,\n SingleValue: TimeFrameFilters,\n DropdownIndicator,\n };\n }\n return DropdownIndicator;\n }\n if (key === 'view') {\n if (isDesktop) {\n return {\n SingleValue: SortOption,\n DropdownIndicator,\n };\n }\n return DropdownIndicator;\n }\n return DropdownIndicator;\n };\n const bindDropDownValue = (item) => {\n if (item === 'user') {\n let selectedUserValue = [];\n if (filters.cd_user && showContractDetails) {\n selectedUserValue = brandGrowthStrategist.filter(\n (option) => filters.cd_user === option.value,\n );\n }\n if (filters.user && showPerformance) {\n return brandGrowthStrategist.filter(\n (option) => filters.user === option.value,\n );\n }\n if (filters.ad_user && showAdPerformance) {\n return brandGrowthStrategist.filter(\n (option) => filters.ad_user === option.value,\n );\n }\n\n if (filters.dsp_user && showDspAdPerformance) {\n return brandGrowthStrategist.filter(\n (option) => filters.dsp_user === option.value,\n );\n }\n\n if (!selectedUserValue.length) {\n return [{ value: 'any', label: 'All' }];\n }\n\n return selectedUserValue;\n\n // return [{ value: 'any', label: 'Any' }];\n // return brandGrowthStrategist.filter(\n // (option) => filters.cd_user === option.value,\n // );\n }\n\n if (item === 'sort') {\n if (!isDesktop) {\n if (showPerformance) {\n return (\n selectedValue[item.key] ||\n salesSortOptions.filter(\n (op) => op.value === selectedValue['order-by'],\n )\n );\n }\n if (showAdPerformance) {\n return (\n selectedValue[item.key] ||\n sponsorAdSortOptions.filter(\n (op) => op.value === selectedValue['order-by'],\n )\n );\n }\n if (showDspAdPerformance) {\n return (\n selectedValue[item.key] ||\n dspAdSortOptions.filter(\n (op) => op.value === selectedValue['order-by'],\n )\n );\n }\n return (\n selectedValue[item.key] ||\n sortOptions.filter((op) => op.value === selectedValue['order-by'])\n );\n }\n return (\n selectedValue[item.key] ||\n sortOptions.filter((op) => op.value === selectedValue['order-by'])\n );\n }\n\n if (item === 'stats') {\n return timeFrameFilters.filter(\n (op) => op.value === selectedTimeFrame.daily_facts,\n );\n }\n\n if (item === 'order') {\n return sortByOrderOptions.filter((op) => op.value === orderByFlag);\n }\n\n if (showPerformance) {\n return [{ value: 'performance', label: 'Sales Performance' }];\n }\n if (showAdPerformance) {\n return [\n {\n value: 'sponsored_ad_performance',\n label: 'Sponsored Ad Performance',\n },\n ];\n }\n if (showDspAdPerformance) {\n return [\n {\n value: 'dsp_ad_performance',\n label: 'DSP Ad Performance',\n },\n ];\n }\n return [{ value: 'contract_details', label: 'Accounts' }];\n };\n\n const getDropDownOptions = (optionsFor) => {\n switch (optionsFor) {\n case 'user':\n return brandGrowthStrategist;\n case 'sort':\n if (!isDesktop) {\n if (showPerformance) {\n return salesSortOptions;\n }\n if (showAdPerformance) {\n return sponsorAdSortOptions;\n }\n if (showDspAdPerformance) {\n return dspAdSortOptions;\n }\n return sortOptions;\n }\n return sortOptions;\n case 'stats':\n return timeFrameFilters;\n\n case 'order':\n return sortByOrderOptions;\n default:\n return options;\n }\n };\n const generateDropdown = (item, reff = null) => {\n const searchFor =\n item === 'order'\n ? 'order'\n : item === 'sort'\n ? 'sort'\n : item === 'stats'\n ? 'stats'\n : 'view';\n return (\n
    \n \n item === 'user'\n ? handleFilters(event, item, 'brand', action)\n : handleSearch(event, searchFor)\n }\n value={bindDropDownValue(item)}\n // isMulti={item === 'user'}\n isMulti={false}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n components={getSelectComponents(item)}\n componentsValue={item === 'user' ? { Option: IconOption } : ''}\n isLoading={isBGSLoading.loader}\n />\n
    \n );\n };\n\n useEffect(() => {\n if (!isDesktop && selectedValue['order-by'] !== null) {\n sortOptions.forEach((element) => {\n if (selectedValue['order-by'] !== element.value) {\n setShowOrderOption(true);\n }\n });\n }\n }, [isDesktop, selectedValue, setShowOrderOption]);\n\n const displayFilterCollapseIcon = (filterType) => {\n const showCoollapseIcon = Object.prototype.hasOwnProperty.call(\n filterCollapse,\n filterType,\n );\n\n return showCoollapseIcon ? (\n {\n setFilterCollapse({\n ...filterCollapse,\n [filterType]: !filterCollapse?.[filterType],\n });\n }}\n >\n \n \n ) : null;\n };\n\n const redirectIfContractExists = (type, id) => {\n getcontract(type.contract_id).then((res) => {\n if (res?.status === 200) {\n if (res?.data?.contract_url) {\n history.push({\n pathname: `${PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n type.contract_id,\n )}`,\n state: `${history.location.pathname}`,\n });\n }\n }\n });\n };\n\n // display input search with radius\n const displayInputSearchWithRadius = () => {\n return (\n \n {\n setSearchQuery(event?.target?.value);\n setFilters({\n ...filters,\n searchQuery: event?.target?.value,\n });\n localStorage.setItem('page', 1);\n localStorage.setItem(\n 'filters',\n JSON.stringify({\n ...filters,\n searchQuery: event?.target?.value,\n }),\n );\n }}\n onKeyPress={(event) => {\n if (event.key === 'Enter') {\n handleSearch(event, 'search');\n }\n }}\n value={searchQuery || (filters && filters.searchQuery) || ''}\n />\n\n Contact First, Last Name or Email\"\n data-for=\"info\"\n className=\"info-icon\"\n />\n\n \n\n \"search\"\n \n );\n };\n\n // display bgs, ad and dsp manager filter\n const displayManagerFilter = () => {\n return (\n <>\n {showAdPerformance ? (\n
    Sponsored Ad Manager
    \n ) : showDspAdPerformance ? (\n
    DSP Ad Manager
    \n ) : (\n
    Growth Strategist
    \n )}\n \n {generateDropdown('user', selectInputRef)}\n \n \n );\n };\n\n // display radio check filter for various partner parameter types\n const displayRadioCheckFilters = (filterLabel, filterType, view) => {\n const dataArray =\n filterType === 'bpAccount'\n ? bpAccountTypes\n : filterType === 'pipeline'\n ? pipelineChoices\n : filterType === 'channel_type'\n ? bpChannelTypes\n : [];\n return (\n
    \n
    \n {filterLabel} {displayFilterCollapseIcon(filterType)}\n
    \n
    {' '}\n \n
      \n {dataArray?.map((item) => (\n
    • \n \n \n {item?.label}\n \n handleFilters(event, item, 'radio', filterType)\n }\n checked={filters?.[filterType] === item?.value}\n />\n \n \n \n
    • \n ))}\n
    \n
    \n
    \n );\n };\n\n // display checkbox filter for various partner parameter types\n const displayPartnerCheckboxesFilter = (filterLabel, filterType) => {\n const dataArray =\n filterType === 'status'\n ? status\n : filterType === 'customer_account_type'\n ? accountType\n : filterType === 'contract_status'\n ? contractStatus\n : filterType === 'addendum_status'\n ? addendumStatus\n : [];\n\n return (\n
    \n
    \n {filterLabel}\n {displayFilterCollapseIcon(filterType)}\n
    \n
    \n
    \n
      \n {dataArray?.map((item) => {\n const inputId = `${filterType}-${item?.value}`;\n return (\n
    • \n \n \n {item?.label === 'Pending Contract'\n ? 'Pending Agreement'\n : item?.label}\n \n handleFilters(event, item, filterType)\n }\n checked={\n filters?.[filterType]?.find(\n (op) => op === item?.value,\n ) || ''\n }\n />\n \n \n \n
    • \n );\n })}\n
    \n
    \n
    \n );\n };\n\n // get contract names\n const getContractNames = () => {\n const filtereData = contractChoices.filter((op) =>\n filters.contract_type.find((ele) => ele === op.value),\n );\n const formattedData = [];\n for (const type of filtereData) {\n formattedData.push(type.label);\n }\n if (formattedData.length > 1) {\n const addAnd = formattedData.pop();\n formattedData.push(`and ${addAnd}`);\n return formattedData?.join(', ')?.replace(', and', ' and');\n }\n return formattedData;\n };\n\n // display partner agreement types option\n const displayPartnerAgreementTypesOption = (label, key, view) => {\n return (\n
    \n
      \n
    • \n \n \n {label}\n \n handleFilters(event, key, 'radio', 'agreement_type')\n }\n checked={filters?.agreement_type === key}\n />\n \n \n \n
    • \n
    \n \n
      \n {contractChoices.map((item) => {\n const checkboxId = `${key}-${item?.value}`;\n return (\n
    • \n \n \n {item?.label}\n \n handleFilters(event, item, 'contract_type')\n }\n checked={\n filters?.agreement_type === key &&\n filters?.contract_type?.find(\n (op) => op === item?.value,\n )\n }\n />\n \n \n \n
    • \n );\n })}\n
    \n
    \n {key === 'multiple' &&\n filters?.agreement_type === key &&\n filters?.contract_type?.length\n ? ` Displaying partners who hold ${getContractNames()} agreement(s).`\n : ''}\n {key === 'individual' &&\n filters?.agreement_type === key &&\n filters?.contract_type?.length\n ? ` Displaying partners who hold any types of agreement(s) selected.`\n : ''}\n
    \n
    \n
    \n );\n };\n\n // display partner agreement types filters\n const displayPartnerAgreementTypesFilters = (view) => {\n return (\n
    \n
    \n Partner Agreements {displayFilterCollapseIcon('agreement_type')}\n
    \n
    \n
    \n {displayPartnerAgreementTypesOption(\n 'Multiple Agreements',\n 'multiple',\n view,\n )}\n {displayPartnerAgreementTypesOption(\n 'Individual Agreements',\n 'individual',\n view,\n )}\n
    \n
    \n );\n };\n\n // display customer list desktop view\n const displayCustomerListRightSidePanel = () => {\n return (\n \n );\n };\n\n return (\n <>\n \n \n
    \n {renderCustomDateModal()}\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n\n {displayCustomerListRightSidePanel()}\n
    \n
    \n
    \n
    \n
    \n \n );\n}\n","/* eslint-disable react/destructuring-assignment */\n/* eslint-disable react/prop-types */\n\nimport React, { useState, useEffect, useCallback } from 'react';\n\nimport Select, { components } from 'react-select';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { DebounceInput } from 'react-debounce-input';\nimport { toast } from 'react-toastify';\nimport Modal from 'react-modal';\nimport 'react-toastify/dist/ReactToastify.css';\n\nimport {\n Tabs,\n WhiteCard,\n InputSearchWithRadius,\n DropDownSelect,\n Table,\n PageLoader,\n Button,\n ModalBox,\n Status,\n} from '../../../common';\nimport {\n SearchIcon,\n Logo,\n RequestPlan,\n CaretUp,\n} from '../../../theme/images/index';\nimport Theme from '../../../theme/Theme';\n\nimport { getProductCatalog, requestProductAssets } from '../../../api';\n\nconst AccountSetupcustomStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '480px ',\n width: '100% ',\n minHeight: '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\nconst productStatusColor = {\n scheduled: {\n backgroundColor: Theme.extraLightYellow,\n pointColor: Theme.yellow,\n },\n optimized: {\n backgroundColor: '#E3F2D2',\n pointColor: Theme.lightGreen,\n },\n 'assets received': { backgroundColor: '#D6EEF2', pointColor: '#30A8BD' },\n 'assets requested': {\n backgroundColor: Theme.lightOrange,\n pointColor: Theme.orange,\n },\n unoptimized: { backgroundColor: Theme.gray8, pointColor: Theme.gray25 },\n};\nexport default function ProductCatalog({\n id,\n // requestedProducts,\n // setRequestedProducts,\n}) {\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [viewComponent, setViewComponent] = useState('product');\n const [data, setData] = useState([]);\n const [productAssetsRequest, setProductAssetsRequest] = useState({\n showModal: false,\n });\n const [requestedProducts, setRequestedProducts] = useState([]);\n\n const [filters, setFilters] = useState({ 'order-by': 'title' });\n const sortOptions = [\n { label: 'Name (A-Z)', value: 'title' },\n {\n label: 'Name (Z-A)',\n value: '-title',\n },\n ];\n\n const getData = useCallback(() => {\n setIsLoading({ loader: true, type: 'page' });\n\n getProductCatalog(id, filters).then((response) => {\n setData(response && response.data && response.data.results);\n setIsLoading({ loader: false, type: 'page' });\n setRequestedProducts([]);\n });\n }, [id, filters]);\n\n const onRequestAssets = () => {\n setIsLoading({ loader: true, type: 'button' });\n\n const requestData = { customer: id, products: requestedProducts };\n requestProductAssets(requestData).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n\n setProductAssetsRequest({ showModal: false });\n if (res && res.status === 200) {\n toast.success(\n `Product assets have been requested for ${requestedProducts.length} ASIN's`,\n );\n getData();\n }\n });\n };\n\n const statusOptions = [\n { label: 'Any Status', value: '' },\n {\n label: 'Scheduled',\n value: 'scheduled',\n },\n {\n label: 'Optimized',\n value: 'optimized',\n },\n {\n label: 'Assets Received',\n value: 'assets received',\n },\n {\n label: 'Assets Requested',\n value: 'assets requested',\n },\n {\n label: 'Unoptimized',\n value: 'unoptimized',\n },\n ];\n\n useEffect(() => {\n getData();\n }, [getData]);\n\n const onRequestClick = (item) => {\n setRequestedProducts([...requestedProducts, item.id]);\n };\n const onClickOfCheckbox = (event, item) => {\n setRequestedProducts(\n requestedProducts.filter((product) => product !== item.id),\n );\n };\n const generateHTML = (item) => {\n return (\n
    \n \n \n {' '}\n
    \n \n {' '}\n {' '}\n
    \n
    \n
    {item.title || ''}
    \n
    \n {item.brand || ''} / {item.asin || ''} /{' '}\n {item.total_variant || 0} Variations\n
    \n
    \n \n \n {/* \n \n {item.status}\n
    */}\n \n \n \n {item.status === 'unoptimized' ? (\n requestedProducts.length &&\n requestedProducts.includes(item.id) ? (\n
    Selected
    \n ) : (\n onRequestClick(item)}\n >\n {' '}\n {' '}\n Request\n
    \n )\n ) : (\n ''\n )}\n \n \n
    \n );\n };\n const getSelectPlaceholder = (item) => {\n if (item === 'sort') {\n return 'Sort by';\n }\n if (item === 'sort') {\n return 'Any Status';\n }\n\n return '';\n };\n const { SingleValue } = components;\n\n const SortOption = (props) => (\n \n {props.data.label === 'Name (A-Z)' || props.data.label === 'Name (Z-A)'\n ? 'Sort by:'\n : ''}\n  \n \n {props.data.label}\n \n \n );\n\n const getDropDownOptions = (optionsFor) => {\n if (optionsFor === 'sort') {\n return sortOptions;\n }\n\n if (optionsFor === 'status') {\n return statusOptions;\n }\n return '';\n };\n\n const handleFilters = (event, item) => {\n if (item === 'sort') {\n setFilters({\n ...filters,\n 'order-by': event.value,\n });\n }\n if (item === 'status') {\n setFilters({\n ...filters,\n status: event.value,\n });\n }\n };\n const DropdownIndicator = (props) => {\n return (\n components.DropdownIndicator && (\n \n \n \n )\n );\n };\n\n const getSelectComponents = (key) => {\n if (key === 'sort') {\n return {\n SingleValue: SortOption,\n DropdownIndicator,\n };\n }\n\n if (key === 'status') {\n return {\n SingleValue: SortOption,\n DropdownIndicator,\n };\n }\n return '';\n };\n\n const bindDropDownValue = (item) => {\n if (item === 'sort') {\n return sortOptions[0];\n }\n if (item === 'status') {\n return statusOptions[0];\n }\n return '';\n };\n const generateDropdown = (item) => {\n return (\n <>\n handleFilters(event, item, action)}\n defaultValue={bindDropDownValue(item)}\n isMulti={false}\n components={getSelectComponents(item)}\n />\n \n );\n };\n\n const displaySearchSortPanel = () => {\n return (\n
    \n
    \n {' '}\n \n {\n setFilters({\n ...filters,\n q: event.target.value,\n });\n }}\n />\n \"search\"\n \n
    \n
    \n {' '}\n \n {' '}\n {generateDropdown('sort')}\n \n
    \n
    \n {' '}\n {generateDropdown('status')}\n
    \n
    \n );\n };\n\n return (\n <>\n
    \n \n {' '}\n \n
      \n setViewComponent('product')}\n role=\"presentation\"\n >\n Product Catalog\n \n setViewComponent('schedule')}\n role=\"presentation\"\n >\n Schedule\n \n
    \n
    \n {displaySearchSortPanel()}\n {(data && data.length === 0) || data === undefined ? (\n
    No record found.
    \n ) : (\n <>\n {viewComponent === 'product' ? (\n <>\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n \n {data &&\n data.map((item) => (\n \n {generateHTML(item)}\n \n ))}\n \n
    \n Product Name / ASIN / SKU\n \n Status\n \n {' '}\n  \n
    \n \n
    \n
    \n
    \n Product Name / ASIN / SKU\n
    \n
    Status
    \n
    \n
    \n
    \n {data &&\n data.map((item) => (\n \n \n
    \n
    \n
    \n \n \n {' '}\n
    \n
    \n
    \n {item.title || ''}\n
    \n
    \n {item.brand || ''} / {item.asin || ''}{' '}\n / {item.total_variant || 0} Variations\n
    \n
    \n
    \n
    \n \n {' '}\n \n \n {' '}\n {item.status}{' '}\n \n
    \n
    \n
    \n {item.status === 'unoptimized' ? (\n onRequestClick(item)}\n >\n {' '}\n {' '}\n Request\n
    \n ) : (\n ''\n )}\n
    \n
    \n \n \n ))}\n
    \n \n \n )}\n \n ) : (\n ''\n )}\n \n )}\n \n {requestedProducts.length ? (\n
    \n \n
    \n
    \n
    \n \n {requestedProducts.length === 1\n ? `${requestedProducts.length} product selected`\n : `${requestedProducts.length} products selected`}\n \n\n \n setProductAssetsRequest({ showModal: true })\n }\n >\n Request Assets\n \n\n setRequestedProducts([])}\n >\n Cancel\n \n
    \n
    \n
    \n \n
    \n ) : (\n ''\n )}\n\n \n \n
    \n
    \n Confirm Request\n
    \n

    \n {' '}\n You're about to trigger an email to the brand partner\n requesting product assets for\n {requestedProducts.length} ASIN's\n

    \n

    \n This action cannot be undone once sent\n

    \n\n
    \n onRequestAssets()}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\"\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Request Assets'\n )}\n \n setProductAssetsRequest({ showModal: false })}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \"\n >\n Cancel\n \n
    \n
    \n
    \n \n
    \n \n );\n}\n\nProductCatalog.propTypes = {\n id: PropTypes.string.isRequired,\n};\n\nconst CustomerDetailsFooter = styled.div`\n border: 1px solid ${Theme.gray7};\n bottom: 0px;\n left: 0px;\n\n background: ${Theme.white};\n position: fixed;\n min-height: 60px;\n z-index: 2;\n box-shadow: inset 0 1px 0 0 #e2e2ea;\n /* padding-top: 270px; */\n width: 100%;\n padding: 8px 0;\n\n .skip-step {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n margin-right: 20px;\n }\n @media only screen and (max-width: 330px) {\n .skip-step {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n margin-right: 10px;\n }\n }\n`;\n\nconst TableMobileView = styled.div`\n display: none;\n @media only screen and (max-width: 767px) {\n display: block;\n .table-mob-header {\n border-top: 1px solid ${Theme.gray11};\n padding: 13px 0px;\n text-transform: uppercase;\n color: ${Theme.gray40};\n font-size: 11px;\n background: ${Theme.white};\n font-family: ${Theme.baseFontFamily};\n }\n .table-mob-body {\n border-top: 1px solid ${Theme.gray11};\n border-bottom: 1px solid ${Theme.gray11};\n padding: 13px 4px 13px 0;\n cursor: pointer;\n font-size: ${Theme.extraNormal};\n .product-catalog-image {\n input.check-box-product-list {\n display: none;\n }\n .checkmark {\n position: absolute;\n border-radius: 4px;\n width: 20px;\n height: 20px;\n top: 20px;\n left: 10px;\n }\n\n input:checked ~ .checkmark {\n background-color: ${Theme.orange};\n color: white;\n border: none;\n top: 10px;\n left: 23px;\n }\n\n input:checked ~ .checkmark:after {\n display: block;\n }\n\n .checkmark:after {\n content: '';\n position: absolute;\n display: none;\n left: 6px;\n top: 3px;\n width: 6px;\n height: 11px;\n border: solid ${Theme.white};\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n .product-image {\n width: 37px;\n height: 37px;\n margin-right: 10px;\n float: left;\n display: flex;\n align-items: center;\n flex-direction: row;\n }\n }\n .product-data {\n float: left;\n\n .product-name {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 270px;\n }\n .product-id {\n color: ${Theme.gray90};\n font-weight: 500;\n }\n }\n /* .status {\n background-color: #e3f2d2;\n border-radius: 5px;\n max-width: 99px;\n text-align: right;\n padding: 5px 12px;\n color: ${Theme.black};\n position: relative;\n\n &.unoptimized {\n background-color: ${Theme.gray8};\n max-width: 113px;\n }\n\n &.scheduled {\n background-color: ${Theme.extraLightYellow};\n max-width: 99px;\n }\n &.assets-received {\n background-color: #d6eef2;\n max-width: 132px;\n }\n &.assets-requested {\n background-color: ${Theme.lightOrange};\n max-width: 132px;\n }\n\n .bullet-point {\n background-color: ${Theme.lighterGreen};\n border-radius: 100%;\n width: 8px;\n height: 8px;\n position: absolute;\n top: 9px;\n left: 11px;\n\n &.unoptimized {\n background-color: ${Theme.gray25};\n }\n &.scheduled {\n background-color: ${Theme.yellow};\n }\n &.assets-received {\n background-color: #30a8bd;\n }\n &.assets-requested {\n background-color: ${Theme.orange};\n }\n }\n .status-text {\n color: ${Theme.black};\n margin-left: 3px;\n }\n } */\n .request {\n color: ${Theme.gray85};\n font-weight: 300;\n\n .request-plan {\n vertical-align: bottom;\n margin-right: 2px;\n }\n }\n }\n }\n @media only screen and (max-width: 400px) {\n .product-data {\n float: left;\n max-width: 180px;\n\n .product-name {\n max-width: 160px;\n }\n }\n }\n`;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { useLocation, useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { toast } from 'react-toastify';\nimport queryString from 'query-string';\n\nimport {\n UnauthorizedHeader,\n OnBoardingBody,\n CheckBox,\n Button,\n InputFormField,\n ErrorMsg,\n PageLoader,\n} from '../../../common';\n\nimport Theme from '../../../theme/Theme';\nimport {\n DefaultUser,\n LeftArrowIcon,\n OrangeCheckMark,\n SecurityLock,\n EditOrangeIcon,\n} from '../../../theme/images';\nimport { getRequestedProducts, updateProductAsset } from '../../../api';\n\nexport default function ProductDelegation() {\n const [productAsset, setProductAsset] = useState({});\n const [isAssignElse, setIsAssignElse] = useState(false);\n const [formData, setFormData] = useState({ email: '' });\n const [apiError, setApiError] = useState({});\n const [editEmail, setEditEmail] = useState({});\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'email' });\n\n const location = useLocation();\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n const splittedPath =\n location && location.pathname && location.pathname.split('/');\n const productAssetsId = splittedPath && splittedPath[4];\n\n const getProductAssetsData = useCallback(() => {\n setIsLoading({ loader: true, type: 'email' });\n\n getRequestedProducts(splittedPath && splittedPath[4]).then((res) => {\n setProductAsset(res && res.data);\n setIsLoading({ loader: false, type: 'email' });\n\n if (res && res.data && res.data.re_assigned_email) {\n setIsAssignElse(true);\n setEditEmail(false);\n }\n });\n }, []);\n\n useEffect(() => {\n if (params && params.key) {\n localStorage.setItem('match', params.key);\n }\n getProductAssetsData();\n }, [getProductAssetsData]);\n\n const onAskSomeoneElse = (event) => {\n if (event.target.checked) {\n setIsAssignElse(true);\n } else {\n setIsAssignElse(false);\n }\n };\n\n const sendEmail = () => {\n setIsLoading({ loader: true, type: 'email' });\n\n updateProductAsset(productAssetsId, {\n re_assigned_email: formData.email,\n }).then((res) => {\n if (res && res.status === 200) {\n setEditEmail(false);\n setFormData({ email: '' });\n toast.success('Request Sent Successfully!');\n setIsLoading({ loader: false, type: 'email' });\n getProductAssetsData();\n }\n if (res && res.status === 400) {\n setApiError(res && res.data);\n setIsLoading({ loader: false, type: 'email' });\n }\n });\n };\n\n return (\n <>\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n
    \n {' '}\n {params && params.key ? (\n \n ) : (\n \n {' '}\n
    \n {' '}\n
    \n
    \n
    \n \n Back to Dashboard\n
    \n
    \n
    \n
    {' '}\n
    \n )}\n \n
    \n

    Upload Your Product Assets

    \n {params && params.key ? (\n ''\n ) : (\n <>\n \n \n Ask someone else to complete this section\n {\n onAskSomeoneElse(event);\n }}\n />\n \n \n \n\n {isAssignElse ? (\n
    \n \n \n \n {apiError &&\n apiError.re_assigned_email &&\n apiError.re_assigned_email[0]}\n \n {productAsset && productAsset.re_assigned_email ? (\n setEditEmail(true)}>\n {' '}\n Edit email address\n \n ) : (\n ''\n )}\n {productAsset && productAsset.re_assigned_email ? (\n

    \n We’ve emailed them a link to submit the information\n in this section.\n

    \n ) : (\n

    \n We’ll email them a link to submit the information in\n this section.\n

    \n )}\n sendEmail()}\n disabled={formData.email === '' || isLoading.loader}>\n {isLoading.loader && isLoading.type === 'email' ? (\n \n ) : (\n 'Send Email'\n )}\n \n
    \n
    \n ) : (\n ''\n )}\n \n )}\n
    \n You’ll need the following to complete this step:\n
    \n
      \n
    • \n \"check\"\n Imagery for the{' '}\n {productAsset &&\n productAsset.products_detail &&\n productAsset.products_detail.length}{' '}\n products listed below\n
    • \n
    • \n \"check\" Any\n Instructions/specs for those products\n
    • \n
    \n
      \n {productAsset &&\n productAsset.products_detail &&\n productAsset.products_detail.length &&\n productAsset.products_detail.map((item) => (\n
    • \n
      \n \"product\"\n
      \n
      \n

      \n {item.title}\n

      \n

      \n {item.asin}\n

      \n
      \n
    • \n ))}\n
    \n \n Continue\n \n

    \n \"lock\"\n \n {' '}\n All files will be stored securely and never shared with a 3rd\n party.\n \n

    \n
    \n
    \n
    \n )}\n \n );\n}\n\nconst BackToStep = styled.div`\n position: fixed;\n background-color: ${Theme.white};\n z-index: 2;\n top: 70px;\n padding: 22px 0px 18px 0px;\n width: 100%;\n border-bottom: 1px solid ${Theme.gray5};\n\n .skip-steps {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n cursor: pointer;\n }\n`;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect, useCallback } from 'react';\n\nimport $ from 'jquery';\nimport dayjs from 'dayjs';\nimport Select from 'react-select';\nimport queryString from 'query-string';\nimport { toast } from 'react-toastify';\nimport { useMediaQuery } from 'react-responsive';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Link, useParams, useHistory } from 'react-router-dom';\nimport 'react-toastify/dist/ReactToastify.css';\n\nimport Activity from './Activity';\nimport Theme from '../../../theme/Theme';\nimport CompanyDetail from './CompanyDetail';\nimport AccountDetails from './AccountDetails';\nimport ShowTeamMembers from './ShowTeamMembers';\nimport CustomerTabDetails from './CustomerTabDetails';\nimport PlaybookContainer from './Playbook/PlaybookContainer';\nimport BillingContainer from './BillingContainer/BillingContainer';\nimport SummaryViewContainer from './SummaryView/SummaryViewContainer';\nimport GoalsAndCosContainer from './GoalsAndCOS/GoalsAndCosContainer';\nimport CustomerFeedbackList from './CustomerFeedback/CustomerFeedbackList';\nimport AgreementDetailContainer from './Agreement/AgreementDetailContainer';\nimport CompanyPerformance from './CompanyPerformance/CompanyPerformanceContainer';\nimport ReportsSectionContainer from '../../ReportsSection/ReportsSectionContainer';\nimport InventoryManagementContainer from './InventoryManagement/InventoryManagementContainer';\nimport { dynamicErrorMsg } from '../../../store/actions/userState';\nimport { SetupCheckList } from '../../BrandAssetGathering/index';\nimport { LeftArrowIcon } from '../../../theme/images';\nimport { userMe } from '../../../store/actions';\nimport { ProductCatalog } from '../index';\nimport {\n CustomerDetailsBody,\n CustomerTabCollapse,\n CustomerTabList,\n} from './CustomerDetailStyles';\nimport {\n getCustomerDetails,\n setCustomerSelectedTab,\n setCustomerMembers,\n} from '../../../store/actions/customerState';\nimport {\n TeamMemberModal,\n CustomerStatusModal,\n OtherModals,\n NotesModal,\n} from './Modals';\nimport {\n PageLoader,\n PageNotFound,\n BackToTop,\n WhiteCard,\n} from '../../../common';\nimport {\n getCustomerMembers,\n saveSPData,\n getPlaybookServicesListData,\n getSPData,\n getOnboardingPlaybookData,\n getChildBps,\n getPlaybookTeamData,\n getMarketPlaceList,\n getBPsAllMArketplaceList,\n getGoalsAccountTypeFlag,\n} from '../../../api';\nimport {\n billingNavigationOptions,\n customerDetailsSideBarNavigationOptions as sideBarMenu,\n inventoryTypes,\n invoiceTypes,\n PATH_CUSTOMER_DETAILS,\n PATH_CUSTOMER_LIST,\n SALEPERFORMANCE,\n ADPERFORMANCE,\n CREATIVEPROJECTS,\n HYBRID,\n SELLER,\n AMCINSIGHTS,\n PARENT,\n VENDORSMALL,\n SELLERSMALL,\n DSPPERFORMANCE,\n} from '../../../constants';\n\nexport default function CustomerMainContainer() {\n const history = useHistory();\n const dispatch = useDispatch();\n const { id } = useParams();\n const params = queryString.parse(history.location.search);\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const agreement = useSelector((state) => state?.accountState?.data);\n const customerState = useSelector((state) => state?.customerState);\n const customerLoader = customerState?.isLoading;\n const customer = customerState?.data;\n const customerName = customer?.company_name;\n const customerStatus = customer?.status?.value;\n const customerAccountType = customer?.customer_account_type;\n const customerSelectedTab = customerState?.customerSelectedTab;\n const [onScrollPage, setOnScrollPage] = useState(false);\n const [sidePanelToggle, setSidePanelToggle] = useState({\n isToggle: false,\n width: '75px',\n });\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [isSaveData, IsSaveDataClicked] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [showMemberList, setShowMemberList] = useState({\n show: false,\n add: false,\n modal: false,\n });\n const [allMarketplacesList, setAllMarketplacesList] = useState([]);\n const [marketplaceChoices, setMarketplaceChoices] = useState([]);\n const [marketplacesList, setMarketplacesList] = useState([]);\n const [originalMarketplaceList, setOriginalMarketplacesList] = useState([]);\n const [memberData, setMemberData] = useState([]);\n const [isUserAssignedToBP, setIsUserAssignedToBP] = useState(false);\n const [showNewNoteEditor, setNewNoteEditor] = useState(false);\n const [showNotesModal, setShowNotesModal] = useState({\n modal: false,\n apiCall: false,\n deleteNote: false,\n });\n const [statusModal, setStatusModal] = useState({\n show: false,\n type: '',\n });\n const customerError = useSelector((state) => state.customerState.error);\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isCustomer = userInfo?.role?.includes('Customer');\n const userId = userInfo?.id;\n\n const [agreementDetailModal, setAgreementDetailModal] = useState({\n pause: false,\n });\n const [isAuthorized, setIsAuthorized] = useState({});\n const [childBPList, setChildBPList] = useState([]);\n const [childBPAllList, setChildBPAllList] = useState([]);\n\n const isCustomerActive = customerStatus !== 'pending';\n const isBBEInternalUser = userInfo?.isInternalUser ? 'internal' : 'external';\n const [showCreativeUploadScreen, setShowCreativeUploadScreen] =\n useState(false);\n const [goalsAccountTypeFlag, setGoalsAccountTypeFlag] = useState({\n seller: true,\n vendor: false,\n hybrid: true,\n });\n\n // needed for playbook\n const currentDate = new Date();\n const currentYear = dayjs(currentDate).format('YYYY');\n const playbookEpicId = customer?.playbook_epic_id;\n const playbookAccess = userInfo?.main_playbook_access;\n const onboardingPlaybookAccess = userInfo?.onboarding_playbook_access;\n const [showPlaybook, setShowPlaybook] = useState(false);\n const [playbookTeamsList, setPlaybookTeamsList] = useState([]);\n const [playbookServiceList, setPlaybookServiceList] = useState([]);\n const [playbookTabActive, setPlaybookTabActive] = useState('playbook');\n\n let viewOptions = [\n { value: 'performance', label: 'Performance' },\n { value: 'playbook', label: 'Playbook' },\n { value: 'goals', label: 'Goals and Strategy', nav: 'goals' },\n { value: 'inventoryManagement', label: 'Inventory Management' },\n { value: 'agreement', label: 'Agreements' },\n { value: 'company-details', label: 'Company Details' },\n { value: 'activity', label: 'Activity' },\n { value: 'feedback', label: 'Partner Feedback' },\n ];\n\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n minHeight: userInfo?.role?.includes('Customer') ? '130px' : '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n // add event listener when windows scroll down by some 'px'\n const windowsScrollEvents = useCallback(() => {\n const scrollTop = window.scrollY;\n\n if (scrollTop >= 200) {\n setOnScrollPage(true);\n } else {\n setOnScrollPage(false);\n }\n }, []);\n\n // use effect for windows scrollable events\n useEffect(() => {\n window.addEventListener('scroll', windowsScrollEvents);\n return () => {\n window.removeEventListener('scroll', windowsScrollEvents);\n };\n }, [windowsScrollEvents]);\n\n const bindChildBPsList = useCallback((responseData) => {\n const tempChildBPList = [];\n\n if (responseData?.length > 0) {\n const filteredResponseData = responseData?.filter(\n (item) => item?.status !== 'inactive',\n );\n\n if (filteredResponseData?.length > 0) {\n filteredResponseData.forEach((item) => {\n tempChildBPList.push({\n account_type: item?.account_type,\n bgs: item?.bgs,\n label: item?.label,\n status: item?.status,\n value: item?.value,\n });\n });\n }\n }\n\n return tempChildBPList;\n }, []);\n\n const getChildBpList = useCallback(() => {\n getChildBps(id).then((response) => {\n setChildBPList(bindChildBPsList(response?.data));\n setChildBPAllList(response?.data);\n });\n }, [bindChildBPsList, id]);\n\n useEffect(() => {\n getChildBpList();\n }, [getChildBpList]);\n\n useEffect(() => {\n dispatch(userMe(history, { customer: id }));\n }, [dispatch, history, id]);\n\n useEffect(() => {\n getSPData(id).then((res) => {\n if (res?.status === 200) {\n setIsAuthorized(res?.data);\n }\n });\n }, [id]);\n\n useEffect(() => {\n dispatch(dynamicErrorMsg(id));\n }, [dispatch, id]);\n\n useEffect(() => {\n // save the SP API data so that\n if (history.location.pathname?.includes('bbe_id')) {\n const spDetail = JSON.parse(localStorage.getItem('spApi'));\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n });\n\n history.push({\n pathname: `${history.location.pathname.replace(\n 'bbe_id',\n spDetail.customer_id,\n )}`,\n search: `${stringified}`,\n });\n const data = {\n customer: spDetail?.customer_id,\n marketplace: spDetail?.marketplace?.label,\n account_type: spDetail?.type,\n spapi_oauth_code: params.spapi_oauth_code,\n state: params.state,\n selling_partner_id: params.selling_partner_id,\n redirct_uri: history.location.pathname,\n };\n\n saveSPData(data).then((res) => {\n if (res?.status === 201) {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n spDetail?.customer_id,\n )}?tab=company-details&access=${isBBEInternalUser}`,\n );\n }\n });\n }\n }, [isBBEInternalUser]);\n\n const redirectToSelectedTab = useCallback(() => {\n const { state } = history.location;\n const nav = state || params?.nav;\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(':id', id)}?tab=${params?.tab}${\n params?.sub ? `&sub=${params.sub}` : ''\n }${nav ? `&nav=${nav}` : ''}${\n params?.subNav ? `&subNav=${params.subNav}` : ''\n }&access=${isBBEInternalUser}`,\n nav,\n );\n }, [id, isBBEInternalUser]);\n\n const redirectToPerformanceTab = useCallback(\n (nav) => {\n const baseURL = `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=performance`;\n const { state } = history?.location;\n\n if (nav === DSPPERFORMANCE) {\n history.push(\n `${baseURL}&nav=${DSPPERFORMANCE}&access=${isBBEInternalUser}`,\n state || params?.nav,\n );\n } else if (nav === AMCINSIGHTS) {\n history.push(\n `${baseURL}&nav=${AMCINSIGHTS}&subNav=${\n params?.subNav || 'standard'\n }&access=${isBBEInternalUser}${\n params?.amcAudience ? '&amcAudience=lookalike' : ''\n }`,\n state || params?.nav,\n );\n } else if (nav === 'performance') {\n history.push(\n `${baseURL}${\n customerAccountType\n ? `&sub=${\n params?.sub\n ? params.sub\n : customerAccountType === HYBRID ||\n customerAccountType === SELLER\n ? SELLERSMALL\n : VENDORSMALL\n }`\n : ''\n }&nav=${params?.nav || SALEPERFORMANCE}&access=${isBBEInternalUser}`,\n state || params?.nav,\n );\n } else {\n redirectToSelectedTab();\n }\n },\n [customerAccountType, id, isBBEInternalUser, redirectToSelectedTab],\n );\n\n const redirectToCustomerView = useCallback(() => {\n const { state } = history.location;\n\n const tab = params?.tab;\n const showSummaryDashboard = customer?.display_summary_dashboard;\n const defaultTab =\n tab === 'undefined' || tab === null || tab === undefined\n ? showSummaryDashboard\n ? 'summary'\n : 'dashboard'\n : tab;\n\n if (defaultTab === 'summary' || defaultTab === 'dashboard') {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=${defaultTab}&access=${isBBEInternalUser}`,\n state || params?.nav,\n );\n } else {\n redirectToSelectedTab();\n }\n dispatch(setCustomerSelectedTab(defaultTab));\n setIsLoading({ loader: false, type: 'page' });\n }, [customer, dispatch, id, isBBEInternalUser]);\n\n useEffect(() => {\n const { state } = history?.location;\n\n if (invoiceTypes.includes(state)) {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=billing&nav=${state}&access=${isBBEInternalUser}`,\n );\n }\n\n if (\n inventoryTypes.includes(state) &&\n customerSelectedTab === 'inventoryManagement'\n ) {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=inventoryManagement&access=${isBBEInternalUser}`,\n );\n }\n\n if (customerSelectedTab === 'performance') {\n if (\n (state === SALEPERFORMANCE ||\n state === ADPERFORMANCE ||\n state === CREATIVEPROJECTS) &&\n customerAccountType\n ) {\n redirectToPerformanceTab('performance');\n }\n\n if (state === DSPPERFORMANCE) {\n redirectToPerformanceTab(DSPPERFORMANCE);\n }\n\n if (state === AMCINSIGHTS) {\n redirectToPerformanceTab(AMCINSIGHTS);\n }\n }\n }, [\n dispatch,\n customerSelectedTab,\n customerAccountType,\n id,\n isBBEInternalUser,\n redirectToPerformanceTab,\n ]);\n\n const checkUserAssignedToBP = useCallback(\n (response) => {\n const responseData = response?.length ? response : [];\n\n const isUserAssigned = responseData?.some(\n (member) => member?.user?.id === userId,\n );\n return isUserAssigned;\n },\n [userId],\n );\n\n const getCustomerMemberList = useCallback(() => {\n setIsLoading({ loader: true, type: 'page' });\n getCustomerMembers(id).then((members) => {\n if (members?.status === 200) {\n setMemberData(members?.data);\n dispatch(setCustomerMembers(members?.data));\n\n const isAssignedUser = checkUserAssignedToBP(members?.data);\n setIsUserAssignedToBP(isAssignedUser);\n dispatch(userMe(history, { customer: id }));\n }\n setIsLoading({ loader: false, type: 'page' });\n });\n }, [checkUserAssignedToBP, dispatch, history, id]);\n\n const getMarketPlace = useCallback(() => {\n let finalMarketplaces;\n const tempMarketplacesList = [];\n\n getMarketPlaceList(id).then((res) => {\n if (res?.status === 200) {\n finalMarketplaces =\n res && res.data.sort((value) => (value.is_primary ? -1 : 1));\n\n finalMarketplaces = finalMarketplaces.sort((marketplace) =>\n marketplace?.name === 'Amazon.com' && marketplace?.is_primary\n ? -1\n : marketplace?.name === 'Amazon.com'\n ? -1\n : 1,\n );\n\n for (const item of finalMarketplaces) {\n tempMarketplacesList.push({\n label: item?.country_currency?.country,\n value: item?.name,\n });\n }\n const tempList = [...tempMarketplacesList];\n setOriginalMarketplacesList(tempList);\n\n if (tempMarketplacesList?.length > 1) {\n tempMarketplacesList.unshift({\n label: 'All Marketplaces',\n value: 'all',\n });\n }\n setMarketplacesList(tempMarketplacesList);\n\n finalMarketplaces.unshift({\n name: 'all',\n country_currency: {\n country: 'All Marketplaces',\n currency: 'USD',\n },\n });\n\n setMarketplaceChoices(finalMarketplaces);\n }\n });\n }, [id]);\n\n if (isSaveData && !customerLoader) {\n toast.success('Changes Saved!');\n IsSaveDataClicked(false);\n }\n\n useEffect(() => {\n if (isCustomer) {\n redirectToCustomerView();\n }\n }, [isCustomer, redirectToCustomerView]);\n\n useEffect(() => {\n getMarketPlace(id);\n }, [id, getMarketPlace]);\n\n // PDV-7522 and PDV-7818 - bind all bps marketplace list including active & inactive\n const bindBPsAllMarketplaceList = useCallback((responseData) => {\n const tempMarketplacesList = [];\n let sortedResponseData = [];\n const allObject = {\n name: 'all',\n country_currency: {\n country: 'All Marketplaces',\n currency: 'USD',\n },\n };\n if (responseData?.length > 0) {\n sortedResponseData = responseData?.sort((value) =>\n value?.is_primary ? -1 : 1,\n );\n sortedResponseData = sortedResponseData?.sort((marketplace) =>\n marketplace?.name === 'Amazon.com' && marketplace?.is_primary\n ? -1\n : marketplace?.name === 'Amazon.com'\n ? -1\n : 1,\n );\n for (const item of sortedResponseData) {\n tempMarketplacesList.push(item);\n }\n if (tempMarketplacesList?.length > 1) {\n tempMarketplacesList.unshift(allObject);\n }\n } else {\n tempMarketplacesList.push(allObject);\n }\n\n return tempMarketplacesList;\n }, []);\n\n // PDV-7522 and PDV-7818 - get all marketplaces (recurring + dsp) data of bp\n const getBPsAllMarketplaces = useCallback(() => {\n getBPsAllMArketplaceList(id).then((response) => {\n if (response?.status === 200) {\n const formatedApidata = bindBPsAllMarketplaceList(response?.data);\n setAllMarketplacesList(formatedApidata);\n } else {\n setAllMarketplacesList([]);\n }\n });\n }, [bindBPsAllMarketplaceList, id]);\n\n useEffect(() => {\n getBPsAllMarketplaces();\n }, [getBPsAllMarketplaces]);\n\n useEffect(() => {\n dispatch(getCustomerDetails(id));\n }, [id, dispatch]);\n\n useEffect(() => {\n if (!isCustomer) getCustomerMemberList();\n }, [getCustomerMemberList, isCustomer]);\n\n useEffect(() => {\n if (params?.tab && params?.nav === 'undefined') {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(':id', id)}?tab=${\n params.tab\n }&access=${isBBEInternalUser}`,\n );\n }\n }, [id, isBBEInternalUser]);\n\n const goalsAccountTypeFlagData = useCallback(() => {\n getGoalsAccountTypeFlag(id).then((response) => {\n if (response?.status === 200) {\n setGoalsAccountTypeFlag({\n seller: response?.data?.Seller,\n vendor: response?.data?.Vendor,\n hybrid: response?.data?.Hybrid,\n });\n }\n });\n }, [id]);\n\n useEffect(() => {\n goalsAccountTypeFlagData();\n }, [goalsAccountTypeFlagData]);\n\n const bindPlaybookTeamData = useCallback((response) => {\n const responseData = response?.length ? response : [];\n const tempTeamData = [\n {\n label: 'All Team Members',\n value: 'all',\n },\n ];\n if (responseData?.length) {\n for (const item of responseData) {\n tempTeamData.push({ label: item, value: item });\n }\n }\n return tempTeamData;\n }, []);\n\n const getPlaybookTeam = useCallback(() => {\n setPlaybookTeamsList([]);\n\n getPlaybookTeamData().then((response) => {\n if (response?.status === 200) {\n setPlaybookTeamsList(bindPlaybookTeamData(response?.data));\n } else {\n setPlaybookTeamsList([]);\n }\n });\n }, [bindPlaybookTeamData]);\n\n const bindPlaybookServiceListData = useCallback((response) => {\n const tempServicesData = [\n {\n label: 'All Services',\n value: 'all',\n },\n ];\n const serviceData = response?.length > 0 ? response : [];\n\n serviceData.forEach((item) => {\n tempServicesData.push({\n label: item?.name,\n value: item?.name,\n id: item?.id,\n });\n\n return tempServicesData;\n });\n return tempServicesData;\n }, []);\n\n const getPlaybookServiceList = useCallback(() => {\n setPlaybookServiceList([]);\n getPlaybookServicesListData(id).then((response) => {\n if (response?.status === 200) {\n const getData = bindPlaybookServiceListData(response?.data);\n setPlaybookServiceList(getData);\n } else {\n setPlaybookServiceList([]);\n }\n });\n }, [bindPlaybookServiceListData, id]);\n\n const checkOnboardingPlaybookTaskStatus = useCallback(\n (responseData) => {\n const statusData = [];\n if (responseData?.length) {\n for (const item of responseData) {\n statusData.push({ taskStatus: item?.jira_status });\n\n if (item?.tasks?.length) {\n for (const task of item?.tasks) {\n statusData.push({ taskStatus: task?.jira_status });\n\n if (task?.sub_tasks?.length) {\n for (const subTask of task?.sub_tasks) {\n statusData.push({ taskStatus: subTask?.jira_status });\n }\n }\n }\n }\n }\n }\n\n const isCompleted = statusData?.every(\n (item) => item?.taskStatus === 'Done',\n );\n\n if (isCompleted) {\n if (playbookAccess) {\n setPlaybookTabActive('playbook');\n } else {\n setPlaybookTabActive('onboarding-gray');\n }\n } else {\n setPlaybookTabActive('onboarding');\n }\n },\n [playbookAccess],\n );\n\n const getOnboardingPlaybook = useCallback(() => {\n getOnboardingPlaybookData(id).then((response) => {\n if (response?.status === 200) {\n checkOnboardingPlaybookTaskStatus(response?.data);\n } else if (playbookAccess) {\n setPlaybookTabActive('playbook');\n } else {\n setPlaybookTabActive('onboarding');\n }\n });\n }, [checkOnboardingPlaybookTaskStatus, id, playbookAccess]);\n\n useEffect(() => {\n if (onboardingPlaybookAccess) {\n getOnboardingPlaybook();\n }\n }, [getOnboardingPlaybook, onboardingPlaybookAccess]);\n\n useEffect(() => {\n getPlaybookTeam();\n }, [getPlaybookTeam]);\n\n useEffect(() => {\n if (playbookAccess) {\n getPlaybookServiceList();\n }\n }, [getPlaybookServiceList, playbookAccess]);\n\n // use effect for show playbook tab on LHS\n useEffect(() => {\n // Playbook tab is visible for only those company which is currently \"ACTIVE\"\n if (\n isCustomerActive &&\n (playbookAccess || onboardingPlaybookAccess)\n // || isCustomer\n ) {\n setShowPlaybook(true);\n } else {\n setShowPlaybook(false);\n if (params?.tab === 'playbook') {\n redirectToPerformanceTab('performance');\n }\n }\n\n /* ***** When user click on \"REFRESH\" button inside playbook tab then history.location will be saved and page \n will be reloaded. Once page is reloaded, then user will land in the selected playbook tab ***** */\n const { state } = history?.location;\n const { search } = history?.location;\n\n const isPlaybookTab =\n state?.includes('main-playbook') || search?.includes('nav=playbook');\n const isOnboardingTab =\n state?.includes('onboarding') || search?.includes('nav=onboarding');\n\n if (isPlaybookTab && playbookAccess) {\n setPlaybookTabActive('playbook');\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=playbook&nav=playbook&access=${isBBEInternalUser}`,\n );\n } else if (isOnboardingTab && onboardingPlaybookAccess) {\n setPlaybookTabActive('onboarding');\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n id,\n )}?tab=playbook&nav=onboarding&access=${isBBEInternalUser}`,\n );\n } else if (isCustomer) {\n redirectToCustomerView();\n } else {\n redirectToSelectedTab('');\n }\n }, [\n playbookAccess,\n onboardingPlaybookAccess,\n customerAccountType,\n isCustomer,\n isCustomerActive,\n redirectToPerformanceTab,\n id,\n isBBEInternalUser,\n redirectToCustomerView,\n redirectToSelectedTab,\n ]);\n\n if (customer && (customer.status !== null || customer.status !== 'pending')) {\n if (showPlaybook) {\n viewOptions = sideBarMenu.forPlaybookView;\n } else {\n viewOptions = sideBarMenu.defaultView;\n }\n\n if (userInfo?.role?.includes('Customer')) {\n if (showPlaybook && customer?.account_type !== PARENT) {\n viewOptions = sideBarMenu.customerDefaultViewWithPlaybook;\n } else {\n viewOptions = sideBarMenu.customerDefaultView;\n }\n }\n }\n\n // handle side panel toggle events\n const handleSidePanelToggleEvents = () => {\n const transitionDuration = '200';\n // this should be equal to OR less than transition duration used for CustomerTabCollapse in CustomerDetailStyle.js such as ---> transition: width 300ms ease-in-out;\n if (sidePanelToggle?.isToggle) {\n setSidePanelToggle({ isToggle: false, width: '75px' });\n } else {\n setSidePanelToggle({ isToggle: true, width: '300px' });\n }\n // show and hide the tab label and dropdown icon\n $('.tab-label').toggle(transitionDuration);\n $('.collapse-icon').toggle();\n };\n\n const displayTeamMemberSection = () => {\n return (\n
    \n
    \n
    \n dispatch(setCustomerSelectedTab(''))}\n >\n {!isCustomer ? (\n \n
    \n \"\"\n Back to all partners\n
    \n \n ) : (\n ''\n )}\n
    \n\n \n {customer?.company_name}\n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n };\n\n // display sidepanel collapse icon\n const displaySidePanelCollapseIcon = () => {\n return (\n {\n handleSidePanelToggleEvents();\n }}\n >\n {/* Empty div for hamburger-menu */}\n
    \n
    \n
    \n
    \n );\n };\n\n const displayCustomerTabCollapse = () => {\n return (\n \n {displaySidePanelCollapseIcon()}\n \n \n );\n };\n\n const displayTabDropdown = () => {\n return (\n {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(':id', id)}?tab=${event.value}${\n event.value === 'performance' && customerAccountType\n ? `&sub=${\n params?.sub\n ? params.sub\n : customerAccountType === HYBRID ||\n customerAccountType === SELLER\n ? SELLERSMALL\n : VENDORSMALL\n }`\n : ''\n }${event.nav ? `&nav=${event.nav}` : ''}`,\n params.nav,\n );\n\n dispatch(setCustomerSelectedTab(event.value));\n }}\n value={\n params?.tab === 'playbook'\n ? viewOptions[3]\n : viewOptions?.find((item) => item.value === params?.tab)\n }\n />\n );\n };\n\n const displayCustomerHeaderAndTabs = () => {\n return (\n
    \n \n \n \n {displayTabDropdown()}\n
    \n );\n };\n\n const displayPerformanceTabContainer = () => {\n return (\n \n );\n };\n const displayInventoryTabContainer = () => {\n return (\n \n );\n };\n\n const displayAgreementTabContainer = () => {\n return (\n \n );\n };\n\n const displayCompanyDetailTabContainer = () => {\n return (\n \n );\n };\n\n const displayBillingTabContainer = () => {\n return (\n \n );\n };\n\n const displayPlaybookTabContainer = () => {\n return (\n \n );\n };\n\n const displayAcivityTabContainer = () => {\n return (\n \n );\n };\n\n const displayFeedbackTabContainer = () => {\n return (\n \n );\n };\n\n const displayForecastTabContainer = () => {\n return (\n \n );\n };\n\n const displayDashboardTabContainer = () => {\n return (\n \n );\n };\n\n const displaySummaryTabContainer = () => {\n return (\n \n );\n };\n\n const displayCustomerTabContent = () => {\n switch (params?.tab) {\n case 'agreement':\n return displayAgreementTabContainer();\n case 'product catalog':\n return ;\n case 'company-details':\n return displayCompanyDetailTabContainer();\n case 'dashboard':\n return displayDashboardTabContainer();\n case 'summary':\n return displaySummaryTabContainer();\n case 'performance':\n return displayPerformanceTabContainer();\n case 'inventoryManagement':\n return displayInventoryTabContainer();\n case 'billing':\n return displayBillingTabContainer();\n case 'playbook':\n return displayPlaybookTabContainer();\n case 'activity':\n return displayAcivityTabContainer();\n case 'reports':\n return ;\n case 'feedback':\n return displayFeedbackTabContainer();\n case 'goals':\n return displayForecastTabContainer();\n default:\n return null;\n }\n };\n\n const displayCustomerModals = () => {\n return (\n <>\n \n \n \n \n \n );\n };\n\n return (\n <>\n {!params?.selling_partner_id &&\n !history.location.pathname.includes('bbe_id') &&\n (customerError?.status === 404 || customerError?.status === 403) ? (\n \n ) : (\n <>\n {customerLoader ||\n (isLoading?.loader && isLoading?.type === 'page') ? (\n \n ) : (\n <>\n
    \n \n {displayCustomerTabCollapse()}\n \n \n \n {displayTeamMemberSection()}\n
    \n {displayCustomerHeaderAndTabs()}\n {displayCustomerTabContent()}\n
    \n
    \n
    \n \n
    \n {displayCustomerModals()}\n
    \n
    \n \n )}\n \n )}\n \n );\n}\n","import React, { useEffect, useRef } from 'react';\n\nimport * as am4core from '@amcharts/amcharts4/core';\nimport * as am4charts from '@amcharts/amcharts4/charts';\nimport am4themesDataviz from '@amcharts/amcharts4/themes/dataviz';\nimport { arrayOf, func, shape, string } from 'prop-types';\n\nimport Theme from '../../theme/Theme';\n\nam4core.useTheme(am4themesDataviz);\n\nconst BBEGoalChart = ({ data, CHART_ID, selectedMonthYear, formatNumber }) => {\n const chartRef = useRef(null);\n\n useEffect(() => {\n const chart = am4core.create(CHART_ID, am4charts.XYChart);\n chartRef.current = chart;\n chart.logo.disabled = true; // disable amchart logo\n chart.data = data?.reverse();\n\n // Add X Axis\n const xAxis = chart.xAxes.push(new am4charts.CategoryAxis());\n xAxis.dataFields.category = 'month_year';\n xAxis.renderer.inversed = true;\n xAxis.renderer.grid.template.disabled = true;\n xAxis.renderer.labels.template.disabled = true;\n xAxis.renderer.baseGrid.disabled = true;\n xAxis.cursorTooltipEnabled = true;\n\n // Add Y Axis\n const yAxis = chart.yAxes.push(new am4charts.ValueAxis());\n yAxis.renderer.grid.template.disabled = true;\n yAxis.renderer.labels.template.disabled = true;\n yAxis.renderer.baseGrid.disabled = true;\n xAxis.cursorTooltipEnabled = true;\n\n // Create series\n const series = chart.series.push(new am4charts.ColumnSeries());\n series.dataFields.valueY = 'revenue';\n series.dataFields.categoryX = 'month_year';\n series.name = 'revenue';\n series.fillOpacity = 1;\n series.columns.template.column.adapter.add('fill', (fill, target) => {\n const valueX = target.dataItem.categories.categoryX;\n if (valueX === selectedMonthYear) {\n return am4core.color(Theme.orange);\n }\n return am4core.color(Theme.gray45);\n });\n series.strokeWidth = 0;\n series.columns.template.width = am4core.percent(70);\n series.columns.template.column.cornerRadiusTopLeft = 6;\n series.columns.template.column.cornerRadiusTopRight = 6;\n series.columns.template.column.cornerRadiusBottomLeft = 6;\n series.columns.template.column.cornerRadiusBottomRight = 6;\n\n // Series tooltip\n series.columns.template.column.tooltipX = am4core.percent(50);\n series.columns.template.column.tooltipY = am4core.percent(0);\n\n series.columns.template.column.tooltipText = `[font-size: 10px]{categoryX.replace('-','')} REVENUE[/]\\n[bold ${Theme.gray6} font-size: 20px margin-botton:5px]\\${valueY}[/]`;\n\n series.columns.template.column.adapter.add(\n 'tooltipText',\n (fill, target) => {\n const revenue = formatNumber(target.dataItem?.valueY, '$', '', true);\n const month = target.dataItem.categoryX.split('-');\n return `[font-size: 10px]${month[0].toUpperCase()} REVENUE[/]\\n[bold ${\n Theme.gray6\n } font-size: 20px margin-botton:5px]${revenue}[/]`;\n },\n );\n\n series.tooltip.dy = -5;\n series.tooltip.getFillFromObject = false;\n series.tooltip.pointerOrientation = 'down';\n series.tooltip.ignoreBounds = true;\n series.tooltip.background.fill = am4core.color(Theme.darkBlue);\n series.tooltip.background.stroke = am4core.color(Theme.darkBlue);\n // series.tooltip.label.maxWidth = 150;\n series.tooltip.label.wrap = true;\n series.tooltip.background.cornerRadius = 10;\n\n // Add cursor\n chart.cursor = new am4charts.XYCursor();\n chart.cursor.maxTooltipDistance = -1;\n\n // Disable axis lines\n chart.cursor.lineX.disabled = true;\n chart.cursor.lineY.disabled = true;\n\n // Disable axis tooltips\n xAxis.cursorTooltipEnabled = false;\n yAxis.cursorTooltipEnabled = false;\n\n // Disable zoom\n chart.cursor.behavior = 'none';\n\n return () => {\n chart.dispose();\n };\n }, [CHART_ID, data, formatNumber, selectedMonthYear]);\n\n return
    ;\n};\n\nexport default BBEGoalChart;\n\nBBEGoalChart.defaultProps = {\n data: null,\n};\nBBEGoalChart.propTypes = {\n data: arrayOf(shape({})),\n CHART_ID: string.isRequired,\n selectedMonthYear: string.isRequired,\n formatNumber: func.isRequired,\n};\n","/* eslint-disable no-empty */\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport Dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { func, instanceOf } from 'prop-types';\n\nimport Theme from '../../theme/Theme';\nimport useFormatNumber from '../../hooks/useFormatNumber';\nimport { PageLoader, WhiteCard } from '../../common';\nimport { getBBEGoalMetrics } from '../../api';\nimport { InfoIcons } from '../../theme/images';\nimport BBEGoalChart from './BBEGoalChart';\n\nexport default function BBEGoalHighLevelMetrics({\n selectedMonthYear,\n onSendDate,\n}) {\n const [metricsData, setMetricsData] = useState(null);\n const [loader, setLoader] = useState(false);\n const initialOnSendDateRef = useRef(() =>\n onSendDate(metricsData?.last_updated),\n );\n\n const getKPIMetrics = useCallback(() => {\n setLoader(true);\n getBBEGoalMetrics(selectedMonthYear).then((res) => {\n if (\n res &&\n (res.status === 500 || res.status === 400 || res.status === 403)\n ) {\n setMetricsData(null);\n setLoader(false);\n }\n\n if (res && res.status === 200) {\n setMetricsData(res.data);\n\n setLoader(false);\n }\n setLoader(false);\n });\n }, [selectedMonthYear]);\n\n useEffect(() => {\n getKPIMetrics();\n initialOnSendDateRef.current();\n }, [getKPIMetrics]);\n\n const returnClassName = (value) => {\n if (value < 0) {\n return 'red-text';\n }\n if (value > 0) {\n return 'green-text';\n }\n return 'label-info-medium';\n };\n\n const renderPartners = (formatNumber) => {\n return (\n
    \n \n
    \n

    Partners

    \n
    Net New Customers
    \n

    {metricsData?.actual?.net_new_customers}

    \n \n {formatNumber(\n metricsData?.planned?.net_new_customers,\n '',\n '',\n true,\n true,\n )}{' '}\n {metricsData?.planned?.net_new_customers ? 'vs plan' : ''}\n
    \n
    \n
    \n
    \n
    \n

    Partners

    \n
    Net New Customers
    \n
      \n
    • \n

      {metricsData?.actual?.net_new_customers}

      \n
    • \n
    • \n \n {formatNumber(\n metricsData?.planned?.net_new_customers,\n '',\n '',\n true,\n true,\n )}{' '}\n {metricsData?.planned?.net_new_customers ? 'vs plan' : ''}\n
    \n \n \n
    \n
    \n
    \n
    Onboarded
    \n
    \n

    \n {metricsData?.actual?.onboarded}\n

    \n \n {formatNumber(\n metricsData?.planned?.onboarded,\n '',\n '',\n true,\n true,\n )}\n
    \n
    \n\n
      \n
    • \n

      \n {metricsData?.actual?.onboarded}\n

      \n
    • \n
    • \n \n {formatNumber(\n metricsData?.planned?.onboarded,\n '',\n '',\n true,\n true,\n )}\n
    \n \n \n
    \n
    \n
    OFfboarded
    \n
    \n

    \n {metricsData?.actual?.offboarded}\n

    \n \n {formatNumber(\n metricsData?.planned?.offboarded,\n '',\n '',\n true,\n true,\n )}\n
    \n
    \n
      \n
    • \n

      \n {metricsData?.actual?.offboarded}\n

      \n
    • \n
    • \n \n {formatNumber(\n metricsData?.planned?.offboarded,\n '',\n '',\n true,\n true,\n )}\n
    \n \n \n
    \n
    \n \n
    \n );\n };\n\n const renderFinancial = (formatNumber) => {\n return (\n \n
    \n
    \n

    Financials

    \n
    Total Revenue
    \n

    \n {formatNumber(metricsData?.actual?.total_revenue, '$', '', true)}\n

    \n \n {formatNumber(\n metricsData?.planned?.total_revenue,\n '$',\n '',\n true,\n true,\n )}{' '}\n {metricsData?.planned?.total_revenue ? 'vs plan' : ''}\n
    \n
    \n\n
    \n {loader ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n
    \n
    Avg. Billings/BP
    \n

    \n {formatNumber(\n metricsData?.actual?.avg_billing_cap,\n '$',\n '',\n true,\n )}\n

    \n\n \n {formatNumber(\n metricsData?.planned?.avg_billing_cap,\n '$',\n '',\n true,\n true,\n )}\n
    \n
    \n\n
    \n
    \n Rev Share{' '}\n the 9th of each month for the previous
    month as this is when the rev share
    invoices are issued.\"\n data-for=\"dspAdditionalInfo\"\n />{' '}\n \n
    \n

    \n {formatNumber(metricsData?.actual?.rev_share, '$', '', true)}\n

    \n\n \n {formatNumber(\n metricsData?.planned?.rev_share,\n '$',\n '',\n true,\n true,\n )}\n
    \n
    \n
    \n
    \n
    Rev Per Employee
    \n

    \n {formatNumber(\n metricsData?.actual?.rev_per_employee,\n '$',\n '',\n true,\n )}\n

    \n
    \n
    \n
    Average LTV
    \n

    \n {formatNumber(metricsData?.actual?.average_ltv, '$', '', true)}\n

    \n\n \n {formatNumber(\n metricsData?.planned?.average_ltv,\n '$',\n '',\n true,\n true,\n )}\n
    \n
    \n \n
    \n );\n };\n\n return (\n <>\n
    \n
    \n {renderFinancial(useFormatNumber)}\n
    \n {renderPartners(useFormatNumber)}\n
    \n \n );\n}\n\nBBEGoalHighLevelMetrics.defaultProps = {\n onSendDate: () => {},\n};\nBBEGoalHighLevelMetrics.propTypes = {\n selectedMonthYear: instanceOf(Date).isRequired,\n onSendDate: func,\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { instanceOf } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\n\nimport useFormatNumber from '../../hooks/useFormatNumber';\nimport { ArrowDownIcon, ArrowUpIcon } from '../../theme/images';\nimport { getRevShareContributionData } from '../../api';\nimport {\n keyContributionConstant,\n noGraphDataMessage,\n contributionColorSet,\n POSITIVE,\n} from '../../constants';\nimport {\n Status,\n ToggleButton,\n WhiteCard,\n Table,\n TableMobileView,\n NoData,\n PageLoader,\n} from '../../common';\nimport Theme from '../../theme/Theme';\n\nexport default function BBEGoalRevShareContribution({ monthYear }) {\n const mounted = useRef(false);\n const isDesktop = useMediaQuery({ minWidth: 767 });\n const [contributionLoader, setContributionLoader] = useState(false);\n const [selectedContributionOption, setSelectedContributionOption] =\n useState(POSITIVE);\n const [contributionData, setContributionData] = useState([{}, {}, {}, {}]);\n\n const getContributionData = useCallback(() => {\n setContributionLoader(true);\n getRevShareContributionData(monthYear).then((res) => {\n if (mounted.current) {\n if (res && (res.status === 400 || res.status === 403)) {\n setContributionLoader(false);\n setContributionData([]);\n }\n if (res && res.status === 200) {\n setContributionData(res.data);\n } else {\n setContributionData([]);\n }\n setContributionLoader(false);\n }\n });\n }, [monthYear]);\n\n useEffect(() => {\n mounted.current = true;\n getContributionData();\n\n return () => {\n mounted.current = false;\n };\n }, [getContributionData]);\n\n const handleContributionOptions = (type) => {\n if (type !== selectedContributionOption) {\n setSelectedContributionOption(type);\n }\n };\n\n const renderPositiveNegativeOptions = (id) => {\n return (\n \n
    \n
      \n {keyContributionConstant.noManagerSelected.map((item) => (\n
    • \n {' '}\n handleContributionOptions(item.id)}\n onChange={() => {}}\n />\n \n
    • \n ))}\n
    \n
    \n
    \n );\n };\n\n const renderTableHeader = () => {\n return (\n \n \n \n Customer\n \n \n {contributionData?.previous_date}\n \n \n {contributionData?.current_date}\n \n \n Change\n \n \n {' '}\n Contribution\n \n \n \n );\n };\n\n const renderTableData = (item, type, formatNumber) => {\n return (\n \n \n {' '}\n
    {item?.customer_name}
    \n
    {item?.bgs}
    \n \n \n {formatNumber(item?.previous_rev_share, '$')}\n \n \n {formatNumber(item?.current_rev_share, '$')}\n \n {type === POSITIVE ? (\n \n {item?.previous_rev_share === 0 ? (\n 'N/A'\n ) : (\n
    \n {' '}\n \"arrow-up\"\n {formatNumber(Math.abs(item?.change_in_percentage), '', '%')}\n
    \n )}\n \n ) : (\n \n {item?.previous_rev_share === 0 ? (\n 'N/A'\n ) : (\n
    \n \"arrow-up\"\n {formatNumber(Math.abs(item?.change_in_percentage), '', '%')}\n
    \n )}\n \n )}\n\n \n \n
    \n \n \n );\n };\n\n const renderDekstopView = () => {\n let selectedContibutionData = [];\n\n selectedContibutionData =\n selectedContributionOption && selectedContributionOption === POSITIVE\n ? contributionData?.positive\n : selectedContributionOption &&\n selectedContributionOption === 'negative'\n ? contributionData?.negative\n : [];\n\n return (\n <>\n {selectedContibutionData && selectedContibutionData.length >= 1 ? (\n \n {renderTableHeader()}\n \n {selectedContibutionData &&\n selectedContibutionData.map((item) =>\n renderTableData(\n item,\n selectedContributionOption === POSITIVE\n ? POSITIVE\n : 'negative',\n useFormatNumber,\n ),\n )}\n \n
    \n ) : null}\n {!selectedContibutionData ||\n (selectedContibutionData && selectedContibutionData.length === 0) ? (\n {noGraphDataMessage}\n ) : null}\n \n );\n };\n\n const renderMobileView = (formatNumber) => {\n let selectedContibutionData = [];\n\n selectedContibutionData =\n selectedContributionOption && selectedContributionOption === POSITIVE\n ? contributionData?.positive\n : selectedContributionOption &&\n selectedContributionOption === 'negative'\n ? contributionData?.negative\n : [];\n\n return (\n
    \n
    \n
    \n
    \n REV SHARE CONTRIBUTION\n
    \n
    \n
    \n {!isDesktop ? renderPositiveNegativeOptions() : null}\n
    \n
    \n {contributionLoader ? (\n \n ) : selectedContibutionData?.length >= 1 ? (\n selectedContibutionData.map((item) => (\n \n ))\n ) : selectedContibutionData && selectedContibutionData.length === 0 ? (\n {noGraphDataMessage}\n ) : null}\n
    \n );\n };\n\n return (\n <>\n \n
    \n
    \n
    \n REV SHARE CONTRIBUTION\n
    \n
    \n
    \n {isDesktop ? renderPositiveNegativeOptions() : null}\n
    \n
    \n
    \n {contributionLoader ? (\n \n ) : isDesktop ? (\n renderDekstopView()\n ) : null}\n \n {renderMobileView(useFormatNumber)}\n \n );\n}\n\nBBEGoalRevShareContribution.defaultProps = {};\nBBEGoalRevShareContribution.propTypes = {\n monthYear: instanceOf(Date).isRequired,\n};\n","import React, { useRef, useState } from 'react';\n\nimport Dayjs from 'dayjs';\nimport DatePicker from 'react-datepicker';\n\nimport BBEGoalHighLevelMetrics from './BBEGoalHighLevelMetrics';\nimport BBEGoalRevShareContribution from './BBEGoalRevShareContribution';\nimport { DashboardCard } from '../../theme/Global';\nimport {\n Button,\n CustomDateRange,\n DropDownSelectMonthPicker,\n GlobalNavbar,\n NoRecordFound,\n} from '../../common';\nimport { CaretUp, CloseIcon } from '../../theme/images';\nimport { monthNames } from '../../constants';\n\nconst currentDate = new Date();\ncurrentDate.setDate(1);\ncurrentDate.setMonth(currentDate.getMonth() - 1);\nexport default function BBEGoalDashboardContainer() {\n const dropdownRef = useRef(null);\n const [showDropdown, setShowDropdown] = useState({ show: false });\n\n const [monthYear, setMonthYear] = useState(currentDate);\n const [finalMonthYear, setFinalMonthYear] = useState(currentDate);\n const [updatedDate, setUpdatedDate] = useState(null);\n\n const handleApply = () => {\n setFinalMonthYear(monthYear);\n setShowDropdown({ show: !showDropdown.show });\n };\n\n const onDateChange = (date) => {\n setMonthYear(date);\n };\n\n const renderTimeFilterLabel = () => {\n const currentMonthYearLabel = `${\n monthNames[finalMonthYear.getMonth()]\n } ${finalMonthYear.getFullYear()}`;\n\n return currentMonthYearLabel;\n };\n\n const displayTimeFilterOption = () => {\n return showDropdown.show ? (\n
    \n

    Select Date Range

    \n {\n setShowDropdown({ show: !showDropdown.show });\n }}\n />\n\n \n
    \n onDateChange(date, e)}\n maxDate={currentDate}\n minDate={new Date('2021-01-01')}\n inline\n dateFormat=\"MM/yyyy\"\n showMonthYearPicker\n previousMonthAriaLabel=\"asdasda\"\n />\n
    \n
    \n\n handleApply()}\n >\n Apply\n \n
    \n ) : null;\n };\n\n const renderTimeFilterDropDown = () => {\n return (\n \n {\n setShowDropdown({ show: !showDropdown.show });\n }}\n >\n {renderTimeFilterLabel()}\n \n
    \n
    {displayTimeFilterOption()}
    \n \n );\n };\n\n return (\n <>\n \n \n {/* PDV-8739 - [Ad Hoc from Liz] HOME TAB - Temporarily hide the data */}\n
    \n
    \n
    \n
    \n Business Performance Snapshot\n
    \n {updatedDate && (\n
    Last Updated {updatedDate}
    \n )}\n
    \n
    \n {renderTimeFilterDropDown()}\n
    \n
    \n\n \n setUpdatedDate(Dayjs(date).format('DD MMM, YYYY'))\n }\n selectedMonthYear={finalMonthYear}\n />\n \n
    \n {/* PDV-8739 - [Ad Hoc from Liz] HOME TAB - Temporarily hide the data */}\n \n
    \n \n );\n}\n","import styled from 'styled-components';\n\nimport Theme from '../../theme/Theme';\n\nexport const CollapseContainer = styled.div`\n opacity: 0.6;\n pointer-events: none;\n`;\n\nexport const ThanksPage = styled.div`\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n max-width: 400px;\n width: 100%;\n margin: 0 auto;\n\n .info {\n color: ${Theme.gray90};\n font-size: ${Theme.title};\n font-family: ${Theme.baseFontFamily};\n }\n`;\n\nexport const BackToStep = styled.div`\n position: fixed;\n background-color: ${Theme.white};\n z-index: 2;\n top: 70px;\n padding: 22px 0px 18px 0px;\n width: 100%;\n border-bottom: 1px solid ${Theme.gray5};\n\n .skip-steps {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n cursor: pointer;\n }\n`;\n\nexport const CollapseOpenContainer = styled.div`\n max-width: 430px !important;\n margin: 0 auto;\n .inner-content {\n background-color: ${Theme.white};\n padding: 4px 0px 4px 0px;\n .pay-card {\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n font-weight: 600;\n }\n .label-title {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n letter-spacing: 1.13px;\n text-transform: uppercase;\n font-weight: bold;\n font-family: ${Theme.titleFontFamily};\n }\n .payment-option {\n list-style-type: none;\n margin: 0;\n padding: 0;\n li {\n display: inline-block;\n margin-right: 23px;\n margin-bottom: 7px;\n &:last-child {\n margin-right: 0px;\n margin-bottom: 0px;\n }\n .card {\n width: 18px;\n margin-right: 6px;\n vertical-align: middle;\n }\n }\n }\n }\n`;\n\nexport const AmazonAccountPermission = styled.div`\n .justify-space-between {\n display: flex;\n justify-content: space-between;\n }\n .check-box {\n &:last-child {\n border-bottom: none;\n }\n }\n .on-hover-detail-show {\n display: none;\n max-width: 430px;\n border-radius: 8px;\n border: 1px solid rgba(128, 151, 177, 0.5);\n padding: 22px 16px;\n position: absolute;\n background: ${Theme.white};\n color: ${Theme.black};\n .details-inst {\n list-style-type: none;\n margin: 0;\n padding: 0;\n li {\n display: flex;\n margin-bottom: 20px;\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n }\n .on-hover-detail:hover .on-hover-detail-show {\n display: block;\n }\n`;\n","import React from 'react';\n\nimport queryString from 'query-string';\nimport LoadingBar from 'react-top-loading-bar';\nimport { useHistory } from 'react-router-dom';\nimport { string, shape, bool } from 'prop-types';\n\nimport { askSomeoneData } from '../../api';\nimport { BackToStep } from './OnBoardingStyles';\nimport { LeftArrowIcon } from '../../theme/images';\nimport { PATH_ACCOUNT_SETUP_CHOOSE } from '../../constants';\n\nexport default function NavigationHeader({\n bar,\n backStep,\n skipStep,\n showSuccessMsg,\n stepData,\n verifiedStepData,\n userInfo,\n stepName,\n}) {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n\n const redirect = (type) => {\n if (type === 'back') {\n if (backStep === '1') {\n const originalEmail = /\\s/.test(params.email)\n ? params.email.replace(/\\s/g, '+')\n : params.email;\n delete params.email;\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n });\n\n history.push({\n pathname: PATH_ACCOUNT_SETUP_CHOOSE,\n search: `${stringified}&email=${originalEmail}`,\n });\n } else {\n history.push(backStep);\n }\n }\n if (type === 'skip') {\n if (\n (stepData === undefined ||\n (stepData &&\n Object.keys(stepData) &&\n Object.keys(stepData).length === 0)) &&\n verifiedStepData &&\n Object.keys(verifiedStepData) &&\n Object.keys(verifiedStepData).length === 0\n ) {\n const detail = {\n email: '',\n step: stepName,\n customer_onboarding: userInfo.customer_onboarding,\n };\n askSomeoneData(detail).then((stepResponse) => {\n if (stepResponse && stepResponse.status === 201) {\n history.push(skipStep);\n if (stepName === 'digital presence') {\n askSomeoneData({\n email: '',\n step: 'billing information',\n customer_onboarding: userInfo.customer_onboarding,\n });\n }\n }\n });\n } else {\n history.push(skipStep);\n }\n }\n };\n\n return (\n <>\n \n {!showSuccessMsg ? (\n \n
    \n {' '}\n
    \n
    \n {backStep !== '' ? (\n redirect('back')}>\n \n Back a step\n
    \n ) : (\n ''\n )}\n
    \n
    \n {skipStep !== '' ? (\n
    redirect('skip')} role=\"presentation\">\n
    Skip this step
    \n
    \n ) : (\n ''\n )}\n
    \n
    \n
    \n \n ) : (\n ''\n )}\n \n );\n}\n\nNavigationHeader.defaultProps = {\n backStep: '',\n skipStep: '',\n showSuccessMsg: false,\n stepData: {},\n};\n\nNavigationHeader.propTypes = {\n bar: string.isRequired,\n backStep: string,\n skipStep: string,\n showSuccessMsg: bool,\n userInfo: shape({\n email: string,\n customer_onboarding: string,\n }).isRequired,\n stepData: shape({\n id: string,\n }),\n verifiedStepData: shape(\n shape({\n user_name: string,\n }),\n ).isRequired,\n stepName: string.isRequired,\n};\n","/* eslint-disable react/no-danger */\nimport React, { useState, useEffect } from 'react';\n\nimport queryString from 'query-string';\nimport { useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport NavigationHeader from './NavigationHeader';\nimport { login } from '../../store/actions/userState';\nimport { resetPassword, updateOnBoardCustomer } from '../../api';\nimport {\n Button,\n InputFormField,\n ErrorMsg,\n OnBoardingBody,\n PageLoader,\n UnauthorizedHeader,\n} from '../../common';\nimport { pageTitleConditions } from '../../constants';\n\nexport default function CreateAccount() {\n const { register, handleSubmit, errors, watch } = useForm();\n const history = useHistory();\n const dispatch = useDispatch();\n const loader = useSelector((state) => state.userState.isLoading);\n const params = queryString.parse(history.location.search);\n const [apiError, setApiError] = useState({});\n const [formData, setFormData] = useState({});\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n const [assignTo, setAssignTo] = useState(false);\n const [showSuccessMsg, setShowSuccessMsg] = useState(false);\n const [getEmail, setGetEmail] = useState('');\n const newDetails = [\n { key: 'first_name', label: 'First Name' },\n { key: 'last_name', label: 'Last Name' },\n { key: 're_assigned_user_email', label: 'Email Address' },\n { key: 'confirm_email', label: 'Confirm Email Address' },\n ];\n\n // Call the function if only page url is get changed (Code to add page title)\n useEffect(() => {\n pageTitleConditions(history.location);\n history.listen((location) => {\n pageTitleConditions(location);\n });\n }, [history]);\n\n useEffect(() => {\n if (params && params.type && params.type === 'new') {\n setAssignTo(true);\n } else {\n setAssignTo(false);\n }\n }, [params]);\n\n const savePassword = () => {\n setIsLoading({ loader: true, type: 'button' });\n const data = {\n ...formData,\n key: params.key,\n };\n const loginData = {\n ...formData,\n email: localStorage.getItem('email') || (params && params.email),\n };\n\n resetPassword(data).then((response) => {\n if (response && response.status === 400) {\n setApiError(response && response.data);\n setIsLoading({ loader: false, type: 'button' });\n } else if (response && response.status === 200) {\n dispatch(login(history, loginData, '', params && params.id));\n localStorage.removeItem('email');\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n const onSubmit = (data) => {\n setIsLoading({ loader: true, type: 'button' });\n const detail = {\n ...data,\n is_reassigned: true,\n };\n\n updateOnBoardCustomer(params.id, detail).then((response) => {\n if (response && response.status === 200) {\n setIsLoading({ loader: false, type: 'button' });\n setShowSuccessMsg(true);\n setGetEmail(data.re_assigned_user_email);\n localStorage.removeItem('email');\n }\n if (\n (response && response.status === 400) ||\n (response && response.status === 403)\n ) {\n setShowSuccessMsg(false);\n setApiError(response && response.data);\n setIsLoading({ loader: false, type: 'button' });\n }\n if (response && response.status === 401) {\n setShowSuccessMsg(false);\n setApiError(response && response.data);\n setIsLoading({ loader: false, type: 'button' });\n localStorage.removeItem('email');\n }\n });\n };\n\n const getHTML = (type) => {\n if (type === 'confirm_email') {\n return register({\n required: {\n value: true,\n message: 'This field is required.',\n },\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: 'Invalid email address.',\n },\n validate: (value) =>\n value === watch('re_assigned_user_email') ||\n 'The Email IDs do not match!',\n });\n }\n if (type === 're_assigned_user_email') {\n return register({\n required: {\n value: true,\n message: 'This field is required.',\n },\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: 'Invalid email address.',\n },\n });\n }\n if (type === 'first_name' || type === 'last_name') {\n return register({\n required: {\n value: true,\n message: 'This field is required.',\n },\n pattern: {\n value: /^[0-9a-zA-Z_-]*$/i,\n message: 'Special characters are not allowed.',\n },\n });\n }\n return register({\n required: {\n value: true,\n message: 'This field is required.',\n },\n });\n };\n\n return (\n <>\n \n {showSuccessMsg ? (\n ''\n ) : (\n \n )}\n\n \n {!assignTo ? (\n
    \n

    Step 1 of 6

    \n

    \n Please set your password to create your account.\n

    \n

    \n If you’d like someone else to manage the Buy Box Experts account\n then you can reassign the setup process to them.\n
    \n {params && params.multiple_customers === 'True' ? (\n

    \n This email is associated with more than one account. Note that\n the password you set here will be used for all your accounts.\n
    \n ) : (\n ''\n )}\n

    \n \n \n \n \n \n \n \n {apiError && apiError.password && apiError.password[0]}\n \n \n savePassword()}\n >\n {loader || (isLoading.loader && isLoading.type === 'button') ? (\n \n ) : (\n 'Continue'\n )}\n \n
    \n ) : (\n <>\n {showSuccessMsg ? (\n
    \n

    Account Setup Reassigned

    \n

    \n You have successfully reassigned the account setup process to\n the following email address:\n

    \n
    {getEmail}
    \n

    \n If you need any assistance please reach out to\n
    \n \n onboarding@buyboxexperts.com\n \n

    \n
    \n ) : (\n
    \n

    \n Re-assign account setup\n

    \n

    \n

    \n {' '}\n If you’d like someone else to administer the Buy Box Experts\n account then you can reassign the setup process to them.\n
    \n\n \n Note: Only the nominated email address will be able to add\n and remove access for other members of your team.\n \n

    \n
    \n {newDetails.map((item) => (\n \n \n \n {errors && errors[item.key] && errors[item.key].message}\n \n \n {apiError &&\n apiError[item.key] &&\n apiError[item.key][0]}\n \n \n ))}\n {apiError && apiError.detail}\n \n {apiError &&\n apiError.non_field_errors &&\n apiError.non_field_errors[0]}\n \n \n
    \n
    \n )}\n \n )}\n
    \n \n );\n}\n","import React, { useState } from 'react';\n\nimport $ from 'jquery';\nimport queryString from 'query-string';\nimport { useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { string, shape, bool, func, number, arrayOf } from 'prop-types';\n\nimport { TrashIcons } from '../../theme/images';\nimport { getCustomerDetails, userMe } from '../../store/actions';\nimport {\n askSomeoneData,\n updateAskSomeoneData,\n updateCustomerDetails,\n updateUserMe,\n} from '../../api';\nimport {\n PATH_SUMMARY,\n PATH_THANKS,\n socialIcons,\n stepPath,\n} from '../../constants';\nimport {\n OnBoardingBody,\n InputFormField,\n Button,\n PageLoader,\n ErrorMsg,\n} from '../../common';\n\nexport default function CompanyDigital({\n setIsLoading,\n assignedToSomeone,\n stepData,\n verifiedStepData,\n userInfo,\n data,\n isLoading,\n isChecked,\n summaryData,\n}) {\n const history = useHistory();\n const dispatch = useDispatch();\n const [formData, setFormData] = useState({});\n const [apiError, setApiError] = useState({});\n const params = queryString.parse(history.location.search);\n const [clearSocialInput, setClearSocialInput] = useState({\n facebook: '',\n instagram: '',\n linkedin: '',\n pinterest: '',\n twitter: '',\n });\n\n const getIncompleteStep = summaryData.find(\n (op) =>\n Object.keys(op)[0] !== 'digital presence' &&\n Object.values(op)[0] === false,\n );\n\n const CheckStep = (step) => {\n setIsLoading({ loader: true, type: 'button' });\n if (step === 'amazon account' || getIncompleteStep === undefined) {\n history.push(PATH_SUMMARY);\n } else {\n stepPath.map((item) => {\n if (Object.keys(getIncompleteStep)[0] === item.key) {\n return history.push(item.view);\n }\n return '';\n });\n }\n $('body').scrollTop(0);\n\n setIsLoading({ loader: false, type: 'button' });\n };\n\n const createBillingStep = () => {\n const detail = {\n is_completed: false,\n email: '',\n step: 'billing information',\n customer_onboarding: userInfo.customer_onboarding,\n };\n askSomeoneData(detail);\n };\n\n const saveDetails = () => {\n setIsLoading({ loader: true, type: 'button' });\n updateCustomerDetails(\n userInfo.customer || verifiedStepData.customer_id,\n formData,\n ).then((res) => {\n if (res && res.status === 200) {\n if (\n (stepData === undefined ||\n (stepData &&\n Object.keys(stepData) &&\n Object.keys(stepData).length === 0)) &&\n verifiedStepData &&\n Object.keys(verifiedStepData) &&\n Object.keys(verifiedStepData).length === 0\n ) {\n const detail = {\n is_completed: true,\n email: userInfo.email,\n step: 'digital presence',\n customer_onboarding: userInfo.customer_onboarding,\n };\n askSomeoneData(detail).then((stepResponse) => {\n if (stepResponse && stepResponse.status === 201) {\n if (assignedToSomeone) {\n const stringified =\n queryString &&\n queryString.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n CheckStep('digital presence');\n }\n updateUserMe(userInfo.id || verifiedStepData.user_id, {\n step: {\n ...(userInfo.step || verifiedStepData.user_step),\n [userInfo.customer || verifiedStepData.customer_id]: 2,\n },\n }).then((user) => {\n if (user && user.status === 200) {\n if (assignedToSomeone) {\n localStorage.removeItem('match');\n } else dispatch(userMe());\n }\n });\n createBillingStep();\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n } else {\n updateAskSomeoneData(\n (stepData && stepData.id) || verifiedStepData.step_id,\n {\n token: assignedToSomeone ? params && params.key : '',\n is_completed: true,\n },\n ).then((response) => {\n if (response && response.status === 200) {\n if (assignedToSomeone) {\n const stringified =\n queryString &&\n queryString.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n CheckStep('digital presence');\n }\n updateUserMe(userInfo.id || verifiedStepData.user_id, {\n step: {\n ...(userInfo.step || verifiedStepData.user_step),\n [userInfo.customer || verifiedStepData.customer_id]: 2,\n },\n }).then((user) => {\n if (user && user.status === 200) {\n if (assignedToSomeone) {\n localStorage.removeItem('match');\n } else dispatch(userMe());\n }\n });\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n }\n }\n if (res && res.status === 400) {\n setApiError(res && res.data);\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n const handleChange = (event) => {\n setFormData({ ...formData, [event.target.name]: event.target.value });\n setApiError({\n ...apiError,\n [event.target.name]: '',\n });\n };\n\n const clearSocialURL = (key) => {\n setClearSocialInput({ ...clearSocialInput, [key]: null });\n updateCustomerDetails(userInfo.customer || verifiedStepData.customer_id, {\n [key]: null,\n }).then((response) => {\n if (response && response.status === 200) {\n dispatch(\n getCustomerDetails(userInfo.customer || verifiedStepData.customer_id),\n );\n setIsLoading({ loader: false, type: 'social' });\n }\n if (response && response.status === 400) {\n setApiError(response && response.data);\n setIsLoading({ loader: false, type: 'social' });\n }\n });\n };\n\n const generateHTML = () => {\n return (\n \n \n \n \n {apiError && apiError.website && apiError.website[0]}\n \n \n
    Social
    \n\n
    \n {socialIcons.map((item) => (\n \n
    \n \n {' '}\n {item.label}\n \n
    \n\n
    \n {' '}\n \n handleChange(event)}\n readOnly={isChecked}\n />\n {data && data[item.key] && !isChecked ? (\n clearSocialURL(item.key)}\n role=\"presentation\"\n />\n ) : (\n ''\n )}\n \n {apiError && apiError[item.key] && apiError[item.key][0]}\n \n \n
    \n
    \n ))}\n
    \n
    \n );\n };\n\n return (\n <>\n \n
    {generateHTML()}
    \n {isChecked ? (\n ''\n ) : (\n saveDetails()}\n disabled={isChecked}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n <>{assignedToSomeone ? 'Submit' : 'Continue'} \n )}\n \n )}\n
    \n \n );\n}\n\nCompanyDigital.defaultProps = {\n stepData: {},\n};\n\nCompanyDigital.propTypes = {\n userInfo: shape({\n id: string,\n email: string,\n customer: string,\n customer_onboarding: string,\n step: shape({\n step: number,\n }),\n }).isRequired,\n setIsLoading: func.isRequired,\n assignedToSomeone: bool.isRequired,\n stepData: shape({\n id: string,\n }),\n verifiedStepData: shape({\n user_name: string,\n step_id: string,\n customer_id: string,\n user_id: string,\n user_step: shape({}),\n }).isRequired,\n data: shape({\n id: string,\n website: string,\n }).isRequired,\n isLoading: shape({\n loader: bool,\n type: string,\n }).isRequired,\n isChecked: bool.isRequired,\n summaryData: arrayOf(shape({})).isRequired,\n};\n","import React, { useEffect } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport PropTypes, { shape } from 'prop-types';\nimport NumberFormat from 'react-number-format';\n\nimport { InputFormField, Button, ErrorMsg } from '../../common';\nimport { billingInformation } from '../../constants';\nimport { saveBillingInfo } from '../../api';\n\nexport default function AdditionalBillingContact({\n data,\n formData,\n setFormData,\n apiError,\n setApiError,\n disabledConditionForBillingContact,\n contactApiErrors,\n setContactApiErrors,\n}) {\n const tempContact = {\n uniqueKey: Math.random(),\n first_name: '',\n last_name: '',\n email: '',\n phone_number: '',\n };\n\n useEffect(() => {\n if (!formData?.billing_contact?.length) {\n tempContact.primary_contact = true;\n setFormData({\n ...formData,\n billing_contact: [tempContact],\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formData.billing_contact]);\n\n const addNewContact = () => {\n setFormData({\n ...formData,\n // eslint-disable-next-line react/prop-types\n billing_contact: [...formData?.billing_contact, tempContact],\n });\n };\n\n const handleChange = (event, item, type, contact, contactIndex) => {\n const tempBillingContact = formData?.billing_contact;\n\n if (tempBillingContact?.length) {\n tempBillingContact[contactIndex][item?.key] = event.target.value;\n\n setFormData({\n ...formData,\n billing_contact: tempBillingContact,\n });\n }\n\n setApiError({\n ...apiError,\n [type]: {\n ...apiError[type],\n [contactIndex]: {\n ...apiError[type]?.[contactIndex],\n [item.key]: '',\n },\n },\n });\n\n setContactApiErrors({\n ...contactApiErrors,\n [type]: {\n ...contactApiErrors[type],\n [contactIndex]: {\n ...contactApiErrors[type]?.[contactIndex],\n [item.key]: '',\n },\n },\n });\n };\n\n const generateNumeric = (item, type, contact, contactIndex) => {\n return (\n \n handleChange(event, item, type, contact, contactIndex)\n }\n placeholder={`Enter ${item.label}`}\n value={contact[item.key]}\n isNumericString\n />\n );\n };\n\n const generateInput = (item, type, contact, contactIndex) => {\n return (\n \n handleChange(event, item, type, contact, contactIndex)\n }\n maxLength={item.key === 'postal_code' ? 10 : ''}\n />\n );\n };\n\n const deleteContact = (contactIndex, id, type) => {\n const tempBillingContactForDelete = [...formData?.billing_contact];\n if (tempBillingContactForDelete?.length) {\n setApiError({\n ...apiError,\n [type]: {\n ...apiError[type],\n [contactIndex]: {},\n },\n });\n\n setContactApiErrors({\n ...contactApiErrors,\n [type]: {\n ...contactApiErrors[type],\n [contactIndex]: {},\n },\n });\n\n // eslint-disable-next-line no-unused-vars\n const tempRemainingBillingContact = tempBillingContactForDelete.splice(\n contactIndex,\n 1,\n );\n setFormData({\n ...formData,\n billing_contact: [...tempBillingContactForDelete],\n });\n saveBillingInfo({ billing_contact_id: id }, data?.id);\n }\n };\n\n const disableAddContactButton = () => {\n if (\n formData?.billing_contact?.length &&\n formData?.billing_contact?.length < 6\n ) {\n return false;\n }\n return true;\n };\n\n const returnError = (param) => {\n return param;\n };\n\n const showAPIErrors = (contactIndex, label) => {\n const uniqueKeyNew =\n formData?.billing_contact?.length &&\n formData?.billing_contact?.filter((item) => item?.uniqueKey);\n\n if (uniqueKeyNew?.length) {\n const displayNewErrorMessage =\n contactApiErrors?.billing_contact?.[contactIndex]?.[label]?.[0];\n if (displayNewErrorMessage) {\n return returnError(displayNewErrorMessage);\n }\n }\n\n const oldContacts =\n formData?.billing_contact?.length &&\n formData?.billing_contact?.filter((item) => item?.id);\n if (oldContacts?.length) {\n const displayOldErrorMessage =\n apiError?.billing_contact?.[contactIndex]?.[label]?.[0];\n if (displayOldErrorMessage) {\n return returnError(displayOldErrorMessage);\n }\n }\n\n return '';\n };\n\n const generateBillingContactHTML = () => {\n return (\n <>\n {formData?.billing_contact?.length &&\n formData?.billing_contact.map((contact, contactIndex) => {\n return billingInformation.map((field) =>\n field?.label === 'Billing Contact' ? (\n \n {contactIndex <= 0 ? (\n

    {field.part}

    \n ) : (\n ''\n )}\n
    \n
    \n
    \n {' '}\n {contactIndex <= 0\n ? field.label\n : field.additional_label}\n
    \n
    \n
    \n {contactIndex > 0 ? (\n \n deleteContact(\n contactIndex,\n contact?.id ? contact?.id : null,\n 'billing_contact',\n )\n }\n aria-hidden=\"true\"\n >\n \n
    \n ) : (\n ''\n )}\n
    \n \n

    {field.subTitle}

    \n
    \n {field.array.map((item) => (\n
    \n \n \n \n {showAPIErrors(contactIndex, item.key)}\n \n \n
    \n ))}\n
    \n \n ) : (\n ''\n ),\n );\n })}\n \n );\n };\n\n return (\n <>\n {generateBillingContactHTML()}\n
    \n
    \n \n Additional Billing Contact\n
    \n
    \n
    \n \n You can add a maximum of 5 team members to receive invoices.\n Billing contacts can be updated anytime from your dashboard.\n
    \n
    \n
    \n \n Add\n \n
    \n \n
    \n \n );\n}\n\nAdditionalBillingContact.defaultProps = {\n data: {},\n formData: {},\n setFormData: () => {},\n apiError: {},\n setApiError: () => {},\n disabledConditionForBillingContact: () => {},\n contactApiErrors: {},\n setContactApiErrors: () => {},\n};\n\nAdditionalBillingContact.propTypes = {\n data: shape({}),\n formData: shape({}),\n setFormData: PropTypes.func,\n apiError: shape({}),\n setApiError: PropTypes.func,\n disabledConditionForBillingContact: PropTypes.func,\n contactApiErrors: shape({}),\n setContactApiErrors: PropTypes.func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport $ from 'jquery';\nimport axios from 'axios';\nimport queryString from 'query-string';\nimport NumberFormat from 'react-number-format';\nimport { useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { string, shape, bool, func, number, arrayOf } from 'prop-types';\n\nimport { userMe } from '../../store/actions';\nimport {\n OnBoardingBody,\n InputFormField,\n Button,\n PageLoader,\n ErrorMsg,\n} from '../../common';\nimport {\n askSomeoneData,\n updateAskSomeoneData,\n updateUserMe,\n saveBillingInfo,\n} from '../../api';\nimport {\n PATH_SUMMARY,\n PATH_THANKS,\n stepPath,\n billingInformation,\n} from '../../constants';\nimport AdditionalBillingContact from './AdditionalBillingContact';\n\nexport default function BillingInfo({\n setIsLoading,\n assignedToSomeone,\n stepData,\n verifiedStepData,\n userInfo,\n isLoading,\n data,\n isChecked,\n summaryData,\n summaryDetails,\n showDSPContact,\n}) {\n const history = useHistory();\n const dispatch = useDispatch();\n const params = queryString.parse(history.location.search);\n const [formData, setFormData] = useState({});\n const [apiError, setApiError] = useState({});\n const [contactApiErrors, setContactApiErrors] = useState({});\n\n const getIncompleteStep = summaryData.find(\n (op) =>\n Object.keys(op)[0] !== 'billing information' &&\n Object.values(op)[0] === false,\n );\n\n const CheckStep = (step) => {\n if (step === 'amazon account' || getIncompleteStep === undefined) {\n history.push(PATH_SUMMARY);\n } else {\n for (const item of stepPath) {\n if (Object.keys(getIncompleteStep)[0] === item.key) {\n history.push(item.view);\n }\n }\n }\n };\n\n useEffect(() => {\n $('.checkboxes input:checkbox').prop(\n 'checked',\n showDSPContact.sameAsBilling || true,\n );\n\n setFormData({\n ...formData,\n billing_address: data?.billing_address?.[0] || {},\n billing_contact: data?.billing_contact?.length\n ? data?.billing_contact\n : [],\n });\n }, [data]);\n\n const saveDetails = () => {\n setIsLoading({ loader: true, type: 'button' });\n if (\n (stepData === undefined ||\n (stepData && Object.keys(stepData)?.length === 0)) &&\n verifiedStepData &&\n Object.keys(verifiedStepData)?.length === 0\n ) {\n const detail = {\n is_completed: true,\n email: userInfo.email,\n step: 'billing information',\n customer_onboarding: userInfo.customer_onboarding,\n };\n askSomeoneData(detail).then((stepResponse) => {\n if (stepResponse?.status === 201) {\n if (assignedToSomeone) {\n const stringified = queryString?.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n CheckStep('billing information');\n }\n updateUserMe(userInfo.id || verifiedStepData.user_id, {\n step: {\n ...(userInfo.step || verifiedStepData.user_step),\n [userInfo.customer || verifiedStepData.customer_id]: 3,\n },\n }).then((user) => {\n if (user?.status === 200) {\n if (assignedToSomeone) {\n localStorage.removeItem('match');\n } else dispatch(userMe());\n }\n });\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n } else {\n updateAskSomeoneData(stepData?.id || verifiedStepData.step_id, {\n token: assignedToSomeone ? params?.key : '',\n is_completed: true,\n }).then((response) => {\n if (response?.status === 200) {\n if (assignedToSomeone) {\n const stringified = queryString?.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n CheckStep('billing information');\n }\n updateUserMe(userInfo.id || verifiedStepData.user_id, {\n step: {\n ...(userInfo.step || verifiedStepData.user_step),\n [userInfo.customer || verifiedStepData.customer_id]: 3,\n },\n }).then((user) => {\n if (user?.status === 200) {\n if (assignedToSomeone) {\n localStorage.removeItem('match');\n } else dispatch(userMe());\n }\n });\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n }\n summaryDetails(\n userInfo.customer_onboarding || verifiedStepData.customer_onboarding_id,\n );\n };\n\n const checkIfContactAlreadyPresent = () => {\n if (formData?.billing_contact?.length) {\n const id = formData?.billing_contact?.filter((item) => item?.id);\n return id;\n }\n return null;\n };\n\n const saveBillingData = () => {\n setIsLoading({ loader: true, type: 'button' });\n\n if (formData?.billing_contact?.length) {\n // eslint-disable-next-line no-unused-vars\n const deletedMobileNumber = formData?.billing_contact?.map((contact) =>\n contact?.phone_number === '' || contact?.phone_number === null\n ? delete contact.phone_number\n : contact.phone_number,\n );\n }\n\n let details = {\n ...formData,\n billing_address: formData.billing_address,\n billing_contact: formData.billing_contact,\n customer_onboarding:\n userInfo.customer_onboarding || verifiedStepData.customer_onboarding_id,\n };\n\n let newContactDataDetails;\n if (data?.id && formData?.billing_contact?.length) {\n const newContactData = formData?.billing_contact?.filter(\n (contact) => contact.uniqueKey,\n );\n\n newContactDataDetails = {\n ...formData,\n billing_address: formData.billing_address,\n billing_contact: newContactData,\n customer_onboarding:\n userInfo.customer_onboarding ||\n verifiedStepData.customer_onboarding_id,\n };\n\n const oldContactData = formData?.billing_contact?.filter(\n (contact) => !contact.uniqueKey,\n );\n\n details = {\n ...formData,\n billing_contact: oldContactData,\n };\n }\n\n axios.all([saveBillingInfo(details, data?.id || null, '')]).then(\n axios.spread((...res) => {\n const emptyObj = {};\n if (\n res?.[0]?.status === 400 &&\n newContactDataDetails?.billing_contact?.length\n ) {\n saveBillingInfo(\n newContactDataDetails,\n res?.data?.id,\n 'newContactDataDetails',\n ).then((response1) => {\n if (response1?.status === 400) {\n let contact1 = {};\n\n if (res?.[0]?.data?.billing_contact?.length) {\n contact1 = [];\n for (\n let i = 0;\n i < res?.[0]?.data?.billing_contact?.length;\n // eslint-disable-next-line no-plusplus\n i++\n ) {\n contact1.push(emptyObj);\n }\n const tempContact1 = response1?.data?.billing_contact;\n contact1 = [...contact1, ...tempContact1];\n setContactApiErrors({\n billing_contact: contact1,\n });\n } else {\n contact1 = response1?.data?.billing_contact;\n setContactApiErrors({\n billing_contact: contact1,\n });\n }\n }\n });\n }\n if (res?.[0]?.status === 201 || res?.[0]?.status === 200) {\n if (newContactDataDetails?.billing_contact?.length) {\n saveBillingInfo(\n newContactDataDetails,\n res?.data?.id,\n 'newContactDataDetails',\n ).then((response) => {\n if (response?.status === 201) {\n saveDetails();\n if (assignedToSomeone) {\n const stringified = queryString?.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n CheckStep('billing information');\n }\n }\n // for error binding\n if (response?.status === 400) {\n let contact = [];\n\n setIsLoading({ loader: false, type: 'button' });\n const existingContacts =\n formData?.billing_contact?.length &&\n formData?.billing_contact?.filter((item) => item?.id);\n if (existingContacts?.length) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < existingContacts?.length; i++) {\n contact.push(emptyObj);\n }\n const newError = response?.data?.billing_contact;\n contact = [...contact, ...newError];\n setApiError({\n ...apiError,\n billing_contact: contact,\n });\n } else {\n contact = response?.data?.billing_contact;\n setApiError({\n ...apiError,\n billing_contact: contact,\n });\n }\n // }\n }\n });\n } else {\n saveDetails();\n if (assignedToSomeone) {\n const stringified = queryString?.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n CheckStep('billing information');\n }\n }\n }\n\n if (res?.[0]?.status === 400) {\n let address = {};\n let contact = {};\n address = res?.[0]?.data?.billing_address;\n contact = res?.[0]?.data?.billing_contact;\n\n setIsLoading({ loader: false, type: 'button' });\n setApiError({\n billing_address: address,\n billing_contact: contact,\n });\n\n const uniqueId = checkIfContactAlreadyPresent();\n if (uniqueId?.length) {\n setApiError({\n billing_address: address,\n billing_contact: contact,\n });\n } else {\n setContactApiErrors({\n billing_contact: contact,\n });\n }\n\n if (\n (res?.data && res.data.billing_address) ||\n (res?.data && res.data[0])\n ) {\n document.body.scrollTop = 0; // For Safari\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\n }\n }\n }),\n );\n };\n\n const handleChange = (event, item, type) => {\n setFormData({\n ...formData,\n [type]: {\n ...formData[type],\n [item.key]: event.target.value,\n },\n });\n\n setApiError({\n ...apiError,\n [type]: {\n ...apiError[type],\n [item.key]: '',\n },\n 0: '',\n });\n if (showDSPContact.sameAsBilling && type === 'billing_contact') {\n setFormData({\n ...formData,\n billing_contact: {\n ...formData.billing_contact,\n [item.key]: event.target.value,\n },\n });\n }\n };\n\n const generateNumeric = (item, type) => {\n return (\n handleChange(event, item, type)}\n placeholder={`Enter ${item.label}`}\n value={formData?.[type]?.[item.key]}\n isNumericString\n />\n );\n };\n\n const generateInput = (item, type) => {\n return (\n handleChange(event, item, type)}\n maxLength={item.key === 'postal_code' ? 10 : ''}\n />\n );\n };\n\n const generateBillingAddressHTML = () => {\n return (\n <>\n {billingInformation.map((field) =>\n field?.label !== 'Billing Contact' ? (\n
    \n

    {field.part}

    \n
    {field.label}
    \n

    {field.subTitle}

    \n
    \n {field.array.map((item) => (\n
    \n \n \n \n \n {apiError?.[field.key]?.[item.key]?.[0]}\n \n
    \n ))}\n
    \n
    \n ) : (\n ''\n ),\n )}\n \n );\n };\n\n // Checkdisabled confition for Billing contact\n const disabledConditionForBillingContact = () => {\n let arr = [];\n // Remove phone number from billing contact, because phone number is not mandatory\n const billingContactWithoutPhone = formData?.billing_contact?.map(\n // eslint-disable-next-line camelcase\n ({ phone_number, ...rest }) => {\n return rest;\n },\n );\n\n // eslint-disable-next-line no-unused-vars\n const tempBillingContactWithoutPhone = billingContactWithoutPhone?.map(\n // eslint-disable-next-line array-callback-return\n (item) => {\n const currentValues = Object.values(item);\n arr = [...arr, ...currentValues];\n },\n );\n\n const disabledFlag = arr?.some((item) => item === '');\n if (disabledFlag) {\n return true;\n }\n return false;\n };\n\n const disableWhenError = () => {\n const contactVariable = disabledConditionForBillingContact();\n\n if (contactVariable) {\n return true;\n }\n\n if (\n !formData?.billing_address ||\n !formData?.billing_address?.address ||\n !formData?.billing_address?.city ||\n !formData?.billing_address?.state ||\n !formData?.billing_address?.postal_code\n )\n return true;\n if (\n apiError?.billing_address &&\n Object.values(apiError.billing_address)?.find((op) => op !== '')\n )\n return true;\n return false;\n };\n\n return (\n <>\n \n {generateBillingAddressHTML()}\n \n
    \n {isChecked ? (\n ''\n ) : (\n saveBillingData()}\n disabled={disableWhenError()}\n >\n {' '}\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n <>{assignedToSomeone ? 'Submit' : 'Continue'} \n )}\n \n )}\n
    \n
    \n \n );\n}\n\nBillingInfo.defaultProps = {\n stepData: {},\n summaryDetails: () => {},\n};\n\nBillingInfo.propTypes = {\n userInfo: shape({\n id: string,\n email: string,\n customer: string,\n customer_onboarding: string,\n step: shape({\n step: number,\n }),\n }).isRequired,\n setIsLoading: func.isRequired,\n assignedToSomeone: bool.isRequired,\n stepData: shape({\n id: string,\n }),\n verifiedStepData: shape(\n shape({\n user_name: string,\n }),\n ).isRequired,\n isLoading: shape({\n loader: bool,\n type: string,\n }).isRequired,\n data: shape({\n id: string,\n card_details: shape({}),\n billing_address: shape({\n address: string,\n }),\n billing_contact: shape({\n first_name: string,\n }),\n }).isRequired,\n isChecked: bool.isRequired,\n summaryData: arrayOf(shape({})).isRequired,\n summaryDetails: func,\n showDSPContact: shape({\n sameAsBilling: bool,\n show: bool,\n }).isRequired,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { string, shape, bool, func } from 'prop-types';\n\nimport { CloseIcon } from '../../../theme/images';\nimport { ModalBox, PageLoader } from '../../../common';\n\nexport default function AmazonVideo({\n showVideo,\n setShowVideo,\n isLoading,\n videoData,\n marketplaceDetails,\n}) {\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '900px ',\n width: '100% ',\n minHeight: '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n const mapVideoData = () => {\n if (marketplaceDetails.type === 'Hybrid') {\n if (showVideo[2]) return videoData.seller_central_info;\n if (showVideo[3]) return videoData.seller_ad_info;\n if (showVideo[5]) return videoData.vendor_central_info;\n if (showVideo[6]) return videoData.vendor_ad_info;\n }\n if (marketplaceDetails.type === 'Seller') {\n if (showVideo[2]) return videoData.seller_central_info;\n if (showVideo[3]) return videoData.seller_ad_info;\n }\n if (marketplaceDetails.type === 'Vendor') {\n if (showVideo[2]) return videoData.vendor_central_info;\n if (showVideo[3]) return videoData.vendor_ad_info;\n }\n return '';\n };\n\n return (\n \n setShowVideo({ showVideo: false })}\n role=\"presentation\"\n />\n \n {isLoading.loader && isLoading.type === 'video' ? (\n \n ) : (\n
    \n \n
    \n )}\n
    \n \n );\n}\n\nAmazonVideo.propTypes = {\n showVideo: string.isRequired,\n setShowVideo: func.isRequired,\n isLoading: shape({\n loader: bool,\n type: string,\n }).isRequired,\n videoData: shape({}).isRequired,\n marketplaceDetails: shape({\n type: string,\n }).isRequired,\n};\n","import React, { useState } from 'react';\n\nimport { shape, string, func, bool, arrayOf } from 'prop-types';\n\nimport {\n InputFormField,\n ErrorMsg,\n CheckBox,\n Status,\n Button,\n} from '../../../common';\nimport {\n amazonSellerAccountDetails,\n amazonVendorAccountDetails,\n} from '../../../constants';\n\nconst SingleAccountMarketplaces = ({\n accountDetails,\n mapSecondaryMarketplaceValues,\n setDefaultForSecondary,\n accountType,\n advertiseForMarketplace,\n sellerMarketplaces,\n vendorMarketplaces,\n apiError,\n mapApiErrors,\n isAuthorized,\n localVendor,\n localSeller,\n accountRedirectURL,\n isChecked,\n}) => {\n const [doesntAdvertise, setDoesntAdvertise] = useState(\n advertiseForMarketplace,\n );\n\n const arrayToMap =\n accountType === 'Seller'\n ? amazonSellerAccountDetails\n : amazonVendorAccountDetails;\n\n // map secondary marketplaces Values of input field\n const mapMarketPlaceValues = (marketplaceID, key) => {\n let marketplaceValue = null;\n let tempValue = null;\n if (accountType === 'Seller') {\n const sellerArray = localSeller?.length\n ? localSeller\n : sellerMarketplaces;\n marketplaceValue = sellerArray.find(\n (entry) => entry?.marketplace === marketplaceID,\n );\n tempValue = marketplaceValue?.[key];\n }\n\n if (accountType === 'Vendor') {\n const vendorArray = localVendor?.length\n ? localVendor\n : vendorMarketplaces;\n marketplaceValue = vendorArray.find(\n (entry) => entry?.marketplace === marketplaceID,\n );\n tempValue = marketplaceValue?.[key];\n }\n\n return tempValue === ' ' ? '' : tempValue;\n };\n\n const checkStatus = () => {\n const result =\n isAuthorized[\n accountType === 'Seller'\n ? accountDetails?.seller_marketplace?.name?.label\n : accountDetails?.vendor_marketplace?.name?.label\n ];\n const smallcaseAccountType = accountType?.toLowerCase();\n return result?.[smallcaseAccountType];\n };\n\n return (\n <>\n
    {accountDetails.name}
    \n

    \n Log into your Amazon Seller Central admin account for your additional\n marketplace.\n
    \n \n {checkStatus() ? (\n <>\n \n

    \n \n ) : (\n <>\n \n localStorage.setItem(\n 'spAPI',\n JSON.stringify({\n type: accountType === 'Seller' ? 'seller' : 'vendor',\n marketplace:\n accountType === 'Seller'\n ? accountDetails?.seller_marketplace?.name?.value\n : accountDetails?.vendor_marketplace?.name?.value,\n }),\n )\n }\n >\n \n {`Log into Amazon ${\n accountType === 'Seller' ? 'Seller' : 'Vendor'\n } Central Account`}\n \n \n
    \n \n )}\n \n

    \n {arrayToMap.map((item) => (\n <>\n \n \n {Object.keys(apiError).length > 0 ? (\n <>\n \n {mapApiErrors(\n item.key,\n accountType === 'Seller'\n ? accountDetails.seller_marketplace?.id\n : accountDetails.vendor_marketplace?.id,\n accountType,\n )}\n \n \n ) : null}\n \n \n ))}\n \n \n I do not advertise on this marketplace\n {\n setDoesntAdvertise(!doesntAdvertise);\n setDefaultForSecondary(\n 'doesnt_advertise',\n !doesntAdvertise,\n accountType === 'Seller'\n ? accountDetails.seller_marketplace?.id\n : accountDetails.vendor_marketplace?.id,\n accountType,\n accountType === 'Seller'\n ? accountDetails?.seller_marketplace?.Seller?.id\n : accountDetails?.vendor_marketplace?.Vendor?.id,\n );\n }}\n defaultChecked={mapSecondaryMarketplaceValues(\n 'doesnt_advertise',\n accountType === 'Seller'\n ? accountDetails.seller_marketplace?.id\n : accountDetails.vendor_marketplace?.id,\n accountType,\n accountType === 'Seller'\n ? accountDetails.seller_marketplace?.name?.value\n : accountDetails.vendor_marketplace?.name?.value,\n )}\n />\n \n \n \n
    \n \n );\n};\n\nSingleAccountMarketplaces.propTypes = {\n accountDetails: shape({}).isRequired,\n mapSecondaryMarketplaceValues: func.isRequired,\n setDefaultForSecondary: func.isRequired,\n accountType: string.isRequired,\n advertiseForMarketplace: bool.isRequired,\n apiError: shape({}).isRequired,\n mapApiErrors: func.isRequired,\n sellerMarketplaces: arrayOf(shape({})).isRequired,\n vendorMarketplaces: arrayOf(shape({})).isRequired,\n isAuthorized: shape({}).isRequired,\n localVendor: shape({}).isRequired,\n localSeller: shape({}).isRequired,\n accountRedirectURL: string.isRequired,\n isChecked: bool.isRequired,\n};\n\nexport default SingleAccountMarketplaces;\n","import React, { useState } from 'react';\n\nimport { Collapse } from 'react-collapse';\nimport { func, shape, bool, arrayOf, string } from 'prop-types';\n\nimport {\n InputFormField,\n ErrorMsg,\n CheckBox,\n Button,\n Status,\n} from '../../../common';\n\nimport {\n OrangeCheckMark,\n ForwardOrangeIcon,\n GreyClockIcon,\n} from '../../../theme/images';\nimport {\n amazonSellerAccountDetails,\n amazonVendorAccountDetails,\n} from '../../../constants';\n\nconst HybridAccountMarketplaces = ({\n accountDetails,\n mapSecondaryMarketplaceValues,\n setDefaultForSecondary,\n checkCentralDetails,\n sellerAdvertiseForMarketplace,\n vendorAdvertiseForMarketplace,\n sellerMarketplaces,\n vendorMarketplaces,\n apiError,\n mapApiErrors,\n isAuthorized,\n localSeller,\n localVendor,\n accountRedirectURL,\n isChecked,\n}) => {\n const [sellerDetailsCollapse, setSellerDetailsCollapse] = useState(false);\n const [vendorDetailsCollapse, setVendorDetailsCollapse] = useState(false);\n const [doesntSellerAdvertise, setDoesntSellerAdvertise] = useState(\n sellerAdvertiseForMarketplace,\n );\n const [doesntVendorAdvertise, setDoesntVendorAdvertise] = useState(\n vendorAdvertiseForMarketplace,\n );\n\n // map secondary marketplaces Values of input field\n const mapMarketPlaceValues = (\n accountType,\n marketplaceID,\n marketplaceName,\n key,\n ) => {\n let marketplaceValue = null;\n let tempValue = null;\n if (accountType === 'Seller') {\n marketplaceValue = (\n localSeller?.length ? localSeller : sellerMarketplaces\n )?.find(\n (entry) =>\n entry?.marketplace === marketplaceID &&\n entry?.marketplace_name === marketplaceName,\n );\n tempValue = marketplaceValue?.[key];\n }\n\n if (accountType === 'Vendor') {\n marketplaceValue = (\n localVendor?.length ? localVendor : vendorMarketplaces\n )?.find(\n (entry) =>\n entry?.marketplace === marketplaceID &&\n entry?.marketplace_name === marketplaceName,\n );\n\n tempValue = marketplaceValue?.[key];\n }\n return tempValue === ' ' ? '' : tempValue;\n };\n\n const checkSuccessfulMsg = (type) => {\n if (\n typeof isAuthorized[accountDetails?.vendor_marketplace?.name?.label] ===\n 'object'\n ) {\n return isAuthorized[accountDetails?.seller_marketplace?.name?.label]?.[\n type\n ];\n }\n\n if (type === 'seller')\n return isAuthorized[accountDetails?.seller_marketplace?.name?.label]?.[\n type\n ];\n return isAuthorized[accountDetails?.vendor_marketplace?.name?.label]?.[\n type\n ];\n };\n\n return (\n <>\n
    \n
    \n
    {accountDetails.name}
    \n
      \n {/* ---------Seller Central Details Collapse---------- */}\n {accountDetails?.seller_marketplace ? (\n
    • \n {' '}\n \n setSellerDetailsCollapse(!sellerDetailsCollapse)\n }\n role=\"presentation\"\n >\n
      \n
      \n
      \n {checkCentralDetails(\n 'Seller',\n accountDetails?.seller_marketplace?.id,\n accountDetails?.seller_marketplace?.name?.value,\n ) ? (\n \n ) : (\n \n )}\n Seller Central Details\n
      \n
      \n
      \n \n
      \n
      \n
    \n \n

    \n Log into your Amazon Seller Central admin account for your\n additional marketplace.\n
    \n \n {checkSuccessfulMsg('seller') ? (\n <>\n \n

    \n \n ) : (\n <>\n \n localStorage.setItem(\n 'spAPI',\n JSON.stringify({\n type: 'seller',\n marketplace:\n accountDetails?.seller_marketplace?.name\n ?.value,\n }),\n )\n }\n >\n \n Log into Amazon Seller Central Account\n \n \n
    \n \n )}\n \n

    \n

    \n Navigate to Advertising > Campaign Manager > Access &\n Settings and enter your Advertiser Name{' '}\n and ID below.\n
    \n

    \n {amazonSellerAccountDetails?.map((item) => (\n <>\n \n \n {Object.keys(apiError).length > 0 ? (\n <>\n \n {mapApiErrors(\n item.key,\n accountDetails?.seller_marketplace?.id,\n 'Seller',\n accountDetails?.seller_marketplace?.name?.value,\n )}\n \n \n ) : null}\n \n \n ))}\n \n \n I do not advertise on this marketplace\n {\n setDoesntSellerAdvertise(!doesntSellerAdvertise);\n setDefaultForSecondary(\n 'doesnt_advertise',\n !doesntSellerAdvertise,\n accountDetails.seller_marketplace.id,\n 'Seller',\n accountDetails?.seller_marketplace?.Seller?.id ||\n localSeller?.filter((op) => op.id)?.[0]?.id,\n accountDetails?.seller_marketplace?.name?.value,\n );\n }}\n defaultChecked={mapSecondaryMarketplaceValues(\n 'doesnt_advertise',\n accountDetails.seller_marketplace.id,\n 'Seller',\n accountDetails?.seller_marketplace?.name?.value,\n )}\n />\n \n \n \n \n \n ) : null}\n\n {/* ------------Divider Line between Seller & Vender------------ */}\n {accountDetails?.seller_marketplace &&\n accountDetails?.vendor_marketplace ? (\n
    \n ) : null}\n\n {/* ---------Vendor Central Details Collapse---------- */}\n {accountDetails?.vendor_marketplace ? (\n
  • \n {' '}\n \n setVendorDetailsCollapse(!vendorDetailsCollapse)\n }\n role=\"presentation\"\n >\n
    \n
    \n
    \n {checkCentralDetails(\n 'Vendor',\n accountDetails?.vendor_marketplace?.id,\n accountDetails?.vendor_marketplace?.name?.value,\n ) ? (\n \n ) : (\n \n )}\n Vendor Central Details\n
    \n
    \n
    \n \n
    \n
    \n
  • \n \n

    \n Log into your Amazon Vendor Central admin account for your\n additional marketplace.\n
    \n \n {checkSuccessfulMsg('vendor') ? (\n <>\n \n

    \n \n ) : (\n <>\n \n localStorage.setItem(\n 'spAPI',\n JSON.stringify({\n type: 'vendor',\n marketplace:\n accountDetails?.vendor_marketplace?.name\n ?.value,\n }),\n )\n }\n >\n \n Log into Amazon Vendor Central Account\n \n \n
    \n \n )}\n \n

    \n

    \n Navigate to Advertising > Campaign Manager > Access &\n Settings and enter your Advertiser Name{' '}\n and ID below.\n
    \n

    \n {amazonVendorAccountDetails?.map((item) => (\n <>\n \n \n {Object.keys(apiError).length > 0 ? (\n <>\n \n {mapApiErrors(\n item.key,\n accountDetails.vendor_marketplace.id,\n 'Vendor',\n accountDetails?.vendor_marketplace?.name?.value,\n )}\n \n \n ) : null}\n \n \n ))}\n \n \n I do not advertise on this marketplace\n {\n setDoesntVendorAdvertise(!doesntVendorAdvertise);\n setDefaultForSecondary(\n 'doesnt_advertise',\n !doesntVendorAdvertise,\n accountDetails.vendor_marketplace.id,\n 'Vendor',\n accountDetails?.vendor_marketplace?.Vendor?.id ||\n localVendor?.filter((op) => op.id)?.[0]?.id,\n accountDetails?.vendor_marketplace?.name?.value,\n );\n }}\n defaultChecked={mapSecondaryMarketplaceValues(\n 'doesnt_advertise',\n accountDetails?.vendor_marketplace?.id,\n 'Vendor',\n accountDetails?.vendor_marketplace?.name?.value,\n )}\n />\n \n \n \n \n \n ) : null}\n \n
    \n
    \n \n );\n};\n\nHybridAccountMarketplaces.propTypes = {\n accountDetails: shape({}).isRequired,\n mapSecondaryMarketplaceValues: func.isRequired,\n setDefaultForSecondary: func.isRequired,\n checkCentralDetails: func.isRequired,\n sellerAdvertiseForMarketplace: bool.isRequired,\n vendorAdvertiseForMarketplace: bool.isRequired,\n apiError: shape({}).isRequired,\n mapApiErrors: func.isRequired,\n sellerMarketplaces: arrayOf(shape({})).isRequired,\n vendorMarketplaces: arrayOf(shape({})).isRequired,\n isAuthorized: shape({}).isRequired,\n localSeller: shape([]).isRequired,\n localVendor: shape([]).isRequired,\n accountRedirectURL: string.isRequired,\n isChecked: bool.isRequired,\n};\n\nexport default HybridAccountMarketplaces;\n","/* eslint-disable no-unused-expressions */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState } from 'react';\n\nimport axios from 'axios';\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { string, shape, bool, func, number, arrayOf } from 'prop-types';\n\nimport AmazonVideo from './Modals/AmazonVideo';\n\nimport { userMe } from '../../store/actions';\nimport { VideoCall } from '../../theme/images';\nimport {\n SingleAccountMarketplaces,\n HybridAccountMarketplaces,\n} from './Marketplaces';\nimport {\n askSomeoneData,\n updateAskSomeoneData,\n updateUserMe,\n saveSellerMarketplaces,\n saveVendorMarketplaces,\n saveSPData,\n getSPData,\n} from '../../api';\nimport {\n PATH_AMAZON_MERCHANT,\n PATH_SUMMARY,\n PATH_THANKS,\n PATH_UNAUTHORIZED_AMAZON_MERCHANT,\n amazonSellerAccountDetails,\n amazonVendorAccountDetails,\n stepPath,\n} from '../../constants';\nimport {\n OnBoardingBody,\n InputFormField,\n Button,\n PageLoader,\n ErrorMsg,\n Status,\n} from '../../common';\n\nexport default function AmazonMerchant({\n setIsLoading,\n assignedToSomeone,\n stepData,\n verifiedStepData,\n userInfo,\n isLoading,\n isChecked,\n noAmazonAccount,\n showVideo,\n marketplaceDetails,\n videoData,\n setShowVideo,\n apiError,\n setApiError,\n setFormData,\n secondaryMarketplaces,\n sellerMarketplaces,\n setSellerMarketplaces,\n vendorMarketplaces,\n setVendorMarketplaces,\n localSeller,\n localVendor,\n summaryData,\n localNoAmazonAccount,\n}) {\n const customVideostyle = {\n width: '16px',\n marginRight: '6px',\n verticalAlign: 'text-bottom',\n cursor: 'pointer',\n };\n\n const history = useHistory();\n const dispatch = useDispatch();\n const params = queryString.parse(history.location.search);\n const [isAuthorized, setIsAuthorized] = useState({});\n\n const accountRedirectURL = history?.location?.pathname.includes(\n PATH_AMAZON_MERCHANT,\n )\n ? process.env.REACT_APP_SP_API_ONBOARDING_URL\n : process.env.REACT_APP_SP_API_ONBOARDING_ASSIGNED_URL;\n\n const getIncompleteStep = summaryData.find(\n (op) =>\n Object.keys(op)[0] !== 'merchant id' && Object.values(op)[0] === false,\n );\n\n const CheckStep = (step) => {\n if (step === 'amazon account' || getIncompleteStep === undefined) {\n history.push(PATH_SUMMARY);\n } else {\n for (const item of stepPath) {\n if (Object.keys(getIncompleteStep)[0] === item.key) {\n history.push(item.view);\n }\n }\n }\n };\n\n useEffect(() => {\n setFormData({\n Seller: marketplaceDetails.Seller,\n Vendor: marketplaceDetails.Vendor,\n });\n\n // get seller and vendor market places from localstorage if available\n if (localSeller?.length) {\n setSellerMarketplaces(localSeller);\n }\n if (localVendor?.length) {\n setVendorMarketplaces(localVendor);\n }\n }, [marketplaceDetails]);\n\n useEffect(() => {\n // get sp data to check if already authorized\n if (userInfo?.customer || verifiedStepData.customer_id) {\n getSPData(userInfo?.customer || verifiedStepData.customer_id).then(\n (res) => {\n if (res.status === 200) {\n setIsAuthorized(res?.data);\n }\n },\n );\n }\n }, [userInfo?.customer]);\n\n useEffect(() => {\n const throttleTimer = setTimeout(() => {\n if (params && Object.keys(params)?.length > 1) {\n const spData =\n localStorage.getItem('spAPI') &&\n JSON.parse(localStorage.getItem('spAPI'));\n\n const data = {\n customer: userInfo?.customer || verifiedStepData.customer_id,\n marketplace: spData?.marketplace,\n account_type: spData?.type,\n spapi_oauth_code: params.spapi_oauth_code,\n state: params.state,\n selling_partner_id: params.selling_partner_id,\n redirct_uri: history.location.pathname,\n };\n\n saveSPData(data).then((res) => {\n if (res.status === 201) {\n getSPData(userInfo?.customer || verifiedStepData.customer_id).then(\n (r) => {\n if (r.status === 200) {\n setIsAuthorized(r?.data);\n }\n },\n );\n if (history?.location?.pathname.includes(PATH_AMAZON_MERCHANT)) {\n history.push(PATH_AMAZON_MERCHANT);\n } else {\n history.push({\n pathname: PATH_UNAUTHORIZED_AMAZON_MERCHANT,\n search: `?key=${localStorage?.getItem('match')}`,\n });\n }\n }\n });\n }\n }, 1000); // Throttle time: 1000 milliseconds\n\n return () => {\n clearTimeout(throttleTimer);\n };\n }, [userInfo?.customer]);\n\n const saveDetails = () => {\n setIsLoading({ loader: true, type: 'button' });\n if (\n (stepData === undefined ||\n (stepData &&\n Object.keys(stepData) &&\n Object.keys(stepData).length === 0)) &&\n verifiedStepData &&\n Object.keys(verifiedStepData) &&\n Object.keys(verifiedStepData).length === 0\n ) {\n const detail = {\n is_completed: true,\n email: userInfo.email,\n step: 'merchant id',\n customer_onboarding: userInfo.customer_onboarding,\n };\n askSomeoneData(detail).then((stepResponse) => {\n if (stepResponse && stepResponse.status === 201) {\n if (assignedToSomeone) {\n const stringified =\n queryString &&\n queryString.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n CheckStep('merchant id');\n }\n updateUserMe(userInfo.id || verifiedStepData.user_id, {\n step: {\n ...(userInfo.step || verifiedStepData.user_step),\n [userInfo.customer || verifiedStepData.customer_id]: 4,\n },\n }).then((user) => {\n if (user && user.status === 200) {\n if (assignedToSomeone) {\n localStorage.removeItem('match');\n } else dispatch(userMe());\n }\n });\n setIsLoading({ loader: false, type: 'button' });\n localStorage.removeItem('seller');\n localStorage.removeItem('vendor');\n // localStorage.removeItem('noAmazonAccount');\n }\n });\n } else {\n updateAskSomeoneData(\n (stepData && stepData.id) || verifiedStepData.step_id,\n {\n token: assignedToSomeone ? params && params.key : '',\n is_completed: true,\n },\n ).then((response) => {\n if (response && response.status === 200) {\n if (assignedToSomeone) {\n const stringified =\n queryString &&\n queryString.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n CheckStep('merchant id');\n }\n updateUserMe(userInfo.id || verifiedStepData.user_id, {\n step: {\n ...(userInfo.step || verifiedStepData.user_step),\n [userInfo.customer || verifiedStepData.customer_id]: 4,\n },\n }).then((user) => {\n if (user && user.status === 200) {\n if (assignedToSomeone) {\n localStorage.removeItem('match');\n } else dispatch(userMe());\n }\n });\n setIsLoading({ loader: false, type: 'button' });\n localStorage.removeItem('seller');\n localStorage.removeItem('vendor');\n // localStorage.removeItem('noAmazonAccount');\n }\n });\n }\n };\n\n // Save Seller Account details\n const sellerAccount = (seller) => {\n saveSellerMarketplaces(seller, noAmazonAccount).then((res) => {\n if ((res && res.status === 201) || (res && res.status === 200))\n saveDetails();\n\n if (res && res.status === 400) {\n setApiError({ ...apiError, Seller: [...res?.data] });\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n // Save Vendor Account details\n const vendorAccount = (vendor) => {\n saveVendorMarketplaces(vendor, noAmazonAccount).then((res) => {\n if ((res && res.status === 201) || (res && res.status === 200))\n saveDetails();\n if (res && res.status === 400) {\n setApiError({ ...apiError, Vendor: [...res?.data] });\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n // Save complete account details (Seller & Vendor)\n const saveAccountDetails = (sellerID, vendorID) => {\n setIsLoading({ loader: true, type: 'button' });\n let seller = [];\n let vendor = [];\n\n // If don't have Amazon account yet then make all entries null except mentioned in condition for seller & vendor\n if (noAmazonAccount) {\n sellerMarketplaces.forEach((marketplace) => {\n Object.keys(marketplace).forEach((key) => {\n if (\n key !== 'marketplace' &&\n key !== 'id' &&\n key !== 'marketplace_name' &&\n key !== 'customer'\n ) {\n marketplace[key] = null;\n marketplace.merchant_id = null;\n marketplace.seller_central_name = null;\n }\n if (key === 'doesnt_advertise') {\n marketplace[key] = false;\n }\n });\n });\n vendorMarketplaces.forEach((marketplace) => {\n Object.keys(marketplace).forEach((key) => {\n if (\n key !== 'marketplace' &&\n key !== 'id' &&\n key !== 'marketplace_name' &&\n key !== 'customer'\n ) {\n marketplace[key] = null;\n marketplace.vendor_central_name = null;\n marketplace.vendor_code = null;\n }\n if (key === 'doesnt_advertise') {\n marketplace[key] = false;\n }\n });\n });\n }\n\n // Filter all the updated seller marketplaces from list as we only send those (patch)\n seller = sellerID\n ? sellerMarketplaces.filter((entry) => entry?.id)\n : [...sellerMarketplaces];\n\n // Filter all the updated vendors marketplaces from list as we only send those (patch)\n vendor = vendorID\n ? vendorMarketplaces.filter((entry) => entry?.id)\n : [...vendorMarketplaces];\n\n // Only if the account is Seller\n if (marketplaceDetails.type === 'Seller')\n sellerAccount(noAmazonAccount ? sellerMarketplaces : seller);\n\n // Only if the account is Vendor\n if (marketplaceDetails.type === 'Vendor')\n vendorAccount(noAmazonAccount ? vendorMarketplaces : vendor);\n\n // Only if the account is Hybrid\n if (\n marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null\n ) {\n const apiCalls = [];\n const sellerApi = saveSellerMarketplaces(\n noAmazonAccount ? sellerMarketplaces : seller,\n noAmazonAccount,\n );\n const vendorApi = saveVendorMarketplaces(\n noAmazonAccount ? vendorMarketplaces : vendor,\n noAmazonAccount,\n );\n\n apiCalls.push(sellerApi, vendorApi);\n\n axios.all(apiCalls).then(\n axios.spread((...res) => {\n if (\n ((res[0] && res[0].status === 201) ||\n (res[0] && res[0].status === 200)) &&\n ((res[1] && res[1].status === 201) ||\n (res[1] && res[1].status === 200))\n ) {\n saveDetails();\n setApiError({});\n }\n\n if (\n (res[0] && res[0].status === 400) ||\n (res[1] && res[1].status === 400)\n ) {\n let sellerErrors = [];\n let vendorErrors = [];\n if (res[0] && res[0].status === 400) {\n sellerErrors = res[0]?.data;\n }\n if (res[1] && res[1].status === 400) {\n vendorErrors = res[1]?.data;\n }\n if (sellerErrors?.length || vendorErrors?.length)\n setApiError({\n Seller: [...sellerErrors],\n Vendor: [...vendorErrors],\n });\n\n setIsLoading({ loader: false, type: 'button' });\n if (\n (marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === 'Hybrid') &&\n res[0] &&\n res[0].status === 400\n ) {\n document.body.scrollTop = 500; // For Safari\n document.documentElement.scrollTop = 500; // For Chrome, Firefox, IE and Opera\n }\n }\n }),\n );\n }\n };\n\n const checkSuccessMsg = (part) => {\n if (\n (marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null ||\n marketplaceDetails.type === 'Seller') &&\n part === 1\n )\n return isAuthorized[marketplaceDetails?.marketplace]?.seller;\n return isAuthorized[marketplaceDetails?.marketplace]?.vendor;\n };\n\n // Generate Login in to your account step\n const generateAmazon = (part) => {\n return (\n
    \n

    Part {part}

    \n Log into your Amazon{' '}\n {(marketplaceDetails.type === 'Hybrid' && part === 1) ||\n marketplaceDetails.type === 'Seller'\n ? 'Seller'\n : 'Vendor'}{' '}\n Central admin account for your{' '}\n {marketplaceDetails.marketplace ? (\n \n primary marketplace ({marketplaceDetails.marketplace}\n ).\n \n ) : (\n primary marketplace\n )}\n {checkSuccessMsg(part) ? (\n <>\n \n
    \n \n ) : (\n \n localStorage.setItem(\n 'spAPI',\n JSON.stringify({\n type:\n (marketplaceDetails.type === 'Hybrid' && part === 1) ||\n marketplaceDetails.type === 'Seller'\n ? 'seller'\n : 'vendor',\n marketplace: marketplaceDetails?.marketplaceURL,\n }),\n )\n }\n // target=\"_blank\"\n // rel=\"noopener noreferrer\"\n >\n \n Log into Amazon{' '}\n {(marketplaceDetails.type === 'Hybrid' && part === 1) ||\n marketplaceDetails.type === 'Seller'\n ? 'Seller'\n : 'Vendor'}{' '}\n Account\n \n \n )}\n
    \n );\n };\n\n // Use this method to map errors\n const mapApiErrors = (key, marketplaceID, type, marketplaceName) => {\n const errors = apiError?.[type]?.find(\n (entry) =>\n entry?.marketplace_name?.[0] === marketplaceName ||\n entry?.marketplace?.[0] === marketplaceID,\n );\n return errors?.[key]?.[0];\n };\n\n // Use this methid to map basic details (Primary marketplace)\n const mapDefaultValues = (item, part) => {\n if (marketplaceDetails.type === 'Hybrid') {\n if (part === 2 || part === 3) {\n if (localSeller?.length) {\n if (marketplaceDetails?.Seller?.length)\n return marketplaceDetails?.Seller?.filter(\n (op) => op?.doesnt_advertise === undefined,\n )?.[0]?.[item];\n }\n return (\n marketplaceDetails &&\n marketplaceDetails.Seller &&\n marketplaceDetails.Seller[item]\n );\n }\n }\n if (part === 5 || part === 6) {\n if (localVendor?.length) {\n if (marketplaceDetails?.Vendor?.length)\n return marketplaceDetails?.Vendor?.filter(\n (op) => op?.doesnt_advertise === undefined,\n )?.[0]?.[item];\n }\n return (\n marketplaceDetails &&\n marketplaceDetails.Vendor &&\n marketplaceDetails.Vendor[item]\n );\n }\n if (localSeller?.length || localVendor?.length) {\n if (marketplaceDetails?.[marketplaceDetails.type]?.length)\n return marketplaceDetails?.[marketplaceDetails.type]?.filter(\n (op) => op?.doesnt_advertise === undefined,\n )?.[0]?.[item];\n }\n return (\n marketplaceDetails &&\n marketplaceDetails[marketplaceDetails.type] &&\n marketplaceDetails[marketplaceDetails.type][item]\n );\n };\n\n // Use this methid to map extra details (Secondary marketplaces)\n const mapSecondaryMarketplaceValues = (\n item,\n marketplaceID,\n type,\n marketplaceName,\n ) => {\n const accountType =\n type === 'Seller' ? 'seller_marketplace' : 'vendor_marketplace';\n const marketplace = secondaryMarketplaces.find(\n (entry) =>\n entry[accountType]?.id === marketplaceID &&\n entry[accountType]?.[type]?.marketplace_name === marketplaceName,\n );\n\n return marketplace?.[accountType]?.[type]?.[item];\n };\n\n const mapAccountAdvertiseNames = (item, value, accountID, entry, type) => {\n if (type === 'seller') {\n if (!accountID && item === 'seller_central_name')\n entry.seller_central_name = value;\n if (\n accountID &&\n item === 'seller_central_name' &&\n !entry?.doesnt_advertise\n )\n entry.seller_central_name = value;\n if (!accountID && item === 'advertiser_name')\n entry.advertiser_name = value;\n if (accountID && item === 'advertiser_name' && !entry?.doesnt_advertise)\n entry.advertiser_name = value;\n } else {\n if (!accountID && item === 'vendor_central_name')\n entry.vendor_central_name = value;\n if (\n accountID &&\n item === 'vendor_central_name' &&\n !entry?.doesnt_advertise\n )\n entry.vendor_central_name = value;\n if (!accountID && item === 'advertiser_name')\n entry.advertiser_name = value;\n if (accountID && item === 'advertiser_name' && !entry?.doesnt_advertise)\n entry.advertiser_name = value;\n }\n };\n\n // Add/Update Seller Marketplaces\n const updateSellerMarketplaces = (item, value, accountID) => {\n if (Object.keys(sellerMarketplaces).length > 0) {\n const updatedMarketplaces = sellerMarketplaces.map((entry) => {\n mapAccountAdvertiseNames(item, value, accountID, entry, 'seller');\n\n if (entry.marketplace === marketplaceDetails.marketplaceId)\n return accountID\n ? { ...entry, id: accountID, [item]: value }\n : { ...entry, [item]: value };\n return entry;\n });\n localStorage.setItem('seller', JSON.stringify([...updatedMarketplaces]));\n setSellerMarketplaces([...updatedMarketplaces]);\n } else {\n setSellerMarketplaces([\n ...sellerMarketplaces,\n { marketplace: marketplaceDetails.marketplaceId, [item]: value },\n ]);\n localStorage.setItem(\n 'seller',\n JSON.stringify([\n ...sellerMarketplaces,\n { marketplace: marketplaceDetails.marketplaceId, [item]: value },\n ]),\n );\n }\n };\n\n // Add/Update Vendor Marketplaces\n const updateVendorMarketplaces = (item, value, accountID) => {\n if (Object.keys(vendorMarketplaces).length > 0) {\n const updatedMarketplaces = vendorMarketplaces.map((entry) => {\n mapAccountAdvertiseNames(item, value, accountID, entry, 'vendor');\n if (entry.marketplace === marketplaceDetails.marketplaceId)\n return accountID\n ? { ...entry, id: accountID, [item]: value }\n : { ...entry, [item]: value };\n\n return entry;\n });\n localStorage.setItem('vendor', JSON.stringify([...updatedMarketplaces]));\n setVendorMarketplaces([...updatedMarketplaces]);\n } else {\n setVendorMarketplaces([\n ...vendorMarketplaces,\n { marketplace: marketplaceDetails.marketplaceId, [item]: value },\n ]);\n localStorage.setItem(\n 'vendor',\n JSON.stringify([\n ...vendorMarketplaces,\n { marketplace: marketplaceDetails.marketplaceId, [item]: value },\n ]),\n );\n }\n };\n\n const clearErrors = (AccType, marketplaceID, marketplaceName) => {\n const errorEleToBeChanged = apiError?.[AccType]?.find(\n (errorEle) =>\n errorEle?.marketplace_name?.[0] === marketplaceName ||\n errorEle?.marketplace?.[0] === marketplaceID,\n );\n if (errorEleToBeChanged) {\n const updatedSellerError = apiError?.[AccType]?.filter(\n (errEle) =>\n errEle?.marketplace_name?.[0] !== marketplaceName &&\n errEle?.marketplace?.[0] !== marketplaceID,\n );\n setApiError({ ...apiError, [AccType]: updatedSellerError });\n }\n };\n\n // setting default value for primary marketplace only\n const setDefaultValues = (item, value, part, accountID) => {\n if (\n marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null\n ) {\n if (part === 2 || part === 3) {\n clearErrors(\n 'Seller',\n marketplaceDetails?.marketplaceID,\n marketplaceDetails?.marketplace_name,\n );\n\n updateSellerMarketplaces(item, value, accountID);\n }\n\n if (part === 5 || part === 6) {\n clearErrors(\n 'Vendor',\n marketplaceDetails?.marketplaceID,\n marketplaceDetails?.marketplace_name,\n );\n updateVendorMarketplaces(item, value, accountID);\n }\n }\n if (marketplaceDetails.type === 'Seller') {\n clearErrors(\n 'Seller',\n marketplaceDetails?.marketplaceID,\n marketplaceDetails?.marketplace_name,\n );\n updateSellerMarketplaces(item, value, accountID);\n }\n if (marketplaceDetails.type === 'Vendor') {\n clearErrors(\n 'Vendor',\n marketplaceDetails?.marketplaceID,\n marketplaceDetails?.marketplace_name,\n );\n updateVendorMarketplaces(item, value, accountID);\n }\n };\n\n // setting default value for secondary marketplace only\n const setDefaultForSecondary = (\n item,\n value,\n marketplaceID,\n section,\n accountID,\n marketplaceName,\n ) => {\n const isDspOnlyBP = marketplaceID === null;\n\n // Set the values of Seller marketplace fields\n if (section === 'Seller') {\n clearErrors('Seller', marketplaceID, marketplaceName);\n\n if (\n Object.keys(sellerMarketplaces).length > 0 &&\n sellerMarketplaces.some((entry) =>\n isDspOnlyBP\n ? entry.marketplace === marketplaceID &&\n entry.marketplace_name === marketplaceName\n : entry.marketplace === marketplaceID ||\n entry.marketplace_name === marketplaceName,\n )\n ) {\n const updatedMarketplaces = sellerMarketplaces.map((entry) => {\n // If the do not advertise on marketplace then make two fields blank\n\n const isSameMarketplace = isDspOnlyBP\n ? entry.marketplace === marketplaceID &&\n entry.marketplace_name === marketplaceName\n : entry.marketplace === marketplaceID ||\n entry.marketplace_name === marketplaceName;\n if (isSameMarketplace && item === 'doesnt_advertise' && value) {\n return accountID\n ? {\n ...entry,\n id: accountID,\n advertiser_name: '',\n advertiser_id: '',\n seller_central_name: '',\n merchant_id: '',\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n }\n : {\n ...entry,\n advertiser_name: '',\n advertiser_id: '',\n seller_central_name: '',\n merchant_id: '',\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n };\n }\n\n // Check If that markeplace already has a Seller or vendor account with accountID\n if (isSameMarketplace) {\n return accountID\n ? {\n ...entry,\n id: accountID,\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n }\n : {\n ...entry,\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n };\n }\n\n return entry;\n });\n\n localStorage.setItem(\n 'seller',\n JSON.stringify([...updatedMarketplaces]),\n );\n\n setSellerMarketplaces([...updatedMarketplaces]);\n } else {\n setSellerMarketplaces([\n ...sellerMarketplaces,\n {\n marketplace: marketplaceID,\n marketplace_name: marketplaceName,\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n },\n ]);\n localStorage.setItem(\n 'seller',\n JSON.stringify([\n ...sellerMarketplaces,\n {\n marketplace: marketplaceID,\n marketplace_name: marketplaceName,\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n },\n ]),\n );\n }\n }\n\n // Set the values of Vendor marketplace fields\n if (section === 'Vendor') {\n // Check if there are any marketplaces + current marketplace is already avaiailable then update it\n clearErrors('Vendor', marketplaceID, marketplaceName);\n\n if (\n Object.keys(vendorMarketplaces).length > 0 &&\n vendorMarketplaces.some((entry) =>\n isDspOnlyBP\n ? entry.marketplace === marketplaceID &&\n entry.marketplace_name === marketplaceName\n : entry.marketplace === marketplaceID ||\n entry.marketplace_name === marketplaceName,\n )\n ) {\n const updatedMarketplaces = vendorMarketplaces.map((entry) => {\n const isSameMarketplace = isDspOnlyBP\n ? entry.marketplace === marketplaceID &&\n entry.marketplace_name === marketplaceName\n : entry.marketplace === marketplaceID ||\n entry.marketplace_name === marketplaceName;\n\n // if marketplace is mathced + key is doesnt_advertise + doesnt_advertise value is true\n if (isSameMarketplace && item === 'doesnt_advertise' && value) {\n // if seller account is already there\n return accountID\n ? {\n ...entry,\n id: accountID,\n advertiser_name: '',\n advertiser_id: '',\n vendor_central_name: '',\n vendor_code: '',\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n }\n : {\n ...entry,\n advertiser_name: '',\n advertiser_id: '',\n vendor_central_name: '',\n vendor_code: '',\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n };\n }\n\n // If only marketplace is matched\n if (isSameMarketplace)\n return accountID\n ? {\n ...entry,\n id: accountID,\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n }\n : {\n ...entry,\n [item]: value,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n };\n\n return entry;\n });\n localStorage.setItem(\n 'vendor',\n JSON.stringify([...updatedMarketplaces]),\n );\n setVendorMarketplaces([...updatedMarketplaces]);\n } else {\n // if marketplace is not present at all\n setVendorMarketplaces([\n ...vendorMarketplaces,\n\n {\n marketplace: marketplaceID,\n [item]: value,\n marketplace_name: marketplaceName,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n },\n ]);\n\n localStorage.setItem(\n 'vendor',\n JSON.stringify([\n ...vendorMarketplaces,\n {\n marketplace: marketplaceID,\n [item]: value,\n marketplace_name: marketplaceName,\n customer:\n userInfo?.customer ||\n verifiedStepData.customer_id ||\n localStorage.getItem('customer'),\n },\n ]),\n );\n }\n }\n };\n\n // (Clock or Check) For Hybrid account check if the Seller or Vendor Central details are filled\n const checkCentralDetails = (accountType, marketplaceID, maketplaceName) => {\n const isDspOnlyBP = marketplaceID === null;\n\n // Get account specific marketplace\n const sortedMarketplace =\n accountType === 'Seller'\n ? sellerMarketplaces.find((entry) =>\n isDspOnlyBP\n ? entry.marketplace === marketplaceID &&\n entry.marketplace_name === maketplaceName\n : entry.marketplace === marketplaceID ||\n entry.marketplace_name === maketplaceName,\n )\n : vendorMarketplaces.find((entry) =>\n isDspOnlyBP\n ? entry.marketplace === marketplaceID &&\n entry.marketplace_name === maketplaceName\n : entry.marketplace === marketplaceID ||\n entry.marketplace_name === maketplaceName,\n );\n\n // If doesn't advertise for that marketplace then that section is filled\n if (sortedMarketplace?.doesnt_advertise === true) return true;\n\n // For that markeplace for both this two fields following condtions should be satisfied\n if (\n sortedMarketplace?.advertiser_name !== '' &&\n sortedMarketplace?.advertiser_name !== ' ' &&\n sortedMarketplace?.advertiser_name !== null &&\n sortedMarketplace?.advertiser_name !== undefined &&\n sortedMarketplace?.advertiser_id !== '' &&\n sortedMarketplace?.advertiser_id !== ' ' &&\n sortedMarketplace?.advertiser_id !== null &&\n sortedMarketplace?.advertiser_id !== undefined\n )\n return true;\n\n return false;\n };\n\n const generateAccountType = (part, mapData, accountType) => {\n return (\n
    \n

    Part {part}

    \n Navigate to Settings > Account Info and enter your{' '}\n \n {((marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null) &&\n part === 2) ||\n marketplaceDetails.type === 'Seller'\n ? 'Seller'\n : 'Vendor'}{' '}\n Display Name\n {' '}\n and{' '}\n \n {((marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null) &&\n part === 2) ||\n marketplaceDetails.type === 'Seller'\n ? 'Merchant Token ID'\n : 'Vendor Code'}{' '}\n {' '}\n below.\n

    \n \"video\"\n setShowVideo({ [part]: true })}\n role=\"presentation\"\n >\n Click here to watch the video.\n \n

    \n {mapData\n .filter((op) => op.section === 1)\n .map((item) => (\n \n \n {Object.keys(apiError).length > 0 ? (\n <>\n \n {mapApiErrors(\n item.key,\n marketplaceDetails?.[accountType]?.marketplace ||\n marketplaceDetails?.marketplaceId,\n accountType,\n )}\n \n \n ) : null}\n \n ))}\n
    \n );\n };\n\n // Validation logic to check if all the required fields are filled\n const validateMarketplaces = () => {\n const allEntries = [];\n\n // Get all the fields that are required for seller\n if (\n marketplaceDetails.type === 'Seller' ||\n marketplaceDetails.type === 'Hybrid'\n ) {\n if (noAmazonAccount) return false;\n\n for (const accountDetails of sellerMarketplaces) {\n if (accountDetails?.doesnt_advertise) {\n allEntries.push({\n isMandetoryFieldsFilled: true,\n maketplace_name: accountDetails?.marketplace_name,\n type: accountDetails?.type,\n });\n } else if (\n !accountDetails?.doesnt_advertise &&\n accountDetails?.advertiser_id &&\n accountDetails?.advertiser_name &&\n accountDetails?.seller_central_name &&\n accountDetails?.merchant_id\n ) {\n allEntries.push({\n isMandetoryFieldsFilled: true,\n maketplace_name: accountDetails?.marketplace_name,\n type: accountDetails?.type,\n });\n } else\n allEntries.push({\n isMandetoryFieldsFilled: false,\n maketplace_name: accountDetails?.marketplace_name,\n type: accountDetails?.type,\n });\n }\n }\n\n // Get all the fields that are required for Vendor\n if (\n marketplaceDetails.type === 'Vendor' ||\n marketplaceDetails.type === 'Hybrid'\n ) {\n if (noAmazonAccount) return false;\n\n for (const accountDetails of vendorMarketplaces) {\n if (accountDetails?.doesnt_advertise) {\n allEntries.push({\n isMandetoryFieldsFilled: true,\n maketplace_name: accountDetails?.marketplace_name,\n type: accountDetails?.type,\n });\n } else if (\n accountDetails?.advertiser_id &&\n accountDetails?.advertiser_name &&\n !accountDetails?.doesnt_advertise &&\n accountDetails?.vendor_central_name &&\n accountDetails?.vendor_code\n ) {\n allEntries.push({\n isMandetoryFieldsFilled: true,\n maketplace_name: accountDetails?.marketplace_name,\n type: accountDetails?.type,\n });\n } else {\n allEntries.push({\n isMandetoryFieldsFilled: false,\n maketplace_name: accountDetails?.marketplace_name,\n type: accountDetails?.type,\n });\n }\n }\n }\n\n // if any item not fullfilled mandetory fields then disable the button\n if (allEntries.some((item) => item?.isMandetoryFieldsFilled === false)) {\n return true;\n }\n return false;\n };\n\n // Show this Btn if account is either Seller or Vendor\n const generateSaveBtn = (part) => {\n return (\n <>\n {(marketplaceDetails.type === 'Hybrid' && part === 7) ||\n marketplaceDetails.type === 'Vendor' ||\n marketplaceDetails.type === 'Seller' ? (\n \n saveAccountDetails(\n marketplaceDetails?.Seller?.id ||\n localSeller?.filter((op) => op.id)?.[0]?.id,\n marketplaceDetails?.Vendor?.id ||\n localVendor?.filter((op) => op.id)?.[0]?.id,\n )\n }\n >\n {' '}\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n <>{assignedToSomeone ? 'Submit' : 'Continue'} \n )}\n \n ) : (\n ''\n )}\n \n );\n };\n\n // Generate Advertiser details section (Part 2 & Part 6) for Primary marketplace\n const generateAdvertiser = (part, mapData, accountType) => {\n return (\n
    \n

    Part {part}

    \n Navigate to Settings > Account Info and enter your{' '}\n Advertiser Name and ID below.\n

    \n \"video\"\n setShowVideo({ [part]: true })}\n role=\"presentation\"\n >\n Click here to watch the video.\n \n

    \n {mapData &&\n mapData\n .filter((op) => op.section === 2)\n .map((item) => (\n \n \n {Object.keys(apiError).length > 0 ? (\n <>\n \n {mapApiErrors(\n item.key,\n marketplaceDetails?.[accountType]?.marketplace ||\n marketplaceDetails?.marketplaceId,\n accountType,\n )}\n \n \n ) : null}\n \n ))}\n
    \n );\n };\n\n // Generate Secondary Marketplaces depending on the type of account (Seller, Vendor & Hybrid)\n const generateMarketplaces = (part) => {\n return (\n
    \n

    Part {part}

    \n Please log into the marketplaces listed below and enter your{' '}\n Advertiser Name and ID below.\n {marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null\n ? secondaryMarketplaces.map((accountDetails) => {\n return (\n \n );\n })\n : secondaryMarketplaces.map((accountDetails) => {\n return (\n \n );\n })}\n
    \n );\n };\n\n const btnDesign = () => {\n return (\n \n saveAccountDetails(\n marketplaceDetails?.Seller?.id ||\n localSeller?.filter((op) => op.id)?.[0]?.id,\n marketplaceDetails?.Vendor?.id ||\n localVendor?.filter((op) => op.id)?.[0]?.id,\n )\n }\n >\n {' '}\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n <>{assignedToSomeone ? 'Submit' : 'Continue'} \n )}\n \n );\n };\n\n const generateBtn = () => {\n // Hybrid\n if (\n marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null\n ) {\n // Ask someone else\n if (isChecked) return '';\n return <>{btnDesign()};\n }\n if (\n // logged in user & don't have seller or vendor account\n history.location.pathname.includes(PATH_AMAZON_MERCHANT) &&\n noAmazonAccount\n ) {\n if (isChecked) return '';\n return <>{btnDesign()};\n }\n\n // unauthorized user & don't have seller or vendor account\n if (\n history.location.pathname.includes(PATH_UNAUTHORIZED_AMAZON_MERCHANT) &&\n noAmazonAccount\n )\n return <>{btnDesign()};\n return '';\n };\n\n return (\n <>\n \n {(\n Object.keys(localNoAmazonAccount)?.length\n ? localNoAmazonAccount?.noAmazonAccount\n : noAmazonAccount\n ) ? (\n ''\n ) : (\n <>\n {marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null ? (\n <>\n {marketplaceDetails.type === 'Hybrid' ? (\n <>\n

    \n Seller Central Details\n

    \n {generateAmazon(1)}\n {generateAccountType(\n 2,\n amazonSellerAccountDetails,\n 'Seller',\n )}\n {generateAdvertiser(\n 3,\n amazonSellerAccountDetails,\n 'Seller',\n )}\n \n ) : null}\n\n {marketplaceDetails.type === 'Hybrid' ? (\n <>\n

    \n Vendor Central Details\n

    \n {generateAmazon(4)}\n {generateAccountType(\n 5,\n amazonVendorAccountDetails,\n 'Vendor',\n )}\n {generateAdvertiser(\n 6,\n amazonVendorAccountDetails,\n 'Vendor',\n )}\n \n ) : null}\n\n {secondaryMarketplaces.length > 0 ? (\n <>\n

    \n {marketplaceDetails.type === 'Hybrid'\n ? 'Additional Marketplaces'\n : 'Amazon Marketplaces'}\n

    \n {/* Step 7 for Hybrid account secondary marketplaces */}\n {generateMarketplaces(\n marketplaceDetails.type === 'Hybrid' ? 7 : 1,\n amazonVendorAccountDetails,\n )}\n \n ) : null}\n \n ) : (\n <>\n {generateAmazon(1)}\n {generateAccountType(\n 2,\n marketplaceDetails.type === 'Seller'\n ? amazonSellerAccountDetails\n : amazonVendorAccountDetails,\n marketplaceDetails.type === 'Seller' ? 'Seller' : 'Vendor',\n )}\n {generateAdvertiser(\n 3,\n marketplaceDetails.type === 'Seller'\n ? amazonSellerAccountDetails\n : amazonVendorAccountDetails,\n marketplaceDetails.type === 'Seller' ? 'Seller' : 'Vendor',\n )}\n\n {/* Add a step 4 for seller and vendor secondary marketplaces */}\n {secondaryMarketplaces.length > 0 ? (\n <>\n {generateMarketplaces(\n 4,\n marketplaceDetails.type === 'Seller'\n ? amazonSellerAccountDetails\n : amazonVendorAccountDetails,\n )}\n \n ) : null}\n \n )}\n \n \n )}\n\n {!isChecked ? (\n <>\n

    \n To continue, please fill up all the fields above. Please review\n the information for each marketplace before continuing.\n

    \n\n {marketplaceDetails.type === 'Hybrid' ||\n marketplaceDetails.type === null\n ? generateBtn()\n : generateSaveBtn()}\n \n ) : null}\n \n \n );\n}\n\nAmazonMerchant.defaultProps = {\n stepData: {},\n apiError: {},\n showVideo: {},\n setShowVideo: () => {},\n setApiError: () => {},\n setFormData: () => {},\n localSeller: [],\n localVendor: [],\n localNoAmazonAccount: {},\n};\n\nAmazonMerchant.propTypes = {\n userInfo: shape({\n id: string,\n email: string,\n customer: string,\n customer_onboarding: string,\n step: shape({\n step: number,\n }),\n }).isRequired,\n setIsLoading: func.isRequired,\n assignedToSomeone: bool.isRequired,\n stepData: shape({\n id: string,\n }),\n verifiedStepData: shape(\n shape({\n user_name: string,\n user_step: shape({}),\n }),\n ).isRequired,\n isLoading: shape({\n loader: bool,\n type: string,\n }).isRequired,\n isChecked: bool.isRequired,\n noAmazonAccount: bool.isRequired,\n setShowVideo: func,\n showVideo: shape(shape({})),\n marketplaceDetails: shape({\n type: string,\n marketplace: string,\n marketplaceId: string,\n Seller: shape({\n id: string,\n }),\n Vendor: shape({\n id: string,\n }),\n }).isRequired,\n videoData: shape({\n seller_central_info: string,\n seller_ad_info: string,\n vendor_central_info: string,\n vendor_ad_info: string,\n }).isRequired,\n setApiError: func,\n apiError: shape([]),\n setFormData: func,\n secondaryMarketplaces: arrayOf(shape({})).isRequired,\n vendorMarketplaces: arrayOf(shape({})).isRequired,\n sellerMarketplaces: arrayOf(shape({})).isRequired,\n setSellerMarketplaces: func.isRequired,\n setVendorMarketplaces: func.isRequired,\n localSeller: shape([]),\n localVendor: shape([]),\n summaryData: arrayOf(shape({})).isRequired,\n localNoAmazonAccount: shape({}),\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable no-lonely-if */\nimport React, { useState, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\n\nimport queryString from 'query-string';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\nimport { OnBoardingBody, Button, PageLoader, CheckBox } from '../../common';\n\nimport {\n amazonAccountManual,\n PATH_SUMMARY,\n PATH_THANKS,\n} from '../../constants';\n\nimport { userMe } from '../../store/actions';\nimport { AmazonAccountPermission } from './OnBoardingStyles';\nimport {\n askSomeoneData,\n getMarketplaces,\n updateAmazonAccount,\n updateAskSomeoneData,\n updateUserMe,\n} from '../../api';\n\nexport default function AmazonDeveloperAccess({\n setIsLoading,\n assignedToSomeone,\n stepData,\n verifiedStepData,\n userInfo,\n isLoading,\n isChecked,\n data,\n}) {\n const history = useHistory();\n const dispatch = useDispatch();\n const [formData, setFormData] = useState(data);\n const [marketplacesList, setMarketplacesList] = useState([]);\n const params = queryString.parse(history.location.search);\n\n useEffect(() => {\n getMarketplaces('amazon').then((res) => {\n setMarketplacesList(res?.data);\n\n setFormData(data);\n const isPrimary = data?.marketplaces?.filter(\n (op) => !op.account_type,\n )?.[0];\n const isSecondary = data?.marketplaces?.filter((op) => op.account_type);\n let combinedMarketplaces = [];\n if (data?.account_type === 'Hybrid') {\n if (isPrimary && isSecondary) {\n delete isPrimary.account_type;\n const isPrimarySeller = { ...isPrimary, account_type: 'Seller' };\n const isPrimaryVendor = { ...isPrimary, account_type: 'Vendor' };\n combinedMarketplaces = [\n ...isSecondary,\n isPrimarySeller,\n isPrimaryVendor,\n ];\n setFormData({\n ...formData,\n ...data,\n marketplaces: combinedMarketplaces,\n });\n }\n } else {\n if (isPrimary && isSecondary) {\n isPrimary.account_type = data?.account_type;\n combinedMarketplaces = [...isSecondary, isPrimary];\n setFormData({\n ...formData,\n ...data,\n marketplaces: combinedMarketplaces,\n });\n }\n }\n });\n }, [data]);\n\n const saveDetails = () => {\n setIsLoading({ loader: true, type: 'button' });\n if (\n (stepData === undefined ||\n (stepData &&\n Object.keys(stepData) &&\n Object.keys(stepData).length === 0)) &&\n verifiedStepData &&\n Object.keys(verifiedStepData) &&\n Object.keys(verifiedStepData).length === 0\n ) {\n const detail = {\n is_completed: true,\n email: userInfo.email,\n step: 'amazon account',\n customer_onboarding: userInfo.customer_onboarding,\n };\n askSomeoneData(detail).then((stepResponse) => {\n if (stepResponse && stepResponse.status === 201) {\n if (assignedToSomeone) {\n const stringified =\n queryString &&\n queryString.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n history.push(PATH_SUMMARY);\n }\n updateUserMe(userInfo.id, {\n step: { ...userInfo.step, [userInfo.customer]: 5 },\n }).then((user) => {\n if (user && user.status === 200) {\n dispatch(userMe());\n }\n });\n localStorage.removeItem('match');\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n } else {\n updateAskSomeoneData(\n (stepData && stepData.id) || verifiedStepData.step_id,\n {\n token: assignedToSomeone ? params && params.key : '',\n is_completed: true,\n },\n ).then((response) => {\n if (response && response.status === 200) {\n if (assignedToSomeone) {\n const stringified =\n queryString &&\n queryString.stringify({\n name: verifiedStepData.user_name,\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n } else {\n history.push(PATH_SUMMARY);\n }\n updateUserMe(userInfo.id, {\n step: { ...userInfo.step, [userInfo.customer]: 5 },\n }).then((user) => {\n if (user && user.status === 200) {\n dispatch(userMe());\n }\n });\n localStorage.removeItem('match');\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n }\n };\n\n const saveAmazonAccount = () => {\n delete formData?.seller_manual;\n delete formData?.vendor_manual;\n delete formData?.customer;\n\n updateAmazonAccount(data?.id || formData?.id, formData).then((res) => {\n if (res?.status === 200) {\n saveDetails();\n }\n });\n };\n\n const disableBtnUntilAllChecked = () => {\n if (formData?.account_type === 'Seller' && formData?.no_seller_account)\n return false;\n if (formData?.account_type === 'Vendor' && formData?.no_vendor_account)\n return false;\n if (formData?.account_type === 'Hybrid') {\n if (formData?.no_seller_account && formData?.no_vendor_account)\n return false;\n if (\n formData?.no_seller_account &&\n formData?.marketplaces?.filter(\n (op) => op.account_type === 'Vendor' && !op.permitted,\n )?.length === 0\n )\n return false;\n if (\n formData?.no_vendor_account &&\n formData?.marketplaces?.filter(\n (op) => op.account_type === 'Seller' && !op.permitted,\n )?.length === 0\n )\n return false;\n }\n const allPermitted = formData?.marketplaces?.filter((op) => !op.permitted);\n if (allPermitted?.length) return true;\n return false;\n };\n\n const generateCheckBoxForNoAccount = (type) => {\n return (\n \n \n \n );\n };\n\n const displayMarketplacesName = (value) => {\n return marketplacesList?.find((op) => value === op.value)?.label;\n };\n\n const generateHTML = (type) => {\n return (\n
    \n
    {type} Central Account
    \n

    \n Please select all marketrplaces that you’ve invited us to proceed.\n

    \n {formData?.marketplaces?.map((field) => {\n if (field.account_type === type || !field.account_type)\n return (\n \n \n \n \n {displayMarketplacesName(field?.name)}\n {\n const marketplaces = [...formData?.marketplaces];\n marketplaces.filter((op) => {\n if (\n op.account_type === field.account_type &&\n op.name === field.name\n ) {\n op.permitted = !field.permitted;\n }\n return null;\n });\n setFormData({\n ...formData,\n marketplaces: [...marketplaces],\n });\n }}\n disabled={\n (type === 'Seller' && formData?.no_seller_account) ||\n (type === 'Vendor' && formData?.no_vendor_account)\n }\n />\n \n \n \n
    \n
    \n \n );\n return null;\n })}\n \n );\n };\n\n return (\n \n \n {formData?.account_type === 'Hybrid' ||\n formData?.account_type === null ? (\n <>\n {generateCheckBoxForNoAccount('Seller')}\n {generateCheckBoxForNoAccount('Vendor')}\n \n ) : (\n generateCheckBoxForNoAccount(formData?.account_type)\n )}\n {((formData?.account_type === 'Hybrid' ||\n formData?.account_type === null) &&\n formData?.no_seller_account &&\n formData?.no_vendor_account) ||\n (formData?.account_type === 'Vendor' && formData?.no_vendor_account) ||\n (formData?.account_type === 'Seller' &&\n formData?.no_seller_account) ? null : (\n <>\n
    \n
    \n
    \n Grant us access to your Amazon account(s) to start managing your\n Amazon business\n
    \n
    \n

    \n {' '}\n For every marketplace listed below, please follow these steps\n

    \n {amazonAccountManual.map((item) => (\n
    \n \n
    \n

    \n {item.info}\n

    \n
    \n
    \n ))}\n
    \n \n )}\n\n {formData?.account_type === 'Hybrid' ||\n formData?.account_type === null ? (\n <>\n {formData?.no_seller_account ? null : <>{generateHTML('Seller')}}\n {formData?.no_vendor_account ? null : <>{generateHTML('Vendor')}}\n \n ) : (\n <>\n {(formData?.account_type === 'Seller' &&\n formData?.no_seller_account) ||\n (formData?.account_type === 'Vendor' &&\n formData?.no_vendor_account) ? null : (\n <>{generateHTML(formData?.account_type)}\n )}\n \n )}\n\n {isChecked ? (\n ''\n ) : (\n saveAmazonAccount()}\n disabled={\n formData?.account_type === null\n ? false\n : disableBtnUntilAllChecked()\n }\n >\n {' '}\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n <>{assignedToSomeone ? 'Submit' : 'Continue'} \n )}\n \n )}\n \n \n );\n}\n\nAmazonDeveloperAccess.defaultProps = {\n stepData: {},\n};\n\nAmazonDeveloperAccess.propTypes = {\n userInfo: shape({\n id: string,\n email: string,\n customer: string,\n customer_onboarding: string,\n step: shape({\n step: number,\n }),\n }).isRequired,\n setIsLoading: func.isRequired,\n assignedToSomeone: bool.isRequired,\n stepData: shape({\n id: string,\n }),\n verifiedStepData: shape({\n user_name: string,\n }).isRequired,\n isLoading: shape({\n loader: bool,\n type: string,\n }).isRequired,\n data: arrayOf(shape({ id: string })).isRequired,\n isChecked: bool.isRequired,\n};\n","import React, { useEffect, useState } from 'react';\n\n// third party Imports\nimport { useHistory } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\n\n// Local files imports\nimport NavigationHeader from './NavigationHeader';\nimport { showOnboardingMsg } from '../../store/actions/userState';\nimport { logout, userMe } from '../../store/actions';\nimport { accountSummary, updateUserMe, getAmazonAccount } from '../../api';\nimport { GrayClockIcon, OrangeCheckMark } from '../../theme/images';\nimport { OnBoardingBody, GreyCard, Button, PageLoader } from '../../common';\nimport {\n pageTitleConditions,\n PATH_AMAZON_ACCOUNT,\n PATH_BILLING_DETAILS,\n PATH_CUSTOMER_DETAILS,\n stepPath,\n} from '../../constants';\n\nexport default function Summary() {\n const history = useHistory();\n const dispatch = useDispatch();\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [data, setData] = useState([]);\n const [showDashboard, setShowDashboard] = useState(false);\n const userInfo = useSelector((state) => state.userState.userInfo);\n const [skipAmazonAccount, setSkipAmazonAccount] = useState(false);\n\n // Call the function if only page url is get changed (Code to add page title)\n useEffect(() => {\n pageTitleConditions(history.location);\n history.listen((location) => {\n pageTitleConditions(location);\n });\n }, [history]);\n\n useEffect(() => {\n let customerOnboardingId = userInfo.customer_onboarding;\n if (Array.isArray(customerOnboardingId)) {\n const ele = customerOnboardingId?.find(\n (item) => Object.values(item)?.[0] === localStorage.getItem('customer'),\n );\n customerOnboardingId = Object.keys(ele)?.[0];\n }\n\n // this function call is just for DSPN only BP.\n // to enabled Submit button for DSP only BP whether they skip step 4 and 5 or complete\n // to know BP type below api call used. in the response of this api if account type is null\n // means this is DSP only BP. and set showDashboard variable to true so that submit btn will be visible.\n getAmazonAccount(localStorage.getItem('customer')).then((res) => {\n if (res?.status === 200) {\n accountSummary(customerOnboardingId).then((response) => {\n setData(response?.data);\n const skip = response?.data?.find((op) => op.step === 'merchant id');\n setSkipAmazonAccount(skip?.step_not_applicable);\n setIsLoading({ loader: false, type: 'page' });\n // to get to know DSP only BP .. for DSP only BP account type is null\n if (res?.data?.results?.[0]?.account_type === null) {\n setShowDashboard(true);\n } else if (response?.data?.length < 4) {\n setShowDashboard(false);\n } else if (\n response?.data?.some((item) => item.is_completed === false)\n ) {\n setShowDashboard(false);\n } else {\n setShowDashboard(true);\n }\n });\n }\n });\n }, [userInfo.customer_onboarding]);\n\n const getPath = (step, type) => {\n for (const item of stepPath) {\n if (item.key === step) {\n if (type === 'label') {\n return item.title;\n }\n return item.view;\n }\n }\n return '';\n };\n\n const redirect = () => {\n setIsLoading({ loader: true, type: 'button' });\n updateUserMe(userInfo.id, {\n step: { ...userInfo.step, [userInfo.customer]: 6 },\n }).then((user) => {\n if (user && user.status === 200) {\n dispatch(userMe());\n dispatch(showOnboardingMsg(true));\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', userInfo.customer));\n setIsLoading({ loader: false, type: 'button' });\n } else {\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n localStorage.removeItem('match');\n };\n\n return (\n <>\n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n \n
    \n

    Account Summary

    \n\n
    \n Thanks! Please review the information below and click\n Submit & Complete Onboarding to complete this\n process.\n
    \n\n
    \n Within 24 hours of completing your account setup, expect to hear\n from your On-boarding Specialist. They will be walking you through\n those final set up items and getting you in contact with your\n Brand Growth Strategist.\n
    \n \n
    \n Create Your Account\n
    \n \n Completed\n
    \n
    \n\n {data?.map((item) => (\n
    \n {getPath(item?.step, 'label')}\n {item?.is_completed ? (\n \n {skipAmazonAccount &&\n (item?.step === 'merchant id' ||\n item?.step === 'amazon account') ? (\n ''\n ) : (\n \n )}\n {skipAmazonAccount &&\n (item?.step === 'merchant id' ||\n item?.step === 'amazon account')\n ? 'Step not applicable for your contract type'\n : userInfo?.email === item?.email || item?.email === ''\n ? ' Completed'\n : `Provided by ${item?.email}`}\n
    \n ) : (\n
    \n \n\n {item?.email === userInfo?.email || item?.email === ''\n ? 'Skipped'\n : `Assigned to ${item?.email}`}\n
    \n )}\n\n {skipAmazonAccount &&\n (item?.step === 'merchant id' ||\n item?.step === 'amazon account') ? (\n ''\n ) : (\n history.push(getPath(item?.step, 'path'))}\n role=\"presentation\"\n >\n {' '}\n View\n
    \n )}\n
    \n ))}\n \n\n {showDashboard ? (\n redirect()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Submit & Complete Onboarding'\n )}\n \n ) : (\n \n Once all the sections above have been completed you’ll get full\n access to your account dashboard. Your progress so far has been\n saved so you can{' '}\n dispatch(logout())}\n role=\"presentation\"\n style={{ fontSize: '15px' }}\n className=\"cursor link-url\"\n >\n sign out\n {' '}\n or close this tab until you or an assignee provides the\n remaining information.\n \n )}\n
    \n
    \n )}\n \n );\n}\n","import React from 'react';\n\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\n\nimport UnauthorizedHeader from '../../common/UnauthorizedHeader';\nimport { ThanksPage } from './OnBoardingStyles';\nimport { AccountSetupIcon } from '../../theme/images';\n\nexport default function Thanks() {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n const type = history.location?.type;\n\n return (\n <>\n \n \n \"check\"\n {params && params.step === 'completed' ? (\n <>\n {' '}\n
    Information already provided
    \n

    \n Looks like someone has provided the requested information already.\n
    \n
    You can close this tab when you’re ready.\n

    \n \n ) : (\n <>\n
    Thanks!
    \n

    \n We’ve let {params && params.name} know that you’ve provided the\n information we needed.{' '}\n {type === 'dspSignOff'\n ? 'They will get in touch with you if necessary.'\n : null}\n
    \n
    \n You can close this tab when you’re ready.\n

    \n \n )}\n
    \n \n );\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\n\nimport { verifyStepUser } from '../../api';\nimport {\n accountInfo,\n pageTitleConditions,\n PATH_CREATE_PASSWORD,\n PATH_LOGIN,\n} from '../../constants';\nimport {\n AccountSetupIcon,\n LockFinish,\n OrangeCheckMark,\n} from '../../theme/images';\nimport {\n Button,\n OnBoardingBody,\n PageLoader,\n UnauthorizedHeader,\n} from '../../common';\n\nexport default function Info() {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [alreadyUser, setAlreadyUser] = useState(false);\n const [reassignedData, setReassignedData] = useState({});\n const [reassignedUser, setReassignedUser] = useState(false);\n\n // Call the function if only page url is get changed (Code to add page title)\n useEffect(() => {\n pageTitleConditions(history.location);\n history.listen((location) => {\n pageTitleConditions(location);\n });\n }, [history]);\n\n useEffect(() => {\n if (params && params.alreadyAssigned) {\n setReassignedUser(true);\n setAlreadyUser(false);\n setIsLoading({ loader: false, type: 'page' });\n } else {\n localStorage.setItem(\n 'email',\n history.location.search.split('email=')[1].split('&')[0] ||\n (params && params.email),\n );\n verifyStepUser(localStorage.getItem('email'), params.id).then(\n (response) => {\n if (\n (response && response.status === 403) ||\n (response && response.status === 401)\n ) {\n setIsLoading({ loader: false, type: 'page' });\n setAlreadyUser(true);\n }\n if (response && response.status === 200) {\n setIsLoading({ loader: false, type: 'page' });\n if (response && response.data) {\n setReassignedData(response.data);\n setReassignedUser(true);\n } else {\n setAlreadyUser(false);\n setReassignedUser(false);\n }\n }\n setIsLoading({ loader: false, type: 'page' });\n },\n );\n }\n }, [params.email, params.id]);\n\n const redirect = (type) => {\n if (\n localStorage.getItem('email') === null ||\n localStorage.getItem('email') === undefined\n ) {\n localStorage.setItem(\n 'email',\n history.location.search.split('email=')[1].split('&')[0] ||\n (params && params.email),\n );\n }\n\n if (type === 'continue') {\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n type: 'continue',\n });\n\n history.push({\n pathname: PATH_CREATE_PASSWORD,\n search: stringified,\n });\n }\n if (type === 'assign') {\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n type: 'new',\n });\n\n history.push({\n pathname: PATH_CREATE_PASSWORD,\n search: stringified,\n });\n }\n };\n\n return (\n <>\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n \n {' '}\n \n {!alreadyUser && !reassignedUser ? (\n <>\n \"lock\"\n

    Step 1 of 6

    \n

    Create your account

    \n

    \n

    \n Hi {(params && params.name) || 'Customer'},\n
    \n We need some essential information in order to set up your\n account on Buy Box Experts NEXT. We hate paperwork so we ask\n for as little as necessary to get going.\n

    \n
    \n You’ll need the following to complete your account setup:\n
    \n
      \n {accountInfo.map((item) => (\n
    • \n {item}\n {item}\n
    • \n ))}\n
    \n\n redirect('continue')}\n >\n Continue to account creation\n \n\n {params && params.re_assigned === 'None' ? (\n redirect('assign')}\n >\n Assign to someone else\n \n ) : (\n ''\n )}\n \n ) : (\n <>\n
    \n \"check\"\n
    \n <>\n

    \n {alreadyUser\n ? 'You are already registered'\n : 'Customer setup delegated'}\n

    \n

    \n {alreadyUser\n ? 'This invitation link has expired because your account has already been created. Click on one of the below options to proceed.'\n : `You have delegated your customer setup to ${\n reassignedData.first_name ||\n (params && params.first_name)\n } ${\n reassignedData.last_name ||\n (params && params.last_name)\n } at ${\n reassignedData.email || (params && params.email)\n }. They are now the ones responsible for completing your account setup.`}\n
    \n

    \n

    \n If you have any questions in the meantime please reach out\n to{' '}\n \n onboarding@buyboxexperts.com.\n \n

    \n {reassignedUser ? (\n

    \n You can close this tab when you’re ready.\n

    \n ) : (\n ''\n )}\n {alreadyUser ? (\n history.push(PATH_LOGIN)}\n >\n Sign In\n \n ) : (\n ''\n )}\n \n \n )}\n
    \n \n )}\n \n );\n}\n","import React, { useState, useEffect } from 'react';\n\nimport { toast } from 'react-toastify';\nimport { string, shape, bool, func } from 'prop-types';\n\nimport { EditOrangeIcon } from '../../theme/images';\nimport {\n askSomeoneData,\n updateAskSomeoneData,\n editCustomerEmail,\n} from '../../api';\nimport {\n Button,\n CheckBox,\n InputFormField,\n ErrorMsg,\n PageLoader,\n} from '../../common';\n\nexport default function AskSomeone({\n setIsChecked,\n isChecked,\n step,\n setIsLoading,\n isLoading,\n stepData,\n setStepData,\n userInfo,\n setDisableBtn,\n setOpenCollapse,\n noAmazonAccount,\n accountType,\n}) {\n const [formData, setFormData] = useState({});\n const [apiError, setApiError] = useState({});\n const [editEmail, setEditEmail] = useState(false);\n\n useEffect(() => {\n if (\n stepData &&\n stepData.email !== '' &&\n stepData.step === step &&\n stepData.email !== userInfo.email\n ) {\n setIsChecked(true);\n } else {\n setIsChecked(false);\n }\n }, [stepData, setIsChecked, step, userInfo]);\n\n const handleChanges = (event) => {\n setOpenCollapse(false);\n if (event.target.checked) {\n setIsChecked(true);\n setDisableBtn(true);\n } else {\n setIsLoading({ loader: true, type: 'check' });\n setIsChecked(false);\n setFormData({});\n if (stepData && stepData.step === step && stepData && stepData.id) {\n updateAskSomeoneData(stepData.id, {\n email: userInfo && userInfo.email,\n }).then((res) => {\n if (res && res.status === 200) {\n setStepData(res && res.data);\n setIsLoading({ loader: false, type: 'check' });\n setEditEmail(false);\n }\n if (res && res.status === 400) {\n setApiError(res && res.data);\n setIsLoading({ loader: false, type: 'check' });\n }\n });\n } else {\n const data = {\n email: userInfo && userInfo.email,\n customer_onboarding: userInfo && userInfo.customer_onboarding,\n step,\n };\n askSomeoneData(data).then((response) => {\n if (response && response.status === 201) {\n setStepData(response && response.data);\n setIsLoading({ loader: false, type: 'check' });\n }\n if (response && response.status === 400) {\n setApiError(response && response.data);\n setIsLoading({ loader: false, type: 'check' });\n }\n });\n }\n }\n setApiError({});\n };\n\n const sendEmail = () => {\n setIsLoading({ loader: true, type: 'email' });\n\n if (\n stepData &&\n stepData.step === step &&\n stepData &&\n stepData.id &&\n stepData.email === ''\n ) {\n updateAskSomeoneData(stepData.id, { email: formData.email }).then(\n (res) => {\n if (res && res.status === 200) {\n setStepData(res && res.data);\n toast.success('Request Sent Successfully!');\n setIsLoading({ loader: false, type: 'email' });\n setEditEmail(false);\n setDisableBtn(false);\n }\n if (res && res.status === 400) {\n setApiError(res && res.data);\n setIsLoading({ loader: false, type: 'email' });\n setDisableBtn(false);\n }\n },\n );\n } else if (\n stepData &&\n stepData.step === step &&\n stepData &&\n stepData.id &&\n stepData.email !== ''\n ) {\n editCustomerEmail({\n email: formData.email,\n step_assigned_id: stepData.id,\n }).then((res) => {\n if (res && res.status === 200) {\n setStepData(res && res.data);\n toast.success('Request Sent Successfully!');\n setIsLoading({ loader: false, type: 'email' });\n setEditEmail(false);\n setDisableBtn(false);\n }\n if (res && res.status === 400) {\n setApiError(res && res.data);\n setIsLoading({ loader: false, type: 'email' });\n setDisableBtn(false);\n }\n });\n } else {\n const data = {\n ...formData,\n customer_onboarding: userInfo && userInfo.customer_onboarding,\n step,\n };\n if (step === 'digital presence') {\n askSomeoneData({\n is_completed: false,\n email: '',\n step: 'billing information',\n customer_onboarding: userInfo && userInfo.customer_onboarding,\n });\n }\n askSomeoneData(data).then((response) => {\n if (response && response.status === 201) {\n setStepData(response && response.data);\n toast.success('Request Sent Successfully!');\n setIsLoading({ loader: false, type: 'email' });\n setDisableBtn(false);\n }\n if (response && response.status === 400) {\n setApiError(response && response.data);\n setIsLoading({ loader: false, type: 'email' });\n setDisableBtn(false);\n }\n });\n }\n };\n\n return (\n <>\n \n \n \n\n {isChecked ||\n (stepData &&\n stepData.email !== '' &&\n stepData.step === step &&\n stepData.email !== userInfo.email) ? (\n
    \n \n \n \n {apiError && apiError.email && apiError.email[0]}\n \n {stepData.email !== '' &&\n stepData.step === step &&\n stepData.email !== userInfo.email ? (\n {\n setEditEmail(true);\n setDisableBtn(true);\n }}>\n \"edit\"{' '}\n Edit email address\n \n ) : (\n ''\n )}\n \n {!editEmail &&\n stepData &&\n stepData.email !== '' &&\n stepData.step === step &&\n stepData.email !== userInfo.email ? (\n

    \n We’ve emailed them a link to submit the information in this\n section.\n

    \n ) : (\n <>\n

    \n We’ll email them a link to submit the information in this\n section.\n

    \n sendEmail()}\n disabled={\n formData.email === '' || formData.email === undefined\n }>\n {isLoading.loader && isLoading.type === 'email' ? (\n \n ) : (\n 'Send Email'\n )}\n \n \n )}\n
    \n ) : (\n ''\n )}\n \n );\n}\n\nAskSomeone.defaultProps = {\n setIsChecked: () => {},\n step: '',\n setIsLoading: () => {},\n setStepData: () => {},\n stepData: {},\n setDisableBtn: () => {},\n setOpenCollapse: () => {},\n noAmazonAccount: false,\n accountType: null,\n};\n\nAskSomeone.propTypes = {\n userInfo: shape({\n email: string,\n customer_onboarding: string,\n }).isRequired,\n isChecked: bool.isRequired,\n setIsChecked: func,\n step: string,\n setIsLoading: func,\n isLoading: shape({\n loader: bool,\n type: string,\n }).isRequired,\n setStepData: func,\n stepData: shape({\n id: string,\n email: string,\n step: string,\n is_completed: bool,\n }),\n setDisableBtn: func,\n setOpenCollapse: func,\n noAmazonAccount: bool,\n accountType: string,\n};\n","/* eslint-disable no-lonely-if */\nimport React from 'react';\n\nimport { useHistory } from 'react-router-dom';\nimport { string, shape, bool, arrayOf } from 'prop-types';\n\nimport { Button } from '../../common';\nimport {\n PATH_AMAZON_ACCOUNT,\n PATH_AMAZON_MERCHANT,\n PATH_BILLING_DETAILS,\n PATH_SUMMARY,\n stepPath,\n} from '../../constants';\n\nexport default function CheckSteps({ summaryData, step, disableBtn }) {\n const history = useHistory();\n\n const getIncompleteStep = summaryData.find(\n (op) => Object.keys(op)[0] !== step && Object.values(op)[0] === false,\n );\n const checkOnceVisited = summaryData.find(\n (op) => Object.keys(op)[0] !== step && Object.values(op)[0] === true,\n );\n\n const CheckStep = () => {\n if (checkOnceVisited === undefined) {\n if (step === 'digital presence') history.push(PATH_BILLING_DETAILS);\n if (step === 'billing information') history.push(PATH_AMAZON_MERCHANT);\n if (step === 'merchant id') history.push(PATH_AMAZON_ACCOUNT);\n } else {\n if (step === 'amazon account' || getIncompleteStep === undefined) {\n history.push(PATH_SUMMARY);\n } else {\n stepPath.map((item) => {\n if (Object.keys(getIncompleteStep)[0] === item.key) {\n return history.push(item.view);\n }\n return '';\n });\n }\n }\n };\n\n return (\n
    \n {' '}\n CheckStep()}\n disabled={disableBtn}\n >\n Continue\n \n
    \n );\n}\n\nCheckSteps.propTypes = {\n step: string.isRequired,\n summaryData: arrayOf(shape({})).isRequired,\n disableBtn: bool.isRequired,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport { useSelector } from 'react-redux';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\n// local file imports\nimport Theme from '../../../theme/Theme';\nimport { Activity } from '../../../constants';\nimport PageLoader from '../../../common/PageLoader';\nimport { CommonPagination, Status } from '../../../common/index';\nimport {\n FileIcon,\n CheckFileIcon,\n EditFileIcon,\n SignatureIcon,\n NextActivityLogo,\n ContractEmailIcon,\n} from '../../../theme/images/index';\n\n// define third party variable\nconst _ = require('lodash');\n\nfunction ContractActivityLog({\n loader,\n isApicalled,\n activityLoader,\n pageNumber,\n role,\n contractAddendumDetails,\n images,\n activityData,\n activityCount,\n agreementData,\n setPageNumber,\n checkContractStatus,\n getContractActivityLogInfo,\n}) {\n const loggedInuserInfo = useSelector((state) => state?.userState?.userInfo);\n\n // handle pagination events\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getContractActivityLogInfo(currentPage);\n };\n\n // get contract status, icon image src and status classname\n const getContractStatusData = (type) => {\n const status = contractAddendumDetails?.notActive\n ? contractAddendumDetails?.status\n : agreementData?.contract_status?.value;\n\n let statusClass = '';\n let statusSrc = '';\n let dispalyStatus = '';\n\n if (status !== '') {\n switch (status) {\n case 'pending contract':\n statusClass = 'pending-contract';\n statusSrc = FileIcon;\n dispalyStatus = 'Pending Agreement';\n break;\n\n case 'pending contract approval':\n statusClass = '';\n statusSrc = CheckFileIcon;\n dispalyStatus = 'Pending Agreement Approval';\n break;\n\n case 'pending contract signature':\n statusClass = 'pending-signature';\n statusSrc = EditFileIcon;\n dispalyStatus = 'Pending Agreement Signature';\n break;\n\n case 'pending account setup':\n statusClass = 'signature';\n statusSrc = SignatureIcon;\n dispalyStatus = 'Signed';\n break;\n\n case 'active':\n statusClass = 'signature';\n statusSrc = SignatureIcon;\n dispalyStatus = 'Signed';\n break;\n\n case 'inactive':\n statusClass = '';\n statusSrc = '';\n dispalyStatus = 'Inactive';\n break;\n\n case 'cancel':\n statusClass = '';\n statusSrc = '';\n dispalyStatus = 'Cancelled';\n break;\n\n case 'pending cancellation approval':\n statusClass = '';\n statusSrc = '';\n dispalyStatus = 'Pending Cancellation Approval';\n break;\n\n case 'pending for cancellation':\n statusClass = '';\n statusSrc = '';\n dispalyStatus = 'Cancelled - Pending for Billing';\n break;\n\n case 'pause':\n statusClass = '';\n statusSrc = '';\n dispalyStatus = 'Pause';\n break;\n\n case 'pending addendum':\n statusClass = 'pending-contract';\n statusSrc = FileIcon;\n dispalyStatus = 'Pending Addendum';\n break;\n\n case 'pending addendum approval':\n statusClass = '';\n statusSrc = CheckFileIcon;\n dispalyStatus = 'Pending Addendum Approval';\n break;\n\n case 'pending addendum signature':\n statusClass = 'pending-signature';\n statusSrc = EditFileIcon;\n dispalyStatus = 'Pending Addendum Signature';\n break;\n\n case 'renewed':\n statusClass = 'signature';\n statusSrc = SignatureIcon;\n dispalyStatus = 'Signed';\n break;\n\n case 'completed':\n statusClass = 'signature';\n statusSrc = SignatureIcon;\n dispalyStatus = 'Completed';\n break;\n\n default:\n statusClass = 'pending-contract';\n statusSrc = 'FileIcon';\n dispalyStatus = '';\n break;\n }\n }\n\n if (type === 'class') {\n return statusClass;\n }\n if (type === 'src') {\n return statusSrc;\n }\n if (type === 'status') {\n return dispalyStatus;\n }\n return '';\n };\n\n // display user profile image\n const displayUserProfileImage = (item, reason, presignedURL) => {\n return (\n
    \n \n
    \n );\n };\n\n // get first letter of firname and last name of user\n const getActivityInitials = (userInfo) => {\n if (userInfo && userInfo === 'Contract initiated') {\n return 'SU';\n }\n const firstName =\n (userInfo &&\n userInfo?.split(' ')?.slice(0, 2) &&\n userInfo?.split(' ')?.slice(0, 2)[0]?.charAt(0)) ||\n '';\n const lastName =\n (userInfo &&\n userInfo?.split(' ')?.slice(0, 2) &&\n userInfo?.split(' ')?.slice(0, 2)[1]?.charAt(0)) ||\n '';\n\n return firstName + lastName;\n };\n\n // display formatted activity details\n const displayFormattedActivityDetail = (item) => {\n let activityMessage = '';\n const reason = item?.history_change_reason;\n\n if (\n reason?.includes('added') ||\n reason?.includes('approved') ||\n reason?.includes('approved and sent') ||\n reason?.includes('changed') ||\n reason?.includes('created new record by company name') ||\n reason?.includes('completion date') ||\n reason?.includes('deleted') ||\n reason?.includes('downloaded') ||\n reason?.includes('granted') ||\n reason?.includes('resumed') ||\n reason?.includes('requested for') ||\n reason?.includes('sent') ||\n reason?.includes('signed') ||\n reason?.includes('removed') ||\n reason?.includes('updated addendum') ||\n reason?.includes('updated') ||\n reason?.includes('successfully logged in')\n ) {\n // https://bbe.atlassian.net/browse/PDV-9227 - Capture DSP Detail Company Details Page in Activity Logs\n // Words to wrap with span tags\n const wordsToWrap = [\n 'added',\n 'approved',\n 'approved and sent',\n 'changed',\n 'created new record by company name',\n 'deleted',\n 'downloaded',\n 'for',\n 'from',\n 'granted',\n 'updated addendum',\n 'resumed',\n 'requested for',\n 'removed',\n 'sent',\n 'signed',\n 'updated',\n 'to',\n 'logged in',\n ];\n // Regular expression to match the words\n const regex = new RegExp(`\\\\b(${wordsToWrap.join('|')})\\\\b`, 'gi');\n // Replace the matched words with span tags\n const log = reason?.replace(regex, '$1');\n\n return (\n \n );\n }\n\n const highLightLogs = Activity?.dspSignOfflog\n ?.concat(Activity?.cancelPauseAggrementLog)\n ?.filter((logItem) => reason?.includes(logItem));\n if (\n reason?.includes(\n highLightLogs.length > 0\n ? highLightLogs.length === 1\n ? highLightLogs[0]\n : highLightLogs[highLightLogs.length - 1]\n : null,\n )\n ) {\n activityMessage = reason?.split(\n highLightLogs[highLightLogs.length > 0 ? highLightLogs.length - 1 : 0],\n );\n\n return (\n <>\n {activityMessage[0]}\n \n {\n highLightLogs[\n highLightLogs.length > 0 ? highLightLogs.length - 1 : 0\n ]\n }\n \n {activityMessage[1]}\n \n );\n }\n return reason || '';\n };\n\n // display activity status\n const displayActivityStatus = (item) => {\n return (\n <>\n \n {item?.status === 'delivered' ? (\n
    \n Opens: {item?.opens || 0}\n Clicks: {item?.clicks || 0}\n
    \n ) : (\n ''\n )}\n \n );\n };\n\n // display contract status\n const displayContractStatus = () => {\n return (\n \n \n {_.startCase(getContractStatusData('status'))}\n
    \n );\n };\n\n // display activity Log details\n const displayActivityLogDetails = (item, index) => {\n const reason = item?.history_change_reason;\n const presignedURL = images?.find(\n (op) => op?.entity_id === item?.history_user_id,\n )?.presigned_url;\n\n return (\n
  • \n {presignedURL ||\n (reason?.split(' ')?.slice(0, 2) &&\n reason?.split(' ')?.slice(0, 2)[0] === 'System' &&\n reason?.split(' ')?.slice(0, 2)[1]?.toLowerCase() === 'user') ||\n item?.status !== undefined ? (\n displayUserProfileImage(item, reason, presignedURL)\n ) : (\n
    \n {getActivityInitials(reason)}\n
    \n )}\n
    \n {displayFormattedActivityDetail(item)}\n
    {item?.history_date || ''}
    \n {item?.status ? displayActivityStatus(item) : ''}\n
    \n
    \n
  • \n );\n };\n\n // display activty log footer\n const displayActivityLogFooter = () => {\n return (\n \n \n \n );\n };\n\n // display contract activity log\n const renderContractActivityPanel = () => {\n return (\n <>\n {/* contract status */}\n {agreementData?.contract_status?.value ? displayContractStatus() : null}\n {role !== 'Customer' ? (\n
    \n
    Agreement Activity
    \n {activityLoader === true || loader ? (\n \n ) : activityData?.length ? (\n <>\n {/* contract activity details */}\n
      \n {activityData.map((item, index) => {\n return displayActivityLogDetails(item, index);\n })}\n
    \n {/* contract activity foooter */}\n {activityCount > 10 ? displayActivityLogFooter() : null}\n \n ) : isApicalled ? (\n
    No activity log found.
    \n ) : null}\n
    \n ) : null}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {renderContractActivityPanel()}\n
    \n );\n}\n\nexport default ContractActivityLog;\n\nContractActivityLog.defaultProps = {\n loader: false,\n isApicalled: false,\n activityLoader: false,\n pageNumber: 1,\n activityCount: 0,\n agreementData: {\n contract_status: {\n value: '',\n label: '',\n },\n addendum_status: {\n value: '',\n },\n },\n contractAddendumDetails: {\n notActive: false,\n status: '',\n },\n images: [],\n activityData: [],\n setPageNumber: () => {},\n checkContractStatus: () => {},\n getContractActivityLogInfo: () => {},\n};\n\nContractActivityLog.propTypes = {\n loader: bool,\n isApicalled: bool,\n activityLoader: bool,\n pageNumber: number,\n activityCount: number,\n role: string.isRequired,\n agreementData: shape({\n contract_status: shape({\n value: string,\n label: string,\n }),\n addendum_status: shape({\n value: string,\n }),\n }),\n contractAddendumDetails: shape({\n notActive: bool,\n status: string,\n }),\n images: arrayOf(shape({})),\n activityData: arrayOf(shape({})),\n setPageNumber: func,\n checkContractStatus: func,\n getContractActivityLogInfo: func,\n};\n\nconst Footer = styled.div`\n border-top: 1px solid ${Theme.gray7};\n bottom: ${(props) => (props.bottom ? props.bottom : '0px')};\n background: ${Theme.white};\n box-shadow: ${Theme.boxShadow};\n position: fixed;\n min-height: 60px;\n z-index: 2;\n width: 336px;\n\n @media only screen and (max-width: 991px) {\n width: 100%;\n }\n @media only screen and (min-width: 1500px) {\n width: 405px;\n }\n`;\n","import {\n string,\n bool,\n number,\n func,\n oneOfType,\n arrayOf,\n shape,\n object,\n objectOf,\n instanceOf,\n} from 'prop-types';\n\nexport const agreementDefaultProptypes = {\n formData: {},\n loader: false,\n agreementData: {},\n newAddendumData: {},\n notIncludedOneTimeServices: [],\n apiError: {},\n showSection: {},\n updatedFormData: {},\n additionalMonthlyServices: [],\n originalData: {},\n additionalMarketplacesData: [],\n additionalOnetimeServices: [],\n additionalMarketplaceError: {},\n additionalMonthlySerError: {},\n additionalOnetimeSerError: {},\n contractError: {},\n showEditor: false,\n openCollapse: {},\n amazonStoreCustom: false,\n showAmazonPlanDropdown: false,\n showAdditionalMarketplace: {},\n startDate: '',\n sectionError: {},\n activityLoader: false,\n activityData: [],\n images: [],\n activityCount: 0,\n pageNumber: 1,\n isApicalled: false,\n isEditContract: false,\n customerError: {},\n isDocRendered: false,\n oneTimeService: [],\n monthlyService: [],\n AmazonStoreOptions: [],\n originalAddendumData: {},\n marketplacesResult: [],\n marketPlaces: [],\n additionalMarketplaces: [],\n firstMonthDate: '',\n thresholdTypeOptions: [],\n yoyPercentageOptions: [],\n Props: {},\n sidebarSection: {},\n setFormData: () => {},\n onEditAddendum: () => {},\n setShowEditor: () => {},\n setNewAddendum: () => {},\n setNotIncludedOneTimeServices: () => {},\n showFooter: () => {},\n setApiError: () => {},\n executeScroll: () => {},\n setShowCollpase: () => {},\n setUpdatedFormData: () => {},\n setMonthlyAdditionalServices: () => {},\n setAdditionalMarketplace: () => {},\n setAdditionalOnetimeServices: () => {},\n setAdditionalMarketplaceError: () => {},\n setAdditionalMonthlySerError: () => {},\n setAdditionalOnetimeSerError: () => {},\n setContractError: () => {},\n setOpenCollapse: () => {},\n setOriginalAddendumData: () => {},\n setAmazonStoreCustom: () => {},\n setShowAmazonPlanDropdown: () => {},\n setShowAdditionalMarketplace: () => {},\n setStartDate: () => {},\n setSectionError: () => {},\n setPageNumber: () => {},\n getContractActivityLogInfo: () => {},\n getContractDetails: () => {},\n setIsEditContract: () => {},\n setContractLoading: () => {},\n setCustomerErrors: () => {},\n fetchUncommonOptions: () => {},\n checkContractStatus: () => {},\n setShowDiscountModal: () => {},\n setDiscountFlag: () => {},\n setMarketPlaces: () => {},\n setSidebarSection: () => {},\n setAdditionalMarketplaces: () => {},\n};\n\nexport const agreementSidePanelPropTypes = {\n Props: shape({\n selectProps: shape({\n menuIsOpen: bool,\n }),\n }),\n id: string.isRequired,\n setFormData: func,\n loader: bool,\n formData: shape({\n company_name: string,\n customer_id: shape({\n company_name: string,\n address: string,\n city: string,\n state: string,\n zip_code: string,\n }),\n threshold_type: string,\n additional_services: arrayOf(arrayOf(shape({}))),\n start_date: oneOfType([string, instanceOf(Date)]),\n sales_threshold: string,\n yoy_percentage: string,\n primary_marketplace: oneOfType([\n string,\n shape({\n fee: number,\n name: string,\n id: string,\n }),\n ]),\n length: oneOfType([\n string,\n shape({\n value: string,\n label: string,\n }),\n ]),\n additional_marketplaces: arrayOf(shape({})),\n additional_monthly_services: arrayOf(shape({})),\n additional_one_time_services: arrayOf(shape({})),\n quantity: number,\n contract_status: shape({\n label: string,\n value: string,\n }),\n contract_type: string,\n monthly_discount_amount: oneOfType([string, number]),\n monthly_discount_type: oneOfType([string, number]),\n one_time_discount_type: oneOfType([string, number]),\n one_time_discount_amount: oneOfType([string, number]),\n dsp_fee: string,\n dsp_length: oneOfType([\n string,\n shape({\n value: string,\n label: string,\n }),\n ]),\n monthly_retainer: oneOfType([string, number]),\n rev_share: oneOfType([\n string,\n shape({\n value: string,\n label: string,\n }),\n ]),\n draft_from: oneOfType([string, objectOf(object)]),\n }),\n\n agreementData: shape({\n id: string,\n contract_type: string,\n contract_status: shape({\n label: string,\n value: string,\n }),\n primary_marketplace: oneOfType([\n string,\n shape({\n fee: number,\n name: string,\n id: string,\n }),\n ]),\n start_date: oneOfType([string, instanceOf(Date)]),\n additional_monthly_services: arrayOf(shape({})),\n additional_marketplaces: arrayOf(shape({})),\n steps_completed: objectOf(bool),\n additional_one_time_services: arrayOf(shape({})),\n sales_threshold: string,\n draft_from: string,\n }),\n newAddendumData: shape({\n id: string,\n addendum: string,\n }),\n\n onEditAddendum: func,\n setShowEditor: func,\n setNewAddendum: func,\n notIncludedOneTimeServices: arrayOf(shape({})),\n setNotIncludedOneTimeServices: func,\n\n apiError: shape({\n quantity: arrayOf(string),\n service: arrayOf(string),\n non_field_errors: arrayOf(string),\n amazon_store_package_custom: arrayOf(string),\n }),\n showFooter: func,\n setApiError: func,\n executeScroll: func,\n showSection: shape({\n addendum: bool,\n dspAddendum: bool,\n }),\n setShowCollpase: func,\n updatedFormData: shape({\n additional_services: arrayOf(arrayOf(shape({}))),\n start_date: string,\n company_name: string,\n primary_marketplace: oneOfType([\n string,\n shape({\n fee: number,\n name: string,\n id: string,\n }),\n ]),\n additional_marketplaces: oneOfType([object, arrayOf(object)]),\n additional_monthly_services: oneOfType([object, arrayOf(object)]),\n additional_one_time_services: oneOfType([object, arrayOf(object)]),\n quantity: number,\n addendum: string,\n }),\n setUpdatedFormData: func,\n additionalMonthlyServices: shape({\n create: arrayOf(shape({})),\n delete: arrayOf(string, shape({})),\n }),\n setMonthlyAdditionalServices: func,\n originalData: shape({\n id: string,\n additional_services: arrayOf(arrayOf(shape({}))),\n start_date: string,\n company_name: string,\n primary_marketplace: shape({\n fee: number,\n name: string,\n id: string,\n }),\n additional_marketplaces: arrayOf(shape({})),\n additional_monthly_services: arrayOf(shape({})),\n additional_one_time_services: arrayOf(shape({})),\n quantity: number,\n }),\n additionalMarketplacesData: shape({\n create: arrayOf(shape({})),\n delete: arrayOf(string, shape({})),\n }),\n setAdditionalMarketplace: func,\n additionalOnetimeServices: shape({\n create: arrayOf(shape({})),\n delete: arrayOf(string, shape({})),\n }),\n setAdditionalOnetimeServices: func,\n additionalMarketplaceError: oneOfType([string, object]),\n setAdditionalMarketplaceError: func,\n additionalMonthlySerError: oneOfType([string, object]),\n setAdditionalMonthlySerError: func,\n additionalOnetimeSerError: shape({\n quantity: number,\n custom_amazon_store_price: number,\n }),\n setAdditionalOnetimeSerError: func,\n contractError: shape({\n billing_cap: oneOfType([string, number]),\n yoy_percentage: string,\n sales_threshold: string,\n dsp_fee: string,\n }),\n setContractError: func,\n setOriginalAddendumData: func,\n showEditor: bool,\n openCollapse: shape({\n agreement: bool,\n statement: bool,\n addendum: bool,\n dspAddendum: bool,\n }),\n setOpenCollapse: func,\n amazonStoreCustom: bool,\n setAmazonStoreCustom: func,\n showAmazonPlanDropdown: bool,\n setShowAmazonPlanDropdown: func,\n showAdditionalMarketplace: shape({}),\n setShowAdditionalMarketplace: func,\n startDate: oneOfType([string, instanceOf(Date)]),\n setStartDate: func,\n sectionError: shape({\n agreement: number,\n dsp: number,\n statement: number,\n }),\n setSectionError: func,\n setPageNumber: func,\n getContractActivityLogInfo: func,\n activityLoader: bool,\n activityData: arrayOf(shape({})),\n images: arrayOf(shape({})),\n activityCount: oneOfType([arrayOf(object), number]),\n pageNumber: number,\n isApicalled: bool,\n getContractDetails: func,\n isEditContract: bool,\n setIsEditContract: func,\n setContractLoading: func,\n customerError: objectOf(shape({})),\n setCustomerErrors: func,\n isDocRendered: bool,\n oneTimeService: arrayOf(shape({})),\n monthlyService: arrayOf(shape({})),\n AmazonStoreOptions: arrayOf(shape({})),\n fetchUncommonOptions: func,\n originalAddendumData: oneOfType([\n number,\n objectOf(object),\n shape({\n id: string,\n }),\n ]),\n checkContractStatus: func,\n setShowDiscountModal: func,\n setDiscountFlag: func,\n marketplacesResult: arrayOf(shape({})),\n marketPlaces: arrayOf(shape({})),\n setMarketPlaces: func,\n additionalMarketplaces: arrayOf(shape({})),\n setAdditionalMarketplaces: func,\n firstMonthDate: oneOfType([string, instanceOf(Date)]),\n thresholdTypeOptions: arrayOf(shape({})),\n yoyPercentageOptions: arrayOf(shape({})),\n sidebarSection: string,\n setSidebarSection: func,\n};\n","export function checkDisabledConditionForServices(\n data,\n serviceData,\n disabledLimit,\n) {\n const findItemInFormData = data?.find((item) =>\n item?.service_id\n ? item?.service_id === serviceData\n : item?.service?.id === serviceData,\n );\n\n return findItemInFormData?.quantity\n ? parseInt(findItemInFormData?.quantity, 10) === disabledLimit\n : false;\n}\n\nexport const checkDisabledConditionForListing = (formData, field) => {\n if (\n formData &&\n formData?.[field] === null &&\n (formData?.[field]\n ? parseInt(formData?.[field], 10) <= 0\n : formData?.[field] === null)\n ) {\n return true;\n }\n return false;\n};\n","import React, { useState, useEffect } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport { string, number, shape, bool, arrayOf, func } from 'prop-types';\n\nimport { CheckBox, ErrorMsg } from '../../../../common';\nimport { PlusIcon, MinusIcon } from '../../../../theme/images';\n\nfunction AdditionalOneTimeServicesSubTabs({\n tabName,\n details,\n formData,\n setFormData,\n setUpdatedFormData,\n additionalOneTimeServicesLength,\n oneTimeService,\n contractAddendumDetails,\n updatedFormData,\n additionalOnetimeServices,\n setAdditionalOnetimeServices,\n showFooter,\n additionalOnetimeSerError,\n setAdditionalOnetimeSerError,\n updateAdditionalOnetimeServicesSelectedData,\n clearOneTimeQntyError,\n updateStatementErrorValue,\n sectionError,\n combinedOneTimeServices,\n filterNotIncludedOneTimeServices,\n}) {\n const [showOneTimeServicesSubTabs, setShowOneTimeServicesSubTabs] =\n useState(false);\n const [oneTimeServiceSubTabOptions, setOneTimeServiceSubTabOptions] =\n useState(null);\n\n useEffect(() => {\n // If one time services are present in the formData then set that sub tab option true\n if (formData?.additional_one_time_services?.length && tabName) {\n const includesSubTabs = formData?.additional_one_time_services?.filter(\n (service) =>\n service.name\n ? service?.name?.includes(tabName)\n : service?.service?.name?.includes(tabName),\n );\n if (includesSubTabs?.length) {\n setShowOneTimeServicesSubTabs(true);\n }\n }\n\n // Seperate Sub tabs form one time services\n if (oneTimeService?.length && tabName) {\n const result = oneTimeService?.filter((service) =>\n service?.label?.includes(tabName),\n );\n setOneTimeServiceSubTabOptions(\n result?.filter((op) => op.label !== 'A+ Content'),\n );\n }\n }, [formData.additional_one_time_services, oneTimeService, tabName]);\n\n // If one sub tabs value is in formData then add the remaining sub tabs in the formData\n useEffect(() => {\n if (formData?.additional_one_time_services?.length) {\n const combined = [\n ...combinedOneTimeServices,\n ...formData?.additional_one_time_services,\n ];\n setFormData({\n ...formData,\n additional_one_time_services: combined,\n });\n if (formData?.contract_type?.includes('one')) {\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: [\n ...formData.additional_one_time_services,\n ...combinedOneTimeServices,\n ],\n });\n } else {\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: [\n ...additionalOnetimeServices.create,\n ...combinedOneTimeServices,\n ],\n });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [oneTimeService, combinedOneTimeServices, formData.contract_type]);\n\n const returnSubTabName = (tab) => {\n switch (tab) {\n case 'Amazon Storefront':\n return 'Amazon Storefront';\n case 'Walmart Storefront':\n return 'Walmart Storefront';\n case 'Enhanced':\n return 'Enhanced Content';\n case 'A+':\n return 'A+ Content';\n case 'Infographics':\n return 'Infographics';\n default:\n return '';\n }\n };\n\n const clearOneTimeServiceError = () => {\n const objectKeys = [];\n // eslint-disable-next-line no-unused-vars\n const restAdditionalOnetimeSerError =\n additionalOnetimeSerError?.quantity?.map((error) =>\n objectKeys.push(...Object.keys(error)),\n );\n\n if (objectKeys?.length && parseInt(objectKeys.indexOf(tabName), 10) >= 0) {\n const remainingError = additionalOnetimeSerError?.quantity;\n // eslint-disable-next-line no-unused-vars\n const aa = remainingError?.splice(objectKeys.indexOf(tabName), 1);\n setAdditionalOnetimeSerError({\n ...additionalOnetimeSerError,\n quantity: remainingError,\n });\n }\n };\n\n const checkDisableCondition = (label, limit) => {\n const filterData =\n additionalOneTimeServicesLength &&\n formData?.additional_one_time_services?.find((item) =>\n item.name\n ? item?.name?.includes(label)\n : item?.service && item?.service?.name?.includes(label),\n );\n return filterData ? parseInt(filterData.quantity, 10) === limit : false;\n };\n\n const handleOneTimeServiceSubTabQuantity = (flag, serviceData) => {\n if (additionalOnetimeSerError?.quantity) {\n updateStatementErrorValue(\n sectionError?.statement ? sectionError?.statement - 1 : 0,\n );\n }\n clearOneTimeServiceError();\n\n showFooter(true);\n // start to append new service to array\n\n const oneServices = formData.additional_one_time_services;\n const list = [];\n if (oneServices?.length) {\n oneServices.map((item) =>\n item.name !== serviceData.name || item.service.name !== serviceData.name\n ? list.push({\n name: serviceData.label,\n quantity: 0,\n service_id: serviceData.value,\n contract_id: formData.id,\n })\n : null,\n );\n }\n let amazonStoreItem = {};\n const selectedData =\n additionalOnetimeServices?.create?.length &&\n additionalOnetimeServices.create.filter((item) => {\n if (\n item.name\n ? item.name.includes(serviceData.label)\n : item.service.name.includes(serviceData.label)\n ) {\n amazonStoreItem = item;\n let itemQuantity = 0;\n if (item.quantity >= 0) {\n itemQuantity = parseInt(item.quantity, 10);\n }\n\n if (flag === 'add') {\n item.quantity = itemQuantity + 1;\n }\n if (flag === 'minus') {\n if (itemQuantity > 0) {\n item.quantity = itemQuantity - 1;\n }\n }\n }\n return item;\n });\n\n clearOneTimeQntyError(amazonStoreItem);\n\n if (selectedData) {\n updateAdditionalOnetimeServicesSelectedData(selectedData);\n }\n };\n\n const handleOneTimeServiceSubTabNumber = (event) => {\n showFooter(true);\n clearOneTimeServiceError();\n\n if (formData?.additional_one_time_services?.length) {\n const amazonStorefrontserviceForUpdate =\n formData?.additional_one_time_services?.find((item) =>\n item.name\n ? item.name.includes(event.target.name)\n : item.service.name.includes(event.target.name),\n );\n amazonStorefrontserviceForUpdate.quantity =\n parseInt(event.target.value, 10) || 0;\n\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: formData.additional_one_time_services,\n });\n\n let existingUpdatedFormData = [];\n if (updatedFormData?.additional_one_time_services) {\n existingUpdatedFormData = updatedFormData?.additional_one_time_services;\n }\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: {\n ...existingUpdatedFormData,\n create: [...formData.additional_one_time_services],\n },\n });\n }\n filterNotIncludedOneTimeServices();\n };\n\n const showError = () => {\n let errorMsg = null;\n if (additionalOnetimeSerError?.quantity?.length) {\n for (const obj of additionalOnetimeSerError?.quantity) {\n if (obj[tabName]) {\n errorMsg = obj[tabName];\n }\n }\n } else {\n errorMsg = null;\n }\n if (errorMsg) {\n return (\n
    \n {errorMsg}\n
    \n );\n }\n return '';\n };\n\n const displayOneTimeServicesSubTabs = () => {\n return oneTimeServiceSubTabOptions?.map((service) => {\n return (\n
    \n
    \n
    \n \n {service?.label}\n

    \n
    \n
    \n {\n handleOneTimeServiceSubTabQuantity('minus', service);\n }}\n disabled={\n contractAddendumDetails?.notActive\n ? true\n : checkDisableCondition(service.label, 0) ||\n contractAddendumDetails?.notActive\n }\n >\n \"\"\n \n\n \n item.name\n ? item.name.includes(service.label)\n : item.service?.name.includes(service.label),\n )?.quantity\n }\n id={service.value}\n onChange={(event) => handleOneTimeServiceSubTabNumber(event)}\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n return floatValue <= 100;\n }}\n disabled={contractAddendumDetails?.notActive}\n allowNegative={false}\n />\n\n {\n handleOneTimeServiceSubTabQuantity('add', service);\n }}\n >\n \"\"\n \n
    \n
    \n
    \n );\n });\n };\n\n // if onetime sub tab's one service is already present in the db and then we check and uncheck the subtab's checkbox then the remaining subtabs should be added in to formdata\n // eslint-disable-next-line consistent-return\n const findRemainingOneTimeServicesOnCheck = () => {\n const result = [];\n oneTimeService.forEach((item) => {\n if (item.label.includes(tabName)) {\n result.push({\n name: item.label,\n quantity: 0,\n service_id: item.value,\n contract_id: formData.id,\n });\n }\n return result;\n });\n let containsAmazonStorefront = [];\n if (details?.additional_one_time_services?.length) {\n containsAmazonStorefront = details?.additional_one_time_services?.filter(\n (item) =>\n item?.name\n ? item?.name?.includes(tabName)\n : item?.service?.name?.includes(tabName),\n );\n }\n if (containsAmazonStorefront?.length) {\n const uniqueResult = result?.filter((obj) => {\n return !containsAmazonStorefront?.some((obj2) => {\n return obj?.name === obj2?.service?.name;\n });\n });\n\n return uniqueResult;\n }\n };\n\n const handleChangeOneTimeServicesSubTabs = (event) => {\n clearOneTimeServiceError();\n\n if (event.target.checked) {\n showFooter(true);\n let defaultOneTimeServiceOptions = [];\n let defaultAmazonStorefrontDeleteIds = [];\n let combineOneTimeServices = null;\n let combineadditionalOnetimeServices = null;\n if (details?.additional_one_time_services?.length) {\n defaultOneTimeServiceOptions =\n details?.additional_one_time_services?.filter((item) =>\n item?.name\n ? item?.name?.includes(tabName)\n : item?.service?.name?.includes(tabName),\n );\n if (defaultOneTimeServiceOptions?.length) {\n let combineadditionalOnetimeServicesNew = [];\n if (additionalOnetimeServices?.create?.length) {\n combineadditionalOnetimeServicesNew = [\n ...additionalOnetimeServices.create,\n ...defaultOneTimeServiceOptions,\n ];\n } else {\n combineadditionalOnetimeServicesNew = [\n ...defaultOneTimeServiceOptions,\n ];\n }\n\n defaultAmazonStorefrontDeleteIds = defaultOneTimeServiceOptions.map(\n (item) => item.id,\n );\n\n // check delete new code\n\n const uniqueDeleteResult =\n updatedFormData?.additional_one_time_services?.delete?.filter(\n (obj) => {\n return !defaultAmazonStorefrontDeleteIds?.some((obj2) => {\n return obj === obj2;\n });\n },\n );\n\n const getRemainingServices = findRemainingOneTimeServicesOnCheck();\n setFormData({\n ...formData,\n additional_one_time_services: [\n ...formData?.additional_one_time_services,\n ...defaultOneTimeServiceOptions,\n ...getRemainingServices,\n ],\n });\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: [...combineadditionalOnetimeServicesNew],\n });\n\n let remainingAmazonStorefrontCreatedData = [];\n if (updatedFormData?.additional_one_time_services?.create) {\n remainingAmazonStorefrontCreatedData = [\n ...updatedFormData?.additional_one_time_services?.create,\n ...defaultOneTimeServiceOptions,\n ...getRemainingServices,\n ];\n }\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: {\n create: [...remainingAmazonStorefrontCreatedData],\n delete: [...uniqueDeleteResult],\n },\n });\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: [...remainingAmazonStorefrontCreatedData],\n delete: [...uniqueDeleteResult],\n });\n }\n }\n if (!defaultOneTimeServiceOptions?.length) {\n if (oneTimeServiceSubTabOptions?.length) {\n const list = [];\n oneTimeServiceSubTabOptions.map((item) =>\n list.push({\n name: item.label,\n quantity: 0,\n service_id: item.value,\n contract_id: formData.id,\n }),\n );\n\n if (formData?.additional_one_time_services?.length) {\n combineOneTimeServices = [\n ...formData.additional_one_time_services,\n ...list,\n ];\n } else {\n combineOneTimeServices = [...list];\n }\n\n if (additionalOnetimeServices?.create?.length) {\n combineadditionalOnetimeServices = [\n ...additionalOnetimeServices.create,\n ...list,\n ];\n } else {\n combineadditionalOnetimeServices = [...list];\n }\n\n setFormData({\n ...formData,\n additional_one_time_services: [...combineOneTimeServices],\n });\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: [...combineadditionalOnetimeServices],\n });\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: {\n ...updatedFormData.additional_one_time_services,\n create: [...combineOneTimeServices],\n },\n });\n }\n }\n } else if (!event.target.checked) {\n showFooter(true);\n let oneTimeServiceTemp1;\n const deletedOneTimeServiceId = [];\n if (\n formData &&\n formData.additional_one_time_services &&\n formData.additional_one_time_services.length\n ) {\n oneTimeServiceTemp1 = formData.additional_one_time_services.filter(\n (service) =>\n service?.name\n ? !service?.name?.includes(tabName)\n : !service?.service?.name?.includes(tabName),\n );\n\n const oneTimeServiceTemp2 =\n formData?.additional_one_time_services?.filter((service) =>\n service?.name\n ? service?.name?.includes(tabName)\n : service?.service?.name?.includes(tabName),\n );\n if (oneTimeServiceTemp2?.length) {\n oneTimeServiceTemp2.map((service) =>\n deletedOneTimeServiceId.push(service.id),\n );\n }\n }\n\n setFormData({\n ...formData,\n additional_one_time_services: [...oneTimeServiceTemp1],\n });\n let tempDeletedServices = [];\n if (updatedFormData?.additional_one_time_services?.delete) {\n tempDeletedServices = [\n ...updatedFormData.additional_one_time_services?.delete,\n ];\n }\n\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: {\n ...updatedFormData.additional_one_time_services,\n create: [...oneTimeServiceTemp1],\n delete: [...tempDeletedServices, ...deletedOneTimeServiceId],\n },\n });\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: [...oneTimeServiceTemp1],\n delete: [\n ...additionalOnetimeServices.delete,\n ...deletedOneTimeServiceId,\n ],\n });\n }\n };\n\n return (\n <>\n
    \n \n \n {returnSubTabName(tabName)}\n {\n setShowOneTimeServicesSubTabs(event.target.checked);\n handleChangeOneTimeServicesSubTabs(event);\n }}\n defaultChecked={\n formData?.additional_one_time_services?.length &&\n formData?.additional_one_time_services?.find((item) =>\n item.name\n ? item.name.includes(tabName)\n : item.service?.name.includes(tabName),\n )\n }\n disabled={contractAddendumDetails?.notActive}\n />\n \n \n \n
    \n {showOneTimeServicesSubTabs && oneTimeServiceSubTabOptions?.length\n ? [displayOneTimeServicesSubTabs(), showError()]\n : ''}\n \n );\n}\n\nexport default AdditionalOneTimeServicesSubTabs;\n\nAdditionalOneTimeServicesSubTabs.defaultProps = {\n tabName: '',\n details: {},\n additionalOneTimeServicesLength: number,\n formData: {},\n setFormData: () => {},\n setUpdatedFormData: () => {},\n oneTimeService: {},\n contractAddendumDetails: {},\n updatedFormData: {},\n additionalOnetimeServices: {},\n setAdditionalOnetimeServices: () => {},\n showFooter: () => {},\n additionalOnetimeSerError: {},\n setAdditionalOnetimeSerError: () => {},\n updateAdditionalOnetimeServicesSelectedData: () => {},\n clearOneTimeQntyError: () => {},\n sectionError: {},\n updateStatementErrorValue: () => {},\n combinedOneTimeServices: [],\n filterNotIncludedOneTimeServices: () => {},\n};\n\nAdditionalOneTimeServicesSubTabs.propTypes = {\n tabName: string,\n details: shape({}),\n additionalOneTimeServicesLength: number,\n formData: shape({}),\n setFormData: shape({}),\n setUpdatedFormData: shape({}),\n oneTimeService: shape({}),\n contractAddendumDetails: shape({ notActive: bool }),\n updatedFormData: shape({}),\n additionalOnetimeServices: shape({\n create: arrayOf(shape({})),\n delete: arrayOf(string, shape({})),\n }),\n setAdditionalOnetimeServices: shape({}),\n showFooter: func,\n additionalOnetimeSerError: shape({}),\n setAdditionalOnetimeSerError: func,\n updateAdditionalOnetimeServicesSelectedData: func,\n clearOneTimeQntyError: func,\n sectionError: shape({}),\n updateStatementErrorValue: func,\n combinedOneTimeServices: arrayOf(shape({})),\n filterNotIncludedOneTimeServices: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport { Collapse } from 'react-collapse';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { string, bool, number, func, arrayOf, shape } from 'prop-types';\n\nimport { PlusIcon, MinusIcon } from '../../../../theme/images';\nimport { ErrorMsg, InputFormField, CheckBox } from '../../../../common';\nimport { checkDisabledConditionForServices } from '../../../../common/ConditionsForStatementOfWork';\nimport { oneTimeServicesTitle } from '../../../../constants';\nimport AdditionalOneTimeServicesSubTabs from './AdditionalOneTimeServicesSubTabs';\n\nfunction AdditionalOneTimeServices({\n setFormData,\n setAdditionalOnetimeServices,\n setUpdatedFormData,\n updatedFormData,\n onAddDiscount,\n formData,\n oneTimeService,\n handleChange,\n changeQuantity,\n additionalOnetimeSerError,\n showFooter,\n additionalOnetimeServices,\n clearOneTimeQntyError,\n updateAdditionalOnetimeServicesSelectedData,\n discountData,\n notIncludedOneTimeServices,\n setNotIncludedOneTimeServices,\n setAdditionalOnetimeSerError,\n details,\n updateStatementErrorValue,\n sectionError,\n contractAddendumDetails,\n combinedOneTimeServices,\n filterNotIncludedOneTimeServices,\n}) {\n const [openCollapse, setOpenCollapse] = useState({\n general: true,\n content: false,\n seo: false,\n creative: false,\n photography: false,\n });\n const additionalOneTimeServicesLength =\n formData?.additional_one_time_services?.length;\n\n const additionalOneTimeSerErrQuantityLength =\n additionalOnetimeSerError?.quantity?.length;\n\n useEffect(() => {\n for (const service of oneTimeService) {\n for (const title of oneTimeServicesTitle) {\n if (title.key === service.label) {\n service.title = title.title;\n }\n }\n }\n }, [oneTimeService]);\n\n const showDiscountLabel = () => {\n const discount =\n discountData?.length &&\n discountData.filter((item) => item.service_type === 'one time service');\n if (discount?.length && discount[0]?.type) {\n return 'Edit Discount';\n }\n return 'Add Discount';\n };\n\n const showAdditionalOneTimeServiceError = () => {\n if (formData?.contract_type?.toLowerCase()?.includes('one')) {\n return formData?.additional_one_time_services?.length ? (\n ``\n ) : (\n At least 1 one time service required\n );\n }\n return null;\n };\n\n const generateHTML = (oneTimeServiceData) => {\n return (\n \n
    \n \n \n {oneTimeServiceData.label}\n \n handleChange(\n event,\n 'additional_one_time_services',\n 'checkbox',\n oneTimeServiceData,\n )\n }\n defaultChecked={\n additionalOneTimeServicesLength &&\n formData.additional_one_time_services.find(\n (item) =>\n item.service?.id === oneTimeServiceData.value ||\n item.service_id === oneTimeServiceData.value,\n )\n }\n disabled={contractAddendumDetails?.notActive}\n />\n \n \n \n
    \n {additionalOneTimeServicesLength &&\n formData.additional_one_time_services.find((item) =>\n item.service_id\n ? item.service_id === oneTimeServiceData.value\n : item.service?.id === oneTimeServiceData.value,\n ) ? (\n <>\n
    \n {\n changeQuantity(oneTimeServiceData, 'minus');\n }}\n disabled={\n contractAddendumDetails?.notActive\n ? true\n : checkDisabledConditionForServices(\n formData?.additional_one_time_services,\n oneTimeServiceData?.value,\n 1,\n )\n }\n >\n {' '}\n \"\"\n \n\n \n item.service_id\n ? item.service_id === oneTimeServiceData.value\n : item.service?.id === oneTimeServiceData.value,\n ).quantity\n }\n id={oneTimeServiceData.value}\n onChange={(event) =>\n handleChange(\n event,\n 'additional_one_time_services',\n 'quantity',\n oneTimeServiceData,\n )\n }\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n return floatValue <= 100;\n }}\n disabled={contractAddendumDetails?.notActive}\n allowNegative={false}\n />\n\n {\n changeQuantity(oneTimeServiceData, 'add');\n }}\n disabled={\n contractAddendumDetails?.notActive\n ? true\n : checkDisabledConditionForServices(\n formData?.additional_one_time_services,\n oneTimeServiceData?.value,\n 100,\n )\n }\n >\n \"\"\n \n
    \n
    \n {additionalOneTimeSerErrQuantityLength &&\n additionalOnetimeSerError.quantity.find(\n (item) => item.service_id === oneTimeServiceData.value,\n ) ? (\n \n {additionalOneTimeSerErrQuantityLength &&\n additionalOnetimeSerError.quantity.find(\n (item) => item.service_id === oneTimeServiceData.value,\n ).error}\n \n ) : (\n ''\n )}\n
    \n \n ) : (\n ''\n )}\n
    \n );\n };\n\n const generateHeading = (key, label) => {\n return (\n \n setOpenCollapse({ ...openCollapse, [key]: !openCollapse[key] })\n }\n role=\"presentation\"\n className=\" row cursor\"\n >\n
    \n
    {label}
    \n
    \n
    \n \n
    \n
    \n );\n };\n\n const showOneTimeSubTabs = (tab) => {\n return (\n \n );\n };\n\n const generateCollapseHTML = (key, label) => {\n return (\n \n
    \n {oneTimeService\n ?.filter((op) => op.title === label)\n ?.map((oneTimeServiceData) => {\n if (\n oneTimeServiceData?.label?.includes('Amazon Storefront') ||\n oneTimeServiceData?.label?.includes('Walmart Storefront') ||\n oneTimeServiceData?.label?.includes('Infographics') ||\n oneTimeServiceData?.label?.includes('A+') ||\n oneTimeServiceData?.label?.includes('Enhanced')\n ) {\n if (\n oneTimeServiceData?.label?.includes(\n 'Amazon Storefront Home Page',\n )\n )\n return <>{showOneTimeSubTabs('Amazon Storefront')};\n if (\n oneTimeServiceData?.label?.includes(\n 'Walmart Storefront Home Page',\n )\n )\n return <>{showOneTimeSubTabs('Walmart Storefront')};\n if (\n oneTimeServiceData?.label?.includes('Infographics Original')\n )\n return <>{showOneTimeSubTabs('Infographics')};\n if (oneTimeServiceData?.label?.includes('A+ Similar'))\n return <>{showOneTimeSubTabs('A+')};\n if (oneTimeServiceData?.label?.includes('Enhanced Similar'))\n return <>{showOneTimeSubTabs('Enhanced')};\n return null;\n }\n\n return <> {generateHTML(oneTimeServiceData)};\n })}\n
    \n
    \n );\n };\n\n const displayOneTimeServices = () => {\n return (\n
  • \n \n \n onAddDiscount('one time service')}\n >\n {showDiscountLabel()}\n \n {showAdditionalOneTimeServiceError()}\n \n <>\n {generateHeading('general', 'General')}\n {generateCollapseHTML('general', 'General')}\n
    \n \n <>\n {generateHeading('content', 'Content')}\n {generateCollapseHTML('content', 'Content')}\n
    \n \n <>\n {generateHeading('seo', 'Search Engine Optimization')}\n {generateCollapseHTML('seo', 'Search Engine Optimization')}\n
    \n \n <>\n {generateHeading('creative', 'Creative Add-Ons')}\n {generateCollapseHTML('creative', 'Creative Add-Ons')}\n
    \n \n {/* <>\n {generateHeading('photography', 'Photography')}\n {generateCollapseHTML('photography', 'Photography')}\n
    \n */}\n
  • \n );\n };\n\n return
    {displayOneTimeServices()}
    ;\n}\n\nexport default AdditionalOneTimeServices;\n\nAdditionalOneTimeServices.defaultProps = {\n onAddDiscount: () => {},\n formData: {},\n updatedFormData: {},\n setUpdatedFormData: () => {},\n setFormData: () => {},\n oneTimeService: [],\n handleChange: () => {},\n changeQuantity: () => {},\n additionalOnetimeSerError: {},\n showFooter: () => {},\n additionalOnetimeServices: {},\n clearOneTimeQntyError: () => {},\n updateAdditionalOnetimeServicesSelectedData: () => {},\n discountData: [],\n setAdditionalOnetimeServices: () => {},\n notIncludedOneTimeServices: [],\n setNotIncludedOneTimeServices: () => {},\n setAdditionalOnetimeSerError: () => {},\n details: {},\n updateStatementErrorValue: () => {},\n sectionError: {},\n contractAddendumDetails: {},\n combinedOneTimeServices: [],\n filterNotIncludedOneTimeServices: () => {},\n};\n\nAdditionalOneTimeServices.propTypes = {\n onAddDiscount: func,\n formData: shape({}),\n updatedFormData: shape({}),\n setUpdatedFormData: func,\n setFormData: func,\n oneTimeService: arrayOf(shape({})),\n handleChange: func,\n changeQuantity: func,\n additionalOnetimeSerError: shape({\n quantity: number,\n custom_amazon_store_price: number,\n }),\n showFooter: func,\n additionalOnetimeServices: shape({\n create: arrayOf(shape({})),\n delete: arrayOf(string, shape({})),\n }),\n clearOneTimeQntyError: func,\n updateAdditionalOnetimeServicesSelectedData: func,\n discountData: arrayOf(shape()),\n setAdditionalOnetimeServices: func,\n notIncludedOneTimeServices: arrayOf(shape({})),\n setNotIncludedOneTimeServices: func,\n setAdditionalOnetimeSerError: func,\n details: shape({}),\n updateStatementErrorValue: func,\n sectionError: shape({}),\n contractAddendumDetails: shape({ notActive: bool }),\n combinedOneTimeServices: arrayOf(shape({})),\n filterNotIncludedOneTimeServices: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React from 'react';\n\nimport { Collapse } from 'react-collapse';\nimport {\n string,\n bool,\n number,\n func,\n oneOfType,\n arrayOf,\n shape,\n object,\n objectOf,\n} from 'prop-types';\n\nimport AdditionalOneTimeServices from '../StatementOfWork/AdditionalOneTimeServices';\nimport { AgreementDetails } from '../../../../constants';\nimport { ServiceAgreementIcon } from '../../../../theme/images';\nimport { Button, InputFormField } from '../../../../common';\n\nfunction ServiceAgreement({\n setFormData,\n setAdditionalOnetimeServices,\n updatedFormData,\n setUpdatedFormData,\n executeScroll,\n setOpenCollapse,\n openCollapse,\n agreementErrCount,\n statementErrCount,\n renderCollapseBtnErrorHtml,\n loader,\n generateHTML,\n displayError,\n showRightTick,\n formData,\n nextStep,\n onAddDiscount,\n additionalMonthlySerError,\n oneTimeService,\n handleChange,\n changeQuantity,\n additionalOnetimeSerError,\n setShowAmazonPlanDropdown,\n amazonService,\n showAmazonPlanDropdown,\n AmazonStoreOptions,\n amazonStoreCustom,\n setAmazonStoreCustom,\n showFooter,\n additionalOnetimeServices,\n clearOneTimeQntyError,\n updateAdditionalOnetimeServicesSelectedData,\n discountData,\n servicesFees,\n selectedCurrency,\n notIncludedOneTimeServices,\n setNotIncludedOneTimeServices,\n showAmazonStorefrontDropdown,\n setShowAmazonStorefrontDropdown,\n setAdditionalOnetimeSerError,\n details,\n updateStatementErrorValue,\n sectionError,\n contractAddendumDetails,\n}) {\n const contractType = formData?.contract_type;\n const additionalOneTimeServicesLength =\n formData?.additional_one_time_services?.length;\n\n let serviceAgreementArray;\n\n if (formData?.customer_id?.pipeline === 'europe') {\n let agreementWithCurrencyDetails = [];\n\n agreementWithCurrencyDetails = [...AgreementDetails];\n agreementWithCurrencyDetails.splice(3, 0, {\n key: 'currency',\n label: 'Agreement Currency',\n type: 'choice',\n placeholder: 'Select Agreement Currency',\n isMandatory: true,\n part: 'agreement',\n });\n serviceAgreementArray = [...agreementWithCurrencyDetails];\n } else {\n serviceAgreementArray = [...AgreementDetails];\n }\n\n return (\n <>\n {\n if (contractAddendumDetails?.notActive)\n executeScroll('draft-addendum');\n else executeScroll('agreement');\n setOpenCollapse({ agreement: !openCollapse.agreement });\n }}\n >\n \"pdf\"\n\n \n {contractType?.toLowerCase()?.includes('one') ? (\n <>\n One Time Service Agreement\n {renderCollapseBtnErrorHtml(\n 'isOneTimeService',\n agreementErrCount || statementErrCount,\n openCollapse.agreement,\n 'service_agreement',\n )}\n \n ) : (\n <>\n Service Agreement\n {renderCollapseBtnErrorHtml(\n false,\n agreementErrCount,\n openCollapse.agreement,\n 'service_agreement',\n )}\n \n )}\n \n\n
    \n
    \n \n {loader ? null : (\n
      \n {serviceAgreementArray.map((item) =>\n item.key !== 'contract_address' ? (\n \n {item.key === 'length' &&\n contractType === 'one time' ? null : item?.type ===\n 'checkbox' ? (\n item?.key === 'change_agreement_start_date' &&\n !contractAddendumDetails?.notActive ? (\n
    • {generateHTML(item)}
    • \n ) : item?.key === 'change_addendum_start_date' &&\n contractAddendumDetails?.notActive ? (\n
    • \n {generateHTML(item)}\n \n If the ADDENDUM EFFECTIVITY DATE entered is ON or\n BEFORE the signed day of the original contract,\n this will automatically be included in the current\n month's retainer invoice since invoice has not\n yet been issued to the BP.\n \n
      \n
      \n \n If the ADDENDUM EFFECTIVITY DATE entered is AFTER the\n signed day of the original contract, please\n reach out to Finance and Ops team for any retainer\n billing adjustment as this month's retainer\n invoice has already been issued to the BP.\n \n
    • \n ) : null\n ) : item?.key === 'addendum_start_date' &&\n contractAddendumDetails?.notActive ? (\n
    • \n \n \n {generateHTML(item)}\n\n
      {item?.message}
      \n
      \n
    • \n ) : item?.key !== 'addendum_start_date' ? (\n
    • \n \n \n {generateHTML(item)}\n {displayError(item)}\n\n {item?.key === 'start_date' &&\n !contractAddendumDetails?.notActive &&\n !formData?.change_agreement_start_date ? (\n
      {item?.message}
      \n ) : null}\n
      \n
    • \n ) : null}\n
      \n ) : (\n \n
    • \n \n \n {item.sections.map((subFields) => (\n \n \n {displayError(subFields)}\n \n ))}\n \n
    • \n {contractType?.toLowerCase()?.includes('one') &&\n !formData?.draft_from ? (\n <>\n \n \n ) : (\n ''\n )}\n
      \n ),\n )}\n\n
    • \n item.name === 'Amazon Store Package',\n ) &&\n contractType?.toLowerCase()?.includes('one'))\n }\n onClick={() =>\n nextStep(\n contractType?.toLowerCase()?.includes('one')\n ? 'addendum'\n : contractType?.toLowerCase()?.includes('dsp')\n ? 'dspAddendum'\n : contractType?.toLowerCase()?.includes('recurring')\n ? 'feeStructure'\n : 'statement',\n )\n }\n >\n Proceed to Next Section\n \n
    • \n
    \n )}\n
    \n \n );\n}\n\nexport default ServiceAgreement;\n\nServiceAgreement.defaultProps = {\n setFormData: () => {},\n setAdditionalOnetimeServices: () => {},\n updatedFormData: () => {},\n setUpdatedFormData: () => {},\n executeScroll: () => {},\n setOpenCollapse: () => {},\n openCollapse: {},\n agreementErrCount: 0,\n statementErrCount: 0,\n renderCollapseBtnErrorHtml: () => {},\n loader: false,\n generateHTML: () => {},\n displayError: () => {},\n showRightTick: () => {},\n formData: {},\n nextStep: () => {},\n onAddDiscount: () => {},\n additionalMonthlySerError: {},\n oneTimeService: [],\n handleChange: () => {},\n changeQuantity: () => {},\n additionalOnetimeSerError: {},\n setShowAmazonPlanDropdown: () => {},\n amazonService: {},\n showAmazonPlanDropdown: false,\n AmazonStoreOptions: [],\n amazonStoreCustom: false,\n setAmazonStoreCustom: () => {},\n showFooter: () => {},\n additionalOnetimeServices: {},\n clearOneTimeQntyError: () => {},\n updateAdditionalOnetimeServicesSelectedData: () => {},\n discountData: [],\n servicesFees: [],\n selectedCurrency: '$ (USD)',\n notIncludedOneTimeServices: [],\n setNotIncludedOneTimeServices: () => {},\n showAmazonStorefrontDropdown: false,\n setShowAmazonStorefrontDropdown: () => {},\n setAdditionalOnetimeSerError: () => {},\n details: {},\n updateStatementErrorValue: () => {},\n sectionError: {},\n contractAddendumDetails: {},\n};\n\nServiceAgreement.propTypes = {\n setFormData: func,\n setAdditionalOnetimeServices: func,\n updatedFormData: {},\n setUpdatedFormData: func,\n executeScroll: func,\n setOpenCollapse: func,\n openCollapse: shape({\n agreement: bool,\n statement: bool,\n addendum: bool,\n dspAddendum: bool,\n }),\n agreementErrCount: number,\n statementErrCount: number,\n renderCollapseBtnErrorHtml: func,\n loader: bool,\n generateHTML: func,\n displayError: func,\n showRightTick: func,\n formData: shape({\n additional_one_time_services: arrayOf(shape({})),\n draft_from: oneOfType([string, objectOf(object)]),\n }),\n nextStep: func,\n onAddDiscount: func,\n additionalMonthlySerError: oneOfType([string, object]),\n oneTimeService: arrayOf(shape({})),\n handleChange: func,\n changeQuantity: func,\n additionalOnetimeSerError: shape({\n quantity: number,\n custom_amazon_store_price: number,\n }),\n setShowAmazonPlanDropdown: func,\n amazonService: shape({}),\n showAmazonPlanDropdown: bool,\n AmazonStoreOptions: arrayOf(shape({})),\n amazonStoreCustom: bool,\n setAmazonStoreCustom: func,\n showFooter: func,\n additionalOnetimeServices: shape({\n create: arrayOf(shape({})),\n delete: arrayOf(string, shape({})),\n }),\n clearOneTimeQntyError: func,\n updateAdditionalOnetimeServicesSelectedData: func,\n discountData: arrayOf(shape({})),\n servicesFees: arrayOf(shape({})),\n selectedCurrency: string,\n notIncludedOneTimeServices: arrayOf(shape({})),\n setNotIncludedOneTimeServices: func,\n showAmazonStorefrontDropdown: bool,\n setShowAmazonStorefrontDropdown: func,\n setAdditionalOnetimeSerError: func,\n details: shape({}),\n updateStatementErrorValue: func,\n sectionError: shape({}),\n contractAddendumDetails: shape({}),\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { arrayOf, func, shape, string } from 'prop-types';\n\nimport { CheckBox, ModalRadioCheck } from '../../../../common';\n\nexport default function MonthlyServicesSubTabs({\n tabName,\n accountType,\n monthlyService,\n formData,\n setFormData,\n parentServiceName,\n contractAddendumDetails,\n updatedFormData,\n setUpdatedFormData,\n originalData,\n additionalMonthlyServices,\n setMonthlyAdditionalServices,\n showFooter,\n fetchUncommonOptions,\n}) {\n const [showSubTabs, setShowSubTabs] = useState({\n isOpen: false,\n account_type: null,\n });\n const [subTabOptions, setSubTabOptions] = useState(null);\n\n const parentServiceNameForDependencyArray = formData?.[parentServiceName];\n\n useEffect(() => {\n // If the services are present in the formData then set that sub tab option true.\n if (formData?.[parentServiceName]?.length && tabName) {\n const includesSubTabs = formData?.[parentServiceName]?.filter(\n (service) =>\n (service?.name?.includes(tabName) ||\n service?.service?.name?.includes(tabName)) &&\n service?.account_type === accountType,\n );\n if (includesSubTabs?.length) {\n setShowSubTabs({\n isOpen: true,\n account_type: accountType,\n });\n }\n }\n\n // Seperate Sub tabs form services.\n if (monthlyService?.length && tabName) {\n const result = monthlyService?.filter((service) =>\n service?.name?.includes(tabName),\n );\n setSubTabOptions(result);\n }\n }, [\n formData,\n parentServiceNameForDependencyArray,\n monthlyService,\n tabName,\n parentServiceName,\n accountType,\n ]);\n\n useEffect(() => {\n // function to show not added services in contract\n fetchUncommonOptions(\n monthlyService,\n additionalMonthlyServices.create,\n 'monthly_service',\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [monthlyService, additionalMonthlyServices.create]);\n\n const handleServices = (event, service, type) => {\n showFooter(true);\n if (type === 'radio') {\n const createService = {\n account_type: accountType,\n name: service?.name,\n service_id: service?.id,\n };\n // Based on contract/addendum add contract_id OR contract_addendum_id\n if (contractAddendumDetails?.notActive) {\n createService.contract_addendum_id = contractAddendumDetails?.id;\n } else {\n createService.contract_id = formData?.id;\n }\n\n // Set service on formData\n if (\n !formData?.[parentServiceName]?.find(\n (item) =>\n (item?.name\n ? item?.name?.includes(tabName)\n : item?.service?.name?.includes(tabName)) &&\n item?.account_type?.includes(accountType),\n )\n ) {\n if (formData?.[parentServiceName]) {\n setFormData({\n ...formData,\n [parentServiceName]: [\n ...formData?.[parentServiceName],\n createService,\n ],\n });\n } else {\n setFormData({\n ...formData,\n [parentServiceName]: [createService],\n });\n }\n } else {\n // If service is not previously added in formData\n // Remove previously added service and add a new service\n const filteredServices = formData?.[parentServiceName]?.filter((item) =>\n item?.name?.includes(tabName) ||\n item?.service?.name?.includes(tabName)\n ? item?.account_type !== accountType\n : item,\n );\n if (filteredServices?.length) {\n setFormData({\n ...formData,\n [parentServiceName]: [...filteredServices, createService],\n });\n } else {\n setFormData({\n ...formData,\n [parentServiceName]: [createService],\n });\n }\n }\n\n // Set service in updatedFormData and setMonthlyAdditionalServices\n if (\n !additionalMonthlyServices?.create?.find(\n (item) =>\n (item?.name\n ? item?.name?.includes(tabName)\n : item?.service?.name?.includes(tabName)) &&\n item?.account_type?.includes(accountType),\n )\n ) {\n if (additionalMonthlyServices?.create?.length) {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...additionalMonthlyServices,\n create: [...additionalMonthlyServices?.create, createService],\n },\n });\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: [...additionalMonthlyServices.create, createService],\n });\n } else {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...additionalMonthlyServices,\n create: [createService],\n },\n });\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: [createService],\n });\n }\n } else {\n // Remove previously added service and add a new service\n const filteredServices = additionalMonthlyServices?.create?.filter(\n (item) =>\n item?.name?.includes(tabName) ||\n item?.service?.name?.includes(tabName)\n ? item?.account_type !== accountType\n : item,\n );\n if (filteredServices?.length) {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...updatedFormData[parentServiceName],\n create: [...filteredServices, createService],\n },\n });\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: [...filteredServices, createService],\n });\n } else {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...updatedFormData[parentServiceName],\n create: [createService],\n },\n });\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: [createService],\n });\n }\n }\n }\n };\n\n const handleChangeSubTabs = (event) => {\n showFooter(true);\n if (event.target.checked) {\n // Get first subtab name\n const firstSubTabService = subTabOptions?.find(\n (item) => item.name === 'Inventory Management Standard Service',\n );\n\n const createService = {\n account_type: accountType,\n name: firstSubTabService?.name,\n service_id: firstSubTabService?.id,\n };\n // Based on contract/addendum add contract_id OR contract_addendum_id\n if (contractAddendumDetails?.notActive) {\n createService.contract_addendum_id = contractAddendumDetails?.id;\n } else {\n createService.contract_id = formData?.id;\n }\n const serviceInOriginalData = originalData?.[parentServiceName]?.filter(\n (item) =>\n (item?.name?.includes(tabName) ||\n item?.service?.name?.includes(tabName)) &&\n item?.account_type === accountType,\n );\n\n // if services is available in original data then add else add new service\n if (serviceInOriginalData?.length) {\n // check and set FormData\n if (formData?.[parentServiceName]?.length) {\n setFormData({\n ...formData,\n [parentServiceName]: [\n ...formData[parentServiceName],\n ...serviceInOriginalData,\n ],\n });\n } else {\n setFormData({\n ...formData,\n [parentServiceName]: [...serviceInOriginalData],\n });\n }\n // check and set Updated formData\n if (updatedFormData?.[parentServiceName]?.create?.length) {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...updatedFormData[parentServiceName],\n create: [\n ...updatedFormData[parentServiceName].create,\n ...serviceInOriginalData,\n ],\n delete: updatedFormData[parentServiceName]?.delete?.filter(\n (item) => item !== serviceInOriginalData[0].id,\n ),\n },\n });\n } else {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...updatedFormData[parentServiceName],\n create: [...serviceInOriginalData],\n delete: updatedFormData[parentServiceName]?.delete.filter(\n (item) => item !== serviceInOriginalData[0].id,\n ),\n },\n });\n }\n // check and set monthly additional service\n if (additionalMonthlyServices?.create?.length) {\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: [\n ...additionalMonthlyServices.create,\n ...serviceInOriginalData,\n ],\n delete: additionalMonthlyServices.delete.filter(\n (item) => item !== serviceInOriginalData[0].id,\n ),\n });\n } else {\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: [...serviceInOriginalData],\n delete: additionalMonthlyServices.delete.filter(\n (item) => item !== serviceInOriginalData[0].id,\n ),\n });\n }\n } else {\n // else add new service\n // check and set FormData\n if (formData?.[parentServiceName]?.length) {\n setFormData({\n ...formData,\n [parentServiceName]: [\n ...formData[parentServiceName],\n createService,\n ],\n });\n } else {\n setFormData({\n ...formData,\n [parentServiceName]: [createService],\n });\n }\n // check and set Updated formData\n if (updatedFormData?.[parentServiceName]?.create?.length) {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...updatedFormData[parentServiceName],\n create: [\n ...updatedFormData[parentServiceName].create,\n createService,\n ],\n },\n });\n } else {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...updatedFormData[parentServiceName],\n create: [createService],\n },\n });\n }\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: [...additionalMonthlyServices.create, createService],\n });\n }\n } else {\n // if checkbox is unckeck\n setFormData({\n ...formData,\n [parentServiceName]: formData?.[parentServiceName]?.filter(\n (item) =>\n !(\n (item?.name?.includes(tabName) ||\n item?.service?.name?.includes(tabName)) &&\n item?.account_type === accountType\n ),\n ),\n });\n\n const filterCreateServiceOfUpdatedFormData =\n additionalMonthlyServices?.create?.filter(\n (item) =>\n !(\n (item?.name?.includes(tabName) ||\n item?.service?.name?.includes(tabName)) &&\n item?.account_type === accountType\n ),\n );\n\n const deleteIdOfUpdatedFormData = originalData?.[parentServiceName]?.find(\n (item) =>\n item?.service?.name?.includes(tabName) &&\n item?.account_type === accountType\n ? item?.id\n : null,\n )?.id;\n\n if (updatedFormData?.[parentServiceName]?.delete?.length) {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n create: filterCreateServiceOfUpdatedFormData?.length\n ? filterCreateServiceOfUpdatedFormData\n : [],\n delete: [\n ...updatedFormData[parentServiceName].delete,\n deleteIdOfUpdatedFormData,\n ],\n },\n });\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: filterCreateServiceOfUpdatedFormData?.length\n ? filterCreateServiceOfUpdatedFormData\n : [],\n delete: [\n ...additionalMonthlyServices.delete,\n deleteIdOfUpdatedFormData,\n ],\n });\n } else {\n setUpdatedFormData({\n ...updatedFormData,\n [parentServiceName]: {\n ...updatedFormData?.[parentServiceName],\n create: filterCreateServiceOfUpdatedFormData?.length\n ? filterCreateServiceOfUpdatedFormData\n : [],\n delete: [deleteIdOfUpdatedFormData],\n },\n });\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n create: filterCreateServiceOfUpdatedFormData?.length\n ? filterCreateServiceOfUpdatedFormData\n : [],\n delete: [deleteIdOfUpdatedFormData],\n });\n }\n }\n };\n\n const findSavedService = () => {\n const savedService = formData?.[parentServiceName]?.find(\n (item) =>\n (item?.name?.includes(tabName) ||\n item?.service?.name?.includes(tabName)) &&\n item?.account_type === accountType,\n );\n return savedService?.name || savedService?.service?.name;\n };\n\n // Show subtabs of the service\n const displaySubTabs = () => {\n return subTabOptions?.map((service) => {\n return (\n
    \n \n \n {service?.name?.replace(tabName, '')}\n\n handleServices(event, service, 'radio')}\n defaultChecked={service?.name === findSavedService()}\n />\n \n \n \n
    \n );\n });\n };\n\n return (\n <>\n
    \n \n \n {tabName}\n {\n setShowSubTabs({\n isOpen: event.target.checked,\n account_type: accountType,\n });\n handleChangeSubTabs(event);\n }}\n defaultChecked={\n formData?.[parentServiceName]?.length &&\n formData?.[parentServiceName]?.find(\n (item) =>\n (item?.name?.includes(tabName) ||\n item?.service?.name?.includes(tabName)) &&\n item?.account_type === accountType,\n )\n }\n />\n \n \n \n
    \n {subTabOptions?.length &&\n showSubTabs?.isOpen &&\n showSubTabs?.account_type === accountType\n ? [displaySubTabs()]\n : ''}\n \n );\n}\n\nMonthlyServicesSubTabs.defaultProps = {\n tabName: '',\n accountType: '',\n monthlyService: [],\n formData: {},\n setFormData: () => {},\n parentServiceName: '',\n contractAddendumDetails: {},\n updatedFormData: {},\n setUpdatedFormData: () => {},\n originalData: {},\n additionalMonthlyServices: {},\n setMonthlyAdditionalServices: () => {},\n showFooter: () => {},\n fetchUncommonOptions: () => {},\n};\n\nMonthlyServicesSubTabs.propTypes = {\n tabName: string,\n accountType: string,\n monthlyService: arrayOf(shape({})),\n formData: shape({}),\n setFormData: func,\n parentServiceName: string,\n contractAddendumDetails: shape({}),\n updatedFormData: shape({}),\n setUpdatedFormData: func,\n originalData: shape({}),\n additionalMonthlyServices: shape({}),\n setMonthlyAdditionalServices: func,\n showFooter: func,\n fetchUncommonOptions: func,\n};\n","import React from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport NumberFormat from 'react-number-format';\nimport { number, func, arrayOf, shape, oneOfType, string } from 'prop-types';\n\nimport { InputFormField, CheckBox } from '../../../../common';\nimport { PlusIcon, MinusIcon } from '../../../../theme/images';\nimport { checkDisabledConditionForServices } from '../../../../common/ConditionsForStatementOfWork';\nimport MonthlyServicesSubTabs from './MonthlyServicesSubTabs';\n\nfunction AdditionalMonthlyServices({\n onAddDiscount,\n formData,\n monthlyService,\n accountType,\n showFooter,\n setShowCollpase,\n showSection,\n originalData,\n additionalMonthlyServices,\n setFormData,\n updateAdditionalMonthlyServices,\n setMonthlyAdditionalServices,\n fetchUncommonOptions,\n discountData,\n updatedFormData,\n setUpdatedFormData,\n contractAddendumDetails,\n addendumDetails,\n}) {\n const monthlyServiceEnhancedOrAPlus =\n formData?.channel?.value === 'amazon' ? 'A+ Content' : 'Enhanced Content';\n\n const handleChange = (event, key, type, val) => {\n showFooter(true);\n\n const comparableArray = contractAddendumDetails?.notActive\n ? addendumDetails\n : originalData;\n\n if (key === 'additional_monthly_services') {\n const itemInFormData =\n comparableArray?.additional_monthly_services?.length &&\n comparableArray.additional_monthly_services?.find(\n (item) => item && item?.service && item?.service?.id === val?.id,\n );\n if (type === 'quantity') {\n const selectedItem = formData?.additional_monthly_services?.filter(\n (item) => {\n if (\n item.name\n ? item.name === event.target.name\n : item.service.name === event.target.name\n ) {\n if (event.target.value) {\n item.quantity = parseInt(event.target.value, 10);\n } else {\n item.quantity = 1;\n }\n }\n return item;\n },\n );\n\n if (selectedItem) {\n setFormData({\n ...formData,\n additional_monthly_services: selectedItem,\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n additional_monthly_services: {\n ...updatedFormData?.additional_monthly_services,\n create: selectedItem,\n },\n });\n }\n }\n\n // if item checked\n else if (event.target.checked) {\n if (event.target.name === 'DSP Advertising') {\n setShowCollpase({ ...showSection, dspAddendum: true });\n }\n // checked whether checked item present in newly created list\n if (\n additionalMonthlyServices?.create?.length &&\n additionalMonthlyServices.create.find((item) =>\n item?.service_id\n ? item?.service_id === val?.id\n : item?.service?.id === val?.id,\n )\n ) {\n // if checked item is already present in newly created list then don't do anything\n } else {\n // if checked item not found in newly created list then again check whether it is present in original formData variable because if it is found in formData then we need to add that found item in newly created list bcoz we need id and all of that item to push in newly created list.\n // here we check whether checked item present in orginal formDAta list then add that found item in newly created list\n if (itemInFormData) {\n additionalMonthlyServices.create.push(itemInFormData);\n const list = formData.additional_monthly_services;\n list.push(itemInFormData);\n setFormData({\n ...formData,\n additional_monthly_services: list,\n });\n\n updateAdditionalMonthlyServices();\n }\n // else we create dict as BE required for new item and we push that in newly created list\n else {\n const newData = {\n name: event.target.name,\n service_id: val?.id,\n contract_id: originalData?.id,\n account_type: accountType,\n };\n\n const addendumNewData = {\n name: event.target.name,\n service_id: val?.id,\n contract_addendum_id: contractAddendumDetails?.id,\n account_type: accountType,\n };\n\n if (event.target.name === monthlyServiceEnhancedOrAPlus) {\n newData.quantity = 1;\n addendumNewData.quantity = 1;\n }\n additionalMonthlyServices.create.push(\n contractAddendumDetails?.notActive ? addendumNewData : newData,\n );\n\n let list = formData.additional_monthly_services;\n if (!list) {\n list = [];\n }\n list.push(\n contractAddendumDetails?.notActive ? addendumNewData : newData,\n );\n setFormData({\n ...formData,\n additional_monthly_services: list,\n });\n\n updateAdditionalMonthlyServices();\n }\n // here we fnally update state variable\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n });\n }\n // suppose checked item present in original formData then we have to remove its id from newly created delete list.\n if (itemInFormData) {\n const updatedDeleteList = additionalMonthlyServices.delete?.filter(\n (item) => item !== itemInFormData.id,\n );\n additionalMonthlyServices.delete = updatedDeleteList;\n }\n\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n });\n\n fetchUncommonOptions(\n monthlyService,\n additionalMonthlyServices.create,\n 'monthly_service',\n );\n }\n // if item unchecked or removed\n else {\n // if unchecked item found in original list then add its id to newly created delte list\n if (itemInFormData) {\n additionalMonthlyServices.delete.push(itemInFormData.id);\n }\n // now we filter newly created list with removed unchecked item from it\n const updatedCreateList = additionalMonthlyServices.create?.filter(\n (item) =>\n item?.service_id\n ? item?.service_id !== val?.id\n : item?.service?.id !== val?.id,\n );\n\n additionalMonthlyServices.create = updatedCreateList;\n\n const list = formData.additional_monthly_services;\n const deletedUncheckedItemList = list?.filter((item) =>\n item?.service_id\n ? item?.service_id !== val?.id\n : item?.service?.id !== val?.id,\n );\n\n setFormData({\n ...formData,\n additional_monthly_services: deletedUncheckedItemList,\n });\n updateAdditionalMonthlyServices();\n setMonthlyAdditionalServices({\n ...additionalMonthlyServices,\n });\n\n if (event.target.name === 'DSP Advertising') {\n if (\n additionalMonthlyServices?.create?.length &&\n additionalMonthlyServices.create.find((item) =>\n item?.name\n ? item?.name === 'DSP Advertising'\n : item?.service?.name === 'DSP Advertising',\n )\n ) {\n //\n } else {\n setShowCollpase({ ...showSection, dspAddendum: false });\n }\n }\n fetchUncommonOptions(\n monthlyService,\n additionalMonthlyServices.create,\n 'monthly_service',\n );\n }\n }\n };\n\n const showDiscountLabel = () => {\n const discount =\n discountData?.length &&\n discountData?.filter(\n (item) =>\n item?.service_type === 'monthly service' &&\n item?.account_type === accountType,\n );\n if (discount?.length && discount[0]?.type) {\n return 'Edit Discount';\n }\n return 'Add Discount';\n };\n const changeQuantity = (serviceData, flag) => {\n showFooter(true);\n\n if (formData?.additional_monthly_services?.length) {\n const changedService = formData?.additional_monthly_services?.filter(\n (item) => {\n if (\n item.service_id\n ? item.service_id === serviceData.id\n : item.service?.id === serviceData.id\n ) {\n let quantity = 0;\n if (item.quantity) {\n quantity = parseInt(item.quantity, 10);\n }\n if (flag === 'add') {\n if (quantity < 999) {\n quantity += 1;\n item.quantity = quantity;\n }\n }\n if (flag === 'minus') {\n if (quantity > 1) {\n quantity -= 1;\n item.quantity = quantity;\n }\n }\n }\n return item;\n },\n );\n\n setFormData({\n ...formData,\n additional_monthly_services: changedService,\n });\n setUpdatedFormData({\n ...updatedFormData,\n additional_monthly_services: {\n ...updatedFormData?.additional_monthly_services,\n create: changedService,\n },\n });\n }\n };\n\n const checkDspAdvertisingDisabledCondition = (serviceData) => {\n if (\n originalData?.additional_monthly_services?.length &&\n originalData?.additional_monthly_services?.find(\n (item) =>\n item?.service?.id === serviceData?.id ||\n item?.service_id === serviceData?.id,\n )\n ) {\n return false;\n }\n if (\n contractAddendumDetails?.notActive &&\n serviceData?.name === 'DSP Advertising'\n ) {\n return !formData?.can_add_dsp_service;\n }\n return false;\n };\n\n return (\n <>\n \n \n onAddDiscount('monthly service', accountType)}\n >\n {showDiscountLabel()}\n \n \n
    \n {monthlyService &&\n monthlyService\n ?.filter((item) => !item?.name?.includes('Inventory Management'))\n ?.map((serviceData) => (\n \n \n \n \n {serviceData?.name}\n \n handleChange(\n event,\n 'additional_monthly_services',\n 'checkbox',\n serviceData,\n )\n }\n defaultChecked={\n formData?.additional_monthly_services?.length &&\n formData?.additional_monthly_services?.find(\n (item) =>\n item?.service?.id === serviceData?.id ||\n item?.service_id === serviceData?.id,\n )\n }\n />\n \n \n\n {contractAddendumDetails?.notActive &&\n serviceData?.name === 'DSP Advertising' ? (\n \n ) : null}\n \n
    \n {serviceData?.name === monthlyServiceEnhancedOrAPlus &&\n formData?.additional_monthly_services?.find(\n (item) =>\n item?.service?.id === serviceData?.id ||\n item?.service_id === serviceData?.id,\n ) ? (\n <>\n
    \n {\n changeQuantity(serviceData, 'minus');\n }}\n disabled={checkDisabledConditionForServices(\n formData?.additional_monthly_services,\n serviceData?.id,\n 1,\n )}\n >\n {' '}\n \"\"\n \n\n \n item.service_id\n ? item.service_id === serviceData.id\n : item.service?.id === serviceData.id,\n )?.quantity || 1\n }\n id={serviceData.id}\n onChange={(event) =>\n handleChange(\n event,\n 'additional_monthly_services',\n 'quantity',\n serviceData,\n )\n }\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n return floatValue <= 999;\n }}\n allowNegative={false}\n />\n\n \n item?.service_id\n ? item?.service_id === serviceData?.id\n : item?.service?.id === serviceData?.id,\n )?.quantity\n ? parseInt(\n formData?.additional_monthly_services?.find(\n (item) =>\n item.service_id\n ? item?.service_id === serviceData?.id\n : item?.service?.id === serviceData?.id,\n )?.quantity,\n 10,\n ) === 999\n : false\n }\n onClick={() => {\n changeQuantity(serviceData, 'add');\n }}\n >\n \"\"\n \n
    \n \n ) : (\n ''\n )}\n {serviceData?.name === 'Logistics Management' ? (\n \n ) : (\n ''\n )}\n \n ))}\n \n \n );\n}\n\nexport default AdditionalMonthlyServices;\nAdditionalMonthlyServices.defaultProps = {\n onAddDiscount: () => {},\n formData: {},\n monthlyService: [],\n accountType: '',\n showFooter: () => {},\n setShowCollpase: () => {},\n showSection: () => {},\n originalData: {},\n additionalMonthlyServices: {},\n setFormData: () => {},\n updateAdditionalMonthlyServices: () => {},\n setMonthlyAdditionalServices: () => {},\n fetchUncommonOptions: () => {},\n discountData: [],\n updatedFormData: {},\n setUpdatedFormData: () => {},\n contractAddendumDetails: {},\n addendumDetails: {},\n};\n\nAdditionalMonthlyServices.propTypes = {\n onAddDiscount: func,\n formData: shape({\n additional_monthly_services: arrayOf(shape({})),\n monthly_discount_amount: oneOfType([string, number]),\n monthly_discount_type: oneOfType([string, number]),\n }),\n monthlyService: arrayOf(shape({})),\n accountType: string,\n showFooter: func,\n setShowCollpase: func,\n showSection: func,\n originalData: shape({}),\n additionalMonthlyServices: shape({}),\n setFormData: () => {},\n updateAdditionalMonthlyServices: () => {},\n setMonthlyAdditionalServices: () => {},\n fetchUncommonOptions: () => {},\n discountData: arrayOf(shape()),\n updatedFormData: shape({}),\n setUpdatedFormData: func,\n contractAddendumDetails: shape({}),\n addendumDetails: shape({}),\n};\n","/* eslint-disable react/prop-types */\nimport React from 'react';\n\nimport Select from 'react-select';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, func, string, oneOfType, number } from 'prop-types';\n\nimport {\n CheckBox,\n ContractInputSelect,\n DropdownIndicator,\n} from '../../../../common';\n\nfunction AdditionalMarketplaces({\n formData,\n getOptions,\n accountType,\n showFooter,\n additionalMarketplacesData,\n setFormData,\n agreementData,\n setAdditionalMarketplaces,\n originalData,\n updateAdditionalMarketplaces,\n setAdditionalMarketplace,\n setMarketPlaces,\n marketplacesResult,\n defaultData,\n setShowAdditionalMarketplace,\n showAdditionalMarketplace,\n contractAddendumDetails,\n addendumDetails,\n}) {\n const comparableArray = contractAddendumDetails?.notActive\n ? addendumDetails\n : originalData;\n\n const originalDataAdditionalMarketplacesLength =\n comparableArray?.additional_marketplaces?.length;\n\n const getServicesAccordingToAccType = (data, option) => {\n const result = data && data.filter((item) => item.account_type === option);\n return result;\n };\n\n const handleChange = (event, key, type, accntType, val) => {\n showFooter(true);\n if (key === 'additional_marketplaces_checkbox') {\n if (event.target.checked) {\n if (\n agreementData?.primary_marketplace?.name ||\n formData?.primary_marketplace\n ) {\n setAdditionalMarketplaces(\n marketplacesResult.filter(\n (op) =>\n op.value !==\n (formData.primary_marketplace.name\n ? formData.primary_marketplace.name\n : formData.primary_marketplace),\n ),\n );\n } else {\n setAdditionalMarketplaces(marketplacesResult);\n }\n } else {\n const listOfSelectedMarketplace = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n accountType,\n );\n\n const vendorMarketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n accountType === 'Vendor' ? 'Seller' : 'Vendor',\n );\n\n const itemsToBeDelete = listOfSelectedMarketplace?.filter((item) => {\n if (item.id) {\n return item;\n }\n return null;\n });\n\n if (itemsToBeDelete?.length) {\n const list = itemsToBeDelete.map((item) => item.id);\n additionalMarketplacesData.delete = [\n ...list,\n ...additionalMarketplacesData.delete,\n ];\n additionalMarketplacesData.create = [];\n }\n\n setFormData({\n ...formData,\n additional_marketplaces: vendorMarketplaceResult,\n });\n }\n updateAdditionalMarketplaces();\n setAdditionalMarketplace({\n ...additionalMarketplacesData,\n });\n\n setMarketPlaces(marketplacesResult);\n } else if (type === 'multichoice') {\n if (val.action === 'select-option') {\n const itemInFormData =\n originalDataAdditionalMarketplacesLength &&\n comparableArray.additional_marketplaces.find(\n (item) =>\n item &&\n item.name === val.option.value &&\n item.account_type === accountType,\n );\n\n // checked whether checked item present in newly created list\n if (\n additionalMarketplacesData?.create &&\n additionalMarketplacesData.create.find((item) =>\n item.name\n ? item.name === val.option.value &&\n item.account_type === accountType\n : item.value === val.option.value &&\n item.account_type === accountType,\n )\n ) {\n // if checked item is already present in newly created list then don't do anything\n } else {\n // if checked item not found in newly created list then again check whether it is present in original formData variable because if it is found in formData then we need to add that found item in newly created list bcoz we need id and all of that item to push in newly created list.\n // here we check whether checked item present in orginal formDAta list then add that found item in newly created list\n if (itemInFormData) {\n additionalMarketplacesData.create.push(itemInFormData);\n const list = formData.additional_marketplaces;\n list.push(itemInFormData);\n setFormData({\n ...formData,\n additional_marketplaces: list,\n });\n updateAdditionalMarketplaces();\n }\n // else we create dict as BE required for new item and we push that in newly created list\n else {\n const newData = {\n name: val.option.value,\n contract_id: originalData && originalData.id,\n account_type: accountType,\n };\n const addendumNewData = {\n name: val.option.value,\n contract_addendum_id: contractAddendumDetails?.id,\n account_type: accountType,\n };\n\n additionalMarketplacesData.create.push(\n contractAddendumDetails?.notActive ? addendumNewData : newData,\n );\n setFormData({\n ...formData,\n additional_marketplaces: additionalMarketplacesData.create,\n });\n updateAdditionalMarketplaces();\n }\n // here we fnally update state variable\n setAdditionalMarketplace({\n ...additionalMarketplacesData,\n });\n }\n // suppose checked item present in original formData then we have to remove its id from newly created delete list.\n if (itemInFormData) {\n const updatedDeleteList = additionalMarketplacesData.delete?.filter(\n (item) => item !== itemInFormData.id,\n );\n additionalMarketplacesData.delete = updatedDeleteList;\n }\n setAdditionalMarketplace({\n ...additionalMarketplacesData,\n });\n if (additionalMarketplacesData.create) {\n setMarketPlaces(\n marketplacesResult?.filter(\n (choice) =>\n !additionalMarketplacesData.create.some(\n (item) => item.name === choice.value,\n ),\n ),\n );\n }\n }\n if (val.action === 'remove-value') {\n const itemInFormData =\n originalDataAdditionalMarketplacesLength &&\n comparableArray.additional_marketplaces.find(\n (item) =>\n item &&\n item.name === val.removedValue.value &&\n item.account_type === accountType,\n );\n // if unchecked item found in original list then add its id to newly created delte list\n if (itemInFormData?.id) {\n additionalMarketplacesData.delete.push(itemInFormData.id);\n }\n\n // now we filter newly created list with removed unchecked item from it\n const updatedCreateList = additionalMarketplacesData.create\n .filter((item) => item.account_type === accntType)\n .filter((item) =>\n item.name\n ? item.name !== val.removedValue.value\n : item.value !== val.removedValue.value,\n );\n\n const otherList = additionalMarketplacesData.create.filter(\n (item) => item.account_type !== accntType,\n );\n additionalMarketplacesData.create = updatedCreateList.concat(otherList);\n\n const list = formData.additional_marketplaces;\n const deletedUncheckedItemList = list\n .filter((item) => item.account_type === accntType)\n .filter((item) =>\n item.name\n ? item.name !== val.removedValue.value\n : item.value !== val.removedValue.value,\n );\n\n const otherFormDataList = list.filter(\n (item) => item.account_type !== accntType,\n );\n\n setFormData({\n ...formData,\n additional_marketplaces:\n deletedUncheckedItemList.concat(otherFormDataList),\n });\n updateAdditionalMarketplaces();\n setAdditionalMarketplace({\n ...additionalMarketplacesData,\n });\n if (updatedCreateList) {\n setMarketPlaces(\n marketplacesResult.filter(\n (choice) =>\n !updatedCreateList.some((item) => item.name === choice.value),\n ),\n );\n }\n }\n }\n };\n\n const generateMultiChoice = (item) => {\n return (\n <>\n \n handleChange(\n event,\n item.key,\n 'multichoice',\n item.accountType,\n value,\n )\n }\n defaultValue={\n defaultData?.[accountType]?.length ? defaultData[accountType] : null\n }\n components={{ DropdownIndicator }}\n isClearable={false}\n style={{\n option: (styles, { isDisabled }) => {\n return {\n ...styles,\n color: isDisabled ? '556178' : '556178',\n };\n },\n }}\n />\n \n );\n };\n\n return (\n <>\n \n \n Additional Marketplaces\n {!formData?.primary_marketplace ? (\n <>\n \n \n \n ) : (\n ''\n )}\n {\n setShowAdditionalMarketplace({\n ...showAdditionalMarketplace,\n [accountType]: {\n showDropdown: event.target.checked,\n },\n });\n handleChange(\n event,\n 'additional_marketplaces_checkbox',\n 'checkbox',\n accountType,\n );\n }}\n checked={showAdditionalMarketplace[accountType]?.showDropdown}\n disabled={!formData?.primary_marketplace}\n />\n \n \n \n\n \n {showAdditionalMarketplace[accountType]?.showDropdown\n ? generateMultiChoice({\n key: 'additional_marketplaces',\n label: 'Additional Market Places',\n type: 'multichoice',\n accountType,\n })\n : ''}\n \n \n );\n}\n\nexport default AdditionalMarketplaces;\n\nAdditionalMarketplaces.defaultProps = {\n formData: {},\n getOptions: () => {},\n accountType: '',\n showFooter: () => {},\n additionalMarketplacesData: {},\n setFormData: () => {},\n agreementData: {},\n setAdditionalMarketplaces: () => {},\n originalData: {},\n updateAdditionalMarketplaces: () => {},\n setAdditionalMarketplace: () => {},\n setMarketPlaces: () => {},\n marketplacesResult: [],\n defaultData: {},\n setShowAdditionalMarketplace: () => {},\n showAdditionalMarketplace: {},\n contractAddendumDetails: {},\n addendumDetails: {},\n // savedMarketplaces: [],\n // agreementAccountType: '',\n};\nAdditionalMarketplaces.propTypes = {\n formData: shape({\n monthly_discount_amount: oneOfType([string, number]),\n monthly_discount_type: oneOfType([string, number]),\n one_time_discount_type: oneOfType([string, number]),\n one_time_discount_amount: oneOfType([string, number]),\n }),\n getOptions: func,\n accountType: string,\n showFooter: func,\n additionalMarketplacesData: shape({}),\n setFormData: func,\n agreementData: shape({}),\n setAdditionalMarketplaces: func,\n originalData: shape({}),\n updateAdditionalMarketplaces: func,\n setAdditionalMarketplace: func,\n setMarketPlaces: func,\n marketplacesResult: arrayOf(shape({})),\n defaultData: shape({}),\n setShowAdditionalMarketplace: func,\n showAdditionalMarketplace: shape({}),\n contractAddendumDetails: shape({}),\n addendumDetails: shape({}),\n // savedMarketplaces: arrayOf(shape({})),\n // agreementAccountType: string,\n};\n","import React from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport { shape, func } from 'prop-types';\n\nimport { ListingTranslationFields } from '../../../../constants';\nimport { PlusIcon, MinusIcon } from '../../../../theme/images';\nimport { InputFormField } from '../../../../common';\nimport { checkDisabledConditionForListing } from '../../../../common/ConditionsForStatementOfWork';\n\nfunction ListingTranslation({\n formData,\n setFormData,\n setUpdatedFormData,\n updatedFormData,\n showFooter,\n handleChange,\n}) {\n const handleChangeListTranslation = (key, flag) => {\n showFooter(true);\n let updatedData = 0;\n\n if (flag === 'minus') {\n if (formData && formData[key]) {\n updatedData =\n parseInt(formData[key], 10) - 1\n ? parseInt(formData[key], 10) - 1\n : null;\n } else {\n updatedData = null;\n }\n }\n if (flag === 'plus') {\n if (formData && formData[key]) {\n if (parseInt(formData[key], 10) < 25) {\n updatedData = parseInt(formData[key], 10) + 1;\n }\n } else {\n updatedData = 1;\n }\n }\n setFormData({\n ...formData,\n [key]: updatedData,\n });\n setUpdatedFormData({\n ...updatedFormData,\n [key]: updatedData,\n });\n };\n\n const displayListingTranslation = () => {\n return (\n <>\n \n
    \n
    \n {' '}\n {' '}\n
    \n\n
    \n
    For Non-US Marketplaces
    \n
    \n
    \n
    \n {ListingTranslationFields.map((field) => {\n return (\n \n
    \n
    \n \n
    \n
    \n \n handleChangeListTranslation(field.key, 'minus')\n }\n disabled={checkDisabledConditionForListing(\n formData,\n field?.key,\n )}\n >\n \"\"\n \n\n \n handleChange(event, 'listing_optimization')\n }\n allowNegative={false}\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n return floatValue <= 25;\n }}\n />\n\n \n handleChangeListTranslation(field.key, 'plus')\n }\n >\n \"\"\n \n
    \n
    \n
    \n );\n })}\n \n );\n };\n return
    {displayListingTranslation()}
    ;\n}\n\nexport default ListingTranslation;\n\nListingTranslation.defaultProps = {\n formData: {},\n setFormData: () => {},\n setUpdatedFormData: () => {},\n updatedFormData: {},\n showFooter: () => {},\n handleChange: () => {},\n};\nListingTranslation.propTypes = {\n formData: shape({}),\n setFormData: func,\n setUpdatedFormData: func,\n updatedFormData: shape({}),\n showFooter: func,\n handleChange: func,\n};\n","import React, { useState, useEffect } from 'react';\n\nimport Select from 'react-select';\nimport { shape, func, bool, string } from 'prop-types';\n\nimport {\n InputFormField,\n CheckBox,\n DropdownIndicator,\n Button,\n ContractInputSelect,\n ErrorMsg,\n} from '../../../../common';\nimport {\n getNonUSStandardServicesOptions,\n getNonUSStandardServicesMarketplaces,\n getNonUSStandardServicesFrequency,\n} from '../../../../api';\nimport { AddNewIcons, TrashIcons } from '../../../../theme/images';\n\nfunction StandardServicesForNonUS({\n formData,\n setFormData,\n updatedFormData,\n setUpdatedFormData,\n originalData,\n showFooter,\n setNonUSserviceError,\n nonUsServiceError,\n updateStatementErrorValue,\n sectionError,\n contractAddendumDetails,\n addendumDetails,\n displayMarketplaceName,\n setVatMarketplaces,\n}) {\n const [nonUSStandardServices, setNonUSStandardServices] = useState([]);\n const [\n nonUSStandardServiceMarketplaces,\n setNonUSStandardServicesMarketplaces,\n ] = useState([]);\n const [originalVATMarketplaces, setOriginalVATMarketplaces] = useState([]);\n const [\n nonUSMarketplacesForVATRegistration,\n setNonUSSMarketplacesForVATRegistration,\n ] = useState([]);\n const [selectedStandardServicesFrequency, setNonUSStandardServicesFrequency] =\n useState([]);\n const [vatFilingData, setVATFilingData] = useState([]);\n\n const [isCheckedService, setIsChecked] = useState({});\n\n useEffect(() => {\n const tempVATFillingData = formData?.standard_non_us_services?.length\n ? formData?.standard_non_us_services?.filter(\n (item) => item.name === 'VAT Filing',\n )\n : [];\n setVATFilingData(tempVATFillingData);\n\n const uniqueResult = originalVATMarketplaces?.filter((obj) => {\n return !tempVATFillingData?.some((obj2) => {\n return obj.marketplace === obj2.marketplace;\n });\n });\n setNonUSStandardServicesMarketplaces(uniqueResult);\n }, [formData.standard_non_us_services, originalVATMarketplaces]);\n\n useEffect(() => {\n getNonUSStandardServicesOptions().then((res) => {\n setNonUSStandardServices(res);\n const result = res?.filter(\n (item) =>\n item.value === 'VAT Registration' || item.value === 'VAT Filing',\n );\n const checkedServices = {};\n if (result) {\n result.map((item) => {\n if (\n formData?.standard_non_us_services?.find(\n (service) => service.name === item.value,\n )\n ) {\n checkedServices[item.value] = true;\n } else {\n checkedServices[item.value] = false;\n }\n return null;\n });\n }\n setIsChecked(checkedServices);\n });\n getNonUSStandardServicesMarketplaces().then((res) => {\n setVatMarketplaces(res);\n const uniqueResult = res?.filter((obj) => {\n obj.marketplace = obj.value;\n return !vatFilingData?.some((obj2) => {\n return obj.marketplace === obj2.marketplace;\n });\n });\n setNonUSStandardServicesMarketplaces(uniqueResult);\n setOriginalVATMarketplaces(\n res?.filter((option) => {\n option.marketplace = option.value;\n return option;\n }),\n );\n setNonUSSMarketplacesForVATRegistration(res);\n });\n\n getNonUSStandardServicesFrequency().then((res) => {\n setNonUSStandardServicesFrequency(res);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const setCheckStatusOfService = (service, event) => {\n if (\n service?.value === 'VAT Registration' ||\n service?.value === 'VAT Filing'\n ) {\n setIsChecked({\n ...isCheckedService,\n [service?.value]: event.target.checked,\n });\n }\n };\n\n const handleChangeOfStandardServices = (event, service) => {\n showFooter(true);\n\n if (event.target.checked) {\n if (\n service?.value === 'International Customer Service' ||\n service?.value === 'International Logistics'\n ) {\n // code for Addendum\n const contractData = contractAddendumDetails?.notActive\n ? addendumDetails\n : originalData;\n const itemInFormData =\n contractData?.standard_non_us_services?.length &&\n contractData?.standard_non_us_services?.find(\n (item) => item && item?.name === service?.value,\n );\n if (itemInFormData) {\n setFormData({\n ...formData,\n standard_non_us_services: [\n ...formData?.standard_non_us_services,\n itemInFormData,\n ],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: [\n ...updatedFormData?.standard_non_us_services?.create,\n itemInFormData,\n ],\n delete: updatedFormData?.standard_non_us_services?.delete?.filter(\n (item) => item !== itemInFormData.id,\n ),\n },\n });\n } else {\n const newContractData = {\n contract_id: formData?.id,\n name: service?.value,\n frequency: null,\n marketplace: null,\n };\n const newAddendumData = {\n contract_addendum: contractAddendumDetails?.id,\n name: service?.value,\n frequency: null,\n marketplace: null,\n };\n\n setFormData({\n ...formData,\n standard_non_us_services: formData?.standard_non_us_services?.length\n ? [\n ...formData?.standard_non_us_services,\n contractAddendumDetails.notActive\n ? newAddendumData\n : newContractData,\n ]\n : [\n contractAddendumDetails.notActive\n ? newAddendumData\n : newContractData,\n ],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.length\n ? [\n ...formData?.standard_non_us_services,\n contractAddendumDetails.notActive\n ? newAddendumData\n : newContractData,\n ]\n : [\n contractAddendumDetails.notActive\n ? newAddendumData\n : newContractData,\n ],\n },\n });\n }\n } else {\n // 'VAT Registration', 'VAT Filing'\n // code for Addendum\n const contractData = contractAddendumDetails?.notActive\n ? addendumDetails\n : originalData;\n const itemsInFormData = contractData?.standard_non_us_services?.filter(\n (item) => item.name === service.value,\n );\n\n if (itemsInFormData?.length) {\n setFormData({\n ...formData,\n standard_non_us_services: [\n ...formData?.standard_non_us_services,\n ...itemsInFormData,\n ],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: [\n ...formData?.standard_non_us_services,\n ...itemsInFormData,\n ],\n delete: updatedFormData?.standard_non_us_services?.delete?.filter(\n (id) => {\n return !itemsInFormData.find((item) => item.id === id);\n },\n ),\n },\n });\n\n setVATFilingData(itemsInFormData);\n const uniqueResult = originalVATMarketplaces?.filter((obj) => {\n return !itemsInFormData?.some((obj2) => {\n return obj.marketplace === obj2.marketplace;\n });\n });\n setNonUSStandardServicesMarketplaces(uniqueResult);\n }\n setCheckStatusOfService(service, event);\n }\n }\n if (!event.target.checked) {\n const contractData = contractAddendumDetails?.notActive\n ? addendumDetails\n : originalData;\n if (\n service?.value === 'International Customer Service' ||\n service?.value === 'International Logistics'\n ) {\n // when unchecked the service\n const itemInFormData =\n contractData?.standard_non_us_services?.length &&\n contractData?.standard_non_us_services?.find(\n (item) => item && item?.name === service?.value,\n );\n\n if (itemInFormData) {\n const deletedID = contractData?.standard_non_us_services?.filter(\n (item) => item.name === service?.value,\n );\n\n setFormData({\n ...formData,\n standard_non_us_services:\n formData?.standard_non_us_services?.filter(\n (item) => item.name !== service?.value,\n ),\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.filter(\n (item) => item.name !== service?.value,\n ),\n delete: updatedFormData?.standard_non_us_services?.delete?.length\n ? [\n ...updatedFormData?.standard_non_us_services?.delete,\n deletedID?.[0].id,\n ]\n : [deletedID?.[0].id],\n },\n });\n } else {\n setFormData({\n ...formData,\n standard_non_us_services:\n formData?.standard_non_us_services?.filter(\n (item) => item.name !== service?.value,\n ),\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.filter(\n (item) => item.name !== service?.value,\n ),\n },\n });\n }\n } else {\n const itemsInFormData = contractData?.standard_non_us_services?.filter(\n (item) => item.name === service.value,\n );\n\n if (itemsInFormData?.length) {\n setFormData({\n ...formData,\n standard_non_us_services:\n formData?.standard_non_us_services?.filter(\n (item) => item.name !== service?.value,\n ),\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.filter(\n (item) => item.name !== service?.value,\n ),\n delete: updatedFormData?.standard_non_us_services?.delete?.length\n ? [\n ...updatedFormData?.standard_non_us_services?.delete,\n ...itemsInFormData?.map((item) => item.id),\n ]\n : itemsInFormData?.map((item) => item.id),\n },\n });\n } else {\n setFormData({\n ...formData,\n standard_non_us_services:\n formData?.standard_non_us_services?.filter(\n (item) => item.name !== service?.value,\n ),\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.filter(\n (item) => item.name !== service?.value,\n ),\n },\n });\n setVATFilingData([]);\n }\n setCheckStatusOfService(service, event);\n }\n }\n };\n\n const setDefaultValueToVATREgistration = () => {\n const VATRegistrationServices = formData?.standard_non_us_services?.length\n ? formData?.standard_non_us_services.filter(\n (item) => item.name === 'VAT Registration',\n )\n : null;\n const vatRegistrationMarketplaces = [];\n\n if (VATRegistrationServices?.length) {\n for (const item of VATRegistrationServices) {\n if (item?.marketplace) {\n vatRegistrationMarketplaces.push({\n label:\n displayMarketplaceName(item?.marketplace, 'vat') ||\n item.marketplace,\n value: item.marketplace,\n });\n }\n }\n }\n return vatRegistrationMarketplaces;\n };\n\n const checkClickedElementAlreadyExists = (event, value) => {\n let clickedValue = '';\n if (value.action === 'select-option') {\n clickedValue = value?.option?.value;\n }\n if (value.action === 'remove-value') {\n clickedValue = value?.removedValue.value;\n }\n\n // code for Addendum\n const contractData = contractAddendumDetails?.notActive\n ? addendumDetails\n : originalData;\n\n const itemInFormData =\n contractData?.standard_non_us_services?.length &&\n contractData?.standard_non_us_services?.find(\n (item) =>\n item &&\n item?.name === 'VAT Registration' &&\n item?.marketplace === clickedValue,\n );\n return itemInFormData;\n };\n\n const handleVATRegistrationMarketplaceChange = (event, value) => {\n showFooter(true);\n if (value.action === 'select-option') {\n const itemInFormData = checkClickedElementAlreadyExists(event, value);\n // checked whether checked item present in newly created list\n if (\n !(\n updatedFormData?.standard_non_us_services?.create &&\n updatedFormData?.standard_non_us_services.create.find(\n (item) =>\n item &&\n item?.name === 'VAT Registration' &&\n item?.marketplace === value?.option?.value,\n )\n )\n ) {\n // if checked item not found in newly created list then again check whether it is present in original formData variable because if it is found in formData then we need to add that found item in newly created list bcoz we need id and all of that item to push in newly created list.\n // here we check whether checked item present in orginal formDAta list then add that found item in newly created list\n if (itemInFormData) {\n setFormData({\n ...formData,\n standard_non_us_services: [\n ...formData?.standard_non_us_services,\n itemInFormData,\n ],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: [...formData?.standard_non_us_services, itemInFormData],\n delete: updatedFormData?.standard_non_us_services?.delete?.filter(\n (item) => item !== itemInFormData.id,\n ),\n },\n });\n }\n // else we create dict as BE required for new item and we push that in newly created list\n else {\n const newContractData = {\n name: 'VAT Registration',\n contract_id: originalData && originalData.id,\n marketplace: value?.option?.value,\n frequency: null,\n };\n const newAddendumData = {\n name: 'VAT Registration',\n contract_addendum: contractAddendumDetails?.id,\n marketplace: value?.option?.value,\n frequency: null,\n };\n setFormData({\n ...formData,\n standard_non_us_services: formData?.standard_non_us_services?.length\n ? [\n ...formData?.standard_non_us_services,\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ]\n : [\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.length\n ? [\n ...formData?.standard_non_us_services,\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ]\n : [\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ],\n },\n });\n }\n }\n }\n if (value.action === 'remove-value') {\n const itemInFormData = checkClickedElementAlreadyExists(event, value);\n\n // if unchecked item found in original list then add its id to newly created delte list\n if (itemInFormData?.id) {\n setFormData({\n ...formData,\n standard_non_us_services: formData?.standard_non_us_services.filter(\n (item) => item.id !== itemInFormData?.id,\n ),\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services.filter(\n (item) => item.id !== itemInFormData?.id,\n ),\n delete: updatedFormData?.standard_non_us_services?.delete?.length\n ? [\n ...updatedFormData?.standard_non_us_services?.delete,\n itemInFormData.id,\n ]\n : [itemInFormData.id],\n },\n });\n } else {\n const updatedCreateList =\n updatedFormData?.standard_non_us_services?.create\n .filter((item) => item.name === 'VAT Registration')\n .filter((item) => item.marketplace !== value.removedValue.value);\n\n const otherList =\n updatedFormData?.standard_non_us_services?.create.filter(\n (item) => item.name !== 'VAT Registration',\n );\n const updatedVATData = updatedCreateList.concat(otherList);\n\n setFormData({\n ...formData,\n standard_non_us_services: updatedVATData,\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: updatedVATData,\n },\n });\n }\n }\n };\n\n const displayVATRegistrationField = () => {\n return (\n
    \n \n \n handleVATRegistrationMarketplaceChange(event, value)\n }\n value={setDefaultValueToVATREgistration()}\n components={{ DropdownIndicator }}\n isClearable={false}\n />\n \n
    \n );\n };\n const errorHandling = () => {\n setNonUSserviceError({});\n updateStatementErrorValue(\n sectionError?.statement ? sectionError?.statement - 1 : 0,\n );\n };\n\n const removeService = (service) => {\n showFooter(true);\n errorHandling();\n const list = vatFilingData;\n\n if (service?.id) {\n setVATFilingData(list.filter((item) => item.id !== service?.id));\n\n setFormData({\n ...formData,\n standard_non_us_services: formData?.standard_non_us_services?.length\n ? formData?.standard_non_us_services?.filter(\n (item) => item.id !== service?.id,\n )\n : [],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.length\n ? formData?.standard_non_us_services?.filter(\n (item) => item.id !== service?.id,\n )\n : [],\n delete: updatedFormData?.standard_non_us_services?.delete?.length\n ? [...updatedFormData?.standard_non_us_services?.delete, service.id]\n : [service.id],\n },\n });\n } else {\n setVATFilingData(\n list.filter((item) => item.unique_id !== service?.unique_id),\n );\n\n setFormData({\n ...formData,\n standard_non_us_services: formData?.standard_non_us_services?.length\n ? formData?.standard_non_us_services?.filter(\n (item) => item.unique_id !== service?.unique_id,\n )\n : [],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.length\n ? formData?.standard_non_us_services?.filter(\n (item) => item.unique_id !== service?.unique_id,\n )\n : [],\n },\n });\n }\n setNonUSStandardServicesMarketplaces([\n ...nonUSStandardServiceMarketplaces,\n {\n label: service?.marketplace,\n value: service?.marketplace,\n marketplace: service?.marketplace,\n },\n ]);\n };\n\n const handleVATFiling = (event, value, service) => {\n showFooter(true);\n\n if (nonUsServiceError?.['VAT Filing']) {\n errorHandling();\n }\n\n const updatedVATFilingData = vatFilingData.map((item) =>\n item?.unique_id === service?.unique_id &&\n item?.marketplace === service?.marketplace\n ? { ...item, [value.name]: event.value }\n : item,\n );\n\n const servicesExceptVATFiling = formData?.standard_non_us_services?.length\n ? formData?.standard_non_us_services?.filter(\n (item) => item.name !== 'VAT Filing',\n )\n : [];\n\n setVATFilingData(updatedVATFilingData);\n\n setFormData({\n ...formData,\n standard_non_us_services: [\n ...servicesExceptVATFiling,\n ...updatedVATFilingData,\n ],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: [...servicesExceptVATFiling, ...updatedVATFilingData],\n },\n });\n\n if (value?.name === 'marketplace') {\n const updatedMarketplace = originalVATMarketplaces.filter(\n (op) => op.marketplace !== event.marketplace,\n );\n const uniqueResult = updatedMarketplace?.filter((obj) => {\n return !updatedVATFilingData?.some((obj2) => {\n return obj.marketplace === obj2.marketplace;\n });\n });\n setNonUSStandardServicesMarketplaces(uniqueResult);\n }\n };\n\n const displayVATFillingField = () => {\n return (\n vatFilingData?.length &&\n vatFilingData?.map((service, index) => {\n return (\n
    \n
    \n \n ({\n ...base,\n background:\n nonUsServiceError?.['VAT Filing'] &&\n !service?.marketplace\n ? '#FBF2F2'\n : '#F4F6FC',\n // match with the menu\n // borderRadius: state.isFocused ? '3px 3px 0 0' : 3,\n // Overwrittes the different states of border\n borderColor:\n nonUsServiceError?.['VAT Filing'] &&\n !service?.marketplace\n ? '#D63649'\n : '#D5D8E1',\n\n // Removes weird border around container\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n // Overwrittes the different states of border\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n }),\n }}\n name=\"marketplace\"\n onChange={(event, value) =>\n handleVATFiling(event, value, service, service.id, index)\n }\n defaultValue={{\n label: displayMarketplaceName(service?.marketplace, 'vat'),\n value: service?.marketplace,\n }}\n components={{ DropdownIndicator }}\n isClearable={false}\n />\n \n
    \n
    \n \n ({\n ...base,\n background:\n nonUsServiceError?.['VAT Filing'] && !service?.frequency\n ? '#FBF2F2'\n : '#F4F6FC',\n // match with the menu\n // borderRadius: state.isFocused ? '3px 3px 0 0' : 3,\n // Overwrittes the different states of border\n borderColor:\n nonUsServiceError?.['VAT Filing'] && !service?.frequency\n ? '#D63649'\n : '#D5D8E1',\n\n // Removes weird border around container\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n // Overwrittes the different states of border\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n }),\n }}\n onChange={(event, value) =>\n handleVATFiling(event, value, service, service.id, index)\n }\n defaultValue={{\n label: service?.frequency,\n value: service?.frequency,\n }}\n components={{ DropdownIndicator }}\n isClearable={false}\n />\n \n
    \n removeService(service, index)}\n >\n \n
    \n \n );\n })\n );\n };\n\n const onAddMoreService = () => {\n showFooter(true);\n const newContractData = {\n contract_id: formData?.id,\n frequency: null,\n marketplace: null,\n name: 'VAT Filing',\n unique_id: Math.random(),\n };\n\n const newAddendumData = {\n contract_addendum: contractAddendumDetails?.id,\n frequency: null,\n marketplace: null,\n name: 'VAT Filing',\n unique_id: Math.random(),\n };\n\n setFormData({\n ...formData,\n standard_non_us_services: formData?.standard_non_us_services?.length\n ? [\n ...formData?.standard_non_us_services,\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ]\n : [\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ],\n });\n setVATFilingData([\n ...vatFilingData,\n contractAddendumDetails?.notActive ? newAddendumData : newContractData,\n ]);\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: formData?.standard_non_us_services?.length\n ? [\n ...formData?.standard_non_us_services,\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ]\n : [\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ],\n },\n });\n\n const uniqueResult = originalVATMarketplaces?.filter((obj) => {\n return !vatFilingData?.some((obj2) => {\n return obj.marketplace === obj2.marketplace;\n });\n });\n setNonUSStandardServicesMarketplaces(uniqueResult);\n };\n\n const setDefaultCheckToService = (serviceData) => {\n return (\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services?.find(\n (item) => item?.name === serviceData?.value,\n )\n );\n };\n\n const displayStandardServiceForNonUSMarketplace = () => {\n return (\n <>\n \n
    \n
    \n {' '}\n {' '}\n
    \n\n
    \n
    For Non-US Marketplaces
    \n
    \n
    \n
    \n {nonUSStandardServices &&\n nonUSStandardServices?.map((serviceData) => (\n <>\n \n \n {serviceData?.label}\n \n handleChangeOfStandardServices(event, serviceData)\n }\n defaultChecked={setDefaultCheckToService(serviceData)}\n />\n \n \n \n {isCheckedService?.['VAT Registration'] &&\n serviceData.value === 'VAT Registration'\n ? displayVATRegistrationField()\n : null}\n {isCheckedService?.['VAT Filing'] &&\n serviceData?.value === 'VAT Filing' ? (\n <>\n {vatFilingData?.length ? (\n <>\n {' '}\n {displayVATFillingField()}{' '}\n \n {nonUsServiceError?.['VAT Filing']\n ? nonUsServiceError?.['VAT Filing'] ===\n 'Please select marketplace and frequency for VAT Filing'\n ? 'Please fill all details of VAT Filing'\n : nonUsServiceError?.['VAT Filing']\n : ''}\n {' '}\n \n ) : null}\n\n {vatFilingData?.length < 9 ? (\n \n item.marketplace === null || item.frequency === null,\n )}\n onClick={() => {\n onAddMoreService();\n }}\n >\n {' '}\n Add New Marketplace\n \n ) : null}\n \n ) : null}\n \n ))}\n \n );\n };\n return
    {displayStandardServiceForNonUSMarketplace()}
    ;\n}\n\nexport default StandardServicesForNonUS;\n\nStandardServicesForNonUS.defaultProps = {\n formData: {},\n setFormData: () => {},\n updatedFormData: {},\n setUpdatedFormData: () => {},\n originalData: {},\n showFooter: () => {},\n setNonUSserviceError: () => {},\n nonUsServiceError: {},\n updateStatementErrorValue: () => {},\n sectionError: {},\n contractAddendumDetails: {},\n addendumDetails: {},\n displayMarketplaceName: () => {},\n setVatMarketplaces: () => {},\n};\nStandardServicesForNonUS.propTypes = {\n formData: shape({}),\n setFormData: func,\n updatedFormData: shape({}),\n setUpdatedFormData: func,\n originalData: shape({}),\n showFooter: func,\n setNonUSserviceError: func,\n nonUsServiceError: shape({}),\n updateStatementErrorValue: func,\n sectionError: shape({}),\n contractAddendumDetails: shape({\n notActive: bool,\n id: string,\n }),\n addendumDetails: shape({}),\n displayMarketplaceName: func,\n setVatMarketplaces: func,\n};\n","/* eslint-disable no-plusplus */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport $ from 'jquery';\nimport { func, arrayOf, shape, bool } from 'prop-types';\n\nimport { CheckBox, InputFormField } from '../../../../common';\n\nexport default function StandardServices({\n formData,\n stdServices,\n updatedFormData,\n setFormData,\n setUpdatedFormData,\n showFooter,\n contractAddendumDetails,\n addendumDetails,\n originalData,\n}) {\n const selectedStdServices =\n (contractAddendumDetails?.notActive\n ? addendumDetails?.standard_us_services\n : originalData?.standard_us_services) || [];\n\n const [allSelected, setAllSelected] = useState(\n formData?.standard_us_services?.length === 16 ? false : true || true,\n );\n\n const removeServicesWithId = (tempServices) => {\n let serviceLength = tempServices?.length || 0;\n while (serviceLength--) {\n for (const item of selectedStdServices) {\n if (\n tempServices[serviceLength] &&\n tempServices[serviceLength].name === item.name\n ) {\n tempServices.splice(serviceLength, 1);\n }\n }\n }\n };\n\n const selectAllStdServices = () => {\n if (allSelected) showFooter(true);\n const originalServices = [];\n const tempServices = [];\n\n $('.checkboxes-std-services input:checkbox').prop('checked', true);\n setAllSelected(false);\n\n for (const item of stdServices) {\n const addendumData = {\n name: item.label,\n contract_addendum: formData?.id,\n };\n const contractData = {\n name: item.label,\n contract: formData?.id,\n };\n if (\n selectedStdServices?.find((service) => service?.name === item?.label)\n ?.id\n ) {\n addendumData.id = selectedStdServices?.find(\n (service) => service?.name === item?.label,\n )?.id;\n contractData.id = selectedStdServices?.find(\n (service) => service?.name === item?.label,\n )?.id;\n }\n tempServices.push(\n contractAddendumDetails?.notActive ? addendumData : contractData,\n );\n\n originalServices.push(\n contractAddendumDetails?.notActive ? addendumData : contractData,\n );\n }\n\n if (updatedFormData?.standard_us_services?.delete?.length === 16) {\n setFormData({\n ...formData,\n standard_us_services: originalServices,\n });\n setUpdatedFormData({\n ...updatedFormData,\n standard_us_services: {\n ...updatedFormData.standard_us_services,\n delete: [],\n },\n });\n } else {\n // remove the servies which are already in DB.\n removeServicesWithId(tempServices);\n\n setFormData({\n ...formData,\n standard_us_services: originalServices,\n });\n if (tempServices?.length) {\n setUpdatedFormData({\n ...updatedFormData,\n standard_us_services: {\n ...updatedFormData.standard_us_services,\n create: [...tempServices],\n delete: [],\n },\n });\n }\n }\n setFormData({\n ...formData,\n standard_us_services: originalServices,\n selectAllStdServices,\n });\n };\n\n useEffect(() => {}, [formData?.seller_type]);\n\n const handleChange = (event, selectedService) => {\n showFooter(true);\n let showServiceInTable = [];\n if (formData?.standard_us_services?.length)\n showServiceInTable = [...formData?.standard_us_services];\n\n if (!event.target.checked) {\n // add the selected service in the delete array and remove the service from the agreement table (on LHS).\n const tempService = updatedFormData?.standard_us_services?.delete?.find(\n (ele) => ele === selectedService?.id,\n );\n if (!tempService) {\n let tempDeletedServices = [];\n if (updatedFormData?.standard_us_services?.delete) {\n tempDeletedServices = [\n ...updatedFormData.standard_us_services?.delete,\n ];\n }\n showServiceInTable = formData?.standard_us_services?.filter(\n (op) => op.name !== event.target.name,\n );\n let createServices = updatedFormData?.standard_us_services?.create\n ?.length\n ? [...updatedFormData?.standard_us_services?.create]\n : [];\n createServices = updatedFormData?.standard_us_services?.create?.filter(\n (op) => op.name !== event.target.name,\n );\n\n setFormData({\n ...formData,\n standard_us_services: showServiceInTable,\n });\n setUpdatedFormData({\n ...updatedFormData,\n standard_us_services: {\n create: createServices,\n delete: [...tempDeletedServices, selectedService?.id],\n },\n });\n }\n }\n if (event.target.checked) {\n let tempCreateServices = [];\n if (updatedFormData?.standard_us_services?.create) {\n tempCreateServices = [...updatedFormData.standard_us_services?.create];\n }\n\n // if selected service not in DB, add it in create array and show the service in agreement table (on LHS).\n if (!selectedService?.id) {\n const addendumData = {\n name: event.target.name,\n contract_addendum: formData?.id,\n };\n const contractData = {\n name: event.target.name,\n contract: formData?.id,\n };\n showServiceInTable.push(\n contractAddendumDetails?.notActive ? addendumData : contractData,\n );\n\n setFormData({\n ...formData,\n standard_us_services: showServiceInTable,\n });\n const createContractData = contractAddendumDetails?.notActive\n ? {\n name: event.target.name,\n contract_addendum: formData?.id,\n }\n : { name: event.target.name, contract: formData?.id };\n setUpdatedFormData({\n ...updatedFormData,\n standard_us_services: {\n ...updatedFormData.standard_us_services,\n create: [...tempCreateServices, createContractData],\n },\n });\n }\n // if selected service in DB, remove the selected ID from the delete array and from the agreement table (on LHS).\n if (selectedService?.id) {\n const contractData = {\n name: event?.target?.name,\n contract: formData?.id,\n };\n const addendumData = {\n name: event?.target?.name,\n contract_addendum: formData?.id,\n };\n showServiceInTable.push(\n contractAddendumDetails?.notActive ? addendumData : contractData,\n );\n setFormData({\n ...formData,\n standard_us_services: showServiceInTable,\n });\n const tempDeletedServices =\n updatedFormData.standard_us_services?.delete?.filter(\n (op) => op !== selectedService?.id,\n );\n setUpdatedFormData({\n ...updatedFormData,\n standard_us_services: {\n ...updatedFormData.standard_us_services,\n delete: tempDeletedServices,\n },\n });\n }\n }\n };\n\n const deSelectAllStdServices = () => {\n showFooter(true);\n const serviceIds = [];\n selectedStdServices.filter(({ id }) => {\n if (id) serviceIds.push(id);\n return null;\n });\n setAllSelected(true);\n $('.checkboxes-std-services input:checkbox').prop('checked', false);\n setFormData({\n ...formData,\n standard_us_services: [],\n });\n setUpdatedFormData({\n ...updatedFormData,\n standard_us_services: {\n delete: serviceIds,\n },\n });\n };\n return (\n
    \n \n \n \n allSelected ? selectAllStdServices() : deSelectAllStdServices()\n }\n >\n {allSelected ? 'Select All' : 'Deselect All'}\n
    \n \n {stdServices?.map((serviceData) => (\n \n \n {serviceData?.label}\n \n handleChange(\n event,\n selectedStdServices?.length &&\n selectedStdServices.find(\n (item) => item?.name === serviceData?.label,\n ),\n )\n }\n defaultChecked={\n formData?.standard_us_services?.length &&\n formData.standard_us_services.find(\n (item) => item?.name === serviceData?.label,\n )\n }\n />\n \n \n \n ))}\n \n );\n}\n\nStandardServices.defaultProps = {\n formData: {},\n stdServices: [],\n updatedFormData: {},\n setFormData: () => {},\n setUpdatedFormData: () => {},\n showFooter: () => {},\n contractAddendumDetails: {},\n addendumDetails: {},\n originalData: {},\n};\n\nStandardServices.propTypes = {\n formData: shape({\n standard_us_services: arrayOf(shape({})),\n }),\n stdServices: arrayOf(shape({})),\n updatedFormData: shape({}),\n setFormData: func,\n setUpdatedFormData: func,\n showFooter: func,\n contractAddendumDetails: shape({ notActive: bool }),\n addendumDetails: shape({}),\n originalData: shape({}),\n};\n","import React from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport { string, func, arrayOf, shape, number } from 'prop-types';\n\nimport { CheckBox, ErrorMsg, InputFormField } from '../../../../common';\n\nfunction AdvertisingDashboards({\n advertisingDashboards,\n selectedCurrency,\n formData,\n setFormData,\n updatedFormData,\n setUpdatedFormData,\n monthlyAdBudget,\n details,\n contractAddendumDetails,\n showFooter,\n amcServiceError,\n setAmcServiceError,\n getAddedOrRemovedAMCServices,\n originalData,\n}) {\n const handleAmcDashboard = (event) => {\n showFooter(true);\n const dataToBeSearchOn = contractAddendumDetails.notActive\n ? formData\n : details;\n\n const standardDashboardObj = dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Standard Dashboard'),\n )\n ? [\n dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Standard Dashboard'),\n ),\n ]\n : [\n {\n name: 'Standard Dashboard',\n fee: 0,\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n },\n ];\n\n const advancedDashboardObj = dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Advanced Dashboard'),\n )\n ? [\n dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Advanced Dashboard'),\n ),\n ]\n : [\n {\n name: 'Advanced Dashboard',\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n fee: monthlyAdBudget && Number(monthlyAdBudget) < 50000 ? 425 : 0,\n },\n ];\n\n const CustomizedDashboardObj = dataToBeSearchOn?.amc_services?.find(\n (item) => item?.name.includes('Customized Dashboard'),\n )\n ? [\n dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Customized Dashboard'),\n ),\n ]\n : [\n {\n name: 'Customized Dashboard',\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n },\n ];\n\n const removedAMCServices = getAddedOrRemovedAMCServices(\n originalData?.amc_services,\n formData?.amc_services,\n );\n\n let list = [];\n if (contractAddendumDetails.notActive) {\n list = updatedFormData?.amc_services?.delete?.length\n ? updatedFormData?.amc_services?.delete\n : [];\n } else {\n list = removedAMCServices?.map((item) => item?.id);\n }\n\n let amcData = {\n create: formData?.amc_services ? [...formData?.amc_services] : [],\n delete: list?.length ? [...list] : [],\n };\n\n if (event?.target?.checked) {\n if (event?.target?.name === 'Standard Dashboard') {\n amcData = {\n ...amcData,\n create: formData?.amc_services?.length\n ? [...formData?.amc_services, ...standardDashboardObj]\n : [...standardDashboardObj],\n };\n }\n\n if (event?.target?.name === 'Advanced Dashboard') {\n if (monthlyAdBudget && Number(monthlyAdBudget) < 50000) {\n amcData = {\n ...amcData,\n create: formData?.amc_services?.length\n ? [...formData?.amc_services, ...advancedDashboardObj]\n : [...advancedDashboardObj],\n };\n }\n if (monthlyAdBudget && Number(monthlyAdBudget) >= 50000) {\n amcData = {\n ...amcData,\n create: formData?.amc_services?.length\n ? [...formData?.amc_services, ...advancedDashboardObj]\n : [...advancedDashboardObj],\n };\n }\n }\n if (event?.target?.name === 'Customized Dashboard') {\n if (monthlyAdBudget && Number(monthlyAdBudget) < 50000) {\n amcData = {\n ...amcData,\n create: formData?.amc_services?.length\n ? [...formData?.amc_services, ...CustomizedDashboardObj]\n : [...CustomizedDashboardObj],\n };\n }\n if (monthlyAdBudget && Number(monthlyAdBudget) >= 50000) {\n amcData = {\n ...amcData,\n create: formData?.amc_services?.length\n ? [...formData?.amc_services, ...CustomizedDashboardObj]\n : [...CustomizedDashboardObj],\n };\n }\n }\n } else {\n let remainingamcServices = [];\n const deletedServices = [];\n if (event?.target?.name === 'Standard Dashboard') {\n const serviceItem = dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Standard Dashboard'),\n );\n remainingamcServices = formData?.amc_services?.filter(\n (item) => item?.name !== 'Standard Dashboard',\n );\n if (serviceItem) {\n deletedServices.push(serviceItem?.id);\n }\n }\n if (event?.target?.name === 'Advanced Dashboard') {\n const serviceItem = dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Advanced Dashboard'),\n );\n\n remainingamcServices = formData?.amc_services?.filter(\n (item) => item?.name !== 'Advanced Dashboard',\n );\n if (serviceItem) {\n deletedServices.push(serviceItem?.id);\n }\n }\n if (event?.target?.name === 'Customized Dashboard') {\n const serviceItem = dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Customized Dashboard'),\n );\n\n remainingamcServices = formData?.amc_services?.filter(\n (item) => item?.name !== 'Customized Dashboard',\n );\n if (serviceItem) {\n deletedServices.push(serviceItem?.id);\n }\n }\n amcData = {\n ...amcData,\n create: [...remainingamcServices],\n delete: amcData?.delete?.length\n ? [...amcData?.delete, ...deletedServices]\n : [...deletedServices],\n };\n }\n\n setFormData({\n ...formData,\n amc_services: [...amcData?.create],\n });\n setUpdatedFormData({\n ...updatedFormData,\n amc_services: { ...amcData },\n });\n };\n\n const handleChange = (event) => {\n showFooter(true);\n\n setAmcServiceError({});\n const customizedDashboardData = formData?.amc_services?.filter(\n (item) => item?.name === 'Customized Dashboard',\n );\n customizedDashboardData[0].fee = event?.target?.value?.replace(/,/g, '');\n\n const remainingamcServices = formData?.amc_services?.filter(\n (item) => item?.name !== 'Customized Dashboard',\n );\n\n setFormData({\n ...formData,\n amc_services: [\n ...remainingamcServices,\n { ...customizedDashboardData[0] },\n ],\n });\n setUpdatedFormData({\n ...updatedFormData,\n amc_services: {\n create: [...remainingamcServices, { ...customizedDashboardData[0] }],\n delete: updatedFormData?.amc_services?.delete\n ? [...updatedFormData?.amc_services?.delete]\n : [],\n },\n });\n };\n return (\n <>\n {advertisingDashboards?.length\n ? advertisingDashboards?.map((dashboard) => {\n return (\n <>\n \n
    \n
    \n \n \n {dashboard?.label}\n {\n handleAmcDashboard(event);\n }}\n checked={\n formData?.amc_services?.length &&\n formData?.amc_services?.find((item) =>\n item?.name?.includes(dashboard?.label),\n )?.name === dashboard?.label\n }\n />\n \n \n \n
    \n
    \n {(dashboard?.label === 'Customized Dashboard' &&\n formData?.amc_services?.find(\n (item) => item?.name === 'Customized Dashboard',\n )) ||\n (dashboard?.label === 'Advanced Dashboard' &&\n formData?.amc_services?.find(\n (item) => item?.name === 'Advanced Dashboard',\n ) &&\n monthlyAdBudget < 50000) ? (\n <>\n \n
    \n \n {selectedCurrency || '$'}\n \n\n \n item?.name === 'Customized Dashboard',\n )\n ? formData?.amc_services?.filter(\n (item) =>\n item?.name === 'Customized Dashboard',\n )?.[0]?.fee\n : ''\n }\n id={dashboard?.label}\n onChange={(event) => handleChange(event)}\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n return floatValue > 0;\n }}\n allowNegative={false}\n />\n
    \n
    \n\n
    \n {dashboard?.label === 'Customized Dashboard' &&\n amcServiceError?.fee?.length ? (\n \n {amcServiceError?.fee}\n \n ) : (\n ''\n )}\n
    \n \n ) : null}\n
    \n
    \n \n \n );\n })\n : null}\n\n {/* {subTabOptions?.length &&\n showSubTabs?.isOpen &&\n showSubTabs?.account_type === accountType\n ? [displaySubTabs()]\n : ''} */}\n \n );\n}\n\nexport default AdvertisingDashboards;\n\nAdvertisingDashboards.defaultProps = {\n advertisingDashboards: [],\n formData: {},\n setFormData: () => {},\n updatedFormData: {},\n setUpdatedFormData: () => {},\n selectedCurrency: '',\n monthlyAdBudget: null,\n contractAddendumDetails: {},\n details: {},\n showFooter: () => {},\n amcServiceError: {},\n setAmcServiceError: () => {},\n getAddedOrRemovedAMCServices: () => {},\n originalData: {},\n};\n\nAdvertisingDashboards.propTypes = {\n advertisingDashboards: arrayOf(shape({})),\n formData: shape({}),\n setFormData: func,\n updatedFormData: shape({}),\n setUpdatedFormData: func,\n selectedCurrency: string,\n monthlyAdBudget: number,\n contractAddendumDetails: shape({}),\n details: shape({}),\n showFooter: func,\n amcServiceError: shape({}),\n setAmcServiceError: func,\n getAddedOrRemovedAMCServices: func,\n originalData: shape({}),\n};\n","import React from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { string, func, arrayOf, shape } from 'prop-types';\n\nimport { InputFormField, CheckBox } from '../../../../common';\nimport AdvertisingDashboards from './AdvertisingDashboards';\n\nfunction AdvertisingServices({\n advertisingDashboards,\n formData,\n setFormData,\n updatedFormData,\n setUpdatedFormData,\n selectedCurrency,\n contractAddendumDetails,\n details,\n setShowCollpase,\n showSection,\n showFooter,\n amcServiceError,\n setAmcServiceError,\n onAddDiscount,\n discountData,\n getAddedOrRemovedAMCServices,\n originalData,\n}) {\n const standardDashboardObj = details?.amc_services?.find((item) =>\n item?.name.includes('Standard Dashboard'),\n )\n ? [\n details?.amc_services?.find((item) =>\n item?.name.includes('Standard Dashboard'),\n ),\n ]\n : [\n {\n name: 'Standard Dashboard',\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n },\n ];\n const advancedDashboardObj = details?.amc_services?.find((item) =>\n item?.name.includes('Advanced Dashboard'),\n )\n ? [\n details?.amc_services?.find((item) =>\n item?.name.includes('Advanced Dashboard'),\n ),\n ]\n : [\n {\n name: 'Advanced Dashboard',\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n },\n ];\n\n const advertisingServices = [\n {\n name: 'AMC Management',\n value: 'AMC Management',\n key: 'is_amc_management',\n },\n ];\n\n if (!formData?.contract_type?.includes('dsp')) {\n advertisingServices.unshift({\n name: 'DSP Advertising',\n value: 'DSP Advertising',\n key: 'is_dsp_advertising',\n });\n }\n\n const checkDspAdvertisingDisabledCondition = () => {\n if (originalData?.is_dsp_advertising) {\n // This if condition is for checking that -\n // original contract contains dsp service then\n // in addendum we allow user to uncheck and check dsp advertising service.\n return false;\n }\n if (contractAddendumDetails?.notActive) {\n // if its addendum then simply return !formData?.can_add_dsp_service\n // bcoz BE has handled already condition below\n // 'IF BP have DSP only agreement or another recurring agreement with DSP only service do not allow user to add DSP service'\n return !formData?.can_add_dsp_service;\n }\n return false;\n };\n\n const arrayMax = (arr) => {\n return arr.reduce((p, v) => {\n return p > v ? p : v;\n });\n };\n\n const getDSPMonthlyAdBudget = () => {\n if (formData?.is_dynamic_dsp_fee) {\n return arrayMax([\n Number(formData?.dsp_fee),\n Number(formData?.dsp_fee_second),\n Number(formData?.dsp_fee_third),\n ]);\n }\n return formData?.dsp_fee;\n };\n\n const monthlyAdBudget = getDSPMonthlyAdBudget();\n\n const showDiscountLabel = () => {\n const discount =\n discountData?.length &&\n discountData?.filter((item) =>\n item?.is_amc_service_discount ? item : null,\n );\n if (discount?.length && discount[0]?.type) {\n return 'Edit Discount';\n }\n return 'Add Discount';\n };\n\n const handleAmcServices = (event, amcData) => {\n showFooter(true);\n\n if (event?.target?.checked) {\n if (monthlyAdBudget && Number(monthlyAdBudget) < 50000) {\n amcData = {\n ...amcData,\n create: details?.amc_services?.length\n ? [...details?.amc_services]\n : [...standardDashboardObj],\n };\n }\n if (monthlyAdBudget && Number(monthlyAdBudget) >= 50000) {\n amcData = {\n ...amcData,\n create: [...standardDashboardObj, ...advancedDashboardObj],\n };\n }\n } else {\n const deletedServicesIds = [];\n if (formData?.amc_services?.length) {\n for (const item of formData?.amc_services) {\n if (Object.keys(item)?.includes('id')) {\n deletedServicesIds.push(item?.id);\n }\n }\n }\n\n amcData = {\n ...amcData,\n create: [],\n delete: deletedServicesIds?.length ? [...deletedServicesIds] : [],\n };\n }\n return amcData;\n };\n\n const handleChange = (event, serviceData) => {\n const dataToUpdate = {};\n let amcData = {\n create: formData?.amc_services ? [...formData?.amc_services] : [],\n delete: [],\n };\n\n if (serviceData?.key === 'is_dsp_advertising') {\n dataToUpdate[serviceData?.key] = event?.target?.checked;\n setShowCollpase({ ...showSection, dspAddendum: true });\n\n if (\n (monthlyAdBudget && Number(monthlyAdBudget) < 50000) ||\n (monthlyAdBudget && Number(monthlyAdBudget) >= 50000)\n )\n dataToUpdate.is_amc_management = event?.target?.checked;\n amcData = handleAmcServices(event, amcData);\n }\n if (serviceData?.key === 'is_amc_management') {\n if (\n (monthlyAdBudget && Number(monthlyAdBudget) < 50000) ||\n (monthlyAdBudget && Number(monthlyAdBudget) >= 50000)\n )\n dataToUpdate[serviceData?.key] = event?.target?.checked;\n amcData = handleAmcServices(event, amcData);\n }\n setFormData({\n ...formData,\n ...dataToUpdate,\n amc_services: [...amcData?.create],\n });\n setUpdatedFormData({\n ...updatedFormData,\n ...dataToUpdate,\n amc_services: { ...amcData },\n });\n };\n\n const checkIfAllSelectedAMCServicesFOC = () => {\n const list = formData?.amc_services;\n const serviceNotFOC = list?.find((item) => item?.fee > 0);\n if (!serviceNotFOC) {\n return true;\n }\n return false;\n };\n\n return (\n <>\n \n \n onAddDiscount('monthly service', '', true)}\n >\n {showDiscountLabel()}\n \n \n
    \n {advertisingServices?.length &&\n advertisingServices?.map((serviceData) => (\n \n \n \n \n {serviceData?.name}\n handleChange(event, serviceData)}\n defaultChecked={formData?.[serviceData?.key]}\n checked={formData?.[serviceData?.key]}\n />\n \n \n {checkDspAdvertisingDisabledCondition() &&\n serviceData?.key === 'is_dsp_advertising' ? (\n \n ) : null}\n \n
    \n\n {serviceData?.name === 'AMC Management' ? (\n \n ) : (\n ''\n )}\n \n ))}\n \n \n );\n}\n\nexport default AdvertisingServices;\n\nAdvertisingServices.defaultProps = {\n advertisingDashboards: [],\n formData: {},\n setFormData: () => {},\n updatedFormData: {},\n setUpdatedFormData: () => {},\n selectedCurrency: '',\n contractAddendumDetails: {},\n details: {},\n setShowCollpase: () => {},\n showSection: {},\n showFooter: () => {},\n amcServiceError: {},\n setAmcServiceError: () => {},\n onAddDiscount: () => {},\n discountData: {},\n getAddedOrRemovedAMCServices: () => {},\n originalData: {},\n};\n\nAdvertisingServices.propTypes = {\n advertisingDashboards: arrayOf(shape({})),\n formData: shape({}),\n setFormData: func,\n updatedFormData: shape({}),\n setUpdatedFormData: func,\n selectedCurrency: string,\n contractAddendumDetails: shape({}),\n details: shape({}),\n setShowCollpase: func,\n showSection: shape({}),\n showFooter: func,\n amcServiceError: shape({}),\n setAmcServiceError: () => {},\n onAddDiscount: () => {},\n discountData: {},\n getAddedOrRemovedAMCServices: () => {},\n originalData: {},\n};\n","import React from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport { Collapse } from 'react-collapse';\nimport {\n string,\n bool,\n number,\n func,\n oneOfType,\n arrayOf,\n shape,\n object,\n} from 'prop-types';\n\nimport AdditionalOneTimeServices from './AdditionalOneTimeServices';\nimport AdditionalMonthlyServices from './AdditionalMonthlyServices';\nimport AdditionalMarketplaces from './AdditionalMarketplaces';\nimport ListingTranslation from './ListingTranslation';\nimport StandardServicesForNonUS from './StandardServicesForNonUS';\nimport { ListingOptimization } from '../../../../constants';\nimport { StatementWork, PlusIcon, MinusIcon } from '../../../../theme/images';\nimport { Button, InputFormField, ErrorMsg } from '../../../../common';\nimport StandardServices from './StandardServices';\nimport { checkDisabledConditionForListing } from '../../../../common/ConditionsForStatementOfWork';\nimport AdvertisingServices from './AdvertisingServices';\n\nfunction StatementOfWork({\n executeScroll,\n setOpenCollapse,\n openCollapse,\n statementErrCount,\n renderCollapseBtnErrorHtml,\n loader,\n generateHTML,\n displayError,\n formData,\n contractError,\n handleChange,\n onAddDiscount,\n monthlyService,\n showRightTick,\n nextStep,\n showAdditionalMarketplace,\n setShowAdditionalMarketplace,\n showSection,\n additionalMonthlySerError,\n oneTimeService,\n changeQuantity,\n additionalOnetimeSerError,\n setShowAmazonPlanDropdown,\n amazonService,\n showAmazonPlanDropdown,\n amazonStoreCustom,\n setAmazonStoreCustom,\n AmazonStoreOptions,\n showFooter,\n setContractError,\n setFormData,\n setUpdatedFormData,\n updatedFormData,\n additionalOnetimeServices,\n clearOneTimeQntyError,\n updateAdditionalOnetimeServicesSelectedData,\n setShowCollpase,\n originalData,\n additionalMonthlyServices,\n updateAdditionalMonthlyServices,\n setMonthlyAdditionalServices,\n fetchUncommonOptions,\n getOptions,\n additionalMarketplacesData,\n agreementData,\n setAdditionalMarketplaces,\n updateAdditionalMarketplaces,\n setAdditionalMarketplace,\n setMarketPlaces,\n marketplacesResult,\n discountData,\n servicesFees,\n getData,\n selectedCurrency,\n stdServices,\n setNonUSserviceError,\n nonUsServiceError,\n updateStatementErrorValue,\n sectionError,\n setAdditionalOnetimeServices,\n notIncludedOneTimeServices,\n setNotIncludedOneTimeServices,\n showAmazonStorefrontDropdown,\n setShowAmazonStorefrontDropdown,\n setAdditionalOnetimeSerError,\n addendumDetails,\n contractAddendumDetails,\n details,\n displayMarketplaceName,\n setVatMarketplaces,\n combinedOneTimeServices,\n filterNotIncludedOneTimeServices,\n savedMarketplaces,\n advertisingServices,\n amcServiceError,\n setAmcServiceError,\n getAddedOrRemovedAMCServices,\n}) {\n const contractType = formData?.contract_type;\n const additionalOneTimeServicesLength =\n formData?.additional_one_time_services?.length;\n const accountType = formData?.seller_type?.value;\n\n const changeListOptimization = (key, flag) => {\n showFooter(true);\n let updatedData = 0;\n if (\n Object.keys(contractError)?.includes('content_optimization') ||\n Object.keys(contractError)?.includes('design_optimization') ||\n Object.keys(contractError)?.includes('photography_optimization')\n ) {\n setContractError({\n ...contractError,\n [key]: '',\n });\n }\n if (flag === 'minus') {\n if (formData && formData[key]) {\n updatedData =\n parseInt(formData[key], 10) - 1\n ? parseInt(formData[key], 10) - 1\n : null;\n } else {\n updatedData = null;\n }\n }\n if (flag === 'plus') {\n if (formData && formData[key]) {\n if (parseInt(formData[key], 10) < 25) {\n updatedData = parseInt(formData[key], 10) + 1;\n }\n } else {\n updatedData = 1;\n }\n }\n setFormData({\n ...formData,\n [key]: updatedData,\n });\n setUpdatedFormData({\n ...updatedFormData,\n [key]: updatedData,\n });\n };\n\n const displayListingOptimizations = () => {\n return (\n <>\n \n \n \n \n {ListingOptimization.map((field) => {\n return (\n \n
    \n
    \n \n
    \n
    \n changeListOptimization(field.key, 'minus')}\n disabled={checkDisabledConditionForListing(\n formData,\n field?.key,\n )}\n >\n \"\"\n \n\n \n handleChange(event, 'listing_optimization')\n }\n allowNegative={false}\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n return floatValue <= 25;\n }}\n />\n\n changeListOptimization(field.key, 'plus')}\n >\n \"\"\n \n
    \n
    \n {contractError &&\n contractError[field.key] &&\n contractError[field.key][0] ? (\n \n {contractError &&\n contractError[field.key] &&\n contractError[field.key][0]}\n \n ) : (\n ''\n )}\n
    \n
    \n
    \n );\n })}\n \n );\n };\n\n const displayAdditionalMonthlyServices = (type) => {\n return (\n \n );\n };\n\n return contractType?.toLowerCase()?.includes('one') ||\n contractType?.toLowerCase()?.includes('dsp') ? null : (\n <>\n
    \n {\n if (contractAddendumDetails?.notActive)\n executeScroll('draft-addendum');\n else executeScroll('statement');\n setOpenCollapse({ statement: !openCollapse.statement });\n }}\n >\n \"pdf\"\n\n \n Statement of Work\n {renderCollapseBtnErrorHtml(\n false,\n statementErrCount,\n openCollapse.statement,\n 'statement',\n )}\n \n
    \n
    \n \n {loader ? null : (\n <>\n
      \n
    • {displayListingOptimizations()}
    • \n {accountType === 'Seller' || accountType === 'Vendor' ? (\n
    • \n {displayAdditionalMonthlyServices(accountType)}{' '}\n \n
    • \n ) : (\n ''\n )}\n \n\n {accountType === 'Hybrid' ? (\n <>\n
    • Seller Services
    • \n
    • \n {displayAdditionalMonthlyServices('Seller')}\n\n \n
    • \n\n
    • Vendor Services
    • \n
    • \n {displayAdditionalMonthlyServices('Vendor')}\n \n
    • \n \n ) : (\n ''\n )}\n {formData?.channel?.value === 'walmart' ? null : (\n <>\n
    • \n {' '}\n Advertising Services\n
    • \n
    • \n \n
    • \n\n
    • \n \n
    • \n
    • \n \n
    • \n \n )}\n
    • \n item.name === 'Amazon Store Package',\n )\n ? 'btn-primary btn-next-section sidepanel mt-1 mb-3 w-100 '\n : 'btn-primary btn-next-section sidepanel mt-1 mb-3 w-100 '\n }\n disabled={\n (formData?.additional_one_time_services?.length &&\n formData.additional_one_time_services.find(\n (item) => item.name === 'Amazon Store Package',\n )) ||\n !showRightTick('statement')\n }\n onClick={() =>\n showSection && showSection.dspAddendum\n ? nextStep('dspAddendum')\n : nextStep('addendum')\n }\n >\n Proceed to Next Section\n \n
    • \n
    \n \n )}\n
    \n \n );\n}\n\nexport default StatementOfWork;\n\nStatementOfWork.defaultProps = {\n executeScroll: () => {},\n setOpenCollapse: () => {},\n openCollapse: {},\n statementErrCount: 0,\n renderCollapseBtnErrorHtml: () => {},\n loader: false,\n generateHTML: () => {},\n displayError: () => {},\n\n formData: {},\n contractError: {},\n handleChange: () => {},\n onAddDiscount: () => {},\n monthlyService: [],\n showRightTick: () => {},\n nextStep: () => {},\n showAdditionalMarketplace: false,\n setShowAdditionalMarketplace: () => {},\n showSection: {},\n additionalMonthlySerError: {},\n oneTimeService: [],\n changeQuantity: () => {},\n additionalOnetimeSerError: {},\n setShowAmazonPlanDropdown: () => {},\n amazonService: {},\n showAmazonPlanDropdown: false,\n amazonStoreCustom: bool,\n setAmazonStoreCustom: func,\n AmazonStoreOptions: [],\n showFooter: () => {},\n setContractError: () => {},\n setFormData: () => {},\n setUpdatedFormData: () => {},\n updatedFormData: {},\n additionalOnetimeServices: {},\n clearOneTimeQntyError: () => {},\n updateAdditionalOnetimeServicesSelectedData: () => {},\n setShowCollpase: () => {},\n originalData: {},\n additionalMonthlyServices: {},\n updateAdditionalMonthlyServices: () => {},\n setMonthlyAdditionalServices: () => {},\n fetchUncommonOptions: () => {},\n getOptions: () => {},\n additionalMarketplacesData: {},\n agreementData: {},\n setAdditionalMarketplaces: () => {},\n updateAdditionalMarketplaces: () => {},\n setAdditionalMarketplace: () => {},\n setMarketPlaces: () => {},\n marketplacesResult: [],\n discountData: [],\n servicesFees: {},\n getData: () => {},\n selectedCurrency: '$ (USD)',\n stdServices: [],\n setNonUSserviceError: () => {},\n nonUsServiceError: {},\n updateStatementErrorValue: () => {},\n sectionError: {},\n setAdditionalOnetimeServices: () => {},\n notIncludedOneTimeServices: [],\n setNotIncludedOneTimeServices: () => {},\n showAmazonStorefrontDropdown: false,\n setShowAmazonStorefrontDropdown: () => {},\n setAdditionalOnetimeSerError: () => {},\n addendumDetails: {},\n contractAddendumDetails: {},\n details: {},\n displayMarketplaceName: () => {},\n setVatMarketplaces: () => {},\n combinedOneTimeServices: [],\n filterNotIncludedOneTimeServices: () => {},\n savedMarketplaces: [],\n advertisingServices: [],\n amcServiceError: {},\n setAmcServiceError: () => {},\n getAddedOrRemovedAMCServices: () => {},\n};\n\nStatementOfWork.propTypes = {\n executeScroll: func,\n setOpenCollapse: func,\n openCollapse: shape({\n agreement: bool,\n statement: bool,\n addendum: bool,\n dspAddendum: bool,\n }),\n statementErrCount: number,\n renderCollapseBtnErrorHtml: func,\n loader: bool,\n generateHTML: func,\n displayError: func,\n\n formData: shape({\n threshold_type: string,\n additional_one_time_services: arrayOf(shape({})),\n additional_monthly_services: arrayOf(shape({})),\n monthly_discount_amount: oneOfType([string, number]),\n monthly_discount_type: oneOfType([string, number]),\n }),\n contractError: shape({\n yoy_percentage: string,\n }),\n handleChange: func,\n onAddDiscount: func,\n monthlyService: arrayOf(shape({})),\n showRightTick: func,\n nextStep: func,\n showAdditionalMarketplace: bool,\n setShowAdditionalMarketplace: func,\n showSection: shape({\n addendum: bool,\n dspAddendum: bool,\n }),\n additionalMonthlySerError: oneOfType([string, object]),\n oneTimeService: arrayOf(shape({})),\n changeQuantity: func,\n additionalOnetimeSerError: shape({\n quantity: number,\n custom_amazon_store_price: number,\n }),\n setShowAmazonPlanDropdown: func,\n amazonService: shape({}),\n showAmazonPlanDropdown: bool,\n amazonStoreCustom: bool,\n setAmazonStoreCustom: func,\n AmazonStoreOptions: arrayOf(shape({})),\n showFooter: func,\n setContractError: func,\n setFormData: func,\n setUpdatedFormData: func,\n updatedFormData: shape({}),\n additionalOnetimeServices: shape({\n create: arrayOf(shape({})),\n delete: arrayOf(string, shape({})),\n }),\n clearOneTimeQntyError: func,\n updateAdditionalOnetimeServicesSelectedData: func,\n setShowCollpase: func,\n originalData: {},\n additionalMonthlyServices: shape({}),\n updateAdditionalMonthlyServices: func,\n setMonthlyAdditionalServices: func,\n fetchUncommonOptions: func,\n getOptions: func,\n additionalMarketplacesData: shape({}),\n agreementData: {},\n setAdditionalMarketplaces: func,\n updateAdditionalMarketplaces: func,\n setAdditionalMarketplace: func,\n setMarketPlaces: func,\n marketplacesResult: arrayOf(shape({})),\n discountData: [],\n servicesFees: shape({}),\n getData: func,\n selectedCurrency: string,\n stdServices: arrayOf(shape({})),\n setNonUSserviceError: func,\n nonUsServiceError: shape({}),\n updateStatementErrorValue: func,\n sectionError: shape({}),\n setAdditionalOnetimeServices: func,\n notIncludedOneTimeServices: arrayOf(shape({})),\n setNotIncludedOneTimeServices: func,\n showAmazonStorefrontDropdown: bool,\n setShowAmazonStorefrontDropdown: func,\n setAdditionalOnetimeSerError: func,\n addendumDetails: shape({}),\n contractAddendumDetails: shape({}),\n details: shape({}),\n displayMarketplaceName: func,\n setVatMarketplaces: func,\n combinedOneTimeServices: arrayOf(shape({})),\n filterNotIncludedOneTimeServices: func,\n savedMarketplaces: arrayOf(shape({})),\n advertisingServices: arrayOf(shape({})),\n amcServiceError: shape({}),\n setAmcServiceError: func,\n getAddedOrRemovedAMCServices: func,\n};\n","import React from 'react';\n\nimport Select from 'react-select';\nimport { arrayOf, shape, func, bool } from 'prop-types';\n\nimport { DropdownIndicator } from '../../../../common';\n\nfunction AdditionalDspMarketplaces({\n dspAdditionalMarketplaces,\n formData,\n item,\n showFooter,\n setFormData,\n setUpdatedFormData,\n updatedFormData,\n originalData,\n sectionError,\n setSectionError,\n contractAddendumDetails,\n addendumDetails,\n dspMarketpalcesError,\n setDspMarketpalcesError,\n displayMarketplaceName,\n}) {\n const checkClickedElementAlreadyExists = (event, value) => {\n if (dspMarketpalcesError && Object.keys(dspMarketpalcesError).length) {\n setDspMarketpalcesError({\n ...dspMarketpalcesError,\n monthly_budget: '',\n one_time_buget: '',\n });\n }\n let clickedValue = '';\n if (value.action === 'select-option') {\n clickedValue = value?.option?.value;\n }\n if (value.action === 'remove-value') {\n clickedValue = value?.removedValue.value;\n }\n\n const contractData = contractAddendumDetails?.notActive\n ? addendumDetails\n : originalData;\n const itemInFormData =\n contractData?.dsp_marketplaces?.length &&\n contractData?.dsp_marketplaces?.find(\n (originalItem) => originalItem && originalItem?.name === clickedValue,\n );\n return itemInFormData;\n };\n\n const handleError = (event, value) => {\n if (\n !formData?.dsp_marketplaces ||\n (event?.length === 1 && value?.action === 'select-option')\n ) {\n setSectionError({\n ...sectionError,\n dsp: sectionError.dsp - 1,\n });\n }\n\n if (!event) {\n setSectionError({\n ...sectionError,\n dsp: sectionError.dsp + 1,\n });\n }\n };\n\n const handleChange = (event, value) => {\n showFooter(true);\n if (dspMarketpalcesError && Object.keys(dspMarketpalcesError).length)\n setDspMarketpalcesError({\n ...dspMarketpalcesError,\n monthly_budget: '',\n one_time_buget: '',\n });\n if (value.action === 'select-option') {\n const itemInFormData = checkClickedElementAlreadyExists(event, value);\n // checked whether checked item present in newly created list\n if (\n !(\n updatedFormData?.dsp_marketplaces?.create &&\n updatedFormData?.dsp_marketplaces?.create.find(\n (updatedFormItem) => updatedFormItem?.name === value?.option?.value,\n )\n )\n ) {\n // if checked item not found in newly created list then again check whether it is present in original formData variable because if it is found in formData then we need to add that found item in newly created list bcoz we need id and all of that item to push in newly created list.\n // here we check whether checked item present in orginal formDAta list then add that found item in newly created list\n if (itemInFormData) {\n setFormData({\n ...formData,\n dsp_marketplaces: [...formData?.dsp_marketplaces, itemInFormData],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n dsp_marketplaces: {\n ...updatedFormData?.dsp_marketplaces,\n create: [...formData?.dsp_marketplaces, itemInFormData],\n delete: updatedFormData?.dsp_marketplaces?.delete?.filter(\n (updatedFormItem) => updatedFormItem !== itemInFormData.id,\n ),\n },\n });\n }\n // else we create dict as BE required for new item and we push that in newly created list\n else {\n const newContractData = {\n contract_id: originalData && originalData.id,\n name: value?.option?.value,\n };\n const newAddendumData = {\n contract_addendum_id: contractAddendumDetails?.id,\n name: value?.option?.value,\n };\n setFormData({\n ...formData,\n dsp_marketplaces: formData?.dsp_marketplaces?.length\n ? [\n ...formData?.dsp_marketplaces,\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ]\n : [\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ],\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n dsp_marketplaces: {\n ...updatedFormData?.dsp_marketplaces,\n create: formData?.dsp_marketplaces?.length\n ? [\n ...formData?.dsp_marketplaces,\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ]\n : [\n contractAddendumDetails?.notActive\n ? newAddendumData\n : newContractData,\n ],\n },\n });\n }\n }\n }\n if (value.action === 'remove-value') {\n const itemInFormData = checkClickedElementAlreadyExists(event, value);\n\n // if unchecked item found in original list then add its id to newly created delte list\n if (itemInFormData?.id) {\n const removeBudgetAllocations = [...formData.dsp_marketplaces];\n for (const market of removeBudgetAllocations) {\n market.monthly_budget = null;\n market.one_time_buget = null;\n }\n setFormData({\n ...formData,\n dsp_marketplaces: formData?.dsp_marketplaces?.filter(\n (marketplace) => marketplace.id !== itemInFormData?.id,\n ),\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n dsp_marketplaces: {\n ...updatedFormData?.dsp_marketplaces,\n create: formData?.dsp_marketplaces?.filter(\n (marketplace) => marketplace.id !== itemInFormData?.id,\n ),\n delete: updatedFormData?.dsp_marketplaces?.delete?.length\n ? [\n ...updatedFormData?.dsp_marketplaces?.delete,\n itemInFormData.id,\n ]\n : [itemInFormData.id],\n },\n });\n } else {\n const updatedCreateList =\n updatedFormData?.dsp_marketplaces?.create?.filter(\n (marketplace) => marketplace.name !== value.removedValue.value,\n );\n\n const updatedVATData = updatedCreateList;\n\n setFormData({\n ...formData,\n dsp_marketplaces: updatedVATData,\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n dsp_marketplaces: {\n ...updatedFormData?.dsp_marketplaces,\n create: updatedVATData,\n },\n });\n }\n }\n handleError(event, value);\n };\n\n const displayMrketplaces = () => {\n const result = [];\n\n if (formData?.dsp_marketplaces?.length) {\n for (const marketplace of formData?.dsp_marketplaces) {\n result.push({\n label: displayMarketplaceName(marketplace.name, 'dsp'),\n value: marketplace.name,\n });\n }\n }\n return result;\n };\n\n return (\n <>\n \n ({\n ...base,\n background:\n (!(formData && formData[item.key]) && item.isMandatory) ||\n !formData?.[item.key]?.length\n ? '#FBF2F2'\n : '#F4F6FC',\n // match with the menu\n // borderRadius: state.isFocused ? '3px 3px 0 0' : 3,\n // Overwrittes the different states of border\n borderColor:\n (!(formData && formData[item.key]) && item.isMandatory) ||\n !formData?.[item.key]?.length\n ? '#D63649'\n : '#D5D8E1',\n\n // Removes weird border around container\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n // Overwrittes the different states of border\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n }),\n placeholder: (defaultStyles) => {\n return {\n ...defaultStyles,\n color: '556178',\n };\n },\n option: (styles, { isDisabled }) => {\n return {\n ...styles,\n color: isDisabled ? '556178' : '556178',\n };\n },\n }}\n isMulti\n name=\"dsp_marketplaces\"\n onChange={(event, value) => handleChange(event, value)}\n defaultValue={\n formData?.dsp_marketplaces?.length ? displayMrketplaces() : null\n }\n components={{ DropdownIndicator }}\n isClearable={false}\n />\n \n );\n}\n\nexport default AdditionalDspMarketplaces;\n\nAdditionalDspMarketplaces.defaultProps = {\n dspAdditionalMarketplaces: [],\n formData: {},\n item: {},\n showFooter: () => {},\n setFormData: () => {},\n setUpdatedFormData: () => {},\n updatedFormData: {},\n originalData: {},\n sectionError: {},\n setSectionError: () => {},\n contractAddendumDetails: {},\n addendumDetails: {},\n dspMarketpalcesError: {},\n setDspMarketpalcesError: () => {},\n displayMarketplaceName: () => {},\n // savedMarketplaces: [],\n};\nAdditionalDspMarketplaces.propTypes = {\n dspAdditionalMarketplaces: arrayOf(shape({})),\n formData: shape({}),\n item: shape({}),\n showFooter: func,\n setFormData: func,\n setUpdatedFormData: func,\n updatedFormData: shape({}),\n originalData: shape({}),\n sectionError: shape({}),\n setSectionError: func,\n contractAddendumDetails: shape({ notActive: bool }),\n addendumDetails: shape({}),\n dspMarketpalcesError: shape({}),\n setDspMarketpalcesError: func,\n displayMarketplaceName: func,\n // savedMarketplaces: arrayOf(shape({})),\n};\n","/* eslint-disable no-lonely-if */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport { shape, string, func } from 'prop-types';\n\nimport { CheckBox, ErrorMsg, InputFormField } from '../../../../common';\n\nexport default function DspMarketplaceBudgetAllocations({\n item,\n formData,\n type,\n selectedCurrency,\n setSectionError,\n sectionError,\n showError,\n setShowError,\n updatedFormData,\n setUpdatedFormData,\n runValidateBudget,\n showFooter,\n setFormData,\n dspMarketpalcesError,\n setDspMarketpalcesError,\n displayMarketplaceName,\n}) {\n const budgetType = 'One time';\n const oneTimeBudget = [];\n const totalOneTimeBudget = 0;\n\n useEffect(() => {\n if (formData?.dsp_marketplaces?.length) {\n for (const market of formData?.dsp_marketplaces) {\n market.dsp_fee = formData?.dsp_fee || null;\n market.dsp_one_time_fee = formData?.dsp_one_time_fee || null;\n market.monthly_budget_distribution_equally =\n formData?.monthly_budget_distribution_equally || false;\n market.one_time_budget_distribution_equally =\n formData?.one_time_budget_distribution_equally || false;\n market.changed_dsp_start_date =\n formData.changed_dsp_start_date || false;\n\n if (formData?.dsp_marketplaces?.length === 1) {\n market.one_time_budget = formData?.dsp_one_time_fee || null;\n } else {\n const budgetValue = market.one_time_budget\n ? Number(market.one_time_budget)\n : formData?.dsp_one_time_fee / formData?.dsp_marketplaces?.length;\n market.one_time_budget = budgetValue\n ?.toFixed(2)\n ?.replaceAll('.00', '');\n }\n }\n }\n }, [\n formData.dsp_marketplaces,\n formData.changed_dsp_start_date,\n formData.dsp_one_time_fee,\n formData.one_time_budget_distribution_equally,\n ]);\n\n const getDspNumber = (section) => {\n if (section.dsp === 0) return 1;\n return section.dsp;\n };\n\n const getErrorCount = () => {\n if (\n showError[`${type}_length`] ||\n showError?.oneTime ||\n showError?.firstBudgetAllocationError ||\n showError?.secondBudgetAllocationError ||\n showError?.thirdBudgetAllocationError\n ) {\n setSectionError((prevState) => ({\n ...prevState,\n dsp: prevState.dsp + 1,\n }));\n }\n if (\n !showError[`${type}_length`] ||\n (!showError?.firstBudgetAllocationError &&\n !showError?.secondBudgetAllocationError &&\n !showError?.thirdBudgetAllocationError) ||\n !showError?.oneTime\n )\n setSectionError((prevState) => ({\n ...prevState,\n dsp: getDspNumber(prevState) - 1,\n }));\n };\n\n const validateBudget = (key, budgetArray, totalBudget, adBudget) => {\n if (formData?.dsp_marketplaces?.length) {\n for (const market of formData?.dsp_marketplaces) {\n market[key] =\n typeof market[key] === 'string'\n ? market?.[key]?.replaceAll(',', '')\n : market[key];\n budgetArray.push(Number(market?.[key]) || 0);\n }\n\n totalBudget = budgetArray.reduce((temp1, temp2) => temp1 + temp2);\n if (formData?.dsp_marketplaces?.filter((op) => !op?.[key])?.length) {\n setShowError((prevState) => ({\n ...prevState,\n [type]: false,\n }));\n } else {\n if (totalBudget !== Number(adBudget || 0)) {\n // check the total budget matches the allocated budget\n setShowError((prevState) => ({\n ...prevState,\n [type]: true,\n }));\n getErrorCount();\n } else {\n setShowError((prevState) => ({\n ...prevState,\n [type]: false,\n }));\n getErrorCount();\n }\n }\n }\n\n // check the allocation bugdet lengths\n if (formData?.dsp_marketplaces?.filter((op) => !op?.[key])?.length !== 0) {\n setShowError((prevState) => ({\n ...prevState,\n [`${type}_length`]: true,\n }));\n getErrorCount();\n } else {\n setShowError((prevState) => ({\n ...prevState,\n [`${type}_length`]: false,\n }));\n getErrorCount();\n }\n };\n\n const budgetTypeValidation = () => {\n if (type === 'oneTime') {\n validateBudget(\n 'one_time_budget',\n oneTimeBudget,\n totalOneTimeBudget,\n formData?.dsp_one_time_fee,\n );\n }\n };\n\n useEffect(() => {\n budgetTypeValidation();\n getErrorCount();\n }, [\n runValidateBudget,\n formData.dsp_marketplaces,\n formData.dsp_one_time_fee,\n formData.changed_dsp_start_date,\n formData.dsp_fee,\n formData?.one_time_budget_distribution_equally,\n ]);\n\n const convertMarketplacesToNumber = (key, updatedDspMarketplace) => {\n return updatedDspMarketplace.filter((market) => {\n market[key] =\n typeof market[key] === 'string'\n ? market[key]?.replaceAll(',', '')\n : market[key];\n return Number(market[key]);\n });\n };\n\n const handleChange = (field, key, value, marketplace, budget) => {\n showFooter(true);\n if (dspMarketpalcesError && Object.keys(dspMarketpalcesError).length)\n setDspMarketpalcesError({ ...dspMarketpalcesError, [key]: '' });\n const updatedDspMarketplace = [...formData?.dsp_marketplaces];\n if (field === 'budget') {\n for (const market of formData?.dsp_marketplaces) {\n if (market.name === marketplace) {\n market[key] = value;\n }\n market.dsp_fee = formData?.dsp_fee || null;\n market.dsp_one_time_fee = formData?.dsp_one_time_fee || null;\n market.monthly_budget_distribution_equally =\n formData?.monthly_budget_distribution_equally || false;\n market.one_time_budget_distribution_equally =\n formData?.one_time_budget_distribution_equally || false;\n market.changed_dsp_start_date =\n formData.changed_dsp_start_date || false;\n }\n convertMarketplacesToNumber(key, updatedDspMarketplace);\n setUpdatedFormData({\n ...updatedFormData,\n dsp_marketplaces: {\n ...updatedFormData.dsp_marketplaces,\n create: updatedDspMarketplace,\n },\n });\n }\n if (field === 'checkbox') {\n const budgetValue =\n formData?.[marketplace] / formData?.dsp_marketplaces?.length;\n for (const market of formData?.dsp_marketplaces) {\n market[budget] = budgetValue?.toFixed(2)?.replaceAll('.00', '');\n }\n convertMarketplacesToNumber(key, updatedDspMarketplace);\n setUpdatedFormData({\n ...updatedFormData,\n [key]: value,\n dsp_marketplaces: {\n ...updatedFormData.dsp_marketplaces,\n create: updatedDspMarketplace,\n },\n });\n setFormData({ ...formData, [key]: value });\n }\n };\n\n const generateInput = () => {\n return formData?.dsp_marketplaces?.map((field) => (\n <>\n \n \n \n \n ));\n };\n\n return (\n <>\n {!formData?.dsp_marketplaces?.length ? null : (\n <>\n
    \n {`${budgetType} Budget Allocation`}\n
    \n

    \n {`Allocate the ${budgetType} budget over the DSP marketplaces to create\n the DSP invoice accordingly.`}\n

    \n {formData?.dsp_marketplaces?.length === 1 ? null : (\n \n \n Distribute Budget Equally\n {\n handleChange(\n 'checkbox',\n type === 'monthly'\n ? 'monthly_budget_distribution_equally'\n : 'one_time_budget_distribution_equally',\n event.target.checked,\n type === 'monthly' ? 'dsp_fee' : 'dsp_one_time_fee',\n type === 'monthly' ? 'monthly_budget' : 'one_time_budget',\n );\n if (\n dspMarketpalcesError &&\n Object.keys(dspMarketpalcesError).length\n )\n setDspMarketpalcesError({\n ...dspMarketpalcesError,\n [type === 'monthly'\n ? 'monthly_budget'\n : 'one_time_budget']: '',\n });\n }}\n defaultChecked={\n formData?.one_time_budget_distribution_equally\n }\n />\n \n \n \n )}\n\n {generateInput()}\n {dspMarketpalcesError?.one_time_budget}\n\n {dspMarketpalcesError &&\n Object.keys(dspMarketpalcesError).length === 0 &&\n showError[type] ? (\n \n {`Please allocate marketplaces amount equal to the ${budgetType} budget amount.`}\n \n ) : null}\n \n )}\n \n );\n}\n\nDspMarketplaceBudgetAllocations.defaultProps = {\n formData: {},\n item: {},\n type: 'monthly',\n selectedCurrency: '$ (USD)',\n setFormData: () => {},\n sectionError: {},\n setSectionError: () => {},\n showError: {\n monthly: false,\n oneTime: false,\n },\n setShowError: () => {},\n updatedFormData: {},\n setUpdatedFormData: () => {},\n runValidateBudget: {},\n showFooter: () => {},\n dspMarketpalcesError: {},\n setDspMarketpalcesError: () => {},\n displayMarketplaceName: () => {},\n};\nDspMarketplaceBudgetAllocations.propTypes = {\n formData: shape({}),\n item: shape({}),\n type: string,\n selectedCurrency: string,\n setFormData: func,\n sectionError: shape({}),\n setSectionError: func,\n showError: shape({}),\n setShowError: func,\n updatedFormData: shape({}),\n setUpdatedFormData: func,\n runValidateBudget: shape({}),\n showFooter: func,\n dspMarketpalcesError: shape({}),\n setDspMarketpalcesError: func,\n displayMarketplaceName: func,\n};\n","/* eslint-disable no-lonely-if */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect } from 'react';\n\nimport dayjs from 'dayjs';\nimport NumberFormat from 'react-number-format';\nimport { shape, string, func, instanceOf } from 'prop-types';\n\nimport { CheckBox, ErrorMsg, InputFormField } from '../../../../common';\n\nexport default function MonthlyDSPBudgetAllocation({\n item,\n formData,\n type,\n selectedCurrency,\n setSectionError,\n showError,\n setShowError,\n updatedFormData,\n setUpdatedFormData,\n runValidateBudget,\n showFooter,\n setFormData,\n dspMarketpalcesError,\n setDspMarketpalcesError,\n displayMarketplaceName,\n firstMonthDate,\n secondMonthDate,\n thirdMonthDate,\n returnDspMonthlyDates,\n}) {\n const budgetType = type === 'monthly' ? 'Monthly' : 'One time';\n const formattedFirstDateForBE = !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(firstMonthDate), 1)).format(\n 'YYYY-MM-DD',\n );\n\n const formattedSecondDateForBE = !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(secondMonthDate), 1)).format(\n 'YYYY-MM-DD',\n );\n const formattedThirdDateForBE = !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(thirdMonthDate), 1)).format(\n 'YYYY-MM-DD',\n );\n\n const monthsList = [\n {\n key: 'monthly_budget',\n label: !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1),\n formattedDateForBE: !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(firstMonthDate), 1)).format(\n 'YYYY-MM-DD',\n ),\n type: 'number-currency',\n placeholder: `Enter ${dayjs(\n !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1),\n ).format('MMMM')}`,\n isMandatory: true,\n part: 'dsp',\n isDynamicMonthlyBudget: true,\n },\n {\n key: 'monthly_budget_second',\n label: !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(secondMonthDate), 1),\n formattedDateForBE: !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(secondMonthDate), 1)).format(\n 'YYYY-MM-DD',\n ),\n type: 'number-currency',\n placeholder: `Enter ${dayjs(\n !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(secondMonthDate), 1),\n ).format('MMMM')}`,\n isMandatory: true,\n part: 'dsp',\n isDynamicMonthlyBudget: true,\n },\n {\n key: 'monthly_budget_third',\n label: !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(thirdMonthDate), 1),\n formattedDateForBE: !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(thirdMonthDate), 1)).format(\n 'YYYY-MM-DD',\n ),\n type: 'number-currency',\n placeholder: `Enter ${dayjs(\n !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(thirdMonthDate), 1),\n ).format('MMMM')}`,\n isMandatory: true,\n part: 'dsp',\n isDynamicMonthlyBudget: true,\n },\n ];\n\n useEffect(() => {\n if (formData?.dsp_marketplaces?.length) {\n for (const market of formData?.dsp_marketplaces) {\n market.dsp_fee = formData?.dsp_fee || null;\n market.dsp_fee_second = formData?.is_dynamic_dsp_fee\n ? formData?.dsp_fee_second\n : formData?.dsp_fee || null;\n market.dsp_fee_third = formData?.is_dynamic_dsp_fee\n ? formData?.dsp_fee_third\n : formData?.dsp_fee || null;\n\n if (formData?.dsp_marketplaces?.length === 1) {\n market.monthly_budget = formData?.is_dynamic_dsp_fee\n ? formData?.dsp_fee\n : formData?.dsp_fee;\n\n market.monthly_budget_second = formData?.is_dynamic_dsp_fee\n ? formData?.dsp_fee_second\n : formData?.dsp_fee;\n\n market.monthly_budget_third = formData?.is_dynamic_dsp_fee\n ? formData?.dsp_fee_third\n : formData?.dsp_fee;\n } else {\n let budgetValue = '';\n let firstMonthDistributedValue = '';\n let secondMonthDistributedValue = '';\n let thirdMonthDistributedValue = '';\n\n if (formData?.is_dynamic_dsp_fee) {\n firstMonthDistributedValue = market?.monthly_budget\n ? Number(market?.monthly_budget)\n : formData?.dsp_fee / formData?.dsp_marketplaces?.length;\n secondMonthDistributedValue = market?.monthly_budget_second\n ? Number(market?.monthly_budget_second)\n : formData?.dsp_fee_second / formData?.dsp_marketplaces?.length;\n\n thirdMonthDistributedValue = market?.monthly_budget_third\n ? Number(market?.monthly_budget_third)\n : formData?.dsp_fee_third / formData?.dsp_marketplaces?.length;\n } else {\n budgetValue =\n formData?.dsp_fee / formData?.dsp_marketplaces?.length;\n market.monthly_budget = budgetValue\n ?.toFixed(2)\n ?.replaceAll('.00', '');\n }\n market.monthly_budget = formData?.is_dynamic_dsp_fee\n ? firstMonthDistributedValue?.toFixed(2)?.replaceAll('.00', '')\n : budgetValue?.toFixed(2)?.replaceAll('.00', '');\n\n market.monthly_budget_second = formData?.is_dynamic_dsp_fee\n ? secondMonthDistributedValue?.toFixed(2)?.replaceAll('.00', '')\n : budgetValue?.toFixed(2)?.replaceAll('.00', '');\n\n market.monthly_budget_third = formData?.is_dynamic_dsp_fee\n ? thirdMonthDistributedValue?.toFixed(2)?.replaceAll('.00', '')\n : budgetValue?.toFixed(2)?.replaceAll('.00', '');\n }\n\n market.monthly_budget_date = formattedFirstDateForBE;\n\n market.monthly_budget_second_date = formattedSecondDateForBE;\n\n market.monthly_budget_third_date = formattedThirdDateForBE;\n\n market.dsp_one_time_fee = formData?.dsp_one_time_fee || null;\n market.monthly_budget_distribution_equally =\n formData?.monthly_budget_distribution_equally || false;\n market.one_time_budget_distribution_equally =\n formData?.one_time_budget_distribution_equally || false;\n market.changed_dsp_start_date =\n formData.changed_dsp_start_date || false;\n }\n\n setShowError((prevState) => ({\n ...prevState,\n firstBudgetAllocationError: false,\n secondBudgetAllocationError: false,\n thirdBudgetAllocationError: false,\n }));\n }\n }, [\n formData.dsp_marketplaces,\n formData.is_dynamic_dsp_fee,\n formData.changed_dsp_start_date,\n formData.monthly_budget_distribution_equally,\n formData.dsp_fee,\n formData.dsp_fee_second,\n formData.dsp_fee_third,\n ]);\n\n const getDspNumber = (section) => {\n if (section.dsp === 0) return 1;\n return section.dsp;\n };\n\n const getErrorCount = () => {\n if (\n showError[`${type}_length`] ||\n showError?.firstBudgetAllocationError ||\n showError?.secondBudgetAllocationError ||\n showError?.thirdBudgetAllocationError ||\n showError?.oneTime\n ) {\n setSectionError((prevState) => ({\n ...prevState,\n dsp: prevState.dsp + 1,\n }));\n }\n if (\n !showError[`${type}_length`] ||\n (!showError?.firstBudgetAllocationError &&\n !showError?.secondBudgetAllocationError &&\n !showError?.thirdBudgetAllocationError) ||\n !showError?.oneTime\n ) {\n setSectionError((prevState) => ({\n ...prevState,\n dsp: getDspNumber(prevState) - 1,\n }));\n }\n };\n\n const validateBudget = (key) => {\n const monthlyBudgetFirst = [];\n const monthlyBudgetSecond = [];\n const monthlyBudgetThird = [];\n\n let totalBudgetFirst = 0;\n let totalBudgetSecond = 0;\n let totalBudgetThird = 0;\n\n if (formData?.dsp_marketplaces?.length) {\n for (const market of formData?.dsp_marketplaces) {\n market.monthly_budget =\n typeof market?.monthly_budget === 'string'\n ? market?.monthly_budget?.replaceAll(',', '')\n : market?.monthly_budget;\n monthlyBudgetFirst.push(Number(market?.monthly_budget) || 0);\n\n market.monthly_budget_second =\n typeof market?.monthly_budget_second === 'string'\n ? market?.monthly_budget_second?.replaceAll(',', '')\n : market?.monthly_budget_second;\n monthlyBudgetSecond.push(Number(market?.monthly_budget_second || 0));\n\n market.monthly_budget_third =\n typeof market?.monthly_budget_third === 'string'\n ? market?.monthly_budget_third?.replaceAll(',', '')\n : market?.monthly_budget_third;\n monthlyBudgetThird.push(Number(market?.monthly_budget_third || 0));\n }\n\n totalBudgetFirst = monthlyBudgetFirst.reduce(\n (temp1, temp2) => temp1 + temp2,\n );\n totalBudgetSecond = monthlyBudgetSecond.reduce(\n (temp1, temp2) => temp1 + temp2,\n );\n totalBudgetThird = monthlyBudgetThird.reduce(\n (temp1, temp2) => temp1 + temp2,\n );\n // }\n\n if (\n formData?.dsp_marketplaces?.filter((op) => !op?.monthly_budget)\n ?.length &&\n formData?.dsp_marketplaces?.filter((op) =>\n formData?.is_dynamic_dsp_fee\n ? !op?.monthly_budget_second?.length\n : !op?.monthly_budget?.length,\n ) &&\n formData?.dsp_marketplaces?.filter((op) =>\n formData?.is_dynamic_dsp_fee\n ? !op?.monthly_budget_third?.length\n : !op?.monthly_budget?.length,\n )\n ) {\n setShowError((prevState) => ({\n ...prevState,\n firstBudgetAllocationError: false,\n secondBudgetAllocationError: false,\n thirdBudgetAllocationError: false,\n }));\n } else {\n if (totalBudgetFirst !== Number(formData?.dsp_fee || 0)) {\n // check the total budget matches the allocated budget\n setShowError((prevState) => ({\n ...prevState,\n firstBudgetAllocationError: true,\n }));\n getErrorCount();\n } else {\n setShowError((prevState) => ({\n ...prevState,\n firstBudgetAllocationError: false,\n }));\n getErrorCount();\n }\n\n if (\n formData?.is_dynamic_dsp_fee\n ? totalBudgetSecond !== Number(formData?.dsp_fee_second || 0)\n : totalBudgetSecond !== Number(formData?.dsp_fee || 0)\n ) {\n // check the total budget matches the allocated budget\n setShowError((prevState) => ({\n ...prevState,\n secondBudgetAllocationError: true,\n }));\n getErrorCount();\n } else {\n setShowError((prevState) => ({\n ...prevState,\n secondBudgetAllocationError: false,\n }));\n getErrorCount();\n }\n\n if (\n formData?.is_dynamic_dsp_fee\n ? totalBudgetThird !== Number(formData?.dsp_fee_third || 0)\n : totalBudgetThird !== Number(formData?.dsp_fee || 0)\n ) {\n // check the total budget matches the allocated budget\n setShowError((prevState) => ({\n ...prevState,\n thirdBudgetAllocationError: true,\n }));\n getErrorCount();\n } else {\n setShowError((prevState) => ({\n ...prevState,\n thirdBudgetAllocationError: false,\n }));\n getErrorCount();\n }\n }\n }\n\n // check the allocation bugdet lengths\n if (formData?.dsp_marketplaces?.filter((op) => !op?.[key])?.length !== 0) {\n setShowError((prevState) => ({\n ...prevState,\n [`${type}_length`]: true,\n }));\n getErrorCount();\n } else {\n setShowError((prevState) => ({\n ...prevState,\n [`${type}_length`]: false,\n }));\n getErrorCount();\n }\n };\n\n const budgetTypeValidation = () => {\n if (type === 'monthly') {\n validateBudget('monthly_budget');\n }\n };\n\n useEffect(() => {\n budgetTypeValidation();\n getErrorCount();\n }, [\n runValidateBudget,\n formData.dsp_marketplaces,\n formData.dsp_one_time_fee,\n formData.changed_dsp_start_date,\n formData.dsp_fee,\n formData.dsp_fee_second,\n formData.dsp_fee_third,\n formData.is_dynamic_dsp_fee,\n formData.monthly_budget_distribution_equally,\n ]);\n\n const convertMarketplacesToNumber = (key, updatedDspMarketplace) => {\n return updatedDspMarketplace.filter((market) => {\n market[key] =\n typeof market[key] === 'string'\n ? market[key]?.replaceAll(',', '')\n : market[key];\n return Number(market[key]);\n });\n };\n\n const handleChange = (field, key, value, name, monthData, marketplace) => {\n showFooter(true);\n if (dspMarketpalcesError && Object.keys(dspMarketpalcesError).length)\n setDspMarketpalcesError({ ...dspMarketpalcesError, [key]: '' });\n const updatedDspMarketplace = [...formData?.dsp_marketplaces];\n if (field === 'budget') {\n for (const market of formData?.dsp_marketplaces) {\n if (market.name === marketplace) {\n market[name] = value?.replace(/,/g, '')?.replace(/^0+/, '');\n if (monthData?.key === 'monthly_budget') {\n market.monthly_budget_date = monthData?.formattedDateForBE;\n }\n if (monthData?.key === 'monthly_budget_second') {\n market.monthly_budget_second_date = monthData?.formattedDateForBE;\n }\n if (monthData?.key === 'monthly_budget_third') {\n market.monthly_budget_third_date = monthData?.formattedDateForBE;\n }\n }\n market.dsp_fee = formData?.dsp_fee || null;\n market.dsp_fee_second = formData?.is_dynamic_dsp_fee\n ? formData?.dsp_fee_second\n : formData?.dsp_fee || null;\n market.dsp_fee_third = formData?.is_dynamic_dsp_fee\n ? formData?.dsp_fee_third\n : formData?.dsp_fee || null;\n market.dsp_one_time_fee = formData?.dsp_one_time_fee || null;\n market.monthly_budget_distribution_equally =\n formData?.monthly_budget_distribution_equally || false;\n market.one_time_budget_distribution_equally =\n formData?.one_time_budget_distribution_equally || false;\n market.changed_dsp_start_date =\n formData.changed_dsp_start_date || false;\n }\n convertMarketplacesToNumber(key, updatedDspMarketplace);\n setUpdatedFormData({\n ...updatedFormData,\n dsp_marketplaces: {\n ...updatedFormData.dsp_marketplaces,\n create: updatedDspMarketplace,\n },\n });\n }\n if (field === 'checkbox') {\n let budgetValue = '';\n let firstMonthDistributedValue = '';\n let secondMonthDistributedValue = '';\n let thirdMonthDistributedValue = '';\n\n if (formData?.is_dynamic_dsp_fee) {\n firstMonthDistributedValue =\n formData?.dsp_fee / formData?.dsp_marketplaces?.length;\n secondMonthDistributedValue =\n formData?.dsp_fee_second / formData?.dsp_marketplaces?.length;\n\n thirdMonthDistributedValue =\n formData?.dsp_fee_third / formData?.dsp_marketplaces?.length;\n } else {\n budgetValue =\n formData?.[marketplace] / formData?.dsp_marketplaces?.length;\n for (const market of formData?.dsp_marketplaces) {\n market.monthly_budget = budgetValue\n ?.toFixed(2)\n ?.replaceAll('.00', '');\n }\n }\n\n for (const market of formData?.dsp_marketplaces) {\n market.monthly_budget = formData?.is_dynamic_dsp_fee\n ? firstMonthDistributedValue?.toFixed(2)?.replaceAll('.00', '')\n : budgetValue?.toFixed(2)?.replaceAll('.00', '');\n\n market.monthly_budget_second = formData?.is_dynamic_dsp_fee\n ? secondMonthDistributedValue?.toFixed(2)?.replaceAll('.00', '')\n : budgetValue?.toFixed(2)?.replaceAll('.00', '');\n\n market.monthly_budget_third = formData?.is_dynamic_dsp_fee\n ? thirdMonthDistributedValue?.toFixed(2)?.replaceAll('.00', '')\n : budgetValue?.toFixed(2)?.replaceAll('.00', '');\n\n market.monthly_budget_date = formattedFirstDateForBE;\n market.monthly_budget_second_date = formattedSecondDateForBE;\n market.monthly_budget_third_date = formattedThirdDateForBE;\n\n market.dsp_fee = formData?.dsp_fee;\n market.dsp_fee_second = formData?.dsp_fee_second;\n market.dsp_fee_third = formData?.dsp_fee_third;\n }\n convertMarketplacesToNumber(key, updatedDspMarketplace);\n setUpdatedFormData({\n ...updatedFormData,\n [key]: value,\n dsp_marketplaces: {\n ...updatedFormData.dsp_marketplaces,\n create: updatedDspMarketplace,\n },\n });\n setFormData({ ...formData, [key]: value });\n }\n };\n\n const generateInput = () => {\n return formData?.dsp_marketplaces?.map((field) => (\n <>\n \n \n \n \n ));\n };\n\n return (\n <>\n {!formData?.dsp_marketplaces?.length ? null : (\n <>\n
    \n {`${budgetType} Budget Allocation`}\n
    \n

    \n {`Allocate the ${budgetType} budget over the DSP marketplaces to create\n the DSP invoice accordingly.`}\n

    \n {formData?.dsp_marketplaces?.length === 1 ? null : (\n \n \n Distribute Budget Equally\n {\n handleChange(\n 'checkbox',\n 'monthly_budget_distribution_equally',\n event.target.checked,\n 'checkbox-----',\n {},\n type === 'monthly' ? 'dsp_fee' : 'dsp_one_time_fee',\n type === 'monthly' ? 'monthly_budget' : 'one_time_budget',\n );\n if (\n dspMarketpalcesError &&\n Object.keys(dspMarketpalcesError).length\n )\n setDspMarketpalcesError({\n ...dspMarketpalcesError,\n [type === 'monthly'\n ? 'monthly_budget'\n : 'one_time_budget']: '',\n });\n }}\n defaultChecked={\n formData?.[\n type === 'monthly'\n ? 'monthly_budget_distribution_equally'\n : 'one_time_budget_distribution_equally'\n ]\n }\n checked={\n formData?.[\n type === 'monthly'\n ? 'monthly_budget_distribution_equally'\n : 'one_time_budget_distribution_equally'\n ]\n }\n />\n \n \n \n )}\n\n <>\n {generateInput()}\n \n {\n dspMarketpalcesError?.[\n type === 'monthly' ? 'monthly_budget' : 'one_time_budget'\n ]\n }\n \n \n\n {dspMarketpalcesError &&\n Object.keys(dspMarketpalcesError).length === 0 &&\n (showError?.firstBudgetAllocationError ||\n showError?.secondBudgetAllocationError ||\n showError?.thirdBudgetAllocationError) ? (\n \n {`Please allocate marketplaces amount equal to the ${budgetType} budget amount.`}\n \n ) : null}\n \n )}\n \n );\n}\n\nMonthlyDSPBudgetAllocation.defaultProps = {\n formData: {},\n item: {},\n type: 'monthly',\n selectedCurrency: '$ (USD)',\n setFormData: () => {},\n setSectionError: () => {},\n showError: {\n monthly: false,\n oneTime: false,\n },\n setShowError: () => {},\n updatedFormData: {},\n setUpdatedFormData: () => {},\n runValidateBudget: {},\n showFooter: () => {},\n dspMarketpalcesError: {},\n setDspMarketpalcesError: () => {},\n displayMarketplaceName: () => {},\n returnDspMonthlyDates: () => {},\n};\nMonthlyDSPBudgetAllocation.propTypes = {\n formData: shape({}),\n item: shape({}),\n type: string,\n selectedCurrency: string,\n setFormData: func,\n setSectionError: func,\n showError: shape({}),\n setShowError: func,\n updatedFormData: shape({}),\n setUpdatedFormData: func,\n runValidateBudget: shape({}),\n showFooter: func,\n dspMarketpalcesError: shape({}),\n setDspMarketpalcesError: func,\n displayMarketplaceName: func,\n firstMonthDate: instanceOf(Date).isRequired,\n secondMonthDate: instanceOf(Date).isRequired,\n thirdMonthDate: instanceOf(Date).isRequired,\n returnDspMonthlyDates: func,\n};\n","/* eslint-disable camelcase */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport { Collapse } from 'react-collapse';\nimport {\n bool,\n number,\n func,\n arrayOf,\n shape,\n string,\n oneOfType,\n instanceOf,\n} from 'prop-types';\n\nimport { Advertise } from '../../../../theme/images';\nimport { DSPAddendumDetails } from '../../../../constants';\nimport {\n Button,\n InputFormField,\n ContractInputSelect,\n CheckBox,\n} from '../../../../common';\nimport AdditionalDspMarketplaces from './AdditionalDspMarketplaces';\nimport DspMarketplaceBudgetAllocations from './DspMarketplaceBudgetAllocations';\nimport MonthlyDSPBudgetAllocation from './MonthlyDSPBudgetAllocation';\nimport AdvertisingServices from '../StatementOfWork/AdvertisingServices';\n\nfunction DspAdvertising({\n executeScroll,\n loader,\n showSection,\n setOpenCollapse,\n openCollapse,\n dspErrCount,\n renderCollapseBtnErrorHtml,\n showRightTick,\n generateHTML,\n displayError,\n formData,\n nextStep,\n dspAdditionalMarketplaces,\n showFooter,\n setFormData,\n setUpdatedFormData,\n updatedFormData,\n originalData,\n sectionError,\n setSectionError,\n contractAddendumDetails,\n addendumDetails,\n setCalculatedDate,\n setFirstMonthDate,\n selectedCurrency,\n runValidateBudget,\n setDspAdvertisingMaxDate,\n changedDspStartDateFlag,\n setChangedDspStartDateFlag,\n dspMarketpalcesError,\n setDspMarketpalcesError,\n displayMarketplaceName,\n savedMarketplaces,\n returnDspMonthlyDates,\n firstMonthDate,\n secondMonthDate,\n thirdMonthDate,\n advertisingServices,\n details,\n setShowCollpase,\n amcServiceError,\n setAmcServiceError,\n onAddDiscount,\n discountData,\n}) {\n const dynamicMonthlyBudget = [\n {\n key: 'dsp_fee',\n label: !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1),\n type: 'number-currency',\n placeholder: `Enter ${dayjs(\n !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1),\n ).format('MMMM')}`,\n isMandatory: true,\n part: 'dsp',\n isDynamicMonthlyBudget: true,\n },\n {\n key: 'dsp_fee_second',\n label: !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(secondMonthDate), 1),\n\n type: 'number-currency',\n placeholder: `Enter ${dayjs(\n !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(secondMonthDate), 1),\n ).format('MMMM')}`,\n isMandatory: true,\n part: 'dsp',\n isDynamicMonthlyBudget: true,\n },\n {\n key: 'dsp_fee_third',\n label: !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(thirdMonthDate), 1),\n\n type: 'number-currency',\n placeholder: `Enter ${dayjs(\n !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(thirdMonthDate), 1),\n ).format('MMMM')}`,\n isMandatory: true,\n part: 'dsp',\n isDynamicMonthlyBudget: true,\n },\n ];\n\n const setDspFields = () => {\n const list = [...DSPAddendumDetails];\n if (\n formData?.contract_type?.includes('dsp') &&\n !list.find((item) => item?.key === 'dsp_amc_additional_serivces')\n ) {\n DSPAddendumDetails.push({\n key: 'dsp_amc_additional_serivces',\n label: 'AMC Services',\n type: '',\n // isMandatory: true,\n part: 'dsp',\n });\n }\n return list;\n };\n\n const contractType = formData?.contract_type;\n const [updatedDspDetails, setupdatedDspDetails] = useState(setDspFields());\n const [showError, setShowError] = useState({\n monthly: false,\n oneTime: false,\n });\n const d = new Date();\n const currentMonthsFirstDate = new Date(d.getFullYear(), d.getMonth(), 1);\n\n useEffect(() => {\n const updatedDSPAddendumDetails = [...DSPAddendumDetails];\n if (formData?.changed_dsp_start_date) {\n updatedDSPAddendumDetails.splice(2, 0, {\n key: 'dsp_one_time_fee',\n label: 'One Time Ad Budget',\n type: 'number-currency',\n placeholder: 'Enter budget',\n isMandatory: true,\n part: 'dsp',\n zeroAcceptableField: true,\n });\n }\n if (formData?.is_dynamic_dsp_fee) {\n if (formData?.changed_dsp_start_date) {\n updatedDSPAddendumDetails.splice(5, 0, ...dynamicMonthlyBudget);\n } else {\n updatedDSPAddendumDetails.splice(4, 0, ...dynamicMonthlyBudget);\n }\n }\n setupdatedDspDetails(updatedDSPAddendumDetails);\n }, [\n formData?.changed_dsp_start_date,\n formData?.is_dynamic_dsp_fee,\n firstMonthDate,\n secondMonthDate,\n thirdMonthDate,\n ]);\n\n // New Logic for Dsp Date\n // 1-20 , then: 1st of next month\n // 20-31 , then: 1st of next to next month\n\n const addDaysNew = (theDate) => {\n const tempStartDate = theDate.getDate();\n if (tempStartDate >= 1 && tempStartDate <= 20) {\n return new Date(theDate.getFullYear(), theDate.getMonth() + 1, 1);\n }\n return new Date(theDate.getFullYear(), theDate.getMonth() + 2, 1);\n };\n\n const calculateDspAdvertisingMaxDate = () => {\n const tempLastDate = addDaysNew(new Date(formData && formData.start_date));\n tempLastDate.setHours(-1);\n setDspAdvertisingMaxDate(tempLastDate);\n };\n\n useEffect(() => {\n if (formData?.start_date) {\n calculateDspAdvertisingMaxDate();\n }\n }, [formData?.start_date]);\n\n useEffect(() => {\n const tempLastDate = addDaysNew(new Date(formData && formData.start_date));\n if (\n formData?.changed_dsp_start_date &&\n new Date(tempLastDate) < new Date()\n ) {\n const tempLastDSPDate = addDaysNew(new Date());\n tempLastDSPDate.setHours(-1);\n setDspAdvertisingMaxDate(tempLastDSPDate);\n }\n }, [formData?.changed_dsp_start_date]);\n\n useEffect(() => {\n if (\n formData?.contract_type === 'dsp only' ||\n (formData?.contract_type?.includes('recurring') &&\n formData?.is_dsp_advertising)\n ) {\n if (formData?.start_date && !formData?.changed_dsp_start_date) {\n const calculateDate =\n new Date(formData && formData.start_date) < currentMonthsFirstDate\n ? addDaysNew(new Date())\n : addDaysNew(new Date(formData && formData.start_date));\n setCalculatedDate(dayjs(calculateDate).format('MM-DD-YYYY'));\n\n if (!formData?.dsp_start_date) {\n const newDate =\n contractAddendumDetails?.notActive ||\n new Date(formData && formData.start_date) < currentMonthsFirstDate\n ? addDaysNew(new Date())\n : calculateDate;\n setFirstMonthDate(newDate);\n setFormData({\n ...formData,\n dsp_start_date: dayjs(newDate).format('YYYY-MM-DD'),\n });\n setUpdatedFormData({\n ...updatedFormData,\n dsp_start_date: dayjs(newDate).format('YYYY-MM-DD'),\n });\n showFooter(true);\n } else if (\n formData?.dsp_start_date !== dayjs(calculateDate).format('YYYY-MM-DD')\n ) {\n setFirstMonthDate(calculateDate);\n setFormData({\n ...formData,\n dsp_start_date: dayjs(calculateDate).format('YYYY-MM-DD'),\n });\n setUpdatedFormData({\n ...updatedFormData,\n dsp_start_date: dayjs(calculateDate).format('YYYY-MM-DD'),\n });\n showFooter(true);\n }\n }\n\n // when we checked change_advertising_strat_date\n if (formData?.changed_dsp_start_date && changedDspStartDateFlag) {\n setFirstMonthDate(new Date());\n setFormData({\n ...formData,\n dsp_start_date: dayjs(new Date()).format('YYYY-MM-DD'),\n });\n setUpdatedFormData({\n ...updatedFormData,\n dsp_start_date: dayjs(new Date()).format('YYYY-MM-DD'),\n });\n }\n }\n }, [\n formData?.start_date,\n formData?.changed_dsp_start_date,\n formData?.additional_monthly_services,\n changedDspStartDateFlag,\n ]);\n\n const handleCheckboxChange = (event, item) => {\n setFormData({\n ...formData,\n [item.key]: event.target.checked,\n });\n setUpdatedFormData({\n ...updatedFormData,\n [item.key]: event.target.checked,\n });\n if (item?.key === 'changed_dsp_start_date') {\n setChangedDspStartDateFlag(event.target.checked);\n if (!event.target.checked) {\n if (formData?.dsp_marketplaces?.length) {\n const marketplaces = [...formData?.dsp_marketplaces];\n const removeOneTime = marketplaces.map(\n ({ one_time_budget, ...rest }) => {\n return rest;\n },\n );\n setFormData({\n ...formData,\n dsp_one_time_fee: null,\n dsp_marketplaces: removeOneTime,\n [item.key]: event.target.checked,\n });\n setUpdatedFormData({\n ...updatedFormData,\n dsp_one_time_fee: null,\n [item.key]: event.target.checked,\n });\n }\n }\n }\n if (item?.key === 'is_dynamic_dsp_fee') {\n setFormData({\n ...formData,\n [item.key]: event.target.checked,\n });\n setUpdatedFormData({\n ...updatedFormData,\n [item.key]: event.target.checked,\n });\n }\n showFooter(true);\n };\n\n return loader ? null : contractType?.toLowerCase()?.includes('dsp') ||\n (showSection?.dspAddendum &&\n !contractType?.toLowerCase()?.includes('one')) ? (\n <>\n
    \n\n {\n if (contractAddendumDetails?.notActive)\n executeScroll('draft-addendum');\n else executeScroll('dspAddendum');\n setOpenCollapse({\n dspAddendum: !openCollapse.dspAddendum,\n });\n }}\n >\n \"pdf\"\n \n DSP Advertising\n {renderCollapseBtnErrorHtml(\n false,\n dspErrCount,\n openCollapse.dspAddendum,\n 'dspAddendum',\n )}\n \n
    \n
    \n\n \n
      \n {updatedDspDetails?.map((item) =>\n item.key === 'dsp_marketplaces' ? (\n <>\n
    • \n \n \n \n
    • \n {formData?.dsp_fee ||\n formData?.dsp_fee_second ||\n formData?.dsp_fee_third ? (\n
    • \n \n
    • \n ) : null}\n {formData?.changed_dsp_start_date &&\n formData?.dsp_one_time_fee ? (\n
    • \n \n
    • \n ) : null}\n \n ) : item.type === 'checkbox' ? (\n
    • \n \n \n {item.label}\n {\n handleCheckboxChange(event, item);\n }}\n />\n \n \n \n
    • \n ) : item?.isDynamicMonthlyBudget ? (\n
    • \n \n
      \n
      \n \n
      \n
      \n
      \n {selectedCurrency} \n {generateHTML(item)}\n
      \n
      \n
      \n
      \n
    • \n ) : item?.key === 'dsp_amc_additional_serivces' ? (\n
    • \n \n
    • \n ) : (\n
    • \n \n \n {generateHTML(item, 'dsp')}\n {displayError(item, 'dsp')}\n \n

      \n {item.info ? item.info : ''}\n

      \n
    • \n ),\n )}\n\n
    • \n nextStep('addendum')}\n >\n Proceed to Next Section\n \n
    • \n
    \n
    \n \n ) : (\n ''\n );\n}\n\nexport default DspAdvertising;\n\nDspAdvertising.defaultProps = {\n executeScroll: () => {},\n loader: false,\n showSection: {},\n setOpenCollapse: () => {},\n openCollapse: {},\n dspErrCount: 0,\n renderCollapseBtnErrorHtml: () => {},\n showRightTick: () => {},\n generateHTML: () => {},\n displayError: () => {},\n formData: {},\n nextStep: () => {},\n contractAddendumDetails: {},\n details: {},\n selectedCurrency: '$ (USD)',\n runValidateBudget: {},\n setDspAdvertisingMaxDate: () => {},\n changedDspStartDateFlag: false,\n setChangedDspStartDateFlag: () => {},\n dspMarketpalcesError: {},\n setDspMarketpalcesError: () => {},\n dspAdvertisingMaxDate: '',\n displayMarketplaceName: () => {},\n savedMarketplaces: [],\n};\nDspAdvertising.propTypes = {\n executeScroll: func,\n loader: bool,\n showSection: shape({\n addendum: bool,\n dspAddendum: bool,\n }),\n setOpenCollapse: func,\n openCollapse: shape({\n agreement: bool,\n statement: bool,\n addendum: bool,\n dspAddendum: bool,\n }),\n dspErrCount: number,\n renderCollapseBtnErrorHtml: func,\n showRightTick: func,\n generateHTML: func,\n displayError: func,\n formData: shape({\n additional_one_time_services: arrayOf(shape({})),\n }),\n nextStep: func,\n contractAddendumDetails: shape({}),\n details: shape({}),\n selectedCurrency: string,\n runValidateBudget: shape({}),\n setDspAdvertisingMaxDate: func,\n changedDspStartDateFlag: bool,\n setChangedDspStartDateFlag: func,\n dspMarketpalcesError: shape({}),\n setDspMarketpalcesError: func,\n dspAdvertisingMaxDate: oneOfType([string, instanceOf(Date)]),\n displayMarketplaceName: func,\n savedMarketplaces: arrayOf(shape({})),\n};\n","import React, { useEffect } from 'react';\n\nimport $ from 'jquery';\nimport { Collapse } from 'react-collapse';\nimport {\n string,\n bool,\n number,\n func,\n oneOfType,\n shape,\n object,\n objectOf,\n} from 'prop-types';\n\nimport { CreateAddendum, EditFileIcons } from '../../../../theme/images';\nimport { CheckBox, Button } from '../../../../common';\n\nfunction AddendumSection({\n showSection,\n executeScroll,\n setOpenCollapse,\n openCollapse,\n loader,\n newAddendumData,\n onEditAddendum,\n showEditor,\n setShowEditor,\n setNewAddendum,\n nextStep,\n setShowCollpase,\n setUpdatedFormData,\n showFooter,\n updatedFormData,\n originalAddendumData,\n contractAddendumDetails,\n}) {\n useEffect(() => {\n if (contractAddendumDetails.notActive) {\n $('.addcheckboxes input:checkbox').prop('checked', true);\n }\n }, [contractAddendumDetails.notActive, executeScroll, onEditAddendum]);\n\n const onCheckOfAddendum = (flag) => {\n setShowCollpase({\n ...showSection,\n addendum: flag,\n });\n setShowEditor(false);\n if (!flag) {\n if (newAddendumData.addendum && newAddendumData.addendum.length > 7) {\n setNewAddendum({ ...newAddendumData, addendum: '

    ' });\n setUpdatedFormData({ ...updatedFormData, addendum: '

    ' });\n showFooter(true);\n }\n } else if (Object.keys(updatedFormData).length) {\n showFooter(true);\n } else {\n showFooter(false);\n delete updatedFormData.addendum;\n setNewAddendum(originalAddendumData);\n }\n // }\n };\n\n const displayAddendum = () => {\n return newAddendumData && newAddendumData.id ? (\n {\n onEditAddendum();\n if (contractAddendumDetails?.notActive)\n executeScroll('draft-addendum');\n else executeScroll('addendum');\n }}\n >\n \n Edit Addendum\n \n ) : !showEditor &&\n !(newAddendumData && Object.keys(newAddendumData).length) ? (\n {\n onEditAddendum();\n if (contractAddendumDetails?.notActive)\n executeScroll('draft-addendum');\n else executeScroll('addendum');\n }}\n >\n Create Addendum\n \n ) : (\n <>\n

    '))\n ? ' btn-gray sidepanel on-boarding mt-1 mb-3 w-100 disabled'\n : 'btn-primary sidepanel on-boarding mt-1 mb-3 w-100 '\n }\n onClick={() => nextStep('final')}\n >\n Save Addendum\n \n {\n setShowEditor(false);\n setNewAddendum({});\n }}\n >\n Cancel\n \n \n );\n };\n\n return (\n
    \n {\n if (showSection && showSection.addendum) {\n if (contractAddendumDetails?.notActive)\n executeScroll('draft-addendum');\n else executeScroll('addendum');\n }\n setOpenCollapse({ addendum: !openCollapse.addendum });\n }}\n >\n \"pdf\"\n

    Addendum

    \n
    \n
    \n \n {loader ? null : (\n
      \n
    • \n

      \n [Optional] Use this to modify, clarify, or nullify a portion of\n the original agreement.\n

      \n\n \n \n Add Addendum\n {\n onCheckOfAddendum(event.target.checked);\n }}\n checked={showSection?.addendum}\n />\n \n \n \n {showSection && showSection.addendum ? displayAddendum() : ''}\n
    • \n
    \n )}\n
    \n
    \n );\n}\n\nexport default AddendumSection;\n\nAddendumSection.defaultProps = {\n showSection: {},\n executeScroll: () => {},\n setOpenCollapse: () => {},\n openCollapse: {},\n loader: false,\n newAddendumData: {},\n onEditAddendum: () => {},\n showEditor: false,\n setShowEditor: () => {},\n setNewAddendum: () => {},\n nextStep: () => {},\n setShowCollpase: () => {},\n setUpdatedFormData: () => {},\n showFooter: () => {},\n updatedFormData: {},\n originalAddendumData: {},\n contractAddendumDetails: {},\n};\n\nAddendumSection.propTypes = {\n showSection: shape({\n addendum: bool,\n dspAddendum: bool,\n }),\n executeScroll: func,\n setOpenCollapse: func,\n openCollapse: shape({\n agreement: bool,\n statement: bool,\n addendum: bool,\n dspAddendum: bool,\n }),\n loader: bool,\n newAddendumData: oneOfType([\n number,\n objectOf(object),\n shape({\n id: string,\n addendum: string,\n }),\n ]),\n onEditAddendum: func,\n showEditor: bool,\n setShowEditor: func,\n setNewAddendum: func,\n nextStep: func,\n setShowCollpase: func,\n setUpdatedFormData: func,\n showFooter: func,\n updatedFormData: shape({}),\n originalAddendumData: oneOfType([\n number,\n objectOf(object),\n shape({\n id: string,\n }),\n ]),\n contractAddendumDetails: shape({}),\n};\n","import React from 'react';\n\nimport Select from 'react-select';\nimport NumberFormat from 'react-number-format';\nimport { bool, number, func, arrayOf, shape, string } from 'prop-types';\n\nimport { InputFormField, ContractInputSelect } from '../../../../common';\n\nfunction RevenueShareThreshold({\n thresholdTypeOptions,\n selectedThreshold,\n formData,\n onThresholdTypeChange,\n contractErrorSalesThreshold,\n handleChange,\n displayError,\n contractError,\n yoyPercentageOptions,\n DropdownIndicator,\n}) {\n const yoyPercentage = formData?.yoy_percentage;\n\n return (\n
  • \n
    Revenue Share Threshold
    \n
    \n
      \n {thresholdTypeOptions.map((threshold) => {\n return (\n \n {\n onThresholdTypeChange(event, 'threshold_type', threshold);\n }}\n />\n \n {threshold.label}\n \n \n );\n })}\n
    \n
    \n {formData?.threshold_type === 'Fixed' ? (\n
    \n \n
    \n \n ${' '}\n \n handleChange(event, 'sales_threshold')}\n defaultValue={formData?.sales_threshold}\n thousandSeparator\n allowNegative={false}\n />\n
    \n {displayError({ key: 'sales_threshold' })}\n
    \n
    \n ) : (\n ''\n )}\n {formData?.threshold_type === 'YoY + %' ? (\n
    \n \n ({\n ...base,\n background:\n contractError && contractError.yoy_percentage\n ? '#FBF2F2'\n : '#F4F6FC',\n // match with the menu\n // borderRadius: state.isFocused ? '3px 3px 0 0' : 3,\n // Overwrittes the different states of border\n borderColor:\n contractError && contractError.yoy_percentage\n ? '#D63649'\n : '#D5D8E1',\n\n // Removes weird border around container\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n // Overwrittes the different states of border\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n }),\n placeholder: (defaultStyles) => {\n return {\n ...defaultStyles,\n color: '556178',\n };\n },\n }}\n isSearchable={false}\n defaultValue={\n yoyPercentage\n ? [\n {\n label: yoyPercentage,\n value: yoyPercentage,\n },\n ]\n : []\n }\n options={yoyPercentageOptions}\n name=\"yoy_percentage\"\n components={{ DropdownIndicator }}\n onChange={(event) => {\n handleChange(event, 'yoy_percentage', 'choice');\n }}\n placeholder=\"Select percentage\"\n />\n {displayError({ key: 'yoy_percentage' })}\n \n
    \n ) : (\n ''\n )}\n
  • \n );\n}\n\nexport default RevenueShareThreshold;\n\nRevenueShareThreshold.defaultProps = {\n thresholdTypeOptions: [],\n selectedThreshold: '',\n formData: {},\n onThresholdTypeChange: () => {},\n contractErrorSalesThreshold: false,\n handleChange: () => {},\n displayError: () => {},\n contractError: () => {},\n yoyPercentageOptions: [],\n DropdownIndicator: () => {},\n};\n\nRevenueShareThreshold.propTypes = {\n thresholdTypeOptions: arrayOf(shape({})),\n selectedThreshold: string,\n formData: shape({\n threshold_type: string,\n sales_threshold: number,\n }),\n onThresholdTypeChange: func,\n contractErrorSalesThreshold: bool,\n handleChange: func,\n displayError: func,\n contractError: shape({\n yoy_percentage: string,\n }),\n yoyPercentageOptions: arrayOf(shape({})),\n DropdownIndicator: func,\n};\n","import React from 'react';\n\nimport { shape, func, string } from 'prop-types';\n\nimport { InputFormField, ErrorMsg } from '../../../../common';\nimport {\n monthlyThresholdOptions,\n quarterlyThresholdOptions,\n} from '../../../../constants';\n\nexport default function RevenueThreshold({\n formData,\n handleChange,\n generateHTML,\n section,\n feeStructureErrors,\n selectedCurrency,\n}) {\n const thresholdOptions = [\n { value: 'None', label: 'None', type: `${section}_none` },\n { value: 'Fixed', label: 'Fixed', type: `${section}_fixed` },\n { value: 'quarterly', label: 'Quarterly', type: `${section}_quarterly` },\n { value: 'monthly', label: 'Monthly', type: `${section}_monthly` },\n ];\n\n const generateThresholdOptions = () => {\n if (formData?.fee_structure?.[section]?.threshold_type === 'Fixed') {\n return (\n \n
    \n {selectedCurrency} \n {generateHTML({\n key: 'sales_threshold',\n type: 'number-currency',\n fieldOf: 'threshold',\n placeholder: 'Enter Fixed Threshold',\n })}\n
    \n
    \n );\n }\n if (formData?.fee_structure?.[section]?.threshold_type === 'quarterly') {\n return (\n <>\n {quarterlyThresholdOptions.map((item) => (\n \n
    \n
    \n \n {item.label}\n \n
    \n
    \n
    \n {selectedCurrency} \n {generateHTML(item)}\n
    \n
    \n
    \n
    \n ))}\n \n );\n }\n if (formData?.fee_structure?.[section]?.threshold_type === 'monthly') {\n return (\n <>\n {monthlyThresholdOptions.map((item) => (\n \n
    \n
    \n \n {item.label}\n \n
    \n
    \n
    \n {selectedCurrency} \n {generateHTML(item)}\n
    \n
    \n
    \n
    \n ))}\n \n );\n }\n\n return null;\n };\n\n return (\n <>\n
    \n
      \n <>\n {thresholdOptions?.map((threshold) => {\n return (\n \n \n handleChange(event, 'threshold_type', section)\n }\n />\n \n {threshold.label}\n \n \n );\n })}\n \n
    \n
    \n {generateThresholdOptions()}\n {feeStructureErrors?.[section]?.quarterly_rev_share}\n {feeStructureErrors?.[section]?.monthly_rev_share}\n {feeStructureErrors?.[section]?.sales_threshold}\n \n );\n}\n\nRevenueThreshold.defaultProps = {\n handleChange: () => {},\n generateHTML: () => {},\n formData: {},\n feeStructureErrors: {},\n selectedCurrency: '$ (USD)',\n};\n\nRevenueThreshold.propTypes = {\n formData: shape({\n fee_structure: shape({}),\n }),\n handleChange: func,\n generateHTML: func,\n section: string.isRequired,\n feeStructureErrors: shape({}),\n selectedCurrency: string,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React from 'react';\n\nimport { shape, func, string } from 'prop-types';\n\nimport { InputFormField, ErrorMsg } from '../../../../common';\nimport {\n monthlyRetainerOptions,\n quarterlyRetainerOptions,\n} from '../../../../constants';\n\nexport default function RetainerOnly({\n formData,\n handleChange,\n generateHTML,\n section,\n feeStructureErrors,\n selectedCurrency,\n}) {\n const retainerOptions = [\n { value: 'Fixed', label: 'Fixed', type: `${section}_retainer_fixed` },\n {\n value: 'quarterly',\n label: 'Quarterly',\n type: `${section}_retainer_quarterly`,\n },\n { value: 'monthly', label: 'Monthly', type: `${section}_retainer_monthly` },\n ];\n\n const generateRetainerOptions = () => {\n if (\n formData?.fee_structure?.[section]?.retainer_type === 'Fixed' ||\n !formData?.fee_structure?.[section]?.retainer_type\n ) {\n return (\n \n
    \n {selectedCurrency} \n {generateHTML({\n key: 'monthly_retainer',\n type: 'number-currency',\n fieldOf: 'retainer',\n isMandatory: true,\n placeholder: 'Enter Fixed Retainer',\n })}\n
    \n
    \n );\n }\n if (formData?.fee_structure?.[section]?.retainer_type === 'quarterly') {\n return (\n <>\n {quarterlyRetainerOptions.map((item) => (\n \n
    \n
    \n \n {item.label}\n \n
    \n
    \n
    \n {selectedCurrency} \n {generateHTML(item)}\n
    \n
    \n
    \n
    \n ))}\n \n );\n }\n if (formData?.fee_structure?.[section]?.retainer_type === 'monthly') {\n return (\n <>\n {monthlyRetainerOptions.map((item) => (\n \n
    \n
    \n \n {item.label}\n \n
    \n
    \n
    \n {selectedCurrency} \n {generateHTML(item)}\n
    \n
    \n
    \n
    \n ))}\n \n );\n }\n\n return null;\n };\n\n return (\n <>\n
    \n
      \n <>\n {retainerOptions?.map((retainer) => {\n return (\n \n \n handleChange(event, 'retainer_type', section)\n }\n />\n \n {retainer.label}\n \n \n );\n })}\n \n
    \n
    \n {generateRetainerOptions()}\n {feeStructureErrors?.[section]?.monthly_retainer}\n \n {feeStructureErrors?.[section]?.quarterly_monthly_retainer}\n \n \n {feeStructureErrors?.[section]?.monthly_monthly_retainer}\n \n \n );\n}\n\nRetainerOnly.defaultProps = {\n handleChange: () => {},\n generateHTML: () => {},\n formData: {},\n feeStructureErrors: {},\n selectedCurrency: '$ (USD)',\n};\n\nRetainerOnly.propTypes = {\n formData: shape({\n fee_structure: shape({}),\n }),\n handleChange: func,\n generateHTML: func,\n section: string.isRequired,\n feeStructureErrors: shape({}),\n selectedCurrency: string,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport Select from 'react-select';\nimport NumberFormat from 'react-number-format';\nimport { shape, func, string, bool } from 'prop-types';\n\nimport RevenueThreshold from './RevenueThreshold';\nimport {\n ContractInputSelect,\n InputFormField,\n ErrorMsg,\n} from '../../../../common';\nimport {\n feeTypeOptions,\n monthlyRetainerLimitInString,\n monthlyRetainerLimitInStringWalmart,\n revShareAndRetainerDetails,\n revShareDetails,\n revShareLimitInString,\n revShareLimitInStringWalmart,\n revShareThresholdLimitInString,\n revShareThresholdLimitInStringWalmart,\n} from '../../../../constants';\nimport RetainerOnly from './RetainerOnly';\n\nexport default function SellerFeeStructure({\n setFormData,\n updatedFormData,\n setUpdatedFormData,\n formData,\n DropdownIndicator,\n section,\n vendorSameAsSeller,\n showFooter,\n setSectionError,\n sectionError,\n feeStructureErrors,\n setFeeStructureErrors,\n selectedCurrency,\n combinedRevShareFlag,\n contractAddendumDetails,\n checkAddendumData,\n addendumDetails,\n}) {\n const addendumFeeType = [...feeTypeOptions];\n const [isTriggered, setIsTriggered] = useState(false);\n\n const monthlyRetainerValue =\n formData?.channel?.value === 'amazon'\n ? monthlyRetainerLimitInString\n : monthlyRetainerLimitInStringWalmart;\n const revShareLimitValue =\n formData?.channel?.value === 'amazon'\n ? revShareLimitInString\n : revShareLimitInStringWalmart;\n const revShareThresholdLimitValue =\n formData?.channel?.value === 'amazon'\n ? revShareThresholdLimitInString\n : revShareThresholdLimitInStringWalmart;\n\n const [updateFeeTypeOptions, setUpdateFeeTypeOptions] = useState({\n feeType: feeTypeOptions,\n revShare: revShareDetails,\n revShareAndRetainer: revShareAndRetainerDetails,\n addendumOption: addendumFeeType.filter(\n (op) => op.value === 'Retainer + % Rev Share',\n ),\n });\n\n const [originalData] = useState(formData?.fee_structure?.[section]?.fee_type);\n\n useEffect(() => {\n if (updatedFormData) {\n const tempKeys = Object.keys(updatedFormData);\n if (tempKeys && tempKeys.length) {\n const feeStructureKey = tempKeys.find((item) => {\n return item === 'fee_structure';\n });\n if (feeStructureKey && !checkAddendumData) {\n delete updatedFormData.fee_structure;\n }\n }\n }\n }, [checkAddendumData]);\n\n useEffect(() => {\n if (\n formData?.combined_rev_share &&\n formData?.seller_type?.label === 'Hybrid'\n ) {\n const feeTypes = [...feeTypeOptions];\n const rev = [...revShareDetails];\n const revShareAndRetainer = [\n revShareAndRetainerDetails[0],\n revShareAndRetainerDetails[revShareAndRetainerDetails.length - 1],\n ];\n\n setUpdateFeeTypeOptions({\n ...updateFeeTypeOptions,\n feeType: feeTypes.slice(1),\n revShare: rev.slice(2),\n revShareAndRetainer,\n });\n if (contractAddendumDetails?.notActive) {\n if (\n !addendumDetails?.combined_rev_share &&\n !formData?.combined_rev_share\n ) {\n setFormData((prevState) => ({\n ...prevState,\n fee_structure: {\n ...prevState?.fee_structure,\n [section]: {\n ...prevState?.fee_structure?.[section],\n rev_share: null,\n sales_threshold: null,\n threshold_type: null,\n },\n },\n }));\n }\n } else if (\n !addendumDetails?.combined_rev_share &&\n !formData?.combined_rev_share\n ) {\n setFormData((prevState) => ({\n ...prevState,\n fee_structure: {\n ...prevState?.fee_structure,\n [section]: {\n ...prevState?.fee_structure?.[section],\n rev_share: null,\n sales_threshold: null,\n threshold_type: null,\n },\n },\n }));\n }\n\n if (combinedRevShareFlag) {\n setUpdatedFormData((prevState) => ({\n ...prevState,\n fee_structure: {\n ...prevState?.fee_structure,\n [section]: {\n ...prevState?.fee_structure?.[section],\n rev_share: null,\n sales_threshold: null,\n threshold_type: null,\n },\n },\n }));\n }\n } else\n setUpdateFeeTypeOptions({\n ...updateFeeTypeOptions,\n feeType: feeTypeOptions,\n revShare: revShareDetails,\n revShareAndRetainer: revShareAndRetainerDetails,\n });\n if (\n formData?.combined_rev_share &&\n formData?.seller_type?.label === 'Hybrid' &&\n formData?.fee_structure?.[section]?.fee_type === 'Retainer Only'\n ) {\n let errorCount = sectionError?.[section]?.feeType;\n\n if (\n section === 'vendor' &&\n !formData?.fee_structure?.vendor?.vendor_billing_report\n ) {\n errorCount += 1;\n }\n\n setSectionError((prevState) => ({\n ...prevState,\n [section]: { feeType: errorCount },\n }));\n\n setFormData((prevState) => ({\n ...prevState,\n fee_structure: {\n ...prevState?.fee_structure,\n [section]: {\n ...prevState?.fee_structure?.[section],\n fee_type: null,\n },\n },\n }));\n setUpdatedFormData((prevState) => ({\n ...prevState,\n fee_structure: {\n ...prevState?.fee_structure,\n [section]: {\n ...prevState?.fee_structure?.[section],\n fee_type: null,\n },\n },\n }));\n }\n }, [formData.combined_rev_share]);\n\n const checkFixedRetainer = (contractData) => {\n if (\n (!contractData?.fee_structure?.[section]?.retainer_type ||\n contractData?.fee_structure?.[section]?.retainer_type === 'Fixed') &&\n contractData?.fee_structure?.[section]?.monthly_retainer\n ) {\n return true;\n }\n\n if (\n contractData?.fee_structure?.[section]?.retainer_type === 'quarterly' &&\n contractData?.fee_structure?.[section]?.quarterly_monthly_retainer &&\n Object.keys(\n contractData?.fee_structure?.[section]?.quarterly_monthly_retainer,\n )?.length &&\n !Object.values(\n contractData?.fee_structure?.[section]?.quarterly_monthly_retainer,\n )?.includes('')\n ) {\n return true;\n }\n\n if (\n contractData?.fee_structure?.[section]?.retainer_type === 'monthly' &&\n contractData?.fee_structure?.[section]?.monthly_monthly_retainer &&\n Object.keys(\n contractData?.fee_structure?.[section]?.monthly_monthly_retainer,\n )?.length &&\n !Object.values(\n contractData?.fee_structure?.[section]?.monthly_monthly_retainer,\n )?.includes('')\n ) {\n return true;\n }\n\n return false;\n };\n\n const checkMandatoryFieldsOfFeeType = (event, contractData = formData) => {\n let errorCount = sectionError?.[section]?.feeType;\n const isCombined =\n contractData?.combined_rev_share &&\n contractData?.seller_type?.label === 'Hybrid';\n if (isCombined) {\n if (!(contractData && contractData?.fee_structure?.seller?.rev_share)) {\n errorCount = 1;\n } else {\n errorCount = 0;\n }\n if (\n section === 'vendor' &&\n !(\n contractData &&\n contractData?.fee_structure?.vendor?.vendor_billing_report\n )\n ) {\n errorCount += 1;\n }\n setSectionError({\n ...sectionError,\n seller: { feeType: errorCount },\n });\n } else {\n if (event?.value === 'Retainer Only') {\n if (!checkFixedRetainer(contractData)) {\n errorCount = 1;\n } else {\n errorCount = 0;\n }\n }\n\n if (event?.value === 'Revenue Share Only') {\n if (\n !(contractData && contractData?.fee_structure?.[section]?.rev_share)\n ) {\n errorCount = 1;\n } else {\n errorCount = 0;\n }\n }\n if (event?.value === 'Retainer + % Rev Share') {\n if (\n !checkFixedRetainer(contractData) &&\n !(contractData && contractData?.fee_structure?.[section]?.rev_share)\n ) {\n errorCount = 2;\n } else if (!checkFixedRetainer(contractData)) {\n errorCount = 1;\n } else if (\n !(contractData && contractData?.fee_structure?.[section]?.rev_share)\n ) {\n errorCount = 1;\n } else {\n errorCount = 0;\n }\n }\n\n if (\n section === 'vendor' &&\n !(\n contractData &&\n contractData?.fee_structure?.vendor?.vendor_billing_report\n )\n ) {\n errorCount += 1;\n }\n\n if (\n contractData &&\n contractData?.fee_structure?.vendor?.vendor_same_as_seller\n ) {\n setSectionError({\n ...sectionError,\n [isCombined ? 'selller' : section]: { feeType: errorCount },\n vendor: {\n feeType: !(\n contractData &&\n contractData?.fee_structure?.vendor?.vendor_billing_report\n )\n ? errorCount + 1\n : errorCount,\n },\n });\n } else if (\n feeStructureErrors?.[section]?.sales_threshold ||\n feeStructureErrors?.[section]?.quarterly_rev_share ||\n feeStructureErrors?.[section]?.monthly_rev_share\n ) {\n setSectionError({\n ...sectionError,\n [section]: { feeType: errorCount + 1 },\n });\n } else {\n setSectionError({\n ...sectionError,\n [section]: { feeType: errorCount },\n });\n }\n }\n };\n\n const clearErrorCount = (event, key) => {\n if (key === 'fee_type') {\n if (formData && formData?.fee_structure?.[section]?.[key]) {\n setSectionError({\n ...sectionError,\n [section]: {\n feeType: sectionError?.[section].feeType\n ? sectionError?.[section].feeType - 1\n : 0,\n },\n });\n }\n\n checkMandatoryFieldsOfFeeType(event);\n }\n\n if (key === 'rev_share') {\n if (!(formData && formData?.fee_structure?.[section]?.[key])) {\n if (\n formData &&\n formData?.fee_structure?.vendor?.vendor_same_as_seller\n ) {\n setSectionError({\n ...sectionError,\n [section]: {\n feeType: sectionError?.[section]?.feeType\n ? sectionError?.[section]?.feeType - 1\n : 0,\n },\n vendor: {\n feeType: !(\n formData &&\n formData?.fee_structure?.vendor?.vendor_billing_report\n )\n ? (sectionError?.[section]?.feeType\n ? sectionError?.[section]?.feeType - 1\n : 0) + 1\n : sectionError?.[section]?.feeType\n ? sectionError?.[section]?.feeType - 1\n : 0,\n },\n });\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n seller: {\n ...feeStructureErrors?.[section],\n rev_share: '',\n },\n vendor: {\n ...feeStructureErrors?.[section],\n rev_share: '',\n },\n }));\n } else {\n setSectionError({\n ...sectionError,\n [section]: {\n feeType: sectionError?.[section]?.feeType\n ? sectionError?.[section]?.feeType - 1\n : 0,\n },\n });\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n rev_share: '',\n },\n }));\n }\n }\n }\n };\n\n const clearMonthlyServiceError = (event, key) => {\n let errorCount = sectionError?.[section]?.feeType;\n\n if (event && event.value) {\n if (\n (key === 'monthly_retainer' &&\n !(formData && formData?.fee_structure?.[section]?.[key])) ||\n key === 'rev_share'\n ) {\n errorCount -= 1;\n }\n } else if (\n (key === 'monthly_retainer' &&\n formData &&\n formData?.fee_structure?.[section]?.[key]) ||\n key === 'rev_share'\n ) {\n errorCount += 1;\n }\n\n if (\n formData &&\n formData?.fee_structure?.vendor?.vendor_same_as_seller &&\n section === 'seller'\n ) {\n setSectionError({\n ...sectionError,\n [section]: { feeType: errorCount },\n vendor: {\n feeType: !(\n formData && formData?.fee_structure?.vendor?.vendor_billing_report\n )\n ? errorCount + 1\n : errorCount,\n },\n });\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n seller: {\n ...feeStructureErrors?.[section],\n monthly_retainer: '',\n },\n vendor: {\n ...feeStructureErrors?.[section],\n monthly_retainer: '',\n },\n }));\n } else {\n setSectionError({\n ...sectionError,\n [section]: { feeType: errorCount },\n });\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n monthly_retainer: '',\n },\n }));\n if (key === 'rev_share') {\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n [key]: '',\n },\n }));\n }\n }\n\n if (key.includes('quarterly')) {\n if (event?.value) {\n if (\n formData?.fee_structure?.[section]?.quarterly_monthly_retainer &&\n (formData?.fee_structure?.[section]?.quarterly_monthly_retainer?.[\n '1st quarterly'\n ] ||\n key === '1st quarterly') &&\n (formData?.fee_structure?.[section]?.quarterly_monthly_retainer?.[\n '2nd quarterly'\n ] ||\n key === '2nd quarterly') &&\n (formData?.fee_structure?.[section]?.quarterly_monthly_retainer?.[\n '3rd quarterly'\n ] ||\n key === '3rd quarterly') &&\n (formData?.fee_structure?.[section]?.quarterly_monthly_retainer?.[\n '4th quarterly'\n ] ||\n key === '4th quarterly')\n ) {\n if (\n !formData?.fee_structure?.[section]?.quarterly_monthly_retainer?.[\n key\n ]\n ) {\n if (\n formData &&\n formData?.fee_structure?.vendor?.vendor_same_as_seller &&\n formData?.seller_type?.value === 'Hybrid'\n ) {\n setSectionError({\n ...sectionError,\n [section]: { feeType: sectionError?.[section]?.feeType - 2 },\n });\n } else {\n setSectionError({\n ...sectionError,\n [section]: { feeType: sectionError?.[section]?.feeType - 1 },\n });\n }\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n quarterly_monthly_retainer: '',\n monthly_retainer: '',\n monthly_monthly_retainer: '',\n },\n }));\n }\n }\n } else if (\n formData?.fee_structure?.[section]?.quarterly_monthly_retainer &&\n !Object.values(\n formData?.fee_structure?.[section]?.quarterly_monthly_retainer,\n )?.filter((item) => item === '')?.length\n ) {\n if (\n formData &&\n formData?.fee_structure?.vendor?.vendor_same_as_seller &&\n formData?.seller_type?.value === 'Hybrid'\n ) {\n setSectionError({\n ...sectionError,\n [section]: { feeType: sectionError?.[section]?.feeType + 2 },\n });\n } else {\n setSectionError({\n ...sectionError,\n [section]: { feeType: sectionError?.[section]?.feeType + 1 },\n });\n }\n }\n }\n\n if (key.includes('month')) {\n if (event?.value) {\n if (\n formData?.fee_structure?.[section]?.monthly_monthly_retainer &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'january month'\n ] ||\n key === 'january month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'february month'\n ] ||\n key === 'february month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'march month'\n ] ||\n key === 'march month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'april month'\n ] ||\n key === 'april month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'may month'\n ] ||\n key === 'may month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'june month'\n ] ||\n key === 'june month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'july month'\n ] ||\n key === 'july month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'august month'\n ] ||\n key === 'august month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'september month'\n ] ||\n key === 'september month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'october month'\n ] ||\n key === 'october month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'november month'\n ] ||\n key === 'november month') &&\n (formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[\n 'december month'\n ] ||\n key === 'december month')\n ) {\n if (\n !formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[key]\n ) {\n setSectionError({\n ...sectionError,\n [section]: { feeType: sectionError?.[section]?.feeType - 1 },\n });\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n quarterly_monthly_retainer: '',\n monthly_retainer: '',\n monthly_monthly_retainer: '',\n },\n }));\n }\n }\n } else if (\n formData?.fee_structure?.[section]?.monthly_monthly_retainer &&\n !Object.values(\n formData?.fee_structure?.[section]?.monthly_monthly_retainer,\n )?.filter((item) => item === '')?.length\n ) {\n setSectionError({\n ...sectionError,\n [section]: { feeType: sectionError?.[section]?.feeType + 1 },\n });\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n quarterly_monthly_retainer: '',\n monthly_retainer: '',\n monthly_monthly_retainer: '',\n },\n }));\n }\n }\n };\n\n const validateBillingCap = (event, key) => {\n if (\n (key === 'billing_cap' || key === 'billing_minimum') &&\n formData?.fee_structure?.[section]?.fee_type === 'Revenue Share Only'\n ) {\n if (\n key === 'billing_cap' &&\n formData?.fee_structure?.[section]?.billing_minimum\n ) {\n if (\n parseInt(formData?.fee_structure?.[section]?.billing_minimum, 10) >\n parseInt(event.value, 10)\n ) {\n setFeeStructureErrors({\n ...feeStructureErrors,\n [section]: {\n ...feeStructureErrors?.[section],\n billing_cap: 'Billing CAP must be greater than Billing Minimum',\n billing_minimum: '',\n },\n });\n\n if (\n !feeStructureErrors?.[section]?.billing_cap &&\n !feeStructureErrors?.[section]?.billing_minimum\n ) {\n setSectionError((prevState) => ({\n ...prevState,\n [section]: { feeType: prevState?.[section]?.feeType + 1 },\n }));\n }\n } else {\n setFeeStructureErrors({\n ...feeStructureErrors,\n [section]: {\n ...feeStructureErrors?.[section],\n billing_cap: '',\n billing_minimum: '',\n },\n });\n\n if (\n feeStructureErrors?.[section]?.billing_cap ||\n feeStructureErrors?.[section]?.billing_minimum\n ) {\n setSectionError((prevState) => ({\n ...prevState,\n [section]: { feeType: prevState?.[section]?.feeType - 1 },\n }));\n }\n }\n }\n\n if (\n key === 'billing_minimum' &&\n formData?.fee_structure?.[section]?.billing_cap\n ) {\n if (\n parseInt(event.value, 10) >\n parseInt(formData?.fee_structure?.[section]?.billing_cap, 10)\n ) {\n setFeeStructureErrors({\n ...feeStructureErrors,\n [section]: {\n ...feeStructureErrors?.[section],\n billing_minimum: 'Billing Minimum must be less than Billing CAP',\n billing_cap: '',\n },\n });\n\n if (\n !feeStructureErrors?.[section]?.billing_minimum &&\n !feeStructureErrors?.[section]?.billing_cap\n ) {\n setSectionError((prevState) => ({\n ...prevState,\n [section]: { feeType: prevState?.[section]?.feeType + 1 },\n }));\n }\n } else {\n setFeeStructureErrors({\n ...feeStructureErrors,\n [section]: {\n ...feeStructureErrors?.[section],\n billing_cap: '',\n billing_minimum: '',\n },\n });\n\n if (\n feeStructureErrors?.[section]?.billing_cap ||\n feeStructureErrors?.[section]?.billing_minimum\n ) {\n setSectionError((prevState) => ({\n ...prevState,\n [section]: { feeType: prevState?.[section]?.feeType - 1 },\n }));\n }\n }\n }\n }\n };\n\n const handleChange = (event, key, type, fieldOf) => {\n showFooter(true);\n if (key === 'fee_type') {\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {},\n }));\n }\n\n if (fieldOf === 'threshold' && key.includes('quarterly')) {\n let changedValue = {\n ...formData?.fee_structure?.[section].quarterly_rev_share,\n };\n if (event?.value) {\n changedValue = {\n ...formData?.fee_structure?.[section].quarterly_rev_share,\n [key]: event.value,\n };\n } else {\n delete formData?.fee_structure?.[section].quarterly_rev_share?.[key];\n changedValue = {\n ...formData?.fee_structure?.[section].quarterly_rev_share,\n };\n }\n\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n quarterly_rev_share: {\n ...changedValue,\n },\n },\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n [section]: {\n ...updatedFormData?.fee_structure?.[section],\n quarterly_rev_share: {\n ...changedValue,\n },\n },\n },\n });\n } else if (fieldOf === 'threshold' && key.search(/\\bmonth\\b/) >= 0) {\n let changedValue = {\n ...formData?.fee_structure?.[section].monthly_rev_share,\n };\n if (event?.value) {\n changedValue = {\n ...formData?.fee_structure?.[section].monthly_rev_share,\n [key]: event.value,\n };\n } else {\n delete formData?.fee_structure?.[section].monthly_rev_share?.[key];\n changedValue = {\n ...formData?.fee_structure?.[section].monthly_rev_share,\n };\n }\n\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n monthly_rev_share: {\n ...changedValue,\n },\n },\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n [section]: {\n ...updatedFormData?.fee_structure?.[section],\n monthly_rev_share: {\n ...changedValue,\n },\n },\n },\n });\n } else if (fieldOf === 'retainer' && key.includes('quarterly')) {\n let changedValue = {\n ...formData?.fee_structure?.[section].quarterly_monthly_retainer,\n };\n\n if (event?.value) {\n changedValue = {\n ...formData?.fee_structure?.[section].quarterly_monthly_retainer,\n [key]: event.value,\n };\n } else {\n delete formData?.fee_structure?.[section].quarterly_monthly_retainer?.[\n key\n ];\n changedValue = {\n ...formData?.fee_structure?.[section].quarterly_monthly_retainer,\n };\n }\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n quarterly_monthly_retainer: {\n ...changedValue,\n },\n monthly_monthly_retainer: {},\n },\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n [section]: {\n ...updatedFormData?.fee_structure?.[section],\n quarterly_monthly_retainer: {\n ...changedValue,\n },\n },\n },\n });\n clearMonthlyServiceError(event, key, {\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n quarterly_monthly_retainer: {\n ...formData?.fee_structure?.[section].quarterly_monthly_retainer,\n [key]: event.value,\n },\n monthly_monthly_retainer: {},\n },\n },\n });\n } else if (fieldOf === 'retainer' && key.search(/\\bmonth\\b/) >= 0) {\n let changedValue = {\n ...formData?.fee_structure?.[section].monthly_monthly_retainer,\n };\n if (event?.value) {\n changedValue = {\n ...formData?.fee_structure?.[section].monthly_monthly_retainer,\n [key]: event.value,\n };\n } else {\n delete formData?.fee_structure?.[section].monthly_monthly_retainer?.[\n key\n ];\n changedValue = {\n ...formData?.fee_structure?.[section].monthly_monthly_retainer,\n };\n }\n\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n monthly_monthly_retainer: {\n ...changedValue,\n },\n quarterly_monthly_retainer: {},\n },\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n [section]: {\n ...updatedFormData?.fee_structure?.[section],\n monthly_monthly_retainer: {\n ...changedValue,\n },\n },\n },\n });\n clearMonthlyServiceError(event, key, {\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n monthly_monthly_retainer: {\n ...formData?.fee_structure?.[section]?.monthly_monthly_retainer,\n [key]: event?.value,\n },\n quarterly_monthly_retainer: {},\n },\n },\n });\n } else {\n const retainerType = formData?.fee_structure?.[section]?.retainer_type;\n const noRetainerType =\n !retainerType || retainerType === null || retainerType === undefined;\n\n const revShare = formData?.fee_structure?.[section]?.rev_share;\n const noRevShare =\n !revShare || revShare === null || revShare === undefined;\n\n if (\n key === 'fee_type' &&\n event?.value === 'Retainer Only' &&\n noRetainerType\n ) {\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event?.target?.value\n : null,\n retainer_type: 'Fixed',\n monthly_retainer: monthlyRetainerValue,\n },\n },\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n [section]: {\n ...updatedFormData?.fee_structure?.[section],\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event.target.value\n : null,\n retainer_type: 'Fixed',\n monthly_retainer: monthlyRetainerValue,\n },\n },\n });\n } else if (\n key === 'fee_type' &&\n event?.value === 'Revenue Share Only' &&\n noRevShare\n ) {\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event?.target?.value\n : null,\n rev_share: revShareLimitValue,\n sales_threshold: revShareThresholdLimitValue,\n threshold_type: 'Fixed',\n },\n },\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n [section]: {\n ...updatedFormData?.fee_structure?.[section],\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event.target.value\n : null,\n\n rev_share: revShareLimitValue,\n sales_threshold: revShareThresholdLimitValue,\n threshold_type: 'Fixed',\n },\n },\n });\n } else if (\n key === 'fee_type' &&\n event?.value === 'Retainer + % Rev Share' &&\n (noRevShare || noRetainerType)\n ) {\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event?.target?.value\n : null,\n retainer_type: 'Fixed',\n monthly_retainer: monthlyRetainerValue,\n rev_share: revShareLimitValue,\n sales_threshold: revShareThresholdLimitValue,\n threshold_type: 'Fixed',\n },\n },\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n [section]: {\n ...updatedFormData?.fee_structure?.[section],\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event.target.value\n : null,\n retainer_type: 'Fixed',\n monthly_retainer: monthlyRetainerValue,\n rev_share: revShareLimitValue,\n sales_threshold: revShareThresholdLimitValue,\n threshold_type: 'Fixed',\n },\n },\n });\n } else {\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event?.target?.value\n : null,\n },\n },\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n [section]: {\n ...updatedFormData?.fee_structure?.[section],\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event.target.value\n : null,\n },\n },\n });\n }\n\n if (type === 'choices') {\n clearErrorCount(event, key, type);\n }\n\n if (type === 'numberformat') {\n clearMonthlyServiceError(event, key);\n }\n\n if (key === 'retainer_type') {\n checkMandatoryFieldsOfFeeType(\n {\n value: formData?.fee_structure?.[section]?.fee_type,\n },\n\n {\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n [section]: {\n ...formData?.fee_structure?.[section],\n\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event?.target?.value\n : null,\n },\n },\n },\n );\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n quarterly_monthly_retainer: '',\n monthly_retainer: '',\n monthly_monthly_retainer: '',\n },\n }));\n }\n }\n\n if (type === 'numberformat') {\n clearMonthlyServiceError(event, key, type);\n }\n\n if (\n (key === 'threshold_type' &&\n (feeStructureErrors?.[section]?.quarterly_rev_share ||\n feeStructureErrors?.[section]?.monthly_rev_share ||\n feeStructureErrors?.[section]?.sales_threshold)) ||\n (formData?.fee_structure?.[section]?.quarterly_rev_share &&\n Object.keys(formData?.fee_structure?.[section]?.quarterly_rev_share)\n .length === 3 &&\n event.value &&\n feeStructureErrors?.[section]?.quarterly_rev_share) ||\n (formData?.fee_structure?.[section]?.monthly_rev_share &&\n Object.keys(formData?.fee_structure?.[section]?.monthly_rev_share)\n .length === 11 &&\n event.value &&\n feeStructureErrors?.[section]?.monthly_rev_share) ||\n (feeStructureErrors?.[section]?.sales_threshold &&\n (formData?.fee_structure?.[section]?.sales_threshold || event.value))\n ) {\n if (\n formData &&\n formData?.fee_structure?.vendor?.vendor_same_as_seller &&\n formData?.seller_type?.value === 'Hybrid'\n ) {\n setSectionError({\n ...sectionError,\n seller: {\n feeType: sectionError?.seller?.feeType\n ? sectionError?.seller?.feeType - 1\n : 0,\n },\n vendor: {\n feeType: !(\n formData && formData?.fee_structure?.vendor?.vendor_billing_report\n )\n ? sectionError?.seller?.feeType - 1 + 1\n : sectionError?.seller?.feeType - 1,\n },\n });\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n seller: {\n ...feeStructureErrors?.seller,\n quarterly_rev_share: '',\n billing_cap: '',\n monthly_rev_share: '',\n sales_threshold: '',\n },\n vendor: {\n ...feeStructureErrors?.vendor,\n quarterly_rev_share: '',\n billing_cap: '',\n monthly_rev_share: '',\n sales_threshold: '',\n },\n }));\n } else {\n setSectionError({\n ...sectionError,\n [section]: { feeType: sectionError?.[section]?.feeType - 1 },\n });\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n quarterly_rev_share: '',\n billing_cap: '',\n monthly_rev_share: '',\n },\n }));\n\n if (key === 'monthly_retainer') {\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n monthly_retainer: '',\n },\n }));\n }\n\n if (key === 'sales_threshold') {\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n sales_threshold: '',\n },\n }));\n }\n\n if (key === 'rev_share') {\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n [section]: {\n ...feeStructureErrors?.[section],\n rev_share: '',\n },\n }));\n }\n }\n }\n if (vendorSameAsSeller && formData?.seller_type?.value === 'Hybrid') {\n const vendorId = formData?.fee_structure?.vendor?.id;\n setFormData((prevState) => ({\n ...prevState,\n fee_structure: {\n ...prevState?.fee_structure,\n vendor: {\n ...prevState?.fee_structure?.seller,\n id: vendorId,\n vendor_billing_report:\n prevState?.fee_structure?.vendor?.vendor_billing_report,\n },\n },\n }));\n setUpdatedFormData((prevState) => ({\n ...prevState,\n fee_structure: {\n ...prevState?.fee_structure,\n vendor: prevState?.fee_structure?.seller,\n },\n }));\n }\n validateBillingCap(event, key);\n };\n\n const generateDropdown = (item) => {\n return (\n ({\n ...base,\n zIndex: 9999,\n background:\n !(formData && formData?.fee_structure?.[section]?.[item.key]) &&\n item.isMandatory\n ? '#FBF2F2'\n : '#F4F6FC',\n // match with the menu\n // borderRadius: state.isFocused ? '3px 3px 0 0' : 3,\n // Overwrittes the different states of border\n borderColor:\n !(formData && formData?.fee_structure?.[section]?.[item.key]) &&\n item.isMandatory\n ? '#D63649'\n : '#D5D8E1',\n\n // Removes weird border around container\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n // Overwrittes the different states of border\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n }),\n }}\n placeholder={item.placeholder || 'Select'}\n value={\n formData?.fee_structure?.[section]?.[item.key]\n ? {\n value: formData?.fee_structure?.[section]?.[item.key],\n label:\n formData?.fee_structure?.[section]?.[item.key] ===\n 'Retainer + % Rev Share'\n ? 'Retainer + Rev Share'\n : formData?.fee_structure?.[section]?.[item.key],\n }\n : null\n }\n options={\n item.key === 'fee_type'\n ? contractAddendumDetails.notActive\n ? updateFeeTypeOptions.addendumOption\n : updateFeeTypeOptions.feeType\n : null\n }\n name={item.key}\n components={{ DropdownIndicator }}\n onChange={(event) => handleChange(event, item.key, 'choices')}\n isDisabled={\n contractAddendumDetails.notActive &&\n item.key === 'fee_type' &&\n originalData === 'Retainer + % Rev Share'\n }\n />\n );\n };\n\n const generateInput = (item) => {\n return (\n handleChange(event, item.key)}\n name={item.key}\n defaultValue={formData?.fee_structure?.[section]?.[item.key]}\n />\n );\n };\n\n const checkAllFieldsOFRetainerPresent = (item) => {\n if (\n (formData?.fee_structure?.[section]?.retainer_type === 'Fixed' ||\n !formData?.fee_structure?.[section]?.retainer_type) &&\n formData?.fee_structure?.[section]?.monthly_retainer\n ) {\n return true;\n }\n\n if (\n formData?.fee_structure?.[section]?.retainer_type === 'quarterly' &&\n formData?.fee_structure?.[section]?.quarterly_monthly_retainer?.[\n item?.key\n ]\n ) {\n return true;\n }\n\n if (\n formData?.fee_structure?.[section]?.retainer_type === 'monthly' &&\n formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[item?.key]\n ) {\n return true;\n }\n\n return false;\n };\n\n const generateHTML = (item) => {\n if (item?.type?.includes('number')) {\n return (\n <>\n = 0\n ? formData.fee_structure?.[section]?.[\n item.fieldOf === 'retainer'\n ? 'monthly_monthly_retainer'\n : 'monthly_rev_share'\n ]?.[item.key]\n : formData?.fee_structure?.[section]?.[item.key]\n }\n placeholder={item.placeholder || item.label}\n suffix={item.type === 'number-percent' ? '%' : ''}\n onValueChange={(event) => {\n if (isTriggered)\n handleChange(event, item.key, 'numberformat', item.fieldOf);\n }}\n onChange={() => setIsTriggered(true)}\n onBlur={() => setIsTriggered(true)}\n onFocus={() => setIsTriggered(true)}\n thousandSeparator\n decimalScale={2}\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n if (item.key === 'rev_share') {\n return floatValue >= 0 && floatValue <= 10;\n }\n return floatValue <= 100000000;\n }}\n allowNegative={false}\n />\n \n );\n }\n if (item.type === 'choice') {\n return (\n {generateDropdown(item)}\n );\n }\n if (item.type === 'text') return <>{generateInput(item)};\n return '';\n };\n\n return (\n <>\n {formData?.seller_type?.label === 'Hybrid' && section !== 'vendor' ? (\n
    \n Seller Fee Structure\n
    \n ) : (\n ''\n )}\n \n \n {generateDropdown({\n key: 'fee_type',\n label: 'Fee type',\n type: 'choice',\n placeholder: 'Select Fee Type',\n isMandatory: true,\n })}\n {formData?.fee_structure?.[section]?.fee_type === 'Retainer Only' ? (\n \n \n \n \n ) : formData?.fee_structure?.[section]?.fee_type ===\n 'Revenue Share Only' ? (\n <>\n {updateFeeTypeOptions?.revShare?.map((field) => (\n <>\n \n \n {field.type === 'threshold' ? (\n \n ) : (\n <>\n
    \n {field.prefix ? (\n \n {selectedCurrency}{' '}\n \n ) : (\n ''\n )}\n {generateHTML(field)}\n {field.suffix ? (\n \n {field.suffix}{' '}\n \n ) : (\n ''\n )}\n
    \n

    \n {field.subtitle}\n

    \n \n )}\n
    \n {field.key === 'billing_cap' ? (\n \n {feeStructureErrors?.[section]?.billing_cap}\n \n ) : (\n ''\n )}\n {field.key === 'billing_minimum' ? (\n \n {feeStructureErrors?.[section]?.billing_minimum}\n \n ) : (\n ''\n )}\n {field.key === 'rev_share' ? (\n \n {feeStructureErrors?.[section]?.rev_share}\n \n ) : (\n ''\n )}\n \n ))}\n \n ) : formData?.fee_structure?.[section]?.fee_type ===\n 'Retainer + % Rev Share' ? (\n <>\n {updateFeeTypeOptions?.revShareAndRetainer?.map((field) => (\n <>\n \n \n\n {field.type === 'threshold' ? (\n \n ) : field.type === 'retainer' ? (\n \n ) : (\n <>\n
    \n {field.prefix ? (\n \n {selectedCurrency}{' '}\n \n ) : (\n ''\n )}\n {generateHTML(field)}\n {field.suffix ? (\n \n {field.suffix}{' '}\n \n ) : (\n ''\n )}\n
    \n \n )}\n\n

    \n {field.subtitle}\n

    \n
    \n\n {field.key === 'rev_share' ? (\n \n {feeStructureErrors?.[section]?.rev_share}\n \n ) : (\n ''\n )}\n {field.key === 'billing_cap' ? (\n \n {feeStructureErrors?.[section]?.billing_cap}\n \n ) : (\n ''\n )}\n \n ))}\n \n ) : (\n ''\n )}\n \n \n );\n}\n\nSellerFeeStructure.defaultProps = {\n setUpdatedFormData: () => {},\n setFormData: () => {},\n formData: {},\n updatedFormData: {},\n DropdownIndicator: {},\n showFooter: () => {},\n setSectionError: () => {},\n sectionError: {},\n vendorSameAsSeller: false,\n feeStructureErrors: {},\n setFeeStructureErrors: () => {},\n selectedCurrency: '$ (USD)',\n combinedRevShareFlag: false,\n contractAddendumDetails: {},\n checkAddendumData: false,\n addendumDetails: {},\n};\n\nSellerFeeStructure.propTypes = {\n formData: shape({\n fee_structure: shape({}),\n }),\n DropdownIndicator: func,\n setUpdatedFormData: func,\n setFormData: func,\n updatedFormData: shape({}),\n section: string.isRequired,\n vendorSameAsSeller: bool,\n showFooter: func,\n setSectionError: func,\n sectionError: shape({}),\n feeStructureErrors: shape({}),\n setFeeStructureErrors: func,\n selectedCurrency: string,\n combinedRevShareFlag: bool,\n contractAddendumDetails: shape({}),\n checkAddendumData: bool,\n addendumDetails: shape({}),\n};\n","import React from 'react';\n\nimport Select from 'react-select';\nimport { shape, func, bool, string } from 'prop-types';\n\nimport SellerFeeStructure from './SellerFeeStructure';\nimport { vendorReportOptions } from '../../../../constants';\nimport { CheckBox, ContractInputSelect, ErrorMsg } from '../../../../common';\n\nexport default function VendorFeeStructure({\n setFormData,\n setUpdatedFormData,\n formData,\n updatedFormData,\n DropdownIndicator,\n showFooter,\n setSectionError,\n sectionError,\n feeStructureErrors,\n setFeeStructureErrors,\n setVendorSameAsSeller,\n vendorSameAsSeller,\n selectedCurrency,\n contractAddendumDetails,\n checkAddendumData,\n addendumDetails,\n}) {\n const handleCheckbox = (event) => {\n showFooter(true);\n const vendorId = formData?.fee_structure?.vendor?.id;\n if (event.target.checked) {\n setVendorSameAsSeller(true);\n setFormData({\n ...formData,\n fee_structure: {\n ...formData.fee_structure,\n vendor: {\n ...formData.fee_structure.seller,\n id: vendorId,\n vendor_billing_report:\n formData.fee_structure.vendor.vendor_billing_report,\n vendor_same_as_seller: true,\n },\n seller: {\n ...formData.fee_structure.seller,\n vendor_same_as_seller: true,\n },\n },\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData.fee_structure,\n vendor: {\n ...updatedFormData?.fee_structure?.seller,\n vendor_billing_report:\n formData.fee_structure.vendor.vendor_billing_report,\n vendor_same_as_seller: true,\n },\n },\n });\n\n setSectionError({\n ...sectionError,\n vendor: {\n feeType: !(\n formData && formData?.fee_structure?.vendor?.vendor_billing_report\n )\n ? sectionError?.seller?.feeType\n ? sectionError?.seller?.feeType + 1\n : 0\n : sectionError?.seller?.feeType\n ? sectionError?.seller?.feeType\n : 0,\n },\n seller: {\n feeType: sectionError?.seller?.feeType\n ? sectionError?.seller?.feeType\n : 0,\n },\n });\n setFeeStructureErrors({\n ...feeStructureErrors,\n vendor: {\n ...feeStructureErrors.seller,\n },\n });\n }\n if (!event.target.checked) {\n setVendorSameAsSeller(false);\n setFormData({\n ...formData,\n fee_structure: {\n ...formData.fee_structure,\n vendor: {\n ...formData.fee_structure.vendor,\n vendor_same_as_seller: false,\n id: vendorId,\n },\n seller: {\n ...formData.fee_structure.seller,\n vendor_same_as_seller: false,\n },\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData.fee_structure,\n vendor: {\n vendor_billing_report:\n formData.fee_structure.vendor.vendor_billing_report,\n vendor_same_as_seller: false,\n },\n },\n });\n }\n };\n\n const clearError = (key) => {\n if (!(formData && formData?.fee_structure?.vendor?.[key])) {\n setSectionError({\n ...sectionError,\n vendor: {\n feeType: sectionError?.vendor?.feeType\n ? sectionError?.vendor?.feeType - 1\n : 0,\n },\n });\n setFeeStructureErrors({\n ...feeStructureErrors,\n vendor: {\n ...feeStructureErrors.vendor,\n [key]: '',\n },\n });\n }\n };\n\n const handleChange = (event, key) => {\n clearError(key);\n showFooter(true);\n\n setFormData({\n ...formData,\n fee_structure: {\n ...formData.fee_structure,\n vendor: {\n ...formData.fee_structure.vendor,\n [key]: event.value,\n },\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData.fee_structure,\n vendor: {\n ...updatedFormData?.fee_structure?.vendor,\n [key]: event.value,\n },\n },\n });\n };\n\n const generateDropdown = (item) => {\n return (\n ({\n ...base,\n background:\n !(formData && formData?.fee_structure?.vendor?.[item.key]) &&\n item.isMandatory\n ? '#FBF2F2'\n : '#F4F6FC',\n // match with the menu\n // borderRadius: state.isFocused ? '3px 3px 0 0' : 3,\n // Overwrittes the different states of border\n borderColor:\n !(formData && formData?.fee_structure?.vendor?.[item.key]) &&\n item.isMandatory\n ? '#D63649'\n : '#D5D8E1',\n\n // Removes weird border around container\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n // Overwrittes the different states of border\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n }),\n }}\n placeholder={item.placeholder || 'Select'}\n value={\n formData?.fee_structure?.vendor?.[item.key]\n ? {\n value: formData?.fee_structure?.vendor?.[item.key],\n label: formData?.fee_structure?.vendor?.[item.key],\n }\n : null\n }\n options={vendorReportOptions}\n name={item.key}\n components={{ DropdownIndicator }}\n onChange={(event) => handleChange(event, item.key, 'choices')}\n isDisabled={contractAddendumDetails?.notActive}\n />\n );\n };\n\n return (\n <>\n {formData?.seller_type?.label === 'Hybrid' ? (\n
    \n Vendor Fee Structure\n
    \n ) : (\n ''\n )}\n \n \n {generateDropdown({\n key: 'vendor_billing_report',\n label: 'Vendor Billing Report',\n type: 'choice',\n isMandatory: true,\n placeholder: 'Select Vendor Billing Report',\n })}\n {feeStructureErrors?.vendor?.vendor_billing_report}\n \n {formData?.seller_type?.label === 'Hybrid' ? (\n \n \n \n ) : (\n ''\n )}\n\n \n \n );\n}\n\nVendorFeeStructure.defaultProps = {\n setUpdatedFormData: () => {},\n setFormData: () => {},\n formData: {},\n updatedFormData: {},\n DropdownIndicator: {},\n showFooter: false,\n setSectionError: () => {},\n sectionError: {},\n feeStructureErrors: {},\n setFeeStructureErrors: () => {},\n setVendorSameAsSeller: () => {},\n selectedCurrency: '$ (USD)',\n contractAddendumDetails: {},\n checkAddendumData: false,\n addendumDetails: {},\n};\n\nVendorFeeStructure.propTypes = {\n formData: shape({\n fee_structure: shape({}),\n }),\n DropdownIndicator: func,\n setUpdatedFormData: func,\n setFormData: func,\n updatedFormData: func,\n showFooter: bool,\n setSectionError: func,\n sectionError: shape({}),\n feeStructureErrors: shape({}),\n setFeeStructureErrors: func,\n setVendorSameAsSeller: func,\n vendorSameAsSeller: bool.isRequired,\n selectedCurrency: string,\n contractAddendumDetails: shape({}),\n checkAddendumData: bool,\n addendumDetails: shape({}),\n};\n","import React from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport { shape, func, string } from 'prop-types';\n\nimport RevenueThreshold from '../FeeStructure/RevenueThreshold';\nimport { combinedRevOptions } from '../../../../constants';\nimport { InputFormField } from '../../../../common';\n\nexport default function CombinedRevShare({\n formData,\n setFormData,\n selectedCurrency,\n setUpdatedFormData,\n updatedFormData,\n feeStructureErrors,\n setFeeStructureErrors,\n showFooter,\n sectionError,\n setSectionError,\n section,\n}) {\n const handleChange = (event, key, type) => {\n showFooter(true);\n if (key.includes('quarterly')) {\n let changedValue = {\n ...formData?.fee_structure?.seller.quarterly_rev_share,\n };\n if (event?.value) {\n changedValue = {\n ...formData?.fee_structure?.seller.quarterly_rev_share,\n [key]: event.value,\n };\n } else {\n delete formData?.fee_structure?.seller.quarterly_rev_share?.[key];\n changedValue = {\n ...formData?.fee_structure?.seller.quarterly_rev_share,\n };\n }\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n seller: {\n ...formData?.fee_structure?.seller,\n quarterly_rev_share: { ...changedValue },\n },\n vendor: {\n ...formData?.fee_structure?.vendor,\n quarterly_rev_share: {\n ...changedValue,\n },\n },\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n seller: {\n ...updatedFormData?.fee_structure?.seller,\n quarterly_rev_share: {\n ...changedValue,\n },\n },\n vendor: {\n ...updatedFormData?.fee_structure?.vendor,\n quarterly_rev_share: {\n ...changedValue,\n },\n },\n },\n });\n } else if (key.search(/\\bmonth\\b/) >= 0) {\n let changedValue = {\n ...formData?.fee_structure?.seller.monthly_rev_share,\n };\n if (event?.value) {\n changedValue = {\n ...formData?.fee_structure?.seller.monthly_rev_share,\n [key]: event.value,\n };\n } else {\n delete formData?.fee_structure?.seller.monthly_rev_share?.[key];\n changedValue = {\n ...formData?.fee_structure?.seller.monthly_rev_share,\n };\n }\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n seller: {\n ...formData?.fee_structure?.seller,\n monthly_rev_share: {\n ...changedValue,\n },\n },\n vendor: {\n ...formData?.fee_structure?.vendor,\n monthly_rev_share: {\n ...changedValue,\n },\n },\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n seller: {\n ...updatedFormData?.fee_structure?.seller,\n monthly_rev_share: {\n ...changedValue,\n },\n },\n vendor: {\n ...updatedFormData?.fee_structure?.vendor,\n monthly_rev_share: {\n ...changedValue,\n },\n },\n },\n });\n } else {\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n seller: {\n ...formData?.fee_structure?.seller,\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event?.target?.value\n : null,\n },\n vendor: {\n ...formData?.fee_structure?.vendor,\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event?.target?.value\n : null,\n },\n },\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n seller: {\n ...updatedFormData?.fee_structure?.seller,\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event.target.value\n : null,\n },\n vendor: {\n ...updatedFormData?.fee_structure?.vendor,\n [key]:\n type === 'choices' || type === 'numberformat'\n ? event?.value\n ? event?.value\n : null\n : event?.target?.value\n ? event.target.value\n : null,\n },\n },\n });\n }\n\n if (\n (key === 'threshold_type' &&\n (feeStructureErrors?.seller?.quarterly_rev_share ||\n feeStructureErrors?.seller?.monthly_rev_share ||\n feeStructureErrors?.seller?.sales_threshold)) ||\n (formData?.fee_structure?.seller?.quarterly_rev_share &&\n Object.keys(formData?.fee_structure?.seller?.quarterly_rev_share)\n .length === 3 &&\n event.value &&\n feeStructureErrors?.seller?.quarterly_rev_share) ||\n (formData?.fee_structure?.seller?.monthly_rev_share &&\n Object.keys(formData?.fee_structure?.seller?.monthly_rev_share)\n .length === 11 &&\n event.value &&\n feeStructureErrors?.seller?.monthly_rev_share) ||\n (feeStructureErrors?.seller?.sales_threshold &&\n (formData?.fee_structure?.seller?.sales_threshold || event.value))\n ) {\n if (\n formData &&\n formData?.fee_structure?.vendor?.vendor_same_as_seller &&\n formData?.seller_type?.value === 'Hybrid'\n ) {\n setSectionError({\n ...sectionError,\n seller: {\n feeType: sectionError?.seller?.feeType\n ? sectionError?.seller?.feeType - 1\n : 0,\n },\n vendor: {\n feeType: !(\n formData && formData?.fee_structure?.vendor?.vendor_billing_report\n )\n ? sectionError?.seller?.feeType - 1 + 1\n : sectionError?.seller?.feeType - 1,\n },\n });\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n seller: {\n ...feeStructureErrors?.seller,\n quarterly_rev_share: '',\n billing_cap: '',\n monthly_rev_share: '',\n sales_threshold: '',\n },\n vendor: {\n ...feeStructureErrors?.vendor,\n quarterly_rev_share: '',\n billing_cap: '',\n monthly_rev_share: '',\n sales_threshold: '',\n },\n }));\n } else {\n setSectionError({\n ...sectionError,\n seller: { feeType: sectionError?.seller?.feeType - 1 },\n });\n\n setFeeStructureErrors((prevState) => ({\n ...prevState,\n seller: {\n ...feeStructureErrors?.seller,\n quarterly_rev_share: '',\n billing_cap: '',\n monthly_rev_share: '',\n sales_threshold: '',\n },\n }));\n }\n }\n };\n\n const checkAllFieldsOFRetainerPresent = (item) => {\n if (\n (formData?.fee_structure?.[section]?.retainer_type === 'Fixed' ||\n !formData?.fee_structure?.[section]?.retainer_type) &&\n formData?.fee_structure?.[section]?.monthly_retainer\n ) {\n return true;\n }\n\n if (\n formData?.fee_structure?.[section]?.retainer_type === 'quarterly' &&\n formData?.fee_structure?.[section]?.quarterly_monthly_retainer?.[\n item?.key\n ]\n ) {\n return true;\n }\n\n if (\n formData?.fee_structure?.[section]?.retainer_type === 'monthly' &&\n formData?.fee_structure?.[section]?.monthly_monthly_retainer?.[item?.key]\n ) {\n return true;\n }\n\n return false;\n };\n\n const generateHTML = (item) => {\n if (item?.type?.includes('number')) {\n return (\n <>\n = 0\n ? formData.fee_structure?.seller?.[\n item.fieldOf === 'retainer'\n ? 'monthly_monthly_retainer'\n : 'monthly_rev_share'\n ]?.[item.key]\n : formData?.fee_structure?.seller?.[item.key]\n }\n placeholder={item.placeholder || item.label}\n suffix={item.type === 'number-percent' ? '%' : ''}\n onValueChange={(event) =>\n handleChange(event, item.key, 'numberformat', item.fieldOf)\n }\n thousandSeparator\n decimalScale={2}\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n if (item.key === 'rev_share') {\n return floatValue >= 0 && floatValue <= 10;\n }\n return floatValue <= 100000000;\n }}\n allowNegative={false}\n />\n \n );\n }\n return null;\n };\n\n return (\n <>\n {' '}\n
    Combined Rev Share
    \n

    \n By summing the sales of the seller and vendor accounts and applying the\n rev share percentage on the amount above the combined threshold,\n BBE's rev share is evaluated.\n

    \n {combinedRevOptions.map((field) => (\n \n \n\n {field.type === 'threshold' ? (\n \n ) : (\n <>\n
    \n {generateHTML(field)}\n {field.suffix ? (\n {field.suffix} \n ) : (\n ''\n )}\n
    \n

    \n {field.subtitle}\n

    \n \n )}\n
    \n ))}\n \n );\n}\n\nCombinedRevShare.defaultProps = {\n setUpdatedFormData: () => {},\n setFormData: () => {},\n formData: {},\n updatedFormData: {},\n showFooter: () => {},\n setSectionError: () => {},\n sectionError: {},\n feeStructureErrors: {},\n setFeeStructureErrors: () => {},\n selectedCurrency: '$ (USD)',\n section: '',\n};\n\nCombinedRevShare.propTypes = {\n formData: shape({\n fee_structure: shape({}),\n }),\n setUpdatedFormData: func,\n setFormData: func,\n updatedFormData: shape({}),\n showFooter: func,\n setSectionError: func,\n sectionError: shape({}),\n feeStructureErrors: shape({}),\n setFeeStructureErrors: func,\n selectedCurrency: string,\n section: string,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { useState } from 'react';\n\nimport Select from 'react-select';\nimport { Collapse } from 'react-collapse';\nimport { shape, func, bool, string } from 'prop-types';\n\nimport SellerFeeStructure from './SellerFeeStructure';\nimport VendorFeeStructure from './VendorFeeStructure';\nimport CombinedRevShare from '../StatementOfWork/CombinedRevShare';\nimport { CurrencyIcon } from '../../../../theme/images';\n\nimport {\n accountTypeOptions,\n feeStructureContainerDetails,\n} from '../../../../constants';\nimport { Button, CheckBox, ContractInputSelect } from '../../../../common';\n\nexport default function FeeStructureContainer({\n formData,\n setFormData,\n executeScroll,\n setOpenCollapse,\n openCollapse,\n renderCollapseBtnErrorHtml,\n loader,\n nextStep,\n DropdownIndicator,\n marketPlacesOptions,\n setUpdatedFormData,\n updatedFormData,\n setAdditionalMarketplaces,\n showFooter,\n sectionError,\n setSectionError,\n feeStructureErrors,\n setFeeStructureErrors,\n getMonthlyServices,\n showRightTick,\n getFeeStructureDetails,\n manageErrorCount,\n selectedCurrency,\n disableCombineRevShare,\n contractAddendumDetails,\n checkAddendumData,\n addendumDetails,\n displayMarketplaceName,\n}) {\n const [vendorSameAsSeller, setVendorSameAsSeller] = useState(\n formData?.fee_structure?.vendor?.vendor_same_as_seller || false,\n );\n const [combinedRevShareFlag, setCombinedRevShareFlag] = useState(false);\n\n const clearError = (event, key) => {\n if (event && event.value) {\n if (\n (key === 'seller_type' && !(formData && formData[key]?.value)) ||\n !(formData && formData[key])\n ) {\n setSectionError({\n ...sectionError,\n feeStructure: sectionError.feeStructure\n ? sectionError.feeStructure - 1\n : 0,\n });\n }\n }\n };\n\n const handleChange = (event, key) => {\n showFooter(true);\n if (key === 'primary_marketplace') {\n setAdditionalMarketplaces(\n marketPlacesOptions.filter((op) => op.value !== event.value),\n );\n setFormData({ ...formData, [key]: event?.value });\n setUpdatedFormData({\n ...updatedFormData,\n [key]: event?.value,\n });\n } else if (key === 'combined_rev_share') {\n setFormData({ ...formData, combined_rev_share: event.target.checked });\n setUpdatedFormData({\n ...updatedFormData,\n combined_rev_share: event.target.checked,\n });\n setCombinedRevShareFlag(event.target.checked);\n setFeeStructureErrors({});\n } else if (key === 'seller_type') {\n if (\n formData?.fee_structure?.vendor?.vendor_same_as_seller &&\n formData.seller_type?.value !== 'Hybrid' &&\n event.value !== 'Hybrid'\n )\n setVendorSameAsSeller(false);\n\n setFormData({\n ...formData,\n seller_type: { value: event?.value, label: event?.value },\n vendor_same_as_seller: false,\n });\n getFeeStructureDetails(event.label, {\n ...formData,\n seller_type: { value: event?.value, label: event?.value },\n vendor_same_as_seller: false,\n });\n setUpdatedFormData({\n ...updatedFormData,\n seller_type: event?.value,\n });\n setFeeStructureErrors({});\n getMonthlyServices(event?.value, formData?.channel?.value);\n } else {\n setFormData({ ...formData, [key]: event?.value });\n setUpdatedFormData({\n ...updatedFormData,\n [key]: event?.value,\n });\n }\n clearError(event, key);\n };\n\n const generateDropdown = (item) => {\n return (\n ({\n ...base,\n background:\n (!(formData && formData[item.key]) && item.isMandatory) ||\n (item.key === 'seller_type' &&\n !(formData && formData[item.key]?.value) &&\n item.isMandatory)\n ? '#FBF2F2'\n : '#F4F6FC',\n // match with the menu\n // borderRadius: state.isFocused ? '3px 3px 0 0' : 3,\n // Overwrittes the different states of border\n borderColor:\n (!(formData && formData[item.key]) && item.isMandatory) ||\n (item.key === 'seller_type' &&\n !(formData && formData[item.key]?.value) &&\n item.isMandatory)\n ? '#D63649'\n : '#D5D8E1',\n\n // Removes weird border around container\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n // Overwrittes the different states of border\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n option: (styles, { isDisabled }) => {\n return {\n ...styles,\n color: isDisabled ? '556178' : '556178',\n };\n },\n }),\n }}\n placeholder={item.placeholder || 'Select'}\n defaultValue={\n item.key === 'primary_marketplace'\n ? formData.primary_marketplace?.name\n ? {\n value: formData.primary_marketplace.name,\n label: displayMarketplaceName(\n formData.primary_marketplace.name,\n 'primary',\n ),\n }\n : formData?.primary_marketplace\n ? {\n value: formData.primary_marketplace,\n label: displayMarketplaceName(\n formData.primary_marketplace,\n 'primary',\n ),\n }\n : null\n : formData[item.key] && formData[item.key].label\n ? {\n value: formData[item.key].label,\n label: formData[item.key].value,\n }\n : null\n }\n options={\n item.key === 'primary_marketplace'\n ? marketPlacesOptions\n : accountTypeOptions\n }\n name={item.key}\n components={{ DropdownIndicator }}\n onChange={(event) => handleChange(event, item.key)}\n isDisabled={contractAddendumDetails.notActive}\n />\n );\n };\n const displayErrorCount = () => {\n if (formData?.seller_type?.value === 'Seller') {\n return sectionError.feeStructure + sectionError?.seller?.feeType;\n }\n if (formData?.seller_type?.value === 'Vendor') {\n return sectionError.feeStructure + sectionError?.vendor?.feeType;\n }\n if (formData?.seller_type?.value === 'Hybrid') {\n return (\n sectionError.feeStructure +\n sectionError?.seller?.feeType +\n sectionError?.vendor?.feeType\n );\n }\n return sectionError.feeStructure;\n };\n\n const showCombineRevShareBox = () => {\n return (\n \n \n Calculate the Rev Share by combining the Seller Account Sales & Vendor\n Account Sales\n handleChange(event, 'combined_rev_share')}\n checked={formData?.combined_rev_share || false}\n disabled={disableCombineRevShare}\n />\n \n \n \n );\n };\n\n return (\n <>\n
    \n {\n if (contractAddendumDetails?.notActive)\n executeScroll('draft-addendum');\n else executeScroll('statement');\n setOpenCollapse({\n feeStructure: !openCollapse.feeStructure,\n });\n }}\n >\n \"pdf\"\n \n Fee Structure\n {renderCollapseBtnErrorHtml(\n false,\n displayErrorCount(),\n openCollapse.feeStructure,\n 'feeStructure',\n )}\n \n
    \n
    \n \n {loader ? null : (\n
      \n
    • \n {feeStructureContainerDetails?.map((item) => (\n \n \n {generateDropdown(item)}\n \n ))}\n
    • \n
    • \n {formData?.seller_type?.label === 'Seller' ? (\n \n ) : formData?.seller_type?.label === 'Vendor' ? (\n \n ) : formData?.seller_type?.label === 'Hybrid' ? (\n <>\n {formData?.seller_type?.label === 'Hybrid' ? (\n <>{showCombineRevShareBox()}\n ) : null}\n\n \n \n {formData?.combined_rev_share ? (\n \n ) : null}\n \n ) : null}\n
    • \n\n
    • \n nextStep('statement')}\n >\n Proceed to Next Section\n \n
    • \n
    \n )}\n
    \n \n );\n}\n\nFeeStructureContainer.defaultProps = {\n setOpenCollapse: () => {},\n executeScroll: () => {},\n nextStep: () => {},\n renderCollapseBtnErrorHtml: () => {},\n setUpdatedFormData: () => {},\n setFormData: () => {},\n setAdditionalMarketplaces: () => {},\n formData: {},\n updatedFormData: {},\n openCollapse: {},\n DropdownIndicator: {},\n marketPlacesOptions: {},\n loader: false,\n showFooter: false,\n sectionError: {},\n setSectionError: () => {},\n feeStructureErrors: {},\n setFeeStructureErrors: () => {},\n getMonthlyServices: () => {},\n showRightTick: () => {},\n getFeeStructureDetails: () => {},\n manageErrorCount: () => {},\n selectedCurrency: '$ (USD)',\n disableCombineRevShare: false,\n contractAddendumDetails: {},\n checkAddendumData: false,\n addendumDetails: {},\n displayMarketplaceName: () => {},\n};\n\nFeeStructureContainer.propTypes = {\n executeScroll: func,\n setOpenCollapse: func,\n nextStep: func,\n renderCollapseBtnErrorHtml: func,\n formData: shape({\n seller_type: string,\n fee_type: string,\n }),\n openCollapse: shape({\n feeStructure: bool,\n }),\n loader: bool,\n showFooter: bool,\n DropdownIndicator: func,\n setUpdatedFormData: func,\n setFormData: func,\n updatedFormData: func,\n marketPlacesOptions: func,\n setAdditionalMarketplaces: func,\n sectionError: shape({\n feeStructure: bool,\n }),\n setSectionError: func,\n feeStructureErrors: shape({}),\n setFeeStructureErrors: func,\n getMonthlyServices: func,\n showRightTick: func,\n getFeeStructureDetails: func,\n manageErrorCount: func,\n selectedCurrency: string,\n disableCombineRevShare: bool,\n contractAddendumDetails: shape({}),\n checkAddendumData: bool,\n addendumDetails: shape({}),\n displayMarketplaceName: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { useState, useEffect } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport DatePicker from 'react-date-picker';\nimport dayjs from 'dayjs';\nimport Select from 'react-select';\nimport { toast } from 'react-toastify';\n\nimport ContractInputSelect from '../../../common/ContractInputSelect';\nimport ContractActivityLog from './ContractActivityLog';\nimport { SidePanel } from '../../../theme/AgreementStyle';\nimport { GreenCheck, RedCross } from '../../../theme/images';\nimport { ErrorMsg, DropdownIndicator, CheckBox } from '../../../common';\nimport {\n agreementDefaultProptypes,\n agreementSidePanelPropTypes,\n} from '../PropTypesConstants/AgreementSidePanelProptypes';\nimport {\n AgreementDetails,\n StatementDetails,\n DSPAddendumDetails,\n channelOptions,\n} from '../../../constants';\n\nimport { getLength, createAddendum, getCurrencyOptions } from '../../../api';\nimport {\n ServiceAgreementSection,\n StatementOfWork,\n DspAdvertising,\n AddendumSection,\n FeeStructureContainer,\n} from '.';\n\nexport default function AgreementSidePanelContainer({\n id,\n setFormData,\n formData,\n agreementData,\n loader,\n newAddendumData,\n onEditAddendum,\n showEditor,\n setShowEditor,\n setNewAddendum,\n setNotIncludedOneTimeServices,\n apiError,\n showFooter,\n setApiError,\n executeScroll,\n showSection,\n setShowCollpase,\n updatedFormData,\n setUpdatedFormData,\n additionalMonthlyServices,\n setMonthlyAdditionalServices,\n originalData,\n additionalMarketplacesData,\n setAdditionalMarketplace,\n additionalOnetimeServices,\n setAdditionalOnetimeServices,\n additionalMarketplaceError,\n setAdditionalMarketplaceError,\n additionalMonthlySerError,\n setAdditionalMonthlySerError,\n additionalOnetimeSerError,\n setAdditionalOnetimeSerError,\n contractError,\n setContractError,\n setOriginalAddendumData,\n openCollapse,\n setOpenCollapse,\n notIncludedOneTimeServices,\n amazonStoreCustom,\n setAmazonStoreCustom,\n showAmazonPlanDropdown,\n setShowAmazonPlanDropdown,\n showAdditionalMarketplace,\n setShowAdditionalMarketplace,\n startDate,\n setStartDate,\n setShowDiscountModal,\n sectionError,\n setSectionError,\n setDiscountFlag,\n isEditContract,\n marketplacesResult,\n marketPlaces,\n setMarketPlaces,\n additionalMarketplaces,\n setAdditionalMarketplaces,\n firstMonthDate,\n setPageNumber,\n getContractActivityLogInfo,\n activityLoader,\n activityData,\n images,\n activityCount,\n pageNumber,\n isApicalled,\n getContractDetails,\n setIsEditContract,\n setContractLoading,\n customerError,\n setCustomerErrors,\n isDocRendered,\n oneTimeService,\n monthlyService,\n AmazonStoreOptions,\n fetchUncommonOptions,\n originalAddendumData,\n thresholdTypeOptions,\n yoyPercentageOptions,\n checkContractStatus,\n setMarketplaceDropdownData,\n discountData,\n setSelectedDiscount,\n feeStructureErrors,\n setFeeStructureErrors,\n getMonthlyServices,\n showRightTick,\n getFeeStructureDetails,\n manageErrorCount,\n checkMandatoryFieldsOfFeeType,\n servicesFees,\n getData,\n selectedCurrency,\n setSelectedCurrency,\n stdServices,\n setNonUSserviceError,\n nonUsServiceError,\n agencyFeeOptions,\n dspAdditionalMarketplaces,\n showAmazonStorefrontDropdown,\n setShowAmazonStorefrontDropdown,\n details,\n disableCombineRevShare,\n contractAddendumDetails,\n addendumDetails,\n setCalculatedDate,\n setFirstMonthDate,\n setEndDate,\n checkAddendumData,\n setCheckAddendumData,\n role,\n dspAdvertisingMaxDate,\n setDspAdvertisingMaxDate,\n changedDspStartDateFlag,\n setChangedDspStartDateFlag,\n dspMarketpalcesError,\n setDspMarketpalcesError,\n displayMarketplaceName,\n setVatMarketplaces,\n combinedOneTimeServices,\n filterNotIncludedOneTimeServices,\n savedMarketplaces,\n handleAddendumModal,\n returnDspMonthlyDates,\n secondMonthDate,\n thirdMonthDate,\n advertisingServices,\n amcServiceError,\n setAmcServiceError,\n getAddedOrRemovedAMCServices,\n}) {\n const [accountLength, setAccountLength] = useState([]);\n const [amazonService, setSelectedAmazonStorePackService] = useState({});\n const [selectedThreshold, setSelectedThreshold] = useState('');\n const [agreementCurrency, setAgreementCurrency] = useState([]);\n const d = new Date();\n const currentMonthsFirstDate = new Date(d.getFullYear(), d.getMonth(), 1);\n const customer = formData?.customer_id;\n const additionalOneTimeServicesLength =\n formData?.additional_one_time_services?.length;\n\n const formDataAdditionalMarketplacesLength =\n formData?.additional_marketplaces?.length;\n\n const originalDataAdditionalOneTimeServicesLength =\n originalData?.additional_one_time_services?.length;\n const additionalOneTimeServicesCreateLength =\n additionalOnetimeServices?.create?.length;\n const contractType = formData?.contract_type;\n const agreementDataContractStatusValue =\n agreementData?.contract_status?.value;\n const contractErrorSalesThreshold = contractError?.sales_threshold;\n const agreementErrCount = sectionError?.agreement;\n const statementErrCount = sectionError?.statement;\n const dspErrCount = sectionError?.dsp;\n const [runValidateBudget, setrunValidateBudget] = useState({});\n\n const updateAgreementErrorValue = (value) => {\n setSectionError({\n ...sectionError,\n agreement: value,\n });\n };\n const updateAgreementErrorMinusValue = (value) => {\n const agreementErrvalue = sectionError.agreement ? value : 0;\n updateAgreementErrorValue(agreementErrvalue);\n };\n\n const updateStatementErrorValue = (value) => {\n setSectionError({\n ...sectionError,\n statement: value,\n });\n };\n const updateStatementErrorMinusValue = (value) => {\n const statementErrValue = sectionError.statement ? value : 0;\n updateStatementErrorValue(statementErrValue);\n };\n\n const updateDspErrorValue = (value) => {\n setSectionError({\n ...sectionError,\n dsp: value,\n });\n };\n const updateDspErrorMinusValue = (value) => {\n const dspErrorValue = sectionError.dsp ? value : 0;\n updateDspErrorValue(dspErrorValue);\n };\n\n const updateAdditionalOnetimeServices = (isCreate, isArray) => {\n if (isCreate) {\n setFormData({\n ...formData,\n additional_one_time_services: additionalOnetimeServices.create,\n });\n }\n if (isArray) {\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: {\n ...additionalOnetimeServices,\n },\n });\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n });\n } else {\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: additionalOnetimeServices,\n });\n }\n };\n\n const updateAdditionalOnetimeServicesSelectedData = (selectedData) => {\n setFormData({\n ...formData,\n additional_one_time_services: selectedData,\n });\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: selectedData,\n });\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: {\n ...additionalOnetimeServices,\n create: selectedData,\n },\n });\n };\n\n const updateAdditionalMarketplaces = () => {\n setUpdatedFormData({\n ...updatedFormData,\n additional_marketplaces: additionalMarketplacesData,\n });\n };\n const updateAdditionalMonthlyServices = () => {\n setUpdatedFormData({\n ...updatedFormData,\n additional_monthly_services: additionalMonthlyServices,\n });\n };\n\n const arrayMax = (arr) => {\n return arr.reduce((p, v) => {\n return p > v ? p : v;\n });\n };\n\n const getDSPMonthlyAdBudget = (eventName, dspFee) => {\n if (formData?.is_dynamic_dsp_fee) {\n let dspFeeArray = [];\n const dspFeeFirst = Number(formData?.dsp_fee);\n const dspFeeSecond = Number(formData?.dsp_fee_second);\n const dspFeeThird = Number(formData?.dsp_fee_third);\n if (eventName === 'dsp_fee') {\n dspFeeArray = [dspFee, dspFeeSecond, dspFeeThird];\n }\n if (eventName === 'dsp_fee_second') {\n dspFeeArray = [dspFeeFirst, dspFee, dspFeeThird];\n }\n if (eventName === 'dsp_fee_third') {\n dspFeeArray = [dspFeeFirst, dspFeeSecond, dspFee];\n }\n return arrayMax([...dspFeeArray]);\n }\n return dspFee;\n };\n\n const handleAMCServices = (eventName, eventValue) => {\n const monthlyAdBudget = getDSPMonthlyAdBudget(\n eventName,\n Number(eventValue),\n );\n\n const dataToBeSearchOn = contractAddendumDetails.notActive\n ? formData\n : details;\n\n const standardDashboardObj = dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Standard Dashboard'),\n )\n ? [\n dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Standard Dashboard'),\n ),\n ]\n : [\n {\n name: 'Standard Dashboard',\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n fee: 0,\n },\n ];\n\n const advancedDashboardObj = dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Advanced Dashboard'),\n )\n ? [\n dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Advanced Dashboard'),\n ),\n ]\n : [\n {\n name: 'Advanced Dashboard',\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n fee: monthlyAdBudget && Number(monthlyAdBudget) < 50000 ? 425 : 0,\n },\n ];\n\n const CustomizedDashboardObj = dataToBeSearchOn?.amc_services?.find(\n (item) => item?.name.includes('Customized Dashboard'),\n )\n ? [\n dataToBeSearchOn?.amc_services?.find((item) =>\n item?.name.includes('Customized Dashboard'),\n ),\n ]\n : [\n {\n name: 'Customized Dashboard',\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n },\n ];\n\n let amcData = {\n create: formData?.amc_services ? [...formData?.amc_services] : [],\n delete: [],\n };\n\n if (monthlyAdBudget && Number(monthlyAdBudget) < 50000) {\n let list = [];\n if (details?.amc_services?.length) {\n const nonStandardServices = dataToBeSearchOn?.amc_services?.filter(\n (item) => item?.name === 'Advanced Dashboard',\n );\n list = nonStandardServices?.map((item) => item?.id);\n }\n let customizedData = [];\n if (CustomizedDashboardObj?.[0]?.id) {\n customizedData = CustomizedDashboardObj;\n }\n\n amcData = {\n ...amcData,\n create: [...standardDashboardObj, ...customizedData],\n delete: list?.length ? [...list] : [],\n };\n }\n if (monthlyAdBudget && Number(monthlyAdBudget) >= 50000) {\n let customizedData = [];\n if (CustomizedDashboardObj?.[0]?.id) {\n customizedData = CustomizedDashboardObj;\n }\n let advancedData = [];\n let deletedIdOfAdvancedData = [];\n let advancedDashboardUpdatedData = [];\n\n if (advancedDashboardObj?.[0]?.fee === 425) {\n advancedData = {\n name: 'Advanced Dashboard',\n contract: contractAddendumDetails.notActive ? null : details?.id,\n contract_addendum: contractAddendumDetails.notActive\n ? contractAddendumDetails?.id\n : null,\n fee: monthlyAdBudget && Number(monthlyAdBudget) < 50000 ? 425 : 0,\n };\n advancedDashboardUpdatedData = [advancedData];\n deletedIdOfAdvancedData = advancedDashboardObj?.map((item) => item?.id);\n } else {\n advancedDashboardUpdatedData = advancedDashboardObj;\n }\n\n amcData = {\n ...amcData,\n create: [\n ...standardDashboardObj,\n ...advancedDashboardUpdatedData,\n ...customizedData,\n ],\n delete: deletedIdOfAdvancedData?.length\n ? [...deletedIdOfAdvancedData]\n : [],\n };\n }\n\n setFormData({\n ...formData,\n amc_services: [...amcData?.create],\n is_amc_management: true,\n [eventName]: eventValue,\n });\n setUpdatedFormData({\n ...updatedFormData,\n [eventName]: eventValue,\n is_amc_management: true,\n amc_services: { ...amcData },\n });\n };\n\n const handleUpdatedFormDataEvent = (isCustomerId, eventName, eventValue) => {\n if (isCustomerId) {\n const customerData = formData.customer_id;\n setFormData({\n ...formData,\n customer_id: {\n ...customerData,\n [eventName]: eventValue,\n },\n });\n setUpdatedFormData({\n ...updatedFormData,\n [eventName]: eventValue,\n dsp_marketplaces: {\n create: formData?.dsp_marketplaces ? formData?.dsp_marketplaces : [],\n },\n });\n } else if (eventName === 'change_agreement_start_date' && !eventValue) {\n const tempStartDate = new Date();\n setStartDate(tempStartDate);\n setFormData({\n ...formData,\n [eventName]: eventValue,\n start_date: dayjs(tempStartDate).format('YYYY-MM-DD'),\n });\n setUpdatedFormData({\n ...updatedFormData,\n [eventName]: eventValue,\n start_date: dayjs(tempStartDate).format('YYYY-MM-DD'),\n dsp_marketplaces: {\n create: formData?.dsp_marketplaces ? formData?.dsp_marketplaces : [],\n },\n });\n } else if (eventName === 'change_addendum_start_date') {\n let tempStartDate = new Date();\n if (new Date(agreementData?.start_date) > new Date()) {\n tempStartDate = new Date(agreementData?.start_date);\n }\n\n if (eventValue) {\n setFormData({\n ...formData,\n [eventName]: eventValue,\n });\n setUpdatedFormData({\n ...updatedFormData,\n [eventName]: eventValue,\n });\n } else {\n setFormData({\n ...formData,\n [eventName]: eventValue,\n addendum_start_date: dayjs(tempStartDate).format('YYYY-MM-DD'),\n });\n setUpdatedFormData({\n ...updatedFormData,\n [eventName]: eventValue,\n addendum_start_date: dayjs(tempStartDate).format('YYYY-MM-DD'),\n });\n }\n } else {\n setFormData({ ...formData, [eventName]: eventValue });\n setUpdatedFormData({\n ...updatedFormData,\n [eventName]: eventValue,\n dsp_marketplaces: {\n create: formData?.dsp_marketplaces ? formData?.dsp_marketplaces : [],\n },\n });\n }\n };\n\n useEffect(() => {\n getLength().then((len) => {\n setAccountLength(len?.data);\n });\n\n getCurrencyOptions().then((currency) => {\n setAgreementCurrency(currency?.data);\n });\n }, []);\n\n useEffect(() => {\n const serviceData =\n additionalOneTimeServicesLength &&\n formData.additional_one_time_services.find((item) =>\n item.service?.name?.includes('Amazon Store Package'),\n );\n if (serviceData) {\n setShowAmazonPlanDropdown(true);\n const serviceName = serviceData.service.name.split(' ')[3];\n if (serviceName === 'Custom') {\n setAmazonStoreCustom(true);\n }\n }\n\n setSelectedAmazonStorePackService(serviceData);\n\n if (formDataAdditionalMarketplacesLength) {\n setMarketplaceDropdownData();\n }\n // Enable flag to show amazon storefront services dropdown\n const amazonStorefrontData =\n additionalOneTimeServicesLength &&\n formData.additional_one_time_services.find((item) =>\n item.service?.name?.includes('Amazon Storefront'),\n );\n if (amazonStorefrontData) {\n setShowAmazonStorefrontDropdown(true);\n }\n }, [agreementData, isDocRendered]);\n\n useEffect(() => {\n if (typeof formData?.currency === 'string') {\n setFormData({\n ...formData,\n currency: agreementCurrency.filter(\n (op) => op.value === formData?.currency,\n )?.[0],\n });\n }\n }, [formData.currency]);\n\n // use effect for agreement start date logic\n useEffect(() => {\n if (agreementData?.contract_status?.value !== 'active') {\n if (\n agreementData?.start_date !== null &&\n new Date(agreementData?.start_date) < currentMonthsFirstDate\n ) {\n let tempStartDate = new Date();\n if (agreementData?.change_agreement_start_date) {\n tempStartDate = new Date(agreementData?.start_date);\n }\n setStartDate(tempStartDate);\n setUpdatedFormData({\n ...updatedFormData,\n start_date: dayjs(tempStartDate).format('YYYY-MM-DD'),\n });\n setFormData({\n ...formData,\n start_date: dayjs(tempStartDate).format('YYYY-MM-DD'),\n });\n }\n }\n }, [agreementData]);\n\n // use effect for addendum start date logic\n useEffect(() => {\n const contractStartDate = new Date(agreementData?.start_date);\n let tempStartDate = new Date();\n\n if (contractAddendumDetails?.notActive) {\n if (contractAddendumDetails?.change_addendum_start_date) {\n tempStartDate = contractAddendumDetails?.addendum_start_date;\n } else if (contractStartDate <= new Date()) {\n tempStartDate = new Date();\n } else {\n tempStartDate = agreementData?.start_date;\n }\n\n setFormData({\n ...formData,\n addendum_start_date: dayjs(tempStartDate).format('YYYY-MM-DD'),\n });\n setUpdatedFormData({\n ...updatedFormData,\n addendum_start_date: dayjs(tempStartDate).format('YYYY-MM-DD'),\n });\n }\n }, [contractAddendumDetails]);\n\n const clearOneTimeQntyError = (val) => {\n const itemFound =\n additionalOnetimeSerError?.quantity?.length &&\n additionalOnetimeSerError.quantity.find((item) =>\n item.service_id === val.value\n ? val.value\n : val?.service\n ? val.service.id\n : '',\n );\n\n if (itemFound) {\n const updatedQntyError = additionalOnetimeSerError.quantity;\n\n const list = updatedQntyError.filter(\n (item) => item.service_id !== itemFound.service_id,\n );\n\n setAdditionalOnetimeSerError({\n ...additionalOnetimeSerError,\n quantity: list,\n });\n }\n };\n\n const clearError = (event, key, type) => {\n if (type === 'date') {\n if (\n AgreementDetails.find((item) => item.key === key && item.isMandatory) ||\n key === 'address' ||\n key === 'state' ||\n key === 'city' ||\n key === 'zip_code'\n ) {\n AgreementDetails.forEach((item) => {\n if (item.key !== 'contract_address') {\n if (event) {\n if (item.key === key && !(formData && formData[item.key])) {\n item.error = false;\n const dspErrorCount =\n sectionError.dsp > 0 ? sectionError.dsp - 1 : 0;\n setSectionError({\n ...sectionError,\n agreement: sectionError.agreement - 1,\n dsp: dspErrorCount,\n });\n }\n } else if (formData && formData[key]) {\n item.error = true;\n setSectionError({\n ...sectionError,\n agreement: sectionError.agreement + 1,\n dsp: sectionError.dsp + 1,\n });\n }\n }\n return null;\n });\n }\n }\n\n if (type === 'choice') {\n if (\n StatementDetails.find((item) => item.key === key && item.isMandatory)\n ) {\n StatementDetails.forEach((item) => {\n if (event && event.value) {\n if (item.key === key && !(formData && formData[item.key])) {\n item.error = false;\n updateStatementErrorMinusValue(sectionError.statement - 1);\n }\n } else {\n item.error = true;\n\n if (formData && formData[key]) {\n updateStatementErrorValue(sectionError.statement + 1);\n }\n }\n });\n } else if (\n DSPAddendumDetails.find((item) => item.key === key && item.isMandatory)\n ) {\n DSPAddendumDetails.forEach((item) => {\n if (event && event.value) {\n if (item.key === key && !(formData && formData[item.key])) {\n item.error = false;\n if (sectionError.dsp > 0) {\n updateDspErrorMinusValue(sectionError.dsp - 1);\n }\n }\n } else if (formData && formData[key]) {\n item.error = true;\n updateDspErrorValue(sectionError.dsp + 1);\n }\n });\n } else if (\n AgreementDetails.find((item) => item.key === key && item.isMandatory) ||\n key === 'address' ||\n key === 'state' ||\n key === 'city' ||\n key === 'zip_code'\n ) {\n AgreementDetails.forEach((item) => {\n if (item.key !== 'contract_address') {\n if (event?.value) {\n if (item.key === key && !(formData && formData[item.key])) {\n item.error = false;\n updateAgreementErrorMinusValue(sectionError.agreement - 1);\n }\n } else if (formData && formData[key]) {\n item.error = true;\n updateAgreementErrorValue(sectionError.agreement + 1);\n }\n }\n });\n }\n }\n\n if (event?.target?.name) {\n if (\n StatementDetails.find(\n (item) => item.key === event.target.name && item.isMandatory,\n )\n ) {\n StatementDetails.forEach((item) => {\n if (event?.target?.value) {\n if (\n item.key === event.target.name &&\n !(formData && formData[item.key])\n ) {\n item.error = false;\n updateStatementErrorMinusValue(sectionError.statement - 1);\n }\n } else {\n item.error = true;\n if (formData && formData[event.target.name]) {\n updateStatementErrorValue(sectionError.statement + 1);\n }\n }\n });\n } else if (\n DSPAddendumDetails.find(\n (item) => item.key === event.target.name && item.isMandatory,\n )\n ) {\n DSPAddendumDetails.forEach((item) => {\n if (event?.target?.value) {\n if (\n item.key === event.target.name &&\n !(formData && formData[item.key])\n ) {\n item.error = false;\n if (sectionError.dsp > 0) {\n updateDspErrorMinusValue(sectionError.dsp - 1);\n }\n }\n } else if (formData && formData[event.target.name]) {\n item.error = true;\n updateDspErrorValue(sectionError.dsp + 1);\n }\n });\n } else if (\n AgreementDetails.find(\n (item) => item.key === event.target.name && item.isMandatory,\n ) ||\n event.target.name === 'address' ||\n event.target.name === 'state' ||\n event.target.name === 'city' ||\n event.target.name === 'zip_code'\n ) {\n return AgreementDetails.forEach((item) => {\n if (item.key !== 'contract_address') {\n if (event?.target?.value) {\n if (\n item.key === event.target.name &&\n item.field === 'customer' &&\n !customer[item.key]\n ) {\n item.error = false;\n updateAgreementErrorMinusValue(sectionError.agreement - 1);\n }\n\n if (\n item.key === event.target.name &&\n item.field !== 'customer' &&\n !(formData && formData[item.key])\n ) {\n item.error = false;\n updateAgreementErrorMinusValue(sectionError.agreement - 1);\n }\n } else if (\n formData &&\n formData[event.target.name] &&\n item.field !== 'customer'\n ) {\n item.error = true;\n updateAgreementErrorValue(sectionError.agreement + 1);\n } else if (\n customer[event.target.name] &&\n item.field === 'customer'\n ) {\n item.error = true;\n updateAgreementErrorValue(sectionError.agreement + 1);\n }\n } else {\n return (\n item &&\n item.sections.forEach((subItem) => {\n if (event?.target?.value) {\n if (\n subItem.key === event.target.name &&\n !customer[subItem.key] &&\n event.target.value\n ) {\n subItem.error = false;\n updateAgreementErrorMinusValue(sectionError.agreement - 1);\n }\n } else if (customer[event.target.name]) {\n subItem.error = true;\n updateAgreementErrorValue(sectionError.agreement + 1);\n }\n })\n );\n }\n return null;\n });\n }\n }\n return null;\n };\n\n const handleChange = (event, key, type, val) => {\n if (\n key === 'dsp_fee' ||\n key === 'dsp_fee_second' ||\n key === 'dsp_fee_third' ||\n key === 'dsp_one_time_fee'\n ) {\n setrunValidateBudget({ ...runValidateBudget, [key]: true });\n }\n\n showFooter(true);\n clearError(event, key, type);\n if (\n additionalOnetimeSerError.custom_amazon_store_price &&\n key === 'amazon_store_package'\n ) {\n updateStatementErrorMinusValue(sectionError.statement - 1);\n setAdditionalOnetimeSerError({\n ...additionalOnetimeSerError,\n custom_amazon_store_price: '',\n });\n }\n if (apiError.non_field_errors && key === 'primary_marketplace') {\n updateStatementErrorMinusValue(sectionError.statement - 1);\n\n setApiError({\n ...apiError,\n non_field_errors: '',\n });\n }\n\n if (type === 'quantity') {\n if (contractType?.toLowerCase()?.includes('one')) {\n //\n }\n clearOneTimeQntyError(val);\n }\n\n if (type === 'date') {\n if (key === 'start_date') {\n setStartDate(event);\n }\n setFormData({ ...formData, [key]: dayjs(event).format('YYYY-MM-DD') });\n setUpdatedFormData({\n ...updatedFormData,\n [key]: dayjs(event).format('YYYY-MM-DD'),\n });\n } else if (type === 'choice') {\n if (key === 'primary_marketplace') {\n setAdditionalMarketplaces(\n marketPlaces.filter((op) => op.value !== event.value),\n );\n }\n if (key === 'yoy_percentage') {\n setContractError({\n ...contractError,\n [key]: '',\n });\n updateStatementErrorMinusValue(sectionError.statement - 1);\n }\n\n if (key === 'currency') {\n setFormData({ ...formData, [key]: event.label?.split(' ')?.[0] });\n setUpdatedFormData({\n ...updatedFormData,\n [key]: event.value,\n });\n setSelectedCurrency(event.label?.split(' ')?.[0]);\n }\n setFormData({ ...formData, [key]: event.value });\n setUpdatedFormData({ ...updatedFormData, [key]: event.value });\n } else if (type === 'qty') {\n setFormData({ ...formData, quantity: event.target.value });\n setUpdatedFormData({\n ...updatedFormData,\n quantity: event.target.value,\n });\n } else if (key === 'amazon_store_package') {\n if (type === 'quantity') {\n const selectedData =\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.filter((item) => {\n if (\n item.name\n ? item.name?.includes('Amazon Store Package')\n : item.service.name?.includes('Amazon Store Package')\n ) {\n if (event.target.value) {\n item.quantity = parseInt(event.target.value, 10);\n } else {\n item.quantity = 1;\n }\n }\n return item;\n });\n\n if (selectedData) {\n updateAdditionalOnetimeServicesSelectedData(selectedData);\n }\n }\n\n if (type === 'dropdown') {\n let selectedData = [];\n selectedData =\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.filter((item) => {\n if (\n !(item.name\n ? item.name?.includes('Amazon Store Package')\n : item.service.name?.includes('Amazon Store Package'))\n ) {\n return item;\n }\n return false;\n });\n\n const itemInOriginalData =\n originalDataAdditionalOneTimeServicesLength &&\n originalData.additional_one_time_services.find((item) =>\n item.name\n ? item.name?.includes('Amazon Store Package')\n : item.service.name?.includes('Amazon Store Package'),\n );\n\n if (itemInOriginalData?.service?.name?.includes(event.label)) {\n selectedData.push(itemInOriginalData);\n } else if (event.label === 'Custom') {\n if (selectedData === 0) {\n selectedData = [];\n }\n selectedData.push({\n name: `Amazon Store Package ${event.label}`,\n quantity: 1,\n service_id: event.value,\n contract_id: originalData && originalData.id,\n });\n } else {\n if (selectedData === 0) {\n selectedData = [];\n }\n selectedData.push({\n name: `Amazon Store Package ${event.label}`,\n quantity: 1,\n service_id: event.value,\n contract_id: originalData?.id,\n });\n }\n\n setFormData({\n ...formData,\n additional_one_time_services: selectedData,\n });\n\n additionalOnetimeServices.create = selectedData;\n\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: {\n ...additionalOnetimeServices,\n create: selectedData,\n },\n });\n\n if (itemInOriginalData?.service?.name?.includes(event.label)) {\n if (\n additionalOnetimeServices.delete.find(\n (item) => item === itemInOriginalData.id,\n )\n ) {\n const list = additionalOnetimeServices.delete.filter(\n (item) => item !== itemInOriginalData.id,\n );\n additionalOnetimeServices.delete = list;\n }\n } else if (itemInOriginalData) {\n if (\n additionalOnetimeServices.delete.find(\n (item) => item === itemInOriginalData.id,\n )\n ) {\n // console\n } else {\n additionalOnetimeServices.delete.push(itemInOriginalData.id);\n }\n }\n updateAdditionalOnetimeServices(false, 'isArray');\n // remove Amazon Store Package entries from notincludedService\n const listWithoutAmazonStorePack = notIncludedOneTimeServices.filter(\n (item) => !item.label?.includes('Amazon Store Package'),\n );\n setNotIncludedOneTimeServices(listWithoutAmazonStorePack);\n }\n\n if (type === 'custom_amazon_store_price') {\n const itemInList =\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.find((item) =>\n item.name\n ? item.name?.includes('Amazon Store Package')\n : item.service.name?.includes('Amazon Store Package'),\n );\n\n if (itemInList) {\n if (\n event.target.value &&\n event.target.value?.includes(selectedCurrency)\n ) {\n let value = event.target.value.slice(1);\n value = value.replace(/,/g, '');\n itemInList[event.target.name] = value;\n } else {\n itemInList[event.target.name] = event.target.value;\n }\n }\n updateAdditionalOnetimeServices('isCreate', 'isArray');\n }\n\n if (type === 'checkbox') {\n if (event.target.checked) {\n const itemInOriginalData =\n originalDataAdditionalOneTimeServicesLength &&\n originalData.additional_one_time_services.find((item) =>\n item.name\n ? item.name?.includes('Amazon Store Package')\n : item.service.name?.includes('Amazon Store Package'),\n );\n\n if (itemInOriginalData) {\n additionalOnetimeServices.create.push(itemInOriginalData);\n\n const list = additionalOnetimeServices.delete.filter(\n (item) => item !== itemInOriginalData.id,\n );\n additionalOnetimeServices.delete = list;\n updateAdditionalOnetimeServices('isCreate', 'isArray');\n // if item selected and if it is custom then show price input field else not\n if (\n itemInOriginalData?.name\n ? itemInOriginalData?.name?.includes(\n 'Amazon Store Package Custom',\n )\n : itemInOriginalData?.service?.name?.includes(\n 'Amazon Store Package Custom',\n )\n ) {\n setAmazonStoreCustom(true);\n } else {\n setAmazonStoreCustom(false);\n }\n } else {\n additionalOnetimeServices.create.push({\n name: `Amazon Store Package`,\n quantity: 1,\n contract_id: originalData?.id,\n });\n updateAdditionalOnetimeServices('isCreate', 'isArray');\n // if item not already exist in orginal data then it will be new so dont show custom price input if you choose any amazon service\n // then custom price input condition will get handle in onchange of drop down of basic ,plus, and custom\n setAmazonStoreCustom(false);\n }\n // remove Amazon Store Package entries from notincludedService\n const listWithoutAmazonStorePack = notIncludedOneTimeServices.filter(\n (item) => !item.label?.includes('Amazon Store Package'),\n );\n setNotIncludedOneTimeServices(listWithoutAmazonStorePack);\n\n if (\n contractType?.toLowerCase()?.includes('one') &&\n (additionalOnetimeServices.create !== null ||\n additionalOneTimeServicesCreateLength)\n ) {\n setAdditionalMonthlySerError({\n ...additionalMonthlySerError,\n required: '',\n });\n updateAgreementErrorMinusValue(sectionError.agreement - 1);\n }\n } else {\n const itemInList =\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.find((item) =>\n item.name\n ? item.name?.includes('Amazon Store Package')\n : item.service.name?.includes('Amazon Store Package'),\n );\n if (itemInList) {\n const removedEle =\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.filter((item) =>\n item.name\n ? item.name !==\n (itemInList.name\n ? itemInList.name\n : itemInList.service.name)\n : item.service.name !==\n (itemInList.name\n ? itemInList.name\n : itemInList.service.name),\n );\n\n additionalOnetimeServices.create = removedEle;\n\n if (itemInList.id) {\n additionalOnetimeServices.delete.push(itemInList.id);\n }\n updateAdditionalOnetimeServices('isCreate', 'isArray');\n }\n // if previously custom service is selected then when we uncheck this Amazon Store PAckage then we need to disable 'custom store price' input\n if (\n itemInList?.name\n ? itemInList?.name?.includes('Amazon Store Package Custom')\n : itemInList?.service?.name?.includes(\n 'Amazon Store Package Custom',\n )\n ) {\n //\n } else {\n setAmazonStoreCustom(false);\n }\n // add amazon Store package to notIncludedService array\n // const listWithAmazonStorePAck = oneTimeService.filter((item) =>\n // item.label.includes('Amazon Store Package'),\n // );\n if (\n notIncludedOneTimeServices.find((item) =>\n item.label?.includes('Amazon Store Package'),\n )\n ) {\n // don't do anything\n } else {\n setNotIncludedOneTimeServices(\n notIncludedOneTimeServices.concat([\n {\n value: 'Amazon Store Package',\n label: 'Amazon Store Package',\n },\n ]),\n );\n }\n\n if (\n contractType?.toLowerCase()?.includes('one') &&\n (additionalOnetimeServices.create === null ||\n !additionalOneTimeServicesCreateLength)\n ) {\n setAdditionalMonthlySerError({\n ...additionalMonthlySerError,\n required: 'At least 1 one time service required',\n });\n updateAgreementErrorValue(sectionError.agreement + 1);\n }\n }\n }\n } else if (key === 'additional_one_time_services') {\n let itemInFormData = {};\n itemInFormData =\n originalDataAdditionalOneTimeServicesLength &&\n originalData.additional_one_time_services.find(\n (item) => item?.service?.name === event.target.name,\n );\n\n if (type === 'quantity') {\n const selectedItem =\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.filter((item) => {\n if (\n item.name\n ? item.name === event.target.name\n : item.service.name === event.target.name\n ) {\n if (event.target.value) {\n item.quantity = parseInt(event.target.value, 10);\n } else {\n item.quantity = 1;\n }\n }\n return item;\n });\n\n // eslint-disable-next-line no-unused-vars\n const selectedItemTemp =\n additionalOneTimeServicesCreateLength &&\n // eslint-disable-next-line array-callback-return\n additionalOnetimeServices.create.filter((item, index) => {\n if (\n (item.name\n ? item.name === event.target.name\n : item.service.name === event.target.name) &&\n item.quantity === 0\n ) {\n selectedItem[index].quantity = 1;\n }\n });\n if (selectedItem) {\n setFormData({\n ...formData,\n additional_one_time_services: selectedItem,\n });\n updateAdditionalOnetimeServices();\n }\n }\n\n // if item checked\n else if (event.target.checked) {\n // checked whether checked item present in newly created list\n if (\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.find((item) =>\n item.name\n ? item.name === event.target.name\n : item.service.name === event.target.name,\n )\n ) {\n // if checked item is already present in newly created list then don't do anything\n } else {\n // if checked item not found in newly created list then again check whether it is present in original formData variable because if it is found in formData then we need to add that found item in newly created list bcoz we need id and all of that item to push in newly created list.\n // here we check whether checked item present in orginal formDAta list then add that found item in newly created list\n if (itemInFormData) {\n if (\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.find((item) =>\n item.name\n ? item.name === itemInFormData.service.name\n : item.service.name === itemInFormData.service.name,\n )\n ) {\n // !!!\n } else {\n additionalOnetimeServices.create.push(itemInFormData);\n updateAdditionalOnetimeServices('isCreate', false);\n }\n }\n // else we create dict as BE required for new item and we push that in newly created list\n else if (\n additionalOneTimeServicesCreateLength &&\n additionalOnetimeServices.create.find((item) =>\n item.service_id\n ? item.service_id === val.value\n : item.service?.id === val.value,\n )\n ) {\n //\n } else {\n additionalOnetimeServices.create.push({\n name: event.target.name,\n service_id: val.value,\n contract_id: originalData?.id,\n quantity: 1,\n });\n updateAdditionalOnetimeServices('isCreate', false);\n }\n // here we fnally update state variable\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n });\n }\n // suppose checked item present in original formData then we have to remove its id from newly created delete list.\n if (itemInFormData) {\n const updatedDeleteList = additionalOnetimeServices.delete.filter(\n (item) => item !== itemInFormData.id,\n );\n additionalOnetimeServices.delete = updatedDeleteList;\n }\n\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n });\n\n fetchUncommonOptions(\n oneTimeService,\n additionalOnetimeServices.create,\n 'one_time_service',\n );\n\n if (\n contractType?.toLowerCase()?.includes('one') &&\n (additionalOnetimeServices.create !== null ||\n additionalOneTimeServicesCreateLength)\n ) {\n setAdditionalMonthlySerError({\n ...additionalMonthlySerError,\n required: '',\n });\n updateAgreementErrorMinusValue(sectionError.agreement - 1);\n }\n }\n // if item unchecked or removed\n else {\n // if unchecked item found in original list then add its id to newly created delte list\n if (itemInFormData) {\n additionalOnetimeServices.delete.push(itemInFormData.id);\n }\n // now we filter newly created list with removed unchecked item from it\n const updatedCreateList = additionalOnetimeServices.create.filter(\n (item) =>\n item.name\n ? item.name !== event.target.name\n : item.service.name !== event.target.name,\n );\n\n additionalOnetimeServices.create = updatedCreateList;\n\n const list = formData.additional_one_time_services;\n const deletedUncheckedItemList = list.filter((item) =>\n item.name\n ? item.name !== event.target.name\n : item.service.name !== event.target.name,\n );\n\n setFormData({\n ...formData,\n additional_one_time_services: deletedUncheckedItemList,\n });\n updateAdditionalOnetimeServices();\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n });\n\n if (\n contractType?.toLowerCase()?.includes('one') &&\n (deletedUncheckedItemList === null ||\n !deletedUncheckedItemList?.length)\n ) {\n setAdditionalMonthlySerError({\n ...additionalMonthlySerError,\n required: 'At least 1 one time service required',\n });\n updateAgreementErrorValue(sectionError.agreement + 1);\n }\n }\n\n fetchUncommonOptions(\n oneTimeService,\n additionalOnetimeServices.create,\n 'one_time_service',\n );\n } else {\n if (event.target.name === 'zip_code') {\n handleUpdatedFormDataEvent(\n 'isCustomerId',\n event.target.name,\n event.target.value.trim(),\n null,\n );\n } else if (event.target.value?.includes(selectedCurrency)) {\n let value = event.target.value.slice(1);\n\n if (\n event.target.name === 'dsp_fee' ||\n event.target.name === 'dsp_fee_second' ||\n event.target.name === 'dsp_fee_third'\n ) {\n value = value?.replace(/,/g, '')?.replace(/^0+/, '');\n handleAMCServices(event.target.name, value);\n }\n if (event.target.name === 'dsp_one_time_fee') {\n value = value?.replace(/,/g, '');\n handleUpdatedFormDataEvent(false, event.target.name, value, null);\n }\n } else if (\n event.target.name === 'monthly_retainer' &&\n event.target.value === ''\n ) {\n handleUpdatedFormDataEvent(false, event.target.name, null, null);\n } else if (\n event.target.name === 'billing_cap' &&\n event.target.value === ''\n ) {\n handleUpdatedFormDataEvent(false, event.target.name, null, null);\n } else if (\n event.target.name === 'company_name' ||\n event.target.name === 'state' ||\n event.target.name === 'city' ||\n event.target.name === 'address'\n ) {\n handleUpdatedFormDataEvent(\n 'isCustomerId',\n event.target.name,\n event.target.value,\n null,\n );\n } else if (\n event?.target?.name === 'change_agreement_start_date' ||\n event?.target?.name === 'change_addendum_start_date'\n ) {\n handleUpdatedFormDataEvent(\n false,\n event?.target?.name,\n event?.target?.checked,\n );\n } else if (\n event?.target?.name === 'content_optimization' ||\n event?.target?.name === 'design_optimization' ||\n event?.target?.name === 'photography_optimization' ||\n event?.target?.name === 'copy_listing_translation' ||\n event?.target?.name === 'creative_listing_translation'\n ) {\n setFormData({\n ...formData,\n [event.target.name]: parseInt(event.target.value, 10)\n ? event.target.value\n : null,\n });\n setUpdatedFormData({\n ...updatedFormData,\n [event.target.name]: parseInt(event.target.value, 10)\n ? event.target.value\n : null,\n });\n } else {\n setFormData({ ...formData, [event.target.name]: event.target.value });\n setUpdatedFormData({\n ...updatedFormData,\n [event.target.name]: event.target.value,\n });\n }\n\n if (\n Object.keys(apiError)?.includes('non_field_errors') ||\n Object.keys(apiError)?.includes(event.target.name)\n ) {\n setApiError({\n ...apiError,\n [event.target.name]: '',\n });\n }\n if (\n additionalMarketplaceError &&\n Object.keys(additionalMarketplaceError)?.includes(event.target.name)\n ) {\n setAdditionalMarketplaceError({\n ...additionalMarketplaceError,\n [additionalMarketplaceError]: '',\n });\n }\n\n if (\n additionalMonthlySerError &&\n Object.keys(additionalMonthlySerError)?.includes(event.target.name)\n ) {\n setAdditionalMonthlySerError({\n ...additionalMonthlySerError,\n [event.target.name]: '',\n });\n }\n\n if (\n additionalOnetimeSerError &&\n Object.keys(additionalOnetimeSerError)?.includes(event.target.name)\n ) {\n setAdditionalOnetimeSerError({\n ...additionalOnetimeSerError,\n [event.target.name]: '',\n });\n }\n if (\n customerError &&\n Object.keys(customerError)?.includes(event.target.name)\n ) {\n if (event.target.name === 'zip_code' && customerError?.zip_code) {\n if (event.target.value) {\n updateAgreementErrorMinusValue(sectionError.agreement - 1);\n } else {\n setSectionError({\n ...sectionError,\n agreement: sectionError.agreement ? sectionError.agreement : 0,\n });\n }\n setCustomerErrors({\n ...customerError,\n [event.target.name]: '',\n });\n }\n }\n if (event.target.name === 'dsp_fee' && contractError?.dsp_fee) {\n if (event.target.value) {\n updateDspErrorMinusValue(sectionError.dsp - 1);\n } else {\n setSectionError({\n ...sectionError,\n dsp: sectionError.dsp ? sectionError.dsp : 0,\n });\n }\n }\n if (\n event.target.name === 'dsp_one_time_fee' &&\n contractError?.dsp_one_time_fee\n ) {\n if (event.target.value) {\n updateDspErrorMinusValue(sectionError.dsp - 1);\n } else {\n setSectionError({\n ...sectionError,\n dsp: sectionError.dsp ? sectionError.dsp : 0,\n });\n }\n }\n\n if (\n (key === 'threshold_type' && contractErrorSalesThreshold) ||\n contractError?.yoy_percentage\n ) {\n setContractError({\n ...contractError,\n sales_threshold: '',\n yoy_percentage: '',\n });\n updateStatementErrorMinusValue(sectionError.statement - 1);\n } else if (event.target.name === 'sales_threshold') {\n if (contractErrorSalesThreshold) {\n setContractError({\n ...contractError,\n sales_threshold: '',\n yoy_percentage: '',\n });\n updateStatementErrorMinusValue(sectionError.statement - 1);\n }\n } else {\n setContractError({\n ...contractError,\n [event.target.name]: '',\n });\n }\n }\n };\n\n const getOptions = (key, type) => {\n if (type === 'multi') {\n if (key === 'additional_marketplaces') return additionalMarketplaces;\n if (key === 'additional_monthly_services') return monthlyService;\n }\n if (key === 'primary_marketplace') return marketPlaces;\n if (key === 'additional_one_time_services') return oneTimeService;\n if (key === 'currency') return agreementCurrency;\n if (key === 'channel') return channelOptions;\n if (key === 'agency_fee') return agencyFeeOptions;\n return accountLength;\n };\n\n const generateDropdown = (item, type) => {\n return (\n ({\n ...base,\n background:\n (apiError?.non_field_errors &&\n apiError.non_field_errors[0] &&\n item.key === 'primary_marketplace') ||\n (!(formData && formData[item.key]) && item.isMandatory)\n ? '#FBF2F2'\n : '#F4F6FC',\n // match with the menu\n // borderRadius: state.isFocused ? '3px 3px 0 0' : 3,\n // Overwrittes the different states of border\n borderColor:\n (apiError?.non_field_errors &&\n apiError.non_field_errors[0] &&\n item.key === 'primary_marketplace') ||\n (!(formData && formData[item.key]) && item.isMandatory)\n ? '#D63649'\n : '#D5D8E1',\n\n // Removes weird border around container\n boxShadow: state.isFocused ? null : null,\n '&:hover': {\n // Overwrittes the different states of border\n boxShadow: state.isFocused ? null : null,\n outlineColor: state.isFocused ? null : null,\n },\n }),\n placeholder: (defaultStyles) => {\n return {\n ...defaultStyles,\n color: '556178',\n };\n },\n }}\n placeholder={item.placeholder ? item.placeholder : 'Select'}\n defaultValue={\n item.key === 'primary_marketplace'\n ? formData.primary_marketplace?.name\n ? {\n value: formData.primary_marketplace.name,\n label: displayMarketplaceName(\n formData.primary_marketplace.name,\n 'primary',\n ),\n }\n : formData?.primary_marketplace\n ? {\n value: formData.primary_marketplace,\n label: displayMarketplaceName(\n formData.primary_marketplace,\n 'primary',\n ),\n }\n : null\n : item.key === 'currency'\n ? {\n value: formData?.currency?.value,\n label: formData?.currency?.label,\n }\n : item.key === 'channel'\n ? {\n value: formData?.channel?.value,\n label: formData?.channel?.label,\n }\n : item.key === 'agency_fee'\n ? formData?.agency_fee?.label\n ? {\n value: formData?.agency_fee?.value,\n label: formData?.agency_fee?.label,\n }\n : {\n value: formData?.agency_fee,\n label: `${formData?.agency_fee}%`,\n }\n : formData[item.key] && formData[item.key].label\n ? {\n value: formData[item.key].label,\n label: formData[item.key].value,\n }\n : formData[item.key]\n ? {\n value: formData[item.key],\n label: formData[item.key],\n }\n : null\n }\n options={getOptions(item.key, 'single')}\n name={item.key}\n components={{ DropdownIndicator }}\n onChange={(event) => handleChange(event, item.key, 'choice')}\n isDisabled={\n (type !== 'dsp' && contractAddendumDetails.notActive) ||\n item?.key === 'channel'\n }\n />\n );\n };\n\n const tileDisabled = (date, agreementStartDate) => {\n if (formData?.draft_from) {\n return (\n dayjs(date.date).get('date') !== dayjs(agreementStartDate).get('date')\n );\n }\n return false;\n };\n\n const displayContractType = () => {\n switch (formData && formData.contract_type) {\n case 'recurring':\n return 'Recurring Service Agreement';\n\n case 'recurring (90 day notice)':\n return 'Recurring (90 day notice) Service Agreement';\n\n case 'one time':\n return 'One Time Service Agreement';\n\n case 'dsp only':\n return 'DSP Only Service Agreement';\n\n default:\n break;\n }\n return '';\n };\n\n // function which return next month or next-to-next month for dsp advertising\n // if date is between 1-20 then return 1st og next month\n // if date greater than 20 then return 1st of next-to-next month\n\n const addDaysNew = (theDate) => {\n const tempStartDate = theDate.getDate();\n if (tempStartDate >= 1 && tempStartDate <= 20) {\n return new Date(theDate.getFullYear(), theDate.getMonth() + 1, 1);\n }\n return new Date(theDate.getFullYear(), theDate.getMonth() + 2, 1);\n };\n\n const generateHTML = (item, type) => {\n if (item.type?.includes('number')) {\n return (\n handleChange(event, item.key)}\n thousandSeparator={item.key !== 'zip_code'}\n decimalScale={2}\n allowNegative={false}\n isAllowed={(values) => {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n if (item?.zeroAcceptableField) {\n return floatValue >= 0 && floatValue <= 100000000;\n }\n return floatValue > 0 && floatValue <= 100000000;\n }}\n />\n );\n }\n\n if (item.type === 'date') {\n if (item.part === 'dsp') {\n // PDV- 8747 - for agreement and for addendum- user can select date from 1st date of current month. (1-20 date logic remain as it is).\n const dateToday = new Date();\n const firstDay = new Date(\n dateToday.getFullYear(),\n dateToday.getMonth(),\n 1,\n );\n return (\n then return 1-20 day logic\n ? addDaysNew(new Date())\n : formData?.dsp_start_date\n ? new Date(formData?.dsp_start_date)\n : new Date(firstMonthDate)\n }\n minDate={firstDay}\n maxDate={\n formData?.changed_dsp_start_date ? dspAdvertisingMaxDate : null\n }\n format=\"MM/dd/yyyy\"\n clearIcon={null}\n dayPlaceholder=\"DD\"\n monthPlaceholder=\"MM\"\n yearPlaceholder=\"YYYY\"\n placeholderText=\"Select Date\"\n onChange={(date) => {\n handleChange(date, 'dsp_start_date', 'date');\n setFirstMonthDate(new Date(date));\n }}\n />\n );\n }\n if (item?.key === 'start_date') {\n return (\n new Date()\n ? new Date(currentMonthsFirstDate)\n : new Date(agreementData?.start_date) < currentMonthsFirstDate\n ? new Date(currentMonthsFirstDate)\n : new Date(currentMonthsFirstDate)\n : new Date()\n }\n value={\n item.key === 'start_date' && contractAddendumDetails?.notActive\n ? new Date(agreementData?.start_date) // if addendum, then don't change the agreement start date.\n : new Date(startDate) ||\n (item.key && formData[item.key] && formData[item.key] !== null\n ? new Date(formData[item.key])\n : '')\n }\n onChange={(date) => handleChange(date, 'start_date', 'date')}\n format=\"MM/dd/yyyy\"\n clearIcon={null}\n dayPlaceholder=\"DD\"\n monthPlaceholder=\"MM\"\n yearPlaceholder=\"YYYY\"\n placeholderText=\"Select Date\"\n tileDisabled={(date) =>\n tileDisabled(date, agreementData?.start_date)\n }\n disabled={\n (type !== 'dsp' && contractAddendumDetails.notActive) ||\n (item?.key === 'start_date' &&\n !formData?.change_agreement_start_date)\n }\n />\n );\n }\n\n if (item?.key === 'addendum_start_date') {\n return (\n \n handleChange(date, 'addendum_start_date', 'date')\n }\n format=\"MM/dd/yyyy\"\n clearIcon={null}\n dayPlaceholder=\"DD\"\n monthPlaceholder=\"MM\"\n yearPlaceholder=\"YYYY\"\n placeholderText=\"Select Date\"\n tileDisabled={(date) =>\n tileDisabled(date, agreementData?.addendum_start_date)\n }\n disabled={\n item?.key === 'addendum_start_date' &&\n !formData?.change_addendum_start_date\n }\n />\n );\n }\n }\n if (item.type === 'choice') {\n return (\n \n {generateDropdown(item, type)}\n \n );\n }\n\n if (item && item.field === 'customer') {\n return (\n handleChange(event, item.key)}\n name={item.key}\n defaultValue={customer?.[item.key]}\n disabled={type !== 'dsp' && contractAddendumDetails.notActive}\n />\n );\n }\n\n if (item?.type === 'checkbox') {\n return (\n \n \n {item?.label}\n handleChange(event, item?.key, 'checkbox')}\n />\n \n \n \n );\n }\n\n return (\n handleChange(event, item.key)}\n name={item.key}\n defaultValue={\n item.key === 'contract_type'\n ? displayContractType()\n : formData?.[item.key]\n }\n />\n );\n };\n\n const nextStep = (key) => {\n if (key === 'statement') {\n setOpenCollapse({\n agreement: false,\n statement: true,\n dspAddendum: false,\n addendum: false,\n });\n if (contractAddendumDetails?.notActive) executeScroll('draft-addendum');\n else executeScroll('statement');\n }\n if (key === 'dspAddendum') {\n setOpenCollapse({\n ...openCollapse,\n agreement: false,\n statement: false,\n dspAddendum: true,\n addendum: false,\n });\n if (contractAddendumDetails?.notActive) executeScroll('draft-addendum');\n else executeScroll('dspAddendum');\n }\n if (key === 'addendum') {\n setOpenCollapse({\n ...openCollapse,\n agreement: false,\n statement: false,\n dspAddendum: false,\n addendum: true,\n });\n if (contractAddendumDetails?.notActive) executeScroll('draft-addendum');\n else executeScroll('addendum');\n }\n if (key === 'feeStructure') {\n setOpenCollapse({\n ...openCollapse,\n agreement: false,\n statement: false,\n dspAddendum: false,\n addendum: false,\n feeStructure: true,\n });\n if (contractAddendumDetails?.notActive) executeScroll('draft-addendum');\n else executeScroll('feeStructure');\n }\n if (key === 'final') {\n if (newAddendumData) {\n const addendumData = {\n customer_id: id,\n addendum: newAddendumData && newAddendumData.addendum,\n contract_addendum: contractAddendumDetails?.id,\n };\n const contractData = {\n customer_id: id,\n addendum: newAddendumData && newAddendumData.addendum,\n contract: agreementData.id,\n };\n setContractLoading({ loader: true, type: 'page' });\n\n createAddendum(\n contractAddendumDetails?.notActive ? addendumData : contractData,\n ).then((res) => {\n setCheckAddendumData(true);\n setContractLoading({ loader: false, type: 'page' });\n if (res?.status === 201) {\n setNewAddendum(res && res.data);\n setOpenCollapse({\n ...openCollapse,\n statement: false,\n dspAddendum: false,\n addendum: true,\n });\n if (updatedFormData?.addendum) {\n delete updatedFormData.addendum;\n }\n\n setUpdatedFormData({ ...updatedFormData });\n if (!Object.keys(updatedFormData).length) {\n getContractDetails();\n setIsEditContract(false);\n }\n toast.success('Changes Saved!');\n\n if (contractAddendumDetails?.notActive)\n executeScroll('draft-addendum');\n else executeScroll('addendum');\n setShowEditor(false);\n setOriginalAddendumData(res?.data);\n setCheckAddendumData(true);\n }\n });\n }\n }\n };\n\n const changeQuantity = (oneTimeServiceData, flag) => {\n showFooter(true);\n\n clearOneTimeQntyError(oneTimeServiceData);\n if (additionalOneTimeServicesLength) {\n const changedService = formData.additional_one_time_services.filter(\n (item) => {\n if (\n item.service_id\n ? item.service_id === oneTimeServiceData.value\n : item.service?.id === oneTimeServiceData.value\n ) {\n let quantity = 0;\n if (item.quantity) {\n quantity = parseInt(item.quantity, 10);\n }\n if (flag === 'add') {\n if (quantity < 999) {\n quantity += 1;\n item.quantity = quantity;\n }\n }\n if (flag === 'minus') {\n if (quantity > 1) {\n quantity -= 1;\n item.quantity = quantity;\n }\n }\n }\n return item;\n },\n );\n\n setFormData({\n ...formData,\n additional_one_time_services: changedService,\n });\n setUpdatedFormData({\n ...updatedFormData,\n additional_one_time_services: {\n ...additionalOnetimeServices,\n create: changedService,\n },\n });\n }\n };\n\n const displayError = (item) => {\n if (item === 'non_field_errors') {\n return (\n \n {apiError?.non_field_errors && apiError.non_field_errors[0]}\n \n );\n }\n if (item === 'custom_amazon_store_price') {\n return (\n \n {additionalOnetimeSerError?.custom_amazon_store_price}\n \n );\n }\n\n return (\n <>\n \n {apiError && apiError[item.key] && apiError[item.key][0]}\n \n \n {contractError &&\n contractError[item.key] &&\n contractError[item.key][0]}\n \n \n {customerError &&\n customerError[item.key] &&\n customerError[item.key][0]}\n \n \n {additionalOnetimeSerError &&\n additionalOnetimeSerError[item.key] &&\n additionalOnetimeSerError[item.key][0]}\n \n \n {additionalMonthlySerError &&\n additionalMonthlySerError[item.key] &&\n additionalMonthlySerError[item.key][0]}\n \n \n {additionalMarketplaceError &&\n additionalMarketplaceError[item.key] &&\n additionalMarketplaceError[item.key][0]}\n \n \n );\n };\n\n const onAddDiscount = (flag, accntType = '', isAMCService = false) => {\n setDiscountFlag({\n serviceType: flag,\n accountType: accntType,\n is_amc_service_discount: isAMCService,\n });\n const result =\n discountData?.length &&\n discountData.filter(\n (item) => item.service_type === flag && item.account_type === accntType,\n );\n if (result) {\n setSelectedDiscount(result);\n }\n\n setShowDiscountModal(true);\n };\n\n const onThresholdTypeChange = (event, key, threshold) => {\n setSelectedThreshold(threshold);\n handleChange(event, key);\n };\n\n const renderRedCrossImgHtml = () => {\n return \"right-check\";\n };\n const renderGreenCheckImgHtml = () => {\n return (\n \"right-check\"\n );\n };\n\n const renderCollapseBtnErrorHtml = (\n isOneTimeService,\n errorTypeCount,\n collapseType,\n collapseSection,\n ) => {\n return showRightTick(collapseSection) ? (\n renderGreenCheckImgHtml()\n ) : (\n <>\n {renderRedCrossImgHtml()}\n
    Missing Information
    \n \n );\n };\n\n const displayEditFields = () => {\n return (\n
    \n <>\n {isEditContract ? (\n <>\n \n\n {agreementData &&\n agreementData.contract_type?.includes('recurring') ? (\n \n ) : (\n ''\n )}\n\n \n {formData?.contract_type?.includes('dsp') ||\n (formData?.contract_type?.includes('recurring') &&\n formData?.is_dsp_advertising) ? (\n \n ) : (\n ''\n )}\n
    \n \n \n ) : (\n <>\n \n \n )}\n \n
    \n );\n };\n\n return (\n \n {displayEditFields()}\n \n );\n}\nAgreementSidePanelContainer.defaultProps = agreementDefaultProptypes;\n\nAgreementSidePanelContainer.propTypes = agreementSidePanelPropTypes;\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { bool, func, shape } from 'prop-types';\n\nimport { ModalBox, Button } from '../../../common';\n\nconst customStylesForAlert = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '474px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nfunction ContractEditConfirmation({\n showEditContractConfirmationModal,\n editAgreementChanges,\n contractAddendumDetails,\n}) {\n return (\n \n \n
    \n
    \n {`Making any edits to this ${\n contractAddendumDetails?.notActive ? 'addendum' : 'contract'\n } will void the version of the\n contract that's out for signature.`}\n
    \n Are you sure you want to proceed?\n
    \n
    \n
    \n editAgreementChanges('Yes')}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\"\n >\n Yes, Make Edits\n \n editAgreementChanges('No')}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \"\n >\n Cancel\n \n
    \n
    \n
    \n \n );\n}\n\nexport default ContractEditConfirmation;\n\nContractEditConfirmation.defaultProps = {\n showEditContractConfirmationModal: false,\n editAgreementChanges: () => {},\n contractAddendumDetails: {},\n};\n\nContractEditConfirmation.propTypes = {\n showEditContractConfirmationModal: bool,\n editAgreementChanges: func,\n contractAddendumDetails: shape({\n notActive: bool,\n }),\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { bool, func, shape } from 'prop-types';\n\nimport { ModalBox, Button } from '../../../common';\n\nconst customStylesForAlert = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '474px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nfunction DiscardChangesConfirmation({\n showDiscardModal,\n discardAgreementChanges,\n}) {\n return (\n \n \n
    \n
    \n Are you sure you want to discard all the changes?\n
    \n
    \n discardAgreementChanges('No')}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\">\n Keep Editing\n \n discardAgreementChanges('Yes')}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \">\n Discard Changes\n \n
    \n
    \n
    \n \n );\n}\n\nexport default DiscardChangesConfirmation;\n\nDiscardChangesConfirmation.defaultProps = {\n showDiscardModal: {},\n discardAgreementChanges: () => {},\n};\n\nDiscardChangesConfirmation.propTypes = {\n showDiscardModal: shape({\n show: bool,\n }),\n discardAgreementChanges: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\nimport NumberFormat from 'react-number-format';\nimport {\n string,\n number,\n func,\n oneOfType,\n shape,\n arrayOf,\n bool,\n} from 'prop-types';\n\nimport { saveDiscount } from '../../../../api';\nimport {\n Button,\n ModalRadioCheck,\n InputFormField,\n ErrorMsg,\n PageLoader,\n} from '../../../../common';\n\nfunction Discount({\n discountFlag,\n agreementData,\n formData,\n setShowDiscountModal,\n selectedDiscount,\n getDiscountData,\n updatedFormData,\n setIsEditContract,\n getServicesAccordingToAccType,\n getContractActivityLogInfo,\n selectedCurrency,\n contractAddendumDetails,\n getContractDetails,\n}) {\n const [showAmountInput, setShowAmountInput] = useState(false);\n const [selectedDiscountType, setSelectedDiscountType] = useState('none');\n const [enteredAmount, setAmount] = useState(null);\n\n const [apiError, setApiError] = useState('');\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n\n useEffect(() => {\n if (selectedDiscount?.length && selectedDiscount[0]?.id) {\n if (selectedDiscount?.[0]?.type) {\n setShowAmountInput(true);\n }\n setSelectedDiscountType(selectedDiscount[0]?.type);\n }\n }, []);\n\n const onSubmit = () => {\n setIsLoading({ loader: true, type: 'button' });\n\n if (discountFlag.serviceType === 'one time service') {\n const contractPostData = {\n contract: agreementData?.id,\n account_type: '',\n service_type: 'one time service',\n type: selectedDiscountType === 'none' ? null : selectedDiscountType,\n amount: enteredAmount,\n };\n const addendumPostData = {\n contract_addendum: contractAddendumDetails?.id,\n account_type: '',\n service_type: 'one time service',\n type: selectedDiscountType === 'none' ? null : selectedDiscountType,\n amount: enteredAmount,\n };\n if (selectedDiscount?.length && selectedDiscount[0]?.id) {\n saveDiscount(\n selectedDiscount[0]?.id,\n contractAddendumDetails?.notActive\n ? addendumPostData\n : contractPostData,\n ).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n if (res?.status === 200 || res?.status === 201) {\n getContractDetails();\n getDiscountData(\n (contractAddendumDetails?.notActive !== null ||\n contractAddendumDetails?.notActive !== undefined) &&\n contractAddendumDetails?.notActive\n ? contractAddendumDetails?.id\n : agreementData.id,\n );\n setShowDiscountModal(false);\n if (!Object.keys(updatedFormData).length) {\n setIsEditContract(false);\n getContractActivityLogInfo();\n }\n }\n if (res?.status === 400) {\n setApiError(res?.data);\n }\n });\n } else {\n saveDiscount(\n null,\n contractAddendumDetails?.notActive\n ? addendumPostData\n : contractPostData,\n ).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n\n if (res?.status === 200 || res?.status === 201) {\n getContractDetails();\n getDiscountData(\n (contractAddendumDetails?.notActive !== null ||\n contractAddendumDetails?.notActive !== undefined) &&\n contractAddendumDetails?.notActive\n ? contractAddendumDetails?.id\n : agreementData.id,\n );\n setShowDiscountModal(false);\n if (!Object.keys(updatedFormData).length) {\n setIsEditContract(false);\n getContractActivityLogInfo();\n }\n }\n if (res?.status === 400) {\n setApiError(res?.data);\n }\n });\n }\n }\n if (discountFlag.serviceType === 'monthly service') {\n const postAddendumData = {\n contract_addendum: contractAddendumDetails?.id,\n account_type: discountFlag.accountType,\n service_type: 'monthly service',\n type: selectedDiscountType === 'none' ? null : selectedDiscountType,\n amount: enteredAmount,\n };\n const postContractData = {\n contract: agreementData?.id,\n account_type: discountFlag.accountType,\n service_type: 'monthly service',\n type: selectedDiscountType === 'none' ? null : selectedDiscountType,\n amount: enteredAmount,\n };\n\n if (\n discountFlag.serviceType === 'monthly service' &&\n discountFlag?.accountType === '' &&\n discountFlag?.is_amc_service_discount\n ) {\n postAddendumData.is_amc_service_discount = true;\n postContractData.is_amc_service_discount = true;\n }\n if (selectedDiscount?.length && selectedDiscount[0]?.id) {\n saveDiscount(\n selectedDiscount[0]?.id,\n contractAddendumDetails.notActive\n ? postAddendumData\n : postContractData,\n ).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n if (res?.status === 200 || res?.status === 201) {\n getContractDetails();\n getDiscountData(\n (contractAddendumDetails?.notActive !== null ||\n contractAddendumDetails?.notActive !== undefined) &&\n contractAddendumDetails?.notActive\n ? contractAddendumDetails?.id\n : agreementData.id,\n );\n setShowDiscountModal(false);\n if (!Object.keys(updatedFormData).length) {\n setIsEditContract(false);\n getContractActivityLogInfo();\n }\n }\n if (res?.status === 400) {\n setApiError(res?.data);\n }\n });\n } else {\n postAddendumData.is_addendum_discount_changed = true;\n saveDiscount(\n null,\n contractAddendumDetails?.notActive\n ? postAddendumData\n : postContractData,\n ).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n if (res?.status === 200 || res?.status === 201) {\n getContractDetails();\n getDiscountData(\n (contractAddendumDetails?.notActive !== null ||\n contractAddendumDetails?.notActive !== undefined) &&\n contractAddendumDetails?.notActive\n ? contractAddendumDetails?.id\n : agreementData.id,\n );\n setShowDiscountModal(false);\n if (!Object.keys(updatedFormData).length) {\n setIsEditContract(false);\n getContractActivityLogInfo();\n }\n }\n if (res?.status === 400) {\n setApiError(res?.data);\n }\n });\n }\n }\n };\n\n const handleInputChange = (event) => {\n setApiError('');\n setAmount(event.target.value.replace(/,/g, ''));\n };\n\n const handleSelectedDiscountType = (discountType) => {\n return discountType === 'percentage' ? (\n %\n ) : (\n {selectedCurrency}\n );\n };\n\n const setDefaultValue = () => {\n return selectedDiscount?.length &&\n selectedDiscount[0]?.type === selectedDiscountType\n ? selectedDiscount?.length && selectedDiscount[0]?.amount\n : null;\n };\n\n const handleNumberFormat = (placeholder, type) => {\n return (\n handleInputChange(event)}\n defaultValue={setDefaultValue()}\n thousandSeparator\n allowNegative={false}\n decimalSeparator={false}\n isAllowed={(values) => {\n if (type === 'percentage') {\n const { formattedValue, floatValue } = values;\n if (floatValue == null) {\n return formattedValue === '';\n }\n return floatValue <= 100;\n }\n return values;\n }}\n />\n );\n };\n const handleRadioChange = (event) => {\n setApiError('');\n setSelectedDiscountType(event.target.value);\n\n if (event.target.value !== 'none') {\n setShowAmountInput(true);\n } else {\n setShowAmountInput(false);\n }\n };\n\n const displayErrorMsg = (apiErrorDiscountType) => {\n if (discountFlag.serviceType === 'one time service') {\n if (\n Object.keys(updatedFormData).includes('additional_one_time_services')\n ) {\n return apiErrorDiscountType\n ? `If additional services are newly added/removed, Please save the changes`\n : '';\n }\n }\n\n if (discountFlag.serviceType === 'monthly service') {\n const serviceResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n discountFlag.accountType,\n );\n const marketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n discountFlag.accountType,\n );\n if (\n (serviceResult && !serviceResult.every((item) => item.id)) ||\n (marketplaceResult && !marketplaceResult.every((item) => item.id)) ||\n (Object.keys(updatedFormData).includes('additional_marketplaces') &&\n updatedFormData?.additional_marketplaces?.delete?.length) ||\n (Object.keys(updatedFormData).includes('additional_monthly_services') &&\n updatedFormData?.additional_monthly_services?.delete?.length)\n ) {\n return apiErrorDiscountType\n ? `If additional services are newly added/removed, Please save the changes`\n : '';\n }\n }\n\n return apiErrorDiscountType ? `${apiErrorDiscountType}` : '';\n };\n const handleErrorMsg = () => {\n return {displayErrorMsg(apiError?.amount)};\n };\n\n const handleModalRadioCheck = (id, inputValue, Title, unit) => {\n return (\n
  • \n \n \n \n
  • \n );\n };\n\n return (\n
    \n

    Apply Discount

    \n
    \n
      \n {handleModalRadioCheck('none', 'none', 'None', '')}\n {handleModalRadioCheck(\n 'fixedAmount',\n 'fixed amount',\n 'Fixed Amount',\n selectedCurrency,\n )}\n {handleModalRadioCheck('percentage', 'percentage', 'Percentage', '%')}\n
    \n {selectedDiscountType === 'fixed amount' ? (\n <>\n {showAmountInput ? (\n \n \n {handleErrorMsg()}\n \n ) : (\n ''\n )}\n \n ) : (\n <>\n {showAmountInput ? (\n \n \n {handleErrorMsg()}\n \n ) : (\n ''\n )}\n \n )}\n onSubmit()}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Confirm'\n )}\n \n
    \n
    \n );\n}\nDiscount.defaultProps = {\n discountFlag: {},\n agreementData: {},\n formData: {},\n setShowDiscountModal: () => {},\n selectedDiscount: [],\n getDiscountData: () => {},\n updatedFormData: {},\n setIsEditContract: () => {},\n getServicesAccordingToAccType: () => {},\n getContractActivityLogInfo: () => {},\n selectedCurrency: '$ (USD)',\n contractAddendumDetails: {},\n getContractDetails: () => {},\n};\nDiscount.propTypes = {\n discountFlag: shape({}),\n agreementData: shape({\n id: string,\n monthly_discount_amount: oneOfType([string, number]),\n monthly_discount_type: oneOfType([string, number]),\n one_time_discount_type: oneOfType([string, number]),\n one_time_discount_amount: oneOfType([string, number]),\n }),\n formData: shape({\n additional_monthly_services: arrayOf(shape({})),\n additional_marketplaces: arrayOf(shape({})),\n }),\n setShowDiscountModal: func,\n selectedDiscount: arrayOf(shape({})),\n getDiscountData: func,\n updatedFormData: shape({}),\n setIsEditContract: func,\n getServicesAccordingToAccType: func,\n getContractActivityLogInfo: func,\n selectedCurrency: string,\n contractAddendumDetails: shape({ notActive: bool }),\n getContractDetails: func,\n};\nexport default Discount;\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { string, bool, func, shape, oneOfType, number } from 'prop-types';\n\nimport Discount from '../AgreementRightSideSections/StatementOfWork/Discount';\nimport { ModalBox } from '../../../common';\nimport { CloseIcon } from '../../../theme/images';\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n minHeight: '170px',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nfunction DiscountModal({\n showDiscountModal,\n closeDiscountModal,\n details,\n setShowDiscountModal,\n formData,\n setFormData,\n discountFlag,\n setDetails,\n selectedDiscount,\n getDiscountData,\n updatedFormData,\n setIsEditContract,\n getServicesAccordingToAccType,\n getContractActivityLogInfo,\n selectedCurrency,\n contractAddendumDetails,\n originalData,\n getContractDetails,\n}) {\n return (\n \n closeDiscountModal()}\n role=\"presentation\"\n />\n \n \n \n \n );\n}\n\nexport default DiscountModal;\n\nDiscountModal.defaultProps = {\n showDiscountModal: false,\n closeDiscountModal: () => {},\n details: {},\n setShowDiscountModal: () => {},\n formData: {},\n setFormData: () => {},\n discountFlag: '',\n setDetails: () => {},\n selectedDiscount: {},\n getDiscountData: () => {},\n updatedFormData: {},\n setIsEditContract: () => {},\n getServicesAccordingToAccType: () => {},\n getContractActivityLogInfo: () => {},\n selectedCurrency: '$ (USD)',\n contractAddendumDetails: {},\n originalData: {},\n getContractDetails: () => {},\n};\n\nDiscountModal.propTypes = {\n showDiscountModal: bool,\n closeDiscountModal: func,\n details: shape({\n id: string,\n monthly_discount_amount: oneOfType([string, number]),\n monthly_discount_type: oneOfType([string, number]),\n one_time_discount_type: oneOfType([string, number]),\n one_time_discount_amount: oneOfType([string, number]),\n }),\n setShowDiscountModal: func,\n formData: shape({\n id: string,\n monthly_discount_amount: oneOfType([string, number]),\n monthly_discount_type: oneOfType([string, number]),\n one_time_discount_type: oneOfType([string, number]),\n one_time_discount_amount: oneOfType([string, number]),\n }),\n setFormData: func,\n discountFlag: string,\n setDetails: func,\n selectedDiscount: shape({}),\n getDiscountData: func,\n updatedFormData: shape({}),\n setIsEditContract: func,\n getServicesAccordingToAccType: func,\n getContractActivityLogInfo: func,\n selectedCurrency: string,\n contractAddendumDetails: shape({}),\n originalData: shape({}),\n getContractDetails: func,\n};\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { string, bool, func, shape } from 'prop-types';\n\nimport { PageLoader, Button, ModalBox } from '../../../common';\n\nfunction PauseAgreementConfirmation({\n showPauseModal,\n onClickOfUpdatePauseContract,\n isLoading,\n setShowPauseModal,\n}) {\n const customStylesForAlert = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '474px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n return (\n \n \n
    \n
    \n \n Agreement pause duration was {showPauseModal.data?.start_date} to{' '}\n {showPauseModal.data?.end_date}.\n \n

    Are you sure you want to pause this Agreement?

    \n
    \n
    \n {\n onClickOfUpdatePauseContract({ getPauseAgreement: false });\n }}\n type=\"button\"\n className=\"btn-primary on-boarding mr-2 pb-2 mb-1\">\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Pause Agreement'\n )}\n \n setShowPauseModal({ show: false, data: {} })}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \">\n Cancel\n \n
    \n
    \n
    \n \n );\n}\n\nexport default PauseAgreementConfirmation;\n\nPauseAgreementConfirmation.defaultProps = {\n showPauseModal: {},\n onClickOfUpdatePauseContract: () => {},\n isLoading: {},\n setShowPauseModal: () => {},\n};\n\nPauseAgreementConfirmation.propTypes = {\n showPauseModal: shape({\n show: bool,\n }),\n onClickOfUpdatePauseContract: func,\n isLoading: shape({\n loader: bool,\n type: string,\n }),\n setShowPauseModal: func,\n};\n","import React from 'react';\n\nimport { toast } from 'react-toastify';\nimport { func, shape } from 'prop-types';\n\nimport { ErrorMsg } from '../../../common';\nimport { sendReminderOfContract } from '../../../api';\n\nfunction SendReminder({\n transactionalData,\n reminderError,\n renderbuttonHtml,\n setIsLoading,\n setShowModal,\n removeParams,\n setReminderErrors,\n agreementData,\n contractAddendumDetails,\n}) {\n const sendReminder = () => {\n setIsLoading({ loader: true, type: 'button' });\n // set id according to contract and addendum\n const contractData = {\n contract_id: agreementData?.id,\n };\n const addendumData = {\n contract_addendum_id: contractAddendumDetails?.id,\n };\n sendReminderOfContract(\n contractAddendumDetails?.notActive ? addendumData : contractData,\n ).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n if (res?.status === 200) {\n setShowModal(false);\n removeParams('step');\n toast.success('Reminder sent successfully!');\n }\n if (res?.status === 400) {\n setReminderErrors(res?.data);\n }\n });\n };\n\n return (\n <>\n
    \n

    Send Reminder

    \n\n
    \n
    \n
    \n TO:\n \n {transactionalData?.primary_email}\n \n
    \n {reminderError?.Contact} \n
    \n
    \n
    \n {renderbuttonHtml(false, () => sendReminder(), 'Send Reminder')}\n
    \n
    \n \n );\n}\n\nexport default SendReminder;\n\nSendReminder.defaultProps = {\n transactionalData: {},\n reminderError: {},\n renderbuttonHtml: () => {},\n setIsLoading: () => {},\n setShowModal: () => {},\n removeParams: () => {},\n setReminderErrors: () => {},\n agreementData: {},\n contractAddendumDetails: {},\n};\nSendReminder.propTypes = {\n transactionalData: shape({}),\n reminderError: shape({}),\n renderbuttonHtml: func,\n setIsLoading: func,\n setShowModal: func,\n removeParams: func,\n setReminderErrors: func,\n agreementData: shape({}),\n contractAddendumDetails: shape({}),\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { useDispatch } from 'react-redux';\nimport { useParams } from 'react-router-dom';\nimport { bool, func, shape, string } from 'prop-types';\n\nimport { deleteContactInfo } from '../../../api';\nimport { getContactDetails } from '../../../store/actions/customerState';\nimport { Button, ErrorMsg, PageLoader, ModalRadioCheck } from '../../../common';\nimport {\n AddNewIcons,\n TrashIcons,\n EditFileIcons,\n EmailIcon,\n PhoneIcon,\n} from '../../../theme/images';\n\nfunction Contacts({\n isLoading,\n contactInfoLoading,\n contactInfo,\n setFormData,\n setContactApiError,\n setParams,\n setModalName,\n requestSignatureError,\n selectedContact,\n setSelectedContact,\n setIsLoading,\n setHelloSignEnterDateTextFlag,\n selectedRecipient,\n}) {\n const dispatch = useDispatch();\n const { id } = useParams();\n const [contactDetails, setContactDetails] = useState(contactInfo);\n\n useEffect(() => {\n if (selectedRecipient && selectedRecipient === contactInfo?.[0]?.id)\n setSelectedContact(contactInfo?.[0]);\n }, [selectedRecipient, setSelectedContact, contactInfo]);\n\n const onSelectContact = (info) => {\n setSelectedContact(info);\n };\n\n const removeContact = (index) => {\n if (index && index.includes('CT')) {\n setIsLoading({ loader: true, type: 'button' });\n deleteContactInfo(index).then(() => {\n setIsLoading({ loader: false, type: 'button' });\n dispatch(getContactDetails(id));\n if (index === selectedContact?.id) {\n setSelectedContact({});\n }\n });\n } else {\n const list = [...contactDetails];\n list.splice(index, 1);\n setContactDetails(list);\n }\n };\n const displayContact = () => {\n return contactInfo.map((info, i) => {\n return (\n \n \n removeContact(info.id || i)}\n />\n {\n setFormData(info);\n setContactApiError({});\n setModalName('Edit Contact');\n setParams('add-new-contact');\n }}\n />\n
    \n
    \n {info?.role}\n
    \n
    \n
    \n \n \"email\"\n {info && info.email}\n \n
    \n
    \n
    \n \n \"email\"\n {info && info.phone_number}\n \n
    \n
    \n
    \n \n );\n });\n };\n\n return (\n <>\n
    \n

    Select contact

    \n {(isLoading.loader && isLoading.type === 'page') ||\n contactInfoLoading ? (\n \n ) : (\n <>\n
    \n {displayContact()}\n {\n setFormData({});\n setContactApiError({});\n setParams('add-new-contact');\n setModalName('Add Contact');\n }}\n >\n \n Add New Contact\n \n
    \n {requestSignatureError?.error}\n setParams('verify-document')}\n >\n setHelloSignEnterDateTextFlag(true)}\n className={\n selectedContact?.id\n ? ' btn-primary on-boarding w-100'\n : ' btn-gray on-boarding w-100 btn-disabled '\n }\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Request Signature'\n )}\n \n
    \n \n )}\n
    \n \n );\n}\n\nexport default Contacts;\n\nContacts.defaultProps = {\n isLoading: {},\n contactInfoLoading: false,\n contactInfo: {},\n setFormData: () => {},\n setContactApiError: () => {},\n setParams: () => {},\n setModalName: () => {},\n requestSignatureError: {},\n selectedContact: {},\n setSelectedContact: () => {},\n setIsLoading: () => {},\n setHelloSignEnterDateTextFlag: () => {},\n selectedRecipient: '',\n};\n\nContacts.propTypes = {\n isLoading: shape({}),\n contactInfoLoading: bool,\n contactInfo: shape({}),\n setFormData: func,\n setContactApiError: func,\n setParams: func,\n setModalName: func,\n requestSignatureError: shape({}),\n selectedContact: shape({}),\n setSelectedContact: func,\n setIsLoading: func,\n setHelloSignEnterDateTextFlag: () => {},\n selectedRecipient: string,\n};\n","import React from 'react';\n\nimport { useDispatch } from 'react-redux';\nimport { useParams } from 'react-router-dom';\nimport { string, func, shape } from 'prop-types';\n\nimport { LeftArrowIcon } from '../../../theme/images';\nimport { getContactDetails } from '../../../store/actions/customerState';\nimport { ErrorMsg, InputFormField } from '../../../common';\nimport { createContactInfo, updateContactInfo } from '../../../api';\n\nfunction AddNewContact({\n setParams,\n formData,\n renderbuttonHtml,\n contactModalName,\n setFormData,\n setContactApiError,\n contactApiError,\n setIsLoading,\n setSelectedContact,\n selectedContact,\n}) {\n const dispatch = useDispatch();\n const { id } = useParams();\n const contactFields = [\n {\n key: 'first_name',\n type: 'text',\n placeholder: 'First Name',\n classname: 'col-6 ',\n },\n {\n key: 'last_name',\n type: 'text',\n placeholder: 'Last Name',\n classname: 'col-6 ',\n },\n {\n key: 'role',\n type: 'text',\n placeholder: 'Role',\n classname: 'col-12',\n },\n {\n key: 'email',\n type: 'email',\n placeholder: 'Email',\n classname: 'col-6',\n },\n {\n key: 'phone_number',\n type: 'text',\n placeholder: 'Phone Number',\n classname: 'col-6',\n },\n ];\n\n const handleContactChange = (event) => {\n setFormData({ ...formData, [event.target.name]: event.target.value });\n setContactApiError({\n ...contactApiError,\n [event.target.name]: '',\n non_field_errors: '',\n });\n };\n\n const displayAddNewContactForm = () => {\n return contactFields.map((field) => {\n return (\n
    \n \n \n \n {contactApiError &&\n contactApiError[field.key] &&\n contactApiError[field.key][0]}\n {contactApiError?.non_field_errors &&\n field.key === 'email' &&\n contactApiError.non_field_errors[0]}\n \n \n
    \n );\n });\n };\n\n const saveContact = (info) => {\n if (info) {\n setFormData(info);\n setParams('add-new-contact');\n setIsLoading({ loader: true, type: 'button' });\n\n updateContactInfo(info && info.id, formData).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n if (res?.status === 400) {\n setContactApiError(res?.data);\n }\n if (res?.status === 200) {\n if (selectedContact?.id === res?.data?.id) {\n setSelectedContact(res?.data);\n }\n dispatch(getContactDetails(id));\n setParams('select-contact');\n }\n });\n } else {\n setFormData({ ...formData, customer: id });\n setIsLoading({ loader: true, type: 'button' });\n createContactInfo({ ...formData, customer: id }).then(\n (responseContact) => {\n setIsLoading({ loader: false, type: 'button' });\n if (responseContact?.status === 201) {\n dispatch(getContactDetails(id));\n setParams('select-contact');\n }\n if (responseContact?.status === 400) {\n setContactApiError(responseContact?.data);\n }\n },\n );\n }\n };\n\n return (\n
    \n setParams('select-contact')}>\n \"\"\n {contactModalName}\n \n
    \n
    {displayAddNewContactForm()}
    \n
    \n {formData && formData.id ? (\n
    \n {renderbuttonHtml(\n !(formData.first_name && formData.last_name && formData.email),\n () => saveContact(formData),\n 'Save Contact',\n )}\n
    \n ) : (\n
    \n {renderbuttonHtml(\n !(formData.first_name && formData.last_name && formData.email),\n () => saveContact(),\n 'Add Contact',\n )}\n
    \n )}\n
    \n );\n}\n\nexport default AddNewContact;\n\nAddNewContact.defaultProps = {\n setParams: () => {},\n formData: {},\n renderbuttonHtml: () => {},\n contactModalName: '',\n setFormData: () => {},\n setContactApiError: () => {},\n contactApiError: {},\n setIsLoading: () => {},\n setSelectedContact: () => {},\n selectedContact: {},\n};\n\nAddNewContact.propTypes = {\n setParams: func,\n formData: shape({\n id: string,\n first_name: string,\n last_name: string,\n email: string,\n }),\n renderbuttonHtml: func,\n contactModalName: string,\n setFormData: func,\n setContactApiError: func,\n contactApiError: shape({}),\n setIsLoading: func,\n setSelectedContact: func,\n selectedContact: shape({}),\n};\n","import React, { useState } from 'react';\n\n// import HelloSign from 'hellosign-embedded';\nimport { string, func, shape, bool } from 'prop-types';\nimport { useHistory } from 'react-router-dom';\nimport { ToastContainer, toast } from 'react-toastify';\n\nimport { AddNewIcons, LeftArrowIcon } from '../../../theme/images';\nimport { Button, CheckBox, FormField, ErrorMsg } from '../../../common';\nimport {\n createContractDesign,\n createTransactionData,\n} from '../../../api/index';\nimport { PATH_AGREEMENT } from '../../../constants';\n\nfunction VerifyDocument({\n setParams,\n userInfo,\n agreementData,\n selectedContact,\n setIsLoading,\n pdfData,\n setRequestSignatureError,\n setContractLoading,\n setShowModal,\n setOpenCollapse,\n removeParams,\n getContractDetails,\n setShowEditor,\n renderbuttonHtml,\n contractAddendumDetails,\n originalData,\n setHelloSignEnterDateTextFlag,\n id,\n}) {\n const [ccEmails, setCCEmails] = useState([{}]);\n const [ccEmailErrors, setccEmailErrors] = useState([]);\n const [sendContractCopy, setSendContractCopy] = useState(false);\n\n const history = useHistory();\n\n const setDisabledReqSignBtn = () => {\n if (ccEmailErrors?.length) {\n const list =\n ccEmailErrors?.length &&\n ccEmailErrors.filter((item) => item?.email !== '');\n if (list) {\n return !list.every((item) => item?.isValid === true);\n }\n }\n return false;\n };\n\n const handleCCEmailAddress = (event, i) => {\n const list = [...ccEmails];\n list[i] = event.target.value;\n\n setCCEmails(list);\n\n const emailList = [...ccEmailErrors];\n emailList[i] = { email: event.target.value, isValid: true };\n setccEmailErrors(emailList);\n };\n\n function ValidateEmail(event, index) {\n if (event.target.value) {\n if (\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(\n event.target.value,\n )\n ) {\n const list = [...ccEmailErrors];\n list[index] = { email: event.target.value, isValid: true };\n setccEmailErrors(list);\n return true;\n }\n const list = [...ccEmailErrors];\n list[index] = { email: event.target.value, isValid: false };\n setccEmailErrors(list);\n\n return false;\n }\n return false;\n }\n\n const displayCCEmails = () => {\n return ccEmails.map((data, i) => {\n return (\n
    \n \n handleCCEmailAddress(event, i)}\n onBlur={(event) => ValidateEmail(event, i)}\n />\n \n {ccEmailErrors &&\n ccEmailErrors[i] &&\n ccEmailErrors[i].isValid === false\n ? 'Enter a valid email address.'\n : ''}\n \n \n
    \n );\n });\n };\n\n const mapValue = (key) => {\n if (key === 'printed_name') {\n return `${\n selectedContact?.first_name ? selectedContact.first_name : ''\n } ${selectedContact?.last_name ? selectedContact.last_name : ''} `;\n }\n if (key === 'customer_role') {\n return `${selectedContact?.role ? selectedContact.role : ''}`;\n }\n return '';\n };\n\n const verifyDocument = () => {\n setHelloSignEnterDateTextFlag(false);\n setIsLoading({ loader: true, type: 'button' });\n const contractData = {\n contract: agreementData.id,\n to: selectedContact?.email,\n cc: ccEmails,\n send_contract_copy: sendContractCopy,\n contract_data: pdfData\n .replaceAll('CUSTOMER_PRINTED_NAME', mapValue('printed_name'))\n .replace('CUSTOMER_ROLE', mapValue('customer_role')),\n };\n const addendumData = {\n contract_addendum: contractAddendumDetails?.id,\n to: selectedContact?.email,\n cc: ccEmails,\n send_contract_copy: sendContractCopy,\n contract_addendum_data: pdfData\n .replaceAll('CUSTOMER_PRINTED_NAME', mapValue('printed_name'))\n .replace('CUSTOMER_ROLE', mapValue('customer_role')),\n };\n createContractDesign(\n contractAddendumDetails.notActive ? addendumData : contractData,\n ).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n if (res && res.status === 200) {\n const designURL = res?.data?.design_url;\n\n const requestSignatureContractdata = {\n user: userInfo?.id,\n contract: agreementData?.id,\n primary_email: selectedContact?.email,\n cc_email_address: ccEmails.filter(\n (item) => Object.keys(item)?.length !== 0,\n ),\n send_contract_copy: sendContractCopy,\n contract_status: 'pending contract signature',\n hellosign_request_id: designURL?.hellosign_request_id,\n sign_url: designURL?.sign_url,\n };\n\n const requestSignatureAddendumdata = {\n user: userInfo.id,\n contract: originalData?.id,\n contract_addendum: contractAddendumDetails?.id,\n primary_email: selectedContact?.email,\n cc_email_address: ccEmails.filter(\n (item) => Object.keys(item)?.length !== 0,\n ),\n send_contract_copy: sendContractCopy,\n contract_status: 'pending addendum signature',\n hellosign_request_id: designURL?.hellosign_request_id,\n sign_url: designURL?.sign_url,\n };\n\n setContractLoading({ loader: true, type: 'page' });\n\n // calling transactional data api\n createTransactionData(\n contractAddendumDetails.notActive\n ? requestSignatureAddendumdata\n : requestSignatureContractdata,\n ).then((response) => {\n setShowModal(false);\n setContractLoading({ loader: false, type: 'page' });\n if (response?.status === 201) {\n setOpenCollapse({\n agreement: true,\n statement: false,\n addendum: false,\n dspAddendum: false,\n });\n removeParams('step');\n getContractDetails(true);\n setIsLoading({ loader: false, type: 'button' });\n } else {\n setIsLoading({ loader: false, type: 'button' });\n toast.error('Oops! something went wrong...');\n }\n });\n } else {\n setRequestSignatureError(res?.data);\n toast.error('Oops! something went wrong...');\n setTimeout(() => setRequestSignatureError(''), 3500);\n setShowModal(false);\n setShowEditor(false);\n setIsLoading({ loader: false, type: 'button' });\n // code to remove blank space on hellosign date and tream URL\n history.push(\n PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n originalData?.id,\n ),\n );\n setHelloSignEnterDateTextFlag(false);\n getContractDetails();\n }\n });\n };\n\n return (\n <>\n \n
    \n setParams('select-contact')}\n >\n \"\"\n Request Signature\n \n
    \n
    \n
    \n TO:\n \n {selectedContact && selectedContact.email}\n \n
    \n
    \n
    \n \n \n Send me a copy of the contract\n \n setSendContractCopy(event.target.checked)\n }\n />\n \n \n \n
    \n
    \n
    \n Send a copy of the contract to\n
    \n\n
    {displayCCEmails()}
    \n setCCEmails([...ccEmails, {}])}\n >\n \n Add another email eddress\n \n\n
    \n {renderbuttonHtml(\n setDisabledReqSignBtn(),\n () => verifyDocument(),\n 'Request Signature',\n )}\n
    \n
    \n \n );\n}\n\nexport default VerifyDocument;\n\nVerifyDocument.defaultProps = {\n setParams: () => {},\n userInfo: {},\n agreementData: {},\n selectedContact: {},\n setIsLoading: () => {},\n pdfData: '',\n setRequestSignatureError: () => {},\n setContractLoading: () => {},\n setShowModal: () => {},\n setOpenCollapse: () => {},\n removeParams: () => {},\n getContractDetails: () => {},\n setShowEditor: () => {},\n renderbuttonHtml: () => {},\n contractAddendumDetails: {},\n originalData: {},\n setHelloSignEnterDateTextFlag: () => {},\n id: '',\n};\n\nVerifyDocument.propTypes = {\n setParams: func,\n userInfo: shape({}),\n agreementData: shape({}),\n selectedContact: shape({}),\n setIsLoading: func,\n pdfData: string,\n setRequestSignatureError: func,\n setContractLoading: func,\n setShowModal: func,\n setOpenCollapse: func,\n removeParams: func,\n getContractDetails: func,\n setShowEditor: func,\n renderbuttonHtml: func,\n contractAddendumDetails: shape({\n notActive: bool,\n }),\n originalData: shape({\n id: string,\n }),\n setHelloSignEnterDateTextFlag: func,\n id: string,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport { useEffect } from 'react';\n\nimport dayjs from 'dayjs';\nimport { func, shape, string } from 'prop-types';\nimport {\n monthlyRetainerLimit,\n monthlyRetainerLimitInString,\n revShareLimit,\n revShareThresholdLimit,\n revShareThresholdLimitInString,\n monthlyRetainerLimitWalmart,\n monthlyRetainerLimitInStringWalmart,\n revShareLimitWalmart,\n revShareThresholdLimitWalmart,\n revShareThresholdLimitInStringWalmart,\n} from '../../../constants';\n\nexport default function AgreementAprovalConditions({\n formData,\n newAddendumData,\n setApprovalCondition,\n selectedCurrency,\n}) {\n const monthlyRetainerLimitValue =\n formData?.channel?.value === 'amazon'\n ? monthlyRetainerLimit\n : monthlyRetainerLimitWalmart;\n const revShareLimitValue =\n formData?.channel?.value === 'amazon'\n ? revShareLimit\n : revShareLimitWalmart;\n\n const revShareThresholdLimitValue =\n formData?.channel?.value === 'amazon'\n ? revShareThresholdLimit\n : revShareThresholdLimitWalmart;\n\n const monthlyRetainerLimitStringValue =\n formData?.channel?.value === 'amazon'\n ? monthlyRetainerLimitInString\n : monthlyRetainerLimitInStringWalmart;\n\n const revShareThresholdLimitStringValue =\n formData?.channel?.value === 'amazon'\n ? revShareThresholdLimitInString\n : revShareThresholdLimitInStringWalmart;\n\n // check conditions for retainer values\n const checkCondition = (\n retainerObject,\n accountType,\n period,\n valueLimit,\n valueLimitInString,\n feeTypeStr,\n ) => {\n const retainerArray = [];\n Object.entries(retainerObject).forEach(([key, value]) => {\n if (Number(value) < valueLimit) retainerArray.push(key?.split(' ')[0]);\n });\n if (retainerArray.length)\n return `${accountType} ${feeTypeStr} has ${retainerArray.join(\n ', ',\n )} ${period} value less than ${selectedCurrency}${valueLimitInString}.`;\n return null;\n };\n\n // check Approval Conditions\n useEffect(() => {\n const approvalConditionsTemp = [];\n const feeStructureTemp = formData?.fee_structure;\n const sellerOrHybrid =\n formData?.seller_type?.value === 'Seller' ||\n formData?.seller_type?.value === 'Hybrid';\n const vendorOrHybrid =\n formData?.seller_type?.value === 'Vendor' ||\n formData?.seller_type?.value === 'Hybrid';\n const contractLengthTemp = Number(\n formData?.length?.value?.match(/(\\d+)/)?.[0],\n );\n if (contractLengthTemp < 6) {\n approvalConditionsTemp.push(\n 'This Agreement length is less than 6 months.',\n );\n }\n if (formData?.is_dynamic_dsp_fee) {\n if (\n (formData?.dsp_fee && Number(formData?.dsp_fee) < 10000) ||\n (formData?.dsp_fee && Number(formData?.dsp_fee_second) < 10000) ||\n (formData?.dsp_fee && Number(formData?.dsp_fee_third) < 10000)\n ) {\n // approvalConditionsTemp.push(\n // `DSP monthly budget is less than ${selectedCurrency}10,000, `,\n // );\n // } else {\n let message = `DSP monthly budget is less than ${selectedCurrency}10,000`;\n if (formData?.dsp_fee && Number(formData?.dsp_fee) < 10000) {\n message += `, for ${dayjs(\n formData?.dsp_marketplaces?.[0]?.monthly_budget_date,\n ).format('MMMM')} at ${selectedCurrency}${formData?.dsp_fee}`;\n }\n if (\n formData?.dsp_fee_second &&\n Number(formData?.dsp_fee_second) < 10000\n ) {\n message += `, for ${dayjs(\n formData?.dsp_marketplaces?.[0]?.monthly_budget_second_date,\n ).format('MMMM')} at ${selectedCurrency}${formData?.dsp_fee_second}`;\n }\n if (\n formData?.dsp_fee_third &&\n Number(formData?.dsp_fee_third) < 10000\n ) {\n message += `, for ${dayjs(\n formData?.dsp_marketplaces?.[0]?.monthly_budget_third_date,\n ).format('MMMM')} at ${selectedCurrency}${formData?.dsp_fee_third}`;\n }\n message += '.';\n approvalConditionsTemp.push(message);\n }\n } else if (formData?.dsp_fee && Number(formData?.dsp_fee) < 10000) {\n approvalConditionsTemp.push(\n `DSP monthly budget is less than ${selectedCurrency}10,000.`,\n );\n }\n\n if (formData?.agency_fee?.value < 15) {\n approvalConditionsTemp.push('Agency fees is less than 15%.');\n }\n if (newAddendumData?.addendum && newAddendumData?.addendum !== '

    ') {\n approvalConditionsTemp.push('This Agreement has addendum.');\n }\n if (feeStructureTemp?.seller?.billing_cap) {\n approvalConditionsTemp.push('Seller has a billing cap.');\n }\n if (feeStructureTemp?.vendor?.billing_cap) {\n approvalConditionsTemp.push('Vendor has a billing cap.');\n }\n if (\n (feeStructureTemp?.seller?.fee_type === 'Revenue Share Only' ||\n feeStructureTemp?.seller?.fee_type === 'Retainer + % Rev Share') &&\n Number(feeStructureTemp?.seller?.rev_share) < revShareLimitValue\n ) {\n approvalConditionsTemp.push(\n `Seller revenue share is less than ${revShareLimitValue}.`,\n );\n }\n if (\n (feeStructureTemp?.vendor?.fee_type === 'Revenue Share Only' ||\n feeStructureTemp?.vendor?.fee_type === 'Retainer + % Rev Share') &&\n Number(feeStructureTemp?.vendor?.rev_share) < revShareLimitValue\n ) {\n approvalConditionsTemp.push(\n `Vendor revenue share is less than ${revShareLimitValue}.`,\n );\n }\n // check for monthly retainer start\n if (\n (feeStructureTemp?.seller?.fee_type === 'Retainer Only' ||\n feeStructureTemp?.seller?.fee_type === 'Retainer + % Rev Share') &&\n sellerOrHybrid &&\n feeStructureTemp?.seller?.monthly_retainer &&\n Number(feeStructureTemp?.seller?.monthly_retainer) <\n monthlyRetainerLimitValue\n ) {\n approvalConditionsTemp.push(\n `Seller retainer is less than ${selectedCurrency}${monthlyRetainerLimitStringValue}.`,\n );\n }\n if (\n (feeStructureTemp?.vendor?.fee_type === 'Retainer Only' ||\n feeStructureTemp?.vendor?.fee_type === 'Retainer + % Rev Share') &&\n vendorOrHybrid &&\n feeStructureTemp?.vendor?.monthly_retainer &&\n Number(feeStructureTemp?.vendor?.monthly_retainer) <\n monthlyRetainerLimitValue\n ) {\n approvalConditionsTemp.push(\n `Vendor retainer is less than ${selectedCurrency}${monthlyRetainerLimitStringValue}.`,\n );\n }\n if (\n (feeStructureTemp?.seller?.fee_type === 'Retainer Only' ||\n feeStructureTemp?.seller?.fee_type === 'Retainer + % Rev Share') &&\n sellerOrHybrid &&\n feeStructureTemp?.seller?.quarterly_monthly_retainer\n ) {\n const quartelyConditionSeller = checkCondition(\n feeStructureTemp?.seller?.quarterly_monthly_retainer,\n 'Seller',\n 'quarterly',\n monthlyRetainerLimitValue,\n monthlyRetainerLimitStringValue,\n 'retainer',\n );\n if (quartelyConditionSeller)\n approvalConditionsTemp.push(quartelyConditionSeller);\n }\n if (\n (feeStructureTemp?.vendor?.fee_type === 'Retainer Only' ||\n feeStructureTemp?.vendor?.fee_type === 'Retainer + % Rev Share') &&\n vendorOrHybrid &&\n feeStructureTemp?.vendor?.quarterly_monthly_retainer\n ) {\n const quartelyConditionVendor = checkCondition(\n feeStructureTemp?.vendor?.quarterly_monthly_retainer,\n 'Vendor',\n 'quarterly',\n monthlyRetainerLimitValue,\n monthlyRetainerLimitStringValue,\n 'retainer',\n );\n if (quartelyConditionVendor)\n approvalConditionsTemp.push(quartelyConditionVendor);\n }\n if (\n (feeStructureTemp?.seller?.fee_type === 'Retainer Only' ||\n feeStructureTemp?.seller?.fee_type === 'Retainer + % Rev Share') &&\n sellerOrHybrid &&\n feeStructureTemp?.seller?.monthly_monthly_retainer\n ) {\n const monthlyConditionSeller = checkCondition(\n feeStructureTemp?.seller?.monthly_monthly_retainer,\n 'Seller',\n 'Months',\n monthlyRetainerLimitValue,\n monthlyRetainerLimitStringValue,\n 'retainer',\n );\n if (monthlyConditionSeller)\n approvalConditionsTemp.push(monthlyConditionSeller);\n }\n if (\n (feeStructureTemp?.vendor?.fee_type === 'Retainer Only' ||\n feeStructureTemp?.vendor?.fee_type === 'Retainer + % Rev Share') &&\n vendorOrHybrid &&\n feeStructureTemp?.vendor?.monthly_monthly_retainer\n ) {\n const monthlyConditionVendor = checkCondition(\n feeStructureTemp?.vendor?.monthly_monthly_retainer,\n 'Vendor',\n 'Months',\n monthlyRetainerLimitValue,\n monthlyRetainerLimitStringValue,\n 'retainer',\n );\n if (monthlyConditionVendor)\n approvalConditionsTemp.push(monthlyConditionVendor);\n }\n // check for monthly retainer end\n\n // check for revenue share threshold limit - start here\n // checking seller sales threshold\n if (\n (feeStructureTemp?.seller?.fee_type === 'Revenue Share Only' ||\n feeStructureTemp?.seller?.fee_type === 'Retainer + % Rev Share') &&\n sellerOrHybrid &&\n feeStructureTemp?.seller?.sales_threshold &&\n Number(feeStructureTemp?.seller?.sales_threshold) <\n revShareThresholdLimitValue\n ) {\n approvalConditionsTemp.push(\n `Seller threshold is less than ${selectedCurrency}${revShareThresholdLimitStringValue}.`,\n );\n }\n\n // checking vendor sales threshold\n if (\n (feeStructureTemp?.vendor?.fee_type === 'Revenue Share Only' ||\n feeStructureTemp?.vendor?.fee_type === 'Retainer + % Rev Share') &&\n vendorOrHybrid &&\n feeStructureTemp?.vendor?.sales_threshold &&\n Number(feeStructureTemp?.vendor?.sales_threshold) <\n revShareThresholdLimitValue\n ) {\n approvalConditionsTemp.push(\n `Vendor threshold is less than ${selectedCurrency}${revShareThresholdLimitStringValue}.`,\n );\n }\n\n // checking seller quarterly threshold\n if (\n (feeStructureTemp?.seller?.fee_type === 'Revenue Share Only' ||\n feeStructureTemp?.seller?.fee_type === 'Retainer + % Rev Share') &&\n sellerOrHybrid &&\n feeStructureTemp?.seller?.quarterly_rev_share\n ) {\n const quartelyConditionSeller = checkCondition(\n feeStructureTemp?.seller?.quarterly_rev_share,\n 'Seller',\n 'quarterly',\n revShareThresholdLimitValue,\n revShareThresholdLimitStringValue,\n 'rev share',\n );\n if (quartelyConditionSeller)\n approvalConditionsTemp.push(quartelyConditionSeller);\n }\n\n // checking vendor quarterly threshold\n if (\n (feeStructureTemp?.vendor?.fee_type === 'Revenue Share Only' ||\n feeStructureTemp?.vendor?.fee_type === 'Retainer + % Rev Share') &&\n vendorOrHybrid &&\n feeStructureTemp?.vendor?.quarterly_rev_share\n ) {\n const quartelyConditionVendor = checkCondition(\n feeStructureTemp?.vendor?.quarterly_rev_share,\n 'Vendor',\n 'quarterly',\n revShareThresholdLimitValue,\n revShareThresholdLimitStringValue,\n 'rev share',\n );\n if (quartelyConditionVendor)\n approvalConditionsTemp.push(quartelyConditionVendor);\n }\n\n // checking seller monthly threshold\n if (\n (feeStructureTemp?.seller?.fee_type === 'Revenue Share Only' ||\n feeStructureTemp?.seller?.fee_type === 'Retainer + % Rev Share') &&\n sellerOrHybrid &&\n feeStructureTemp?.seller?.monthly_rev_share\n ) {\n const monthlyConditionSeller = checkCondition(\n feeStructureTemp?.seller?.monthly_rev_share,\n 'Seller',\n 'Months',\n revShareThresholdLimitValue,\n revShareThresholdLimitStringValue,\n 'rev share',\n );\n if (monthlyConditionSeller)\n approvalConditionsTemp.push(monthlyConditionSeller);\n }\n\n // checking vendor monthly threshold\n if (\n (feeStructureTemp?.vendor?.fee_type === 'Revenue Share Only' ||\n feeStructureTemp?.vendor?.fee_type === 'Retainer + % Rev Share') &&\n vendorOrHybrid &&\n feeStructureTemp?.vendor?.monthly_rev_share\n ) {\n const monthlyConditionVendor = checkCondition(\n feeStructureTemp?.vendor?.monthly_rev_share,\n 'Vendor',\n 'Months',\n revShareThresholdLimitValue,\n revShareThresholdLimitStringValue,\n 'rev share',\n );\n if (monthlyConditionVendor)\n approvalConditionsTemp.push(monthlyConditionVendor);\n }\n // check for revenue share threshold limit - end here\n\n if (formData?.contract_addendum?.length) {\n approvalConditionsTemp.push('This agreement has draft addendum.');\n }\n if (feeStructureTemp?.seller?.fee_type === 'Retainer Only') {\n approvalConditionsTemp.push('Seller is of type Retainer Only.');\n }\n if (feeStructureTemp?.vendor?.fee_type === 'Retainer Only') {\n approvalConditionsTemp.push('Vendor is of type Retainer Only.');\n }\n\n setApprovalCondition(approvalConditionsTemp);\n }, [\n formData,\n newAddendumData,\n formData.fee_structure,\n setApprovalCondition,\n selectedCurrency,\n ]);\n\n return null;\n}\n\nAgreementAprovalConditions.defaultProps = {\n formData: {},\n newAddendumData: {},\n setApprovalCondition: () => {},\n selectedCurrency: '$ (USD)',\n};\n\nAgreementAprovalConditions.propTypes = {\n formData: shape({}),\n newAddendumData: shape({}),\n setApprovalCondition: func,\n selectedCurrency: string,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect, useCallback } from 'react';\n\nimport Select, { components } from 'react-select';\nimport { toast } from 'react-toastify';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { string, func, shape, arrayOf, bool } from 'prop-types';\n\nimport AgreementAprovalConditions from './AgreementAprovalConditions';\n// import { ThadProfileImg } from '../../../theme/images';\nimport { PATH_CUSTOMER_DETAILS } from '../../../constants';\nimport {\n createTransactionData,\n getApprovalUserDetails,\n updateAccountDetails,\n} from '../../../api';\nimport {\n FormField,\n PageLoader,\n DropDownIndicator,\n CustomDropDown,\n} from '../../../common';\n\nfunction RequestApproval({\n selectedContact,\n agreementData,\n setIsLoading,\n setShowModal,\n removeParams,\n getContractDetails,\n userInfo,\n pdfData,\n isLoading,\n renderbuttonHtml,\n contractAddendumDetails,\n originalData,\n formData,\n newAddendumData,\n selectedCurrency,\n contactInfo,\n id,\n contactInfoLoading,\n}) {\n const multipleAgreement = useSelector(\n (state) => state.accountState.multipleAgreement,\n );\n\n // commented as per ticekt- 8409 - handled approval user on BE flag\n const firstRequestApprovalUser = userInfo?.is_primary_request_approvers;\n const dspOrAmcRequestApprovalUser =\n userInfo?.is_dsp_amc_primary_request_approvers;\n const [approvalNote, setApprovalNote] = useState({});\n const [approvalCondition, setApprovalCondition] = useState(null);\n const [contactOptions, setContactOptions] = useState([]);\n const [selectedRecipient, setSelectedRecipient] = useState(null);\n const [isApiCall, setIsApiCall] = useState(false);\n const [selectedPrimaryApprovalUser, setSelectedPrimaryApprovalUser] =\n useState(null);\n const [selectedFinalApprovalUser, setSelectedFinalApprovalUser] =\n useState(null);\n const [finalApprovalUsersList, setFinalApprovalUsersList] = useState(null);\n const [approvalUserOptions, setApprovalUserOptions] = useState(null);\n\n const { Option } = components;\n\n const getPrimaryApprovalUser = useCallback(() => {\n setIsApiCall(true);\n getApprovalUserDetails().then((res) => {\n if (res?.status === 200) {\n const primaryApprovalUsers = [];\n const finalApprovalUsers = [];\n const dspAmcApprovalUsers = [];\n\n // bind the primary request approvers\n for (const user of res?.data?.primary_request_approvers) {\n let profilePic = null;\n if (user?.documents.length) {\n const picObject = Object.keys(user?.documents?.[0]);\n profilePic = user?.documents?.[0][picObject[0]];\n }\n\n primaryApprovalUsers.push({\n firstName: user?.first_name,\n lastName: user?.last_name,\n email: user.email,\n label: `${user?.first_name} ${user?.last_name}`,\n value: user?.id,\n profilePic,\n });\n }\n\n // bind the Final request approvers\n for (const user of res?.data?.final_request_approvers) {\n let profilePic = null;\n if (user?.documents.length) {\n const picObject = Object.keys(user?.documents?.[0]);\n profilePic = user?.documents?.[0][picObject[0]];\n }\n\n finalApprovalUsers.push({\n firstName: user?.first_name,\n lastName: user?.last_name,\n email: user.email,\n label: `${user?.first_name} ${user?.last_name}`,\n value: user?.id,\n profilePic,\n });\n }\n\n // bind the DSP/AMC request approvers\n for (const user of res?.data?.dsp_amc_primary_request_approvers) {\n let profilePic = null;\n if (user?.documents.length) {\n const picObject = Object.keys(user?.documents?.[0]);\n profilePic = user?.documents?.[0][picObject[0]];\n }\n\n dspAmcApprovalUsers.push({\n firstName: user?.first_name,\n lastName: user?.last_name,\n email: user.email,\n label: `${user?.first_name} ${user?.last_name}`,\n value: user?.id,\n profilePic,\n });\n }\n\n // if contract is dsp OR amc only and\n // logged in user has a dsp_amc_approval flag set as true then\n // we need to display final approvers list\n if (\n dspOrAmcRequestApprovalUser &&\n ['dsp only', 'amc only'].includes(agreementData?.contract_type)\n ) {\n setApprovalUserOptions(finalApprovalUsers);\n } else if (\n !firstRequestApprovalUser &&\n ['dsp only', 'amc only'].includes(agreementData?.contract_type)\n ) {\n // if contract is dsp OR amc only then\n // we need to display primary approver + DSP AMC approver\n setApprovalUserOptions([\n ...primaryApprovalUsers,\n ...dspAmcApprovalUsers,\n ]);\n } else {\n // regardless of contract type, show list as per primary and final approver flag.\n setApprovalUserOptions(\n firstRequestApprovalUser\n ? finalApprovalUsers\n : primaryApprovalUsers,\n );\n }\n setFinalApprovalUsersList(finalApprovalUsers);\n setSelectedFinalApprovalUser({\n firstName: res?.data?.final_request_approvers?.[0]?.first_name,\n lastName: res?.data?.final_request_approvers?.[0]?.last_name,\n email: res?.data?.final_request_approvers?.[0]?.email,\n label: `${res?.data?.final_request_approvers?.[0]?.first_name} ${res?.data?.final_request_approvers?.[0]?.last_name}`,\n value: res?.data?.final_request_approvers?.[0]?.id,\n profilePic: res?.data?.final_request_approvers?.[0]?.documents.length\n ? res?.data?.final_request_approvers?.[0]?.documents?.[0][\n Object.keys(\n res?.data?.final_request_approvers?.[0]?.documents?.[0],\n )\n ]\n : null,\n });\n\n setSelectedPrimaryApprovalUser({\n firstName: res?.data?.primary_request_approvers?.[0]?.first_name,\n lastName: res?.data?.primary_request_approvers?.[0]?.last_name,\n email: res?.data?.primary_request_approvers?.[0]?.email,\n label: `${res?.data?.primary_request_approvers?.[0]?.first_name} ${res?.data?.primary_request_approvers?.[0]?.last_name}`,\n value: res?.data?.primary_request_approvers?.[0]?.id,\n profilePic: res?.data?.primary_request_approvers?.[0]?.documents\n .length\n ? res?.data?.primary_request_approvers?.[0]?.documents?.[0][\n Object.keys(\n res?.data?.primary_request_approvers?.[0]?.documents?.[0],\n )\n ]\n : null,\n });\n setIsApiCall(false);\n } else {\n setApprovalUserOptions([]);\n setIsApiCall(false);\n }\n });\n }, [id]);\n\n useEffect(() => {\n getPrimaryApprovalUser();\n }, []);\n\n // bind the agreement recipient dropdown options\n useEffect(() => {\n const contacts = [];\n for (const contact of contactInfo) {\n contacts.push({\n value: contact.id,\n label: `${contact?.first_name} ${contact?.last_name}`,\n email: contact.email,\n });\n }\n setContactOptions(contacts);\n }, [contactInfo]);\n\n const onRequestApprovalChange = (event) => {\n setApprovalNote({\n ...approvalNote,\n [event.target.name]: event.target.value,\n });\n };\n\n const mapValue = (key) => {\n if (key === 'printed_name') {\n return `${\n selectedContact?.first_name ? selectedContact.first_name : ''\n } ${selectedContact?.last_name ? selectedContact.last_name : ''} `;\n }\n if (key === 'customer_role') {\n return `${selectedContact?.role ? selectedContact.role : ''}`;\n }\n return '';\n };\n\n const noSignedAgreement = () => {\n if (\n multipleAgreement.find(\n (op) =>\n op?.contract_status?.value === 'active' ||\n op?.contract_status?.value === 'renewed',\n )\n )\n return true;\n return false;\n };\n\n const selectOption = (dataProps) => {\n return (\n
    \n \n
    \n );\n };\n\n const getAllComponents = () => {\n return {\n Option: selectOption,\n DropDownIndicator,\n };\n };\n\n const displayApprovalInfo = () => {\n const userlist = approvalUserOptions?.length\n ? approvalUserOptions\n : finalApprovalUsersList;\n return (\n <>\n {noSignedAgreement() || contractAddendumDetails.notActive ? (\n <>\n {userlist.map((user) => {\n return (\n
    \n
    \n
    \n <>\n {user?.profilePic ? (\n \n ) : (\n <>\n {user?.firstName ? (\n
    \n {(user?.firstName &&\n user?.firstName.charAt(0)) ||\n ''}\n {(user?.lastName && user?.lastName.charAt(0)) ||\n ''}\n
    \n ) : null}\n \n )}\n \n\n
    \n
    \n {`${user?.firstName} ${user?.lastName}`}\n
    \n {user?.email}\n
    \n
    \n
    \n
    \n );\n })}\n \n ) : (\n <>\n {finalApprovalUsersList.map((user) => {\n return (\n
    \n
    \n
    \n <>\n {user?.profilePic ? (\n \n ) : (\n <>\n {user?.firstName ? (\n
    \n {(user?.firstName &&\n user?.firstName.charAt(0)) ||\n ''}\n {(user?.lastName && user?.lastName.charAt(0)) ||\n ''}\n
    \n ) : null}\n \n )}\n \n\n
    \n
    \n {`${user?.firstName} ${user?.lastName}`}\n
    \n {user?.email}\n
    \n
    \n
    \n
    \n );\n })}\n \n )}\n\n {approvalCondition?.length ? (\n
    \n \n Agreement conditions which require approval(s):\n
      \n {approvalCondition.map((item) => (\n
    • {item}
    • \n ))}\n
    \n
    \n ) : null}\n {!contactInfoLoading ? (\n
    \n
    \n \n setSelectedRecipient(event)}\n value={selectedRecipient}\n isDisabled={contactOptions?.length === 0}\n />\n {contactOptions?.length === 0 ? (\n \n Please add company contacts to select the agreement\n recipient\n \n here\n \n .\n \n ) : null}\n \n
    \n
    \n ) : null}\n \n onRequestApprovalChange(event)}\n />\n \n \n );\n };\n\n const sendRequestApproval = () => {\n const addendumData = {\n contract_addendum: contractAddendumDetails?.id,\n contract: originalData?.id,\n contract_status: 'pending addendum approval',\n addendum_status: 'pending addendum approval',\n };\n const contractData = {\n contract: agreementData.id,\n contract_status: 'pending contract approval',\n };\n\n const requestApprovalData = contractAddendumDetails.notActive\n ? {\n ...approvalNote,\n ...addendumData,\n user: userInfo.id,\n contract_data: pdfData\n .replaceAll('CUSTOMER_PRINTED_NAME', mapValue('printed_name'))\n .replace('CUSTOMER_ROLE', mapValue('customer_role')),\n }\n : {\n ...approvalNote,\n ...contractData,\n user: userInfo.id,\n contract_data: pdfData\n .replaceAll('CUSTOMER_PRINTED_NAME', mapValue('printed_name'))\n .replace('CUSTOMER_ROLE', mapValue('customer_role')),\n };\n\n if (noSignedAgreement() || contractAddendumDetails.notActive) {\n requestApprovalData.primary_email = firstRequestApprovalUser\n ? selectedFinalApprovalUser.email\n : selectedPrimaryApprovalUser.email;\n } else {\n requestApprovalData.primary_email = selectedFinalApprovalUser?.email;\n }\n setIsLoading({ loader: true, type: 'button' });\n updateAccountDetails(originalData?.id, {\n suggested_recipient: selectedRecipient?.value,\n }).then((res) => {\n if (res?.status === 200) {\n createTransactionData(requestApprovalData).then((response) => {\n if (response && response.status === 400) {\n setIsLoading({ loader: false, type: 'button' });\n } else if (response && response.status === 201) {\n setShowModal(false);\n removeParams('step');\n toast.success('Approval Requested!');\n getContractDetails();\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n }\n });\n };\n\n return (\n <>\n <>\n
    \n

    Request Approval

    \n {isApiCall || (isLoading.loader && isLoading.type === 'page') ? (\n \n ) : (\n <>\n {displayApprovalInfo()}\n
    \n {renderbuttonHtml(\n !selectedRecipient,\n () => sendRequestApproval(),\n 'Request Approval',\n )}\n
    \n \n )}\n
    \n \n \n \n );\n}\n\nexport default RequestApproval;\n\nRequestApproval.defaultProps = {\n selectedContact: {},\n agreementData: {},\n contractAddendumDetails: {},\n setIsLoading: () => {},\n setShowModal: () => {},\n removeParams: () => {},\n getContractDetails: () => {},\n userInfo: {},\n pdfData: '',\n id: '',\n isLoading: {},\n renderbuttonHtml: () => {},\n originalData: {},\n newAddendumData: {},\n formData: {},\n selectedCurrency: '$ (USD)',\n contactInfo: [],\n contactInfoLoading: false,\n};\n\nRequestApproval.propTypes = {\n selectedContact: shape({}),\n agreementData: shape({}),\n contractAddendumDetails: shape({}),\n\n setIsLoading: func,\n setShowModal: func,\n removeParams: func,\n getContractDetails: func,\n userInfo: shape({}),\n pdfData: string,\n id: string,\n isLoading: shape({}),\n renderbuttonHtml: func,\n originalData: shape({ id: string }),\n newAddendumData: shape({}),\n formData: shape({}),\n selectedCurrency: string,\n contactInfo: arrayOf(shape({})),\n contactInfoLoading: bool,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { useEffect, useState } from 'react';\n\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n string,\n bool,\n number,\n func,\n oneOfType,\n arrayOf,\n shape,\n objectOf,\n} from 'prop-types';\n\nimport { Button, PageLoader } from '../../../common';\nimport { getTransactionData, getBGSManagers } from '../../../api';\nimport { getContactDetails } from '../../../store/actions/customerState';\nimport {\n Contacts,\n AddNewContact,\n SendReminder,\n VerifyDocument,\n RequestApproval,\n} from '../RequestSignatureModule';\n\nfunction RequestSignature({\n id,\n agreementData,\n setShowModal,\n pdfData,\n setOpenCollapse,\n getContractDetails,\n setContractLoading,\n setShowEditor,\n setIsEditContract,\n setShowCloseBtn,\n contractAddendumDetails,\n originalData,\n setHelloSignEnterDateTextFlag,\n newAddendumData,\n agreementFormData,\n selectedCurrency,\n}) {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n const dispatch = useDispatch();\n const contactInfo = useSelector((state) => state.customerState.contactData);\n const contactInfoLoading = useSelector(\n (state) => state.customerState.isLoading,\n );\n const userInfo = useSelector((state) => state.userState.userInfo);\n const [contactApiError, setContactApiError] = useState({});\n const [reminderError, setReminderErrors] = useState({});\n const [formData, setFormData] = useState({});\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [selectedContact, setSelectedContact] = useState({});\n\n const [contactModalName, setModalName] = useState('Add Contact');\n const [transactionalData, setTransactionalData] = useState(null);\n const [requestSignatureError, setRequestSignatureError] = useState(null);\n const [BGSManager, setBGSManagerData] = useState(null);\n const draftFrom = agreementData?.draft_from;\n\n const getBGSManagersData = () => {\n getBGSManagers(id).then((managerData) => {\n if (managerData && managerData.status === 200) {\n setBGSManagerData(managerData && managerData.data);\n }\n setIsLoading({ loader: false, type: 'page' });\n });\n };\n\n useEffect(() => {\n dispatch(getContactDetails(id));\n if (params && params.step && params.step === 'send-remainder')\n getTransactionData({\n contract_id: agreementData?.id,\n }).then((res) => {\n setTransactionalData(\n res && res.data && res.data.results && res.data.results[0],\n );\n });\n setIsLoading({ loader: false, type: 'page' });\n if (draftFrom || contractAddendumDetails.notActive) {\n setIsLoading({ loader: true, type: 'page' });\n getBGSManagersData();\n }\n }, [id]);\n\n const setParams = (param) => {\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n step: param,\n });\n history.push({\n pathname: `${history.location.pathname}`,\n search: `${stringified}`,\n state: `${history.location.state}`,\n });\n };\n\n const removeParams = (item) => {\n delete params[item];\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n });\n\n history.push({\n pathname: `${history.location.pathname}`,\n search: `${stringified}`,\n state: `${history.location.state}`,\n });\n setIsEditContract(false);\n };\n\n const renderbuttonHtml = (disabledCon, onClickFunc, btnLabel) => {\n return (\n <>\n {\n onClickFunc();\n }}\n disabled={disabledCon || false}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n btnLabel\n )}\n \n \n );\n };\n\n return (\n <>\n {params && params.step === 'verify-document' ? (\n \n ) : (\n ''\n )}\n {params && params.step === 'request-approve' ? (\n \n ) : (\n ''\n )}\n {params && params.step === 'send-remainder' ? (\n \n ) : (\n ''\n )}\n {params && params.step === 'select-contact' ? (\n \n ) : (\n ''\n )}\n {params && params.step === 'add-new-contact' ? (\n <>\n \n \n ) : (\n ''\n )}\n \n );\n}\n\nexport default RequestSignature;\nRequestSignature.defaultProps = {\n id: '',\n agreementData: {},\n contractAddendumDetails: {},\n setShowModal: () => {},\n pdfData: '',\n setOpenCollapse: () => {},\n getContractDetails: () => {},\n setContractLoading: () => {},\n setShowEditor: () => {},\n setIsEditContract: () => {},\n setShowCloseBtn: () => {},\n originalData: {},\n setHelloSignEnterDateTextFlag: () => {},\n newAddendumData: {},\n agreementFormData: {},\n selectedCurrency: '$ (USD)',\n};\n\nRequestSignature.propTypes = {\n id: string,\n contractAddendumDetails: shape({}),\n agreementData: shape({\n id: string,\n contract_type: string,\n draft_from: string,\n primary_marketplace: oneOfType([\n string,\n shape({\n fee: number,\n name: string,\n id: string,\n }),\n ]),\n additional_monthly_services: arrayOf(shape({})),\n additional_marketplaces: arrayOf(shape({})),\n steps_completed: objectOf(bool),\n additional_one_time_services: arrayOf(shape({})),\n }),\n setShowModal: func,\n pdfData: string,\n setOpenCollapse: func,\n getContractDetails: func,\n setContractLoading: func,\n setShowEditor: func,\n setIsEditContract: func,\n setShowCloseBtn: func,\n originalData: shape({}),\n setHelloSignEnterDateTextFlag: func,\n newAddendumData: shape({}),\n agreementFormData: shape({}),\n selectedCurrency: string,\n};\n","import React, { useState } from 'react';\nimport Modal from 'react-modal';\n\nimport { string, bool, func, shape } from 'prop-types';\n\nimport RequestSignature from '../ContractFooter/RequestSignature';\nimport { ModalBox } from '../../../common';\nimport { CloseIcon } from '../../../theme/images';\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n minHeight: '170px',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nfunction RequestSignatureModal({\n showModal,\n setShowModal,\n removeParams,\n setShowEditor,\n id,\n details,\n pdfData,\n setOpenCollapse,\n getContractDetails,\n setIsLoading,\n setIsEditContract,\n contractAddendumDetails,\n originalData,\n setHelloSignEnterDateTextFlag,\n newAddendumData,\n agreementFormData,\n selectedCurrency,\n}) {\n const [showCloseBtn, setShowCloseBtn] = useState(true);\n return (\n \n {showCloseBtn ? (\n {\n setShowModal(false);\n removeParams('step');\n setShowEditor(false);\n setHelloSignEnterDateTextFlag(false);\n }}\n role=\"presentation\"\n />\n ) : (\n ''\n )}\n \n \n \n \n );\n}\n\nexport default RequestSignatureModal;\n\nRequestSignatureModal.defaultProps = {\n showModal: false,\n contractAddendumDetails: {},\n setShowModal: () => {},\n removeParams: () => {},\n setShowEditor: () => {},\n id: '',\n details: {},\n pdfData: '',\n setOpenCollapse: () => {},\n getContractDetails: () => {},\n setIsLoading: () => {},\n setIsEditContract: () => {},\n originalData: {},\n setHelloSignEnterDateTextFlag: {},\n newAddendumData: {},\n agreementFormData: {},\n selectedCurrency: '$ (USD)',\n};\n\nRequestSignatureModal.propTypes = {\n showModal: bool,\n setShowModal: func,\n removeParams: func,\n setShowEditor: func,\n id: string,\n details: shape({\n id: string,\n }),\n contractAddendumDetails: shape({}),\n pdfData: string,\n setOpenCollapse: func,\n getContractDetails: func,\n setIsLoading: func,\n setIsEditContract: func,\n originalData: shape({}),\n setHelloSignEnterDateTextFlag: func,\n newAddendumData: shape({}),\n agreementFormData: shape({}),\n selectedCurrency: string,\n};\n","import { string, bool, func, arrayOf, shape } from 'prop-types';\n\nexport const ContractFooterDefaultProptypes = {\n id: '',\n details: {},\n setParams: () => {},\n setShowModal: () => {},\n isEditContract: false,\n onEditcontract: () => {},\n isLoading: {},\n isFooter: false,\n formData: {},\n newAddendumData: {},\n updatedFormData: {},\n showEditor: false,\n nextStep: () => {},\n setShowDiscardModal: () => {},\n checkApprovalCondition: () => {},\n showRightTick: () => {},\n setIsEditContract: () => {},\n renderEditContractBtn: () => {},\n showDiscardModal: () => {},\n createAgreementDoc: () => {},\n getContractDetails: () => {},\n setIsLoading: () => {},\n};\n\nexport const ContractFooterProptypes = {\n id: string,\n details: shape({\n contract_status: shape({\n value: string,\n label: string,\n }),\n id: string,\n updated_at: string,\n draft_from: string,\n is_renewed: string,\n }),\n setParams: func,\n setShowModal: func,\n isEditContract: bool,\n onEditcontract: func,\n isLoading: shape({\n loader: bool,\n type: string,\n }),\n isFooter: bool,\n formData: shape({\n additional_one_time_services: arrayOf(shape({})),\n }),\n newAddendumData: shape({\n id: string,\n addendum: string,\n }),\n updatedFormData: shape({\n addendum: string,\n }),\n showEditor: bool,\n nextStep: func,\n setShowDiscardModal: func,\n checkApprovalCondition: func,\n showRightTick: func,\n setIsEditContract: func,\n renderEditContractBtn: func,\n showDiscardModal: shape({\n clickedBtn: string,\n }),\n createAgreementDoc: func,\n getContractDetails: func,\n setIsLoading: func,\n};\n","import React, { useState, useEffect } from 'react';\n\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { toast } from 'react-toastify';\nimport { useParams } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\n\nimport { Footer } from '../../../theme/AgreementStyle';\nimport { PauseAgreementConfirmation } from '../ContractModals';\nimport { PageLoader, Button } from '../../../common';\nimport {\n ContractFooterDefaultProptypes,\n ContractFooterProptypes,\n} from '../PropTypesConstants/ContractFooterProptypes';\nimport {\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n} from '../../../constants';\nimport {\n updateAccountDetails,\n updatePauseAgreement,\n getPauseAgreementDetails,\n saveDraftAddendum,\n getAgreementData,\n updateBillingOffBoardingApproveReject,\n} from '../../../api';\n\nexport default function ContractFooter({\n details,\n setParams,\n setShowModal,\n isEditContract,\n onEditcontract,\n isLoading,\n isFooter,\n newAddendumData,\n updatedFormData,\n showEditor,\n nextStep,\n setShowDiscardModal,\n checkApprovalCondition,\n showRightTick,\n setIsEditContract,\n renderEditContractBtn,\n showDiscardModal,\n createAgreementDoc,\n setIsLoading,\n getContractDetails,\n contractAddendumDetails,\n getContractActivityLogInfo,\n handleAddendumModal,\n formData,\n}) {\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const customerState = useSelector((state) => state?.customerState?.data);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n\n const { pauseId } = useParams();\n const [showPauseModal, setShowPauseModal] = useState({\n show: false,\n data: {},\n });\n const [pauseAgreementData, setPauseAgreementData] = useState({});\n const [agreementGetData, setAgreementGetData] = useState({});\n const contractStatus = details?.contract_status?.value;\n\n const finalRequestApprovalUser = userInfo?.is_final_request_approvers;\n const firstRequestApprovalUser = userInfo?.is_primary_request_approvers;\n\n useEffect(() => {\n if (finalRequestApprovalUser || firstRequestApprovalUser) {\n getAgreementData(details?.id, 'cancel', !!finalRequestApprovalUser).then(\n (res) => {\n setAgreementGetData(res?.data);\n },\n );\n }\n }, [details.id, finalRequestApprovalUser, firstRequestApprovalUser]);\n\n const BGSManagerOrAdmin =\n userInfo?.role?.includes('BGS Manager') ||\n userInfo?.role?.includes('BGS Admin') ||\n finalRequestApprovalUser ||\n firstRequestApprovalUser ||\n userInfo?.role?.includes('Sales Manager') ||\n userInfo?.role?.includes('Sales');\n\n const rightTickCondition =\n showRightTick('service_agreement') &&\n showRightTick('feeStructure') &&\n showRightTick('statement') &&\n showRightTick('dspAddendum');\n\n const saveContractData = (data) => {\n const contractOrAddendum = contractAddendumDetails?.notActive\n ? saveDraftAddendum(contractAddendumDetails?.id, data)\n : updateAccountDetails(details.id, data);\n contractOrAddendum.then((res) => {\n if (res && res.status === 200) {\n if (data.contract_status === 'cancel') {\n toast.success('Cancel Contract Approved!');\n }\n\n getContractDetails();\n setShowPauseModal({ show: false, data: {} });\n setIsLoading({ loader: false, type: 'button' });\n } else {\n if (data.contract_status === 'cancel') {\n toast.error(res?.data?.detail);\n }\n setShowPauseModal({ show: false, data: {} });\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n const updateContractData = (data, cancelStatus) => {\n setIsLoading({ loader: true, type: 'button' });\n setIsLoading({ loader: true, type: cancelStatus });\n\n if (cancelStatus) {\n updateBillingOffBoardingApproveReject(\n cancelStatus,\n agreementGetData?.suspend_contract_id,\n ).then((res) => {\n if (res?.status === 200 || res?.status === 201) {\n getContractActivityLogInfo();\n setIsLoading({ loader: false, type: cancelStatus });\n if (cancelStatus === 'approved')\n toast.success('Contract Cancellation is Approved!');\n if (cancelStatus === 'rejected')\n toast.success('Contract Cancellation is Rejected!');\n if (cancelStatus === 'partially approved')\n toast.success('Contract Cancellation is Partially Approved!');\n\n getContractDetails();\n } else {\n setIsLoading({ loader: false, type: cancelStatus });\n }\n });\n } else {\n saveContractData(data);\n }\n };\n\n const updatePauseContract = (pauseAgreementPauseData) => {\n const TodaysDate = dayjs(new Date()).format('YYYY-MM-DD');\n\n updatePauseAgreement(pauseId, pauseAgreementPauseData).then((pauseRes) => {\n if (pauseRes && pauseRes.status === 200) {\n toast.success('Pause Contract Approved!');\n let contractStatusData = {};\n if (pauseRes?.data?.start_date === TodaysDate) {\n contractStatusData = {\n contract_status: 'pause',\n };\n } else if (details && details.is_renewed) {\n contractStatusData = {\n contract_status: 'renewed',\n };\n } else {\n contractStatusData = {\n contract_status: 'active',\n };\n }\n updateContractData(contractStatusData);\n } else {\n toast.error(pauseRes?.data?.detail);\n setShowPauseModal({ show: false, data: {} });\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n const getDataToUpdatePauseAgreement = (\n pauseAgreement = pauseAgreementData,\n ) => {\n const TodaysDate = dayjs(new Date()).format('YYYY-MM-DD');\n let pauseAgreementPauseData = {};\n if (\n pauseAgreement?.start_date &&\n pauseAgreement.start_date === TodaysDate\n ) {\n pauseAgreementPauseData = {\n is_approved: true,\n is_extended: true,\n is_paused: true,\n };\n } else {\n pauseAgreementPauseData = { is_approved: true };\n }\n return pauseAgreementPauseData;\n };\n\n const onClickOfUpdatePauseContract = (flag) => {\n setIsLoading({ loader: true, type: 'button' });\n if (flag.getPauseAgreement) {\n getPauseAgreementDetails(pauseId).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n if (res && res.status === 200) {\n setPauseAgreementData(res && res.data);\n if (res?.data?.end_date && new Date(res.data.end_date) < new Date()) {\n setShowPauseModal({ show: true, data: res.data });\n } else {\n setIsLoading({ loader: true, type: 'button' });\n updatePauseContract(getDataToUpdatePauseAgreement(res && res.data));\n }\n }\n });\n } else {\n setIsLoading({ loader: true, type: 'button' });\n updatePauseContract(getDataToUpdatePauseAgreement());\n }\n };\n\n const renderContractButtonHtml = (onClickFunc, btnLabel, loaderLabel) => {\n return (\n <>\n \n onClickFunc()}\n disabled={\n isSpreetailUser ||\n (agreementGetData?.request_status === 'approved' &&\n contractStatus === 'pending for cancellation' &&\n contractStatus === 'pending cancellation approval' &&\n btnLabel === 'Approval for Cancellation' &&\n finalRequestApprovalUser)\n }\n >\n {isLoading.loader && isLoading.type === loaderLabel ? (\n \n ) : (\n btnLabel\n )}\n \n {isSpreetailUser ||\n (agreementGetData?.request_status === 'approved' &&\n contractStatus === 'pending for cancellation' &&\n contractStatus === 'pending cancellation approval' &&\n btnLabel === 'Approval for Cancellation' &&\n finalRequestApprovalUser) ? (\n \n ) : (\n ''\n )}\n \n \n );\n };\n\n const renderRequestButtonHtml = (\n btnLabel,\n btnClassName,\n checkIsEditContract,\n ) => {\n return (\n <>\n \n {btnLabel}\n \n \n );\n };\n\n const displayFooterForManagers = () => {\n return rightTickCondition ? (\n <>\n {!isEditContract ? (\n <>\n {!BGSManagerOrAdmin ? null : (\n {\n createAgreementDoc();\n setParams('select-contact');\n setShowModal(true);\n setIsEditContract(false);\n }}\n >\n Approve and Request Signature\n \n )}\n \n ) : (\n renderRequestButtonHtml(\n 'Approve and Request Signature',\n 'w-320 ml-0',\n 'true',\n )\n )}\n {!isEditContract\n ? renderEditContractBtn('light-orange w-sm-50 ml-5')\n : null}\n \n ) : !isEditContract ? (\n <>{renderEditContractBtn('btn-primary')}\n ) : (\n renderRequestButtonHtml(\n 'Approve and Request Signature',\n 'w-320 ml-0',\n 'true',\n )\n );\n };\n\n const displayApprovalBtn = () => {\n return !isEditContract ? (\n {\n createAgreementDoc();\n setParams('request-approve');\n setShowModal(true);\n }}\n >\n Request Approval\n \n ) : (\n renderRequestButtonHtml('Request Approval', 'mr-4 w-sm-100', 'false')\n );\n };\n const displayApprovalFooterForInternalUsers = (itsDspOrAmcWithApprover) => {\n return rightTickCondition ? (\n <>\n {BGSManagerOrAdmin ||\n itsDspOrAmcWithApprover ||\n userInfo?.role?.includes('BGS') ? (\n <>\n {!contractAddendumDetails?.notActive ? (\n {displayApprovalBtn()}\n ) : (\n displayApprovalBtn()\n )}\n \n ) : (\n ''\n )}\n\n {!isEditContract\n ? renderEditContractBtn(\n BGSManagerOrAdmin ||\n itsDspOrAmcWithApprover ||\n userInfo?.role?.includes('BGS')\n ? 'light-orange w-sm-50 ml-5'\n : 'light-orange w-sm-50',\n )\n : null}\n \n ) : !isEditContract ? (\n <>{renderEditContractBtn('btn-primary')}\n ) : (\n renderRequestButtonHtml('Request Approval', 'mr-4 w-sm-100', 'false')\n );\n };\n\n // PDV-9064- itsDspOrAmcWithApprover is true when contract is DSP only or AMC only\n // and the logged in user have dspAmcApproval flag as true.\n // if itsDspOrAmcWithApprover is true then, show the Request Approval Btn.\n\n const displayApprovalFooter = (itsDspOrAmcWithApprover = false) => {\n if (finalRequestApprovalUser) return displayFooterForManagers();\n return displayApprovalFooterForInternalUsers(itsDspOrAmcWithApprover);\n };\n\n const displayRequestSignatureFooter = () => {\n return rightTickCondition ? (\n <>\n {!isEditContract ? (\n <>\n {BGSManagerOrAdmin || userInfo?.role?.includes('BGS') ? (\n {\n createAgreementDoc();\n setParams('select-contact');\n setShowModal(true);\n setIsEditContract(false);\n }}\n >\n Request Signature\n \n ) : null}\n \n ) : (\n renderRequestButtonHtml('Request Signature', 'mr-5 w-sm-100', 'false')\n )}\n {!isEditContract\n ? renderEditContractBtn(\n BGSManagerOrAdmin || userInfo?.role?.includes('BGS')\n ? 'light-orange w-sm-50 ml-5'\n : 'light-orange w-sm-50 ',\n )\n : null}\n \n ) : !isEditContract ? (\n <>{renderEditContractBtn('btn-primary w-sm-100')}\n ) : (\n renderRequestButtonHtml('Request Signature', 'mr-5 w-sm-100', 'false')\n );\n };\n\n const displayUnsavedChangesCount = () => {\n if (\n Object.keys(updatedFormData)?.length &&\n Object.keys(updatedFormData)?.includes('fee_structure')\n ) {\n if (\n Object.keys(updatedFormData?.fee_structure)?.includes('vendor') &&\n Object.keys(updatedFormData?.fee_structure)?.includes('seller')\n ) {\n return (\n Object.keys(updatedFormData)?.length +\n Object.keys(updatedFormData?.fee_structure?.vendor)?.length +\n Object.keys(updatedFormData?.fee_structure?.seller)?.length -\n 1\n );\n }\n if (\n Object.keys(updatedFormData?.fee_structure)?.includes('vendor') &&\n updatedFormData?.fee_structure?.vendor !== undefined\n ) {\n return (\n Object.keys(updatedFormData)?.length +\n Object.keys(updatedFormData?.fee_structure?.vendor)?.length -\n 1\n );\n }\n if (Object.keys(updatedFormData?.fee_structure)?.includes('seller')) {\n return (\n Object.keys(updatedFormData)?.length +\n Object.keys(updatedFormData?.fee_structure?.seller)?.length -\n 1\n );\n }\n }\n return Object.keys(updatedFormData).length;\n };\n\n const displayFooterForSaveChanges = () => {\n return (\n
    \n
    \n
    \n \n contractAddendumDetails?.notActive\n ? handleAddendumModal(true)\n : nextStep()\n }\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n <>Save Changes\n )}\n \n\n \n setShowDiscardModal({\n ...showDiscardModal,\n show: true,\n clickedBtn: 'discard',\n openAfterEffectivityDateModal: false,\n })\n }\n >\n Discard Changes\n \n {updatedFormData && Object.keys(updatedFormData).length ? (\n \n {displayUnsavedChangesCount()} unsaved changes.\n \n ) : (\n ''\n )}\n
    \n
    \n
    \n );\n };\n return (\n <>\n {showPauseModal.show ? (\n \n ) : null}\n\n {agreementGetData?.request_status !== 'approved' &&\n (contractStatus === 'pending cancellation approval' ||\n contractStatus === 'pending for cancellation') ? (\n <>\n {finalRequestApprovalUser || firstRequestApprovalUser ? (\n
    \n
    \n
    \n {firstRequestApprovalUser\n ? renderContractButtonHtml(\n () =>\n updateContractData(\n {\n contract_status: 'pending cancellation approval',\n },\n 'partially approved',\n ),\n 'Direct request to Leadership',\n 'partially approved',\n )\n : null}\n {userInfo?.email === 'mona.sereno@buyboxexperts.com' ? (\n ''\n ) : (\n <>\n {/* PDV-9091 need to show Approve cancellation btn only for final approvers \n removed previous condition- \n { details?.is_ending_early && firstRequestApprovalUser ? '': show btn }\n */}\n {finalRequestApprovalUser\n ? renderContractButtonHtml(\n () =>\n updateContractData(\n {\n contract_status: 'pending for cancellation',\n },\n 'approved',\n ),\n 'Approve Cancellation',\n 'approved',\n )\n : null}\n {renderContractButtonHtml(\n () =>\n updateContractData(\n {\n contract_status: details?.is_renewed\n ? 'renewed'\n : 'active',\n },\n 'rejected',\n ),\n 'Reject Cancellation',\n 'rejected',\n )}\n \n )}\n
    \n
    \n
    \n ) : null}\n \n ) : contractStatus === 'active pending for pause request' ||\n contractStatus === 'active pending for pause' ? (\n // PDV-9278 hide footer for active pending for pause agreement status\n ''\n ) : (\n <>\n {contractStatus === 'pending contract signature' ||\n contractAddendumDetails?.status === 'pending addendum signature' ? (\n userInfo?.role !== 'Customer' &&\n (customerState?.account_type === 'standalone' ||\n (customerState?.account_type === 'child' &&\n customerState?.active_contract)) ? (\n
    \n
    \n
    \n {renderContractButtonHtml(\n () => onEditcontract(),\n `${\n contractAddendumDetails?.notActive\n ? 'Edit Addendum'\n : 'Edit Agreement'\n }`,\n )}\n {contractStatus === 'pending contract signature' ||\n contractAddendumDetails?.status ===\n 'pending addendum signature' ? (\n <>\n {\n setParams('send-remainder');\n setShowModal(true);\n }}\n disabled={isSpreetailUser}\n >\n Send Reminder\n \n {isSpreetailUser ? (\n \n ) : null}\n \n ) : (\n ''\n )}\n
    \n
    \n
    \n ) : (\n ''\n )\n ) : isFooter ||\n (newAddendumData?.id && showEditor && updatedFormData?.addendum) ? (\n displayFooterForSaveChanges()\n ) : (\n <>\n {agreementGetData?.request_status === 'approved' ? (\n ''\n ) : userInfo?.role !== 'Customer' && // PDV-8257 subbrand ticket\n (customerState?.account_type === 'standalone' || // this condition block is to show footer\n (customerState?.account_type === 'child' && // only to standalone customers or child with active contract\n customerState?.active_contract)) ? (\n
    \n
    \n
    \n {['dsp only', 'amc only'].includes(\n formData?.contract_type,\n ) && userInfo?.is_dsp_amc_primary_request_approvers\n ? displayApprovalFooter(true)\n : checkApprovalCondition() ||\n userInfo?.role?.includes('BGS Manager') ||\n userInfo?.role?.includes('BGS') ||\n userInfo?.role?.includes('BGS Admin') ||\n firstRequestApprovalUser\n ? displayApprovalFooter()\n : displayRequestSignatureFooter()}\n
    \n
    \n
    \n ) : (\n ''\n )}\n \n )}\n \n )}\n \n );\n}\n\nContractFooter.defaultProps = ContractFooterDefaultProptypes;\nContractFooter.propTypes = ContractFooterProptypes;\n","const THAD_SIGN_IMG = `\n \n`;\n\nexport default THAD_SIGN_IMG;\n","export const getNonUSStdServicesOfAddendum = (formData, originalData) => {\n const saperateFormDataNonUsmarketplaces = (dataInfo) => {\n return (\n dataInfo?.length &&\n dataInfo\n .filter((item) => item.name === 'VAT Registration')\n .map((filteredItem) => filteredItem)\n );\n };\n const addedRemovedStandardServices = (data1, data2) => {\n return data1?.filter((item) => {\n return !data2.some((item1) => {\n return item?.marketplace === item1?.marketplace;\n });\n });\n };\n // 1. For VAT Registration\n const formDataNonUsmarketplaces =\n saperateFormDataNonUsmarketplaces(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataNonUsmarketplaces =\n saperateFormDataNonUsmarketplaces(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const uniqueNonUsServices = addedRemovedStandardServices(\n formDataNonUsmarketplaces,\n originalDataNonUsmarketplaces,\n );\n\n // 2. for Vat Filling\n\n const seperateVATFilingMarketplaces = (dataInfo) => {\n const marketplaces =\n dataInfo?.length &&\n dataInfo.filter(\n (item) =>\n item.name === 'VAT Filing' &&\n item.marketplace !== null &&\n item.frequency !== null,\n );\n\n const result = [];\n if (marketplaces?.length) {\n marketplaces.map((item) => {\n result.push(\n // `${displayMarketplaceName(item.marketplace, 'vat', 'lhs')} (${\n // item?.frequency\n // })`,\n item,\n );\n return null;\n });\n }\n return result.length ? result : [];\n };\n\n const formDataVATFilingMarketplaces =\n seperateVATFilingMarketplaces(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataVATFilingMarketplaces =\n seperateVATFilingMarketplaces(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const addedVatFillingNonUsServices = addedRemovedStandardServices(\n formDataVATFilingMarketplaces,\n originalDataVATFilingMarketplaces,\n );\n\n // 3. for international service\n\n const seperateFormDataInternationalNonUsServices = (dataInfo) => {\n return (\n dataInfo?.length &&\n dataInfo.filter((item) => item?.name?.includes('International'))\n );\n };\n\n const uniqueInternationalNonUsServices = (data1, data2) =>\n data1?.filter((item) => {\n return !data2.some((item1) => {\n return item.name === item1.name;\n });\n });\n\n const formDataInternationalNonUsServices =\n seperateFormDataInternationalNonUsServices(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataInternationalNonUsServices =\n seperateFormDataInternationalNonUsServices(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const addedInternationalNonUsServices = uniqueInternationalNonUsServices(\n formDataInternationalNonUsServices,\n originalDataInternationalNonUsServices,\n );\n\n return {\n vatRegistration: uniqueNonUsServices,\n vatFilling: addedVatFillingNonUsServices,\n internationalService: addedInternationalNonUsServices,\n };\n};\n\nexport const getUpdatedStrByReplacingChannelType = (strData, formData) => {\n return strData?.replaceAll('CHANNEL_TYPE', formData?.channel?.label);\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable react/no-danger */\n\nimport React, { useState, useEffect } from 'react';\n\nimport dayjs from 'dayjs';\nimport htmlToDraft from 'html-to-draftjs';\nimport draftToHtml from 'draftjs-to-html';\nimport { Editor } from 'react-draft-wysiwyg';\nimport { useLocation } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { EditorState, ContentState, convertToRaw } from 'draft-js';\nimport {\n string,\n bool,\n number,\n func,\n oneOfType,\n arrayOf,\n shape,\n object,\n instanceOf,\n} from 'prop-types';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\n\nimport { thadDetails } from '../../../constants';\nimport { DigitalSignature } from '../../../theme/images';\nimport { AddendumParagraph, EditorToll } from '../../../theme/AgreementStyle';\nimport { getNonUSStandardServicesMarketplaces } from '../../../api';\n\nexport default function Addendum({\n formData,\n templateData,\n newAddendumData,\n setNewAddendum,\n showEditor,\n setUpdatedFormData,\n updatedFormData,\n contractAddendumDetails,\n originalData,\n selectedCurrency,\n getServicesAccordingToAccType,\n mapMonthlyServices,\n mapAdditionalMarketPlaces,\n mapMonthlyServiceTotal,\n mapVariableMonthlyService,\n displayMarketplaceName,\n setVatMarketplaces,\n discountData,\n displayBBELogo,\n startDate,\n firstMonthDate,\n secondMonthDate,\n thirdMonthDate,\n returnDspMonthlyDates,\n getAddedOrRemovedAMCServices,\n}) {\n const monthlyServiceEnhancedOrAPlus =\n formData?.channel?.value === 'amazon' ? 'A+ Content' : 'Enhanced Content';\n\n const formattedFirstDateForBE = !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(firstMonthDate), 1)).format(\n 'YYYY-MM-DD',\n );\n\n const formattedSecondDateForBE = !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(secondMonthDate), 1)).format(\n 'YYYY-MM-DD',\n );\n const formattedThirdDateForBE = !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('YYYY-MM-DD')\n : dayjs(returnDspMonthlyDates(new Date(thirdMonthDate), 1)).format(\n 'YYYY-MM-DD',\n );\n\n const dispatch = useDispatch();\n const location = useLocation();\n const id = location.pathname.split('/')[2];\n const [editorState, setEditorState] = useState(null);\n const [contentState, setContentState] = useState(null);\n const styleForChangedValues = `font-weight: 800; font-family: Helvetica-bold; background: #ffe5df; padding: 4px 9px;`;\n const defaultEffectivityDateText =\n '[choose either date of addendum or custom date]';\n useEffect(() => {\n if (editorState === null) {\n let contentBlock;\n\n if (newAddendumData && newAddendumData.addendum) {\n contentBlock = htmlToDraft(newAddendumData.addendum);\n } else {\n contentBlock = htmlToDraft('

    ');\n }\n const content = ContentState.createFromBlockArray(\n contentBlock.contentBlocks,\n );\n setEditorState(EditorState.createWithContent(content));\n setContentState(newAddendumData);\n }\n }, [dispatch, id]);\n\n useEffect(() => {\n if (newAddendumData && !Object.keys(newAddendumData).length) {\n setEditorState(EditorState.createEmpty());\n }\n }, [newAddendumData]);\n\n const mapThadSignImg = () => {\n const data = `

    \n \n \n \n

    `;\n return data;\n };\n\n useEffect(() => {\n if (contractAddendumDetails?.notActive) {\n getNonUSStandardServicesMarketplaces().then((res) => {\n setVatMarketplaces(res);\n });\n }\n }, []);\n\n const onEditorStateChange = (editorData) => {\n setEditorState(editorData);\n const content = editorData.getCurrentContent();\n const info = draftToHtml(convertToRaw(content));\n const updatedAddendumm = { ...newAddendumData, addendum: info };\n setNewAddendum(updatedAddendumm);\n setUpdatedFormData({ ...updatedFormData, addendum: info });\n };\n\n const mapDefaultValues = (key) => {\n if (key === 'company_name') {\n return formData?.customer_id?.[key]\n ? formData?.customer_id?.[key]\n : `Client Name`;\n }\n if (key === 'start_date') {\n return `${\n contractAddendumDetails?.notActive\n ? formData?.start_date\n ? dayjs(formData?.start_date).format('MM / DD / YYYY')\n : 'Enter Date'\n : startDate\n ? dayjs(startDate).format('MM / DD / YYYY')\n : 'Enter Date'\n }`;\n }\n if (key === 'current_date') {\n return dayjs(Date()).format('MM / DD / YYYY');\n }\n if (key === 'addendum_start_date') {\n return formData?.addendum_start_date !== null\n ? `${dayjs(\n formData?.addendum_start_date,\n ).format('MM / DD / YYYY')}`\n : 'Select Date';\n }\n return formData && formData[key];\n };\n\n const displayEditor = () => {\n return (\n \n \n \n );\n };\n\n const displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n // integrate the change in retainer threshold values\n const ShowRetainerThresholdValues = (\n type,\n quartelyKey,\n monthlyKey,\n option,\n ) => {\n return `${\n formData?.fee_structure?.[type]?.[option] === 'quarterly'\n ? `
  • 1st Quarter from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[quartelyKey]?.[\n '1st quarterly'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['1st quarterly'],\n ) || 0\n } \n
  • \n
  • 2nd Quarter from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[quartelyKey]?.[\n '2nd quarterly'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['2nd quarterly'],\n ) || 0\n }\n
  • \n
  • 3rd Quarter from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[quartelyKey]?.[\n '3rd quarterly'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['3rd quarterly'],\n ) || 0\n } \n
  • \n
  • 4th Quarter from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[quartelyKey]?.[\n '4th quarterly'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['4th quarterly'],\n ) || 0\n } \n
  • `\n : formData?.fee_structure?.[type]?.[option] === 'monthly'\n ? `
  • January from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'january month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['january month'],\n ) || 0\n } \n
  • \n
  • February from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'february month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['february month'],\n ) || 0\n } \n
  • \n
  • March from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'march month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['march month'],\n ) || 0\n } \n
  • \n
  • April from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'april month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['april month'],\n ) || 0\n } \n
  • \n
  • May from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.['may month'],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['may month'],\n ) || 0\n } \n
  • \n
  • June from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.['june month'],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['june month'],\n ) || 0\n } \n
  • \n
  • July from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.['july month'],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['july month'],\n ) || 0\n } \n
  • \n
  • August from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'august month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['august month'],\n ) || 0\n } \n
  • \n
  • September from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'september month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'september month'\n ],\n ) || 0\n } \n
  • \n
  • October from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'october month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['october month'],\n ) || 0\n } \n
  • \n
  • November from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'november month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['november month'],\n ) || 0\n } \n
  • \n
  • December from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'december month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['december month'],\n ) || 0\n } \n
  • `\n : ''\n }`;\n };\n\n const mapStandardServicesTable = (servicesData, tableType) => {\n const fields = [];\n servicesData.map((item) => {\n fields.push(`\n ${\n item.name\n } \n ${\n tableType === 'added'\n ? `\n ${\n item?.id && item?.effective_date\n ? item?.effective_date\n : item?.id && !item?.effective_date\n ? formData?.contract_signed_date\n : defaultEffectivityDateText\n }\n `\n : ''\n }\n `);\n return null;\n });\n return fields;\n };\n\n // Display list of Addendum standard US Services\n const renderAddendumStandardUsServices = (result, tableType) => {\n const returnData = [];\n returnData.push(\n `
    \n \n \n \n ${tableType === 'added' ? `` : ''}\n \n \n ${result?.length ? mapStandardServicesTable(result, tableType) : ''}\n
    ServicesEffective Date
    \n
    `,\n );\n return returnData;\n };\n\n const renderListingOptimizationServices = (param, service1, service2) => {\n if (service1 !== service2) {\n return `
  • ${param} changed from ${\n service1 !== null ? service1 : 0\n } to ${\n service2 !== null ? service2 : 0\n }

    \n
  • `;\n }\n return '';\n };\n\n function getDifference(array1, array2, field) {\n return array1?.filter((object1) => {\n return !array2?.some((object2) => {\n if (field === 'marketplace') {\n return object1?.name === object2?.name;\n }\n if (object1?.quantity !== object2?.quantity)\n return object1?.quantity === object2?.quantity;\n return object1?.service?.id === object2?.service?.id;\n });\n });\n }\n\n const getMarketplaces = (type, status) => {\n let result = [];\n const accountType = type === 'seller' ? 'Seller' : 'Vendor';\n\n const addendumService = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n accountType,\n );\n const originalservice = getServicesAccordingToAccType(\n originalData?.additional_marketplaces,\n accountType,\n );\n\n if (status === 'added') {\n result = getDifference(addendumService, originalservice, 'marketplace');\n } else {\n result = getDifference(originalservice, addendumService, 'marketplace');\n }\n\n return result;\n };\n\n const getMonthlyServices = (type, status) => {\n let result = [];\n const accountType = type === 'seller' ? 'Seller' : 'Vendor';\n\n const addendumService = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n accountType,\n );\n\n const originalservice = getServicesAccordingToAccType(\n originalData?.additional_monthly_services,\n accountType,\n );\n\n if (status === 'added') {\n result = getDifference(addendumService, originalservice);\n } else {\n result = getDifference(originalservice, addendumService);\n }\n return result;\n };\n\n const displayMonthlyServices = (result, type) => {\n if (result?.length) {\n const list = result.map(\n (item) =>\n `
  • ${\n type === 'dsp'\n ? displayMarketplaceName(item?.service?.name, 'dsp', 'lhs') ||\n displayMarketplaceName(item?.name, 'dsp', 'lhs')\n : item?.service?.name || item?.name\n } ${\n item?.service?.name === monthlyServiceEnhancedOrAPlus ||\n item?.name === monthlyServiceEnhancedOrAPlus\n ? `(${item?.quantity || 1})`\n : ''\n }
  • `,\n );\n return list.toString().replaceAll(',', '');\n }\n return '';\n };\n\n const displayMonthlyServiceTable = (\n serviceAddedResult,\n marketplacesAddedResult,\n serviceRemovedResult,\n marketplacesRemovedResult,\n accntTYpe,\n tableType,\n ) => {\n const accountType = accntTYpe === 'seller' ? 'Seller' : 'Vendor';\n\n const originalservice = getServicesAccordingToAccType(\n originalData?.additional_monthly_services,\n accountType,\n );\n const addendumService = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n accountType,\n );\n const addendumMarketplaces = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n accountType,\n );\n const originalMarketplaces = getServicesAccordingToAccType(\n originalData?.additional_marketplaces,\n accountType,\n );\n\n const returnData = [];\n returnData.push(\n `
    \n \n ${\n tableType !== 'removed'\n ? getDifference(originalservice, serviceRemovedResult)?.length ||\n getDifference(\n originalMarketplaces,\n marketplacesRemovedResult,\n 'marketplace',\n )?.length\n ? `\n \n \n \n `\n : ''\n : `\n \n \n `\n }\n ${\n tableType !== 'removed'\n ? mapMonthlyServices(\n 'additional_monthly_services',\n getDifference(originalservice, serviceRemovedResult),\n )\n : ''\n }\n ${\n tableType !== 'removed'\n ? mapAdditionalMarketPlaces(\n getDifference(\n originalMarketplaces,\n marketplacesRemovedResult,\n 'marketplace',\n ),\n )\n : ''\n }\n \n ${\n (serviceAddedResult?.length || marketplacesAddedResult?.length) &&\n tableType !== 'removed'\n ? ` \n \n\n \n `\n : ''\n }\n \n ${mapMonthlyServices(\n 'additional_monthly_services',\n tableType !== 'removed' ? serviceAddedResult : serviceRemovedResult,\n tableType,\n )}\n ${mapAdditionalMarketPlaces(\n tableType !== 'removed'\n ? marketplacesAddedResult\n : marketplacesRemovedResult,\n tableType,\n )}\n\n ${\n tableType !== 'removed'\n ? getDifference(originalservice, serviceRemovedResult)?.length ===\n 0 &&\n getDifference(\n originalMarketplaces,\n marketplacesRemovedResult,\n 'marketplace',\n )?.length === 0 &&\n marketplacesAddedResult?.length === 0 &&\n serviceAddedResult?.length === 0\n ? ''\n : mapMonthlyServiceTotal(\n addendumService,\n addendumMarketplaces,\n accntTYpe,\n )\n : ''\n }\n ${mapVariableMonthlyService(\n tableType !== 'removed'\n ? getDifference(addendumService, serviceRemovedResult)\n : serviceRemovedResult,\n tableType,\n )} \n
    Existing ServiceEffective DateService Fee
    Existing ServiceService Fee
    Additional ServiceEffective DateService Fee
    \n
    `,\n );\n return returnData.length\n ? returnData.toString().replaceAll('>,<', '><')\n : '';\n };\n\n const renderAddendumAMCServices = (serviceData, flag) => {\n const returnData = [];\n const removedAMCServices = getAddedOrRemovedAMCServices(\n originalData?.amc_services,\n formData?.amc_services,\n );\n const existingServices = getAddedOrRemovedAMCServices(\n originalData?.amc_services,\n removedAMCServices,\n );\n\n returnData.push(\n `
    \n \n ${\n flag === 'added'\n ? existingServices?.length ||\n (originalData?.is_dsp_advertising &&\n formData?.is_dsp_advertising !==\n originalData?.is_dsp_advertising)\n ? `\n \n \n \n `\n : ''\n : `\n \n \n `\n }\n ${\n flag !== 'removed'\n ? mapMonthlyServices('amc_services', existingServices, flag)\n : ''\n }\n\n \n ${\n serviceData?.length && flag === 'added'\n ? ` \n \n\n \n `\n : ''\n }\n ${mapMonthlyServices('amc_services', serviceData, flag)}\n\n \n ${\n flag === 'added'\n ? mapMonthlyServiceTotal(formData?.amc_services, '', '')\n : ''\n }\n
    Existing ServiceEffective DateService Fee
    Existing ServiceService Fee
    Additional ServiceEffective DateService Fee
    \n
    `,\n );\n return returnData.length\n ? returnData.toString().replaceAll('>,<', '><')\n : '';\n };\n\n // integrate the changes done in monthly services of sifned contract\n const displayMontlyServiceAddendum = (type, fields) => {\n const serviceAddedResult = getMonthlyServices(type, 'added');\n const serviceRemovedResult = getMonthlyServices(type, 'removed');\n const marketplacesAddedResult = getMarketplaces(type, 'added');\n const marketplacesRemovedResult = getMarketplaces(type, 'removed');\n const accountType = type === 'seller' ? 'Seller' : 'Vendor';\n\n const isDiscountAdded = discountData?.filter((item) => {\n return item?.account_type === accountType;\n });\n const originalservice = getServicesAccordingToAccType(\n originalData?.additional_monthly_services,\n accountType,\n );\n\n const originalMarketplaces = getServicesAccordingToAccType(\n originalData?.additional_marketplaces,\n accountType,\n );\n\n if (\n serviceAddedResult?.length ||\n serviceRemovedResult?.length ||\n marketplacesAddedResult?.length ||\n marketplacesRemovedResult?.length ||\n (isDiscountAdded?.length &&\n isDiscountAdded?.[0]?.is_addendum_discount_changed)\n ) {\n fields.push(\n `
    \n Monthly Services for Amazon ${\n type === 'seller' ? 'Seller' : 'Vendor'\n } Account
    `,\n );\n }\n if (\n serviceAddedResult?.length === 0 &&\n marketplacesAddedResult?.length === 0 &&\n getDifference(originalservice, serviceRemovedResult)?.length === 0 &&\n getDifference(\n originalMarketplaces,\n marketplacesRemovedResult,\n 'marketplace',\n )?.length === 0\n ) {\n if (\n !(\n isDiscountAdded?.length &&\n isDiscountAdded?.[0]?.is_addendum_discount_changed\n )\n )\n fields.push(``);\n } else if (\n (isDiscountAdded?.length &&\n isDiscountAdded?.[0]?.is_addendum_discount_changed) ||\n serviceAddedResult?.length ||\n marketplacesAddedResult?.length\n ) {\n fields.push(`\n • The Service Order / Statement of Work is updated to add the following Monthly Service(s).
    \n \n ${displayMonthlyServiceTable(\n serviceAddedResult,\n marketplacesAddedResult,\n serviceRemovedResult,\n marketplacesRemovedResult,\n type,\n )}\n `);\n }\n\n if (serviceRemovedResult?.length || marketplacesRemovedResult?.length) {\n fields.push(\n `• The Service Order / Statement of Work is updated to remove the following Monthly Service(s). This change is effective on the addendum signature date.
    \n \n ${displayMonthlyServiceTable(\n serviceAddedResult,\n marketplacesAddedResult,\n serviceRemovedResult,\n marketplacesRemovedResult,\n type,\n 'removed',\n )} \n `,\n );\n }\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll('.,', '.')\n .replaceAll(' ,', '')\n .replaceAll('•', '
    •')\n .replaceAll(',
    ', '
    ')\n .replaceAll(',
    ', '
    ')\n : '';\n };\n\n const getObjectDifference = (obj1, obj2) => {\n const combinedObj = { ...obj1, ...obj2 };\n const diff = Object?.entries(combinedObj)?.reduce((acc, [key, value]) => {\n if (\n (obj1 && !Object.values(obj1).includes(value)) ||\n (obj2 && !Object.values(obj2).includes(value))\n )\n acc[key] = value;\n return acc;\n }, {});\n if (diff && Object?.values(diff)?.length > 0) {\n return true;\n }\n return false;\n };\n\n const checkConditions = (param1, param2) => {\n param1 = Number(param1);\n param2 = Number(param2);\n if (\n (!param1 ? 0 : parseFloat(param1, 10)) !==\n (!param2 ? 0 : parseFloat(param2, 10))\n ) {\n return true;\n }\n return false;\n };\n\n // integrate the changes done in fee type of signed contract\n const accountContractAddendum = (type) => {\n const fields = [];\n // if fee type is changed.\n if (\n originalData?.fee_structure?.[type]?.fee_type === 'Retainer Only' &&\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the Revenue Share invoices value of ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.monthly_retainer || 0,\n )} for managing ${type} account. This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }. That's parallel to the Retainer invoices that are issued monthly for ${type} account.
    `,\n );\n }\n if (\n originalData.fee_structure?.[type]?.fee_type === 'Revenue Share Only' &&\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the Retainer invoices value of ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.monthly_retainer || 0,\n )} for managing ${type} account. This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }. That's parallel to the Rev Share invoices that are issued monthly for ${type} account.
    `,\n );\n }\n\n // if retainer value is changed.\n if (\n (formData?.fee_structure?.[type]?.retainer_type === 'Fixed' ||\n formData?.fee_structure?.[type]?.retainer_type === null ||\n !formData?.fee_structure?.[type]?.retainer_type) &&\n checkConditions(\n originalData?.fee_structure?.[type]?.monthly_retainer,\n formData?.fee_structure?.[type]?.monthly_retainer,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the Monthly Retainer to ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.monthly_retainer || 0,\n )} This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n\n if (\n (formData?.fee_structure?.[type]?.retainer_type === 'quarterly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.quarterly_monthly_retainer || {},\n formData?.fee_structure?.[type]?.quarterly_monthly_retainer || {},\n )) ||\n (formData?.fee_structure?.[type]?.retainer_type === 'monthly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.monthly_monthly_retainer || {},\n formData?.fee_structure?.[type]?.monthly_monthly_retainer || {},\n ))\n ) {\n fields.push(\n ` • The Service Order / Statement of Work is updated to change the ${\n formData?.fee_structure?.[type]?.retainer_type === 'quarterly'\n ? 'quarterly'\n : 'monthly'\n } retainer invoice value for ${type} account.This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
      ${ShowRetainerThresholdValues(\n type,\n 'quarterly_monthly_retainer',\n 'monthly_monthly_retainer',\n 'retainer_type',\n )}

    `,\n );\n }\n\n // if rev share changed.\n if (\n checkConditions(\n originalData?.fee_structure?.[type]?.rev_share,\n formData?.fee_structure?.[type]?.rev_share,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the Monthly Revenue share to ${displayNumber(\n formData?.fee_structure?.[type]?.rev_share || 0,\n )}% This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n\n if (\n formData?.fee_structure?.[type]?.threshold_type === 'None' &&\n originalData?.fee_structure?.[type]?.threshold_type !== 'None' &&\n originalData?.fee_structure?.[type]?.threshold_type !== null\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the Revenue Share Threshold to None . This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n const formDataFixedThresholdType =\n (formData?.fee_structure?.[type]?.threshold_type === 'Fixed' ||\n formData?.fee_structure?.[type]?.threshold_type === null) &&\n originalData?.fee_structure?.[type]?.sales_threshold;\n if (\n checkConditions(\n formDataFixedThresholdType,\n formData?.fee_structure?.[type]?.sales_threshold,\n ) &&\n formData?.fee_structure?.[type]?.threshold_type === 'Fixed'\n ) {\n fields.push(\n `• To The Service Order / Statement of Work is updated to change the fixed threshold to ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.sales_threshold || 0,\n )} for managing ${type} account. This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n\n if (\n (formData?.fee_structure?.[type]?.threshold_type === 'quarterly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.quarterly_rev_share || {},\n formData?.fee_structure?.[type]?.quarterly_rev_share || {},\n )) ||\n (formData?.fee_structure?.[type]?.threshold_type === 'monthly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.monthly_rev_share || {},\n formData?.fee_structure?.[type]?.monthly_rev_share || {},\n ))\n ) {\n fields.push(\n `• To The Service Order / Statement of Work is updated to change the ${\n formData?.fee_structure?.[type]?.threshold_type === 'quarterly'\n ? 'quarterly'\n : 'monthly'\n } revenue share invoice value for ${type} account.This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
      ${ShowRetainerThresholdValues(\n type,\n 'quarterly_rev_share',\n 'monthly_rev_share',\n 'threshold_type',\n )}

    `,\n );\n }\n\n // if billing cap/minimum changed.\n if (\n checkConditions(\n originalData?.fee_structure?.[type]?.billing_cap,\n formData?.fee_structure?.[type]?.billing_cap,\n )\n ) {\n fields.push(\n `• To The Service Order / Statement of Work is updated to change the billing cap to ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_cap || 0,\n )} for managing ${type} account; This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n\n if (\n checkConditions(\n originalData?.fee_structure?.[type]?.billing_minimum,\n formData?.fee_structure?.[type]?.billing_minimum,\n )\n ) {\n fields.push(\n `• To The Service Order / Statement of Work is updated to change the billing minimum to ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_minimum || 0,\n )} for managing ${type} account; This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n\n // if combined rev share is changed.\n if (\n originalData?.combined_rev_share !== formData?.combined_rev_share &&\n type === 'seller'\n ) {\n if (formData?.combined_rev_share) {\n fields.push(\n `• BBE is going to calculate the Revenue Share by combining the seller and vendor accounts sales revenue. This is starting from 3rd of month.`,\n );\n } else {\n fields.push(`• BBE is going to calculate the Revenue Share of the seller account sales separately \n from the vendor accounts sales revenue for managing ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.sales_threshold || 0,\n )} account. This is starting from 3rd of every month.\n `);\n }\n }\n\n // 2.1 If monthly services are added\n displayMontlyServiceAddendum(type, fields);\n\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll('.,', '.')\n .replaceAll(' ,', '')\n .replaceAll('•', '
    •')\n .replaceAll(',
    ', '
    ')\n .replaceAll(',
    ', '
    ')\n .replaceAll('
    ,', '
    ')\n : '';\n };\n\n const checkIsMonthSame = (originalBudgetDate, formDataBudgetDate) => {\n const originalDate = originalBudgetDate || formDataBudgetDate;\n\n if (\n new Date(originalDate)?.getMonth() ===\n new Date(formDataBudgetDate)?.getMonth()\n ) {\n return true;\n }\n return false;\n };\n\n const displayOneTimebudgetAllocation = (marketplace) => {\n const fields = [];\n let dspMarketplaceOfOriginalContract = null;\n for (const originaldataDspMarketplace of originalData?.dsp_marketplaces) {\n if (\n originaldataDspMarketplace?.country_currency?.country ===\n marketplace?.country_currency?.country\n ) {\n dspMarketplaceOfOriginalContract = originaldataDspMarketplace;\n }\n }\n\n if (\n Number(dspMarketplaceOfOriginalContract?.one_time_budget) !==\n Number(marketplace?.one_time_budget)\n ) {\n fields.push(`
  • One Time Fee Budget from ${selectedCurrency}${displayNumber(\n dspMarketplaceOfOriginalContract?.one_time_budget || 0,\n )} to ${selectedCurrency}${displayNumber(\n marketplace?.one_time_budget || 0,\n )}
  • `);\n }\n return fields;\n };\n\n const displayDynamicMonthlyBudgetAllocation = (marketplace) => {\n const fields = [];\n let dspMarketplaceOfOriginalContract = null;\n if (originalData?.dsp_marketplaces) {\n for (const originaldataDspMarketplace of originalData?.dsp_marketplaces) {\n if (\n originaldataDspMarketplace?.country_currency?.country ===\n marketplace?.country_currency?.country\n ) {\n dspMarketplaceOfOriginalContract = originaldataDspMarketplace;\n }\n }\n }\n\n if (\n Number(dspMarketplaceOfOriginalContract?.monthly_budget) !==\n Number(marketplace?.monthly_budget)\n ) {\n if (\n checkIsMonthSame(\n dspMarketplaceOfOriginalContract?.monthly_budget_date,\n formattedFirstDateForBE,\n )\n ) {\n fields.push(`
  • Fee Budget for ${dayjs(formattedFirstDateForBE).format(\n 'MMMM YY',\n )} from ${selectedCurrency}${displayNumber(\n dspMarketplaceOfOriginalContract?.monthly_budget || 0,\n )} to ${selectedCurrency}${displayNumber(\n marketplace?.monthly_budget,\n )}
  • `);\n } else {\n fields.push(`
  • Fee Budget for ${dayjs(\n dspMarketplaceOfOriginalContract?.monthly_budget_date,\n ).format('MMMM YY')} from ${selectedCurrency}${displayNumber(\n dspMarketplaceOfOriginalContract?.monthly_budget || 0,\n )} to ${dayjs(formattedFirstDateForBE).format(\n 'MMMM YY',\n )} ${selectedCurrency}${displayNumber(\n marketplace?.monthly_budget,\n )}
  • `);\n }\n }\n\n if (\n Number(dspMarketplaceOfOriginalContract?.monthly_budget_second) !==\n Number(marketplace?.monthly_budget_second)\n ) {\n if (\n checkIsMonthSame(\n dspMarketplaceOfOriginalContract?.monthly_budget_second_date,\n formattedSecondDateForBE,\n )\n ) {\n fields.push(`
  • Fee Budget for ${dayjs(\n formattedSecondDateForBE,\n ).format('MMMM YY')} from ${selectedCurrency}${displayNumber(\n dspMarketplaceOfOriginalContract?.monthly_budget_second || 0,\n )} to ${selectedCurrency}${displayNumber(\n marketplace?.monthly_budget_second,\n )}
  • `);\n } else {\n fields.push(`
  • Fee Budget for ${dayjs(\n dspMarketplaceOfOriginalContract?.monthly_budget_second_date,\n ).format('MMMM YY')} from ${selectedCurrency}${displayNumber(\n dspMarketplaceOfOriginalContract?.monthly_budget_second || 0,\n )} to ${dayjs(formattedSecondDateForBE).format(\n 'MMMM YY',\n )} ${selectedCurrency}${displayNumber(\n marketplace?.monthly_budget_second,\n )}
  • `);\n }\n }\n\n if (\n Number(dspMarketplaceOfOriginalContract?.monthly_budget_third) !==\n Number(marketplace?.monthly_budget_third)\n ) {\n if (\n checkIsMonthSame(\n dspMarketplaceOfOriginalContract?.monthly_budget_third_date,\n formattedThirdDateForBE,\n )\n ) {\n fields.push(`
  • Fee Budget for ${dayjs(formattedThirdDateForBE).format(\n 'MMMM YY',\n )} from ${selectedCurrency}${displayNumber(\n dspMarketplaceOfOriginalContract?.monthly_budget_third || 0,\n )} to ${selectedCurrency}${displayNumber(\n marketplace?.monthly_budget_third,\n )}
  • `);\n } else {\n fields.push(`
  • Fee Budget for ${dayjs(\n dspMarketplaceOfOriginalContract?.monthly_budget_third_date,\n ).format('MMMM YY')} from ${selectedCurrency}${displayNumber(\n dspMarketplaceOfOriginalContract?.monthly_budget_third || 0,\n )} to ${dayjs(formattedThirdDateForBE).format(\n 'MMMM YY',\n )} ${selectedCurrency}${displayNumber(\n marketplace?.monthly_budget_third,\n )}
  • `);\n }\n }\n return fields;\n };\n\n const displayDynamicDspFeesForAddendum = () => {\n const fields = [];\n if (\n checkConditions(originalData?.dsp_fee, formData?.dsp_fee) ||\n checkConditions(originalData?.dsp_fee_second, formData?.dsp_fee_second) ||\n checkConditions(originalData?.dsp_fee_third, formData?.dsp_fee_third)\n ) {\n if (originalData?.dsp_fee !== formData?.dsp_fee) {\n fields.push(`
  • Fee Budget for ${dayjs(formattedFirstDateForBE).format(\n 'MMMM YY',\n )} from ${selectedCurrency}${displayNumber(\n originalData?.dsp_fee || 0,\n )} to ${selectedCurrency}${displayNumber(\n formData?.dsp_fee,\n )}
  • `);\n }\n\n if (originalData?.dsp_fee_second !== formData?.dsp_fee_second) {\n fields.push(`
  • Fee Budget for ${dayjs(\n formattedSecondDateForBE,\n ).format('MMMM YY')} from ${selectedCurrency}${displayNumber(\n originalData?.dsp_fee_second || 0,\n )} to ${selectedCurrency}${displayNumber(\n formData?.dsp_fee_second,\n )}
  • `);\n }\n\n if (originalData?.dsp_fee_third !== formData?.dsp_fee_third) {\n fields.push(`
  • Fee Budget for ${dayjs(formattedThirdDateForBE).format(\n 'MMMM YY',\n )} from ${selectedCurrency}${displayNumber(\n originalData?.dsp_fee_third || 0,\n )} to ${selectedCurrency}${displayNumber(\n formData?.dsp_fee_third,\n )}
  • `);\n }\n return fields;\n }\n return '';\n };\n\n const displayDspFeesForAddendum = () => {\n if (checkConditions(originalData?.dsp_fee, formData?.dsp_fee)) {\n if (!originalData?.dsp_fee) {\n return originalData?.dsp_fee !== formData?.dsp_fee\n ? `
  • Fee Budget from ${selectedCurrency}${displayNumber(\n originalData?.dsp_fee || 0,\n )} to ${selectedCurrency}${displayNumber(\n formData?.dsp_fee,\n )}
  • `\n : '';\n }\n return originalData?.dsp_fee !== formData?.dsp_fee\n ? `
  • Fee Budget from ${selectedCurrency}${displayNumber(\n originalData?.dsp_fee || 0,\n )} to ${selectedCurrency}${\n formData?.dsp_fee ? displayNumber(formData?.dsp_fee) : 0\n }
  • `\n : '';\n }\n return '';\n };\n\n const nonAccountContractAddendum = () => {\n const fields = [];\n\n // If LISTING OPTIMIZATIONS (ASIN’S PER MONTH) changed\n if (\n checkConditions(\n originalData?.content_optimization,\n formData?.content_optimization,\n ) ||\n checkConditions(\n originalData?.design_optimization,\n formData?.design_optimization,\n ) ||\n checkConditions(\n originalData?.photography_optimization,\n formData?.photography_optimization,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the following Listing Optimizations (asin’s per month). This change is effective from ${\n formData?.listing_optimization_effective_date\n ? dayjs(formData?.listing_optimization_effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.\n
      \n ${renderListingOptimizationServices(\n 'Copy Optimization',\n originalData?.content_optimization,\n formData?.content_optimization,\n )}\n ${renderListingOptimizationServices(\n 'Design Optimization',\n originalData?.design_optimization,\n formData?.design_optimization,\n )}\n
    `,\n );\n }\n\n // If LISTING TRANSLATION changed\n if (\n checkConditions(\n originalData?.copy_listing_translation,\n formData?.copy_listing_translation,\n ) ||\n checkConditions(\n originalData?.creative_listing_translation,\n formData?.creative_listing_translation,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the following Listing Translation(asin’s per month). This change is effective from ${\n formData?.listing_translation_effective_date\n ? dayjs(formData?.listing_translation_effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.\n
      \n ${renderListingOptimizationServices(\n 'Copy Translation',\n originalData?.copy_listing_translation,\n formData?.copy_listing_translation,\n )}\n ${renderListingOptimizationServices(\n 'Creative Translation',\n originalData?.creative_listing_translation,\n formData?.creative_listing_translation,\n )}\n
    `,\n );\n }\n // 1.2. If Standard services are Removed\n const removedStandardUsServices =\n originalData?.standard_us_services?.filter((obj) => {\n return !formData?.standard_us_services?.some((obj2) => {\n return obj?.name === obj2?.name;\n });\n });\n\n if (removedStandardUsServices && removedStandardUsServices?.length) {\n fields.push(\n `• The Service Order / Statement of Work is updated to remove the following Standard Service(s). This change is effective on the addendum signature date.\n ${renderAddendumStandardUsServices(\n removedStandardUsServices,\n 'removed',\n )}`,\n );\n }\n\n // if Statement Of Work are changed.\n // 1.1 If Standard services are Added\n\n const standardUsServicesUniqueResult =\n formData?.standard_us_services?.filter((obj) => {\n return !originalData?.standard_us_services?.some((obj2) => {\n return obj.name === obj2.name;\n });\n });\n\n if (\n standardUsServicesUniqueResult &&\n standardUsServicesUniqueResult?.length\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the following Standard Service(s).\n ${renderAddendumStandardUsServices(\n standardUsServicesUniqueResult,\n 'added',\n )}\n `,\n );\n }\n\n // If Standard non-us services are changed\n // for Non Us Services\n const saperateFormDataNonUsmarketplaces = (data) => {\n return (\n data?.length &&\n data\n .filter((item) => item.name === 'VAT Registration')\n .map((filteredItem) => filteredItem)\n );\n };\n\n const seperateVATFilingMarketplaces = (data) => {\n const marketplaces =\n data?.length &&\n data.filter(\n (item) =>\n item.name === 'VAT Filing' &&\n item.marketplace !== null &&\n item.frequency !== null,\n );\n return marketplaces?.length ? marketplaces : [];\n };\n\n const seperateFormDataInternationalNonUsServices = (data) => {\n return (\n data?.length &&\n data.filter((item) => item?.name?.includes('International'))\n );\n };\n\n const addedRemovedStandardServices = (data1, data2) => {\n return data1?.filter((item) => {\n return !data2.some((item1) => {\n return item?.marketplace === item1?.marketplace;\n });\n });\n };\n\n const uniqueInternationalNonUsServices = (data1, data2) =>\n data1?.filter((item) => {\n return !data2.some((item1) => {\n return item.name === item1.name;\n });\n });\n // 1. for Vat Regrestration\n const formDataNonUsmarketplaces =\n saperateFormDataNonUsmarketplaces(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataNonUsmarketplaces =\n saperateFormDataNonUsmarketplaces(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const uniqueNonUsServices = addedRemovedStandardServices(\n formDataNonUsmarketplaces,\n originalDataNonUsmarketplaces,\n );\n\n const removedNonUsServices = addedRemovedStandardServices(\n originalDataNonUsmarketplaces,\n formDataNonUsmarketplaces,\n );\n\n // 2. for Vat Filling\n const formDataVATFilingMarketplaces =\n seperateVATFilingMarketplaces(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataVATFilingMarketplaces =\n seperateVATFilingMarketplaces(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const addedVatFillingNonUsServices = addedRemovedStandardServices(\n formDataVATFilingMarketplaces,\n originalDataVATFilingMarketplaces,\n );\n const removedVatFillingNonUsServices = addedRemovedStandardServices(\n originalDataVATFilingMarketplaces,\n formDataVATFilingMarketplaces,\n );\n\n // 3. for international service\n const formDataInternationalNonUsServices =\n seperateFormDataInternationalNonUsServices(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataInternationalNonUsServices =\n seperateFormDataInternationalNonUsServices(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const addedInternationalNonUsServices = uniqueInternationalNonUsServices(\n formDataInternationalNonUsServices,\n originalDataInternationalNonUsServices,\n );\n const remmovedInternationalNonUsServices = uniqueInternationalNonUsServices(\n originalDataInternationalNonUsServices,\n formDataInternationalNonUsServices,\n );\n\n // DPS service length (MONTHS), field, in DSP Advertising\n const showOneTimeBudget = () => {\n if (formData?.dsp_one_time_fee) {\n return `${\n originalData?.dsp_one_time_fee !== formData?.dsp_one_time_fee\n ? `
  • One time Ad Budget from ${selectedCurrency}${displayNumber(\n originalData?.dsp_one_time_fee || 0,\n )} to ${selectedCurrency}${displayNumber(\n formData?.dsp_one_time_fee || 0,\n )}
  • `\n : ''\n }`;\n }\n if (!formData?.dsp_one_time_fee) {\n return `${\n (!originalData?.dsp_one_time_fee\n ? 0\n : originalData?.dsp_one_time_fee) !==\n (!formData?.dsp_one_time_fee ? 0 : formData?.dsp_one_time_fee)\n ? `
  • DSP service length from ${selectedCurrency}${displayNumber(\n originalData?.dsp_one_time_fee || 0,\n )} to ${selectedCurrency}${displayNumber(\n formData?.dsp_one_time_fee || 0,\n )}
  • `\n : ''\n }`;\n }\n return '';\n };\n\n // DPS service length (MONTHS), field, in DSP Advertising\n const showDspLength = () => {\n if (formData?.dsp_length?.value) {\n return `${\n originalData?.dsp_length?.value !== formData?.dsp_length?.value\n ? `
  • DSP service length from ${\n originalData?.dsp_length?.value || originalData?.dsp_length || 0\n } to ${\n formData?.dsp_length?.value || formData?.dsp_length || 0\n }
  • `\n : ''\n }`;\n }\n if (!formData?.dsp_length?.value) {\n return `${\n (!originalData?.dsp_length?.value\n ? 0\n : originalData?.dsp_length?.value) !==\n (!formData?.dsp_length ? 0 : formData?.dsp_length)\n ? `
  • DSP service length from ${\n originalData?.dsp_length?.value || originalData?.dsp_length || 0\n } to ${\n formData?.dsp_length || formData?.dsp_length || 0\n }
  • `\n : ''\n }`;\n }\n return '';\n };\n\n const addedAMCServices = getAddedOrRemovedAMCServices(\n formData?.amc_services,\n originalData?.amc_services,\n );\n const removedAMCServices = getAddedOrRemovedAMCServices(\n originalData?.amc_services,\n formData?.amc_services,\n );\n\n // DSP Advertising service and AMC services\n if (\n (formData?.is_dsp_advertising &&\n formData?.is_dsp_advertising !== originalData?.is_dsp_advertising) ||\n addedAMCServices?.length ||\n discountData?.find(\n (item) =>\n item?.is_addendum_discount_changed &&\n item?.amount !== null &&\n item?.type !== null,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the following Advertising Service(s).\n ${renderAddendumAMCServices(addedAMCServices, 'added')}\n `,\n );\n }\n if (\n (!formData?.is_dsp_advertising &&\n formData?.is_dsp_advertising !== originalData?.is_dsp_advertising) ||\n removedAMCServices?.length\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to remove the following Advertising Service(s).\n ${renderAddendumAMCServices(removedAMCServices, 'removed')}\n `,\n );\n }\n\n const setDspAdvertisingEffectiveDate = () => {\n if (formData?.dsp_start_date) {\n return dayjs(formData?.dsp_start_date).format('MM / DD / YYYY');\n }\n return defaultEffectivityDateText;\n };\n\n const mapVatRegistrationTable = (servicesData, type, tableType) => {\n const field = [];\n servicesData.map((item) => {\n field.push(`\n ${\n type === 'internationService' ? item.name : ''\n }\n ${\n type === 'vatRegistration'\n ? `VAT Registration: ${displayMarketplaceName(\n item?.marketplace,\n 'vat',\n 'lhs',\n )}`\n : ''\n } \n ${\n type === 'vatFiling'\n ? `VAT Filing: ${displayMarketplaceName(\n item?.marketplace,\n 'vat',\n 'lhs',\n )} (${item?.frequency})`\n : ''\n } \n \n ${\n tableType === 'added'\n ? `${\n item?.id && item?.effective_date\n ? item?.effective_date\n : item?.id && !item?.effective_date\n ? formData?.contract_signed_date\n : defaultEffectivityDateText\n } `\n : ''\n }\n `);\n return null;\n });\n return field;\n };\n\n const renderNonUSStandardServices = (\n vatReg,\n vatFiling,\n internationService,\n tableType,\n ) => {\n const returnData = [];\n returnData.push(\n `
    \n \n \n \n ${tableType === 'added' ? `` : ''}\n \n \n ${\n vatReg?.length\n ? mapVatRegistrationTable(vatReg, 'vatRegistration', tableType)\n : ''\n }\n ${\n vatFiling?.length\n ? mapVatRegistrationTable(vatFiling, 'vatFiling', tableType)\n : ''\n }\n ${\n internationService?.length\n ? mapVatRegistrationTable(\n internationService,\n 'internationService',\n tableType,\n )\n : ''\n }\n
    ServicesEffective Date
    \n
    `,\n );\n return returnData;\n };\n\n const showDspAgencyFees = (param1, param2) => {\n if (param1?.value) {\n return `${(param2?.value !== param1?.value\n ? `
  • Agency Fee from ${\n param2?.value >= 0\n ? `${param2?.value}%`\n : param2\n ? `${param2}%`\n : 0\n } to ${\n param1?.value >= 0\n ? `${param1?.value}%`\n : param1\n ? `${param1}%`\n : 0\n }
  • `\n : ''\n ).replaceAll('[object Object]', 0)}`;\n }\n if (!param1?.value) {\n return `${((!param2?.value ? 0 : param2?.value) !==\n (!param1 ? 0 : param1)\n ? `
  • Agency Fee from ${\n param2?.value ? `${param2?.value}%` : param2 ? `${param2}%` : 0\n } to ${\n `${param1}%` ? `${param1}%` : 0\n }
  • `\n : ''\n ).replaceAll('[object Object]', 0)}`;\n }\n return '';\n };\n\n // Display result if Standard non us services are added\n if (\n uniqueNonUsServices?.length ||\n addedVatFillingNonUsServices?.length ||\n addedInternationalNonUsServices?.length\n ) {\n fields.push(`• The Service Order / Statement of Work is updated to add the following Standard Services\n (for non-us marketplaces).\n ${renderNonUSStandardServices(\n uniqueNonUsServices,\n addedVatFillingNonUsServices,\n addedInternationalNonUsServices,\n 'added',\n )}\n `);\n }\n\n // Display result if standard non us services are removed\n if (\n removedNonUsServices?.length ||\n removedVatFillingNonUsServices?.length ||\n remmovedInternationalNonUsServices?.length\n ) {\n fields.push(`• The Service Order / Statement of Work is updated to remove the following Standard Services (for non-us marketplaces). This change is effective on the addendum signature date.\n ${renderNonUSStandardServices(\n removedNonUsServices,\n removedVatFillingNonUsServices,\n remmovedInternationalNonUsServices,\n 'removed',\n )}\n `);\n }\n\n // if dsp Advertising\n if (\n originalData?.dsp_fee !== formData?.dsp_fee ||\n formData?.dsp_one_time_fee !== originalData?.dsp_one_time_fee ||\n (formData?.is_dynamic_dsp_fee &&\n (originalData?.dsp_fee_second !== formData?.dsp_fee_second ||\n originalData?.dsp_fee_third !== formData?.dsp_fee_third)) ||\n (originalData?.dsp_length?.value\n ? originalData?.dsp_length?.value\n : 0) !==\n (formData?.dsp_length?.value\n ? formData?.dsp_length?.value\n : formData?.dsp_length\n ? formData?.dsp_length\n : 0) ||\n (originalData?.agency_fee?.value\n ? originalData?.agency_fee?.value\n : 0) !==\n (formData?.agency_fee?.value\n ? formData?.agency_fee?.value\n : formData?.agency_fee\n ? formData?.agency_fee\n : 0)\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the following DSP Advertising, for \n
      ${\n formData?.is_dynamic_dsp_fee\n ? displayDynamicDspFeesForAddendum()\n : displayDspFeesForAddendum()\n }\n ${\n formData?.dsp_one_time_fee !== originalData?.dsp_one_time_fee\n ? // dsp service length (MONTHS), field, in DSP Advertising\n showOneTimeBudget(formData?.dsp_fee, originalData?.dsp_fee)\n : ''\n }\n ${\n formData?.contract_type?.toLowerCase()?.includes('recurring')\n ? // dsp service length (MONTHS), field, in DSP Advertising\n showDspLength(formData?.dsp_fee, originalData?.dsp_fee)\n : ''\n }\n ${showDspAgencyFees(\n formData?.agency_fee,\n originalData?.agency_fee,\n )}
    This change is effective from ${setDspAdvertisingEffectiveDate()}.
    .\n `,\n );\n }\n\n if (\n originalData?.changed_dsp_start_date !==\n formData?.changed_dsp_start_date ||\n originalData?.one_time_budget_distribution_equally !==\n formData?.one_time_budget_distribution_equally ||\n originalData?.dsp_one_time_fee !== formData?.dsp_one_time_fee\n ) {\n let dspMarketplaceOfOriginalContract = null;\n if (formData?.dsp_marketplaces && originalData?.dsp_marketplaces) {\n for (const marketplace of formData?.dsp_marketplaces) {\n for (const originaldataDspMarketplace of originalData?.dsp_marketplaces) {\n if (\n originaldataDspMarketplace?.country_currency?.country ===\n marketplace?.country_currency?.country\n ) {\n dspMarketplaceOfOriginalContract = originaldataDspMarketplace;\n }\n }\n if (\n Number(dspMarketplaceOfOriginalContract?.one_time_budget) !==\n Number(marketplace?.one_time_budget)\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the following One time Budget Allocation , for ${\n marketplace?.country_currency?.country\n ? marketplace?.country_currency?.country\n : displayMarketplaceName(marketplace?.name, '', '')\n } Marketplace, for\n
      ${displayOneTimebudgetAllocation(marketplace)}\n
    This change is effective from ${setDspAdvertisingEffectiveDate()}.
    .\n `,\n );\n }\n }\n }\n }\n\n if (\n (originalData?.dsp_fee !== formData?.dsp_fee ||\n (formData?.is_dynamic_dsp_fee &&\n (originalData?.dsp_fee_second !== formData?.dsp_fee_second ||\n originalData?.dsp_fee_third !== formData?.dsp_fee_third))) &&\n formData?.dsp_marketplaces\n ) {\n for (const marketplace of formData?.dsp_marketplaces) {\n let dspMarketplaceOfOriginalContract = null;\n if (originalData?.dsp_marketplaces) {\n for (const originaldataDspMarketplace of originalData?.dsp_marketplaces) {\n if (\n originaldataDspMarketplace?.country_currency?.country ===\n marketplace?.country_currency?.country\n ) {\n dspMarketplaceOfOriginalContract = originaldataDspMarketplace;\n }\n }\n }\n if (\n Number(dspMarketplaceOfOriginalContract?.monthly_budget) !==\n Number(marketplace?.monthly_budget) ||\n Number(dspMarketplaceOfOriginalContract?.monthly_budget_second) !==\n Number(marketplace?.monthly_budget_second) ||\n Number(dspMarketplaceOfOriginalContract?.monthly_budget_third) !==\n Number(marketplace?.monthly_budget_third)\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the following Monthly Budget Allocation , for ${\n marketplace?.country_currency?.country\n ? marketplace?.country_currency?.country\n : displayMarketplaceName(marketplace?.name, '', '')\n } Marketplace, for\n
      ${\n formData?.is_dynamic_dsp_fee\n ? displayDynamicMonthlyBudgetAllocation(marketplace)\n : displayDynamicMonthlyBudgetAllocation(marketplace)\n }\n
    This change is effective from ${setDspAdvertisingEffectiveDate()}.
    .\n `,\n );\n }\n }\n }\n\n // if dsp marketplaces\n const serviceAddedResult = getDifference(\n formData?.dsp_marketplaces,\n originalData?.dsp_marketplaces,\n 'marketplace',\n );\n const serviceRemovedResult = getDifference(\n originalData?.dsp_marketplaces,\n formData?.dsp_marketplaces,\n 'marketplace',\n );\n\n if (serviceAddedResult?.length || serviceRemovedResult?.length) {\n fields.push(\n `
    \n DSP Marketplaces
    `,\n );\n }\n if (serviceAddedResult?.length) {\n fields.push(` • The Service Order / Statement of Work is updated to add the following DSP marketplaces, This change is effective from ${setDspAdvertisingEffectiveDate()}.
    .\n
      \n ${displayMonthlyServices(serviceAddedResult, 'dsp')}\n
    `);\n }\n\n if (serviceRemovedResult?.length) {\n fields.push(\n `• The Service Order / Statement of Work is updated to remove the following DSP marketplaces, This change is effective on the addendum signature date.\n
      \n ${displayMonthlyServices(serviceRemovedResult, 'dsp')}
    \n `,\n );\n }\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll('.,', '.')\n .replaceAll(' ,', '')\n .replaceAll('•', '
    •')\n .replaceAll(',
    ', '
    ')\n .replaceAll(',
    ', '')\n : '';\n };\n\n // handle contract addedndum changes\n const contractAddendumChanges = () => {\n if (contractAddendumDetails?.notActive) {\n if (formData?.seller_type?.label === 'Hybrid') {\n return `${accountContractAddendum('seller')}\n ${accountContractAddendum('vendor')} ${nonAccountContractAddendum()}`;\n }\n if (formData?.seller_type?.label === 'Seller') {\n return `${accountContractAddendum(\n 'seller',\n )} ${nonAccountContractAddendum()}`;\n }\n if (formData?.seller_type?.label === 'Vendor') {\n return `${accountContractAddendum(\n 'vendor',\n )} ${nonAccountContractAddendum()}`;\n }\n if (formData?.contract_type?.includes('dsp')) {\n return ` ${nonAccountContractAddendum()}`;\n }\n }\n return '';\n };\n\n return (\n
    \n \n \n {showEditor ? displayEditor() : ''}\n\n {showEditor ? (\n ''\n ) : (\n \n )}\n\n \n \n
    \n );\n}\n\nAddendum.defaultProps = {\n formData: {},\n templateData: {},\n newAddendumData: {},\n setNewAddendum: () => {},\n showEditor: false,\n setUpdatedFormData: () => {},\n updatedFormData: {},\n contractAddendumDetails: {},\n originalData: {},\n selectedCurrency: '$ (USD)',\n getServicesAccordingToAccType: () => {},\n mapMonthlyServices: () => {},\n mapAdditionalMarketPlaces: () => {},\n mapMonthlyServiceTotal: () => {},\n mapVariableMonthlyService: () => {},\n displayMarketplaceName: () => {},\n setVatMarketplaces: () => {},\n discountData: [],\n displayBBELogo: () => {},\n startDate: '',\n firstMonthDate: '',\n secondMonthDate: '',\n thirdMonthDate: '',\n returnDspMonthlyDates: () => {},\n getAddedOrRemovedAMCServices: () => {},\n};\n\nAddendum.propTypes = {\n formData: shape({\n length: oneOfType([\n string,\n shape({\n value: string,\n label: string,\n }),\n ]),\n primary_marketplace: oneOfType([\n string,\n shape({\n fee: number,\n name: string,\n id: string,\n }),\n ]),\n customer_id: shape({\n address: string,\n city: string,\n state: string,\n zip_code: string,\n }),\n }),\n templateData: shape({\n addendum: arrayOf(string),\n }),\n newAddendumData: shape({\n addendum: string,\n id: string,\n }),\n setNewAddendum: func,\n showEditor: bool,\n setUpdatedFormData: func,\n updatedFormData: shape({\n additional_services: arrayOf(arrayOf(shape({}))),\n company_name: string,\n primary_marketplace: oneOfType([\n string,\n shape({\n fee: number,\n name: string,\n id: string,\n }),\n ]),\n additional_marketplaces: oneOfType([object, arrayOf(object)]),\n additional_monthly_services: oneOfType([object, arrayOf(object)]),\n additional_one_time_services: oneOfType([object, arrayOf(object)]),\n quantity: number,\n }),\n contractAddendumDetails: shape({}),\n originalData: shape({}),\n selectedCurrency: string,\n getServicesAccordingToAccType: func,\n mapMonthlyServices: func,\n mapAdditionalMarketPlaces: func,\n mapMonthlyServiceTotal: func,\n mapVariableMonthlyService: func,\n displayMarketplaceName: func,\n setVatMarketplaces: func,\n discountData: arrayOf(shape({})),\n displayBBELogo: func,\n startDate: instanceOf(Date),\n firstMonthDate: instanceOf(Date),\n secondMonthDate: instanceOf(Date),\n thirdMonthDate: instanceOf(Date),\n returnDspMonthlyDates: func,\n getAddedOrRemovedAMCServices: func,\n};\n","// Add quamma seperator in a number\nconst displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n};\n\n// Show Infographics and A+ content in a table row\n// Hardcoded code for Onetimeservice subtab starts\n\n// export const oneTimeSpecificServices = (formData, serviceName) => {\n// return formData?.additional_one_time_services?.filter((service) =>\n// service?.name\n// ? service?.name?.includes(serviceName)\n// : service?.service?.name?.includes(serviceName),\n// );\n// };\n\n// export const oneTimeSpecificServicesFees = (servicesFees, serviceName) => {\n// return servicesFees?.filter((service) =>\n// service?.name\n// ? service?.name?.includes(serviceName)\n// : service?.service?.name?.includes(serviceName),\n// );\n// };\n\n// export const oneTimeOneService = (services, serviceName) => {\n// return services?.find((item) =>\n// item?.name\n// ? item?.name?.includes(serviceName)\n// : item?.service?.name?.includes(serviceName),\n// );\n// };\n\n// export const oneTimeOneServiceFee = (services, serviceName) => {\n// return services?.find((fees) => fees?.name === serviceName);\n// };\n\n// export const amazonStorefrontRow = (\n// formData,\n// servicesFees,\n// serviceName,\n// selectedCurrency,\n// ) => {\n// const amazonStorefrontServices = oneTimeSpecificServices(\n// formData,\n// serviceName,\n// );\n\n// const amazonStorefrontServicesFees = oneTimeSpecificServicesFees(\n// servicesFees,\n// serviceName,\n// );\n\n// const homePage = oneTimeOneService(\n// amazonStorefrontServices,\n// 'Amazon Storefront Home Page',\n// );\n\n// const homePageFee = oneTimeOneServiceFee(\n// amazonStorefrontServicesFees,\n// 'Amazon Storefront Home Page',\n// );\n\n// const storefrontTab = oneTimeOneService(\n// amazonStorefrontServices,\n// 'Amazon Storefront Tab',\n// );\n\n// const storefrontTabFee = oneTimeOneServiceFee(\n// amazonStorefrontServicesFees,\n// 'Amazon Storefront Tab',\n// );\n\n// const storefrontSubTab = oneTimeOneService(\n// amazonStorefrontServices,\n// 'Amazon Storefront Sub Tab',\n// );\n\n// const storefrontSubTabFee = oneTimeOneServiceFee(\n// amazonStorefrontServicesFees,\n// 'Amazon Storefront Sub Tab',\n// );\n// return amazonStorefrontServices?.length\n// ? `\n// \n// \n\n// ${\n// amazonStorefrontServices && amazonStorefrontServices.length ? '1' : ''\n// }\n// \n// \n// \n\n// Amazon Storefront ( ${\n// homePage ? `${homePage?.quantity}` : '0'\n// } Home Page + ${\n// storefrontTab ? `${storefrontTab?.quantity}` : '0'\n// } Storefront Tab(s) + ${\n// storefrontSubTab ? `${storefrontSubTab?.quantity}` : '0'\n// } Storefront Sub Tab(s))\n\n// \n// \n// \n\n// ${\n// homePage?.quantity ? `${homePage?.quantity}` : 0\n// } (${selectedCurrency}${displayNumber(homePageFee?.fee)})\n// +\n// ${\n// storefrontTab?.quantity ? `${storefrontTab?.quantity}` : 0\n// } (${selectedCurrency}${displayNumber(storefrontTabFee?.fee)})\n// +\n// ${\n// storefrontSubTab?.quantity ? `${storefrontSubTab?.quantity}` : 0\n// } (${selectedCurrency}${displayNumber(storefrontSubTabFee?.fee)})\n\n// \n// \n// \n// \n// ${selectedCurrency}${displayNumber(\n// (homePage?.quantity ? homePage?.quantity * homePageFee?.fee : 0) +\n// (storefrontTab?.quantity\n// ? storefrontTab?.quantity * storefrontTabFee?.fee\n// : 0) +\n// (storefrontSubTab?.quantity\n// ? storefrontSubTab?.quantity * storefrontSubTabFee?.fee\n// : 0),\n// )}\n// \n// `\n// : '';\n// };\n\n// export const infographicsRow = (\n// formData,\n// servicesFees,\n// serviceName,\n// selectedCurrency,\n// ) => {\n// const infographicsServices = oneTimeSpecificServices(formData, serviceName);\n// const infographicsServicesFees = oneTimeSpecificServicesFees(\n// servicesFees,\n// serviceName,\n// );\n\n// const infographicsOriginalServices = oneTimeOneService(\n// infographicsServices,\n// 'Infographics Original',\n// );\n// const infographicsOriginalServicesFee = oneTimeOneServiceFee(\n// infographicsServicesFees,\n// 'Infographics Original',\n// );\n\n// const infographicsVariationServices = oneTimeOneService(\n// infographicsServices,\n// 'Infographics Variation',\n// );\n// const infographicsVariationServicesFees = oneTimeOneServiceFee(\n// infographicsServicesFees,\n// 'Infographics Variation',\n// );\n\n// return infographicsServices?.length\n// ? `\n// \n// \n\n// ${infographicsServices?.length ? '1' : ''}\n// \n// \n// \n\n// Infographics ( ${\n// infographicsOriginalServices\n// ? `${infographicsOriginalServices?.quantity}`\n// : '0'\n// } Original(s) + ${\n// infographicsVariationServices\n// ? `${infographicsVariationServices?.quantity}`\n// : '0'\n// } Variation(s))\n\n// \n// \n// \n\n// ${\n// infographicsOriginalServices?.quantity\n// ? `${infographicsOriginalServices?.quantity}`\n// : 0\n// } (${selectedCurrency}${displayNumber(\n// infographicsOriginalServicesFee?.fee,\n// )})\n// +\n// ${\n// infographicsVariationServices?.quantity\n// ? `${infographicsVariationServices?.quantity}`\n// : 0\n// } (${selectedCurrency}${displayNumber(\n// infographicsVariationServicesFees?.fee,\n// )})\n// \n// \n// \n// \n// ${selectedCurrency}${displayNumber(\n// (infographicsOriginalServices?.quantity\n// ? infographicsOriginalServices?.quantity *\n// infographicsOriginalServicesFee?.fee\n// : 0) +\n// (infographicsVariationServices?.quantity\n// ? infographicsVariationServices?.quantity *\n// infographicsVariationServicesFees?.fee\n// : 0),\n// )}\n// \n// `\n// : ``;\n// };\n\n// export const aPlusContentRow = (\n// formData,\n// servicesFees,\n// serviceName,\n// selectedCurrency,\n// ) => {\n// const aPlusContentServices = oneTimeSpecificServices(formData, serviceName);\n\n// const aPlusContentServicesFees = oneTimeSpecificServicesFees(\n// servicesFees,\n// serviceName,\n// );\n\n// const aPlusOriginal = oneTimeOneService(aPlusContentServices, 'A+ Original');\n\n// const aPlusOriginalFees = oneTimeOneServiceFee(\n// aPlusContentServicesFees,\n// 'A+ Original',\n// );\n\n// const aPlusSimilar = oneTimeOneService(aPlusContentServices, 'A+ Similar');\n\n// const aPlusSimilarFees = oneTimeOneServiceFee(\n// aPlusContentServicesFees,\n// 'A+ Similar',\n// );\n\n// const premiumAPlusContentOriginal = oneTimeOneService(\n// aPlusContentServices,\n// 'Premium A+ Content Original',\n// );\n\n// const premiumAPlusContentOriginalFees = oneTimeOneServiceFee(\n// aPlusContentServicesFees,\n// 'Premium A+ Content Original',\n// );\n// const premiumAPlusContentVariation = oneTimeOneService(\n// aPlusContentServices,\n// 'Premium A+ Content Variation',\n// );\n\n// const premiumAPlusContentVariationFees = oneTimeOneServiceFee(\n// aPlusContentServicesFees,\n// 'Premium A+ Content Variation',\n// );\n// return aPlusContentServices?.length\n// ? `\n// \n// \n\n// ${aPlusContentServices?.length ? '1' : ''}\n// \n// \n// \n\n// A+ Content ( ${\n// aPlusOriginal ? `${aPlusOriginal?.quantity}` : '0'\n// } Original(s) + ${\n// aPlusSimilar ? `${aPlusSimilar?.quantity}` : '0'\n// } Similar(s) + ${\n// premiumAPlusContentOriginal\n// ? `${premiumAPlusContentOriginal?.quantity}`\n// : '0'\n// } Premium Original(s) + ${\n// premiumAPlusContentVariation\n// ? `${premiumAPlusContentVariation?.quantity}`\n// : '0'\n// } Premium Variation(s))\n\n// \n// \n// \n\n// ${\n// aPlusOriginal?.quantity ? `${aPlusOriginal?.quantity}` : 0\n// } (${selectedCurrency}${displayNumber(aPlusOriginalFees?.fee)})\n// +\n// ${\n// aPlusSimilar?.quantity ? `${aPlusSimilar?.quantity}` : 0\n// } (${selectedCurrency}${displayNumber(aPlusSimilarFees?.fee)})\n// +\n// ${\n// premiumAPlusContentOriginal?.quantity\n// ? `${premiumAPlusContentOriginal?.quantity}`\n// : 0\n// } (${selectedCurrency}${displayNumber(\n// premiumAPlusContentOriginalFees?.fee,\n// )}) +\n// ${\n// premiumAPlusContentVariation?.quantity\n// ? `${premiumAPlusContentVariation?.quantity}`\n// : 0\n// } (${selectedCurrency}${displayNumber(\n// premiumAPlusContentVariationFees?.fee,\n// )})\n\n// \n// \n// \n// \n// ${selectedCurrency}${displayNumber(\n// (aPlusOriginal?.quantity\n// ? aPlusOriginal?.quantity * aPlusOriginalFees?.fee\n// : 0) +\n// (aPlusSimilar?.quantity\n// ? aPlusSimilar?.quantity * aPlusSimilarFees?.fee\n// : 0) +\n// (premiumAPlusContentOriginal?.quantity\n// ? premiumAPlusContentOriginal?.quantity *\n// premiumAPlusContentOriginalFees?.fee\n// : 0) +\n// (premiumAPlusContentVariation?.quantity\n// ? premiumAPlusContentVariation?.quantity *\n// premiumAPlusContentVariationFees?.fee\n// : 0),\n// )}\n// \n// `\n// : ``;\n// };\n\n// Hardcoded code for Onetimeservice subtab Ends\n// ------------------------------------------------------------------------------------\n\n// Functions to return onetime service subtab values for table row\n// Optimized code for Onetimeservice subtab Starts\n\n// Break the onetime service sub tab names\nexport const oneTimeServiceShortNames = (param) => {\n switch (param) {\n case 'Infographics Original':\n return 'Original(s)';\n case 'Infographics Variation':\n return 'Variation(s)';\n case 'A+ Original':\n return 'Original(s)';\n case 'A+ Similar':\n return 'Similar(s)';\n case 'Premium A+ Content Original':\n return 'Premium Original(s)';\n case 'Premium A+ Content Variation':\n return 'Premium Variation(s)';\n case 'Amazon Storefront Home Page':\n return 'Home Page(s)';\n case 'Amazon Storefront Tab':\n return 'Storefront Tab(s)';\n case 'Amazon Storefront Sub Tab':\n return 'Storefront Sub Tab';\n case 'Enhanced Original':\n return 'Original(s)';\n case 'Enhanced Similar':\n return 'Similar(s)';\n case 'Premium Enhanced Content Variation':\n return 'Premium Variation(s)';\n case 'Premium Enhanced Content Original':\n return 'Premium Original(s)';\n case 'Walmart Storefront Sub Tab':\n return 'Storefront Sub Tab';\n case 'Walmart Storefront Tab':\n return 'Storefront Tab(s)';\n case 'Walmart Storefront Home Page':\n return 'Home Page(s)';\n default:\n return '';\n }\n};\n\nexport const oneTimeSpecificServices = (formData, serviceName) => {\n return formData?.additional_one_time_services?.filter((service) =>\n service?.name\n ? service?.name?.includes(serviceName)\n : service?.service?.name?.includes(serviceName),\n );\n};\n\nexport const oneTimeSpecificServicesFees = (servicesFees, serviceName) => {\n return servicesFees?.filter((service) =>\n service?.name\n ? service?.name?.includes(serviceName)\n : service?.service?.name?.includes(serviceName),\n );\n};\n\nexport const returnOneTimeServiceNames = (param) => {\n let serviceNames = param?.map((item) => {\n if (item?.quantity)\n return `${`${item?.quantity} ${oneTimeServiceShortNames(\n item?.name ? item?.name : item?.service?.name,\n )}`}`;\n return null;\n });\n if (serviceNames?.length) {\n serviceNames = serviceNames?.filter(Boolean);\n }\n return `(${serviceNames?.toString().replaceAll(',', ' + ')})`;\n};\n\nexport const returnServiceFees = (servicesFees, serviceName) => {\n const itemFees = servicesFees?.filter((item1) =>\n serviceName === item1?.name ? item1?.fee : '',\n );\n if (itemFees?.length) return itemFees[0]?.fee;\n return '';\n};\n\nexport const returnOneTimeServiceFees = (\n servicesFees,\n selectedCurrency,\n service,\n) => {\n let serviceFees = service?.map((item) => {\n if (item?.quantity) {\n return ` ${item?.quantity} (${selectedCurrency}${displayNumber(\n returnServiceFees(servicesFees, item?.name || item?.service?.name),\n )})`;\n }\n return null;\n });\n if (serviceFees?.length) {\n serviceFees = serviceFees?.filter(Boolean);\n }\n return `${serviceFees?.toString().replaceAll(', ', ' + ')}`;\n};\n\nexport const returnOneTimeServiceFeesTotal = (\n servicesFees,\n selectedCurrency,\n service,\n) => {\n const serviceFeesTotal = service?.map((item) => {\n return `${\n item?.quantity\n ? item?.quantity *\n returnServiceFees(servicesFees, item?.name || item?.service?.name)\n : 0\n }`;\n });\n // eslint-disable-next-line no-unused-vars\n const sum = serviceFeesTotal.reduce((a, b) => a + b, 0);\n return `${selectedCurrency}${displayNumber(\n serviceFeesTotal?.reduce((a, b) => parseInt(a, 10) + parseInt(b, 10), 0),\n )}`;\n};\n\n// Optimized code for Onetimeservice subtab Ends\n","/* eslint-disable react/no-danger */\n\nimport React from 'react';\n\nimport dayjs from 'dayjs';\nimport {\n string,\n number,\n func,\n oneOfType,\n arrayOf,\n shape,\n instanceOf,\n} from 'prop-types';\n\nimport { AgreementParagraph } from '../../../theme/AgreementStyle';\nimport { DigitalSignature } from '../../../theme/images';\nimport {\n RecurringLanguage,\n Recurring90DaysLanguage,\n thadDetails,\n oneTimeServicesHavingSubType,\n} from '../../../constants';\n\nimport {\n oneTimeSpecificServices,\n oneTimeSpecificServicesFees,\n returnOneTimeServiceNames,\n returnOneTimeServiceFees,\n returnOneTimeServiceFeesTotal,\n} from '../../../common/OneTimeServiceSubTabFunctions';\n\nexport default function Agreement({\n formData,\n details,\n templateData,\n servicesFees,\n discountData,\n mapServiceTotal,\n selectedCurrency,\n displayBBELogo,\n startDate,\n}) {\n const customerId = formData?.customer_id;\n const customerAddress = customerId?.address;\n const customerState = customerId?.state;\n const customerCity = customerId?.city;\n const customerZipCode = customerId?.zip_code;\n const contractType = details?.contract_type;\n\n const displayNumber = (num) => {\n const res = num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n const mapDefaultValues = (key, label) => {\n if (key === 'company_name') {\n return customerId && formData.customer_id[key]\n ? customerId && formData.customer_id[key]\n : `Client Name`;\n }\n if (key === 'length') {\n return formData?.length?.label\n ? formData.length.label\n : formData.length\n ? formData.length\n : 'Select Length';\n }\n if (key === 'start_date') {\n return startDate !== null\n ? dayjs(startDate).format('MM / DD / YYYY')\n : 'Select Date';\n }\n if (key === 'current_date') {\n return dayjs(Date()).format('MM / DD / YYYY');\n }\n\n if (key === 'address') {\n if (\n (customerAddress === '' || customerAddress === null) &&\n (customerState === '' || customerState === null) &&\n (customerCity === '' || customerCity === null) &&\n (customerZipCode === '' || customerZipCode === null)\n ) {\n return `Enter Location`;\n }\n return `${customerAddress || ''}${\n customerAddress && (customerState || customerCity || customerZipCode)\n ? ','\n : ''\n }\n ${customerCity || ''}${\n customerCity && (customerState || customerZipCode) ? ',' : ''\n }\n ${customerState || ''}${customerState && customerZipCode ? ',' : ''}\n ${customerZipCode || ''}\n `;\n }\n if (\n formData[key] === undefined ||\n formData[key] === '' ||\n formData[key] === null\n ) {\n return key === 'company_name' ? `Client Name` : `Enter ${label}`;\n }\n return formData[key];\n };\n const getAgreementAccorType = (index) => {\n const OTSA = templateData?.one_time_service_agreement;\n if (contractType?.toLowerCase()?.includes('one')) {\n return OTSA && templateData.one_time_service_agreement[index];\n }\n return OTSA && templateData.recurring_service_agreement[index];\n };\n\n const customAmazonStorePrice = (fee) => {\n return `\n \n ${\n fee\n ? `${selectedCurrency}${displayNumber(fee)}`\n : `${selectedCurrency}0`\n }\n \n `;\n };\n const tdService = (service, fee) => {\n return `\n \n ${\n service.quantity && fee\n ? `${selectedCurrency}${displayNumber(service.quantity * fee)}`\n : `${selectedCurrency}0`\n }\n \n \n `;\n };\n\n // return the onetime service table row\n const showOneTimeServiceSubTabRow = (fields, serviceName) => {\n const oneTimeSpecificServicesTemp = oneTimeSpecificServices(\n formData,\n serviceName,\n );\n const oneTimeSpecificServicesFeesTemp = oneTimeSpecificServicesFees(\n servicesFees,\n serviceName,\n );\n\n if (oneTimeSpecificServicesTemp?.length)\n fields.push(`\n \n \n\n ${oneTimeSpecificServicesTemp?.length ? '1' : ''}\n \n \n \n ${\n serviceName === 'A+'\n ? 'A+ Content'\n : serviceName === 'Enhanced'\n ? 'Enhanced Content'\n : serviceName\n } ${returnOneTimeServiceNames(oneTimeSpecificServicesTemp)}\n \n \n \n ${returnOneTimeServiceFees(\n servicesFees,\n selectedCurrency,\n oneTimeSpecificServicesTemp,\n oneTimeSpecificServicesFeesTemp,\n )}\n\n \n \n \n \n ${returnOneTimeServiceFeesTotal(\n servicesFees,\n selectedCurrency,\n oneTimeSpecificServicesTemp,\n oneTimeSpecificServicesFeesTemp,\n )}\n\n \n `);\n };\n\n const mapMonthlyServices = () => {\n const fields = [];\n if (formData?.additional_one_time_services) {\n formData.additional_one_time_services\n .filter((item) =>\n item?.name\n ? !oneTimeServicesHavingSubType.includes(item?.name)\n : !oneTimeServicesHavingSubType.includes(item?.service?.name),\n )\n .forEach((service) => {\n const fixedFee = servicesFees?.filter(\n (n) => n.id === service.service_id,\n );\n return fields.push(\n `\n \n \n ${service.quantity ? displayNumber(service.quantity) : 0}\n \n \n \n ${\n service.name\n ? service.name\n : service.service?.name\n ? service.service.name\n : ''\n }\n \n ${\n (\n service?.name\n ? service.name.includes('Amazon Store Package Custom')\n : service?.service?.name.includes(\n 'Amazon Store Package Custom',\n )\n )\n ? service.custom_amazon_store_price\n ? `\n \n ${selectedCurrency}${displayNumber(\n service.custom_amazon_store_price,\n )} \n `\n : customAmazonStorePrice(\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n : service?.service?.fee\n ? customAmazonStorePrice(service?.service?.fee)\n : customAmazonStorePrice(\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n }\n ${\n (\n service?.name\n ? service.name !== 'Amazon Store Package Custom'\n : service?.service?.name !==\n 'Amazon Store Package Custom'\n )\n ? service.quantity && service.service?.fee\n ? tdService(service, service.service?.fee)\n : tdService(\n service,\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n : service.quantity && service.custom_amazon_store_price\n ? tdService(service, service.custom_amazon_store_price)\n : tdService(\n service,\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n } \n `,\n );\n });\n showOneTimeServiceSubTabRow(fields, 'Amazon Storefront');\n showOneTimeServiceSubTabRow(fields, 'Infographics');\n showOneTimeServiceSubTabRow(fields, 'A+');\n showOneTimeServiceSubTabRow(fields, 'Enhanced');\n showOneTimeServiceSubTabRow(fields, 'Walmart Storefront');\n }\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll(',,', '')\n .replaceAll(',,,', '')\n : '';\n };\n\n // /static/media/Digital-Sig.633ece57.png\n const mapThadSignImg = () => {\n const data = `

    \n \n \n \n

    `;\n return data;\n };\n\n const calculateTodalFee = (type) => {\n let oneTimeSubTotal = 0;\n let oneTimeDiscount = 0;\n\n if (formData) {\n if (\n type === 'onetime' &&\n formData.additional_one_time_services !== null\n ) {\n formData.additional_one_time_services.forEach((item) => {\n const { quantity } = item;\n\n if (item.custom_amazon_store_price) {\n oneTimeSubTotal += item.custom_amazon_store_price * quantity;\n } else if (item?.service) {\n oneTimeSubTotal += item.service.fee * quantity;\n } else {\n let fixedFee = servicesFees.filter((n) => n.id === item.service_id);\n fixedFee =\n fixedFee && fixedFee[0] && fixedFee[0].fee ? fixedFee[0].fee : 0;\n oneTimeSubTotal += fixedFee * quantity;\n }\n });\n\n const oneTimeDiscountData = discountData.find(\n (item) => item.service_type === 'one time service',\n );\n\n if (oneTimeDiscountData !== null) {\n const discountType = oneTimeDiscountData?.type;\n if (discountType === 'percentage') {\n oneTimeDiscount =\n (oneTimeSubTotal * oneTimeDiscountData?.amount) / 100;\n } else if (discountType === 'fixed amount') {\n oneTimeDiscount = oneTimeDiscountData?.amount;\n }\n } else {\n oneTimeDiscount = oneTimeDiscountData?.amount;\n }\n\n return {\n oneTimeSubTotal,\n oneTimeAmountAfterDiscount: oneTimeDiscount,\n oneTimeTotal: oneTimeSubTotal - oneTimeDiscount,\n oneTimeDiscountType: formData.one_time_discount_type,\n oneTimeDiscount: formData.one_time_discount_amount,\n };\n }\n }\n return 0;\n };\n const mapOnetimeServiceTotal = () => {\n const totalFees = calculateTodalFee('onetime');\n return `\n ${\n totalFees?.oneTimeAmountAfterDiscount\n ? `\n Sub-total\n \n \n ${selectedCurrency}${displayNumber(totalFees?.oneTimeSubTotal)}\n \n \n `\n : ''\n }\n ${\n totalFees?.oneTimeAmountAfterDiscount\n ? `\n Discount \n ${\n totalFees?.oneTimeAmountAfterDiscount &&\n totalFees?.oneTimeDiscountType === 'percentage'\n ? `(${totalFees?.oneTimeDiscount}%)`\n : ''\n }\n \n \n \n -${selectedCurrency}${displayNumber(\n totalFees?.oneTimeAmountAfterDiscount,\n )}\n \n \n `\n : ''\n }\n \n Total\n \n \n ${selectedCurrency}${displayNumber(\n totalFees?.oneTimeTotal?.toFixed(2),\n )} \n \n \n \n `;\n };\n\n const showOneTimeServiceTable = () => {\n if (formData?.additional_one_time_services?.length) {\n return `
    \n \n \n \n \n \n \n \n ${mapMonthlyServices(\n 'additional_one_time_services',\n 'One Time Services',\n )}\n ${mapOnetimeServiceTotal()}\n
    QuantityServiceService FeeTotal Service Fee
    \n
    `;\n }\n return '';\n };\n\n const mapLanguage = () => {\n if (contractType?.toLowerCase()?.includes('recurring (90 day notice)')) {\n return Recurring90DaysLanguage;\n }\n return RecurringLanguage;\n };\n\n return (\n <>\n \n \n\n \n \n \n );\n}\n\nAgreement.defaultProps = {\n formData: {},\n details: {},\n templateData: {},\n servicesFees: {},\n discountData: [],\n mapServiceTotal: () => {},\n selectedCurrency: '$ (USD)',\n displayBBELogo: () => {},\n startDate: '',\n};\n\nAgreement.propTypes = {\n details: shape({\n length: oneOfType([\n string,\n shape({\n value: string,\n label: string,\n }),\n ]),\n contract_type: string,\n one_time_discount_type: string,\n one_time_discount_amount: number,\n total_fee: shape({\n additional_marketplaces: number,\n monthly_service: number,\n onetime_service: number,\n onetime_service_after_discount: number,\n onetime_service_discount: number,\n }),\n primary_marketplace: oneOfType([\n string,\n shape({\n fee: number,\n name: string,\n id: string,\n }),\n ]),\n additional_marketplaces: arrayOf(\n shape({\n service: shape({\n name: string,\n fee: number,\n }),\n }),\n ),\n additional_one_time_services: arrayOf(\n shape({\n service: shape({\n name: string,\n fee: number,\n }),\n }),\n ),\n additional_monthly_services: arrayOf(\n shape({\n service: shape({\n name: string,\n fee: number,\n }),\n }),\n ),\n }),\n formData: shape({\n length: oneOfType([\n string,\n shape({\n value: string,\n label: string,\n }),\n ]),\n sales_threshold: string,\n additional_one_time_services: arrayOf(shape({})),\n customer_id: shape({\n address: string,\n city: string,\n state: string,\n zip_code: string,\n }),\n one_time_discount_type: oneOfType([string, number]),\n one_time_discount_amount: oneOfType([string, number]),\n }),\n templateData: shape({\n addendum: arrayOf(string),\n statement_of_work: arrayOf(string),\n one_time_service_agreement: arrayOf(string),\n recurring_service_agreement: arrayOf(string),\n }),\n servicesFees: arrayOf(\n shape({\n fee: number,\n filter: func,\n }),\n ),\n discountData: arrayOf(shape({})),\n mapServiceTotal: func,\n selectedCurrency: string,\n displayBBELogo: func,\n startDate: instanceOf(Date),\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable react/no-danger */\n\nimport React from 'react';\n\nimport dayjs from 'dayjs';\nimport {\n string,\n func,\n oneOfType,\n arrayOf,\n shape,\n instanceOf,\n} from 'prop-types';\n\nimport { DspAddendumParagraph } from '../../../theme/AgreementStyle';\nimport { DigitalSignature } from '../../../theme/images';\nimport { thadDetails } from '../../../constants';\n\nexport default function DSPAddendum({\n formData,\n templateData,\n firstMonthDate,\n secondMonthDate,\n thirdMonthDate,\n endMonthDate,\n selectedCurrency,\n displayFirstMonthDateRange,\n returnDspMonthlyDates,\n returnDspMonthAndDays,\n displayMarketplaceName,\n displayBBELogo,\n startDate,\n mapMonthlyServices,\n mapMonthlyServiceTotal,\n}) {\n const handleNewDate = (monthDateOrder) => {\n const newDate = new Date(\n new Date(\n new Date(monthDateOrder).getFullYear(),\n new Date(monthDateOrder).getMonth() + 1,\n 0,\n ),\n );\n return newDate;\n };\n\n const calculateTotalDays = (flag = '') => {\n let firstMonthdays = 0;\n if (new Date(firstMonthDate).getDate() !== 1) {\n const totalDays = handleNewDate(firstMonthDate).getDate();\n const currentDate = new Date(firstMonthDate).getDate();\n firstMonthdays = totalDays - currentDate;\n } else {\n firstMonthdays = handleNewDate(firstMonthDate).getDate();\n }\n let extraDays = 0;\n if (new Date(firstMonthDate).getDate() !== 1) {\n extraDays = handleNewDate(endMonthDate).getDate();\n }\n const secondMonthdays = handleNewDate(secondMonthDate).getDate();\n const thirdMonthdays = handleNewDate(thirdMonthDate).getDate();\n const totaldays =\n firstMonthdays + extraDays + secondMonthdays + thirdMonthdays;\n if (flag === 'initial') {\n if (totaldays < 105) {\n return '3';\n }\n return '3.5';\n }\n\n if (totaldays < 105) {\n return `90 days (3 months)`;\n }\n return `105 days (3.5 months)`;\n };\n\n const mapDefaultValues = (key, label, type) => {\n if (key === 'current_date') {\n return dayjs(new Date()).format('MM / DD / YYYY');\n }\n if (key === 'company_name') {\n return formData && formData.customer_id && formData.customer_id[key]\n ? formData && formData.customer_id && formData.customer_id[key]\n : `Client Name`;\n }\n if (key === 'calculated_no_of_days') {\n return calculateTotalDays();\n }\n if (key === 'start_date') {\n return startDate !== null\n ? `${\n startDate && dayjs(startDate).format('MM / DD / YYYY')\n }`\n : 'Select Date';\n }\n\n if (key === 'dsp_length') {\n if (formData?.contract_type?.toLowerCase().includes('dsp')) {\n return calculateTotalDays('initial');\n }\n if (\n formData[key] === undefined ||\n formData[key] === '' ||\n formData[key] === null\n ) {\n return `Enter ${label}`;\n }\n return formData?.dsp_length?.label\n ? parseInt(formData.dsp_length.label, 10)\n : parseInt(formData.dsp_length, 10);\n }\n if (\n formData[key] === undefined ||\n formData[key] === '' ||\n formData[key] === null\n ) {\n if (\n label === 'Dsp Fee' ||\n label === 'Dsp Fee Second' ||\n label === 'Dsp Fee Third'\n ) {\n return `Enter DSP Budget`;\n }\n return `Enter ${label}`;\n }\n\n if (type && type.includes('number')) {\n return `\n \n ${type === 'number-currency' ? selectedCurrency : '%'}${\n formData && formData[key]\n ? `${formData[key].toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`\n : `Enter ${label}.`\n }`;\n }\n return formData[key];\n };\n\n const displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n const mapDspDetails = () => {\n return `\n \n ${\n firstMonthDate\n ? dayjs(firstMonthDate).format('MM-DD-YYYY')\n : 'MM-DD-YYYY'\n }\n \n \n \n ${\n formData?.dsp_length\n ? formData?.dsp_length?.value || formData?.dsp_length\n : `Enter DSP Service Length `\n }\n \n ${\n formData?.is_dynamic_dsp_fee\n ? `\n \n \n DSP_FEE\n \n \n \n \n SECOND_DSP\n \n \n \n \n THIRD_DSP\n \n \n `\n : `\n \n DSP_FEE\n \n `\n }\n ${\n formData?.changed_dsp_start_date\n ? `\n \n DSP_ONE_TIME_FEE\n \n `\n : ''\n }\n `;\n };\n\n const mapBudgetBreakdownTable = () => {\n return ` \n
    \n ${\n formData?.changed_dsp_start_date\n ? ``\n : ``\n } \n \n \n \n ${\n formData?.changed_dsp_start_date\n ? `\n \n DSP_ONE_TIME_FEE\n \n `\n : ''\n }\n \n \n \n ${formData?.is_dynamic_dsp_fee ? 'SECOND_DSP' : 'DSP_FEE'}\n \n\n \n \n ${\n formData?.is_dynamic_dsp_fee\n ? 'THIRD_DSP'\n : 'DSP_FEE'\n }\n\n \n \n \n
    \n ${displayFirstMonthDateRange()} \n ${\n !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1)\n }\n ${\n secondMonthDate\n ? !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(secondMonthDate), 1)\n : 'MM-DD-YYYY'\n }${\n thirdMonthDate\n ? !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(thirdMonthDate), 1)\n : 'MM-DD-YYYY'\n }
    DSP_FEE
    \n
    `;\n };\n\n const mapThadSignImg = () => {\n const data = `

    \n \n \n \n

    `;\n return data;\n };\n\n const renderDspMarketplaces = (marketplaces) => {\n const fields = [];\n for (const item of marketplaces) {\n fields.push(\n `\n \n ${displayMarketplaceName(item?.name, 'dsp', 'lhs')}\n \n `,\n );\n }\n\n return fields;\n };\n\n const renderDspBudgetMarketplaces = (marketplaces) => {\n const fields = [];\n for (const item of marketplaces) {\n fields.push(\n `${\n formData?.changed_dsp_start_date\n ? `\n One Time
    \n \n ${selectedCurrency}${displayNumber(item.one_time_budget || 0)}\n \n `\n : ''\n }\n \n Monthly
    \n \n ${selectedCurrency}${displayNumber(item.monthly_budget || 0)}\n \n `,\n );\n }\n\n return fields;\n };\n const showDynamicBudgetAllocation = () => {\n const fields = [];\n for (const item of formData?.dsp_marketplaces) {\n fields.push(`\n \n \n \n ${displayMarketplaceName(item?.name, 'dsp', 'lhs')}\n\n \n \n \n ${\n formData?.changed_dsp_start_date\n ? `\n \n \n ${selectedCurrency}${displayNumber(item.one_time_budget || 0)}\n \n `\n : ''\n }\n \n\n \n ${selectedCurrency}${displayNumber(item.monthly_budget || 0)}\n \n \n \n\n \n ${selectedCurrency}${displayNumber(item.monthly_budget_second || 0)}\n \n \n \n\n \n ${selectedCurrency}${displayNumber(item.monthly_budget_third || 0)}\n \n \n `);\n }\n return fields;\n };\n\n const displayMarketplace = () => {\n const result = [];\n\n const temp = [...formData?.dsp_marketplaces];\n if (formData?.dsp_marketplaces?.length) {\n if (formData?.is_dynamic_dsp_fee) {\n result.push(\n `DSP Marketplace\n \n ${\n formData?.changed_dsp_start_date\n ? `One Time Ad Budget`\n : ''\n }\n ${\n !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1)\n } ${\n !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(secondMonthDate), 1)\n } ${\n !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(thirdMonthDate), 1)\n }${showDynamicBudgetAllocation()}`,\n );\n } else {\n const formattedData = new Array(Math.ceil(temp.length / 3))\n .fill()\n .map(() => temp.splice(0, 3));\n\n for (const item of formattedData) {\n result.push(`\n ${renderDspMarketplaces(item)} \n ${renderDspBudgetMarketplaces(item)} \n `);\n }\n }\n }\n return result.length ? result.toString().replaceAll('>,', '>') : '';\n };\n\n const displayMarketplacesTable = () => {\n return formData?.dsp_marketplaces?.length\n ? `\n
    \n Marketplace(s) Details
    \n The initial budget for every marketplace will be set in advance by the Parties without adjustments during the initial period (\"Initial Period\") \n based on start date, unless the Client wishes to increase the ad spend from the original budget at any point during that Initial Period. \n The Parties agree that the initial budget breakdown for every marketplace will be as follows:\n
    \n ${displayMarketplace()}\n

    The Agency fee for Amazon DSP advertising is ${\n formData?.agency_fee?.label\n ? formData?.agency_fee?.label\n : `${formData?.agency_fee}%`\n } of ad spend. Amazon charges their own platform and audience fees.

    \n `\n : '';\n };\n const showAMCServiceTable = () => {\n if (formData?.contract_type?.includes('dsp')) {\n if (formData?.is_amc_management) {\n return `
    \n Additional Advertising Services \n
    The following additional monthly services will be provided to Client in addition to the Monthly Retainer.

    \n
    \n \n \n \n \n \n ${mapMonthlyServices('amc_services', formData?.amc_services)}\n ${mapMonthlyServiceTotal(formData?.amc_services, '', '')}\n\n
    ServiceService Fee
    \n
    `;\n }\n return '';\n }\n return '';\n };\n\n return (\n
    \n \n <>\n Start Date\n DSP Service Length\n ${\n formData?.is_dynamic_dsp_fee\n ? `\n \n ${\n !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1)\n }
    Monthly Ad Budget\n \n \n ${\n !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(\n new Date(secondMonthDate),\n 1,\n )\n }
    Monthly Ad Budget\n \n \n ${\n !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(\n new Date(thirdMonthDate),\n 1,\n )\n }
    Monthly Ad Budget\n \n `\n : `\n Monthly Ad Budget\n `\n }\n ${\n formData?.changed_dsp_start_date\n ? `One Time Ad Budget`\n : ``\n } ${mapDspDetails()\n .replaceAll(\n 'DSP_FEE',\n mapDefaultValues(\n 'dsp_fee',\n 'Dsp Fee',\n 'number-currency',\n ),\n )\n .replaceAll(\n 'SECOND_DSP',\n mapDefaultValues(\n 'dsp_fee_second',\n 'Dsp Fee',\n 'number-currency',\n ),\n )\n .replaceAll(\n 'THIRD_DSP',\n mapDefaultValues(\n 'dsp_fee_third',\n 'Dsp Fee',\n 'number-currency',\n ),\n )\n .replace(\n 'DSP_ONE_TIME_FEE',\n mapDefaultValues(\n 'dsp_one_time_fee',\n 'Dsp Fee',\n 'number-currency',\n ),\n )}`,\n )\n .replace(\n 'BUDGET_BREAKDOWN_TABLE',\n `${mapBudgetBreakdownTable()\n .replaceAll(\n 'DSP_FEE',\n mapDefaultValues(\n 'dsp_fee',\n 'Dsp Fee',\n 'number-currency',\n ),\n )\n .replaceAll(\n 'SECOND_DSP',\n mapDefaultValues(\n 'dsp_fee_second',\n 'Dsp Fee',\n 'number-currency',\n ),\n )\n .replaceAll(\n 'THIRD_DSP',\n mapDefaultValues(\n 'dsp_fee_third',\n 'Dsp Fee',\n 'number-currency',\n ),\n )\n .replace(\n 'DSP_ONE_TIME_FEE',\n mapDefaultValues(\n 'dsp_one_time_fee',\n 'Dsp Fee',\n 'number-currency',\n ),\n )}${displayMarketplacesTable().replaceAll(' ,', '')}`,\n )\n .replace('AMC_SERVICE_TABLE', showAMCServiceTable())\n .replace(\n 'NO_OF_DAYS_BASED_ON_DATE',\n returnDspMonthAndDays(true),\n )\n .replaceAll('CONTRACT_LENGTH', returnDspMonthAndDays(false)),\n }}\n />\n \n \n
    \n
    \n );\n}\n\nDSPAddendum.defaultProps = {\n templateData: {},\n formData: {},\n firstMonthDate: '',\n secondMonthDate: '',\n thirdMonthDate: '',\n endMonthDate: '',\n selectedCurrency: '$ (USD)',\n displayFirstMonthDateRange: () => {},\n returnDspMonthlyDates: () => {},\n returnDspMonthAndDays: () => {},\n displayMarketplaceName: () => {},\n displayBBELogo: () => {},\n startDate: '',\n mapMonthlyServices: () => {},\n mapMonthlyServiceTotal: () => {},\n};\n\nDSPAddendum.propTypes = {\n templateData: shape({\n dsp_addendum: arrayOf(string),\n }),\n firstMonthDate: oneOfType([string, instanceOf(Date)]),\n secondMonthDate: oneOfType([string, instanceOf(Date)]),\n thirdMonthDate: oneOfType([string, instanceOf(Date)]),\n endMonthDate: oneOfType([string, instanceOf(Date)]),\n selectedCurrency: string,\n formData: shape({\n dsp_fee: string,\n dsp_length: oneOfType([\n string,\n shape({\n value: string,\n label: string,\n }),\n ]),\n contract_status: shape({\n label: string,\n value: string,\n }),\n start_date: oneOfType([string, instanceOf(Date)]),\n contract_type: string,\n customer_id: shape({\n address: string,\n city: string,\n state: string,\n zip_code: string,\n }),\n }),\n displayFirstMonthDateRange: func,\n returnDspMonthlyDates: func,\n returnDspMonthAndDays: func,\n displayMarketplaceName: func,\n displayBBELogo: func,\n startDate: instanceOf(Date),\n mapMonthlyServices: func,\n mapMonthlyServiceTotal: func,\n};\n","/* eslint-disable react/no-danger */\nimport React from 'react';\n\nimport dayjs from 'dayjs';\nimport {\n string,\n number,\n func,\n oneOfType,\n arrayOf,\n shape,\n instanceOf,\n} from 'prop-types';\n\nimport { getUpdatedStrByReplacingChannelType } from '../Common/commonFunctionsForUniqueServices';\nimport {\n additionaMarketplaceAmount,\n displayFixedThresholdInfo,\n displayFixedRetainerInfo,\n displayQuarterlyRetainerInfo,\n displayMonthlyRetainerInfo,\n displayFeeTypeInfo,\n displayRevenueShareInfo,\n displayBillingMinimumInfo,\n displayBillingCapInfo,\n oneTimeServicesHavingSubType,\n} from '../../../constants';\nimport { StatementParagraph } from '../../../theme/AgreementStyle';\n\nimport {\n oneTimeSpecificServices,\n oneTimeSpecificServicesFees,\n returnOneTimeServiceNames,\n returnOneTimeServiceFees,\n returnOneTimeServiceFeesTotal,\n} from '../../../common/OneTimeServiceSubTabFunctions';\n\nexport default function Statement({\n formData,\n templateData,\n notIncludedOneTimeServices,\n notIncludedMonthlyServices,\n servicesFees,\n discountData,\n selectedCurrency,\n displayMarketplaceName,\n displayListingOptimisationInfo,\n displayRevisionPolicyInfo,\n displayBBELogo,\n startDate,\n contractAddendumDetails,\n}) {\n const accountType = formData?.seller_type?.value;\n const monthlyServiceEnhancedOrAPlus =\n formData?.channel?.value === 'amazon' ? 'A+ Content' : 'Enhanced Content';\n\n const displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n const mapDefaultValues = (key, label, type) => {\n if (\n type === 'amazon' &&\n key === 'seller_type' &&\n formData?.seller_type?.label === 'Hybrid'\n )\n return 'Seller';\n if (key === 'company_name') {\n return formData && formData.customer_id && formData.customer_id[key]\n ? `${\n formData && formData.customer_id && formData.customer_id[key]\n }`\n : `Client Name`;\n }\n if (formData[key] === undefined || formData[key] === '') {\n return `Enter ${label}`;\n }\n if (key === 'start_date') {\n return startDate !== null\n ? `${\n startDate && dayjs(startDate).format('MM / DD / YYYY')\n }`\n : 'Select Date';\n }\n if (key === 'primary_marketplace') {\n if (formData && formData.primary_marketplace) {\n return formData?.primary_marketplace?.name\n ? displayMarketplaceName(\n formData.primary_marketplace.name,\n 'primary',\n 'lhs',\n )\n : displayMarketplaceName(\n formData.primary_marketplace,\n 'primary',\n 'lhs',\n );\n }\n return `Enter ${label}`;\n }\n if (key === 'threshold_type') {\n if (formData && formData[key] === 'YoY') {\n return 'YoY: All channel sales above previous year channel sales.';\n }\n if (formData && formData[key] === 'YoY + %') {\n return `YoY + %: All channel sales above a ${\n formData && formData.yoy_percentage\n ? formData && formData.yoy_percentage\n : `Enter ${label}`\n } growth on previous year channel sales.`;\n }\n if (formData && formData[key] === 'Fixed') {\n return `Fixed: ${\n formData && formData.sales_threshold\n ? `${selectedCurrency} ${displayNumber(\n formData && formData.sales_threshold,\n )}`\n : `Enter ${label}`\n }`;\n }\n }\n if (type && type.includes('number')) {\n // ${type === 'number-currency' ? '$' : '%'}\n if (formData && formData[key]) {\n return `${\n type === 'number-currency' ? selectedCurrency : '%'\n }${`${displayNumber(formData[key])}`}`;\n }\n return `Enter ${label}`;\n }\n\n return key === 'rev_share' || key === 'seller_type'\n ? formData && formData[key] && formData[key].label\n ? formData[key].label\n : formData[key]\n ? formData[key]\n : `Enter ${label}`\n : formData && formData[key];\n };\n\n const ShowRetainerThresholdValues = (\n type,\n key,\n quartelyKey,\n monthlyKey,\n option,\n label,\n ) => {\n return ` \n ${\n (formData?.fee_structure?.[type]?.[option] === null ||\n formData?.fee_structure?.[type]?.[option] === 'None') &&\n option === 'threshold_type'\n ? ''\n : formData?.fee_structure?.[type]?.[option] === 'Fixed' ||\n formData?.fee_structure?.[type]?.[option] === null\n ? ` \n Fixed ${label} \n ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.[key] || 0,\n )} \n ${\n label === 'Threshold'\n ? getUpdatedStrByReplacingChannelType(\n displayFixedThresholdInfo,\n formData,\n )\n : getUpdatedStrByReplacingChannelType(\n displayFixedRetainerInfo,\n formData,\n )\n } `\n : formData?.fee_structure?.[type]?.[option] === 'quarterly'\n ? ` \n Quarterly ${label} \n \n 1st Quarter:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.[\n '1st quarterly'\n ],\n ) || 0\n }
    \n 2nd Quarter: ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.[\n '2nd quarterly'\n ],\n ) || 0\n }
    \n 3rd Quarter:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.[\n '3rd quarterly'\n ],\n ) || 0\n }
    \n 4th Quarter:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.[\n '4th quarterly'\n ],\n ) || 0\n }
    \n \n ${\n label === 'Threshold'\n ? getUpdatedStrByReplacingChannelType(\n displayFixedThresholdInfo,\n formData,\n )\n : getUpdatedStrByReplacingChannelType(\n displayQuarterlyRetainerInfo,\n formData,\n )\n }\n \n `\n : formData?.fee_structure?.[type]?.[option] === 'monthly'\n ? ` \n Monthly ${label} \n \n January:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'january month'\n ],\n ) || 0\n }
    \n February: ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'february month'\n ],\n ) || 0\n }
    \n March:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'march month'\n ],\n ) || 0\n }
    \n April:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'april month'\n ],\n ) || 0\n }
    \n May:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'may month'\n ],\n ) || 0\n }
    \n June: ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'june month'\n ],\n ) || 0\n }
    \n July:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'july month'\n ],\n ) || 0\n }
    \n August:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'august month'\n ],\n ) || 0\n }
    \n September:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'september month'\n ],\n ) || 0\n }
    \n October: ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'october month'\n ],\n ) || 0\n }
    \n November:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'november month'\n ],\n ) || 0\n }
    \n December:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'december month'\n ],\n ) || 0\n }
    \n \n ${\n label === 'Threshold'\n ? getUpdatedStrByReplacingChannelType(\n displayFixedThresholdInfo,\n formData,\n )\n : getUpdatedStrByReplacingChannelType(\n displayMonthlyRetainerInfo,\n formData,\n )\n }\n \n `\n : ''\n }`;\n };\n\n const feeStructure = (type) => {\n if (formData?.fee_structure?.[type]?.fee_type === 'Retainer Only') {\n return `
    \n \n \n \n \n \n \n ${ShowRetainerThresholdValues(\n type,\n 'monthly_retainer',\n 'quarterly_monthly_retainer',\n 'monthly_monthly_retainer',\n 'retainer_type',\n 'Retainer',\n )}\n
    Fee Type Retainer Only (${\n formData?.fee_structure?.[type]?.retainer_type === undefined ||\n formData?.fee_structure?.[type]?.retainer_type === null\n ? 'Fixed'\n : formData?.fee_structure?.[type]?.retainer_type\n } Retainer) ${displayFeeTypeInfo}
    \n
    `;\n }\n if (formData?.fee_structure?.[type]?.fee_type === 'Revenue Share Only') {\n return `
    \n \n \n \n \n \n \n \n \n \n \n ${ShowRetainerThresholdValues(\n type,\n 'sales_threshold',\n 'quarterly_rev_share',\n 'monthly_rev_share',\n 'threshold_type',\n 'Threshold',\n )}\n ${\n formData?.fee_structure?.[type]?.billing_minimum\n ? `\n \n \n `\n : ''\n }\n ${\n formData?.fee_structure?.[type]?.billing_cap\n ? `\n \n \n `\n : ''\n }\n
    Fee Type Revenue Share Only (${\n formData?.fee_structure?.[type]?.threshold_type ===\n undefined ||\n formData?.fee_structure?.[type]?.threshold_type === null ||\n formData?.fee_structure?.[type]?.threshold_type === 'None'\n ? 'No'\n : formData?.fee_structure?.[type]?.threshold_type\n } Threshold) ${displayFeeTypeInfo}
    Revenue Share %${displayNumber(\n formData?.fee_structure?.[type]?.rev_share || 0,\n )}% ${getUpdatedStrByReplacingChannelType(\n displayRevenueShareInfo,\n formData,\n )}
    Billing Minimum${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_minimum || 0,\n )} ${displayBillingMinimumInfo}
    Billing Cap${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_cap || 0,\n )} ${displayBillingCapInfo}
    \n
    `;\n }\n if (\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n return `
    \n \n \n \n \n \n \n ${ShowRetainerThresholdValues(\n type,\n 'monthly_retainer',\n 'quarterly_monthly_retainer',\n 'monthly_monthly_retainer',\n 'retainer_type',\n 'Retainer',\n )} \n \n \n \n \n ${ShowRetainerThresholdValues(\n type,\n 'sales_threshold',\n 'quarterly_rev_share',\n 'monthly_rev_share',\n 'threshold_type',\n 'Threshold',\n )}\n ${\n formData?.fee_structure?.[type]?.billing_cap\n ? `\n \n \n `\n : ''\n }\n
    Fee Type Retainer (${\n formData?.fee_structure?.[type]?.retainer_type === undefined ||\n formData?.fee_structure?.[type]?.retainer_type === null\n ? 'Fixed'\n : formData?.fee_structure?.[type]?.retainer_type\n } Retainer) + Rev Share \n (${\n formData?.fee_structure?.[type]?.threshold_type ===\n undefined ||\n formData?.fee_structure?.[type]?.threshold_type === null ||\n formData?.fee_structure?.[type]?.threshold_type === 'None'\n ? 'No'\n : formData?.fee_structure?.[type]?.threshold_type\n } Threshold) ${displayFeeTypeInfo}
    Revenue Share %${displayNumber(\n formData?.fee_structure?.[type]?.rev_share || 0,\n )}% ${getUpdatedStrByReplacingChannelType(\n displayRevenueShareInfo,\n formData,\n )}
    Billing Cap${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_cap || 0,\n )} ${displayBillingCapInfo}
    \n
    `;\n }\n return '';\n };\n\n const showRevTable = () => {\n if (formData?.seller_type?.label === 'Seller')\n return feeStructure('seller');\n if (formData?.seller_type?.label === 'Vendor')\n return feeStructure('vendor');\n if (formData?.seller_type?.label === 'Hybrid') {\n return `${feeStructure('seller')} \n
    \n Fees & Sales Commissions for ${\n formData?.channel?.label\n } Vendor Account\n \n
    Sales billed in arrears for the prior month in which sales were made on the account and calculated as follows:\n

    ${feeStructure('vendor')} `;\n }\n return '';\n };\n\n const mapVariableMonthlyService = (data, tableType) => {\n const fields = [\n `Variable Monthly Services`,\n ];\n if (data) {\n for (const item of data) {\n if (\n item.name\n ? item.name === 'Inventory Reconciliation'\n : item.service.name === 'Inventory Reconciliation'\n ) {\n fields.push(\n `\n ${\n item.service ? item.service.name : item?.name\n }\n ${\n tableType === 'removed'\n ? null\n : contractAddendumDetails?.notActive\n ? ''\n : null\n }\n \n \n 25% of recovered ${selectedCurrency}\n '\n s \n \n \n `,\n );\n }\n }\n return fields.length > 1\n ? fields.toString().replaceAll(',', '').replaceAll('null', '')\n : '';\n }\n return '';\n };\n const mapAdditionalMarketPlaces = (marketplaceData) => {\n const fields = [];\n if (marketplaceData) {\n for (const item of marketplaceData) {\n fields.push(\n ` \n ${\n item.service\n ? displayMarketplaceName(item.service.name, '', 'lhs')\n : displayMarketplaceName(item?.name, '', 'lhs')\n }\n ${\n item?.fee\n ? `\n \n ${selectedCurrency}${\n item.service\n ? displayNumber(item.service.fee)\n : item.fee\n ? displayNumber(item.fee)\n : ''\n }\n /month\n \n `\n : `\n \n ${selectedCurrency}${displayNumber(\n additionaMarketplaceAmount,\n )} /month `\n }\n `,\n );\n }\n }\n return fields.length ? fields.toString().replaceAll('>,<', '><') : '';\n };\n\n const calculateTodalFee = (type, data, marketplaceData, accntType) => {\n let oneTimeSubTotal = 0;\n let monthlySubTotal = 0;\n let oneTimeDiscount = 0;\n let monthlyDiscount = 0;\n let additionalMarketplacesTotal = 0;\n\n if (formData) {\n if (type === 'monthly') {\n // caculate the total of additional monthly serviece\n if (data && data !== null) {\n if (!accntType) {\n data.forEach((item) => {\n if (item?.fee) monthlySubTotal += Number(item?.fee);\n });\n } else {\n data.forEach((item) => {\n if (item && item.service) {\n if (item?.service?.name === monthlyServiceEnhancedOrAPlus) {\n monthlySubTotal += item.service.fee * item?.quantity;\n } else {\n monthlySubTotal += item.service.fee;\n }\n } else {\n const fixedFee = servicesFees.filter(\n (n) => n.id === item.service_id,\n );\n if (item?.name === monthlyServiceEnhancedOrAPlus) {\n monthlySubTotal += fixedFee[0].fee * item?.quantity;\n } else {\n monthlySubTotal += fixedFee[0].fee;\n }\n }\n });\n }\n }\n if (accntType) {\n if (marketplaceData !== null) {\n // calculate the total of additional marketplaces\n marketplaceData.forEach((item) => {\n if (item && item.fee) {\n additionalMarketplacesTotal += item.fee;\n } else {\n additionalMarketplacesTotal += additionaMarketplaceAmount;\n }\n });\n\n monthlySubTotal += additionalMarketplacesTotal;\n }\n }\n let monthlyDiscountData = 0;\n if (accountType === '') {\n monthlyDiscountData = discountData.find(\n (item) => item.is_amc_service_discount,\n );\n } else {\n monthlyDiscountData = discountData.find(\n (item) =>\n item.service_type === 'monthly service' &&\n item?.account_type === accntType,\n );\n }\n\n if (monthlyDiscountData !== null) {\n const discountType = monthlyDiscountData?.type;\n if (discountType === 'percentage') {\n monthlyDiscount =\n (monthlySubTotal * monthlyDiscountData?.amount) / 100;\n } else if (discountType === 'fixed amount') {\n monthlyDiscount = monthlyDiscountData?.amount;\n }\n } else {\n monthlyDiscount = monthlyDiscountData?.amount;\n }\n\n return {\n monthlySubTotal,\n monthlyAmountAfterDiscount: monthlyDiscount,\n monthlyTotal: monthlySubTotal - monthlyDiscount,\n monthlyDiscountType: monthlyDiscountData?.type,\n monthlyDiscount: monthlyDiscountData?.amount,\n };\n }\n if (\n type === 'onetime' &&\n formData.additional_one_time_services !== null\n ) {\n formData.additional_one_time_services.forEach((item) => {\n const { quantity } = item;\n\n if (item.custom_amazon_store_price) {\n oneTimeSubTotal += item.custom_amazon_store_price * quantity;\n } else if (item?.service) {\n oneTimeSubTotal += item.service.fee * quantity;\n } else {\n let fixedFee = servicesFees.filter((n) => n.id === item.service_id);\n fixedFee =\n fixedFee && fixedFee[0] && fixedFee[0].fee ? fixedFee[0].fee : 0;\n oneTimeSubTotal += fixedFee * quantity;\n }\n });\n\n const oneTimeDiscountData = discountData.find(\n (item) => item.service_type === 'one time service',\n );\n\n if (oneTimeDiscountData !== null) {\n const discountType = oneTimeDiscountData?.type;\n if (discountType === 'percentage') {\n oneTimeDiscount =\n (oneTimeSubTotal * oneTimeDiscountData?.amount) / 100;\n } else if (discountType === 'fixed amount') {\n oneTimeDiscount = oneTimeDiscountData?.amount;\n }\n } else {\n oneTimeDiscount = oneTimeDiscountData?.amount;\n }\n\n return {\n oneTimeSubTotal,\n oneTimeAmountAfterDiscount: oneTimeDiscount,\n oneTimeTotal: oneTimeSubTotal - oneTimeDiscount,\n oneTimeDiscountType: oneTimeDiscountData?.type,\n oneTimeDiscount: oneTimeDiscountData?.amount,\n };\n }\n }\n return 0;\n };\n\n const mapMonthlyServiceTotal = (data, marketplaceData, accntType) => {\n const totalFees = calculateTodalFee(\n 'monthly',\n data,\n marketplaceData,\n accntType,\n );\n return `\n ${\n totalFees.monthlyAmountAfterDiscount > 0\n ? `\n Sub-total\n \n \n ${selectedCurrency}${displayNumber(totalFees.monthlySubTotal)}\n \n \n `\n : ''\n }\n ${\n totalFees.monthlyAmountAfterDiscount > 0\n ? `\n Discount ${\n totalFees?.monthlyAmountAfterDiscount &&\n totalFees?.monthlyDiscountType === 'percentage'\n ? `(${totalFees?.monthlyDiscount}%)`\n : ''\n }\n \n \n -${selectedCurrency}${\n totalFees?.monthlyAmountAfterDiscount\n ? displayNumber(totalFees?.monthlyAmountAfterDiscount)\n : 0\n }\n \n \n `\n : ''\n }\n \n Total\n \n \n ${selectedCurrency}${\n totalFees?.monthlyTotal\n ? displayNumber(totalFees.monthlyTotal?.toFixed(2))\n : 0\n }\n \n \n `;\n };\n\n const renderStdServiceRow = (service) => {\n const fields = [];\n for (const item of service) {\n if (!item.value && !item.label) {\n fields.push(\n `${item.name}`,\n );\n } else {\n fields.push(\n `Listing Optimization - ${item.label}
    \n *May vary by strategic priorities, up to \n ${item.value}\n ASINs \n per month\n `,\n );\n }\n }\n return fields;\n };\n\n const mapStandardServices = () => {\n if (\n (formData?.standard_us_services &&\n formData?.standard_us_services.length) ||\n formData?.content_optimization ||\n formData?.design_optimization\n // formData?.photography_optimization\n ) {\n let content = {};\n let design = {};\n // let photo = {};\n\n if (formData?.content_optimization) {\n content = {\n label: 'Copy',\n value: formData.content_optimization,\n };\n }\n if (formData?.design_optimization) {\n design = {\n label: 'Design',\n value: formData.design_optimization,\n };\n }\n // if (formData?.photography_optimization) {\n // photo = {\n // label: 'Photography',\n // value: formData.photography_optimization,\n // };\n // }\n const fields = [];\n // combine the standard services with listing optimization to show it properly in the table dynamically.\n let temp = [];\n if (formData?.standard_us_services?.length)\n temp = [...temp, ...formData.standard_us_services];\n if (content && Object.keys(content).length !== 0)\n temp = [...temp, content];\n if (design && Object.keys(design).length !== 0) temp = [...temp, design];\n // if (photo && Object.keys(photo).length !== 0) temp = [...temp, photo];\n\n const formattedData = new Array(Math.ceil(temp.length / 3))\n .fill()\n .map(() => temp.splice(0, 3));\n for (const item of formattedData) {\n fields.push(` ${renderStdServiceRow(item)} `);\n }\n return fields.length ? fields.toString().replaceAll(',', '') : '';\n }\n return '';\n };\n\n const mapVATRegistrationMarketplaces = () => {\n const marketplaces =\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services\n .filter((item) => item.name === 'VAT Registration')\n .map((filteredItem) => filteredItem.marketplace);\n const result = [];\n if (marketplaces?.length) {\n marketplaces.map((item) => {\n result.push(`${displayMarketplaceName(item, 'vat', 'lhs')}`);\n return null;\n });\n }\n return result.length ? result.toString().replaceAll(',', ', ') : '';\n };\n\n const mapVATFilingMarketplaces = () => {\n const marketplaces =\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) =>\n item.name === 'VAT Filing' &&\n item.marketplace !== null &&\n item.frequency !== null,\n );\n\n const result = [];\n if (marketplaces?.length) {\n marketplaces.map((item) => {\n result.push(\n `${displayMarketplaceName(item.marketplace, 'vat', 'lhs')} (${\n item?.frequency\n })`,\n );\n return null;\n });\n }\n return result.length ? result.toString().replaceAll(',', ', ') : '';\n };\n\n const mapRemainingServices = () => {\n const result = [];\n const customerService =\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) => item.name === 'International Customer Service',\n );\n\n const logistics =\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) => item.name === 'International Logistics',\n );\n\n if (customerService?.length)\n result.push(`${customerService?.[0]?.name}`);\n if (logistics?.length) result.push(`${logistics?.[0]?.name}`);\n\n if (formData?.copy_listing_translation) {\n result.push(\n `Listing Copy Translation - ASIN's per month : ${formData?.copy_listing_translation}`,\n );\n }\n if (formData?.creative_listing_translation) {\n result.push(\n `Listing Creative Translation - ASIN's per month : ${formData?.creative_listing_translation}`,\n );\n }\n return result.length ? result.toString().replaceAll(',', '') : '';\n };\n\n const showStandardServicesNONUSMarketplacesTable = () => {\n return (!formData?.standard_non_us_services ||\n formData?.standard_non_us_services?.length === 0) &&\n !formData.copy_listing_translation &&\n !formData.creative_listing_translation\n ? ''\n : `
    \n \n \n \n \n ${\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) => item.name === 'VAT Registration',\n )?.length\n ? `\n \n `\n : ''\n }\n ${\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) => item.name === 'VAT Filing',\n )?.length\n ? ``\n : ''\n }\n ${mapRemainingServices()}\n \n
    Service Components (Non-US Marketplaces)
    VAT Registration: ${mapVATRegistrationMarketplaces()}
    VAT Filing: ${mapVATFilingMarketplaces()}
    \n
    \n `;\n };\n\n // display standard services table and content\n const showStandardServicesTable = () => {\n if (\n (formData.standard_us_services?.length === 0 ||\n formData.standard_us_services === null) &&\n !formData.content_optimization &&\n !formData.design_optimization &&\n !formData.photography_optimization\n )\n return ``;\n return `\n
    \n Standard Services\n
    The following services will be provided to client during the term of the contract. \n

    \n
    \n \n \n \n \n ${mapStandardServices()}\n
    Service Components
    \n ${\n formData?.design_optimization ||\n formData?.content_optimization ||\n formData?.photography_optimization\n ? `
    \n ${displayListingOptimisationInfo()}\n
    \n ${displayRevisionPolicyInfo()}`\n : ''\n } \n
    \n `;\n };\n\n const mapOnetimeServiceTotal = () => {\n const totalFees = calculateTodalFee('onetime');\n return `\n ${\n totalFees?.oneTimeAmountAfterDiscount\n ? `\n Sub-total\n \n \n ${selectedCurrency}${displayNumber(\n totalFees?.oneTimeSubTotal?.toFixed(2),\n )}\n \n \n `\n : ''\n }\n ${\n totalFees?.oneTimeAmountAfterDiscount\n ? `\n Discount ${\n totalFees?.oneTimeAmountAfterDiscount &&\n totalFees?.oneTimeDiscountType === 'percentage'\n ? `(${totalFees?.oneTimeDiscount}%)`\n : ''\n }\n \n \n \n -${selectedCurrency}${displayNumber(\n totalFees?.oneTimeAmountAfterDiscount?.toFixed(2),\n )}\n \n \n `\n : ''\n } \n \n Total\n \n \n \n ${selectedCurrency}${displayNumber(\n totalFees?.oneTimeTotal?.toFixed(2),\n )}\n \n \n \n `;\n };\n const customAmazonStorePrice = (fee) => {\n return `\n \n \n ${\n fee\n ? `${selectedCurrency}${displayNumber(fee)}`\n : `${selectedCurrency}0`\n }\n \n `;\n };\n const tdService = (service, fee) => {\n return `\n \n\n ${\n service.quantity && fee\n ? `${selectedCurrency}${displayNumber(service.quantity * fee)}`\n : `${selectedCurrency}0`\n }\n \n \n `;\n };\n const displayNumberOfASINs = (item) => {\n if (item?.name === monthlyServiceEnhancedOrAPlus) {\n return `(${item?.quantity} ASINs)`;\n }\n if (item?.service?.name === monthlyServiceEnhancedOrAPlus) {\n return `(${item?.quantity} ASINs)`;\n }\n return '';\n };\n\n const checkIsAPlusService = (item) => {\n if (item?.name === monthlyServiceEnhancedOrAPlus) {\n return true;\n }\n\n if (item?.service?.name === monthlyServiceEnhancedOrAPlus) {\n return true;\n }\n return false;\n };\n\n // return the onetime service table row\n const showOneTimeServiceSubTabRow = (fields, serviceName) => {\n const oneTimeSpecificServicesTemp = oneTimeSpecificServices(\n formData,\n serviceName,\n );\n const oneTimeSpecificServicesFeesTemp = oneTimeSpecificServicesFees(\n servicesFees,\n serviceName,\n );\n\n if (oneTimeSpecificServicesTemp?.length)\n fields.push(`\n \n \n\n ${oneTimeSpecificServicesTemp?.length ? '1' : ''}\n \n \n \n ${\n serviceName === 'A+'\n ? 'A+ Content'\n : serviceName === 'Enhanced'\n ? 'Enhanced Content'\n : serviceName\n } ${returnOneTimeServiceNames(oneTimeSpecificServicesTemp)}\n \n \n \n ${returnOneTimeServiceFees(\n servicesFees,\n selectedCurrency,\n oneTimeSpecificServicesTemp,\n oneTimeSpecificServicesFeesTemp,\n )}\n\n \n \n \n \n ${returnOneTimeServiceFeesTotal(\n servicesFees,\n selectedCurrency,\n oneTimeSpecificServicesTemp,\n oneTimeSpecificServicesFeesTemp,\n )}\n\n \n `);\n };\n\n const mapMonthlyServices = (key, data) => {\n const fields = [];\n if (key === 'amc_services') {\n if (data) {\n if (formData?.is_dsp_advertising) {\n fields.push(\n `\n DSP Advertising\n N/A\n `,\n );\n }\n for (const item of data) {\n fields.push(\n `\n AMC Management ${\n item.name\n }\n ${\n item?.fee\n ? `${selectedCurrency}${displayNumber(\n item?.fee,\n )} /month `\n : item?.name === 'Standard Dashboard' ||\n (item?.fee === 0 && item?.name === 'Advanced Dashboard')\n ? `FOC`\n : ' $0 /month '\n }\n `,\n );\n }\n }\n } else if (key !== 'additional_one_time_services') {\n if (data) {\n for (const item of data) {\n const fixedFee = servicesFees.filter((n) => n.id === item.service_id);\n if (\n (item.service && item.service.name !== undefined) ||\n item.name !== undefined\n ) {\n if (\n item.name\n ? item.name !== 'Inventory Reconciliation'\n : item.service.name !== 'Inventory Reconciliation'\n ) {\n fields.push(\n `\n \n ${\n item.service ? item.service.name : item?.name\n } ${displayNumberOfASINs(item, fixedFee)}\n \n ${\n item.service?.fee\n ? `\n \n ${selectedCurrency}${\n item.service\n ? `${displayNumber(\n item?.service?.name ===\n monthlyServiceEnhancedOrAPlus\n ? item.service.fee * item?.quantity\n : item.service.fee,\n )}`\n : item.fee\n ? displayNumber(\n item?.name === monthlyServiceEnhancedOrAPlus\n ? item.fee * item?.quantity\n : item.fee,\n )\n : ''\n } /month\n \n `\n : (\n item.name\n ? item.name === 'DSP Advertising'\n : item.service.name === 'DSP Advertising'\n )\n ? `\n N/A \n `\n : `\n \n ${\n fixedFee && fixedFee[0] && fixedFee[0].fee\n ? `${selectedCurrency}${displayNumber(\n checkIsAPlusService(item)\n ? fixedFee[0].fee * item?.quantity\n : fixedFee[0].fee,\n )} /month`\n : `${selectedCurrency}0`\n }\n \n `\n }\n `,\n );\n }\n }\n }\n }\n } else if (formData && formData.additional_one_time_services) {\n formData.additional_one_time_services\n .filter((item) =>\n item?.name\n ? !oneTimeServicesHavingSubType.includes(item?.name)\n : !oneTimeServicesHavingSubType.includes(item?.service?.name),\n )\n .forEach((service) => {\n const fixedFee = servicesFees.filter(\n (n) => n.id === service.service_id,\n );\n\n fields.push(\n `\n \n \n\n ${service.quantity ? displayNumber(service.quantity) : 0}\n \n \n \n ${\n service.name\n ? service.name\n : service.service?.name\n ? service.service.name\n : ''\n }\n \n ${\n (\n service && service.name\n ? service.name.includes('Amazon Store Package Custom')\n : service?.service?.name.includes(\n 'Amazon Store Package Custom',\n )\n )\n ? service.custom_amazon_store_price\n ? `\n \n ${selectedCurrency}${displayNumber(\n service.custom_amazon_store_price,\n )}`\n : customAmazonStorePrice(\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n : service?.service?.fee\n ? customAmazonStorePrice(service?.service?.fee)\n : customAmazonStorePrice(\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n } \n ${\n (\n service && service.name\n ? service.name !== 'Amazon Store Package Custom'\n : service &&\n service.service?.name !== 'Amazon Store Package Custom'\n )\n ? service.quantity && service.service?.fee\n ? tdService(service, service.service?.fee)\n : tdService(\n service,\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n : service.quantity && service.custom_amazon_store_price\n ? tdService(service, service.custom_amazon_store_price)\n : tdService(service, fixedFee && fixedFee[0] && fixedFee[0].fee)\n } \n `,\n );\n // }\n\n return fields;\n });\n showOneTimeServiceSubTabRow(fields, 'Amazon Storefront');\n showOneTimeServiceSubTabRow(fields, 'Infographics');\n showOneTimeServiceSubTabRow(fields, 'A+');\n showOneTimeServiceSubTabRow(fields, 'Enhanced');\n showOneTimeServiceSubTabRow(fields, 'Walmart Storefront');\n // showAllTableSubtabRow(fields);\n }\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll(',,', '')\n .replaceAll(',,,', '')\n : '';\n };\n\n const getServicesAccordingToAccType = (data, option) => {\n const result = data && data.filter((item) => item.account_type === option);\n return result;\n };\n\n const showAMCServicesTable = () => {\n if (formData?.is_dsp_advertising || formData?.is_amc_management) {\n return `
    \n Additional Advertising Services \n
    The following additional monthly services will be provided to Client in addition to the Monthly Retainer.

    \n
    \n \n \n \n \n \n ${mapMonthlyServices('amc_services', formData?.amc_services)}\n ${mapMonthlyServiceTotal(formData?.amc_services, '', '')}\n\n
    ServiceService Fee
    \n
    `;\n }\n return '';\n };\n\n const showMonthlyServiceTable = (accntTYpe, data, marketplaceData) => {\n if (data?.length || marketplaceData?.length) {\n return `
    \n Additional Monthly Services for ${\n formData?.channel?.label\n } ${accntTYpe} Account \n
    The following additional monthly services will be provided to Client in addition to the Monthly Retainer.

    \n
    \n \n \n \n \n \n ${mapMonthlyServices('additional_monthly_services', data)}\n ${mapAdditionalMarketPlaces(marketplaceData)}\n ${mapMonthlyServiceTotal(data, marketplaceData, accntTYpe)}\n ${mapVariableMonthlyService(data)} \n
    ServiceService Fee
    \n
    `;\n }\n return '';\n };\n\n const showMonthlyServiceTablesAccordingToAccType = () => {\n if (accountType === 'Seller') {\n const sellerResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Seller',\n );\n const marketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Seller',\n );\n return showMonthlyServiceTable('Seller', sellerResult, marketplaceResult);\n }\n if (accountType === 'Vendor') {\n const vendorResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Vendor',\n );\n const marketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Vendor',\n );\n return showMonthlyServiceTable('Vendor', vendorResult, marketplaceResult);\n }\n if (accountType === 'Hybrid') {\n const sellerResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Seller',\n );\n\n const vendorResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Vendor',\n );\n\n const sellerMarketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Seller',\n );\n\n const vendorMarketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Vendor',\n );\n\n if (\n (sellerResult && sellerResult.length) ||\n (vendorResult && vendorResult.length) ||\n (sellerMarketplaceResult && sellerMarketplaceResult.length) ||\n (vendorMarketplaceResult && vendorMarketplaceResult.length)\n ) {\n const sellerTable = showMonthlyServiceTable(\n 'Seller',\n sellerResult,\n sellerMarketplaceResult,\n );\n const venderTable = showMonthlyServiceTable(\n 'Vendor',\n vendorResult,\n vendorMarketplaceResult,\n );\n\n return sellerTable + venderTable;\n }\n\n if (sellerResult && sellerResult.length) {\n return showMonthlyServiceTable(\n 'Seller',\n sellerResult,\n sellerMarketplaceResult,\n );\n }\n\n if (vendorResult && vendorResult.length) {\n return showMonthlyServiceTable(\n 'Vendor',\n vendorResult,\n vendorMarketplaceResult,\n );\n }\n }\n return '';\n };\n\n const showOneTimeServiceTable = () => {\n if (formData?.additional_one_time_services?.length) {\n return `
    \n Additional One Time Services \n
    The following additional monthly services will be provided to Client as a one time service in addition to the Monthly Retainer and any Additional Monthly services.

    \n
    \n \n \n \n \n \n \n \n ${mapMonthlyServices(\n 'additional_one_time_services',\n 'One Time Services',\n )}\n ${mapOnetimeServiceTotal()}\n
    QuantityServiceService FeeTotal Service Fee
    \n
    `;\n }\n return '';\n };\n\n const showBillingCap = () => {\n if (formData && formData.billing_cap) {\n return `

    \n Billing Cap
    \n
    Maximum amount that will be charged between the monthly retainer and revenue share.
    \n
    \n \n ${mapDefaultValues('billing_cap', 'Billing Cap', 'number-currency')}\n \n
    `;\n }\n return '';\n };\n\n // PDV-8477 - Remove the table enumerating the “services not included” portion\n // additional services which is not included in contract\n const showNotIncludedServicesTable = () => {\n if (\n notIncludedMonthlyServices?.length ||\n notIncludedOneTimeServices?.length\n ) {\n return `
    \n Additional Services Not Included\n
    Anything not listed in this statement of work can be purchased at the fee scheduled in place at the time of the request.
    `;\n }\n return '';\n };\n\n return (\n <>\n \n \n \n \n );\n}\n\nStatement.defaultProps = {\n formData: {},\n templateData: {},\n notIncludedOneTimeServices: [],\n notIncludedMonthlyServices: [],\n servicesFees: {},\n discountData: [],\n selectedCurrency: '$ (USD)',\n displayMarketplaceName: () => {},\n displayListingOptimisationInfo: () => {},\n displayRevisionPolicyInfo: () => {},\n displayBBELogo: () => {},\n startDate: '',\n contractAddendumDetails: {},\n};\nStatement.propTypes = {\n formData: shape({\n length: oneOfType([\n string,\n shape({\n value: string,\n label: string,\n }),\n ]),\n sales_threshold: string,\n billing_cap: oneOfType([string, number]),\n additional_marketplaces: arrayOf(\n shape({\n service: string,\n }),\n ),\n additional_one_time_services: arrayOf(\n shape({\n service: shape({\n id: string,\n }),\n }),\n ),\n seller_type: shape({\n value: string,\n label: string,\n }),\n primary_marketplace: oneOfType([\n string,\n shape({\n fee: number,\n name: string,\n id: string,\n }),\n ]),\n additional_monthly_services: arrayOf(\n shape({\n service: shape({\n id: string,\n }),\n }),\n ),\n content_optimization: number,\n design_optimization: number,\n customer_id: shape({\n address: string,\n city: string,\n state: string,\n zip_code: string,\n }),\n monthly_discount_amount: oneOfType([string, number]),\n monthly_discount_type: oneOfType([string, number]),\n one_time_discount_type: oneOfType([string, number]),\n one_time_discount_amount: oneOfType([string, number]),\n threshold_type: string,\n yoy_percentage: string,\n }),\n templateData: shape({\n addendum: arrayOf(string),\n statement_of_work: arrayOf(string),\n }),\n notIncludedOneTimeServices: arrayOf(\n shape({\n label: string.isRequired,\n }),\n ),\n notIncludedMonthlyServices: arrayOf(\n shape({\n label: string.isRequired,\n }),\n ),\n servicesFees: arrayOf(\n shape({\n fee: number,\n filter: func,\n }),\n ),\n discountData: arrayOf(shape({})),\n selectedCurrency: string,\n displayMarketplaceName: func,\n displayListingOptimisationInfo: func,\n displayRevisionPolicyInfo: func,\n displayBBELogo: func,\n startDate: instanceOf(Date),\n contractAddendumDetails: shape({}),\n};\n","import React from 'react';\n\nimport dayjs from 'dayjs';\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport DatePicker from 'react-date-picker';\nimport { string, bool, func, shape, arrayOf } from 'prop-types';\n\nimport {\n PageLoader,\n Button,\n ModalBox,\n InputFormField,\n InfoMsg,\n} from '../../../common';\nimport { CloseIcon } from '../../../theme/images';\nimport Theme from '../../../theme/Theme';\n\nfunction AddedServicesEffectivityDatesModal({\n showEffetivityDatesModal,\n onClickOfUpdatePauseContract,\n isLoading,\n setShowEffetivityDatesModal,\n nextStep,\n updatedFormData,\n setUpdatedFormData,\n formData,\n setFormData,\n originalData,\n additionalMarketplaces,\n setShowDiscardModal,\n showDiscardModal,\n checkConditions,\n getObjectDifference,\n getAddedOrRemovedAMCServices,\n}) {\n const customStylesForAlert = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '580px ',\n width: '100% ',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n const monthlyServiceEnhancedOrAPlus =\n formData?.channel?.value === 'amazon' ? 'A+ Content' : 'Enhanced Content';\n\n const feeStructureAddendumChanges = (type) => {\n // variable for fee type change from retainer only to retainer +%REv Share\n const feeTypeChangeFromRetainer =\n originalData?.fee_structure?.[type]?.fee_type === 'Retainer Only' &&\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share';\n\n // variable for fee type change from rev share only to retainer +%REv Share\n const feeTypechangeFromRevShare =\n originalData.fee_structure?.[type]?.fee_type === 'Revenue Share Only' &&\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share';\n\n // if rev share changed.\n const revShareChanged = checkConditions(\n originalData?.fee_structure?.[type]?.rev_share,\n formData?.fee_structure?.[type]?.rev_share,\n );\n\n // thresholdtype if none\n const thresholdchangedNone =\n formData?.fee_structure?.[type]?.threshold_type === 'None' &&\n originalData?.fee_structure?.[type]?.threshold_type !== 'None' &&\n originalData?.fee_structure?.[type]?.threshold_type !== null;\n\n // threshold fixed type\n const formDataFixedThresholdType =\n (formData?.fee_structure?.[type]?.threshold_type === 'Fixed' ||\n formData?.fee_structure?.[type]?.threshold_type === null) &&\n originalData?.fee_structure?.[type]?.sales_threshold;\n\n const fixedThresholdType =\n checkConditions(\n formDataFixedThresholdType,\n formData?.fee_structure?.[type]?.sales_threshold,\n ) && formData?.fee_structure?.[type]?.threshold_type === 'Fixed';\n\n // threshold querterly and monthly\n const quarterlyandMonthlyThresholdType =\n (formData?.fee_structure?.[type]?.threshold_type === 'quarterly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.quarterly_rev_share || {},\n formData?.fee_structure?.[type]?.quarterly_rev_share || {},\n )) ||\n (formData?.fee_structure?.[type]?.threshold_type === 'monthly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.monthly_rev_share || {},\n formData?.fee_structure?.[type]?.monthly_rev_share || {},\n ));\n\n // if billing cap changed.\n\n const billingCapchanged = checkConditions(\n originalData?.fee_structure?.[type]?.billing_cap,\n formData?.fee_structure?.[type]?.billing_cap,\n );\n\n // if billing minimum changed\n const billingMinimumChanged = checkConditions(\n originalData?.fee_structure?.[type]?.billing_minimum,\n formData?.fee_structure?.[type]?.billing_minimum,\n );\n\n if (\n feeTypeChangeFromRetainer ||\n feeTypechangeFromRevShare ||\n revShareChanged ||\n thresholdchangedNone ||\n fixedThresholdType ||\n quarterlyandMonthlyThresholdType ||\n billingCapchanged ||\n billingMinimumChanged\n ) {\n return true;\n }\n return false;\n };\n\n const checkFeeStructureContainsRevShare = () => {\n if (formData?.seller_type?.label === 'Hybrid') {\n const sellerChanges = feeStructureAddendumChanges('seller', 'Seller');\n const vendorChanges = feeStructureAddendumChanges('vendor', 'Vendor');\n return sellerChanges || vendorChanges;\n }\n if (formData?.seller_type?.label === 'Seller') {\n return feeStructureAddendumChanges('seller', 'Seller');\n }\n if (formData?.seller_type?.label === 'Vendor') {\n return feeStructureAddendumChanges('vendor', 'Vendor');\n }\n return false;\n };\n\n const renderModalHeader = () => {\n return (\n
    \n Added Service Effectivity Dates\n
    \n \n When effectivity date selected is a past date, invoices might have\n already been issued and paid. Please reach out to Finance Team for any\n appropriate action required.\n \n {checkFeeStructureContainsRevShare() ? (\n <>\n
    \n \n If Rev share effectivity date is selected between 1-10 of the\n current month, please reach out to Finance team to do the\n necessary invoice adjustments.\n \n \n ) : (\n ''\n )}\n
    \n );\n };\n\n const renderModalFooter = () => {\n return (\n <>\n
    \n
    \n {\n nextStep();\n onClickOfUpdatePauseContract({ getPauseAgreement: false });\n }}\n type=\"button\"\n className=\"btn-primary on-boarding mr-5 pb-2 mb-1\"\n >\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n 'Confirm'\n )}\n \n {\n setShowEffetivityDatesModal({\n ...showEffetivityDatesModal,\n show: false,\n });\n setShowDiscardModal({\n ...showDiscardModal,\n show: true,\n clickedBtn: 'discard',\n openAfterEffectivityDateModal: true,\n });\n }}\n type=\"button\"\n className=\" btn-transparent w-50 on-boarding \"\n >\n Discard Changes\n \n
    \n \n );\n };\n\n const handleData = (field, dateValue, changedService) => {\n if (field?.label === 'Seller Monthly Service') {\n const updatedMarketplaces =\n updatedFormData?.additional_marketplaces?.create?.map((ele) => {\n if (\n ele.account_type === 'Seller' &&\n ele?.name === changedService?.name\n ) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n });\n\n const updatedServices =\n updatedFormData?.additional_monthly_services?.create?.map((ele) => {\n if (\n ele.account_type === 'Seller' &&\n ((ele?.name && ele?.name === changedService?.name) ||\n (ele?.id && ele?.service?.name === changedService?.service?.name))\n ) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n additional_marketplaces: {\n ...updatedFormData?.additional_marketplaces,\n create: updatedMarketplaces,\n },\n additional_monthly_services: {\n ...updatedFormData?.additional_monthly_services,\n create: updatedServices,\n },\n });\n\n const updatedMarketplacesFormData =\n formData?.additional_marketplaces?.map((ele) => {\n if (\n ele.account_type === 'Seller' &&\n ele?.name === changedService?.name\n ) {\n return { ...ele, effective_date: dateValue };\n }\n\n return ele;\n });\n\n const updatedServiceFormData = formData?.additional_monthly_services?.map(\n (ele) => {\n if (\n ele.account_type === 'Seller' &&\n ((ele?.name && ele?.name === changedService?.name) ||\n (ele?.id && ele?.service?.name === changedService?.service?.name))\n ) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n },\n );\n\n setFormData({\n ...formData,\n additional_marketplaces: updatedMarketplacesFormData,\n additional_monthly_services: updatedServiceFormData,\n });\n }\n if (field?.label === 'Vendor Monthly Service') {\n const updatedMarketplaces =\n updatedFormData?.additional_marketplaces?.create?.map((ele) => {\n if (\n ele.account_type === 'Vendor' &&\n ele?.name === changedService?.name\n ) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n });\n\n const updatedServices =\n updatedFormData?.additional_monthly_services?.create?.map((ele) => {\n if (\n ele.account_type === 'Vendor' &&\n ((ele?.name && ele?.name === changedService?.name) ||\n (ele?.id && ele?.service?.name === changedService?.service?.name))\n ) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n additional_marketplaces: {\n ...updatedFormData?.additional_marketplaces,\n create: updatedMarketplaces,\n },\n additional_monthly_services: {\n ...updatedFormData?.additional_monthly_services,\n create: updatedServices,\n },\n });\n\n const updatedMarketplacesFormData =\n formData?.additional_marketplaces?.map((ele) => {\n if (\n ele.account_type === 'Vendor' &&\n ele?.name === changedService?.name\n ) {\n return { ...ele, effective_date: dateValue };\n }\n\n return ele;\n });\n\n const updatedServiceFormData = formData?.additional_monthly_services?.map(\n (ele) => {\n if (\n ele.account_type === 'Vendor' &&\n ((ele?.name && ele?.name === changedService?.name) ||\n (ele?.id && ele?.service?.name === changedService?.service?.name))\n ) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n },\n );\n\n setFormData({\n ...formData,\n additional_marketplaces: updatedMarketplacesFormData,\n additional_monthly_services: updatedServiceFormData,\n });\n }\n\n if (field?.label === 'Listing Optimization') {\n setUpdatedFormData({\n ...updatedFormData,\n listing_optimization_effective_date: dateValue,\n });\n\n setFormData({\n ...formData,\n listing_optimization_effective_date: dateValue,\n });\n }\n\n if (field?.label === 'Listing Translation') {\n setUpdatedFormData({\n ...updatedFormData,\n listing_translation_effective_date: dateValue,\n });\n\n setFormData({\n ...formData,\n listing_translation_effective_date: dateValue,\n });\n }\n\n if (field?.label === 'Advertising Services') {\n const addedAMCServices = getAddedOrRemovedAMCServices(\n formData?.amc_services,\n originalData?.amc_services,\n );\n\n if (addedAMCServices?.length) {\n const updatedService = updatedFormData?.amc_services?.create?.map(\n (ele) => {\n if (ele?.name === changedService?.name) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n },\n );\n\n setUpdatedFormData({\n ...updatedFormData,\n amc_services: {\n ...updatedFormData?.amc_services,\n create: updatedService,\n },\n });\n\n const updatedServiceFormData = formData?.amc_services?.map((ele) => {\n if (ele?.name === changedService?.name) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n });\n\n setFormData({\n ...formData,\n amc_services: updatedServiceFormData,\n });\n }\n }\n\n if (field?.label === 'Standard Service') {\n const standardUsServicesUniqueResult =\n formData?.standard_us_services?.filter((obj) => {\n return !originalData?.standard_us_services?.some((obj2) => {\n return obj.name === obj2.name;\n });\n });\n\n if (standardUsServicesUniqueResult?.length) {\n const updatedService =\n updatedFormData?.standard_us_services?.create?.map((ele) => {\n if (ele?.name === changedService?.name) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_us_services: {\n ...updatedFormData?.standard_us_services,\n create: updatedService,\n },\n });\n\n const updatedServiceFormData = formData?.standard_us_services?.map(\n (ele) => {\n if (ele?.name === changedService?.name) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n },\n );\n\n setFormData({\n ...formData,\n standard_us_services: updatedServiceFormData,\n });\n }\n }\n\n if (field?.label === 'Standard Non-US Service') {\n const updatedService =\n updatedFormData?.standard_non_us_services?.create?.map((ele) => {\n if (\n ele?.name === changedService?.name &&\n ele?.marketplace === changedService?.marketplace\n ) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n });\n\n setUpdatedFormData({\n ...updatedFormData,\n standard_non_us_services: {\n ...updatedFormData?.standard_non_us_services,\n create: updatedService,\n },\n });\n\n const updatedServiceFormData = formData?.standard_non_us_services?.map(\n (ele) => {\n if (\n ele?.name === changedService?.name &&\n ele?.marketplace === changedService?.marketplace\n ) {\n return { ...ele, effective_date: dateValue };\n }\n return ele;\n },\n );\n\n setFormData({\n ...formData,\n standard_non_us_services: updatedServiceFormData,\n });\n }\n\n if (field?.label === 'Seller Fee Structure') {\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n seller: {\n ...updatedFormData?.fee_structure?.seller,\n effective_date: dateValue,\n },\n },\n });\n\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n seller: {\n ...formData?.fee_structure?.seller,\n effective_date: dateValue,\n },\n },\n });\n }\n\n if (field?.label === 'Vendor Fee Structure') {\n setUpdatedFormData({\n ...updatedFormData,\n fee_structure: {\n ...updatedFormData?.fee_structure,\n vendor: {\n ...updatedFormData?.fee_structure?.vendor,\n effective_date: dateValue,\n },\n },\n });\n\n setFormData({\n ...formData,\n fee_structure: {\n ...formData?.fee_structure,\n vendor: {\n ...formData?.fee_structure?.vendor,\n effective_date: dateValue,\n },\n },\n });\n }\n };\n\n const setFieldDate = (dateValue, field, index, changedService) => {\n const formattedDate = dayjs(dateValue).format('YYYY-MM-DD');\n handleData(field, formattedDate, changedService);\n };\n\n const setDate = (field, changedService) => {\n if (field?.label === 'Listing Optimization') {\n return formData?.listing_optimization_effective_date\n ? new Date(formData?.listing_optimization_effective_date)\n : '';\n }\n\n if (field?.label === 'Listing Translation') {\n return formData?.listing_translation_effective_date\n ? new Date(formData?.listing_translation_effective_date)\n : new Date();\n }\n\n if (field?.label === 'DSP Advertising') {\n return formData?.dsp_start_date ? new Date(formData?.dsp_start_date) : '';\n }\n\n if (field?.label === 'Standard Service') {\n return formData?.standard_us_services?.find(\n (item) => item?.name === changedService?.name,\n )?.effective_date\n ? new Date(\n formData?.standard_us_services?.find(\n (item) => item?.name === changedService?.name,\n )?.effective_date,\n )\n : new Date();\n }\n if (field?.label === 'Advertising Services') {\n return formData?.amc_services?.find(\n (item) => item?.name === changedService?.name,\n )?.effective_date\n ? new Date(\n formData?.amc_services?.find(\n (item) => item?.name === changedService?.name,\n )?.effective_date,\n )\n : new Date();\n }\n\n if (field?.label === 'Standard Non-US Service') {\n return formData?.standard_non_us_services?.find((item) => {\n if (item?.name === changedService?.name) {\n if (item?.marketplace === changedService?.marketplace) {\n return item;\n }\n }\n return null;\n })?.effective_date\n ? new Date(\n formData?.standard_non_us_services?.find((item) => {\n if (item?.name === changedService?.name) {\n if (item?.marketplace === changedService?.marketplace) {\n return item;\n }\n }\n return null;\n })?.effective_date,\n )\n : new Date();\n }\n if (field?.label === 'Seller Fee Structure') {\n return formData?.fee_structure?.seller?.effective_date\n ? new Date(formData?.fee_structure?.seller?.effective_date)\n : new Date();\n }\n if (field?.label === 'Vendor Fee Structure') {\n return formData?.fee_structure?.vendor?.effective_date\n ? new Date(formData?.fee_structure?.vendor?.effective_date)\n : new Date();\n }\n\n if (field?.label === 'Seller Monthly Service') {\n const monthlyMarketplaceService =\n formData?.additional_marketplaces?.filter(\n (item) =>\n item?.account_type === 'Seller' &&\n item?.name === changedService?.name,\n );\n\n const monthlyService =\n updatedFormData?.additional_monthly_services?.create?.filter((item) => {\n if (item?.account_type === 'Seller') {\n if (item?.id) {\n if (item?.service?.name === changedService?.service?.name) {\n return item;\n }\n } else if (item?.name && item?.name === changedService?.name) {\n return item;\n }\n }\n return null;\n });\n\n if (monthlyMarketplaceService?.length) {\n return monthlyMarketplaceService?.[0]?.effective_date\n ? new Date(monthlyMarketplaceService?.[0]?.effective_date)\n : new Date();\n }\n\n if (monthlyService?.length) {\n return monthlyService?.[0]?.effective_date\n ? new Date(monthlyService?.[0]?.effective_date)\n : new Date();\n }\n }\n\n if (field?.label === 'Vendor Monthly Service') {\n const monthlyMarketplaceService =\n formData?.additional_marketplaces?.filter(\n (item) =>\n item?.account_type === 'Vendor' &&\n item?.name === changedService?.name,\n );\n\n const monthlyService =\n updatedFormData?.additional_monthly_services?.create?.filter((item) => {\n if (item?.account_type === 'Vendor') {\n if (item?.id) {\n if (item?.service?.name === changedService?.service?.name) {\n return item;\n }\n } else if (item?.name === changedService?.name) {\n return item;\n }\n }\n return null;\n });\n\n if (monthlyMarketplaceService?.length) {\n return monthlyMarketplaceService?.[0]?.effective_date\n ? new Date(monthlyMarketplaceService?.[0]?.effective_date)\n : new Date();\n }\n\n if (monthlyService?.length) {\n return monthlyService?.[0]?.effective_date\n ? new Date(monthlyService?.[0]?.effective_date)\n : new Date();\n }\n }\n return null;\n };\n\n const setMinDate = () => {\n const date = new Date();\n const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\n return firstDay;\n };\n\n const displayDateInputBox = (field, index, changedService) => {\n return (\n \n \n {\n setFieldDate(event, field, index, changedService);\n }}\n format=\"MM/dd/yyyy\"\n minDate={setMinDate()}\n clearIcon={null}\n dayPlaceholder=\"DD\"\n monthPlaceholder=\"MM\"\n yearPlaceholder=\"YYYY\"\n placeholderText=\"Select Date\"\n />\n \n \n );\n };\n\n const displayMarketplaceName = (value, type, side) => {\n const marketplaceArray = additionalMarketplaces;\n\n const filteredMarketplace = marketplaceArray?.find(\n (op) => value === op.value,\n )?.label;\n return side === 'lhs'\n ? filteredMarketplace\n ? `${filteredMarketplace} Marketplace Management`\n : ''\n : filteredMarketplace;\n };\n\n const displayServiceLabel = (field) => {\n return (\n <>\n \n {field?.label}\n
    \n \n );\n };\n const displayServiceName = (key, field) => {\n if (key?.name === 'VAT Registration' || key?.name === 'VAT Filing') {\n return `${key?.name} (${displayMarketplaceName(\n key?.marketplace,\n 'vat',\n '',\n )})`;\n }\n if (\n field?.label === 'Seller Monthly Service' ||\n field?.label === 'Vendor Monthly Service'\n ) {\n return `${\n key?.name?.includes('.')\n ? displayMarketplaceName(key?.name, 'vat', '')\n : key?.name\n ? key?.name\n : key?.service?.name\n } ${\n key?.name === monthlyServiceEnhancedOrAPlus ||\n key?.service?.name === monthlyServiceEnhancedOrAPlus\n ? `(${key?.quantity})`\n : ''\n }\n `;\n }\n return `${key?.name ? key?.name : key?.service?.name}`;\n };\n\n const displayServices = (field) => {\n return field?.data?.map((key, index) => {\n return (\n <>\n
    {displayServiceName(key, field)}
    \n
    \n {' '}\n {displayDateInputBox(field, index, key)}\n
    \n \n );\n });\n };\n\n const displayListingServices = (field) => {\n return field?.fieldSet?.map((item) => {\n return (\n
    \n {item?.name}({item?.asin})\n
    \n );\n });\n };\n\n const renderMainSetOfServices = () => {\n return showEffetivityDatesModal?.data?.length ? (\n showEffetivityDatesModal?.data?.map((field, index) => {\n return (\n
    \n {' '}\n
    \n {displayServiceLabel(field)}\n\n {field?.data?.length ? (\n ''\n ) : (\n
    \n {' '}\n {displayDateInputBox(field, index, '')}\n
    \n )}\n {field?.fieldSet?.length\n ? field?.label === 'Listing Optimization' ||\n field?.label === 'Listing Translation'\n ? displayListingServices(field)\n : ''\n : ''}\n
    \n {field?.data?.length ? (\n
    {displayServices(field, index)}
    \n ) : (\n ''\n )}\n
    \n );\n })\n ) : (\n \n You have not added any new service but removed\n \n );\n };\n\n return (\n \n \n setShowEffetivityDatesModal({\n ...showEffetivityDatesModal,\n show: false,\n })\n }\n role=\"presentation\"\n />\n \n
    \n {renderModalHeader()}\n
    \n {renderMainSetOfServices()}\n
    \n {renderModalFooter()}\n
    \n
    \n \n );\n}\n\nexport default AddedServicesEffectivityDatesModal;\n\nAddedServicesEffectivityDatesModal.defaultProps = {\n showEffetivityDatesModal: {},\n isLoading: {},\n updatedFormData: {},\n formData: {},\n setShowEffetivityDatesModal: () => {},\n onClickOfUpdatePauseContract: () => {},\n nextStep: () => {},\n setUpdatedFormData: () => {},\n setFormData: () => {},\n setShowDiscardModal: () => {},\n checkConditions: () => {},\n getObjectDifference: () => {},\n showDiscardModal: {},\n originalData: {},\n additionalMarketplaces: [],\n getAddedOrRemovedAMCServices: () => {},\n};\n\nAddedServicesEffectivityDatesModal.propTypes = {\n updatedFormData: shape({}),\n formData: shape({}),\n showEffetivityDatesModal: shape({\n show: bool,\n }),\n isLoading: shape({\n loader: bool,\n type: string,\n }),\n onClickOfUpdatePauseContract: func,\n setShowEffetivityDatesModal: func,\n nextStep: func,\n setUpdatedFormData: func,\n setFormData: func,\n additionalMarketplaces: arrayOf(shape({})),\n setShowDiscardModal: func,\n showDiscardModal: shape({}),\n checkConditions: func,\n getObjectDifference: func,\n originalData: shape({}),\n getAddedOrRemovedAMCServices: func,\n};\n\nconst EffectivityDateModalDatePicker = styled.div`\n .react-calendar {\n position: fixed;\n left: 23%;\n top: 30%;\n }\n`;\n","/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\n\nimport axios from 'axios';\nimport cloneDeep from 'lodash/cloneDeep';\nimport queryString from 'query-string';\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useMediaQuery } from 'react-responsive';\nimport { toast, ToastContainer } from 'react-toastify';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useHistory, useLocation, useParams } from 'react-router-dom';\n\nimport PdfViewer from '../../common/PdfViewer';\nimport AgreementSidePanel from './AgreementRightSideSections/AgreementSidePanelContainer';\nimport ContractFooter from './ContractFooter/ContractFooter';\nimport THAD_SIGN_IMG from '../../constants/ThadSignImg';\nimport { getAccountDetails } from '../../store/actions/accountState';\nimport { getCustomerDetails } from '../../store/actions/customerState';\nimport { ContractTab } from '../../theme/AgreementStyle';\nimport {\n getNonUSStdServicesOfAddendum,\n getUpdatedStrByReplacingChannelType,\n} from './Common/commonFunctionsForUniqueServices';\nimport {\n BBEStandardLogo,\n CloseIcon,\n OrangeDownloadPdf,\n} from '../../theme/images';\nimport {\n Agreement,\n DSPAddendum,\n Addendum,\n Statement,\n} from './AgreementLeftSideSections';\nimport {\n RequestSignatureModal,\n DiscardChangesConfirmation,\n DiscountModal,\n ContractEditConfirmation,\n} from './ContractModals';\nimport {\n PageLoader,\n PageNotFound,\n Button,\n HeaderDownloadFuntionality,\n imageToDataURL,\n} from '../../common';\nimport {\n agreementTemplate,\n getcontract,\n getServicesFee,\n getServiceTypes,\n getDiscount,\n saveFeeStructure,\n getFeeStructure,\n saveStdServices,\n fetchAdvertisingServices,\n createAMCServicesBulk,\n} from '../../api/AgreementApi';\nimport {\n updateAccountDetails,\n createMarketplace,\n updateMarketplace,\n createAddendum,\n getAddendum,\n updateAddendum,\n createMarketplaceBulk,\n createAdditionalServiceBulk,\n getMarketplaces,\n getContractActivityLog,\n getDocumentList,\n createContractDesign,\n updateCustomerDetails,\n getOneTimeService,\n getThresholdType,\n getYoyPercentage,\n saveDiscount,\n getStandardServices,\n createStandardNonUSServiceBulk,\n createDSPMarketplacesBulk,\n getAgencyFee,\n getContractAddendum,\n saveDraftAddendum,\n getNonUSStandardServicesMarketplaces,\n} from '../../api';\nimport {\n AgreementDetails,\n feeStructureContainerDetails,\n DSPAddendumDetails,\n additionaMarketplaceAmount,\n AgreementSign,\n AddendumSign,\n RecurringLanguage,\n Recurring90DaysLanguage,\n PATH_CUSTOMER_DETAILS,\n PATH_CUSTOMER_LIST,\n thadDetails,\n PATH_AGREEMENT,\n displayFixedThresholdInfo,\n displayFixedRetainerInfo,\n displayQuarterlyRetainerInfo,\n displayMonthlyRetainerInfo,\n displayFeeTypeInfo,\n displayRevenueShareInfo,\n displayBillingMinimumInfo,\n displayBillingCapInfo,\n revShareLimit,\n revShareThresholdLimit,\n monthlyRetainerLimit,\n SpreetailRole,\n SpreetailRoleRestrictMessage,\n monthlyRetainerLimitWalmart,\n revShareLimitWalmart,\n revShareThresholdLimitWalmart,\n oneTimeServicesHavingSubType,\n} from '../../constants';\n\nimport {\n oneTimeSpecificServices,\n oneTimeSpecificServicesFees,\n returnOneTimeServiceNames,\n returnOneTimeServiceFees,\n returnOneTimeServiceFeesTotal,\n} from '../../common/OneTimeServiceSubTabFunctions';\nimport AddedServicesEffectivityDatesModal from './ContractModals/AddedServicesEffectivityDatesModal';\n\nconst nonDraftCustomStyles = {\n width: '50%',\n margin: '0',\n paddingLeft: '0',\n paddingRight: '0',\n};\n\nexport default function ContractContainer() {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isSpreetailUser = userInfo?.role === SpreetailRole;\n const styleForChangedValues = `font-weight: 800; font-family: Helvetica-bold; background: #ffe5df; padding: 4px 9px;`;\n const defaultEffectivityDateText =\n '[choose either date of addendum or custom date]';\n const [logoURL, setLogoURL] = useState('');\n const dispatch = useDispatch();\n const location = useLocation();\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n const { id } = useParams();\n const [showEffetivityDatesModal, setShowEffetivityDatesModal] = useState({\n show: false,\n data: [],\n });\n const [data, setData] = useState([]);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [formData, setFormData] = useState({});\n const [originalData, setOriginalData] = useState({});\n const [updatedFormData, setUpdatedFormData] = useState({});\n const [showModal, setShowModal] = useState(false);\n const [amazonStoreCustom, setAmazonStoreCustom] = useState(false);\n const [showAmazonPlanDropdown, setShowAmazonPlanDropdown] = useState(false);\n const [showAmazonStorefrontDropdown, setShowAmazonStorefrontDropdown] =\n useState(false);\n\n const [showDiscardModal, setShowDiscardModal] = useState({\n clickedBtn: '',\n show: false,\n });\n const [isEditContract, setIsEditContract] = useState(false);\n const [details, setDetails] = useState({});\n const [marketplacesResult, setMarketplacesResult] = useState([]);\n\n const [editContractFlag, setEditContractFlag] = useState(true);\n const [showDiscountModal, setShowDiscountModal] = useState(false);\n const [\n showEditContractConfirmationModal,\n setShowEditContractConfirmationModal,\n ] = useState(false);\n\n const [isFooter, showFooter] = useState(false);\n const [newAddendumData, setNewAddendum] = useState(null);\n const [originalAddendumData, setOriginalAddendumData] = useState(null);\n\n const [showEditor, setShowEditor] = useState(false);\n const [pdfData, setPDFData] = useState('');\n const [startDate, setStartDate] = useState();\n\n const [notIncludedOneTimeServices, setNotIncludedOneTimeServices] = useState(\n [],\n );\n const [notIncludedMonthlyServices, setNotIncludedMonthlyServices] = useState(\n [],\n );\n const [additionalMonthlyServices, setMonthlyAdditionalServices] = useState(\n [],\n );\n\n const [additionalMarketplacesData, setAdditionalMarketplace] = useState({});\n const [additionalOnetimeServices, setAdditionalOnetimeServices] = useState(\n [],\n );\n\n const [apiError, setApiError] = useState({});\n const [sectionError, setSectionError] = useState({\n vendor: { feeType: 0 },\n seller: { feeType: 0 },\n });\n const [additionalMarketplaceError, setAdditionalMarketplaceError] = useState(\n {},\n );\n const [additionalMonthlySerError, setAdditionalMonthlySerError] = useState(\n {},\n );\n const [amcServiceError, setAmcServiceError] = useState({});\n const [nonUsServiceError, setNonUSserviceError] = useState({});\n\n const [additionalOnetimeSerError, setAdditionalOnetimeSerError] = useState(\n {},\n );\n const [customerError, setCustomerErrors] = useState({});\n\n const [contractError, setContractError] = useState({});\n const [feeStructureErrors, setFeeStructureErrors] = useState({});\n\n const [showAdditionalMarketplace, setShowAdditionalMarketplace] = useState({\n Seller: { showDropdown: false },\n Vendor: { showDropdown: false },\n });\n const [downloadApiCall, setDownloadApiCall] = useState(false);\n const [isDocRendered, setIsDocRendered] = useState(false);\n const [discountData, setDiscountData] = useState([]);\n const [showPageNotFound, setPageNotFoundFlag] = useState(false);\n const [showSection, setShowCollpase] = useState({\n addendum: false,\n dspAddendum: false,\n });\n const [openCollapse, setOpenCollapse] = useState({\n agreement: true,\n statement: false,\n addendum: false,\n dspAddendum: false,\n });\n\n const [loaderFlag, setLoaderFlag] = useState(true);\n const [contractDesignLoader, setContractDesignLoader] = useState(null);\n const [calculatedDate, setCalculatedDate] = useState(null);\n const [firstMonthDate, setFirstMonthDate] = useState(null);\n const [secondMonthDate, setSecondMonthDate] = useState(null);\n const [thirdMonthDate, setThirdMonthDate] = useState(null);\n const [endMonthDate, setEndDate] = useState(null);\n const [dspAdvertisingMaxDate, setDspAdvertisingMaxDate] = useState(null);\n const [tabInResponsive, setShowtabInResponsive] = useState('view-contract');\n const [discountFlag, setDiscountFlag] = useState({});\n const [selectedDiscount, setSelectedDiscount] = useState({});\n\n const [marketPlaces, setMarketPlaces] = useState([]);\n const [additionalMarketplaces, setAdditionalMarketplaces] = useState([]);\n const [dspAdditionalMarketplaces, setDspAdditionalMarketplaces] = useState(\n [],\n );\n const [activityData, setActivityData] = useState([]);\n const [activityCount, setActivityCount] = useState([]);\n const [pageNumber, setPageNumber] = useState();\n const [images, setImages] = useState([]);\n const [activityLoader, setActivityLoader] = useState(false);\n const [isApicalled, setIsApicalled] = useState(false);\n const [showSignSuccessMsg, setShowSignSuccessMsg] = useState(false);\n\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const isTablet = useMediaQuery({ minWidth: 768, maxWidth: 991 });\n const isMobile = useMediaQuery({ maxWidth: 767 });\n\n const [oneTimeService, setOneTimeService] = useState([]);\n const [monthlyService, setMonthlyService] = useState([]);\n const [AmazonStoreOptions, setAmazonStoreOptions] = useState(false);\n const [thresholdTypeOptions, setThresholdTypeOptions] = useState(false);\n const [yoyPercentageOptions, setYoyPercentageOptions] = useState(false);\n const [servicesFees, setServicesFees] = useState({});\n const [selectedCurrency, setSelectedCurrency] = useState('$ (USD)');\n const [stdServices, setStdServices] = useState([]);\n const [originalStandardServices, setOriginalStandardServices] = useState([]);\n const [agencyFeeOptions, setAgencyFeeOptions] = useState([]);\n const [disableCombineRevShare, setDisableCombineRevShare] = useState(true);\n const [contractAddendumDetails, setContractAddendumDetails] = useState({});\n const [showAddendum, setShowAddendum] = useState(false);\n const [addendumDetails, setAddendumDetails] = useState({});\n const [checkAddendumData, setCheckAddendumData] = useState(false);\n const [changedDspStartDateFlag, setChangedDspStartDateFlag] = useState(false);\n const [dspMarketpalcesError, setDspMarketpalcesError] = useState({});\n const [helloSignEnterDateTextFlag, setHelloSignEnterDateTextFlag] =\n useState(false);\n const [enableDownloadBtn, setEnableDownloadBtn] = useState(false);\n const [vatMarketplaces, setVatMarketplaces] = useState([]);\n const [combinedOneTimeServices, setcombinedOneTimeServices] = useState([]);\n const [notIncludedOneTimeServicesNew, setNotIncludedOneTimeServicesNew] =\n useState([]);\n\n const [savedMarketplaces, setSavedMarketplaces] = useState([\n {\n dsp: [],\n recurring: [],\n localDsp: [],\n localPrimaryRecurring: [],\n localAdditionalRecurring: [],\n },\n ]);\n const [advertisingServices, setAdvertisingService] = useState([]);\n\n const detailsId = details?.id;\n const contractStatusValue = details?.contract_status?.value;\n const contractTypeDsp = formData?.contract_type\n ?.toLowerCase()\n .includes('dsp');\n const contractTypeRecurring = formData?.contract_type\n ?.toLowerCase()\n .includes('recurring');\n const contractTypeOne = formData?.contract_type\n ?.toLowerCase()\n .includes('one');\n const accountType = formData?.seller_type?.value;\n\n const primaryMarketplaceName = details?.primary_marketplace?.name;\n const customerCompanyName = formData?.customer_id?.company_name;\n const customerAddress = formData?.customer_id?.address;\n const customerState = formData?.customer_id?.state;\n const customerCity = formData?.customer_id?.city;\n const customerZipCode = formData?.customer_id?.zip_code;\n const multipleAgreement = useSelector(\n (state) => state.accountState.multipleAgreement,\n );\n\n const monthlyRetainerLimitValue =\n formData?.channel?.value === 'amazon'\n ? monthlyRetainerLimit\n : monthlyRetainerLimitWalmart;\n const revShareLimitValue =\n formData?.channel?.value === 'amazon'\n ? revShareLimit\n : revShareLimitWalmart;\n const revShareThresholdLimitValue =\n formData?.channel?.value === 'amazon'\n ? revShareThresholdLimit\n : revShareThresholdLimitWalmart;\n\n const monthlyServiceEnhancedOrAPlus =\n formData?.channel?.value === 'amazon' ? 'A+ Content' : 'Enhanced Content';\n\n useEffect(() => {\n dispatch(getAccountDetails(id));\n dispatch(getCustomerDetails(id));\n }, []);\n\n // get bbe logo base64 url\n const getBase64Image = useCallback(() => {\n imageToDataURL(BBEStandardLogo).then((response) => {\n setLogoURL(response?.data);\n });\n }, []);\n\n // useeffect\n useEffect(() => {\n getBase64Image();\n }, []);\n\n // (For dont disable) Remove marketplace name of addendum contracts for himself.\n const checkAddendumStatusForMarketPlaces = (\n addendumStatus,\n option,\n formDataId,\n ) => {\n if (formDataId !== undefined) {\n if (\n option?.contract_addendum?.[0]?.addendum_status === addendumStatus &&\n option?.id !== formDataId\n ) {\n return (\n option?.contract_addendum?.[0]?.addendum_status === addendumStatus\n );\n }\n }\n return false;\n };\n\n // Filter all the marketplaces according to status for same marketplaces disabled functionality\n const getSavedMarketplaces = () => {\n const contractStatusForAddendum = [\n 'pending addendum approval',\n 'pending addendum',\n ];\n\n const checkAddendumStatusForMarketPlacesTemp = (option, formDataId) => {\n for (const addendumStatusMarketPlaces of contractStatusForAddendum) {\n return checkAddendumStatusForMarketPlaces(\n addendumStatusMarketPlaces,\n option,\n formDataId,\n );\n }\n return false;\n };\n\n const filteredAgreementTemp = multipleAgreement.filter(\n (op) =>\n op?.contract_status?.value === 'pending contract signature' ||\n ((op?.contract_status?.value === 'active' ||\n op?.contract_status?.value === 'renewed') &&\n (op?.contract_addendum\n ? op?.contract_addendum?.[0]?.addendum_status ===\n 'pending addendum signature' ||\n op?.contract_addendum?.[0]?.addendum_status === 'active' ||\n checkAddendumStatusForMarketPlacesTemp(\n op,\n formData?.id?.startsWith('COA')\n ? formData?.contract\n : formData?.id,\n )\n : true)) ||\n op?.contract_addendum?.[0]?.addendum_status ===\n 'pending addendum signature' ||\n op?.contract_addendum?.[0]?.addendum_status === 'active' ||\n checkAddendumStatusForMarketPlacesTemp(\n op,\n formData?.id?.startsWith('COA') ? formData?.contract : formData?.id,\n ),\n );\n\n // Remove contracts whose status are cancel and inactive.\n const filteredAgreementcancel = filteredAgreementTemp?.filter(\n (op) => op?.contract_status?.value !== 'cancel',\n );\n\n const filteredAgreement = filteredAgreementcancel?.filter(\n (op) => op?.contract_status?.value !== 'inactive',\n );\n\n const dspMarketplaces = [];\n const localAdditionalMarketplaces = [];\n const primaryMarketplace = [];\n for (const item of filteredAgreement) {\n // get all the dsp marketplaces of active/pending sign agreement\n if (item?.dsp_marketplaces?.length) {\n for (const dsp of item.dsp_marketplaces) {\n dspMarketplaces.push(dsp.name);\n }\n }\n\n // get all the dsp marketplaces of addendum pending signature agreement\n if (\n item?.contract_addendum?.[0]?.addendum_status ===\n 'pending addendum signature' &&\n item?.contract_addendum[0]?.dsp_marketplaces?.length\n ) {\n for (const dsp of item?.contract_addendum[0]?.dsp_marketplaces) {\n dspMarketplaces.push(dsp.name);\n }\n }\n\n // get all the additional marketplaces of active/pending sign agreement according to account type\n if (item?.additional_marketplaces?.length) {\n for (const additional of item.additional_marketplaces) {\n localAdditionalMarketplaces.push({\n type: additional.account_type?.toLowerCase(),\n name: additional.name,\n is_primary: false,\n });\n }\n }\n\n // get all the additional marketplaces of addendum pending signature agreement\n if (\n item?.contract_addendum?.[0]?.addendum_status ===\n 'pending addendum signature' &&\n item?.contract_addendum?.length &&\n item?.contract_addendum[0]?.additional_marketplaces\n ) {\n for (const additional of item?.contract_addendum[0]\n ?.additional_marketplaces) {\n localAdditionalMarketplaces.push({\n type: additional.account_type?.toLowerCase(),\n name: additional.name,\n is_primary: false,\n });\n }\n }\n\n // get all the primary marketplace of active/pending sign agreement according to account type\n if (\n item?.primary_marketplace &&\n Object.keys(item.primary_marketplace)?.length\n ) {\n if (item?.seller_type?.value === 'Hybrid') {\n primaryMarketplace.push(\n {\n type: 'seller',\n name: item?.primary_marketplace?.name,\n is_primary: true,\n },\n {\n type: 'vendor',\n name: item?.primary_marketplace?.name,\n is_primary: true,\n },\n );\n } else {\n primaryMarketplace.push({\n type: item?.seller_type?.value?.toLowerCase(),\n name: item?.primary_marketplace?.name,\n is_primary: true,\n });\n }\n }\n }\n\n setSavedMarketplaces({\n dsp: dspMarketplaces,\n recurring: [...primaryMarketplace, ...localAdditionalMarketplaces],\n });\n };\n\n useEffect(() => {\n getSavedMarketplaces();\n }, [multipleAgreement, formData?.id, formData?.contract]);\n\n useEffect(() => {\n // check for unique dsp marketplaces before request approval/sign\n const dspMarketplacesInFormData = formData?.dsp_marketplaces?.map(\n (item) => item?.name,\n );\n let sameDspMarketPlacesTemp1 = [];\n let samePrimaryMarketPlacesTemp = [];\n let sameAdditionalMarketPlacesTemp = [];\n\n if (savedMarketplaces?.dsp?.length) {\n const sameDspMarketPlacesTemp = savedMarketplaces?.dsp?.filter((item1) =>\n dspMarketplacesInFormData?.some((item2) => item1 === item2),\n );\n sameDspMarketPlacesTemp1 = sameDspMarketPlacesTemp?.length\n ? sameDspMarketPlacesTemp\n : [];\n }\n\n // check for unique primary marketplaces before request approval/sign\n\n if (\n savedMarketplaces?.recurring?.length &&\n formData?.primary_marketplace?.name\n ) {\n samePrimaryMarketPlacesTemp = savedMarketplaces?.recurring?.filter(\n (item) =>\n item.name === formData?.primary_marketplace?.name &&\n item?.is_primary === formData?.primary_marketplace?.is_primary,\n );\n setSavedMarketplaces({\n ...savedMarketplaces,\n localPrimaryRecurring: samePrimaryMarketPlacesTemp,\n localAdditionalRecurring: sameAdditionalMarketPlacesTemp,\n localDsp: sameDspMarketPlacesTemp1,\n });\n }\n\n // check for unique additional marketplaces before request approval/sign\n if (\n savedMarketplaces?.recurring?.length &&\n formData?.additional_marketplaces?.length\n ) {\n sameAdditionalMarketPlacesTemp = savedMarketplaces?.recurring?.filter(\n (elem) =>\n formData?.additional_marketplaces?.some(\n ({ name, account_type: localAccountType }) =>\n elem.name === name &&\n elem.type?.toLowerCase() === localAccountType?.toLowerCase(),\n ),\n );\n\n setTimeout(() => {\n setSavedMarketplaces({\n ...savedMarketplaces,\n localPrimaryRecurring: samePrimaryMarketPlacesTemp,\n localAdditionalRecurring: sameAdditionalMarketPlacesTemp,\n localDsp: sameDspMarketPlacesTemp1,\n });\n }, 1000);\n }\n }, [\n savedMarketplaces.recurring,\n formData.additional_marketplaces,\n formData.primary_marketplace,\n savedMarketplaces.dsp,\n formData.dsp_marketplaces,\n ]);\n\n // new code for not Included one time services\n const filterNotIncludedOneTimeServices = () => {\n let includedServices = [];\n // eslint-disable-next-line no-unused-vars\n const includedServicesTemp = formData?.additional_one_time_services?.filter(\n (service) => {\n if (service?.quantity) {\n includedServices.push(service?.service?.name || service?.name);\n }\n return null;\n },\n );\n includedServices = includedServices?.filter(Boolean);\n const servicesNotIncluded = oneTimeService?.filter((service) => {\n return !includedServices?.some((service1) => {\n return service?.label === service1;\n });\n });\n setNotIncludedOneTimeServicesNew(servicesNotIncluded);\n };\n useEffect(() => {\n filterNotIncludedOneTimeServices();\n }, [formData.additional_one_time_services, oneTimeService]);\n\n useEffect(() => {\n const availableAdditionalMarketplaces =\n formData?.additional_marketplaces?.map((item) => item.account_type);\n if (!availableAdditionalMarketplaces?.length) {\n setShowAdditionalMarketplace({\n Seller: { showDropdown: false },\n Vendor: { showDropdown: false },\n });\n }\n }, [formData?.additional_marketplaces]);\n\n const displayMarketplaceName = (value, type, side) => {\n const marketplaceArray =\n type === 'primary'\n ? marketPlaces\n : type === 'vat'\n ? vatMarketplaces\n : type === 'dsp'\n ? dspAdditionalMarketplaces\n : additionalMarketplaces;\n const filteredMarketplace = marketplaceArray?.find(\n (op) => value === op.value,\n )?.label;\n return side === 'lhs'\n ? filteredMarketplace\n ? `${filteredMarketplace} Marketplace Management`\n : ''\n : filteredMarketplace;\n };\n\n useEffect(() => {\n displayMarketplaceName();\n }, [marketPlaces, additionalMarketplaces, formData, vatMarketplaces]);\n\n useEffect(() => {\n if (formData?.dsp_start_date) {\n setFirstMonthDate(new Date(formData?.dsp_start_date));\n }\n }, [formData?.dsp_start_date]);\n\n // set second and third month dsp dates\n const getFutureMonths = (theDate, addMonths) => {\n return new Date(theDate.getFullYear(), theDate.getMonth() + addMonths, 1);\n };\n useEffect(() => {\n if (formData?.dsp_start_date) {\n const secondMonth = getFutureMonths(\n new Date(formData?.dsp_start_date),\n 1,\n );\n const thirdMonth = getFutureMonths(new Date(formData?.dsp_start_date), 2);\n setSecondMonthDate(new Date(secondMonth));\n setThirdMonthDate(new Date(thirdMonth));\n }\n }, [\n formData?.dsp_start_date,\n formData?.changed_dsp_start_date,\n formData?.start_date,\n formData?.additional_monthly_services,\n firstMonthDate,\n ]);\n\n const findNotIncludedOneTimeServices = () => {\n // combine the sub categories from DB and non selected\n const savedSubOneTimeServices =\n details?.additional_one_time_services?.filter(\n (op) =>\n op?.service?.name?.includes('Infographics') ||\n op?.service?.name?.includes('Amazon Storefront') ||\n op?.service?.name?.includes('A+'),\n );\n let original = oneTimeService?.filter(\n (op) =>\n op?.label?.includes('Infographics') ||\n op?.label?.includes('Amazon Storefront') ||\n op?.label?.includes('A+'),\n );\n original = original?.filter((op) => op?.label !== 'A+ Content');\n\n const formattedSubService = [];\n for (const item of original) {\n formattedSubService.push({\n name: item.label,\n quantity: 0,\n service_id: item.value,\n contract_id: formData.id,\n });\n }\n const uniqueResult = formattedSubService?.filter((obj) => {\n return !savedSubOneTimeServices?.some((obj2) => {\n return (\n obj.name === obj2.service?.name &&\n obj.quantity !== 0 &&\n obj2.quantity !== 0\n );\n });\n });\n\n const mostUniqueResult = uniqueResult?.filter((obj) => {\n return !savedSubOneTimeServices?.some((obj2) => {\n return obj?.name === obj2?.service?.name;\n });\n });\n\n const subTabNameTemp1 = [];\n // eslint-disable-next-line no-unused-vars\n const subTabNameTemp2 = savedSubOneTimeServices?.map((obj) =>\n subTabNameTemp1.push(obj?.service?.name),\n );\n const subTabNameTemp3 = [];\n // eslint-disable-next-line no-unused-vars\n const subTabNameTemp4 = subTabNameTemp1?.map((obj) =>\n subTabNameTemp3.push(...obj.split(' ', 1)),\n );\n // eslint-disable-next-line no-unused-vars\n const addAPlusTemp = subTabNameTemp3?.map((item) => {\n if (item === 'Premium') subTabNameTemp3.push('A+');\n return null;\n });\n const subTabNameTemp5 = [...new Set(subTabNameTemp3)];\n\n let mostUniqueResult1 = mostUniqueResult?.filter((obj) => {\n return subTabNameTemp5?.some((obj2) => {\n return obj?.name.includes(obj2);\n });\n });\n\n mostUniqueResult1 = mostUniqueResult1?.filter(\n (op) => op?.name !== 'A+ Content',\n );\n\n setcombinedOneTimeServices(mostUniqueResult1);\n if (formData?.additional_one_time_services?.length) {\n const combined = [\n ...mostUniqueResult1,\n ...formData.additional_one_time_services,\n ];\n setFormData({\n ...formData,\n additional_one_time_services: combined,\n });\n if (formData?.contract_type?.includes('one')) {\n // setAdditionalOnetimeServices({\n // ...additionalOnetimeServices,\n // create: [\n // ...formData.additional_one_time_services,\n // ...mostUniqueResult1,\n // ],\n // });\n } else {\n setAdditionalOnetimeServices({\n ...additionalOnetimeServices,\n create: [...additionalOnetimeServices.create, ...mostUniqueResult1],\n });\n }\n }\n };\n useEffect(() => {\n findNotIncludedOneTimeServices();\n if (formData?.contract_type?.includes('one')) {\n setTimeout(() => {\n findNotIncludedOneTimeServices();\n }, 500);\n }\n }, [\n details.additional_one_time_services,\n oneTimeService,\n formData.contract_type,\n ]);\n\n const displayNumber = (num) => {\n const res = num?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return res;\n };\n\n const executeScroll = (eleId) => {\n const element = document.getElementById(eleId);\n\n if (element) {\n element.scrollIntoView(true);\n }\n };\n\n if (\n isLoading.loader === true &&\n isLoading.type === 'page' &&\n detailsId &&\n Object.keys(data)?.length &&\n loaderFlag === true\n ) {\n setIsLoading({ loader: false, type: 'page' });\n setLoaderFlag(false);\n }\n\n const fetchUncommonOptions = (options, alreadySelected, type) => {\n let result = [];\n let resultDataForMonthly = [];\n if (alreadySelected?.length && options && options.length) {\n if (type === 'monthly_service') {\n const SellerSelectedServices = alreadySelected.filter(\n (item) => item.account_type === 'Seller',\n );\n\n const VendorSelectedServices = alreadySelected.filter(\n (item) => item.account_type === 'Vendor',\n );\n\n let notFoundSeller = [];\n let notfoundVendor = [];\n\n if (options?.length && SellerSelectedServices?.length) {\n for (const option of options) {\n let isFound = true;\n\n for (const service of SellerSelectedServices) {\n if (\n service?.service?.name\n ? service.service.name !== option.name\n : service.name !== option.name\n ) {\n isFound = false;\n } else {\n isFound = true;\n break;\n }\n }\n\n if (isFound === false) {\n notFoundSeller.push(option);\n }\n }\n } else {\n notFoundSeller = options;\n }\n\n if (options?.length && VendorSelectedServices?.length) {\n for (const option of options) {\n let isFound = true;\n\n for (const service of VendorSelectedServices) {\n if (\n service?.service?.name\n ? service.service.name !== option.name\n : service.name !== option.name\n ) {\n isFound = false;\n } else {\n isFound = true;\n break;\n }\n }\n\n if (isFound === false) {\n notfoundVendor.push(option);\n }\n }\n } else {\n notfoundVendor = options;\n }\n\n if (details?.seller_type?.value === 'Seller') {\n resultDataForMonthly = notFoundSeller;\n }\n if (details?.seller_type?.value === 'Vendor') {\n resultDataForMonthly = notfoundVendor;\n }\n if (details?.seller_type?.value === 'Hybrid') {\n resultDataForMonthly = notFoundSeller.filter((o1) => {\n // filter out (!) items in result2\n return notfoundVendor.some((o2) => {\n return o1.name === o2.name;\n // assumes unique id\n });\n });\n }\n }\n\n if (type === 'one_time_service') {\n for (const option of options) {\n let isFound = true;\n for (const service of alreadySelected) {\n if (\n service?.service?.id\n ? service.service.id !== option.value\n : service.service_id !== option.value\n ) {\n isFound = false;\n } else {\n isFound = true;\n break;\n }\n }\n\n if (isFound === false) {\n if (type === 'monthly_service') {\n result.push(option);\n } else if (\n alreadySelected.find((item) =>\n item.name\n ? item.name.includes('Amazon Storefront')\n : item.service.name.includes('Amazon Storefront'),\n )\n ) {\n if (!option.label.includes('Amazon Storefront')) {\n result.push(option);\n }\n } else if (!option.label.includes('Amazon Storefront')) {\n result.push(option);\n } else if (\n result.find((item) => item.label.includes('Amazon Storefront'))\n ) {\n // dfgdfgh\n }\n }\n }\n }\n } else if (type === 'monthly_service') {\n result = options;\n } else {\n // Change Label for 3 amazon Storefront onetime services\n result = options?.filter(\n (item) => !item?.label?.includes('Amazon Storefront'),\n );\n }\n if (type === 'one_time_service') {\n if (setNotIncludedOneTimeServices) {\n setNotIncludedOneTimeServices(result);\n }\n }\n if (type === 'monthly_service') {\n if (setNotIncludedMonthlyServices) {\n setNotIncludedMonthlyServices(\n resultDataForMonthly?.length ? resultDataForMonthly : result,\n );\n }\n }\n };\n\n const splittedPath = location?.pathname?.split('/');\n\n const getContractActivityLogInfo = useCallback(\n (currentPage) => {\n if (userInfo?.role !== 'Customer') {\n setActivityLoader(true);\n getContractActivityLog(\n currentPage,\n contractAddendumDetails?.notActive\n ? contractAddendumDetails?.id\n : splittedPath && splittedPath[4],\n contractAddendumDetails?.notActive ? 'contract-addendum' : 'contract',\n ).then((response) => {\n setActivityData(response?.data?.results);\n setActivityCount(response?.data?.count);\n setPageNumber(currentPage);\n getDocumentList().then((picResponse) => {\n setImages(picResponse);\n });\n setActivityLoader(false);\n setIsApicalled(true);\n });\n }\n },\n [splittedPath, contractAddendumDetails],\n );\n\n useEffect(() => {\n if (contractAddendumDetails && Object.keys(contractAddendumDetails)?.length)\n getContractActivityLogInfo();\n }, [contractAddendumDetails]);\n\n if (!isLoading.loader && !activityLoader) {\n if (showSignSuccessMsg) {\n toast.success('Signature Requested Successfully!');\n setShowSignSuccessMsg(false);\n }\n }\n\n const checkContractStatus = () => {\n if (details?.contract_status) {\n if (\n contractStatusValue === 'pending account setup' ||\n contractStatusValue === 'active' ||\n contractStatusValue === 'renewed' ||\n contractStatusValue === 'cancel' ||\n contractStatusValue === 'pending for cancellation' ||\n contractStatusValue === 'pending cancellation approval' ||\n contractStatusValue === 'active pending for pause' ||\n contractStatusValue === 'pause' ||\n contractStatusValue === 'inactive' ||\n contractStatusValue === 'completed'\n ) {\n return true;\n }\n return false;\n }\n return false;\n };\n\n if (isDocRendered && formData?.id) {\n if (checkContractStatus()) {\n setIsDocRendered(false);\n setDownloadApiCall(true);\n }\n if (\n (contractTypeDsp || (contractTypeRecurring && showSection.dspAddendum)) &&\n (!formData.start_date ||\n (formData.start_date &&\n firstMonthDate &&\n secondMonthDate &&\n thirdMonthDate))\n ) {\n setIsDocRendered(false);\n setDownloadApiCall(true);\n }\n if (!contractTypeDsp && contractTypeRecurring && !showSection.dspAddendum) {\n setIsDocRendered(false);\n setDownloadApiCall(true);\n }\n if (contractTypeOne) {\n setIsDocRendered(false);\n setDownloadApiCall(true);\n }\n }\n\n const setMandatoryFieldsErrors = (contract) => {\n let agreementErrors = 0;\n let feeStructureErrorCount = 0;\n const statementErrors = 0;\n let dspErrors = 0;\n\n if (\n contract?.contract_type?.toLowerCase().includes('one') &&\n (contract.additional_one_time_services === null ||\n !contract.additional_one_time_services.length)\n ) {\n agreementErrors += 1;\n\n setAdditionalMonthlySerError({\n ...additionalMonthlySerError,\n required: 'At least 1 one time service required',\n });\n }\n\n AgreementDetails.forEach((item) => {\n if (item.key !== 'contract_address') {\n if (\n !(item.key === 'length' && contract?.contract_type === 'one time')\n ) {\n if (\n item.isMandatory &&\n item.field === 'customer' &&\n !(contract?.customer_id && contract.customer_id[item.key])\n ) {\n agreementErrors += 1;\n item.error = true;\n }\n if (\n item.isMandatory &&\n item.field !== 'customer' &&\n !(contract && contract[item.key])\n ) {\n agreementErrors += 1;\n item.error = true;\n }\n }\n } else {\n return (\n item &&\n item.sections.forEach((subItem) => {\n if (\n subItem &&\n subItem.isMandatory &&\n !(contract?.customer_id && contract.customer_id[subItem.key])\n ) {\n subItem.error = true;\n agreementErrors += 1;\n }\n })\n );\n }\n return null;\n });\n\n feeStructureContainerDetails.forEach((item) => {\n if (item.isMandatory && !(contract && contract[item.key])) {\n feeStructureErrorCount += 1;\n item.error = true;\n }\n });\n\n DSPAddendumDetails.forEach((item) => {\n if (item.isMandatory && !(contract && contract[item.key])) {\n if (contract?.contract_type?.toLowerCase().includes('dsp')) {\n dspErrors += 1;\n item.error = true;\n }\n\n if (\n contract?.contract_type?.toLowerCase().includes('recurring') &&\n item.key === 'dsp_length'\n ) {\n dspErrors += 1;\n item.error = true;\n } else if (!contract?.contract_type?.toLowerCase().includes('dsp')) {\n dspErrors += 1;\n item.error = true;\n }\n }\n });\n setSectionError({\n ...sectionError,\n agreement: agreementErrors,\n feeStructure: feeStructureErrorCount,\n statement: statementErrors,\n dsp: dspErrors,\n });\n };\n\n const getMonthlyServices = (type, channelType) => {\n getServiceTypes({ account_type: type, channel_type: channelType }).then(\n (res) => {\n const filteredMonthlyServices = {};\n\n if (res?.data?.Seller) {\n filteredMonthlyServices.Seller = res?.data?.Seller?.filter(\n (op) => !op.is_deleted,\n );\n }\n if (res?.data?.Vendor) {\n filteredMonthlyServices.Vendor = res?.data?.Vendor?.filter(\n (op) => !op.is_deleted,\n );\n }\n setMonthlyService(filteredMonthlyServices);\n },\n );\n };\n const getAdvertisingServices = () => {\n fetchAdvertisingServices().then((res) => {\n setAdvertisingService(res?.data);\n });\n };\n const getDiscountData = (contractId) => {\n getDiscount(contractId).then((res) => {\n if (res && res?.status === 200) {\n if (res?.data?.results?.length) {\n const result = res?.data?.results.map(\n (item) => Object.values(item)[0],\n );\n setDiscountData(result);\n }\n }\n });\n };\n\n const checkFixedRetainer = (section, contractData) => {\n if (\n (contractData?.fee_structure?.[section]?.retainer_type === null ||\n contractData?.fee_structure?.[section]?.retainer_type === 'Fixed') &&\n contractData?.fee_structure?.[section]?.monthly_retainer\n ) {\n return true;\n }\n\n if (\n contractData?.fee_structure?.[section]?.retainer_type === 'quarterly' &&\n contractData?.fee_structure?.[section]?.quarterly_monthly_retainer &&\n Object.keys(\n contractData?.fee_structure?.[section]?.quarterly_monthly_retainer,\n )?.length\n ) {\n return true;\n }\n\n if (\n contractData?.fee_structure?.[section]?.retainer_type === 'monthly' &&\n contractData?.fee_structure?.[section]?.monthly_monthly_retainer &&\n Object.keys(\n contractData?.fee_structure?.[section]?.monthly_monthly_retainer,\n )?.length\n ) {\n return true;\n }\n\n return false;\n };\n\n const checkMandatoryFieldsOfFeeType = (contractData, section) => {\n if (\n contractData &&\n contractData?.fee_structure?.[section]?.fee_type === 'Retainer Only' &&\n !checkFixedRetainer(section, contractData)\n ) {\n return false;\n }\n\n if (\n contractData &&\n contractData?.fee_structure?.[section]?.fee_type ===\n 'Revenue Share Only' &&\n !contractData?.fee_structure?.[section]?.rev_share\n ) {\n return false;\n }\n\n if (\n contractData &&\n contractData?.fee_structure?.[section]?.fee_type ===\n 'Retainer + % Rev Share'\n ) {\n if (\n !contractData?.fee_structure?.[section]?.rev_share ||\n !checkFixedRetainer(section, contractData)\n ) {\n // errorCount = 2;\n return false;\n }\n }\n\n return true;\n };\n const manageErrorCount = (type, contractData) => {\n if (type === 'Seller') {\n if (!(contractData && contractData?.fee_structure?.seller?.fee_type)) {\n setSectionError((prevErrors) => ({\n ...prevErrors,\n seller: { feeType: 1 },\n vendor: { feeType: 0 },\n }));\n } else {\n checkMandatoryFieldsOfFeeType(contractData, 'seller');\n }\n }\n\n if (type === 'Vendor') {\n if (\n !(\n contractData &&\n contractData?.fee_structure?.vendor?.vendor_billing_report\n )\n ) {\n setSectionError((prevErrors) => ({\n ...prevErrors,\n vendor: { feeType: 1 },\n seller: { feeType: 0 },\n }));\n }\n\n if (!(contractData && contractData?.fee_structure?.vendor?.fee_type)) {\n setSectionError((prevErrors) => ({\n ...prevErrors,\n vendor: {\n feeType:\n (prevErrors?.vendor?.feeType ? prevErrors?.vendor?.feeType : 0) +\n 1,\n },\n seller: { feeType: 0 },\n }));\n } else {\n checkMandatoryFieldsOfFeeType(contractData, 'vendor');\n }\n }\n if (type === 'Hybrid') {\n let sellerErrorcount = 0;\n let vendorErrorcount = 0;\n\n if (!(contractData && contractData?.fee_structure?.seller?.fee_type)) {\n sellerErrorcount += 1;\n setSectionError((prevErrors) => ({\n ...prevErrors,\n seller: { feeType: sellerErrorcount },\n }));\n } else {\n checkMandatoryFieldsOfFeeType(contractData, 'seller');\n }\n\n if (!(contractData && contractData?.fee_structure?.vendor?.fee_type)) {\n vendorErrorcount += 1;\n setSectionError((prevErrors) => ({\n ...prevErrors,\n vendor: { feeType: vendorErrorcount },\n }));\n } else {\n checkMandatoryFieldsOfFeeType(contractData, 'vendor');\n }\n\n if (\n !(\n contractData &&\n contractData?.fee_structure?.vendor?.vendor_billing_report\n )\n ) {\n setSectionError((prevErrors) => ({\n ...prevErrors,\n vendor: { feeType: prevErrors?.vendor?.feeType + 1 },\n seller: { feeType: prevErrors?.seller?.feeType },\n }));\n }\n }\n };\n\n const getServicesAccordingToAccType = (services, option) => {\n const result =\n services && services.filter((item) => item.account_type === option);\n return result;\n };\n\n const getData = (mrktplaceData, option) => {\n const result = getServicesAccordingToAccType(mrktplaceData, option);\n const multi = [];\n if (result && result.length) {\n for (const month of result) {\n const displayName = displayMarketplaceName(month.name);\n multi.push({\n label: displayName,\n value: month.name,\n });\n }\n }\n return { [option]: multi };\n };\n\n const setMarketplaceDropdownData = (\n sellerType = accountType,\n contract = formData,\n ) => {\n if (sellerType === 'Seller' || sellerType === 'Vendor') {\n const filterData = getData(contract?.additional_marketplaces, sellerType);\n if (filterData?.[sellerType]?.length) {\n setShowAdditionalMarketplace({\n [sellerType]: { showDropdown: true },\n });\n } else {\n setShowAdditionalMarketplace({\n [sellerType]: { showDropdown: false },\n });\n }\n }\n if (sellerType === 'Hybrid') {\n const sellerMarketplaceResult = getData(\n contract?.additional_marketplaces,\n 'Seller',\n );\n\n const vendorMarketplaceResult = getData(\n contract?.additional_marketplaces,\n 'Vendor',\n );\n\n if (\n sellerMarketplaceResult?.Seller?.length &&\n vendorMarketplaceResult?.Vendor?.length\n ) {\n setShowAdditionalMarketplace({\n Seller: { showDropdown: true },\n Vendor: { showDropdown: true },\n });\n } else if (sellerMarketplaceResult?.Seller?.length) {\n setShowAdditionalMarketplace({\n Seller: { showDropdown: true },\n Vendor: { showDropdown: false },\n });\n } else if (vendorMarketplaceResult?.Vendor?.length) {\n setShowAdditionalMarketplace({\n Vendor: { showDropdown: true },\n Seller: { showDropdown: false },\n });\n }\n }\n };\n const getFeeStructureDetails = (type, contract) => {\n if (!contract?.contract_type?.toLowerCase()?.includes('one')) {\n getFeeStructure(\n contract?.id,\n type === 'Hybrid' ? ['Seller', 'Vendor'] : type,\n ).then((res) => {\n if (res?.status === 500) {\n setFormData({\n ...contract,\n fee_structure: {\n seller: {},\n vendor: {},\n },\n });\n manageErrorCount(contract?.seller_type?.value, {\n ...contract,\n fee_structure: {\n seller: {},\n vendor: {},\n },\n });\n } else {\n setFormData({\n ...contract,\n fee_structure: {\n seller: res?.data?.seller || {},\n vendor: res?.data?.vendor || {},\n },\n });\n manageErrorCount(contract?.seller_type?.value, {\n ...contract,\n fee_structure: {\n seller: res?.data?.seller || {},\n vendor: res?.data?.vendor || {},\n },\n });\n if (res?.status === 200 && type === 'Hybrid')\n setDisableCombineRevShare(false);\n setMarketplaceDropdownData(type, contract);\n }\n });\n }\n };\n\n const onEditcontract = () => {\n setShowEditContractConfirmationModal(true);\n };\n\n const isMounted = useRef(false);\n\n useEffect(() => {\n if (isMounted.current) {\n setIsLoading({ loader: true, type: 'page' });\n setTimeout(() => setIsLoading({ loader: false, type: 'page' }), 500);\n } else {\n isMounted.current = true;\n }\n }, [isTablet, isMobile]);\n\n useEffect(() => {\n // whenever the account type is changed, run this code and show only the account management type from the choices API\n\n let tempService = [];\n const service = originalStandardServices;\n\n if (formData?.seller_type?.label === 'Seller') {\n tempService = service.filter(\n (ele) =>\n ele.value !== 'Vendor Account Management' &&\n ele.value !== 'Hybrid Account Management',\n );\n } else if (formData?.seller_type?.label === 'Vendor') {\n tempService = service.filter(\n (ele) =>\n ele.value !== 'Seller Account Management' &&\n ele.value !== 'Hybrid Account Management',\n );\n } else {\n tempService = service.filter(\n (ele) =>\n ele.value !== 'Seller Account Management' &&\n ele.value !== 'Vendor Account Management',\n );\n }\n setStdServices(tempService);\n }, [formData?.seller_type]);\n\n const showTabInResponsive = (section) => {\n if (section === 'edit-fields') {\n setShowtabInResponsive('edit-fields');\n }\n if (section === 'view-contract') {\n setShowtabInResponsive('view-contract');\n }\n };\n\n useEffect(() => {\n if (contractAddendumDetails.notActive) {\n executeScroll('draft-addendum');\n setShowCollpase({ ...showSection, addendum: true });\n setOpenCollapse({ ...openCollapse, addendum: true });\n }\n }, []);\n\n const onEditAddendum = () => {\n setShowEditor(true);\n if (isTablet || isMobile) {\n showTabInResponsive('view-contract');\n setTimeout(() => executeScroll('addendum'), 500);\n }\n };\n\n const clearError = () => {\n setApiError({});\n setAdditionalMarketplaceError({});\n setAdditionalMonthlySerError({});\n setAdditionalOnetimeSerError({});\n setContractError({});\n setCustomerErrors({});\n setFeeStructureErrors({});\n setNonUSserviceError({});\n };\n\n const handleNewDate = (monthDateOrder) => {\n const newDate = new Date(\n new Date(\n new Date(monthDateOrder).getFullYear(),\n new Date(monthDateOrder).getMonth() + 1,\n 0,\n ),\n );\n return newDate;\n };\n\n const returnDspMonthAndDays = () => {\n return `${\n formData?.changed_dsp_start_date\n ? `3 months and additional partial period`\n : `3 months`\n }`;\n };\n\n const calculateTotalDays = (flag = '') => {\n let firstMonthdays = 0;\n if (new Date(firstMonthDate).getDate() !== 1) {\n const totalDays = handleNewDate(firstMonthDate).getDate();\n const currentDate = new Date(firstMonthDate).getDate();\n firstMonthdays = totalDays - currentDate;\n } else {\n firstMonthdays = handleNewDate(firstMonthDate).getDate();\n }\n\n let extraDays = 0;\n if (new Date(firstMonthDate).getDate() !== 1) {\n extraDays = handleNewDate(endMonthDate).getDate();\n }\n const secondMonthdays = handleNewDate(secondMonthDate).getDate();\n const thirdMonthdays = handleNewDate(thirdMonthDate).getDate();\n const totaldays =\n firstMonthdays + extraDays + secondMonthdays + thirdMonthdays;\n\n if (flag === 'initial') {\n if (totaldays < 105) {\n return '3';\n }\n return '3.5';\n }\n if (totaldays < 105) {\n return `90 days (3 months)`;\n }\n return `105 days (3.5 months)`;\n };\n\n const mapDefaultValues = (key, label, type) => {\n if (\n type === 'amazon' &&\n key === 'seller_type' &&\n formData?.seller_type?.label === 'Hybrid'\n )\n return 'Seller';\n if (key === 'company_name') {\n return details && details.customer_id && details.customer_id[key]\n ? details && details.customer_id && details.customer_id[key]\n : `Client Name`;\n }\n\n if (key === 'length' && label === 'DSP service length') {\n if (contractTypeDsp) {\n return calculateTotalDays('initial');\n }\n if (\n formData[key] === undefined ||\n formData[key] === '' ||\n formData[key] === null\n ) {\n return `Enter ${label}`;\n }\n return formData?.length?.label && parseInt(formData.length.label, 10);\n }\n if (key === 'length') {\n return formData?.length?.label\n ? formData.length.label\n : formData.length\n ? formData.length\n : 'Select Length';\n }\n if (key === 'primary_marketplace') {\n if (details?.primary_marketplace) {\n return primaryMarketplaceName\n ? displayMarketplaceName(\n details.primary_marketplace.name,\n 'primary',\n 'lhs',\n )\n : displayMarketplaceName(\n details.primary_marketplace,\n 'primary',\n 'lhs',\n );\n }\n return `Enter ${label}.`;\n }\n\n if (key === 'start_date') {\n return startDate !== null\n ? `${dayjs(\n startDate,\n ).format('MM / DD / YYYY')}`\n : 'Select Date';\n }\n if (key === 'addendum_start_date') {\n return formData?.addendum_start_date !== null\n ? `${dayjs(\n formData?.addendum_start_date,\n ).format('MM / DD / YYYY')}`\n : 'Select Date';\n }\n if (key === 'current_date') {\n return dayjs(Date()).format('MM / DD / YYYY');\n }\n if (key === 'calculated_no_of_days') {\n return calculateTotalDays();\n }\n\n if (key === 'address') {\n if (\n (customerAddress === '' || customerAddress === null) &&\n (customerState === '' || customerState === null) &&\n (customerCity === '' || customerCity === null) &&\n (customerZipCode === '' || customerZipCode === null)\n ) {\n return `Enter Location`;\n }\n return `${customerAddress || ''}${\n customerAddress && (customerState || customerCity || customerZipCode)\n ? ','\n : ''\n }\n ${customerCity || ''}${\n customerCity && (customerState || customerZipCode) ? ',' : ''\n }\n ${customerState || ''}${customerState && customerZipCode ? ',' : ''} \n ${customerZipCode || ''}\n `;\n }\n\n if (details[key] === undefined || details[key] === '') {\n if (\n label === 'Dsp Fee' ||\n label === 'Dsp Fee Second' ||\n label === 'Dsp Fee Third'\n ) {\n return `Enter DSP Budget`;\n }\n return `Enter ${label}`;\n }\n\n if (key === 'threshold_type') {\n if (details && details[key] === 'YoY') {\n return 'YoY: All channel sales above previous year channel sales.';\n }\n if (details && details[key] === 'YoY + %') {\n return `YoY + %: All channel sales above a ${\n details && details.yoy_percentage\n ? details && details.yoy_percentage\n : `Enter ${label}.`\n } growth on previous year channel sales.`;\n }\n if (details && details[key] === 'Fixed') {\n return `Fixed: ${\n details && details.sales_threshold\n ? `${selectedCurrency}${displayNumber(details?.sales_threshold)}`\n : `Enter ${label}.`\n }`;\n }\n }\n\n if (type && type.includes('number')) {\n if (details && details[key]) {\n return `${\n type === 'number-currency' ? selectedCurrency : '%'\n }${displayNumber(details[key])}`;\n }\n return `Enter ${label}`;\n }\n\n const result =\n key === 'rev_share' || key === 'seller_type'\n ? details && details[key] && details[key].label\n ? details && details[key] && details[key].label\n : (details && details[key] === null) ||\n (details && details[key] === '') ||\n (details && details[key] === undefined)\n ? `Enter ${label}`\n : details && details[key]\n : details && details[key];\n\n return result;\n };\n\n useEffect(() => {\n if (\n history?.location?.search?.includes('verify-document') ||\n history?.location?.search?.includes('select-contact')\n ) {\n setHelloSignEnterDateTextFlag(true);\n } else {\n setHelloSignEnterDateTextFlag(false);\n }\n }, [history.location.search, formData.start_date, originalData.id]);\n\n useEffect(() => {\n if (\n (history?.location?.search?.includes('verify-document') ||\n history?.location?.search?.includes('select-contact')) &&\n originalData?.id\n ) {\n history.push(\n PATH_AGREEMENT.replace(':id', id).replace(\n ':contract_id',\n originalData?.id,\n ),\n );\n }\n }, [originalData.id]);\n\n const ShowRetainerThresholdValues = (\n type,\n key,\n quartelyKey,\n monthlyKey,\n option,\n label,\n ) => {\n return `${\n (formData?.fee_structure?.[type]?.[option] === null ||\n formData?.fee_structure?.[type]?.[option] === 'None') &&\n option === 'threshold_type'\n ? ''\n : formData?.fee_structure?.[type]?.[option] === 'Fixed' ||\n formData?.fee_structure?.[type]?.[option] === null\n ? ` \n Fixed ${label} \n ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.[key] || 0,\n )} \n ${\n label === 'Threshold'\n ? getUpdatedStrByReplacingChannelType(\n displayFixedThresholdInfo,\n formData,\n )\n : getUpdatedStrByReplacingChannelType(\n displayFixedRetainerInfo,\n formData,\n )\n } `\n : formData?.fee_structure?.[type]?.[option] === 'quarterly'\n ? ` \n Quarterly ${label} \n \n 1st Quarter:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['1st quarterly'],\n ) || 0\n }
    \n 2nd Quarter:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['2nd quarterly'],\n ) || 0\n }
    \n 3rd Quarter:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['3rd quarterly'],\n ) || 0\n }
    \n 4th Quarter:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['4th quarterly'],\n ) || 0\n }
    \n \n >${\n label === 'Threshold'\n ? getUpdatedStrByReplacingChannelType(\n displayFixedThresholdInfo,\n formData,\n )\n : getUpdatedStrByReplacingChannelType(\n displayQuarterlyRetainerInfo,\n formData,\n )\n }\n \n `\n : formData?.fee_structure?.[type]?.[option] === 'monthly'\n ? ` \n Monthly ${label} \n \n January:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['january month'],\n ) || 0\n }
    \n February:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['february month'],\n ) || 0\n }
    \n March:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['march month'],\n ) || 0\n }
    \n April:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['april month'],\n ) || 0\n }
    \n May:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['may month'],\n ) || 0\n }
    \n June:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['june month'],\n ) || 0\n }
    \n July:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['july month'],\n ) || 0\n }
    \n August:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['august month'],\n ) || 0\n }
    \n September:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'september month'\n ],\n ) || 0\n }
    \n October: ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['october month'],\n ) || 0\n }
    \n November:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['november month'],\n ) || 0\n }
    \n December:${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['december month'],\n ) || 0\n }
    \n \n ${\n label === 'Threshold'\n ? getUpdatedStrByReplacingChannelType(\n displayFixedThresholdInfo,\n formData,\n )\n : getUpdatedStrByReplacingChannelType(\n displayMonthlyRetainerInfo,\n formData,\n )\n }\n \n `\n : ''\n }`;\n };\n\n const feeStructure = (type) => {\n if (formData?.fee_structure?.[type]?.fee_type === 'Retainer Only') {\n return `\n
    \n \n \n \n \n \n \n ${ShowRetainerThresholdValues(\n type,\n 'monthly_retainer',\n 'quarterly_monthly_retainer',\n 'monthly_monthly_retainer',\n 'retainer_type',\n 'Retainer',\n )}\n
    Fee Type Retainer Only (${\n formData?.fee_structure?.[type]?.retainer_type === undefined ||\n formData?.fee_structure?.[type]?.retainer_type === null\n ? 'Fixed'\n : formData?.fee_structure?.[type]?.retainer_type\n } Retainer) ${displayFeeTypeInfo}
    \n
    \n `;\n }\n if (formData?.fee_structure?.[type]?.fee_type === 'Revenue Share Only') {\n return `
    \n \n \n \n \n \n \n \n \n \n \n ${ShowRetainerThresholdValues(\n type,\n 'sales_threshold',\n 'quarterly_rev_share',\n 'monthly_rev_share',\n 'threshold_type',\n 'Threshold',\n )}\n ${\n formData?.fee_structure?.[type]?.billing_minimum\n ? `\n \n \n `\n : ''\n }\n ${\n formData?.fee_structure?.[type]?.billing_cap\n ? `\n \n \n `\n : ''\n }\n
    Fee Type Revenue Share Only ${displayFeeTypeInfo}.
    Revenue Share %${displayNumber(\n formData?.fee_structure?.[type]?.rev_share || 0,\n )}% ${getUpdatedStrByReplacingChannelType(\n displayRevenueShareInfo,\n formData,\n )}
    Billing Minimum${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_minimum || 0,\n )} ${displayBillingMinimumInfo}
    Billing Cap${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_cap || 0,\n )} ${displayBillingCapInfo}
    \n
    `;\n }\n if (\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n return `
    \n \n \n \n \n \n \n ${ShowRetainerThresholdValues(\n type,\n 'monthly_retainer',\n 'quarterly_monthly_retainer',\n 'monthly_monthly_retainer',\n 'retainer_type',\n 'Retainer',\n )} \n \n \n \n \n \n ${ShowRetainerThresholdValues(\n type,\n 'sales_threshold',\n 'quarterly_rev_share',\n 'monthly_rev_share',\n 'threshold_type',\n 'Threshold',\n )}\n ${\n formData?.fee_structure?.[type]?.billing_cap\n ? `\n \n \n `\n : ''\n }\n
    Fee Type Retainer (${\n formData?.fee_structure?.[type]?.retainer_type === undefined ||\n formData?.fee_structure?.[type]?.retainer_type === null\n ? 'Fixed'\n : formData?.fee_structure?.[type]?.retainer_type\n } Retainer) + Rev Share \n (${\n formData?.fee_structure?.[type]?.threshold_type ===\n undefined ||\n formData?.fee_structure?.[type]?.threshold_type === null ||\n formData?.fee_structure?.[type]?.threshold_type === 'None'\n ? 'No'\n : formData?.fee_structure?.[type]?.threshold_type\n } Threshold) ${displayFeeTypeInfo}
    Revenue Share %${displayNumber(\n formData?.fee_structure?.[type]?.rev_share || 0,\n )}% ${getUpdatedStrByReplacingChannelType(\n displayRevenueShareInfo,\n formData,\n )}
    Billing Cap${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_cap || 0,\n )} ${displayBillingCapInfo}
    \n
    `;\n }\n return '';\n };\n\n const showRevTable = () => {\n if (formData?.seller_type?.label === 'Seller')\n return feeStructure('seller');\n if (formData?.seller_type?.label === 'Vendor')\n return feeStructure('vendor');\n if (formData?.seller_type?.label === 'Hybrid') {\n return `${feeStructure('seller')} \n
    \n Fees & Sales Commissions for ${\n formData?.channel?.label\n } Vendor Account\n \n
    Sales billed in arrears for the prior month in which sales were made on the account and calculated as follows:\n

    ${feeStructure('vendor')} `;\n }\n return '';\n };\n\n const mapThadSignImg = () => {\n return THAD_SIGN_IMG;\n };\n\n const customAmazonStorePrice = (fee) => {\n return `\n \n ${\n fee\n ? `${selectedCurrency}${displayNumber(fee)}`\n : `${selectedCurrency}0`\n }\n \n `;\n };\n const tdService = (service, fee) => {\n return `\n \n ${\n service.quantity && fee\n ? `${selectedCurrency}${displayNumber(service.quantity * fee)}`\n : `${selectedCurrency}0`\n }\n \n \n `;\n };\n\n const displayNumberOfASINs = (item) => {\n if (item?.name === monthlyServiceEnhancedOrAPlus) {\n return `(${item?.quantity} ASINs)`;\n }\n if (item?.service?.name === monthlyServiceEnhancedOrAPlus) {\n return `(${item?.quantity} ASINs)`;\n }\n return '';\n };\n const checkIsAPlusService = (item) => {\n if (item?.name === monthlyServiceEnhancedOrAPlus) {\n return true;\n }\n\n if (item?.service?.name === monthlyServiceEnhancedOrAPlus) {\n return true;\n }\n return false;\n };\n\n // return the onetime service table row\n const showOneTimeServiceSubTabRow = (fields, serviceName) => {\n const oneTimeSpecificServicesTemp = oneTimeSpecificServices(\n formData,\n serviceName,\n );\n const oneTimeSpecificServicesFeesTemp = oneTimeSpecificServicesFees(\n servicesFees,\n serviceName,\n );\n\n if (oneTimeSpecificServicesTemp?.length)\n fields.push(`\n \n \n\n ${oneTimeSpecificServicesTemp?.length ? '1' : ''}\n \n \n \n ${\n serviceName === 'A+'\n ? 'A+ Content'\n : serviceName === 'Enhanced'\n ? 'Enhanced Content'\n : serviceName\n } ${returnOneTimeServiceNames(oneTimeSpecificServicesTemp)}\n \n \n \n ${returnOneTimeServiceFees(\n servicesFees,\n selectedCurrency,\n oneTimeSpecificServicesTemp,\n oneTimeSpecificServicesFeesTemp,\n )}\n\n \n \n \n \n ${returnOneTimeServiceFeesTotal(\n servicesFees,\n selectedCurrency,\n oneTimeSpecificServicesTemp,\n oneTimeSpecificServicesFeesTemp,\n )}\n\n \n `);\n };\n\n const mapMonthlyServices = (key, monthlyServicesData, tableType) => {\n const fields = [];\n if (key === 'amc_services') {\n if (monthlyServicesData) {\n if (\n (formData?.is_dsp_advertising &&\n !contractAddendumDetails?.notActive &&\n !formData?.contract_type?.includes('dsp')) ||\n (contractAddendumDetails?.notActive &&\n formData?.is_dsp_advertising &&\n formData?.is_dsp_advertising !== originalData?.is_dsp_advertising)\n ) {\n fields.push(\n `\n DSP Advertising\n ${\n tableType === 'removed'\n ? ''\n : contractAddendumDetails?.notActive &&\n ` N/A`\n }\n N/A \n `,\n );\n }\n for (const item of monthlyServicesData) {\n fields.push(\n `\n AMC Management ${\n item.name\n }\n\n ${\n tableType === 'removed'\n ? ''\n : contractAddendumDetails?.notActive\n ? `${\n item?.name === 'DSP Advertising' ||\n item?.service?.name === 'DSP Advertising'\n ? 'N/A'\n : item?.id && item?.effective_date\n ? item?.effective_date\n : item?.id && !item?.effective_date\n ? formData?.contract_signed_date\n : defaultEffectivityDateText\n } `\n : ''\n }\n\n ${\n item?.fee\n ? `${selectedCurrency}${displayNumber(\n item?.fee,\n )} /month `\n : item?.name === 'Standard Dashboard' ||\n (item?.fee === 0 && item?.name === 'Advanced Dashboard')\n ? ` FOC `\n : item?.fee === 0\n ? `$0 /month `\n : ''\n }\n `,\n );\n }\n }\n } else if (key !== 'additional_one_time_services') {\n if (monthlyServicesData) {\n for (const item of monthlyServicesData) {\n const fixedFee = servicesFees.filter((n) => n.id === item.service_id);\n if (\n (item.service && item.service.name !== undefined) ||\n item.name !== undefined\n ) {\n if (\n item.name\n ? item.name !== 'Inventory Reconciliation'\n : item.service.name !== 'Inventory Reconciliation'\n ) {\n fields.push(\n `\n ${\n item.service ? item.service.name : item?.name\n } ${displayNumberOfASINs(item, fixedFee)}\n \n ${\n tableType === 'removed'\n ? null\n : contractAddendumDetails?.notActive\n ? `\n ${\n item?.name === 'DSP Advertising' ||\n item?.service?.name === 'DSP Advertising'\n ? 'N/A'\n : item?.id && item?.effective_date\n ? item?.effective_date\n : item?.id && !item?.effective_date\n ? formData?.contract_signed_date\n : defaultEffectivityDateText\n }\n `\n : null\n }\n ${\n item.service?.fee\n ? `\n \n \n ${selectedCurrency}${\n item.service\n ? `${displayNumber(\n item?.service?.name ===\n monthlyServiceEnhancedOrAPlus\n ? item.service.fee * item?.quantity\n : item.service.fee,\n )}`\n : item.fee\n ? displayNumber(\n item?.name === monthlyServiceEnhancedOrAPlus\n ? item.fee * item?.quantity\n : item.fee,\n )\n : ''\n } /month\n \n `\n : (\n item?.name\n ? item?.name === 'DSP Advertising'\n : item?.service?.name === 'DSP Advertising'\n )\n ? `\n \n N/A\n \n `\n : `\n \n ${\n fixedFee && fixedFee[0] && fixedFee[0].fee\n ? `${selectedCurrency}${displayNumber(\n checkIsAPlusService(item)\n ? fixedFee[0].fee * item?.quantity\n : fixedFee[0].fee,\n )} /month`\n : `${selectedCurrency}0`\n }\n \n `\n }\n `,\n );\n }\n }\n }\n }\n } else if (formData && formData.additional_one_time_services) {\n formData.additional_one_time_services\n .filter((item) =>\n item?.name\n ? !oneTimeServicesHavingSubType.includes(item?.name)\n : !oneTimeServicesHavingSubType.includes(item?.service?.name),\n )\n .forEach((service) => {\n const fixedFee = servicesFees.filter(\n (n) => n.id === service.service_id,\n );\n return fields.push(\n `\n \n \n ${service.quantity ? displayNumber(service.quantity) : 0}\n \n \n \n ${\n service.name\n ? service.name\n : service.service?.name\n ? service.service.name\n : ''\n }\n \n ${\n (\n service && service.name\n ? service.name.includes('Amazon Store Package Custom')\n : service?.service?.name.includes(\n 'Amazon Store Package Custom',\n )\n )\n ? service.custom_amazon_store_price\n ? `\n \n ${selectedCurrency}${displayNumber(\n service.custom_amazon_store_price,\n )}`\n : customAmazonStorePrice(\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n : service?.service?.fee\n ? customAmazonStorePrice(service?.service?.fee)\n : customAmazonStorePrice(\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n }\n ${\n (\n service && service.name\n ? service.name !== 'Amazon Store Package Custom'\n : service &&\n service.service?.name !== 'Amazon Store Package Custom'\n )\n ? service.quantity && service.service?.fee\n ? tdService(service, service.service?.fee)\n : tdService(\n service,\n fixedFee && fixedFee[0] && fixedFee[0].fee,\n )\n : service.quantity && service.custom_amazon_store_price\n ? tdService(service, service.custom_amazon_store_price)\n : tdService(service, fixedFee && fixedFee[0] && fixedFee[0].fee)\n } \n `,\n );\n });\n showOneTimeServiceSubTabRow(fields, 'Amazon Storefront');\n showOneTimeServiceSubTabRow(fields, 'Infographics');\n showOneTimeServiceSubTabRow(fields, 'A+');\n showOneTimeServiceSubTabRow(fields, 'Enhanced');\n showOneTimeServiceSubTabRow(fields, 'Walmart Storefront');\n }\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll('null', '')\n .replaceAll('undefined', '')\n : '';\n };\n\n const mapAdditionalMarketPlaces = (marketplaceData, tableType) => {\n const fields = [];\n if (marketplaceData) {\n for (const item of marketplaceData) {\n fields.push(\n ` \n ${displayMarketplaceName(\n item?.name || item?.service?.name,\n '',\n 'lhs',\n )}\n ${\n tableType === 'removed'\n ? ''\n : contractAddendumDetails?.notActive\n ? `${\n item?.id && item?.effective_date\n ? item?.effective_date\n : item?.id && !item?.effective_date\n ? formData?.contract_signed_date\n : defaultEffectivityDateText\n }`\n : null\n }\n ${\n item?.fee\n ? `\n \n\n ${selectedCurrency}${\n item.service\n ? displayNumber(item.service.fee)\n : item.fee\n ? displayNumber(item.fee)\n : ''\n }\n /month\n \n `\n : `\n \n \n ${selectedCurrency}${displayNumber(\n additionaMarketplaceAmount,\n )} /month\n \n `\n }\n `,\n );\n }\n }\n return fields.length\n ? fields.toString().replaceAll('>,<', '><').replaceAll('null', '')\n : '';\n };\n const mapVariableMonthlyService = (monthlyServicesData, tableType) => {\n const fields = [\n `\n Variable Monthly Services\n `,\n ];\n if (monthlyServicesData) {\n for (const item of monthlyServicesData) {\n if (\n item?.service?.name === 'Inventory Reconciliation' ||\n item?.name === 'Inventory Reconciliation'\n ) {\n fields.push(\n `\n ${\n item.service ? item.service.name : item?.name\n }\n ${\n tableType === 'removed'\n ? null\n : contractAddendumDetails?.notActive\n ? ''\n : null\n }\n \n \n\n 25% of recovered ${selectedCurrency}'s\n \n \n `,\n );\n }\n }\n return fields.length > 1\n ? fields.toString().replaceAll(',', '').replaceAll('null', '')\n : '';\n }\n return '';\n };\n\n const calculateTotalFee = (type, serviceData, marketplaceData, accntType) => {\n let oneTimeSubTotal = 0;\n let monthlySubTotal = 0;\n let oneTimeDiscount = 0;\n let monthlyDiscount = 0;\n let additionalMarketplacesTotal = 0;\n if (formData) {\n if (type === 'monthly') {\n // caculate the total of additional monthly serviece\n if (serviceData) {\n if (!accntType) {\n serviceData.forEach((item) => {\n if (item?.fee) monthlySubTotal += Number(item?.fee);\n });\n } else {\n serviceData.forEach((item) => {\n if (item && item.service) {\n if (item?.service?.name === monthlyServiceEnhancedOrAPlus) {\n monthlySubTotal += item.service.fee * item?.quantity;\n } else {\n monthlySubTotal += item.service.fee;\n }\n } else {\n const fixedFee = servicesFees.filter(\n (n) => n.id === item.service_id,\n );\n\n if (item?.name === monthlyServiceEnhancedOrAPlus) {\n monthlySubTotal += fixedFee[0].fee * item?.quantity;\n } else {\n monthlySubTotal += fixedFee[0].fee;\n }\n }\n });\n }\n }\n if (accntType) {\n if (marketplaceData && marketplaceData !== null) {\n // calculate the total of additional marketplaces\n marketplaceData.forEach((item) => {\n if (item && item.fee) {\n additionalMarketplacesTotal += item.fee;\n } else {\n additionalMarketplacesTotal += additionaMarketplaceAmount;\n }\n });\n\n monthlySubTotal += additionalMarketplacesTotal;\n }\n }\n let monthlyDiscountData = 0;\n if (accountType === '') {\n monthlyDiscountData = discountData.find(\n (item) => item.is_amc_service_discount,\n );\n } else {\n monthlyDiscountData = discountData.find(\n (item) =>\n item.service_type === 'monthly service' &&\n item?.account_type?.toLowerCase() === accntType?.toLowerCase(),\n );\n }\n\n if (monthlyDiscountData !== null) {\n const discountType = monthlyDiscountData?.type;\n if (discountType === 'percentage') {\n monthlyDiscount =\n (monthlySubTotal * monthlyDiscountData?.amount) / 100;\n } else if (discountType === 'fixed amount') {\n monthlyDiscount = monthlyDiscountData?.amount;\n }\n } else {\n monthlyDiscount = monthlyDiscountData?.amount;\n }\n return {\n monthlySubTotal,\n monthlyAmountAfterDiscount: monthlyDiscount,\n monthlyTotal: monthlySubTotal - monthlyDiscount,\n monthlyDiscountType: monthlyDiscountData?.type,\n monthlyDiscount: monthlyDiscountData?.amount,\n };\n }\n if (type === 'onetime' && formData.additional_one_time_services) {\n formData.additional_one_time_services.forEach((item) => {\n const { quantity } = item;\n\n if (item.custom_amazon_store_price) {\n oneTimeSubTotal += item.custom_amazon_store_price * quantity;\n } else if (item?.service) {\n oneTimeSubTotal += item.service.fee * quantity;\n } else {\n let fixedFee = servicesFees.filter((n) => n.id === item.service_id);\n fixedFee =\n fixedFee && fixedFee[0] && fixedFee[0].fee ? fixedFee[0].fee : 0;\n oneTimeSubTotal += fixedFee * quantity;\n }\n });\n\n const oneTimeDiscountData = discountData.find(\n (item) => item.service_type === 'one time service',\n );\n\n if (oneTimeDiscountData !== null) {\n const discountType = oneTimeDiscountData?.type;\n if (discountType === 'percentage') {\n oneTimeDiscount =\n (oneTimeSubTotal * oneTimeDiscountData?.amount) / 100;\n } else if (discountType === 'fixed amount') {\n oneTimeDiscount = oneTimeDiscountData?.amount;\n }\n } else {\n oneTimeDiscount = oneTimeDiscountData?.amount;\n }\n\n return {\n oneTimeSubTotal,\n oneTimeAmountAfterDiscount: oneTimeDiscount,\n oneTimeTotal: oneTimeSubTotal - oneTimeDiscount,\n oneTimeDiscountType: oneTimeDiscountData?.type,\n oneTimeDiscount: oneTimeDiscountData?.amount,\n };\n }\n }\n return 0;\n };\n\n const mapServiceTotal = () => {\n const totalFees = calculateTotalFee('onetime');\n return `${selectedCurrency}${(totalFees?.oneTimeTotal\n ? totalFees?.oneTimeTotal\n : 0\n )\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n };\n\n const getAddedOrRemovedAMCServices = (array1, array2) => {\n return array1?.filter((object1) => {\n return !array2?.some((object2) => {\n return (\n object1?.name === object2?.name &&\n Number(object1?.fee) === Number(object2?.fee)\n );\n });\n });\n };\n\n const mapMonthlyServiceTotal = (\n monthlyServicesData,\n marketplaceData,\n accntType,\n ) => {\n const totalFees = calculateTotalFee(\n 'monthly',\n monthlyServicesData,\n marketplaceData,\n accntType,\n );\n\n return `\n ${\n totalFees.monthlyAmountAfterDiscount > 0\n ? `\n Sub-total\n ${\n contractAddendumDetails?.notActive\n ? ` `\n : ''\n }\n \n \n\n ${selectedCurrency}${displayNumber(\n totalFees?.monthlySubTotal?.toFixed(2),\n )}\n \n \n `\n : ''\n }\n ${\n totalFees.monthlyAmountAfterDiscount > 0\n ? `\n Discount ${\n totalFees?.monthlyAmountAfterDiscount &&\n totalFees?.monthlyDiscountType === 'percentage'\n ? `(${totalFees?.monthlyDiscount}%)`\n : ''\n }\n ${\n contractAddendumDetails?.notActive\n ? ``\n : ''\n }\n \n \n \n -${selectedCurrency}${\n totalFees?.monthlyAmountAfterDiscount > 0\n ? displayNumber(totalFees?.monthlyAmountAfterDiscount?.toFixed(2))\n : 0\n }\n \n \n `\n : ''\n }\n \n Total\n ${\n contractAddendumDetails?.notActive\n ? ``\n : ''\n }\n \n \n\n ${selectedCurrency}${\n totalFees?.monthlyTotal\n ? displayNumber(totalFees.monthlyTotal?.toFixed(2))\n : 0\n }\n \n \n `;\n };\n\n const mapVATRegistrationMarketplaces = () => {\n const marketplaces =\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services\n .filter((item) => item.name === 'VAT Registration')\n .map((filteredItem) => filteredItem.marketplace);\n const result = [];\n if (marketplaces?.length) {\n marketplaces.map((item) => {\n result.push(`${displayMarketplaceName(item, 'vat', 'lhs')}`);\n return null;\n });\n }\n return result.length ? result.toString().replaceAll(',', ', ') : '';\n };\n\n const mapVATFilingMarketplaces = () => {\n const marketplaces =\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) =>\n item.name === 'VAT Filing' &&\n item.marketplace !== null &&\n item.frequency !== null,\n );\n const result = [];\n if (marketplaces?.length) {\n marketplaces.map((item) => {\n result.push(\n `${displayMarketplaceName(item.marketplace, 'vat', 'lhs')} (${\n item?.frequency\n })`,\n );\n return null;\n });\n }\n return result.length ? result.toString().replaceAll(',', ', ') : '';\n };\n\n const mapRemainingServices = () => {\n const result = [];\n const customerService =\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) => item.name === 'International Customer Service',\n );\n\n const logistics =\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) => item.name === 'International Logistics',\n );\n\n if (customerService?.length)\n result.push(\n `${customerService?.[0]?.name}`,\n );\n if (logistics?.length)\n result.push(\n `${logistics?.[0]?.name}`,\n );\n\n if (formData?.copy_listing_translation) {\n result.push(\n `Listing Copy Translation - ASIN's per month : ${formData?.copy_listing_translation}`,\n );\n }\n if (formData?.creative_listing_translation) {\n result.push(\n `Listing Creative Translation - ASIN's per month : ${formData?.creative_listing_translation}`,\n );\n }\n return result.length ? result.toString().replaceAll(',', '') : '';\n };\n\n const showStandardServicesNONUSMarketplacesTable = () => {\n return (!formData?.standard_non_us_services ||\n formData?.standard_non_us_services?.length === 0) &&\n !formData.copy_listing_translation &&\n !formData.creative_listing_translation\n ? ''\n : `
    \n \n \n ${\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) => item.name === 'VAT Registration',\n )?.length\n ? `\n \n `\n : ''\n }\n ${\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services.filter(\n (item) => item.name === 'VAT Filing',\n )?.length\n ? ``\n : ''\n }\n ${mapRemainingServices()}\n
    Service Components (Non-US Marketplaces)
    VAT Registration: ${mapVATRegistrationMarketplaces()}
    VAT Filing: ${mapVATFilingMarketplaces()}
    \n
    \n `;\n };\n\n const mapOnetimeServiceTotal = () => {\n const totalFees = calculateTotalFee('onetime');\n return `\n ${\n totalFees?.oneTimeAmountAfterDiscount > 0\n ? `\n Sub-total\n \n \n ${selectedCurrency}${displayNumber(\n totalFees?.oneTimeSubTotal?.toFixed(2),\n )}\n \n \n `\n : ''\n }\n ${\n totalFees?.oneTimeAmountAfterDiscount > 0\n ? `\n Discount ${\n totalFees?.oneTimeAmountAfterDiscount &&\n totalFees?.oneTimeDiscountType === 'percentage'\n ? `(${totalFees?.oneTimeDiscount}%)`\n : ''\n }\n \n \n -${selectedCurrency}${displayNumber(\n totalFees?.oneTimeAmountAfterDiscount?.toFixed(2),\n )}\n \n \n `\n : ''\n } \n \n Total\n \n \n ${selectedCurrency}${displayNumber(\n totalFees?.oneTimeTotal?.toFixed(2),\n )}\n \n \n \n `;\n };\n\n const showAMCServicesTable = () => {\n if (formData?.is_dsp_advertising || formData?.is_amc_management) {\n return `
    \n Additional Advertising Services \n
    The following additional monthly services will be provided to Client in addition to the Monthly Retainer.

    \n
    \n \n \n \n \n \n ${mapMonthlyServices('amc_services', formData?.amc_services)}\n ${mapMonthlyServiceTotal(formData?.amc_services, '', '')}\n\n
    ServiceService Fee
    \n
    `;\n }\n return '';\n };\n\n const showMonthlyServiceTable = (\n accntTYpe,\n monthlyServicesData,\n marketplaceData,\n ) => {\n if (\n monthlyServicesData?.length ||\n formData?.additional_marketplaces?.length\n ) {\n return `
    \n Additional Monthly Services for ${\n formData?.channel?.label\n } ${accntTYpe} Account \n
    The following additional monthly services will be provided to Client in addition to the Monthly Retainer.

    \n
    \n \n \n \n \n \n ${mapMonthlyServices(\n 'additional_monthly_services',\n monthlyServicesData,\n )}\n ${mapAdditionalMarketPlaces(marketplaceData)}\n ${mapMonthlyServiceTotal(\n monthlyServicesData,\n marketplaceData,\n accntTYpe,\n )}\n ${mapVariableMonthlyService(monthlyServicesData)} \n
    ServiceService Fee
    \n
    `;\n }\n return '';\n };\n\n const showMonthlyServiceTablesAccordingToAccType = () => {\n if (accountType === 'Seller') {\n const sellerResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Seller',\n );\n const marketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Seller',\n );\n return showMonthlyServiceTable('Seller', sellerResult, marketplaceResult);\n }\n if (accountType === 'Vendor') {\n const vendorResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Vendor',\n );\n const marketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Vendor',\n );\n return showMonthlyServiceTable('Vendor', vendorResult, marketplaceResult);\n }\n if (accountType === 'Hybrid') {\n const sellerResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Seller',\n );\n\n const vendorResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Vendor',\n );\n\n const sellerMarketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Seller',\n );\n\n const vendorMarketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Vendor',\n );\n if (\n (sellerResult && sellerResult.length) ||\n (vendorResult && vendorResult.length) ||\n (sellerMarketplaceResult && sellerMarketplaceResult.length) ||\n (vendorMarketplaceResult && vendorMarketplaceResult.length)\n ) {\n const sellerTable = showMonthlyServiceTable(\n 'Seller',\n sellerResult,\n sellerMarketplaceResult,\n );\n const venderTable = showMonthlyServiceTable(\n 'Vendor',\n vendorResult,\n vendorMarketplaceResult,\n );\n\n return sellerTable + venderTable;\n }\n\n if (sellerResult && sellerResult.length) {\n return showMonthlyServiceTable(\n 'Seller',\n sellerResult,\n sellerMarketplaceResult,\n );\n }\n\n if (vendorResult && vendorResult.length) {\n return showMonthlyServiceTable(\n 'Vendor',\n vendorResult,\n vendorMarketplaceResult,\n );\n }\n }\n return '';\n };\n\n const showOneTimeTable = () => {\n if (details?.additional_one_time_services?.length) {\n return `\n \n Quantity\n Service\n Service Fee\n Total Service Fee\n \n ${mapMonthlyServices('additional_one_time_services', 'One Time Services')}\n ${mapOnetimeServiceTotal()}\n `;\n }\n return '';\n };\n\n const showOneTimeServiceTable = () => {\n if (details?.additional_one_time_services?.length) {\n return `
    Additional One Time Services
    The following additional monthly services will be provided to Client as a one time service in addition to the Monthly Retainer and any Additional Monthly services.

    ${showOneTimeTable()}`;\n }\n return '';\n };\n\n const showBillingCap = () => {\n if (formData?.billing_cap) {\n return `

    Billing Cap
    Maximum amount that will be charged between the monthly retainer and revenue share.
    \n
    \n ${mapDefaultValues(\n 'billing_cap',\n 'Billing Cap',\n 'number-currency',\n )}
    `;\n }\n return '';\n };\n\n // PDV-8477 - Remove the table enumerating the “services not included” portion\n const showNotIncludedServicesTable = () => {\n if (\n notIncludedMonthlyServices?.length ||\n notIncludedOneTimeServices?.length\n ) {\n return `
    \n Additional Services Not Included\n
    Anything not listed in this statement of work can be purchased at the fee scheduled in place at the time of the request.
    `;\n }\n return '';\n };\n\n const getAgreementAccorType = (index) => {\n if (data && details?.contract_type?.toLowerCase().includes('one')) {\n return (\n data?.one_time_service_agreement &&\n data.one_time_service_agreement[index]\n );\n }\n return (\n data?.recurring_service_agreement &&\n data.recurring_service_agreement[index]\n );\n };\n\n const renderDspMarketplaces = (marketplaces) => {\n const fields = [];\n for (const item of marketplaces) {\n fields.push(\n `\n \n ${displayMarketplaceName(item?.name, 'dsp', 'lhs')}\n \n `,\n );\n }\n return fields;\n };\n\n const renderDspBudgetMarketplaces = (marketplaces) => {\n const fields = [];\n for (const item of marketplaces) {\n fields.push(\n `${\n formData?.changed_dsp_start_date\n ? `\n One Time
    \n \n ${selectedCurrency}${displayNumber(item.one_time_budget || 0)}\n \n `\n : ''\n } \n Monthly
    \n \n ${selectedCurrency}${displayNumber(item.monthly_budget || 0)}\n \n `,\n );\n }\n return fields;\n };\n\n const showDynamicBudgetAllocation = () => {\n const fields = [];\n for (const item of formData?.dsp_marketplaces) {\n fields.push(`\n \n \n \n ${displayMarketplaceName(item?.name, 'dsp', 'lhs')}\n\n \n \n \n ${\n formData?.changed_dsp_start_date\n ? `\n \n \n ${selectedCurrency}${displayNumber(item.one_time_budget || 0)}\n \n `\n : ''\n }\n \n\n \n ${selectedCurrency}${displayNumber(item.monthly_budget || 0)}\n \n \n \n\n \n ${selectedCurrency}${displayNumber(item.monthly_budget_second || 0)}\n \n \n \n\n \n ${selectedCurrency}${displayNumber(item.monthly_budget_third || 0)}\n \n \n `);\n }\n return fields;\n };\n\n const returnDspMonthlyDates = (theDate, addMonths) => {\n if (theDate) {\n const tempDate = getFutureMonths(theDate, addMonths);\n return dayjs(tempDate).format('MMMM YYYY');\n }\n return `MM-DD-YYYY`;\n };\n\n const displayMarketplace = () => {\n const result = [];\n\n const temp = [...formData?.dsp_marketplaces];\n if (formData?.dsp_marketplaces?.length) {\n if (formData?.is_dynamic_dsp_fee) {\n result.push(\n `DSP Marketplace\n \n ${\n formData?.changed_dsp_start_date\n ? `One Time Ad Budget`\n : ''\n }\n ${\n !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1)\n } ${\n !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(secondMonthDate), 1)\n } ${\n !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(thirdMonthDate), 1)\n }${showDynamicBudgetAllocation()}`,\n );\n } else {\n const formattedData = new Array(Math.ceil(temp.length / 3))\n .fill()\n .map(() => temp.splice(0, 3));\n\n for (const item of formattedData) {\n result.push(`\n ${renderDspMarketplaces(item)} \n ${renderDspBudgetMarketplaces(item)} \n `);\n }\n }\n }\n return result.length ? result.toString().replaceAll('>,', '>') : '';\n };\n\n const displayMarketplacesTable = () => {\n return formData?.dsp_marketplaces?.length\n ? `\n
    \n Marketplace(s) Details
    \n The initial budget for every marketplace will be set in advance by the Parties without adjustments during the initial period (\"Initial Period\") \n based on start date, unless the Client wishes to increase the ad spend from the original budget at any point during that Initial Period. \n The Parties agree that the initial budget breakdown for every marketplace will be as follows:\n
    \n ${displayMarketplace()}\n

    The Agency fee for Amazon DSP advertising is ${\n formData?.agency_fee?.label\n ? formData?.agency_fee?.label\n : `${formData?.agency_fee}%`\n } of ad spend. Amazon charges their own platform and audience fees.

    \n `\n : '';\n };\n const mapDspDetails = () => {\n return `\n \n \n ${\n firstMonthDate\n ? dayjs(firstMonthDate).format('MM-DD-YYYY')\n : 'MM-DD-YYYY'\n }\n \n \n \n ${\n formData?.dsp_length\n ? formData?.dsp_length?.value || formData?.dsp_length\n : `Enter DSP Service Length `\n }\n \n ${\n formData?.is_dynamic_dsp_fee\n ? `\n \n \n DSP_FEE\n \n \n \n \n SECOND_DSP\n \n \n \n \n THIRD_DSP\n \n \n `\n : `\n \n DSP_FEE\n \n `\n }\n ${\n formData?.changed_dsp_start_date\n ? `\n DSP_ONE_TIME_FEE\n `\n : ''\n }\n `;\n };\n\n // break first month date range for DSP Table\n const displayFirstMonthDateRange = () => {\n if (firstMonthDate) {\n const currentDate = firstMonthDate.getDate();\n const lastDay = new Date(\n firstMonthDate.getFullYear(),\n firstMonthDate.getMonth() + 1,\n 0,\n );\n const lastDate = lastDay.getDate();\n if (currentDate === 1) {\n return dayjs(firstMonthDate).format('MMMM YYYY');\n }\n if (currentDate === lastDate) {\n return dayjs(firstMonthDate).format('MMM D, YYYY');\n }\n return `${\n firstMonthDate\n ? `${dayjs(firstMonthDate).format('MMM D, YYYY')} -\n ${dayjs(lastDay).format('MMM D, YYYY')}`\n : 'MM-DD-YYYY'\n }`;\n }\n return 'MM-DD-YYYY';\n };\n\n const mapBudgetBreakdownTable = () => {\n return `\n \n
    \n ${\n formData?.changed_dsp_start_date\n ? ``\n : ``\n } \n \n \n ${\n formData?.changed_dsp_start_date\n ? `\n \n DSP_ONE_TIME_FEE\n\n `\n : ''\n }\n \n \n \n ${formData?.is_dynamic_dsp_fee ? 'SECOND_DSP' : 'DSP_FEE'}\n \n\n \n \n ${\n formData?.is_dynamic_dsp_fee\n ? 'THIRD_DSP'\n : 'DSP_FEE'\n }\n\n \n \n \n
    ${displayFirstMonthDateRange()} ${\n !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1)\n } ${\n secondMonthDate\n ? !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(secondMonthDate), 1)\n : 'MM-DD-YYYY'\n }${\n thirdMonthDate\n ? !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(thirdMonthDate), 1)\n : 'MM-DD-YYYY'\n }
    DSP_FEE
    \n
    `;\n };\n\n const checkQuarterly = (feeDetails, type, value) => {\n if (\n feeDetails?.[type] === 'quarterly' &&\n (!feeDetails?.[value]?.['1st quarterly'] ||\n !feeDetails?.[value]?.['2nd quarterly'] ||\n !feeDetails?.[value]?.['3rd quarterly'] ||\n !feeDetails?.[value]?.['4th quarterly'])\n )\n return false;\n return true;\n };\n\n const checkMonthly = (feeDetails, type, value) => {\n if (\n feeDetails?.[type] === 'monthly' &&\n (!feeDetails?.[value]?.['january month'] ||\n !feeDetails?.[value]?.['february month'] ||\n !feeDetails?.[value]?.['march month'] ||\n !feeDetails?.[value]?.['april month'] ||\n !feeDetails?.[value]?.['may month'] ||\n !feeDetails?.[value]?.['june month'] ||\n !feeDetails?.[value]?.['july month'] ||\n !feeDetails?.[value]?.['august month'] ||\n !feeDetails?.[value]?.['september month'] ||\n !feeDetails?.[value]?.['october month'] ||\n !feeDetails?.[value]?.['november month'] ||\n !feeDetails?.[value]?.['december month'])\n )\n return false;\n return true;\n };\n const checkMissinInfoForFeeStructure = (type) => {\n const feeDetails = formData?.fee_structure?.[type];\n\n if (formData?.combined_rev_share) {\n if (\n feeStructureErrors?.seller &&\n Object.values(feeStructureErrors?.seller)?.find((item) => item !== '')\n ) {\n return false;\n }\n } else if (\n (feeStructureErrors?.vendor &&\n Object.values(feeStructureErrors?.vendor)?.find(\n (item) => item !== '',\n )) ||\n (feeStructureErrors?.seller &&\n Object.values(feeStructureErrors?.seller)?.find((item) => item !== ''))\n ) {\n return false;\n }\n\n if (feeDetails?.fee_type === 'Retainer Only') {\n if (\n (!feeDetails?.retainer_type || feeDetails.retainer_type === 'Fixed') &&\n !feeDetails?.monthly_retainer\n ) {\n return false;\n }\n if (feeDetails?.retainer_type === 'quarterly')\n return checkQuarterly(\n feeDetails,\n 'retainer_type',\n 'quarterly_monthly_retainer',\n );\n if (feeDetails?.retainer_type === 'monthly')\n return checkMonthly(\n feeDetails,\n 'retainer_type',\n 'monthly_monthly_retainer',\n );\n } else if (feeDetails?.fee_type === 'Revenue Share Only') {\n if (!feeDetails?.rev_share) return false;\n } else if (feeDetails?.fee_type === 'Retainer + % Rev Share') {\n if (!feeDetails?.rev_share) return false;\n if (\n (!feeDetails?.retainer_type || feeDetails.retainer_type === 'Fixed') &&\n !feeDetails?.monthly_retainer\n ) {\n return false;\n }\n if (feeDetails?.retainer_type === 'quarterly')\n return checkQuarterly(\n feeDetails,\n 'retainer_type',\n 'quarterly_monthly_retainer',\n );\n if (feeDetails?.retainer_type === 'monthly')\n return checkMonthly(\n feeDetails,\n 'retainer_type',\n 'monthly_monthly_retainer',\n );\n }\n if (feeDetails?.fee_type) return true;\n return false;\n };\n\n const checkMonthlyOneTimBudget = (key) => {\n if (formData?.dsp_marketplaces?.length > 1) {\n const budgetArray = [];\n for (const market of formData?.dsp_marketplaces) {\n market[key] =\n typeof market[key] === 'string'\n ? market?.[key]?.replaceAll(',', '')\n : market[key];\n budgetArray.push(Number(market?.[key]) || 0);\n }\n return budgetArray.reduce((temp1, temp2) => temp1 + temp2);\n }\n return key === 'monthly_budget'\n ? Number(formData?.dsp_fee || 0)\n : Number(formData?.dsp_one_time_fee || 0);\n };\n\n const checkMonthlyBudget = () => {\n const monthlyBudgetFirst = [];\n const monthlyBudgetSecond = [];\n const monthlyBudgetThird = [];\n\n let totalBudgetFirst = 0;\n let totalBudgetSecond = 0;\n let totalBudgetThird = 0;\n\n if (formData?.dsp_marketplaces?.length > 1) {\n for (const market of formData?.dsp_marketplaces) {\n market.monthly_budget =\n typeof market?.monthly_budget === 'string'\n ? market?.monthly_budget?.replaceAll(',', '')\n : market?.monthly_budget;\n monthlyBudgetFirst.push(Number(market?.monthly_budget) || 0);\n market.monthly_budget_second =\n typeof market?.monthly_budget_second === 'string'\n ? market?.monthly_budget_second?.replaceAll(',', '')\n : market?.monthly_budget_second;\n monthlyBudgetSecond.push(Number(market?.monthly_budget_second) || 0);\n market.monthly_budget_third =\n typeof market?.monthly_budget_third === 'string'\n ? market?.monthly_budget_third?.replaceAll(',', '')\n : market?.monthly_budget_third;\n monthlyBudgetThird.push(Number(market?.monthly_budget_third) || 0);\n }\n totalBudgetFirst = monthlyBudgetFirst.reduce(\n (temp1, temp2) => temp1 + temp2,\n );\n totalBudgetSecond = monthlyBudgetSecond.reduce(\n (temp1, temp2) => temp1 + temp2,\n );\n totalBudgetThird = monthlyBudgetThird.reduce(\n (temp1, temp2) => temp1 + temp2,\n );\n\n if (\n formData?.is_dynamic_dsp_fee\n ? totalBudgetFirst === Number(formData?.dsp_fee) &&\n totalBudgetSecond === Number(formData?.dsp_fee_second) &&\n totalBudgetThird === Number(formData?.dsp_fee_third)\n : totalBudgetFirst === Number(formData?.dsp_fee) &&\n totalBudgetSecond === Number(formData?.dsp_fee) &&\n totalBudgetThird === Number(formData?.dsp_fee)\n ) {\n return true;\n }\n return false;\n }\n return Number(formData?.dsp_fee || 0);\n };\n\n const showRightTick = (section) => {\n if (section === 'service_agreement') {\n if (Object.values(customerError)?.find((item) => item !== '')) {\n return false;\n }\n if (contractTypeOne) {\n if (\n customerCompanyName &&\n formData.start_date &&\n customerAddress &&\n customerState &&\n customerCity &&\n customerZipCode &&\n (formData.additional_one_time_services !== null ||\n formData.additional_one_time_services?.length)\n ) {\n return true;\n }\n } else if (\n customerCompanyName &&\n formData.start_date &&\n formData.length &&\n customerState &&\n customerCity &&\n customerZipCode\n ) {\n return true;\n }\n }\n\n if (section === 'feeStructure') {\n if (contractTypeOne || contractTypeDsp) {\n return true;\n }\n if (!contractTypeOne && !contractTypeDsp) {\n if (!formData?.primary_marketplace || !formData?.seller_type)\n return false;\n if (formData?.seller_type?.label === 'Seller') {\n return checkMissinInfoForFeeStructure('seller');\n }\n if (formData?.seller_type?.label === 'Vendor') {\n if (!formData?.fee_structure?.vendor?.vendor_billing_report)\n return false;\n return checkMissinInfoForFeeStructure('vendor');\n }\n if (formData?.seller_type?.label === 'Hybrid') {\n if (!formData?.fee_structure?.vendor?.vendor_billing_report)\n return false;\n return (\n checkMissinInfoForFeeStructure('seller') &&\n checkMissinInfoForFeeStructure('vendor')\n );\n }\n }\n }\n\n if (section === 'statement') {\n if (\n Object.values(additionalMarketplaceError)?.find(\n (item) => item !== '',\n ) ||\n // Object.values(additionalMonthlySerError)?.find((item) => item !== '') ||\n (formData?.contract_type?.includes('one') &&\n !formData?.additional_one_time_services?.length) ||\n Object.values(nonUsServiceError)?.find((item) => item !== '') ||\n Object.values(additionalOnetimeSerError)?.find((item) => item !== '')\n ?.length ||\n Object.values(amcServiceError)?.find((item) => item !== '')?.length\n ) {\n return false;\n }\n if (!contractTypeOne && !contractTypeDsp) {\n return true;\n }\n return true;\n }\n\n if (section === 'dspAddendum') {\n if (showSection?.dspAddendum && !contractTypeOne) {\n if (\n formData?.start_date &&\n formData.dsp_fee &&\n formData.dsp_length &&\n (formData?.is_dynamic_dsp_fee\n ? formData.dsp_fee &&\n formData.dsp_fee_second &&\n formData.dsp_fee_third\n : true) &&\n (!contractAddendumDetails?.notActive &&\n formData?.changed_dsp_start_date\n ? formData?.dsp_one_time_fee\n : true) &&\n formData?.dsp_marketplaces?.length &&\n (!contractAddendumDetails?.notActive\n ? !formData?.dsp_marketplaces?.filter((op) => !op.monthly_budget)\n ?.length\n : true) &&\n (!contractAddendumDetails?.notActive &&\n Number(formData?.dsp_one_time_fee)\n ? !formData?.dsp_marketplaces?.filter((op) => !op.one_time_budget)\n ?.length\n : true) &&\n (!contractAddendumDetails?.notActive &&\n !formData?.monthly_budget_distribution_equally\n ? checkMonthlyBudget('monthly_budget')\n : true) &&\n (!contractAddendumDetails?.notActive &&\n !formData?.one_time_budget_distribution_equally &&\n formData?.changed_dsp_start_date\n ? checkMonthlyOneTimBudget('one_time_budget') ===\n Number(formData?.dsp_one_time_fee)\n : true)\n ) {\n return true;\n }\n } else {\n return true;\n }\n }\n\n return false;\n };\n\n const renderStdServiceRow = (service) => {\n const fields = [];\n for (const item of service) {\n if (!item.value && !item.label) {\n fields.push(\n `${item.name}`,\n );\n } else {\n fields.push(\n `Listing Optimization - ${item.label}
    \n *May vary by strategic priorities, up to \n ${item.value}\n ASINs\n per month\n `,\n );\n }\n }\n return fields;\n };\n\n const mapStandardServices = () => {\n if (\n (formData?.standard_us_services &&\n formData?.standard_us_services.length) ||\n formData?.content_optimization ||\n formData?.design_optimization\n // formData?.photography_optimization\n ) {\n let content = {};\n let design = {};\n // let photo = {};\n\n if (formData?.content_optimization) {\n content = {\n label: 'Copy',\n value: formData.content_optimization,\n };\n }\n if (formData?.design_optimization) {\n design = {\n label: 'Design',\n value: formData.design_optimization,\n };\n }\n // if (formData?.photography_optimization) {\n // photo = {\n // label: 'Photography',\n // value: formData.photography_optimization,\n // };\n // }\n const fields = [];\n // combine the standard services with listing optimization to show it properly in the table dynamically.\n let temp = [];\n if (formData?.standard_us_services?.length)\n temp = [...temp, ...formData.standard_us_services];\n if (content && Object.keys(content).length !== 0)\n temp = [...temp, content];\n if (design && Object.keys(design).length !== 0) temp = [...temp, design];\n // if (photo && Object.keys(photo).length !== 0) temp = [...temp, photo];\n\n const formattedData = new Array(Math.ceil(temp.length / 3))\n .fill()\n .map(() => temp.splice(0, 3));\n for (const item of formattedData) {\n fields.push(` ${renderStdServiceRow(item)} `);\n }\n return fields.length ? fields.toString().replaceAll(',', '') : '';\n }\n return '';\n };\n\n // pdv-8551 - Add one line to this section whenever listing optimization is added to the contract.\n // This line is added in listing optimisation info --> If the child listings require different infographics and/or copy, or if there are more than 5 child listings, additional fees may apply.\n\n // display lisint optimisation content\n const displayListingOptimisationInfo = () => {\n return `

    *The number of Listing Optimizations per month may vary according to changing strategic priorities and serves as a guideline, not a guarantee. Listing Optimization ASINs may be applied to all children in a single parent ASIN only if unique copy and infographics are not required. If the child listings require different infographics and/or copy, or if there are more than 5 child listings, additional fees may apply. Infographics include up to 5 screens per ASIN.


    \n

    Listing Optimization Services may be substituted for services of similar value as agreed upon in writing by both the Brand Growth Strategist and Client. These services may include but are not limited to: SEO Keyword Optimization, ${\n formData?.channel?.value === 'amazon' ? 'A+' : 'Enhanced'\n } Content Design, Brand Story, Style Guides, Improvement or Optimization, Premium ${\n formData?.channel?.value === 'amazon' ? 'A+' : 'Enhanced'\n } Content Design or Variations, ${\n formData?.channel?.label\n } Store Front Design or Optimization, Infographic creation or optimization, Graphic & Copy Translation Services.


    \n

    Should a set amount of optimization or creative services not be delivered within a set month, those agreed upon deliverables may be completed by the end of the contract term at the latest.


    \n

    Delivering the scheduled number of optimization services requires the Client to deliver assets to BBE, approve a brand sample, and respond to requests for feedback in a timely manner. Each Creative Deliverable is allowed 2 free revisions in order to maintain an effective delivery schedule. Delays in delivering assets, providing feedback or requests for more than 2 revisions may delay deliverables. Please see Revisions Policy Guidelines next section for more information.

    `;\n };\n\n // display revision content in document\n const displayRevisionPolicyInfo = () => {\n return `

    What is a Revision?

    \n

    A revision is any change or ‘edit’ requested by Client to a deliverable before upload.

    \n
      \n
    • Changes to previously uploaded BBE deliverables are considered ‘updates’ or ‘refreshes’.
    • \n
    \n

    Revision Policy

    \n

    Client will receive 2 free rounds of revisions to a deliverable prior to upload.

    \n
      \n
    • If Client wants further revisions to a deliverable, they can be substituted for contracted creative work or purchased at the fee schedule in place at the time of the request.\n
    • \n
    • When a change or 'edit' to a deliverable is requested, that is considered the 1st round. A request for a change to the deliverable after that will be regarded as the 2nd round.
    • \n
    \n

    All revision notes or ‘edits’ should be submitted at the same time.

    \n
      \n
    • After creative work is delivered, Client should take 1-2 weeks to review the deliverables with all the stakeholders on their end and submit all revision notes at the same time.
    • \n
    \n `;\n };\n\n const showStandardServicesTable = () => {\n if (\n (formData.standard_us_services?.length === 0 ||\n formData.standard_us_services === null) &&\n !formData.content_optimization &&\n !formData.design_optimization &&\n !formData.photography_optimization\n )\n return ``;\n return `
    Standard Services\n
    The following services will be provided to client during the term of the contract.

    \n
    \n \n \n ${mapStandardServices()}\n
    Service Components
    \n ${\n formData?.design_optimization ||\n formData?.content_optimization ||\n formData?.photography_optimization\n ? `
    \n ${displayListingOptimisationInfo()}\n
    \n ${displayRevisionPolicyInfo()}`\n : ''\n }\n
    \n `;\n };\n\n const mapLanguage = () => {\n if (\n details?.contract_type\n ?.toLowerCase()\n .includes('recurring (90 day notice)')\n ) {\n return Recurring90DaysLanguage;\n }\n return RecurringLanguage;\n };\n\n const mapStandardServicesTable = (servicesData, tableType) => {\n const fields = [];\n servicesData.map((item) => {\n fields.push(`\n ${\n item.name\n } \n ${\n tableType === 'added'\n ? `${\n item?.id && item?.effective_date\n ? item?.effective_date\n : item?.id && !item?.effective_date\n ? formData?.contract_signed_date\n : defaultEffectivityDateText\n } `\n : ''\n }\n `);\n return null;\n });\n return fields;\n };\n\n const renderAddendumStandardUsServices = (result, tableType) => {\n const returnData = [];\n returnData.push(\n `
    \n \n \n \n ${\n tableType === 'added'\n ? ``\n : ''\n }\n \n \n ${result?.length ? mapStandardServicesTable(result, tableType) : ''}\n
    ServicesEffective Date
    \n
    `,\n );\n return returnData;\n };\n\n const renderListingOptimizationServices = (param, service1, service2) => {\n if (service1 !== service2) {\n return `
  • ${param} to ${service2 !== null ? service2 : 0} from ${\n service1 !== null ? service1 : 0\n }
  • `;\n }\n return '';\n };\n\n function getDifference(array1, array2, field) {\n return array1?.filter((object1) => {\n return !array2?.some((object2) => {\n if (field === 'marketplace') {\n return object1?.name === object2?.name;\n }\n if (object1?.quantity !== object2?.quantity)\n return object1?.quantity === object2?.quantity;\n return object1?.service?.id === object2?.service?.id;\n });\n });\n }\n\n const displayMonthlyServices = (result, type) => {\n if (result?.length) {\n const list = result.map(\n (item) =>\n `
  • ${\n type === 'dsp'\n ? displayMarketplaceName(item?.service?.name, 'dsp', 'lhs') ||\n displayMarketplaceName(item?.name, 'dsp', 'lhs')\n : item?.service?.name || item?.name\n } ${\n item?.service?.name === monthlyServiceEnhancedOrAPlus ||\n item?.name === monthlyServiceEnhancedOrAPlus\n ? `(${item?.quantity || 1})`\n : ''\n }
  • `,\n );\n return list;\n }\n return '';\n };\n\n const displayMonthlyServiceTable = (\n serviceAddedResult,\n marketplacesAddedResult,\n serviceRemovedResult,\n marketplacesRemovedResult,\n accntTYpe,\n tableType,\n ) => {\n const localAccountType = accntTYpe === 'seller' ? 'Seller' : 'Vendor';\n\n const originalservice = getServicesAccordingToAccType(\n originalData?.additional_monthly_services,\n localAccountType,\n );\n const addendumService = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n localAccountType,\n );\n\n const addendumMarketplaces = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n localAccountType,\n );\n const originalMarketplaces = getServicesAccordingToAccType(\n originalData?.additional_marketplaces,\n localAccountType,\n );\n\n const returnData = [];\n returnData.push(\n `\n
    \n \n ${\n tableType !== 'removed'\n ? getDifference(originalservice, serviceRemovedResult)?.length ||\n getDifference(\n originalMarketplaces,\n marketplacesRemovedResult,\n 'marketplace',\n )?.length\n ? `\n \n \n \n `\n : ''\n : `\n \n \n `\n }\n \n ${\n tableType !== 'removed'\n ? mapMonthlyServices(\n 'additional_monthly_services',\n getDifference(originalservice, serviceRemovedResult),\n )\n : ''\n }\n ${\n tableType !== 'removed'\n ? mapAdditionalMarketPlaces(\n getDifference(\n originalMarketplaces,\n marketplacesRemovedResult,\n 'marketplace',\n ),\n )\n : ''\n }\n\n ${\n (serviceAddedResult?.length || marketplacesAddedResult?.length) &&\n tableType !== 'removed'\n ? ` \n \n \n `\n : ''\n }\n\n${mapMonthlyServices(\n 'additional_monthly_services',\n tableType !== 'removed' ? serviceAddedResult : serviceRemovedResult,\n tableType,\n)}\n ${mapAdditionalMarketPlaces(\n tableType !== 'removed'\n ? marketplacesAddedResult\n : marketplacesRemovedResult,\n tableType,\n )}\n\n ${\n tableType !== 'removed'\n ? mapMonthlyServiceTotal(\n addendumService,\n addendumMarketplaces,\n accntTYpe,\n )\n : ''\n }\n ${mapVariableMonthlyService(\n tableType !== 'removed'\n ? getDifference(addendumService, serviceRemovedResult)\n : serviceRemovedResult,\n tableType,\n )} \n
    Existing ServiceEffective DateService Fee
    Existing ServiceService Fee
    Additional ServiceEffective DateService Fee
    \n
    `,\n );\n return returnData.length\n ? returnData.toString().replaceAll('>,<', '><')\n : '';\n };\n\n const getMonthlyServicesofContract = (type, status) => {\n let result = [];\n const localAccountType = type === 'seller' ? 'Seller' : 'Vendor';\n const addendumService = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n localAccountType,\n );\n const originalservice = getServicesAccordingToAccType(\n originalData?.additional_monthly_services,\n localAccountType,\n );\n\n if (status === 'added') {\n result = getDifference(addendumService, originalservice);\n } else {\n result = getDifference(originalservice, addendumService);\n }\n return result;\n };\n\n const getDifferenceMarketplaces = (type, status) => {\n let result = [];\n const localAccountType = type === 'seller' ? 'Seller' : 'Vendor';\n\n const addendumService = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n localAccountType,\n );\n const originalservice = getServicesAccordingToAccType(\n originalData?.additional_marketplaces,\n localAccountType,\n );\n\n if (status === 'added') {\n result = getDifference(addendumService, originalservice, 'marketplace');\n } else {\n result = getDifference(originalservice, addendumService, 'marketplace');\n }\n\n return result;\n };\n const displayMontlyServiceAddendum = (type, fields) => {\n const serviceAddedResult = getMonthlyServicesofContract(type, 'added');\n const serviceRemovedResult = getMonthlyServicesofContract(type, 'removed');\n const marketplacesAddedResult = getDifferenceMarketplaces(type, 'added');\n const marketplacesRemovedResult = getDifferenceMarketplaces(\n type,\n 'removed',\n );\n const localAccountType = type === 'seller' ? 'Seller' : 'Vendor';\n\n const isDiscountAdded = discountData?.filter((item) => {\n return item?.account_type === localAccountType;\n });\n const originalservice = getServicesAccordingToAccType(\n originalData?.additional_monthly_services,\n localAccountType,\n );\n\n const originalMarketplaces = getServicesAccordingToAccType(\n originalData?.additional_marketplaces,\n localAccountType,\n );\n\n if (\n serviceAddedResult?.length ||\n serviceRemovedResult?.length ||\n marketplacesAddedResult?.length ||\n marketplacesRemovedResult?.length ||\n (isDiscountAdded?.length &&\n isDiscountAdded?.[0]?.is_addendum_discount_changed)\n ) {\n fields.push(\n `
    \n Monthly Services for Amazon ${\n type === 'seller' ? 'Seller' : 'Vendor'\n } Account
    `,\n );\n }\n if (\n serviceAddedResult?.length === 0 &&\n marketplacesAddedResult?.length === 0 &&\n getDifference(originalservice, serviceRemovedResult)?.length === 0 &&\n getDifference(\n originalMarketplaces,\n marketplacesRemovedResult,\n 'marketplace',\n )?.length === 0\n ) {\n if (\n !(\n isDiscountAdded?.length &&\n isDiscountAdded?.[0]?.is_addendum_discount_changed\n )\n )\n fields.push(``);\n } else if (\n (isDiscountAdded?.length &&\n isDiscountAdded?.[0]?.is_addendum_discount_changed) ||\n serviceAddedResult?.length ||\n marketplacesAddedResult?.length\n ) {\n fields.push(`\n • The Service Order / Statement of Work is updated to add the following Monthly Service(s).
    \n \n ${displayMonthlyServiceTable(\n serviceAddedResult,\n marketplacesAddedResult,\n serviceRemovedResult,\n marketplacesRemovedResult,\n type,\n )}\n `);\n }\n\n if (serviceRemovedResult?.length || marketplacesRemovedResult?.length) {\n fields.push(\n `• The Service Order / Statement of Work is updated to remove the followingMonthly Service(s).
    \n \n ${displayMonthlyServiceTable(\n serviceAddedResult,\n marketplacesAddedResult,\n serviceRemovedResult,\n marketplacesRemovedResult,\n type,\n 'removed',\n )} \n `,\n );\n }\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll('.,', '.')\n .replaceAll(' ,', '')\n .replaceAll('•', '
    •')\n .replaceAll(',
    ', '
    ')\n .replaceAll(',
    ', '
    ')\n : '';\n };\n const ShowAddendumRetainerThresholdValues = (\n type,\n quartelyKey,\n monthlyKey,\n option,\n ) => {\n return `${\n formData?.fee_structure?.[type]?.[option] === 'quarterly'\n ? `
  • 1st Quarter from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[quartelyKey]?.[\n '1st quarterly'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['1st quarterly'],\n ) || 0\n }
  • \n
  • 2nd Quarter from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[quartelyKey]?.[\n '2nd quarterly'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['2nd quarterly'],\n ) || 0\n }
  • \n
  • 3rd Quarter from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[quartelyKey]?.[\n '3rd quarterly'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['3rd quarterly'],\n ) || 0\n }
  • \n
  • 4th Quarter from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[quartelyKey]?.[\n '4th quarterly'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[quartelyKey]?.['4th quarterly'],\n ) || 0\n }
  • \n `\n : formData?.fee_structure?.[type]?.[option] === 'monthly'\n ? ` \n
  • January from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'january month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['january month'],\n ) || 0\n }
  • \n
  • February from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'february month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['february month'],\n ) || 0\n }
  • \n
  • March from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'march month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['march month'],\n ) || 0\n }
  • \n
  • April from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'april month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['april month'],\n ) || 0\n }
  • \n
  • May from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.['may month'],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['may month'],\n ) || 0\n }
  • \n
  • June from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.['june month'],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['june month'],\n ) || 0\n }
  • \n
  • July from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.['july month'],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['july month'],\n ) || 0\n }
  • \n
  • August from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'august month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['august month'],\n ) || 0\n }
  • \n
  • September from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'september month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'september month'\n ],\n ) || 0\n }
  • \n
  • October from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'october month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['october month'],\n ) || 0\n }
  • \n
  • November from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'november month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['november month'],\n ) || 0\n }
  • \n
  • December from ${selectedCurrency}${\n displayNumber(\n originalData?.fee_structure?.[type]?.[monthlyKey]?.[\n 'december month'\n ],\n ) || 0\n } to ${selectedCurrency}${\n displayNumber(\n formData?.fee_structure?.[type]?.[monthlyKey]?.['december month'],\n ) || 0\n }
  • \n `\n : ''\n }`;\n };\n\n const getObjectDifference = (obj1, obj2) => {\n const combinedObj = { ...obj1, ...obj2 };\n const diff = Object.entries(combinedObj).reduce((acc, [key, value]) => {\n if (\n (obj1 && !Object.values(obj1).includes(value)) ||\n (obj2 && !Object.values(obj2).includes(value))\n )\n acc[key] = value;\n return acc;\n }, {});\n if (diff && Object.values(diff)?.length > 0) {\n return true;\n }\n return false;\n };\n\n const checkConditions = (param1, param2) => {\n param1 = Number(param1);\n param2 = Number(param2);\n if (\n (!param1 ? 0 : parseFloat(param1, 10)) !==\n (!param2 ? 0 : parseFloat(param2, 10))\n ) {\n return true;\n }\n return false;\n };\n\n const accountContractAddendum = (type) => {\n const fields = [];\n // if fee type is changed.\n if (\n originalData.fee_structure?.[type]?.fee_type === 'Retainer Only' &&\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n fields.push(`• The Service Order / Statement of Work is updated to add the Revenue Share invoices value of ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.monthly_retainer || 0,\n )} for managing ${type} account. This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }. That's parallel to the Retainer invoices that are issued monthly for ${type} account.
    `);\n }\n if (\n originalData.fee_structure?.[type]?.fee_type === 'Revenue Share Only' &&\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n fields.push(`• The Service Order / Statement of Work is updated to add the Retainer invoices value of ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.monthly_retainer || 0,\n )} for managing ${type} account. This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }. That's parallel to the Rev Share invoices that are issued monthly for ${type} account.
    `);\n }\n\n // if retainer value is changed.\n if (\n (formData?.fee_structure?.[type]?.retainer_type === 'Fixed' ||\n formData?.fee_structure?.[type]?.retainer_type === null) &&\n originalData?.fee_structure?.[type]?.monthly_retainer !==\n formData?.fee_structure?.[type]?.monthly_retainer\n ) {\n fields.push(`• The Service Order / Statement of Work is updated to change the Monthly Retainer to ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.monthly_retainer || 0,\n )} This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `);\n }\n if (\n (formData?.fee_structure?.[type]?.retainer_type === 'quarterly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.quarterly_monthly_retainer || {},\n formData?.fee_structure?.[type]?.quarterly_monthly_retainer || {},\n )) ||\n (formData?.fee_structure?.[type]?.retainer_type === 'monthly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.monthly_monthly_retainer || {},\n formData?.fee_structure?.[type]?.monthly_monthly_retainer || {},\n ))\n ) {\n fields.push(\n `\n • The Service Order / Statement of Work is updated to change the ${\n formData?.fee_structure?.[type]?.retainer_type === 'quarterly'\n ? 'quarterly'\n : 'monthly'\n } retainer invoice value for ${type} account.This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
      ${ShowAddendumRetainerThresholdValues(\n type,\n 'quarterly_monthly_retainer',\n 'monthly_monthly_retainer',\n 'retainer_type',\n )}
    `,\n );\n }\n\n // if rev share changed.\n if (\n checkConditions(\n originalData?.fee_structure?.[type]?.rev_share,\n formData?.fee_structure?.[type]?.rev_share,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the Monthly Revenue share to ${displayNumber(\n formData?.fee_structure?.[type]?.rev_share || 0,\n )}% This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n\n if (\n formData?.fee_structure?.[type]?.threshold_type === 'None' &&\n originalData?.fee_structure?.[type]?.threshold_type !== 'None' &&\n originalData?.fee_structure?.[type]?.threshold_type !== null\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the Revenue Share Threshold None This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n const formDataFixedThresholdType =\n (formData?.fee_structure?.[type]?.threshold_type === 'Fixed' ||\n formData?.fee_structure?.[type]?.threshold_type === null) &&\n originalData?.fee_structure?.[type]?.sales_threshold;\n if (\n checkConditions(\n formDataFixedThresholdType,\n formData?.fee_structure?.[type]?.sales_threshold,\n ) &&\n formData?.fee_structure?.[type]?.threshold_type === 'Fixed'\n ) {\n fields.push(`• To The Service Order / Statement of Work is updated to change the fixed threshold to ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.sales_threshold || 0,\n )} for managing ${type} account. This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `);\n }\n\n if (\n (formData?.fee_structure?.[type]?.threshold_type === 'quarterly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.quarterly_rev_share || {},\n formData?.fee_structure?.[type]?.quarterly_rev_share || {},\n )) ||\n (formData?.fee_structure?.[type]?.threshold_type === 'monthly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.monthly_rev_share || {},\n formData?.fee_structure?.[type]?.monthly_rev_share || {},\n ))\n ) {\n fields.push(\n `\n • To The Service Order / Statement of Work is updated to change the ${\n formData?.fee_structure?.[type]?.threshold_type === 'quarterly'\n ? 'quarterly'\n : 'monthly'\n } revenue share invoice value for ${type} account.This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
      ${ShowAddendumRetainerThresholdValues(\n type,\n 'quarterly_rev_share',\n 'monthly_rev_share',\n 'threshold_type',\n )}
    `,\n );\n }\n\n // if billing cap/minimum changed.\n\n if (\n checkConditions(\n originalData?.fee_structure?.[type]?.billing_cap,\n formData?.fee_structure?.[type]?.billing_cap,\n )\n ) {\n fields.push(\n `• To The Service Order / Statement of Work is updated to change the billing cap to ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_cap || 0,\n )} for managing ${type} account; This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n\n if (\n checkConditions(\n originalData?.fee_structure?.[type]?.billing_minimum,\n formData?.fee_structure?.[type]?.billing_minimum,\n )\n ) {\n fields.push(\n `• To The Service Order / Statement of Work is updated to change the billing minimum to ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.billing_minimum || 0,\n )} for managing ${type} account; This change is effective from ${\n formData?.fee_structure?.[type]?.effective_date\n ? dayjs(formData?.fee_structure?.[type]?.effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.
    `,\n );\n }\n\n // if combined rev share is changed.\n\n if (\n originalData?.combined_rev_share !== formData?.combined_rev_share &&\n type === 'seller'\n ) {\n if (formData?.combined_rev_share) {\n fields.push(`• BBE is going to calculate the Revenue Share by combining the seller and vendor accounts sales \n revenue. This is starting from 3rd of month.`);\n } else {\n fields.push(`• BBE is going to calculate the Revenue Share of the seller account sales separately \n from the vendor accounts sales revenue for managing ${selectedCurrency}${displayNumber(\n formData?.fee_structure?.[type]?.sales_threshold || 0,\n )}
    account. This is starting from 3rd of every month.\n`);\n }\n }\n\n // 2.1 If monthly services are added\n\n displayMontlyServiceAddendum(type, fields);\n\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll('.,', '.')\n .replaceAll(' ,', '')\n .replaceAll('•', '
    •')\n .replaceAll(',
    ', '
    ')\n .replaceAll(',
    ', '
    ')\n .replaceAll('
    ,', '
    ')\n : '';\n };\n\n const displayDspFeesForAddendum = () => {\n if (checkConditions(originalData?.dsp_fee, formData?.dsp_fee)) {\n if (!originalData?.dsp_fee) {\n return originalData?.dsp_fee !== formData?.dsp_fee\n ? `
  • Fee Budget from ${selectedCurrency}${displayNumber(\n originalData?.dsp_fee || 0,\n )} to ${selectedCurrency}${displayNumber(\n formData?.dsp_fee,\n )}
  • `\n : '';\n }\n return originalData?.dsp_fee !== formData?.dsp_fee\n ? `
  • Fee Budget from ${selectedCurrency}${displayNumber(\n originalData?.dsp_fee || 0,\n )} to ${selectedCurrency}${\n formData?.dsp_fee ? displayNumber(formData?.dsp_fee) : 0\n }
  • `\n : '';\n }\n return '';\n };\n\n const renderAddendumAMCServices = (serviceData, flag) => {\n const returnData = [];\n const removedAMCServices = getAddedOrRemovedAMCServices(\n originalData?.amc_services,\n formData?.amc_services,\n );\n const existingServices = getAddedOrRemovedAMCServices(\n originalData?.amc_services,\n removedAMCServices,\n );\n\n returnData.push(\n `
    \n \n ${\n flag === 'added'\n ? existingServices?.length\n ? `\n \n \n \n `\n : ''\n : `\n \n \n `\n }\n ${\n flag !== 'removed'\n ? mapMonthlyServices('amc_services', existingServices, flag)\n : ''\n }\n\n \n ${\n serviceData?.length && flag === 'added'\n ? ` \n \n\n \n `\n : ''\n }\n ${mapMonthlyServices('amc_services', serviceData, flag)}\n\n \n ${\n flag === 'added'\n ? mapMonthlyServiceTotal(formData?.amc_services, '', '')\n : ''\n }\n
    Existing ServiceEffective DateService Fee
    Existing ServiceService Fee
    Additional ServiceEffective DateService Fee
    \n
    `,\n );\n return returnData.length\n ? returnData.toString().replaceAll('>,<', '><')\n : '';\n };\n\n const nonAccountContractAddendum = () => {\n const fields = [];\n\n // If LISTING OPTIMIZATIONS (ASIN’S PER MONTH) changed\n if (\n checkConditions(\n originalData?.content_optimization,\n formData?.content_optimization,\n ) ||\n checkConditions(\n originalData?.design_optimization,\n formData?.design_optimization,\n ) ||\n checkConditions(\n originalData?.photography_optimization,\n formData?.photography_optimization,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the following Listing Optimizations (asin’s per month). This change is effective from ${\n formData?.listing_optimization_effective_date\n ? dayjs(formData?.listing_optimization_effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.\n
      \n ${renderListingOptimizationServices(\n 'Copy Optimization',\n originalData?.content_optimization,\n formData?.content_optimization,\n )}\n ${renderListingOptimizationServices(\n 'Design Optimization',\n originalData?.design_optimization,\n formData?.design_optimization,\n )}\n
    `,\n );\n }\n\n // If LISTING TRANSLATION changed\n if (\n checkConditions(\n originalData?.copy_listing_translation,\n formData?.copy_listing_translation,\n ) ||\n checkConditions(\n originalData?.creative_listing_translation,\n formData?.creative_listing_translation,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to change the following Listing Translation(asin’s per month). This change is effective from ${\n formData?.listing_translation_effective_date\n ? dayjs(formData?.listing_translation_effective_date).format(\n 'MM / DD / YYYY',\n )\n : defaultEffectivityDateText\n }.\n
      \n ${renderListingOptimizationServices(\n 'Copy Translation',\n originalData?.copy_listing_translation,\n formData?.copy_listing_translation,\n )}\n ${renderListingOptimizationServices(\n 'Creative Translation',\n originalData?.creative_listing_translation,\n formData?.creative_listing_translation,\n )}\n
    `,\n );\n }\n // 1.2. If Standard services are Removed\n const removedStandardUsServices =\n originalData?.standard_us_services?.filter((obj) => {\n return !formData?.standard_us_services?.some((obj2) => {\n return obj?.name === obj2?.name;\n });\n });\n\n if (removedStandardUsServices && removedStandardUsServices?.length) {\n fields.push(\n `• The Service Order / Statement of Work is updated to remove the following Standard Service(s). This change is effective on the addendum signature date.\n ${renderAddendumStandardUsServices(\n removedStandardUsServices,\n 'removed',\n )}`,\n );\n }\n\n // if Statement Of Work are changed.\n // 1.1 If Standard services are Added\n\n const standardUsServicesUniqueResult =\n formData?.standard_us_services?.filter((obj) => {\n return !originalData?.standard_us_services?.some((obj2) => {\n return obj.name === obj2.name;\n });\n });\n\n if (\n standardUsServicesUniqueResult &&\n standardUsServicesUniqueResult?.length\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the following Standard Service(s).\n ${renderAddendumStandardUsServices(\n standardUsServicesUniqueResult,\n 'added',\n )}\n `,\n );\n }\n\n // If Standard non-us services are changed\n // for Non Us Services\n const saperateFormDataNonUsmarketplaces = (dataInfo) => {\n return (\n dataInfo?.length &&\n dataInfo\n .filter((item) => item.name === 'VAT Registration')\n .map((filteredItem) => filteredItem)\n );\n };\n\n const seperateVATFilingMarketplaces = (dataInfo) => {\n const marketplaces =\n dataInfo?.length &&\n dataInfo.filter(\n (item) =>\n item.name === 'VAT Filing' &&\n item.marketplace !== null &&\n item.frequency !== null,\n );\n\n // const result = [];\n // if (marketplaces?.length) {\n // marketplaces.map((item) => {\n // result.push(\n // `${displayMarketplaceName(item.marketplace, 'vat', 'lhs')} (${\n // item?.frequency\n // })`,\n // );\n // return null;\n // });\n // }\n return marketplaces?.length ? marketplaces : [];\n };\n\n const seperateFormDataInternationalNonUsServices = (dataInfo) => {\n return (\n dataInfo?.length &&\n dataInfo.filter((item) => item?.name?.includes('International'))\n );\n };\n\n const addedRemovedStandardServices = (data1, data2) => {\n return data1?.filter((item) => {\n return !data2.some((item1) => {\n return item?.marketplace === item1?.marketplace;\n });\n });\n };\n\n const uniqueInternationalNonUsServices = (data1, data2) =>\n data1?.filter((item) => {\n return !data2.some((item1) => {\n return item.name === item1.name;\n });\n });\n // 1. for Vat Regrestration\n const formDataNonUsmarketplaces =\n saperateFormDataNonUsmarketplaces(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataNonUsmarketplaces =\n saperateFormDataNonUsmarketplaces(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const uniqueNonUsServices = addedRemovedStandardServices(\n formDataNonUsmarketplaces,\n originalDataNonUsmarketplaces,\n );\n\n const removedNonUsServices = addedRemovedStandardServices(\n originalDataNonUsmarketplaces,\n formDataNonUsmarketplaces,\n );\n\n // 2. for Vat Filling\n const formDataVATFilingMarketplaces =\n seperateVATFilingMarketplaces(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataVATFilingMarketplaces =\n seperateVATFilingMarketplaces(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const addedVatFillingNonUsServices = addedRemovedStandardServices(\n formDataVATFilingMarketplaces,\n originalDataVATFilingMarketplaces,\n );\n const removedVatFillingNonUsServices = addedRemovedStandardServices(\n originalDataVATFilingMarketplaces,\n formDataVATFilingMarketplaces,\n );\n\n // 3. for international service\n const formDataInternationalNonUsServices =\n seperateFormDataInternationalNonUsServices(\n formData?.standard_non_us_services?.length &&\n formData?.standard_non_us_services,\n ) || [];\n\n const originalDataInternationalNonUsServices =\n seperateFormDataInternationalNonUsServices(\n originalData?.standard_non_us_services?.length &&\n originalData?.standard_non_us_services,\n ) || [];\n\n const addedInternationalNonUsServices = uniqueInternationalNonUsServices(\n formDataInternationalNonUsServices,\n originalDataInternationalNonUsServices,\n );\n const remmovedInternationalNonUsServices = uniqueInternationalNonUsServices(\n originalDataInternationalNonUsServices,\n formDataInternationalNonUsServices,\n );\n\n // DSP service length (MONTHS), field, in DSP Advertising\n const showDspLength = () => {\n if (formData?.dsp_length?.value) {\n return `${\n originalData?.dsp_length?.value !== formData?.dsp_length?.value\n ? `
  • DSP service length from ${\n originalData?.dsp_length?.label || originalData?.dsp_length || 0\n } to ${\n formData?.dsp_length?.label || formData?.dsp_length || 0\n }
  • `\n : ''\n }`;\n }\n return `${\n originalData?.dsp_length?.value !== formData?.dsp_length\n ? `
  • DSP service length from ${\n originalData?.dsp_length?.label || originalData?.dsp_length || 0\n } to ${\n formData?.dsp_length || formData?.dsp_length || 0\n }
  • `\n : ''\n }`;\n };\n\n const addedAMCServices = getAddedOrRemovedAMCServices(\n formData?.amc_services,\n originalData?.amc_services,\n );\n const removedAMCServices = getAddedOrRemovedAMCServices(\n originalData?.amc_services,\n formData?.amc_services,\n );\n\n // DSP Advertising service and AMC services\n if (\n (formData?.is_dsp_advertising &&\n formData?.is_dsp_advertising !== originalData?.is_dsp_advertising) ||\n addedAMCServices?.length ||\n discountData?.find(\n (item) =>\n item?.is_addendum_discount_changed &&\n item?.amount !== null &&\n item?.type !== null,\n )\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the following Advertising Service(s).\n ${renderAddendumAMCServices(addedAMCServices, 'added')}\n `,\n );\n }\n if (\n (!formData?.is_dsp_advertising &&\n formData?.is_dsp_advertising !== originalData?.is_dsp_advertising) ||\n removedAMCServices?.length\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to remove the following Advertising Service(s).\n ${renderAddendumAMCServices(removedAMCServices, 'removed')}\n `,\n );\n }\n\n const setDspAdvertisingEffectiveDate = () => {\n // const service = formData?.additional_monthly_services?.find(\n // (item) =>\n // item?.name === 'DSP Advertising' ||\n // item?.service?.name === 'DSP Advertising',\n // );\n if (formData?.dsp_start_date) {\n return dayjs(formData?.dsp_start_date).format('MM / DD / YYYY');\n }\n return defaultEffectivityDateText;\n };\n\n const mapVatRegistrationTable = (servicesData, type, tableType) => {\n const field = [];\n servicesData.map((item) => {\n field.push(`\n ${\n type === 'internationService' ? item.name : ''\n }\n ${\n type === 'vatRegistration'\n ? `VAT Registration: ${displayMarketplaceName(\n item?.marketplace,\n 'vat',\n 'lhs',\n )}`\n : ''\n } \n ${\n type === 'vatFiling'\n ? `VAT Filing: ${displayMarketplaceName(\n item?.marketplace,\n 'vat',\n 'lhs',\n )} (${item?.frequency})`\n : ''\n } \n \n ${\n tableType === 'added'\n ? `${\n item?.id && item?.effective_date\n ? item?.effective_date\n : item?.id && !item?.effective_date\n ? formData?.contract_signed_date\n : defaultEffectivityDateText\n } `\n : ''\n }\n `);\n return null;\n });\n return field;\n };\n\n const renderNonUSStandardServices = (\n vatReg,\n vatFiling,\n internationService,\n tableType,\n ) => {\n const returnData = [];\n returnData.push(\n `
    \n \n \n \n ${\n tableType === 'added'\n ? ``\n : ''\n }\n \n \n ${\n vatReg?.length\n ? mapVatRegistrationTable(vatReg, 'vatRegistration', tableType)\n : ''\n }\n ${\n vatFiling?.length\n ? mapVatRegistrationTable(vatFiling, 'vatFiling', tableType)\n : ''\n }\n ${\n internationService?.length\n ? mapVatRegistrationTable(\n internationService,\n 'internationService',\n tableType,\n )\n : ''\n }\n
    ServicesEffective Date
    \n
    `,\n );\n return returnData;\n };\n const showDspAgencyFees = (param1, param2) => {\n if (param1?.value) {\n return `${(param2?.value !== param1?.value\n ? `
  • Agency Fee from ${\n param2?.value >= 0 ? `${param2?.value}%` : param2 ? `${param2}%` : 0\n\n // `${param2?.value}%` || `${param2}%` || 0\n } to ${\n param1?.value >= 0 ? `${param1?.value}%` : param1 ? `${param1}%` : 0\n }
  • `\n : ''\n ).replaceAll('[object Object]', 0)}`;\n }\n if (!param1?.value) {\n return `${((!param2?.value ? 0 : param2?.value) !==\n (!param1 ? 0 : param1)\n ? `
  • Agency Fee from ${\n param2?.value ? `${param2?.value}%` : param2 ? `${param2}%` : 0\n // `${param2?.value}%` || `${param2}%` || 0\n } to ${\n `${param1}%` ? `${param1}%` : 0\n }
  • `\n : ''\n ).replaceAll('[object Object]', 0)}`;\n }\n return '';\n };\n\n // Display result if Standard non us services are added\n if (\n uniqueNonUsServices?.length ||\n addedVatFillingNonUsServices?.length ||\n addedInternationalNonUsServices?.length\n ) {\n fields.push(`• The Service Order / Statement of Work is updated to add the following Standard Services\n (for non-us marketplaces).\n ${renderNonUSStandardServices(\n uniqueNonUsServices,\n addedVatFillingNonUsServices,\n addedInternationalNonUsServices,\n 'added',\n )}\n `);\n }\n\n // Display result if standard non us services are removed\n if (\n removedNonUsServices?.length ||\n removedVatFillingNonUsServices?.length ||\n remmovedInternationalNonUsServices?.length\n ) {\n fields.push(`• The Service Order / Statement of Work is updated to remove the following Standard Services (for non-us marketplaces). This change is effective on the addendum signature date.\n ${renderNonUSStandardServices(\n removedNonUsServices,\n removedVatFillingNonUsServices,\n remmovedInternationalNonUsServices,\n 'removed',\n )}\n `);\n }\n\n // if dsp Adv.\n if (\n originalData?.dsp_fee !== formData?.dsp_fee ||\n (originalData?.dsp_length?.value\n ? originalData?.dsp_length?.value\n : 0) !==\n (formData?.dsp_length?.value\n ? formData?.dsp_length?.value\n : formData?.dsp_length\n ? formData?.dsp_length\n : 0) ||\n (originalData?.agency_fee?.value\n ? originalData?.agency_fee?.value\n : 0) !==\n (formData?.agency_fee?.value\n ? formData?.agency_fee?.value\n : formData?.agency_fee\n ? formData?.agency_fee\n : 0)\n ) {\n fields.push(\n `• The Service Order / Statement of Work is updated to add the following DSP Advertising, for \n
      ${displayDspFeesForAddendum()}\n ${\n formData?.contract_type?.toLowerCase()?.includes('recurring')\n ? // dsp service length (MONTHS), field, in DSP Advertising\n showDspLength(formData?.dsp_fee, originalData?.dsp_fee)\n : ''\n }\n ${showDspAgencyFees(\n formData?.agency_fee,\n originalData?.agency_fee,\n )}
    This change is effective from ${setDspAdvertisingEffectiveDate()}.
    .\n `,\n );\n }\n // if dsp marketplaces\n const serviceAddedResult = getDifference(\n formData?.dsp_marketplaces,\n originalData?.dsp_marketplaces,\n 'marketplace',\n );\n const serviceRemovedResult = getDifference(\n originalData?.dsp_marketplaces,\n formData?.dsp_marketplaces,\n 'marketplace',\n );\n\n if (serviceAddedResult?.length || serviceRemovedResult?.length) {\n fields.push(\n `
    \n DSP Marketplaces for Amazon ${formData?.seller_type?.label} Account
    `,\n );\n }\n if (serviceAddedResult?.length) {\n fields.push(` • The Service Order / Statement of Work is updated to add the following DSP marketplaces, This change is effective from ${setDspAdvertisingEffectiveDate()}.
    e.\n
      \n ${displayMonthlyServices(serviceAddedResult, 'dsp')}\n
    `);\n }\n\n if (serviceRemovedResult?.length) {\n fields.push(\n `• The Service Order / Statement of Work is updated to remove the following DSP marketplaces, This change is effective on the addendum signature date.\n
      \n ${displayMonthlyServices(serviceRemovedResult, 'dsp')}
    \n \n `,\n );\n }\n return fields.length\n ? fields\n .toString()\n .replaceAll('>,<', '><')\n .replaceAll('.,', '.')\n .replaceAll(' ,', '')\n .replaceAll('•', '
    •')\n .replaceAll(',
    ', '
    ')\n .replaceAll(',
    ', '
    ')\n : '';\n };\n\n const contractAddendumChanges = () => {\n if (contractAddendumDetails.notActive) {\n if (formData?.seller_type?.label === 'Hybrid') {\n return `${accountContractAddendum('seller')}\n ${accountContractAddendum('vendor')} ${nonAccountContractAddendum()}`;\n }\n if (formData?.seller_type?.label === 'Seller') {\n return `${accountContractAddendum(\n 'seller',\n )} ${nonAccountContractAddendum()}`;\n }\n if (formData?.seller_type?.label === 'Vendor') {\n return `${accountContractAddendum(\n 'vendor',\n )} ${nonAccountContractAddendum()}`;\n }\n }\n return '';\n };\n\n // display bbe logo\n const displayBBELogo = () => {\n // 150px width of bbe logo as mentioned in PDV-8247\n return `bbe-logo`;\n };\n const showAMCServiceTable = () => {\n if (formData?.contract_type?.includes('dsp')) {\n if (formData?.is_amc_management) {\n return `
    \n Additional Advertising Services \n
    The following additional monthly services will be provided to Client in addition to the Monthly Retainer.

    \n
    \n \n \n \n \n \n ${mapMonthlyServices('amc_services', formData?.amc_services)}\n ${mapMonthlyServiceTotal(formData?.amc_services, '', '')}\n\n
    ServiceService Fee
    \n
    `;\n }\n return '';\n }\n return '';\n };\n\n const createAgreementDoc = () => {\n const agreementStartDate = formData?.change_agreement_start_date;\n const changeAgreementStartDate =\n agreementStartDate === null || agreementStartDate === undefined\n ? false\n : agreementStartDate;\n\n const addendumStartDate = formData?.change_addendum_start_date;\n const changeAddendumStartDate =\n addendumStartDate === null || addendumStartDate === undefined\n ? false\n : addendumStartDate;\n\n setContractDesignLoader(true);\n const serviceData = getAgreementAccorType(0);\n const agreementData =\n serviceData &&\n serviceData\n .replace('BBE_LOGO', displayBBELogo())\n .replace(\n 'CUSTOMER_NAME',\n mapDefaultValues('company_name', 'Customer Name'),\n )\n .replace(\n '{{Signdate}}',\n changeAgreementStartDate\n ? mapDefaultValues('start_date', 'Start Date')\n : '{{Signdate}}',\n )\n .replace('CUSTOMER_ADDRESS', mapDefaultValues('address', 'Address, '))\n .replace(\n 'AGREEMENT_LENGTH',\n mapDefaultValues('length', 'Contract Length'),\n )\n .replace('ONE_TIME_SERVICE_TABLE', showOneTimeTable())\n .replace(\n 'ADDITIONAL_ONE_TIME_SERVICES_TOTAL',\n `${mapServiceTotal('additional_one_time_services')}`,\n )\n .replace('LANGUAGE_ACCORDING_TO_CONTRACT_TYPE', `${mapLanguage()}`);\n\n const agreementSignatureData = AgreementSign.replace(\n 'CUSTOMER_NAME',\n mapDefaultValues('company_name', 'Customer Name'),\n )\n .replace('CUSTOMER_ADDRESS', mapDefaultValues('address', 'Address, '))\n .replace('BBE_DATE', mapDefaultValues('current_date', 'Current Date'))\n .replace('THAD_SIGN', mapThadSignImg())\n .replace(\n 'PRINTED_NAME',\n `${thadDetails?.firstName} ${thadDetails?.lastName} `,\n )\n .replace('TITLE', `${thadDetails?.title}`);\n\n const statmentData =\n data?.statement_of_work &&\n data?.statement_of_work[0]\n .replace('BBE_LOGO', displayBBELogo())\n .replace(\n 'CUSTOMER_NAME',\n mapDefaultValues('company_name', 'Customer Name'),\n )\n .replaceAll(\n '{{Signdate}}',\n changeAgreementStartDate\n ? mapDefaultValues('start_date', 'Start Date')\n : '{{Signdate}}',\n )\n .replace(\n 'SELLER_TYPE',\n mapDefaultValues(\n 'seller_type',\n `${formData?.channel?.label} Account Type`,\n ),\n )\n .replace('BILLING_CAP_AMOUNT', showBillingCap())\n .replace('REV_SHARE_TABLE', showRevTable())\n .replace('REVENUE_SHARE', mapDefaultValues('rev_share', 'Rev Share'))\n .replace(\n 'REV_THRESHOLD',\n mapDefaultValues('threshold_type', 'Rev Threshold'),\n )\n .replace(\n 'AMAZON_ACCOUNT_TYPE',\n mapDefaultValues('seller_type', 'Seller Type', 'amazon'),\n )\n .replace(\n 'ACCOUNT_TYPE',\n mapDefaultValues(\n 'seller_type',\n `${formData?.channel?.label} Account Type`,\n ),\n )\n .replace(\n 'PRIMARY_MARKETPLACE',\n mapDefaultValues('primary_marketplace', 'Primary Marketplace'),\n )\n .replace(\n 'MAP_MONTHLY_SERVICES',\n showMonthlyServiceTablesAccordingToAccType(),\n )\n .replace('MAP_AMC_MONTHLY_SERVICES', showAMCServicesTable())\n .replace('ONE_TIME_SERVICES', showOneTimeServiceTable())\n .replace('MAP_STANDARD_SERVICE_TABLE', showStandardServicesTable())\n .replace(\n 'ADDITIONAL_SERVICES_NOT_INCLUDED',\n showNotIncludedServicesTable(),\n )\n .replace(\n 'MAP_STANDARD_SERV_FOR_NON_US_MARKETPLACES_TABLE',\n showStandardServicesNONUSMarketplacesTable(),\n )\n .replace(\n 'BILLING_CAP_AMOUNT',\n mapDefaultValues('billing_cap', 'Billing Cap', 'number-currency'),\n );\n\n const dspAddendum = showSection?.dspAddendum\n ? data?.dsp_addendum &&\n data?.dsp_addendum[0]\n .replace('BBE_LOGO', displayBBELogo())\n .replace(\n 'CUSTOMER_NAME',\n mapDefaultValues('company_name', 'Customer Name'),\n )\n .replace(\n '{{Signdate}}',\n changeAgreementStartDate\n ? mapDefaultValues('start_date', 'Start Date')\n : '{{Signdate}}',\n )\n .replace(\n 'DSP_DETAIL_TABLE',\n `\n \n ${\n formData?.is_dynamic_dsp_fee\n ? `\n \n ${\n !formData?.changed_dsp_start_date\n ? dayjs(firstMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(new Date(firstMonthDate), 1)\n }
    Monthly Ad Budget\n \n \n ${\n !formData?.changed_dsp_start_date\n ? dayjs(secondMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(\n new Date(secondMonthDate),\n 1,\n )\n }
    Monthly Ad Budget\n \n \n ${\n !formData?.changed_dsp_start_date\n ? dayjs(thirdMonthDate).format('MMMM YYYY')\n : returnDspMonthlyDates(\n new Date(thirdMonthDate),\n 1,\n )\n }
    Monthly Ad Budget\n \n `\n : `\n Monthly Ad Budget\n `\n } ${\n formData?.changed_dsp_start_date\n ? `
    `\n : ''\n }${mapDspDetails()\n .replaceAll(\n 'DSP_FEE',\n mapDefaultValues('dsp_fee', 'Dsp Fee', 'number-currency'),\n )\n .replaceAll(\n 'SECOND_DSP',\n mapDefaultValues(\n 'dsp_fee_second',\n 'Dsp Fee',\n 'number-currency',\n ),\n )\n .replaceAll(\n 'THIRD_DSP',\n mapDefaultValues('dsp_fee_third', 'Dsp Fee', 'number-currency'),\n )\n .replace(\n 'DSP_ONE_TIME_FEE',\n mapDefaultValues(\n 'dsp_one_time_fee',\n 'Dsp Fee',\n 'number-currency',\n ),\n )}
    Start DateDSP Service LengthOne Time Ad Budget
    `,\n )\n .replace(\n 'BUDGET_BREAKDOWN_TABLE',\n `${mapBudgetBreakdownTable()\n .replaceAll(\n 'DSP_FEE',\n mapDefaultValues('dsp_fee', 'Dsp Fee', 'number-currency'),\n )\n .replaceAll(\n 'SECOND_DSP',\n mapDefaultValues(\n 'dsp_fee_second',\n 'Dsp Fee',\n 'number-currency',\n ),\n )\n .replaceAll(\n 'THIRD_DSP',\n mapDefaultValues('dsp_fee_third', 'Dsp Fee', 'number-currency'),\n )\n .replace(\n 'DSP_ONE_TIME_FEE',\n mapDefaultValues(\n 'dsp_one_time_fee',\n 'Dsp Fee',\n 'number-currency',\n ),\n )}\n ${displayMarketplacesTable().replaceAll(' ,', '')}`,\n )\n .replaceAll('CONTRACT_LENGTH', returnDspMonthAndDays(false))\n .replace('AMC_SERVICE_TABLE', showAMCServiceTable())\n .replace('NO_OF_DAYS_BASED_ON_DATE', returnDspMonthAndDays(true))\n : '';\n\n const dspAddendumSignature = showSection?.dspAddendum\n ? AddendumSign.replace(\n 'CUSTOMER_NAME',\n mapDefaultValues('company_name', 'Customer Name'),\n )\n .replace('BBE_DATE', mapDefaultValues('current_date', 'Current Date'))\n .replace('THAD_SIGN', mapThadSignImg())\n .replace(\n 'PRINTED_NAME',\n `${thadDetails?.firstName} ${thadDetails?.lastName} `,\n )\n .replace('CONTRACT_ADDENDUM_CHANGES', '')\n .replace('TITLE', `${thadDetails?.title}`)\n : '';\n\n const addendumData = data?.addendum?.[0]\n .replace('BBE_LOGO', displayBBELogo())\n .replace(\n 'CUSTOMER_NAME',\n mapDefaultValues('company_name', 'Customer Name'),\n )\n .replaceAll(\n 'AGREEMENT_DATE',\n mapDefaultValues('start_date', 'Start Date'),\n )\n .replace(\n '{{Signdate}}',\n changeAddendumStartDate\n ? mapDefaultValues('addendum_start_date', 'Start Date')\n : '{{Signdate}}',\n )\n .replace(\n '

    ', '

    ')\n : '';\n\n const addendumSignatureData = AddendumSign.replace(\n 'CUSTOMER_NAME',\n mapDefaultValues('company_name', 'Customer Name'),\n )\n .replace('BBE_DATE', mapDefaultValues('current_date', 'Current Date'))\n .replace('THAD_SIGN', mapThadSignImg())\n .replace(\n 'PRINTED_NAME',\n `${thadDetails?.firstName} ${thadDetails?.lastName} `,\n )\n .replace(\n 'CONTRACT_ADDENDUM_CHANGES',\n contractAddendumChanges('addendum_changes'),\n )\n .replace('TITLE', `${thadDetails?.title}`);\n\n const finalContractAgreement = `${agreementData} ${agreementSignatureData} ${\n details?.contract_type?.toLowerCase().includes('one') ||\n details?.contract_type?.toLowerCase().includes('dsp')\n ? ''\n : statmentData\n } ${\n details?.contract_type?.toLowerCase().includes('one') ? '' : dspAddendum\n } ${\n details?.contract_type?.toLowerCase().includes('one')\n ? ''\n : dspAddendumSignature\n } ${\n newAddendumAddedData\n ? newAddendumAddedData.length <= 24\n ? ''\n : addendumData + newAddendumAddedData + addendumSignatureData\n : ''\n } `;\n\n const finalAddendumAgreement = `${\n newAddendumAddedData\n ? addendumData + newAddendumAddedData + addendumSignatureData\n : addendumData + addendumSignatureData\n }`;\n\n setPDFData(\n contractAddendumDetails.notActive\n ? finalAddendumAgreement\n : finalContractAgreement,\n );\n\n const localAddendumDetails = {\n contract_addendum: contractAddendumDetails?.id,\n contract_addendum_data: finalAddendumAgreement\n .replaceAll('CUSTOMER_PRINTED_NAME', '')\n .replace('CUSTOMER_ROLE', ''),\n // .replaceAll('€', '€')\n // .replaceAll('£', '£'),\n };\n const contractData = {\n contract: detailsId,\n contract_data: finalContractAgreement\n .replaceAll('CUSTOMER_PRINTED_NAME', '')\n .replace('CUSTOMER_ROLE', ''),\n // .replaceAll('€', '€')\n // .replaceAll('£', '£'),\n };\n\n createContractDesign(\n contractAddendumDetails.notActive ? localAddendumDetails : contractData,\n ).then(() => {\n setContractDesignLoader(false);\n });\n };\n\n useEffect(() => {\n if (downloadApiCall) {\n createAgreementDoc();\n setDownloadApiCall(false);\n }\n }, [downloadApiCall]);\n\n useEffect(() => {\n createAgreementDoc();\n }, [helloSignEnterDateTextFlag, formData]);\n\n useEffect(() => {\n const sectionFlag = { ...showSection };\n\n if (details?.additional_monthly_services?.length) {\n if (contractAddendumDetails?.notActive) {\n if (addendumDetails?.additional_monthly_services) {\n setMonthlyAdditionalServices({\n create: [...addendumDetails?.additional_monthly_services],\n delete: [],\n });\n } else {\n setMonthlyAdditionalServices({\n create: [],\n delete: [],\n });\n }\n } else {\n setMonthlyAdditionalServices({\n create: [...details.additional_monthly_services],\n delete: [],\n });\n }\n } else {\n setMonthlyAdditionalServices({\n create: [],\n delete: [],\n });\n }\n if (details?.additional_marketplaces?.length) {\n if (\n contractAddendumDetails?.notActive &&\n addendumDetails?.additional_marketplaces\n ) {\n setAdditionalMarketplace({\n create: [...addendumDetails.additional_marketplaces],\n delete: [],\n });\n } else {\n setAdditionalMarketplace({\n create: [...details.additional_marketplaces],\n delete: [],\n });\n }\n } else {\n setAdditionalMarketplace({\n create: [],\n delete: [],\n });\n }\n if (details?.additional_one_time_services?.length) {\n setAdditionalOnetimeServices({\n create: [...details.additional_one_time_services],\n delete: [],\n });\n } else {\n setAdditionalOnetimeServices({\n create: [],\n delete: [],\n });\n }\n\n if (primaryMarketplaceName) {\n const marketplacesWithoutPrimary = marketplacesResult.filter(\n (op) => op.value !== details.primary_marketplace.name,\n );\n setAdditionalMarketplaces(marketplacesWithoutPrimary);\n setDspAdditionalMarketplaces(marketplacesResult);\n } else {\n setAdditionalMarketplaces(marketplacesResult);\n setDspAdditionalMarketplaces(marketplacesResult);\n }\n\n if (details?.additional_marketplaces) {\n setMarketPlaces(\n marketplacesResult.filter(\n (choice) =>\n !(details?.additional_marketplaces).some(\n (item) => item.name === choice.value,\n ),\n ),\n );\n } else {\n setMarketPlaces(marketplacesResult);\n }\n if (details?.additional_one_time_services) {\n fetchUncommonOptions(\n oneTimeService,\n details.additional_one_time_services,\n 'one_time_service',\n );\n }\n if (details?.additional_monthly_services) {\n fetchUncommonOptions(\n details?.seller_type?.value === 'Hybrid'\n ? monthlyService?.Seller\n : monthlyService?.[details?.seller_type?.value],\n details.additional_monthly_services,\n 'monthly_service',\n );\n }\n\n if (\n !details?.additional_one_time_services ||\n !details?.additional_monthly_services\n ) {\n fetchUncommonOptions(\n oneTimeService,\n details?.additional_one_time_services,\n 'one_time_service',\n );\n\n fetchUncommonOptions(\n details?.seller_type?.value === 'Hybrid'\n ? monthlyService?.Seller\n : monthlyService?.[details?.seller_type?.value],\n details?.additional_monthly_services,\n 'monthly_service',\n );\n }\n\n const contractToFilter = contractAddendumDetails?.notActive\n ? addendumDetails\n : details;\n const checkDspAdevertisingisSelected = contractToFilter?.is_dsp_advertising;\n\n const flagDSPAdevertising = checkDspAdevertisingisSelected;\n\n if (!contractTypeOne && !contractTypeDsp && flagDSPAdevertising) {\n sectionFlag.dspAddendum = true;\n } else {\n sectionFlag.dspAddendum = false;\n }\n\n if (details?.contract_type?.toLowerCase().includes('dsp')) {\n sectionFlag.dspAddendum = true;\n }\n\n setTimeout(() => {\n setIsDocRendered(true);\n }, 7000);\n\n setShowCollpase(sectionFlag);\n }, [details, monthlyService, addendumDetails]);\n\n useEffect(() => {\n const sectionFlag = { ...showSection };\n if (newAddendumData?.id) {\n if (newAddendumData.addendum?.length <= 7) {\n sectionFlag.addendum = false;\n } else {\n sectionFlag.addendum = true;\n }\n }\n setShowCollpase(sectionFlag);\n }, [newAddendumData]);\n\n const updateDiscount = (totalFees, type, typeOfService = null) => {\n if (Math.sign(totalFees.monthlyTotal) === -1) {\n const contractPostData = {\n contract: details?.id,\n account_type: type,\n service_type: 'monthly service',\n type: null,\n amount: null,\n };\n const addendumPostData = {\n contract_addendum: contractAddendumDetails?.id,\n account_type: type,\n service_type: 'monthly service',\n type: null,\n amount: null,\n };\n if (typeOfService === 'amc_services') {\n contractPostData.is_amc_service_discount = true;\n addendumPostData.is_amc_service_discount = true;\n }\n\n const result =\n discountData?.length &&\n discountData.filter(\n (item) =>\n item.service_type === 'monthly service' &&\n item.account_type === type,\n );\n if (!result?.[0]?.id) {\n addendumPostData.is_addendum_discount_changed = true;\n }\n saveDiscount(\n result?.[0]?.id,\n contractAddendumDetails?.notActive\n ? addendumPostData\n : contractPostData,\n );\n }\n };\n\n const handleDiscount = (typeOfService = null) => {\n if (typeOfService === 'amc_services') {\n const totalFees = calculateTotalFee(\n 'monthly',\n formData?.amc_services,\n '',\n '',\n );\n updateDiscount(totalFees, '', typeOfService);\n } else {\n if (accountType === 'Seller') {\n const sellerResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Seller',\n );\n const marketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Seller',\n );\n const totalFees = calculateTotalFee(\n 'monthly',\n sellerResult,\n marketplaceResult,\n accountType,\n );\n\n updateDiscount(totalFees, accountType);\n }\n\n if (accountType === 'Vendor') {\n const vendorResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Vendor',\n );\n const marketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Vendor',\n );\n const totalFees = calculateTotalFee(\n 'monthly',\n vendorResult,\n marketplaceResult,\n accountType,\n );\n updateDiscount(totalFees, accountType);\n }\n\n if (accountType === 'Hybrid') {\n const sellerResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Seller',\n );\n\n const vendorResult = getServicesAccordingToAccType(\n formData?.additional_monthly_services,\n 'Vendor',\n );\n\n const sellerMarketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Seller',\n );\n\n const vendorMarketplaceResult = getServicesAccordingToAccType(\n formData?.additional_marketplaces,\n 'Vendor',\n );\n\n const sellerTotalFees = calculateTotalFee(\n 'monthly',\n sellerResult,\n sellerMarketplaceResult,\n 'Seller',\n );\n updateDiscount(sellerTotalFees, 'Seller');\n\n const vendorTotalFees = calculateTotalFee(\n 'monthly',\n vendorResult,\n vendorMarketplaceResult,\n 'Vendor',\n );\n\n updateDiscount(vendorTotalFees, 'Vendor');\n }\n }\n };\n\n const getUpdatedFeeStructure = (type) => {\n const updatedFields = Object.keys(formData?.fee_structure?.[type]);\n const result = {};\n if (formData?.fee_structure?.[type].vendor_billing_report) {\n result.vendor_billing_report =\n formData?.fee_structure?.[type].vendor_billing_report;\n }\n if (formData?.fee_structure?.[type]?.vendor_same_as_seller) {\n result.vendor_same_as_seller =\n formData?.fee_structure?.[type].vendor_same_as_seller;\n }\n if (!formData?.fee_structure?.[type]?.vendor_same_as_seller) {\n result.vendor_same_as_seller =\n formData?.fee_structure?.[type].vendor_same_as_seller;\n }\n if (updatedFields.includes('fee_type')) {\n if (\n formData?.combined_rev_share &&\n formData?.seller_type?.label === 'Hybrid'\n ) {\n result.rev_share = formData?.fee_structure?.seller?.rev_share;\n result.sales_threshold =\n formData?.fee_structure?.seller?.sales_threshold;\n result.threshold_type = formData?.fee_structure?.seller?.threshold_type;\n }\n const selectedFeeType = formData?.fee_structure?.[type].fee_type;\n if (selectedFeeType === null) {\n result.fee_type = selectedFeeType;\n }\n if (selectedFeeType === 'Retainer Only') {\n result.fee_type = selectedFeeType;\n const selectedRetainerType =\n formData?.fee_structure?.[type].retainer_type;\n result.retainer_type = selectedRetainerType;\n if (selectedRetainerType === 'Fixed' || !selectedRetainerType) {\n result.monthly_retainer =\n formData?.fee_structure?.[type].monthly_retainer;\n result.retainer_type = 'Fixed';\n }\n if (selectedRetainerType === 'quarterly') {\n result.quarterly_monthly_retainer = {\n ...formData?.fee_structure?.[type].quarterly_monthly_retainer,\n };\n }\n if (selectedRetainerType === 'monthly') {\n result.monthly_monthly_retainer = {\n ...formData?.fee_structure?.[type].monthly_monthly_retainer,\n };\n }\n }\n\n if (selectedFeeType === 'Revenue Share Only') {\n const selectedThresholdType =\n formData?.fee_structure?.[type].threshold_type;\n result.fee_type = selectedFeeType;\n result.rev_share = formData?.fee_structure?.[type].rev_share;\n result.billing_cap = formData?.fee_structure?.[type].billing_cap;\n result.billing_minimum =\n formData?.fee_structure?.[type].billing_minimum;\n result.threshold_type = selectedThresholdType;\n if (selectedThresholdType === 'Fixed') {\n result.sales_threshold =\n formData?.fee_structure?.[type].sales_threshold;\n }\n\n if (selectedThresholdType === 'quarterly') {\n result.quarterly_rev_share = {\n ...formData?.fee_structure?.[type].quarterly_rev_share,\n };\n }\n if (selectedThresholdType === 'monthly') {\n result.monthly_rev_share = {\n ...formData?.fee_structure?.[type].monthly_rev_share,\n };\n }\n }\n if (selectedFeeType === 'Retainer + % Rev Share') {\n result.fee_type = selectedFeeType;\n const selectedThresholdType =\n formData?.fee_structure?.[type].threshold_type;\n const selectedRetainerType =\n formData?.fee_structure?.[type].retainer_type;\n result.retainer_type = selectedRetainerType;\n result.rev_share = formData?.fee_structure?.[type].rev_share;\n result.billing_cap = formData?.fee_structure?.[type].billing_cap;\n\n if (selectedRetainerType === 'Fixed' || !selectedRetainerType) {\n result.monthly_retainer =\n formData?.fee_structure?.[type].monthly_retainer;\n result.retainer_type = 'Fixed';\n }\n if (selectedRetainerType === 'quarterly') {\n result.quarterly_monthly_retainer = {\n ...formData?.fee_structure?.[type].quarterly_monthly_retainer,\n };\n }\n if (selectedRetainerType === 'monthly') {\n result.monthly_monthly_retainer = {\n ...formData?.fee_structure?.[type].monthly_monthly_retainer,\n };\n }\n\n result.threshold_type = selectedThresholdType;\n if (selectedThresholdType === 'Fixed') {\n result.sales_threshold =\n formData?.fee_structure?.[type].sales_threshold;\n }\n\n if (selectedThresholdType === 'quarterly') {\n result.quarterly_rev_share = {\n ...formData?.fee_structure?.[type].quarterly_rev_share,\n };\n }\n if (selectedThresholdType === 'monthly') {\n result.monthly_rev_share = {\n ...formData?.fee_structure?.[type].monthly_rev_share,\n };\n }\n }\n }\n\n if (\n formData?.combined_rev_share &&\n formData?.seller_type?.label === 'Hybrid'\n ) {\n result.rev_share = formData?.fee_structure?.seller?.rev_share;\n result.sales_threshold = formData?.fee_structure?.seller?.sales_threshold;\n result.threshold_type = formData?.fee_structure?.seller?.threshold_type;\n }\n return result;\n };\n\n const isBillingCapExists = () => {\n if (\n formData?.seller_type?.value === 'Seller' ||\n formData?.seller_type?.value === 'Vendor'\n ) {\n const type = formData?.seller_type?.value?.toLowerCase();\n\n if (\n formData?.fee_structure?.[type]?.fee_type === 'Revenue Share Only' ||\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n if (\n formData?.fee_structure?.seller?.billing_cap ||\n formData?.fee_structure?.vendor?.billing_cap\n ) {\n return true;\n }\n }\n }\n\n if (formData?.seller_type?.value === 'Hybrid') {\n if (\n formData?.fee_structure?.seller?.fee_type === 'Revenue Share Only' ||\n formData?.fee_structure?.seller?.fee_type === 'Retainer + % Rev Share'\n ) {\n if (\n formData?.fee_structure?.seller?.billing_cap ||\n formData?.fee_structure?.vendor?.billing_cap\n ) {\n return true;\n }\n }\n if (\n formData?.fee_structure?.vendor?.fee_type === 'Revenue Share Only' ||\n formData?.fee_structure?.vendor?.fee_type === 'Retainer + % Rev Share'\n ) {\n if (\n formData?.fee_structure?.seller?.billing_cap ||\n formData?.fee_structure?.vendor?.billing_cap\n ) {\n return true;\n }\n }\n }\n return false;\n };\n\n // checking rev share conditions for approval\n // PDV-8316 - Rev share limit changes from 3 to 4\n const checkRevShareApprovalCondition = () => {\n if (\n formData?.seller_type?.value === 'Seller' ||\n formData?.seller_type?.value === 'Vendor'\n ) {\n const type = formData?.seller_type?.value?.toLowerCase();\n if (\n formData?.fee_structure?.[type]?.fee_type === 'Revenue Share Only' ||\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n if (formData?.fee_structure?.[type]?.rev_share < revShareLimitValue) {\n return true;\n }\n }\n }\n\n if (formData?.seller_type?.value === 'Hybrid') {\n if (\n formData?.fee_structure?.seller?.fee_type === 'Revenue Share Only' ||\n formData?.fee_structure?.seller?.fee_type === 'Retainer + % Rev Share'\n ) {\n if (formData?.fee_structure?.seller?.rev_share < revShareLimitValue) {\n return true;\n }\n }\n if (\n formData?.fee_structure?.vendor?.fee_type === 'Revenue Share Only' ||\n formData?.fee_structure?.vendor?.fee_type === 'Retainer + % Rev Share'\n ) {\n if (formData?.fee_structure?.vendor?.rev_share < revShareLimitValue) {\n return true;\n }\n }\n }\n return false;\n };\n\n // checking monthly retainer condition for approval\n // PDV-8316 - monthly retainer limit changes from $3000 to $6500\n const checkMonthlyRetainerApprovalCondition = () => {\n if (\n formData?.seller_type?.value === 'Seller' ||\n formData?.seller_type?.value === 'Vendor'\n ) {\n const type = formData?.seller_type?.value?.toLowerCase();\n if (\n formData?.fee_structure?.[type]?.fee_type === 'Retainer Only' ||\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share'\n ) {\n const checkForQuarterly =\n formData?.fee_structure?.[type]?.quarterly_monthly_retainer &&\n Object.values(\n formData?.fee_structure?.[type]?.quarterly_monthly_retainer,\n ).filter((op) => op < monthlyRetainerLimitValue);\n const checkForMonthly =\n formData?.fee_structure?.[type]?.monthly_monthly_retainer &&\n Object.values(\n formData?.fee_structure?.[type]?.monthly_monthly_retainer,\n ).filter((op) => op < monthlyRetainerLimitValue);\n\n if (\n (formData?.fee_structure?.[type]?.monthly_retainer <\n monthlyRetainerLimitValue &&\n formData?.fee_structure?.[type]?.retainer_type === 'Fixed') ||\n (checkForQuarterly?.length > 0 &&\n formData?.fee_structure?.[type]?.retainer_type === 'quarterly') ||\n (checkForMonthly?.length > 0 &&\n formData?.fee_structure?.[type]?.retainer_type === 'monthly')\n ) {\n return true;\n }\n }\n }\n\n if (formData?.seller_type?.value === 'Hybrid') {\n if (\n formData?.fee_structure?.seller?.fee_type === 'Retainer Only' ||\n formData?.fee_structure?.seller?.fee_type === 'Retainer + % Rev Share'\n ) {\n const checkForQuarterly =\n formData?.fee_structure?.seller?.quarterly_monthly_retainer &&\n Object.values(\n formData.fee_structure?.seller?.quarterly_monthly_retainer,\n ).filter((op) => op < monthlyRetainerLimitValue);\n const checkForMonthly =\n formData?.fee_structure?.seller?.monthly_monthly_retainer &&\n Object.values(\n formData?.fee_structure?.seller?.monthly_monthly_retainer,\n ).filter((op) => op < monthlyRetainerLimitValue);\n if (\n (formData?.fee_structure?.seller?.monthly_retainer <\n monthlyRetainerLimitValue &&\n formData?.fee_structure?.seller?.retainer_type === 'Fixed') ||\n (checkForQuarterly?.length > 0 &&\n formData?.fee_structure?.seller?.retainer_type === 'quarterly') ||\n (checkForMonthly?.length > 0 &&\n formData?.fee_structure?.seller?.retainer_type === 'monthly')\n ) {\n return true;\n }\n }\n if (\n formData?.fee_structure?.vendor?.fee_type === 'Retainer Only' ||\n formData?.fee_structure?.vendor?.fee_type === 'Retainer + % Rev Share'\n ) {\n const checkForQuarterly =\n formData?.fee_structure?.vendor?.quarterly_monthly_retainer &&\n Object.values(\n formData?.fee_structure?.vendor?.quarterly_monthly_retainer,\n ).filter((op) => op < monthlyRetainerLimitValue);\n const checkForMonthly =\n formData?.fee_structure?.vendor?.monthly_monthly_retainer &&\n Object.values(\n formData?.fee_structure?.vendor?.monthly_monthly_retainer,\n ).filter((op) => op < monthlyRetainerLimitValue);\n if (\n (formData?.fee_structure?.vendor?.monthly_retainer <\n monthlyRetainerLimitValue &&\n formData?.fee_structure?.vendor?.retainer_type === 'Fixed') ||\n (checkForQuarterly?.length > 0 &&\n formData?.fee_structure?.vendor?.retainer_type === 'quarterly') ||\n (checkForMonthly?.length > 0 &&\n formData?.fee_structure?.vendor?.retainer_type === 'monthly')\n ) {\n return true;\n }\n }\n }\n return false;\n };\n\n // check revenue share threshold limit by seller - vendor account type\n const checkThresholdLimitByAccType = (accType, thresholdLimit) => {\n if (\n formData?.fee_structure?.[accType]?.fee_type === 'Revenue Share Only' ||\n formData?.fee_structure?.[accType]?.fee_type === 'Retainer + % Rev Share'\n ) {\n const checkForQuarterly =\n formData?.fee_structure?.[accType]?.quarterly_rev_share &&\n Object.values(\n formData?.fee_structure?.[accType]?.quarterly_rev_share,\n ).filter((op) => op < thresholdLimit);\n const checkForMonthly =\n formData?.fee_structure?.[accType]?.monthly_rev_share &&\n Object.values(\n formData?.fee_structure?.[accType]?.monthly_rev_share,\n ).filter((op) => op < thresholdLimit);\n\n if (\n (formData?.fee_structure?.[accType]?.sales_threshold < thresholdLimit &&\n formData?.fee_structure?.[accType]?.threshold_type === 'Fixed') ||\n (checkForQuarterly?.length > 0 &&\n formData?.fee_structure?.[accType]?.threshold_type === 'quarterly') ||\n (checkForMonthly?.length > 0 &&\n formData?.fee_structure?.[accType]?.threshold_type === 'monthly')\n ) {\n return true;\n }\n return false;\n }\n return false;\n };\n\n // check the revenue share threshold limit\n // PDV-8316 - contract language updates - revenue share threshold limit is $375,000\n const checkRevenueShareThresholdLimit = () => {\n // checking seller threshold limit\n if (accountType === 'Seller' || accountType === 'Hybrid') {\n return checkThresholdLimitByAccType(\n 'seller',\n revShareThresholdLimitValue,\n );\n }\n // checking vendor threshold\n if (accountType === 'Vendor' || accountType === 'Hybrid') {\n return checkThresholdLimitByAccType(\n 'vendor',\n revShareThresholdLimitValue,\n );\n }\n\n return false;\n };\n\n // check for retainer agreement\n const checkForRetainerAgreement = () => {\n const feeStructureTemp = formData?.fee_structure;\n if (\n feeStructureTemp?.seller?.fee_type === 'Retainer Only' ||\n feeStructureTemp?.vendor?.fee_type === 'Retainer Only'\n ) {\n return true;\n }\n return false;\n };\n\n const checkDSPFeeCondition = () => {\n const dspFee = Number(details?.dsp_fee);\n const dspFeeSecond = Number(details?.dsp_fee_second);\n const dspFeeThird = Number(details?.dsp_fee_third);\n\n if (formData?.is_dynamic_dsp_fee) {\n if (dspFee < 10000 || dspFeeSecond < 10000 || dspFeeThird < 10000) {\n return true;\n }\n } else if (dspFee < 10000) {\n return true;\n }\n return false;\n };\n\n // check approval condition\n // PDV-8316 - Contract should meet the following deal conditions. Sales manager can send the contract to the BP for signature if deal is within the standard terms. Otherwise, approval is needed from the sales admin (Liz adamson).\n const checkApprovalCondition = () => {\n const contractTermLength = parseInt(details?.length?.value, 10);\n if (details?.contract_type?.toLowerCase().includes('recurring')) {\n if (details?.draft_from) {\n return true;\n }\n\n if (\n (showSection.dspAddendum && checkDSPFeeCondition()) ||\n checkRevShareApprovalCondition() ||\n contractTermLength < 6 ||\n isBillingCapExists() ||\n checkMonthlyRetainerApprovalCondition() ||\n checkForRetainerAgreement() ||\n checkRevenueShareThresholdLimit()\n ) {\n return true;\n }\n }\n if (\n details?.draft_from &&\n details?.contract_type?.toLowerCase().includes('dsp')\n ) {\n return true;\n }\n\n if (showSection.dspAddendum && details?.agency_fee?.value < 15) return true;\n\n if (\n details?.contract_type?.toLowerCase().includes('dsp') &&\n checkDSPFeeCondition()\n ) {\n return true;\n }\n\n if (contractAddendumDetails?.notActive) return true;\n\n if (newAddendumData?.addendum?.length > 7) {\n return true;\n }\n return false;\n };\n\n const setParams = (param) => {\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n step: param,\n });\n\n history.push({\n pathname: `${history.location.pathname}`,\n search: `${stringified}`,\n state: `${history.location.state}`,\n });\n };\n\n const feeStructureAddendumChanges = (\n type,\n updatedFields,\n updatedformFields,\n modalFields,\n label,\n ) => {\n // variable for fee type change from retainer only to retainer +%REv Share\n const feeTypeChangeFromRetainer =\n originalData?.fee_structure?.[type]?.fee_type === 'Retainer Only' &&\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share';\n\n // variable for fee type change from rev share only to retainer +%REv Share\n const feeTypechangeFromRevShare =\n originalData.fee_structure?.[type]?.fee_type === 'Revenue Share Only' &&\n formData?.fee_structure?.[type]?.fee_type === 'Retainer + % Rev Share';\n\n // if retainer value is changed\n const retainerValueChanged =\n (formData?.fee_structure?.[type]?.retainer_type === 'Fixed' ||\n formData?.fee_structure?.[type]?.retainer_type === null ||\n !formData?.fee_structure?.[type]?.retainer_type) &&\n checkConditions(\n originalData?.fee_structure?.[type]?.monthly_retainer,\n formData?.fee_structure?.[type]?.monthly_retainer,\n );\n // if retainer value is changed for querterly and monthly\n const retainerValueChangedForMonthlyOrQuertery =\n (formData?.fee_structure?.[type]?.retainer_type === 'quarterly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.quarterly_monthly_retainer || {},\n formData?.fee_structure?.[type]?.quarterly_monthly_retainer || {},\n )) ||\n (formData?.fee_structure?.[type]?.retainer_type === 'monthly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.monthly_monthly_retainer || {},\n formData?.fee_structure?.[type]?.monthly_monthly_retainer || {},\n ));\n\n // if rev share changed.\n const revShareChanged = checkConditions(\n originalData?.fee_structure?.[type]?.rev_share,\n formData?.fee_structure?.[type]?.rev_share,\n );\n\n // thresholdtype if none\n const thresholdchangedNone =\n formData?.fee_structure?.[type]?.threshold_type === 'None' &&\n originalData?.fee_structure?.[type]?.threshold_type !== 'None' &&\n originalData?.fee_structure?.[type]?.threshold_type !== null;\n\n // threshold fixed type\n const formDataFixedThresholdType =\n (formData?.fee_structure?.[type]?.threshold_type === 'Fixed' ||\n formData?.fee_structure?.[type]?.threshold_type === null) &&\n originalData?.fee_structure?.[type]?.sales_threshold;\n\n const fixedThresholdType =\n checkConditions(\n formDataFixedThresholdType,\n formData?.fee_structure?.[type]?.sales_threshold,\n ) && formData?.fee_structure?.[type]?.threshold_type === 'Fixed';\n\n // threshold querterly and monthly\n const quarterlyandMonthlyThresholdType =\n (formData?.fee_structure?.[type]?.threshold_type === 'quarterly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.quarterly_rev_share || {},\n formData?.fee_structure?.[type]?.quarterly_rev_share || {},\n )) ||\n (formData?.fee_structure?.[type]?.threshold_type === 'monthly' &&\n getObjectDifference(\n originalData?.fee_structure?.[type]?.monthly_rev_share || {},\n formData?.fee_structure?.[type]?.monthly_rev_share || {},\n ));\n\n // if billing cap changed.\n\n const billingCapchanged = checkConditions(\n originalData?.fee_structure?.[type]?.billing_cap,\n formData?.fee_structure?.[type]?.billing_cap,\n );\n\n // if billing minimum changed\n const billingMinimumChanged = checkConditions(\n originalData?.fee_structure?.[type]?.billing_minimum,\n formData?.fee_structure?.[type]?.billing_minimum,\n );\n\n // if combined rev share is changed.\n const combinedRevshareChanged =\n originalData?.combined_rev_share !== formData?.combined_rev_share &&\n type === 'seller';\n\n if (\n feeTypeChangeFromRetainer ||\n feeTypechangeFromRevShare ||\n retainerValueChanged ||\n retainerValueChangedForMonthlyOrQuertery ||\n revShareChanged ||\n thresholdchangedNone ||\n fixedThresholdType ||\n quarterlyandMonthlyThresholdType ||\n billingCapchanged ||\n billingMinimumChanged ||\n combinedRevshareChanged\n ) {\n updatedFields.fee_structure = {\n ...updatedFormData?.fee_structure,\n [type]: {\n ...updatedFormData?.fee_structure?.[type],\n effective_date: updatedFormData?.fee_structure?.[type]?.effective_date\n ? updatedFormData?.fee_structure?.[type]?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD'),\n },\n };\n\n updatedformFields.fee_structure = {\n ...formData?.fee_structure,\n [type]: {\n ...formData?.fee_structure?.[type],\n effective_date: formData?.fee_structure?.[type]?.effective_date\n ? formData?.fee_structure?.[type]?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD'),\n },\n };\n\n modalFields.push({\n label: `${label} Fee Structure`,\n key: ['fee_structure'],\n });\n }\n };\n\n const monthlyServicesChanges = (type, updatedFields, updatedformFields) => {\n const serviceAddedResult = getMonthlyServicesofContract(type, 'added');\n const marketplacesAddedResult = getDifferenceMarketplaces(type, 'added');\n\n if (serviceAddedResult?.length || marketplacesAddedResult?.length) {\n if (updatedFormData.additional_marketplaces?.create?.length) {\n updatedFormData.additional_marketplaces.create.forEach((obj) => {\n if (!obj?.id) {\n obj.effective_date = obj?.effective_date\n ? obj?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n });\n }\n\n if (updatedFormData.additional_monthly_services?.create?.length) {\n updatedFormData.additional_monthly_services.create.forEach((obj) => {\n if (!obj?.id) {\n obj.effective_date = obj?.effective_date\n ? obj?.effective_date\n : obj?.name === 'DSP Advertising'\n ? dayjs(new Date(formData?.dsp_start_date)).format('YYYY-MM-DD')\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n });\n }\n\n if (formData.additional_marketplaces?.length) {\n formData.additional_marketplaces.forEach((obj) => {\n if (!obj?.id) {\n obj.effective_date = obj?.effective_date\n ? obj?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n });\n }\n if (formData.additional_monthly_services?.length) {\n formData.additional_monthly_services.forEach((obj) => {\n if (!obj?.id) {\n obj.effective_date = obj?.effective_date\n ? obj?.effective_date\n : obj?.name === 'DSP Advertising'\n ? dayjs(new Date(formData?.dsp_start_date)).format('YYYY-MM-DD')\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n });\n }\n\n updatedFields.additional_monthly_services = {\n ...updatedFormData?.additional_monthly_services,\n create: updatedFields.additional_monthly_services?.create?.length\n ? [\n ...updatedFields.additional_monthly_services?.create,\n ...serviceAddedResult,\n ]\n : [...serviceAddedResult],\n };\n\n updatedFields.additional_marketplaces = {\n ...updatedFormData?.additional_marketplaces,\n create:\n updatedFields?.additional_marketplaces?.create?.length &&\n marketplacesAddedResult?.length\n ? [\n ...updatedFields?.additional_marketplaces?.create,\n ...marketplacesAddedResult,\n ]\n : marketplacesAddedResult?.length\n ? [...marketplacesAddedResult]\n : [],\n };\n\n updatedformFields.additional_monthly_services =\n formData?.additional_monthly_services;\n\n updatedformFields.additional_marketplaces =\n formData?.additional_marketplaces;\n }\n };\n\n const handleErrorCount = (type, responseData) => {\n let errorCount = 0;\n\n if (\n responseData?.data?.[type]?.billing_cap &&\n !(\n feeStructureErrors?.[type]?.billing_cap ||\n feeStructureErrors?.[type]?.billing_minimum\n )\n ) {\n errorCount += 1;\n }\n\n if (\n responseData?.data?.[type]?.quarterly_rev_share &&\n !feeStructureErrors?.[type]?.quarterly_rev_share\n ) {\n errorCount += 1;\n }\n\n if (\n responseData?.data?.[type]?.monthly_rev_share &&\n !feeStructureErrors?.[type]?.monthly_rev_share\n ) {\n errorCount += 1;\n }\n if (\n responseData?.data?.[type]?.sales_threshold &&\n !feeStructureErrors?.[type]?.sales_threshold\n ) {\n errorCount += 1;\n }\n\n return errorCount;\n };\n\n const showEditView = (contract) => {\n setIsEditContract(true);\n setMandatoryFieldsErrors(contract);\n if (contractAddendumDetails.notActive) {\n executeScroll('draft-addendum');\n setShowCollpase({ ...showSection, addendum: true });\n setOpenCollapse({ ...openCollapse, addendum: true });\n }\n };\n\n const checkEditFlagComeFromOuterFile = (res) => {\n if (history?.location?.showEditView) {\n if (\n res?.data?.contract_status?.value === 'pending contract signature' ||\n res?.data?.contract_addendum?.[0]?.addendum_status?.value ===\n 'pending addendum signature'\n ) {\n onEditcontract();\n } else {\n showEditView(res?.data);\n }\n\n const historyState = { ...history.location };\n delete historyState.showEditView;\n history.replace({ ...historyState });\n }\n };\n\n const getContractAddendumDetails = (addendumId, addendumStatus) => {\n if (addendumId) {\n executeScroll('draft-addendum');\n setOpenCollapse({ ...openCollapse, addendum: true });\n setShowCollpase({ ...showSection, addendum: true });\n setContractAddendumDetails({\n id: addendumId,\n status: addendumStatus,\n notActive: addendumStatus !== 'active',\n });\n if (addendumStatus !== 'active') {\n getContractAddendum(addendumId).then((res) => {\n setFormData(res?.data);\n setAddendumDetails(res?.data);\n executeScroll('draft-addendum');\n checkEditFlagComeFromOuterFile(res);\n\n setContractAddendumDetails({\n id: res?.data?.id,\n status: res?.data?.addendum_status?.value,\n notActive: res?.data?.addendum_status?.value !== 'active',\n addendum_start_date: res?.data?.addendum_start_date,\n change_addendum_start_date: res?.data?.change_addendum_start_date,\n });\n });\n }\n }\n };\n\n const getContractDetails = (showSuccessToastr = false) => {\n setEnableDownloadBtn(false);\n setIsLoading({ loader: true, type: 'page' });\n if (splittedPath) {\n getcontract(splittedPath[4]).then((res) => {\n if (res && res.status === 200) {\n // get agreement templates\n agreementTemplate().then((response) => {\n const template = response?.data?.results?.filter((item) =>\n item?.name?.toLowerCase()?.includes(res?.data?.channel?.value),\n );\n setData(template[0]);\n\n // getContractDetails();\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n executeScroll('draft-addendum');\n }\n });\n\n getMonthlyServices(\n res?.data?.seller_type?.value,\n res?.data?.channel?.value,\n );\n getAdvertisingServices();\n setStartDate(res?.data?.start_date);\n\n getDiscountData(\n res?.data?.contract_addendum &&\n res?.data?.contract_addendum?.[0]?.addendum_status?.value !==\n 'active'\n ? res?.data?.contract_addendum?.[0]?.id\n : res?.data?.id,\n );\n setDetails(res.data);\n if (res?.data?.contract_addendum?.[0]?.id) {\n getContractAddendumDetails(\n res?.data?.contract_addendum?.[0]?.id,\n res?.data?.contract_addendum?.[0]?.addendum_status?.value,\n );\n executeScroll('draft-addendum');\n } else {\n setFormData(res?.data);\n getFeeStructureDetails(res?.data?.seller_type?.value, res?.data);\n checkEditFlagComeFromOuterFile(res);\n }\n setSelectedCurrency(res?.data?.currency?.label?.split(' ')?.[0]);\n setOriginalData(res?.data);\n\n if (showSuccessToastr) {\n setShowSignSuccessMsg(showSuccessToastr);\n }\n\n const contractData = {\n customer_id: id,\n contract_id: res?.data?.id,\n };\n const addendumData = {\n customer_id: id,\n contract_addendum_id: res?.data?.contract_addendum?.[0]?.id,\n };\n getAddendum(\n res?.data?.contract_addendum &&\n res?.data?.contract_addendum?.[0]?.addendum_status !== 'active'\n ? addendumData\n : contractData,\n ).then((addendum) => {\n setNewAddendum(\n addendum?.data?.results?.length && addendum.data.results[0],\n );\n setOriginalAddendumData(\n addendum?.data?.results?.length && addendum.data.results[0],\n );\n });\n\n setTimeout(() => {\n setEnableDownloadBtn(true);\n }, 7000);\n\n // get standard services\n getStandardServices(res?.data?.channel?.value).then((service) => {\n setOriginalStandardServices(service?.data);\n setStdServices(service?.data);\n });\n\n // marketplace options\n getMarketplaces(res?.data?.channel?.value).then((market) => {\n setMarketPlaces(market?.data);\n setAdditionalMarketplaces(market?.data);\n setMarketplacesResult(market?.data);\n });\n // get one time services\n getOneTimeService(res?.data?.channel?.value).then((r) => {\n setOneTimeService(r?.data?.filter((op) => !op.is_deleted));\n\n if (r?.data?.length) {\n const result = [];\n r.data.forEach((item) => {\n if (item.label.includes('Amazon Store Package')) {\n result.push({ value: item.value, label: item.label });\n }\n });\n const list = result.filter((item) =>\n item.label.includes('Amazon Store Package'),\n );\n list.filter((item) => {\n const serviceName = item.label.split(' ')[3];\n item.label = serviceName;\n return item;\n });\n setAmazonStoreOptions(list);\n }\n });\n } else {\n setIsLoading({ loader: false, type: 'page' });\n setLoaderFlag(false);\n setPageNotFoundFlag(true);\n }\n });\n getContractActivityLogInfo();\n\n setLoaderFlag(true);\n } else {\n const path = location.pathname.slice(\n 0,\n location.pathname.lastIndexOf('/'),\n );\n history.push(path);\n }\n };\n const createPrimaryMarketplace = () => {\n const statementData = {\n id: details?.primary_marketplace?.id || '',\n contract: detailsId,\n name: updatedFormData && updatedFormData.primary_marketplace,\n is_primary: true,\n };\n\n if (details.primary_marketplace?.id) {\n updateMarketplace(details.primary_marketplace.id, statementData).then(\n (updateMarketplaceRes) => {\n if (updateMarketplaceRes?.status === 200) {\n setFormData({\n ...formData,\n primary_marketplace: updateMarketplaceRes?.data,\n });\n if (updatedFormData?.primary_marketplace) {\n delete updatedFormData.primary_marketplace;\n setUpdatedFormData({ ...updatedFormData });\n\n if (!Object.keys(updatedFormData).length) {\n showFooter(false);\n setIsEditContract(false);\n getContractDetails();\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n executeScroll('draft-addendum');\n }\n toast.success('Changes Saved!');\n setShowEffetivityDatesModal({ show: true, data: [] });\n }\n }\n }\n },\n );\n } else {\n createMarketplace(statementData).then((createMarketplaceRes) => {\n setIsLoading({ loader: false, type: 'button' });\n setIsLoading({ loader: false, type: 'page' });\n if (createMarketplaceRes && createMarketplaceRes.status === 201) {\n setFormData({\n ...formData,\n primary_marketplace: createMarketplaceRes?.data,\n });\n if (updatedFormData?.primary_marketplace) {\n delete updatedFormData.primary_marketplace;\n setUpdatedFormData({ ...updatedFormData });\n if (!Object.keys(updatedFormData).length) {\n showFooter(false);\n setIsEditContract(false);\n getContractDetails();\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n executeScroll('draft-addendum');\n }\n createAgreementDoc();\n toast.success('Changes Saved!');\n setShowEffetivityDatesModal({ show: true, data: [] });\n }\n }\n }\n });\n }\n setUpdatedFormData({ ...updatedFormData });\n };\n\n const saveChanges = (apis) => {\n axios\n .all(apis)\n .then(\n axios.spread((...responses) => {\n const additionalMonthlySerRes = responses[0];\n const additionalOneTimeServRes = responses[1];\n const addendumRes = responses[2];\n const updateCustomerRes = responses[3];\n const sellerFeeStructureRes = responses[4];\n const vendorFeeStructureRes = responses[5];\n const contractRes = responses[6];\n const standardServicesRes = responses[7];\n const standardNonUSServiceRes = responses[8];\n const dspMarketplacesRes = responses[9];\n const amcServicesRes = responses[10];\n\n const filteredRes = responses.filter((item) => item !== null);\n\n if (filteredRes?.length) {\n setIsLoading({ loader: false, type: 'button' });\n setIsLoading({ loader: false, type: 'page' });\n\n const failApis = filteredRes.filter((item) => item?.status === 400);\n if (failApis?.length) {\n toast.error(\n 'Changes have not been saved. Please fix errors and try again',\n );\n if (Object.keys(openCollapse)?.[0] === 'feeStructure')\n executeScroll('statement');\n else executeScroll(Object.keys(openCollapse));\n } else {\n toast.success('Changes Saved!');\n setShowEffetivityDatesModal({ show: true, data: [] });\n\n showFooter(false);\n setUpdatedFormData({});\n getContractDetails();\n setIsEditContract(false);\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n executeScroll('draft-addendum');\n }\n }\n }\n\n if (\n !contractTypeOne &&\n !updatedFormData?.changed_dsp_start_date &&\n (updatedFormData?.dsp_marketplaces === undefined ||\n !updatedFormData?.dsp_marketplaces) &&\n formData?.dsp_marketplaces?.length\n // New conditions because of storefront error\n // originalData?.changed_dsp_start_date &&\n // !updatedFormData?.changed_dsp_start_date &&\n // formData?.dsp_marketplaces?.length\n ) {\n createDSPMarketplacesBulk({\n create: formData?.dsp_marketplaces,\n }).then(() => {\n if (updatedFormData?.dsp_marketplaces) {\n delete updatedFormData.dsp_marketplaces;\n setChangedDspStartDateFlag(false);\n setUpdatedFormData({ ...updatedFormData });\n getContractDetails();\n }\n });\n }\n\n if (amcServicesRes?.status === 200) {\n if (updatedFormData?.amc_services) {\n delete updatedFormData.amc_services;\n }\n }\n\n if (additionalMonthlySerRes?.status === 200) {\n // for Dsp marketplaces bulk update\n if (\n updatedFormData?.dsp_marketplaces &&\n updatedFormData?.additional_monthly_services\n ) {\n createDSPMarketplacesBulk(updatedFormData.dsp_marketplaces).then(\n () => {\n if (updatedFormData?.dsp_marketplaces) {\n delete updatedFormData.dsp_marketplaces;\n setUpdatedFormData({ ...updatedFormData });\n // getContractDetails();\n }\n },\n );\n }\n setFormData({\n ...formData,\n additional_monthly_services: additionalMonthlySerRes?.data,\n });\n setOriginalData({\n ...originalData,\n additional_monthly_services: additionalMonthlySerRes?.data,\n });\n if (updatedFormData?.additional_monthly_services) {\n delete updatedFormData.additional_monthly_services;\n }\n setChangedDspStartDateFlag(false);\n\n setUpdatedFormData({ ...updatedFormData });\n }\n\n if (dspMarketplacesRes?.status === 200) {\n // getContractDetails();\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n }\n if (updatedFormData?.dsp_marketplaces) {\n delete updatedFormData.dsp_marketplaces;\n }\n if (updatedFormData?.additional_one_time_services?.create?.length) {\n setFormData({\n ...formData,\n additional_one_time_services: [\n ...updatedFormData.additional_one_time_services.create,\n ],\n });\n }\n }\n if (dspMarketplacesRes?.status === 400) {\n setDspMarketpalcesError(dspMarketplacesRes?.data);\n }\n\n if (standardNonUSServiceRes?.status === 200) {\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n }\n if (updatedFormData?.standard_non_us_services) {\n delete updatedFormData.standard_non_us_services;\n }\n }\n\n if (standardServicesRes?.status === 200) {\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n }\n if (updatedFormData?.standard_us_services) {\n delete updatedFormData.standard_us_services;\n }\n }\n\n if (additionalOneTimeServRes?.status === 200) {\n setFormData({\n ...formData,\n additional_one_time_services: additionalOneTimeServRes?.data,\n });\n setOriginalData({\n ...originalData,\n additional_one_time_services: additionalOneTimeServRes?.data,\n });\n\n const service =\n additionalOneTimeServRes?.data?.length &&\n additionalOneTimeServRes.data.find(\n (item) =>\n item?.service?.name &&\n item.service.name === 'Amazon Store Package Custom',\n );\n if (service) {\n setAmazonStoreCustom(true);\n } else {\n setAmazonStoreCustom(false);\n }\n if (updatedFormData?.additional_one_time_services) {\n delete updatedFormData.additional_one_time_services;\n }\n }\n\n if (addendumRes?.status === 200 || addendumRes?.status === 201) {\n if (addendumRes?.status === 201) {\n setNewAddendum(addendumRes?.data);\n }\n setNewAddendum(addendumRes?.data);\n setOriginalAddendumData(addendumRes?.data);\n setShowEditor(false);\n if (updatedFormData?.addendum) {\n delete updatedFormData.addendum;\n }\n }\n\n if (updateCustomerRes?.status === 200) {\n const customerData = updateCustomerRes.data;\n setFormData({ ...formData, customer_id: { ...customerData } });\n delete updatedFormData.company_name;\n delete updatedFormData.address;\n delete updatedFormData.city;\n delete updatedFormData.state;\n delete updatedFormData.zip_code;\n }\n\n if (\n accountType === 'Seller' &&\n (sellerFeeStructureRes?.status === 200 ||\n sellerFeeStructureRes?.status === 201)\n ) {\n delete updatedFormData.fee_structure;\n }\n\n if (\n accountType === 'Vendor' &&\n (vendorFeeStructureRes?.status === 200 ||\n vendorFeeStructureRes?.status === 201)\n ) {\n delete updatedFormData.fee_structure;\n }\n\n if (accountType === 'Hybrid') {\n if (\n sellerFeeStructureRes?.status === 200 ||\n sellerFeeStructureRes?.status === 201\n ) {\n delete updatedFormData.fee_structure?.seller;\n }\n if (\n vendorFeeStructureRes?.status === 200 ||\n vendorFeeStructureRes?.status === 201\n ) {\n delete updatedFormData.fee_structure?.vendor;\n }\n }\n\n if (contractRes && contractRes.status === 200) {\n setChangedDspStartDateFlag(false);\n const updatedKeys = Object.keys(updatedFormData);\n if (updatedKeys && updatedKeys.length) {\n const fieldsToDeleteList = updatedKeys\n .filter((item) => item !== 'additional_one_time_services')\n .filter((item) => item !== 'additional_monthly_services')\n .filter((item) => item !== 'additional_marketplaces')\n .filter((item) => item !== 'primary_marketplace')\n .filter((item) => item !== 'addendum')\n .filter((item) => item !== 'company_name')\n .filter((item) => item !== 'address')\n .filter((item) => item !== 'city')\n .filter((item) => item !== 'state')\n .filter((item) => item !== 'zip_code')\n .filter((item) => item !== 'dsp_marketplaces')\n .filter((item) => item !== 'fee_structure')\n .filter((item) => item !== 'standard_non_us_services');\n\n for (const item of fieldsToDeleteList) {\n delete updatedFormData[item];\n }\n }\n }\n\n setUpdatedFormData({ ...updatedFormData });\n\n let agreementErrCount = 0;\n let statementErrCount = 0;\n let dspErrCount = 0;\n\n if (standardNonUSServiceRes?.status === 400) {\n if (standardNonUSServiceRes.data) {\n if (\n Object.keys(standardNonUSServiceRes.data).includes(\n 'VAT Filing',\n ) &&\n !nonUsServiceError?.['VAT Filing']\n ) {\n statementErrCount += Object.keys(\n standardNonUSServiceRes.data,\n ).length;\n }\n }\n\n setNonUSserviceError({\n ...nonUsServiceError,\n ...standardNonUSServiceRes.data,\n });\n }\n\n if (amcServicesRes?.status === 400) {\n setAmcServiceError({\n ...amcServiceError,\n ...amcServicesRes?.data,\n });\n\n if (amcServicesRes.data) {\n if (formData?.contract_type?.includes('dsp')) {\n dspErrCount += Object.keys(amcServicesRes.data)?.length;\n } else {\n statementErrCount += Object.keys(amcServicesRes.data)?.length;\n }\n }\n }\n if (additionalMonthlySerRes?.status === 400) {\n setAdditionalMonthlySerError({\n ...additionalMonthlySerError,\n ...additionalMonthlySerRes.data,\n });\n\n if (additionalMonthlySerRes.data) {\n statementErrCount += Object.keys(\n additionalMonthlySerRes.data,\n ).length;\n }\n }\n if (additionalOneTimeServRes?.status === 400) {\n if (additionalOneTimeServRes.data) {\n if (\n Object.keys(additionalOneTimeServRes.data).includes(\n 'quantity',\n ) &&\n Object.keys(additionalOnetimeSerError)?.includes('quantity') &&\n !additionalOnetimeSerError?.quantity\n ) {\n statementErrCount += Object.keys(\n additionalOneTimeServRes.data,\n ).length;\n }\n }\n setAdditionalOnetimeSerError({\n ...additionalOnetimeSerError,\n ...additionalOneTimeServRes.data,\n });\n if (updatedFormData?.additional_one_time_services?.create?.length) {\n setFormData({\n ...formData,\n additional_one_time_services: [\n ...updatedFormData.additional_one_time_services.create,\n ],\n });\n }\n }\n\n if (updateCustomerRes?.status === 400) {\n setCustomerErrors({\n ...customerError,\n ...updateCustomerRes.data,\n });\n if (\n updateCustomerRes.data &&\n Object.keys(updateCustomerRes.data).length\n ) {\n if (\n Object.keys(updateCustomerRes.data).includes('zip_code') &&\n !customerError.zip_code\n )\n agreementErrCount += 1;\n }\n }\n if (contractRes?.status === 400) {\n setContractError({\n ...contractError,\n ...contractRes.data,\n });\n\n if (contractRes.data) {\n if (Object.keys(contractRes.data).length) {\n if (Object.keys(contractRes.data).includes('monthly_retainer'))\n statementErrCount += 1;\n if (\n Object.keys(contractRes.data).includes('content_optimization')\n )\n statementErrCount += 1;\n if (\n Object.keys(contractRes.data).includes('design_optimization')\n )\n statementErrCount += 1;\n if (Object.keys(contractRes.data).includes('yoy_percentage'))\n statementErrCount += 1;\n if (Object.keys(contractRes.data).includes('sales_threshold'))\n statementErrCount += 1;\n if (\n Object.keys(contractRes.data).includes('dsp_fee') &&\n !contractError.dsp_fee\n )\n dspErrCount += 1;\n }\n }\n }\n const feeErrors = {\n feeStructure: sectionError?.feeStructure,\n ...sectionError,\n };\n\n const feeBEErros = {\n ...feeStructureErrors,\n };\n\n if (sellerFeeStructureRes?.status === 400) {\n const errorKeys = Object.keys(sellerFeeStructureRes.data);\n\n feeBEErros.seller = {\n ...sellerFeeStructureRes.data?.seller,\n };\n\n if (errorKeys.length) {\n if (errorKeys.includes('seller')) {\n feeErrors.seller = {\n feeType:\n (sectionError?.seller?.feeType\n ? sectionError?.seller?.feeType\n : 0) + handleErrorCount('seller', sellerFeeStructureRes),\n };\n }\n }\n }\n\n if (vendorFeeStructureRes?.status === 400) {\n const errorKeys = Object.keys(vendorFeeStructureRes.data);\n\n feeBEErros.vendor = {\n ...vendorFeeStructureRes.data?.vendor,\n };\n\n if (errorKeys.length) {\n if (errorKeys.includes('vendor')) {\n feeErrors.vendor = {\n feeType:\n (sectionError?.vendor?.feeType\n ? sectionError?.vendor?.feeType\n : 0) + handleErrorCount('vendor', vendorFeeStructureRes),\n };\n }\n }\n }\n setFeeStructureErrors({\n ...feeBEErros,\n });\n setSectionError({\n ...feeErrors,\n agreement: agreementErrCount + sectionError.agreement,\n statement: statementErrCount + sectionError.statement,\n dsp: dspErrCount + sectionError.dsp,\n });\n }),\n )\n .catch(() => {});\n };\n\n const updateMarketplaces = async () => {\n let flag = false;\n const result = await createMarketplaceBulk(\n updatedFormData.additional_marketplaces,\n ).then((updateMarketplacesRes) => {\n flag = true;\n if (updateMarketplacesRes?.status === 200) {\n setFormData({\n ...formData,\n additional_marketplaces: updateMarketplacesRes?.data,\n });\n setOriginalData({\n ...originalData,\n additional_marketplaces: updateMarketplacesRes?.data,\n });\n }\n });\n if (flag) {\n if (updatedFormData?.additional_marketplaces) {\n delete updatedFormData.additional_marketplaces;\n setUpdatedFormData({ ...updatedFormData });\n }\n setMarketplaceDropdownData();\n if (updatedFormData?.primary_marketplace) {\n createPrimaryMarketplace();\n } else if (!Object.keys(updatedFormData).length) {\n showFooter(false);\n setIsEditContract(false);\n getContractDetails();\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n executeScroll('draft-addendum');\n }\n createAgreementDoc();\n toast.success('Changes Saved!');\n setShowEffetivityDatesModal({ show: true, data: [] });\n }\n }\n return result;\n };\n\n const nextStep = async () => {\n let additionalMonthlyApi = null;\n let additionalOneTimeApi = null;\n let AccountApi = null;\n let AddendumApi = null;\n let updateCustomerApi = null;\n let sellerFeeStructureApi = null;\n let vendorFeeStructureApi = null;\n let stdServicesApi = null;\n let standardNonUSServiceApi = null;\n let dspMarketplacesApi = null;\n let amcServicesApi = null;\n\n if (updatedFormData && Object.keys(updatedFormData).length) {\n // for start date\n if (updatedFormData?.start_date) {\n updatedFormData.start_date = dayjs(updatedFormData.start_date).format(\n 'YYYY-MM-DD',\n );\n }\n setIsLoading({ loader: true, type: 'page' });\n setContractDesignLoader(true);\n // for additionL montlhy service\n if (updatedFormData.additional_monthly_services) {\n additionalMonthlyApi = createAdditionalServiceBulk(\n updatedFormData.additional_monthly_services,\n );\n }\n // for additional one time service\n if (updatedFormData.additional_one_time_services) {\n additionalOneTimeApi = createAdditionalServiceBulk(\n updatedFormData.additional_one_time_services,\n );\n }\n // for StandardnonUSMarketplaceService\n if (updatedFormData?.standard_non_us_services) {\n standardNonUSServiceApi = createStandardNonUSServiceBulk(\n updatedFormData.standard_non_us_services,\n );\n }\n\n if (updatedFormData?.standard_us_services) {\n stdServicesApi = saveStdServices(updatedFormData.standard_us_services);\n }\n\n if (\n updatedFormData?.fee_structure ||\n updatedFormData?.combined_rev_share\n ) {\n const type = formData?.seller_type?.label?.toLowerCase();\n if (type === 'hybrid') {\n if (\n updatedFormData?.fee_structure?.seller &&\n Object.keys(updatedFormData?.fee_structure?.seller)?.length > 0\n ) {\n const addendumDetail = {\n ...getUpdatedFeeStructure('seller'),\n account_type: 'Seller',\n effective_date:\n updatedFormData?.fee_structure?.seller?.effective_date,\n contract_addendum: contractAddendumDetails?.id,\n currency: formData?.currency,\n };\n const contractDetail = {\n ...getUpdatedFeeStructure('seller'),\n account_type: 'Seller',\n contract: formData.id,\n currency: formData?.currency,\n };\n sellerFeeStructureApi = saveFeeStructure(\n formData?.fee_structure?.seller?.id,\n contractAddendumDetails.notActive\n ? addendumDetail\n : contractDetail,\n );\n }\n if (\n updatedFormData?.fee_structure?.vendor &&\n Object.keys(updatedFormData?.fee_structure?.vendor)?.length > 0\n ) {\n const contractDetail = {\n ...getUpdatedFeeStructure('vendor'),\n account_type: 'Vendor',\n contract: formData.id,\n currency: formData?.currency,\n };\n const addendumDetail = {\n ...getUpdatedFeeStructure('vendor'),\n account_type: 'Vendor',\n effective_date:\n updatedFormData?.fee_structure?.vendor?.effective_date,\n\n currency: formData?.currency,\n contract_addendum: contractAddendumDetails?.id,\n };\n vendorFeeStructureApi = saveFeeStructure(\n formData?.fee_structure?.vendor?.id,\n contractAddendumDetails?.notActive\n ? addendumDetail\n : contractDetail,\n );\n }\n } else {\n if (type === 'seller') {\n const contractDetail = {\n ...getUpdatedFeeStructure('seller'),\n\n account_type: type === 'seller' ? 'Seller' : 'Vendor',\n contract: formData.id,\n currency: formData?.currency,\n };\n const addendumDetail = {\n ...getUpdatedFeeStructure('seller'),\n account_type: type === 'seller' ? 'Seller' : 'Vendor',\n effective_date:\n updatedFormData?.fee_structure?.seller?.effective_date,\n\n contract_addendum: contractAddendumDetails?.id,\n currency: formData?.currency,\n };\n sellerFeeStructureApi = saveFeeStructure(\n formData?.fee_structure?.[type]?.id,\n contractAddendumDetails?.notActive\n ? addendumDetail\n : contractDetail,\n );\n }\n if (type === 'vendor') {\n const addendumDetail = {\n ...getUpdatedFeeStructure('vendor'),\n account_type: type === 'seller' ? 'Seller' : 'Vendor',\n contract_addendum: contractAddendumDetails?.id,\n effective_date:\n updatedFormData?.fee_structure?.vendor?.effective_date,\n\n currency: formData?.currency,\n };\n const contractDetail = {\n ...getUpdatedFeeStructure('vendor'),\n account_type: type === 'seller' ? 'Seller' : 'Vendor',\n contract: formData.id,\n currency: formData?.currency,\n };\n vendorFeeStructureApi = saveFeeStructure(\n formData?.fee_structure?.[type]?.id,\n contractAddendumDetails?.notActive\n ? addendumDetail\n : contractDetail,\n );\n }\n }\n }\n\n if (\n Object.keys(updatedFormData).includes('company_name') ||\n Object.keys(updatedFormData).includes('address') ||\n Object.keys(updatedFormData).includes('city') ||\n Object.keys(updatedFormData).includes('state') ||\n Object.keys(updatedFormData).includes('zip_code')\n ) {\n const customerData = {\n company_name: updatedFormData.company_name,\n address: updatedFormData.address,\n city: updatedFormData.city,\n state: updatedFormData.state,\n zip_code: updatedFormData.zip_code,\n };\n updateCustomerApi = updateCustomerDetails(id, customerData);\n }\n // for 'monthly_retainer', 'dsp_fee', 'sales_threshold'\n const num = [\n 'monthly_retainer',\n 'dsp_fee',\n 'dsp_one_time_fee',\n 'sales_threshold',\n 'billing_cap',\n ];\n for (const val of num) {\n if (updatedFormData && updatedFormData[val]) {\n updatedFormData[val] = updatedFormData[val].replace(/,/g, '');\n }\n }\n\n const updatedContractFields = cloneDeep(updatedFormData);\n delete updatedContractFields.additional_one_time_services;\n delete updatedContractFields.additional_monthly_services;\n delete updatedContractFields.additional_marketplaces;\n delete updatedContractFields.primary_marketplace;\n delete updatedContractFields.addendum;\n delete updatedContractFields.company_name;\n delete updatedContractFields.address;\n delete updatedContractFields.city;\n delete updatedContractFields.state;\n delete updatedContractFields.zip_code;\n delete updatedContractFields.fee_structure;\n delete updatedContractFields.standard_non_us_services;\n delete updatedContractFields.standard_us_services;\n delete updatedContractFields.dsp_marketplaces;\n delete updatedContractFields.amc_services;\n\n // for set discount back to null if discount less than subtotal\n if (\n updatedFormData.additional_monthly_services ||\n updatedFormData.additional_marketplaces\n ) {\n handleDiscount();\n }\n\n if (updatedFormData?.amc_services) {\n handleDiscount('amc_services');\n }\n if (updatedFormData.additional_one_time_services) {\n const totalFees = calculateTotalFee('onetime');\n if (Math.sign(totalFees.oneTimeTotal) === -1) {\n const contractPostData = {\n contract: details?.id,\n account_type: '',\n service_type: 'one time service',\n type: null,\n amount: null,\n };\n\n const addendumPostData = {\n contract_addendum: contractAddendumDetails?.id,\n account_type: '',\n service_type: 'one time service',\n type: null,\n amount: null,\n };\n\n const result =\n discountData?.length &&\n discountData.filter(\n (item) => item.service_type === 'one time service',\n );\n\n saveDiscount(\n result?.[0]?.id,\n contractAddendumDetails?.id ? addendumPostData : contractPostData,\n );\n }\n }\n\n const detail = {\n ...updatedContractFields,\n };\n if (Object.keys(detail).length) {\n AccountApi = contractAddendumDetails?.notActive\n ? saveDraftAddendum(contractAddendumDetails?.id, detail)\n : updateAccountDetails(details.id, detail);\n }\n\n if (newAddendumData?.id && updatedFormData.addendum) {\n const contractData = {\n addendum: newAddendumData && newAddendumData.addendum,\n contract: details.id,\n };\n const addendumData = {\n addendum: newAddendumData && newAddendumData.addendum,\n contract_addendum: contractAddendumDetails?.id,\n };\n AddendumApi = updateAddendum(\n newAddendumData.id,\n contractAddendumDetails?.notActive ? addendumData : contractData,\n );\n } else if (updatedFormData && updatedFormData.addendum) {\n const addendumData = {\n customer_id: id,\n addendum: newAddendumData && newAddendumData.addendum,\n contract_addendum: contractAddendumDetails?.id,\n };\n const contractData = {\n customer_id: id,\n addendum: newAddendumData && newAddendumData.addendum,\n contract: details.id,\n };\n AddendumApi = createAddendum(\n contractAddendumDetails?.notActive ? addendumData : contractData,\n );\n }\n // for Dsp marketplaces bulk update\n if (\n updatedFormData?.dsp_marketplaces &&\n !updatedFormData?.additional_monthly_services\n ) {\n dspMarketplacesApi = createDSPMarketplacesBulk(\n updatedFormData.dsp_marketplaces,\n );\n }\n\n // for AMC Dashboard bulk update\n if (updatedFormData?.amc_services) {\n amcServicesApi = createAMCServicesBulk(updatedFormData.amc_services);\n }\n\n const apis = [\n additionalMonthlyApi,\n additionalOneTimeApi,\n AddendumApi,\n updateCustomerApi,\n sellerFeeStructureApi,\n vendorFeeStructureApi,\n AccountApi,\n stdServicesApi,\n standardNonUSServiceApi,\n dspMarketplacesApi,\n amcServicesApi,\n ];\n\n if (\n updatedFormData?.primary_marketplace ||\n updatedFormData?.additional_marketplaces\n ) {\n if (\n updatedFormData?.primary_marketplace &&\n !Object.keys(updatedFormData).includes('additional_marketplaces')\n ) {\n createPrimaryMarketplace();\n } else {\n await updateMarketplaces();\n }\n }\n\n saveChanges(apis);\n }\n };\n\n const handleAddendumModal = (openModal = false) => {\n const modalFields = [];\n const updatedFields = {};\n const updatedformFields = {};\n // DSP Advertising\n const sellerMonthlyAddedservices = getMonthlyServicesofContract(\n 'seller',\n 'added',\n );\n const vendorMonthlyAddedservices = getMonthlyServicesofContract(\n 'vendor',\n 'added',\n );\n if (\n formData?.is_dsp_advertising !== originalData?.is_dsp_advertising &&\n formData?.is_dsp_advertising\n // sellerMonthlyAddedservices?.find(\n // (item) =>\n // item?.name === 'DSP Advertising' ||\n // item?.service?.name === 'DSP Advertising',\n // ) ||\n // vendorMonthlyAddedservices?.find(\n // (item) =>\n // item?.name === 'DSP Advertising' ||\n // item?.service?.name === 'DSP Advertising',\n // )\n ) {\n modalFields.push({\n label: 'DSP Advertising',\n key: ['agency_fee', 'dsp_fee', 'dsp_length', 'dsp_marketplaces'],\n });\n }\n\n // Listing optimzation\n if (\n checkConditions(\n originalData?.content_optimization,\n formData?.content_optimization,\n ) ||\n checkConditions(\n originalData?.design_optimization,\n formData?.design_optimization,\n ) ||\n checkConditions(\n originalData?.photography_optimization,\n formData?.photography_optimization,\n )\n ) {\n const keys = [];\n const listingOptimizationData = [];\n if (\n checkConditions(\n originalData?.content_optimization,\n formData?.content_optimization,\n )\n ) {\n keys.push({\n value: 'content_optimization',\n label: 'Copy',\n });\n listingOptimizationData.push({\n name: 'Copy',\n asin: formData?.content_optimization,\n });\n }\n if (\n checkConditions(\n originalData?.design_optimization,\n formData?.design_optimization,\n )\n ) {\n keys.push({\n value: 'design_optimization',\n label: 'Design',\n });\n listingOptimizationData.push({\n name: 'Desgin',\n asin: formData?.design_optimization,\n });\n }\n if (\n checkConditions(\n originalData?.photography_optimization,\n formData?.photography_optimization,\n )\n ) {\n keys.push({\n value: 'photography_optimization',\n label: 'Photography',\n });\n listingOptimizationData.push({\n name: 'Photography',\n asin: formData?.photography_optimization,\n });\n }\n modalFields.push({\n label: 'Listing Optimization',\n keys,\n fieldSet: listingOptimizationData,\n });\n updatedFields.listing_optimization_effective_date =\n updatedFormData?.listing_optimization_effective_date\n ? updatedFormData?.listing_optimization_effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n updatedformFields.listing_optimization_effective_date =\n formData?.listing_optimization_effective_date\n ? formData?.listing_optimization_effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n\n // Listing Transaltion\n if (\n checkConditions(\n originalData?.copy_listing_translation,\n formData?.copy_listing_translation,\n ) ||\n checkConditions(\n originalData?.creative_listing_translation,\n formData?.creative_listing_translation,\n )\n ) {\n const keys = [];\n const listingTranslationData = [];\n if (\n checkConditions(\n originalData?.copy_listing_translation,\n formData?.copy_listing_translation,\n )\n ) {\n keys.push({\n value: 'copy_listing_translation',\n label: 'Copy',\n });\n listingTranslationData.push({\n name: 'Copy',\n asin: formData?.copy_listing_translation,\n });\n }\n if (\n checkConditions(\n originalData?.creative_listing_translation,\n formData?.creative_listing_translation,\n )\n ) {\n keys.push({\n value: 'creative_listing_translation',\n label: 'Creative',\n });\n listingTranslationData.push({\n name: 'Creative',\n asin: formData?.creative_listing_translation,\n });\n }\n\n updatedFields.listing_translation_effective_date =\n updatedFormData?.listing_translation_effective_date\n ? updatedFormData?.listing_translation_effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n updatedformFields.listing_translation_effective_date =\n formData?.listing_translation_effective_date\n ? formData?.listing_translation_effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n\n modalFields.push({\n label: 'Listing Translation',\n keys,\n fieldSet: listingTranslationData,\n });\n }\n\n // Advertising services\n const addedAMCServices = getAddedOrRemovedAMCServices(\n formData?.amc_services,\n originalData?.amc_services,\n );\n if (addedAMCServices?.length) {\n addedAMCServices.forEach((service) => {\n service.effective_date = service?.effective_date\n ? service?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n });\n\n if (formData.amc_services?.length) {\n formData.amc_services.forEach((obj) => {\n if (!obj?.id) {\n obj.effective_date = obj?.effective_date\n ? obj?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n });\n }\n\n updatedFields.amc_services = {\n ...updatedFormData?.amc_services,\n create: formData.amc_services,\n };\n\n updatedformFields.amc_services = formData?.amc_services;\n\n modalFields.push({\n label: 'Advertising Services',\n key: ['amc_services'],\n data: [...addedAMCServices],\n });\n }\n\n // Standard service\n const standardUsServicesUniqueResult =\n formData?.standard_us_services?.filter((obj) => {\n return !originalData?.standard_us_services?.some((obj2) => {\n return obj.name === obj2.name;\n });\n });\n if (standardUsServicesUniqueResult?.length) {\n standardUsServicesUniqueResult.forEach((service) => {\n service.effective_date = service?.effective_date\n ? service?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n });\n\n if (formData.standard_us_services?.length) {\n formData.standard_us_services.forEach((obj) => {\n if (!obj?.id) {\n obj.effective_date = obj?.effective_date\n ? obj?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n });\n }\n\n updatedFields.standard_us_services = {\n ...updatedFormData?.standard_us_services,\n create: standardUsServicesUniqueResult,\n };\n updatedformFields.standard_us_services = formData?.standard_us_services;\n\n // if (standardUsServicesUniqueResult?.length) {\n modalFields.push({\n label: 'Standard Service',\n key: ['standard_us_services'],\n data: standardUsServicesUniqueResult,\n });\n // }\n }\n\n // Standard non us servicess\n const nonUSAddedServices = getNonUSStdServicesOfAddendum(\n formData,\n originalData,\n );\n\n if (\n nonUSAddedServices?.vatRegistration?.length ||\n nonUSAddedServices?.vatFilling?.length ||\n nonUSAddedServices?.internationalService?.length\n ) {\n if (updatedFormData.standard_non_us_services?.create?.length) {\n updatedFormData.standard_non_us_services.create.forEach((obj) => {\n if (!obj?.id) {\n obj.effective_date = obj?.effective_date\n ? obj?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n });\n }\n\n if (formData.standard_non_us_services?.length) {\n formData.standard_non_us_services.forEach((obj) => {\n if (!obj?.id) {\n obj.effective_date = obj?.effective_date\n ? obj?.effective_date\n : dayjs(new Date()).format('YYYY-MM-DD');\n }\n });\n }\n updatedFields.standard_non_us_services = {\n ...updatedFormData?.standard_non_us_services,\n create: [\n ...nonUSAddedServices?.vatRegistration,\n ...nonUSAddedServices?.vatFilling,\n ...nonUSAddedServices?.internationalService,\n ],\n };\n\n updatedformFields.standard_non_us_services =\n formData?.standard_non_us_services;\n\n modalFields.push({\n label: 'Standard Non-US Service',\n key: ['standard_non_us_services'],\n data: [\n ...nonUSAddedServices?.vatRegistration,\n ...nonUSAddedServices?.vatFilling,\n ...nonUSAddedServices?.internationalService,\n ],\n });\n }\n\n // fee structure -------------\n if (formData?.seller_type?.label === 'Hybrid') {\n feeStructureAddendumChanges(\n 'seller',\n updatedFields,\n updatedformFields,\n modalFields,\n 'Seller',\n );\n feeStructureAddendumChanges(\n 'vendor',\n updatedFields,\n updatedformFields,\n modalFields,\n 'Vendor',\n );\n }\n if (formData?.seller_type?.label === 'Seller') {\n feeStructureAddendumChanges(\n 'seller',\n updatedFields,\n updatedformFields,\n modalFields,\n 'Seller',\n );\n }\n if (formData?.seller_type?.label === 'Vendor') {\n feeStructureAddendumChanges(\n 'vendor',\n updatedFields,\n updatedformFields,\n modalFields,\n 'Vendor',\n );\n }\n\n // additional monthly services or marketplaces\n if (formData?.seller_type?.label === 'Hybrid') {\n monthlyServicesChanges(\n 'seller',\n updatedFields,\n updatedformFields,\n modalFields,\n 'Seller',\n );\n monthlyServicesChanges(\n 'vendor',\n updatedFields,\n updatedformFields,\n modalFields,\n 'Vendor',\n );\n }\n if (formData?.seller_type?.label === 'Seller') {\n monthlyServicesChanges(\n 'seller',\n updatedFields,\n updatedformFields,\n modalFields,\n 'Seller',\n );\n }\n if (formData?.seller_type?.label === 'Vendor') {\n monthlyServicesChanges(\n 'vendor',\n updatedFields,\n updatedformFields,\n modalFields,\n 'Vendor',\n );\n }\n\n const sellerMarketplacesAddedResult = getDifferenceMarketplaces(\n 'seller',\n 'added',\n );\n if (\n sellerMonthlyAddedservices?.length ||\n sellerMarketplacesAddedResult?.length\n ) {\n let sellerService = sellerMonthlyAddedservices;\n if (\n sellerMonthlyAddedservices?.find((item) =>\n item?.name\n ? item?.name === 'DSP Advertising'\n : item?.service?.name === 'DSP Advertising',\n )\n ) {\n sellerService = sellerMonthlyAddedservices?.filter((item) =>\n item?.name\n ? item?.name !== 'DSP Advertising'\n : item?.service?.name !== 'DSP Advertising',\n );\n }\n let list = [];\n if (sellerService?.length) {\n list = [...list, ...sellerService];\n }\n if (sellerMarketplacesAddedResult?.length) {\n list = [...list, ...sellerMarketplacesAddedResult];\n }\n if (list?.length) {\n modalFields.push({\n label: 'Seller Monthly Service',\n key: ['additional_marketplaces', 'additional_monthly_services'],\n data: [...list],\n });\n }\n }\n\n const vendorMarketplacesAddedResult = getDifferenceMarketplaces(\n 'vendor',\n 'added',\n );\n\n if (\n vendorMonthlyAddedservices?.length ||\n vendorMarketplacesAddedResult?.length\n ) {\n let vendorService = vendorMonthlyAddedservices;\n if (\n vendorMonthlyAddedservices?.find((item) =>\n item?.name\n ? item?.name === 'DSP Advertising'\n : item?.service?.name === 'DSP Advertising',\n )\n ) {\n vendorService = vendorMonthlyAddedservices?.filter((item) =>\n item?.name\n ? item?.name !== 'DSP Advertising'\n : item?.service?.name !== 'DSP Advertising',\n );\n }\n\n let list = [];\n if (vendorService?.length) {\n list = [...list, ...vendorService];\n }\n if (vendorMarketplacesAddedResult?.length) {\n list = [...list, ...vendorMarketplacesAddedResult];\n }\n if (list?.length) {\n modalFields.push({\n label: 'Vendor Monthly Service',\n key: ['additional_marketplaces', 'additional_monthly_services'],\n data: [...list],\n });\n }\n }\n\n setUpdatedFormData({\n ...updatedFormData,\n ...updatedFields,\n });\n setFormData({\n ...formData,\n ...updatedformFields,\n });\n\n if (openModal) {\n if (modalFields?.length) {\n setShowEffetivityDatesModal({ show: true, data: modalFields });\n } else {\n nextStep();\n }\n } else {\n setShowEffetivityDatesModal({ show: false, data: modalFields });\n }\n };\n\n useEffect(() => {\n getContractDetails();\n getThresholdType().then((thresholdType) => {\n setThresholdTypeOptions(thresholdType);\n });\n\n getYoyPercentage().then((yoyPercentage) => {\n setYoyPercentageOptions(yoyPercentage);\n });\n\n getNonUSStandardServicesMarketplaces().then((res) => {\n setVatMarketplaces(res);\n });\n\n getServicesFee().then((res) => {\n setServicesFees(res?.data);\n });\n\n getAgencyFee().then((fee) => {\n setAgencyFeeOptions(fee?.data);\n });\n }, [dispatch, id]);\n\n const discardAgreementChanges = (flag) => {\n if (flag === 'No') {\n if (\n contractAddendumDetails?.notActive &&\n showDiscardModal?.openAfterEffectivityDateModal\n ) {\n setShowEffetivityDatesModal({\n ...showEffetivityDatesModal,\n show: true,\n });\n }\n setShowDiscardModal({ ...showDiscardModal, show: false, clickedBtn: '' });\n }\n if (flag === 'Yes') {\n setShowDiscardModal({ ...showDiscardModal, show: false, clickedBtn: '' });\n setUpdatedFormData({});\n if (showDiscardModal.clickedBtn === 'back') {\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', id));\n }\n setSectionError({});\n setFormData(details);\n showFooter(false);\n setIsEditContract(false);\n setShowEditor(false);\n setStartDate('');\n setNewAddendum(originalAddendumData);\n clearError();\n setShowAmazonPlanDropdown(false);\n setAmazonStoreCustom(false);\n\n setCalculatedDate(null);\n setFirstMonthDate(null);\n setSecondMonthDate(null);\n setThirdMonthDate(null);\n setEndDate(null);\n setMarketplaceDropdownData();\n getContractDetails();\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n executeScroll('draft-addendum');\n }\n setShowAmazonStorefrontDropdown(false);\n }\n };\n\n const editAgreementChanges = (flag) => {\n if (flag === 'No') {\n setShowEditContractConfirmationModal(false);\n }\n if (flag === 'Yes') {\n const contractDataToUpdate = {\n contract_status: 'pending contract',\n };\n const addendumDataToUpdate = {\n addendum_status: 'pending addendum',\n };\n setIsLoading({ loader: true, type: 'page' });\n setLoaderFlag(false);\n const contractOrAddendum = contractAddendumDetails?.notActive\n ? saveDraftAddendum(addendumDetails.id, addendumDataToUpdate)\n : updateAccountDetails(details.id, contractDataToUpdate);\n contractOrAddendum.then((response) => {\n if (response && response.status === 200) {\n getContractDetails();\n if (contractAddendumDetails?.notActive) {\n getContractAddendumDetails(\n contractAddendumDetails?.id,\n contractAddendumDetails?.status,\n );\n executeScroll('draft-addendum');\n }\n setIsEditContract(true);\n }\n });\n setShowEditContractConfirmationModal(false);\n }\n };\n\n const viewContract = () => {\n if (!contractAddendumDetails.notActive) {\n return (\n

    \n
    \n \n
    \n\n {details?.contract_type?.toLowerCase().includes('one') ||\n details?.contract_type?.toLowerCase().includes('dsp') ? null : (\n
    \n \n
    \n )}\n\n {details?.contract_type?.toLowerCase().includes('dsp') ||\n (showSection.dspAddendum &&\n !details?.contract_type?.toLowerCase().includes('one')) ? (\n
    \n \n
    \n ) : (\n ''\n )}\n {showSection?.addendum ? (\n
    \n \n
    \n ) : (\n ''\n )}\n
    \n );\n }\n return (\n
    \n
    \n \n
    \n
    \n );\n };\n\n const renderEditContractBtn = (btnClass) => {\n return (\n <>\n showEditView(formData)}\n disabled={isSpreetailUser}\n >\n {`${\n contractAddendumDetails.notActive\n ? 'Edit Addendum'\n : 'Edit Agreement'\n }`}\n \n {isSpreetailUser ? (\n \n ) : null}\n \n );\n };\n\n const displayRightSidePanel = () => {\n return (\n \n );\n };\n\n const displayFooter = () => {\n return (\n \n );\n };\n\n const closeDiscountModal = () => {\n const discountUpdatedData = {\n monthly_discount_amount: details.monthly_discount_amount,\n monthly_discount_type: details.monthly_discount_type,\n one_time_discount_amount: details.one_time_discount_amount,\n one_time_discount_type: details.one_time_discount_type,\n };\n setFormData({ ...formData, ...discountUpdatedData });\n setShowDiscountModal(false);\n };\n\n const removeParams = (item) => {\n delete params[item];\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n });\n history.push({\n pathname: `${history.location.pathname}`,\n search: `${stringified}`,\n state: `${history.location.state}`,\n });\n setIsEditContract(false);\n };\n\n const renderContractTabHtml = () => {\n return (\n <>\n \n
      \n showTabInResponsive('view-contract')}\n >\n View Contract\n \n\n showTabInResponsive('edit-fields')}\n >\n {isEditContract ? 'Edit Fields' : 'Activity'}\n \n
    \n
    \n \n );\n };\n\n const handledOnCloseAgreement = () => {\n if (history?.location?.state && history?.location?.state !== 'undefined') {\n if (history?.location?.state.includes('agreement')) {\n const baseUrl = history?.location?.pathname.split('agreement')?.[0];\n history.push(`${baseUrl}${history?.location?.state}`, 'agreement');\n } else {\n history.push(history?.location?.state);\n }\n } else {\n history.push(PATH_CUSTOMER_LIST);\n }\n };\n\n const isShowEditIconInAddendum = () => {\n if (contractAddendumDetails?.notActive) {\n if (isEditContract) {\n // DSP Service\n\n const dspServiceAdded =\n formData?.is_dsp_advertising &&\n formData?.is_dsp_advertising !== originalData?.is_dsp_advertising;\n\n // Listing optimization\n const listingOptimizationAdded =\n checkConditions(\n originalData?.content_optimization,\n formData?.content_optimization,\n ) ||\n checkConditions(\n originalData?.design_optimization,\n formData?.design_optimization,\n ) ||\n checkConditions(\n originalData?.photography_optimization,\n formData?.photography_optimization,\n );\n\n // Listing Translation\n const listingTranslation =\n checkConditions(\n originalData?.copy_listing_translation,\n formData?.copy_listing_translation,\n ) ||\n checkConditions(\n originalData?.creative_listing_translation,\n formData?.creative_listing_translation,\n );\n\n // Advertising services\n const addedAMCServices = getAddedOrRemovedAMCServices(\n formData?.amc_services,\n originalData?.amc_services,\n );\n\n // Standard US services\n const standardUsServicesUniqueResult =\n formData?.standard_us_services?.filter((obj) => {\n return !originalData?.standard_us_services?.some((obj2) => {\n return obj.name === obj2.name;\n });\n });\n const standardUSServicesAdded = standardUsServicesUniqueResult?.length;\n\n // Standard non us servicess\n const nonUSAddedServices = getNonUSStdServicesOfAddendum(\n formData,\n originalData,\n );\n\n const standardNonUsServicesAdded =\n nonUSAddedServices?.vatRegistration?.length ||\n nonUSAddedServices?.vatFilling?.length ||\n nonUSAddedServices?.internationalService?.length;\n\n // Monthly services and marketplaces\n const serviceAddedResult = getMonthlyServicesofContract(\n 'seller',\n 'added',\n );\n const marketplacesAddedResult = getDifferenceMarketplaces(\n 'seller',\n 'added',\n );\n const vendorServiceAddedResult = getMonthlyServicesofContract(\n 'vendor',\n 'added',\n );\n const vendorMarketplacesAddedResult = getDifferenceMarketplaces(\n 'vendor',\n 'added',\n );\n\n const monthlyServices =\n serviceAddedResult?.length ||\n marketplacesAddedResult?.length ||\n vendorServiceAddedResult?.length ||\n vendorMarketplacesAddedResult?.length;\n\n // fee structure\n const feeStructureAdded =\n formData?.fee_structure?.seller?.effective_date ||\n formData?.fee_structure?.vendor?.effective_date;\n\n if (\n dspServiceAdded ||\n listingOptimizationAdded ||\n listingTranslation ||\n standardUSServicesAdded ||\n standardNonUsServicesAdded ||\n feeStructureAdded ||\n monthlyServices ||\n addedAMCServices\n ) {\n return true;\n }\n }\n return false;\n }\n return false;\n };\n\n const renderHeaderDownloadFuntionality = () => {\n return (\n <>\n \n \n
    \n
    \n
    Agreement Management
    \n
    \n
      \n {isShowEditIconInAddendum() ? (\n <>\n
    • \n {' '}\n handleAddendumModal(true)}\n data-tip=\"Edit a previously saved effective date\"\n data-for=\"contract-edit-effectivity-date\"\n />\n \n
    • \n
    • \n \n
    • \n \n ) : (\n ''\n )}\n {isFooter ||\n (newAddendumData?.id &&\n showEditor &&\n updatedFormData?.addendum) ? (\n ''\n ) : (\n <>\n {details?.contract_url ? (\n <>\n \n \n setHelloSignEnterDateTextFlag(false)\n }\n download\n >\n \n Download\n \n \n
    • \n \n
    • \n \n ) : null}\n \n )}\n\n
    • \n {\n handledOnCloseAgreement();\n }}\n role=\"presentation\"\n />\n
    • \n
    \n
    \n
    \n
    \n

    \n \n \n );\n };\n\n return (\n <>\n \n {showPageNotFound ? (\n \n ) : checkContractStatus() ? (\n <>\n {renderContractTabHtml()}\n
    \n {renderHeaderDownloadFuntionality()}\n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n <>\n <>\n {isDesktop ||\n (isTablet && tabInResponsive === 'view-contract') ||\n (isMobile && tabInResponsive === 'view-contract') ? (\n <>\n
    \n \n
    \n {contractAddendumDetails?.notActive && showAddendum ? (\n <>{viewContract()}\n ) : null}\n \n ) : (\n ''\n )}\n \n {isDesktop ||\n (isTablet && tabInResponsive === 'edit-fields') ||\n (isMobile && tabInResponsive === 'edit-fields') ||\n contractAddendumDetails.notActive\n ? displayRightSidePanel()\n : ''}\n {contractStatusValue === 'pending for cancellation' ||\n contractStatusValue === 'pending cancellation approval' ||\n contractStatusValue === 'active pending for pause' ||\n contractAddendumDetails.notActive\n ? displayFooter()\n : ''}\n \n )}\n
    \n \n ) : (\n <>\n {renderContractTabHtml()}\n
    \n {renderHeaderDownloadFuntionality()}\n {(isLoading.loader && isLoading.type === 'page') ||\n activityLoader ? (\n \n ) : detailsId ? (\n <>\n {isDesktop ||\n (isTablet && tabInResponsive === 'view-contract') ||\n (isMobile && tabInResponsive === 'view-contract')\n ? viewContract()\n : ''}\n {isDesktop ||\n (isTablet && tabInResponsive === 'edit-fields') ||\n (isMobile && tabInResponsive === 'edit-fields')\n ? displayRightSidePanel()\n : ''}\n {(detailsId &&\n isLoading.loader &&\n isLoading.type === 'button') ||\n (!isLoading.loader && isLoading.type === 'page')\n ? displayFooter()\n : null}\n \n ) : (\n ''\n )}\n
    \n \n )}\n \n\n \n\n \n\n \n\n {showEffetivityDatesModal.show &&\n showEffetivityDatesModal?.data?.length ? (\n \n ) : null}\n \n );\n}\n","import React, { useState } from 'react';\n\nimport queryString from 'query-string';\nimport { func, shape } from 'prop-types';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { DebounceInput } from 'react-debounce-input';\n\nimport { InputSearchWithRadius } from '../../common';\nimport { SearchIcon, RemoveIcon, ReadBookIcon } from '../../theme/images';\nimport { getArticleSearch, getArticleBoards } from '../../api';\nimport { PATH_ARTICLE_DETAILS } from '../../constants';\n\nexport default function ArticleSearch({\n getArticle,\n setSelectedItems,\n setParams,\n setSubFolderData,\n isMobile,\n setMobileView,\n isTablet,\n setTabView,\n setLoaderFlag,\n setFolderData,\n setBoardData,\n}) {\n const history = useHistory();\n const { collectionId } = useParams();\n const params = queryString?.parse(history?.location?.search);\n\n const [searchQuery, setSearchQuery] = useState('');\n const [searchedData, setSearchedData] = useState([]);\n const [searchCount, setSearchCount] = useState(null);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n\n const handleSearch = (event) => {\n setSearchQuery(event?.target?.value);\n event.persist();\n setIsLoading({ loader: true, type: 'button' });\n setTimeout(() => {\n getArticleSearch(event?.target?.value, collectionId || null).then(\n (response) => {\n setSearchedData(response?.data?.result);\n setSearchCount(response?.data?.count);\n setIsLoading({ loader: false, type: 'button' });\n },\n );\n }, 1000);\n };\n const getBoardData = (boardId, item) => {\n setLoaderFlag('folder', true);\n getArticleBoards(boardId, 'board').then((res) => {\n if (res?.status === 200) {\n setFolderData(res && res?.data);\n getArticle(item?.id);\n }\n setLoaderFlag('folder', false);\n });\n };\n\n const redirectToArticle = (item) => {\n if (collectionId) {\n const stringified = queryString.stringify({\n article: item?.id,\n });\n setParams(stringified);\n setSelectedItems({});\n setSubFolderData([]);\n if (isMobile)\n setMobileView({\n board: false,\n section: false,\n article: true,\n });\n if (isTablet) setTabView(true);\n\n getArticleBoards(collectionId, 'collection').then((response) => {\n setBoardData(response && response.data);\n setSelectedItems((prevSelectedItems) => ({\n ...prevSelectedItems,\n board: params?.board || response?.data?.[0]?.id,\n article: params?.article,\n }));\n const boardId = params?.board || response?.data?.[0]?.id;\n\n getBoardData(boardId, item);\n });\n } else {\n history.push({\n pathname: `${PATH_ARTICLE_DETAILS.replace(\n ':collectionId',\n item.collection.id,\n )}`,\n state: item,\n });\n }\n\n setSearchQuery('');\n };\n\n const generateSearchHTML = () => {\n const options = [];\n if (searchedData) {\n for (const item of searchedData) {\n options.push(\n redirectToArticle(item)}\n key={item.id}\n >\n \"\"\n
    \n {item?.preferredPhrase}\n\n
    \n {item?.collection?.name} | {item?.boards?.[0]?.title}\n
    \n
    \n ,\n );\n }\n }\n return options;\n };\n\n return (\n \n 0 &&\n !isLoading?.loader &&\n isLoading?.type === 'button'\n ? 'article-search pb-5 form-control search-filter'\n : ' form-control search-filter'\n }\n placeholder=\"Search\"\n onChange={(event) => handleSearch(event)}\n value={searchQuery || ''}\n />\n {searchQuery?.length > 1 ? (\n
    \n
      \n {isLoading?.loader && isLoading?.type === 'button' ? (\n

      Loading....

      \n ) : (\n <>\n
      \n {searchCount} results found\n
      \n {generateSearchHTML()}\n \n )}\n
    \n
    \n ) : (\n ''\n )}\n\n {searchQuery ? (\n setSearchQuery('')}\n role=\"presentation\"\n />\n ) : (\n ''\n )}\n\n \"search\"\n
    \n );\n}\n\nArticleSearch.defaultProps = {\n getArticle: () => {},\n setSelectedItems: () => {},\n setParams: () => {},\n setSubFolderData: () => {},\n isMobile: {},\n setMobileView: () => {},\n isTablet: {},\n setTabView: () => {},\n setLoaderFlag: () => {},\n setFolderData: () => {},\n setBoardData: () => {},\n};\n\nArticleSearch.propTypes = {\n getArticle: func,\n setSelectedItems: func,\n setParams: func,\n setSubFolderData: func,\n isMobile: shape({}),\n setMobileView: func,\n isTablet: shape({}),\n setTabView: func,\n setLoaderFlag: func,\n setFolderData: func,\n setBoardData: func,\n};\n","import React, { useState, useEffect } from 'react';\n\nimport styled from 'styled-components';\nimport { useHistory } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../theme/Theme';\nimport ArticleSearch from './ArticleSearch';\nimport { GlobalNavbar, PageLoader } from '../../common';\nimport { getArticleCollections } from '../../api';\nimport { PATH_ARTICLE_DETAILS, collectionDetails } from '../../constants';\n\nexport default function ArticleList() {\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const history = useHistory();\n const [data, setData] = useState([]);\n\n useEffect(() => {\n getArticleCollections().then((response) => {\n setData(response && response.data);\n setIsLoading({ loader: false, type: 'page' });\n });\n }, []);\n\n const getImages = (item) => {\n for (const img of collectionDetails) {\n if (item === img.key) {\n return (\n
    \n \n
    \n );\n }\n }\n return '';\n };\n\n return (\n <>\n \n \n
    \n

    Knowledge Base

    \n\n

    \n All the resources you need to get the most out of the Central\n platform.\n

    \n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n
    \n
    \n {data.map((item) => (\n \n {(item.cards === 0 && item.boards === 0) ||\n item.name === 'Getting Started with Guru' ? (\n ''\n ) : (\n \n \n history.push(\n `${PATH_ARTICLE_DETAILS.replace(\n ':collectionId',\n item.id,\n )}`,\n )\n }\n >\n {getImages(item.name)}\n
    {item.name}
    \n

    \n {item.description}\n

    \n
    \n
    \n )}\n \n ))}\n
    \n
    \n )}\n \n \n \n );\n}\n\nconst GrayBody = styled.div`\n background: ${Theme.gray6};\n\n .graycontainer {\n // max-width: 1334px;\n width: 100%;\n margin: 0 auto;\n padding-left: 64px;\n padding-top: 30px;\n padding-left: 45px;\n padding-right: 45px;\n }\n .article-card {\n background-color: ${Theme.white};\n border-radius: 12px;\n flex-wrap: wrap;\n flex: initial;\n height: 100%;\n text-align: center;\n padding: 20px;\n\n .article-card-icon {\n width: 60px;\n margin-bottom: 10px;\n }\n .card-icons {\n background: #fff5f3;\n width: 60px;\n height: 60px;\n padding: 17px;\n text-align: center;\n border-radius: 100%;\n margin: 0 auto 15px;\n }\n }\n\n .card-gap {\n margin-bottom: 30px;\n }\n .small-para {\n color: ${Theme.gray90};\n font-size: ${Theme.extraMedium};\n }\n .drop-down-option {\n width: 100%;\n min-height: 1px;\n overflow-y: auto;\n top: 40px;\n max-height: 225px;\n font-size: ${Theme.normal};\n color: ${Theme.gray35};\n border-left: 1px solid ${Theme.gray9};\n border-right: 1px solid ${Theme.gray9};\n border-bottom-right-radius: 20px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 1px;\n z-index: 2;\n background-color: ${Theme.white};\n box-shadow: 0 15px 15px 0 rgba(68, 68, 79, 0.1);\n position: absolute;\n\n ul {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n padding: 8px;\n float: left;\n width: 100%;\n\n &:first-child {\n border-top: 1px solid ${Theme.gray7};\n }\n\n .book-list-icon {\n vertical-align: top;\n margin-right: 10px;\n width: 25px;\n margin-top: 4px;\n float: left;\n }\n .header-list {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n font-weight: 800;\n\n .sub-list {\n color: ${Theme.gray35};\n font-size: ${Theme.extraNormal};\n font-weight: 300;\n }\n }\n }\n }\n .result-found {\n color: ${Theme.gray35};\n font-size: ${Theme.verySmall};\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n padding: 18px 0 8px 0;\n letter-spacing: 0.85px;\n border-top: 1px solid ${Theme.gray9};\n }\n }\n @media only screen and (min-width: 1600px) {\n /* height: 100%; */\n .graycontainer {\n // max-width: 1434px;\n }\n }\n @media only screen and (min-width: 1700px) and (min-width: 1920px) {\n /* height: 100%; */\n .graycontainer {\n // max-width: 85%;\n padding-top: 40px;\n .article-card {\n background-color: ${Theme.white};\n border-radius: 12px;\n max-width: 100%;\n flex-wrap: wrap;\n flex: initial;\n height: 100%;\n text-align: center;\n padding: 20px;\n\n .article-card-icon {\n width: 80px;\n margin-bottom: 10px;\n }\n\n p {\n font-size: 18px;\n }\n h6 {\n font-size: 24px;\n }\n }\n }\n }\n @media only screen and (min-width: 1700px) and (max-width: 1920px) {\n .graycontainer {\n // max-width: 1534px;\n padding-top: 40px;\n }\n .small-para {\n color: ${Theme.gray90};\n font-size: ${Theme.extraMediumRes};\n }\n .drop-down-option {\n font-size: ${Theme.normal};\n\n ul {\n li {\n .header-list {\n font-size: ${Theme.normalRes};\n\n .sub-list {\n font-size: ${Theme.extraNormalRes};\n }\n }\n }\n }\n .result-found {\n font-size: ${Theme.verySmallRes};\n }\n }\n }\n @media only screen and (max-width: 1400px) {\n .graycontainer {\n // padding-left: 100px;\n padding-top: 40px;\n }\n }\n @media only screen and (max-width: 991.98px) {\n .graycontainer {\n padding: 45px 30px;\n }\n .article-card {\n padding: 15px;\n min-height: 150px;\n\n h6 {\n font-size: ${Theme.normal};\n }\n }\n }\n`;\n","import React, { useState } from 'react';\n\nimport { toast } from 'react-toastify';\nimport { shape, bool, func } from 'prop-types';\n\nimport { updateArticle } from '../../api';\nimport { CloseIcon } from '../../theme/images';\nimport { Button, ModalBox, FormField, PageLoader } from '../../common';\n\nfunction SuggestUpdateModal({\n setShowModal,\n showContinueMsg,\n selectedArticle,\n setShowContinueMsg,\n}) {\n const [formData, setFormData] = useState({});\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n\n const saveArticle = () => {\n setIsLoading({ loader: true, type: 'button' });\n\n const data = {\n ...formData,\n article_title: selectedArticle?.preferredPhrase,\n card_id: selectedArticle?.slug,\n };\n\n updateArticle(data).then((response) => {\n if (response && response?.status === 201) {\n setShowContinueMsg(true);\n setIsLoading({ loader: false, type: 'button' });\n } else {\n toast.error('Something went wrong.');\n }\n });\n };\n\n return (\n \n setShowModal(false)}\n role=\"presentation\"\n />\n {!showContinueMsg ? (\n
    \n

    Suggest an Update

    \n

    \n See something that's not correct in this article? Simply send\n us a note and we will update the content.\n

    \n\n \n \n setFormData({\n ...formData,\n description: event?.target?.value,\n })\n }\n />\n \n saveArticle()}\n disabled={!formData?.description}\n >\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Submit'\n )}\n \n
    \n ) : (\n
    \n
    Thanks for your help!
    \n

    \n One of our knowledge experts will now review your submission. Thanks\n again for helping us make our knowledge base great.\n

    \n\n setShowModal(false)}\n >\n Continue\n \n
    \n )}\n
    \n );\n}\n\nexport default SuggestUpdateModal;\n\nSuggestUpdateModal.defaultProps = {\n setShowModal: () => {},\n showContinueMsg: false,\n selectedArticle: {},\n setShowContinueMsg: () => {},\n};\n\nSuggestUpdateModal.propTypes = {\n setShowModal: func,\n showContinueMsg: bool,\n selectedArticle: shape({}),\n setShowContinueMsg: func,\n};\n","import React, { useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport Modal from 'react-modal';\nimport { shape, bool } from 'prop-types';\n\nimport SuggestUpdateModal from './SuggestUpdateModal';\nimport { Button, PageLoader, NoRecordFound } from '../../common';\n\nconst customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '600px ',\n width: '100% ',\n minHeight: '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n borderRadius: '8px',\n },\n};\n\nfunction Article({\n selectedArticle,\n sectionLoader,\n isDesktop,\n isTablet,\n isMobile,\n tabView,\n mobileView,\n}) {\n const [showModal, setShowModal] = useState(false);\n const [showContinueMsg, setShowContinueMsg] = useState(false);\n\n const handleContent = () => {\n return `

    \n ${\n (selectedArticle &&\n selectedArticle.preferredPhrase) ||\n ''\n }\n

    \n ${(selectedArticle && selectedArticle.content) || ''}`;\n };\n\n const getInitials = () => {\n const firstName = selectedArticle?.owner?.firstName?.charAt(0) || '';\n const lastName = selectedArticle?.owner?.lastName?.charAt(0) || '';\n return firstName + lastName;\n };\n\n return (\n
    \n {isDesktop ||\n (isTablet && tabView) ||\n (isMobile && mobileView.article) ? (\n sectionLoader?.articleLoader ? (\n
    \n \n
    \n ) : Object.keys(selectedArticle)?.length ? (\n
    \n
    \n
    \n {selectedArticle?.owner?.profilePicUrl ? (\n \"logo\"\n ) : (\n
    {getInitials()}
    \n )}\n\n
    \n
    \n {`${selectedArticle?.owner?.firstName} ${selectedArticle?.owner?.lastName}`}\n
    \n Last Updated on{' '}\n {selectedArticle &&\n dayjs(selectedArticle.lastModified).format('MMM DD, YYYY')}\n
    \n
    \n
    \n \n {\n setShowModal(true);\n setShowContinueMsg(false);\n }}\n className=\" btn-with-radius \"\n >\n {' '}\n Suggest an update\n \n \n \n \n
    \n\n \n
    \n ) : (\n
    \n \n
    \n )\n ) : (\n ''\n )}\n \n );\n}\n\nexport default Article;\n\nArticle.defaultProps = {\n selectedArticle: {},\n sectionLoader: {},\n isDesktop: false,\n isTablet: false,\n isMobile: false,\n tabView: false,\n mobileView: {},\n};\n\nArticle.propTypes = {\n selectedArticle: shape({}),\n sectionLoader: shape({}),\n isDesktop: bool,\n isTablet: bool,\n isMobile: bool,\n tabView: bool,\n mobileView: shape({}),\n};\n","import styled from 'styled-components';\nimport Theme from '../../theme/Theme';\n\nexport const GrayBody = styled.div`\n .graycontainer-fluid {\n /* width: 98%; */\n margin: 0 auto;\n padding-left: 20px;\n }\n .drop-down-option {\n width: 100%;\n min-height: 1px;\n overflow-y: auto;\n top: 40px;\n max-height: 225px;\n font-size: ${Theme.normal};\n color: ${Theme.gray35};\n /* border-bottom: 1px solid ${Theme.gray9}; */\n border-left: 1px solid ${Theme.gray9};\n border-right: 1px solid ${Theme.gray9};\n border-bottom-right-radius: 20px;\n border-bottom-left-radius: 20px;\n border-top-left-radius: 1px;\n z-index: 2;\n background-color: ${Theme.white};\n box-shadow: 0 15px 15px 0 rgba(68, 68, 79, 0.1);\n position: absolute;\n\n ul {\n padding: 0;\n margin: 0;\n list-style-type: none;\n\n li {\n padding: 8px;\n float: left;\n width: 100%;\n /* &:first-child {\n border-top: 1px solid ${Theme.gray7};\n } */\n\n .book-list-icon {\n vertical-align: top;\n margin-right: 10px;\n width: 25px;\n margin-top: 4px;\n float: left;\n }\n .header-list {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n font-weight: 800;\n\n .sub-list {\n color: ${Theme.gray35};\n font-size: 14px;\n font-weight: 300;\n }\n }\n }\n .result-found {\n color: ${Theme.gray35};\n font-size: 11px;\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n padding: 18px 0 8px 0;\n letter-spacing: 0.85px;\n border-top: 1px solid ${Theme.gray9};\n }\n }\n }\n\n .small-title {\n font-size: ${Theme.textFontSize};\n color: ${Theme.gray90};\n font-family: ${Theme.titleFontFamily};\n padding: 10px 0 0 10px;\n\n .back-to-pervious {\n font-size: ${Theme.small};\n font-weight: 300;\n color: ${Theme.gray90};\n font-family: ${Theme.baseFontFamily};\n }\n }\n .left-arrow {\n width: 16px;\n vertical-align: top;\n margin-right: 1px;\n }\n\n .edit-profile-text {\n position: relative;\n img {\n border-radius: 50%;\n width: 50px;\n height: 50px;\n margin-right: 10px;\n }\n\n .name-email {\n color: ${Theme.gray35};\n font-size: ${Theme.normal};\n\n .team-member-name {\n color: ${Theme.black};\n font-size: 18px;\n }\n }\n }\n\n .sub-heading {\n color: ${Theme.gray90};\n font-size: 24px;\n }\n\n .steps-to-avoid {\n padding: 0;\n margin: 0;\n list-style-type: none;\n li {\n color: ${Theme.gray90};\n font-size: 16px;\n padding-bottom: 18px;\n\n img {\n width: 15px;\n margin-right: 10px;\n }\n }\n }\n .article-details-text {\n margin: 0 auto;\n padding: 0 45px 0 30px;\n overflow-x: auto;\n height: 80vh;\n width: 100%;\n\n h2.ghq-card-content__medium-heading {\n color: ${Theme.gray90};\n font-size: ${Theme.title};\n font-family: ${Theme.baseFontFamily};\n }\n .ghq-card-content__horizontal-rule {\n display: block;\n &:first-of-type {\n display: none;\n }\n }\n\n .ghq-card-content__video-responsive-wrapper {\n .ghq-card-content__video {\n width: 90%;\n height: 400px;\n }\n @media only screen and (min-width: 1600px) and (max-width: 1920px) {\n .ghq-card-content__video {\n width: 90%;\n height: 500px;\n }\n }\n }\n\n .remove-author > .ghq-card-content__paragraph {\n display: block;\n }\n p.ghq-card-content__paragraph {\n color: ${Theme.gray90};\n font-size: ${Theme.extraMedium};\n line-height: 24px;\n font-weight: 300;\n white-space: break-spaces;\n }\n .ghq-card-content__image {\n /* width: -webkit-fill-available !important; */\n width: auto !important;\n max-width: -webkit-fill-available !important;\n }\n\n .ghq-card-content__table-responsive-wrapper {\n .ghq-card-content__table-scroller {\n .ghq-card-content__table {\n border-collapse: collapse;\n .ghq-card-content__table-body {\n .ghq-card-content__table-row {\n .ghq-card-content__table-cell {\n color: #2e384d;\n border: 1px solid ${Theme.gray20};\n padding: 5px;\n }\n }\n }\n }\n }\n }\n .ghq-card-content__numbered-list,\n .ghq-card-content__bulleted-list {\n color: ${Theme.gray90};\n }\n }\n\n @media only screen and (min-width: 1700px) {\n .graycontainer-fluid {\n width: 100%;\n margin: 0 auto;\n }\n }\n\n @media only screen and (max-width: 991px) {\n .graycontainer-fluid {\n padding: 0 7px;\n }\n .back-to-pervious-page {\n font-size: ${Theme.extraMedium} !important;\n font-weight: 300;\n color: ${Theme.gray90};\n font-family: ${Theme.baseFontFamily};\n }\n .article-details-text {\n height: 100% !important;\n overflow: none !important;\n }\n }\n @media only screen and (max-width: 767px) {\n .btn-with-radius {\n width: 100%;\n margin-top: 25px;\n }\n .small-title {\n .back-to-pervious-page {\n font-size: ${Theme.extraMedium};\n }\n }\n\n .article-details-text {\n height: 100% !important;\n overflow: none !important;\n }\n }\n`;\n\nexport default GrayBody;\n","import styled from 'styled-components';\nimport Theme from '../../theme/Theme';\n\nexport const ArticleDetail = styled.div`\n height: 100%;\n\n .board {\n /* width: 50%; */\n /* float: left; */\n overflow-x: auto;\n height: 100%;\n height: 80vh;\n border-right: 1px solid ${Theme.gray7};\n }\n\n .articles {\n /* width: 50%; */\n /* float: left; */\n height: 100%;\n height: 80vh;\n overflow-x: auto;\n border-right: 1px solid ${Theme.gray7};\n }\n\n .acc-management-list {\n padding: 0;\n margin: 0;\n list-style-type: none;\n overflow: auto;\n\n li {\n color: ${Theme.gray90};\n font-size: ${Theme.normal};\n line-height: 22px;\n font-family: ${Theme.baseFontFamily};\n padding: 0px 9px 15px 0;\n text-align: left;\n\n .category {\n border-left: 3px solid ${Theme.white};\n padding-left: 10px;\n }\n\n .label {\n border-left: 3px solid ${Theme.white};\n padding-left: 10px;\n }\n\n &:hover {\n .category {\n border-left: 3px solid ${Theme.orange};\n font-family: ${Theme.titleFontFamily};\n cursor: pointer;\n }\n\n .label {\n border-left: 3px solid ${Theme.orange};\n font-family: ${Theme.titleFontFamily};\n cursor: pointer;\n color: ${Theme.gray90};\n }\n }\n &.active {\n .category {\n border-left: 3px solid ${Theme.orange};\n font-family: ${Theme.titleFontFamily};\n cursor: pointer;\n }\n\n .label {\n border-left: 3px solid ${Theme.orange};\n font-family: ${Theme.titleFontFamily};\n cursor: pointer;\n color: ${Theme.gray90};\n\n /* border-left: 3px solid ${Theme.white}; */\n }\n }\n }\n .label {\n font-size: 11px;\n color: #8798ad;\n text-transform: uppercase;\n font-family: ${Theme.titleFontFamily};\n border-left: 3px solid ${Theme.white};\n letter-spacing: 0.85px;\n /* margin-bottom: 10px; */\n /* margin-top: 8px; */\n }\n }\n @media only screen and (min-width: 1500px) {\n .board {\n height: 85vh;\n }\n\n .articles {\n height: 85vh;\n }\n }\n @media only screen and (max-width: 991px) {\n .articles {\n border-right: none;\n }\n }\n @media only screen and (max-width: 767px) {\n .board {\n width: 100%;\n border-right: none;\n }\n .articles {\n width: 100%;\n border-right: none;\n }\n .acc-management-list {\n li {\n .category {\n border-left: none !important;\n padding-left: 10px;\n font-family: ${Theme.baseFontFamily} !important;\n\n .label {\n border-left: none !important;\n }\n &:hover {\n .category {\n border-left: none !important;\n font-family: ${Theme.baseFontFamily} !important;\n }\n\n .label {\n border-left: none !important;\n font-family: ${Theme.baseFontFamily} !important;\n }\n }\n &.active {\n .category {\n border-left: none !important;\n font-family: ${Theme.baseFontFamily} !important;\n cursor: pointer;\n }\n\n .label {\n border-left: none !important;\n font-family: ${Theme.baseFontFamily} !important;\n }\n }\n }\n }\n }\n }\n`;\nexport default ArticleDetail;\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport queryString from 'query-string';\nimport { useDispatch } from 'react-redux';\nimport { toast } from 'react-toastify';\nimport { useMediaQuery } from 'react-responsive';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Link, useParams, useHistory } from 'react-router-dom';\n\nimport Article from './Article';\nimport ArticleSearch from './ArticleSearch';\nimport { GrayBody } from './ArticleKBaseStyle';\nimport { LeftArrowIcon } from '../../theme/images';\nimport { ArticleDetail } from './ArticleDetailsStyle';\nimport { setKBtitle } from '../../store/actions/userState';\nimport { PATH_ARTICLE_LIST, PATH_ARTICLE_DETAILS } from '../../constants';\nimport { getArticleBoards, getArticleCards } from '../../api';\nimport { PageLoader, BackToTop } from '../../common';\n\nfunction ArticleDetails() {\n const { collectionId } = useParams();\n const history = useHistory();\n const dispatch = useDispatch();\n\n const [tabView, setTabView] = useState(false);\n const [boardData, setBoardData] = useState([]);\n const [folderData, setFolderData] = useState([]);\n const [selectedItems, setSelectedItems] = useState({});\n const [subFolderData, setSubFolderData] = useState([]);\n const [selectedArticle, setKbArticleData] = useState({});\n const [subSubFolderData, setSubSubFolderData] = useState([]);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [sectionLoader, setSectionLoader] = useState({\n boardLoader: false,\n folderLoader: false,\n subFolderLoader: false,\n articleLoader: false,\n });\n const [mobileView, setMobileView] = useState({\n board: true,\n section: false,\n article: false,\n });\n\n const isMobile = useMediaQuery({ maxWidth: 767 });\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const isTablet = useMediaQuery({ minWidth: 768, maxWidth: 991.98 });\n const params = queryString?.parse(history?.location?.search);\n const isSubFolderExists =\n (subFolderData?.length || sectionLoader?.folderLoader) &&\n (isDesktop || (isTablet && !tabView) || (isMobile && mobileView.section));\n\n const getArticle = useCallback(\n (articleItem) => {\n setSectionLoader({ ...sectionLoader, articleLoader: true });\n\n getArticleCards(articleItem).then((cardResponse) => {\n setSectionLoader({ ...sectionLoader, articleLoader: false });\n if (cardResponse?.status === 200) {\n setKbArticleData(cardResponse?.data);\n } else {\n toast.error('Something went wrong.');\n }\n });\n },\n [sectionLoader],\n );\n\n const setLoaderFlag = useCallback(\n (folderType, flag) => {\n switch (folderType) {\n case 'folder':\n setSectionLoader({ ...sectionLoader, boardLoader: flag });\n break;\n case 'subFolder':\n setSectionLoader({ ...sectionLoader, folderLoader: flag });\n break;\n case 'subSubFolder':\n setSectionLoader({ ...sectionLoader, subFolderLoader: flag });\n break;\n\n default:\n setSectionLoader({\n ...sectionLoader,\n boardLoader: false,\n folderLoader: false,\n subFolderLoader: false,\n });\n }\n },\n [sectionLoader],\n );\n\n const getBoardData = useCallback(\n (boardId, folderType = 'folder') => {\n setLoaderFlag(folderType, true);\n getArticleBoards(boardId, 'board').then((res) => {\n if (res?.status === 200) {\n if (folderType === 'folder') {\n setFolderData(res && res?.data);\n if (params?.folder) {\n getBoardData(params?.folder, 'subFolder');\n }\n\n if (params?.folder) {\n const board = res?.data?.find(\n (ele) => ele?.id === params?.folder,\n );\n dispatch(setKBtitle(board));\n }\n }\n\n if (folderType === 'subFolder') {\n setSubFolderData(res && res?.data);\n\n if (params?.subFolder) {\n getBoardData(params?.subFolder, 'subSubFolder');\n }\n\n const board = folderData?.find((ele) => ele?.id === boardId);\n if (board) dispatch(setKBtitle(board));\n }\n\n if (folderType === 'subSubFolder') {\n setSubSubFolderData(res && res?.data);\n }\n if (params?.article) {\n getArticle(params?.article);\n }\n } else {\n toast.error('Something went wrong.');\n }\n\n setLoaderFlag(folderType, false);\n });\n },\n [\n params.folder,\n params.subFolder,\n params.article,\n getArticle,\n setLoaderFlag,\n dispatch,\n folderData,\n ],\n );\n\n const getSubFolderData = (selectedFolder, folderLevel) => {\n if (folderLevel === 'subFolder') {\n setSubFolderData([]);\n setSubSubFolderData([]);\n }\n\n getBoardData(selectedFolder, folderLevel);\n };\n\n const getCollectionData = useCallback(\n (collection) => {\n getArticleBoards(collection, 'collection').then((response) => {\n if (response?.status === 200) {\n setBoardData(response && response.data);\n setSelectedItems((prevSelectedItems) => ({\n ...prevSelectedItems,\n board: params?.board || response?.data?.[0]?.id,\n folder: params?.folder,\n subFolder: params?.subFolder,\n article: params?.article,\n }));\n\n // PDV-8766 - set the KB artical title ---START---\n if (!params?.board && !params?.folder)\n dispatch(setKBtitle(response?.data?.[0]));\n // PDV-8766 - set the KB artical title ---END---\n\n const boardId = params?.board || response?.data?.[0]?.id;\n\n getBoardData(boardId);\n } else {\n toast.error('Something went wrong.');\n }\n setIsLoading({ loader: false, type: 'page' });\n });\n },\n [\n getBoardData,\n dispatch,\n params.article,\n params.board,\n params.folder,\n params.subFolder,\n ],\n );\n\n useEffect(() => {\n if (!boardData?.length && !folderData?.length)\n getCollectionData(collectionId);\n }, [collectionId, getCollectionData, boardData, folderData]);\n\n const setParams = (paramString) => {\n history.push({\n pathname: `${PATH_ARTICLE_DETAILS.replace(\n ':collectionId',\n collectionId,\n )}`,\n search: `${paramString}`,\n });\n };\n\n const handleBoard = (board) => {\n setSelectedItems({\n ...selectedItems,\n board: board?.id,\n });\n setFolderData([]);\n setSubSubFolderData([]);\n getBoardData(board?.id);\n\n const stringified = queryString.stringify({\n board: board?.id,\n });\n setParams(stringified);\n\n // PDV-8766 - set the KB artical title ---START---\n dispatch(setKBtitle(board));\n // PDV-8766 - set the KB artical title ---END---\n\n if (isMobile)\n setMobileView({ board: true, section: false, article: false });\n };\n\n const handleSubFolderClick = (sub) => {\n setSubSubFolderData([]);\n\n setSelectedItems({\n ...selectedItems,\n subFolder: sub?.id,\n });\n getSubFolderData(sub?.id, 'subSubFolder');\n\n const stringified = queryString.stringify({\n board: params?.board,\n folder: params?.folder,\n subFolder: sub?.id,\n });\n setParams(stringified);\n };\n\n const handleArticleOnClick = (sub, type) => {\n const selectedItemsToUpdate = {\n article: sub?.id,\n };\n if (type === 'article') {\n selectedItemsToUpdate.folder = '';\n setSubFolderData([]);\n setSubSubFolderData([]);\n }\n\n setSelectedItems({\n ...selectedItems,\n ...selectedItemsToUpdate,\n });\n\n setKbArticleData({});\n getArticle(sub?.id);\n if (isMobile)\n setMobileView({\n board: false,\n section: false,\n article: true,\n });\n if (isTablet) setTabView(true);\n\n const queryStringData = {\n board: params?.board,\n article: sub?.id,\n };\n\n if (type === 'subArticle') {\n queryStringData.folder = params?.folder;\n queryStringData.subFolder = params?.subFolder;\n }\n const stringified = queryString.stringify({\n ...queryStringData,\n });\n setParams(stringified);\n };\n\n const showSubFolders = (field, folderType) => {\n return (\n field?.map((sub) => (\n \n \n {sub?.type === 'folder' ? (\n <>\n {\n handleSubFolderClick(sub);\n }}\n >\n {sub?.title}\n \n \n ) : (\n {\n handleArticleOnClick(sub, 'subArticle');\n }}\n >\n \n {sub?.preferredPhrase}\n \n )}\n \n {sub.id === selectedItems?.subFolder ? (\n sectionLoader?.subFolderLoader ? (\n \n ) : (\n showSubFolders(subSubFolderData, 'subSubFolder')\n )\n ) : (\n ''\n )}\n \n )) || null\n );\n };\n\n const handleFolderOnClick = (field, board) => {\n setSelectedItems({\n ...selectedItems,\n folder: field?.id,\n });\n if (isMobile)\n setMobileView({\n board: false,\n section: true,\n article: false,\n });\n\n const stringified = queryString.stringify({\n board: board?.id,\n folder: field?.id,\n });\n setParams(stringified);\n getSubFolderData(field?.id, 'subFolder');\n };\n\n return (\n \n
    \n
    \n
    \n
    \n {' '}\n \n
    \n \"\" Back\n to All Collections\n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n
    \n
    \n
    \n \n {isDesktop ||\n (isTablet && !tabView) ||\n (isMobile && mobileView.board) ? (\n
    \n
      \n
    • \n
      Boards
      \n
    • \n {boardData?.length &&\n boardData.map((board) => (\n \n handleBoard(board)}\n >\n
      \n {board && board.title}\n
      \n \n {board.id === selectedItems?.board ? (\n sectionLoader?.boardLoader ? (\n \n ) : (\n folderData &&\n folderData.map((field) => (\n \n {field.type === 'folder' ? (\n \n {\n handleFolderOnClick(field, board);\n }}\n >\n {field.title}\n
    \n \n ) : (\n {\n handleArticleOnClick(\n field,\n 'article',\n );\n }}\n >\n
    \n \n {field.preferredPhrase}\n
    \n \n )}\n \n ))\n )\n ) : (\n ''\n )}\n \n ))}\n \n
    \n ) : (\n ''\n )}\n\n {isMobile && mobileView.section ? (\n <>\n
    \n
    \n
    \n {' '}\n \n isMobile\n ? setMobileView({\n board: true,\n section: false,\n article: false,\n })\n : ''\n }\n >\n {' '}\n Back to All Boards\n
    \n {selectedArticle?.boards?.[0]?.title}\n
    \n
    \n
    \n
    \n \n ) : (\n ''\n )}\n \n
    {' '}\n \n \n {isSubFolderExists ? (\n <>\n
    \n
      \n
    • \n
      Articles
      \n
    • \n {sectionLoader?.folderLoader ? (\n \n ) : (\n showSubFolders(subFolderData, 'subFolder')\n )}\n
    \n
    \n \n ) : (\n ''\n )}\n
    \n
    \n \n {(isTablet && tabView) || (isMobile && mobileView.article) ? (\n <>\n
    \n
    \n
    \n {' '}\n \n isTablet\n ? setTabView(false)\n : isMobile\n ? setMobileView({\n board: false,\n section: true,\n article: false,\n })\n : ''\n }\n role=\"presentation\"\n >\n {' '}\n Back to All Articles\n
    \n
    \n
    \n
    \n
    \n \n ) : (\n ''\n )}\n\n \n
    \n \n
    \n
    \n \n \n )}\n
    \n );\n}\n\nexport default ArticleDetails;\n","// react imports\nimport React, { useState } from 'react';\n\n// third party imports\nimport { useMediaQuery } from 'react-responsive';\nimport { components } from 'react-select';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\n// local file imports\nimport { CaretUp } from '../../../../theme/images';\nimport {\n WhiteCard,\n DropdownIndicator,\n MultiSelectSearchableDropdown,\n SingleSelectDropdown,\n DropdownOptions,\n} from '../../../../common';\n\nconst DSPFilter = ({\n // boolean\n isApiCall,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isAdManagerAdmin,\n isAdTeamManager,\n // objects\n selectedMarketplace,\n selectedBrandPartner,\n // array\n userList,\n managerUserList,\n selectedUser,\n selectedManagerUser,\n marketplaceOptions,\n brandPartnerOptions,\n // function\n handleResetFilter,\n handleMarketplace,\n setSelectedUser,\n setSelectedManagerUser,\n handleUserFilterEvents,\n handleUserOnMenuCloseEvents,\n handleManagerUserFilterEvents,\n handleManagerUserOnMenuCloseEvents,\n handledBrandPartnerFilterEvents,\n}) => {\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const { SingleValue } = components;\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n\n // react select dropdown components - selected option\n const singleFilterOption = (props) => (\n \n {props?.data?.label}\n \n );\n\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n // render Brand Partner type dropdwon filter\n const renderBrandPartnerDropdownFilter = () => {\n return (\n
    \n
    Brand Partner
    \n
    \n \n
    \n
    \n );\n };\n\n // render multi select dropdown for bgs and ad manager\n const renderUserDropdown = () => {\n return (\n
    \n
    \n {isBGSAdmin || isBGSManager || isSpreetailRole ? 'BGS' : 'Ad Manager'}\n
    \n\n
    \n option?.value !== 'all')}\n label=\"\"\n value=\"user\"\n multiSelectedValues={{ user: selectedUser }}\n setMultiSelectedValues={setSelectedUser}\n handleMultiSelectChange={handleUserFilterEvents}\n handleOnMenuClose={handleUserOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable\n />\n
    \n
    \n );\n };\n\n // render multi select dropdown for bgs manager and ad team manager\n const renderManagerUserDropdown = (label) => {\n return (\n
    \n
    {label}
    \n
    \n option?.value !== 'all',\n )}\n label=\"\"\n value=\"managerUser\"\n multiSelectedValues={{ managerUser: selectedManagerUser }}\n setMultiSelectedValues={setSelectedManagerUser}\n handleMultiSelectChange={handleManagerUserFilterEvents}\n handleOnMenuClose={handleManagerUserOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable\n />\n
    \n
    \n );\n };\n\n // render marketplace dropdown filter\n const renderMarketplaceDropdownFilter = () => {\n return (\n
    \n
    Marketplace
    \n\n
    \n \n
    \n
    \n );\n };\n\n // render filters\n const renderFilters = () => (\n <>\n {renderBrandPartnerDropdownFilter()}\n {renderMarketplaceDropdownFilter()}\n {isBGSAdmin || isAdManagerAdmin || isSpreetailRole\n ? renderManagerUserDropdown(\n isBGSAdmin || isSpreetailRole ? 'BGS Manager' : 'Ad Team Manager',\n )\n : null}\n {isBGSManager ||\n isBGSAdmin ||\n isAdManagerAdmin ||\n isAdTeamManager ||\n isSpreetailRole\n ? renderUserDropdown(\n isBGSAdmin || isBGSManager || isSpreetailRole\n ? 'BGS'\n : 'Ad Manager',\n )\n : null}\n \n );\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n setIsCollapseOpen(!isCollapseOpen)}\n className={\n isDesktop ? 'mb-3 d-lg-block d-none' : 'mb-3 d-lg-none d-block'\n }\n >\n
    \n
    \n
    Filters
    \n
    \n
    \n handleResetFilter()}\n role=\"presentation\"\n className={`gray-normal-text m-0 cursor ${\n isApiCall ? 'disabled' : ''\n }`}\n >\n Reset filters\n {!isDesktop && (\n \n {\n e.stopPropagation();\n setIsCollapseOpen(!isCollapseOpen);\n }}\n >\n \n \n \n )}\n

    \n
    \n\n {isDesktop\n ? renderFilters()\n : isCollapseOpen\n ? renderFilters()\n : null}\n
    \n \n
    \n );\n};\n\nexport default DSPFilter;\n\nDSPFilter.defaultProps = {\n // boolean\n isApiCall: false,\n isBGSAdmin: false,\n isSpreetailRole: false,\n isBGSManager: false,\n isAdManagerAdmin: false,\n isAdTeamManager: false,\n // objects\n data: {},\n selectedMarketplace: {},\n selectedBrandPartner: {},\n // array\n userList: [],\n managerUserList: [],\n selectedUser: [],\n selectedManagerUser: [],\n marketplaceOptions: [],\n brandPartnerOptions: [],\n // function\n handleResetFilter: () => {},\n handleMarketplace: () => {},\n setSelectedUser: () => {},\n setSelectedManagerUser: () => {},\n handleUserFilterEvents: () => {},\n handleUserOnMenuCloseEvents: () => {},\n handleManagerUserFilterEvents: () => {},\n handleManagerUserOnMenuCloseEvents: () => {},\n handledBrandPartnerFilterEvents: () => {},\n};\n\nDSPFilter.propTypes = {\n // boolean\n isApiCall: bool,\n isBGSAdmin: bool,\n isSpreetailRole: bool,\n isBGSManager: bool,\n isAdManagerAdmin: bool,\n isAdTeamManager: bool,\n // objects\n data: shape({ sub: string, label: string }),\n selectedMarketplace: shape({}),\n selectedBrandPartner: shape({}),\n // array\n userList: arrayOf(shape({})),\n managerUserList: arrayOf(shape({})),\n selectedUser: arrayOf(shape({})),\n selectedManagerUser: arrayOf(shape({})),\n marketplaceOptions: arrayOf(shape({})),\n brandPartnerOptions: arrayOf(shape({})),\n // function\n handleResetFilter: func,\n handleMarketplace: func,\n setSelectedUser: func,\n setSelectedManagerUser: func,\n handleUserFilterEvents: func,\n handleUserOnMenuCloseEvents: func,\n handleManagerUserFilterEvents: func,\n handleManagerUserOnMenuCloseEvents: func,\n handledBrandPartnerFilterEvents: func,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { useHistory } from 'react-router-dom';\nimport { bool, func, shape, string } from 'prop-types';\n\n// local file imports\nimport Theme from '../../../../theme/Theme';\nimport { TabletViewManager } from '../../../../theme/Global';\nimport {\n PATH_CUSTOMER_DETAILS,\n noGraphDataMessage,\n contributionColorSet,\n dspPacingTableHeader,\n dspPacingKeyTabOptions,\n dspPacingMetricsConstants,\n} from '../../../../constants';\nimport {\n PageLoader,\n Status,\n Table,\n WhiteCard,\n ToggleButton,\n NoData,\n BrandPartnerProfile,\n} from '../../../../common';\n\nconst DSPPacing = ({\n loader,\n currencySymbol,\n month,\n selectedOption,\n dspPacingData,\n handleSpendingOptions,\n}) => {\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const history = useHistory();\n const dspPacingAllData = dspPacingData?.dsp_pacing_all[0];\n const dspPacingTableData = dspPacingData?.dsp_pacing;\n\n const isBBEInternalUser = useSelector(\n (state) => state?.userState?.userInfo?.isInternalUser,\n );\n const isBBEInternalUserStatus = isBBEInternalUser ? 'internal' : 'external';\n\n const returnFormatedNumber = (value, type) => {\n const decimalDigits = 2;\n if (value) {\n return `${value < 0 ? '-' : ''}${\n type === 'currency' ? currencySymbol : ''\n }${value\n .toFixed(decimalDigits)\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}${\n type === 'percentage' ? '%' : ''\n }`;\n }\n return `${currencySymbol}0`;\n };\n\n // redirect to customer details view\n const redirectToCutomerDetailsView = (itemData) => {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n itemData?.customer_id,\n )}?tab=performance&nav=dspPerformance&access=${isBBEInternalUserStatus}`,\n 'dspPerformance',\n );\n };\n\n // display Brad Patner Profile\n const displayBrandPartnerProfile = (itemData) => {\n return (\n \n );\n };\n\n // display dsp pacing mobile view\n const renderDspPacingTabletView = (dspData) => {\n return (\n \n
    \n
    \n {dspData?.map((itemData) => (\n redirectToCutomerDetailsView(itemData)}\n >\n {displayBrandPartnerProfile(itemData)}\n
    \n
    \n
    \n
    PLANNED
    \n
    \n {returnFormatedNumber(\n itemData?.planned_spend_to_date,\n 'currency',\n )}\n
    \n
    \n
    \n
    ACTUAL
    \n
    \n {returnFormatedNumber(\n itemData?.actual_spend_to_date,\n 'currency',\n )}\n
    \n
    \n
    \n
    DIFFERENCE
    \n
    \n
    \n {returnFormatedNumber(\n Math.abs(itemData?.change_to_date),\n 'currency',\n )}\n
    \n
    \n
    \n\n
    \n
    REMAINING
    \n
    \n {returnFormatedNumber(\n itemData?.remaining_to_date,\n 'currency',\n )}\n
    \n
    \n
    \n
    CONTRIBUTION
    \n \n
    \n
    \n
    \n ))}\n
    \n
    \n
    \n );\n };\n\n // display dsp pacing table head\n const renderDspPacingTableHeader = () => {\n const tableHeader = dspPacingTableHeader?.slice();\n const spendLabel =\n selectedOption === 'overspending' ? 'OVERSPEND' : 'UNDERSPEND';\n const spendObj = {\n label: spendLabel,\n key: spendLabel,\n width: '15%',\n };\n\n tableHeader.splice(3, 0, spendObj);\n\n return (\n \n {tableHeader?.map((item) => {\n return (\n \n {item?.label}\n \n );\n })}\n \n );\n };\n\n // display dsp pacing table body\n const renderDspPacingTableData = (itemData) => {\n return (\n {\n redirectToCutomerDetailsView(itemData);\n }}\n >\n {displayBrandPartnerProfile(itemData)}\n \n {returnFormatedNumber(itemData?.planned_spend_to_date, 'currency')}\n \n \n {returnFormatedNumber(itemData?.actual_spend_to_date, 'currency')}\n \n \n
    \n {returnFormatedNumber(\n Math.abs(itemData?.change_to_date),\n 'currency',\n )}\n
    \n \n \n
    \n {returnFormatedNumber(itemData?.remaining_to_date, 'currency')}\n
    \n \n \n \n \n \n );\n };\n\n // display dsp pacing desktop view\n const renderDesktopDSPPacingData = (dspData) => {\n return (\n \n {renderDspPacingTableHeader()}\n {dspData ? (\n {dspData.map((item) => renderDspPacingTableData(item))}\n ) : (\n {noGraphDataMessage}\n )}\n
    \n );\n };\n\n // display underspending and overspending toggle buttons\n const renderDspPacingOptions = () => {\n return (\n \n
    \n
      \n {dspPacingKeyTabOptions?.map((item) => (\n
    • \n handleSpendingOptions(item?.id)}\n onChange={() => {}}\n />\n \n
    • \n ))}\n
    \n
    \n
    \n );\n };\n\n // display Dsp Pacing desktop and mobile view\n const displayDspPacingData = () => {\n return loader ? (\n \n ) : dspPacingTableData?.length > 0 ? (\n isDesktop ? (\n renderDesktopDSPPacingData(dspPacingTableData)\n ) : (\n renderDspPacingTabletView(dspPacingTableData)\n )\n ) : (\n {noGraphDataMessage}\n );\n };\n\n // display monthly budget pacing\n const displayMonthlyBudgetPacingHTML = () => {\n return (\n

    \n Monthly Budget Pacing ({month}):\n \n \n {dspPacingAllData?.dsp_pacing_flag_all === 1\n ? 'Overspending'\n : dspPacingAllData?.dsp_pacing_flag_all === -1\n ? 'Underspending'\n : 'N/A'}\n \n \n

    \n );\n };\n\n // display dsp pacing metrics data\n const renderDspPacingMetricsHTML = (pacingMetrics) => {\n const metricsName =\n pacingMetrics?.key === 'changeSpend'\n ? `${\n dspPacingAllData?.dsp_pacing_flag_all === 1\n ? 'Overspend'\n : 'Underspend'\n } to date`\n : pacingMetrics?.label;\n const metricsValue = dspPacingAllData?.[pacingMetrics?.metricsKey];\n const percentValue = dspPacingAllData?.[pacingMetrics?.metricsPercentKey];\n const type = pacingMetrics?.type;\n const rangeClass = pacingMetrics?.rangeClass;\n const showPercentValue = pacingMetrics?.showPercentValue;\n\n return (\n <>\n
    {metricsName}
    \n
    \n {loader ? (\n 'N/A'\n ) : metricsValue ? (\n <>\n {returnFormatedNumber(\n pacingMetrics?.key === 'remainingBudget'\n ? metricsValue\n : Math.abs(metricsValue),\n type,\n )}{' '}\n {showPercentValue\n ? percentValue === 0\n ? '(0%)'\n : percentValue\n ? `(${returnFormatedNumber(percentValue, 'percentage')})`\n : '(N/A)'\n : ''}\n \n ) : (\n 'N/A'\n )}\n
    \n \n );\n };\n\n // display dsp pacing metrics section\n const displayDspPacingMetricsSection = () => {\n return (\n
      \n
    • \n {renderDspPacingMetricsHTML(dspPacingMetricsConstants?.plannedSpend)}\n
    • \n
    • \n {renderDspPacingMetricsHTML(dspPacingMetricsConstants?.actualSpend)}\n
    • \n
    • \n {renderDspPacingMetricsHTML(dspPacingMetricsConstants?.changeSpend)}\n
    • \n
    • \n {renderDspPacingMetricsHTML(\n dspPacingMetricsConstants?.remainingBudget,\n )}\n
    • \n
    \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n \n
    \n
    \n

    DSP Pacing

    \n {displayMonthlyBudgetPacingHTML()}\n
    \n
    \n {renderDspPacingOptions()}\n
    \n
    \n
    \n {displayDspPacingMetricsSection()}\n
    \n
    \n
    \n {displayDspPacingData()}\n \n \n );\n};\n\nexport default DSPPacing;\n\nDSPPacing.defaultProps = {\n loader: false,\n currencySymbol: '$',\n handleSpendingOptions: () => {},\n selectedOption: 'overSpending',\n dspPacingData: {},\n};\n\nDSPPacing.propTypes = {\n loader: bool,\n currencySymbol: string,\n selectedOption: string,\n month: string.isRequired,\n dspPacingData: shape({}),\n handleSpendingOptions: func,\n};\n\nconst Wrapper = styled.div`\n .statusContainer {\n margin-top: 0px !important;\n padding: 5px 30px !important;\n }\n`;\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport _ from 'lodash';\nimport styled from 'styled-components';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\n// local file imports\nimport Theme from '../../../../theme/Theme';\nimport {\n PageLoader,\n Tabs,\n WhiteCard,\n CommonPagination,\n GrayMessageBar,\n NoData,\n} from '../../../../common';\nimport {\n dspTabOptions,\n noGraphDataMessage,\n metricsCurrency,\n CUSTOM,\n DSPPERFORMANCE,\n} from '../../../../constants';\n\nconst DSPKeyContributors = ({\n isApiCall,\n downloadReportLoader,\n count,\n pageNumber,\n currencySymbol,\n selectedTabMetrics,\n selectedDspDF,\n selectedDSPMatrics,\n selectedBrandPartner,\n contributionData,\n handlePageChange,\n handleOnMatricsTabChange,\n displayContributionTable,\n handleKeyContributorsDownloadReport,\n}) => {\n const dashboardDynamicError = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n // function - display dsp key contributor tabs\n const renderKeyContributionTabs = () => {\n let selectedTab = selectedTabMetrics;\n if (selectedDSPMatrics[selectedTabMetrics] === undefined) {\n const selctedArray = _.keys(selectedDSPMatrics);\n selectedTab = selctedArray?.[0];\n handleOnMatricsTabChange(selectedTab);\n }\n\n return (\n \n
      \n {_.keys(selectedDSPMatrics).map((item) => (\n handleOnMatricsTabChange(item)}\n role=\"presentation\"\n >\n {dspTabOptions[item]}\n \n ))}\n
    \n
    \n );\n };\n\n // display contribution data table\n const dispalyContributionDataTable = () => {\n let prefix = '';\n let suffix = '';\n let decimalDigits = 2;\n if (metricsCurrency[selectedTabMetrics]?.type === 'currency') {\n decimalDigits = 2;\n prefix = currencySymbol;\n suffix = '';\n }\n if (metricsCurrency[selectedTabMetrics]?.type === 'percentage') {\n decimalDigits = 2;\n prefix = '';\n suffix = '%';\n }\n if (metricsCurrency[selectedTabMetrics].type === 'nocurrency') {\n decimalDigits = 0;\n prefix = '';\n suffix = '';\n }\n const isGrayMetrics = selectedTabMetrics === 'dspSpend';\n\n return isApiCall ? (\n \n ) : (\n <>\n {displayContributionTable(\n contributionData,\n prefix,\n suffix,\n decimalDigits,\n isGrayMetrics,\n DSPPERFORMANCE,\n selectedBrandPartner?.value === 'all',\n )}\n {contributionData?.length >= 1 ? (\n \n ) : null}\n {!contributionData || contributionData?.length === 0 ? (\n {noGraphDataMessage}\n ) : null}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n \n
    \n
    \n

    Contributors

    \n
    \n
    \n {\n handleKeyContributorsDownloadReport();\n }}\n style={{ maxWidth: '150px' }}\n >\n {downloadReportLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n
    \n
    \n\n
    \n {dashboardDynamicError?.dsp_performance?.contribution ? (\n \n ) : null}\n
    \n
    \n {selectedDspDF.value === CUSTOM ? (\n \n Top contributors cannot be calculated when using custom dates.\n \n ) : (\n <>\n {renderKeyContributionTabs()}\n {dispalyContributionDataTable()}\n \n )}\n \n \n );\n};\n\nexport default DSPKeyContributors;\n\nDSPKeyContributors.defaultProps = {\n isApiCall: false,\n downloadReportLoader: false,\n count: 0,\n pageNumber: 1,\n currencySymbol: '$',\n selectedTabMetrics: 'dspImpression',\n selectedDspDF: {},\n selectedDSPMatrics: {},\n selectedBrandPartner: {},\n contributionData: [],\n handlePageChange: () => {},\n handleOnMatricsTabChange: () => {},\n displayContributionTable: () => {},\n handleKeyContributorsDownloadReport: () => {},\n};\n\nDSPKeyContributors.propTypes = {\n isApiCall: bool,\n downloadReportLoader: bool,\n count: number,\n pageNumber: number,\n currencySymbol: string,\n selectedTabMetrics: string,\n selectedBrandPartner: shape({}),\n selectedDSPMatrics: shape({}),\n selectedDspDF: shape({}),\n contributionData: arrayOf(shape({})),\n handlePageChange: func,\n handleOnMatricsTabChange: func,\n displayContributionTable: func,\n handleKeyContributorsDownloadReport: func,\n};\n\nconst Wrapper = styled.div`\n td {\n padding: 20px 10px 3px 0px !important;\n }\n .statusContainer {\n margin-top: 0px !important;\n }\n`;\n","/* ********** Third party package imports ********** */\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\n/* ********** Declaring prop types ********** */\nexport const DspDashboardContainerDefaultProps = {\n // string\n responseID: null,\n currencySymbol: '',\n // boolean\n isBGS: false,\n isBGSAdmin: false,\n isSpreetailRole: false,\n isBGSManager: false,\n isAdManager: false,\n isAdTeamManager: false,\n isAdManagerAdmin: false,\n isCustomDateApply: false,\n includeInactiveBPs: false,\n includeSpreetailBrands: false,\n // object\n // data: {},\n userInfo: {},\n customDate: {},\n selectedDspDF: {},\n // array\n adState: [],\n loggedInUser: [],\n marketplaceChoices: [],\n // function\n setAdState: () => {},\n setCustomDate: () => {},\n setResponseID: () => {},\n bindUserListData: () => {},\n checkIsUserExist: () => {},\n setSelectedDspDF: () => {},\n setCurrencySymbol: () => {},\n bindBrandPartners: () => {},\n setIsCustomDateApply: () => {},\n generateStringOfValues: () => {},\n displayContributionTable: () => {},\n bindMetricsContributionData: () => {},\n renderRecentAndPreviousLabel: () => {},\n handleMultiSelectDropdownFilterEvents: () => {},\n};\n\nexport const DspDashboardContainerPropTypes = {\n // string\n responseID: string,\n currencySymbol: string,\n // boolean\n isBGS: bool,\n isBGSAdmin: bool,\n isBGSManager: bool,\n isAdManager: bool,\n isSpreetailRole: bool,\n isAdTeamManager: bool,\n isAdManagerAdmin: bool,\n isCustomDateApply: bool,\n includeInactiveBPs: bool,\n includeSpreetailBrands: bool,\n // object\n userInfo: shape({}),\n customDate: shape({}),\n selectedDspDF: shape({}),\n // array\n adState: arrayOf(shape({})),\n loggedInUser: arrayOf(shape({})),\n marketplaceChoices: arrayOf(shape({})),\n // function\n setAdState: func,\n setCustomDate: func,\n setResponseID: func,\n setSelectedDspDF: func,\n checkIsUserExist: func,\n bindUserListData: func,\n bindBrandPartners: func,\n setCurrencySymbol: func,\n setIsCustomDateApply: func,\n generateStringOfValues: func,\n displayContributionTable: func,\n bindMetricsContributionData: func,\n renderRecentAndPreviousLabel: func,\n handleMultiSelectDropdownFilterEvents: func,\n};\n\nexport const DspRightHandSideSectionDefaultProps = {\n // number\n pageNumber: 0,\n contributionCount: 0,\n // boolean\n isCustomDateApply: false,\n dspGraphLoader: false,\n dspPacingLoader: false,\n downloadReportLoader: false,\n keyContributionLoader: false,\n showAdCustomDateModal: false,\n // string\n currencySymbol: '',\n dspGroupBy: '',\n selectedTabMetrics: 'dspImpressions',\n selectedSpendingOption: 'overspending',\n // object\n dspPacingData: {},\n selectedDspDF: {},\n customDateError: {},\n dspCurrentTotal: {},\n dspPreviousTotal: {},\n dspDifferenceData: {},\n selectedDspMetrics: {},\n selectedBrandPartner: {},\n // array\n dspChartData: [],\n contributionData: [],\n dspCustomDateState: [],\n // function\n applyCustomDate: () => {},\n handleDSPGroupBy: () => {},\n handlePageChange: () => {},\n handleDspDailyFact: () => {},\n handleSpendingOptions: () => {},\n setDspCustomDateState: () => {},\n setSelectedDspMetrics: () => {},\n setShowAdCustomDateModal: () => {},\n handleOnMatricsTabChange: () => {},\n displayContributionTable: () => {},\n renderRecentAndPreviousLabel: () => {},\n handleKeyContributorsDownloadReport: () => {},\n};\n\nexport const DspRightHandSideSectionPropTypes = {\n // number\n pageNumber: number,\n contributionCount: number,\n // boolean\n isCustomDateApply: bool,\n dspGraphLoader: bool,\n dspPacingLoader: bool,\n downloadReportLoader: bool,\n keyContributionLoader: bool,\n showAdCustomDateModal: bool,\n // string\n currencySymbol: string,\n dspGroupBy: string,\n selectedTabMetrics: string,\n selectedSpendingOption: string,\n // object\n dspPacingData: shape({}),\n selectedDspDF: shape({}),\n customDateError: shape({}),\n dspCurrentTotal: shape({}),\n dspPreviousTotal: shape({}),\n dspDifferenceData: shape({}),\n selectedDspMetrics: shape({}),\n selectedBrandPartner: shape({}),\n // array\n dspChartData: arrayOf(shape({})),\n contributionData: arrayOf(shape({})),\n dspCustomDateState: arrayOf(shape({})),\n // function\n applyCustomDate: func,\n handleDSPGroupBy: func,\n handlePageChange: func,\n handleDspDailyFact: func,\n handleSpendingOptions: func,\n setDspCustomDateState: func,\n setSelectedDspMetrics: func,\n setShowAdCustomDateModal: func,\n handleOnMatricsTabChange: func,\n displayContributionTable: func,\n renderRecentAndPreviousLabel: func,\n handleKeyContributorsDownloadReport: func,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport _ from 'lodash';\nimport dayjs from 'dayjs';\nimport { useSelector } from 'react-redux';\nimport { components } from 'react-select';\nimport { useMediaQuery } from 'react-responsive';\n\n// local file imports\nimport Theme from '../../../../theme/Theme';\nimport DspMetrics from './DspMetrics';\nimport DSPPacing from './DspPacing';\nimport DSPKeyContributors from './DspKeyContributors';\nimport DspPerformanceChart from '../../../Customer/CustomerDetailView/CompanyPerformance/DspAdPerformance/DspAdvertising/DspPerformanceChart';\nimport {\n CustomDateModal,\n DailyWeeklyMonthlyToggle,\n DropdownIndicator,\n DropdownOptions,\n GrayMessageBar,\n NoData,\n PageLoader,\n SingleSelectDropdown,\n WhiteCard,\n} from '../../../../common';\nimport {\n CUSTOM,\n dailyWeeklyMonthlyOptions,\n dateOptions,\n noGraphDataMessage,\n performanceInsightMessage,\n} from '../../../../constants';\nimport {\n DspRightHandSideSectionDefaultProps,\n DspRightHandSideSectionPropTypes,\n} from './DspPropTypes';\n\nfunction DspRightHandSideSection({\n // number\n pageNumber,\n contributionCount,\n // boolean\n isCustomDateApply,\n dspGraphLoader,\n dspPacingLoader,\n downloadReportLoader,\n keyContributionLoader,\n showAdCustomDateModal,\n // string\n currencySymbol,\n dspGroupBy,\n selectedTabMetrics,\n selectedSpendingOption,\n // object\n selectedDspDF,\n customDateError,\n selectedDspMetrics,\n selectedBrandPartner,\n // array\n dspPacingData,\n dspChartData,\n dspCurrentTotal,\n dspPreviousTotal,\n dspDifferenceData,\n contributionData,\n dspCustomDateState,\n // function\n applyCustomDate,\n handleDSPGroupBy,\n handlePageChange,\n handleDspDailyFact,\n handleSpendingOptions,\n setDspCustomDateState,\n setSelectedDspMetrics,\n setShowAdCustomDateModal,\n handleOnMatricsTabChange,\n displayContributionTable,\n renderRecentAndPreviousLabel,\n handleKeyContributorsDownloadReport,\n}) {\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const { SingleValue } = components;\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() - 1);\n const month = dayjs(currentDate).format('MMMM');\n const dashboardDynamicError = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n\n const renderCustomDateSubLabel = (data) => {\n if (selectedDspDF.value === CUSTOM && isCustomDateApply) {\n return `From- ${dayjs(dspCustomDateState[0]?.startDate).format(\n 'MMM D, YYYY',\n )} To- ${dayjs(dspCustomDateState[0]?.endDate).format('MMM D, YYYY')}`;\n }\n return data.sub;\n };\n\n // react select dropdown components - selected option\n const singleFilterOption = ({ data, ...props }) => {\n return (\n \n {data?.label}\n
    {renderCustomDateSubLabel(data)}
    \n
    \n );\n };\n\n // get react select components\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n // display dsp timeframe dropdwon filter\n const displayDspTimeFrameFilter = () => {\n return (\n
    \n \n
    \n );\n };\n\n // function - dsp time frame filter\n const renderDspDailyFact = () => {\n return (\n
    \n
    \n

    DSP Ad Performance

    \n
    \n
    \n {displayDspTimeFrameFilter()}\n
    \n
    \n {dashboardDynamicError?.dsp_performance?.placeholder ? (\n \n ) : null}\n
    \n
    \n );\n };\n\n // function - display dsp error message\n const renderErrorMessage = () => {\n let { fromDate } = customDateError;\n let { toDate } = customDateError;\n\n fromDate = dayjs(fromDate).format('MM/DD/YYYY');\n toDate = dayjs(toDate).subtract(1, 'day').format('MM/DD/YYYY');\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n
    \n );\n };\n\n // function handle box toggle events\n const setBoxToggle = (name) => {\n if (\n Object.prototype.hasOwnProperty.call(selectedDspMetrics, name) &&\n _.size(selectedDspMetrics) > 1\n ) {\n setSelectedDspMetrics(_.omit(selectedDspMetrics, [name]));\n } else if (_.size(selectedDspMetrics) < 4) {\n setSelectedDspMetrics(\n _.omit(_.assign(selectedDspMetrics, { [name]: true })),\n );\n }\n };\n\n // function - set box toggle classes\n const setBoxClasses = (name, classValue) => {\n let selectedClass = '';\n if (Object.prototype.hasOwnProperty.call(selectedDspMetrics, name)) {\n selectedClass = `order-chart-box ${classValue} fix-height`;\n } else if (_.size(selectedDspMetrics) === 4) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n return selectedClass;\n };\n\n // render dsp metrics section\n const renderDspMetricsSection = () => {\n return (\n \n );\n };\n\n // render dsp group by section\n const renderDspGroupBysection = () => {\n return (\n
    \n {_.size(selectedDspMetrics) <= 2 ? (\n
    \n {renderRecentAndPreviousLabel(\n selectedDspMetrics,\n selectedDspDF?.value,\n )}\n
    \n ) : (\n
    \n )}\n
    \n \n
    \n
    \n );\n };\n\n // render dsp sales performance graph\n const renderDspSalesPerformanceGraph = () => {\n return dspGraphLoader ? (\n \n ) : dspChartData?.length ? (\n \n ) : (\n {noGraphDataMessage}\n );\n };\n\n // render dsp contribution section\n const renderDspContributionSection = () => {\n return (\n \n );\n };\n\n // render dsp pacing section\n const renderDspPacingSection = () => {\n return (\n \n );\n };\n\n // display dsp dashboard section\n const displayDspDashboardSection = () => {\n return (\n <>\n \n {renderDspDailyFact()}\n {selectedDspDF.value !== CUSTOM ? (\n \n ) : null}\n {selectedDspDF.value === CUSTOM && customDateError !== null\n ? renderErrorMessage()\n : null}\n {renderDspMetricsSection()}\n {renderDspGroupBysection()}\n {renderDspSalesPerformanceGraph()}\n \n {renderDspContributionSection()}\n {renderDspPacingSection()}\n \n );\n };\n\n // render dsp modals\n const renderDspModals = () => {\n return (\n {\n setShowAdCustomDateModal(false);\n if (selectedDspDF.value !== CUSTOM) {\n setDspCustomDateState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'adSelection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setDspCustomDateState([item.adSelection]);\n }}\n onApply={() => applyCustomDate()}\n currentDate={currentDate}\n minDate={new Date('01/01/2019')}\n />\n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {displayDspDashboardSection()}\n {renderDspModals()}\n
    \n );\n}\n\nexport default DspRightHandSideSection;\n/* ********** Declaring prop types ********** */\nDspRightHandSideSection.defaultProps = DspRightHandSideSectionDefaultProps;\nDspRightHandSideSection.propTypes = DspRightHandSideSectionPropTypes;\n","// react imports\nimport { useEffect, useState } from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\n\nlet tempData = [];\nconst useBindDSPResponseData = (response) => {\n const [dspCurrentTotal, setDspCurrentTotal] = useState({});\n const [dspPreviousTotal, setDspPreviousTotal] = useState({});\n const [dspDifference, setDspDifference] = useState({});\n\n // filterout previous data in one temporary object.\n useEffect(() => {\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.report_date)\n : response?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n setDspCurrentTotal({});\n setDspPreviousTotal({});\n setDspDifference({});\n if (response !== null) {\n if (response?.previous?.length) {\n response.previous.forEach((item, index) => {\n const previousDate = dayjs(item?.report_date).format('MMM D YYYY');\n tempData.push({\n dspImpressionsPrevious: item?.impressions,\n dspSpendPrevious: item?.dsp_spend,\n dspTotalProductSalesPrevious: item?.total_product_sales,\n dspTotalRoasPrevious: item?.total_roas,\n dspTotalDpvrPrevious: item?.total_dpvr,\n dspTtlNewBrandPurchasesPrevious: item?.ttl_new_brand_purchases,\n dspProductSalesPrevious: item?.product_sales,\n dspRoasPrevious: item?.roas,\n previousDate,\n previousEndDate: nextReportDate(\n index,\n response?.previous,\n 'previous',\n ),\n\n dspImpressionsPreviousLabel: item?.impressions\n ? item.impressions.toFixed(2)\n : '0.00',\n dspSpendPreviousLabel: item?.dsp_spend\n ? item.dsp_spend.toFixed(2)\n : '0.00',\n dspTotalProductSalesPreviousLabel: item?.total_product_sales\n ? item.total_product_sales.toFixed(2)\n : '0.00',\n dspTotalRoasPreviousLabel: item?.total_roas\n ? item.total_roas.toFixed(2)\n : '0',\n dspTotalDpvrPreviousLabel: item?.total_dpvr\n ? item.total_dpvr.toFixed(2)\n : '0.00',\n dspTtlNewBrandPurchasesPreviousLabel: item?.ttl_new_brand_purchases\n ? item.ttl_new_brand_purchases\n : '0',\n dspProductSalesPreviousLabel: item?.product_sales\n ? item.product_sales.toFixed(2)\n : '0.00',\n dspRoasPreviousLabel: item?.roas ? item.roas.toFixed(2) : '0.00',\n });\n });\n }\n\n // filterout current data in one temporary object.\n if (response?.current?.length) {\n response.current.forEach((item, index) => {\n const currentReportDate = dayjs(item?.report_date).format(\n 'MMM D YYYY',\n );\n // add the current data at same index of prevoius in temporary object\n if (index < response?.previous?.length) {\n tempData[index].date = currentReportDate;\n tempData[index].dspImpressionsCurrent = item?.impressions;\n tempData[index].dspSpendCurrent = item?.dsp_spend;\n tempData[index].dspTotalProductSalesCurrent =\n item.total_product_sales;\n tempData[index].dspTotalRoasCurrent = item?.total_roas;\n tempData[index].dspTotalDpvrCurrent = item?.total_dpvr;\n tempData[index].dspTtlNewBrandPurchasesCurrent =\n item.ttl_new_brand_purchases;\n tempData[index].dspProductSalesCurrent = item?.product_sales;\n tempData[index].dspRoasCurrent = item?.roas;\n tempData[index].endDate = nextReportDate(\n index,\n response?.current,\n 'current',\n );\n\n tempData[index].dspImpressionsCurrentLabel = item?.impressions\n ? item.impressions.toFixed(2)\n : '0.00';\n tempData[index].dspSpendCurrentLabel = item?.dsp_spend\n ? item.dsp_spend.toFixed(2)\n : '0.00';\n tempData[index].dspTotalProductSalesCurrentLabel =\n item?.total_product_sales\n ? item.total_product_sales.toFixed(2)\n : '0.00';\n tempData[index].dspTotalRoasCurrentLabel = item?.total_roas\n ? item.total_roas.toFixed(2)\n : '0';\n tempData[index].dspTotalDpvrCurrentLabel = item?.total_dpvr\n ? item.total_dpvr.toFixed(2)\n : '0.00';\n tempData[index].dspTtlNewBrandPurchasesCurrentLabel =\n item?.ttl_new_brand_purchases\n ? item.ttl_new_brand_purchases.toFixed(2)\n : '0.00';\n tempData[index].dspProductSalesCurrentLabel = item?.product_sales\n ? item.product_sales\n : '0';\n tempData[index].dspRoasCurrentLabel = item?.roas\n ? item.roas.toFixed(2)\n : '0.00';\n } else {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previou value null and previous label 0\n tempData.push({\n dspImpressionsCurrent: item?.impressions,\n dspSpendCurrent: item?.dsp_spend,\n dspTotalProductSalesCurrent: item?.total_product_sales,\n dspTotalRoasCurrent: item?.total_roas,\n dspTotalDpvrCurrent: item?.total_dpvr,\n dspTtlNewBrandPurchasesCurrent: item?.ttl_new_brand_purchases,\n dspProductSalesCurrent: item?.product_sales,\n dspRoasCurrent: item?.roas,\n date: currentReportDate,\n endDate: nextReportDate(index, response?.current, 'current'),\n\n dspImpressionsPrevious: null,\n dspSpendPrevious: null,\n dspTotalProductSalesPrevious: null,\n dspTotalRoasPrevious: null,\n dspTotalDpvrPrevious: null,\n dspTtlNewBrandPurchasesPrevious: null,\n dspProductSalesPrevious: null,\n dspRoasPrevious: null,\n\n dspImpressionsCurrentLabel: item?.impressions\n ? item.impressions.toFixed(2)\n : '0.00',\n dspSpendCurrentLabel: item?.dsp_spend\n ? item.dsp_spend.toFixed(2)\n : '0.00',\n dspTotalProductSalesCurrentLabel: item?.total_product_sales\n ? item.total_product_sales.toFixed(2)\n : '0.00',\n dspTotalRoasCurrentLabel: item?.total_roas\n ? item.total_roas.toFixed(2)\n : '0',\n dspTotalDpvrCurrentLabel: item?.total_dpvr\n ? item.total_dpvr.toFixed(2)\n : '0.00',\n dspTtlNewBrandPurchasesCurrentLabel: item?.ttl_new_brand_purchases\n ? item.ttl_new_brand_purchases.toFixed(2)\n : '0.00',\n dspProductSalesCurrentLabel: item?.product_sales\n ? item.product_sales\n : '0',\n dspRoasCurrentLabel: item?.roas ? item.roas.toFixed(2) : '0.00',\n\n dspImpressionsPreviousLabel: '0.00',\n dspSpendPreviousLabel: '0.00',\n dspTotalProductSalesPreviousLabel: '0.00',\n dspTotalRoasPreviousLabel: '0',\n dspTotalDpvrPreviousLabel: '0.00',\n dspTtlNewBrandPurchasesPreviousLabel: '0.00',\n dspProductSalesPreviousLabel: '0',\n dspRoasPreviousLabel: '0.00',\n });\n }\n });\n }\n // filterout the dsp current total, previous total, and diffrence\n setDspCurrentTotal(response?.current_sum ? response?.current_sum : {});\n setDspPreviousTotal(response?.previous_sum ? response.previous_sum : {});\n setDspDifference(\n response?.difference_data ? response.difference_data : {},\n );\n } else {\n setDspCurrentTotal({});\n setDspPreviousTotal({});\n setDspDifference({});\n tempData = [];\n }\n }, [response]);\n return {\n dspChartData: tempData,\n dspCurrentTotal,\n dspPreviousTotal,\n dspDifference,\n };\n};\n\nexport default useBindDSPResponseData;\n","// react imports\nimport React, {\n useCallback,\n useEffect,\n useState,\n useRef,\n useMemo,\n} from 'react';\n\n// third party imports\nimport $ from 'jquery';\nimport dayjs from 'dayjs';\nimport getSymbolFromCurrency from 'currency-symbol-map';\nimport { toast } from 'react-toastify';\n\n// local file imports\nimport DspDashboardFilter from './DspDashboardFilter';\nimport DspRightHandSideSection from './DspRightHandSideSection';\nimport useBindDSPResponseData from '../../../../hooks/useBindDspData';\nimport {\n CUSTOM,\n YEAROVERYEAR,\n allBPObj,\n allValueObj,\n} from '../../../../constants';\nimport {\n DspDashboardContainerDefaultProps,\n DspDashboardContainerPropTypes,\n} from './DspPropTypes';\nimport {\n getAdManagerAdminGraphData,\n getDspPacingDahboardData,\n getKeyContributionData,\n getManagersList,\n getBgsUserList,\n getMinDateForDashboard,\n getLeadershipBrandPartners,\n getKeyContributorsdownloadReport,\n} from '../../../../api';\n\nconst currentDate = new Date();\ncurrentDate.setDate(currentDate.getDate() - 1);\n\nconst DspDashboardContainer = ({\n // string\n responseID,\n currencySymbol,\n // boolean\n isBGS,\n isBGSAdmin,\n isBGSManager,\n isAdManager,\n isSpreetailRole,\n isAdTeamManager,\n isAdManagerAdmin,\n isCustomDateApply,\n includeInactiveBPs,\n includeSpreetailBrands,\n // object\n userInfo,\n customDate,\n selectedDspDF,\n // array\n adState,\n loggedInUser,\n marketplaceChoices,\n // function\n setAdState,\n setResponseID,\n setCustomDate,\n setSelectedDspDF,\n bindBrandPartners,\n setCurrencySymbol,\n checkIsUserExist,\n bindUserListData,\n setIsCustomDateApply,\n generateStringOfValues,\n displayContributionTable,\n bindMetricsContributionData,\n renderRecentAndPreviousLabel,\n handleMultiSelectDropdownFilterEvents,\n}) => {\n const mounted = useRef(false);\n const [dspGraphLoader, setDspGraphLoader] = useState(false);\n const [keyContributionLoader, setKeyContributionLoader] = useState(false);\n const [showAdCustomDateModal, setShowAdCustomDateModal] = useState(false);\n const [dspPacingLoader, setDspPacingLoader] = useState(false);\n const [downloadReportLoader, setDownloadReportLoader] = useState(false);\n const [selectedBrandPartner, setSelectedBrandPartner] = useState(allBPObj);\n\n // useState - selected manager user is used for BGS Manager and Ad Team Manager\n const [selectedManagerUser, setSelectedManagerUser] = useState(\n isBGSManager || isAdTeamManager ? loggedInUser : allValueObj,\n );\n // useState - selected user is used for BGS and Ad Manager\n const [selectedUser, setSelectedUser] = useState(\n isBGS || isAdManager ? loggedInUser : allValueObj,\n );\n\n const [selectedMarketplace, setSelectedMarketplace] = useState({\n value: 'all',\n label: 'All Marketplaces',\n currency: 'USD',\n });\n\n // use state for bgs list, bgs manager list, ad manager list, ad team manager list,\n const [userList, setUserList] = useState([]);\n const [userApiList, setUserApiList] = useState([]);\n const [managerUserList, setManagerUserList] = useState([]);\n const [managerUserApiList, setManagerUserApiList] = useState([]);\n const [isUsersSelected, setIsUsersSelected] = useState(false);\n const [isManagerUsersSelected, setIsManagerUsersSelected] = useState(false);\n const [brandPartnerOptions, setBrandPartnerOptions] = useState([]);\n const [contributionData, setContributionData] = useState(null);\n const [tempDspChartData, setTempDSPChartData] = useState(null);\n const [dspPacingData, setDspPacingData] = useState(null);\n const [responseId, setResponseId] = useState(null);\n const [isManagerAPICalled, setIsManagerAPICalled] = useState(\n !(isAdManagerAdmin || isBGSAdmin || isSpreetailRole),\n );\n const [isBGSAPICalled, setIsBGSAPICalled] = useState(\n !(isBGSAdmin || isBGSManager || isSpreetailRole),\n );\n const [marketplaceOptions, setMarketplaceOptions] =\n useState(marketplaceChoices);\n const [pageNumber, setPageNumber] = useState();\n const [contributionCount, setContributionCount] = useState(null);\n const [dspGroupBy, setDSPGroupBy] = useState('daily');\n const [customDateError, setCustomDateError] = useState(null);\n const [selectedSpendingOption, setSelectedSpendingOption] =\n useState('overspending');\n const [selectedDspMetrics, setSelectedDspMetrics] = useState({\n dspImpressions: true,\n });\n const [selectedTabMetrics, setSelectedTabMetrics] =\n useState('dspImpressions');\n\n // all brand partner object\n const allBrandPartnerObj = {\n ...allBPObj,\n marketplaces: marketplaceChoices,\n };\n\n // default all value array of object\n const allObj = useMemo(() => {\n return allValueObj;\n }, []);\n\n // use effect for set marketplace options\n useEffect(() => {\n setMarketplaceOptions(marketplaceChoices);\n setSelectedMarketplace(marketplaceChoices?.[0]);\n }, [marketplaceChoices]);\n\n const { dspChartData, dspCurrentTotal, dspPreviousTotal, dspDifference } =\n useBindDSPResponseData(tempDspChartData);\n\n // get bp list\n const getLeadershipBrandPartnersList = useCallback(\n (callType, managersUser, bgsUser, selectedBp) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n getLeadershipBrandPartners(\n userInfo?.role,\n 'dsp_ad_performance',\n managerUserString,\n bgsUserString,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.length) {\n const bpList = bindBrandPartners(response?.data);\n\n setBrandPartnerOptions(bpList);\n const brandPartner =\n callType === 'useEffect' ? selectedBp : bpList?.[0];\n setSelectedBrandPartner(brandPartner);\n } else {\n setBrandPartnerOptions([]);\n setSelectedBrandPartner({});\n }\n });\n },\n [\n bindBrandPartners,\n generateStringOfValues,\n includeInactiveBPs,\n includeSpreetailBrands,\n setSelectedBrandPartner,\n userInfo,\n ],\n );\n\n // get user list - bgs and ad manager\n const getBgsList = useCallback(\n (role, managers, users, callType, selectedDailyFact) => {\n setDspGraphLoader(true);\n setKeyContributionLoader(selectedDailyFact !== CUSTOM);\n setDspPacingLoader(true);\n const managersString = generateStringOfValues(managers);\n\n let API = '';\n if (role === 'BGS') {\n API = getBgsUserList(role, managersString);\n }\n if (role === 'Ad Manager') {\n API = getManagersList(role, 'sales_performance', managersString);\n }\n\n API.then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const formatedApiData = bindUserListData(response?.data, role);\n setUserList(formatedApiData?.userListWithAll);\n setUserApiList(formatedApiData?.userList);\n\n const isUserExist = checkIsUserExist(\n formatedApiData?.userList,\n users,\n );\n\n if (callType !== 'bgsFilter') {\n if (\n isUserExist &&\n callType !== 'resetFilter' &&\n callType !== 'managerUserFilter'\n ) {\n setSelectedUser(users);\n } else {\n setSelectedUser(formatedApiData?.userListWithAll);\n }\n }\n\n setIsBGSAPICalled(true);\n } else {\n setUserList([]);\n setSelectedUser([]);\n setUserApiList([]);\n }\n }\n });\n },\n\n [\n bindUserListData,\n checkIsUserExist,\n generateStringOfValues,\n setSelectedUser,\n ],\n );\n\n // get manager user list - bgs manager and ad team manager\n const getManagerUserList = useCallback(\n (role, localManagerUsers, localUsers, callType, selectedDailyFact) => {\n setDspGraphLoader(true);\n setKeyContributionLoader(selectedDailyFact !== CUSTOM);\n setDspPacingLoader(true);\n\n let API = '';\n if (role === 'BGS Manager') {\n API = getBgsUserList(role);\n }\n if (role === 'Ad Team Manager') {\n API = getManagersList(role, 'sales_performance');\n }\n\n API.then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const formatedApiData = bindUserListData(response?.data);\n setManagerUserApiList(formatedApiData?.userList);\n setManagerUserList(formatedApiData?.userListWithAll);\n\n const isManagerUserExist = checkIsUserExist(\n formatedApiData?.userList,\n localManagerUsers,\n );\n let managerUser = null;\n\n if (\n (isBGSAdmin || isAdManagerAdmin || isSpreetailRole) &&\n isManagerUserExist &&\n callType !== 'resetFilter'\n ) {\n setSelectedManagerUser(localManagerUsers);\n managerUser = localManagerUsers;\n } else {\n setSelectedManagerUser(formatedApiData?.userListWithAll);\n managerUser =\n formatedApiData?.userList?.length > 1\n ? null\n : formatedApiData?.userList;\n }\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n managerUser,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n if (isAdManagerAdmin) {\n getBgsList(\n 'Ad Manager',\n managerUser,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n\n setIsManagerAPICalled(true);\n } else {\n setManagerUserApiList([]);\n setManagerUserList([]);\n setSelectedManagerUser([]);\n }\n }\n });\n },\n\n [\n bindUserListData,\n checkIsUserExist,\n getBgsList,\n isAdManagerAdmin,\n isBGSAdmin,\n isSpreetailRole,\n setSelectedManagerUser,\n ],\n );\n\n // calling bgs and advertising user api\n const callingBgsAndAdUserApi = useCallback(\n (callType, localManagerUsers, localUsers, selectedDailyFact) => {\n // advertising api\n if (isAdManagerAdmin) {\n getManagerUserList(\n 'Ad Team Manager',\n localManagerUsers,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n\n if (isAdTeamManager) {\n getBgsList(\n 'Ad Manager',\n loggedInUser,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n\n // bgs api\n if (isBGSAdmin || isSpreetailRole) {\n getManagerUserList(\n 'BGS Manager',\n localManagerUsers,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n\n if (isBGSManager) {\n getBgsList(\n 'BGS',\n loggedInUser,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n },\n [\n getBgsList,\n getManagerUserList,\n isAdManagerAdmin,\n isAdTeamManager,\n isBGSAdmin,\n isBGSManager,\n isSpreetailRole,\n loggedInUser,\n ],\n );\n\n // use effect for bgs and advertising team\n useEffect(() => {\n mounted.current = true;\n callingBgsAndAdUserApi(\n 'useEffect',\n selectedManagerUser,\n selectedUser,\n selectedDspDF?.value,\n );\n return () => {\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [callingBgsAndAdUserApi]);\n\n const getDSPData = useCallback(\n (\n selectedDailyFact,\n selectedGroupBy,\n brandPartner,\n marketplace,\n managersUser,\n bgsUser,\n startDate = null,\n endDate = null,\n inactiveBPs,\n spreetailBrands,\n ) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n setDspGraphLoader(true);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setTempDSPChartData(null);\n\n getAdManagerAdminGraphData(\n 'dsp-dashboard',\n null,\n selectedDailyFact,\n selectedGroupBy,\n brandPartner,\n marketplace,\n null,\n managerUserString,\n bgsUserString,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n inactiveBPs || includeInactiveBPs,\n spreetailBrands || includeSpreetailBrands,\n ).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n if (response?.data?.result) {\n setTempDSPChartData(response?.data?.result);\n } else {\n setTempDSPChartData(null);\n }\n setDspGraphLoader(false);\n } else {\n setTempDSPChartData(null);\n setDspGraphLoader(false);\n }\n }\n });\n },\n [\n generateStringOfValues,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n includeInactiveBPs,\n includeSpreetailBrands,\n ],\n );\n\n // callback function for get dsp contribution data\n const getContributionData = useCallback(\n (\n selectedDailyFact,\n brandPartner,\n marketplace,\n managersUser,\n bgsUser,\n selectedMatrics,\n startDate = null,\n endDate = null,\n page,\n inactiveBPs,\n spreetailBrands,\n ) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n setKeyContributionLoader(true);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setContributionData([]);\n\n getKeyContributionData(\n 'dsp_ad_performance',\n null,\n selectedDailyFact,\n brandPartner,\n marketplace,\n null,\n managerUserString,\n bgsUserString,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n selectedMatrics,\n startDate,\n endDate,\n page,\n inactiveBPs || includeInactiveBPs,\n spreetailBrands || includeSpreetailBrands,\n ).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const responseData =\n response?.data?.result || response?.data?.results;\n if (responseData) {\n const formatedData = bindMetricsContributionData(responseData);\n setContributionData(formatedData);\n setContributionCount(response?.data?.count);\n } else {\n setContributionData([]);\n setPageNumber(page);\n }\n setKeyContributionLoader(false);\n } else {\n setContributionData([]);\n setPageNumber(page);\n setKeyContributionLoader(false);\n }\n }\n });\n },\n [\n generateStringOfValues,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n includeInactiveBPs,\n includeSpreetailBrands,\n bindMetricsContributionData,\n ],\n );\n\n // get dsp pacing dashboard data\n const getDSPPacingData = useCallback(\n (\n brandPartner,\n marketplace,\n managersUser,\n bgsUser,\n spendingOption,\n inactiveBPs,\n spreetailBrands,\n ) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n setDspPacingLoader(true);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setDspPacingData(null);\n\n getDspPacingDahboardData(\n brandPartner,\n marketplace,\n managerUserString,\n bgsUserString,\n spendingOption,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n inactiveBPs || includeInactiveBPs,\n spreetailBrands || includeSpreetailBrands,\n ).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const result = response?.data?.result;\n const results = response?.data?.results;\n if (result) {\n setDspPacingData(result);\n } else if (results) {\n setDspPacingData(results);\n } else {\n setDspPacingData(null);\n }\n setDspPacingLoader(false);\n } else {\n setDspPacingData(null);\n setDspPacingLoader(false);\n }\n }\n });\n },\n\n [\n generateStringOfValues,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n includeInactiveBPs,\n includeSpreetailBrands,\n ],\n );\n\n // bind the error message if data not available for selecetd custom date\n // API to get the data available date for sales\n const getMinDateForSponsoredDashboard = useCallback(() => {\n const dates = [];\n const selectedUserString = generateStringOfValues(selectedUser);\n const selectedManagerUserString =\n generateStringOfValues(selectedManagerUser);\n\n getMinDateForDashboard(\n selectedMarketplace?.value,\n selectedManagerUserString,\n selectedUserString,\n null,\n 'dsp_dashboard',\n ).then((res) => {\n if (res?.status === 200) {\n if (res?.data?.result?.length) {\n dates.push(\n new Date(dayjs(adState[0]?.startDate).format('MM/DD/YYYY')),\n );\n dates.push(\n new Date(\n dayjs(res?.data?.result[0]?.dsp_performance_date).format(\n 'MM/DD/YYYY',\n ),\n ),\n );\n\n // if selected date is lower that data_availeble_date then we need to show the error message\n if (dates[0] < dates[1]) {\n setCustomDateError({\n fromDate: dates[0],\n toDate: dates[1],\n });\n } else {\n setCustomDateError(null);\n }\n }\n }\n });\n }, [\n adState,\n generateStringOfValues,\n selectedManagerUser,\n selectedMarketplace,\n selectedUser,\n ]);\n\n // get metrics, data, key contribution data, get brand partner and dsp pacing data\n // - called only at the begining.\n useEffect(() => {\n mounted.current = true;\n\n if (\n (responseId === null || responseID === 'response') &&\n isManagerAPICalled &&\n isBGSAPICalled\n ) {\n const startDate = customDate?.startDate;\n const endDate = customDate?.endDate;\n const dateType = customDate?.dateType;\n\n // get brand partners list\n getLeadershipBrandPartnersList(\n 'useEffect',\n isBGSManager || isAdTeamManager ? loggedInUser : allValueObj,\n isBGS || isAdManager ? loggedInUser : allValueObj,\n allBPObj,\n );\n\n getMinDateForSponsoredDashboard();\n\n if (dateType === CUSTOM) {\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n if (\n dateType === null &&\n selectedDspDF?.value !== 'year' &&\n selectedDspDF?.value !== YEAROVERYEAR\n ) {\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n null,\n null,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n getContributionData(\n selectedDspDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n pageNumber,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n getDSPPacingData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedSpendingOption,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n\n setResponseId('12345');\n setResponseID(null);\n }\n return () => {\n mounted.current = false;\n };\n }, [\n customDate,\n dspGroupBy,\n getContributionData,\n getDSPData,\n getDSPPacingData,\n getMinDateForSponsoredDashboard,\n includeInactiveBPs,\n includeSpreetailBrands,\n isAdManagerAdmin,\n isBGSAPICalled,\n isBGSAdmin,\n isSpreetailRole,\n isManagerAPICalled,\n pageNumber,\n responseID,\n responseId,\n selectedDspDF,\n selectedManagerUser,\n selectedMarketplace,\n selectedSpendingOption,\n selectedTabMetrics,\n selectedUser,\n setResponseID,\n selectedBrandPartner,\n getLeadershipBrandPartnersList,\n isBGSManager,\n isAdTeamManager,\n loggedInUser,\n isBGS,\n isAdManager,\n ]);\n\n // called only if the time frame is selected for \"year\" and \"year OverYear\"\n useEffect(() => {\n mounted.current = true;\n if (\n selectedDspDF?.value === 'year' ||\n selectedDspDF?.value === YEAROVERYEAR\n ) {\n setSelectedDspDF({\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n });\n getDSPData(\n 'week',\n dspGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n null,\n null,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n getContributionData(\n 'week',\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n pageNumber,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n return () => {\n mounted.current = false;\n };\n }, [\n dspGroupBy,\n getContributionData,\n getDSPData,\n includeInactiveBPs,\n includeSpreetailBrands,\n pageNumber,\n selectedBrandPartner.value,\n selectedDspDF,\n selectedManagerUser,\n selectedMarketplace,\n selectedTabMetrics,\n selectedUser,\n setSelectedDspDF,\n ]);\n\n // handle dsp custom date change events\n // This function take 6 params and handle the api calls for dsp performance data\n const DSPYearAndCustomDateFilter = (\n startDate,\n endDate,\n value,\n marketplace = selectedMarketplace?.value,\n managerUser,\n bgsUser,\n brandPartner,\n ) => {\n let sd = startDate;\n let ed = endDate;\n setDSPGroupBy('daily');\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n setCustomDate({\n startDate: sd,\n endDate: ed,\n dateType: value,\n });\n\n getDSPData(\n value,\n 'daily',\n brandPartner,\n marketplace,\n managerUser,\n bgsUser,\n sd,\n ed,\n );\n };\n\n // calling leadership BP and dashboard performance api when filter value changes\n const callingBPandDashboardAPI = (\n callType,\n managerUsers,\n users,\n selectedBp,\n ) => {\n let brandPartner = {};\n let marketplace = {};\n\n const managerUserString = generateStringOfValues(managerUsers);\n const userString = generateStringOfValues(users);\n\n getLeadershipBrandPartners(\n userInfo?.role,\n 'dsp_ad_performance',\n managerUserString,\n userString,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.length) {\n setPageNumber(1);\n\n const bpList = bindBrandPartners(response?.data);\n setBrandPartnerOptions(bpList);\n\n if (callType === 'bpFilter') {\n if (selectedBp?.value === 'all') {\n brandPartner = allBrandPartnerObj;\n } else {\n brandPartner = selectedBp;\n }\n } else if (bpList?.length === 1) {\n brandPartner = bpList?.[0];\n } else {\n brandPartner = allBrandPartnerObj;\n }\n\n marketplace = brandPartner?.marketplaces?.[0];\n setSelectedBrandPartner(brandPartner);\n setSelectedMarketplace(marketplace);\n setMarketplaceOptions(brandPartner?.marketplaces);\n setSelectedTabMetrics('dspImpressions');\n\n if (selectedDspDF?.value === CUSTOM) {\n DSPYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n marketplace?.value,\n managerUsers,\n users,\n brandPartner?.value,\n );\n } else {\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n brandPartner?.value,\n marketplace?.value,\n managerUsers,\n users,\n );\n getContributionData(\n selectedDspDF?.value,\n brandPartner?.value,\n marketplace?.value,\n managerUsers,\n users,\n selectedTabMetrics,\n null,\n null,\n 1,\n );\n }\n\n getDSPPacingData(\n brandPartner?.value,\n marketplace?.value,\n managerUsers,\n users,\n selectedSpendingOption,\n );\n } else {\n setDspGraphLoader(false);\n setKeyContributionLoader(false);\n setDspPacingLoader(false);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setBrandPartnerOptions([]);\n setSelectedBrandPartner({});\n setTempDSPChartData(null);\n setContributionData([]);\n setDspPacingData(null);\n }\n });\n };\n\n // handle marketplace filter events\n const handleMarketplace = (event) => {\n setSelectedMarketplace(event);\n setCurrencySymbol(getSymbolFromCurrency(event?.currency));\n if (selectedDspDF?.value === CUSTOM) {\n DSPYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner?.value,\n );\n } else {\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n );\n getContributionData(\n selectedDspDF?.value,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n getDSPPacingData(\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedSpendingOption,\n );\n };\n\n // handle brand partner reporting filter events\n const handledBrandPartnerFilterEvents = (event) => {\n // Handeling the states and API calls when user select specific Brand Partner\n if (event?.value !== selectedBrandPartner?.value) {\n setSelectedBrandPartner(event);\n\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n let assignedUser = [];\n let assignedMangerUser = [];\n\n if (event?.value === 'all') {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n const userApiListWithAll = [...userApiList];\n if (userApiListWithAll?.length) {\n userApiListWithAll.unshift(allObj?.[0]);\n }\n\n const managerUserApiListWithAll = [...managerUserApiList];\n if (managerUserApiListWithAll?.length)\n managerUserApiListWithAll.unshift(allObj?.[0]);\n\n assignedUser = selectedUser?.length ? selectedUser : userApiListWithAll;\n assignedMangerUser = selectedManagerUser?.length\n ? selectedManagerUser\n : managerUserApiListWithAll;\n\n if (selectedManagerUser?.length === 0)\n setManagerUserList(managerUserApiListWithAll);\n if (selectedUser?.length === 0) setUserList(userApiListWithAll);\n } else if (isBGSAdmin || isBGSManager || isBGS || isSpreetailRole) {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n assignedUser = event?.bgs !== null ? [event?.bgs] : [];\n assignedMangerUser =\n event?.bgsManager !== null ? [event?.bgsManager] : [];\n } else {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n assignedUser = event?.adManager !== null ? [event?.adManager] : [];\n assignedMangerUser =\n event?.adTeamManager !== null ? [event?.adTeamManager] : [];\n }\n\n // set assigned bgs manager/ad team manager, bgs/ad manager of selected BP to multi-select bgs manager/ad team manager, bgs/ad manager dropdown filter.\n setSelectedManagerUser(assignedMangerUser);\n setSelectedUser(assignedUser);\n\n // if selected brand partner do not have assigned bgs manager/ad team manager and bgs/ad manager then clear the multiselect manager user and user dropdown filter list\n\n if (assignedMangerUser?.length === 0) {\n setManagerUserList([]);\n } else {\n const managerUserApiListWithAll = [...managerUserApiList];\n managerUserApiListWithAll.unshift(allObj?.[0]);\n setManagerUserList(managerUserApiListWithAll);\n }\n if (assignedUser?.length === 0) setUserList([]);\n\n // if selected brand partner have assigned bgs manager/ad team manager and bgs/ad manager then get its the bgs/ad manager list\n if (assignedMangerUser?.length) {\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n assignedMangerUser,\n assignedUser,\n 'BPFilter',\n selectedDspDF?.value,\n );\n }\n\n if (isAdManagerAdmin) {\n getBgsList(\n 'Ad Manager',\n assignedMangerUser,\n assignedUser,\n 'BPFilter',\n selectedDspDF?.value,\n );\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI(\n 'bpFilter',\n assignedMangerUser?.length ? assignedMangerUser : allObj,\n assignedUser?.length ? assignedUser : allObj,\n event,\n );\n }\n };\n\n // handle bgs manager/ad team manager filter change events\n const handleManagerUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedManagerUser,\n managerUserApiList,\n );\n setSelectedManagerUser(selectedValues);\n setIsManagerUsersSelected(true);\n };\n\n // handle bgs manager/ad team manager on dropdwon menu close events\n const handleManagerUserOnMenuCloseEvents = () => {\n if (isManagerUsersSelected) {\n const managerUsers =\n selectedManagerUser?.length > 0 ? selectedManagerUser : managerUserList;\n setSelectedManagerUser(managerUsers);\n const isAllUser = managerUsers?.some((user) => user?.value === 'all');\n const users = allObj;\n\n if (isBGSAdmin || isSpreetailRole) {\n if (isAllUser) {\n getBgsList(\n 'BGS',\n null,\n users,\n 'managerUserFilter',\n selectedDspDF?.value,\n );\n } else {\n getBgsList(\n 'BGS',\n managerUsers,\n users,\n 'managerUserFilter',\n selectedDspDF?.value,\n );\n }\n }\n\n if (isAdManagerAdmin) {\n if (isAllUser) {\n getBgsList(\n 'Ad Manager',\n null,\n users,\n 'managerUserFilter',\n selectedDspDF?.value,\n );\n } else {\n getBgsList(\n 'Ad Manager',\n managerUsers,\n users,\n 'managerUserFilter',\n selectedDspDF?.value,\n );\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI(\n 'managerUsersFilter',\n isAllUser ? allObj : managerUsers,\n users,\n null,\n );\n }\n };\n\n // handle bgs/ad manager filter change events\n const handleUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedUser,\n userApiList,\n );\n\n setSelectedUser(selectedValues);\n setIsUsersSelected(true);\n };\n\n // handle bgs/ad manager on dropdwon menu close events\n const handleUserOnMenuCloseEvents = () => {\n if (isUsersSelected) {\n let managerUsers = selectedManagerUser;\n const users = selectedUser?.length > 0 ? selectedUser : userList;\n\n setSelectedUser(users);\n // When bgs manager and ad team manager filter set to all then Automatically set the bgs manager or ad team manager assigned to selected bgs or ad team manager\n\n if (\n (isBGSAdmin || isAdManagerAdmin || isSpreetailRole) &&\n selectedUser?.length === 1\n ) {\n const userExisted = userList?.find(\n (bgsUser) =>\n bgsUser?.value === selectedUser?.[0]?.value &&\n bgsUser?.managerUser !== null,\n );\n\n if (userExisted !== undefined) {\n const managerUserObject = {\n value: userExisted?.managerUser?.id,\n label: `${userExisted?.managerUser?.first_name} ${userExisted?.managerUser?.last_name}`,\n };\n managerUsers = [managerUserObject];\n setSelectedManagerUser([managerUserObject]);\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n managerUsers,\n users,\n 'bgsFilter',\n selectedDspDF?.value,\n );\n } else {\n getBgsList(\n 'Ad Manager',\n managerUsers,\n users,\n 'bgsFilter',\n selectedDspDF?.value,\n );\n }\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI('usersFilter', managerUsers, users, null);\n }\n };\n\n // download key contributors report\n const handleKeyContributorsDownloadReport = () => {\n setDownloadReportLoader(true);\n\n const userString = generateStringOfValues(selectedUser);\n const managerUserString = generateStringOfValues(selectedManagerUser);\n\n const startDate = dayjs(adState[0]).format('YYYY-MM-DD');\n const endDate = dayjs(adState[0]).format('YYYY-MM-DD');\n\n getKeyContributorsdownloadReport(\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n 'dsp_ad_performance',\n selectedDspDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedTabMetrics,\n managerUserString,\n userString,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n setDownloadReportLoader(false);\n } else {\n toast.error('Oops! Something went wrong...');\n setDownloadReportLoader(false);\n }\n });\n };\n\n // reset button events - reset all bgs and advertising user filter values to 'all'\n const handleResetFilter = () => {\n $('.checkboxes input:radio').filter(\"[value='all']\").prop('checked', true);\n\n setSelectedBrandPartner(allBPObj);\n setCurrencySymbol(getSymbolFromCurrency('USD'));\n setSelectedMarketplace(marketplaceChoices?.[0]);\n\n // set assigned bgs manager/ad team manager, bgs/ad manager of selected BP to multi-select bgs manager/ad team manager, bgs/ad manager dropdown filter.\n const managerUser = isBGSManager || isAdTeamManager ? loggedInUser : allObj;\n const localUser = isBGS || isAdManager ? loggedInUser : allObj;\n setSelectedUser(localUser);\n setSelectedManagerUser(managerUser);\n\n // calling Leadership-customer api\n getLeadershipBrandPartnersList(\n 'resetFilter',\n managerUser,\n localUser,\n allBrandPartnerObj,\n );\n\n // calling bgs and advertising user api\n callingBgsAndAdUserApi(\n 'resetFilter',\n managerUser,\n localUser,\n selectedDspDF?.value,\n );\n\n setCustomDateError(null);\n\n // send reset valeus to api\n if (selectedDspDF.value === CUSTOM) {\n DSPYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n 'all',\n managerUser,\n localUser,\n selectedBrandPartner?.value,\n );\n } else {\n getDSPData(\n selectedDspDF?.value,\n dspGroupBy,\n 'all',\n 'all',\n managerUser,\n localUser,\n );\n getContributionData(\n selectedDspDF?.value,\n 'all',\n 'all',\n managerUser,\n localUser,\n selectedTabMetrics,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n getDSPPacingData(\n 'all',\n 'all',\n managerUser,\n localUser,\n selectedSpendingOption,\n );\n };\n\n // function - handle time frame filter events\n const handleDspDailyFact = (event) => {\n const { value } = event;\n\n if (value !== CUSTOM) {\n setCustomDateError(null);\n setSelectedDspDF(event);\n setIsCustomDateApply(false);\n setAdState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'adSelection',\n },\n ]);\n setDSPGroupBy('daily');\n getDSPData(\n value,\n 'daily',\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n );\n getContributionData(\n value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n pageNumber,\n );\n } else if (value === CUSTOM) {\n setShowAdCustomDateModal(true);\n }\n };\n\n // function - apply custom date\n const applyCustomDate = () => {\n if (selectedDspDF?.value !== CUSTOM)\n setSelectedDspDF({\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n setIsCustomDateApply(true);\n DSPYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner?.value,\n );\n setCustomDateError(null);\n setShowAdCustomDateModal(false);\n };\n\n // function - handle dealy weekly and monthly toggle events\n const handleDSPGroupBy = (value) => {\n if (value !== dspGroupBy) {\n setDSPGroupBy(value);\n\n if (selectedDspDF?.value === CUSTOM) {\n const { startDate } = adState[0];\n const { endDate } = adState[0];\n let sd = startDate;\n let ed = endDate;\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n getDSPData(\n selectedDspDF?.value,\n value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n sd,\n ed,\n );\n } else {\n getDSPData(\n selectedDspDF?.value,\n value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n );\n }\n }\n };\n\n // function - handle on metrics tab change events\n const handleOnMatricsTabChange = (value) => {\n if (value !== selectedTabMetrics) {\n setSelectedTabMetrics(value);\n getContributionData(\n selectedDspDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n value,\n null,\n null,\n pageNumber,\n );\n }\n };\n\n // function - handle pagination events of key contributors\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getContributionData(\n selectedDspDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n currentPage,\n );\n };\n\n // function handle dsp spending toggle events\n const handleSpendingOptions = (type) => {\n if (type !== selectedSpendingOption) {\n setSelectedSpendingOption(type);\n getDSPPacingData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n type,\n );\n }\n };\n\n // display dsp filter section\n const displayDspFilterSection = () => {\n return (\n \n );\n };\n\n // display dsp right hand side section\n const displayDspRightHandSideSection = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n
    \n {displayDspFilterSection()}\n
    \n
    \n {displayDspRightHandSideSection()}\n
    \n
    \n );\n};\n\nexport default DspDashboardContainer;\n/* ********** Declaring prop types ********** */\nDspDashboardContainer.defaultProps = DspDashboardContainerDefaultProps;\nDspDashboardContainer.propTypes = DspDashboardContainerPropTypes;\n","import styled from 'styled-components';\n// import Theme from '../../../../theme/Theme';\n\nconst DashboardStyle = styled.div`\n .dashboard-header-filter {\n max-width: 540px;\n }\n\n @media only screen and (min-width: 768px) {\n .dashboard-header-filter {\n margin: 0 0 0 auto;\n }\n }\n`;\n\nexport default DashboardStyle;\n","/* ********** React imports ********** */\nimport React, { useState } from 'react';\n\n/* ********** Third party package imports ********** */\nimport { components } from 'react-select';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\n/* ********** Local component file imports ********** */\nimport { CaretUp } from '../../../../theme/images';\nimport {\n SELLER,\n SELLERSMALL,\n VENDOR,\n VENDORSMALL,\n} from '../../../../constants';\nimport {\n DropdownIndicator,\n MultiSelectSearchableDropdown,\n SingleSelectDropdown,\n WhiteCard,\n} from '../../../../common';\n\n/* ********** MAIN FUNCTION START HERE ********** */\nconst SalesFilter = ({\n // boolean\n isApiCall,\n isBGSAdmin,\n isBGSManager,\n isAdTeamManager,\n isSpreetailRole,\n isAdManagerAdmin,\n selectedBrandPartner,\n // objects\n selectedMarketplace,\n selectedAccountType,\n // array\n userList,\n selectedUser,\n managerUserList,\n marketplaceOptions,\n brandPartnerOptions,\n selectedManagerUser,\n // function\n setSelectedUser,\n handleResetFilter,\n handleMarketplace,\n setSelectedManagerUser,\n handleBgsUserFilterEvents,\n handleUserOnMenuCloseEvents,\n handleManagerUserFilterEvents,\n handleSellerVendorFilterEvents,\n handleBrandPartnerFilterEvents,\n handleManagerUserOnMenuCloseEvents,\n}) => {\n // media query\n const isDesktop = useMediaQuery({ minWidth: 992 });\n\n // components for dropdown\n const { Option, SingleValue } = components;\n\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n\n // condition for show manager dropdown filter\n const showManagerUserFilter =\n isBGSAdmin || isAdManagerAdmin || isSpreetailRole;\n\n // condition for show user dropdown filter\n const showUserDropdownfilter =\n isBGSManager ||\n isBGSAdmin ||\n isAdManagerAdmin ||\n isAdTeamManager ||\n isSpreetailRole;\n\n // https://bbe.atlassian.net/browse/PDV-8757 - leadership dashboard improvements\n // Declaring account type options\n const bpAccountType = selectedBrandPartner?.accountType;\n const accountTypeOptions = [\n {\n label: 'Seller Reporting',\n value: SELLERSMALL,\n isDisabled: bpAccountType === VENDOR,\n },\n {\n label: 'Vendor Reporting',\n value: VENDORSMALL,\n isDisabled: bpAccountType === SELLER,\n },\n ];\n\n // get SingleValue component for selected value from dropdown options\n const dropdownFilterSelectedValue = (props) => {\n return (\n \n {props?.data?.label}\n \n );\n };\n\n // get Option component for dropdown options\n const dropdownFilterOptions = (props) => {\n return (\n \n );\n };\n\n // configuring the dropdown select components\n const getDropdownSelectComponents = () => {\n return {\n Option: dropdownFilterOptions,\n SingleValue: dropdownFilterSelectedValue,\n DropdownIndicator,\n };\n };\n\n // generate html for single select dropdown filter\n const generateSingleSelectDropdownFilterHTML = (\n filterLabel,\n filterId,\n className,\n dropdownOptions,\n selectedValue,\n onChangeHandler,\n isSearchable,\n ) => {\n return (\n <>\n
    {filterLabel}
    \n
    \n \n
    \n \n );\n };\n\n // https://bbe.atlassian.net/browse/PDV-8757 - leadership dashboard improvements\n // display Brand Partner type dropdwon filter\n const displayBrandPartnerFilter = () => {\n return generateSingleSelectDropdownFilterHTML(\n 'Brand Partner',\n 'BT-SalesBrandPartnerTypeFilter',\n '',\n brandPartnerOptions,\n selectedBrandPartner,\n handleBrandPartnerFilterEvents,\n true,\n );\n };\n\n // render performance type dropdwon filter\n const displayAccountTypeFilter = () => {\n return generateSingleSelectDropdownFilterHTML(\n 'Performance',\n 'BT-SalesPerformanceTypeFilter',\n '',\n accountTypeOptions,\n selectedAccountType,\n handleSellerVendorFilterEvents,\n false,\n );\n };\n\n // render marketp[lace dropdown filter\n const displayMarketplaceFilter = () => {\n return generateSingleSelectDropdownFilterHTML(\n 'Marketplace',\n 'BT-SalesDashboardMarketplaceFilter',\n '',\n marketplaceOptions,\n selectedMarketplace,\n handleMarketplace,\n true,\n );\n };\n\n // render multi select dropdown for bgs and ad manager\n const renderUserDropdown = () => {\n return (\n <>\n
    \n {isBGSAdmin || isBGSManager || isSpreetailRole ? 'BGS' : 'Ad Manager'}\n
    \n\n
    \n option?.value !== 'all')}\n label=\"\"\n value=\"user\"\n multiSelectedValues={{ user: selectedUser }}\n setMultiSelectedValues={setSelectedUser}\n handleMultiSelectChange={handleBgsUserFilterEvents}\n handleOnMenuClose={handleUserOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable\n />\n
    \n \n );\n };\n\n // render multi select dropdown for bgs manager and ad team manager\n const renderManagerUserDropdown = () => {\n return (\n <>\n
    \n {isBGSAdmin || isSpreetailRole ? 'BGS Manager' : 'Ad Team Manager'}\n
    \n
    \n option?.value !== 'all',\n )}\n label=\"\"\n value=\"managerUser\"\n multiSelectedValues={{ managerUser: selectedManagerUser }}\n setMultiSelectedValues={setSelectedManagerUser}\n handleMultiSelectChange={handleManagerUserFilterEvents}\n handleOnMenuClose={handleManagerUserOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable\n />\n
    \n \n );\n };\n\n // desktop view of filters\n const displaySalesFiltersDesktopView = () => {\n return (\n \n
    \n
    \n
    Filters
    \n
    \n
    \n handleResetFilter()}\n className={`gray-normal-text m-0 cursor ${\n isApiCall ? 'disabled' : ''\n }`}\n >\n Reset filters\n

    \n
    \n
    {displayBrandPartnerFilter()}
    \n
    {displayAccountTypeFilter()}
    \n
    {displayMarketplaceFilter()}
    \n {showManagerUserFilter ? (\n
    \n {renderManagerUserDropdown(\n isBGSAdmin || isSpreetailRole\n ? 'BGS Manager'\n : 'Ad Team Manager',\n )}\n
    \n ) : null}\n {showUserDropdownfilter ? (\n
    {renderUserDropdown()}
    \n ) : null}\n
    \n
    \n );\n };\n\n // mobile and tablet view of filters\n const displaySalesFiltersMobileView = () => {\n return (\n setIsCollapseOpen(!isCollapseOpen)}\n className=\"mb-3 d-lg-none d-block\"\n >\n
    \n
    \n
    Filters
    \n
    \n
    \n handleResetFilter()}\n >\n Reset filters\n \n {\n e.stopPropagation();\n setIsCollapseOpen(!isCollapseOpen);\n }}\n >\n \n \n

    \n
    \n
    \n {isCollapseOpen ? (\n
    \n
    \n {displayBrandPartnerFilter()}\n
    \n
    \n {displayAccountTypeFilter()}\n
    \n
    \n {displayMarketplaceFilter()}\n
    \n {showManagerUserFilter ? (\n
    \n {renderManagerUserDropdown()}\n
    \n ) : null}\n\n {showUserDropdownfilter ? (\n
    \n {renderUserDropdown()}\n
    \n ) : null}\n
    \n ) : null}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n {isDesktop\n ? displaySalesFiltersDesktopView()\n : displaySalesFiltersMobileView()}\n \n );\n};\n\nexport default SalesFilter;\n/* ********** MAIN FUNCTION END HERE ********** */\n\n/* ********** Declaring prop types ********** */\nSalesFilter.defaultProps = {\n // boolean\n isApiCall: false,\n isDisabled: false,\n isBGSAdmin: false,\n isBGSManager: false,\n isSpreetailRole: false,\n isAdTeamManager: false,\n isAdManagerAdmin: false,\n // objects\n data: {},\n selectedAccountType: {},\n selectedMarketplace: {},\n selectedBrandPartner: {},\n // array\n userList: [],\n selectedUser: [],\n managerUserList: [],\n marketplaceOptions: [],\n selectedManagerUser: [],\n brandPartnerOptions: [],\n // function\n setSelectedUser: () => {},\n handleResetFilter: () => {},\n handleMarketplace: () => {},\n getSelectComponents: () => {},\n setSelectedManagerUser: () => {},\n handleBgsUserFilterEvents: () => {},\n handleUserOnMenuCloseEvents: () => {},\n handleManagerUserFilterEvents: () => {},\n handleSellerVendorFilterEvents: () => {},\n handleBrandPartnerFilterEvents: () => {},\n handleManagerUserOnMenuCloseEvents: () => {},\n};\n\nSalesFilter.propTypes = {\n // boolean\n isApiCall: bool,\n isDisabled: bool,\n isBGSAdmin: bool,\n isBGSManager: bool,\n isAdTeamManager: bool,\n isSpreetailRole: bool,\n isAdManagerAdmin: bool,\n // objects\n selectedAccountType: shape({}),\n selectedMarketplace: shape({}),\n selectedBrandPartner: shape({}),\n data: shape({ sub: string, label: string }),\n // array\n userList: arrayOf(shape({})),\n selectedUser: arrayOf(shape({})),\n managerUserList: arrayOf(shape({})),\n marketplaceOptions: arrayOf(shape({})),\n selectedManagerUser: arrayOf(shape({})),\n brandPartnerOptions: arrayOf(shape({})),\n // function\n setSelectedUser: func,\n handleResetFilter: func,\n handleMarketplace: func,\n getSelectComponents: func,\n setSelectedManagerUser: func,\n handleBgsUserFilterEvents: func,\n handleUserOnMenuCloseEvents: func,\n handleManagerUserFilterEvents: func,\n handleSellerVendorFilterEvents: func,\n handleBrandPartnerFilterEvents: func,\n handleManagerUserOnMenuCloseEvents: func,\n};\n","import React, { Fragment } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport styled from 'styled-components';\nimport Select, { components } from 'react-select';\nimport { bool, func, instanceOf, shape, string } from 'prop-types';\n\nimport Theme from '../../../../../theme/Theme';\nimport useFormatNumber from '../../../../../hooks/useFormatNumber';\nimport { ArrowDownIcon, ArrowUpIcon } from '../../../../../theme/images';\nimport {\n CardMetrics,\n CustomDropDown,\n DropdownIndicator,\n} from '../../../../../common';\nimport {\n adSpendMetricsSubTypesOptions,\n metricsResponseKey,\n metricsTootlNames,\n revenuMetricsSubTypes,\n revenuSubTypeKeys,\n showMetricsTooltipForSales,\n} from '../../../../../constants';\n\nconst _ = require('lodash');\n\nconst SalesSellerMetrics = ({\n currencySymbol,\n selectedSalesMetrics,\n setSelectedSalesMetrics,\n salesCurrentTotal,\n salesPreviousTotal,\n salesDifference,\n selectedRevenueType,\n setSelectedRevenueType,\n isMetricsDisabled,\n setIsDisabledTimeFrame,\n selectedRevenueDropDownOption,\n setSelectedRevenueDropDownOption,\n salesGraphLoader,\n selectedAdSpendDropDownOption,\n setSelectedAdSpendDropDownOption,\n selectedAdSpendType,\n setSelectedAdSpendType,\n}) => {\n const { Option, SingleValue } = components;\n\n const shortTileName = (tileName) => {\n let tileNameTemp = tileName;\n if (\n window.screen.width < 1920 &&\n window.screen.width > 779 &&\n tileName?.length > 8\n ) {\n tileNameTemp = `${tileName?.substring(0, 8)}...`;\n }\n return tileNameTemp;\n };\n\n const revenueSubtypeComponentFilterOption = (props) => (\n \n );\n\n const revenueSubtypeSingleFilterOption = (props) => (\n \n \n {props?.data?.label}\n \n \n );\n\n const revenueSubtypeComponent = () => {\n return {\n Option: revenueSubtypeComponentFilterOption,\n SingleValue: revenueSubtypeSingleFilterOption,\n DropdownIndicator,\n };\n };\n\n const setBoxClasses = (name, classValue) => {\n let selectedClass = '';\n if (Object.prototype.hasOwnProperty.call(selectedSalesMetrics, name)) {\n selectedClass = `order-chart-box ${classValue} fix-height`;\n } else if (\n _.size(selectedSalesMetrics) === 4 ||\n (isMetricsDisabled[name] &&\n ![\n 'revenueTotal',\n 'revenueOrganic',\n 'revenuePpc',\n 'revenueDsp',\n ].includes(name)) ||\n (['revenueTotal', 'revenueOrganic', 'revenuePpc', 'revenueDsp'].includes(\n name,\n ) &&\n isMetricsDisabled.revenueTotal &&\n isMetricsDisabled.revenueOrganic &&\n isMetricsDisabled.revenuePpc &&\n isMetricsDisabled.revenueDsp)\n ) {\n selectedClass = 'order-chart-box fix-height disabled';\n } else {\n selectedClass = 'order-chart-box fix-height';\n }\n return selectedClass;\n };\n\n const setBoxToggle = (name) => {\n const localMetrics = selectedSalesMetrics;\n if (\n Object.prototype.hasOwnProperty.call(selectedSalesMetrics, name) &&\n _.size(selectedSalesMetrics) > 1\n ) {\n setSelectedSalesMetrics(_.omit(selectedSalesMetrics, [name]));\n // enable the time frame filter when we don't have a disabled selected metrics.\n const commanElement = _.intersectionWith(\n _.keys(localMetrics),\n _.keys(_.pickBy(isMetricsDisabled)),\n _.isEqual,\n );\n\n if (commanElement.length === 1 && name === commanElement[0]) {\n setIsDisabledTimeFrame(false);\n }\n if (name === 'revenuePpc' || name === 'revenueDsp') {\n setSelectedRevenueDropDownOption({\n id: 1,\n label: 'Total',\n value: 'revenueTotal',\n });\n setSelectedRevenueType('revenueTotal');\n }\n } else if (_.size(selectedSalesMetrics) < 4) {\n setSelectedSalesMetrics(\n _.omit(_.assign(selectedSalesMetrics, { [name]: true })),\n );\n }\n };\n\n const onHandleRevenueSubType = (event) => {\n setSelectedRevenueDropDownOption(event);\n setSelectedRevenueType(event.value);\n\n let metrics = selectedSalesMetrics;\n metrics = _.omit(metrics, [selectedRevenueType]);\n metrics = _.assign(metrics, { [event.value]: true });\n setSelectedSalesMetrics(metrics);\n };\n\n const returnDisbaledClass = (current, previous) => {\n return !current && !previous ? 'disabled' : null;\n };\n\n const returnTooltipMessge = (key = '') => {\n return `No ${key === 'Tacos' ? 'TACOS' : key} available for this period.`;\n };\n\n // Ad spend code starts\n const onHandleAdSpendSubType = (event) => {\n setSelectedAdSpendDropDownOption(event);\n setSelectedAdSpendType(event.value);\n\n let metrics = selectedSalesMetrics;\n metrics = _.omit(metrics, [selectedAdSpendType]);\n metrics = _.assign(metrics, { [event.value]: true });\n setSelectedSalesMetrics(metrics);\n };\n // Ad spend code ends\n\n // display metrics box html\n const displayMetricsBoxHTML = (\n id,\n metricsName,\n metricsKey,\n metricsNameKey,\n classNameKey,\n currentValue,\n previousValue,\n differenceValue,\n prefix,\n suffix,\n formatNumber,\n ) => {\n return (\n \n setBoxToggle(metricsNameKey)}\n className={setBoxClasses(metricsNameKey, classNameKey)}\n >\n
    {metricsName}
    \n
    \n {currentValue === 0\n ? `${prefix}0${suffix}`\n : currentValue\n ? `${prefix}${formatNumber(currentValue, '')}${suffix}`\n : 'N/A'}\n
    \n
    \n vs{' '}\n {previousValue === 0\n ? `${prefix}0${suffix}`\n : previousValue\n ? `${prefix}${formatNumber(previousValue, '')}${suffix}`\n : 'N/A'}\n
    \n {differenceValue === 0 ? (\n
    0%
    \n ) : differenceValue ? (\n differenceValue > 0 ? (\n
    \n \"arrow-up\"\n {differenceValue}%\n
    \n ) : (\n
    \n \n {differenceValue.toString().replace('-', '')}%\n
    \n )\n ) : (\n
    N/A
    \n )}\n
    \n \n );\n };\n\n const renderSalesMetrics = (formatNumber) => {\n const currencySign = currencySymbol !== null ? currencySymbol : '';\n const name = selectedRevenueType;\n const responseKey = metricsResponseKey[selectedRevenueType];\n\n const adSpendName = selectedAdSpendType;\n const adSpendresponseKey = metricsResponseKey[selectedAdSpendType];\n const salesCurrentValue =\n salesCurrentTotal && salesCurrentTotal[responseKey];\n const salesPreviousValue =\n salesPreviousTotal && salesPreviousTotal[responseKey];\n const adSpendCurrentValue =\n salesCurrentTotal && salesCurrentTotal[adSpendresponseKey];\n const adSpendPreviousValue =\n salesPreviousTotal && salesPreviousTotal[adSpendresponseKey];\n\n return (\n
    \n \n
    \n \n setBoxToggle(name)}\n role=\"presentation\"\n className={`${setBoxClasses(\n name,\n 'ad-sales-active',\n )} ${returnDisbaledClass(\n salesCurrentValue,\n salesCurrentValue,\n )}`}\n >\n
    \n \n {shortTileName('Total Sales')}\n
    \n
    \n {\n e.stopPropagation();\n }}\n className=\"revenue-sub-type\"\n id=\"BT-SalesPerformanceTimeFrame\"\n inputColor={Theme.white}\n style={{\n marginTop: '-2px',\n }}\n >\n onHandleRevenueSubType(event)}\n isOptionDisabled={(option) => {\n return isMetricsDisabled[option.value];\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n
    \n
    \n
    \n {salesCurrentValue === 0\n ? `${currencySign}0`\n : salesCurrentValue\n ? formatNumber(salesCurrentValue, currencySign)\n : 'N/A'}\n
    \n
    \n vs{' '}\n {salesPreviousValue === 0\n ? `${currencySign}0`\n : salesPreviousValue\n ? formatNumber(salesPreviousValue, currencySign)\n : 'N/A'}\n
    \n {salesDifference && salesDifference[responseKey] ? (\n salesDifference[responseKey] >= 0 ? (\n
    \n \n {salesDifference[responseKey]}%\n
    \n ) : (\n
    \n \n {salesDifference[responseKey].toString().replace('-', '')}\n %\n
    \n )\n ) : (\n
    N/A
    \n )}\n
    \n \n \n
    \n\n {/* tacos start */}\n
    \n {displayMetricsBoxHTML(\n 'BT-sale-tacoscard',\n 'Tacos',\n 'tacos',\n 'tacos',\n 'sales-tacos-active',\n salesCurrentTotal?.tacos,\n salesPreviousTotal?.tacos,\n salesDifference?.tacos,\n '',\n '%',\n formatNumber,\n )}\n
    \n {/* tacos Ends */}\n
    \n {displayMetricsBoxHTML(\n 'BT-sale-trafficcard',\n 'Traffic',\n 'traffic',\n 'traffic',\n 'ad-conversion-active',\n salesCurrentTotal?.traffic,\n salesPreviousTotal?.traffic,\n salesDifference?.traffic,\n '',\n '',\n formatNumber,\n )}\n
    \n
    \n {displayMetricsBoxHTML(\n 'BT-sale-conversioncard',\n 'Conversion',\n 'conversion',\n 'conversion',\n 'impression-active',\n salesCurrentTotal?.conversion,\n salesPreviousTotal?.conversion,\n salesDifference?.conversion,\n '',\n '%',\n formatNumber,\n )}\n
    \n
    \n {displayMetricsBoxHTML(\n 'BT-sale-unitsoldcard',\n 'Unit Sold',\n 'units_sold',\n 'unitsSold',\n 'ad-spend-active',\n salesCurrentTotal?.units_sold,\n salesPreviousTotal?.units_sold,\n salesDifference?.units_sold,\n '',\n '',\n formatNumber,\n )}\n
    \n\n {/* ad spend start */}\n
    \n \n setBoxToggle(adSpendName)}\n role=\"presentation\"\n className={`${setBoxClasses(\n adSpendName,\n 'ad-spend-total-active',\n )} ${returnDisbaledClass(\n adSpendCurrentValue,\n adSpendCurrentValue,\n )}`}\n >\n
    \n \n {shortTileName('Total Ad Spend')}\n
    \n
    \n {\n e.stopPropagation();\n }}\n className=\"revenue-sub-type\"\n id=\"BT-SalesPerformanceTimeFrame\"\n inputColor={Theme.white}\n style={{\n marginTop: '-2px',\n }}\n >\n onHandleAdSpendSubType(event)}\n isOptionDisabled={(option) => {\n return isMetricsDisabled[option.value];\n }}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n />\n \n
    \n
    \n
    \n {adSpendCurrentValue === 0\n ? `${currencySign}0`\n : adSpendCurrentValue\n ? formatNumber(adSpendCurrentValue, currencySign)\n : 'N/A'}\n
    \n
    \n vs{' '}\n {adSpendPreviousValue === 0\n ? `${currencySign}0`\n : adSpendPreviousValue\n ? formatNumber(adSpendPreviousValue, currencySign)\n : 'N/A'}\n
    \n {salesDifference && salesDifference[adSpendresponseKey] ? (\n salesDifference[adSpendresponseKey] >= 0 ? (\n
    \n \n {salesDifference[adSpendresponseKey]}%\n
    \n ) : (\n
    \n \n {salesDifference[adSpendresponseKey]\n .toString()\n .replace('-', '')}\n %\n
    \n )\n ) : (\n
    N/A
    \n )}\n \n \n \n \n {/* ad spend ends */}\n \n \n );\n };\n\n return (\n <>\n {showMetricsTooltipForSales.map((key) => {\n let keyName = key;\n const revenueKeys = [\n 'revenue',\n 'revenue_ppc',\n 'revenue_dsp',\n 'revenue_organic',\n ];\n const adSpendKeys = [\n 'ad_spend_total',\n 'sponsored_ad_spend',\n 'dsp_spends',\n ];\n\n const keyNameOptions = key?.includes('revenue')\n ? revenueKeys\n : adSpendKeys;\n if (keyNameOptions.includes(key)) {\n keyName =\n revenuSubTypeKeys[\n key?.includes('revenue')\n ? selectedRevenueDropDownOption.value\n : selectedAdSpendDropDownOption.value\n ];\n }\n\n return (\n \n {!salesCurrentTotal[keyName] &&\n !salesPreviousTotal[keyName] &&\n !salesGraphLoader ? (\n \n ) : null}\n \n );\n })}\n {renderSalesMetrics(useFormatNumber)}\n \n );\n};\n\nexport default SalesSellerMetrics;\n\nSalesSellerMetrics.defaultProps = {\n salesGraphLoader: false,\n selectedRevenueType: '',\n currencySymbol: '',\n selectedAdSpendType: '',\n data: {},\n selectedSalesMetrics: {},\n isMetricsDisabled: {},\n salesCurrentTotal: {},\n salesPreviousTotal: {},\n salesDifference: {},\n selectedRevenueDropDownOption: {},\n setSelectedSalesMetrics: () => {},\n setSelectedRevenueType: () => {},\n setIsDisabledTimeFrame: () => {},\n setSelectedRevenueDropDownOption: () => {},\n selectedAdSpendDropDownOption: {},\n setSelectedAdSpendDropDownOption: () => {},\n setSelectedAdSpendType: () => {},\n};\n\nSalesSellerMetrics.propTypes = {\n salesGraphLoader: bool,\n currencySymbol: string,\n selectedRevenueType: string,\n selectedAdSpendType: string,\n isMetricsDisabled: shape({}),\n data: shape({}),\n selectedRevenueDropDownOption: shape({}),\n selectedSalesMetrics: instanceOf(Object),\n salesCurrentTotal: instanceOf(Object),\n salesPreviousTotal: instanceOf(Object),\n salesDifference: instanceOf(Object),\n setSelectedRevenueType: func,\n setSelectedSalesMetrics: func,\n setIsDisabledTimeFrame: func,\n setSelectedRevenueDropDownOption: func,\n selectedAdSpendDropDownOption: shape({}),\n setSelectedAdSpendDropDownOption: func,\n setSelectedAdSpendType: func,\n};\n\nconst CardMetricsOuter = styled.div`\n @media only screen and (min-width: 779px) {\n // Add Horizontal scroll\n display: inline-block;\n overflow: auto;\n overflow-y: hidden;\n white-space: nowrap;\n width: 100%;\n\n /* width */\n ::-webkit-scrollbar {\n width: none !important;\n height: 8px;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: #f1f1f1;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: #bfc3d2;\n border-radius: 10px;\n }\n\n /* Handle on hover */\n /* ::-webkit-scrollbar-thumb:hover {\n background: #555;\n } */\n\n .cardMetricsInner {\n display: inline-block;\n }\n }\n`;\n","/* ********** Third party package imports ********** */\nimport React from 'react';\n\n/* ********** Third party package imports ********** */\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { arrayOf, bool, func, string, shape } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n/* ********** Local component file imports ********** */\nimport Theme from '../../../../../theme/Theme';\nimport { Icon, TabletViewManager } from '../../../../../theme/Global';\nimport { CompanyDefaultUser } from '../../../../../theme/images';\nimport {\n Tabs,\n WhiteCard,\n PageLoader,\n NoData,\n DesktopTable,\n GrayMessageBar,\n} from '../../../../../common';\nimport {\n noGraphDataMessage,\n PATH_CUSTOMER_DETAILS,\n metricsCurrency,\n salesContributionTabOptions,\n salesGoalsTableHeader,\n SALEPERFORMANCE,\n CUSTOM,\n HYBRID,\n SELLER,\n SELLERSMALL,\n VENDORSMALL,\n OVERALLSALESGOALS,\n PPCADBUDGET,\n DSPADBUDGET,\n TACOS,\n REVSHARE,\n TRAFFIC,\n CONVERSION,\n} from '../../../../../constants';\n\n/* ********** MAIN FUNCTION START HERE ********** */\nconst SalesSellerContribution = ({\n // string\n currencySymbol,\n selectedTabMetrics,\n // boolean\n isDesktop,\n isApiCall,\n // object\n selectedSalesDF,\n selectedMarketplace,\n // array\n contributionData,\n goalsPerformanceData,\n // function\n displaySalesPagination,\n handleOnMetricsTabChange,\n displayContributionTable,\n dispalyContributionSectionHeader,\n}) => {\n const history = useHistory();\n\n const isBBEInternalUser = useSelector(\n (state) => state?.userState?.userInfo?.isInternalUser,\n );\n const isBBEInternalUserStatus = isBBEInternalUser ? 'internal' : 'external';\n\n // display loader during api calls\n const displayLoader = () => {\n return (\n \n );\n };\n\n // display react tooltip\n const displayReactTooltip = (id, place) => {\n return (\n \n );\n };\n\n // display info icon\n const displayInfoIcon = (tooltipId, tooltipInfo) => {\n return (\n \n \n {displayReactTooltip(tooltipId, 'top')}\n \n );\n };\n\n // redirect to customer details view\n const redirectToCutomerDetailsView = (itemData, key) => {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n key === 'goal' ? itemData?.customer_id : itemData?.id,\n )}?tab=performance${\n itemData?.customer_account_type\n ? `&sub=${\n itemData.customer_account_type === HYBRID ||\n itemData.customer_account_type === SELLER\n ? SELLERSMALL\n : VENDORSMALL\n }`\n : ''\n }&nav=salePerformance&access=${isBBEInternalUserStatus}`,\n SALEPERFORMANCE,\n );\n };\n\n // display company logo\n const displayCompanyLogo = (imageLink) => {\n return (\n \n );\n };\n\n // display BP name, logo, status\n const displayCustomerProfile = (itemData) => {\n return (\n
    \n {displayCompanyLogo(itemData?.document || null)}\n
    {itemData?.customer_name}
    \n
    {itemData?.customer_status}
    \n
    \n
    \n );\n };\n\n const displayFormattedValues = (value, sign) => {\n const decimalDigits = 2;\n if (value) {\n return `${sign === '$' ? '$' : ''}${value\n .toFixed(decimalDigits)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}${sign === '%' ? '%' : ''}`;\n }\n return `${sign === '$' ? '$' : ''}0${sign === '%' ? '%' : ''}`;\n };\n\n const isRevShareDataAvailable = () => {\n const currentDate = new Date().getUTCDate();\n if (currentDate >= 1 && currentDate <= 8) {\n return false;\n }\n return true;\n };\n\n // display metrics goals value with currency\n const displayGoalsCellValue = (goalsValue, matricValue, type) => {\n let diffPercentage = null;\n let label = '';\n let labelClassColor = 'grey';\n let diffArrowClass = '';\n let diffPercentageClassColor = '';\n\n if ((goalsValue === '' || goalsValue === 0) && type !== DSPADBUDGET) {\n label = 'No Forecast';\n labelClassColor = 'grey';\n }\n if (type === DSPADBUDGET) {\n if (goalsValue === 0) {\n label = 'N/A';\n labelClassColor = 'grey';\n }\n if (goalsValue === '') {\n label = 'No Forecast';\n labelClassColor = 'grey';\n }\n }\n\n if (goalsValue && matricValue) {\n const diff = (matricValue * 100) / goalsValue;\n diffPercentage = diff - 100;\n\n if (diffPercentage === 0) {\n labelClassColor = 'green';\n if (type === PPCADBUDGET || type === DSPADBUDGET) {\n label = 'On Target';\n } else {\n label = 'On Target';\n }\n } else if (diffPercentage > 0) {\n labelClassColor = 'green';\n diffArrowClass = 'fa-arrow-up';\n diffPercentageClassColor = 'green';\n if (type === PPCADBUDGET || type === DSPADBUDGET) {\n label = 'Over Spend';\n labelClassColor = 'red';\n diffPercentageClassColor = 'red';\n } else {\n label = 'On Target';\n }\n } else if (diffPercentage < 0) {\n diffArrowClass = 'fa-arrow-down';\n\n if (type === PPCADBUDGET || type === DSPADBUDGET) {\n label = 'Under Spend';\n labelClassColor = 'yellow';\n diffPercentageClassColor = 'yellow';\n } else {\n label = 'Under Target';\n labelClassColor = 'red';\n diffPercentageClassColor = 'red';\n }\n }\n }\n\n return (\n \n \n {label}{' '}\n \n {goalsValue === 0 || goalsValue === ''\n ? ''\n : displayFormattedValues(goalsValue, type === TACOS ? '%' : '$')}\n \n \n \n \n {(type === REVSHARE && !isRevShareDataAvailable()) ||\n (goalsValue === 0 && type === DSPADBUDGET)\n ? 'N/A'\n : matricValue === 0\n ? 'No Forecast'\n : displayFormattedValues(\n matricValue,\n type === TACOS ? '%' : '$',\n )}{' '}\n \n \n \n \n {diffPercentage === null\n ? 'N/A'\n : displayFormattedValues(diffPercentage, '%')}\n \n \n \n \n );\n };\n\n // display metrics no goals data massage\n const displayNoDataLabel = () => {\n return (\n \n \n No Forecast{' '}\n \n \n
    \n \n \n );\n };\n\n // display metrics and goals value\n const displayMetricsAndGoalsValue = (itemData, metricsKey) => {\n const metricsValue = itemData?.[metricsKey]?.metric_value;\n const goalsValue = itemData?.[metricsKey]?.goal_value;\n\n return !goalsValue && !metricsValue\n ? displayNoDataLabel()\n : displayGoalsCellValue(goalsValue, metricsValue, metricsKey);\n };\n\n // display sales metrics goals data\n const renderGoalsTableData = (itemData) => {\n return (\n redirectToCutomerDetailsView(itemData, 'goal')}\n >\n \n {displayCustomerProfile(itemData)}\n \n \n {displayMetricsAndGoalsValue(itemData, OVERALLSALESGOALS)}\n \n \n {displayMetricsAndGoalsValue(itemData, PPCADBUDGET)}\n \n \n {displayMetricsAndGoalsValue(itemData, DSPADBUDGET)}\n \n \n {displayMetricsAndGoalsValue(itemData, TACOS)}\n \n \n {displayMetricsAndGoalsValue(itemData, REVSHARE)}\n \n \n {displayMetricsAndGoalsValue(itemData, TRAFFIC)}\n \n \n {displayMetricsAndGoalsValue(itemData, CONVERSION)}\n \n \n );\n };\n\n // display goals desktop table\n const displayGoalsDesktopTable = () => {\n return (\n
    \n \n \n \n {salesGoalsTableHeader?.map((item) => {\n return (\n \n {item?.label}\n {item?.showTooltip\n ? displayInfoIcon(item?.tooltipId, item?.tooltipInfo)\n : null}\n \n );\n })}\n \n \n {goalsPerformanceData?.length >= 1 ? (\n <>\n \n {goalsPerformanceData?.map((item) =>\n renderGoalsTableData(item),\n )}\n \n \n ) : null}\n \n
    \n );\n };\n\n // display metrics label with goals value\n const displayMetricsLabelWithGoalsValue = (\n itemData,\n metricsKey,\n metricsLabel,\n ) => {\n const tooltipObject = salesGoalsTableHeader?.find(\n (item) =>\n item?.key === metricsKey &&\n item?.key !== 'customer_name' &&\n item?.showTooltip,\n );\n\n return (\n
    \n
    \n {metricsLabel}\n {tooltipObject\n ? displayInfoIcon(\n tooltipObject?.tooltipId,\n tooltipObject?.tooltipInfo,\n )\n : null}\n
    \n
    \n {displayMetricsAndGoalsValue(itemData, metricsKey)}\n
    \n
    \n );\n };\n\n // display goals mobile and tablet data\n const displayTabletGoalsView = () => {\n return (\n \n
    \n
    \n {goalsPerformanceData?.map((itemData) => (\n redirectToCutomerDetailsView(itemData, 'goal')}\n >\n {displayCustomerProfile(itemData)}\n
    \n
    \n {displayMetricsLabelWithGoalsValue(\n itemData,\n OVERALLSALESGOALS,\n 'Sales',\n )}\n\n {displayMetricsLabelWithGoalsValue(\n itemData,\n DSPADBUDGET,\n 'DSP AD SPEND',\n )}\n\n {displayMetricsLabelWithGoalsValue(\n itemData,\n PPCADBUDGET,\n 'PPC AD SPEND',\n )}\n\n {displayMetricsLabelWithGoalsValue(itemData, TACOS, 'TACOS')}\n\n {displayMetricsLabelWithGoalsValue(\n itemData,\n REVSHARE,\n 'REV SHARE',\n )}\n\n {displayMetricsLabelWithGoalsValue(\n itemData,\n TRAFFIC,\n 'TRAFFIC',\n )}\n\n {displayMetricsLabelWithGoalsValue(\n itemData,\n CONVERSION,\n 'CONVERSION',\n )}\n
    \n
    \n ))}\n
    \n
    \n
    \n );\n };\n\n // display goals table\n const displayGoalsTable = () => {\n const message =\n 'Performance to Forecast Dashboard only displays information on a monthly basis, for this reason comparison filter won’t impact this dashboard. Please select a specific month to visualize the data.';\n\n return isApiCall ? (\n displayLoader()\n ) : (\n
    \n \n {goalsPerformanceData?.length ? (\n isDesktop ? (\n displayGoalsDesktopTable()\n ) : (\n displayTabletGoalsView()\n )\n ) : (\n {noGraphDataMessage}\n )}\n
    \n );\n };\n\n // display contribution tabs\n const renderKeyContributionTabs = () => {\n const selectedTab = selectedTabMetrics;\n\n return (\n \n
      \n {salesContributionTabOptions?.map((item) => (\n handleOnMetricsTabChange(item?.value)}\n role=\"presentation\"\n >\n {item?.label}\n \n ))}\n
    \n
    \n );\n };\n\n // display seller contribution table\n const dispalySellerContributionTable = () => {\n let prefix = '';\n let suffix = '';\n let decimalDigits = 2;\n if (metricsCurrency[selectedTabMetrics]?.type === 'currency') {\n decimalDigits = 2;\n prefix = currencySymbol;\n suffix = '';\n }\n if (metricsCurrency[selectedTabMetrics]?.type === 'percentage') {\n decimalDigits = 2;\n prefix = '';\n suffix = '%';\n }\n if (metricsCurrency[selectedTabMetrics]?.type === 'nocurrency') {\n decimalDigits = 0;\n prefix = '';\n suffix = '';\n }\n\n return isApiCall ? (\n displayLoader()\n ) : (\n
    \n {contributionData?.length ? (\n displayContributionTable(\n contributionData,\n prefix,\n suffix,\n decimalDigits,\n false,\n SALEPERFORMANCE,\n )\n ) : (\n {noGraphDataMessage}\n )}\n
    \n );\n };\n\n const renderKeyContributors = () => {\n return (\n \n {dispalyContributionSectionHeader()}\n {selectedSalesDF?.value === CUSTOM ? (\n \n Top contributors cannot be calculated when using custom dates.\n \n ) : (\n <>\n {renderKeyContributionTabs()}\n {selectedTabMetrics === 'goals'\n ? displayGoalsTable()\n : dispalySellerContributionTable()}\n {displaySalesPagination()}\n \n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n {renderKeyContributors()}\n \n );\n};\n\nexport default SalesSellerContribution;\n/* ********** MAIN FUNCTION END HERE ********** */\n\n/* ********** Declaring prop types ********** */\nSalesSellerContribution.defaultProps = {\n isDesktop: false,\n isApiCall: false,\n\n currencySymbol: '',\n selectedTabMetrics: '',\n\n selectedSalesDF: {},\n selectedMarketplace: {},\n\n contributionData: [],\n goalsPerformanceData: [],\n\n displaySalesPagination: () => {},\n handleOnMetricsTabChange: () => {},\n displayContributionTable: () => {},\n dispalyContributionSectionHeader: () => {},\n};\n\nSalesSellerContribution.propTypes = {\n isDesktop: bool,\n isApiCall: bool,\n\n currencySymbol: string,\n selectedTabMetrics: string,\n\n selectedSalesDF: shape({}),\n selectedMarketplace: shape({}),\n\n contributionData: arrayOf(shape({})),\n goalsPerformanceData: arrayOf(shape({})),\n\n displaySalesPagination: func,\n handleOnMetricsTabChange: func,\n displayContributionTable: func,\n dispalyContributionSectionHeader: func,\n};\n\nconst Wrapper = styled.div`\n /* td {\n padding: 20px 10px 3px 0px !important;\n } */\n .statusContainer {\n margin-top: 0px !important;\n }\n`;\nconst GoalsPerformance = styled.div`\n max-width: 85%;\n text-align: center;\n`;\n\nconst GoalBubbles = styled.div`\n color: ${Theme.black};\n text-align: center;\n width: 100%;\n min-height: 24px;\n font-size: ${Theme.extraNormal};\n border-radius: 5px;\n padding: 4px;\n\n &.green {\n background: ${Theme.green};\n color: ${Theme.white};\n }\n &.grey {\n background: ${Theme.gray9};\n color: ${Theme.black};\n }\n &.red {\n background: ${Theme.darkRed};\n color: ${Theme.white};\n }\n &.yellow {\n background: ${Theme.yellow};\n color: ${Theme.white};\n }\n`;\n\nconst FontAwesomeIconStyle = styled(FontAwesomeIcon)`\n font-size: 12px;\n`;\n\nconst PercentValue = styled.span`\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.baseFontFamily};\n word-break: break-all;\n white-space: nowrap;\n\n &.green {\n color: ${Theme.lighterGreen};\n }\n &.red {\n color: ${Theme.red};\n }\n &.yellow {\n color: ${Theme.yellow};\n }\n`;\n\nconst GoalCount = styled.div`\n font-size: ${Theme.extraSmall};\n font-family: ${Theme.baseMediumFontFamily};\n color: ${Theme.black};\n text-align: center;\n margin-top: 4px;\n`;\n","/* ********** Third party package imports ********** */\nimport React from 'react';\n\n/* ********** Third party package imports ********** */\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\n/* ********** Local component file imports ********** */\nimport SalesSellerMetrics from './SalesSellerMetrics';\nimport SalesSellerContribution from './SalesSellerContribution';\nimport SalePerformanceChart from '../../../../Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/SellerReporting/SalePerformanceChart';\nimport { noGraphDataMessage } from '../../../../../constants';\nimport { NoData, PageLoader, WhiteCard } from '../../../../../common';\n\nconst _ = require('lodash');\n\n/* ********** MAIN FUNCTION START HERE ********** */\nfunction SalesSellerReporting({\n // string\n currencySymbol,\n salesGroupBy,\n selectedTabMetrics,\n selectedRevenueType,\n selectedAdSpendType,\n // boolean\n salesGraphLoader,\n contributionLoader,\n isDisabledTimeFrame,\n // object\n isMetricsDisabled,\n selectedSalesDF,\n salesDifference,\n salesCurrentTotal,\n salesPreviousTotal,\n selectedSalesMetrics,\n selectedMarketplace,\n selectedRevenueDropDownOption,\n selectedAdSpendDropDownOption,\n // array\n salesChartData,\n contributionData,\n goalsPerformanceData,\n // function\n addThousandComma,\n displaySalesPagination,\n setIsDisabledTimeFrame,\n setSelectedAdSpendType,\n setSelectedRevenueType,\n setSelectedSalesMetrics,\n handleOnMetricsTabChange,\n displayContributionTable,\n renderRecentAndPreviousLabel,\n displayPerformanceSectionHeader,\n setSelectedRevenueDropDownOption,\n setSelectedAdSpendDropDownOption,\n dispalyContributionSectionHeader,\n displayDailyWeeklyMonthlyToggleButton,\n}) {\n const isDesktop = useMediaQuery({ minWidth: 992 });\n\n // render sales metrics section\n const renderSalesMetrics = () => {\n return (\n \n );\n };\n\n // render daily, weekly, monthly filter\n const renderSalesGroupBy = () => {\n return (\n
    \n {_.size(selectedSalesMetrics) <= 2 ? (\n
    \n {renderRecentAndPreviousLabel(\n selectedSalesMetrics,\n selectedSalesDF,\n )}\n
    \n ) : (\n
    \n )}\n
    \n {displayDailyWeeklyMonthlyToggleButton()}\n
    \n
    \n );\n };\n\n // render sales performance graph section\n const renderSalesPerformanceGraph = () => {\n return salesGraphLoader ? (\n \n ) : salesChartData?.length >= 1 ? (\n \n ) : (\n {noGraphDataMessage}\n );\n };\n\n // render sales key contribution section\n const renderSalesKeyContribution = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n \n {displayPerformanceSectionHeader()}\n {renderSalesMetrics()}\n {renderSalesGroupBy()}\n {renderSalesPerformanceGraph()}\n \n {renderSalesKeyContribution()}\n
    \n );\n}\n\nexport default SalesSellerReporting;\n/* ********** MAIN FUNCTION END HERE ********** */\n\n/* ********** Declaring prop types ********** */\nSalesSellerReporting.defaultProps = {\n // string\n currencySymbol: '',\n salesGroupBy: '',\n selectedTabMetrics: '',\n selectedRevenueType: '',\n selectedAdSpendType: '',\n // boolean\n salesGraphLoader: false,\n contributionLoader: false,\n isDisabledTimeFrame: false,\n // object\n isMetricsDisabled: {},\n selectedSalesDF: {},\n salesDifference: {},\n salesCurrentTotal: {},\n salesPreviousTotal: {},\n selectedMarketplace: {},\n selectedSalesMetrics: {},\n selectedRevenueDropDownOption: {},\n selectedAdSpendDropDownOption: {},\n // array\n salesChartData: [],\n contributionData: [],\n goalsPerformanceData: [],\n // function\n addThousandComma: () => {},\n displaySalesPagination: () => {},\n setIsDisabledTimeFrame: () => {},\n setSelectedAdSpendType: () => {},\n setSelectedRevenueType: () => {},\n setSelectedSalesMetrics: () => {},\n handleOnMetricsTabChange: () => {},\n displayContributionTable: () => {},\n renderRecentAndPreviousLabel: () => {},\n displayPerformanceSectionHeader: () => {},\n setSelectedRevenueDropDownOption: () => {},\n setSelectedAdSpendDropDownOption: () => {},\n dispalyContributionSectionHeader: () => {},\n displayDailyWeeklyMonthlyToggleButton: () => {},\n};\n\nSalesSellerReporting.propTypes = {\n // string\n currencySymbol: string,\n salesGroupBy: string,\n selectedTabMetrics: string,\n selectedRevenueType: string,\n selectedAdSpendType: string,\n // boolean\n salesGraphLoader: bool,\n contributionLoader: bool,\n isDisabledTimeFrame: bool,\n // object\n isMetricsDisabled: shape({}),\n selectedSalesDF: shape({}),\n salesDifference: shape({}),\n salesCurrentTotal: shape({}),\n salesPreviousTotal: shape({}),\n selectedSalesMetrics: shape({}),\n selectedMarketplace: shape({}),\n selectedRevenueDropDownOption: shape({}),\n selectedAdSpendDropDownOption: shape({}),\n // array\n salesChartData: arrayOf(shape({})),\n contributionData: arrayOf(shape({})),\n goalsPerformanceData: arrayOf(shape({})),\n // function\n addThousandComma: func,\n displaySalesPagination: func,\n setIsDisabledTimeFrame: func,\n setSelectedAdSpendType: func,\n setSelectedRevenueType: func,\n setSelectedSalesMetrics: func,\n handleOnMetricsTabChange: func,\n displayContributionTable: func,\n renderRecentAndPreviousLabel: func,\n displayPerformanceSectionHeader: func,\n setSelectedRevenueDropDownOption: func,\n setSelectedAdSpendDropDownOption: func,\n dispalyContributionSectionHeader: func,\n displayDailyWeeklyMonthlyToggleButton: func,\n};\n","/* ********** React imports ********** */\nimport React, { Fragment } from 'react';\n\n/* ********** Third party package imports ********** */\nimport ReactTooltip from 'react-tooltip';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\n/* ********** Local component file imports ********** */\nimport { CardMetrics, NoData, PageLoader } from '../../../../../common';\nimport { ArrowDownIcon, ArrowUpIcon } from '../../../../../theme/images';\nimport VendorSalePerformanceChart from '../../../../Customer/CustomerDetailView/CompanyPerformance/SalesPerformance/VendorReporting/VendorSalePerformanceChart';\nimport {\n metricsVendorSalesKey,\n noGraphDataMessage,\n showMetricsTooltipForVendorSales,\n VendorMetricsNames,\n vendorOrderedRevenueMetrics,\n vendorShippedCOGsMetrics,\n} from '../../../../../constants';\n\n/* ********** MAIN FUNCTION START HERE ********** */\nexport default function VendorSalesPerformance({\n // string\n currencySymbol,\n // boolean\n isApiCall,\n // object\n selectedSalesDF,\n vendorSalesDifference,\n vendorSalesCurrentTotal,\n vendorSalesPreviousTotal,\n selectedVendorMetrics,\n selectedVendorMetricsType,\n // array\n vendorSalesMetricsData,\n // function\n setSelectedVendorMetrics,\n renderRecentAndPreviousLabel,\n displayDailyWeeklyMonthlyToggleButton,\n}) {\n // display tooltip message for metrics\n const renderMetricsTooltipMessge = (key = '') => {\n return `No ${key} available for this period.`;\n };\n\n // render selected metrics box classname\n const renderSelectedMetricsBoxClass = (metricsName, metricsClass) => {\n let tempClass = '';\n const isMetricsSelected = Object.prototype.hasOwnProperty.call(\n selectedVendorMetrics,\n metricsName,\n );\n if (isMetricsSelected) {\n tempClass = `order-chart-box ${metricsClass} fix-height`;\n } else if (selectedVendorMetrics?.length === 4) {\n tempClass = 'order-chart-box fix-height disabled';\n } else {\n tempClass = 'order-chart-box fix-height';\n }\n return tempClass;\n };\n\n // render disabled class\n const renderDisbaledClass = (current, previous) => {\n return !current && !previous ? 'disabled' : null;\n };\n\n // handle metrixs box toggle events\n const handleMetricsBoxToggleEvents = (metricsName) => {\n const isMetricsSelected = Object.prototype.hasOwnProperty.call(\n selectedVendorMetrics,\n metricsName,\n );\n\n if (isMetricsSelected) {\n delete selectedVendorMetrics?.[metricsName];\n setSelectedVendorMetrics({ ...selectedVendorMetrics });\n } else {\n setSelectedVendorMetrics({\n ...selectedVendorMetrics,\n [metricsName]: true,\n });\n }\n };\n\n // display formated metrics value\n const displayMetricsValue = (metricsName, metricsValue, prefix, suffix) => {\n if (metricsValue === 0) {\n return `${prefix || ''}0${suffix || ''}`;\n }\n if (metricsValue) {\n const valueString =\n metricsName === 'orderedRevenue' ||\n metricsName === 'shippedCOGs' ||\n metricsName === 'conversionRate'\n ? metricsValue.toFixed(2)\n : metricsValue.toString();\n const [splitedValue, decimalValue] = valueString?.split('.');\n\n return (\n \n {prefix || ''}\n {splitedValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\n \n {decimalValue ? `.${decimalValue.slice(0, 2)}` : ''}\n \n {suffix || ''}\n \n );\n }\n return 'N/A';\n };\n\n // display metrics previous vale\n const displayMetricsPreviousValue = (\n previousValue,\n metricsName,\n prefix,\n suffix,\n ) => {\n const displayPreviousValue =\n previousValue === 0\n ? `${prefix || ''}0${suffix || ''}`\n : previousValue\n ? `${prefix || ''}${\n metricsName === 'conversionRate'\n ? previousValue.toFixed(2)\n : metricsName === 'orderedRevenue' ||\n metricsName === 'shippedCOGs'\n ? previousValue.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n : previousValue.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n }${suffix || ''}`\n : 'N/A';\n return displayPreviousValue;\n };\n\n // display metrics box\n const displayMetricsBox = (\n metricsName,\n className,\n metricsClass,\n prefix,\n suffix,\n ) => {\n const metricsKey = metricsVendorSalesKey?.[metricsName];\n const metricsKeyName = VendorMetricsNames?.[metricsName];\n const currentTotal = vendorSalesCurrentTotal?.[metricsKey];\n const previousTotal = vendorSalesPreviousTotal?.[metricsKey];\n const difference = vendorSalesDifference?.[metricsKey];\n\n return (\n
    \n \n handleMetricsBoxToggleEvents(metricsName)}\n role=\"presentation\"\n >\n
    {metricsKeyName?.toUpperCase()}
    \n
    \n {displayMetricsValue(metricsName, currentTotal, prefix, suffix)}\n
    \n
    \n vs\n {displayMetricsPreviousValue(\n previousTotal,\n metricsName,\n prefix,\n suffix,\n )}\n
    \n {difference === 0 ? (\n
    0%
    \n ) : difference ? (\n difference > 0 ? (\n
    \n \n {difference}%\n
    \n ) : (\n
    \n \n {difference.toString().replace('-', '')}%\n
    \n )\n ) : (\n
    N/A
    \n )}\n
    \n \n
    \n );\n };\n\n // display vendor metrics\n const displayVendorMetricsSection = () => {\n return (\n
    \n {selectedVendorMetricsType?.value === 'orderedRevenue' ? (\n <>\n {vendorOrderedRevenueMetrics?.map((item) => {\n return displayMetricsBox(\n item?.key,\n item?.className,\n item?.metricsClass,\n item?.key === 'orderedRevenue' ? currencySymbol : null,\n item?.key === 'conversionRate' ? '%' : null,\n );\n })}\n \n ) : (\n <>\n {vendorShippedCOGsMetrics?.map((item) => {\n return displayMetricsBox(\n item?.key,\n item?.className,\n item?.metricsClass,\n item?.key === 'shippedCOGs' ? currencySymbol : null,\n item?.key === 'conversionRate' ? '%' : null,\n );\n })}\n \n )}\n
    \n );\n };\n\n // display sales group by section\n const displaySaleGroupBy = () => {\n return (\n
    \n {Object.keys(selectedVendorMetrics)?.length <= 2 ? (\n
    \n {renderRecentAndPreviousLabel(\n selectedVendorMetrics,\n selectedSalesDF,\n )}\n
    \n ) : (\n
    \n )}\n
    \n {displayDailyWeeklyMonthlyToggleButton()}\n
    \n
    \n );\n };\n\n // display vendor sales performance graph\n const displaySalesPerformanceGraph = () => {\n return isApiCall ? (\n \n ) : vendorSalesMetricsData?.length !== 0 ? (\n \n ) : (\n {noGraphDataMessage}\n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {showMetricsTooltipForVendorSales?.map((key) => {\n return (\n \n {!vendorSalesCurrentTotal?.[key] &&\n !vendorSalesPreviousTotal?.[key] &&\n !isApiCall ? (\n \n ) : null}\n \n );\n })}\n {displayVendorMetricsSection()}\n {displaySaleGroupBy()}\n {displaySalesPerformanceGraph()}\n
    \n );\n}\n\n/* ********** MAIN FUNCTION END HERE ********** */\n\n/* ********** Declaring prop types ********** */\nVendorSalesPerformance.defaultProps = {\n // string\n currencySymbol: '$',\n // boolean\n isApiCall: false,\n // object\n selectedSalesDF: {},\n vendorSalesDifference: {},\n selectedVendorMetrics: {},\n vendorSalesCurrentTotal: {},\n vendorSalesPreviousTotal: {},\n selectedVendorMetricsType: {},\n // array\n vendorSalesMetricsData: [],\n // function\n setSelectedVendorMetrics: () => {},\n renderRecentAndPreviousLabel: () => {},\n displayDailyWeeklyMonthlyToggleButton: () => {},\n};\n\nVendorSalesPerformance.propTypes = {\n // string\n currencySymbol: string,\n // boolean\n isApiCall: bool,\n // object\n selectedSalesDF: shape({}),\n vendorSalesDifference: shape({}),\n selectedVendorMetrics: shape({}),\n vendorSalesCurrentTotal: shape({}),\n vendorSalesPreviousTotal: shape({}),\n selectedVendorMetricsType: shape({}),\n // array\n vendorSalesMetricsData: arrayOf(shape({})),\n // function\n setSelectedVendorMetrics: func,\n renderRecentAndPreviousLabel: func,\n displayDailyWeeklyMonthlyToggleButton: func,\n};\n","/* ********** Third party package imports ********** */\nimport React from 'react';\n\n/* ********** Third party package imports ********** */\nimport { bool, func, string, shape } from 'prop-types';\n\n/* ********** Local component file imports ********** */\nimport { NoData, PageLoader, Tabs } from '../../../../../common';\nimport {\n CONVERSIONRATE,\n currencySymbol,\n CUSTOM,\n GLANCEVIEWS,\n noGraphDataMessage,\n ORDEREDREVENUE,\n ORDEREDUNITS,\n SHIPPEDCOGS,\n SHIPPEDUNITS,\n vendorOrderedRevenueMetricsTabs,\n vendorShippedCOGsMetricsTabs,\n VENDORSMALL,\n} from '../../../../../constants';\n\n/* ********** MAIN FUNCTION START HERE ********** */\nfunction SalesVendorContribution({\n // string\n selectedTabMetrics,\n // boolean\n isApiCall,\n // object\n selectedSalesDF,\n\n selectedVendorMetricsType,\n // array\n vendorContributionData,\n // function\n displaySalesPagination,\n handleOnMetricsTabChange,\n displayContributionTable,\n dispalyContributionSectionHeader,\n}) {\n // display vendor contribution tabs\n const displayVendorContributionTabs = () => {\n const selectedTab = selectedTabMetrics;\n const vendorContributionTabs =\n selectedVendorMetricsType?.value === ORDEREDREVENUE\n ? vendorOrderedRevenueMetricsTabs\n : vendorShippedCOGsMetricsTabs;\n return (\n \n
      \n {vendorContributionTabs?.map((item) => (\n handleOnMetricsTabChange(item?.value, VENDORSMALL)}\n role=\"presentation\"\n >\n {item?.label}\n \n ))}\n
    \n
    \n );\n };\n\n // display vendor contribution table\n const dispalyVendorContributionTable = () => {\n let prefix = '';\n let suffix = '';\n let decimalDigits = 2;\n if (\n selectedTabMetrics === ORDEREDREVENUE ||\n selectedTabMetrics === SHIPPEDCOGS\n ) {\n decimalDigits = 2;\n prefix = currencySymbol;\n suffix = '';\n }\n\n if (\n selectedTabMetrics === GLANCEVIEWS ||\n selectedTabMetrics === ORDEREDUNITS ||\n selectedTabMetrics === SHIPPEDUNITS\n ) {\n decimalDigits = 0;\n prefix = '';\n suffix = '';\n }\n if (selectedTabMetrics === CONVERSIONRATE) {\n decimalDigits = 2;\n prefix = '';\n suffix = '%';\n }\n\n return (\n
    \n {isApiCall ? (\n \n ) : selectedSalesDF?.value === CUSTOM ? (\n \n Top contributors cannot be calculated when using custom dates.\n \n ) : (\n <>\n {vendorContributionData?.length > 0 ? (\n displayContributionTable(\n vendorContributionData,\n prefix,\n suffix,\n decimalDigits,\n )\n ) : (\n {noGraphDataMessage}\n )}\n {displaySalesPagination()}\n \n )}\n
    \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {dispalyContributionSectionHeader()}\n {displayVendorContributionTabs()}\n {dispalyVendorContributionTable()}\n
    \n );\n}\n\nexport default SalesVendorContribution;\n/* ********** MAIN FUNCTION END HERE ********** */\n\n/* ********** Declaring prop types ********** */\nSalesVendorContribution.defaultProps = {\n // string\n selectedTabMetrics: '',\n // boolean\n isApiCall: false,\n // object\n selectedSalesDF: {},\n selectedVendorMetricsType: {},\n // array\n vendorContributionData: [],\n // function\n displaySalesPagination: () => {},\n handleOnMetricsTabChange: () => {},\n displayContributionTable: () => {},\n dispalyContributionSectionHeader: () => {},\n};\n\nSalesVendorContribution.propTypes = {\n // string\n selectedTabMetrics: string,\n // boolean\n isApiCall: bool,\n // object\n selectedSalesDF: shape({}),\n selectedVendorMetricsType: shape({}),\n // aaray\n vendorContributionData: [],\n // function\n displaySalesPagination: func,\n handleOnMetricsTabChange: func,\n displayContributionTable: func,\n dispalyContributionSectionHeader: func,\n};\n","/* ********** Third party package imports ********** */\nimport React from 'react';\n\n/* ********** Third party package imports ********** */\nimport { bool, func, string, shape, arrayOf } from 'prop-types';\n\n/* ********** Local component file imports ********** */\nimport { WhiteCard } from '../../../../../common';\nimport VendorSalesPerformance from './VendorSalesPerformance';\nimport SalesVendorContribution from './SalesVendorContribution';\n\n/* ********** MAIN FUNCTION START HERE ********** */\nfunction SalesVendorReporting({\n // string\n currencySymbol,\n selectedTabMetrics,\n // boolean\n salesGraphLoader,\n contributionLoader,\n // object\n selectedSalesDF,\n vendorSalesDifference,\n selectedVendorMetrics,\n vendorSalesCurrentTotal,\n vendorSalesPreviousTotal,\n selectedVendorMetricsType,\n // array\n contributionData,\n vendorSalesMetricsData,\n // function\n displaySalesPagination,\n handleOnMetricsTabChange,\n setSelectedVendorMetrics,\n displayContributionTable,\n renderRecentAndPreviousLabel,\n displayPerformanceSectionHeader,\n dispalyContributionSectionHeader,\n displayDailyWeeklyMonthlyToggleButton,\n}) {\n // render vendor sales performance\n const renderVendorSalesPerformance = () => {\n return (\n \n );\n };\n\n // render sales vendor contribution\n const renderSalesVendorContribution = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n \n {displayPerformanceSectionHeader()}\n {renderVendorSalesPerformance()}\n \n {renderSalesVendorContribution()}\n
    \n );\n}\n\nexport default SalesVendorReporting;\n/* ********** MAIN FUNCTION END HERE ********** */\n\n/* ********** Declaring prop types ********** */\nSalesVendorReporting.defaultProps = {\n // string\n currencySymbol: '',\n selectedTabMetrics: '',\n // boolean\n salesGraphLoader: false,\n contributionLoader: false,\n // object\n selectedSalesDF: {},\n vendorSalesDifference: {},\n selectedVendorMetrics: {},\n vendorSalesCurrentTotal: {},\n vendorSalesPreviousTotal: {},\n selectedVendorMetricsType: {},\n // array\n contributionData: [],\n vendorSalesMetricsData: [],\n // function\n displaySalesPagination: () => {},\n setSelectedVendorMetrics: () => {},\n handleOnMetricsTabChange: () => {},\n displayContributionTable: () => {},\n renderRecentAndPreviousLabel: () => {},\n displayPerformanceSectionHeader: () => {},\n dispalyContributionSectionHeader: () => {},\n displayDailyWeeklyMonthlyToggleButton: () => {},\n};\n\nSalesVendorReporting.propTypes = {\n // string\n currencySymbol: string,\n selectedTabMetrics: string,\n // boolean\n salesGraphLoader: bool,\n contributionLoader: bool,\n // object\n selectedSalesDF: shape({}),\n vendorSalesDifference: shape({}),\n selectedVendorMetrics: shape({}),\n vendorSalesCurrentTotal: shape({}),\n vendorSalesPreviousTotal: shape({}),\n selectedVendorMetricsType: shape({}),\n // array\n contributionData: arrayOf(shape({})),\n vendorSalesMetricsData: arrayOf(shape({})),\n // function\n displaySalesPagination: func,\n setSelectedVendorMetrics: func,\n handleOnMetricsTabChange: func,\n displayContributionTable: func,\n renderRecentAndPreviousLabel: func,\n displayPerformanceSectionHeader: func,\n dispalyContributionSectionHeader: func,\n displayDailyWeeklyMonthlyToggleButton: func,\n};\n","/* ********** Third party package imports ********** */\nimport {\n arrayOf,\n bool,\n func,\n instanceOf,\n number,\n shape,\n string,\n} from 'prop-types';\n\n/* ********** Declaring prop types ********** */\nexport const SalesDashboardContainerDefaultProps = {\n // string\n responseID: null,\n currencySymbol: '',\n\n // boolean\n isBGS: false,\n isBGSAdmin: false,\n isDisabled: false,\n isAdManager: false,\n isBGSManager: false,\n isSpreetailRole: false,\n isAdTeamManager: false,\n isAdManagerAdmin: false,\n isCustomDateApply: false,\n includeInactiveBPs: false,\n includeSpreetailBrands: false,\n\n // object\n data: {},\n userInfo: {},\n customDate: {},\n selectedSalesDF: {},\n selectedMarketplace: {},\n selectedBrandPartner: {},\n selectedPerformanceType: {},\n\n // array\n loggedInUser: [],\n selectedUser: [],\n customDateState: [],\n marketplaceChoices: [],\n selectedManagerUser: [],\n\n // function\n setResponseID: () => {},\n setCustomDate: () => {},\n setSelectedUser: () => {},\n bindUserListData: () => {},\n checkIsUserExist: () => {},\n setCurrencySymbol: () => {},\n bindBrandPartners: () => {},\n renderAllocateBar: () => {},\n setSelectedSalesDF: () => {},\n setCustomDateState: () => {},\n setIsCustomDateApply: () => {},\n setSelectedManagerUser: () => {},\n setSelectedMarketplace: () => {},\n generateStringOfValues: () => {},\n setSelectedBrandPartner: () => {},\n displayContributionTable: () => {},\n setSelectedPerformanceType: () => {},\n bindMetricsContributionData: () => {},\n renderRecentAndPreviousLabel: () => {},\n handleMultiSelectDropdownFilterEvents: () => {},\n};\n\nexport const SalesDashboardContainerPropTypes = {\n // string\n responseID: string,\n currencySymbol: string,\n\n // boolean\n isBGS: bool,\n isBGSAdmin: bool,\n isDisabled: bool,\n isAdManager: bool,\n isBGSManager: bool,\n isSpreetailRole: bool,\n isAdTeamManager: bool,\n isAdManagerAdmin: bool,\n isCustomDateApply: bool,\n includeInactiveBPs: bool,\n includeSpreetailBrands: bool,\n\n // object\n userInfo: shape({}),\n customDate: shape({}),\n selectedSalesDF: shape({}),\n selectedMarketplace: shape({}),\n selectedBrandPartner: shape({}),\n selectedPerformanceType: shape({}),\n data: shape({ sub: string, label: string }),\n\n // array\n loggedInUser: arrayOf(shape({})),\n selectedUser: arrayOf(shape({})),\n customDateState: arrayOf(shape({})),\n marketplaceChoices: arrayOf(shape({})),\n selectedManagerUser: arrayOf(shape({})),\n\n // function\n setResponseID: func,\n setCustomDate: func,\n setSelectedUser: func,\n bindUserListData: func,\n checkIsUserExist: func,\n setCurrencySymbol: func,\n bindBrandPartners: func,\n renderAllocateBar: func,\n setSelectedSalesDF: func,\n setCustomDateState: func,\n setIsCustomDateApply: func,\n setSelectedManagerUser: func,\n setSelectedMarketplace: func,\n generateStringOfValues: func,\n setSelectedBrandPartner: func,\n displayContributionTable: func,\n setSelectedPerformanceType: func,\n bindMetricsContributionData: func,\n renderRecentAndPreviousLabel: func,\n handleMultiSelectDropdownFilterEvents: func,\n};\n\nexport const SalesPerformanceContainerDefaultProps = {\n // string\n salesGroupBy: '',\n currencySymbol: '',\n customStartDate: '',\n selectedTabMetrics: '',\n selectedRevenueType: '',\n selectedAdSpendType: '',\n // number\n pageNumber: 1,\n contributionCount: null,\n // boolean\n isBGSAdmin: false,\n isBGSManager: false,\n isAdTeamManager: false,\n isSpreetailRole: false,\n isAdManagerAdmin: false,\n salesGraphLoader: false,\n isCustomDateApply: false,\n contributionLoader: false,\n isDisabledTimeFrame: false,\n downloadReportLoader: false,\n showCustomMonthModal: false,\n showAdCustomDateModal: false,\n showAdYearOverYearDateModal: false,\n // object\n currentDate: {},\n customDateError: {},\n selectedSalesDF: {},\n salesDifference: {},\n isMetricsDisabled: {},\n salesCurrentTotal: {},\n salesPreviousTotal: {},\n selectedMarketplace: {},\n selectedAccountType: {},\n selectedBrandPartner: {},\n currentDateForVendor: {},\n selectedSalesMetrics: {},\n selectedVendorMetrics: {},\n vendorSalesDifference: {},\n vendorSalesCurrentTotal: {},\n vendorSalesPreviousTotal: {},\n selectedVendorMetricsType: {},\n selectedRevenueDropDownOption: {},\n selectedAdSpendDropDownOption: {},\n // array\n userList: [],\n selectedUser: [],\n salesChartData: [],\n managerUserList: [],\n customDateState: [],\n customMonthRange: [],\n contributionData: [],\n marketplaceOptions: [],\n selectedManagerUser: [],\n brandPartnerOptions: [],\n goalsPerformanceData: [],\n yearOverYearDateState: [],\n vendorSalesMetricsData: [],\n // function\n applyCustomDate: () => {},\n setSelectedUser: () => {},\n handlePageChange: () => {},\n addThousandComma: () => {},\n handleResetFilter: () => {},\n handleMarketplace: () => {},\n handleSalesGroupBy: () => {},\n setCustomDateState: () => {},\n handleSalesDailyFact: () => {},\n applyCustomMonthRange: () => {},\n setSelectedManagerUser: () => {},\n setIsDisabledTimeFrame: () => {},\n setSelectedAdSpendType: () => {},\n setSelectedRevenueType: () => {},\n setSelectedSalesMetrics: () => {},\n setSelectedVendorMetrics: () => {},\n handleOnMetricsTabChange: () => {},\n setShowCustomMonthModal: () => {},\n setShowAdCustomDateModal: () => {},\n setYearOverYearDateState: () => {},\n displayContributionTable: () => {},\n handleBgsUserFilterEvents: () => {},\n handleUserOnMenuCloseEvents: () => {},\n handleGoalsDateChangeEvents: () => {},\n renderRecentAndPreviousLabel: () => {},\n handleCustomMonthRangeEvents: () => {},\n handleManagerUserFilterEvents: () => {},\n handleSellerVendorFilterEvents: () => {},\n handleBrandPartnerFilterEvents: () => {},\n setShowAdYearOverYearDateModal: () => {},\n setSelectedRevenueDropDownOption: () => {},\n setSelectedAdSpendDropDownOption: () => {},\n handleManagerUserOnMenuCloseEvents: () => {},\n handleKeyContributorsDownloadReport: () => {},\n handleVendorMetricsTypeFilterEvents: () => {},\n};\n\nexport const SalesPerformanceContainerPropTypes = {\n // string\n salesGroupBy: string,\n currencySymbol: string,\n customStartDate: string,\n selectedTabMetrics: string,\n selectedRevenueType: string,\n selectedAdSpendType: string,\n // number\n pageNumber: number,\n contributionCount: number,\n // boolean\n isBGSAdmin: bool,\n isBGSManager: bool,\n isAdTeamManager: bool,\n isSpreetailRole: bool,\n isAdManagerAdmin: bool,\n salesGraphLoader: bool,\n isCustomDateApply: bool,\n contributionLoader: bool,\n isDisabledTimeFrame: bool,\n downloadReportLoader: bool,\n showCustomMonthModal: bool,\n showAdCustomDateModal: bool,\n showAdYearOverYearDateModal: bool,\n // object\n currentDate: instanceOf(Date),\n customDateError: shape({}),\n selectedSalesDF: shape({}),\n salesDifference: shape({}),\n isMetricsDisabled: shape({}),\n salesCurrentTotal: shape({}),\n salesPreviousTotal: shape({}),\n selectedMarketplace: shape({}),\n selectedAccountType: shape({}),\n selectedBrandPartner: shape({}),\n currentDateForVendor: shape({}),\n selectedSalesMetrics: shape({}),\n selectedVendorMetrics: shape({}),\n vendorSalesDifference: shape({}),\n vendorSalesCurrentTotal: shape({}),\n vendorSalesPreviousTotal: shape({}),\n selectedVendorMetricsType: shape({}),\n selectedRevenueDropDownOption: shape({}),\n selectedAdSpendDropDownOption: shape({}),\n // array\n userList: arrayOf(shape({})),\n selectedUser: arrayOf(shape({})),\n salesChartData: arrayOf(shape({})),\n managerUserList: arrayOf(shape({})),\n customDateState: arrayOf(shape({})),\n customMonthRange: arrayOf(shape({})),\n contributionData: arrayOf(shape({})),\n marketplaceOptions: arrayOf(shape({})),\n selectedManagerUser: arrayOf(shape({})),\n brandPartnerOptions: arrayOf(shape({})),\n goalsPerformanceData: arrayOf(shape({})),\n yearOverYearDateState: arrayOf(shape({})),\n vendorSalesMetricsData: arrayOf(shape({})),\n // function\n applyCustomDate: func,\n setSelectedUser: func,\n handlePageChange: func,\n addThousandComma: func,\n handleResetFilter: func,\n handleMarketplace: func,\n handleSalesGroupBy: func,\n setCustomDateState: func,\n handleSalesDailyFact: func,\n applyCustomMonthRange: func,\n setSelectedManagerUser: func,\n setIsDisabledTimeFrame: func,\n setSelectedAdSpendType: func,\n setSelectedRevenueType: func,\n setSelectedSalesMetrics: func,\n setSelectedVendorMetrics: func,\n handleOnMetricsTabChange: func,\n setShowCustomMonthModal: func,\n setShowAdCustomDateModal: func,\n setYearOverYearDateState: func,\n displayContributionTable: func,\n handleBgsUserFilterEvents: func,\n handleUserOnMenuCloseEvents: func,\n handleGoalsDateChangeEvents: func,\n renderRecentAndPreviousLabel: func,\n handleCustomMonthRangeEvents: func,\n handleManagerUserFilterEvents: func,\n handleSellerVendorFilterEvents: func,\n handleBrandPartnerFilterEvents: func,\n setShowAdYearOverYearDateModal: func,\n setSelectedRevenueDropDownOption: func,\n setSelectedAdSpendDropDownOption: func,\n handleManagerUserOnMenuCloseEvents: func,\n handleKeyContributorsDownloadReport: func,\n handleVendorMetricsTypeFilterEvents: func,\n};\n","/* ********** React imports ********** */\nimport React from 'react';\n\n/* ********** Third party package imports ********** */\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { components } from 'react-select';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n/* ********** Local component file imports ********** */\nimport Theme from '../../../../theme/Theme';\nimport SalesFilter from './SalesFilter';\nimport SalesSellerReporting from './SellerReporting/SalesSellerReporting';\nimport SalesVendorReporting from './VendorReporting/SalesVendorReporting';\nimport {\n SalesPerformanceContainerDefaultProps,\n SalesPerformanceContainerPropTypes,\n} from './SalesPropTypes';\nimport {\n CommonPagination,\n CustomDateModal,\n CustomMonthRangeModal,\n DropdownIndicator,\n GrayMessageBar,\n PageLoader,\n SingleSelectDropdown,\n ToggleButton,\n} from '../../../../common';\nimport {\n CUSTOM,\n REVENUEDSP,\n REVENUEPPC,\n SELLERSMALL,\n VENDORSMALL,\n YEAROVERYEAR,\n dateOptionsWithYearOverYear,\n performanceInsightMessage,\n vendorSalesMetricsTypeOptions,\n} from '../../../../constants';\n\n// accessing lodash library\nconst _ = require('lodash');\n\n/* ********** MAIN FUNCTION START HERE ********** */\nfunction SalesPerformanceContainer({\n // string\n salesGroupBy,\n currencySymbol,\n customStartDate,\n selectedTabMetrics,\n selectedRevenueType,\n selectedAdSpendType,\n // number\n pageNumber,\n contributionCount,\n // boolean\n isBGSAdmin,\n isBGSManager,\n isAdTeamManager,\n isSpreetailRole,\n isAdManagerAdmin,\n salesGraphLoader,\n isCustomDateApply,\n contributionLoader,\n isDisabledTimeFrame,\n downloadReportLoader,\n showCustomMonthModal,\n showAdCustomDateModal,\n showAdYearOverYearDateModal,\n // object\n currentDate,\n customDateError,\n selectedSalesDF,\n salesDifference,\n isMetricsDisabled,\n salesCurrentTotal,\n salesPreviousTotal,\n selectedMarketplace,\n currentDateForVendor,\n selectedSalesMetrics,\n selectedBrandPartner,\n selectedAccountType,\n selectedVendorMetrics,\n vendorSalesDifference,\n vendorSalesCurrentTotal,\n vendorSalesPreviousTotal,\n selectedVendorMetricsType,\n selectedRevenueDropDownOption,\n selectedAdSpendDropDownOption,\n // array\n userList,\n selectedUser,\n salesChartData,\n managerUserList,\n customDateState,\n customMonthRange,\n contributionData,\n marketplaceOptions,\n selectedManagerUser,\n brandPartnerOptions,\n goalsPerformanceData,\n yearOverYearDateState,\n vendorSalesMetricsData,\n // function\n applyCustomDate,\n setSelectedUser,\n handlePageChange,\n handleResetFilter,\n handleMarketplace,\n setCustomDateState,\n handleSalesGroupBy,\n handleSalesDailyFact,\n applyCustomMonthRange,\n setSelectedManagerUser,\n setIsDisabledTimeFrame,\n setSelectedAdSpendType,\n setSelectedRevenueType,\n setSelectedSalesMetrics,\n setSelectedVendorMetrics,\n handleOnMetricsTabChange,\n setShowCustomMonthModal,\n setShowAdCustomDateModal,\n setYearOverYearDateState,\n displayContributionTable,\n handleBgsUserFilterEvents,\n handleUserOnMenuCloseEvents,\n handleGoalsDateChangeEvents,\n renderRecentAndPreviousLabel,\n handleCustomMonthRangeEvents,\n handleManagerUserFilterEvents,\n handleSellerVendorFilterEvents,\n handleBrandPartnerFilterEvents,\n setShowAdYearOverYearDateModal,\n setSelectedRevenueDropDownOption,\n setSelectedAdSpendDropDownOption,\n handleManagerUserOnMenuCloseEvents,\n handleKeyContributorsDownloadReport,\n handleVendorMetricsTypeFilterEvents,\n}) {\n const dashboardDynamicError = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n\n const { Option, SingleValue } = components;\n\n const defaultCurrentDate =\n selectedAccountType?.value === VENDORSMALL\n ? currentDateForVendor\n : currentDate;\n\n // custom date option\n const dateOptionsForGoals = [\n {\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start and end dates',\n },\n ];\n\n // adding thousand separator\n const addThousandComma = (number, decimalDigits = 2) => {\n if (number !== undefined && number !== null) {\n return number\n .toFixed(decimalDigits)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n return number;\n };\n\n // get dropdwon indicator for dropdown filter\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n // display sub label for custom date\n const renderCustomDateSubLabel = (props) => {\n if (selectedSalesDF?.value === CUSTOM && isCustomDateApply) {\n return `From- ${dayjs(customDateState[0]?.startDate).format(\n 'MMM D, YYYY',\n )} To- ${dayjs(customDateState[0]?.endDate).format('MMM D, YYYY')}`;\n }\n if (selectedSalesDF?.value === YEAROVERYEAR && isCustomDateApply) {\n return `From ${dayjs(yearOverYearDateState[0]?.startDate).format(\n 'D MMM',\n )} To ${dayjs(yearOverYearDateState[0]?.endDate).format('D MMM')}`;\n }\n\n return props?.data?.sub || '';\n };\n\n // react select single value component for sales custom date filter\n const singleFilterValue = (props) => {\n return (\n \n {props?.data?.label}\n
    \n {renderCustomDateSubLabel(props)}\n
    \n
    \n );\n };\n\n // react select option component for sales custom date filter\n const singleFilterOption = (props) => {\n return (\n \n );\n };\n\n // configuring the dropdown component for sales custom date filter\n const getSelectComponents = () => {\n return {\n Option: singleFilterOption,\n SingleValue: singleFilterValue,\n DropdownIndicator,\n };\n };\n\n // render the selected custom date or month as a sub label in the time filter\n const renderCustomDateGoalsSubLabel = () => {\n return `${dayjs(customStartDate).format('MMM, YYYY')}`;\n };\n\n // react select single value for goals custom month filter\n const goalsSingleFilterValue = (props) => {\n return (\n \n \n {renderCustomDateGoalsSubLabel(props)}\n \n \n );\n };\n\n // react select option component for goals custom month filter\n const goalsFilterOption = (props) => {\n return (\n \n );\n };\n\n // configuring the dropdown component for goals custom month filter\n const getTimeFilterSelectGoalsComponents = () => {\n return {\n Option: goalsFilterOption,\n SingleValue: goalsSingleFilterValue,\n DropdownIndicator,\n };\n };\n\n // display error message\n const renderErrorMessage = () => {\n let { fromDate } = customDateError;\n let { toDate } = customDateError;\n\n fromDate = dayjs(fromDate).format('MM/DD/YYYY');\n toDate = dayjs(toDate).subtract(1, 'day').format('MM/DD/YYYY');\n\n return (\n
    \n
    \n \n
    \n
    \n );\n };\n\n // generate html for single select dropdown\n const generateSingleSelectDropdownHTML = (\n filterId,\n className,\n dropdownOptions,\n selectedValue,\n onChangeHandler,\n dropdownComponents,\n isSearchable = false,\n ) => {\n return (\n
    \n \n
    \n );\n };\n\n // display time frame filter filter\n const displayTimeFrameDropdownFilter = (dateFilterOptions) => {\n return generateSingleSelectDropdownHTML(\n 'BT-SalesTimeFrameFilter',\n 'single-select-dropdown',\n dateFilterOptions,\n selectedSalesDF,\n handleSalesDailyFact,\n getSelectComponents,\n false,\n );\n };\n\n // render vendor metrics type filter\n const displayVendorMetricsTypeFilter = () => {\n return generateSingleSelectDropdownHTML(\n 'BT-SalesVendorMetricsTypeFilter',\n '',\n vendorSalesMetricsTypeOptions,\n selectedVendorMetricsType,\n handleVendorMetricsTypeFilterEvents,\n getSelectDropdownIndicator,\n false,\n );\n };\n\n // render vendor metrics type filter\n const displayDateFilterForGoals = () => {\n return generateSingleSelectDropdownHTML(\n 'BT-MonthPickerforGoals',\n '',\n dateOptionsForGoals,\n dateOptionsForGoals?.[0],\n handleGoalsDateChangeEvents,\n getTimeFilterSelectGoalsComponents,\n false,\n );\n };\n\n // display performance header filter\n const displayPerformanceHeaderfilters = () => {\n const localDateOptionsWithYear = dateOptionsWithYearOverYear;\n\n // PDV-6572 If PPC or DSP selected then disabled the year_to_date option\n if (selectedAccountType?.value === SELLERSMALL) {\n localDateOptionsWithYear[3].isDisabled = _.keys(\n selectedSalesMetrics,\n )?.some((item) => [REVENUEPPC, REVENUEDSP].includes(item));\n }\n\n return (\n
    \n
    \n
    \n {selectedAccountType?.value === VENDORSMALL\n ? displayVendorMetricsTypeFilter()\n : null}\n
    \n
    \n {selectedTabMetrics === 'goals'\n ? displayDateFilterForGoals()\n : displayTimeFrameDropdownFilter(localDateOptionsWithYear)}\n
    \n
    \n
    \n );\n };\n\n // display performance header\n const displayPerformanceSectionHeader = () => {\n let insightMessage = '';\n\n if (selectedAccountType?.value === SELLERSMALL) {\n insightMessage = performanceInsightMessage?.sales;\n } else {\n insightMessage = performanceInsightMessage?.vendorSales;\n }\n\n return (\n
    \n
    \n

    Sales Performance

    \n
    \n
    \n {displayPerformanceHeaderfilters()}\n
    \n
    \n {dashboardDynamicError?.sales_performance?.placeholder ? (\n \n ) : null}\n
    \n {selectedSalesDF?.value !== CUSTOM ? (\n
    \n \n
    \n ) : null}\n {selectedSalesDF?.value === CUSTOM && customDateError !== null\n ? renderErrorMessage()\n : null}\n
    \n );\n };\n\n // display daily weekly monthly toggle filter\n const displayDailyWeeklyMonthlyToggleButton = () => {\n return (\n \n
    \n \n
  • \n handleSalesGroupBy('daily')}\n onChange={() => {}}\n />\n \n
  • \n\n
  • \n handleSalesGroupBy('weekly')}\n />\n \n
  • \n\n
  • \n handleSalesGroupBy('monthly')}\n />\n \n
  • \n \n
    \n
    \n );\n };\n\n // display contribution section header\n const dispalyContributionSectionHeader = () => {\n return (\n
    \n
    \n

    Contributors

    \n
    \n
    \n {\n handleKeyContributorsDownloadReport();\n }}\n style={{ maxWidth: '150px' }}\n >\n {downloadReportLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n
    \n
    \n
    \n {dashboardDynamicError?.sales_performance?.contribution ? (\n \n ) : null}\n
    \n
    \n );\n };\n\n // display sales pagination\n const displaySalesPagination = () => {\n return contributionCount > 0 ? (\n \n ) : null;\n };\n\n // render seller reporting section\n const renderSellerReportingSection = () => {\n return (\n
    \n \n
    \n );\n };\n\n // render vendor reporting section\n const renderVendorReportingSection = () => {\n return (\n
    \n \n
    \n );\n };\n\n // render left side panel - sales filter section\n const renderSalesFilterSection = () => {\n return (\n \n );\n };\n\n // render right side panel - sales dashboard section\n const renderSalesDashboardSection = () => {\n return (\n <>\n {selectedAccountType?.value === SELLERSMALL\n ? renderSellerReportingSection()\n : renderVendorReportingSection()}\n \n );\n };\n\n // display sales custom date modal\n const displaySalesCustomDateModal = () => {\n return (\n {\n setShowAdCustomDateModal(false);\n if (selectedSalesDF?.value !== CUSTOM) {\n setCustomDateState([\n {\n startDate: defaultCurrentDate,\n endDate: defaultCurrentDate,\n key: 'adSelection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setCustomDateState([item?.adSelection]);\n }}\n onApply={() => applyCustomDate(CUSTOM)}\n currentDate={\n selectedAccountType?.value === SELLERSMALL\n ? currentDate\n : currentDateForVendor\n }\n minDate={new Date('01/01/1901')}\n />\n );\n };\n\n // display sales custom year over year modal\n const displaySalesCustomYOYModal = () => {\n return (\n {\n setShowAdYearOverYearDateModal(false);\n if (selectedSalesDF?.value !== YEAROVERYEAR) {\n setYearOverYearDateState([\n {\n startDate: defaultCurrentDate,\n endDate: defaultCurrentDate,\n key: 'yearOverYearSelection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setYearOverYearDateState([item?.yearOverYearSelection]);\n }}\n onApply={() => applyCustomDate(YEAROVERYEAR)}\n currentDate={\n selectedAccountType?.value === SELLERSMALL\n ? currentDate\n : currentDateForVendor\n }\n minDate={new Date('01/01/1901')}\n />\n );\n };\n\n // render custom month range modal\n const renderCustomMonthRangeModal = () => {\n return (\n {\n setShowCustomMonthModal(false);\n }}\n onDateChange={handleCustomMonthRangeEvents}\n onApply={() => applyCustomMonthRange()}\n currentMonth={new Date()}\n selected={false}\n />\n );\n };\n\n // display sales modal\n const displaySalesModals = () => {\n return (\n <>\n {displaySalesCustomDateModal()}\n {displaySalesCustomYOYModal()}\n {renderCustomMonthRangeModal()}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n
    \n {renderSalesFilterSection()}\n
    \n
    \n
    {renderSalesDashboardSection()}
    \n
    {displaySalesModals()}
    \n
    \n
    \n );\n}\n\nexport default SalesPerformanceContainer;\n/* ********** MAIN FUNCTION END HERE ********** */\n\n/* ********** Declaring prop types ********** */\nSalesPerformanceContainer.defaultProps = SalesPerformanceContainerDefaultProps;\nSalesPerformanceContainer.propTypes = SalesPerformanceContainerPropTypes;\n","import dayjs from 'dayjs';\nimport { CUSTOM, ORDEREDREVENUE } from '../../../../../constants';\n\nconst BindVendorSalesPerformanceData = (\n responseData,\n vendorMetricsType,\n selectedDailyFact,\n) => {\n const tempMetricsData = [];\n const previousData =\n selectedDailyFact !== CUSTOM ? responseData?.previous : [];\n const currentdata = responseData?.current;\n const salesCurrentTotal = responseData?.current_sum\n ? responseData.current_sum\n : null;\n const salesPreviousTotal = responseData?.previous_sum\n ? responseData.previous_sum\n : null;\n const salesDifference = responseData?.difference_data\n ? responseData.difference_data\n : null;\n\n // filterout previous data in one temporary object.\n if (previousData?.length) {\n previousData.forEach((item) => {\n const previousDate = dayjs(item?.report_date).format('MMM D YYYY');\n if (vendorMetricsType === ORDEREDREVENUE) {\n tempMetricsData.push({\n orderedRevenuePrevious: item?.ordered_revenue\n ? item.ordered_revenue\n : null,\n glanceViewsPrevious: item?.glance_views ? item.glance_views : null,\n conversionRatePrevious: item?.conversion_rate\n ? item.conversion_rate\n : null,\n orderedUnitsPrevious: item?.ordered_units ? item.ordered_units : null,\n previousDate,\n\n orderedRevenuePreviousLabel: item?.ordered_revenue\n ? item.ordered_revenue.toFixed(2)\n : '0.00',\n glanceViewsPreviousLabel: item?.glance_views\n ? item.glance_views.toFixed(0)\n : '0',\n orderedUnitsPreviousLabel: item?.ordered_units\n ? item.ordered_units.toFixed(0)\n : '0',\n conversionRatePreviousLabel: item?.conversion_rate\n ? item.conversion_rate.toFixed(2)\n : '0',\n });\n } else {\n tempMetricsData.push({\n shippedCOGsPrevious: item?.shipped_cogs ? item.shipped_cogs : null,\n glanceViewsPrevious: item?.glance_views ? item.glance_views : null,\n conversionRatePrevious: item?.conversion_rate\n ? item.conversion_rate\n : null,\n shippedUnitsPrevious: item?.shipped_units ? item.shipped_units : null,\n previousDate,\n\n shippedCOGsPreviousLabel: item?.shipped_cogs\n ? item.shipped_cogs.toFixed(2)\n : '0.00',\n glanceViewsPreviousLabel: item?.glance_views\n ? item.glance_views.toFixed(0)\n : '0',\n shippedUnitsPreviousLabel: item?.shipped_units\n ? item.shipped_units.toFixed(0)\n : '0',\n conversionRatePreviousLabel: item?.conversion_rate\n ? item.conversion_rate.toFixed(2)\n : '0',\n });\n }\n });\n }\n\n // filterout current data in one temporary object.\n if (currentdata?.length) {\n currentdata.forEach((item, index) => {\n const currentReportDate = dayjs(item?.report_date).format('MMM D YYYY');\n // let indexNumber = index;\n // add the current data at same index of prevoius in temporary object\n if (previousData && index < previousData?.length) {\n if (vendorMetricsType === ORDEREDREVENUE) {\n tempMetricsData[index].orderedRevenueCurrent = item?.ordered_revenue\n ? item.ordered_revenue\n : null;\n tempMetricsData[index].glanceViewsCurrent = item?.glance_views\n ? item.glance_views\n : null;\n tempMetricsData[index].orderedUnitsCurrent = item?.ordered_units\n ? item.ordered_units\n : null;\n tempMetricsData[index].conversionRateCurrent = item?.conversion_rate\n ? item.conversion_rate\n : null;\n\n tempMetricsData[index].date = currentReportDate;\n\n tempMetricsData[index].orderedRevenueCurrentLabel =\n item?.ordered_revenue ? item.ordered_revenue.toFixed(2) : '0.00';\n tempMetricsData[index].glanceViewsCurrentLabel = item?.glance_views\n ? item.glance_views.toFixed(0)\n : '0';\n tempMetricsData[index].orderedUnitsCurrentLabel = item?.ordered_units\n ? item.ordered_units.toFixed(0)\n : '0';\n tempMetricsData[index].conversionRateCurrentLabel =\n item?.conversion_rate ? item.conversion_rate.toFixed(2) : '0';\n } else {\n tempMetricsData[index].shippedCOGsCurrent = item?.shipped_cogs\n ? item.shipped_cogs\n : null;\n tempMetricsData[index].glanceViewsCurrent = item?.glance_views\n ? item.glance_views\n : null;\n tempMetricsData[index].shippedUnitsCurrent = item?.shipped_units\n ? item.shipped_units\n : null;\n tempMetricsData[index].conversionRateCurrent = item?.conversion_rate\n ? item.conversion_rate\n : null;\n\n tempMetricsData[index].date = currentReportDate;\n\n tempMetricsData[index].shippedCOGsCurrentLabel = item?.shipped_cogs\n ? item.shipped_cogs.toFixed(2)\n : '0.00';\n tempMetricsData[index].glanceViewsCurrentLabel = item?.glance_views\n ? item.glance_views.toFixed(0)\n : '0';\n tempMetricsData[index].shippedUnitsCurrentLabel = item?.shipped_units\n ? item.shipped_units.toFixed(0)\n : '0';\n tempMetricsData[index].conversionRateCurrentLabel =\n item?.conversion_rate ? item.conversion_rate.toFixed(2) : '0';\n }\n } else if (vendorMetricsType === ORDEREDREVENUE) {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previous value null and previous label 0\n\n tempMetricsData.push({\n orderedRevenueCurrent: item?.ordered_revenue\n ? item.ordered_revenue\n : null,\n glanceViewsCurrent: item?.glance_views ? item.glance_views : null,\n orderedUnitsCurrent: item?.ordered_units ? item.ordered_units : null,\n conversionRateCurrent: item?.conversion_rate\n ? item.conversion_rate\n : null,\n\n date: currentReportDate,\n\n orderedRevenuePrevious: null,\n glanceViewsPrevious: null,\n orderedUnitsPrevious: null,\n conversionRatePrevious: null,\n\n orderedRevenueCurrentLabel: item?.ordered_revenue\n ? item.ordered_revenue.toFixed(2)\n : '0.00',\n glanceViewsCurrentLabel: item?.glance_views\n ? item.glance_views.toFixed(0)\n : '0',\n orderedUnitsCurrentLabel: item?.ordered_units\n ? item.ordered_units.toFixed(0)\n : '0',\n conversionRateCurrentLabel: item?.conversion_rate\n ? item.conversion_rate.toFixed(2)\n : '0',\n\n orderedRevenuePreviousLabel: '0.00',\n glanceViewsPreviousLabel: '0',\n orderedUnitsPreviousLabel: '0',\n conversionRatePreviousLabel: '0',\n });\n } else {\n tempMetricsData.push({\n shippedCOGsCurrent: item?.shipped_cogs ? item.shipped_cogs : null,\n glanceViewsCurrent: item?.glance_views ? item.glance_views : null,\n conversionRateCurrent: item?.conversion_rate\n ? item.conversion_rate\n : null,\n shippedUnitsCurrent: item?.shipped_units ? item.shipped_units : null,\n\n date: currentReportDate,\n\n shippedCOGsPrevious: null,\n glanceViewsPrevious: null,\n shippedUnitsPrevious: null,\n conversionRatePrevious: null,\n\n shippedCOGsCurrentLabel: item?.shipped_cogs\n ? item.shipped_cogs.toFixed(2)\n : '0.00',\n glanceViewsCurrentLabel: item?.glance_views\n ? item.glance_views.toFixed(0)\n : '0',\n shippedUnitsCurrentLabel: item?.shipped_units\n ? item.shipped_units.toFixed(0)\n : '0',\n conversionRateCurrentLabel: item?.conversion_rate\n ? item.conversion_rate.toFixed(2)\n : '0',\n\n shippedCOGsPreviousLabel: '0.00',\n glanceViewsPreviousLabel: '0',\n shippedUnitsPreviousLabel: '0',\n conversionRatePreviousLabel: '0',\n });\n }\n });\n }\n\n return {\n metricsData: tempMetricsData,\n salesCurrentTotal,\n salesPreviousTotal,\n salesDifference,\n };\n};\nexport default BindVendorSalesPerformanceData;\n","import dayjs from 'dayjs';\n\nconst BindSellerSalesPerformanceData = (response) => {\n const tempData = [];\n\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.report_date)\n : response?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n // filterout previous data in one temporary object.\n if (response?.previous?.length) {\n response.previous.forEach((item, index) => {\n const previousDate = dayjs(item?.report_date).format('MMM D YYYY');\n tempData.push({\n revenueTotalPrevious: item?.revenue,\n revenueOrganicPrevious: item?.revenue_organic,\n revenuePpcPrevious: item?.revenue_ppc,\n revenueDspPrevious: item?.revenue_dsp,\n unitsSoldPrevious: item?.units_sold,\n trafficPrevious: item?.traffic,\n conversionPrevious: item?.conversion,\n // ad spend and tacos start\n adSpendTotalPrevious: item?.ad_spend_total,\n adSpendPpcPrevious: item?.sponsored_ad_spend,\n adSpendDspPrevious: item?.dsp_spends,\n tacosPrevious: item?.tacos,\n // ad spend and tacos ends\n previousDate,\n previousEndDate: nextReportDate(index, response?.previous, 'previous'),\n\n revenueTotalPreviousLabel:\n item?.revenue !== null ? item.revenue.toFixed(2) : '0.00',\n revenueOrganicPreviousLabel:\n item?.revenue_organic !== null\n ? item.revenue_organic?.toFixed(2)\n : '0.00',\n revenuePpcPreviousLabel:\n item?.revenue_ppc !== null ? item.revenue_ppc?.toFixed(2) : '0.00',\n revenueDspPreviousLabel:\n item?.revenue_dsp !== null ? item.revenue_dsp?.toFixed(2) : '0.00',\n unitsSoldPreviousLabel:\n item?.units_sold !== null ? item.units_sold?.toFixed(2) : '0.00',\n trafficPreviousLabel:\n item?.traffic !== null ? item.traffic?.toFixed(2) : '0.00',\n conversionPreviousLabel:\n item?.conversion !== null ? item.conversion?.toFixed(2) : '0',\n // ad spend and tacos start\n adSpendTotalPreviousLabel:\n item?.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00',\n adSpendPpcPreviousLabel:\n item?.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend?.toFixed(2)\n : '0.00',\n adSpendDspPreviousLabel:\n item?.dsp_spends !== null ? item.dsp_spends?.toFixed(2) : '0.00',\n tacosPreviousLabel: item.tacos !== null ? item.tacos?.toFixed(2) : '0',\n // ad spend and tacos ends\n });\n });\n }\n\n // filterout current data in one temporary object.\n if (response?.current?.length) {\n response.current.forEach((item, index) => {\n const currentReportDate = dayjs(item?.report_date).format('MMM D YYYY');\n // add the current data at same index of prevoius in temporary object\n if (response.previous && index < response.previous.length) {\n tempData[index].date = currentReportDate;\n tempData[index].revenueTotalCurrent = item?.revenue;\n tempData[index].revenueOrganicCurrent = item?.revenue_organic;\n tempData[index].revenuePpcCurrent = item?.revenue_ppc;\n tempData[index].revenueDspCurrent = item?.revenue_dsp;\n tempData[index].unitsSoldCurrent = item?.units_sold;\n tempData[index].trafficCurrent = item?.traffic;\n tempData[index].conversionCurrent = item?.conversion;\n // ad spend and tacos start\n tempData[index].adSpendTotalCurrent = item?.ad_spend_total;\n tempData[index].adSpendPpcCurrent = item?.sponsored_ad_spend;\n tempData[index].adSpendDspCurrent = item?.dsp_spends;\n tempData[index].tacosCurrent = item?.tacos;\n // ad spend and tacos ends\n tempData[index].endDate = nextReportDate(\n index,\n response?.current,\n 'current',\n );\n\n tempData[index].revenueTotalCurrentLabel =\n item?.revenue !== null ? item.revenue.toFixed(2) : '0.00';\n tempData[index].revenueOrganicCurrentLabel =\n item?.revenue_organic !== null\n ? item.revenue_organic?.toFixed(2)\n : '0.00';\n tempData[index].revenuePpcCurrentLabel =\n item?.revenue_ppc !== null ? item.revenue_ppc?.toFixed(2) : '0.00';\n tempData[index].revenueDspCurrentLabel =\n item?.revenue_dsp !== null ? item.revenue_dsp?.toFixed(2) : '0.00';\n tempData[index].unitsSoldCurrentLabel =\n item?.units_sold !== null ? item.units_sold?.toFixed(2) : '0.00';\n tempData[index].trafficCurrentLabel =\n item?.traffic !== null ? item.traffic?.toFixed(2) : '0.00';\n tempData[index].conversionCurrentLabel =\n item?.conversion !== null ? item.conversion?.toFixed(2) : '0';\n // ad spend and tacos start\n tempData[index].adSpendTotalCurrentLabel =\n item?.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00';\n tempData[index].adSpendPpcCurrentLabel =\n item?.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend?.toFixed(2)\n : '0.00';\n tempData[index].adSpendDspCurrentLabel =\n item?.dsp_spends !== null ? item.dsp_spends?.toFixed(2) : '0.00';\n tempData[index].tacosCurrentLabel =\n item?.tacos !== null ? item.tacos?.toFixed(2) : '0';\n // ad spend and tacos ends\n } else {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previous value null and previous label 0\n tempData.push({\n revenueTotalCurrent: item?.revenue,\n revenueOrganicCurrent: item?.revenue_organic,\n revenuePpcCurrent: item?.revenue_ppc,\n revenueDspCurrent: item?.revenue_dsp,\n unitsSoldCurrent: item?.units_sold,\n trafficCurrent: item?.traffic,\n conversionCurrent: item?.conversion,\n // ad spend and tacos start\n adSpendTotalCurrent: item?.ad_spend_total,\n adSpendPpcCurrent: item?.sponsored_ad_spend,\n adSpendDspCurrent: item?.dsp_spends,\n tacosCurrent: item?.tacos,\n // ad spend and tacos ends\n date: currentReportDate,\n endDate: nextReportDate(\n index,\n response?.daily_facts?.current,\n 'current',\n ),\n\n revenueTotalPrevious: null,\n revenueOrganicPrevious: null,\n revenuePpcPrevious: null,\n revenueDspPrevious: null,\n unitsSoldPrevious: null,\n trafficPrevious: null,\n conversionPrevious: null,\n // ad spend and tacos start\n adSpendTotalPrevious: null,\n adSpendPpcPrevious: null,\n adSpendDspPrevious: null,\n tacosPrevious: null,\n // ad spend and tacos ends\n\n revenueTotalCurrentLabel:\n item?.revenue !== null ? item.revenue.toFixed(2) : '0.00',\n revenueOrganicCurrentLabel:\n item?.revenue_organic !== null\n ? item.revenue_organic?.toFixed(2)\n : '0.00',\n revenuePpcCurrentLabel:\n item?.revenue_ppc !== null ? item.revenue_ppc?.toFixed(2) : '0.00',\n revenueDspCurrentLabel:\n item?.revenue_dsp !== null ? item.revenue_dsp?.toFixed(2) : '0.00',\n unitsSoldCurrentLabel:\n item?.units_sold !== null ? item.units_sold?.toFixed(2) : '0.00',\n trafficCurrentLabel:\n item?.traffic !== null ? item.traffic?.toFixed(2) : '0.00',\n conversionCurrentLabel:\n item?.conversion !== null ? item.conversion?.toFixed(2) : '0',\n // ad spend and tacos start\n adSpendTotalCurrentLabel:\n item?.ad_spend_total !== null\n ? item.ad_spend_total.toFixed(2)\n : '0.00',\n adSpendPpcCurrentLabel:\n item?.sponsored_ad_spend !== null\n ? item.sponsored_ad_spend?.toFixed(2)\n : '0.00',\n adSpendDspCurrentLabel:\n item?.dsp_spends !== null ? item.dsp_spends?.toFixed(2) : '0.00',\n tacosCurrentLabel:\n item?.tacos !== null ? item.tacos?.toFixed(2) : '0',\n // ad spend and tacos ends\n\n revenueTotalPreviousLabel: '0.0',\n revenueOrganicPreviousLabel: '0.0',\n revenuePpcPreviousLabel: '0.0',\n revenueDspPreviousLabel: '0.0',\n unitsSoldPreviousLabel: '0.00',\n trafficPreviousLabel: '0.00',\n conversionPreviousLabel: '0',\n // ad spend and tacos start\n adSpendTotalPreviousLabel: '0.0',\n adSpendPpcPreviousLabel: '0.0',\n adSpendDspPreviousLabel: '0.0',\n tacosPreviousLabel: '0',\n // ad spend and tacos ends\n });\n }\n });\n }\n\n return tempData;\n};\n\nexport default BindSellerSalesPerformanceData;\n","/* ********** React imports ********** */\nimport React, {\n useState,\n useEffect,\n useCallback,\n useRef,\n useMemo,\n} from 'react';\n\n/* ********** Third party package imports ********** */\nimport $ from 'jquery';\nimport dayjs from 'dayjs';\nimport { toast } from 'react-toastify';\n\n/* ********** Local component file imports ********** */\nimport 'react-date-range/dist/theme/default.css'; // theme css file\nimport DashboardStyle from '../DashboardStyle';\nimport 'react-date-range/dist/styles.css'; // main style file\nimport SalesPerformanceContainer from './SalesPerformanceContainer';\nimport BindVendorSalesPerformanceData from './VendorReporting/BindVendorSalesPerformanceData';\nimport BindSellerSalesPerformanceData from './SellerReporting/BindSellerSalesPerformanceData';\nimport {\n SalesDashboardContainerDefaultProps,\n SalesDashboardContainerPropTypes,\n} from './SalesPropTypes';\nimport {\n getManagersList,\n getSalesGraphData,\n getSalesKeyContributionData,\n getBgsUserList,\n getMinDateForDashboard,\n getGoalPerformanceData,\n getVendorSalesPerformanceData,\n getLeadershipBrandPartners,\n getKeyContributorsdownloadReport,\n} from '../../../../api';\nimport {\n ADSPENDTOTAL,\n CUSTOM,\n HYBRID,\n ORDEREDREVENUE,\n PERFORMANCE,\n REVENUETOTAL,\n SELLERSMALL,\n SHIPPEDCOGS,\n VENDOR,\n VENDORSMALL,\n YEAROVERYEAR,\n allValueObj,\n metricsResponseKey,\n performanceTypeOptions,\n salesMetricsResponseKey,\n vendorSalesMetricsTypeOptions,\n} from '../../../../constants';\n\nconst getSymbolFromCurrency = require('currency-symbol-map');\nconst _ = require('lodash');\n\n/* ********** MAIN FUNCTION START HERE ********** */\nexport default function SalesDashboardContainer({\n // string\n responseID,\n currencySymbol,\n // boolean\n isBGS,\n isBGSAdmin,\n isAdManager,\n isBGSManager,\n isSpreetailRole,\n isAdTeamManager,\n isAdManagerAdmin,\n isCustomDateApply,\n includeInactiveBPs,\n includeSpreetailBrands,\n // object\n userInfo,\n customDate,\n selectedSalesDF,\n selectedMarketplace,\n selectedBrandPartner,\n selectedPerformanceType,\n // array\n loggedInUser,\n selectedUser,\n customDateState,\n marketplaceChoices,\n selectedManagerUser,\n // function\n setResponseID,\n setCustomDate,\n setSelectedUser,\n setSelectedSalesDF,\n bindUserListData,\n checkIsUserExist,\n setCurrencySymbol,\n bindBrandPartners,\n renderAllocateBar,\n setCustomDateState,\n setIsCustomDateApply,\n setSelectedManagerUser,\n setSelectedMarketplace,\n generateStringOfValues,\n setSelectedBrandPartner,\n displayContributionTable,\n setSelectedPerformanceType,\n bindMetricsContributionData,\n renderRecentAndPreviousLabel,\n handleMultiSelectDropdownFilterEvents,\n}) {\n const mounted = useRef(false);\n\n // https://bbe.atlassian.net/browse/PDV-9198\n // seller date logic - current date - 2 days\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() - 2);\n // seller date logic - current date - 3 days\n const currentDateForVendor = new Date();\n currentDateForVendor.setDate(currentDateForVendor.getDate() - 3);\n\n const [salesChartData, setSalesChartData] = useState([]);\n const [salesCurrentTotal, setSalesCurrentTotal] = useState({});\n const [salesPreviousTotal, setSalesPreviousTotal] = useState({});\n const [salesDifference, setSalesDifference] = useState({});\n const [showAdCustomDateModal, setShowAdCustomDateModal] = useState(false);\n const [showAdYearOverYearDateModal, setShowAdYearOverYearDateModal] =\n useState(false);\n const [salesGroupBy, setSalesGroupBy] = useState('daily');\n const [pageNumber, setPageNumber] = useState(1);\n const [contributionCount, setContributionCount] = useState(null);\n const [selectedRevenueType, setSelectedRevenueType] = useState(REVENUETOTAL);\n const [isDisabledTimeFrame, setIsDisabledTimeFrame] = useState(false);\n const [isMetricsDisabled, setIsMetricsDisabled] = useState({});\n\n // use state for bp list, marketplace list, bgs list, bgs manager list, ad manager list, ad team manager list,\n const [brandPartnerOptions, setBrandPartnerOptions] = useState([]);\n const [marketplaceOptions, setMarketplaceOptions] =\n useState(marketplaceChoices);\n const [userList, setUserList] = useState([]);\n const [userApiList, setUserApiList] = useState([]);\n const [managerUserList, setManagerUserList] = useState([]);\n const [managerUserApiList, setManagerUserApiList] = useState([]);\n const [isUsersSelected, setIsUsersSelected] = useState(false);\n const [isManagerUsersSelected, setIsManagerUsersSelected] = useState(false);\n\n const [responseId, setResponseId] = useState(null);\n const [salesGraphLoader, setSalesGraphLoader] = useState(false);\n const [selectedTabMetrics, setSelectedTabMetrics] = useState(\n selectedPerformanceType?.value === SELLERSMALL ? 'revenue' : ORDEREDREVENUE,\n );\n const [contributionData, setContributionData] = useState([]);\n const [contributionLoader, setContributionLoader] = useState(false);\n const [customDateError, setCustomDateError] = useState(null);\n const [isManagerAPICalled, setIsManagerAPICalled] = useState(\n !(isAdManagerAdmin || isBGSAdmin || isSpreetailRole),\n );\n const [isBGSAPICalled, setIsBGSAPICalled] = useState(\n !(isBGSAdmin || isBGSManager || isSpreetailRole),\n );\n\n const [selectedSalesMetrics, setSelectedSalesMetrics] = useState({\n revenueTotal: true,\n });\n\n const [yearOverYearDateState, setYearOverYearDateState] = useState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'yearOverYearSelection',\n },\n ]);\n\n const [selectedRevenueDropDownOption, setSelectedRevenueDropDownOption] =\n useState({\n id: 1,\n name: REVENUETOTAL,\n label: 'Total',\n value: REVENUETOTAL,\n });\n\n const [selectedAdSpendDropDownOption, setSelectedAdSpendDropDownOption] =\n useState({\n id: 1,\n name: ADSPENDTOTAL,\n label: 'Total',\n value: ADSPENDTOTAL,\n });\n const [selectedAdSpendType, setSelectedAdSpendType] = useState(ADSPENDTOTAL);\n\n // vendor const and variables\n const [selectedVendorMetricsType, setSelectedVendorMetricsType] = useState(\n vendorSalesMetricsTypeOptions?.[0],\n );\n const [selectedVendorMetrics, setSelectedVendorMetrics] = useState({\n orderedRevenue: true,\n });\n const [vendorSalesMetricsData, setVendorSalesMetricsData] = useState([]);\n const [vendorSalesCurrentTotal, setVendorSalesCurrentTotal] = useState({});\n const [vendorSalesPreviousTotal, setVendorSalesPreviousTotal] = useState({});\n const [vendorSalesDifference, setVendorSalesDifference] = useState({});\n\n // goals state variables started\n const [goalsPerformanceData, setGoalsPerformanceData] = useState([]);\n const [showCustomMonthModal, setShowCustomMonthModal] = useState(false);\n const [customMonthRange, setCustomMonthRange] = useState([\n {\n startMonth: new Date(),\n endMonth: new Date(),\n key: 'GoalsToPerformance',\n },\n ]);\n // usestate hook for download report\n const [downloadReportLoader, setDownloadReportLoader] = useState(false);\n\n const newDate = new Date();\n newDate.setDate(1);\n\n const todaysDate = dayjs(newDate).format('YYYY-MM-DD');\n\n const date = new Date();\n const firstDay = dayjs(\n new Date(date.getFullYear(), date.getMonth(), 1),\n ).format('YYYY-MM-DD');\n const lastDay = dayjs(\n new Date(date.getFullYear(), date.getMonth() + 1, 0),\n ).format('YYYY-MM-DD');\n\n const [customStartDate, setCustomStartDate] = useState(firstDay);\n const [customEndDate, setCustomEndDate] = useState(lastDay);\n\n const sdd = new Date(customStartDate);\n const edd = new Date(customEndDate);\n\n const startDateOfGoalsForSalesApi = `${sdd.getDate()}-${\n sdd.getMonth() + 1\n }-${sdd.getFullYear()}`;\n const endDateOfGoalsForSalesApi = `${edd.getDate()}-${\n edd.getMonth() + 1\n }-${edd.getFullYear()}`;\n // end Goals state variables\n\n // all brand partner object\n const allBrandPartnerObj = {\n label: 'All brand Partners',\n value: 'all',\n accountType: HYBRID,\n marketplaces: marketplaceChoices,\n };\n\n // default all value array of object\n const allObj = useMemo(() => {\n return allValueObj;\n }, []);\n\n // use effect for set marketplace options\n useEffect(() => {\n setMarketplaceOptions(marketplaceChoices);\n }, [marketplaceChoices]);\n\n // callback functions for get brand partners list\n const getLeadershipBrandPartnersList = useCallback(\n (callType, managersUser, bgsUser, selectedBp) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n getLeadershipBrandPartners(\n userInfo?.role,\n 'sales_performance',\n managerUserString,\n bgsUserString,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.length) {\n const bpList = bindBrandPartners(response?.data);\n\n setBrandPartnerOptions(bpList);\n const brandPartner =\n callType === 'useEffect' ? selectedBp : bpList?.[0];\n setSelectedBrandPartner(brandPartner);\n\n if (bpList?.length === 1 && brandPartner?.accountType === VENDOR) {\n setSelectedPerformanceType(performanceTypeOptions?.[1]);\n } else {\n setSelectedPerformanceType(performanceTypeOptions?.[0]);\n }\n } else {\n setBrandPartnerOptions([]);\n setSelectedBrandPartner({});\n setSelectedPerformanceType({});\n }\n });\n },\n [\n bindBrandPartners,\n generateStringOfValues,\n includeInactiveBPs,\n includeSpreetailBrands,\n setSelectedBrandPartner,\n setSelectedPerformanceType,\n userInfo,\n ],\n );\n\n // get user list - bgs and ad manager\n const getBgsList = useCallback(\n (role, managers, users, callType, selectedDailyFact) => {\n setSalesGraphLoader(true);\n setContributionLoader(selectedDailyFact !== CUSTOM);\n\n const managersString = generateStringOfValues(managers);\n\n let API = '';\n if (role === 'BGS') {\n API = getBgsUserList(role, managersString);\n }\n if (role === 'Ad Manager') {\n API = getManagersList(role, 'sales_performance', managersString);\n }\n\n API.then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const formatedApiData = bindUserListData(response?.data, role);\n setUserList(formatedApiData?.userListWithAll);\n setUserApiList(formatedApiData?.userList);\n\n const isUserExist = checkIsUserExist(\n formatedApiData?.userList,\n users,\n );\n\n if (callType !== 'bgsFilter') {\n if (\n isUserExist &&\n callType !== 'resetFilter' &&\n callType !== 'managerUserFilter'\n ) {\n setSelectedUser(users);\n } else {\n setSelectedUser(formatedApiData?.userListWithAll);\n }\n }\n\n setIsBGSAPICalled(true);\n } else {\n setUserList([]);\n setSelectedUser([]);\n setUserApiList([]);\n }\n }\n });\n },\n\n [\n bindUserListData,\n checkIsUserExist,\n generateStringOfValues,\n setSelectedUser,\n ],\n );\n\n // get manager user list - bgs manager and ad team manager\n const getManagerUserList = useCallback(\n (role, managerUsers, users, callType, selectedDailyFact) => {\n setSalesGraphLoader(true);\n setContributionLoader(selectedDailyFact !== CUSTOM);\n\n let API = '';\n if (role === 'BGS Manager') {\n API = getBgsUserList(role);\n }\n if (role === 'Ad Team Manager') {\n API = getManagersList(role, 'sales_performance');\n }\n\n API.then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const formatedApiData = bindUserListData(response?.data);\n setManagerUserApiList(formatedApiData?.userList);\n setManagerUserList(formatedApiData?.userListWithAll);\n\n const isManagerUserExist = checkIsUserExist(\n formatedApiData?.userList,\n managerUsers,\n );\n let managerUser = null;\n\n if (\n (isBGSAdmin || isAdManagerAdmin || isSpreetailRole) &&\n isManagerUserExist &&\n callType !== 'resetFilter'\n ) {\n setSelectedManagerUser(managerUsers);\n managerUser = managerUsers;\n } else {\n setSelectedManagerUser(formatedApiData?.userListWithAll);\n managerUser =\n formatedApiData?.userList?.length > 1\n ? null\n : formatedApiData?.userList;\n }\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n managerUser,\n users,\n callType,\n selectedDailyFact,\n );\n }\n if (isAdManagerAdmin) {\n getBgsList(\n 'Ad Manager',\n managerUser,\n users,\n callType,\n selectedDailyFact,\n );\n }\n\n setIsManagerAPICalled(true);\n } else {\n setManagerUserApiList([]);\n setManagerUserList([]);\n setSelectedManagerUser([]);\n }\n }\n });\n },\n\n [\n bindUserListData,\n checkIsUserExist,\n getBgsList,\n isAdManagerAdmin,\n isBGSAdmin,\n isSpreetailRole,\n setSelectedManagerUser,\n ],\n );\n\n // calling bgs and advertising user api\n const callingBgsAndAdUserApi = useCallback(\n (callType, managerUsers, users, selectedDailyFact) => {\n // advertising api\n if (isAdManagerAdmin) {\n getManagerUserList(\n 'Ad Team Manager',\n managerUsers,\n users,\n callType,\n selectedDailyFact,\n );\n }\n\n if (isAdTeamManager) {\n getBgsList(\n 'Ad Manager',\n loggedInUser,\n users,\n callType,\n selectedDailyFact,\n );\n }\n\n // bgs api\n if (isBGSAdmin || isSpreetailRole) {\n getManagerUserList(\n 'BGS Manager',\n managerUsers,\n users,\n callType,\n selectedDailyFact,\n );\n }\n\n if (isBGSManager) {\n getBgsList('BGS', loggedInUser, users, callType, selectedDailyFact);\n }\n },\n [\n isAdManagerAdmin,\n isAdTeamManager,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n getManagerUserList,\n getBgsList,\n loggedInUser,\n ],\n );\n\n // use effect for bgs and advertising team\n useEffect(() => {\n mounted.current = true;\n callingBgsAndAdUserApi(\n 'useEffect',\n selectedManagerUser,\n selectedUser,\n selectedSalesDF?.value,\n );\n return () => {\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [callingBgsAndAdUserApi]);\n\n // bind the error message if data not available for selecetd custom date\n // API to get the data available date for sales\n const getMinDateForSalesDashboard = useCallback(() => {\n const dates = [];\n const selectedUserString = generateStringOfValues(selectedUser);\n const selectedManagerUserString =\n generateStringOfValues(selectedManagerUser);\n\n getMinDateForDashboard(\n selectedMarketplace?.value,\n selectedManagerUserString,\n selectedUserString,\n null,\n 'sales_dashboard',\n ).then((res) => {\n if (res?.status === 200) {\n if (res?.data?.result && res?.data?.result.length) {\n dates.push(\n new Date(dayjs(customDateState[0].startDate).format('MM/DD/YYYY')),\n );\n dates.push(\n new Date(\n dayjs(res?.data?.result[0]?.sales_performance_date).format(\n 'MM/DD/YYYY',\n ),\n ),\n );\n\n // if selected date is lower that data_availeble_date then we need to show the error messages\n if (dates[0] < dates[1]) {\n setCustomDateError({\n fromDate: dates[0],\n toDate: dates[1],\n });\n } else {\n setCustomDateError(null);\n }\n }\n }\n });\n }, [\n customDateState,\n generateStringOfValues,\n selectedManagerUser,\n selectedMarketplace,\n selectedUser,\n ]);\n\n const checkMetricsAvailability = useCallback((response, timeFrame) => {\n const tempData = [];\n\n setIsDisabledTimeFrame(false);\n // if we get total value of any metrics is 0, then disabled that metrics\n // we setting the disable flag for each metrics\n let localMetricDisabled = {};\n\n _.keys(salesMetricsResponseKey).filter((option) => {\n if (\n (timeFrame === CUSTOM &&\n response?.current_sum[metricsResponseKey[option]] === 0) ||\n (response?.current_sum[metricsResponseKey[option]] === 0 &&\n response?.previous_sum[metricsResponseKey[option]] === 0)\n ) {\n localMetricDisabled = { ...localMetricDisabled, [option]: true };\n } else if (timeFrame === 'year') {\n // PDV-6572 If year_to_date option selected then disabled PPC and DSP\n localMetricDisabled = { ...localMetricDisabled, revenuePpc: true };\n localMetricDisabled = { ...localMetricDisabled, revenueDsp: true };\n } else {\n localMetricDisabled = { ...localMetricDisabled, [option]: false };\n }\n return null;\n });\n\n // if we don't have data for PPC then we need to disabled the PPC and organic also.\n\n if (\n (timeFrame === CUSTOM &&\n response?.current_sum[metricsResponseKey.revenuePpc] === 0) ||\n (response?.current_sum[metricsResponseKey.revenuePpc] === 0 &&\n response?.previous_sum[metricsResponseKey.revenuePpc] === 0)\n ) {\n localMetricDisabled = {\n ...localMetricDisabled,\n revenueOrganic: true,\n };\n }\n\n // if we get total value of any metrics is 0 when we change the Time frame, then disabled that Tiem frame filter\n _.keys(salesMetricsResponseKey).filter((option) => {\n if (\n _.keys(selectedSalesMetrics).includes(option) &&\n localMetricDisabled[option] === true\n ) {\n setIsDisabledTimeFrame(true);\n }\n return null;\n });\n\n // disabled tacos if selected date is less than 1st August 2022\n if (response?.current?.length) {\n const isHavingDspPPC = {\n isHavingDsp: response?.is_having_dsp,\n isHavingPpc: response?.is_having_ppc,\n };\n\n const lastElement = response?.current?.at(-1);\n if (\n timeFrame === CUSTOM &&\n new Date(dayjs(lastElement.report_date).format('MM D YYYY')) <\n new Date(dayjs('2022-08-01').format('MM D YYYY'))\n ) {\n const tacosData = response?.daily_facts?.current_sum?.tacos;\n\n if (isHavingDspPPC?.isHavingDsp && !isHavingDspPPC?.isHavingPpc) {\n if (tacosData === 0) {\n localMetricDisabled = {\n ...localMetricDisabled,\n tacos: true,\n };\n } else {\n localMetricDisabled = {\n ...localMetricDisabled,\n tacos: false,\n };\n }\n } else {\n localMetricDisabled = {\n ...localMetricDisabled,\n tacos: true,\n };\n }\n }\n }\n\n setIsMetricsDisabled(localMetricDisabled);\n return tempData;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // handle before and after sales performance api call\n const handleBeforAndAfterApiCall = useCallback((key) => {\n if (key === PERFORMANCE) {\n setSalesChartData([]);\n setSalesPreviousTotal({});\n setSalesCurrentTotal({});\n setSalesDifference({});\n setIsMetricsDisabled({\n revenueTotal: true,\n revenueOrganic: true,\n revenuePpc: true,\n revenueDsp: true,\n unitsSold: true,\n traffic: true,\n conversion: true,\n adSpendTotal: true,\n adSpendPpc: true,\n adSpendDsp: true,\n tacos: true,\n });\n\n setVendorSalesMetricsData([]);\n setVendorSalesCurrentTotal({});\n setVendorSalesPreviousTotal({});\n setVendorSalesDifference({});\n\n setVendorSalesMetricsData([]);\n setVendorSalesCurrentTotal({});\n setVendorSalesPreviousTotal({});\n setVendorSalesDifference({});\n }\n }, []);\n\n // get sales graph data\n const getSalesData = useCallback(\n (\n selectedDailyFact,\n selectedGroupBy,\n brandPartner,\n marketplace,\n managersUser,\n bgsUser,\n performanceType,\n vendorMetricsType,\n startDate = null,\n endDate = null,\n inactiveBPs = includeInactiveBPs,\n spreetailBrands = includeSpreetailBrands,\n ) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n setSalesGraphLoader(true);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n\n // get seller data\n if (performanceType === SELLERSMALL) {\n getSalesGraphData(\n selectedDailyFact,\n selectedGroupBy,\n brandPartner,\n marketplace,\n managerUserString,\n bgsUserString,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n inactiveBPs,\n spreetailBrands,\n ).then((response) => {\n if (mounted.current) {\n if (response?.status === 200 && response?.data?.result) {\n const responseData = response?.data?.result;\n const salesGraphData =\n BindSellerSalesPerformanceData(responseData);\n setSalesChartData(salesGraphData);\n setSalesCurrentTotal(responseData?.current_sum);\n setSalesPreviousTotal(responseData?.previous_sum);\n setSalesDifference(responseData?.difference_data);\n checkMetricsAvailability(responseData, selectedDailyFact);\n\n setSalesGraphLoader(false);\n } else {\n handleBeforAndAfterApiCall(PERFORMANCE);\n setSalesGraphLoader(false);\n }\n }\n });\n } else if (performanceType === VENDORSMALL) {\n getVendorSalesPerformanceData(\n selectedDailyFact,\n selectedGroupBy,\n brandPartner,\n marketplace,\n managerUserString,\n bgsUserString,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n inactiveBPs,\n spreetailBrands,\n vendorMetricsType,\n ).then((response) => {\n if (mounted.current) {\n if (response?.status === 200 && response?.data?.result) {\n const responseData = response?.data?.result;\n const vendorData = BindVendorSalesPerformanceData(\n responseData,\n vendorMetricsType,\n selectedDailyFact,\n );\n setVendorSalesMetricsData(vendorData?.metricsData);\n setVendorSalesCurrentTotal(vendorData?.salesCurrentTotal);\n setVendorSalesPreviousTotal(vendorData?.salesPreviousTotal);\n setVendorSalesDifference(vendorData?.salesDifference);\n\n setSalesGraphLoader(false);\n } else {\n handleBeforAndAfterApiCall(PERFORMANCE);\n setSalesGraphLoader(false);\n }\n }\n });\n } else {\n setSalesGraphLoader(false);\n }\n },\n [\n includeInactiveBPs,\n includeSpreetailBrands,\n generateStringOfValues,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n checkMetricsAvailability,\n handleBeforAndAfterApiCall,\n ],\n );\n\n // get contribution and key metris contribution data\n const getContributionData = useCallback(\n (\n selectedDailyFact,\n brandPartner,\n marketplace,\n managersUser,\n bgsUser,\n selectedMetrics,\n performanceType,\n vendorMetricsType = null,\n startDate = null,\n endDate = null,\n page,\n inactiveBPs = includeInactiveBPs,\n spreetailBrands = includeSpreetailBrands,\n ) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n setContributionLoader(true);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n\n const vendorMetrics =\n performanceType === VENDORSMALL ? vendorMetricsType : null;\n\n getSalesKeyContributionData(\n selectedDailyFact,\n brandPartner,\n marketplace,\n managerUserString,\n bgsUserString,\n selectedMetrics,\n vendorMetrics,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n page,\n inactiveBPs || includeInactiveBPs,\n spreetailBrands || includeSpreetailBrands,\n ).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const responseData =\n response?.data?.result || response?.data?.results;\n if (responseData) {\n setContributionData(bindMetricsContributionData(responseData));\n setContributionCount(response?.data?.count);\n } else {\n setContributionData([]);\n setPageNumber(page);\n }\n } else {\n setContributionData([]);\n setPageNumber(page);\n }\n }\n setContributionLoader(false);\n });\n },\n [\n includeInactiveBPs,\n includeSpreetailBrands,\n generateStringOfValues,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n bindMetricsContributionData,\n ],\n );\n\n const salesYearAndCustomDateFilter = (\n startDate,\n endDate,\n dailyFactFlag,\n brandPartner,\n marketplace,\n managerUser,\n bgsUser,\n performanceType,\n vendorMetricsType,\n ) => {\n const temp = 'daily';\n let sd = startDate;\n let ed = endDate;\n setSalesGroupBy(temp);\n\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n setCustomDate({\n startDate: sd,\n endDate: ed,\n dateType: dailyFactFlag,\n });\n\n getSalesData(\n dailyFactFlag,\n temp,\n brandPartner,\n marketplace,\n managerUser,\n bgsUser,\n performanceType,\n vendorMetricsType,\n sd,\n ed,\n );\n\n if (dailyFactFlag === YEAROVERYEAR) {\n getContributionData(\n dailyFactFlag,\n brandPartner,\n marketplace,\n managerUser,\n bgsUser,\n selectedTabMetrics,\n performanceType,\n vendorMetricsType,\n sd,\n ed,\n 1,\n );\n }\n setPageNumber(1);\n };\n\n // get goals data\n const getGoalsData = useCallback(\n (\n orderBy,\n brandPartner,\n marketplaces,\n startDate,\n endDate,\n bgsManagerList,\n bgsList,\n page,\n inactiveBp = includeInactiveBPs,\n spreetailBrands = includeSpreetailBrands,\n ) => {\n setContributionLoader(true);\n\n const bgsUserString = generateStringOfValues(bgsList);\n const managerUserString = generateStringOfValues(bgsManagerList);\n\n getGoalPerformanceData(\n orderBy,\n brandPartner,\n marketplaces,\n startDate,\n endDate,\n managerUserString,\n bgsUserString,\n page,\n isBGS,\n isBGSManager,\n isBGSAdmin || isSpreetailRole,\n inactiveBp,\n spreetailBrands,\n ).then((response) => {\n setContributionLoader(false);\n\n if (response?.status === 200) {\n setGoalsPerformanceData(\n response?.data?.result || response?.data?.results,\n );\n setContributionCount(response?.data?.count);\n setPageNumber(page);\n } else {\n setGoalsPerformanceData([]);\n }\n });\n },\n [\n includeInactiveBPs,\n includeSpreetailBrands,\n generateStringOfValues,\n isBGS,\n isBGSManager,\n isBGSAdmin,\n isSpreetailRole,\n ],\n );\n\n // get metrics, data and key contribution data\n // - called only at the begining.\n useEffect(() => {\n mounted.current = true;\n if (\n (responseId === null || responseID === 'response') &&\n isManagerAPICalled &&\n isBGSAPICalled\n ) {\n const startDate = customDate?.startDate;\n const endDate = customDate?.endDate;\n const dateType = customDate?.dateType;\n\n getMinDateForSalesDashboard();\n\n // get brand partners list\n getLeadershipBrandPartnersList(\n 'useEffect',\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner,\n );\n const vendorMetricsType =\n selectedPerformanceType?.value === VENDORSMALL ? ORDEREDREVENUE : null;\n\n if (selectedTabMetrics !== 'goals') {\n if (dateType === CUSTOM || dateType === YEAROVERYEAR) {\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n ORDEREDREVENUE,\n startDate,\n endDate,\n );\n }\n if (dateType === YEAROVERYEAR) {\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n selectedPerformanceType?.value,\n vendorMetricsType,\n startDate,\n endDate,\n pageNumber,\n );\n }\n if (dateType === null) {\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n ORDEREDREVENUE,\n null,\n null,\n );\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n selectedPerformanceType?.value,\n vendorMetricsType,\n null,\n null,\n pageNumber,\n );\n }\n } else {\n getGoalsData(\n 'highest_sales',\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n customStartDate,\n customEndDate,\n selectedManagerUser,\n selectedUser,\n pageNumber,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n getSalesData(\n CUSTOM,\n salesGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n ORDEREDREVENUE,\n startDateOfGoalsForSalesApi,\n endDateOfGoalsForSalesApi,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n setResponseId('12345');\n setResponseID(null);\n }\n return () => {\n mounted.current = false;\n };\n }, [\n customDate,\n customEndDate,\n customStartDate,\n getContributionData,\n getGoalsData,\n getMinDateForSalesDashboard,\n getSalesData,\n includeInactiveBPs,\n includeSpreetailBrands,\n isAdManagerAdmin,\n isBGSAPICalled,\n isBGSAdmin,\n isSpreetailRole,\n isManagerAPICalled,\n pageNumber,\n responseID,\n responseId,\n salesGroupBy,\n selectedManagerUser,\n selectedMarketplace,\n selectedPerformanceType,\n selectedSalesDF,\n selectedTabMetrics,\n selectedUser,\n endDateOfGoalsForSalesApi,\n startDateOfGoalsForSalesApi,\n setResponseID,\n selectedBrandPartner,\n getLeadershipBrandPartnersList,\n ]);\n\n // https://bbe.atlassian.net/browse/PDV-8757 - leadership dashboard improvements\n // download key contributors report\n const handleKeyContributorsDownloadReport = () => {\n setDownloadReportLoader(true);\n\n const userString = generateStringOfValues(selectedUser);\n const managerUserString = generateStringOfValues(selectedManagerUser);\n\n const dashboard =\n selectedPerformanceType?.value === VENDORSMALL\n ? selectedVendorMetricsType?.value === ORDEREDREVENUE\n ? 'ordered_revenue'\n : 'shipped_cogs'\n : 'sales_performance';\n\n const startDate = dayjs(customStartDate).format('YYYY-MM-DD');\n const endDate = dayjs(customEndDate).format('YYYY-MM-DD');\n\n getKeyContributorsdownloadReport(\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n dashboard,\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedTabMetrics,\n managerUserString,\n userString,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n setDownloadReportLoader(false);\n } else {\n toast.error('Oops! Something went wrong...');\n setDownloadReportLoader(false);\n }\n });\n };\n\n // handle custom date states\n const handleCustomDateStates = (tempStartDate, tempEndDate) => {\n setCustomDateState([\n {\n startDate: tempStartDate,\n endDate: tempEndDate,\n key: 'adSelection',\n },\n ]);\n };\n\n // handle custom date states\n const handleYOYDateStates = (tempStartDate, tempEndDate) => {\n setYearOverYearDateState([\n {\n startDate: tempStartDate,\n endDate: tempEndDate,\n key: 'yearOverYearSelection',\n },\n ]);\n };\n\n // get custom dates for api\n const getcustomDatesForAPI = (dateType) => {\n const dateState =\n dateType === CUSTOM ? customDateState : yearOverYearDateState;\n const dateStateHandler =\n dateType === CUSTOM ? handleCustomDateStates : handleYOYDateStates;\n\n let apiStartDate = dateState?.[0]?.startDate;\n let apiEndDate = dateState?.[0]?.endDate;\n\n const sellerDate = dayjs(currentDate).format('YYYY-MM-DD');\n\n if (dateType === CUSTOM) {\n handleYOYDateStates(currentDateForVendor, currentDateForVendor);\n }\n if (dateType === YEAROVERYEAR) {\n handleCustomDateStates(currentDateForVendor, currentDateForVendor);\n }\n\n const tempStartDate = dayjs(dateState?.[0]?.startDate).format('YYYY-MM-DD');\n const tempEndDate = dayjs(dateState?.[0]?.endDate).format('YYYY-MM-DD');\n\n if (tempStartDate === sellerDate) {\n apiStartDate = currentDateForVendor;\n apiEndDate = currentDateForVendor;\n dateStateHandler(currentDateForVendor, currentDateForVendor, 'main');\n } else if (tempEndDate === sellerDate) {\n apiStartDate = dateState?.[0]?.startDate;\n apiEndDate = currentDateForVendor;\n dateStateHandler(dateState?.[0]?.startDate, currentDateForVendor, 'main');\n }\n\n return { apiStartDate, apiEndDate };\n };\n\n // calling leadership BP and dashboard performance api when filter value changes\n const callingBPandDashboardAPI = (\n callType,\n managerUsers,\n users,\n selectedBp,\n ) => {\n let selectedTab = '';\n let brandPartner = {};\n let marketplace = {};\n let performanceType = {};\n let vendorMetricsType = {};\n\n const managerUserString = generateStringOfValues(managerUsers);\n const userString = generateStringOfValues(users);\n\n getLeadershipBrandPartners(\n userInfo?.role,\n 'sales_performance',\n managerUserString,\n userString,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.length) {\n setPageNumber(1);\n\n const bpList = bindBrandPartners(response?.data);\n setBrandPartnerOptions(bpList);\n\n if (callType === 'bpFilter') {\n if (selectedBp?.value === 'all') {\n brandPartner = allBrandPartnerObj;\n } else {\n brandPartner = selectedBp;\n }\n } else if (bpList?.length === 1) {\n brandPartner = bpList?.[0];\n } else {\n brandPartner = allBrandPartnerObj;\n }\n\n marketplace = brandPartner?.marketplaces?.[0];\n setSelectedBrandPartner(brandPartner);\n setSelectedMarketplace(marketplace);\n setMarketplaceOptions(brandPartner?.marketplaces);\n\n let apiStartDate = null;\n let apiEndDate = null;\n\n if (selectedSalesDF?.value === CUSTOM) {\n apiStartDate = customDateState?.[0]?.startDate;\n apiEndDate = customDateState?.[0]?.endDate;\n }\n\n if (selectedSalesDF?.value === YEAROVERYEAR) {\n apiStartDate = yearOverYearDateState?.[0]?.startDate;\n apiEndDate = yearOverYearDateState?.[0]?.endDate;\n }\n\n // Handeling the default states based on account type of selected BP.\n if (brandPartner?.accountType === VENDOR) {\n // handle default states when selected brand partner has Vendor account type\n selectedTab = ORDEREDREVENUE;\n performanceType = performanceTypeOptions?.[1];\n vendorMetricsType = vendorSalesMetricsTypeOptions?.[0];\n\n setSelectedTabMetrics(selectedTab);\n setSelectedPerformanceType(performanceType);\n setSelectedVendorMetricsType(vendorMetricsType);\n setSelectedVendorMetrics({ orderedRevenue: true });\n\n // handeling default T - 3 date logic for vendor\n if (\n selectedSalesDF?.value !== CUSTOM &&\n selectedSalesDF?.value !== YEAROVERYEAR\n ) {\n handleCustomDateStates(currentDateForVendor, currentDateForVendor);\n handleYOYDateStates(currentDateForVendor, currentDateForVendor);\n } else {\n let apiCustomDate = { apiStartDate: null, apiEndDate: null };\n // handeling default CUSTOM date T - 3 date logic for vendor\n if (selectedSalesDF?.value === CUSTOM) {\n apiCustomDate = getcustomDatesForAPI(CUSTOM);\n }\n\n // handeling default YOY T - 3 date logic for vendor\n if (selectedSalesDF?.value === YEAROVERYEAR) {\n apiCustomDate = getcustomDatesForAPI(YEAROVERYEAR);\n }\n\n apiStartDate = apiCustomDate?.apiStartDate;\n apiEndDate = apiCustomDate?.apiEndDate;\n }\n } else {\n // handle default states when selected brand partner has Seller account type\n selectedTab = 'revenue';\n performanceType = performanceTypeOptions?.[0];\n setSelectedTabMetrics('revenue');\n setSelectedPerformanceType(performanceType);\n }\n\n if (selectedSalesDF?.value === CUSTOM) {\n salesYearAndCustomDateFilter(\n apiStartDate,\n apiEndDate,\n selectedSalesDF?.value,\n brandPartner?.value,\n marketplace?.value,\n managerUsers,\n users,\n performanceType?.value,\n vendorMetricsType?.value,\n );\n } else if (selectedSalesDF?.value === YEAROVERYEAR) {\n salesYearAndCustomDateFilter(\n apiStartDate,\n apiEndDate,\n selectedSalesDF?.value,\n brandPartner?.value,\n marketplace?.value,\n managerUsers,\n users,\n performanceType?.value,\n vendorMetricsType?.value,\n );\n } else {\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n brandPartner?.value,\n marketplace?.value,\n managerUsers,\n users,\n performanceType?.value,\n vendorMetricsType?.value,\n );\n getContributionData(\n selectedSalesDF?.value,\n brandPartner?.value,\n marketplace?.value,\n managerUsers,\n users,\n selectedTab,\n performanceType?.value,\n vendorMetricsType?.value,\n null,\n null,\n 1,\n );\n }\n } else {\n setSalesGraphLoader(false);\n setContributionLoader(false);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setBrandPartnerOptions([]);\n setSelectedBrandPartner({});\n setSelectedPerformanceType({});\n setContributionData([]);\n handleBeforAndAfterApiCall(PERFORMANCE);\n }\n });\n };\n\n // https://bbe.atlassian.net/browse/PDV-8757 - leadership dashboard improvements\n // handle brand partner reporting filter events\n const handleBrandPartnerFilterEvents = (event) => {\n // Handeling the states and API calls when user select specific Brand Partner\n if (event?.value !== selectedBrandPartner?.value) {\n setSelectedBrandPartner(event);\n\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n let assignedUser = [];\n let assignedMangerUser = [];\n\n if (event?.value === 'all') {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n const userApiListWithAll = [...userApiList];\n if (userApiListWithAll?.length) {\n userApiListWithAll.unshift(allObj?.[0]);\n }\n\n const managerUserApiListWithAll = [...managerUserApiList];\n if (managerUserApiListWithAll?.length)\n managerUserApiListWithAll.unshift(allObj?.[0]);\n\n assignedUser = selectedUser?.length ? selectedUser : userApiListWithAll;\n assignedMangerUser = selectedManagerUser?.length\n ? selectedManagerUser\n : managerUserApiListWithAll;\n\n if (selectedManagerUser?.length === 0)\n setManagerUserList(managerUserApiListWithAll);\n if (selectedUser?.length === 0) setUserList(userApiListWithAll);\n } else if (isBGSAdmin || isBGSManager || isBGS || isSpreetailRole) {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n assignedUser = event?.bgs !== null ? [event?.bgs] : [];\n assignedMangerUser =\n event?.bgsManager !== null ? [event?.bgsManager] : [];\n } else {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n assignedUser = event?.adManager !== null ? [event?.adManager] : [];\n assignedMangerUser =\n event?.adTeamManager !== null ? [event?.adTeamManager] : [];\n }\n\n // set assigned bgs manager/ad team manager, bgs/ad manager of selected BP to multi-select bgs manager/ad team manager, bgs/ad manager dropdown filter.\n setSelectedManagerUser(assignedMangerUser);\n setSelectedUser(assignedUser);\n\n // if selected brand partner do not have assigned bgs manager/ad team manager and bgs/ad manager then clear the multiselect manager user and user dropdown filter list\n\n if (assignedMangerUser?.length === 0) {\n setManagerUserList([]);\n } else {\n const managerUserApiListWithAll = [...managerUserApiList];\n managerUserApiListWithAll.unshift(allObj?.[0]);\n setManagerUserList(managerUserApiListWithAll);\n }\n if (assignedUser?.length === 0) setUserList([]);\n\n // if selected brand partner have assigned bgs manager/ad team manager and bgs/ad manager then get its the bgs/ad manager list\n if (assignedMangerUser?.length) {\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n assignedMangerUser,\n assignedUser,\n 'BPFilter',\n selectedSalesDF?.value,\n );\n }\n\n if (isAdManagerAdmin) {\n getBgsList(\n 'Ad Manager',\n assignedMangerUser,\n assignedUser,\n 'BPFilter',\n selectedSalesDF?.value,\n );\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI(\n 'bpFilter',\n assignedMangerUser?.length ? assignedMangerUser : allObj,\n assignedUser?.length ? assignedUser : allObj,\n event,\n );\n }\n };\n\n // handle seller & vendor reporting filter events\n const handleSellerVendorFilterEvents = (event) => {\n let selectedTab = '';\n\n let apiStartDate = null;\n let apiEndDate = null;\n\n if (selectedSalesDF?.value === CUSTOM) {\n apiStartDate = customDateState?.[0]?.startDate;\n apiEndDate = customDateState?.[0]?.endDate;\n }\n\n if (selectedSalesDF?.value === YEAROVERYEAR) {\n apiStartDate = yearOverYearDateState?.[0]?.startDate;\n apiEndDate = yearOverYearDateState?.[0]?.endDate;\n }\n\n if (event?.value !== selectedPerformanceType?.value) {\n setSelectedPerformanceType(event);\n if (event?.value === SELLERSMALL) {\n selectedTab = 'revenue';\n setSelectedTabMetrics('revenue');\n\n if (\n selectedSalesDF?.value !== CUSTOM &&\n selectedSalesDF?.value !== YEAROVERYEAR\n ) {\n handleCustomDateStates(currentDate, currentDate);\n }\n }\n\n if (event?.value === VENDORSMALL) {\n setSelectedVendorMetrics({ orderedRevenue: true });\n selectedTab = ORDEREDREVENUE;\n setSelectedTabMetrics(ORDEREDREVENUE);\n setSelectedVendorMetricsType(vendorSalesMetricsTypeOptions?.[0]);\n\n // handeling default T - 3 date logic for vendor\n if (\n selectedSalesDF?.value !== CUSTOM &&\n selectedSalesDF?.value !== YEAROVERYEAR\n ) {\n handleCustomDateStates(currentDateForVendor, currentDateForVendor);\n handleYOYDateStates(currentDateForVendor, currentDateForVendor);\n } else {\n let apiCustomDate = { apiStartDate: null, apiEndDate: null };\n // handeling default CUSTOM date T - 3 date logic for vendor\n if (selectedSalesDF?.value === CUSTOM) {\n apiCustomDate = getcustomDatesForAPI(CUSTOM);\n }\n\n // handeling default YOY T - 3 date logic for vendor\n if (selectedSalesDF?.value === YEAROVERYEAR) {\n apiCustomDate = getcustomDatesForAPI(YEAROVERYEAR);\n }\n\n apiStartDate = apiCustomDate?.apiStartDate;\n apiEndDate = apiCustomDate?.apiEndDate;\n }\n }\n\n if (selectedSalesDF?.value === CUSTOM) {\n salesYearAndCustomDateFilter(\n apiStartDate,\n apiEndDate,\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n event?.value,\n ORDEREDREVENUE,\n );\n } else if (selectedSalesDF?.value === YEAROVERYEAR) {\n salesYearAndCustomDateFilter(\n apiStartDate,\n apiEndDate,\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n event?.value,\n ORDEREDREVENUE,\n );\n } else {\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n event?.value,\n ORDEREDREVENUE,\n );\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTab,\n event?.value,\n selectedTab,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n }\n };\n\n // handle marketplace filter events\n const handleMarketplace = (event) => {\n if (event?.value !== selectedMarketplace?.value) {\n setSelectedMarketplace(event);\n setCurrencySymbol(getSymbolFromCurrency(event?.currency));\n\n if (selectedSalesDF?.value === CUSTOM) {\n salesYearAndCustomDateFilter(\n customDateState[0]?.startDate,\n customDateState[0]?.endDate,\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n } else if (selectedSalesDF?.value === YEAROVERYEAR) {\n salesYearAndCustomDateFilter(\n yearOverYearDateState[0]?.startDate,\n yearOverYearDateState[0]?.endDate,\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n } else if (selectedTabMetrics === 'goals') {\n if (event?.value !== 'all') {\n setSelectedTabMetrics('revenue');\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n 'revenue',\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n null,\n null,\n 1,\n );\n } else {\n getGoalsData(\n 'highest_sales',\n selectedBrandPartner?.value,\n event?.value,\n customStartDate,\n customEndDate,\n selectedManagerUser,\n selectedUser,\n pageNumber,\n );\n getSalesData(\n CUSTOM,\n salesGroupBy,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n startDateOfGoalsForSalesApi,\n endDateOfGoalsForSalesApi,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n } else {\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n }\n };\n\n // handle sales date filter events\n const handleSalesDailyFact = (event) => {\n const { value } = event;\n\n const defaultCurrentDate =\n selectedPerformanceType?.value === VENDORSMALL\n ? currentDateForVendor\n : currentDate;\n\n if (value !== CUSTOM && selectedSalesDF?.value !== CUSTOM) {\n setCustomDateError(null);\n setCustomDateState([\n {\n startDate: defaultCurrentDate,\n endDate: defaultCurrentDate,\n key: 'adSelection',\n },\n ]);\n } else if (\n value !== YEAROVERYEAR &&\n selectedSalesDF?.value !== YEAROVERYEAR\n ) {\n setYearOverYearDateState([\n {\n startDate: defaultCurrentDate,\n endDate: defaultCurrentDate,\n key: 'yearOverYearSelection',\n },\n ]);\n }\n\n if (value === CUSTOM) {\n setShowAdCustomDateModal(true);\n } else if (value === YEAROVERYEAR) {\n setShowAdYearOverYearDateModal(true);\n } else {\n setCustomDateError(null);\n let groupByOption = 'daily';\n if (value === 'year') {\n groupByOption = 'weekly';\n }\n setSelectedSalesDF(event);\n setIsCustomDateApply(false);\n setSalesGroupBy(groupByOption);\n getSalesData(\n value,\n groupByOption,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n getContributionData(\n value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n null,\n null,\n pageNumber,\n );\n setCustomDate({\n startDate: null,\n endDate: null,\n dateType: null,\n });\n }\n };\n\n // handle bgs manager/ad team managerfilter events\n const handleManagerUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedManagerUser,\n managerUserApiList,\n );\n setSelectedManagerUser(selectedValues);\n setIsManagerUsersSelected(true);\n };\n\n // handle bgs manager/ad team manager on dropdwon menu close events\n const handleManagerUserOnMenuCloseEvents = () => {\n if (isManagerUsersSelected) {\n const managerUsers =\n selectedManagerUser?.length > 0 ? selectedManagerUser : managerUserList;\n setSelectedManagerUser(managerUsers);\n const isAllUser = managerUsers?.some((user) => user?.value === 'all');\n const users = allObj;\n\n if (isBGSAdmin || isSpreetailRole) {\n if (isAllUser) {\n getBgsList(\n 'BGS',\n null,\n users,\n 'managerUserFilter',\n selectedSalesDF?.value,\n );\n } else {\n getBgsList(\n 'BGS',\n managerUsers,\n users,\n 'managerUserFilter',\n selectedSalesDF?.value,\n );\n }\n }\n\n if (isAdManagerAdmin) {\n if (isAllUser) {\n getBgsList(\n 'Ad Manager',\n null,\n users,\n 'managerUserFilter',\n selectedSalesDF?.value,\n );\n } else {\n getBgsList(\n 'Ad Manager',\n managerUsers,\n users,\n 'managerUserFilter',\n selectedSalesDF?.value,\n );\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI(\n 'managerUsersFilter',\n isAllUser ? allObj : managerUsers,\n users,\n null,\n );\n }\n };\n\n // handle bgs/ad manager filter events\n const handleBgsUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedUser,\n userApiList,\n );\n\n setSelectedUser(selectedValues);\n setIsUsersSelected(true);\n };\n\n // handle bgs/ad manager on dropdwon menu close events\n const handleUserOnMenuCloseEvents = () => {\n if (isUsersSelected) {\n let managerUsers = selectedManagerUser;\n const users = selectedUser?.length > 0 ? selectedUser : userList;\n\n setSelectedUser(users);\n\n // When bgs manager and ad team manager filter set to all then Automatically set the bgs manager or ad team manager assigned to selected bgs or ad team manager\n if (\n (isBGSAdmin || isAdManagerAdmin || isSpreetailRole) &&\n selectedUser?.length === 1\n ) {\n const userExisted = userList?.find(\n (bgsUser) =>\n bgsUser?.value === selectedUser?.[0]?.value &&\n bgsUser?.managerUser !== null,\n );\n\n if (userExisted !== undefined) {\n const managerUserObject = {\n value: userExisted?.managerUser?.id,\n label: `${userExisted?.managerUser?.first_name} ${userExisted?.managerUser?.last_name}`,\n };\n managerUsers = [managerUserObject];\n setSelectedManagerUser([managerUserObject]);\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n managerUsers,\n users,\n 'bgsFilter',\n selectedSalesDF?.value,\n );\n } else {\n getBgsList(\n 'Ad Manager',\n managerUsers,\n users,\n 'bgsFilter',\n selectedSalesDF?.value,\n );\n }\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI('usersFilter', managerUsers, users, null);\n }\n };\n\n // handeling vendor metrics type filter events\n const handleVendorMetricsTypeFilterEvents = (event) => {\n const { value } = event;\n\n setSelectedVendorMetricsType(event);\n if (value === ORDEREDREVENUE) {\n setSelectedVendorMetrics({ orderedRevenue: true });\n setSelectedTabMetrics(ORDEREDREVENUE);\n } else {\n setSelectedVendorMetrics({ shippedCOGs: true });\n setSelectedTabMetrics(SHIPPEDCOGS);\n }\n\n if (selectedSalesDF?.value === CUSTOM) {\n salesYearAndCustomDateFilter(\n customDateState[0]?.startDate,\n customDateState[0]?.endDate,\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n VENDORSMALL,\n value,\n );\n } else if (selectedSalesDF.value === YEAROVERYEAR) {\n salesYearAndCustomDateFilter(\n yearOverYearDateState[0]?.startDate,\n yearOverYearDateState[0]?.endDate,\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n VENDORSMALL,\n value,\n );\n } else {\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n VENDORSMALL,\n value,\n );\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n value,\n VENDORSMALL,\n value,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n };\n\n // reset button events - reset all bgs and advertising user filter values to 'all'\n const handleResetFilter = () => {\n $('.checkboxes input:radio').filter(\"[value='all']\").prop('checked', true);\n\n // set default filter values\n setSelectedPerformanceType(performanceTypeOptions?.[0]);\n setCurrencySymbol(getSymbolFromCurrency('USD'));\n setSelectedMarketplace(marketplaceChoices?.[0]);\n setSelectedTabMetrics('revenue');\n setSelectedBrandPartner(allBrandPartnerObj);\n\n // set assigned bgs manager/ad team manager, bgs/ad manager of selected BP to multi-select bgs manager/ad team manager, bgs/ad manager dropdown filter.\n const managerUser = isBGSManager || isAdTeamManager ? loggedInUser : allObj;\n const user = isBGS || isAdManager ? loggedInUser : allObj;\n setSelectedUser(user);\n setSelectedManagerUser(managerUser);\n // calling Leadership-customer api\n getLeadershipBrandPartnersList(\n 'resetFilter',\n managerUser,\n user,\n allBrandPartnerObj,\n );\n // calling bgs and advertising user api\n callingBgsAndAdUserApi(\n 'resetFilter',\n managerUser,\n user,\n selectedSalesDF?.value,\n );\n setCustomDateError(null);\n\n // calling dashboard api\n if (selectedSalesDF?.value === CUSTOM) {\n salesYearAndCustomDateFilter(\n customDateState[0]?.startDate,\n customDateState[0]?.endDate,\n selectedSalesDF?.value,\n 'all',\n 'all',\n managerUser,\n user,\n SELLERSMALL,\n ORDEREDREVENUE,\n );\n } else if (selectedSalesDF?.value === YEAROVERYEAR) {\n salesYearAndCustomDateFilter(\n yearOverYearDateState[0]?.startDate,\n yearOverYearDateState[0]?.endDate,\n selectedSalesDF?.value,\n 'all',\n 'all',\n managerUser,\n user,\n SELLERSMALL,\n ORDEREDREVENUE,\n );\n } else {\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n 'all',\n 'all',\n managerUser,\n user,\n SELLERSMALL,\n ORDEREDREVENUE,\n );\n getContributionData(\n selectedSalesDF?.value,\n 'all',\n 'all',\n managerUser,\n user,\n 'revenue',\n SELLERSMALL,\n ORDEREDREVENUE,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n };\n\n // handle group by filter events\n const handleSalesGroupBy = (value) => {\n if (value !== salesGroupBy) {\n setSalesGroupBy(value);\n\n if (\n selectedSalesDF?.value === CUSTOM ||\n selectedSalesDF?.value === YEAROVERYEAR\n ) {\n const { startDate } =\n selectedSalesDF?.value === CUSTOM\n ? customDateState[0]\n : yearOverYearDateState[0];\n const { endDate } =\n selectedSalesDF.value === CUSTOM\n ? customDateState[0]\n : yearOverYearDateState[0];\n let sd = startDate;\n let ed = endDate;\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n getSalesData(\n selectedSalesDF?.value,\n value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n sd,\n ed,\n );\n } else {\n getSalesData(\n selectedSalesDF?.value,\n value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n }\n }\n };\n\n // handle metrics tab change events\n const handleOnMetricsTabChange = (value) => {\n if (value !== selectedTabMetrics) {\n setSelectedTabMetrics(value);\n setPageNumber(1);\n\n if (value !== 'goals') {\n if (selectedSalesDF?.value === YEAROVERYEAR) {\n const { startDate } = yearOverYearDateState[0];\n const { endDate } = yearOverYearDateState[0];\n let sd = startDate;\n let ed = endDate;\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n value,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n sd,\n ed,\n 1,\n );\n } else {\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n value,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n null,\n null,\n 1,\n );\n if (selectedTabMetrics === 'goals') {\n getSalesData(\n selectedSalesDF?.value,\n salesGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n }\n }\n } else {\n setSelectedSalesDF({\n value: '30days',\n label: 'Current 30 Days',\n sub: 'vs Previous 30 days',\n });\n getGoalsData(\n 'highest_sales',\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n customStartDate,\n customEndDate,\n selectedManagerUser,\n selectedUser,\n 1,\n );\n getSalesData(\n CUSTOM,\n salesGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n startDateOfGoalsForSalesApi,\n endDateOfGoalsForSalesApi,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n }\n };\n\n // apply custom start and end dates\n const applyCustomDate = (type) => {\n if (type === CUSTOM) {\n if (setSelectedSalesDF.value !== CUSTOM) {\n setSelectedSalesDF({\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n }\n setIsCustomDateApply(true);\n salesYearAndCustomDateFilter(\n customDateState[0]?.startDate,\n customDateState[0]?.endDate,\n CUSTOM,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n setCustomDateError(null);\n setShowAdCustomDateModal(false);\n }\n if (type === YEAROVERYEAR) {\n if (selectedSalesDF.value !== YEAROVERYEAR) {\n setSelectedSalesDF({\n value: YEAROVERYEAR,\n label: 'Year Over Year',\n sub: 'Select start and end dates',\n });\n }\n setIsCustomDateApply(true);\n salesYearAndCustomDateFilter(\n yearOverYearDateState[0]?.startDate,\n yearOverYearDateState[0]?.endDate,\n YEAROVERYEAR,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n );\n setShowAdYearOverYearDateModal(false);\n }\n };\n\n // handle sales pagination events\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n if (\n selectedTabMetrics === 'goals' &&\n selectedPerformanceType?.value !== VENDORSMALL\n ) {\n // https://bbe.atlassian.net/browse/PDV-9131 - Handeling goals table pagination only for seller BPs.\n getGoalsData(\n 'highest_sales',\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n customStartDate,\n customEndDate,\n selectedManagerUser,\n selectedUser,\n currentPage,\n );\n } else {\n getContributionData(\n selectedSalesDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n null,\n null,\n currentPage,\n );\n }\n };\n\n // handle goals date change events of month filter\n const handleGoalsDateChangeEvents = () => {\n setShowCustomMonthModal(true);\n };\n\n // handle custom month range change events\n const handleCustomMonthRangeEvents = (selectedDate) => {\n const [startMonth, endMonth] = selectedDate;\n const tempStartMonth = endMonth === null ? startMonth : endMonth;\n setCustomMonthRange([\n {\n startMonth: tempStartMonth,\n endMonth: tempStartMonth,\n key: 'GoalsToPerformance',\n },\n ]);\n };\n\n // calculte the last day of month\n const getLastDayOfMonth = (year, month, index) => {\n return new Date(year, month, index);\n };\n\n // set selected start and end date\n const applyDateChangeEvents = (startDate, endDate) => {\n setCustomStartDate(startDate);\n setCustomEndDate(endDate || todaysDate);\n\n getGoalsData(\n 'highest_sales',\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n startDate,\n endDate,\n selectedManagerUser,\n selectedUser,\n pageNumber,\n );\n // const startDateOfGoal = dayjs(new Date(startDate)).format('YYYY-MM-DD');\n // const endDateOfGoal = dayjs(new Date(endDate)).format('YYYY-MM-DD');\n const startDateOfGoal = new Date(startDate);\n const endDateOfGoal = new Date(endDate);\n\n const tempStartDate = `${startDateOfGoal.getDate()}-${\n startDateOfGoal.getMonth() + 1\n }-${startDateOfGoal.getFullYear()}`;\n const tempEndDate = `${endDateOfGoal.getDate()}-${\n endDateOfGoal.getMonth() + 1\n }-${endDateOfGoal.getFullYear()}`;\n\n getSalesData(\n CUSTOM,\n salesGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedPerformanceType?.value,\n selectedVendorMetricsType?.value,\n tempStartDate,\n tempEndDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n };\n\n // handle custom date range changes events\n const handleCustomDateRangeEvents = (startDate, endDate, dateFlag) => {\n const newendDate = endDate || startDate;\n const lastDayOfEndMonth = getLastDayOfMonth(\n newendDate?.getFullYear(),\n newendDate?.getMonth() + 1,\n 0,\n );\n\n let tempStartDate = startDate;\n let tempEndDate = lastDayOfEndMonth;\n\n if (dateFlag === 'custom-month') {\n tempStartDate = dayjs(startDate).format('YYYY-MM-DD');\n tempEndDate = dayjs(lastDayOfEndMonth).format('YYYY-MM-DD');\n applyDateChangeEvents(tempStartDate, tempEndDate);\n }\n };\n\n // Apply selected custom date range\n const applyCustomMonthRange = () => {\n handleCustomDateRangeEvents(\n customMonthRange?.[0]?.startMonth,\n customMonthRange?.[0]?.endMonth,\n 'custom-month',\n );\n setShowCustomMonthModal(false);\n };\n\n // display sales performance container\n const displaySalesPerformanceContainer = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return {displaySalesPerformanceContainer()};\n}\n/* ********** MAIN FUNCTION END HERE ********** */\n\n/* ********** Declaring prop types ********** */\nSalesDashboardContainer.defaultProps = SalesDashboardContainerDefaultProps;\nSalesDashboardContainer.propTypes = SalesDashboardContainerPropTypes;\n","import styled from 'styled-components';\nimport Theme from '../../../../theme/Theme';\n\nexport const InventoryTableWrapper = styled.div`\n th.product-header {\n position: relative;\n img {\n position: absolute;\n top: 10px;\n transform: rotate(270deg);\n }\n .rotate {\n transform: rotate(90deg);\n top: 10px;\n }\n }\n`;\n\nexport const InventoryStyle = styled.div`\n .card-staus-right {\n float: right;\n }\n\n .label-bold {\n font-weight: bold;\n }\n .sub-label-text {\n font-size: ${Theme.extraNormal};\n color: ${Theme.black};\n }\n`;\n","// React imports\nimport React, { useState } from 'react';\n\n// Third party imports\nimport dayjs from 'dayjs';\nimport Select, { components } from 'react-select';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\n\n// Local file imports\nimport Theme from '../../../../theme/Theme';\nimport { CaretUp } from '../../../../theme/images';\nimport {\n CUSTOM,\n dashboardTimeFilterOptions,\n performanceTypeOptionsForInventory,\n} from '../../../../constants';\nimport {\n WhiteCard,\n DropdownIndicator,\n CustomDropDown,\n DropDowns,\n MultiSelectSearchableDropdown,\n SingleSelectDropdown,\n} from '../../../../common';\n\nconst InventoryFilter = ({\n // boolean\n isApiCall,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isCustomDateApply,\n // objects\n customDateState,\n selectedTimeFrame,\n selectedMarketplace,\n selectedPerformanceType,\n selectedBrandPartner,\n // array\n userList,\n managerUserList,\n selectedUser,\n selectedManagerUser,\n marketplaceOptions,\n brandPartnerOptions,\n // function\n handleDailyFact,\n handleResetFilter,\n handleMarketplace,\n setSelectedUser,\n setSelectedManagerUser,\n handleBgsUserFilterEvents,\n handleUserOnMenuCloseEvents,\n handleManagerUserFilterEvents,\n handleManagerUserOnMenuCloseEvents,\n handleSellerVendorFilterEvents,\n handleBrandPartnerFilterEvents,\n}) => {\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n const { Option, SingleValue } = components;\n\n // render multi select dropdown for bgs and ad manager\n const renderUserDropdown = () => {\n return (\n
    \n
    \n {isBGSAdmin || isBGSManager || isSpreetailRole ? 'BGS' : 'Ad Manager'}\n
    \n\n
    \n option?.value !== 'all')}\n label=\"\"\n value=\"user\"\n multiSelectedValues={{ user: selectedUser }}\n setMultiSelectedValues={setSelectedUser}\n handleMultiSelectChange={handleBgsUserFilterEvents}\n handleOnMenuClose={handleUserOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable\n />\n
    \n
    \n );\n };\n\n // render multi select dropdown for bgs manager and ad team manager\n const renderManagerUserDropdown = (label) => {\n return (\n
    \n
    {label}
    \n
    \n option?.value !== 'all',\n )}\n label=\"\"\n value=\"managerUser\"\n multiSelectedValues={{ managerUser: selectedManagerUser }}\n setMultiSelectedValues={setSelectedManagerUser}\n handleMultiSelectChange={handleManagerUserFilterEvents}\n handleOnMenuClose={handleManagerUserOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable\n />\n
    \n
    \n );\n };\n\n const renderCustomDateSubLabel = (props) => {\n if (selectedTimeFrame?.value === CUSTOM && isCustomDateApply) {\n return `${dayjs(customDateState).format('MMM D, YYYY')}`;\n }\n return props?.data?.sub;\n };\n\n const singleFilterOption = (props) => (\n \n {props?.data?.label}\n\n
    {renderCustomDateSubLabel(props)}
    \n
    \n );\n\n const filterOption = ({ data, ...props }) => (\n \n );\n\n const getTimeFrameDropDownComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n // render custom dropdown filter components\n const renderCustomDropdownFilter = (\n filterId,\n optionsList,\n selectedValue,\n onChangeHandler,\n ) => {\n return (\n \n onChangeHandler(event)}\n placeholder={optionsList?.[0]?.label}\n theme={(theme) => ({\n ...theme,\n colors: {\n ...theme.colors,\n neutral50: '#fff',\n primary25: Theme.lightOrange,\n primary: Theme.orange,\n primary50: Theme.lightOrange,\n },\n })}\n isOptionDisabled={(option) => option?.isDisabled}\n isLoading={isApiCall}\n />\n \n );\n };\n\n // render performance type dropdwon filter\n const renderPerformanceDropdownFilter = () => {\n return (\n
    \n
    Performance
    \n {renderCustomDropdownFilter(\n 'BT-InventoryPerformanceFilter',\n performanceTypeOptionsForInventory,\n selectedPerformanceType,\n handleSellerVendorFilterEvents,\n )}\n
    \n );\n };\n\n // render marketplace dropdown filter\n const renderMarketplaceDropdownFilter = () => {\n return (\n
    \n
    Marketplace
    \n {renderCustomDropdownFilter(\n 'BT-InventoryMarketplaceFilter',\n marketplaceOptions,\n selectedMarketplace,\n handleMarketplace,\n )}\n
    \n );\n };\n\n const renderTimeFrameFilter = (className) => {\n return (\n
    \n
    TimeFrame
    \n {DropDowns(\n 'BT-InventoryTimeFrameFilter',\n className,\n dashboardTimeFilterOptions,\n dashboardTimeFilterOptions?.[0]?.label,\n getTimeFrameDropDownComponents,\n dashboardTimeFilterOptions?.[0],\n handleDailyFact,\n isApiCall,\n null,\n selectedTimeFrame,\n false,\n )}\n
    \n );\n };\n\n // get SingleValue component for selected value from dropdown options\n const dropdownFilterSelectedValue = (props) => {\n return (\n \n {props?.data?.label}\n \n );\n };\n\n // get Option component for dropdown options\n const dropdownFilterOptions = (props) => {\n return (\n \n );\n };\n\n // configuring the dropdown select components\n const getDropdownSelectComponents = () => {\n return {\n Option: dropdownFilterOptions,\n SingleValue: dropdownFilterSelectedValue,\n DropdownIndicator,\n };\n };\n\n // render Brand Partner type dropdwon filter\n const renderBrandPartnerDropdownFilter = () => {\n return (\n
    \n
    Brand Partner
    \n \n \n
    \n
    \n );\n };\n\n const renderFilters = () => {\n return (\n <>\n {renderBrandPartnerDropdownFilter()}\n {renderPerformanceDropdownFilter()}\n {renderMarketplaceDropdownFilter()}\n {renderTimeFrameFilter()}\n {isBGSAdmin || isSpreetailRole\n ? renderManagerUserDropdown(\n isBGSAdmin || isSpreetailRole ? 'BGS Manager' : 'Ad Team Manager',\n )\n : null}\n {isBGSManager || isBGSAdmin || isSpreetailRole\n ? renderUserDropdown(\n isBGSAdmin || isBGSManager || isSpreetailRole\n ? 'BGS'\n : 'Ad Manager',\n )\n : null}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n setIsCollapseOpen(!isCollapseOpen)}\n className={\n isDesktop ? 'mb-3 d-lg-block d-none' : 'mb-3 d-lg-none d-block'\n }\n >\n
    \n
    \n
    Filters
    \n
    \n
    \n handleResetFilter()}\n style={{ width: 'fit-content' }}\n role=\"presentation\"\n className=\"gray-normal-text cursor mt-0\"\n >\n Reset filters\n {!isDesktop && (\n \n {\n e.stopPropagation();\n setIsCollapseOpen(!isCollapseOpen);\n }}\n >\n \n \n \n )}\n

    \n
    \n\n {isDesktop\n ? renderFilters()\n : isCollapseOpen\n ? renderFilters()\n : null}\n
    \n \n
    \n );\n};\n\nexport default InventoryFilter;\n\nInventoryFilter.defaultProps = {\n // boolean\n isApiCall: false,\n isBGSAdmin: false,\n isSpreetailRole: false,\n isBGSManager: false,\n isCustomDateApply: false,\n isDisabled: false,\n // objects\n data: {},\n selectProps: {},\n customDateState: {},\n selectedTimeFrame: {},\n selectedMarketplace: {},\n selectedPerformanceType: {},\n selectedBrandPartner: {},\n // array\n userList: [],\n managerUserList: [],\n selectedUser: [],\n selectedManagerUser: [],\n marketplaceOptions: [],\n brandPartnerOptions: [],\n // function\n handleDailyFact: () => {},\n handleResetFilter: () => {},\n handleMarketplace: () => {},\n setSelectedUser: () => {},\n setSelectedManagerUser: () => {},\n handleBgsUserFilterEvents: () => {},\n handleUserOnMenuCloseEvents: () => {},\n handleManagerUserFilterEvents: () => {},\n handleManagerUserOnMenuCloseEvents: () => {},\n handleSellerVendorFilterEvents: () => {},\n handleBrandPartnerFilterEvents: () => {},\n};\n\nInventoryFilter.propTypes = {\n // boolean\n isApiCall: bool,\n isBGSAdmin: bool,\n isSpreetailRole: bool,\n isBGSManager: bool,\n isCustomDateApply: bool,\n isDisabled: bool,\n // objects\n data: shape({\n label: string,\n sub: string,\n }),\n selectProps: shape({\n menuIsOpen: bool,\n }),\n customDateState: shape({}),\n selectedTimeFrame: shape({}),\n selectedMarketplace: shape({}),\n selectedPerformanceType: shape({}),\n selectedBrandPartner: shape({}),\n // array\n userList: arrayOf(shape({})),\n managerUserList: arrayOf(shape({})),\n selectedUser: arrayOf(shape({})),\n selectedManagerUser: arrayOf(shape({})),\n marketplaceOptions: arrayOf(shape({})),\n brandPartnerOptions: arrayOf(shape({})),\n // function\n handleDailyFact: func,\n handleResetFilter: func,\n handleMarketplace: func,\n setSelectedUser: func,\n setSelectedManagerUser: func,\n handleBgsUserFilterEvents: func,\n handleUserOnMenuCloseEvents: func,\n handleManagerUserFilterEvents: func,\n handleManagerUserOnMenuCloseEvents: func,\n handleSellerVendorFilterEvents: func,\n handleBrandPartnerFilterEvents: func,\n};\n","// React imports\nimport React from 'react';\n\n// Third party imports\nimport { arrayOf, bool, func, shape } from 'prop-types';\n\nconst StrandedInventoryMobileView = ({\n loader,\n strandedInventoryData,\n formatNumber,\n displayCompanyNameLogoAndBGS,\n redirectingToCustomerDetailview,\n displayMetricsChangeValueWithArrow,\n}) => {\n // function - display metrics label with change value\n const displayMetricsLabelWithValue = (label, value, divClass, suffix) => {\n return (\n
    \n
    {label}
    \n
    \n {displayMetricsChangeValueWithArrow(\n value,\n formatNumber,\n 'text-extra-medium',\n suffix,\n )}\n
    \n
    \n );\n };\n // display inventory mobile view\n const displayInventoryMobileView = () => {\n return strandedInventoryData?.map((item) => {\n return (\n <>\n
    \n {\n redirectingToCustomerDetailview(item?.customer_id);\n }}\n >\n {displayCompanyNameLogoAndBGS(item)}\n
    \n
    \n
    Number of Stranded SKUs
    \n
    \n {formatNumber(item?.available, '', '', true)}\n
    \n
    \n {displayMetricsLabelWithValue(\n 'Change',\n item?.change,\n 'col-4 mb-3',\n '',\n )}\n {displayMetricsLabelWithValue(\n '% Change',\n item?.percent_change,\n 'col-6 mb-3',\n '%',\n )}\n
    \n
    \n \n );\n });\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {displayInventoryMobileView()}\n
    \n );\n};\n\nexport default StrandedInventoryMobileView;\n\nStrandedInventoryMobileView.defaultProps = {\n loader: false,\n strandedInventoryData: [],\n formatNumber: () => {},\n displayCompanyNameLogoAndBGS: () => {},\n redirectingToCustomerDetailview: () => {},\n displayMetricsChangeValueWithArrow: () => {},\n};\n\nStrandedInventoryMobileView.propTypes = {\n loader: bool,\n strandedInventoryData: arrayOf(shape({})),\n formatNumber: func,\n displayCompanyNameLogoAndBGS: func,\n redirectingToCustomerDetailview: func,\n displayMetricsChangeValueWithArrow: func,\n};\n","// React imports\nimport React from 'react';\n\n// Third party imports\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\n// Local file imports\nimport StrandedInventoryMobileView from './StrandedInventoryMobileView';\nimport { InventoryTableWrapper } from './InventoryStyle';\nimport { CommonPagination, Table, WhiteCard } from '../../../../common';\nimport {\n inventoryNoDataMessage,\n strandedInventoryTableheader,\n} from '../../../../constants';\n\nconst StrandedInventory = ({\n // boolean\n loader,\n // number\n count,\n pageNumber,\n // string\n orderByApi,\n // object\n orderBy,\n // array\n strandedInventoryData,\n // function\n onClickOrder,\n formatNumber,\n onHandlePageChange,\n displayNoDataMessage,\n displayPerformanceLoader,\n displayDownloadReportLoader,\n displayCompanyNameLogoAndBGS,\n redirectingToCustomerDetailview,\n displayUpDownArrowforTableHeader,\n displayMetricsChangeValueWithArrow,\n}) => {\n const isTablet = useMediaQuery({ minWidth: 768 });\n\n // function - display inventory table header\n const renderTableHeader = () => {\n return (\n <>\n \n {strandedInventoryTableheader.map((item) => {\n return (\n {\n if (item?.key !== 'customer') onClickOrder(item?.key);\n }}\n className={`product-header ${\n item?.key !== 'customer' ? 'cursor' : ''\n } `}\n >\n {item?.label}\n {item?.key !== 'customer'\n ? displayUpDownArrowforTableHeader(\n item?.key,\n orderBy,\n orderByApi,\n )\n : null}\n \n );\n })}\n \n \n );\n };\n\n // function - display inventory table data\n const renderInventoryData = (item) => {\n return (\n <>\n {\n redirectingToCustomerDetailview(item?.customer_id);\n }}\n key={item?.customer_id}\n >\n {displayCompanyNameLogoAndBGS(item)}\n \n {formatNumber(item?.available, '', '', true)}\n \n \n {displayMetricsChangeValueWithArrow(\n item?.change,\n formatNumber,\n '',\n '',\n )}\n \n \n {displayMetricsChangeValueWithArrow(\n item?.percent_change,\n formatNumber,\n '',\n '%',\n )}\n \n \n \n );\n };\n\n // function - display inventory desktop view\n const renderStandedInventoryDesktopView = () => {\n return (\n <>\n \n
    \n \n \n {renderTableHeader()}\n \n {strandedInventoryData?.length ? (\n \n {strandedInventoryData?.map((item) => {\n return renderInventoryData(item);\n })}\n \n ) : null}\n
    \n {loader ? displayPerformanceLoader() : null}\n {!loader && !strandedInventoryData?.length\n ? displayNoDataMessage(inventoryNoDataMessage?.stranded)\n : null}\n \n \n );\n };\n\n // function - display inventory mobile view\n const renderStandedInventoryMobileView = () => {\n return (\n <>\n {loader ? (\n displayPerformanceLoader()\n ) : strandedInventoryData?.length ? (\n \n ) : (\n displayNoDataMessage('No Stranded Inventory Data Found')\n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n \n
    \n
    \n Stranded Inventory\n
    \n \n {displayDownloadReportLoader('stranded-restock')}\n
    \n
    \n {isTablet\n ? renderStandedInventoryDesktopView()\n : renderStandedInventoryMobileView()}\n {count > 10 ? (\n <>\n
    \n \n \n ) : null}\n \n \n );\n};\n\nexport default StrandedInventory;\n\nStrandedInventory.defaultProps = {\n // boolean\n loader: false,\n // number\n count: 0,\n pageNumber: 1,\n // string\n orderByApi: '',\n // object\n orderBy: {},\n // array\n strandedInventoryData: [],\n // function\n onClickOrder: () => {},\n formatNumber: () => {},\n onHandlePageChange: () => {},\n displayNoDataMessage: () => {},\n displayPerformanceLoader: () => {},\n displayDownloadReportLoader: () => {},\n displayCompanyNameLogoAndBGS: () => {},\n redirectingToCustomerDetailview: () => {},\n displayUpDownArrowforTableHeader: () => {},\n displayMetricsChangeValueWithArrow: () => {},\n};\n\nStrandedInventory.propTypes = {\n // boolean\n loader: bool,\n // number\n count: number,\n pageNumber: number,\n // string\n orderByApi: string,\n // object\n orderBy: shape({}),\n // array\n strandedInventoryData: arrayOf(shape({})),\n // function\n onClickOrder: func,\n formatNumber: func,\n onHandlePageChange: func,\n displayNoDataMessage: func,\n displayPerformanceLoader: func,\n displayDownloadReportLoader: func,\n displayCompanyNameLogoAndBGS: func,\n redirectingToCustomerDetailview: func,\n displayUpDownArrowforTableHeader: func,\n displayMetricsChangeValueWithArrow: func,\n};\n","// React imports\nimport React from 'react';\n\n// Third party imports\nimport { arrayOf, bool, func, shape } from 'prop-types';\n\nconst StrandedAndRestockInventoryMobileView = ({\n loader,\n strandedInventoryData,\n formatNumber,\n displayCompanyNameLogoAndBGS,\n displayMetricsValueWithChange,\n redirectingToCustomerDetailview,\n}) => {\n // display metrics name, value with percent\n const displayMetricsNameAndValue = (label, value, percentValue) => {\n return (\n <>\n
    {label}
    \n
    \n {displayMetricsValueWithChange(value, percentValue)}\n
    \n \n );\n };\n\n // display inventory mobile view\n const displayInventoryMobileView = () => {\n return strandedInventoryData?.map((item) => {\n return (\n <>\n
    \n {\n redirectingToCustomerDetailview(item?.customer_id);\n }}\n >\n {displayCompanyNameLogoAndBGS(item)}\n
    \n
    \n {displayMetricsNameAndValue(\n 'Understocked ASINs',\n formatNumber(item?.understocked, '', '', true),\n item?.understocked_change,\n )}\n
    \n
    \n {displayMetricsNameAndValue(\n 'Overstocked ASINs',\n item?.overstocked,\n item?.overstocked_change,\n )}\n
    \n
    \n {displayMetricsNameAndValue(\n 'Stranded ASINs',\n item?.available,\n item?.change,\n )}\n
    \n
    \n
    \n \n );\n });\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {displayInventoryMobileView()}\n
    \n );\n};\n\nexport default StrandedAndRestockInventoryMobileView;\n\nStrandedAndRestockInventoryMobileView.defaultProps = {\n loader: false,\n strandedInventoryData: [],\n formatNumber: () => {},\n displayCompanyNameLogoAndBGS: () => {},\n displayMetricsValueWithChange: () => {},\n redirectingToCustomerDetailview: () => {},\n};\n\nStrandedAndRestockInventoryMobileView.propTypes = {\n loader: bool,\n strandedInventoryData: arrayOf(shape({})),\n formatNumber: func,\n displayCompanyNameLogoAndBGS: func,\n displayMetricsValueWithChange: func,\n redirectingToCustomerDetailview: func,\n};\n","// React imports\nimport React from 'react';\n\n// Third party imports\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\n// Local file imports\nimport StrandedAndRestockInventoryMobileView from './StrandedAndRestockInventoryMobileView';\nimport InventoryManagementInfoIcon from '../../../Customer/CustomerDetailView/InventoryManagement/InventoryManagementInfoIcon';\nimport { InventoryTableWrapper } from './InventoryStyle';\nimport {\n inventoryNoDataMessage,\n restockInventoryTableheader,\n} from '../../../../constants';\nimport {\n CommonPagination,\n GrayMessageBar,\n Table,\n WhiteCard,\n} from '../../../../common';\n\nconst StrandedAndRestockInventory = ({\n // boolean\n loader,\n // number\n count,\n pageNumber,\n // string\n orderByApi,\n // object\n orderBy,\n // array\n strandedInventoryData,\n // function\n formatNumber,\n onClickOrder,\n onHandlePageChange,\n displayNoDataMessage,\n displayPerformanceLoader,\n displayDownloadReportLoader,\n displayCompanyNameLogoAndBGS,\n redirectingToCustomerDetailview,\n displayUpDownArrowforTableHeader,\n displayMetricsChangeValueWithArrow,\n}) => {\n const noDataMessage = inventoryNoDataMessage?.strandedRestock;\n const isTablet = useMediaQuery({ minWidth: 768 });\n const dashboardDynamicError = useSelector(\n (state) => state.userState?.showDynamicMsg,\n );\n const strandedMessage =\n dashboardDynamicError?.stranded_inventory?.placeholder;\n\n // display metrics value with change\n const displayMetricsValueWithChange = (value, percentValue) => {\n return (\n <>\n \n {formatNumber(value, '', '', true)}\n \n {displayMetricsChangeValueWithArrow(\n percentValue,\n formatNumber,\n isTablet ? 'd-inline-block' : 'text-extra-medium ml-2',\n '',\n )}\n \n );\n };\n\n // display stranded & restock inventory table head\n const renderTableHeader = () => {\n return (\n <>\n \n {restockInventoryTableheader.map((item) => {\n return (\n {\n if (item?.key !== 'customer') onClickOrder(item?.key);\n }}\n className={`product-header ${\n item?.key !== 'customer' ? 'cursor' : ''\n } `}\n >\n {item?.label}\n {item?.key !== 'customer'\n ? displayUpDownArrowforTableHeader(\n item?.key,\n orderBy,\n orderByApi,\n )\n : null}\n \n );\n })}\n \n \n );\n };\n\n // display stranded and restock inventory table body\n const renderInventoryData = (item) => {\n return (\n <>\n {\n redirectingToCustomerDetailview(item?.customer_id);\n }}\n key={item?.customer_id}\n >\n {displayCompanyNameLogoAndBGS(item)}\n \n {displayMetricsValueWithChange(\n item?.understocked,\n item?.understocked_change,\n )}\n \n \n {displayMetricsValueWithChange(\n item?.overstocked,\n item?.overstocked_change,\n )}\n \n \n {displayMetricsValueWithChange(item?.available, item?.change)}\n \n \n \n );\n };\n\n // function - display inventory desktop view\n const displayStrandedRestockDesktopView = () => {\n return (\n <>\n \n
    \n \n \n {renderTableHeader()}\n \n {strandedInventoryData?.length ? (\n \n {strandedInventoryData?.map((item) => {\n return renderInventoryData(item);\n })}\n \n ) : null}\n
    \n {loader ? displayPerformanceLoader() : null}\n {!loader && !strandedInventoryData?.length\n ? displayNoDataMessage(noDataMessage)\n : null}\n \n \n );\n };\n\n // function - display inventory mobile view\n const displayStandedRestockMobileView = () => {\n return (\n <>\n {loader ? (\n displayPerformanceLoader()\n ) : strandedInventoryData?.length ? (\n \n ) : (\n displayNoDataMessage(noDataMessage)\n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n \n
    \n
    \n Stranded & Restock Inventory\n \n
    \n \n {displayDownloadReportLoader('stranded-restock')}\n
    \n
    \n {strandedMessage ? : null}\n {isTablet\n ? displayStrandedRestockDesktopView()\n : displayStandedRestockMobileView()}\n {count > 10 ? (\n <>\n
    \n \n \n ) : null}\n \n \n );\n};\n\nexport default StrandedAndRestockInventory;\n\nStrandedAndRestockInventory.defaultProps = {\n // boolean\n loader: false,\n // number\n count: 0,\n pageNumber: 1,\n // string\n orderByApi: '',\n // object\n orderBy: {},\n // array\n strandedInventoryData: [],\n // function\n onClickOrder: () => {},\n formatNumber: () => {},\n onHandlePageChange: () => {},\n displayNoDataMessage: () => {},\n displayPerformanceLoader: () => {},\n displayDownloadReportLoader: () => {},\n displayCompanyNameLogoAndBGS: () => {},\n redirectingToCustomerDetailview: () => {},\n displayUpDownArrowforTableHeader: () => {},\n displayMetricsChangeValueWithArrow: () => {},\n};\n\nStrandedAndRestockInventory.propTypes = {\n // boolean\n loader: bool,\n // number\n count: number,\n pageNumber: number,\n // string\n orderByApi: string,\n // object\n orderBy: shape({}),\n // array\n strandedInventoryData: arrayOf(shape({})),\n // function\n formatNumber: func,\n onClickOrder: func,\n onHandlePageChange: func,\n displayNoDataMessage: func,\n displayPerformanceLoader: func,\n displayDownloadReportLoader: func,\n displayCompanyNameLogoAndBGS: func,\n redirectingToCustomerDetailview: func,\n displayUpDownArrowforTableHeader: func,\n displayMetricsChangeValueWithArrow: func,\n};\n","// React imports\nimport React from 'react';\n\n// third party imports\nimport { arrayOf, bool, func, shape } from 'prop-types';\n\nconst RestockLimitsMobileView = ({\n restockLoader,\n restockData,\n displayCompanyNameLogoAndBGS,\n displayValueWithPercentChange,\n redirectingToCustomerDetailview,\n}) => {\n // display metrics name, value with percent\n const displayMetricsNameAndValue = (label, value, percentValue) => {\n return (\n
    \n
    {label}
    \n
    \n {displayValueWithPercentChange(value, percentValue)}\n
    \n
    \n );\n };\n\n // display inventory mobile view\n const displayInventoryMobileView = () => {\n return restockData?.map((item) => {\n return (\n <>\n
    \n {\n redirectingToCustomerDetailview(item?.customer_id);\n }}\n key={item?.customer_id}\n >\n {displayCompanyNameLogoAndBGS(item)}\n
    \n {displayMetricsNameAndValue(\n 'Utilization',\n item?.storage?.utilization,\n item?.storage?.utilization_change,\n )}\n {displayMetricsNameAndValue(\n 'Max Shipment',\n item?.storage?.max_shipment,\n item?.storage?.max_shipment_change,\n )}\n {displayMetricsNameAndValue(\n 'Open Shipment',\n item?.storage?.open_shipment,\n item?.storage?.open_shipment_change,\n )}\n {displayMetricsNameAndValue(\n 'Onhand',\n item?.storage?.on_hand,\n item?.storage?.on_hand_change,\n )}\n
    \n
    \n \n );\n });\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {displayInventoryMobileView()}\n
    \n );\n};\n\nexport default RestockLimitsMobileView;\n\nRestockLimitsMobileView.defaultProps = {\n restockLoader: false,\n restockData: [],\n displayCompanyNameLogoAndBGS: () => {},\n displayValueWithPercentChange: () => {},\n redirectingToCustomerDetailview: () => {},\n};\n\nRestockLimitsMobileView.propTypes = {\n restockLoader: bool,\n restockData: arrayOf(shape({})),\n displayCompanyNameLogoAndBGS: func,\n displayValueWithPercentChange: func,\n redirectingToCustomerDetailview: func,\n};\n","// React imports\nimport React from 'react';\n\n// Third party imports\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\n// Local file imports\nimport { InventoryTableWrapper } from './InventoryStyle';\nimport RestockLimitsMobileView from './RestockLimitsMobileView';\nimport InventoryManagementInfoIcon from '../../../Customer/CustomerDetailView/InventoryManagement/InventoryManagementInfoIcon';\nimport {\n dataScrappedMsg,\n inventoryNoDataMessage,\n restockLimitTableheader,\n} from '../../../../constants';\nimport {\n CommonPagination,\n GrayMessageBar,\n Table,\n WhiteCard,\n} from '../../../../common';\n\nconst RestockLimits = ({\n // bool\n restockLoader,\n // string\n orderByApi,\n // number\n restockCount,\n pageNumber,\n // object\n orderBy,\n // array\n restockData,\n // function\n onClickOrder,\n onHandlePageChange,\n formatNumber,\n displayNoDataMessage,\n renderStorageTypeFilter,\n displayPerformanceLoader,\n displayDownloadReportLoader,\n displayCompanyNameLogoAndBGS,\n redirectingToCustomerDetailview,\n displayUpDownArrowforTableHeader,\n displayMetricsChangeValueWithArrow,\n}) => {\n const noDataMessage = inventoryNoDataMessage?.restockLimit;\n const isTablet = useMediaQuery({ minWidth: 768 });\n const dashboardDynamicError = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const restockLimitMessage =\n dashboardDynamicError?.inventory_restock_limit?.placeholder;\n\n // display metrics value with percent change\n const displayValueWithPercentChange = (value, percentValue, postFix = '') => {\n return (\n <>\n \n {formatNumber(value, '', postFix)}\n \n {displayMetricsChangeValueWithArrow(\n percentValue,\n formatNumber,\n isTablet ? 'd-inline-block' : 'text-extra-medium ml-2',\n '%',\n )}\n \n );\n };\n\n // display restock limit table head\n const renderTableHeader = () => {\n return (\n <>\n \n {restockLimitTableheader?.map((item) => {\n return (\n {\n if (item?.key !== 'customer') onClickOrder(item?.key);\n }}\n className={`product-header ${\n item?.key !== 'customer' ? 'cursor' : ''\n } `}\n >\n {item?.label}\n {item?.key !== 'customer'\n ? displayUpDownArrowforTableHeader(\n item?.key,\n orderBy,\n orderByApi,\n )\n : null}\n \n );\n })}\n \n \n );\n };\n\n // display restock limit table body\n const renderInventoryData = (item) => {\n return (\n <>\n {\n redirectingToCustomerDetailview(item?.customer_id);\n }}\n >\n {displayCompanyNameLogoAndBGS(item)}\n \n {displayValueWithPercentChange(\n item?.storage?.utilization,\n item?.storage?.utilization_change,\n '%',\n )}\n \n \n {displayValueWithPercentChange(\n item?.storage?.max_shipment,\n item?.storage?.max_shipment_change,\n '',\n )}\n \n \n {displayValueWithPercentChange(\n item?.storage?.open_shipment,\n item?.storage?.open_shipment_change,\n '',\n )}\n \n \n {displayValueWithPercentChange(\n item?.storage?.on_hand,\n item?.storage?.on_hand_change,\n '',\n )}\n \n \n \n );\n };\n\n // function - display inventory desktop view\n const renderRestockLimitDesktopView = () => {\n return (\n <>\n \n
    \n \n \n {renderTableHeader()}\n \n {restockData?.length ? (\n \n {restockData?.map((item) => {\n return renderInventoryData(item);\n })}\n \n ) : null}\n
    \n {restockLoader ? displayPerformanceLoader() : null}\n {!restockLoader && !restockData?.length\n ? displayNoDataMessage(noDataMessage)\n : null}\n \n \n );\n };\n\n // function - display inventory mobile view\n const renderRestockLimitMobileView = () => {\n return (\n <>\n {restockLoader ? (\n displayPerformanceLoader()\n ) : restockData?.length ? (\n \n ) : (\n displayNoDataMessage(noDataMessage)\n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n \n
    \n
    \n
    \n Restock Limits Table\n \n
    \n \n {dataScrappedMsg}\n
    \n
    \n
    \n
    \n
    \n Storage Type:\n
    \n
    \n {renderStorageTypeFilter()}\n
    \n
    \n
    \n {restockData?.length >= 1 ? (\n
    \n {displayDownloadReportLoader('restock-limit')}\n
    \n ) : null}\n
    \n {restockLimitMessage ? (\n \n ) : null}\n
    \n
    \n\n {isTablet\n ? renderRestockLimitDesktopView()\n : renderRestockLimitMobileView()}\n {restockCount > 10 ? (\n <>\n
    \n \n \n ) : null}\n \n \n );\n};\n\nexport default RestockLimits;\n\nRestockLimits.defaultProps = {\n // bool\n restockLoader: false,\n // string\n orderByApi: '',\n // number\n pageNumber: 1,\n restockCount: 0,\n // object\n orderBy: {},\n // array\n restockData: [],\n // function\n onClickOrder: () => {},\n formatNumber: () => {},\n onHandlePageChange: () => {},\n displayNoDataMessage: () => {},\n renderStorageTypeFilter: () => {},\n displayPerformanceLoader: () => {},\n displayDownloadReportLoader: () => {},\n displayCompanyNameLogoAndBGS: () => {},\n redirectingToCustomerDetailview: () => {},\n displayUpDownArrowforTableHeader: () => {},\n displayMetricsChangeValueWithArrow: () => {},\n};\n\nRestockLimits.propTypes = {\n // bool\n restockLoader: bool,\n // string\n orderByApi: string,\n // number\n restockCount: number,\n pageNumber: number,\n // object\n orderBy: shape({}),\n // array\n restockData: arrayOf(shape({})),\n // function\n onClickOrder: func,\n onHandlePageChange: func,\n formatNumber: func,\n displayNoDataMessage: func,\n renderStorageTypeFilter: func,\n displayPerformanceLoader: func,\n displayDownloadReportLoader: func,\n displayCompanyNameLogoAndBGS: func,\n redirectingToCustomerDetailview: func,\n displayUpDownArrowforTableHeader: func,\n displayMetricsChangeValueWithArrow: func,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\n// local file imports\nimport Theme from '../../../../theme/Theme';\nimport StrandedInventory from './StrandedInventory';\nimport StrandedAndRestockInventory from './StrandedAndRestockInventory';\nimport RestockLimits from './RestockLimits';\nimport useFormatNumber from '../../../../hooks/useFormatNumber';\nimport { setCustomerSelectedTab } from '../../../../store/actions/customerState';\nimport { BrandPartnerProfile, NoData, PageLoader } from '../../../../common';\nimport { CUSTOM, PATH_CUSTOMER_DETAILS } from '../../../../constants';\nimport { ArrowDownIcon, ArrowUpIcon } from '../../../../theme/images';\n\nfunction InventoryRightHandSideSection({\n // number\n restockPageNumber,\n restockCount,\n strandedInventoryCount,\n strandedInventoryPageNumber,\n // string\n orderByApi,\n strandedInventoryOrderByApi,\n // boolean\n restockLoader,\n strandedInventoryLoader,\n // object\n userInfo,\n orderBy,\n strandedInventoryOrderBy,\n selectedTimeFrame,\n downloadReportLoader,\n // array\n restockData,\n strandedInventoryData,\n // function\n handleDownloadBtn,\n renderStorageTypeFilter,\n handleOnClickOrderOfRestockLimit,\n handleRestockInventoryPagination,\n handleStrandedInventoryPagination,\n handleOnClickOrderOfStrandedAndRestockInventory,\n}) {\n const history = useHistory();\n const dispatch = useDispatch();\n const isRestockInventory = userInfo?.is_restockinventory_visible || false;\n\n // function - redirecting to customer detail view\n const redirectingToCustomerDetailview = (customerId) => {\n dispatch(setCustomerSelectedTab('inventoryManagement'));\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n customerId,\n )}?tab=inventoryManagement&access=internal`,\n );\n };\n\n // display no data message\n const displayNoDataMessage = (message) => {\n return {message};\n };\n\n // fucntion - performance loader\n const displayPerformanceLoader = () => {\n return (\n \n );\n };\n\n // display company name, logo and bgs\n const displayCompanyNameLogoAndBGS = (itemData) => {\n return (\n \n );\n };\n\n // display value with green, red, gray color\n const displayNumberWithArrow = (\n percentValue,\n arrowColor,\n className,\n formatNumber,\n suffix,\n ) => {\n return arrowColor === 'green' ? (\n \n \"arrow-up\"\n {formatNumber(percentValue, '', suffix)}\n \n ) : arrowColor === 'red' ? (\n \n \"arrow-down\"\n {formatNumber(Math.abs(percentValue), '', suffix)}\n \n ) : (\n \n {formatNumber(percentValue, '', suffix)}\n \n );\n };\n\n // function - display metrics change value with arrow\n const displayMetricsChangeValueWithArrow = (\n percentValue,\n formatNumber,\n valueClassName,\n suffix,\n ) => {\n return selectedTimeFrame?.value === CUSTOM || percentValue === null ? (\n \n N/A\n \n ) : percentValue === 0 ? (\n displayNumberWithArrow(\n percentValue,\n 'gray',\n valueClassName,\n formatNumber,\n suffix,\n )\n ) : percentValue > 0 ? (\n displayNumberWithArrow(\n percentValue,\n 'green',\n valueClassName,\n formatNumber,\n suffix,\n )\n ) : (\n displayNumberWithArrow(\n percentValue,\n 'red',\n valueClassName,\n formatNumber,\n suffix,\n )\n );\n };\n\n // function - display download report loader\n const displayDownloadReportLoader = (inventoryType) => {\n return (\n {\n handleDownloadBtn(inventoryType);\n }}\n role=\"presentation\"\n >\n {downloadReportLoader?.tab === inventoryType &&\n downloadReportLoader?.loader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n
    \n );\n };\n\n // disply up down arrow for table header\n const displayUpDownArrowforTableHeader = (key, keyBy, keyByApi) => {\n return (\n \n );\n };\n\n // display restock inventory section\n const displayRestockInventorySection = () => {\n return (\n
    \n {\n handleOnClickOrderOfRestockLimit(value);\n }}\n orderBy={orderBy}\n orderByApi={orderByApi}\n pageNumber={restockPageNumber}\n onHandlePageChange={(value) =>\n handleRestockInventoryPagination(value)\n }\n displayNoDataMessage={displayNoDataMessage}\n renderStorageTypeFilter={renderStorageTypeFilter}\n displayPerformanceLoader={displayPerformanceLoader}\n displayDownloadReportLoader={displayDownloadReportLoader}\n displayCompanyNameLogoAndBGS={displayCompanyNameLogoAndBGS}\n redirectingToCustomerDetailview={redirectingToCustomerDetailview}\n displayUpDownArrowforTableHeader={displayUpDownArrowforTableHeader}\n displayMetricsChangeValueWithArrow={\n displayMetricsChangeValueWithArrow\n }\n />\n
    \n );\n };\n\n // display stranded and restock inventory section\n const displayStrandedAndRestockInventorySection = () => {\n return (\n
    \n \n handleStrandedInventoryPagination(value)\n }\n onClickOrder={(value) => {\n handleOnClickOrderOfStrandedAndRestockInventory(value);\n }}\n displayNoDataMessage={displayNoDataMessage}\n displayNumberWithArrow={displayNumberWithArrow}\n displayPerformanceLoader={displayPerformanceLoader}\n displayDownloadReportLoader={displayDownloadReportLoader}\n displayCompanyNameLogoAndBGS={displayCompanyNameLogoAndBGS}\n redirectingToCustomerDetailview={redirectingToCustomerDetailview}\n displayUpDownArrowforTableHeader={displayUpDownArrowforTableHeader}\n displayMetricsChangeValueWithArrow={\n displayMetricsChangeValueWithArrow\n }\n />\n
    \n );\n };\n\n // display stranded inventory section\n const displayStrandedInventorySection = () => {\n return (\n
    \n \n handleStrandedInventoryPagination(value)\n }\n onClickOrder={(value) => {\n handleOnClickOrderOfStrandedAndRestockInventory(value);\n }}\n orderBy={strandedInventoryOrderBy}\n orderByApi={strandedInventoryOrderByApi}\n displayNoDataMessage={displayNoDataMessage}\n displayNumberWithArrow={displayNumberWithArrow}\n displayPerformanceLoader={displayPerformanceLoader}\n displayDownloadReportLoader={displayDownloadReportLoader}\n displayCompanyNameLogoAndBGS={displayCompanyNameLogoAndBGS}\n redirectingToCustomerDetailview={redirectingToCustomerDetailview}\n displayUpDownArrowforTableHeader={displayUpDownArrowforTableHeader}\n displayMetricsChangeValueWithArrow={\n displayMetricsChangeValueWithArrow\n }\n />\n
    \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {displayRestockInventorySection()}\n {isRestockInventory\n ? displayStrandedAndRestockInventorySection()\n : displayStrandedInventorySection()}\n
    \n );\n}\n\nexport default InventoryRightHandSideSection;\n\nInventoryRightHandSideSection.defaultProps = {\n // number\n restockPageNumber: 0,\n restockCount: 0,\n strandedInventoryCount: 0,\n strandedInventoryPageNumber: 0,\n // string\n orderByApi: '',\n strandedInventoryOrderByApi: '',\n // boolean\n restockLoader: false,\n strandedInventoryLoader: false,\n // object\n userInfo: {},\n orderBy: {},\n strandedInventoryOrderBy: {},\n selectedTimeFrame: {},\n downloadReportLoader: {},\n // array\n restockData: [],\n strandedInventoryData: [],\n // function\n handleDownloadBtn: () => {},\n renderStorageTypeFilter: () => {},\n handleOnClickOrderOfRestockLimit: () => {},\n handleRestockInventoryPagination: () => {},\n handleStrandedInventoryPagination: () => {},\n handleOnClickOrderOfStrandedAndRestockInventory: () => {},\n};\n\nInventoryRightHandSideSection.propTypes = {\n // number\n restockPageNumber: number,\n restockCount: number,\n strandedInventoryCount: number,\n strandedInventoryPageNumber: number,\n // string\n orderByApi: string,\n strandedInventoryOrderByApi: string,\n // boolean\n restockLoader: bool,\n strandedInventoryLoader: bool,\n // object\n userInfo: shape({}),\n orderBy: shape({}),\n strandedInventoryOrderBy: shape({}),\n selectedTimeFrame: shape({}),\n downloadReportLoader: shape({}),\n // array\n restockData: arrayOf(shape({})),\n strandedInventoryData: arrayOf(shape({})),\n // function\n handleDownloadBtn: func,\n renderStorageTypeFilter: func,\n handleOnClickOrderOfRestockLimit: func,\n handleRestockInventoryPagination: func,\n handleStrandedInventoryPagination: func,\n handleOnClickOrderOfStrandedAndRestockInventory: func,\n};\n","// react imports\nimport React, {\n useCallback,\n useEffect,\n useRef,\n useState,\n useMemo,\n} from 'react';\n\n// third party imports\nimport { toast } from 'react-toastify';\nimport { arrayOf, shape, bool, func } from 'prop-types';\n\n// local file imports\nimport { InventoryStyle } from './InventoryStyle';\nimport InventoryFilter from './InventoryFilter';\nimport InventoryRightHandSideSection from './InventoryRightHandSideSection';\nimport {\n CustomSingleDateModal,\n MultiSelectSearchableDropdown,\n} from '../../../../common';\nimport {\n CUSTOM,\n SELLER,\n allBPObj,\n allValueObj,\n defaultRestockInventoryOrderBy,\n defaultStrandedInventoryOrderBy,\n defaultTimeFrameForInventory,\n performanceTypeOptions,\n performanceTypeOptionsForInventory,\n storageTypeOptions,\n} from '../../../../constants';\nimport {\n getBgsUserList,\n getRestockData,\n getStrandedInventoryTableData,\n getLeadershipBrandPartners,\n} from '../../../../api';\n\nconst InventoryDashboardContainer = ({\n // boolean\n isBGS,\n isBGSAdmin,\n isBGSManager,\n isSpreetailRole,\n includeInactiveBPs,\n includeSpreetailBrands,\n // object\n userInfo,\n selectedMarketplace,\n selectedBrandPartner,\n // array\n loggedInUser,\n selectedUser,\n selectedManagerUser,\n marketplaceChoices,\n // function\n setSelectedUser,\n checkIsUserExist,\n bindUserListData,\n bindBrandPartners,\n setSelectedManagerUser,\n setSelectedMarketplace,\n generateStringOfValues,\n setSelectedBrandPartner,\n handleMultiSelectDropdownFilterEvents,\n}) => {\n const mounted = useRef(false);\n // Note -> advertisisng user do not have access to inventory dashboard\n\n const isRestockInventory = userInfo?.is_restockinventory_visible || false;\n const inventoryMindate = new Date('2022-03-21');\n const currentDate = new Date();\n\n const [responseId, setResponseId] = useState(null);\n const [customDateState, setCustomDateState] = useState(currentDate);\n const [selectedCustomDateState, setSelectedCustomDateState] =\n useState(currentDate);\n const [dataAvailableDate, setDataAvailableDate] = useState(currentDate);\n const [showCustomDateModal, setShowCustomDateModal] = useState(false);\n const [isCustomDateApply, setIsCustomDateApply] = useState(false);\n\n const [selectedTimeFrame, setSelectedTimeFrame] = useState(\n defaultTimeFrameForInventory,\n );\n const [orderBy, setOrderBy] = useState(defaultRestockInventoryOrderBy);\n const defaultRestockOrderByApi =\n selectedTimeFrame?.value === CUSTOM ? 'company_name' : '-utilization';\n const [orderByApi, setOrderByApi] = useState(defaultRestockOrderByApi);\n const [selectedStorageType, setSelectedStorageType] =\n useState(storageTypeOptions);\n const [isStorageTypeSelected, setIsStorageTypeSelected] = useState(false);\n const [selectedPerformanceType, setSelectedPerformanceType] = useState(\n performanceTypeOptionsForInventory?.[0],\n );\n const [downloadReportLoader, setDownloadReportLoader] = useState({\n tab: '',\n loader: false,\n });\n\n const [isManagerAPICalled, setIsManagerAPICalled] = useState(\n !(isBGSAdmin || isSpreetailRole),\n );\n const [isBGSAPICalled, setIsBGSAPICalled] = useState(\n !(isBGSAdmin || isBGSManager || isSpreetailRole),\n );\n\n // use state for bgs list, bgs manager list, ad manager list, ad team manager list,\n const [brandPartnerOptions, setBrandPartnerOptions] = useState([]);\n const [marketplaceOptions, setMarketplaceOptions] =\n useState(marketplaceChoices);\n const [userList, setUserList] = useState([]);\n const [userApiList, setUserApiList] = useState([]);\n const [managerUserList, setManagerUserList] = useState([]);\n const [managerUserApiList, setManagerUserApiList] = useState([]);\n const [isUsersSelected, setIsUsersSelected] = useState(false);\n const [isManagerUsersSelected, setIsManagerUsersSelected] = useState(false);\n\n const [restockLoader, setRestockLoader] = useState(false);\n const [restockData, setRestockData] = useState(null);\n const [restockCount, setRestockCount] = useState(null);\n const [restockPageNumber, setRestockPageNumber] = useState(1);\n\n const [strandedInventoryLoader, setStrandedInventoryLoader] = useState(false);\n const [strandedInventoryData, setStrandedInventoryData] = useState(null);\n const [strandedInventoryCount, setStrandedInventoryCount] = useState(null);\n const [strandedInventoryPageNumber, setStrandedInventoryPageNumber] =\n useState(1);\n\n const [strandedInventoryOrderBy, setStrandedInventoryOrderBy] = useState(\n defaultStrandedInventoryOrderBy,\n );\n const defaultStrandedOrderByKey = isRestockInventory\n ? 'company_name'\n : '-percent_change';\n const [strandedInventoryOrderByApi, setStrandedInventoryOrderByApi] =\n useState(defaultStrandedOrderByKey);\n\n // all brand partner object\n const allBrandPartnerObj = {\n ...allBPObj,\n accountType: SELLER,\n marketplaces: marketplaceChoices,\n };\n\n // default all value array of object\n const allObj = useMemo(() => {\n return allValueObj;\n }, []);\n\n // use effect for set marketplace options\n useEffect(() => {\n setMarketplaceOptions(marketplaceChoices);\n }, [marketplaceChoices]);\n\n // https://bbe.atlassian.net/browse/PDV-8757 - Leadership dashboard improvements\n // callback functions for get brand partners list\n const getLeadershipBrandPartnersList = useCallback(\n (callType, managersUser, bgsUser, selectedBp) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n getLeadershipBrandPartners(\n userInfo?.role,\n 'inventory',\n managerUserString,\n bgsUserString,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.length) {\n const bpList = bindBrandPartners(response?.data);\n\n setBrandPartnerOptions(bpList);\n const brandPartner =\n callType === 'useEffect' ? selectedBp : bpList?.[0];\n setSelectedBrandPartner(brandPartner);\n\n setSelectedPerformanceType(performanceTypeOptions?.[0]);\n } else {\n setBrandPartnerOptions([]);\n setSelectedBrandPartner({});\n setSelectedPerformanceType({});\n }\n });\n },\n [\n bindBrandPartners,\n generateStringOfValues,\n includeInactiveBPs,\n includeSpreetailBrands,\n setSelectedBrandPartner,\n setSelectedPerformanceType,\n userInfo,\n ],\n );\n\n // get user list - bgs\n const getBgsList = useCallback(\n (role, managers, users, callType) => {\n setRestockLoader(true);\n setStrandedInventoryLoader(true);\n\n const managersString = generateStringOfValues(managers);\n\n let API = '';\n if (role === 'BGS') {\n API = getBgsUserList(role, managersString);\n }\n\n API.then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const formatedApiData = bindUserListData(response?.data, role);\n setUserList(formatedApiData?.userListWithAll);\n setUserApiList(formatedApiData?.userList);\n\n const isUserExist = checkIsUserExist(\n formatedApiData?.userList,\n users,\n );\n\n if (callType !== 'bgsFilter') {\n if (\n isUserExist &&\n callType !== 'resetFilter' &&\n callType !== 'managerUserFilter'\n ) {\n setSelectedUser(users);\n } else {\n setSelectedUser(formatedApiData?.userListWithAll);\n }\n }\n\n setIsBGSAPICalled(true);\n } else {\n setUserList([]);\n setSelectedUser([]);\n setUserApiList([]);\n }\n }\n });\n },\n\n [\n bindUserListData,\n checkIsUserExist,\n generateStringOfValues,\n setSelectedUser,\n ],\n );\n\n // get manager user list - bgs manager\n const getManagerUserList = useCallback(\n (role, managerUsers, users, callType) => {\n setRestockLoader(true);\n setStrandedInventoryLoader(true);\n\n let API = '';\n if (role === 'BGS Manager') {\n API = getBgsUserList(role);\n }\n\n API.then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const formatedApiData = bindUserListData(response?.data);\n setManagerUserApiList(formatedApiData?.userList);\n setManagerUserList(formatedApiData?.userListWithAll);\n\n const isManagerUserExist = checkIsUserExist(\n formatedApiData?.userList,\n managerUsers,\n );\n let managerUser = null;\n\n if (\n (isBGSAdmin || isSpreetailRole) &&\n isManagerUserExist &&\n callType !== 'resetFilter'\n ) {\n setSelectedManagerUser(managerUsers);\n managerUser = managerUsers;\n } else {\n setSelectedManagerUser(formatedApiData?.userListWithAll);\n managerUser =\n formatedApiData?.userList?.length > 1\n ? null\n : formatedApiData?.userList;\n }\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList('BGS', managerUser, users, callType);\n }\n\n setIsManagerAPICalled(true);\n } else {\n setManagerUserApiList([]);\n setManagerUserList([]);\n setSelectedManagerUser([]);\n }\n }\n });\n },\n\n [\n bindUserListData,\n checkIsUserExist,\n getBgsList,\n isBGSAdmin,\n isSpreetailRole,\n setSelectedManagerUser,\n ],\n );\n\n // calling bgs and advertising user api\n const callingBgsAndAdUserApi = useCallback(\n (callType, managerUsers, users) => {\n // bgs api\n if (isBGSAdmin || isSpreetailRole) {\n getManagerUserList('BGS Manager', managerUsers, users, callType);\n }\n\n if (isBGSManager) {\n getBgsList('BGS', loggedInUser, users, callType);\n }\n },\n [\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n getManagerUserList,\n getBgsList,\n loggedInUser,\n ],\n );\n\n // use effect for bgs team\n useEffect(() => {\n mounted.current = true;\n callingBgsAndAdUserApi('useEffect', selectedManagerUser, selectedUser);\n return () => {\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [callingBgsAndAdUserApi]);\n\n // callback function for GET Restock inventory data\n const onGetRestockData = useCallback(\n (\n brandPartner,\n marketplace,\n storageTypes,\n managerUsers,\n users,\n timeFrame,\n customDate,\n orderByApiKey,\n pageNumber,\n isDownloadReport = false,\n ) => {\n const usersString = generateStringOfValues(users);\n const managerUsersString = generateStringOfValues(managerUsers);\n const storageTypeString = generateStringOfValues(storageTypes);\n\n setRestockLoader(true);\n setRestockData(null);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n\n let orderByFlag = '';\n if (timeFrame?.value === CUSTOM) {\n orderByFlag = 'company_name';\n } else {\n orderByFlag = orderByApiKey;\n }\n\n getRestockData(\n isBGS,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n brandPartner,\n marketplace,\n storageTypeString,\n usersString,\n managerUsersString,\n timeFrame?.value,\n customDate,\n orderByFlag,\n pageNumber,\n isDownloadReport,\n ).then((response) => {\n if (response?.status === 200) {\n setRestockData(response?.data?.results);\n setRestockCount(response?.data?.count || 0);\n if (response?.data?.available_date !== null) {\n setDataAvailableDate(new Date(response?.data?.available_date));\n if (timeFrame?.value !== CUSTOM)\n setSelectedCustomDateState(\n new Date(response?.data?.available_date),\n );\n } else {\n setDataAvailableDate(new Date());\n setSelectedCustomDateState(new Date());\n }\n setRestockLoader(false);\n } else {\n setRestockData(null);\n setRestockCount(0);\n setRestockLoader(false);\n }\n });\n },\n\n [generateStringOfValues, isBGS, isBGSAdmin, isSpreetailRole, isBGSManager],\n );\n\n // callback function for get stranded inventory data\n const onGetStrandedInventoryData = useCallback(\n (\n brandPartner,\n marketplace,\n managerUsers,\n users,\n timeFrame,\n customDate,\n orderByApiKey,\n pageNumber,\n ) => {\n const usersString = generateStringOfValues(users);\n const managerUsersString = generateStringOfValues(managerUsers);\n\n setStrandedInventoryLoader(true);\n setStrandedInventoryData(null);\n\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n\n const orderByKey =\n orderByApiKey === 'sku_change'\n ? 'change'\n : orderByApiKey === '-sku_change'\n ? '-change'\n : orderByApiKey;\n\n getStrandedInventoryTableData(\n isBGS,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n brandPartner,\n marketplace,\n managerUsersString,\n usersString,\n timeFrame?.value,\n customDate,\n orderByKey,\n pageNumber,\n isRestockInventory,\n ).then((response) => {\n if (response?.status === 200) {\n setStrandedInventoryData(response?.data?.results);\n setStrandedInventoryCount(response?.data?.count || 0);\n\n setStrandedInventoryLoader(false);\n } else {\n setStrandedInventoryData(null);\n setStrandedInventoryCount(0);\n setStrandedInventoryLoader(false);\n }\n });\n },\n\n [\n generateStringOfValues,\n isBGS,\n isBGSAdmin,\n isBGSManager,\n isRestockInventory,\n isSpreetailRole,\n ],\n );\n\n // - called only at the begining.\n useEffect(() => {\n mounted.current = true;\n\n if (responseId === null && isManagerAPICalled && isBGSAPICalled) {\n // get brand partners list\n getLeadershipBrandPartnersList(\n 'useEffect',\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner,\n );\n onGetRestockData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedStorageType,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n customDateState,\n orderByApi,\n 1,\n );\n onGetStrandedInventoryData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n customDateState,\n strandedInventoryOrderByApi,\n 1,\n );\n\n setRestockPageNumber(1);\n setStrandedInventoryPageNumber(1);\n setResponseId('12345');\n }\n return () => {\n mounted.current = false;\n };\n }, [\n customDateState,\n getLeadershipBrandPartnersList,\n isBGSAPICalled,\n isManagerAPICalled,\n onGetRestockData,\n onGetStrandedInventoryData,\n orderByApi,\n responseId,\n selectedBrandPartner,\n selectedManagerUser,\n selectedMarketplace,\n selectedStorageType,\n selectedTimeFrame,\n selectedUser,\n strandedInventoryOrderByApi,\n ]);\n\n // function - handle download report api response\n const handleDownloadApiRes = (tab, response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n setDownloadReportLoader({ tab, loader: false });\n } else {\n toast.error('Oops! Something went wrong...');\n setDownloadReportLoader({ tab, loader: false });\n }\n };\n\n // https://bbe.atlassian.net/browse/PDV-8757 - Leadership dashboard improvements\n // handle download restock inventory report\n const handleDownloadBtn = (tab) => {\n setDownloadReportLoader({ tab, loader: true });\n\n const usersString = generateStringOfValues(selectedUser);\n const managerUsersString = generateStringOfValues(selectedManagerUser);\n const storageTypeString = generateStringOfValues(selectedStorageType);\n\n let orderByFlag = '';\n if (selectedTimeFrame?.value === CUSTOM) {\n orderByFlag = 'company_name';\n } else {\n orderByFlag = orderByApi;\n }\n if (tab === 'stranded-restock') {\n getStrandedInventoryTableData(\n isBGS,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n selectedBrandPartner?.value,\n\n selectedMarketplace?.value,\n managerUsersString,\n usersString,\n selectedTimeFrame?.value,\n customDateState,\n strandedInventoryOrderByApi,\n strandedInventoryPageNumber,\n isRestockInventory,\n true,\n ).then((response) => {\n handleDownloadApiRes(tab, response);\n });\n }\n if (tab === 'restock-limit') {\n getRestockData(\n isBGS,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n storageTypeString,\n usersString,\n managerUsersString,\n selectedTimeFrame?.value,\n customDateState,\n orderByFlag,\n restockPageNumber,\n true,\n ).then((response) => {\n handleDownloadApiRes(tab, response);\n });\n }\n };\n\n // handeling default states\n const ResetFiltersToDefaultStates = () => {\n setRestockPageNumber(1);\n setStrandedInventoryPageNumber(1);\n setCustomDateState(currentDate);\n setOrderByApi(defaultRestockOrderByApi);\n setOrderBy(defaultRestockInventoryOrderBy);\n setSelectedTimeFrame(defaultTimeFrameForInventory);\n setStrandedInventoryOrderByApi(defaultStrandedOrderByKey);\n setStrandedInventoryOrderBy(defaultStrandedInventoryOrderBy);\n };\n\n // calling leadership BP and dashboard performance api when filter value changes\n const callingBPandDashboardAPI = (\n callType,\n managerUsers,\n users,\n selectedBp,\n ) => {\n let brandPartner = {};\n let marketplace = {};\n\n const managerUserString = generateStringOfValues(managerUsers);\n const userString = generateStringOfValues(users);\n\n getLeadershipBrandPartners(\n userInfo?.role,\n 'inventory',\n managerUserString,\n userString,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.length) {\n ResetFiltersToDefaultStates();\n\n const bpList = bindBrandPartners(response?.data);\n setBrandPartnerOptions(bpList);\n\n if (callType === 'bpFilter') {\n if (selectedBp?.value === 'all') {\n brandPartner = allBrandPartnerObj;\n } else {\n brandPartner = selectedBp;\n }\n } else if (bpList?.length === 1) {\n brandPartner = bpList?.[0];\n } else {\n brandPartner = allBrandPartnerObj;\n }\n\n marketplace = brandPartner?.marketplaces?.[0];\n setSelectedBrandPartner(brandPartner);\n setSelectedMarketplace(marketplace);\n setMarketplaceOptions(brandPartner?.marketplaces);\n\n // calling dashboard api calls\n onGetRestockData(\n brandPartner?.value,\n marketplace?.value,\n selectedStorageType,\n managerUsers,\n users,\n defaultTimeFrameForInventory,\n currentDate,\n defaultRestockOrderByApi,\n 1,\n );\n\n onGetStrandedInventoryData(\n brandPartner?.value,\n marketplace?.value,\n managerUsers,\n users,\n defaultTimeFrameForInventory,\n currentDate,\n defaultStrandedOrderByKey,\n 1,\n );\n } else {\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setRestockLoader(false);\n setStrandedInventoryLoader(false);\n setRestockData([]);\n setStrandedInventoryData([]);\n setBrandPartnerOptions([]);\n setSelectedBrandPartner({});\n setSelectedPerformanceType({});\n }\n });\n };\n\n // https://bbe.atlassian.net/browse/PDV-8757 - leadership dashboard improvements\n // handle brand partner reporting filter events\n const handleBrandPartnerFilterEvents = (event) => {\n // Handeling the states and API calls when user select specific Brand Partner\n if (event?.value !== selectedBrandPartner?.value) {\n setSelectedBrandPartner(event);\n\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n let assignedUser = [];\n let assignedMangerUser = [];\n\n if (event?.value === 'all') {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n const userApiListWithAll = [...userApiList];\n if (userApiListWithAll?.length) {\n userApiListWithAll.unshift(allObj?.[0]);\n }\n\n const managerUserApiListWithAll = [...managerUserApiList];\n if (managerUserApiListWithAll?.length)\n managerUserApiListWithAll.unshift(allObj?.[0]);\n\n assignedUser = selectedUser?.length ? selectedUser : userApiListWithAll;\n assignedMangerUser = selectedManagerUser?.length\n ? selectedManagerUser\n : managerUserApiListWithAll;\n\n if (selectedManagerUser?.length === 0)\n setManagerUserList(managerUserApiListWithAll);\n if (selectedUser?.length === 0) setUserList(userApiListWithAll);\n } else {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n assignedUser = event?.bgs !== null ? [event?.bgs] : [];\n assignedMangerUser =\n event?.bgsManager !== null ? [event?.bgsManager] : [];\n }\n\n // set assigned bgs manager/ad team manager, bgs/ad manager of selected BP to multi-select bgs manager/ad team manager, bgs/ad manager dropdown filter.\n setSelectedManagerUser(assignedMangerUser);\n setSelectedUser(assignedUser);\n\n // if selected brand partner do not have assigned bgs manager/ad team manager and bgs/ad manager then clear the multiselect manager user and user dropdown filter list\n\n if (assignedMangerUser?.length === 0) {\n setManagerUserList([]);\n } else {\n const managerUserApiListWithAll = [...managerUserApiList];\n managerUserApiListWithAll.unshift(allObj?.[0]);\n setManagerUserList(managerUserApiListWithAll);\n }\n if (assignedUser?.length === 0) setUserList([]);\n\n // if selected brand partner have assigned bgs manager/ad team manager and bgs/ad manager then get its the bgs/ad manager list\n if (assignedMangerUser?.length) {\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList('BGS', assignedMangerUser, assignedUser, 'BPFilter');\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI(\n 'bpFilter',\n assignedMangerUser?.length ? assignedMangerUser : allObj,\n assignedUser?.length ? assignedUser : allObj,\n event,\n );\n }\n };\n // handle seller & vendor reporting filter events\n const handleSellerVendorFilterEvents = (event) => {\n setSelectedPerformanceType(event);\n };\n\n // handle marketplace filter events\n const handleMarketplace = (event) => {\n if (event?.value !== selectedMarketplace?.value) {\n setSelectedMarketplace(event);\n\n onGetRestockData(\n selectedBrandPartner?.value,\n event?.value,\n selectedStorageType,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n customDateState,\n orderByApi,\n 1,\n );\n\n onGetStrandedInventoryData(\n selectedBrandPartner?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n customDateState,\n strandedInventoryOrderByApi,\n 1,\n );\n\n setRestockPageNumber(1);\n setStrandedInventoryPageNumber(1);\n }\n };\n\n // handle inventory date filter events\n const handleTimeFrame = (event) => {\n const { value } = event;\n if (value !== selectedTimeFrame?.value) {\n setIsCustomDateApply(false);\n setSelectedTimeFrame(event);\n if (value !== CUSTOM) {\n setCustomDateState(currentDate);\n setSelectedCustomDateState(dataAvailableDate);\n\n onGetRestockData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedStorageType,\n selectedManagerUser,\n selectedUser,\n event,\n currentDate,\n orderByApi,\n restockPageNumber,\n );\n onGetStrandedInventoryData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n event,\n currentDate,\n strandedInventoryOrderByApi,\n strandedInventoryPageNumber,\n );\n }\n }\n if (value === CUSTOM) {\n setShowCustomDateModal(true);\n }\n };\n\n // apply selected custom date\n const applyCustomDate = () => {\n setIsCustomDateApply(true);\n setOrderByApi('company_name');\n setOrderBy({\n utilization: false,\n max_shipment: false,\n open_shipment: false,\n on_hand: false,\n company_name: true,\n });\n\n setCustomDateState(selectedCustomDateState);\n setShowCustomDateModal(false);\n onGetRestockData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedStorageType,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n selectedCustomDateState,\n orderByApi,\n restockPageNumber,\n );\n onGetStrandedInventoryData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n selectedCustomDateState,\n strandedInventoryOrderByApi,\n strandedInventoryPageNumber,\n );\n };\n\n // handle bgs manager/ad team managerfilter events\n const handleManagerUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedManagerUser,\n managerUserApiList,\n );\n setSelectedManagerUser(selectedValues);\n setIsManagerUsersSelected(true);\n };\n\n // handle bgs manager/ad team manager on dropdwon menu close events\n const handleManagerUserOnMenuCloseEvents = () => {\n if (isManagerUsersSelected) {\n const managerUsers =\n selectedManagerUser?.length > 0 ? selectedManagerUser : managerUserList;\n setSelectedManagerUser(managerUsers);\n const isAllUser = managerUsers?.some((user) => user?.value === 'all');\n const users = allObj;\n\n if (isBGSAdmin || isSpreetailRole) {\n if (isAllUser) {\n getBgsList('BGS', null, users, 'managerUserFilter');\n } else {\n getBgsList('BGS', managerUsers, users, 'managerUserFilter');\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI(\n 'managerUsersFilter',\n isAllUser ? allObj : managerUsers,\n users,\n null,\n );\n }\n };\n\n // handle bgs/ad manager filter events\n const handleBgsUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedUser,\n userApiList,\n );\n\n setSelectedUser(selectedValues);\n setIsUsersSelected(true);\n };\n\n // handle bgs/ad manager on dropdwon menu close events\n const handleUserOnMenuCloseEvents = () => {\n if (isUsersSelected) {\n let managerUsers = selectedManagerUser;\n const users = selectedUser?.length > 0 ? selectedUser : userList;\n\n setSelectedUser(users);\n\n // When bgs manager and ad team manager filter set to all then Automatically set the bgs manager or ad team manager assigned to selected bgs or ad team manager\n if ((isBGSAdmin || isSpreetailRole) && selectedUser?.length === 1) {\n const userExisted = userList?.find(\n (bgsUser) =>\n bgsUser?.value === selectedUser?.[0]?.value &&\n bgsUser?.managerUser !== null,\n );\n\n if (userExisted !== undefined) {\n const managerUserObject = {\n value: userExisted?.managerUser?.id,\n label: `${userExisted?.managerUser?.first_name} ${userExisted?.managerUser?.last_name}`,\n };\n managerUsers = [managerUserObject];\n setSelectedManagerUser([managerUserObject]);\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList('BGS', managerUsers, users, 'bgsFilter');\n }\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI('usersFilter', managerUsers, users, null);\n }\n };\n\n // handle StorageType Filter Events\n const handleStorageTypeFilterEvents = (event, action) => {\n const optionsWithoutAll = storageTypeOptions?.filter(\n (option) => option?.value !== 'all',\n );\n\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedStorageType,\n optionsWithoutAll,\n );\n\n setSelectedStorageType(selectedValues);\n setIsStorageTypeSelected(true);\n };\n\n // handle storage type filter on menu close events\n const handleStorageTypeFilterOnMenuCloseEvents = () => {\n if (isStorageTypeSelected) {\n const stotageType =\n selectedStorageType?.length > 0\n ? selectedStorageType\n : storageTypeOptions;\n\n onGetRestockData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n stotageType,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n selectedCustomDateState,\n orderByApi,\n restockPageNumber,\n );\n }\n };\n\n // handle reset filter events\n const handleResetFilter = () => {\n // Reset the LHS filters\n setSelectedMarketplace(marketplaceChoices?.[0]);\n ResetFiltersToDefaultStates();\n setSelectedBrandPartner(allBrandPartnerObj);\n setOrderBy(defaultRestockInventoryOrderBy);\n setOrderByApi(defaultRestockOrderByApi);\n setStrandedInventoryOrderBy(defaultStrandedInventoryOrderBy);\n setStrandedInventoryOrderByApi(defaultStrandedOrderByKey);\n\n // set assigned bgs manager/ad team manager, bgs/ad manager of selected BP to multi-select bgs manager/ad team manager, bgs/ad manager dropdown filter.\n const managerUser = isBGSManager ? loggedInUser : allObj;\n const user = isBGS ? loggedInUser : allObj;\n\n setSelectedUser(user);\n setSelectedManagerUser(managerUser);\n // calling Leadership-customer api\n getLeadershipBrandPartnersList(\n 'resetFilter',\n managerUser,\n user,\n allBrandPartnerObj,\n );\n // calling bgs and advertising user api\n callingBgsAndAdUserApi('resetFilter', managerUser, user);\n\n // calling dashboard api\n onGetRestockData(\n 'all',\n 'all',\n selectedStorageType,\n managerUser,\n user,\n defaultTimeFrameForInventory,\n currentDate,\n defaultRestockOrderByApi,\n 1,\n );\n\n onGetStrandedInventoryData(\n 'all',\n 'all',\n managerUser,\n user,\n defaultTimeFrameForInventory,\n currentDate,\n defaultStrandedOrderByKey,\n 1,\n );\n };\n\n // handle on click order of restock limit inventory\n const handleOnClickOrderOfRestockLimit = (value) => {\n const finalOrder = {\n utilization: false,\n max_shipment: false,\n open_shipment: false,\n on_hand: false,\n };\n let orderByApiKey = orderByApi;\n for (const property in orderBy) {\n if (value === property) {\n orderByApiKey = orderBy[property] ? value : `-${value}`;\n setOrderByApi(orderByApiKey);\n finalOrder[property] = !orderBy[property];\n }\n }\n\n setOrderBy(finalOrder);\n\n // calling dashboard api\n onGetRestockData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedStorageType,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n customDateState,\n orderByApiKey,\n restockPageNumber,\n );\n };\n\n // handle on click order of Stranded And Restock Inventory\n const handleOnClickOrderOfStrandedAndRestockInventory = (value) => {\n const finalOrder = isRestockInventory\n ? {\n understocked: false,\n overstocked: false,\n available: false,\n company_name: true,\n }\n : {\n available: false,\n sku_change: false,\n percent_change: false,\n };\n let orderByApiKey = strandedInventoryOrderByApi;\n for (const property in strandedInventoryOrderBy) {\n if (value === property) {\n orderByApiKey = strandedInventoryOrderBy[property]\n ? value\n : `-${value}`;\n\n setStrandedInventoryOrderByApi(orderByApiKey);\n finalOrder[property] = !strandedInventoryOrderBy[property];\n }\n }\n\n setStrandedInventoryOrderBy(finalOrder);\n\n // calling dashboard api calls\n onGetStrandedInventoryData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n customDateState,\n orderByApiKey,\n strandedInventoryPageNumber,\n );\n };\n\n // handle restock inventory pagination events\n const handleRestockInventoryPagination = (currentPage) => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n setRestockPageNumber(currentPage);\n // calling dashboard api calls\n onGetRestockData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedStorageType,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n customDateState,\n orderByApi,\n currentPage,\n );\n };\n\n // handle restock inventory pagination events\n const handleStrandedInventoryPagination = (currentPage) => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n setStrandedInventoryPageNumber(currentPage);\n\n // calling dashboard api calls\n onGetStrandedInventoryData(\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedTimeFrame,\n customDateState,\n strandedInventoryOrderByApi,\n currentPage,\n );\n };\n\n // render storage type filter\n const renderStorageTypeFilter = () => {\n const isApiCall = restockLoader || strandedInventoryLoader;\n return (\n
    \n option?.value !== 'all',\n )}\n label=\"\"\n value=\"storage\"\n multiSelectedValues={{ storage: selectedStorageType }}\n setMultiSelectedValues={setSelectedStorageType}\n handleMultiSelectChange={handleStorageTypeFilterEvents}\n handleOnMenuClose={handleStorageTypeFilterOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable={false}\n />\n
    \n );\n };\n\n // display inventory filter section\n const displayInventoryFilterSection = () => {\n return (\n \n );\n };\n\n // render modals\n const renderModals = () => {\n return (\n {\n setShowCustomDateModal(false);\n if (selectedTimeFrame.value !== CUSTOM)\n setSelectedCustomDateState(dataAvailableDate);\n }}\n onChange={(item) => {\n setSelectedCustomDateState(item);\n }}\n onApply={() => applyCustomDate()}\n currentDate={dataAvailableDate}\n />\n );\n };\n\n // display inventory right hand side section\n const displayInventoryRHSSection = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n
    \n
    \n {displayInventoryFilterSection()}\n
    \n
    \n {displayInventoryRHSSection()}\n
    \n {renderModals()}\n
    \n
    \n );\n};\n\nexport default InventoryDashboardContainer;\n\nInventoryDashboardContainer.defaultProps = {\n // boolean\n isBGS: false,\n isBGSAdmin: false,\n isBGSManager: false,\n isSpreetailRole: false,\n includeInactiveBPs: false,\n includeSpreetailBrands: false,\n // object\n userInfo: {},\n selectedMarketplace: {},\n selectedBrandPartner: {},\n // array\n loggedInUser: [],\n selectedUser: [],\n selectedManagerUser: [],\n marketplaceChoices: [],\n // function\n setSelectedUser: () => {},\n checkIsUserExist: () => {},\n bindUserListData: () => {},\n bindBrandPartners: () => {},\n setSelectedMarketplace: () => {},\n setSelectedManagerUser: () => {},\n generateStringOfValues: () => {},\n setSelectedBrandPartner: () => {},\n handleMultiSelectDropdownFilterEvents: () => {},\n};\n\nInventoryDashboardContainer.propTypes = {\n // boolean\n isBGS: bool,\n isBGSAdmin: bool,\n isBGSManager: bool,\n isSpreetailRole: bool,\n includeInactiveBPs: bool,\n includeSpreetailBrands: bool,\n // object\n userInfo: shape({}),\n selectedMarketplace: shape({}),\n selectedBrandPartner: shape({}),\n // array\n loggedInUser: arrayOf(shape({})),\n selectedUser: arrayOf(shape({})),\n selectedManagerUser: arrayOf(shape({})),\n marketplaceChoices: arrayOf(shape({})),\n // function\n setSelectedUser: func,\n checkIsUserExist: func,\n bindUserListData: func,\n bindBrandPartners: func,\n setSelectedMarketplace: func,\n setSelectedManagerUser: func,\n generateStringOfValues: func,\n setSelectedBrandPartner: func,\n handleMultiSelectDropdownFilterEvents: func,\n};\n","// react imports\nimport React, { useState } from 'react';\n\n// third party imports\nimport { useMediaQuery } from 'react-responsive';\nimport { components } from 'react-select';\nimport { arrayOf, bool, func, shape, string } from 'prop-types';\n\n// local file imports\nimport { CaretUp } from '../../../../theme/images';\nimport { performanceTypeOptions } from '../../../../constants';\nimport {\n WhiteCard,\n MultiSelectSearchableDropdown,\n DropdownIndicator,\n SingleSelectDropdown,\n DropdownOptions,\n} from '../../../../common';\n\nconst SponsoredFilter = ({\n // boolean\n isApiCall,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isAdManagerAdmin,\n isAdTeamManager,\n // objects\n selectedAdType,\n selectedMarketplace,\n selectedBrandPartner,\n selectedPerformanceType,\n // array\n userList,\n managerUserList,\n selectedUser,\n marketplaceOptions,\n brandPartnerOptions,\n selectedManagerUser,\n sponsoredAdTypeOptions,\n // function\n setSelectedUser,\n handleResetFilter,\n handleMarketplace,\n setSelectedAdType,\n setSelectedManagerUser,\n handleUserFilterEvents,\n handleUserOnMenuCloseEvents,\n handleManagerUserFilterEvents,\n handleSellerVendorFilterEvents,\n handledBrandPartnerFilterEvents,\n handleSponsoredAdTypeFilterEvents,\n handleAdTypeFilterOnMenuCloseEvents,\n handleManagerUserOnMenuCloseEvents,\n}) => {\n const { SingleValue } = components;\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n\n // react select - single value\n const singleFilterOption = (props) => (\n \n {props?.data?.label}\n \n );\n\n // react select - get dropdown components\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n // render multi select dropdown for bgs and ad manager\n const renderUserDropdown = () => {\n return (\n
    \n
    \n {isBGSAdmin || isBGSManager || isSpreetailRole ? 'BGS' : 'Ad Manager'}\n
    \n\n
    \n option?.value !== 'all')}\n label=\"\"\n value=\"user\"\n multiSelectedValues={{ user: selectedUser }}\n setMultiSelectedValues={setSelectedUser}\n handleMultiSelectChange={handleUserFilterEvents}\n handleOnMenuClose={handleUserOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable\n />\n
    \n
    \n );\n };\n\n // render multi select dropdown for bgs manager and ad team manager\n const renderManagerUserDropdown = (label) => {\n return (\n
    \n
    {label}
    \n
    \n option?.value !== 'all',\n )}\n label=\"\"\n value=\"managerUser\"\n multiSelectedValues={{ managerUser: selectedManagerUser }}\n setMultiSelectedValues={setSelectedManagerUser}\n handleMultiSelectChange={handleManagerUserFilterEvents}\n handleOnMenuClose={handleManagerUserOnMenuCloseEvents}\n isLoading={isApiCall}\n isSearchable\n />\n
    \n
    \n );\n };\n\n // render custom dropdown filter components\n const renderCustomDropdownFilter = (\n filterId,\n optionsList,\n selectedValue,\n onChangeHandler,\n ) => {\n return (\n
    \n \n
    \n );\n };\n\n // render Brand Partner type dropdwon filter\n const renderBrandPartnerDropdownFilter = () => {\n return (\n
    \n
    Brand Partner
    \n {renderCustomDropdownFilter(\n 'BT-SalesBrandPartnerTypeFilter',\n brandPartnerOptions,\n selectedBrandPartner,\n handledBrandPartnerFilterEvents,\n )}\n
    \n );\n };\n\n // render performance type dropdwon filter\n const renderPerformanceDropdownFilter = () => {\n return (\n
    \n
    Performnace
    \n {renderCustomDropdownFilter(\n 'BT-SponsoredPerformanceFilter',\n performanceTypeOptions,\n selectedPerformanceType,\n handleSellerVendorFilterEvents,\n )}\n
    \n );\n };\n\n // render marketplace dropdown filter\n const renderMarketplaceDropdownFilter = () => {\n return (\n
    \n
    Marketplace
    \n {renderCustomDropdownFilter(\n 'BT-sponsored-countryfilter',\n marketplaceOptions,\n selectedMarketplace,\n handleMarketplace,\n )}\n
    \n );\n };\n\n const getAdTypeOptions = () => {\n const afterRomeAlloption = sponsoredAdTypeOptions?.filter(\n (option) => option?.value !== 'all',\n );\n\n // PDV-8954\n // when Non-US markeplace selected then need to disabled the\n // television_campaign_report and all_ad _type option of sponsred ad type filter.\n // here we are set the isDisabled Flag.\n // ---------------------start---------------------\n let localAdtypes = afterRomeAlloption;\n if (\n selectedMarketplace?.value !== 'amazon.com' &&\n selectedMarketplace?.value !== 'all'\n ) {\n localAdtypes = afterRomeAlloption.map((ele) => {\n return {\n value: ele?.value,\n label: ele.label,\n key: ele?.key,\n isDisabled: ele.value === 'television_campaign_report',\n };\n });\n }\n // ---------------------end---------------------\n return localAdtypes;\n };\n\n // render sponsored ad types multi select filter\n const renderSponsoredAdTypesFilter = () => {\n return (\n
    \n
    Sponsored Ad Type
    \n
    \n \n
    \n
    \n );\n };\n\n // display sp filter desktop view\n const displaySpFilterDekstopView = () => {\n return (\n \n
    \n
    \n
    Filters
    \n
    \n
    \n handleResetFilter()}\n className={`gray-normal-text m-0 cursor ${\n isApiCall ? 'disabled' : ''\n }`}\n >\n Reset filters\n

    \n
    \n {renderBrandPartnerDropdownFilter()}\n {renderPerformanceDropdownFilter()}\n {renderMarketplaceDropdownFilter()}\n {isBGSAdmin || isAdManagerAdmin || isSpreetailRole\n ? renderManagerUserDropdown(\n isBGSAdmin || isSpreetailRole\n ? 'BGS Manager'\n : 'Ad Team Manager',\n )\n : null}\n {isBGSManager ||\n isBGSAdmin ||\n isAdManagerAdmin ||\n isAdTeamManager ||\n isSpreetailRole\n ? renderUserDropdown(\n isBGSAdmin || isBGSManager || isSpreetailRole\n ? 'BGS'\n : 'Ad Manager',\n )\n : null}\n {renderSponsoredAdTypesFilter()}\n
    \n
    \n );\n };\n\n // display sp filter mobile view\n const displaySpFilterMobileView = () => {\n return (\n setIsCollapseOpen(!isCollapseOpen)}\n className=\"mb-3 d-lg-none d-block\"\n >\n
    \n
    \n
    Filters
    \n
    \n
    \n handleResetFilter()}\n >\n Reset filters\n \n {\n e.stopPropagation();\n setIsCollapseOpen(!isCollapseOpen);\n }}\n >\n \n \n

    \n
    \n
    \n {isCollapseOpen ? (\n
    \n
    \n
    {renderBrandPartnerDropdownFilter()}
    \n
    \n
    \n
    {renderPerformanceDropdownFilter()}
    \n
    \n
    \n
    {renderMarketplaceDropdownFilter()}
    \n
    \n {isBGSAdmin || isAdManagerAdmin || isSpreetailRole ? (\n
    \n
    \n {renderManagerUserDropdown(\n isBGSAdmin || isSpreetailRole\n ? 'BGS Manager'\n : 'Ad Team Manager',\n )}\n
    \n
    \n ) : null}\n\n {isBGSManager ||\n isBGSAdmin ||\n isAdManagerAdmin ||\n isSpreetailRole ? (\n
    \n
    \n {renderUserDropdown('customer-list-header')}\n
    \n
    \n ) : null}\n
    \n
    {renderSponsoredAdTypesFilter()}
    \n
    \n
    \n ) : null}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n {isDesktop ? displaySpFilterDekstopView() : displaySpFilterMobileView()}\n \n );\n};\n\nexport default SponsoredFilter;\n\nSponsoredFilter.defaultProps = {\n // boolean\n isApiCall: false,\n isBGSAdmin: false,\n isSpreetailRole: false,\n isBGSManager: false,\n isAdManagerAdmin: false,\n isAdTeamManager: false,\n // objects\n data: {},\n selectedMarketplace: {},\n selectedBrandPartner: {},\n selectedPerformanceType: {},\n // array\n userList: [],\n selectedUser: [],\n selectedAdType: [],\n managerUserList: [],\n marketplaceOptions: [],\n brandPartnerOptions: [],\n selectedManagerUser: [],\n sponsoredAdTypeOptions: [],\n // function\n setSelectedUser: () => {},\n handleResetFilter: () => {},\n handleMarketplace: () => {},\n setSelectedAdType: () => {},\n setSelectedManagerUser: () => {},\n handleUserFilterEvents: () => {},\n handleUserOnMenuCloseEvents: () => {},\n handleManagerUserFilterEvents: () => {},\n handleSellerVendorFilterEvents: () => {},\n handledBrandPartnerFilterEvents: () => {},\n handleSponsoredAdTypeFilterEvents: () => {},\n handleAdTypeFilterOnMenuCloseEvents: () => {},\n handleManagerUserOnMenuCloseEvents: () => {},\n};\n\nSponsoredFilter.propTypes = {\n // boolean\n isApiCall: bool,\n isBGSAdmin: bool,\n isSpreetailRole: bool,\n isBGSManager: bool,\n isAdManagerAdmin: bool,\n isAdTeamManager: bool,\n // objects\n data: shape({ sub: string, label: string }),\n selectedMarketplace: shape({}),\n selectedPerformanceType: shape({}),\n selectedBrandPartner: shape({}),\n // array\n selectedAdType: arrayOf(shape({})),\n userList: arrayOf(shape({})),\n managerUserList: arrayOf(shape({})),\n selectedUser: arrayOf(shape({})),\n selectedManagerUser: arrayOf(shape({})),\n marketplaceOptions: arrayOf(shape({})),\n sponsoredAdTypeOptions: arrayOf(shape({})),\n brandPartnerOptions: arrayOf(shape({})),\n // function\n handleResetFilter: func,\n handleMarketplace: func,\n setSelectedAdType: func,\n setSelectedUser: func,\n setSelectedManagerUser: func,\n handleUserFilterEvents: func,\n handleUserOnMenuCloseEvents: func,\n handleManagerUserFilterEvents: func,\n handleManagerUserOnMenuCloseEvents: func,\n handleSellerVendorFilterEvents: func,\n handleSponsoredAdTypeFilterEvents: func,\n handleAdTypeFilterOnMenuCloseEvents: func,\n handledBrandPartnerFilterEvents: func,\n};\n","// third party imports\nimport dayjs from 'dayjs';\n\nconst BindSponsoredAdData = (response) => {\n const tempData = [];\n\n // get a last date of the week\n const getOneDayBack = (reportDateTemp) => {\n const reportDateResultTemp = new Date(reportDateTemp);\n reportDateResultTemp.setDate(reportDateResultTemp.getDate() - 1);\n return reportDateResultTemp;\n };\n const nextReportDate = (indexTemp, graphDataArray, dateParam) => {\n return dayjs(\n indexTemp + 1 < graphDataArray?.length\n ? getOneDayBack(graphDataArray[indexTemp + 1]?.report_date)\n : response?.dates?.[\n dateParam === 'current' ? 'current_end_date' : 'prevous_end_date'\n ],\n ).format('MMM D YYYY');\n };\n\n // filterout previous data in one temporary object.\n if (response?.previous?.length) {\n response.previous.forEach((item, index) => {\n const previousDate = dayjs(item?.report_date).format('MMM D YYYY');\n tempData.push({\n adSalesPrevious: item?.ad_sales,\n adSpendPrevious: item?.ad_spend,\n adConversionPrevious: item?.ad_conversion_rate,\n impressionsPrevious: item?.impressions,\n adCosPrevious: item?.acos,\n adRoasPrevious: item?.roas,\n adClicksPrevious: item?.clicks,\n adClickRatePrevious: item?.ctr,\n costPerClickPrevious: item?.cost_per_click,\n salesPerClickPrevious: item?.sales_per_click,\n percentageNtbOrdersPrevious: item?.ntb_orders_percent,\n percentageNtbSalesPrevious: item?.ntb_sales_percent,\n ntbOrdersPrevious: item?.ntb_orders,\n ntbSalesPrevious: item?.ntb_sales,\n\n previousDate,\n previousEndDate: nextReportDate(index, response?.previous, 'previous'),\n\n adSalesPreviousLabel:\n item?.ad_sales !== null ? item.ad_sales.toFixed(2) : '0.00',\n adSpendPreviousLabel:\n item?.ad_spend !== null ? item.ad_spend.toFixed(2) : '0.00',\n adConversionPreviousLabel:\n item?.ad_conversion_rate !== null\n ? item.ad_conversion_rate.toFixed(2)\n : '0.00',\n impressionsPreviousLabel:\n item?.impressions !== null ? item.impressions : '0',\n adCosPreviousLabel: item?.acos !== null ? item.acos.toFixed(2) : '0.00',\n adRoasPreviousLabel:\n item?.roas !== null ? item.roas.toFixed(2) : '0.00',\n adClicksPreviousLabel: item?.clicks !== null ? item.clicks : '0',\n adClickRatePreviousLabel:\n item?.ctr !== null ? item.ctr.toFixed(2) : '0.00',\n costPerClickPreviousLabel:\n item?.cost_per_click !== null\n ? item?.cost_per_click.toFixed(2)\n : '0.00',\n salesPerClickPreviousLabel:\n item?.sales_per_click !== null\n ? item?.sales_per_click.toFixed(2)\n : '0.00',\n percentageNtbOrdersPreviousLabel:\n item?.ntb_orders_percent !== null\n ? item?.ntb_orders_percent.toFixed(2)\n : '0',\n percentageNtbSalesPreviousLabel:\n item?.ntb_sales_percent !== null\n ? item?.ntb_sales_percent.toFixed(2)\n : '0',\n ntbOrdersPreviousLabel:\n item?.ntb_orders !== null ? item?.ntb_orders.toFixed(2) : '0',\n ntbSalesPreviousLabel:\n item?.ntb_sales !== null ? item?.ntb_sales.toFixed(2) : '0',\n });\n });\n }\n\n // filterout current data in one temporary object.\n if (response?.current?.length) {\n response.current.forEach((item, index) => {\n const currentReportDate = dayjs(item?.report_date).format('MMM D YYYY');\n // add the current data at same index of prevoius in temporary object\n if (response?.previous && index < response?.previous?.length) {\n tempData[index].date = currentReportDate;\n tempData[index].adSalesCurrent = item?.ad_sales;\n tempData[index].adSpendCurrent = item?.ad_spend;\n tempData[index].adConversionCurrent = item?.ad_conversion_rate;\n tempData[index].impressionsCurrent = item?.impressions;\n tempData[index].adCosCurrent = item?.acos;\n tempData[index].adRoasCurrent = item?.roas;\n tempData[index].adClicksCurrent = item?.clicks;\n tempData[index].adClickRateCurrent = item?.ctr;\n tempData[index].costPerClickCurrent = item?.cost_per_click;\n tempData[index].salesPerClickCurrent = item?.cost_per_click;\n tempData[index].percentageNtbOrdersCurrent = item?.ntb_orders_percent;\n tempData[index].percentageNtbSalesCurrent = item?.ntb_sales_percent;\n tempData[index].ntbOrdersCurrent = item?.ntb_orders;\n tempData[index].ntbSalesCurrent = item?.ntb_sales;\n tempData[index].endDate = nextReportDate(\n index,\n response?.current,\n 'current',\n );\n\n tempData[index].adSalesCurrentLabel =\n item?.ad_sales !== null ? item.ad_sales.toFixed(2) : '0.00';\n tempData[index].adSpendCurrentLabel =\n item?.ad_spend !== null ? item.ad_spend.toFixed(2) : '0.00';\n tempData[index].adConversionCurrentLabel =\n item?.ad_conversion_rate !== null\n ? item.ad_conversion_rate.toFixed(2)\n : '0.00';\n tempData[index].impressionsCurrentLabel =\n item?.impressions !== null ? item.impressions : '0';\n tempData[index].adCosCurrentLabel =\n item?.acos !== null ? item.acos.toFixed(2) : '0.00';\n tempData[index].adRoasCurrentLabel =\n item?.roas !== null ? item.roas.toFixed(2) : '0.00';\n tempData[index].adClicksCurrentLabel =\n item?.clicks !== null ? item.clicks : '0';\n tempData[index].adClickRateCurrentLabel =\n item?.ctr !== null ? item.ctr.toFixed(2) : '0.00';\n tempData[index].costPerClickCurrentLabel =\n item?.cost_per_click !== null\n ? item.cost_per_click.toFixed(2)\n : '0.00';\n tempData[index].salesPerClickCurrentLabel =\n item?.sales_per_click !== null\n ? item.sales_per_click.toFixed(2)\n : '0.00';\n tempData[index].percentageNtbOrdersCurrentLabel =\n item?.ntb_orders_percent ? item.ntb_orders_percent.toFixed(2) : '0';\n tempData[index].percentageNtbSalesCurrentLabel = item?.ntb_sales_percent\n ? item?.ntb_sales_percent.toFixed(2)\n : '0';\n tempData[index].ntbOrdersCurrentLabel = item?.ntb_orders\n ? item?.ntb_orders.toFixed(2)\n : '0';\n tempData[index].ntbSalesCurrentLabel = item?.ntb_sales\n ? item?.ntb_sales.toFixed(2)\n : '0';\n } else {\n // if current data count is larger than previous count then\n // generate separate key for current data and defien previou value null and previous label 0\n tempData.push({\n adSalesCurrent: item?.ad_sales,\n adSpendCurrent: item?.ad_spend,\n adConversionCurrent: item?.ad_conversion_rate,\n impressionsCurrent: item?.impressions,\n adCosCurrent: item?.acos,\n adRoasCurrent: item?.roas,\n adClicksCurrent: item?.clicks,\n adClickRateCurrent: item?.ctr,\n costPerClickCurrent: item?.cost_per_click,\n salesPerClickCurrent: item?.sales_per_click,\n percentageNtbOrdersCurrent: item?.ntb_orders_percent,\n percentageNtbSalesCurrent: item?.ntb_sales_percent,\n ntbOrdersCurrent: item?.ntb_orders,\n ntbSalesCurrent: item?.ntb_sales,\n date: currentReportDate,\n endDate: nextReportDate(\n index,\n response?.daily_facts?.current,\n 'current',\n ),\n\n adSalesPrevious: null,\n adSpendPrevious: null,\n adConversionPrevious: null,\n impressionsPrevious: null,\n adCosPrevious: null,\n adRoasPrevious: null,\n adClicksPrevious: null,\n adClickRatePrevious: null,\n costPerClickPrevious: null,\n salesPerClickPrevious: null,\n percentageNtbOrders: null,\n percentageNtbSales: null,\n ntbOrders: null,\n ntbSales: null,\n\n adSalesCurrentLabel:\n item?.ad_sales !== null ? item.ad_sales.toFixed(2) : '0.00',\n adSpendCurrentLabel:\n item?.ad_spend !== null ? item.ad_spend.toFixed(2) : '0.00',\n adConversionCurrentLabel:\n item?.ad_conversion_rate !== null\n ? item.ad_conversion_rate.toFixed(2)\n : '0.00',\n impressionsCurrentLabel:\n item?.impressions !== null ? item.impressions : '0',\n adCosCurrentLabel:\n item?.acos !== null ? item.acos.toFixed(2) : '0.00',\n adRoasCurrentLabel:\n item?.roas !== null ? item.roas.toFixed(2) : '0.00',\n adClicksCurrentLabel: item?.clicks !== null ? item.clicks : '0',\n adClickRateCurrentLabel:\n item?.ctr !== null ? item.ctr.toFixed(2) : '0.00',\n costPerClickCurrentLabel:\n item?.cost_per_click !== null\n ? item.cost_per_click.toFixed(2)\n : '0.00',\n salesPerClickCurrentLabel:\n item?.sales_per_click !== null\n ? item.sales_per_click.toFixed(2)\n : '0.00',\n percentageNtbOrdersCurrentLabel: item?.ntb_orders_percent\n ? item?.ntb_orders_percent.toFixed(2)\n : '0',\n percentageNtbSalesCurrentLabel: item?.ntb_sales_percent\n ? item?.ntb_sales_percent.toFixed(2)\n : '0',\n ntbOrdersCurrentLabel: item?.ntb_orders\n ? item?.ntb_orders.toFixed(2)\n : '0',\n ntbSalesCurrentLabel: item?.ntb_sales\n ? item?.ntb_sales.toFixed(2)\n : '0',\n\n adSalesPreviousLabel: '0.00',\n adSpendPreviousLabel: '0.00',\n adConversionPreviousLabel: '0.00',\n impressionsPreviousLabel: '0',\n adCosPreviousLabel: '0.00',\n adRoasPreviousLabel: '0.00',\n adClicksPreviousLabel: '0',\n adClickRatePreviousLabel: '0.00',\n costPerClickPreviousLabel: '0.00',\n salesPerClickPreviousLabel: '0.00',\n percentageNtbOrdersPreviousLabel: '0',\n percentageNtbSalesPreviousLabel: '0',\n ntbOrdersPreviousLabel: '0',\n ntbSalesPreviousLabel: '0',\n });\n }\n });\n }\n\n return tempData;\n};\n\nexport default BindSponsoredAdData;\n","// Third party package imports\nimport { arrayOf, bool, func, number, shape, string } from 'prop-types';\n\n// local file imports\nimport { ADSALES } from '../../../../constants';\n\n/* ********** Declaring prop types ********** */\nexport const SponsoredDashboardContainerDefaultProps = {\n // string\n responseID: null,\n currencySymbol: '',\n // boolean\n isBGS: false,\n isBGSAdmin: false,\n isSpreetailRole: false,\n isBGSManager: false,\n isAdManager: false,\n isAdTeamManager: false,\n isAdManagerAdmin: false,\n isCustomDateApply: false,\n includeInactiveBPs: false,\n includeSpreetailBrands: false,\n // object\n data: {},\n userInfo: {},\n customDate: {},\n selectedAdDF: {},\n selectedMarketplace: {},\n selectedPerformanceType: {},\n selectedBrandPartner: {},\n // array\n loggedInUser: [],\n adState: [],\n selectedUser: [],\n selectedManagerUser: [],\n marketplaceChoices: [],\n sponsoredAdMultiSelected: [],\n // function\n setSelectedBrandPartner: () => {},\n bindBrandPartners: () => {},\n setCustomDate: () => {},\n setSelectedAdDF: () => {},\n setSelectedUser: () => {},\n setCurrencySymbol: () => {},\n setSelectedManagerUser: () => {},\n setAdState: () => {},\n setIsCustomDateApply: () => {},\n setSelectedMarketplace: () => {},\n checkIsUserExist: () => {},\n bindUserListData: () => {},\n renderAllocateBar: () => {},\n generateStringOfValues: () => {},\n setSelectedPerformanceType: () => {},\n displayContributionTable: () => {},\n bindMetricsContributionData: () => {},\n renderRecentAndPreviousLabel: () => {},\n handleMultiSelectDropdownFilterEvents: () => {},\n setSponsoredAdMultiSelected: () => {},\n setResponseID: () => {},\n};\n\nexport const SponsoredDashboardContainerPropTypes = {\n // string\n responseID: string,\n currencySymbol: string,\n // boolean\n isBGS: bool,\n isBGSAdmin: bool,\n isSpreetailRole: bool,\n isBGSManager: bool,\n isAdManager: bool,\n isAdTeamManager: bool,\n isAdManagerAdmin: bool,\n isCustomDateApply: bool,\n includeInactiveBPs: bool,\n includeSpreetailBrands: bool,\n // object\n data: shape({ sub: string, label: string }),\n userInfo: shape({}),\n customDate: shape({}),\n selectedAdDF: shape({}),\n selectedMarketplace: shape({}),\n selectedPerformanceType: shape({}),\n selectedBrandPartner: shape({}),\n // array\n loggedInUser: arrayOf(shape({})),\n adState: arrayOf(shape({})),\n selectedUser: arrayOf(shape({})),\n selectedManagerUser: arrayOf(shape({})),\n marketplaceChoices: arrayOf(shape({})),\n sponsoredAdMultiSelected: arrayOf(shape({})),\n // function\n setSelectedBrandPartner: func,\n bindBrandPartners: func,\n setCustomDate: func,\n setSelectedAdDF: func,\n setSelectedUser: func,\n setCurrencySymbol: func,\n setSelectedManagerUser: func,\n setAdState: func,\n setIsCustomDateApply: func,\n setSelectedMarketplace: func,\n checkIsUserExist: func,\n bindUserListData: func,\n renderAllocateBar: func,\n generateStringOfValues: func,\n setSelectedPerformanceType: func,\n displayContributionTable: func,\n bindMetricsContributionData: func,\n renderRecentAndPreviousLabel: func,\n handleMultiSelectDropdownFilterEvents: func,\n setResponseID: func,\n setSponsoredAdMultiSelected: func,\n};\n\nexport const SponsoredRightHandSideSectionDefaultProps = {\n // bool\n isCustomDateApply: false,\n adGraphLoader: false,\n downloadReportLoader: false,\n keyContributionLoader: false,\n // string\n adGroupBy: 'daily',\n currencySymbol: '$',\n selectedTabMetrics: ADSALES,\n // number\n pageNumber: 1,\n contributionCount: 0,\n // object\n selectedAdDF: {},\n adDifference: {},\n adCurrentTotal: {},\n adPreviousTotal: {},\n selectedAdMetrics: {},\n customDateError: {},\n selectedPerformanceType: {},\n data: shape({ sub: '', label: '' }),\n // array\n adState: [],\n adChartData: [],\n selectedAdType: [],\n contributionData: [],\n sponsoredAdMultiSelected: [],\n // function\n handleAdGroupBy: () => {},\n handlePageChange: () => {},\n handleAdDailyFact: () => {},\n setSelectedAdMetrics: () => {},\n handleOnMetricsTabChange: () => {},\n displayContributionTable: () => {},\n setSponsoredAdMultiSelected: () => {},\n renderRecentAndPreviousLabel: () => {},\n handledSponsoredMetricsOnMenuClose: () => {},\n handleKeyContributorsDownloadReport: () => {},\n};\n\nexport const SponsoredRightHandSideSectionPropTypes = {\n // bool\n isCustomDateApply: bool,\n adGraphLoader: bool,\n downloadReportLoader: bool,\n keyContributionLoader: bool,\n // string\n adGroupBy: string,\n currencySymbol: string,\n selectedTabMetrics: string,\n // number\n pageNumber: number,\n contributionCount: number,\n // object\n selectedAdDF: shape({}),\n adDifference: shape({}),\n adCurrentTotal: shape({}),\n adPreviousTotal: shape({}),\n customDateError: shape({}),\n selectedAdMetrics: shape({}),\n selectedPerformanceType: shape({}),\n data: shape({ sub: string, label: string }),\n // array\n adState: arrayOf(shape({})),\n adChartData: arrayOf(shape({})),\n selectedAdType: arrayOf(shape({})),\n contributionData: arrayOf(shape({})),\n sponsoredAdMultiSelected: arrayOf(shape({})),\n // function\n handleAdGroupBy: func,\n handlePageChange: func,\n handleAdDailyFact: func,\n setSelectedAdMetrics: func,\n handleOnMetricsTabChange: func,\n displayContributionTable: func,\n setSponsoredAdMultiSelected: func,\n renderRecentAndPreviousLabel: func,\n handledSponsoredMetricsOnMenuClose: func,\n handleKeyContributorsDownloadReport: func,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport { useSelector } from 'react-redux';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, bool, func, string, shape, number } from 'prop-types';\n\n// local file imports\nimport Theme from '../../../../theme/Theme';\nimport {\n Tabs,\n WhiteCard,\n PageLoader,\n CommonPagination,\n NoData,\n GrayMessageBar,\n} from '../../../../common';\nimport {\n noGraphDataMessage,\n metricsCurrency,\n sponsoredTabOptions,\n ADPERFORMANCE,\n ADSPEND,\n CUSTOM,\n} from '../../../../constants';\n\n// third party variable\nconst _ = require('lodash');\n\nconst SponsoredKeyContribution = ({\n pageNumber,\n count,\n isApiCall,\n downloadReportLoader,\n currencySymbol,\n contributionData,\n selectedAdMetrics,\n selectedTabMetrics,\n selectedAdDF,\n handlePageChange,\n handleOnMetricsTabChange,\n displayContributionTable,\n handleKeyContributorsDownloadReport,\n}) => {\n const dashboardDynamicError = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n\n // display sp key contribution tab\n const renderKeyContributionTabs = () => {\n let selectedTab = selectedTabMetrics;\n if (selectedAdMetrics[selectedTabMetrics] === undefined) {\n const selctedArray = _.keys(selectedAdMetrics);\n // eslint-disable-next-line prefer-destructuring\n selectedTab = selctedArray[0];\n handleOnMetricsTabChange(selectedTab);\n }\n\n return (\n \n
      \n {_.keys(selectedAdMetrics)?.map((item) => (\n handleOnMetricsTabChange(item)}\n role=\"presentation\"\n >\n {sponsoredTabOptions[item]}\n \n ))}\n
    \n
    \n );\n };\n\n // display contribution data table\n const dispalyContributionDataTable = () => {\n let prefix = '';\n let suffix = '';\n let decimalDigits = 2;\n if (metricsCurrency[selectedTabMetrics]?.type === 'currency') {\n decimalDigits = 2;\n prefix = currencySymbol;\n suffix = '';\n }\n if (metricsCurrency[selectedTabMetrics]?.type === 'percentage') {\n decimalDigits = 2;\n prefix = '';\n suffix = '%';\n }\n if (metricsCurrency[selectedTabMetrics]?.type === 'nocurrency') {\n decimalDigits = 0;\n prefix = '';\n suffix = '';\n }\n\n const isGrayMetrics = selectedTabMetrics === ADSPEND;\n\n return isApiCall ? (\n \n ) : (\n
    \n {displayContributionTable(\n contributionData,\n prefix,\n suffix,\n decimalDigits,\n isGrayMetrics,\n ADPERFORMANCE,\n )}\n {contributionData?.length >= 1 ? (\n \n ) : null}\n {!contributionData || contributionData?.length === 0 ? (\n {noGraphDataMessage}\n ) : null}\n
    \n );\n };\n\n // display sp ad Key Contributor Section;\n const displayKeyContributorSection = () => {\n return (\n \n
    \n
    \n

    Contributors

    \n
    \n
    \n {\n handleKeyContributorsDownloadReport();\n }}\n style={{ maxWidth: '150px' }}\n >\n {downloadReportLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n
    \n
    \n
    \n {dashboardDynamicError?.sponsored_performance?.contribution ? (\n \n ) : null}\n
    \n
    \n {selectedAdDF?.value === CUSTOM ? (\n \n Top contributors cannot be calculated when using custom dates.\n \n ) : (\n <>\n {renderKeyContributionTabs()}\n {dispalyContributionDataTable()}\n \n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n {displayKeyContributorSection()}\n \n );\n};\n\nexport default SponsoredKeyContribution;\n\nSponsoredKeyContribution.defaultProps = {\n downloadReportLoader: bool,\n isApiCall: false,\n contributionData: {},\n currencySymbol: '',\n count: null,\n pageNumber: 1,\n selectedAdMetrics: {},\n selectedTabMetrics: {},\n selectedAdDF: {},\n handlePageChange: () => {},\n handleOnMetricsTabChange: () => {},\n displayContributionTable: () => {},\n handleKeyContributorsDownloadReport: () => {},\n};\n\nSponsoredKeyContribution.propTypes = {\n downloadReportLoader: bool,\n isApiCall: bool,\n selectedTabMetrics: string,\n currencySymbol: string,\n count: number,\n pageNumber: number,\n selectedAdDF: shape({}),\n selectedAdMetrics: shape({}),\n contributionData: arrayOf(shape({})),\n handleOnMetricsTabChange: func,\n handlePageChange: func,\n displayContributionTable: func,\n handleKeyContributorsDownloadReport: func,\n};\n\nconst Wrapper = styled.div`\n td {\n padding: 20px 10px 3px 0px !important;\n }\n .statusContainer {\n margin-top: 0px !important;\n }\n`;\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { useSelector } from 'react-redux';\nimport { components } from 'react-select';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// local file imports\nimport {\n DailyWeeklyMonthlyToggle,\n DropdownIndicator,\n DropdownOptions,\n GrayMessageBar,\n MultiSelectDropdownWithoutAll,\n NoData,\n PageLoader,\n SingleSelectDropdown,\n WhiteCard,\n} from '../../../../common';\nimport {\n CUSTOM,\n dailyWeeklyMonthlyOptions,\n dateOptions,\n noGraphDataMessage,\n performanceInsightMessage,\n SELLERSMALL,\n sponoredMetricsList,\n sponsoredTooltipDataHTML,\n} from '../../../../constants';\nimport SponsoredAdMetrics from './SponsoredAdMetrics';\nimport AdPerformanceChart from '../../../Customer/CustomerDetailView/CompanyPerformance/AdPerformanceView/SponsoredAdPerformance/AdPerformanceChart';\nimport SponsoredKeyContribution from './SponsoredKeyContribution';\nimport {\n SponsoredRightHandSideSectionDefaultProps,\n SponsoredRightHandSideSectionPropTypes,\n} from './SponsoredDashboardPropTypes';\n\n// third party variables\nconst _ = require('lodash');\n\nfunction SponsoredRightHandSideSection({\n // bool\n isCustomDateApply,\n adGraphLoader,\n downloadReportLoader,\n keyContributionLoader,\n // string\n adGroupBy,\n currencySymbol,\n selectedTabMetrics,\n // number\n pageNumber,\n contributionCount,\n // object\n selectedAdDF,\n selectedAdType,\n selectedAdMetrics,\n customDateError,\n selectedPerformanceType,\n // array\n adState,\n adChartData,\n adDifference,\n adCurrentTotal,\n adPreviousTotal,\n contributionData,\n sponsoredAdMultiSelected,\n // function\n handleAdGroupBy,\n handlePageChange,\n handleAdDailyFact,\n setSelectedAdMetrics,\n handleOnMetricsTabChange,\n displayContributionTable,\n setSponsoredAdMultiSelected,\n renderRecentAndPreviousLabel,\n handledSponsoredMetricsOnMenuClose,\n handleKeyContributorsDownloadReport,\n}) {\n const { SingleValue } = components;\n const dashboardDynamicError = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n\n const addThousandComma = (value, decimalDigits = 2) => {\n if (value !== undefined && value !== null) {\n return value.toFixed(decimalDigits).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n return value;\n };\n\n // get sponsored metric options\n const getSponsoredMetricOptions = () => {\n let localAdMetricsOptions = sponoredMetricsList;\n\n localAdMetricsOptions = sponoredMetricsList?.map((ele) => {\n // PDV-9017 NTBOrders, NTBSales, percentageNtbSales, percentageNtbOrders will only be enabled\n // if ad type filter is set to ALL, Sponsored Brands+Video, Sponsored Display otherwise, it will be grayed out.\n if (\n ([\n 'ntbOrders',\n 'ntbSales',\n 'percentageNtbSales',\n 'percentageNtbOrders',\n ].includes(ele?.value) &&\n ['product_campaign_report', 'television_campaign_report'].includes(\n selectedAdType?.value,\n )) ||\n // at least four option should be selected.\n (sponsoredAdMultiSelected?.length === 4 &&\n (sponsoredAdMultiSelected[0]?.value === ele?.value ||\n sponsoredAdMultiSelected[1]?.value === ele?.value ||\n sponsoredAdMultiSelected[2]?.value === ele?.value ||\n sponsoredAdMultiSelected[3]?.value === ele?.value))\n ) {\n return {\n value: ele?.value,\n label: ele?.label,\n isDisabled: true,\n };\n }\n\n // PDV-9017- if 8 metrics are already selected, the other metrics will be grayed out\n const isDisabled =\n sponsoredAdMultiSelected.length === 8 &&\n sponsoredAdMultiSelected.find((o) => o?.value === ele?.value) ===\n undefined;\n\n return {\n value: ele?.value,\n label: ele?.label,\n isDisabled,\n };\n });\n\n return localAdMetricsOptions;\n };\n\n const renderCustomDateSubLabel = (props) => {\n if (selectedAdDF?.value === CUSTOM && isCustomDateApply) {\n return `From- ${dayjs(adState[0]?.startDate).format(\n 'MMM D, YYYY',\n )} To- ${dayjs(adState[0]?.endDate).format('MMM D, YYYY')}`;\n }\n\n return props?.data?.sub;\n };\n\n // react select - single value\n const singleFilterOption = (props) => (\n \n {props?.data?.label}\n
    {renderCustomDateSubLabel(props)}
    \n
    \n );\n\n // react select components\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n // display error message\n const renderErrorMessage = () => {\n let { fromDate } = customDateError;\n let { toDate } = customDateError;\n\n fromDate = dayjs(fromDate).format('MM/DD/YYYY');\n toDate = dayjs(toDate).subtract(1, 'day').format('MM/DD/YYYY');\n\n return (\n \n );\n };\n\n // display sp ad performance section header\n const displaySpAdPerformanceSectionHeader = () => {\n const isApiCall = adGraphLoader || keyContributionLoader;\n return (\n
    \n
    \n
    \n Sponsored Ad Performance\n \n \n
    \n
    \n {/* need to reset the multi-selected drop-down and selected metrics, \n when we changed the account type filter to vendor- because metrics multi\n select functionality only for seller (PDV-9017) */}\n
    \n {selectedPerformanceType?.value === SELLERSMALL ? (\n
    \n {\n handledSponsoredMetricsOnMenuClose();\n }}\n multiselectLabel={null}\n />\n
    \n ) : null}\n
    \n
    \n
    \n \n
    \n
    \n
    \n {dashboardDynamicError?.sponsored_performance?.placeholder ? (\n \n ) : null}\n {selectedAdDF?.value !== CUSTOM ? (\n \n ) : null}\n {selectedAdDF?.value === CUSTOM && customDateError !== null\n ? renderErrorMessage()\n : null}\n
    \n
    \n );\n };\n\n // render sponsored metrics section\n const renderSponsoredMetricsSection = () => {\n return (\n \n );\n };\n\n // display sponsored add daily-weekly-monthly toggle button\n const displaySpAdGroupBySection = () => {\n return (\n
    \n {_.size(selectedAdMetrics) <= 2 ? (\n
    \n {renderRecentAndPreviousLabel(\n selectedAdMetrics,\n selectedAdDF?.value,\n )}\n
    \n ) : (\n
    \n )}\n
    \n \n
    \n
    \n );\n };\n\n // render sponsored sales performance graph\n const renderSponsoredSalesPerformanceGraph = () => {\n return adGraphLoader ? (\n \n ) : adChartData.length >= 1 ? (\n \n ) : (\n {noGraphDataMessage}\n );\n };\n\n // render sposored contribution section\n const renderSponsoredContributionSection = () => {\n return (\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n \n {displaySpAdPerformanceSectionHeader()}\n {renderSponsoredMetricsSection()}\n {displaySpAdGroupBySection()}\n {renderSponsoredSalesPerformanceGraph()}\n \n {renderSponsoredContributionSection()}\n \n );\n}\n\nexport default SponsoredRightHandSideSection;\n\n/* ********** Declaring prop types ********** */\nSponsoredRightHandSideSection.defaultProps =\n SponsoredRightHandSideSectionDefaultProps;\n\nSponsoredRightHandSideSection.propTypes =\n SponsoredRightHandSideSectionPropTypes;\n","// react imports\nimport React, {\n useState,\n useEffect,\n useCallback,\n useRef,\n useMemo,\n} from 'react';\n\n// third party imports\nimport $ from 'jquery';\nimport dayjs from 'dayjs';\nimport { toast } from 'react-toastify';\nimport 'react-date-range/dist/styles.css'; // main style file\nimport 'react-date-range/dist/theme/default.css'; // theme css file\n\n// local file imports\nimport SponsoredFilter from './SponsoredFilter';\nimport BindSponsoredAdData from './BindSponsoredAdData';\nimport {\n SponsoredDashboardContainerDefaultProps,\n SponsoredDashboardContainerPropTypes,\n} from './SponsoredDashboardPropTypes';\nimport { CustomDateModal } from '../../../../common';\nimport SponsoredRightHandSideSection from './SponsoredRightHandSideSection';\nimport {\n getManagersList,\n getBgsUserList,\n getAdManagerAdminGraphData,\n getKeyContributionData,\n getMinDateForDashboard,\n getLeadershipBrandPartners,\n getKeyContributorsdownloadReport,\n} from '../../../../api';\nimport {\n sponsoredAdTypeOptions,\n performanceTypeOptions,\n sponoredMetricsList,\n VENDORSMALL,\n CUSTOM,\n SELLERSMALL,\n ADSALES,\n PERFORMANCE,\n YEAROVERYEAR,\n ADROAS,\n ADCOS,\n SALESPERCLICK,\n COSTPERCLICK,\n allValueObj,\n VENDOR,\n HYBRID,\n} from '../../../../constants';\n\n// third party variables\nconst getSymbolFromCurrency = require('currency-symbol-map');\nconst _ = require('lodash');\n\nexport default function SponsoredDashboardContainer({\n // string\n responseID,\n currencySymbol,\n // boolean\n isBGS,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isAdManager,\n isAdTeamManager,\n isAdManagerAdmin,\n isCustomDateApply,\n includeInactiveBPs,\n includeSpreetailBrands,\n // object\n userInfo,\n customDate,\n selectedAdDF,\n selectedMarketplace,\n selectedBrandPartner,\n selectedPerformanceType,\n // array\n loggedInUser,\n adState,\n selectedUser,\n selectedManagerUser,\n marketplaceChoices,\n sponsoredAdMultiSelected,\n // function\n setSelectedBrandPartner,\n bindBrandPartners,\n setCustomDate,\n setAdState,\n setSelectedAdDF,\n setSelectedUser,\n setCurrencySymbol,\n setSelectedManagerUser,\n setIsCustomDateApply,\n setSelectedMarketplace,\n checkIsUserExist,\n bindUserListData,\n generateStringOfValues,\n setSelectedPerformanceType,\n displayContributionTable,\n bindMetricsContributionData,\n renderRecentAndPreviousLabel,\n setSponsoredAdMultiSelected,\n setResponseID,\n handleMultiSelectDropdownFilterEvents,\n}) {\n const mounted = useRef(false);\n const [adChartData, setAdChartData] = useState([]);\n const [adCurrentTotal, setAdCurrentTotal] = useState({});\n const [adPreviousTotal, setAdPreviousTotal] = useState({});\n const [adDifference, setAdDifference] = useState({});\n const [selectedAdMetrics, setSelectedAdMetrics] = useState({ adSales: true });\n const [selectedAdType, setSelectedAdType] = useState(sponsoredAdTypeOptions);\n const [isAdTypeSelected, setIsAdTypeSelected] = useState(false);\n const [downloadReportLoader, setDownloadReportLoader] = useState(false);\n\n // use state for bgs list, bgs manager list, ad manager list, ad team manager list,s\n const [userList, setUserList] = useState([]);\n const [userApiList, setUserApiList] = useState([]);\n const [managerUserList, setManagerUserList] = useState([]);\n const [managerUserApiList, setManagerUserApiList] = useState([]);\n const [isUsersSelected, setIsUsersSelected] = useState(false);\n const [isManagerUsersSelected, setIsManagerUsersSelected] = useState(false);\n const [brandPartnerOptions, setBrandPartnerOptions] = useState([]);\n\n const [responseId, setResponseId] = useState(null);\n const [adGraphLoader, setAdGraphLoader] = useState(false);\n const [selectedTabMetrics, setSelectedTabMetrics] = useState(ADSALES);\n const [keyContributionLoader, setKeyContributionLoader] = useState(false);\n const [contributionData, setContributionData] = useState([]);\n const [adGroupBy, setAdGroupBy] = useState('daily');\n const [pageNumber, setPageNumber] = useState();\n const [contributionCount, setContributionCount] = useState(null);\n const [customDateError, setCustomDateError] = useState(null);\n const [isManagerAPICalled, setIsManagerAPICalled] = useState(\n !(isAdManagerAdmin || isBGSAdmin || isSpreetailRole),\n );\n const [isBGSAPICalled, setIsBGSAPICalled] = useState(\n !(isBGSAdmin || isBGSManager || isSpreetailRole),\n );\n const [marketplaceOptions, setMarketplaceOptions] =\n useState(marketplaceChoices);\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() - 2);\n const [showAdCustomDateModal, setShowAdCustomDateModal] = useState(false);\n\n // all brand partner object\n const allBrandPartnerObj = {\n label: 'All Brand Partners',\n value: 'all',\n accountType: HYBRID,\n marketplaces: marketplaceChoices,\n };\n\n // default all value array of object\n const allObj = useMemo(() => {\n return allValueObj;\n }, []);\n\n // use effect for set marketplace options\n useEffect(() => {\n setMarketplaceOptions(marketplaceChoices);\n }, [marketplaceChoices]);\n\n // callback functions for get brand partners list\n const getLeadershipBrandPartnersList = useCallback(\n (callType, managersUser, bgsUser, selectedBp) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n\n getLeadershipBrandPartners(\n userInfo?.role,\n 'sponsored_ad_dashboard',\n managerUserString,\n bgsUserString,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.length) {\n const bpList = bindBrandPartners(response?.data);\n\n setBrandPartnerOptions(bpList);\n const brandPartner =\n callType === 'useEffect' ? selectedBp : bpList?.[0];\n setSelectedBrandPartner(brandPartner);\n\n if (bpList?.length === 1 && brandPartner?.accountType === VENDOR) {\n setSelectedPerformanceType(performanceTypeOptions?.[1]);\n } else {\n setSelectedPerformanceType(performanceTypeOptions?.[0]);\n }\n } else {\n setBrandPartnerOptions([]);\n setSelectedBrandPartner({});\n setSelectedPerformanceType({});\n }\n });\n },\n [\n bindBrandPartners,\n generateStringOfValues,\n includeInactiveBPs,\n includeSpreetailBrands,\n setSelectedBrandPartner,\n setSelectedPerformanceType,\n userInfo,\n ],\n );\n\n // get user list - bgs and ad manager\n const getBgsList = useCallback(\n (role, managers, users, callType, selectedDailyFact) => {\n setAdGraphLoader(true);\n setKeyContributionLoader(selectedDailyFact !== CUSTOM);\n\n const managersString = generateStringOfValues(managers);\n\n let API = '';\n if (role === 'BGS') {\n API = getBgsUserList(role, managersString);\n }\n if (role === 'Ad Manager') {\n API = getManagersList(role, 'sales_performance', managersString);\n }\n\n API.then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const formatedApiData = bindUserListData(response?.data, role);\n setUserList(formatedApiData?.userListWithAll);\n setUserApiList(formatedApiData?.userList);\n\n const isUserExist = checkIsUserExist(\n formatedApiData?.userList,\n users,\n );\n\n if (callType !== 'bgsFilter') {\n if (\n isUserExist &&\n callType !== 'resetFilter' &&\n callType !== 'managerUserFilter'\n ) {\n setSelectedUser(users);\n } else {\n setSelectedUser(formatedApiData?.userListWithAll);\n }\n }\n\n setIsBGSAPICalled(true);\n } else {\n setUserList([]);\n setSelectedUser([]);\n setUserApiList([]);\n }\n }\n });\n },\n\n [\n bindUserListData,\n checkIsUserExist,\n generateStringOfValues,\n setSelectedUser,\n ],\n );\n\n // get manager user list - bgs manager and ad team manager\n const getManagerUserList = useCallback(\n (role, localManagerUsers, localUsers, callType, selectedDailyFact) => {\n setAdGraphLoader(true);\n setKeyContributionLoader(selectedDailyFact !== CUSTOM);\n\n let API = '';\n if (role === 'BGS Manager') {\n API = getBgsUserList(role);\n }\n if (role === 'Ad Team Manager') {\n API = getManagersList(role, 'sales_performance');\n }\n\n API.then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const formatedApiData = bindUserListData(response?.data);\n setManagerUserApiList(formatedApiData?.userList);\n setManagerUserList(formatedApiData?.userListWithAll);\n\n const isManagerUserExist = checkIsUserExist(\n formatedApiData?.userList,\n localManagerUsers,\n );\n let managerUser = null;\n\n if (\n (isBGSAdmin || isAdManagerAdmin || isSpreetailRole) &&\n isManagerUserExist &&\n callType !== 'resetFilter'\n ) {\n setSelectedManagerUser(localManagerUsers);\n managerUser = localManagerUsers;\n } else {\n setSelectedManagerUser(formatedApiData?.userListWithAll);\n managerUser =\n formatedApiData?.userList?.length > 1\n ? null\n : formatedApiData?.userList;\n }\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n managerUser,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n if (isAdManagerAdmin) {\n getBgsList(\n 'Ad Manager',\n managerUser,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n\n setIsManagerAPICalled(true);\n } else {\n setManagerUserApiList([]);\n setManagerUserList([]);\n setSelectedManagerUser([]);\n }\n }\n });\n },\n\n [\n bindUserListData,\n checkIsUserExist,\n getBgsList,\n isAdManagerAdmin,\n isBGSAdmin,\n isSpreetailRole,\n setSelectedManagerUser,\n ],\n );\n\n // calling bgs and advertising user api\n const callingBgsAndAdUserApi = useCallback(\n (callType, localManagerUsers, localUsers, selectedDailyFact) => {\n // advertising api\n if (isAdManagerAdmin) {\n getManagerUserList(\n 'Ad Team Manager',\n localManagerUsers,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n\n if (isAdTeamManager) {\n getBgsList(\n 'Ad Manager',\n loggedInUser,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n\n // bgs api\n if (isBGSAdmin || isSpreetailRole) {\n getManagerUserList(\n 'BGS Manager',\n localManagerUsers,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n\n if (isBGSManager) {\n getBgsList(\n 'BGS',\n loggedInUser,\n localUsers,\n callType,\n selectedDailyFact,\n );\n }\n },\n [\n getBgsList,\n getManagerUserList,\n isAdManagerAdmin,\n isAdTeamManager,\n isBGSAdmin,\n isBGSManager,\n isSpreetailRole,\n loggedInUser,\n ],\n );\n\n // use effect for bgs and advertising team\n useEffect(() => {\n mounted.current = true;\n callingBgsAndAdUserApi(\n 'useEffect',\n selectedManagerUser,\n selectedUser,\n selectedAdDF?.value,\n );\n return () => {\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [callingBgsAndAdUserApi]);\n\n // bind the error message if data not available for selecetd custom date\n // API to get the data available date for sales\n const getMinDateForSponsoredDashboard = useCallback(\n (marketplace, managerUser, bgsUser, sponsoredType) => {\n const dates = [];\n const selectedUserString = generateStringOfValues(bgsUser);\n const selectedManagerUserString = generateStringOfValues(managerUser);\n const sponsoredAdTypeString = generateStringOfValues(sponsoredType);\n\n getMinDateForDashboard(\n marketplace,\n selectedManagerUserString,\n selectedUserString,\n sponsoredAdTypeString,\n 'sponsored_dashboard',\n ).then((res) => {\n if (res?.status === 200) {\n if (res?.data?.result && res?.data?.result?.length) {\n dates.push(\n new Date(dayjs(adState[0].startDate).format('MM/DD/YYYY')),\n );\n dates.push(\n new Date(\n dayjs(res?.data?.result[0]?.sponsered_performance_date).format(\n 'MM/DD/YYYY',\n ),\n ),\n );\n\n // if selected date is lower that data_availeble_date then we need to show the error message\n if (dates[0] < dates[1]) {\n setCustomDateError({\n fromDate: dates[0],\n toDate: dates[1],\n });\n } else {\n setCustomDateError(null);\n }\n }\n }\n });\n },\n [adState, generateStringOfValues],\n );\n\n // handle before and after sales performance api call\n const handleBeforAndAfterApiCall = useCallback((key) => {\n if (key === PERFORMANCE) {\n setAdChartData([]);\n setAdPreviousTotal({});\n setAdCurrentTotal({});\n setAdDifference({});\n }\n }, []);\n\n // callback function for getting sponsored performance data\n const getAdData = useCallback(\n (\n adType,\n selectedDailyFact,\n selectedGroupBy,\n brandPratner,\n marketplace,\n performanceType,\n managersUser,\n bgsUser,\n startDate = null,\n endDate = null,\n inactiveBPs,\n spreetailBrands = includeSpreetailBrands,\n ) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n const sponsoredAdTypeString = generateStringOfValues(adType);\n\n setAdGraphLoader(true);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setIsAdTypeSelected(false);\n\n getAdManagerAdminGraphData(\n 'sponsored-dashboard',\n sponsoredAdTypeString,\n selectedDailyFact,\n selectedGroupBy,\n brandPratner,\n marketplace,\n performanceType,\n managerUserString,\n bgsUserString,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n startDate,\n endDate,\n inactiveBPs || includeInactiveBPs,\n spreetailBrands || includeSpreetailBrands,\n ).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n if (response?.data?.result) {\n const adGraphData = BindSponsoredAdData(response?.data?.result);\n setAdChartData(adGraphData);\n setAdCurrentTotal(response?.data?.result?.current_sum);\n setAdPreviousTotal(response?.data?.result?.previous_sum);\n setAdDifference(response?.data?.result?.difference_data);\n } else {\n handleBeforAndAfterApiCall(PERFORMANCE);\n }\n setAdGraphLoader(false);\n } else {\n setAdGraphLoader(false);\n handleBeforAndAfterApiCall(PERFORMANCE);\n }\n }\n });\n },\n [\n generateStringOfValues,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n includeInactiveBPs,\n includeSpreetailBrands,\n handleBeforAndAfterApiCall,\n ],\n );\n\n // callback function for getting sponsored key contribution data\n const getContributionData = useCallback(\n (\n adType,\n selectedDailyFact,\n brandPartner,\n marketplace,\n performanceType,\n managersUser,\n bgsUser,\n selectedMetrics,\n startDate = null,\n endDate = null,\n page,\n inactiveBPs,\n spreetailBrands = includeSpreetailBrands,\n ) => {\n const bgsUserString = generateStringOfValues(bgsUser);\n const managerUserString = generateStringOfValues(managersUser);\n const sponsoredAdTypeString = generateStringOfValues(adType);\n\n setKeyContributionLoader(true);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setIsAdTypeSelected(false);\n\n getKeyContributionData(\n 'sponsored_ad_dashboard',\n sponsoredAdTypeString,\n selectedDailyFact,\n brandPartner,\n marketplace,\n performanceType,\n managerUserString,\n bgsUserString,\n isBGSAdmin || isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n selectedMetrics,\n startDate,\n endDate,\n page,\n inactiveBPs || includeInactiveBPs,\n spreetailBrands || includeSpreetailBrands,\n ).then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n const responseData =\n response?.data?.result || response?.data?.results;\n if (responseData) {\n const formatedData = bindMetricsContributionData(responseData);\n setContributionData(formatedData);\n setContributionCount(response?.data?.count);\n } else {\n setContributionData([]);\n setPageNumber(page);\n }\n setKeyContributionLoader(false);\n } else {\n setContributionData([]);\n setPageNumber(page);\n setKeyContributionLoader(false);\n }\n }\n });\n },\n [\n generateStringOfValues,\n isBGSAdmin,\n isSpreetailRole,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n includeInactiveBPs,\n includeSpreetailBrands,\n bindMetricsContributionData,\n ],\n );\n\n // get metrics, data, key contribution data and dsp pacing data\n // - called only at the begining.\n useEffect(() => {\n mounted.current = true;\n if (\n (responseId === null || responseID === 'response') &&\n isManagerAPICalled &&\n isBGSAPICalled\n ) {\n const startDate = customDate?.startDate;\n const endDate = customDate?.endDate;\n const dateType = customDate?.dateType;\n\n // get brand partners list\n getLeadershipBrandPartnersList(\n 'useEffect',\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner,\n );\n\n getMinDateForSponsoredDashboard(\n selectedMarketplace?.value,\n selectedManagerUser,\n selectedUser,\n selectedAdType,\n );\n\n if (dateType === CUSTOM) {\n getAdData(\n selectedAdType,\n selectedAdDF?.value,\n adGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n\n if (\n dateType === null &&\n selectedAdDF?.value !== 'year' &&\n selectedAdDF?.value !== YEAROVERYEAR\n ) {\n getAdData(\n selectedAdType,\n selectedAdDF?.value,\n adGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n null,\n null,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n getContributionData(\n selectedAdType,\n selectedAdDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n pageNumber,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n\n setResponseId('12345');\n setResponseID(null);\n }\n return () => {\n mounted.current = false;\n };\n }, [\n adGroupBy,\n customDate,\n getAdData,\n getContributionData,\n getMinDateForSponsoredDashboard,\n includeInactiveBPs,\n includeSpreetailBrands,\n isAdManagerAdmin,\n isBGSAPICalled,\n isBGSAdmin,\n isSpreetailRole,\n isManagerAPICalled,\n pageNumber,\n responseID,\n responseId,\n selectedAdDF,\n selectedAdType,\n selectedManagerUser,\n selectedMarketplace,\n selectedPerformanceType,\n selectedTabMetrics,\n selectedUser,\n setResponseID,\n selectedBrandPartner,\n getLeadershipBrandPartnersList,\n ]);\n\n // called only if the time frame is selected for \"year\" and \"year OverYear\"\n useEffect(() => {\n if (\n selectedAdDF?.value === 'year' ||\n selectedAdDF?.value === YEAROVERYEAR\n ) {\n setSelectedAdDF({\n value: 'week',\n label: 'Current 7 days',\n sub: 'vs Previous 7 days',\n });\n getAdData(\n selectedAdType,\n 'week',\n adGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n null,\n null,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n getContributionData(\n selectedAdType,\n 'week',\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n pageNumber,\n includeInactiveBPs,\n includeSpreetailBrands,\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const ADYearAndCustomDateFilter = (\n startDate,\n endDate,\n dailyFactFlag,\n marketplace,\n performanceType,\n adType,\n managerUser,\n bgsUser,\n brandPartner,\n ) => {\n let sd = startDate;\n let ed = endDate;\n setAdGroupBy('daily');\n\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n setCustomDate({\n startDate: sd,\n endDate: ed,\n dateType: dailyFactFlag,\n });\n\n getAdData(\n adType,\n dailyFactFlag,\n 'daily',\n brandPartner,\n marketplace,\n performanceType,\n managerUser,\n bgsUser,\n sd,\n ed,\n );\n };\n\n // calling leadership BP and dashboard performance api when filter value changes\n const callingBPandDashboardAPI = (\n callType,\n managerUsers,\n users,\n selectedBp,\n ) => {\n let brandPartner = {};\n let marketplace = {};\n let performanceType = {};\n\n const managerUserString = generateStringOfValues(managerUsers);\n const userString = generateStringOfValues(users);\n\n getLeadershipBrandPartners(\n userInfo?.role,\n 'sponsored_ad_dashboard',\n managerUserString,\n userString,\n includeInactiveBPs,\n includeSpreetailBrands,\n ).then((response) => {\n if (response?.status === 200 && response?.data?.length) {\n setPageNumber(1);\n\n const bpList = bindBrandPartners(response?.data);\n setBrandPartnerOptions(bpList);\n\n if (callType === 'bpFilter') {\n if (selectedBp?.value === 'all') {\n brandPartner = allBrandPartnerObj;\n } else {\n brandPartner = selectedBp;\n }\n } else if (bpList?.length === 1) {\n brandPartner = bpList?.[0];\n } else {\n brandPartner = allBrandPartnerObj;\n }\n\n marketplace = brandPartner?.marketplaces?.[0];\n setSelectedBrandPartner(brandPartner);\n setSelectedMarketplace(marketplace);\n setMarketplaceOptions(brandPartner?.marketplaces);\n\n // Handeling the default states based on account type of selected BP.\n if (brandPartner?.accountType === VENDOR) {\n performanceType = performanceTypeOptions?.[1];\n } else {\n performanceType = performanceTypeOptions?.[0];\n }\n setSelectedTabMetrics(ADSALES);\n setSelectedPerformanceType(performanceType);\n\n if (selectedAdDF?.value === CUSTOM) {\n ADYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n marketplace?.value,\n performanceType?.value,\n selectedAdType,\n managerUsers,\n users,\n brandPartner?.value,\n );\n } else {\n getAdData(\n selectedAdType,\n selectedAdDF?.value,\n adGroupBy,\n brandPartner?.value,\n marketplace?.value,\n performanceType?.value,\n managerUsers,\n users,\n );\n getContributionData(\n selectedAdType,\n selectedAdDF?.value,\n brandPartner?.value,\n marketplace?.value,\n performanceType?.value,\n managerUsers,\n users,\n selectedTabMetrics,\n null,\n null,\n 1,\n );\n }\n } else {\n setAdGraphLoader(false);\n setKeyContributionLoader(false);\n setIsUsersSelected(false);\n setIsManagerUsersSelected(false);\n setBrandPartnerOptions([]);\n setSelectedBrandPartner({});\n setSelectedPerformanceType({});\n setContributionData([]);\n handleBeforAndAfterApiCall(PERFORMANCE);\n }\n });\n };\n\n // handle seller & vendor reporting filter events\n const handleSellerVendorFilterEvents = (event) => {\n setSelectedPerformanceType(event);\n\n // need to reset the multi-selected drop-down and selected metrics,\n // when we changed the account type filter to vendor- because metrics multi select functionality only for seller (PDV-9017)\n if (event?.value === VENDORSMALL) {\n setSponsoredAdMultiSelected(sponoredMetricsList.slice(0, 8));\n setSelectedAdMetrics({ adSales: true });\n }\n\n if (selectedAdDF.value === CUSTOM) {\n ADYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n selectedMarketplace?.value,\n event?.value,\n selectedAdType,\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner?.value,\n );\n } else {\n getAdData(\n selectedAdType,\n selectedAdDF?.value,\n adGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n );\n getContributionData(\n selectedAdType,\n selectedAdDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n event?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n };\n\n // handle brand partner reporting filter events\n const handledBrandPartnerFilterEvents = (event) => {\n // Handeling the states and API calls when user select specific Brand Partner\n if (event?.value !== selectedBrandPartner?.value) {\n setSelectedBrandPartner(event);\n\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n let assignedUser = [];\n let assignedMangerUser = [];\n\n if (event?.value === 'all') {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n const userApiListWithAll = [...userApiList];\n if (userApiListWithAll?.length) {\n userApiListWithAll.unshift(allObj?.[0]);\n }\n\n const managerUserApiListWithAll = [...managerUserApiList];\n if (managerUserApiListWithAll?.length)\n managerUserApiListWithAll.unshift(allObj?.[0]);\n\n assignedUser = selectedUser?.length ? selectedUser : userApiListWithAll;\n assignedMangerUser = selectedManagerUser?.length\n ? selectedManagerUser\n : managerUserApiListWithAll;\n\n if (selectedManagerUser?.length === 0)\n setManagerUserList(managerUserApiListWithAll);\n if (selectedUser?.length === 0) setUserList(userApiListWithAll);\n } else if (isBGSAdmin || isBGSManager || isBGS || isSpreetailRole) {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n assignedUser = event?.bgs !== null ? [event?.bgs] : [];\n assignedMangerUser =\n event?.bgsManager !== null ? [event?.bgsManager] : [];\n } else {\n // get assigned bgs manager/ad team manager, bgs/ad manager of selected BP.\n assignedUser = event?.adManager !== null ? [event?.adManager] : [];\n assignedMangerUser =\n event?.adTeamManager !== null ? [event?.adTeamManager] : [];\n }\n\n // set assigned bgs manager/ad team manager, bgs/ad manager of selected BP to multi-select bgs manager/ad team manager, bgs/ad manager dropdown filter.\n setSelectedManagerUser(assignedMangerUser);\n setSelectedUser(assignedUser);\n\n // if selected brand partner do not have assigned bgs manager/ad team manager and bgs/ad manager then clear the multiselect manager user and user dropdown filter list\n\n if (assignedMangerUser?.length === 0) {\n setManagerUserList([]);\n } else {\n const managerUserApiListWithAll = [...managerUserApiList];\n managerUserApiListWithAll.unshift(allObj?.[0]);\n setManagerUserList(managerUserApiListWithAll);\n }\n if (assignedUser?.length === 0) setUserList([]);\n\n // if selected brand partner have assigned bgs manager/ad team manager and bgs/ad manager then get its the bgs/ad manager list\n if (assignedMangerUser?.length) {\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n assignedMangerUser,\n assignedUser,\n 'BPFilter',\n selectedAdDF?.value,\n );\n }\n\n if (isAdManagerAdmin) {\n getBgsList(\n 'Ad Manager',\n assignedMangerUser,\n assignedUser,\n 'BPFilter',\n selectedAdDF?.value,\n );\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI(\n 'bpFilter',\n assignedMangerUser?.length ? assignedMangerUser : allObj,\n assignedUser?.length ? assignedUser : allObj,\n event,\n );\n }\n };\n\n // handle Sponsored AdType Filter Events\n const handleSponsoredAdTypeFilterEvents = (event, action) => {\n const optionsWithoutAll = sponsoredAdTypeOptions?.filter(\n (option) => option?.value !== 'all',\n );\n\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedAdType,\n optionsWithoutAll,\n );\n\n // need to reset the multi-selected drop-down and selected metrics,\n // when we changed the account type filter to vendor- because metrics multi select functionality only for seller (PDV-9017)\n\n setSponsoredAdMultiSelected(sponoredMetricsList.slice(0, 8));\n setSelectedAdMetrics({ adSales: true });\n\n setSelectedAdType(selectedValues);\n setIsAdTypeSelected(true);\n };\n\n // handle marketplace filter events\n const handleMarketplace = (event) => {\n if (event.value !== selectedMarketplace?.value) {\n setSelectedMarketplace(event);\n setCurrencySymbol(getSymbolFromCurrency(event?.currency));\n let localSelectedAdType = selectedAdType;\n\n // PDV-8954\n // when Non-US markeplace selected then need to disabled the\n // television_campaign_report and all_ad _type option of sponsred ad type filter.\n // if television_campaign_report and all_ad _type is already selected then\n // first uncheck that option and then disabled that.\n // ---------------------start---------------------\n if (\n selectedAdType.filter(\n (ele) => ele?.value === 'television_campaign_report',\n ).length &&\n event?.value !== 'amazon.com' &&\n event?.value !== 'all'\n ) {\n handleSponsoredAdTypeFilterEvents(sponsoredAdTypeOptions.pop(), {\n action: 'deselect-option',\n option: {\n value: 'television_campaign_report',\n label: 'Sponsored Television',\n isDisabled: false,\n },\n name: 'sponsoredAdType',\n });\n localSelectedAdType = selectedAdType?.filter((option) => {\n return (\n option?.value !== 'television_campaign_report' &&\n option?.value !== 'all'\n );\n });\n }\n // ---------------------End---------------------\n\n if (selectedAdDF?.value === CUSTOM) {\n ADYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n event?.value,\n selectedPerformanceType?.value,\n localSelectedAdType,\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner?.value,\n );\n } else {\n getAdData(\n localSelectedAdType,\n selectedAdDF?.value,\n adGroupBy,\n selectedBrandPartner?.value,\n event?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n );\n getContributionData(\n localSelectedAdType,\n selectedAdDF?.value,\n selectedBrandPartner?.value,\n event?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n }\n };\n\n // handle bgs manager/ad team managerfilter events\n const handleManagerUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedManagerUser,\n managerUserApiList,\n );\n setSelectedManagerUser(selectedValues);\n setIsManagerUsersSelected(true);\n };\n\n // handle bgs manager/ad team manager on dropdwon menu close events\n const handleManagerUserOnMenuCloseEvents = () => {\n if (isManagerUsersSelected) {\n const managerUsers =\n selectedManagerUser?.length > 0 ? selectedManagerUser : managerUserList;\n setSelectedManagerUser(managerUsers);\n const isAllUser = managerUsers?.some((user) => user?.value === 'all');\n const users = allObj;\n\n if (isBGSAdmin || isSpreetailRole) {\n if (isAllUser) {\n getBgsList(\n 'BGS',\n null,\n users,\n 'managerUserFilter',\n selectedAdDF?.value,\n );\n } else {\n getBgsList(\n 'BGS',\n managerUsers,\n users,\n 'managerUserFilter',\n selectedAdDF?.value,\n );\n }\n }\n\n if (isAdManagerAdmin) {\n if (isAllUser) {\n getBgsList(\n 'Ad Manager',\n null,\n users,\n 'managerUserFilter',\n selectedAdDF?.value,\n );\n } else {\n getBgsList(\n 'Ad Manager',\n managerUsers,\n users,\n 'managerUserFilter',\n selectedAdDF?.value,\n );\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI(\n 'managerUsersFilter',\n isAllUser ? allObj : managerUsers,\n users,\n null,\n );\n }\n };\n\n // handle bgs/ad manager filter events\n const handleUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedUser,\n userApiList,\n );\n\n setSelectedUser(selectedValues);\n setIsUsersSelected(true);\n };\n\n // handle bgs/ad manager on dropdwon menu close events\n const handleUserOnMenuCloseEvents = () => {\n if (isUsersSelected) {\n let managerUsers = selectedManagerUser;\n const users = selectedUser?.length > 0 ? selectedUser : userList;\n\n setSelectedUser(users);\n\n // When bgs manager and ad team manager filter set to all then Automatically set the bgs manager or ad team manager assigned to selected bgs or ad team manager\n if (\n (isBGSAdmin || isAdManagerAdmin || isSpreetailRole) &&\n selectedUser?.length === 1\n ) {\n const userExisted = userList?.find(\n (bgsUser) =>\n bgsUser?.value === selectedUser?.[0]?.value &&\n bgsUser?.managerUser !== null,\n );\n\n if (userExisted !== undefined) {\n const managerUserObject = {\n value: userExisted?.managerUser?.id,\n label: `${userExisted?.managerUser?.first_name} ${userExisted?.managerUser?.last_name}`,\n };\n managerUsers = [managerUserObject];\n setSelectedManagerUser([managerUserObject]);\n if (isBGSAdmin || isSpreetailRole) {\n getBgsList(\n 'BGS',\n managerUsers,\n users,\n 'bgsFilter',\n selectedAdDF?.value,\n );\n } else {\n getBgsList(\n 'Ad Manager',\n managerUsers,\n users,\n 'bgsFilter',\n selectedAdDF?.value,\n );\n }\n }\n }\n\n // calling leadership BP and dashboard performance api\n callingBPandDashboardAPI('usersFilter', managerUsers, users, null);\n }\n };\n\n // handle sponsored ad type filter onMenuclose events\n const handleAdTypeFilterOnMenuCloseEvents = () => {\n if (isAdTypeSelected) {\n const optionsWithoutAll = sponsoredAdTypeOptions?.filter(\n (option) => option?.value !== 'all',\n );\n\n const adTypeSelected =\n selectedAdType?.length > 0 ? selectedAdType : optionsWithoutAll;\n\n setSelectedAdType(adTypeSelected);\n\n if (selectedAdDF?.value === CUSTOM) {\n ADYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n adTypeSelected,\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner?.value,\n );\n } else {\n getAdData(\n adTypeSelected,\n selectedAdDF?.value,\n adGroupBy,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n );\n getContributionData(\n adTypeSelected,\n selectedAdDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n }\n };\n\n // download key contributors report\n const handleKeyContributorsDownloadReport = () => {\n setDownloadReportLoader(true);\n\n const userString = generateStringOfValues(selectedUser);\n const managerUserString = generateStringOfValues(selectedManagerUser);\n\n const startDate = dayjs(adState[0]).format('YYYY-MM-DD');\n const endDate = dayjs(adState[0]).format('YYYY-MM-DD');\n\n getKeyContributorsdownloadReport(\n isBGSAdmin,\n isBGSManager,\n isBGS,\n isAdManagerAdmin,\n isAdTeamManager,\n isAdManager,\n 'sponsored_ad_dashboard',\n selectedAdDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedTabMetrics,\n managerUserString,\n userString,\n startDate,\n endDate,\n includeInactiveBPs,\n includeSpreetailBrands,\n selectedPerformanceType?.value,\n ).then((response) => {\n if (response?.status === 200) {\n const csvLink = response?.data?.url;\n if (csvLink) window.open(csvLink);\n if (response?.data?.message) toast.success(response?.data?.message);\n setDownloadReportLoader(false);\n } else {\n toast.error('Oops! Something went wrong...');\n setDownloadReportLoader(false);\n }\n });\n };\n\n // reset button events - reset all bgs and advertising user filter values to 'all'\n const handleResetFilter = () => {\n $('.checkboxes input:radio').filter(\"[value='all']\").prop('checked', true);\n\n setSelectedPerformanceType(performanceTypeOptions?.[0]);\n setCurrencySymbol(getSymbolFromCurrency('USD'));\n setSelectedMarketplace(marketplaceChoices?.[0]);\n setSelectedAdType(sponsoredAdTypeOptions);\n setSelectedBrandPartner(allBrandPartnerObj);\n\n // set assigned bgs manager/ad team manager, bgs/ad manager of selected BP to multi-select bgs manager/ad team manager, bgs/ad manager dropdown filter.\n const managerUser = isBGSManager || isAdTeamManager ? loggedInUser : allObj;\n const localUser = isBGS || isAdManager ? loggedInUser : allObj;\n setSelectedUser(localUser);\n setSelectedManagerUser(managerUser);\n\n // calling Leadership-customer api\n getLeadershipBrandPartnersList(\n 'resetFilter',\n managerUser,\n localUser,\n allBrandPartnerObj,\n );\n // calling bgs and advertising user api\n callingBgsAndAdUserApi(\n 'resetFilter',\n managerUser,\n localUser,\n selectedAdDF?.value,\n );\n setCustomDateError(null);\n\n // send reset valeus to api\n if (selectedAdDF.value === CUSTOM) {\n ADYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n 'all',\n SELLERSMALL,\n allObj, // ad type\n managerUser,\n localUser,\n selectedBrandPartner?.value,\n );\n } else {\n getAdData(\n allObj,\n selectedAdDF?.value,\n adGroupBy,\n 'all',\n 'all',\n SELLERSMALL,\n managerUser,\n localUser,\n );\n getContributionData(\n allObj,\n selectedAdDF?.value,\n 'all',\n 'all',\n SELLERSMALL,\n managerUser,\n localUser,\n selectedTabMetrics,\n null,\n null,\n 1,\n );\n setPageNumber(1);\n }\n };\n\n // handle sp multiselect metrics filter events\n const handledSponsoredMetricsOnMenuClose = () => {\n // return metrics which is selected in drop-down and in graph variable also.\n const localMetrics = sponsoredAdMultiSelected.filter((ele) =>\n Object.prototype.hasOwnProperty.call(selectedAdMetrics, ele?.value),\n );\n\n // we have acos and roas in same metrics (same for COS & SPC) &\n // sponsoredAdMultiSelected has only adcos and cos field\n // so, if user select the roas or SPC then its not ramain selected.\n // so, need to write seperate logic for both metrics (roas, SPC)\n\n if (\n sponsoredAdMultiSelected.filter((ele) => ele?.value === ADCOS).length &&\n Object.prototype.hasOwnProperty.call(selectedAdMetrics, ADROAS)\n ) {\n localMetrics.push({ value: ADROAS, label: 'ROAS', isDisabled: false });\n }\n\n if (\n sponsoredAdMultiSelected.filter((ele) => ele?.value === COSTPERCLICK)\n .length &&\n Object.prototype.hasOwnProperty.call(selectedAdMetrics, SALESPERCLICK)\n ) {\n localMetrics.push({\n value: SALESPERCLICK,\n label: 'Sales Per Click',\n isDisabled: false,\n });\n }\n\n // if metrics is selected and its removed from metrics-dropdown then need to remove from selectedAdBox\n if (localMetrics?.length) {\n const localSelectedMetrics = {};\n localMetrics.map((ele) => {\n _.assign(localSelectedMetrics, { [ele?.value]: true });\n return null;\n });\n setSelectedAdMetrics(localSelectedMetrics);\n } else {\n setSelectedAdMetrics({ [sponsoredAdMultiSelected[0]?.value]: true });\n }\n };\n\n // handle sp timeframe filter events\n const handleAdDailyFact = (event) => {\n const { value } = event;\n\n if (value !== CUSTOM) {\n setCustomDateError(null);\n setSelectedAdDF(event);\n setIsCustomDateApply(false);\n setAdState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'adSelection',\n },\n ]);\n setAdGroupBy('daily');\n setCustomDate({\n startDate: null,\n endDate: null,\n dateType: null,\n });\n\n getAdData(\n selectedAdType,\n value,\n 'daily',\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n );\n getContributionData(\n selectedAdType,\n value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n pageNumber,\n );\n }\n if (value === CUSTOM) {\n setShowAdCustomDateModal(true);\n }\n };\n\n // handle sp daily-weekly-monthly filter events\n const handleAdGroupBy = (value) => {\n if (value !== adGroupBy) {\n setAdGroupBy(value);\n\n if (selectedAdDF?.value === CUSTOM) {\n const { startDate } = adState[0];\n const { endDate } = adState[0];\n let sd = startDate;\n let ed = endDate;\n sd = `${startDate.getDate()}-${\n startDate.getMonth() + 1\n }-${startDate.getFullYear()}`;\n ed = `${endDate.getDate()}-${\n endDate.getMonth() + 1\n }-${endDate.getFullYear()}`;\n\n getAdData(\n selectedAdType,\n selectedAdDF?.value,\n value,\n selectedBrandPartner?.value,\n selectedMarketplace.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n sd,\n ed,\n );\n } else {\n getAdData(\n selectedAdType,\n selectedAdDF?.value,\n value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n );\n }\n }\n };\n\n // handle sp metrics tab change events\n const handleOnMetricsTabChange = (value) => {\n if (value !== selectedTabMetrics) {\n setSelectedTabMetrics(value);\n getContributionData(\n selectedAdType,\n selectedAdDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n value,\n null,\n null,\n pageNumber,\n );\n }\n };\n\n // handle sp pagination events\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getContributionData(\n selectedAdType,\n selectedAdDF?.value,\n selectedBrandPartner?.value,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedManagerUser,\n selectedUser,\n selectedTabMetrics,\n null,\n null,\n currentPage,\n );\n };\n\n // handle sp custom date selection events\n const applyCustomDate = () => {\n if (selectedAdDF?.value !== CUSTOM)\n setSelectedAdDF({\n value: CUSTOM,\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n setIsCustomDateApply(true);\n ADYearAndCustomDateFilter(\n adState[0]?.startDate,\n adState[0]?.endDate,\n CUSTOM,\n selectedMarketplace?.value,\n selectedPerformanceType?.value,\n selectedAdType,\n selectedManagerUser,\n selectedUser,\n selectedBrandPartner?.value,\n );\n setCustomDateError(null);\n setShowAdCustomDateModal(false);\n };\n\n // display sponsored filter section\n const displaySponsoredFilterSection = () => {\n return (\n \n );\n };\n\n // display sponsored dashboard RHS\n const displaySponsoredRightHandSideSection = () => {\n return (\n \n );\n };\n\n // display modals\n const displayModals = () => {\n return (\n {\n setShowAdCustomDateModal(false);\n if (selectedAdDF?.value !== CUSTOM) {\n setAdState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'adSelection',\n },\n ]);\n }\n }}\n onChange={(item) => {\n setAdState([item.adSelection]);\n }}\n onApply={() => applyCustomDate()}\n currentDate={currentDate}\n minDate={new Date('08/01/2022')}\n />\n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n
    \n {displaySponsoredFilterSection()}\n
    \n
    \n {displayModals()}\n {displaySponsoredRightHandSideSection()}\n
    \n
    \n );\n}\n/* ********** Declaring prop types ********** */\nSponsoredDashboardContainer.defaultProps =\n SponsoredDashboardContainerDefaultProps;\n\nSponsoredDashboardContainer.propTypes = SponsoredDashboardContainerPropTypes;\n","// react imports\nimport React, { useCallback, useEffect, useState } from 'react';\n\n// third party imports\nimport { components } from 'react-select';\nimport { arrayOf, func, shape, string } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\n\n// local file imports\nimport { CaretUp } from '../../../../theme/images';\nimport {\n getBpListInAMCAudienceDashboard,\n getManagersList,\n getMarketPlaceList,\n} from '../../../../api';\nimport {\n WhiteCard,\n DropdownIndicator,\n MultiSelectSearchableDropdown,\n SingleSelectDropdown,\n DropdownOptions,\n} from '../../../../common';\n\nconst AMCDashboardLeftSidePanel = ({\n setSelectedMarketplace,\n selectedMarketplace,\n bindUserListData,\n handleMultiSelectDropdownFilterEvents,\n selectedDSPManager,\n setSelectedDSPManager,\n selectedBp,\n setSelectedBp,\n}) => {\n const { SingleValue } = components;\n const defaultMarketPlace = {\n value: 'all',\n label: 'All Marketplaces',\n currency: 'USD',\n };\n\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n const [dspManagerList, setDSPManagerList] = useState([]);\n const [dspManageApiList, setDSPManagerApiList] = useState([]);\n const [bpList, setBPList] = useState([]);\n const [bpApiList, setBPApiList] = useState([]);\n const [isManagerUsersSelected, setIsManagerUsersSelected] = useState(false);\n const [isBPSelected, setIsBPSelected] = useState(false);\n const [marketplaceOption, setMarketplaceChoices] = useState([]);\n const [bpListLoader, setBpListLoader] = useState(false);\n const [dspManagerListLoader, setDspManagerListLoader] = useState(false);\n const [marketplaceListLoader, setMarketplaceListLoader] = useState([]);\n\n // handle marketplace filter events\n const handleMarketplaceOptions = (event) => {\n setSelectedMarketplace(event);\n };\n\n // react select - single value\n const singleFilterOption = (props) => (\n \n {props?.data?.label}\n \n );\n\n // react select - get dropdown components\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n // render marketplace dropdown filter\n const renderMarketplaceDropdownFilter = () => {\n return (\n
    \n
    Marketplace
    \n handleMarketplaceOptions(event)}\n dropdownComponents={getSelectComponents}\n isSearchable={false}\n />\n
    \n );\n };\n\n // handle bgs manager/ad team managerfilter events\n const handleManagerUserFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedDSPManager,\n dspManageApiList,\n );\n setSelectedDSPManager(selectedValues);\n setIsManagerUsersSelected(true);\n };\n\n // handle bgs manager/ad team manager on dropdwon menu close events\n const handleManagerUserOnMenuCloseEvents = () => {\n if (isManagerUsersSelected) {\n const managerUsers =\n selectedDSPManager?.length > 0 ? selectedDSPManager : dspManagerList;\n setSelectedDSPManager(managerUsers);\n }\n };\n\n // display dsp manager dropdown filter\n const renderManagerUserDropdown = () => {\n return (\n
    \n
    DSP Manager
    \n
    \n option?.value !== 'all',\n )}\n label=\"\"\n value=\"managerUser\"\n multiSelectedValues={{ managerUser: selectedDSPManager }}\n setMultiSelectedValues={setSelectedDSPManager}\n handleMultiSelectChange={handleManagerUserFilterEvents}\n handleOnMenuClose={handleManagerUserOnMenuCloseEvents}\n isLoading={dspManagerListLoader}\n isSearchable\n />\n
    \n
    \n );\n };\n\n // handle bgs manager/ad team managerfilter events\n const handleBPFilterEvents = (event, action) => {\n const selectedValues = handleMultiSelectDropdownFilterEvents(\n event,\n action,\n selectedBp,\n bpApiList,\n );\n setSelectedBp(selectedValues);\n setIsBPSelected(true);\n };\n\n // handle bgs manager/ad team manager on dropdwon menu close events\n const handleBPOnMenuCloseEvents = () => {\n if (isBPSelected) {\n const bps = selectedBp?.length > 0 ? selectedBp : bpList;\n setSelectedBp(bps);\n }\n };\n\n // display brand partner dropdown filter\n const renderBPDropdown = () => {\n return (\n
    \n
    Brand Partner
    \n
    \n option?.value !== 'all')}\n label=\"\"\n value=\"managerUser\"\n multiSelectedValues={{ managerUser: selectedBp }}\n setMultiSelectedValues={setSelectedBp}\n handleMultiSelectChange={handleBPFilterEvents}\n handleOnMenuClose={handleBPOnMenuCloseEvents}\n isLoading={bpListLoader}\n isSearchable\n />\n
    \n
    \n );\n };\n\n const getBpListDropdownValues = useCallback(() => {\n setBpListLoader(true);\n\n getBpListInAMCAudienceDashboard().then((res) => {\n setBpListLoader(false);\n\n if (res?.status === 200) {\n setBPList(res?.data);\n const tempBPList = res?.data;\n const tempUserListWithAll = [...tempBPList];\n\n if (tempBPList?.length > 1) {\n tempUserListWithAll.unshift({\n value: 'all',\n label: 'All',\n });\n }\n setSelectedBp(tempUserListWithAll);\n setBPApiList(tempUserListWithAll);\n }\n });\n }, [setSelectedBp]);\n\n const getManagerUserList = useCallback(\n (role) => {\n setDspManagerListLoader(true);\n getManagersList(role, 'dsp_ad_performance').then((res) => {\n setDspManagerListLoader(false);\n\n const formatedApiData = bindUserListData(res?.data, role);\n setDSPManagerList(formatedApiData?.userListWithAll);\n setSelectedDSPManager(formatedApiData?.userListWithAll);\n setDSPManagerApiList(formatedApiData?.userList);\n });\n },\n [bindUserListData, setSelectedDSPManager],\n );\n\n // bind all marketplaces\n const bindAllMarketplaces = useCallback((responseData) => {\n const tempMarketplacesList = [];\n\n if (responseData?.length > 0) {\n for (const item of responseData) {\n tempMarketplacesList.push({\n value: item?.name,\n label: item?.country,\n currency: item?.currency,\n id: item?.marketplace_id,\n });\n }\n }\n\n if (tempMarketplacesList?.length > 1) {\n tempMarketplacesList.unshift({\n value: 'all',\n label: 'All Marketplaces',\n currency: 'USD',\n });\n }\n return tempMarketplacesList;\n }, []);\n\n const getMarketplaces = useCallback(() => {\n setMarketplaceListLoader(true);\n getMarketPlaceList().then((response) => {\n setMarketplaceListLoader(false);\n if (response?.status === 200) {\n if (response?.data?.length) {\n const formatedApiData = bindAllMarketplaces(response?.data);\n setMarketplaceChoices(formatedApiData);\n setSelectedMarketplace(formatedApiData?.[0]);\n }\n }\n });\n }, [bindAllMarketplaces, setSelectedMarketplace]);\n\n const handleResetFilterOfAmcDashboard = () => {\n const tempUserListWithAll = [...bpList];\n\n if (bpList?.length > 1) {\n tempUserListWithAll.unshift({\n value: 'all',\n label: 'All',\n });\n }\n setSelectedBp(tempUserListWithAll);\n setSelectedDSPManager(dspManagerList);\n setSelectedMarketplace(defaultMarketPlace);\n };\n\n // use effect\n useEffect(() => {\n getMarketplaces('amazon');\n getBpListDropdownValues();\n getManagerUserList();\n }, [getBpListDropdownValues, getManagerUserList, getMarketplaces]);\n\n const renderFilters = () => {\n return (\n <>\n {renderMarketplaceDropdownFilter()}\n {renderManagerUserDropdown()}\n {renderBPDropdown()}\n \n );\n };\n\n return (\n <>\n {' '}\n setIsCollapseOpen(!isCollapseOpen)}\n className={\n isDesktop ? 'mb-3 d-lg-block d-none' : 'mb-3 d-lg-none d-block'\n }\n >\n
    \n
    \n
    Filters
    \n
    \n
    \n {\n handleResetFilterOfAmcDashboard();\n }}\n role=\"presentation\"\n className=\"gray-normal-text cursor mt-0\"\n >\n Reset filters\n {!isDesktop && (\n \n {\n e.stopPropagation();\n setIsCollapseOpen(!isCollapseOpen);\n }}\n >\n \n \n \n )}\n

    \n
    \n\n {isDesktop\n ? renderFilters()\n : isCollapseOpen\n ? renderFilters()\n : null}\n
    \n \n \n );\n};\n\nexport default AMCDashboardLeftSidePanel;\n\nAMCDashboardLeftSidePanel.defaultProps = {\n // objects\n data: {},\n selectedMarketplace: {},\n setSelectedMarketplace: () => {},\n bindUserListData: () => {},\n handleMultiSelectDropdownFilterEvents: () => {},\n selectedDSPManager: [],\n setSelectedDSPManager: () => {},\n selectedBp: [],\n setSelectedBp: () => {},\n};\n\nAMCDashboardLeftSidePanel.propTypes = {\n selectedMarketplace: shape({}),\n // objects\n data: shape({ sub: string, label: string }),\n setSelectedMarketplace: func,\n bindUserListData: func,\n handleMultiSelectDropdownFilterEvents: func,\n selectedDSPManager: arrayOf(shape({})),\n setSelectedDSPManager: func,\n selectedBp: arrayOf(shape({})),\n setSelectedBp: func,\n};\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport styled from 'styled-components';\nimport { string } from 'prop-types';\nimport * as QuickSightEmbedding from 'amazon-quicksight-embedding-sdk';\nimport { getEmbeddedQuicksightDashboardURL } from '../../../../api';\nimport { PageLoader, WhiteCard } from '../../../../common';\n\nfunction AwsQuicksightContainer({ id, dashboardId }) {\n const [dashboardLoader, setDashboardLoader] = useState(false);\n\n // async function for embedding the quicksight dashboard automatically\n const getQuicksightDashboard = useCallback(\n async (URL) => {\n let dashboard = null;\n const { createEmbeddingContext } = QuickSightEmbedding;\n\n const embeddingContext = await createEmbeddingContext();\n const { embedDashboard } = embeddingContext;\n\n const containerDiv = document.getElementById(id);\n\n // basic dashboard options\n const dashboardOptions = {\n url: URL,\n container: containerDiv,\n scrolling: 'no',\n width: '100%',\n height: '1280px',\n parameters: {\n country: 'United States',\n },\n };\n\n // filtered dashboard params\n const otherOptions = {\n toolbarOptions: {\n export: true,\n },\n };\n dashboard = await embedDashboard(dashboardOptions, otherOptions)\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n\n return dashboard;\n },\n [id],\n );\n\n // get embedded url of quicksight dashboard\n const getDashboardURL = useCallback(() => {\n setDashboardLoader(true);\n const params = {\n dashboard_id: dashboardId,\n };\n getEmbeddedQuicksightDashboardURL(params).then((response) => {\n if (response?.status === 200) {\n setDashboardLoader(false);\n getQuicksightDashboard(response?.data?.EmbedUrl);\n } else {\n setDashboardLoader(false);\n }\n });\n }, [dashboardId, getQuicksightDashboard]);\n\n useEffect(() => {\n getDashboardURL();\n }, [getDashboardURL]);\n\n /* ********** Main return statement of this component ********** */\n return (\n \n \n {dashboardLoader ? (\n \n ) : (\n
    \n )}\n
    \n \n \n );\n}\n\nAwsQuicksightContainer.defaultProps = {\n dashboardId: '',\n};\n\nAwsQuicksightContainer.propTypes = {\n dashboardId: string,\n id: string.isRequired,\n};\n\nexport default AwsQuicksightContainer;\nconst AWSQuicksightsDashboard = styled.div`\n #footer-strip {\n height: 30px;\n background: #ffffff;\n margin-top: -25px;\n position: relative;\n }\n`;\n","// react imports\nimport React, { useCallback } from 'react';\n\n// third party imports\nimport { arrayOf, bool, shape } from 'prop-types';\n\n// local file imports\nimport DifferenceAdMetric from '../../DifferenceAdMetric';\nimport CardMetrics from '../../../../../common/CardMetrics';\nimport { AMCAudienceMetricsConstants } from '../../../../../constants';\n\nfunction AMCAudienceMetrics({ showAMCAudienceLookalike, amcAudienceData }) {\n const addThousandComma = useCallback((number, decimalDigits = 2) => {\n if (number !== undefined && number !== null) {\n return number\n ?.toFixed(decimalDigits)\n ?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n return number;\n }, []);\n\n // display metrics box html\n const displayMetricsBoxHTML = (\n className,\n id,\n metricsName,\n currentValue,\n previousValue,\n differenceValue,\n prefix,\n suffix,\n decimalDigits,\n ) => {\n return (\n
    \n \n
    \n
    {metricsName}
    \n
    \n {currentValue\n ? `${prefix}${addThousandComma(\n currentValue,\n decimalDigits,\n )}${suffix}`\n : `${prefix}${decimalDigits === 0 ? '0' : '0.00'}${suffix}`}\n
    \n
    \n {previousValue\n ? `vs ${prefix}${addThousandComma(\n previousValue,\n decimalDigits,\n )}${suffix}`\n : `vs ${prefix}${decimalDigits === 0 ? '0' : '0.00'}${suffix}`}\n
    \n
    \n {differenceValue ? (\n \n ) : (\n
    N/A
    \n )}\n
    \n
    \n
    \n
    \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n
    \n {AMCAudienceMetricsConstants?.map((item) => {\n return displayMetricsBoxHTML(\n item?.className,\n item?.metricsId,\n `${item?.metricsLabel} ${\n showAMCAudienceLookalike ? 'Lookalike' : ''\n }`,\n amcAudienceData?.current_data?.[item?.metricsKey],\n amcAudienceData?.previous_data?.[item?.metricsKey],\n amcAudienceData?.percentage_change_data?.[item?.metricsKey],\n '',\n '',\n 0,\n );\n })}\n
    \n
    \n );\n}\n\nexport default AMCAudienceMetrics;\n\nAMCAudienceMetrics.defaultProps = {\n showAMCAudienceLookalike: false,\n amcAudienceData: [],\n};\nAMCAudienceMetrics.propTypes = {\n showAMCAudienceLookalike: bool,\n amcAudienceData: arrayOf(shape()),\n};\n","// react imports\nimport React, { useState } from 'react';\n\n// third party imports\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, func } from 'prop-types';\n\n// local file imports\nimport { NoRecordFound, CollapseTableMobileView } from '../../../../../common';\n\nfunction AMCAudienceSummaryMobileView({\n amcAudienceSummaryData,\n AMCAudienceSummaryHeaders,\n displayValue,\n}) {\n const [viewMoreDetailsFlag, setViewMoreDetailsFlag] = useState({\n index: null,\n flag: null,\n });\n\n // display amc audience capsule data\n const displayamcAudienceCapsuleData = (\n dspAudienceItem,\n dspAudienceItemIndex,\n ) => {\n if (\n viewMoreDetailsFlag?.index === dspAudienceItemIndex &&\n viewMoreDetailsFlag?.flag\n ) {\n return AMCAudienceSummaryHeaders?.map((audienceHeader) => {\n return (\n
    \n
    \n {audienceHeader?.label}\n
    \n
    \n {displayValue(dspAudienceItem, audienceHeader)}\n
    \n
    \n );\n });\n }\n return AMCAudienceSummaryHeaders.slice(0, 4)?.map((audienceHeader) => {\n return (\n
    \n
    \n {audienceHeader?.label}\n
    \n
    \n {displayValue(dspAudienceItem, audienceHeader)}\n
    \n
    \n );\n });\n };\n\n // display amc audience mobile view\n const displayAmcAudienceMobileView = () => {\n return (\n <>\n {amcAudienceSummaryData?.length ? (\n amcAudienceSummaryData?.map(\n (dspAudienceItem, dspAudienceItemIndex) => {\n return (\n
    \n
    \n {displayamcAudienceCapsuleData(\n dspAudienceItem,\n dspAudienceItemIndex,\n )}\n\n {\n setViewMoreDetailsFlag({\n index: dspAudienceItemIndex,\n flag: !viewMoreDetailsFlag.flag,\n });\n }}\n >\n {viewMoreDetailsFlag?.index === dspAudienceItemIndex &&\n viewMoreDetailsFlag?.flag\n ? 'View less details'\n : `View 8 more details`}\n \n
    \n
    \n \n );\n },\n )\n ) : (\n
    \n \n
    \n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n {displayAmcAudienceMobileView()}\n \n );\n}\n\nexport default AMCAudienceSummaryMobileView;\n\nAMCAudienceSummaryMobileView.defaultProps = {\n amcAudienceSummaryData: [],\n AMCAudienceSummaryHeaders: [],\n displayValue: () => {},\n};\n\nAMCAudienceSummaryMobileView.propTypes = {\n amcAudienceSummaryData: arrayOf(shape({})),\n AMCAudienceSummaryHeaders: arrayOf(shape({})),\n displayValue: func,\n};\n","// react imports\nimport React from 'react';\n\n// third party imports\nimport ReactTooltip from 'react-tooltip';\nimport { useHistory } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, shape } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// local file imports\nimport { DesktopTable } from '../../../../../common';\nimport { TableWrapper } from '../../../../Customer/CustomerDetailView/GoalsAndCOS/GoalsStyle';\nimport { TaskStatus } from '../../../../Customer/CustomerDetailView/Playbook/PlaybookStyle';\nimport { InfoRedIcon, InfoIcons } from '../../../../../theme/images';\nimport AMCAudienceSummaryMobileView from './AMCAudienceSummaryMobileView';\nimport {\n AMCAudienceSummaryHeaders,\n PATH_CUSTOMER_DETAILS,\n} from '../../../../../constants';\n\nfunction AMCAudienceTable({\n showAMCAudienceLookalike,\n amcAudienceSummaryData,\n}) {\n const history = useHistory();\n const isDesktop = useMediaQuery({ minWidth: 767 });\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isBBEInternalUser = userInfo?.isInternalUser ? 'internal' : 'external';\n\n // https://bbe.atlassian.net/browse/PDV-9060\n // Adding new column - Audience Expansion Type in dsp audience table header\n const indexofRefreshRate = AMCAudienceSummaryHeaders?.findIndex(\n (item) => item?.key === 'refresh_rate_days',\n );\n\n let newAMCAudienceSummaryHeaders = [...AMCAudienceSummaryHeaders];\n if (showAMCAudienceLookalike) {\n newAMCAudienceSummaryHeaders = AMCAudienceSummaryHeaders?.toSpliced(\n indexofRefreshRate + 1,\n 0,\n {\n label: 'Audience Expansion Type',\n type: 'choice',\n key: 'expansion_type',\n },\n );\n }\n\n // render progress label className\n const renderProgressLabelClassName = (status) => {\n let className = '';\n switch (status) {\n case 'started':\n className = 'progress-label gray-label';\n break;\n\n case 'running':\n className = 'progress-label orange-label';\n break;\n\n case 'pending':\n className = 'progress-label yellow-label';\n break;\n\n case 'failed':\n className = 'progress-label red-label';\n break;\n case 'successful':\n className = 'progress-label green-label';\n break;\n\n default:\n break;\n }\n return className;\n };\n\n // display tooltip data\n const displayTooltipData = (dataTip, dataFor, imgIcon) => {\n return (\n <>\n \n \n \n );\n };\n\n // display audience status\n const displayStatus = (dspAudienceItem, rowIndex) => {\n return (\n {\n event.stopPropagation();\n }}\n >\n
    \n {dspAudienceItem?.status || '-'}\n {dspAudienceItem?.status === 'failed'\n ? displayTooltipData(\n dspAudienceItem?.execution_description,\n `${dspAudienceItem?.status}${rowIndex}`,\n InfoRedIcon,\n )\n : ''}\n
    \n \n );\n };\n\n // get mst time format\n const getMSTTime = (value) => {\n const dateSplitterarray = value?.split('T');\n const timeSplitterarray = dateSplitterarray[1]?.split('-');\n let timeValue = timeSplitterarray?.[0];\n if (timeSplitterarray?.[0]?.includes('.')) {\n timeValue = timeSplitterarray?.[0]?.split('.')?.[0];\n }\n return `${dateSplitterarray?.[0]} T ${timeValue}`;\n };\n\n // display amc audience data value\n const displayValue = (dspAudienceItem, audienceHeader) => {\n const accountType =\n dspAudienceItem?.account_type === 'Vendor' ? 'vendor' : 'seller';\n if (audienceHeader?.key === 'status') {\n return displayStatus(dspAudienceItem);\n }\n if (audienceHeader?.key === 'bp_name') {\n return (\n {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n dspAudienceItem?.customer,\n )}?tab=performance&sub=${accountType}&nav=amcInsights&subNav=dsp-audience&access=${isBBEInternalUser}`,\n 'amcInsights',\n );\n }}\n >\n
    {dspAudienceItem?.bp_name}
    \n {dspAudienceItem?.dsp_ad_manager ? (\n
    \n {dspAudienceItem?.dsp_ad_manager}\n
    \n ) : (\n ''\n )}\n
    \n );\n }\n if (audienceHeader?.key === 'instance_id') {\n return dspAudienceItem?.instance_id;\n }\n if (audienceHeader?.key === 'advertiser_id') {\n return dspAudienceItem?.advertiser_id;\n }\n\n if (audienceHeader?.key === 'query') {\n return dspAudienceItem?.query_detail?.name;\n }\n\n if (audienceHeader?.key === 'refresh_time_window') {\n return dspAudienceItem?.refresh_time_window === true ? 'True' : 'False';\n }\n\n if (\n audienceHeader?.key === 'created_at' ||\n audienceHeader?.key === 'time_window_start' ||\n audienceHeader?.key === 'time_window_end'\n ) {\n return (\n <>\n
    {getMSTTime(dspAudienceItem?.[audienceHeader?.key])}
    \n {audienceHeader?.key === 'created_at' ? (\n
    \n \n created by {dspAudienceItem?.created_by_details?.first_name}{' '}\n
    \n ) : (\n ''\n )}\n \n );\n }\n\n return <>{dspAudienceItem?.[audienceHeader?.key]};\n };\n\n // display amc audience table body data\n const displayTableData = (dspAudienceItem) => {\n return (\n \n {newAMCAudienceSummaryHeaders?.map((audienceHeader, headerIndex) => {\n return (\n \n {displayValue(dspAudienceItem, audienceHeader)}\n \n );\n })}\n \n );\n };\n\n // display amc audience summary table\n const displayTable = () => {\n return (\n
    \n \n
    \n \n \n \n {newAMCAudienceSummaryHeaders?.map((item, i) => {\n return (\n \n {item?.label}\n {item?.info\n ? displayTooltipData(\n item?.info,\n `${item?.label}`,\n InfoIcons,\n )\n : ''}\n \n );\n })}\n \n \n \n {amcAudienceSummaryData?.map((dspAudienceItem) => {\n return displayTableData(dspAudienceItem);\n })}\n \n \n
    \n
    \n
    \n );\n };\n\n return (\n
    \n {isDesktop ? (\n displayTable()\n ) : (\n \n )}\n
    \n );\n}\n\nexport default AMCAudienceTable;\n\nAMCAudienceTable.defaultProps = {\n showAMCAudienceLookalike: false,\n amcAudienceSummaryData: [],\n};\nAMCAudienceTable.propTypes = {\n showAMCAudienceLookalike: false,\n amcAudienceSummaryData: arrayOf(shape()),\n};\n","// react imports\nimport React, { useState, useEffect, useCallback } from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport { components } from 'react-select';\nimport { arrayOf, bool, shape } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useSelector } from 'react-redux';\n\n// local file imports\nimport Theme from '../../../../../theme/Theme';\nimport AMCAudienceMetrics from './AMCAudienceMetrics';\nimport AMCAudienceTable from './AMCAudienceTable';\nimport { getDSPAudienceDashboardData } from '../../../../../api';\nimport {\n orderByFilterOptions,\n statusFilterOptions,\n timeFrameOptionsOfAMCAudience,\n} from '../../../../../constants';\nimport {\n WhiteCard,\n SingleSelectDropdown,\n ViewData,\n DropdownIndicator,\n NoRecordFound,\n PageLoader,\n CommonPagination,\n CustomMonthRangeModal,\n GrayMessageBar,\n DropdownOptions,\n} from '../../../../../common';\n\nfunction AMCAudienceSummaryContainer({\n showAMCAudienceLookalike,\n selectedBp,\n selectedDSPManager,\n selectedMarketplace,\n}) {\n const { SingleValue } = components;\n const [selectedViewDataFilter, setSelectedViewDataFilter] = useState(\n orderByFilterOptions[0],\n );\n const [selectedStatusFilter, setSelectedStatusFilter] = useState(\n statusFilterOptions[0],\n );\n const [selectedTimeFilter, setSelectedTimeFilter] = useState(\n timeFrameOptionsOfAMCAudience[0],\n );\n const [amcAudienceSummaryData, setAMCAudienceSummaryData] = useState([]);\n const [amcAudienceData, setAMCAudienceData] = useState([]);\n const [loader, setLoader] = useState({\n type: 'page',\n flag: false,\n });\n const [dspAudienceCount, setDSPAudienceCount] = useState(null);\n const [pageNumber, setPageNumber] = useState();\n const [downloadUrl, setDownloadUrl] = useState(null);\n const [downloadLoader, setDownloadLoader] = useState(false);\n const [showCustomMonthModal, setShowCustomMonthModal] = useState(false);\n const [isCustomMonthApply, setIsCustomMonthApply] = useState(true);\n const [customStartDate, setCustomStartDate] = useState(null);\n const [customEndDate, setCustomEndDate] = useState(null);\n const [customMonth, setCustomMonth] = useState([\n {\n startMonth: new Date(),\n endMonth: null,\n },\n ]);\n const [appliedDate, setAppliedDate] = useState(customMonth);\n\n // https://bbe.atlassian.net/browse/PDV-8930\n // Show dynamic messages in AMC\n const dynamicMessages = useSelector(\n (state) => state?.userState?.showDynamicMsg,\n );\n const amcAudienceMessage = dynamicMessages?.amc_audience?.placeholder || null;\n\n // callback function for get dsp audience data\n const getAudienceData = useCallback(\n (currentPage) => {\n setLoader({ type: 'page', flag: true });\n\n getDSPAudienceDashboardData({\n page: currentPage,\n downloadFlag: false,\n status: selectedStatusFilter?.value,\n timeframe: selectedTimeFilter?.value,\n orderBy: selectedViewDataFilter?.value,\n start_date: customStartDate,\n end_date: customEndDate,\n dsp_ad_manager: selectedDSPManager,\n marketplace: selectedMarketplace,\n customer: selectedBp,\n showAMCAudienceLookalike,\n }).then((res) => {\n setLoader({ type: 'page', flag: false });\n\n if (res?.status === 200) {\n setAMCAudienceSummaryData(res?.data?.results);\n setAMCAudienceData(res?.data);\n setDSPAudienceCount(res?.data?.count);\n setPageNumber(currentPage);\n }\n });\n },\n [\n selectedStatusFilter,\n selectedTimeFilter,\n selectedViewDataFilter,\n customStartDate,\n customEndDate,\n selectedDSPManager,\n selectedMarketplace,\n selectedBp,\n showAMCAudienceLookalike,\n ],\n );\n\n useEffect(() => {\n getAudienceData(1);\n }, [getAudienceData]);\n\n // get dropdwon indicator for dropdown filter\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n // handle downlod button events\n const handleDownloadBtn = () => {\n setDownloadLoader(true);\n const link = document.createElement('a');\n getDSPAudienceDashboardData({\n page: pageNumber,\n downloadFlag: true,\n status: selectedStatusFilter?.value,\n timeframe: selectedTimeFilter?.value,\n orderBy: selectedViewDataFilter?.value,\n start_date: customStartDate,\n end_date: customEndDate,\n dsp_ad_manager: selectedDSPManager,\n marketplace: selectedMarketplace,\n customer: selectedBp,\n showAMCAudienceLookalike,\n }).then((res) => {\n setDownloadLoader(false);\n\n if (res?.status === 200) {\n setDownloadUrl(res?.data?.url);\n link.href = res?.data?.url;\n link.click();\n }\n });\n };\n\n // handle sorting filter events\n const handleViewDataForFilterChange = (event) => {\n setSelectedViewDataFilter(event);\n };\n\n // handle status filter events\n const handleStatusFilterChange = (event) => {\n setSelectedStatusFilter(event);\n };\n\n // handle pagination events\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getAudienceData(currentPage);\n };\n\n // handle time frame filter events\n const handleTimeFrameFilter = (event) => {\n const { value } = event;\n if (value !== 'custom') {\n setSelectedTimeFilter(event);\n setIsCustomMonthApply(false);\n } else if (value === 'custom') {\n setShowCustomMonthModal(true);\n }\n };\n\n // calling goals api when date changes\n const applyDateChangeEvents = (startDate, endDate) => {\n setCustomStartDate(startDate);\n setCustomEndDate(endDate);\n };\n\n // handle custom date range changes events\n const handleCustomDateRangeEvents = (startDate, endDate, dateFlag) => {\n const newEndDate = endDate || startDate;\n let tempStartDate = startDate;\n let tempEndDate = newEndDate;\n if (dateFlag === 'custom') {\n tempStartDate = dayjs(startDate).format('DD-MM-YYYY');\n tempEndDate = dayjs(tempEndDate).format('DD-MM-YYYY');\n applyDateChangeEvents(tempStartDate, tempEndDate);\n }\n };\n\n // apply custom month range\n const applyCustomMonthRange = () => {\n if (selectedTimeFilter?.value !== 'custom')\n setSelectedTimeFilter({\n value: 'custom',\n label: 'Custom Range',\n sub: 'Select start & end date',\n });\n\n setIsCustomMonthApply(true);\n setAppliedDate(customMonth);\n handleCustomDateRangeEvents(\n customMonth?.[0]?.startMonth,\n customMonth?.[0]?.endMonth,\n 'custom',\n );\n setShowCustomMonthModal(false);\n };\n\n // Handeling the custom month range selection\n const onMonthChange = (date) => {\n const [startMonth, endMonth] = date;\n\n setCustomMonth([\n {\n startMonth,\n endMonth,\n },\n ]);\n };\n\n // set default date\n const setDefaultDate = () => {\n if (isCustomMonthApply) {\n setCustomMonth([\n {\n startMonth: appliedDate?.[0]?.startMonth,\n endMonth: appliedDate?.[0]?.endMonth,\n },\n ]);\n }\n };\n\n // display custom start and end date\n const renderCustomDateSubLabel = (data) => {\n if (selectedTimeFilter.value === 'custom' && isCustomMonthApply) {\n return `From- ${dayjs(appliedDate?.[0]?.startMonth).format(\n 'MMM, YYYY',\n )} To- ${dayjs(\n appliedDate?.[0]?.endMonth\n ? appliedDate?.[0]?.endMonth\n : appliedDate?.[0]?.startMonth,\n ).format('MMM, YYYY')}`;\n }\n return data.sub;\n };\n\n const singleFilterOption = ({ data, ...props }) => (\n \n {data?.label}\n
    {renderCustomDateSubLabel(data)}
    \n
    \n );\n\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n // display reat select dropdown filter\n const displayDropdownFilter = (\n filterId,\n selectedValue,\n dropdownOptions,\n onChangeHandler,\n dropdownComponents,\n ) => {\n return (\n onChangeHandler(event)}\n dropdownComponents={dropdownComponents}\n isSearchable={false}\n />\n );\n };\n\n // display dropdown button html\n const displayDownloadBtn = () => {\n return (\n \n {\n handleDownloadBtn();\n }}\n className=\"download-pdf-link\"\n href={downloadUrl}\n download\n >\n {downloadLoader ? (\n \n ) : (\n <>\n \n Download Report\n \n )}\n \n \n );\n };\n\n // render modals\n const renderModals = () => {\n return (\n {\n setShowCustomMonthModal(false);\n setDefaultDate();\n }}\n onDateChange={onMonthChange}\n onApply={() => {\n applyCustomMonthRange();\n }}\n />\n );\n };\n\n // display amc audience Left Hand Side content\n const displayAMCAudienceLeftHandSideSection = () => {\n return (\n \n \n
    \n
    \n
    \n
    \n
    \n View data for:\n
    \n
    \n
    \n {amcAudienceSummaryData?.length ? displayDownloadBtn() : ''}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {amcAudienceSummaryData?.length ? displayDownloadBtn() : ''}\n
    \n
    \n
    \n {displayDropdownFilter(\n 'BT-DspAudienceFilter',\n selectedViewDataFilter,\n orderByFilterOptions,\n handleViewDataForFilterChange,\n getSelectDropdownIndicator,\n )}\n
    \n
    \n {displayDropdownFilter(\n 'BT-AmcStatusFilter',\n selectedStatusFilter,\n statusFilterOptions,\n handleStatusFilterChange,\n getSelectDropdownIndicator,\n )}\n
    \n
    \n {displayDropdownFilter(\n 'BT-AmcTimeFrameFilter',\n selectedTimeFilter,\n timeFrameOptionsOfAMCAudience,\n handleTimeFrameFilter,\n getSelectComponents,\n )}\n
    \n
    \n
    \n
    \n
    \n
    \n );\n };\n\n // display amc audience right Hand Side content\n const displayAMCAudienceRightHandSideSection = () => {\n return (\n \n {/* https://bbe.atlassian.net/browse/PDV-8930 - Show dynamic messages in AMC */}\n {amcAudienceMessage ? (\n \n ) : null}\n {amcAudienceSummaryData?.length ||\n Object.keys(amcAudienceSummaryData).length ? (\n <>\n \n
    \n \n
    \n \n \n ) : (\n
    \n \n
    \n )}\n {renderModals()}\n
    \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {loader?.flag && loader?.type === 'page' ? (\n \n ) : (\n <>\n {displayAMCAudienceLeftHandSideSection()}\n {displayAMCAudienceRightHandSideSection()}\n \n )}\n
    \n );\n}\n\nexport default AMCAudienceSummaryContainer;\n\nAMCAudienceSummaryContainer.defaultProps = {\n showAMCAudienceLookalike: false,\n selectedBp: [],\n selectedDSPManager: [],\n selectedMarketplace: {},\n};\n\nAMCAudienceSummaryContainer.propTypes = {\n showAMCAudienceLookalike: bool,\n selectedBp: arrayOf(shape({})),\n selectedDSPManager: arrayOf(shape({})),\n selectedMarketplace: shape({}),\n};\n\nconst DownloadReport = styled.div`\n .download-pdf {\n cursor: pointer;\n font-size: ${Theme.extraNormal};\n .download-pdf-link {\n color: ${Theme.black};\n }\n\n .download-pdf-icon {\n width: 20px;\n margin-right: 7px;\n vertical-align: text-top;\n\n &.upload-icon {\n transform: rotate(180deg);\n }\n }\n }\n`;\n","import React, { useState } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { arrayOf, shape, func } from 'prop-types';\n\nimport { CollapseTableMobileView } from '../../../../../common';\n\nfunction AMCSelfServiceMobileView({\n tableHeader,\n tableData,\n displayValue,\n displayInputField,\n}) {\n const [viewMoreDetailsFlag, setViewMoreDetailsFlag] = useState({\n index: null,\n flag: null,\n });\n\n const displayTableData = (item, tableDataIndex) => {\n if (\n viewMoreDetailsFlag?.index === tableDataIndex &&\n viewMoreDetailsFlag?.flag\n ) {\n return tableHeader?.map((header) => {\n return (\n
    \n
    \n {header?.label}\n
    \n
    \n {item?.id\n ? displayValue(item, header)\n : displayInputField(item, header, tableDataIndex)}\n
    \n
    \n );\n });\n }\n\n return tableHeader.slice(0, 4)?.map((header) => {\n return (\n
    \n
    \n {header?.label}\n
    \n
    \n {item?.id\n ? displayValue(item, header)\n : displayInputField(item, header, tableDataIndex)}\n
    \n
    \n );\n });\n };\n\n const displayTable = () => {\n return (\n <>\n {tableData?.map((item, tableDataIndex) => {\n const rowKey = item?.type\n ? `${item.type}-${(tableDataIndex + 1)?.toString()}`\n : `${item?.id || ''}${item?.instance_id || ''}`;\n return (\n
    \n
    \n {displayTableData(item, tableDataIndex)}\n\n {\n setViewMoreDetailsFlag({\n index: tableDataIndex,\n flag: !viewMoreDetailsFlag.flag,\n });\n }}\n >\n {viewMoreDetailsFlag?.index === tableDataIndex &&\n viewMoreDetailsFlag?.flag\n ? 'View less details'\n : `View more details`}\n \n
    \n
    \n \n );\n })}\n \n );\n };\n\n return {displayTable()};\n}\n\nexport default AMCSelfServiceMobileView;\n\nAMCSelfServiceMobileView.defaultProps = {\n tableHeader: [],\n tableData: [],\n displayValue: () => {},\n displayInputField: () => {},\n};\n\nAMCSelfServiceMobileView.propTypes = {\n tableHeader: arrayOf(shape({})),\n tableData: arrayOf(shape({})),\n displayValue: func,\n displayInputField: func,\n};\n","import React, { memo } from 'react';\n\nimport ReactTooltip from 'react-tooltip';\nimport { useMediaQuery } from 'react-responsive';\nimport { toast } from 'react-toastify';\nimport { useSelector } from 'react-redux';\nimport { func, number, shape } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport AMCSelfServiceMobileView from './AMCSelfServiceMobileView';\nimport { InfoRedIcon, InfoIcons } from '../../../../../theme/images';\nimport { saveAMCInstance, saveAMCAdvertiser } from '../../../../../api';\nimport { TaskStatus } from '../../../../Customer/CustomerDetailView/Playbook/PlaybookStyle';\nimport {\n DesktopTable,\n CommonPagination,\n Button,\n InputFormField,\n PageLoader,\n NoData,\n} from '../../../../../common';\n\nfunction AMCSelfServiceTable({\n amcInstances,\n addNewRow,\n handleInputChange,\n deleteInstance,\n getAMCInstanceData,\n amcInstanceCount,\n pageNumber,\n setPageNumber,\n loader,\n setLoader,\n checkAllMandatoryFieldsFilled,\n setIsEditModeOn,\n}) {\n const { tableData, tableHeader } = amcInstances;\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isDesktop = useMediaQuery({ minWidth: 767 });\n\n // render progress label className\n const renderProgressLabelClassName = (status) => {\n const classesData = {\n started: 'progress-label gray-label',\n requested: 'progress-label gray-label',\n running: 'progress-label orange-label',\n in_progress: 'progress-label orange-label',\n updating: 'progress-label orange-label',\n pending: 'progress-label yellow-label',\n submitted: 'progress-label yellow-label',\n failed: 'progress-label red-label',\n rejected: 'progress-label red-label',\n successful: 'progress-label green-label',\n completed: 'progress-label green-label',\n deleted: 'progress-label green-label',\n };\n const lowerCaseStatus = status?.toLowerCase();\n return classesData?.[lowerCaseStatus];\n };\n\n // display tooltip data\n const displayTooltipData = (dataTip, dataFor, imgIcon) => {\n return (\n <>\n \n \n \n );\n };\n\n // display status with proper styling(color)\n const displayStatus = (statusData, rowIndex) => {\n return (\n {\n event.stopPropagation();\n }}\n >\n
    \n {statusData?.creation_status || '-'}\n {statusData?.creation_status === 'FAILED' ? (\n <>\n {displayTooltipData(\n statusData?.failed_reason,\n `${statusData?.creation_status}${rowIndex}`,\n InfoRedIcon,\n )}\n \n ) : (\n ''\n )}\n
    \n \n );\n };\n\n // function which return date in MST time format to display in table\n const getMSTTime = (value) => {\n const dateSplitterarray = value?.split('T');\n const timeSplitterarray = dateSplitterarray[1]?.split('-');\n let timeValue = timeSplitterarray?.[0];\n if (timeSplitterarray?.[0]?.includes('.')) {\n timeValue = timeSplitterarray?.[0]?.split('.')?.[0];\n }\n return `${dateSplitterarray?.[0]} T ${timeValue}`;\n };\n\n // created at column value display using this function\n const displayCreatedAtData = (item, header) => {\n return (\n <>\n
    {getMSTTime(item?.[header?.key])}
    \n {header?.key === 'created_at' ? (\n
    \n \n created by {item?.user_details?.[0]?.first_name}{' '}\n
    \n ) : (\n ''\n )}\n \n );\n };\n\n // function used to display values in table\n const displayValue = (item, header) => {\n switch (header?.key) {\n case 'creation_status':\n return displayStatus(item);\n case 'created_at':\n return displayCreatedAtData(item, header);\n\n default:\n return item[header?.key];\n }\n };\n\n // if value entered for entity id then disable advertiser_id fields and vice versa\n const checkAdvertiserFieldsToDisable = (instanceData, header) => {\n if (['add-advertiser', 'delete-advertiser'].includes(amcInstances?.key)) {\n if (instanceData?.entity_id && header?.key === 'advertiser_id') {\n return true;\n }\n if (instanceData?.advertiser_id && header?.key === 'entity_id') {\n return true;\n }\n }\n return false;\n };\n\n // function to show input boxes when new row added in table\n const displayInputField = (item, header, tableDataIndex) => {\n switch (header?.key) {\n case 'creation_status':\n return (\n <>\n
    -
    \n
    \n {\n deleteInstance(tableDataIndex, amcInstances);\n }}\n icon=\"fa-regular fa-trash\"\n style={{\n color: '#d63649',\n fontSize: '14px',\n }}\n className=\"cursor pl-1\"\n />\n
    \n
    \n \n );\n case 'created_at':\n return
    -
    ;\n\n default:\n return (\n \n \n \n );\n }\n };\n\n // function to show table\n const displayTable = (tableHeaders) => {\n return (\n \n \n \n {tableHeaders?.map((item) => {\n return (\n \n {item?.label}\n {item?.info\n ? displayTooltipData(\n item?.info,\n `${item?.label}`,\n InfoIcons,\n )\n : ''}\n \n );\n })}\n \n \n \n {tableData?.map((item, tableDataIndex) => {\n const rowKey = item?.type\n ? `${item.type}-${(tableDataIndex + 1)?.toString()}`\n : `${item?.id || ''}${item?.instance_id || ''}`;\n return (\n \n {tableHeaders?.map((header) => {\n return (\n \n {item?.id\n ? displayValue(item, header)\n : displayInputField(item, header, tableDataIndex)}\n \n );\n })}\n \n );\n })}\n \n \n );\n };\n\n // display Add New button\n const displayAddNewRowBtn = (requestType) => {\n return (\n
    \n {\n addNewRow(requestType);\n }}\n style={{ textTransform: 'uppercase', minHeight: '0' }}\n >\n {' '}\n Add Row\n \n
    \n );\n };\n\n const saveData = () => {\n const data = amcInstances?.tableData\n ?.filter((item) => !item.id)\n ?.map((filteredData) => {\n filteredData.request_type = amcInstances?.requestType;\n delete filteredData.created_at;\n delete filteredData.status;\n delete filteredData.type;\n\n return filteredData;\n });\n\n setLoader({ type: 'button', show: true });\n setIsEditModeOn(false);\n\n let api = saveAMCInstance;\n\n if (['add-advertiser', 'delete-advertiser'].includes(amcInstances?.key)) {\n api = saveAMCAdvertiser;\n }\n api(data).then((res) => {\n if (res?.status === 201) {\n getAMCInstanceData(amcInstances?.requestType, pageNumber);\n toast.success('Data Added successfully!');\n }\n if (res?.status === 400) {\n toast.error(res?.data?.[0]?.amc_instance?.[0]);\n }\n setLoader({ type: 'button', show: false });\n });\n };\n\n const displayConfirmBtn = (requestType) => {\n return (\n
    \n {\n if (checkAllMandatoryFieldsFilled(amcInstances))\n saveData(requestType);\n }}\n >\n {loader?.show && loader?.type === 'button' ? (\n \n ) : (\n 'Confirm'\n )}\n \n {checkAllMandatoryFieldsFilled(amcInstances) ? null : (\n \n )}\n
    \n );\n };\n\n // Main return\n return (\n <>\n {tableData?.length ? (\n isDesktop ? (\n displayTable(tableHeader)\n ) : (\n \n )\n ) : (\n No Data Available\n )}\n\n setPageNumber(currentPage)}\n />\n {userInfo?.amc_instance ? (\n 10 ? 'mt-2' : 'mt-4'\n }`}\n >\n {displayAddNewRowBtn(amcInstances?.key)}\n {amcInstances?.tableData?.filter((item) => !item.id)?.length\n ? displayConfirmBtn(amcInstances?.key)\n : null}\n
    \n ) : null}\n \n );\n}\n\nexport default memo(AMCSelfServiceTable);\n\nAMCSelfServiceTable.defaultProps = {\n amcInstances: {},\n addNewRow: () => {},\n handleInputChange: () => {},\n deleteInstance: () => {},\n getAMCInstanceData: () => {},\n amcInstanceCount: {},\n pageNumber: 1,\n setPageNumber: () => {},\n loader: {},\n setLoader: () => {},\n checkAllMandatoryFieldsFilled: () => {},\n setIsEditModeOn: () => {},\n};\n\nAMCSelfServiceTable.propTypes = {\n amcInstances: shape({}),\n addNewRow: func,\n handleInputChange: func,\n deleteInstance: func,\n getAMCInstanceData: func,\n amcInstanceCount: shape({}),\n pageNumber: number,\n setPageNumber: func,\n loader: shape({}),\n setLoader: func,\n checkAllMandatoryFieldsFilled: func,\n setIsEditModeOn: func,\n};\n","import styled from 'styled-components';\nimport Theme from '../../../../../theme/Theme';\n\nconst AMCSelfService = styled.div`\n .bg-orange-light {\n color: ${Theme?.orange};\n font-size: ${Theme?.extraNormal};\n text-transform: uppercase;\n font-family: ${Theme?.titleFontFamily} !important;\n background: ${Theme.lightOrange};\n padding: 10px;\n margin-bottom: 10px;\n\n /* td {\n color: ${Theme.orange};\n background: ${Theme.lightOrange};\n text-transform: uppercase;\n font-size: ${Theme.extraNormal};\n font-family: ${Theme.titleFontFamily} !important;\n\n &.sticky-collapse {\n position: sticky;\n left: 0;\n z-index: 9;\n }\n } */\n }\n .add-new-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nexport default AMCSelfService;\n","const creationOfInstanceTableHeaders = [\n {\n label: 'Instance Name',\n type: 'text',\n key: 'instance_name',\n isMandatory: true,\n request_type: 'created',\n },\n {\n label: 'Advertiser Name',\n type: 'text',\n key: 'customer_canonical_name',\n isMandatory: true,\n },\n {\n label: 'Marketplace ID',\n type: 'text',\n key: 'marketplace_id',\n isMandatory: true,\n request_type: 'created',\n },\n {\n label: 'Advertiser ID',\n type: 'text',\n key: 'advertiser_id',\n isMandatory: true,\n request_type: 'created',\n },\n {\n label: 'Created Time',\n type: 'date',\n key: 'created_at',\n request_type: 'created',\n info: 'Date and Time will be converted in MST timezone.',\n },\n {\n label: 'Status',\n type: 'status',\n key: 'creation_status',\n request_type: 'created',\n },\n];\n\nconst updatingOfInstance = [\n { label: 'AWS ID', type: 'text', key: 'aws_id', isMandatory: true },\n { label: 'Instance ID', type: 'text', key: 'instance_id', isMandatory: true },\n {\n label: 'Marketplace ID',\n type: 'text',\n key: 'marketplace_id',\n isMandatory: true,\n },\n {\n label: 'Instance Name',\n type: 'text',\n key: 'instance_name',\n isMandatory: true,\n },\n {\n label: 'Advertiser Name',\n type: 'text',\n key: 'customer_canonical_name',\n isMandatory: true,\n },\n {\n label: 'Created Time',\n type: 'date',\n key: 'created_at',\n info: 'Date and Time will be converted in MST timezone.',\n },\n { label: 'Status', type: 'status', key: 'creation_status' },\n];\n\nconst deletionOfInstance = [\n { label: 'Instance ID', type: 'text', key: 'instance_id', isMandatory: true },\n {\n label: 'Marketplace ID',\n type: 'text',\n key: 'marketplace_id',\n isMandatory: true,\n },\n {\n label: 'Advertiser ID',\n type: 'text',\n key: 'advertiser_id',\n isMandatory: true,\n },\n {\n label: 'created Time',\n type: 'date',\n key: 'created_at',\n info: 'Date and Time will be converted in MST timezone.',\n },\n { label: 'Status', type: 'status', key: 'creation_status' },\n];\n\nconst additionOfAdvertiser = [\n {\n label: 'Instance Name',\n type: 'text',\n key: 'instance_name',\n isMandatory: true,\n },\n {\n label: 'Instance ID',\n type: 'text',\n key: 'instance_id',\n isMandatory: true,\n },\n { label: 'Entity ID', type: 'text', key: 'entity_id', isMandatory: true },\n {\n label: 'Advertiser ID',\n type: 'text',\n key: 'advertiser_id',\n isMandatory: true,\n },\n { label: 'Type', type: 'text', key: 'advertiser_type', isMandatory: true },\n {\n label: 'Marketplace ID',\n type: 'text',\n key: 'marketplace_id',\n isMandatory: true,\n },\n {\n label: 'Created Time',\n type: 'date',\n key: 'created_at',\n info: 'Date and Time will be converted in MST timezone.',\n },\n { label: 'Status', type: 'status', key: 'creation_status' },\n];\n\nconst deletionOfAdvertiser = [\n {\n label: 'Instance Name',\n type: 'text',\n key: 'instance_name',\n isMandatory: true,\n },\n {\n label: 'Instance ID',\n type: 'text',\n key: 'instance_id',\n isMandatory: true,\n },\n { label: 'Entity ID', type: 'text', key: 'entity_id', isMandatory: true },\n {\n label: 'Advertiser ID',\n type: 'text',\n key: 'advertiser_id',\n isMandatory: true,\n },\n { label: 'Type', type: 'text', key: 'advertiser_type', isMandatory: true },\n {\n label: 'Marketplace ID',\n type: 'text',\n key: 'marketplace_id',\n isMandatory: true,\n },\n {\n label: 'Created time',\n type: 'date',\n key: 'created_at',\n info: 'Date and Time will be converted in MST timezone.',\n },\n { label: 'Status', type: 'status', key: 'creation_status' },\n];\n\nconst requestTypeData = [\n {\n label: 'Creation of Instance',\n key: 'create-instance',\n tableHeader: creationOfInstanceTableHeaders,\n tableData: [],\n requestType: 'created',\n },\n {\n label: 'Updating of Instance',\n key: 'update-instance',\n tableHeader: updatingOfInstance,\n tableData: [],\n requestType: 'updated',\n },\n {\n label: 'Deletion of Instance',\n key: 'delete-instance',\n tableHeader: deletionOfInstance,\n tableData: [],\n requestType: 'deleted',\n },\n {\n label: 'Adding of Advertiser',\n key: 'add-advertiser',\n tableHeader: additionOfAdvertiser,\n tableData: [],\n requestType: 'added',\n },\n {\n label: 'Deletion of Advertiser',\n key: 'delete-advertiser',\n tableHeader: deletionOfAdvertiser,\n tableData: [],\n requestType: 'deleted',\n },\n];\n\nconst defaultCreateInstanceData = {\n instance_name: '',\n customer_canonical_name: '',\n marketplace_id: '',\n advertiser_id: '',\n created_at: '-',\n status: '-',\n type: 'create-new',\n};\n\nconst defaultUpdateInstanceData = {\n aws_id: '',\n instance_id: '',\n instance_name: '',\n marketplace_id: '',\n customer_canonical_name: '',\n created_at: '-',\n status: '-',\n type: 'update-new',\n};\nconst defaultDeleteInstanceData = {\n instance_id: '',\n marketplace_id: '',\n advertiser_id: '',\n created_at: '-',\n status: '-',\n type: 'delete-new',\n};\nconst defaultCreateAdvertiserData = {\n instance_name: '',\n instance_id: '',\n entity_id: '',\n advertiser_id: '',\n advertiser_type: '',\n marketplace_id: '',\n created_at: '',\n status: '',\n type: 'ad-create-new',\n};\nconst defaultDeleteAdvertiserData = {\n instance_name: '',\n instance_id: '',\n entity_id: '',\n advertiser_id: '',\n advertiser_type: '',\n marketplace_id: '',\n created_at: '',\n status: '',\n type: 'ad-delete-new',\n};\nexport {\n defaultCreateInstanceData,\n defaultUpdateInstanceData,\n defaultDeleteInstanceData,\n defaultCreateAdvertiserData,\n defaultDeleteAdvertiserData,\n requestTypeData,\n};\n","// React import\nimport React, { useState, useEffect, useCallback } from 'react';\n\n// Third party imports\nimport queryString from 'query-string';\nimport { Collapse } from 'react-collapse';\nimport { useHistory } from 'react-router-dom';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// Local imports\nimport AMCSelfServiceTable from './AMCSelfServiceTable';\nimport AMCSelfService from './AMCSelfServiceInstanceStyle';\nimport { ViewData, PageLoader } from '../../../../../common';\nimport { getAMCInstances, getAMCAdvertisers } from '../../../../../api';\nimport {\n requestTypeData,\n defaultCreateInstanceData,\n defaultUpdateInstanceData,\n defaultDeleteInstanceData,\n defaultCreateAdvertiserData,\n defaultDeleteAdvertiserData,\n} from './AMCSelfServiceConstants';\n\nfunction AMCSelfServiceInstanceContainer() {\n const [amcInstanceData, setAmcInstanceData] = useState(requestTypeData);\n const [isEditModeOn, setIsEditModeOn] = useState(false);\n const [loader, setLoader] = useState({ type: 'table', show: false });\n const [amcInstanceCount, setAmcInstanceCount] = useState({\n type: '',\n count: 0,\n });\n const [pageNumber, setPageNumber] = useState(1);\n const [collapseData, setCollapseData] = useState({\n amcInstance: requestTypeData[0],\n isOpen: 'false',\n });\n const history = useHistory();\n\n const params = queryString.parse(history.location.search);\n\n // find out specific data as per request type param from state variable.\n const getSpecificAMCInstanceByRequestType = (requestKey) => {\n return amcInstanceData.find((item) => item?.key === requestKey);\n };\n\n // function to update table data in the state variable amcInstancaData\n // update table data for specific request type provided in params\n const updateTableData = useCallback((requestKey, tableData) => {\n const data = requestTypeData?.map((item) => {\n if (item?.key === requestKey) {\n item.tableData = tableData;\n return item;\n }\n return item;\n });\n setAmcInstanceData(data);\n }, []);\n\n const getAMCInstanceData = useCallback(\n (requestType) => {\n setLoader({ type: 'table', show: true });\n let api = getAMCInstances;\n\n if (\n ['add-advertiser', 'delete-advertiser'].includes(\n collapseData?.amcInstance?.key,\n )\n ) {\n api = getAMCAdvertisers;\n }\n api(requestType, pageNumber).then((res) => {\n if (res?.status === 200) {\n const tableData = [...res?.data?.results];\n setAmcInstanceCount({\n type: collapseData?.amcInstance?.key,\n count: res?.data?.count,\n });\n updateTableData(collapseData?.amcInstance?.key, tableData);\n }\n setLoader({ type: 'table', show: false });\n });\n },\n [collapseData, updateTableData, pageNumber],\n );\n\n const checkAllMandatoryFieldsFilled = (amcInstances) => {\n const newlyAddedData = amcInstances.tableData?.filter((item) => !item.id);\n const result = [];\n if (newlyAddedData?.length) {\n newlyAddedData.forEach((instance) => {\n if (Object.keys(instance)?.length) {\n const copyObjOfNew = { ...instance };\n delete copyObjOfNew.status;\n delete copyObjOfNew.created_at;\n delete copyObjOfNew?.type;\n // this is extra condition of addition and deletion of advertiser tables\n if (\n ['add-advertiser', 'delete-advertiser'].includes(amcInstances?.key)\n ) {\n if (copyObjOfNew?.entity_id) {\n delete copyObjOfNew.advertiser_id;\n }\n if (copyObjOfNew?.advertiser_id) {\n delete copyObjOfNew.entity_id;\n }\n }\n result.push(Object.values(copyObjOfNew).every((value) => value));\n }\n });\n return Object.values(result).every((value) => value);\n }\n return false;\n };\n\n useEffect(() => {\n getAMCInstanceData(collapseData?.amcInstance?.requestType, pageNumber);\n }, [collapseData, getAMCInstanceData, pageNumber]);\n\n // this use effect will run after every 5 seconds to get new updated amc audience data\n useEffect(() => {\n let intervalId = '';\n let restrictMultipleApiCalls = null;\n\n if (!restrictMultipleApiCalls) {\n intervalId = setInterval(async () => {\n if (\n params?.subNav === 'amc-instance' &&\n !restrictMultipleApiCalls &&\n !isEditModeOn\n ) {\n getAMCInstanceData(\n collapseData?.amcInstance?.requestType,\n pageNumber,\n );\n\n restrictMultipleApiCalls = '1234';\n }\n }, 300000);\n }\n\n return () => {\n clearInterval(intervalId);\n };\n }, [collapseData, getAMCInstanceData, pageNumber, params, isEditModeOn]);\n\n // get default dictionary when we click on add new button to push in table data\n // to show empty row at the end of table\n const getDefaultData = (requestType) => {\n const defaultData = {\n 'create-instance': defaultCreateInstanceData,\n 'update-instance': defaultUpdateInstanceData,\n 'delete-instance': defaultDeleteInstanceData,\n 'add-advertiser': defaultCreateAdvertiserData,\n 'delete-advertiser': defaultDeleteAdvertiserData,\n };\n return defaultData?.[requestType];\n };\n\n // Add New row functionality\n const addNewRow = (requestKey) => {\n setIsEditModeOn(true);\n const defaultData = getDefaultData(requestKey);\n const requestTypeInfo = getSpecificAMCInstanceByRequestType(requestKey);\n const tableData = [...requestTypeInfo?.tableData];\n tableData.push({\n ...defaultData,\n });\n\n updateTableData(requestKey, tableData);\n };\n\n // Delete any row from table\n const deleteInstance = (tableDataIndex, amcInstance) => {\n setIsEditModeOn(false);\n\n const data = [];\n const { tableData } = amcInstance;\n tableData.forEach((instanceData, index) => {\n if (index !== tableDataIndex) {\n data.push(instanceData);\n }\n });\n updateTableData(amcInstance?.key, data);\n };\n\n // handle input box changes\n const handleInputChange = (event, amcInstance, tableDataIndex) => {\n const data = [];\n const { tableData } = amcInstance;\n\n tableData.forEach((instanceData, index) => {\n if (index === tableDataIndex) {\n const instance = {\n ...instanceData,\n [event?.target?.name]: event?.target?.value,\n };\n if (\n ['add-advertiser', 'delete-advertiser'].includes(amcInstance?.key)\n ) {\n if (instance?.entity_id) {\n instance.advertiser_type = 'sponsored_ads';\n }\n if (instance?.advertiser_id) {\n instance.advertiser_type = 'display';\n }\n if (!instance?.entity_id && !instance?.advertiser_id) {\n instance.advertiser_type = '';\n }\n }\n\n data.push(instance);\n } else {\n data.push(instanceData);\n }\n });\n updateTableData(amcInstance?.key, data);\n };\n\n // Main return\n return (\n
    \n \n
    \n
    \n
    \n Self-Management Instance\n
    \n
    \n
    \n {amcInstanceData?.map((amcInstance) => {\n return (\n \n {\n setCollapseData({\n amcInstance,\n isOpen: true,\n });\n setPageNumber(1);\n }}\n >\n \n {' '}\n {amcInstance?.label}{' '}\n {amcInstanceCount?.type === amcInstance?.key &&\n amcInstanceCount?.count\n ? `| ${amcInstanceCount?.count}`\n : null}\n
    \n \n {loader?.show && loader?.type === 'table' ? (\n \n ) : (\n \n )}\n \n \n );\n })}\n \n
    \n );\n}\n\nexport default AMCSelfServiceInstanceContainer;\n","import React, { useState } from 'react';\n\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\nimport { arrayOf, func, shape, string } from 'prop-types';\n\nimport AwsQuicksightContainer from '../AWSQuicksight/AwsQuicksightContainer';\nimport AMCAudienceSummaryContainer from './AMCAudienceSummary/AMCAudienceSummaryContainer';\nimport AMCSelfServiceInstanceContainer from './AMCSelfServiceInstance/AMCSelfServiceInstanceContainer';\nimport { AMCDashboardNav } from '../../../../constants';\nimport { AMCStyle } from '../../../Customer/CustomerDetailView/CompanyPerformance/AmcInsights/AmcInsightStyle';\nimport {\n WhiteCard,\n SingleSelectDropdown,\n DropdownIndicator,\n ToggleSwitch,\n} from '../../../../common';\n\nfunction AMCDashboardRightPanel({\n selectedBp,\n selectedDSPManager,\n selectedMarketplace,\n selectedSecondLevelNav,\n setSelectedSecondLevelNav,\n}) {\n const history = useHistory();\n\n const dashboardOptions = {\n sample: [\n {\n label: 'Standard Dashboard-Sample',\n value: 'Standard Dashboard-Sample',\n },\n {\n label: 'Advanced/Customized Dashboard-Sample',\n value: 'Customized Dashboard-Sample',\n },\n ],\n };\n\n const [selectedDashboardFilterOption, setSelectedDashboardFilterOption] =\n useState(dashboardOptions[selectedSecondLevelNav]?.[0]);\n\n const params = queryString.parse(history.location.search);\n\n const [showAMCAudienceLookalike, setShowAMCAudienceLookalike] = useState(\n params?.amcAudience === 'lookalike' || false,\n );\n\n // get dropdwon indicator for dropdown filter\n const getSelectDropdownIndicator = () => {\n return {\n DropdownIndicator,\n };\n };\n\n const handleDashboardFilter = (event) => {\n setSelectedDashboardFilterOption(event);\n };\n\n const dashboardDropdown = (key) => {\n return (\n handleDashboardFilter(event)}\n dropdownComponents={getSelectDropdownIndicator}\n isSearchable={false}\n />\n );\n };\n\n const displayAmcDashboard = () => {\n if (selectedSecondLevelNav === 'sample') {\n if (\n selectedDashboardFilterOption?.value === 'Standard Dashboard-Sample'\n ) {\n return (\n \n );\n }\n if (\n selectedDashboardFilterOption?.value === 'Customized Dashboard-Sample'\n ) {\n return (\n \n );\n }\n }\n return null;\n };\n const setParams = (param, showLookalike) => {\n const paramsData = {};\n\n if (showLookalike) {\n paramsData.amcAudience = param;\n } else {\n delete paramsData?.amcAudience;\n delete params?.amcAudience;\n }\n\n const stringified =\n queryString &&\n queryString.stringify({\n ...params,\n ...paramsData,\n });\n\n history.push({\n pathname: `${history.location.pathname}`,\n search: `${stringified}`,\n state: `${history.location.state}`,\n });\n };\n\n // https://bbe.atlassian.net/browse/PDV-9060 - AMC Audience Lookalike improvements\n // display AMC Audience Lookalike toggle button\n const displayAMCAudienceLookalikeToggle = () => {\n return (\n \n \n AMC Audience Lookalike\n {\n setShowAMCAudienceLookalike(!showAMCAudienceLookalike);\n }}\n onChange={(event) => {\n setParams('lookalike', event?.target?.checked);\n }}\n checked={showAMCAudienceLookalike}\n />\n \n \n \n );\n };\n\n return (\n \n \n
    \n
    \n \n {AMCDashboardNav?.map((item) => {\n return (\n {\n setSelectedSecondLevelNav(item?.value);\n setSelectedDashboardFilterOption(\n dashboardOptions[item?.value]?.[0],\n );\n history.push(\n `${history?.location?.pathname}?subNav=${item?.value}`,\n );\n }}\n className={\n selectedSecondLevelNav === item?.value ? 'selected' : ''\n }\n >\n {item?.label}\n \n );\n })}\n \n
    \n
    \n
    \n {selectedSecondLevelNav === 'sample'\n ? dashboardDropdown(selectedSecondLevelNav)\n : null}{' '}\n {selectedSecondLevelNav === 'amc-audience-summary'\n ? displayAMCAudienceLookalikeToggle()\n : null}\n
    \n
    \n
    \n
    \n {selectedSecondLevelNav === 'amc-summary' ? (\n \n ) : (\n ''\n )}\n {selectedSecondLevelNav === 'spreetail-amc-summary-tab' ? (\n \n ) : (\n ''\n )}\n {selectedSecondLevelNav === 'amc-audience-summary' ? (\n \n ) : (\n ''\n )}\n {selectedSecondLevelNav === 'sample' ? displayAmcDashboard() : ''}\n {selectedSecondLevelNav === 'amc-instance' ? (\n \n ) : (\n ''\n )}\n
    \n );\n}\nexport default AMCDashboardRightPanel;\n\nAMCDashboardRightPanel.defaultProps = {\n selectedSecondLevelNav: '',\n selectedBp: [],\n selectedDSPManager: [],\n selectedMarketplace: {},\n setSelectedSecondLevelNav: () => {},\n};\n\nAMCDashboardRightPanel.propTypes = {\n selectedSecondLevelNav: string,\n selectedBp: arrayOf(shape()),\n selectedDSPManager: arrayOf(shape()),\n selectedMarketplace: shape({}),\n setSelectedSecondLevelNav: func,\n};\n","import React, { useState } from 'react';\n\nimport queryString from 'query-string';\nimport { func } from 'prop-types';\nimport { useHistory } from 'react-router-dom';\n\nimport AMCDashboardLeftSidePanel from './AMCDashboardLeftSidePanel';\n// import AMCDashboardRightSidePanel from './AMCDashboardRightSidePanel';\nimport AMCDashboardRightPanel from './AMCDashboardRightPanel';\n\nconst AMCAggregatedDashboardContainer = ({\n bindUserListData,\n handleMultiSelectDropdownFilterEvents,\n}) => {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n\n const [selectedSecondLevelNav, setSelectedSecondLevelNav] = useState(\n params?.subNav || 'amc-summary',\n );\n\n const defaultMarketPlace = {\n value: 'all',\n label: 'All Marketplaces',\n currency: 'USD',\n };\n const [selectedMarketplace, setSelectedMarketplace] =\n useState(defaultMarketPlace);\n const [selectedDSPManager, setSelectedDSPManager] = useState([]);\n const [selectedBp, setSelectedBp] = useState([]);\n\n return (\n
    \n {selectedSecondLevelNav === 'amc-summary' ||\n selectedSecondLevelNav === 'spreetail-amc-summary-tab' ||\n selectedSecondLevelNav === 'amc-instance' ||\n selectedSecondLevelNav === 'sample' ? (\n ''\n ) : (\n
    \n \n
    \n )}\n \n \n
    \n
    \n );\n};\n\nexport default AMCAggregatedDashboardContainer;\n\nAMCAggregatedDashboardContainer.defaultProps = {\n bindUserListData: () => {},\n handleMultiSelectDropdownFilterEvents: () => {},\n};\n\nAMCAggregatedDashboardContainer.propTypes = {\n bindUserListData: func,\n handleMultiSelectDropdownFilterEvents: func,\n};\n","// This is the filter file of the pending Approval dashboard.\n// This file contain the search field, sort-by option and refresh button.\n\n// react imports\nimport React from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport { components } from 'react-select';\nimport { bool, func, shape, string } from 'prop-types';\nimport { DebounceInput } from 'react-debounce-input';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// local file imports\nimport Theme from '../../../../theme/Theme';\nimport { DropDown } from '../../../Customer/CustomerDetailView/CompanyPerformance/DropDown';\nimport { pendingApprovalOrderOptions } from '../../../../constants';\nimport {\n WhiteCard,\n DropDownIndicator,\n InputSearchWithRadius,\n DropdownOptions,\n} from '../../../../common';\n\nconst PendingApprovalsDashboardFilters = ({\n handleSortByFilter,\n selectedSortByOrder,\n apiCallLoader,\n searchQuery,\n setSearchQuery,\n handleSearch,\n handleRefreshClick,\n}) => {\n const { SingleValue } = components;\n\n // react select - single value\n const singleFilterOption = (props) => (\n \n \n {`${props?.data?.label}`}\n \n
    \n {props?.data?.sub}\n
    \n
    \n );\n\n const getSelectComponents = () => {\n return {\n Option: DropdownOptions,\n SingleValue: singleFilterOption,\n DropDownIndicator,\n };\n };\n\n // render the search bar functionality\n const renderSearchInputField = () => {\n return (\n
    \n
    \n \n {\n handleSearch(event);\n }}\n value={searchQuery || ''}\n />\n \n {searchQuery !== '' ? (\n setSearchQuery('')}\n />\n ) : null}\n \n
    \n
    \n );\n };\n\n // render the sort by dropdown\n const renderDropDown = () => {\n return DropDown(\n 'BT-PendingApprovalDashboardFilter',\n '',\n pendingApprovalOrderOptions,\n pendingApprovalOrderOptions[0].label,\n getSelectComponents,\n handleSortByFilter,\n apiCallLoader, // loader,\n null,\n selectedSortByOrder,\n false,\n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n <>\n \n \n
    \n {renderSearchInputField()}\n
    \n
      \n Sort by\n
    • {renderDropDown()}
    • \n
    • \n {\n handleRefreshClick();\n }}\n >\n \n \n
    \n \n \n \n
    \n \n
    \n
    \n \n );\n};\n\nexport default PendingApprovalsDashboardFilters;\n\nPendingApprovalsDashboardFilters.defaultProps = {\n apiCallLoader: false,\n searchQuery: '',\n data: {},\n selectedSortByOrder: {},\n handleSearch: () => {},\n setSearchQuery: () => {},\n handleSortByFilter: () => {},\n handleRefreshClick: () => {},\n};\n\nPendingApprovalsDashboardFilters.propTypes = {\n apiCallLoader: bool,\n searchQuery: string,\n selectedSortByOrder: shape({}),\n data: shape({ sub: string, label: string }),\n handleSearch: func,\n setSearchQuery: func,\n handleSortByFilter: func,\n handleRefreshClick: func,\n};\n\nconst PendingApprovalFilters = styled.div`\n .dashboard-filter-list {\n list-style-type: none;\n padding: 0;\n margin: 0;\n text-align: end;\n\n li {\n display: inline-block;\n margin-right: 25px;\n\n &.w-10 {\n max-width: 200px;\n width: 100%;\n @media only screen and (max-width: 768px) {\n max-width: 100%;\n }\n }\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n @media only screen and (max-width: 767px) {\n .dashboard-filter-list {\n display: flex;\n li {\n &.sorted-by {\n width: 99% !important;\n .jIDBKP {\n width: 99% !important;\n }\n }\n }\n }\n }\n`;\n\nconst RefreshButton = styled.div`\n .refresh-icon {\n border-radius: 6px;\n width: 40px;\n text-align: center;\n height: 40px;\n padding: 9px 7px;\n border: 1px solid #bfc5d2;\n color: ${Theme.black};\n border: 1px solid ${Theme.gray25};\n .refresh-arrow-icon {\n vertical-align: text-top;\n margin-right: 4px;\n }\n }\n`;\n","export const PendingApprovalsTableHeader = [\n {\n key: 'bp_name',\n label: 'BP NAME',\n width: '15%',\n className: '',\n },\n\n {\n key: 'contract_type',\n label: 'Contract Type',\n width: '15%',\n className: '',\n },\n {\n key: 'requested_by',\n label: 'Requested By',\n width: '15%',\n className: '',\n },\n {\n key: 'request_type',\n label: 'Request Type',\n width: '15%',\n className: '',\n },\n\n {\n key: 'approval_needed_from',\n label: `Approval Needed From`,\n width: '15%',\n className: '',\n },\n\n {\n key: 'request_status',\n label: 'Request Status',\n width: '15%',\n className: '',\n },\n {\n key: 'action',\n label: 'Action',\n width: '10%',\n className: 'text-center',\n },\n];\n\nexport const PAStatusColorSet = {\n 'Approval Request Sent': { labelColor: '#64c354', background: '#e2ffdd' },\n 'Cancellation Approval Request Sent': {\n labelColor: '#f7c137',\n background: '#fdf3d7',\n },\n 'Cancellation Approval Reminder Sent': {\n labelColor: '#d60000',\n background: '#f7cccc',\n },\n 'Addendum Approval Request Sent': {\n labelColor: '#ff5933',\n background: '#ffded6',\n },\n};\n","// This is the desktop and mobile view file of the pending Approval dashboard.\n\n// react imports\nimport React from 'react';\n\n// third party imports\nimport dayjs from 'dayjs';\nimport ReactTooltip from 'react-tooltip';\nimport { useHistory } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { arrayOf, bool, func, shape } from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n// local file imports\nimport { Icon } from '../../../../theme/Global';\nimport { DesktopTable, Status, WhiteCard } from '../../../../common';\nimport { agreementTypes, PATH_AGREEMENT } from '../../../../constants';\nimport {\n PAStatusColorSet,\n PendingApprovalsTableHeader,\n} from '../../../../constants/PendingApprovalsConstant';\n\nconst PendingApprovalsDashboardView = ({\n apiCallLoader,\n pendingApprovalListData,\n setIdToArchiveRequest,\n setShowCancellationSummaryModal,\n setShowArchiveConfirmationModal,\n}) => {\n const history = useHistory();\n const isDesktop = useMediaQuery({ minWidth: 768 });\n const userInfo = useSelector((state) => state?.userState?.userInfo);\n const isShowActionCol = userInfo?.bgs_director;\n const isShowSummaryIcon = userInfo?.is_summary_icon_visible;\n\n // redirect to agreement view\n const redirectToAgreementView = (requestDetails) => {\n history.push({\n pathname: `${PATH_AGREEMENT.replace(\n ':id',\n requestDetails?.company_id,\n ).replace(':contract_id', requestDetails?.id)}`,\n state: `${history.location.pathname}`,\n });\n };\n\n // display aaproval needed from value\n const displayApprovalNeededFromValue = (approvalNeededFrom) => {\n return approvalNeededFrom?.map((item, index) => {\n if (approvalNeededFrom.length - 1 === index) {\n return item;\n }\n return `${item} | `;\n });\n };\n // display request date\n const displayRequestDate = (requestDate) => {\n return (\n <>\n \n {dayjs(requestDate).format('DD MMM YYYY')}\n \n );\n };\n\n // display request status\n const displayRequestStatus = (requestStatus) => {\n return (\n \n );\n };\n\n // display request type with summary icon\n const displayRequestTypeSummaryIcon = (requestDetails) => {\n return (\n <>\n {requestDetails?.request_type}\n {isShowSummaryIcon &&\n requestDetails?.request_type === 'Contract cancellation' ? (\n {\n e.stopPropagation();\n setShowCancellationSummaryModal({\n modal: true,\n id: requestDetails?.suspend_contract,\n type: requestDetails?.contract_type,\n endDate: requestDetails?.contract_end_date,\n contractStatus: requestDetails?.contract_status,\n });\n }}\n />\n ) : null}\n \n );\n };\n\n // display tooltip icon for archive action\n const displayTooltipIconForArchiveAction = () => {\n return (\n \n \n \n \n );\n };\n\n // display archive action\n const displayArchiveAction = (requestDetails) => {\n const canRequestArchive = [\n 'Approval Request Sent',\n 'Addendum Approval Request Sent',\n ].includes(requestDetails?.request_status);\n return (\n {\n e.stopPropagation();\n // https://bbe.atlassian.net/browse/PDV-9379\n if (canRequestArchive) {\n setShowArchiveConfirmationModal(true);\n setIdToArchiveRequest(requestDetails?.object_id);\n }\n }}\n >\n {canRequestArchive ? 'Archive' : 'N/A'}\n \n );\n };\n\n // displat pending approval table headers\n const renderTableHeader = () => {\n return (\n \n \n {PendingApprovalsTableHeader.map((item) => {\n if (item.key === 'action' && !isShowActionCol) {\n return null;\n }\n return (\n \n {item.label}\n {item.key === 'action'\n ? displayTooltipIconForArchiveAction()\n : null}\n \n );\n })}\n \n \n );\n };\n\n // displat pending approval table body\n const renderApprovalListTable = (requestDetails) => {\n const contractType = requestDetails?.contract_type?.toLowerCase();\n\n const channelType =\n contractType === 'recurring' ||\n contractType === 'recurring (90 day notice)'\n ? requestDetails?.channel === 'walmart'\n ? 'Walmart'\n : 'Amazon'\n : '';\n return (\n {\n e.stopPropagation();\n redirectToAgreementView(requestDetails);\n }}\n >\n \n {requestDetails?.customer_name}\n
    \n {requestDetails?.bgs}\n
    \n \n \n {channelType} {agreementTypes?.[contractType]}\n
    \n {contractType?.includes('90') ? 'Recurring 90 Days' : ''}\n
    \n \n \n {requestDetails?.requested_by}\n
    \n {displayRequestDate(requestDetails?.requested_at)}\n
    \n \n {displayRequestTypeSummaryIcon(requestDetails)}\n \n {displayApprovalNeededFromValue(requestDetails?.approval_needed_from)}\n \n {displayRequestStatus(requestDetails?.request_status)}\n {isShowActionCol ? (\n \n {displayArchiveAction(requestDetails)}\n \n ) : null}\n \n );\n };\n\n // display pending approval table\n const displayPendingApprovalTable = () => {\n return (\n
    \n {renderTableHeader()}\n \n {pendingApprovalListData?.length\n ? pendingApprovalListData.map((item) => {\n return renderApprovalListTable(item);\n })\n : null}\n \n
    \n );\n };\n\n // display pending approval mobile view\n const displayPendingApprovalMobileView = () => {\n return pendingApprovalListData?.map((requestDetails) => {\n const contractType = requestDetails?.contract_type?.toLowerCase();\n return (\n {\n e.stopPropagation();\n redirectToAgreementView(requestDetails);\n }}\n >\n
    \n
    \n
    BP NAME
    \n
    \n {requestDetails?.customer_name}\n
    \n
    \n {requestDetails?.bgs}\n
    \n
    \n
    \n
    CONTRACT TYPE
    \n
    \n {agreementTypes?.[contractType]}\n
    \n
    \n {contractType?.includes('90') ? 'Recurring 90 Days' : ''}\n
    \n
    \n
    \n
    REQUESTED BY
    \n
    \n {requestDetails?.requested_by}\n
    \n
    \n {displayRequestDate(requestDetails?.requested_at)}\n
    \n
    \n
    \n
    REQUEST TYPE
    \n
    \n {displayRequestTypeSummaryIcon(requestDetails)}\n
    \n
    \n
    \n
    APPROVAL NEEDED FROM
    \n
    \n {displayApprovalNeededFromValue(\n requestDetails?.approval_needed_from,\n )}\n
    \n
    \n {isShowActionCol ? (\n
    \n
    \n ACTION {displayTooltipIconForArchiveAction()}\n
    \n
    \n {displayArchiveAction(requestDetails)}\n
    \n
    \n ) : null}\n\n
    \n
    REQUEST STATUS
    \n
    \n {displayRequestStatus(requestDetails?.request_status)}\n
    \n
    \n
    \n
    \n );\n });\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n \n {isDesktop\n ? displayPendingApprovalTable()\n : displayPendingApprovalMobileView()}\n \n );\n};\n\nexport default PendingApprovalsDashboardView;\n\nPendingApprovalsDashboardView.defaultProps = {\n apiCallLoader: false,\n pendingApprovalListData: [],\n setIdToArchiveRequest: () => {},\n setShowCancellationSummaryModal: () => {},\n setShowArchiveConfirmationModal: () => {},\n};\n\nPendingApprovalsDashboardView.propTypes = {\n apiCallLoader: bool,\n pendingApprovalListData: arrayOf(shape({})),\n setIdToArchiveRequest: func,\n setShowCancellationSummaryModal: func,\n setShowArchiveConfirmationModal: func,\n};\n","import axiosInstance from '../axios';\nimport { API_PENDING_APPROVALS, API_TRANSACTION_DATA } from '../constants';\n\nexport async function getPendingApprovalRequests(\n orderBy,\n searchBy,\n pageNumber,\n) {\n let params = {\n 'order-by': orderBy,\n page: pageNumber,\n };\n if (searchBy !== '' && searchBy !== null) {\n params = {\n ...params,\n q: searchBy,\n };\n }\n\n const result = await axiosInstance\n .get(API_PENDING_APPROVALS, { params })\n .then((response) => {\n return response;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n\nexport async function archivedPendingApprovalRequest(id) {\n const result = await axiosInstance\n .patch(`${API_TRANSACTION_DATA + id}/`, { archive: true })\n .then(() => {\n return true;\n })\n .catch((error) => {\n return error.response;\n });\n return result;\n}\n","// This is the main container file of the pending Approval dashboard.\n// this file contain the all variable, API calls and handle functions.\n\n// react imports\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\n// third party imports\nimport Modal from 'react-modal';\nimport { func } from 'prop-types';\nimport { toast } from 'react-toastify';\n\n// local file imports\nimport Theme from '../../../../theme/Theme';\nimport PendingApprovalsDashboardFilters from './PendingApprovalsDashboardFilters';\nimport PendingAgreementModal from '../../../Customer/CustomerDetailView/Modals/PendingAgreementModal';\nimport PendingApprovalsDashboardView from './PendingApprovalsDashboardView';\nimport { CloseIcon } from '../../../../theme/images';\nimport {\n getPendingApprovalRequests,\n archivedPendingApprovalRequest,\n} from '../../../../api/PendingApprovalsDashboardApi';\nimport {\n pendingApprovalOrderOptions,\n customStyles,\n} from '../../../../constants';\nimport {\n Button,\n CommonPagination,\n ModalBox,\n NoData,\n PageLoader,\n WhiteCard,\n} from '../../../../common';\n\nconst PendingApprovalsDashboardContainer = ({ setCallPendingApprovalAPI }) => {\n const mounted = useRef(false);\n const [apiCallLoader, setApiCallLoader] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [pendingApprovalListData, setPendingApprovalListData] = useState();\n const [pendingApprovalListDataCount, setPendingApprovalListDataCount] =\n useState(0);\n const [selectedPageNumber, setSelectedPageNumber] = useState(1);\n const [selectedSortByOrder, setSelectedRequestOrder] = useState(\n pendingApprovalOrderOptions[0],\n );\n const [showArchiveConfirmationModal, setShowArchiveConfirmationModal] =\n useState(false);\n const [showCancellationSummaryModal, setShowCancellationSummaryModal] =\n useState({\n modal: false,\n type: null,\n id: null,\n });\n const [archiveLoader, setArchiveLoader] = useState(false);\n const [idToArchiveRequest, setIdToArchiveRequest] = useState(false);\n\n // get pending approval request data\n const getPendingApprovalData = useCallback(\n (requestOrder, searchBy, pagenumber = 1) => {\n setApiCallLoader(true);\n getPendingApprovalRequests(requestOrder, searchBy, pagenumber).then(\n (res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setPendingApprovalListData(res?.data?.results);\n setPendingApprovalListDataCount(res?.data?.count || 0);\n } else {\n setPendingApprovalListData(0);\n setPendingApprovalListData();\n }\n setApiCallLoader(false);\n }\n },\n );\n },\n [],\n );\n\n // use effect hook for getPendingApprovalData\n useEffect(() => {\n mounted.current = true;\n getPendingApprovalData(\n selectedSortByOrder?.value,\n searchQuery,\n selectedPageNumber,\n );\n return () => {\n mounted.current = false;\n };\n }, [\n selectedSortByOrder,\n selectedPageNumber,\n getPendingApprovalData,\n searchQuery,\n ]);\n\n // function - handle archive confirmation activity\n const handledOnConfirmArchiveClick = () => {\n setArchiveLoader(true);\n archivedPendingApprovalRequest(idToArchiveRequest).then(() => {\n toast.success(`Request is archived successfully.`);\n setShowArchiveConfirmationModal(false);\n setIdToArchiveRequest(null);\n setArchiveLoader(false);\n setCallPendingApprovalAPI(true);\n getPendingApprovalData(\n selectedSortByOrder?.value,\n searchQuery,\n selectedPageNumber,\n );\n });\n };\n\n // handle search input field\n const handleSearch = (event) => {\n setSelectedPageNumber(1);\n setSearchQuery(event?.target?.value);\n };\n\n // when change the sort-by dropdown\n const handleSortByFilter = (event) => {\n setSelectedRequestOrder(event);\n };\n\n // when click on refresh button\n const handleRefreshClick = () => {\n setSearchQuery('');\n setSelectedPageNumber(1);\n setSelectedRequestOrder(pendingApprovalOrderOptions[0]);\n };\n\n // displat archive modal html\n const renderArchiveModal = () => {\n return (\n \n {\n setShowArchiveConfirmationModal(false);\n }}\n role=\"presentation\"\n />\n \n
    \n
    \n Are you sure you want to archive?\n
    \n This will no longer be displayed on the dashboard once it has\n been archived.\n
    \n
    \n
    \n
    \n {\n handledOnConfirmArchiveClick();\n }}\n >\n {archiveLoader ? (\n \n ) : (\n 'Confirm'\n )}\n \n
    \n
    \n {\n setIdToArchiveRequest(null);\n setShowArchiveConfirmationModal(false);\n }}\n >\n Cancel\n \n
    \n
    \n
    \n
    \n \n );\n };\n\n // display pending agreement modal\n const renderCancellationSummaryModal = () => {\n return (\n \n \n \n );\n };\n\n // display pending approval dashboard filters\n const displayPendingApprovalDashboardFilter = () => {\n return (\n \n );\n };\n\n // display pending approval dashboard data\n const displayPendingApprovalDashboardData = () => {\n return (\n \n {apiCallLoader ? (\n \n ) : pendingApprovalListData?.length ? (\n <>\n \n\n {pendingApprovalListDataCount > 10 ? (\n {\n setSelectedPageNumber(value);\n }}\n />\n ) : null}\n \n ) : (\n No Pending Approval Request Found.\n )}\n \n );\n };\n\n /* ********** Main return statement of this component ********** */\n return (\n
    \n {displayPendingApprovalDashboardFilter()}\n {displayPendingApprovalDashboardData()}\n {renderArchiveModal()}\n {renderCancellationSummaryModal()}\n
    \n );\n};\n\nexport default PendingApprovalsDashboardContainer;\n\n// prop types\nPendingApprovalsDashboardContainer.defaultProps = {\n setCallPendingApprovalAPI: () => {},\n};\n\nPendingApprovalsDashboardContainer.propTypes = {\n setCallPendingApprovalAPI: func,\n};\n","// react imports\nimport React, {\n useState,\n useEffect,\n useCallback,\n useRef,\n useMemo,\n} from 'react';\n\n// third party imports\nimport styled from 'styled-components';\nimport { string, shape } from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { useMediaQuery } from 'react-responsive';\nimport { Route, Switch, useHistory, Redirect } from 'react-router-dom';\n\n// local file imports\nimport Theme from '../../../theme/Theme';\nimport DspDashboardContainer from './DspDashboard/DspDashboardContainer';\nimport SalesDashboardContainer from './SalesDashboard/SalesDashboardContainer';\nimport InventoryDashboardContainer from './InventoryDashboard/InventoryDashboardContainer';\nimport SponsoredDashboardContainer from './SponsoredDashboard/SponsoredDashboardContainer';\nimport AMCAggregatedDashboardContainer from './AMCDashboard/AMCAggregatedDashboardContainer';\nimport PendingApprovalsDashboardContainer from './PendingApprovalsDashboard/PendingApprovalsDashboardContainer';\nimport { getPendingApprovalRequests } from '../../../api/PendingApprovalsDashboardApi';\nimport { DashboardCard, TabletViewManager } from '../../../theme/Global';\nimport { getMarketPlaceList, getGoalTargetInsightMsg } from '../../../api';\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n AuthorizedSC,\n AuthorizedVC,\n CompanyDefaultUser,\n UnauthorizedSC,\n UnauthorizedVC,\n UpDowGrayArrow,\n} from '../../../theme/images';\nimport {\n GrayMessageBar,\n Status,\n Table,\n Tabs,\n ToggleSwitch,\n} from '../../../common';\nimport {\n advertisingDefaultTab,\n allBPObj,\n allValueObj,\n contributionColorSet,\n contributionTableHeaderByTab,\n CUSTOM,\n dashboardRolePaths,\n DSPPERFORMANCE,\n HYBRID,\n PATH_CUSTOMER_DETAILS,\n pendingApprovalAccessEmails,\n pendingApprovalOrderOptions,\n performanceTypeOptions,\n SELLER,\n SELLERSMALL,\n sponoredMetricsList,\n SpreetailRole,\n VENDOR,\n VENDORSMALL,\n} from '../../../constants';\n\nexport default function AdvertisingDashboardContainer({ userInfo }) {\n const mounted = useRef(false);\n const history = useHistory();\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const isBBEInternalUser = useSelector(\n (state) => state.userState.userInfo.isInternalUser,\n );\n const isBBEInternalUserStatus = isBBEInternalUser ? 'internal' : 'external';\n\n /* ********** BGS User hierarchy is BGS Admin -> BGS Manager -> BGS ********** */\n /* **********\n BGS Admin is redirected to BGS Leadership Dashboard and has access to view bgs managers and bgs performance data. BGS Manager is redirected to BGS Manager Dashboard and has access to view bgs performance data. BGS is redirected to BGS Dashboard and has access to view only his own performance data.\n ********** */\n\n /* ********** Advertising User hierarchy is Ad Manager Admin -> Ad Team Manager (ad_leadership_access === false) -> Ad Manager ********** */\n /* ********** \n Ad Manager Admin is redirected to Advertising Leadership Dashboard and has access to view Ad Team managers and Ad Managers performance data. Ad Team managers is redirected to Ad Team Managers Dashboard and has access to view Ad Managers performance data. But if Ad Team Manager has ad_leadership_access === true then he will be redirected to Advertising Leadership Dashboard. Ad Managers is redirected to Ad Managers Dashboard and has access to view only his own performance data.\n ********** */\n\n // bgs roles\n const isBGSAdmin = userInfo?.role === 'BGS Admin';\n const isSpreetailRole = userInfo?.role === SpreetailRole;\n const isBGSManager = userInfo?.role === 'BGS Manager';\n const isBGS = userInfo?.role === 'BGS';\n\n // advertising roles\n const advertisingAdminAccess = userInfo?.ad_leadership_access;\n // If user role is Ad Team Manager and this flag -> ad_leadership_access is true in Django admin Then such user can access to Ad Manager Admin Dashboard i.e. \"Advertising Leadership Dashboard\".\n const isAdManagerAdmin =\n userInfo?.role === 'Ad Manager Admin' ||\n (userInfo?.role === 'Ad Team Manager' && advertisingAdminAccess);\n const isAdTeamManager =\n userInfo?.role === 'Ad Team Manager' && !advertisingAdminAccess;\n const isAdManager =\n userInfo?.role === 'Ad Manager' || userInfo?.role === 'Ad Specialist';\n\n const isShowAMCAudienceSummaryTab =\n isBGSAdmin ||\n isBGSManager ||\n isBGS ||\n isAdManager ||\n isSpreetailRole ||\n userInfo?.role === 'Ad Manager Admin' ||\n userInfo?.role === 'Ad Team Manager';\n\n const showInventoryTab =\n isBGSAdmin || isBGSManager || isBGS || isSpreetailRole;\n\n const isHavePendingApprovalAccess =\n isBGSAdmin ||\n pendingApprovalAccessEmails.includes(userInfo?.email) ||\n userInfo?.is_primary_request_approvers ||\n userInfo?.is_final_request_approvers ||\n userInfo?.is_dsp_amc_primary_request_approvers;\n\n // https://bbe.atlassian.net/browse/PDV-9459 - Stop pulling Seller and Vendor data via Amazon APIs\n const advertisingTab =\n advertisingDefaultTab[window.location.pathname?.split('/').pop()] ||\n 'sales';\n const isSalesOrSponsoredTab =\n advertisingTab === 'sales' || advertisingTab === 'sponsored';\n const [viewComponent, setViewComponent] = useState(advertisingTab);\n\n const [pendingApprovalListDataCount, setPendingApprovalListDataCount] =\n useState(0);\n const [callPendingApprovalAPI, setCallPendingApprovalAPI] = useState(true);\n const [marketplaceChoices, setMarketplaceChoices] = useState([]);\n const [goalTargetInsightMsg, setGoalTargetInsightMsg] = useState('');\n const [includeInactiveBPs, setIncludeInactiveBPs] = useState(false);\n const [includeSpreetailBrands, setIncludeSpreetailBrands] = useState(\n !!isSalesOrSponsoredTab,\n );\n const [responseID, setResponseID] = useState();\n const [currencySymbol, setCurrencySymbol] = useState('$');\n const [isCustomDateApply, setIsCustomDateApply] = useState(false);\n const [selectedMarketplace, setSelectedMarketplace] = useState({\n value: 'all',\n label: 'All Marketplaces',\n currency: 'USD',\n });\n const [selectedPerformanceType, setSelectedPerformanceType] = useState(\n performanceTypeOptions?.[0],\n );\n const [selectedBrandPartner, setSelectedBrandPartner] = useState(allBPObj);\n const [sponsoredAdMultiSelected, setSponsoredAdMultiSelected] = useState(\n sponoredMetricsList.slice(0, 8),\n );\n const [selectedDF, setSelectedDF] = useState({\n value: '30days',\n label: 'Current 30 Days',\n sub: 'vs Previous 30 days',\n });\n\n // loggedin user\n const loggedInUser = useMemo(() => {\n return [\n {\n label: `${userInfo?.first_name} ${userInfo?.last_name}`,\n value: userInfo?.id,\n },\n ];\n }, [userInfo]);\n\n // useState - selected manager user is used for BGS Manager and Ad Team Manager\n const [selectedManagerUser, setSelectedManagerUser] = useState(\n isBGSManager || isAdTeamManager ? loggedInUser : allValueObj,\n );\n // useState - selected user is used for BGS and Ad Manager\n const [selectedUser, setSelectedUser] = useState(\n isBGS || isAdManager ? loggedInUser : allValueObj,\n );\n\n const currentDate = new Date();\n currentDate.setDate(currentDate.getDate() - 2);\n const [customDateState, setCustomDateState] = useState([\n {\n startDate: currentDate,\n endDate: currentDate,\n key: 'adSelection',\n },\n ]);\n const [customDate, setCustomDate] = useState({\n startDate: null,\n endDate: null,\n dateType: null,\n });\n\n // bind all marketplaces\n const bindAllMarketplaces = useCallback((responseData) => {\n const tempMarketplacesList = [];\n\n if (responseData?.length > 0) {\n for (const item of responseData) {\n tempMarketplacesList.push({\n value: item?.name || item?.value,\n label: item?.country || item?.label,\n currency: item?.currency,\n id: item?.marketplace_id || item?.id,\n });\n }\n }\n\n if (tempMarketplacesList?.length > 1) {\n tempMarketplacesList.unshift({\n value: 'all',\n label: 'All Marketplaces',\n currency: 'USD',\n });\n }\n return tempMarketplacesList;\n }, []);\n\n // get all marketplaces\n const getMarketPlace = useCallback(() => {\n getMarketPlaceList().then((response) => {\n if (mounted.current) {\n if (response?.status === 200) {\n if (response?.data?.length) {\n const formatedApiData = bindAllMarketplaces(response?.data);\n setMarketplaceChoices(formatedApiData);\n setSelectedMarketplace(formatedApiData?.[0]);\n }\n }\n }\n });\n }, [bindAllMarketplaces]);\n\n // use effect\n useEffect(() => {\n mounted.current = true;\n getMarketPlace();\n return () => {\n mounted.current = false;\n };\n }, [getMarketPlace]);\n\n // https://bbe.atlassian.net/browse/PDV-8757 - leadership dashboard improvements\n // callback function for binding brand partners list from api response data\n const bindBrandPartners = useCallback(\n (responseData) => {\n const tempBrandPartnerList = [];\n\n if (responseData?.length > 0) {\n for (const item of responseData) {\n tempBrandPartnerList.push({\n value: item?.id,\n label: item?.company_name,\n customerId: item?.id,\n accountType: item?.customer_account_type,\n marketplaces: bindAllMarketplaces(item?.marketplaces),\n adManager: item?.ad_manager\n ? {\n label: `${item?.ad_manager?.first_name} ${item?.ad_manager?.last_name}`,\n value: item?.ad_manager?.id,\n }\n : null,\n adTeamManager: item?.ad_team_manager\n ? {\n label: `${item?.ad_team_manager?.first_name} ${item?.ad_team_manager?.last_name}`,\n value: item?.ad_team_manager?.id,\n }\n : null,\n bgs: item?.bgs\n ? {\n label: `${item?.bgs?.first_name} ${item?.bgs?.last_name}`,\n value: item?.bgs?.id,\n }\n : null,\n bgsManager: item?.bgs_manager\n ? {\n label: `${item?.bgs_manager?.first_name} ${item?.bgs_manager?.last_name}`,\n value: item?.bgs_manager?.id,\n }\n : null,\n });\n }\n }\n\n if (tempBrandPartnerList?.length > 1) {\n tempBrandPartnerList.unshift(allBPObj);\n }\n return tempBrandPartnerList;\n },\n [bindAllMarketplaces],\n );\n\n const getGoalTargetMsg = useCallback(() => {\n getGoalTargetInsightMsg().then((res) => {\n setGoalTargetInsightMsg(res?.data?.message);\n });\n }, []);\n\n useEffect(() => {\n getGoalTargetMsg();\n }, [getGoalTargetMsg]);\n\n const dashboardHeaders = {\n 'Ad Manager': 'Ad Manager Dashboard',\n 'Ad Manager Admin': 'Advertising Leadership Dashboard',\n 'Ad Team Manager': isAdTeamManager\n ? 'Ad Team Manager Dashboard'\n : 'Advertising Leadership Dashboard',\n 'Ad Specialist': 'Ad Specialist Dashboard',\n BGS: 'BGS Dashboard',\n 'BGS Manager': 'BGS Manager Dashboard',\n 'BGS Admin': 'BGS Leadership Dashboard',\n Finance: 'Dashboard',\n Spreetail: 'BGS Leadership Dashboard',\n };\n\n // to disaply the pending aprroval count need to call API\n const getPendingApprovalData = useCallback(() => {\n getPendingApprovalRequests(pendingApprovalOrderOptions[0]?.value, '', 1)\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setPendingApprovalListDataCount(res?.data?.count || 0);\n } else {\n setPendingApprovalListDataCount(0);\n }\n setCallPendingApprovalAPI(false);\n }\n })\n .catch(() => {\n setPendingApprovalListDataCount(0);\n });\n }, []);\n\n useEffect(() => {\n if (isHavePendingApprovalAccess && callPendingApprovalAPI) {\n mounted.current = true;\n getPendingApprovalData();\n }\n return () => {\n mounted.current = false;\n };\n }, [\n getPendingApprovalData,\n isHavePendingApprovalAccess,\n callPendingApprovalAPI,\n ]);\n\n // bind user list - bgs/bgs manager/ad manager/ad team manager data\n const bindUserListData = useCallback((responseData, userRole) => {\n const tempUserList = [];\n let tempUserListWithAll = [];\n\n if (responseData?.length > 0) {\n for (const item of responseData) {\n if (userRole === 'BGS' || userRole === 'Ad Manager') {\n tempUserList.push({\n label: `${item?.first_name} ${item?.last_name}`,\n value: item?.id,\n icon:\n item?.documents?.[0] && Object.values(item?.documents?.[0])[0],\n managerUser:\n userRole === 'BGS' ? item?.bgs_manager : item?.ad_team_manager,\n });\n } else {\n tempUserList.push({\n label: `${item?.first_name} ${item?.last_name}`,\n value: item?.id,\n icon:\n item?.documents?.[0] && Object.values(item?.documents?.[0])[0],\n });\n }\n }\n tempUserListWithAll = [...tempUserList];\n\n if (tempUserList?.length > 1) {\n tempUserListWithAll.unshift({\n value: 'all',\n label: 'All',\n });\n }\n }\n\n return { userList: tempUserList, userListWithAll: tempUserListWithAll };\n }, []);\n\n // check if multiple selected user present in api user list or not.\n const checkIsUserExist = useCallback((userListArray, selectedUserArray) => {\n let isUserExist = false;\n const isUserAll = selectedUserArray?.some((item) => item?.value === 'all');\n if (isUserAll) {\n isUserExist = false;\n } else {\n const filterUserList = userListArray?.filter((object) => {\n return selectedUserArray?.find((item) => item?.value === object?.value);\n });\n if (filterUserList?.length === selectedUserArray?.length) {\n isUserExist = true;\n } else {\n isUserExist = false;\n }\n }\n return isUserExist;\n }, []);\n\n // generate string of multiple values\n const generateStringOfValues = useCallback((dataArray) => {\n let tempDataString = null;\n const tempSelectedValues = [];\n\n if (dataArray?.length > 0) {\n const isAllUser = dataArray?.some((item) => item?.value === 'all');\n if (isAllUser) {\n tempDataString = 'all';\n } else {\n dataArray.forEach((item) => tempSelectedValues.push(item?.value));\n tempDataString = tempSelectedValues?.toString();\n }\n }\n return tempDataString;\n }, []);\n\n // handle multi select dropdown filter events\n const handleMultiSelectDropdownFilterEvents = (\n event,\n action,\n selectedValues,\n apiOptions,\n ) => {\n let tempSelectedValues = [];\n const userAction = action?.action;\n const value = action?.option?.value;\n\n if (userAction === 'select-option') {\n if (value === 'all') {\n tempSelectedValues = [{ value: 'all', label: 'All' }, ...apiOptions];\n } else {\n tempSelectedValues =\n event?.length === apiOptions?.length\n ? [{ value: 'all', label: 'All' }, ...event]\n : event;\n }\n }\n if (userAction === 'deselect-option') {\n if (value === 'all') {\n tempSelectedValues = [];\n } else {\n const optionList = selectedValues?.filter((option) => {\n return option?.value !== value && option?.value !== 'all';\n });\n tempSelectedValues = [...optionList];\n }\n }\n\n return tempSelectedValues;\n };\n\n // render include inactive bp toggle button\n const renderIncludeInactiveBPToggle = () => {\n return (\n \n \n Include inactive BPs\n {\n setIncludeInactiveBPs(!includeInactiveBPs);\n setResponseID('response');\n }}\n onChange={() => {}}\n checked={includeInactiveBPs}\n />\n \n \n \n );\n };\n\n // PDV-9081- render include spreetail brands toggle button\n const renderIncludeSpreetailBrandsToggle = () => {\n return (\n \n \n {isSalesOrSponsoredTab ? 'Only' : 'Include'} Spreetail Brands\n {\n if (isSalesOrSponsoredTab) {\n setIncludeSpreetailBrands(true);\n } else {\n setIncludeSpreetailBrands(!includeSpreetailBrands);\n }\n setResponseID('response');\n }}\n onChange={() => {}}\n checked={includeSpreetailBrands}\n />\n \n \n \n );\n };\n\n // display vendor metrics value\n const displayVendorMetricsValue = (value, prefix, suffix, decimalDigits) => {\n if (value === null || value === undefined || isNaN(Number(value))) {\n return 'N/A';\n }\n return `${prefix}${value\n .toFixed(decimalDigits)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}${suffix}`;\n };\n\n // display metrics change value with up and down arrow\n const displayMetricsChangeValueWithArrow = (\n value,\n prefix,\n suffix,\n decimalDigits,\n isGrayMetrics,\n ) => {\n if (value === null || value === undefined || isNaN(Number(value))) {\n return 'N/A';\n }\n const positiveChange = !value?.toString().includes('-');\n\n return positiveChange ? (\n
    \n \n {displayVendorMetricsValue(value, prefix, suffix, decimalDigits)}\n
    \n ) : (\n
    \n \n {value === 0\n ? '0'\n : displayVendorMetricsValue(\n Number(value.toString().split('-')[1]),\n prefix,\n suffix,\n decimalDigits,\n )}\n
    \n );\n };\n\n // redirecting to the respective dashboard at single bp view\n const redirectingToSingleBPView = (itemData, dashboardType) => {\n if (dashboardType === DSPPERFORMANCE) {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n itemData?.customerId,\n )}?tab=performance&nav=dspPerformance&access=${isBBEInternalUserStatus}`,\n DSPPERFORMANCE,\n );\n } else {\n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n itemData?.customerId,\n )}?tab=performance${\n itemData?.accountType\n ? `&sub=${\n itemData?.accountType === HYBRID ||\n itemData?.accountType === SELLER\n ? SELLERSMALL\n : VENDORSMALL\n }`\n : ''\n }&nav=${dashboardType}&access=${isBBEInternalUserStatus}`,\n dashboardType,\n );\n }\n };\n\n // display company logo\n const displayCompanyLogo = (imageLink) => {\n return (\n \n );\n };\n\n // https://bbe.atlassian.net/browse/PDV-7954\n // display Seller central / Vendor central Icon\n const displayScVcIcon = (imageLink, altName) => {\n return (\n \n );\n };\n\n // https://bbe.atlassian.net/browse/PDV-7954 - display seller central / vendor central type\n // display BP name, logo, status, account type, SC/VC icon\n const displayCustomerProfileWithUserName = (itemData) => {\n const accountType = itemData?.accountType;\n const showSellerTag = accountType === HYBRID || accountType === SELLER;\n const showVendorTag = accountType === HYBRID || accountType === VENDOR;\n\n // determine if BP has authorized or unauthorized marketplaces\n const lwa = itemData?.lwa;\n let isSellerUnauthorized = null;\n let isVendorUnauthorized = null;\n if (lwa) {\n isSellerUnauthorized = Object.values(lwa)\n ?.map((item) => item?.seller)\n ?.includes(false);\n isVendorUnauthorized = Object.values(lwa)\n ?.map((item) => item?.vendor)\n ?.includes(false);\n }\n return (\n
    \n {displayCompanyLogo(itemData?.document || null)}\n
    \n {itemData?.customerName}\n\n {showSellerTag && isSellerUnauthorized !== null\n ? isSellerUnauthorized\n ? displayScVcIcon(UnauthorizedSC, 'UnauthorizedSC')\n : displayScVcIcon(AuthorizedSC, 'AuthorizedSC')\n : null}\n {showVendorTag && isVendorUnauthorized !== null\n ? isVendorUnauthorized\n ? displayScVcIcon(UnauthorizedVC, 'UnauthorizedVC')\n : displayScVcIcon(AuthorizedVC, 'AuthorizedVC')\n : null}\n
    \n
    {itemData?.adManager}
    \n
    \n
    \n );\n };\n\n // display vendor contribution table\n const displayContributionTable = (\n tableBodyData,\n prefix,\n suffix,\n decimalDigits,\n isGrayMetrics,\n dashboardType,\n showContributionColumn = selectedBrandPartner?.value === 'all',\n ) => {\n return isDesktop ? (\n \n \n \n {contributionTableHeaderByTab?.map((item) => {\n return item?.key === 'contribution' &&\n !showContributionColumn ? null : (\n \n {item?.label}\n \n );\n })}\n \n \n \n {tableBodyData?.map((itemData) => {\n return (\n {\n redirectingToSingleBPView(itemData, dashboardType);\n }}\n >\n \n \n \n \n\n {/* show contribution column only when all brand partner is selected */}\n {showContributionColumn ? (\n \n ) : null}\n \n );\n })}\n \n
    \n {displayCustomerProfileWithUserName(itemData)}\n \n {displayVendorMetricsValue(\n itemData?.currentValue,\n prefix,\n suffix,\n decimalDigits,\n )}\n \n {displayVendorMetricsValue(\n itemData?.previousValue,\n prefix,\n suffix,\n decimalDigits,\n )}\n \n {displayMetricsChangeValueWithArrow(\n itemData?.change,\n prefix,\n suffix,\n decimalDigits,\n isGrayMetrics,\n )}\n \n \n
    \n ) : (\n \n
    \n
    \n {tableBodyData?.map((itemData) => (\n {\n redirectingToSingleBPView(itemData, dashboardType);\n }}\n >\n {displayCustomerProfileWithUserName(itemData)}\n
    \n
    \n
    \n
    This Period
    \n
    \n {displayVendorMetricsValue(\n itemData?.currentValue,\n prefix,\n suffix,\n decimalDigits,\n )}\n
    \n
    \n
    \n
    Prev. Period
    \n
    \n {displayVendorMetricsValue(\n itemData?.previousValue,\n prefix,\n suffix,\n decimalDigits,\n )}\n
    \n
    \n
    \n
    Change
    \n {displayMetricsChangeValueWithArrow(\n itemData?.change,\n prefix,\n suffix,\n decimalDigits,\n isGrayMetrics,\n )}\n
    \n {/* show contribution column only when all brand partner is selected */}\n {showContributionColumn ? (\n
    \n
    Contribution
    \n \n
    \n ) : null}\n
    \n
    \n ))}\n
    \n
    \n
    \n );\n };\n\n // bind seller and vendor contribution data\n const bindMetricsContributionData = useCallback((responseData) => {\n const tempContributionData = [];\n\n if (responseData?.length > 0) {\n for (const item of responseData) {\n tempContributionData.push({\n customerId: item?.customer_id,\n customerName: item?.customer_name,\n accountType: item?.account_type,\n document: item?.document,\n adManager: item?.ad_manager,\n currentValue: item?.current,\n previousValue: item?.previous,\n change: item?.change,\n contribution: item?.contribution,\n contributionLevel: item?.contribution_bracket,\n });\n }\n }\n return tempContributionData;\n }, []);\n\n // render recent and previous label above graph\n const renderRecentAndPreviousLabel = (selectedMetrics, dateType) => {\n const className =\n Object.keys(selectedMetrics)?.length === 1\n ? `adSales circle`\n : 'darkGray circle';\n\n return (\n
    \n
      \n
    • \n
      \n \n Recent\n
      \n
    • \n {dateType?.value !== CUSTOM ? (\n
    • \n
      \n
        \n
      • \n
      • \n
      \n Previous\n
      \n
    • \n ) : null}\n
    \n
    \n );\n };\n\n // rendor allocate bar\n const renderAllocateBar = (message, className) => {\n return ;\n };\n\n // render sales dashboard\n const renderSalesDashboard = () => {\n return (\n \n );\n };\n\n return (\n <>\n \n {goalTargetInsightMsg ? (\n {goalTargetInsightMsg}\n ) : null}\n
    \n
    \n {dashboardHeaders[userInfo?.role]}\n
    {' '}\n \n
      \n {\n setIncludeSpreetailBrands(true);\n setViewComponent('sales');\n history.push(`${dashboardRolePaths[userInfo?.role]}sales`);\n setResponseID();\n }}\n role=\"presentation\"\n >\n Sales\n \n {\n setIncludeSpreetailBrands(true);\n setViewComponent('sponsored');\n history.push(\n `${dashboardRolePaths[userInfo?.role]}sponsored`,\n );\n setResponseID();\n }}\n role=\"presentation\"\n >\n Sponsored Advertising\n \n {\n setIncludeSpreetailBrands(false);\n setViewComponent('dsp');\n history.push(`${dashboardRolePaths[userInfo?.role]}dsp`);\n setResponseID();\n }}\n role=\"presentation\"\n >\n DSP Advertising\n \n {isShowAMCAudienceSummaryTab ? (\n {\n setViewComponent('amcDashboard');\n history.push(\n `${\n dashboardRolePaths[userInfo?.role]\n }amcDashboard?subNav=amc-summary`,\n );\n }}\n role=\"presentation\"\n >\n AMC Insights\n \n ) : (\n ''\n )}\n\n {showInventoryTab && (\n {\n setViewComponent('inventory');\n history.push(\n `${dashboardRolePaths[userInfo?.role]}inventory`,\n );\n setResponseID();\n }}\n role=\"presentation\"\n >\n Inventory\n \n )}\n\n {isHavePendingApprovalAccess ? (\n {\n setViewComponent('pendingApprovals');\n history.push(\n `${dashboardRolePaths[userInfo?.role]}pendingApprovals`,\n );\n setResponseID();\n }}\n role=\"presentation\"\n >\n Pending Approvals\n \n {pendingApprovalListDataCount}\n \n \n ) : null}\n\n {/* Adding toggle button for include inactive BPs */}\n {viewComponent === 'sales' ||\n viewComponent === 'sponsored' ||\n viewComponent === 'dsp' ? (\n <>\n
    • \n {renderIncludeInactiveBPToggle()}\n
    • \n
    • \n {renderIncludeSpreetailBrandsToggle()}\n
    • \n
      \n \n ) : null}\n
    \n
    \n \n \n {renderSalesDashboard()}\n \n \n \n \n \n \n \n {/* Newly added path to AMC aggregated Dashboard Component. */}\n {isShowAMCAudienceSummaryTab && (\n \n \n \n )}\n {/* AWS Quicksight Dashboard route. */}\n {/* \n \n */}\n {showInventoryTab && (\n \n \n \n )}\n {isHavePendingApprovalAccess && (\n \n \n \n )}\n (\n \n {renderSalesDashboard()}\n \n )}\n />\n \n
    \n
    \n \n );\n}\n\nAdvertisingDashboardContainer.defaultProps = {\n userInfo: {},\n};\nAdvertisingDashboardContainer.propTypes = {\n userInfo: shape({\n role: string.isRequired,\n }),\n};\n\nconst PopOverMsg = styled.div`\n min-height: 40px;\n background: #fbf2f2;\n color: ${Theme.black};\n font-size: 13px;\n padding: 12px;\n text-align: center;\n font-family: ${Theme.baseMediumFontFamily};\n`;\n","/* eslint-disable jsx-a11y/label-has-for */\nimport React, { useState } from 'react';\n\nimport { arrayOf, func, string } from 'prop-types';\nimport { DebounceInput } from 'react-debounce-input';\nimport { useMediaQuery } from 'react-responsive';\n\nimport { SearchIcon, CaretUp } from '../../../../theme/images';\nimport {\n InputSearchWithRadius,\n WhiteCard,\n ModalRadioCheck,\n} from '../../../../common';\n\nexport default function DSPInvoiceFilters({\n searchQuery,\n selectedStatus,\n statusOptions,\n onHandleSearch,\n handleResetFilter,\n handleStatusChange,\n}) {\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n const isDesktop = useMediaQuery({ minWidth: 992 });\n\n const renderSearchFunctionality = () => {\n return (\n
    \n \n {\n onHandleSearch(event);\n }}\n value={searchQuery}\n />\n\n \"search\"\n \n
    \n );\n };\n\n const renderStatus = () => {\n return (\n
    \n
    Invoice Status
    \n {statusOptions.map((item, index) => (\n \n {' '}\n \n {item.label}\n handleStatusChange(event)}\n defaultChecked={item.value === selectedStatus}\n />\n \n \n \n ))}\n
    \n );\n };\n\n return (\n \n
    \n
    \n
    Filters
    \n
    \n
    \n handleResetFilter()}>\n Reset filters\n
    \n
    \n {!isDesktop ? (\n setIsCollapseOpen(!isCollapseOpen)}>\n
    \n \n
    \n
    \n ) : null}\n {isDesktop || isCollapseOpen ? (\n <>\n {renderSearchFunctionality()}\n {renderStatus()}\n \n ) : null}\n \n \n );\n}\n\nDSPInvoiceFilters.defaultProps = {\n searchQuery: '',\n selectedStatus: '',\n statusOptions: [],\n onHandleSearch: () => {},\n handleResetFilter: () => {},\n handleStatusChange: () => {},\n};\n\nDSPInvoiceFilters.propTypes = {\n searchQuery: string,\n selectedStatus: string,\n statusOptions: arrayOf(Array),\n onHandleSearch: func,\n handleResetFilter: func,\n handleStatusChange: func,\n};\n","import React from 'react';\n\nimport { func, string } from 'prop-types';\n\nimport { WhiteCard } from '../../../../common';\nimport { InvoiceIcon, PartnersIcon } from '../../../../theme/images';\n\nconst DSPInvoiceTabs = ({ onTabClick, viewComponent }) => {\n return (\n \n
      \n
    • onTabClick('invoices')} role=\"presentation\">\n \n \n Invoices\n \n
    • \n
    • onTabClick('partners')} role=\"presentation\">\n \n \n Partners\n \n
    • \n
    \n
    \n );\n};\n\nexport default DSPInvoiceTabs;\n\nDSPInvoiceTabs.defaultProps = {\n onTabClick: func,\n};\nDSPInvoiceTabs.propTypes = {\n onTabClick: func,\n viewComponent: string.isRequired,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport $ from 'jquery';\nimport dayjs from 'dayjs';\nimport debounce from 'lodash.debounce';\nimport { useSelector } from 'react-redux';\nimport { components } from 'react-select';\nimport { useHistory } from 'react-router-dom';\nimport { func, string, bool, objectOf } from 'prop-types';\n\nimport DSPInvoiceFilters from './InvoiceFilters';\nimport Theme from '../../../../theme/Theme';\nimport DSPInvoiceTabs from './InvoiceTabs';\nimport TableMobileView from '../../../../common/TableMobileView';\nimport ShowCurrencySymbol from '../../../../common/ShowCurrencySymbol';\nimport { CompanyDefaultUser } from '../../../../theme/images';\nimport { getFinanceInvoices } from '../../../../api';\nimport { DropDown } from '../../../Customer/CustomerDetailView/CompanyPerformance/DropDown';\nimport {\n InvoicesStatusOptions,\n InvoicesSortByOptions,\n StatusColorSet,\n PATH_CUSTOMER_DETAILS,\n getInvoiceStatusKey,\n invoiceStatusIcons,\n} from '../../../../constants';\nimport {\n WhiteCard,\n Table,\n Status,\n DropdownIndicator,\n PageLoader,\n CommonPagination,\n NoData,\n} from '../../../../common';\n\nexport default function InvoicesList({\n timeFrame,\n timeFrameType,\n isTimeFrameChange,\n setIsTimeFrameChange,\n onTabClick,\n viewComponent,\n isDesktop,\n isTablet,\n selectedNavigation,\n}) {\n const mounted = useRef(false);\n const isBBEInternalUser = useSelector(\n (state) => state.userState.userInfo.isInternalUser,\n );\n const isBBEInternalUserStatus = isBBEInternalUser ? 'internal' : 'external';\n\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedStatus, setSelectedStatus] = useState('any');\n const [invoiceLoader, setInvoiceLoader] = useState(false);\n const [invoiceData, setInvoiceData] = useState([]);\n const [invoiceCount, setInvoiceCount] = useState(null);\n const [pageNumber, setPageNumber] = useState();\n const { Option, SingleValue } = components;\n const [responseId, setResponseId] = useState(null);\n\n const [selectedSortBy, setSelectedSortBy] = useState({\n value: '',\n label: 'Status',\n });\n const history = useHistory();\n\n const getInvoices = useCallback(\n (searchKey, status, sortBy, page) => {\n setInvoiceLoader(true);\n getFinanceInvoices(\n 'invoice',\n searchKey,\n status,\n sortBy,\n timeFrameType,\n timeFrame,\n page,\n selectedNavigation,\n ).then((res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n setInvoiceLoader(false);\n }\n if (res && res.status === 200) {\n if (res.data && res.data.results) {\n setInvoiceData(res.data.results);\n setInvoiceCount(res.data.count);\n }\n setInvoiceLoader(false);\n setPageNumber(page);\n }\n }\n });\n },\n [timeFrameType, timeFrame, selectedNavigation],\n );\n\n useEffect(() => {\n mounted.current = true;\n if (responseId === null || isTimeFrameChange) {\n getInvoices(searchQuery, selectedStatus, selectedSortBy.value, 1);\n setResponseId('12345');\n setIsTimeFrameChange(false);\n }\n return () => {\n mounted.current = false;\n };\n }, [\n getInvoices,\n searchQuery,\n selectedStatus,\n selectedSortBy,\n responseId,\n setIsTimeFrameChange,\n isTimeFrameChange,\n ]);\n\n const debouncedSave = useCallback(\n debounce(\n (searchKey, status, sortBy, page) =>\n getInvoices(searchKey, status, sortBy, page),\n 500,\n ),\n [],\n );\n\n const onHandleSearch = (event) => {\n setSearchQuery(event.target.value);\n debouncedSave(event.target.value, selectedStatus, selectedSortBy.value, 1);\n };\n\n const handleResetFilter = () => {\n $('.checkboxes input:radio').filter(\"[value='any']\").prop('checked', true);\n setSelectedStatus('any');\n setSearchQuery('');\n setSelectedSortBy({ value: '', label: 'Status' });\n getInvoices('', 'any', '', 1);\n };\n\n const handleStatusChange = (event) => {\n setSelectedStatus(event.target.value);\n getInvoices(searchQuery, event.target.value, selectedSortBy.value, 1);\n };\n\n const handleSortByFilter = (event) => {\n setSelectedSortBy(event);\n getInvoices(searchQuery, selectedStatus, event.value, 1);\n };\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getInvoices(searchQuery, selectedStatus, selectedSortBy.value, currentPage);\n };\n\n const filterOption = ({ data, ...props }) => (\n \n );\n\n const bindAmount = (orignalNumber, decimalDigits = 2, isRounded = false) => {\n let number = Number(orignalNumber);\n if (number !== undefined && number !== null) {\n number = number\n .toFixed(decimalDigits)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n if (isRounded) {\n const no = number.toString().split('.');\n if (no[1] === '00') {\n return no[0];\n }\n }\n\n return number;\n };\n\n const singleFilterOption = (props) => (\n \n \n {`Sort by: ${props.data.label}`}\n \n
    {props.data.sub}
    \n
    \n );\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const renderSortByDropDown = () => {\n return DropDown(\n 'BT-InvoiceListSortOptionFilter',\n '',\n InvoicesSortByOptions,\n InvoicesSortByOptions &&\n InvoicesSortByOptions[0] &&\n InvoicesSortByOptions[0].label,\n getSelectComponents,\n handleSortByFilter,\n false,\n null,\n selectedSortBy,\n );\n };\n\n const renderTableData = (item) => {\n const cretaedDate = dayjs(item.generated_at).format('MM/DD/YY');\n const dueDate = dayjs(item.due_date).format('MM/DD/YY');\n return (\n \n history.push(\n `${PATH_CUSTOMER_DETAILS.replace(\n ':id',\n item?.customer?.id,\n )}?tab=billing&nav=${selectedNavigation}&access=${isBBEInternalUserStatus}`,\n selectedNavigation,\n )\n }\n >\n \n {' '}\n \n
    \n
    \n {item.customer && item.customer.name}\n
    \n
    \n {item.invoice_type} | #{item.next_invoiced_id}\n
    \n
    \n \n \n {ShowCurrencySymbol(item?.local_currency)}\n {bindAmount(item.monthly_budget, 0, true)}\n \n {cretaedDate}\n {dueDate}\n \n \n
    \n \n \n );\n };\n\n const renderInvoicesTable = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n {invoiceData && invoiceData.map((item) => renderTableData(item))}\n \n
    \n Invoice Type / Number\n \n Amount\n \n Created On\n \n {' '}\n Due\n \n {' '}\n Status\n
    \n );\n };\n\n const renderTabletInvoicesTable = () => {\n return (\n <>\n {invoiceData && invoiceData.length > 0 ? (\n invoiceData &&\n invoiceData.map((item) => (\n \n history.push(\n PATH_CUSTOMER_DETAILS.replace(\n ':id',\n item.customer && item.customer.id,\n ),\n selectedNavigation,\n )\n }\n key={item.next_invoiced_id}\n className=\"mb-3 cursor\"\n CompanyName={item.customer && item.customer.name}\n invoiceType={item.invoice_type}\n invoiceId={`#${item?.next_invoiced_id}`}\n label=\"AMOUNT\"\n labelInfo={`${ShowCurrencySymbol(\n item?.local_currency,\n )}${bindAmount(item.monthly_budget, 0, true)}`}\n label1=\"CREATED ON\"\n labelInfo1={dayjs(item.generated_at).format('MM/DD/YY')}\n label2=\"DUE\"\n labelInfo2={dayjs(item.due_date).format('MM/DD/YY')}\n status={item?.invoice_status.replace(' )', ')')}\n statusIcon={\n invoiceStatusIcons[getInvoiceStatusKey(item?.invoice_status)]\n ?.icon\n }\n statusColor={\n StatusColorSet[getInvoiceStatusKey(item?.invoice_status)]\n }\n iconAfterLabel\n />\n ))\n ) : (\n No Invoices Found\n )}\n \n );\n };\n\n return (\n <>\n
    \n {isDesktop ? (\n \n ) : null}\n \n
    \n
    \n {isDesktop || isTablet ? (\n // for dekstop/tablet View\n\n \n
    \n
    \n
    Invoices
    {' '}\n
    \n \n {renderSortByDropDown()}\n
    \n
    \n
    \n\n {invoiceLoader ? (\n \n ) : invoiceData && invoiceData.length > 0 ? (\n <>\n {renderInvoicesTable()}\n \n \n ) : (\n No Invoices Found\n )}\n \n ) : (\n // for mobile View\n <>\n
    \n
    \n
    \n
    Invoices
    {' '}\n
    \n
    {renderSortByDropDown()}
    \n
    \n\n {invoiceLoader ? (\n \n ) : (\n <>\n {renderTabletInvoicesTable()}\n \n \n )}\n
    \n \n )}\n
    \n \n );\n}\n\nInvoicesList.defaultProps = {\n data: () => {},\n onTabClick: () => {},\n timeFrame: new Date(),\n timeFrameType: '',\n isTimeFrameChange: false,\n setIsTimeFrameChange: () => {},\n selectedNavigation: '',\n};\nInvoicesList.propTypes = {\n data: func,\n onTabClick: func,\n viewComponent: string.isRequired,\n isDesktop: bool.isRequired,\n isTablet: bool.isRequired,\n timeFrame: objectOf(Object),\n timeFrameType: string,\n isTimeFrameChange: bool,\n setIsTimeFrameChange: func,\n selectedNavigation: string,\n};\n","/* eslint-disable react/prop-types */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport $ from 'jquery';\nimport debounce from 'lodash.debounce';\nimport { components } from 'react-select';\nimport { useHistory } from 'react-router-dom';\nimport { bool, func, objectOf, string } from 'prop-types';\n\nimport InvoiceTabs from './InvoiceTabs';\nimport InvoiceFilters from './InvoiceFilters';\nimport TableMobileView from '../../../../common/TableMobileView';\nimport { getFinanceInvoices } from '../../../../api';\nimport { DropDown } from '../../../Customer/CustomerDetailView/CompanyPerformance/DropDown';\n\nimport { CompanyDefaultUser } from '../../../../theme/images';\nimport {\n PartnersStatusOptions,\n PartnersSortByOptions,\n PATH_CUSTOMER_DETAILS,\n} from '../../../../constants';\nimport {\n WhiteCard,\n Table,\n DropdownIndicator,\n PageLoader,\n CommonPagination,\n NoData,\n} from '../../../../common';\n\nexport default function PartnersList({\n timeFrame,\n timeFrameType,\n isTimeFrameChange,\n setIsTimeFrameChange,\n onTabClick,\n viewComponent,\n isDesktop,\n isTablet,\n selectedNavigation,\n}) {\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedStatus, setSelectedStatus] = useState('any');\n const [partnerLoader, setPartnerLoader] = useState(false);\n const [partnerData, setPartnerData] = useState([]);\n const [partnerCount, setPartnerCount] = useState(null);\n const [pageNumber, setPageNumber] = useState();\n const { Option, SingleValue } = components;\n const [responseId, setResponseId] = useState(null);\n\n const [selectedSortBy, setSelectedSortBy] = useState({\n value: 'total_outstanding',\n label: 'Total Outstanding',\n });\n\n const history = useHistory();\n\n const getPartners = useCallback(\n (searchKey, status, sortBy, page) => {\n setPartnerLoader(true);\n getFinanceInvoices(\n 'partner',\n searchKey,\n status,\n sortBy,\n timeFrameType,\n timeFrame,\n page,\n selectedNavigation,\n ).then((res) => {\n if (res && res.status === 400) {\n setPartnerLoader(false);\n }\n if (res && res.status === 200) {\n if (res.data && res.data.results) {\n setPartnerData(res.data.results);\n setPartnerCount(res.data.count);\n }\n setPartnerLoader(false);\n setPageNumber(page);\n }\n });\n },\n [timeFrameType, timeFrame, selectedNavigation],\n );\n\n useEffect(() => {\n if (responseId === null || isTimeFrameChange) {\n getPartners(searchQuery, selectedStatus, selectedSortBy.value, 1);\n setResponseId('12345');\n setIsTimeFrameChange(false);\n }\n }, [\n getPartners,\n searchQuery,\n selectedStatus,\n selectedSortBy,\n responseId,\n setIsTimeFrameChange,\n isTimeFrameChange,\n ]);\n\n const filterOption = (props) => (\n \n );\n\n const singleFilterOption = (props) => (\n \n \n {`Sort by: ${props.data.label}`}\n \n\n
    {props.data.sub}
    \n
    \n );\n\n const bindAmount = (orignalNumber, decimalDigits = 2, isRounded = false) => {\n let number = Number(orignalNumber);\n if (number !== undefined && number !== null) {\n number = number\n .toFixed(decimalDigits)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n if (isRounded) {\n const no = number.toString().split('.');\n if (no[1] === '00') {\n return no[0];\n }\n }\n\n return number;\n };\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const debouncedSave = useCallback(\n debounce(\n (searchKey, status, sortBy, page) =>\n getPartners(searchKey, status, sortBy, page),\n 500,\n ),\n [],\n );\n\n const onHandleSearch = (event) => {\n setSearchQuery(event.target.value);\n debouncedSave(event.target.value, selectedStatus, selectedSortBy.value, 1);\n };\n\n const handleResetFilter = () => {\n $('.checkboxes input:radio').filter(\"[value='any']\").prop('checked', true);\n setSelectedStatus('any');\n setSearchQuery('');\n setSelectedSortBy({\n value: 'total_outstanding',\n label: 'Total Outstanding',\n });\n getPartners('', 'any', 'total_outstanding', 1);\n };\n\n const handleStatusChange = (event) => {\n setSelectedStatus(event.target.value);\n getPartners(searchQuery, event.target.value, selectedSortBy.value, 1);\n };\n\n const handleSortByFilter = (event) => {\n setSelectedSortBy(event);\n getPartners(searchQuery, selectedStatus, event.value, 1);\n };\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getPartners(searchQuery, selectedStatus, selectedSortBy.value, currentPage);\n };\n\n const renderSortByDropDown = () => {\n return DropDown(\n 'BT-PartnersListSortOptionFilter',\n '',\n PartnersSortByOptions,\n PartnersSortByOptions &&\n PartnersSortByOptions[0] &&\n PartnersSortByOptions[0].label,\n getSelectComponents,\n handleSortByFilter,\n false,\n null,\n selectedSortBy,\n );\n };\n\n const renderTableData = (item) => {\n return (\n \n history.push(\n PATH_CUSTOMER_DETAILS.replace(\n ':id',\n item.customer && item.customer.id,\n ),\n selectedNavigation,\n )\n }\n key={item.id}\n >\n \n {' '}\n \n
    \n
    {item.customer.name}
    \n
    \n \n \n ${bindAmount(item.total_outstanding, 2, true)}\n \n \n ${bindAmount(item.total_overdue, 2, true)}\n \n \n {`${\n item.avg_days_past_due !== 0\n ? item.avg_days_past_due\n .toFixed(1)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n : 0\n } days`}\n \n \n {`${bindAmount(item.paid_by_due_date, 0, true)} %`}\n \n \n );\n };\n\n const renderPartnersTable = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n {partnerData && partnerData.map((item) => renderTableData(item))}\n \n
    \n Partner Name\n \n Total Outstanding\n \n Total OverDue\n \n {' '}\n Avg. Days Past Due\n \n {' '}\n Paid By Due Date\n
    \n );\n };\n\n const renderTabletInvoicesTable = () => {\n return (\n <>\n {partnerData && partnerData.length > 0 ? (\n partnerData &&\n partnerData.map((item) => (\n \n history.push(\n PATH_CUSTOMER_DETAILS.replace(\n ':id',\n item.customer && item.customer.id,\n ),\n selectedNavigation,\n )\n }\n key={item.id}\n className=\"mb-3 cursor\"\n CompanyName={item.customer.name}\n label=\"TOTAL OUTSTANDING\"\n labelInfo={`$${bindAmount(item.total_outstanding, 2, true)}`}\n label1=\"TOTAL OVERDUE\"\n labelInfo1={`$${bindAmount(item.total_overdue, 2, true)}`}\n label2=\"AVG. DAYS PAST DUE\"\n labelInfo2={`${\n item.avg_days_past_due === 0\n ? item.avg_days_past_due\n .toFixed(1)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n : 0\n } days`}\n label3=\"PAID BY DUE DATE\"\n labelInfo3={`${bindAmount(item.paid_by_due_date, 0, true)} %`}\n />\n ))\n ) : (\n No partners Found\n )}\n \n );\n };\n\n return (\n <>\n
    \n {isDesktop ? (\n \n ) : null}\n \n
    \n
    \n {isDesktop || isTablet ? (\n <>\n \n
    \n
    \n
    Partners
    {' '}\n
    \n \n {renderSortByDropDown()}\n
    \n
    \n
    \n\n {partnerLoader ? (\n \n ) : partnerData && partnerData.length > 0 ? (\n <>\n {renderPartnersTable()}\n \n \n ) : (\n No partners Found\n )}\n \n \n ) : (\n // for mobile view\n <>\n
    \n
    \n
    \n
    Invoices
    {' '}\n
    \n
    {renderSortByDropDown()}
    \n
    \n\n {partnerLoader ? (\n \n ) : (\n <>\n {renderTabletInvoicesTable()}\n \n \n )}\n
    \n \n )}\n
    \n \n );\n}\n\nPartnersList.defaultProps = {\n onTabClick: () => {},\n selectedNavigation: '',\n timeFrame: {},\n timeFrameType: '',\n isTimeFrameChange: false,\n setIsTimeFrameChange: () => {},\n};\nPartnersList.propTypes = {\n onTabClick: func,\n viewComponent: string.isRequired,\n isDesktop: bool.isRequired,\n isTablet: bool.isRequired,\n selectedNavigation: string,\n timeFrame: objectOf(string, string),\n timeFrameType: string,\n isTimeFrameChange: bool,\n setIsTimeFrameChange: func,\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport DatePicker from 'react-datepicker';\nimport { func, string } from 'prop-types';\n\nimport Theme from '../../../../theme/Theme';\nimport { getDSPFinances } from '../../../../api';\nimport { CaretUp, CloseIcon } from '../../../../theme/images';\nimport {\n FinanceDateTypeOptions,\n DSPFinanceMetrics,\n monthNames,\n} from '../../../../constants';\nimport {\n Card,\n ModalRadioCheck,\n Button,\n CustomDateRange,\n DropDownSelectMonthPicker,\n} from '../../../../common';\n\nexport default function Invoice({\n setTimeFrame,\n setTimeFrameType,\n setIsTimeFrameChange,\n selectedNavigation,\n}) {\n const mounted = useRef(false);\n const dropdownRef = useRef(null);\n const currentDate = new Date();\n const [dspData, setDSPData] = useState([]);\n const [responseId, setResponseId] = useState(null);\n const [showDropdown, setShowDropdown] = useState({ show: false });\n currentDate.setDate(currentDate.getDate() - 3);\n const [state, setState] = useState([currentDate, currentDate]);\n const [range, setRange] = useState([currentDate, currentDate]);\n const [selectedDateType, setSelectedDateType] = useState(\n FinanceDateTypeOptions[0].value,\n );\n const [dummyDateType, setDummayDateType] = useState(\n FinanceDateTypeOptions[0].value,\n );\n const [dummayDateRange, setDummayDateRange] = useState([\n currentDate,\n currentDate,\n ]);\n\n const handleClickOutside = (event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowDropdown({ show: false });\n setDummayDateType(selectedDateType);\n }\n };\n\n const getDSPdata = useCallback((dateType, startDate, endDate) => {\n getDSPFinances(dateType, startDate, endDate, selectedNavigation).then(\n (res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n // setInvoiceLoader(false);\n }\n if (res && res.status === 200) {\n if (res.data && res.data) {\n setDSPData(res.data);\n }\n }\n }\n },\n );\n }, []);\n\n useEffect(() => {\n mounted.current = true;\n if (responseId === null) {\n getDSPdata(dummyDateType);\n setResponseId('12345');\n }\n document.addEventListener('click', handleClickOutside, true);\n\n return () => {\n mounted.current = false;\n document.removeEventListener('click', handleClickOutside, true);\n };\n }, []);\n\n const handleTimeTypeChange = (event) => {\n setDummayDateType(event.target.value);\n };\n\n const handleApply = () => {\n if (dummayDateRange !== null) {\n setState(dummayDateRange);\n let sd = dummayDateRange[0];\n let ed = dummayDateRange[1];\n setSelectedDateType(dummyDateType);\n setTimeFrameType(dummyDateType);\n setShowDropdown({ show: !showDropdown.show });\n setIsTimeFrameChange(true);\n if (dummyDateType === 'custom') {\n sd = `${\n dummayDateRange[0].getMonth() + 1\n }-${dummayDateRange[0].getFullYear()}`;\n ed = `${\n dummayDateRange[1].getMonth() + 1\n }-${dummayDateRange[1].getFullYear()}`;\n setTimeFrame({\n startDate: sd,\n endDate: ed,\n });\n\n getDSPdata(dummyDateType, sd, ed);\n return;\n }\n setState([currentDate, currentDate]);\n setRange([currentDate, currentDate]);\n getDSPdata(dummyDateType);\n }\n };\n\n const onDateChange = (date) => {\n if (date[1] === null) {\n setDummayDateRange([date[0], date[0]]);\n } else {\n setDummayDateRange(date);\n }\n setRange(date);\n };\n\n const bindAmount = (orignalNumber, decimalDigits = 2) => {\n const number = Number(orignalNumber);\n if (number !== undefined && number !== null) {\n return number\n .toFixed(decimalDigits)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n return number;\n };\n\n const renderTimeFilterLabel = () => {\n if (selectedDateType === 'allTime') {\n return 'All-Time';\n }\n const startMonth = `${\n monthNames[state[0].getMonth()]\n } '${state[0].getFullYear()}`;\n\n const endMonth = `${\n monthNames[state[1].getMonth()]\n } '${state[1].getFullYear()}`;\n\n if (startMonth === endMonth) {\n return startMonth;\n }\n return `${startMonth} - ${endMonth}`;\n };\n\n const displayTimeFilterOption = () => {\n return showDropdown.show ? (\n
    \n

    Select Date Range

    \n {\n setDummayDateType(selectedDateType);\n setShowDropdown({ show: !showDropdown.show });\n }}\n />\n
      \n {FinanceDateTypeOptions.map((item, index) => (\n
    • \n \n {' '}\n \n {item.label}\n handleTimeTypeChange(event)}\n defaultChecked={item.value === selectedDateType}\n />\n \n \n \n
    • \n ))}\n
    {' '}\n \n {dummyDateType === 'custom' ? (\n
    \n onDateChange(date)}\n startDate={range[0]}\n endDate={range[1]}\n maxDate={new Date()}\n selectsRange\n inline\n dateFormat=\"MM/yyyy\"\n showMonthYearPicker\n />\n
    \n ) : null}\n
    \n handleApply()}\n >\n Apply\n \n
    \n ) : null;\n };\n\n const renderTimeFilterDropDown = () => {\n return (\n
    \n \n {\n setShowDropdown({ show: !showDropdown.show });\n setRange(state);\n setDummayDateRange(state);\n }}\n >\n {renderTimeFilterLabel()}\n \n
    \n
    {displayTimeFilterOption()}
    \n \n
    \n );\n };\n\n const renderTitle = (data, key) => {\n if (data[key] === null) {\n return 'N/A';\n }\n if (typeof data[key] === 'undefined') {\n return '0';\n }\n if (\n key === 'total_overdue' ||\n key === 'expected_by_end_of_month' ||\n key === 'open_invoices'\n ) {\n return bindAmount(data[key], 0);\n }\n if (key === 'percentage_past_due') {\n return bindAmount(data[key], 2);\n }\n if (key === 'avg_days_past_due') {\n return bindAmount(data[key], 1);\n }\n\n return data[key];\n };\n\n const renderDSPFinanceMetrics = () => {\n return (\n
      \n {DSPFinanceMetrics.map((item) => (\n
    • \n {' '}\n \n
    • \n ))}\n
    \n );\n };\n\n return (\n <>\n
    \n
    \n
    \n {selectedNavigation === 'rev share'\n ? 'Rev Share Invoicing'\n : selectedNavigation === 'upsell'\n ? 'Upsell Invoices'\n : selectedNavigation === 'retainer'\n ? 'Monthly Retainer Invoices'\n : selectedNavigation === 'amc service'\n ? 'AMC Invoices'\n : 'DSP Invoices'}\n
    {' '}\n
    \n {renderTimeFilterDropDown()}\n
    \n {renderDSPFinanceMetrics()}\n \n );\n}\n\nInvoice.defaultProps = {\n setTimeFrame: () => {},\n setTimeFrameType: () => {},\n setIsTimeFrameChange: () => {},\n selectedNavigation: '',\n};\n\nInvoice.propTypes = {\n setTimeFrame: func,\n setTimeFrameType: func,\n setIsTimeFrameChange: func,\n selectedNavigation: string,\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { string } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport InvoicesList from './InvoiceList';\nimport PartnersList from './PartnersList';\nimport Invoice from './Invoice';\nimport { BackToTop, Tabs } from '../../../../common';\nimport {\n financeAPIRoutes,\n PATH_FINANCE_DASHBOARD,\n} from '../../../../constants';\n\nexport default function InvoiceContainer({ selectedNavigation }) {\n const history = useHistory();\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const isTablet = useMediaQuery({ minWidth: 768, maxWidth: 991 });\n const currentDate = new Date();\n const [timeFrame, setTimeFrame] = useState({\n startDate: `${currentDate.getMonth() + 1}-${currentDate.getFullYear()}`,\n endDate: `${currentDate.getMonth() + 1}-${currentDate.getFullYear()}`,\n });\n const [timeFrameType, setTimeFrameType] = useState('allTime');\n const [isTimeFrameChange, setIsTimeFrameChange] = useState(false);\n\n const { search } = useLocation();\n const query = React.useMemo(() => new URLSearchParams(search), [search]);\n const isPathCorrect = ['invoices', 'partners'].includes(query.get('tab'));\n const [viewComponent, setViewComponent] = useState(\n isPathCorrect ? query.get('tab') : 'invoices',\n );\n\n useEffect(() => {\n if (!isPathCorrect) {\n history.push(\n `${PATH_FINANCE_DASHBOARD}${financeAPIRoutes[selectedNavigation]}?tab=invoices`,\n );\n }\n }, [history, isPathCorrect, selectedNavigation]);\n\n const onTabClick = (selectedTab) => {\n setViewComponent(selectedTab);\n history.push(\n `${PATH_FINANCE_DASHBOARD}${financeAPIRoutes[selectedNavigation]}?tab=${selectedTab}`,\n );\n };\n\n return (\n <>\n \n {!isDesktop && (\n \n
      \n onTabClick('invoices')}\n role=\"presentation\"\n >\n Invoices\n \n\n onTabClick('partners')}\n role=\"presentation\"\n >\n Partners\n \n
    \n
    \n )}\n\n
    \n {viewComponent === 'invoices' ? (\n \n ) : (\n \n )}\n
    \n \n
    \n
    \n \n );\n}\n\nInvoiceContainer.defaultProps = {\n selectedNavigation: 'rev share',\n};\nInvoiceContainer.propTypes = { selectedNavigation: string };\n","/* eslint-disable jsx-a11y/label-has-for */\nimport React, { useState } from 'react';\n\nimport { arrayOf, func, string } from 'prop-types';\nimport { DebounceInput } from 'react-debounce-input';\nimport { useMediaQuery } from 'react-responsive';\n\nimport { SearchIcon, CaretUp } from '../../../../theme/images';\nimport {\n InputSearchWithRadius,\n WhiteCard,\n ModalRadioCheck,\n} from '../../../../common';\n\nexport default function DSPBillingFilters({\n searchQuery,\n selectedVendor,\n statusOptions,\n onHandleSearch,\n handleResetFilter,\n handleStatusChange,\n}) {\n const [isCollapseOpen, setIsCollapseOpen] = useState(false);\n const isDesktop = useMediaQuery({ minWidth: 992 });\n\n const renderSearchFunctionality = () => {\n return (\n
    \n \n {\n onHandleSearch(event);\n }}\n onKeyPress={() => {}}\n value={searchQuery}\n />\n\n \"search\"\n \n
    \n );\n };\n\n const renderStatus = () => {\n return (\n
    \n
    Vendor
    \n {statusOptions.map((item, index) => (\n \n {' '}\n \n {item.label}\n handleStatusChange(event)}\n defaultChecked={item.value === selectedVendor}\n />\n \n \n \n ))}\n
    \n );\n };\n\n return (\n
    \n \n
    \n
    \n
    Filters
    \n
    \n
    \n handleResetFilter()}\n >\n Reset filters\n
    \n
    \n {!isDesktop ? (\n setIsCollapseOpen(!isCollapseOpen)}\n >\n
    \n \n
    \n
    \n ) : null}\n {isDesktop || isCollapseOpen ? (\n <>\n {renderSearchFunctionality()}\n {renderStatus()}\n \n ) : null}\n \n \n \n );\n}\n\nDSPBillingFilters.defaultProps = {\n searchQuery: '',\n selectedVendor: '',\n statusOptions: [],\n onHandleSearch: () => {},\n handleResetFilter: () => {},\n handleStatusChange: () => {},\n};\n\nDSPBillingFilters.propTypes = {\n searchQuery: string,\n selectedVendor: string,\n statusOptions: arrayOf(Array),\n onHandleSearch: func,\n handleResetFilter: func,\n handleStatusChange: func,\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport styled from 'styled-components';\nimport $ from 'jquery';\nimport dayjs from 'dayjs';\nimport DatePicker from 'react-datepicker';\nimport { components } from 'react-select';\nimport { func } from 'prop-types';\nimport { useMediaQuery } from 'react-responsive';\nimport 'react-datepicker/dist/react-datepicker.css';\n\nimport DSPBillingFilters from './DSPBillingFilters';\nimport TableMobileView from '../../../../common/TableMobileView';\nimport Theme from '../../../../theme/Theme';\nimport { DropDown } from '../../../Customer/CustomerDetailView/CompanyPerformance/DropDown';\nimport { getDSPBillingMetrics, getBills } from '../../../../api';\nimport {\n CaretUp,\n CloseIcon,\n CompanyDefaultUser,\n} from '../../../../theme/images';\nimport {\n FinanceDateTypeOptions,\n DSPBillingMetrics,\n BillingVendorOptions,\n BillingSortByOptions,\n monthNames,\n StatusColorSet,\n getInvoiceStatusKey,\n invoiceStatusIcons,\n} from '../../../../constants';\nimport {\n Card,\n ModalRadioCheck,\n Button,\n WhiteCard,\n DropdownIndicator,\n PageLoader,\n CommonPagination,\n Status,\n Table,\n CustomDateRange,\n DropDownSelectMonthPicker,\n} from '../../../../common';\n\nexport default function DSPBillingContainer() {\n const mounted = useRef(false);\n const currentDate = new Date();\n const dropdownRef = useRef(null);\n\n const [timeFrame, setTimeFrame] = useState({\n startDate: `${currentDate.getMonth() + 1}-${currentDate.getFullYear()}`,\n endDate: `${currentDate.getMonth() + 1}-${currentDate.getFullYear()}`,\n });\n\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedVendor, setSelectedVendor] = useState(\n 'Amazon Advertising LLC',\n );\n const [billingLoader, setBillingLoader] = useState(false);\n const [billingData, setBillingData] = useState([]);\n const [billsCount, setBillsCount] = useState(null);\n const [pageNumber, setPageNumber] = useState();\n const isDesktop = useMediaQuery({ minWidth: 992 });\n const isTablet = useMediaQuery({ minWidth: 768, maxWidth: 991 });\n const [showDropdown, setShowDropdown] = useState({ show: false });\n const [dspMetricsData, setDSPMetricsData] = useState({\n 'Amazon Advertising LLC': {\n total_bills: 0,\n total_amount: 0,\n },\n 'Amazon Online UK Limited': {\n total_bills: 0,\n total_amount: 0,\n },\n 'Amazon Online UK Limited (EUR)': {\n total_bills: 0,\n total_amount: 0,\n },\n 'Amazon Commercial Services Pty Ltd.': {\n total_bills: 0,\n total_amount: 0,\n },\n });\n const { Option, SingleValue } = components;\n const [responseId, setResponseId] = useState(null);\n const [selectedSortBy, setSelectedSortBy] = useState({\n value: '',\n label: 'Status',\n });\n currentDate.setDate(currentDate.getDate() - 3);\n const [state, setState] = useState([currentDate, currentDate]);\n const [range, setRange] = useState([currentDate, currentDate]);\n const [dummyDateRange, setdummyDateRange] = useState([\n currentDate,\n currentDate,\n ]);\n const [selectedDateType, setSelectedDateType] = useState(\n FinanceDateTypeOptions[0].value,\n );\n const [dummyDateType, setDummayDateType] = useState(\n FinanceDateTypeOptions[0].value,\n );\n\n const getBillingMetricsdata = useCallback((dateType, startDate, endDate) => {\n getDSPBillingMetrics(dateType, startDate, endDate).then((res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n // setInvoiceLoader(false);\n }\n if (res && res.status === 200) {\n if (res.data && res.data) {\n setDSPMetricsData(res.data);\n }\n }\n }\n });\n }, []);\n\n const getBillsData = useCallback(\n (searchKey, vendor, sortBy, page, dateType, dateRange) => {\n setBillingLoader(true);\n getBills(searchKey, vendor, sortBy, page, dateType, dateRange).then(\n (res) => {\n if (mounted.current) {\n if (res && res.status === 400) {\n setBillingLoader(false);\n }\n if (res && res.status === 200) {\n if (res.data && res.data.results) {\n setBillingData(res.data.results);\n setBillsCount(res.data.count);\n }\n setBillingLoader(false);\n setPageNumber(page);\n }\n }\n },\n );\n },\n [],\n );\n\n useEffect(() => {\n mounted.current = true;\n if (responseId === null) {\n getBillingMetricsdata(dummyDateType);\n getBillsData(\n searchQuery,\n selectedVendor,\n selectedSortBy.value,\n 1,\n selectedDateType,\n timeFrame,\n );\n setResponseId('12345');\n }\n return () => {\n mounted.current = false;\n };\n }, [\n responseId,\n getBillingMetricsdata,\n dummyDateType,\n getBillsData,\n searchQuery,\n selectedVendor,\n selectedSortBy,\n selectedDateType,\n timeFrame,\n ]);\n\n const handleTimeTypeChange = (event) => {\n setDummayDateType(event.target.value);\n };\n\n const handleApply = () => {\n setSelectedDateType(dummyDateType);\n setShowDropdown({ show: !showDropdown.show });\n if (dummyDateType === 'custom') {\n setState(dummyDateRange);\n let sd = dummyDateRange[0];\n let ed = dummyDateRange[1];\n sd = `${\n dummyDateRange[0].getMonth() + 1\n }-${dummyDateRange[0].getFullYear()}`;\n ed = `${\n dummyDateRange[1].getMonth() + 1\n }-${dummyDateRange[1].getFullYear()}`;\n setTimeFrame({\n startDate: sd,\n endDate: ed,\n });\n getBillingMetricsdata(dummyDateType, sd, ed);\n getBillsData(\n searchQuery,\n selectedVendor,\n selectedSortBy.value,\n 1,\n dummyDateType,\n {\n startDate: sd,\n endDate: ed,\n },\n );\n return;\n }\n setState([currentDate, currentDate]);\n setRange([currentDate, currentDate]);\n setdummyDateRange([currentDate, currentDate]);\n getBillingMetricsdata(dummyDateType);\n getBillsData(\n searchQuery,\n selectedVendor,\n selectedSortBy.value,\n 1,\n dummyDateType,\n timeFrame,\n );\n };\n\n const handleSortByFilter = (event) => {\n setSelectedSortBy(event);\n getBillsData(\n searchQuery,\n selectedVendor,\n event.value,\n 1,\n selectedDateType,\n timeFrame,\n );\n };\n\n const onHandleSearch = (event) => {\n setSearchQuery(event.target.value);\n getBillsData(\n event.target.value,\n selectedVendor,\n selectedSortBy.value,\n 1,\n selectedDateType,\n timeFrame,\n );\n };\n\n const handleResetFilter = () => {\n $('.checkboxes input:radio')\n .filter(\"[value='Amazon Advertising LLC']\")\n .prop('checked', true);\n setSelectedVendor('Amazon Advertising LLC');\n setSearchQuery('');\n setSelectedSortBy({ value: '', label: 'Status' });\n getBillsData(\n '',\n 'Amazon Advertising LLC',\n '',\n 1,\n selectedDateType,\n timeFrame,\n );\n };\n\n const handleStatusChange = (event) => {\n setSelectedVendor(event.target.value);\n getBillsData(\n searchQuery,\n event.target.value,\n selectedSortBy.value,\n 1,\n selectedDateType,\n timeFrame,\n );\n };\n\n const handlePageChange = (currentPage) => {\n setPageNumber(currentPage);\n getBillsData(\n searchQuery,\n selectedVendor,\n selectedSortBy.value,\n currentPage,\n selectedDateType,\n timeFrame,\n );\n };\n\n const filterOption = ({ data, ...props }) => (\n \n );\n\n const singleFilterOption = (props) => (\n \n \n {`Sort by: ${props.data.label}`}\n \n
    {props.data.sub}
    \n
    \n );\n\n const getSelectComponents = () => {\n return {\n Option: filterOption,\n SingleValue: singleFilterOption,\n DropdownIndicator,\n };\n };\n\n const bindAmount = (orignalNumber, decimalDigits = 2) => {\n const number = Number(orignalNumber);\n if (number !== undefined && number !== null) {\n return number\n .toFixed(decimalDigits)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n return number;\n };\n\n const onDateChange = (date) => {\n if (date[1] === null) {\n setdummyDateRange([date[0], date[0]]);\n } else {\n setdummyDateRange(date);\n }\n setRange(date);\n };\n\n const bindCurrencySymbol = () => {\n switch (selectedVendor) {\n case 'Amazon Advertising LLC':\n return '$';\n case 'Amazon Online UK Limited':\n return '£';\n\n case 'Amazon Online UK Limited (EUR)':\n return '€';\n\n case 'Amazon Commercial Services Pty Ltd.':\n return 'A$';\n\n default:\n break;\n }\n return '$';\n };\n\n const displayTimeFilterOption = () => {\n return showDropdown.show ? (\n
    \n

    Select Date Range

    \n {\n setDummayDateType(selectedDateType);\n setRange(state);\n setShowDropdown({ show: !showDropdown.show });\n setdummyDateRange(state);\n }}\n />\n
      \n {FinanceDateTypeOptions.map((item, index) => (\n
    • \n \n {' '}\n \n {item.label}\n handleTimeTypeChange(event)}\n defaultChecked={item.value === selectedDateType}\n />\n \n \n \n
    • \n ))}\n
    {' '}\n \n {dummyDateType === 'custom' ? (\n
    \n onDateChange(date)}\n startDate={range[0]}\n endDate={range[1]}\n maxDate={new Date()}\n selectsRange\n inline\n dateFormat=\"MM/yyyy\"\n showMonthYearPicker\n />\n
    \n ) : null}\n
    \n handleApply()}\n >\n Apply\n \n
    \n ) : null;\n };\n\n const renderTimeFilterLabel = () => {\n if (selectedDateType === 'allTime') {\n return 'All-Time';\n }\n\n const startMonth = `${\n monthNames[state[0].getMonth()]\n } '${state[0].getFullYear()}`;\n\n const endMonth = `${\n monthNames[state[1].getMonth()]\n } '${state[1].getFullYear()}`;\n\n if (startMonth === endMonth) {\n return startMonth;\n }\n return `${startMonth} - ${endMonth}`;\n };\n\n const renderSortByDropDown = () => {\n return DropDown(\n 'BT-DSPBillingContainerSortOption',\n '',\n BillingSortByOptions,\n BillingSortByOptions &&\n BillingSortByOptions[0] &&\n BillingSortByOptions[0].label,\n getSelectComponents,\n handleSortByFilter,\n false,\n null,\n selectedSortBy,\n );\n };\n\n const renderTimeFilterDropDown = () => {\n return (\n
    \n \n {\n setShowDropdown({ show: !showDropdown.show });\n }}\n >\n {renderTimeFilterLabel()}\n \n
    \n
    {displayTimeFilterOption()}
    \n \n \n );\n };\n\n const renderDSPFinanceMetrics = () => {\n return (\n
    \n {DSPBillingMetrics.map((item) => (\n
    \n {' '}\n \n
    \n ))}\n
    \n );\n };\n\n const renderTableData = (item) => {\n const billDate = dayjs(item.bill_date).format('MM/DD/YY');\n const dueDate = dayjs(item.due_date).format('MM/DD/YY');\n return (\n \n \n {' '}\n \n
    \n {item.customer && item.customer.name}\n
    \n
    #{item.bill_number}
    \n \n \n {`${bindCurrencySymbol()}${bindAmount(item.amount, 0, true)}`}\n \n {billDate}\n {dueDate}\n \n \n
    \n \n \n );\n };\n\n const renderBillsTable = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n {billingData && billingData.map((item) => renderTableData(item))}\n \n
    \n Bill #\n \n Amount\n \n Bill Date\n \n {' '}\n Due Date\n \n {' '}\n Status\n
    \n );\n };\n\n const renderTabletBillsTable = () => {\n return (\n <>\n {billingData && billingData.length > 0 ? (\n billingData &&\n billingData.map((item) => (\n \n ))\n ) : (\n No Bills Found\n )}\n \n );\n };\n\n return (\n <>\n
    \n
    \n
    DSP Billing
    {' '}\n
    \n {renderTimeFilterDropDown()}\n
    \n {renderDSPFinanceMetrics()}\n\n
    \n \n
    \n {isDesktop || isTablet ? (\n \n
    \n
    \n
    Bills
    {' '}\n
    \n \n {renderSortByDropDown()}\n
    \n
    \n
    \n\n {billingLoader ? (\n \n ) : billingData && billingData.length > 0 ? (\n <>\n {renderBillsTable()}\n \n \n ) : (\n No Bills Found\n )}\n \n ) : (\n
    \n
    \n
    \n
    Bills
    {' '}\n
    \n
    {renderSortByDropDown()}
    \n
    \n\n {billingLoader ? (\n \n ) : (\n <>\n {renderTabletBillsTable()}\n \n \n )}\n
    \n )}\n
    \n
    \n \n );\n}\n\nDSPBillingContainer.defaultProps = {\n data: () => {},\n};\n\nDSPBillingContainer.propTypes = {\n data: func,\n};\n\nconst NoData = styled.div`\n margin: 3em;\n text-align: center;\n`;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { shape } from 'prop-types';\nimport { Redirect, Route, Switch, useHistory } from 'react-router-dom';\n\nimport InvoiceContainer from './Invoice/InvoiceContainer';\nimport DSPBillingContainer from './DSPBilling/DSPBillingContainer';\nimport PendingApprovalsDashboardContainer from '../AdManagerAdminDashboard/PendingApprovalsDashboard/PendingApprovalsDashboardContainer';\nimport { getPendingApprovalRequests } from '../../../api/PendingApprovalsDashboardApi';\nimport { Tabs } from '../../../common';\nimport { DashboardCard } from '../../../theme/Global';\nimport {\n financeNavigationOptions,\n financeAPIRoutes,\n financeDefaultTab,\n PATH_FINANCE_DASHBOARD,\n pendingApprovalOrderOptions,\n pendingApprovalAccessEmails,\n} from '../../../constants';\n\nexport default function FinanceDashboardContainer({ userInfo }) {\n const mounted = useRef(false);\n const history = useHistory();\n\n const [viewComponent, setViewComponent] = useState(\n financeDefaultTab[window.location.pathname.split('/').pop()] || 'retainer',\n );\n const [pendingApprovalListDataCount, setPendingApprovalListDataCount] =\n useState(0);\n const [callPendingApprovalAPI, setCallPendingApprovalAPI] = useState(true);\n const isHavePendingApprovalAccess =\n pendingApprovalAccessEmails.includes(userInfo?.email) ||\n userInfo?.is_primary_request_approvers ||\n userInfo?.is_final_request_approvers;\n\n // to disaply the pending aprroval count, we need to call API\n const getPendingApprovalData = useCallback(() => {\n getPendingApprovalRequests(pendingApprovalOrderOptions[0]?.value, '', 1)\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setPendingApprovalListDataCount(res?.data?.count || 0);\n } else {\n setPendingApprovalListDataCount(0);\n }\n setCallPendingApprovalAPI(false);\n }\n })\n .catch(() => {\n setPendingApprovalListDataCount(0);\n });\n }, []);\n\n useEffect(() => {\n if (isHavePendingApprovalAccess && callPendingApprovalAPI) {\n mounted.current = true;\n getPendingApprovalData();\n }\n return () => {\n mounted.current = false;\n };\n }, [\n getPendingApprovalData,\n isHavePendingApprovalAccess,\n callPendingApprovalAPI,\n ]);\n\n return (\n \n
    \n \n
      \n {financeNavigationOptions.map((navigation) => (\n <>\n {navigation.key === 'pendingApprovals' &&\n !isHavePendingApprovalAccess ? null : (\n {\n setViewComponent(navigation.key);\n history.push(\n `${PATH_FINANCE_DASHBOARD}${\n financeAPIRoutes[navigation.key]\n }`,\n );\n }}\n role=\"presentation\"\n >\n {navigation.value}\n {navigation.key === 'pendingApprovals' ? (\n \n {pendingApprovalListDataCount}\n \n ) : null}\n \n )}\n \n ))}\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n {isHavePendingApprovalAccess ? (\n \n \n \n ) : null}\n\n (\n \n \n \n )}\n />\n \n
    \n
    \n );\n}\n\nFinanceDashboardContainer.defaultProps = { userInfo: {} };\nFinanceDashboardContainer.propTypes = {\n userInfo: shape({}),\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Redirect, Route, Switch, useHistory } from 'react-router-dom';\n\nimport PendingApprovalsDashboard from '../AdManagerAdminDashboard/PendingApprovalsDashboard/PendingApprovalsDashboardContainer';\nimport { getPendingApprovalRequests } from '../../../api/PendingApprovalsDashboardApi';\nimport { Tabs } from '../../../common';\nimport { DashboardCard } from '../../../theme/Global';\nimport {\n PATH_DASHBOARD,\n pendingApprovalOrderOptions,\n pendingApprovalTab,\n} from '../../../constants';\n\nexport default function PendingApprovalsContainerForOtherRole() {\n const mounted = useRef(false);\n const history = useHistory();\n\n const [viewComponent, setViewComponent] = useState('pendingApprovals');\n const [pendingApprovalListDataCount, setPendingApprovalListDataCount] =\n useState(0);\n const [callPendingApprovalAPI, setCallPendingApprovalAPI] = useState(true);\n\n // to disaply the pending aprroval count, we need to call API\n const getPendingApprovalData = useCallback(() => {\n getPendingApprovalRequests(pendingApprovalOrderOptions[0]?.value, '', 1)\n .then((res) => {\n if (mounted.current) {\n if (res?.status === 200) {\n setPendingApprovalListDataCount(res?.data?.count || 0);\n } else {\n setPendingApprovalListDataCount(0);\n }\n setCallPendingApprovalAPI(false);\n }\n })\n .catch(() => {\n setPendingApprovalListDataCount(0);\n });\n }, []);\n\n useEffect(() => {\n if (callPendingApprovalAPI) {\n mounted.current = true;\n getPendingApprovalData();\n }\n return () => {\n mounted.current = false;\n };\n }, [getPendingApprovalData, callPendingApprovalAPI]);\n\n return (\n \n
    \n \n
      \n {pendingApprovalTab.map((navigation) => (\n <>\n {\n setViewComponent(navigation.key);\n history.push(`${PATH_DASHBOARD}pendingApprovals`);\n }}\n role=\"presentation\"\n >\n {navigation.value}\n {navigation.key === 'pendingApprovals' ? (\n \n {pendingApprovalListDataCount}\n \n ) : null}\n \n \n ))}\n
    \n\n \n \n \n \n\n (\n \n \n \n )}\n />\n \n
    \n
    \n
    \n );\n}\n\nPendingApprovalsContainerForOtherRole.defaultProps = {};\nPendingApprovalsContainerForOtherRole.propTypes = {};\n","import React, { useEffect } from 'react';\n\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport AdvertisingDashboardContainer from './AdManagerAdminDashboard/AdvertisingDashboardContainer';\nimport FinanceDashboardContainer from './FinanceDashboard/FinanceDashboardContainer';\nimport PendingApprovalsContainerForOtherRole from './PendingApprovalsForOtherRole/PendingApprovalsContainerForOtherRole';\nimport { BrandPartnerDashboard } from '../../theme/Global';\nimport { GlobalNavbar } from '../../common';\nimport { dynamicErrorMsg } from '../../store/actions/userState';\nimport { pendingApprovalAccessEmails } from '../../constants';\n\nconst _ = require('lodash');\n\nfunction DashboardContainer() {\n const userInfo = useSelector((state) => state.userState.userInfo);\n const isHavePendingApprovalAccess =\n pendingApprovalAccessEmails.includes(userInfo?.email) ||\n ((userInfo?.is_primary_request_approvers ||\n userInfo?.is_final_request_approvers ||\n userInfo?.is_dsp_amc_primary_request_approvers) &&\n userInfo?.role !== 'Customer');\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch(dynamicErrorMsg());\n }, [dispatch]);\n\n const dashboardRole = {\n 'Ad Manager': '',\n 'Ad Team Manager': '',\n 'Ad Manager Admin': '',\n 'Ad Specialist': '',\n 'BGS Manager': '',\n 'BGS Admin': '',\n BGS: '',\n Spreetail: '',\n };\n\n return (\n <>\n \n \n {_.has(dashboardRole, userInfo?.role) ? (\n \n ) : userInfo?.role?.includes('Finance') ? (\n \n ) : isHavePendingApprovalAccess ? (\n \n ) : null}\n \n \n );\n}\n\nexport default DashboardContainer;\n","import DashboardContainer from './DashboardContainer';\n\nexport default DashboardContainer;\n","import styled from 'styled-components';\n\nimport Theme from '../../theme/Theme';\n\nexport const ThanksPage = styled.div`\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n margin: 0 auto;\n\n .info {\n color: ${Theme.gray90};\n font-size: ${Theme.title};\n font-family: ${Theme.baseFontFamily};\n }\n`;\n\nexport const PageNotFounds = styled.div`\n text-align: center;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n .not-found {\n color: ${Theme.gray90};\n font-size: 16px;\n text-align: center;\n }\n`;\n","import React, { useCallback, useEffect, useState, useRef } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport queryString from 'query-string';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport UnauthorizedHeader from '../../common/UnauthorizedHeader';\nimport Theme from '../../theme/Theme';\nimport { updateBillingOffBoardingApproveReject } from '../../api';\nimport { PageLoader } from '../../common';\nimport { AccountSetupIcon, PageNotFoundImg } from '../../theme/images';\nimport { PageNotFounds, ThanksPage } from './Styles';\nimport { billingOffboardErrorMsg } from '../../constants';\n\nexport default function OffBoardingApproveReject() {\n const mounted = useRef(false);\n const history = useHistory();\n const { id } = useParams();\n const params = queryString.parse(history.location.search);\n const [loader, setLoader] = useState(false);\n const [apiError, setApiError] = useState();\n\n const userInfo = useSelector((state) => state.userState.userInfo);\n\n const firstRequestApprovalUser = userInfo?.is_primary_request_approvers;\n\n const onUpdateBillingOffboardingApproveReject = useCallback(() => {\n setLoader(true);\n setApiError('');\n updateBillingOffBoardingApproveReject(\n firstRequestApprovalUser\n ? params?.status === 'rejected'\n ? params?.status\n : 'partially approved'\n : params?.status,\n id,\n ).then((res) => {\n if (mounted.current) {\n if (res && res.status === 200) {\n setLoader(false);\n }\n if (res && res.status === 400) {\n if (billingOffboardErrorMsg.includes(res?.data?.request_status[0])) {\n setApiError(res?.data?.request_status[0]);\n } else if (\n res?.data?.request_status[0] ===\n 'This pause request has been already voided'\n ) {\n setApiError('This link is expired');\n } else {\n setApiError('Something Went Wrong');\n }\n }\n\n if (res && res.status === 403) {\n setApiError('You do not have permission to perform this action.');\n }\n\n if ((res && res?.status === 404) || res?.status === 401) {\n setApiError('Something Went Wrong');\n }\n\n setLoader(false);\n }\n });\n }, [id, firstRequestApprovalUser, params.status]);\n\n useEffect(() => {\n mounted.current = true;\n\n onUpdateBillingOffboardingApproveReject();\n\n return () => {\n mounted.current = false;\n };\n }, [onUpdateBillingOffboardingApproveReject]);\n\n return (\n <>\n \n \n {loader ? (\n \n ) : !apiError ? (\n <>\n \"check\"\n {params?.status === 'approved' ? (\n <>\n
    Thanks!
    \n

    \n Your approval has been processed successfully and all team\n members will be informed.\n

    \n

    \n You can close this tab when you’re ready.\n

    \n \n ) : (\n <>\n
    Thanks!
    \n

    \n Your rejection has been processed successfully.\n
    Please reach out to the BGS if you wish for them to\n submit another request.\n

    \n

    \n You can close this tab when you’re ready.\n

    \n \n )}\n \n ) : (\n \n \"not-found\"\n
    {apiError}
    \n {apiError !== 'This link is expired' ? (\n

    \n The page you’re looking for can’t be found. Double check the URL\n and try again.\n

    \n ) : null}\n
    \n )}\n
    \n \n );\n}\n","/* eslint no-else-return: \"off\" */\n\nimport React, { useEffect } from 'react';\n\nimport queryString from 'query-string';\nimport { useIdleTimer } from 'react-idle-timer';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Route, Switch, Redirect, useHistory } from 'react-router-dom';\n\nimport Header from './Header';\nimport CustomerMainContainer from '../components/Customer/CustomerDetailView/CustomerMainContainer';\nimport ReportsSectionContainer from '../components/ReportsSection/ReportsSectionContainer';\nimport { BBEGoalDashboardContainer } from '../components/BBEGoalDashboard';\n\nimport { userMe } from '../store/actions/index';\nimport { Summary } from '../components/OnBoardingCustomer';\nimport { clearToken } from '../store/actions/userState';\nimport ContractContainer from '../components/Contract/ContractContainer';\nimport { PageLoader, PageNotFound } from './index';\nimport { ArticleList, ArticleDetails } from '../components/KnowledgeBase';\nimport {\n CustomerListTablet,\n ProductDelegation,\n CustomerList,\n} from '../components/Customer';\nimport DashboardContainer from '../components/BrandPartner';\nimport {\n BrandAssetSummary,\n BrandAssetUpload,\n DelegationUpload,\n BrandAssetsPreview,\n} from '../components/BrandAssetGathering';\nimport {\n PATH_CUSTOMER_LIST,\n PATH_LOGIN,\n PATH_CUSTOMER_DETAILS,\n PATH_AGREEMENT,\n PATH_PAUSE_AGREEMENT,\n PATH_ROOT,\n PATH_ARTICLE_LIST,\n PATH_ARTICLE_DETAILS,\n PATH_CUSTOMER_LIST_TABLET,\n PATH_SUMMARY,\n PATH_CHOOSE_BRAND_DELEGATE,\n PATH_BRAND_ASSET,\n PATH_BRAND_ASSET_SUMMARY,\n PATH_BRAND_ASSET_PREVIEW,\n PATH_UPLOAD_PRODUCT_ASSET,\n PATH_BBE_GOAL_DASHBOARD,\n PATH_REPORTS_SECTION,\n PATH_BILLING_OFF_BOARDING_APPROVAL_REJECT,\n dashboardRolePaths,\n pageTitleConditions,\n PATH_GOALS_AND_STRATEGY,\n PATH_DASHBOARD,\n pendingApprovalAccessEmails,\n} from '../constants';\n\nimport OffBoardingApproveReject from '../components/BillingOffBoarding/BillingOffBoardingApproveReject';\nimport useGoogleAnalytics from '../hooks/useGoogleAnalytics';\nimport GoalsAndCosContainer from '../components/Customer/CustomerDetailView/GoalsAndCOS/GoalsAndCosContainer';\n\nexport default function AuthenticationComponent() {\n const isAuthenticated = useSelector(\n (state) => state.userState.isAuthenticated,\n );\n const userInfo = useSelector((state) => state.userState.userInfo);\n const hideHeader = useSelector((state) => state.userState.hideHeader);\n const KBTitleBoardDetails = useSelector((state) => state.userState.board);\n const dispatch = useDispatch();\n const history = useHistory();\n useGoogleAnalytics();\n\n const isHavePendingApprovalAccess =\n pendingApprovalAccessEmails.includes(userInfo?.email) ||\n ((userInfo?.is_primary_request_approvers ||\n userInfo?.is_final_request_approvers ||\n userInfo?.is_dsp_amc_primary_request_approvers) &&\n userInfo?.role !== 'Customer');\n\n // Call the function if only page url is get changed (Code to add page title)\n useEffect(() => {\n pageTitleConditions(history.location, KBTitleBoardDetails);\n history.listen((location) => {\n pageTitleConditions(location, KBTitleBoardDetails);\n });\n }, [history, KBTitleBoardDetails]);\n\n const handleOnIdle = () => {\n dispatch(clearToken());\n };\n\n // logout after 3hrs.\n useIdleTimer({\n timeout: 10800000,\n onIdle: handleOnIdle,\n debounce: 500,\n });\n\n useEffect(() => {\n if (\n isAuthenticated &&\n Object.keys(userInfo).length > 0 &&\n history.location.pathname === PATH_ROOT\n ) {\n history.push(PATH_CUSTOMER_LIST);\n }\n }, [history, isAuthenticated, userInfo]);\n\n const generateHeader = () => {\n if (history.location.pathname.includes('account-setup')) return '';\n if (history.location.pathname.includes('agreement')) return '';\n if (userInfo?.role?.includes('Customer'))\n return
    ;\n if (\n !history.location.pathname.includes('account-setup') &&\n !userInfo?.role?.includes('Customer') &&\n !history.location.pathname.includes('/brand-asset/') &&\n hideHeader === false\n )\n return (\n <>\n
    \n
    \n
    \n \n );\n return '';\n };\n\n if (isAuthenticated && Object.keys(userInfo).length > 0) {\n return (\n <>\n {generateHeader()}\n \n {/* Customer */}\n {!userInfo?.role?.includes('Customer') ? (\n \n ) : (\n ''\n )}\n \n \n {/* Contract */}\n \n \n\n {/* Account Setup */}\n {/* Knowledge Base */}\n {!userInfo?.role?.includes('Customer') ? (\n \n ) : (\n ''\n )}\n {!userInfo?.role?.includes('Customer') ? (\n \n ) : (\n ''\n )}\n\n {/* BBE-goal dashboard */}\n \n\n \n\n {/* goals and strategy */}\n \n\n {/* AD MANAGER DASHBOARD, BGS DASHBOARD, FINANCE DASHBOARD PATH */}\n {Object.keys(dashboardRolePaths).includes(userInfo?.role) ? (\n \n ) : isHavePendingApprovalAccess ? (\n \n ) : null}\n\n {/* off boarding cancel agreement aprroved/reject */}\n \n\n {/* \n \n */}\n\n {/* On-Boarding Customer */}\n \n {/* Brand Assets */}\n \n \n \n \n\n \n\n \n {/* Brand Asset Gathering */}\n {/* */}\n \n \n );\n } else {\n const token = localStorage.getItem('token');\n if (token) {\n dispatch(userMe(history));\n return ;\n } else {\n let stringified = '';\n if (history.location.pathname !== '/') {\n stringified = queryString.stringify({\n callback: history.location.pathname + history.location.search,\n });\n }\n return (\n \n );\n }\n }\n}\n","import { useEffect } from 'react';\n\nimport ReactGA from 'react-ga';\n\nimport { useLocation } from 'react-router-dom';\n\nexport default function useGoogleAnalytics() {\n const location = useLocation();\n useEffect(() => {\n if (!window.location.href.includes('localhost')) {\n ReactGA.initialize(process.env.REACT_APP_GA_TRACKING_ID);\n ReactGA.pageview(location.pathname + location.search);\n }\n }, [location]);\n\n return null;\n}\n","import React from 'react';\n\nimport Modal from 'react-modal';\nimport { string, shape, bool, func } from 'prop-types';\n\nimport { CloseIcon } from '../../../theme/images';\nimport { ModalBox, PageLoader } from '../../../common';\nimport {\n PATH_COMPANY_DETAILS,\n PATH_UNAUTHORIZED_COMPANY_DETAILS,\n} from '../../../constants';\n\nexport default function VideoModal({\n showVideo,\n setShowVideo,\n isLoading,\n videoData,\n history,\n}) {\n const customStyles = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '900px ',\n width: '100% ',\n minHeight: '200px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n return (\n \n setShowVideo(false)}\n role=\"presentation\"\n />\n \n {isLoading.loader && isLoading.type === 'video' ? (\n \n ) : (\n
    \n \n
    \n )}\n
    \n \n );\n}\n\nVideoModal.propTypes = {\n showVideo: bool.isRequired,\n setShowVideo: func.isRequired,\n isLoading: shape({\n loader: bool,\n type: string,\n }).isRequired,\n videoData: shape({\n step_2_video: string,\n step_4_video: string,\n }).isRequired,\n history: shape({}).isRequired,\n};\n","/* eslint-disable array-callback-return */\n/* eslint-disable consistent-return */\n/* eslint-disable prefer-const */\n/* eslint-disable no-unused-vars */\n/* eslint-disable react/no-danger */\n/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useState, useEffect } from 'react';\n\n// third party imports\nimport queryString from 'query-string';\nimport { Collapse } from 'react-collapse';\nimport { useHistory } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\n\n// local imports\nimport AskSomeone from './AskSomeone';\nimport CheckSteps from './CheckSteps';\nimport BillingInfo from './BillingInfo';\nimport Header from '../../common/Header';\nimport CreateAccount from './CreateAccount';\nimport VideoModal from './Modals/VideoModal';\nimport CompanyDigital from './CompanyDigital';\nimport AmazonMerchant from './AmazonMerchant';\nimport NavigationHeader from './NavigationHeader';\nimport { getCustomerDetails } from '../../store/actions';\nimport { CollapseContainer } from './OnBoardingStyles';\nimport { CaretUp, VideoCall } from '../../theme/images';\nimport {\n OnBoardingBody,\n UnauthorizedHeader,\n GreyCard,\n PageLoader,\n CheckBox,\n} from '../../common';\nimport {\n accountSummary,\n getStepDetails,\n getUserData,\n getVideoLink,\n verifyStepToken,\n getBillingDetails,\n getAmazonAccountDetails,\n getDSPContact,\n getAmazonAccount,\n} from '../../api';\nimport {\n PATH_AMAZON_MERCHANT,\n PATH_BILLING_DETAILS,\n PATH_COMPANY_DETAILS,\n PATH_CUSTOMER_DETAILS,\n PATH_SUMMARY,\n PATH_THANKS,\n PATH_UNAUTHORIZED_COMPANY_DETAILS,\n PATH_UNAUTHORIZED_BILLING_DETAILS,\n PATH_UNAUTHORIZED_AMAZON_MERCHANT,\n PATH_CREATE_PASSWORD,\n PATH_ACCOUNT_SETUP,\n stepPath,\n customVideoStyle,\n delegatedInfo,\n PATH_LOGIN,\n PATH_AMAZON_ACCOUNT,\n PATH_UNAUTHORIZED_AMAZON_ACCOUNT,\n pageTitleConditions,\n whichStep,\n} from '../../constants';\nimport AmazonDeveloperAccess from './AmazonDeveloperAccess';\n\nexport default function MainContainer() {\n const history = useHistory();\n const dispatch = useDispatch();\n const params = queryString.parse(history?.location?.search);\n const data = useSelector((state) => state?.customerState?.data);\n const loader = useSelector((state) => state?.customerState?.isLoading);\n const [openCollapse, setOpenCollapse] = useState(false);\n // is assigned to someone else checkbox is checked or not is stored in isChecked state variable\n const [isChecked, setIsChecked] = useState(false);\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n // if history.location.pathname.includes('assigned') then assignedToSomeone variable is set to true\n const [assignedToSomeone, setAssignedToSomeone] = useState(false);\n const [stepData, setStepData] = useState({});\n const [verifiedStepData, setVerifiedStepData] = useState({});\n const [userInfo, setUserInfo] = useState({});\n const [showVideo, setShowVideo] = useState(false);\n const [videoData, setVideoData] = useState({});\n const [summaryData, setSummaryData] = useState([]);\n const [disableBtn, setDisableBtn] = useState(false);\n const [billingData, setBillingData] = useState({});\n const [apiError, setApiError] = useState({});\n const [formData, setFormData] = useState({});\n const [marketplaceDetails, setMarketplaceDetails] = useState({});\n const [showAmazonVideo, setShowAmazonVideo] = useState({});\n const [dspData, setDspData] = useState([]);\n const [showDSPContact, setshowDSPContact] = useState({\n show: false,\n sameAsBilling: true,\n });\n const [noAmazonAccount, setNoAmazonAccount] = useState(false);\n const [secondaryMarketplaces, setSecondaryMarketplaces] = useState([]);\n const localSeller = JSON.parse(localStorage.getItem('seller')) || [];\n const localVendor = JSON.parse(localStorage.getItem('vendor')) || [];\n\n // This two contains data of both primary & secondary marketplaces\n const [sellerMarketplaces, setSellerMarketplaces] = useState(localSeller);\n const [vendorMarketplaces, setVendorMarketplaces] = useState(localVendor);\n const [amazonAccountData, setAmazonAccountData] = useState([]);\n const [localNoAmazonAccount, setLocalNoAmazonAccount] = useState({});\n\n // Call the function if only page url is get changed (Code to add page title)\n useEffect(() => {\n pageTitleConditions(history?.location);\n history.listen((location) => {\n pageTitleConditions(location);\n });\n }, [history]);\n\n useEffect(() => {\n // Get value of no amazon account from localstorage and set into state variables\n const amazonLocalStorageValue = JSON.parse(\n localStorage.getItem('noAmazonAccount'),\n );\n if (\n amazonLocalStorageValue !== null &&\n amazonLocalStorageValue !== undefined\n ) {\n setLocalNoAmazonAccount({ noAmazonAccount: amazonLocalStorageValue });\n setNoAmazonAccount(localNoAmazonAccount.noAmazonAccount);\n }\n }, [noAmazonAccount]);\n\n useEffect(() => {\n // get seller and vendor market places from localstorage if available\n if (localSeller?.length) {\n setSellerMarketplaces(localSeller);\n }\n if (localVendor?.length) {\n setVendorMarketplaces(localVendor);\n }\n }, []);\n\n const getStepName = () => {\n for (const item of whichStep) {\n if (history?.location?.pathname.includes(item?.path)) {\n return item?.key === 'summary' ? '' : item?.key;\n }\n }\n return '';\n };\n\n const getAccountDetails = (id, showLoader = true) => {\n if (showLoader) setIsLoading({ loader: true, type: 'page' });\n getAmazonAccountDetails(\n 'amazon-account-details',\n localStorage.getItem('customer') || id,\n ).then((response) => {\n if (response?.data) {\n if (\n response?.data?.account_type === 'Hybrid' ||\n response?.data?.account_type === null\n ) {\n setNoAmazonAccount(\n Object.keys(localNoAmazonAccount)?.length\n ? localNoAmazonAccount?.localNoAmazonAccount\n : !!(\n response?.data?.Seller?.no_amazon_account &&\n response?.data?.Vendor?.no_amazon_account\n ),\n );\n } else {\n setNoAmazonAccount(\n Object.keys(localNoAmazonAccount)?.length\n ? localNoAmazonAccount?.localNoAmazonAccount\n : response?.data?.[response?.data?.account_type]\n ?.no_amazon_account ?? false,\n );\n }\n\n // data created for primary marketplace\n setMarketplaceDetails({\n marketplace: response?.data?.marketplace?.name?.label,\n marketplace_name: response?.data?.marketplace?.name?.value,\n customer: localStorage.getItem('customer') || id,\n marketplaceURL: response?.data?.marketplace?.name?.value,\n type: response?.data?.account_type,\n marketplaceId: response?.data?.marketplace?.id,\n Seller: localSeller?.length\n ? localSeller\n : response?.data?.marketplace && response?.data?.Seller,\n Vendor: localVendor?.length\n ? localVendor\n : response?.data?.marketplace && response?.data?.Vendor,\n url: response?.data?.marketplace?.url,\n });\n\n let sellerData = [];\n let vendorData = [];\n\n // Combine primary & secondary marketplaces of Seller\n // store secondary marketplace in sellerArray\n\n const sellerArray = localSeller?.length\n ? localSeller\n : response?.data?.secondary_marketplaces;\n\n // if primary marketplace seller central no_amazon_account flag is true\n if (response?.data?.Seller?.no_amazon_account) {\n const secondarySellerData = sellerArray?.map((entry) => {\n const formattedData = {\n seller_central_name:\n entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise\n ? ''\n : entry?.seller_central_name ||\n entry?.Seller?.seller_central_name ||\n '',\n merchant_id:\n entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise\n ? ''\n : entry?.merchant_id || entry?.Seller?.merchant_id || '',\n advertiser_name:\n entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise\n ? ''\n : entry?.advertiser_name ||\n entry?.Seller?.advertiser_name ||\n '',\n advertiser_id:\n entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise\n ? ''\n : entry?.advertiser_id || entry?.Seller?.advertiser_id || '',\n doesnt_advertise:\n (entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise) ??\n false,\n marketplace: entry?.id,\n marketplace_name: entry?.name?.value,\n customer: localStorage?.getItem('customer') || id,\n type: entry?.account_type,\n };\n if (entry?.Seller?.id || null)\n formattedData.id = entry?.Seller?.id || null;\n\n return formattedData;\n });\n\n const sortedSellerArray = localSeller?.length\n ? localSeller\n : secondarySellerData;\n\n // const sortedSellerArray = secondarySellerData;\n\n const sortedSellerData =\n sortedSellerArray?.filter((entry) => entry.type === 'Seller') || [];\n const primaryLocalSeller = sortedSellerArray?.filter(\n (op) => op?.doesnt_advertise === undefined,\n )?.[0];\n\n const primaryMarketplaceData = {\n seller_central_name:\n primaryLocalSeller?.seller_central_name ||\n response?.data?.Seller?.seller_central_name ||\n '',\n merchant_id:\n primaryLocalSeller?.merchant_id ||\n response?.data?.Seller?.merchant_id ||\n '',\n advertiser_name:\n primaryLocalSeller?.advertiser_name ||\n response?.data?.Seller?.advertiser_name ||\n '',\n advertiser_id:\n primaryLocalSeller?.advertiser_id ||\n response?.data?.Seller?.advertiser_id ||\n '',\n marketplace:\n primaryLocalSeller?.marketplace ||\n response?.data?.marketplace?.id,\n marketplace_name: response?.data?.marketplace?.name?.value,\n customer: localStorage.getItem('customer') || id,\n doesnt_advertise: false,\n };\n if (primaryLocalSeller?.id || response?.data?.Seller?.id)\n primaryMarketplaceData.id =\n primaryLocalSeller?.id || response?.data?.Seller?.id || null;\n sellerData = [...sortedSellerData, primaryMarketplaceData];\n } else {\n // no_amazon_account flag is false for seller centeral primary marketplace\n const secondarySellerData = sellerArray?.map((entry) => {\n // create data the way api want for secondary marketplace .\n const formattedData = {\n seller_central_name:\n entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise\n ? ''\n : entry?.seller_central_name ||\n entry?.Seller?.seller_central_name ||\n '',\n merchant_id:\n entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise\n ? ''\n : entry?.merchant_id || entry?.Seller?.merchant_id || '',\n advertiser_name:\n entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise\n ? ''\n : entry?.advertiser_name ||\n entry?.Seller?.advertiser_name ||\n '',\n advertiser_id:\n entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise\n ? ''\n : entry?.advertiser_id || entry?.Seller?.advertiser_id || '',\n doesnt_advertise:\n (entry?.doesnt_advertise || entry?.Seller?.doesnt_advertise) ??\n false,\n marketplace: entry?.id,\n marketplace_name: entry?.name?.value,\n customer: localStorage.getItem('customer') || id,\n type: entry?.account_type,\n };\n if (entry?.Seller?.id) formattedData.id = entry?.Seller?.id;\n\n return formattedData;\n });\n\n const sortedSellerArray = localSeller?.length\n ? localSeller\n : secondarySellerData;\n\n const sortedSellerData =\n sortedSellerArray?.filter((entry) => entry?.type === 'Seller') ||\n [];\n\n const primaryLocalSeller = sortedSellerArray?.filter(\n (op) => op?.doesnt_advertise === undefined,\n )?.[0];\n\n sellerData = [...sortedSellerData];\n\n const primaryMarketplaceData = {\n seller_central_name:\n primaryLocalSeller?.seller_central_name ||\n response?.data?.Seller?.seller_central_name ||\n '',\n merchant_id:\n primaryLocalSeller?.merchant_id ||\n response?.data?.Seller?.merchant_id ||\n '',\n advertiser_name:\n primaryLocalSeller?.advertiser_name ||\n response?.data?.Seller?.advertiser_name ||\n '',\n advertiser_id:\n primaryLocalSeller?.advertiser_id ||\n response?.data?.Seller?.advertiser_id ||\n '',\n marketplace:\n primaryLocalSeller?.marketplace ||\n response?.data?.marketplace?.id,\n marketplace_name: response?.data?.marketplace?.name?.value,\n customer: localStorage.getItem('customer') || id,\n type: 'Seller',\n doesnt_advertise: false,\n };\n if (primaryLocalSeller?.id || response?.data?.Seller?.id)\n primaryMarketplaceData.id =\n primaryLocalSeller?.id || response?.data?.Seller?.id;\n\n if (response?.data?.account_type !== null) {\n if (\n response?.data?.account_type === 'Seller' ||\n response?.data?.account_type === 'Hybrid'\n )\n sellerData = [...sortedSellerData, primaryMarketplaceData];\n }\n }\n\n // Combine primary & secondary marketplaces of Vendor\n const vendorArray = localVendor?.length\n ? localVendor\n : response?.data?.secondary_marketplaces;\n\n // const vendorArray = response?.data?.secondary_marketplaces;\n\n if (response?.data?.Vendor?.no_amazon_account) {\n const secondaryVendorData = vendorArray?.map((entry) => {\n const formattedData = {\n vendor_central_name:\n entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise\n ? ''\n : entry?.vendor_central_name ||\n entry?.Vendor?.vendor_central_name ||\n '',\n vendor_code:\n entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise\n ? ''\n : entry?.vendor_code || entry?.Vendor?.vendor_code || '',\n advertiser_name:\n entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise\n ? ''\n : entry?.advertiser_name ||\n entry?.Vendor?.advertiser_name ||\n '',\n advertiser_id:\n entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise\n ? ''\n : entry?.advertiser_id || entry?.Vendor?.advertiser_id || '',\n doesnt_advertise:\n (entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise) ??\n false,\n marketplace: entry?.id,\n marketplace_name: entry?.name?.value,\n customer: localStorage.getItem('customer') || id,\n type: entry?.account_type,\n };\n if (entry?.Vendor?.id) formattedData.id = entry?.Vendor?.id;\n return formattedData;\n });\n const sortedVendorArray = localVendor?.length\n ? localVendor\n : secondaryVendorData;\n\n const sortedVendorData =\n sortedVendorArray?.filter((entry) => entry?.type === 'Vendor') ||\n [];\n const primaryLocalVendor = sortedVendorArray?.filter(\n (op) => op?.doesnt_advertise === undefined,\n )?.[0];\n\n const primaryVendorMarketplaceData = {\n vendor_central_name:\n primaryLocalVendor?.vendor_central_name ||\n response?.data?.Vendor?.vendor_central_name ||\n '',\n vendor_code:\n primaryLocalVendor?.vendor_code ||\n response?.data?.Vendor?.vendor_code ||\n '',\n advertiser_name:\n primaryLocalVendor?.advertiser_name ||\n response?.data?.Vendor?.advertiser_name ||\n '',\n advertiser_id:\n primaryLocalVendor?.advertiser_id ||\n response?.data?.Vendor?.advertiser_id ||\n '',\n marketplace:\n primaryLocalVendor?.marketplace ||\n response?.data?.marketplace?.id,\n marketplace_name: response?.data?.marketplace?.name?.value,\n customer: localStorage.getItem('customer') || id,\n doesnt_advertise: false,\n };\n\n if (primaryLocalVendor?.id || response?.data?.Vendor?.id)\n primaryVendorMarketplaceData.id =\n primaryLocalVendor?.id || response?.data?.Vendor?.id;\n\n vendorData = [...sortedVendorData, primaryVendorMarketplaceData];\n } else {\n const secondaryVendorData = vendorArray?.map((entry) => {\n const formattedData = {\n vendor_central_name:\n entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise\n ? ''\n : entry?.vendor_central_name ||\n entry?.Vendor?.vendor_central_name ||\n '',\n vendor_code:\n entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise\n ? ''\n : entry?.vendor_code || entry?.Vendor?.vendor_code || '',\n\n advertiser_name:\n entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise\n ? ''\n : entry?.advertiser_name ||\n entry?.Vendor?.advertiser_name ||\n '',\n advertiser_id: entry?.Vendor?.doesnt_advertise\n ? ''\n : entry?.advertiser_id || entry?.Vendor?.advertiser_id || '',\n doesnt_advertise:\n (entry?.doesnt_advertise || entry?.Vendor?.doesnt_advertise) ??\n false,\n marketplace: entry?.id,\n marketplace_name: entry?.name?.value,\n customer: localStorage.getItem('customer') || id,\n type: entry?.account_type,\n };\n if (entry?.Vendor?.id) formattedData.id = entry?.Vendor?.id || '';\n return formattedData;\n });\n const sortedVendorArray = localVendor?.length\n ? localVendor\n : secondaryVendorData;\n\n const sortedVendorData =\n sortedVendorArray?.filter((entry) => entry?.type === 'Vendor') ||\n [];\n const primaryLocalVendor = sortedVendorArray?.filter(\n (op) => op?.doesnt_advertise === undefined,\n )?.[0];\n\n vendorData = [...sortedVendorData];\n const primaryVendorData = {\n vendor_central_name:\n primaryLocalVendor?.vendor_central_name ||\n response?.data?.Vendor?.vendor_central_name ||\n '',\n vendor_code:\n primaryLocalVendor?.vendor_code ||\n response?.data?.Vendor?.vendor_code ||\n '',\n advertiser_name:\n primaryLocalVendor?.advertiser_name ||\n response?.data?.Vendor?.advertiser_name ||\n '',\n advertiser_id:\n primaryLocalVendor?.advertiser_id ||\n response?.data?.Vendor?.advertiser_id ||\n '',\n marketplace:\n primaryLocalVendor?.marketplace ||\n response?.data?.marketplace?.id,\n marketplace_name: response?.data?.marketplace?.name?.value,\n customer: localStorage.getItem('customer') || id,\n type: 'Vendor',\n doesnt_advertise: false,\n };\n if (primaryLocalVendor?.id || response?.data?.Vendor?.id || '')\n primaryVendorData.id =\n primaryLocalVendor?.id || response?.data?.Vendor?.id || '';\n\n // don't add primary data for DSP only BP.\n // for DSP only BP account type is null in api response\n if (response?.data?.account_type !== null) {\n if (\n response?.data?.account_type === 'Vendor' ||\n response?.data?.account_type === 'Hybrid'\n )\n vendorData = [...sortedVendorData, primaryVendorData];\n }\n }\n\n const marketplaceNames = [];\n const formattedSecondaryMarketplaces = [];\n\n if (response?.data?.secondary_marketplaces) {\n for (const marketplace of response?.data?.secondary_marketplaces) {\n if (!marketplaceNames?.includes(marketplace?.name?.value)) {\n marketplaceNames.push(marketplace?.name?.value);\n formattedSecondaryMarketplaces[marketplace?.name?.value] = {\n name: marketplace?.name?.label,\n };\n }\n }\n\n for (const marketplace of response?.data?.secondary_marketplaces) {\n if (marketplace.account_type === 'Seller') {\n formattedSecondaryMarketplaces[\n marketplace?.name?.value\n ].seller_marketplace = marketplace;\n } else {\n formattedSecondaryMarketplaces[\n marketplace?.name?.value\n ].vendor_marketplace = marketplace;\n }\n }\n }\n\n const finalSecondaryMarketplace = [];\n\n // eslint-disable-next-line guard-for-in\n for (const key in formattedSecondaryMarketplaces) {\n finalSecondaryMarketplace.push(formattedSecondaryMarketplaces[key]);\n }\n\n // Add vendor marketplaces in finalSecondaryMarketplace from localstorage if present\n if (localVendor?.length) {\n let tempVendor = finalSecondaryMarketplace?.map((item) =>\n localVendor?.map((item1) => {\n if (item?.vendor_marketplace?.id === item1?.marketplace) {\n item.vendor_marketplace.Vendor = item1;\n } else return item1;\n }),\n );\n }\n\n // Add Seller marketplaces in in finalSecondaryMarketplace from localstorage if present\n\n if (localSeller?.length) {\n let tempSeller = finalSecondaryMarketplace?.map((item) =>\n localSeller?.map((item1) => {\n if (item?.seller_marketplace?.id === item1?.marketplace) {\n item.seller_marketplace.Seller = item1;\n } else return item1;\n }),\n );\n }\n\n setSellerMarketplaces([...sellerData]);\n setVendorMarketplaces([...vendorData]);\n setSecondaryMarketplaces([...finalSecondaryMarketplace]);\n\n getVideoLink(localStorage.getItem('customer') || id, 'hybrid').then(\n (res) => {\n setVideoData(res.data);\n },\n );\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n };\n\n const addSellerID = () => {\n const secondarySellerData = secondaryMarketplaces.map((entry) => {\n const sellerFields = {\n advertiser_name: entry?.seller_marketplace?.Seller?.doesnt_advertise\n ? ' '\n : entry?.seller_marketplace?.Seller?.advertiser_name,\n advertiser_id: entry?.seller_marketplace?.Seller?.doesnt_advertise\n ? ' '\n : entry?.seller_marketplace?.Seller?.advertiser_id,\n doesnt_advertise:\n entry?.seller_marketplace?.Seller?.doesnt_advertise ?? false,\n type: entry?.seller_marketplace?.account_type,\n marketplace: entry?.seller_marketplace?.id,\n marketplace_name: entry?.seller_marketplace?.name?.value || '',\n customer: localStorage.getItem('customer'),\n };\n\n if (entry?.seller_marketplace?.Seller?.id) {\n sellerFields.id = entry?.seller_marketplace?.Seller?.id;\n }\n return sellerFields;\n });\n\n const sortedSellerData = secondarySellerData.filter(\n (entry) => entry.type === 'Seller',\n );\n\n const primarySellerData = [\n {\n seller_central_name: marketplaceDetails?.Seller?.seller_central_name,\n merchant_id: marketplaceDetails?.Seller?.merchant_id,\n advertiser_name: marketplaceDetails?.Seller?.advertiser_name,\n advertiser_id: marketplaceDetails?.Seller?.advertiser_id,\n marketplace: marketplaceDetails?.marketplaceId,\n marketplace_name: marketplaceDetails?.name?.value || '',\n customer: localStorage.getItem('customer'),\n },\n ];\n\n if (marketplaceDetails?.Seller?.id) {\n primarySellerData[0].id = marketplaceDetails?.Seller?.id;\n }\n\n let sellerData = [...sortedSellerData];\n if (marketplaceDetails?.type) {\n sellerData = [...sortedSellerData, ...primarySellerData];\n }\n setSellerMarketplaces([...sellerData]);\n };\n\n const addVendorID = () => {\n const secondaryVendorData = secondaryMarketplaces.map((entry) => {\n const vendorFields = {\n advertiser_name: entry?.vendor_marketplace?.Vendor?.doesnt_advertise\n ? ' '\n : entry?.vendor_marketplace?.Vendor?.advertiser_name,\n advertiser_id: entry?.vendor_marketplace?.Vendor?.doesnt_advertise\n ? ' '\n : entry?.vendor_marketplace?.Vendor?.advertiser_id,\n doesnt_advertise:\n entry?.vendor_marketplace?.Vendor?.doesnt_advertise ?? false,\n type: entry?.vendor_marketplace?.account_type,\n marketplace: entry?.vendor_marketplace?.id,\n marketplace_name: entry?.vendor_marketplace?.name?.value || '',\n customer: localStorage.getItem('customer'),\n };\n\n if (entry?.vendor_marketplace?.Vendor?.id) {\n vendorFields.id = entry?.vendor_marketplace?.Vendor?.id;\n }\n return vendorFields;\n });\n\n const sortedVendorData = secondaryVendorData.filter(\n (entry) => entry.type === 'Vendor',\n );\n\n const primaryVendorData = [\n {\n vendor_central_name: marketplaceDetails?.Vendor?.vendor_central_name,\n vendor_code: marketplaceDetails?.Vendor?.vendor_code,\n advertiser_name: marketplaceDetails?.Vendor?.advertiser_name,\n advertiser_id: marketplaceDetails?.Vendor?.advertiser_id,\n marketplace: marketplaceDetails?.marketplaceId,\n marketplace_name: marketplaceDetails?.name?.value || '',\n customer: localStorage.getItem('customer'),\n },\n ];\n\n if (marketplaceDetails?.Vendor?.id) {\n primaryVendorData[0].id = marketplaceDetails?.Vendor?.id;\n }\n\n let vendorData = [...sortedVendorData];\n\n if (marketplaceDetails?.type) {\n vendorData = [...sortedVendorData, ...primaryVendorData];\n }\n\n setVendorMarketplaces([...vendorData]);\n };\n\n const handleUpdate = () => {\n switch (marketplaceDetails?.type) {\n case 'Seller':\n addSellerID();\n break;\n case 'Vendor':\n addVendorID();\n break;\n case 'Hybrid':\n addSellerID();\n addVendorID();\n break;\n case null:\n addSellerID();\n addVendorID();\n break;\n default:\n break;\n }\n };\n\n const getOnboardingStepData = (customerId) => {\n if (\n history.location.pathname.includes(PATH_UNAUTHORIZED_COMPANY_DETAILS) ||\n history.location.pathname.includes(PATH_COMPANY_DETAILS)\n ) {\n dispatch(getCustomerDetails(customerId));\n } else if (\n history.location.pathname.includes(PATH_UNAUTHORIZED_BILLING_DETAILS) ||\n history.location.pathname.includes(PATH_BILLING_DETAILS)\n ) {\n getDSPContact(customerId).then((res) => {\n setshowDSPContact({\n show: res?.data?.is_dsp_contract,\n sameAsBilling: res?.data?.results?.[0]\n ? res?.data?.results?.[0]?.same_as_billing_contact\n : true,\n });\n setDspData(res?.data?.results?.[0]);\n getBillingDetails(customerId).then((response) => {\n if (response?.status === 200) {\n setBillingData(response?.data);\n }\n if (response?.status === 404) {\n setBillingData({});\n }\n });\n });\n } else if (\n history.location.pathname.includes(PATH_UNAUTHORIZED_AMAZON_MERCHANT) ||\n history.location.pathname.includes(PATH_AMAZON_MERCHANT)\n ) {\n getAccountDetails(customerId);\n } else if (\n history.location.pathname.includes(PATH_UNAUTHORIZED_AMAZON_ACCOUNT) ||\n history.location.pathname.includes(PATH_AMAZON_ACCOUNT)\n ) {\n getAmazonAccount(customerId).then((response) => {\n if (response?.status === 200) {\n setAmazonAccountData(response?.data?.results?.[0]);\n }\n });\n }\n };\n\n const summaryDetails = (onboardingId) => {\n accountSummary(onboardingId).then((summary) => {\n if (summary?.status === 200) {\n const fields = [];\n stepPath.map((item) => {\n if (summary && summary.data) {\n fields.push({\n [item.key]: summary.data.some((op) => {\n return op.step === item.key ? op.is_completed : false;\n }),\n });\n }\n return '';\n });\n setSummaryData(fields);\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n };\n\n const getStepsData = (onboardingId, type) => {\n getStepDetails(onboardingId, getStepName()).then((response) => {\n if (response?.data?.results?.[0]) {\n setStepData(response.data.results[0]);\n if (response.data.results[0]?.step === getStepName()) {\n setIsChecked(true);\n }\n if (type === 'callSummary') summaryDetails(onboardingId);\n } else setIsLoading({ loader: false, type: 'page' });\n });\n };\n\n useEffect(() => {\n if (\n (params && params.openCollapse === null) ||\n (params && params.customer && params.step)\n ) {\n setOpenCollapse(true);\n }\n setIsLoading({ loader: true, type: 'page' });\n\n if (!history.location.pathname.includes(PATH_CREATE_PASSWORD)) {\n if (\n history.location.pathname.includes(PATH_ACCOUNT_SETUP) &&\n (params?.key ||\n (history.location.pathname.includes(\n PATH_UNAUTHORIZED_AMAZON_MERCHANT,\n ) &&\n params?.spapi_oauth_code))\n ) {\n if (params?.key) localStorage.setItem('match', params.key);\n verifyStepToken(params.key || localStorage.getItem('match')).then(\n (verify) => {\n if (verify && verify.status === 401) {\n const stringified = queryString.stringify({\n step: 'completed',\n });\n history.push({\n pathname: PATH_THANKS,\n search: `${stringified}`,\n });\n }\n localStorage.setItem(\n 'customer',\n verify?.data?.customer_id || userInfo?.customer,\n );\n getStepsData(\n verify?.data?.customer_onboarding_id ||\n userInfo?.customer_onboarding,\n );\n getOnboardingStepData(\n verify?.data?.customer_id || userInfo?.customer,\n );\n setVerifiedStepData(verify?.data);\n },\n );\n }\n\n if (history?.location?.pathname.includes('assigned')) {\n setAssignedToSomeone(true);\n } else {\n getUserData(localStorage?.getItem('customer')).then((res) => {\n if (res?.status === 200) {\n if (params?.customer && params?.step) {\n if (res?.data?.step[params?.customer] === 6) {\n history.push(\n PATH_CUSTOMER_DETAILS.replace(':id', params.customer),\n );\n }\n }\n setUserInfo(res && res.data);\n getStepsData(\n res?.data?.customer_onboarding ||\n verifiedStepData?.customer_onboarding_id,\n 'callSummary',\n );\n summaryDetails(\n res?.data?.customer_onboarding ||\n verifiedStepData?.customer_onboarding_id,\n );\n getOnboardingStepData(\n res?.data?.customer ||\n verifiedStepData?.customer_id ||\n userInfo?.customer,\n );\n } else {\n if (res?.status === 401) {\n let stringified = '';\n if (history?.location?.pathname !== '/') {\n stringified = queryString.stringify({\n callback:\n history?.location?.pathname + history?.location?.search,\n });\n history.push({\n pathname: PATH_LOGIN,\n search: `${stringified}`,\n });\n }\n }\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n setAssignedToSomeone(false);\n }\n }\n }, [history.location.pathname]);\n\n const generateHTML = (path) => {\n if (path === 'company-details')\n return (\n \n );\n if (path === 'billing-details')\n return (\n \n );\n if (path === 'amazon-merchant')\n return (\n \n );\n if (path === 'amazon-account')\n return (\n \n );\n return '';\n };\n\n const getVideo = () => {\n setIsLoading({ loader: true, type: 'video ' });\n setShowVideo(true);\n getVideoLink(\n verifiedStepData?.customer_id || userInfo?.customer,\n history?.location?.pathname.includes(PATH_COMPANY_DETAILS) ||\n history?.location?.pathname.includes(PATH_UNAUTHORIZED_COMPANY_DETAILS)\n ? 4\n : 2,\n ).then((response) => {\n setVideoData(response?.data);\n setIsLoading({ loader: false, type: 'video ' });\n });\n };\n\n const getInformation = (item) => {\n if (item.key === 'billing information')\n return `has asked that you provide your companies ${item.title}, which will be used by our Finance Team to bill for our services.`;\n if (item.key === 'merchant id')\n return `has asked that you provide ${item.title} information, which will be used to access data we will use to best manage your account.`;\n return `has asked that you provide ${item.title} information, which will be used by our Creative Team to best understand your brand.`;\n };\n\n const showNoAmazonAccountCheckbox = () => {\n return (\n \n \n I don't have an Amazon account yet\n {\n setNoAmazonAccount(!noAmazonAccount);\n handleUpdate();\n localStorage.setItem('noAmazonAccount', !noAmazonAccount);\n setLocalNoAmazonAccount({ noAmazonAccount: !noAmazonAccount });\n }}\n readOnly\n checked={\n Object.keys(localNoAmazonAccount)?.length\n ? localNoAmazonAccount?.noAmazonAccount\n : noAmazonAccount\n }\n />\n \n \n \n );\n };\n\n const showAmazonSubTitle = (type) => {\n if (marketplaceDetails?.type === 'Seller')\n return `If you don’t have ${\n type ? 'admin' : ''\n } access to your Amazon Seller Central account then you can use the checkbox below`;\n if (marketplaceDetails?.type === 'Vendor')\n return `If you don’t have ${\n type ? 'admin' : ''\n } access to your Amazon Vendor Central account then you can use the checkbox below`;\n return `If you don’t have ${\n type ? 'admin' : ''\n } access to your Amazon Seller Central and Vender Central accounts then you can use the checkbox below`;\n };\n\n const generateHeader = (item) => {\n if (history?.location?.pathname.includes(item?.path))\n return (\n <>\n {assignedToSomeone ? (\n \n ) : (\n
    \n )}\n {assignedToSomeone ? (\n ''\n ) : (\n \n )}\n\n {loader || (isLoading?.loader && isLoading?.type === 'page') ? (\n \n ) : (\n \n
    \n {assignedToSomeone ? (\n \n
    \n {' '}\n \n {' '}\n {verifiedStepData?.user_email}{' '}\n \n \n
    \n {delegatedInfo}\n
    \n ) : (\n

    Step {item.stepof} of 6

    \n )}\n

    {item.title}

    \n {item.path === 'billing-details' ? null : (\n

    \n {history.location.pathname.includes(\n PATH_AMAZON_MERCHANT,\n ) ? (\n <>\n {showAmazonSubTitle(false)} to assign this step to\n someone that does.\n \n ) : history.location.pathname.includes(\n PATH_UNAUTHORIZED_AMAZON_MERCHANT,\n ) ? (\n <>{showAmazonSubTitle(false)}.\n ) : history.location.pathname.includes(\n PATH_AMAZON_ACCOUNT,\n ) ? (\n <>\n {showAmazonSubTitle(true)} to assign this step to\n someone that does.\n \n ) : history.location.pathname.includes(\n PATH_UNAUTHORIZED_AMAZON_ACCOUNT,\n ) ? (\n <>{showAmazonSubTitle(true)}.\n ) : (\n item.subTitle\n )}{' '}\n
    \n {item.video ? (\n <>\n \n getVideo()}\n role=\"presentation\"\n >\n Click here to watch the video.\n \n \n ) : null}\n

    \n )}\n\n {assignedToSomeone ? (\n ''\n ) : (\n \n )}\n {(!isChecked &&\n history?.location?.pathname.includes(PATH_AMAZON_MERCHANT)) ||\n history?.location?.pathname?.includes(\n PATH_UNAUTHORIZED_AMAZON_MERCHANT,\n ) ? (\n <>{showNoAmazonAccountCheckbox()}\n ) : (\n ''\n )}\n {assignedToSomeone || !isChecked ? (\n <>{generateHTML(item?.path)}\n ) : (\n ''\n )}\n
    \n\n {!assignedToSomeone && isChecked ? (\n
    \n setOpenCollapse(!openCollapse)}\n >\n Expand questions\n \n
    \n
    \n \n \n {history?.location?.pathname.includes(\n PATH_AMAZON_MERCHANT,\n ) ? (\n
    \n {showNoAmazonAccountCheckbox()}\n
    \n ) : (\n ''\n )}\n {generateHTML(item?.path)}\n
    \n
    \n \n
    \n ) : (\n ''\n )}\n
    \n )}\n \n \n );\n return '';\n };\n\n return (\n <>\n {history?.location?.pathname.includes('create-password') ? (\n \n ) : (\n <>\n {whichStep.map((item) => (\n \n {generateHeader(item)}\n \n ))}\n \n )}\n \n );\n}\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport dayjs from 'dayjs';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport { getDSPBudgetAdjustDetail, updateDSPBudgetAdjustment } from '../../api';\nimport { ArrowRightBlackIcon, ArrowRightIcon } from '../../theme/images';\nimport {\n InvoiceApprovalHeader,\n InvoiceCurrentMonthHeader,\n InvoiceInfo,\n invoiceApprovalFlag,\n TotalInvoiceHeader,\n InvoiceNewMonthHeader,\n PATH_THANKS,\n} from '../../constants';\nimport {\n UnauthorizedHeader,\n OnBoardingBody,\n GreyCard,\n ModalRadioCheck,\n Button,\n InputText,\n PageLoader,\n ErrorMsg,\n PageNotFound,\n ErrorMsgBox,\n} from '../../common';\n\nexport default function DSPBudgetApprovalContainer() {\n const history = useHistory();\n const { key, adjustmentId } = useParams();\n const [total, setTotal] = useState({});\n const [error, setError] = useState({});\n const [isAutherised, setIsAutherised] = useState(false);\n const [invoiceType, setInvoiceType] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n const [marketplaceData, setMarketplaceData] = useState(null);\n const [invoiceRejectMessage, setInvoiceRejectMessage] = useState('');\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [invoiceApprovalCondition, setInvoiceApprovalCondition] = useState(\n 'yes',\n );\n\n const calculateTotal = (res) => {\n let oldResult = 0;\n let newResult = 0;\n if (res?.adjustments?.length) {\n for (const item of res?.adjustments) {\n oldResult += item?.old_budget;\n newResult += item?.new_budget;\n }\n }\n setTotal({ old_budget: oldResult, new_budget: newResult });\n };\n\n const getDSPDetails = useCallback(() => {\n localStorage.setItem('match', key);\n setIsLoading({ loader: true, type: 'page' });\n getDSPBudgetAdjustDetail(adjustmentId, key).then((res) => {\n setMarketplaceData(res);\n if (res?.status === 404 || res?.status === 403) {\n setErrorMessage('Page not found');\n setIsAutherised(false);\n }\n if (res?.status === 401) {\n setErrorMessage('Token Expired');\n setIsAutherised(false);\n }\n if (res?.id) {\n setIsAutherised(true);\n }\n if (res?.is_sent_for_pause) {\n setInvoiceType('pause');\n } else {\n setInvoiceType(res?.dsp_invoice_subtype);\n }\n calculateTotal(res);\n setIsLoading({ loader: false, type: 'page' });\n localStorage.removeItem('match');\n });\n }, [adjustmentId, key]);\n\n useEffect(() => {\n getDSPDetails();\n }, [getDSPDetails]);\n\n const setAdjustmentsData = (flag) => {\n const result = [];\n if (marketplaceData?.adjustments?.length) {\n for (const item of marketplaceData?.adjustments) {\n result.push({\n id: item.id,\n pause_approved: flag,\n });\n }\n }\n return result;\n };\n\n const storeInvoiceProposal = () => {\n setIsLoading({ loader: true, type: 'button' });\n\n const data = {};\n if (invoiceApprovalCondition === 'yes') {\n if (invoiceType === 'pause') {\n data.pause_approved = true;\n data.budget_approved = true;\n data.adjustments = setAdjustmentsData(true);\n } else {\n data.budget_approved = true;\n }\n }\n if (invoiceApprovalCondition === 'no') {\n if (invoiceType === 'pause') {\n data.pause_approved = false;\n data.budget_approved = false;\n data.adjustments = setAdjustmentsData(false);\n } else {\n data.budget_approved = false;\n }\n data.rejection_note = invoiceRejectMessage;\n }\n\n localStorage.setItem('match', key);\n updateDSPBudgetAdjustment(adjustmentId, data, key).then((res) => {\n setIsLoading({ loader: false, type: 'button' });\n if (res.status === 200) {\n history.push({\n pathname: PATH_THANKS,\n type: 'dspSignOff',\n search: `name=${marketplaceData?.created_by?.first_name}`,\n });\n } else {\n setError(res?.data);\n setTimeout(() => setError(''), 3500);\n }\n localStorage.removeItem('match');\n });\n };\n\n const renderHeaderMessage = () => {\n return (\n \n

    \n {' '}\n Below is a summary of the proposed changes to your DSP plan with Buy\n Box Experts.{' '}\n

    \n

    \n {' '}\n Please check through the details and approve the changes if you’re\n happy to proceed.\n

    \n

    \n {' '}\n If you’re not 100% happy, please let me know if you’d like anything\n changed and I will send over a new proposal.\n

    {' '}\n

    Many thanks,

    \n {marketplaceData?.created_by?.first_name}\n
    \n );\n };\n\n const generateAmount = (value, valueFor, currencySymbol) => {\n if (value && value !== null && value !== 0) {\n value = Number(value.toFixed(2));\n return `${\n value < 0 ? '-' : valueFor === 'change' ? '+' : ''\n }${currencySymbol}${value\n .toString()\n .replace('-', '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}`;\n }\n\n return valueFor === 'change' ? '-' : '$0';\n };\n\n const renderHeading = () => {\n return (\n
    \n {InvoiceApprovalHeader[invoiceType]}\n
    \n );\n };\n\n const renderAdditionalDSPInvoice = () => {\n return (\n \n

    \n Additional DSP invoice (\n {dayjs(new Date(marketplaceData?.applicable_from)).format('MMMM')}{' '}\n only)\n

    \n

    \n {' '}\n {generateAmount(total?.new_budget - total?.old_budget, '', '$')}\n

    \n

    \n This will be a one-off invoice, providing additional budget to spend\n in the{' '}\n {dayjs(new Date(marketplaceData?.applicable_from)).format('MMMM')}.\n This invoice will be sent as soon as you approve the proposal.\n

    \n
    \n );\n };\n\n const renderInvoiceApproveReject = () => {\n return marketplaceData?.budget_approved === null ? (\n <>\n {invoiceApprovalFlag.map((item) => (\n \n {' '}\n \n setInvoiceApprovalCondition(item.value)}\n defaultChecked={item.value === invoiceApprovalCondition}\n />\n \n {item.label}\n \n \n ))}\n\n {invoiceApprovalCondition === 'no' ? (\n {\n setInvoiceRejectMessage(event.target.value);\n }}\n />\n ) : null}\n {error?.detail ? {error?.detail} : null}\n\n {\n storeInvoiceProposal();\n }}>\n {isLoading.loader && isLoading.type === 'button' ? (\n \n ) : (\n 'Confirm'\n )}\n \n \n ) : marketplaceData?.budget_approved ? (\n \n Adjustment is already been accepted.\n \n ) : (\n \n Adjustment is already been rejected.\n \n );\n };\n\n const renderTableHeaders = () => {\n if (invoiceType === 'standard' || invoiceType === 'permanent additional') {\n return (\n <>\n
    \n
    Marketplace
    \n
    \n
    \n
    From
    \n
    \n
    \n
    To
    \n
    \n \n );\n }\n if (invoiceType === 'one time') {\n return (\n <>\n
    \n
    Marketplace
    \n
    \n
    \n
    Existing budget
    \n
    \n
    \n
    Additional Amount
    \n
    \n \n );\n }\n // for pause invoice.\n return (\n <>\n
    \n
    Marketplace
    \n
    \n
    \n
    Pause Invoice
    \n
    \n
    \n
    Invoice Amount
    \n
    \n \n );\n };\n\n const renderTableData = () => {\n return (\n <>\n {marketplaceData?.adjustments?.map((item, index) => (\n
    \n
    \n
    \n {item.marketplace}\n
    \n
    \n
    \n
    \n {invoiceType === 'pause'\n ? item?.is_sent_for_pause\n ? 'Yes'\n : 'No'\n : generateAmount(item?.old_budget, 'from', '$')}\n
    \n
    \n
    \n {invoiceType === 'standard' ||\n invoiceType === 'permanent additional' ? (\n !index ? (\n
    \n \"arrow\"{' '}\n
    \n ) : (\n
    \n \"arrow\"{' '}\n
    \n )\n ) : null}\n
    \n
    \n
    \n {invoiceType === 'pause'\n ? item?.is_sent_for_pause\n ? '$0'\n : generateAmount(item?.new_budget, 'from', '$')\n : generateAmount(item?.new_budget, 'from', '$')}\n
    \n
    \n
    \n ))}\n \n );\n };\n\n const renderTotalInvoiceSection = () => {\n return (\n <>\n
    \n
    \n
    \n
    \n {TotalInvoiceHeader[invoiceType]}\n
    \n
    \n
    \n {invoiceType === 'standard' ||\n invoiceType === 'permanent additional' ? (\n
    \n {generateAmount(total?.old_budget, '', '$')}\n
    \n ) : null}\n
    \n\n
    \n {invoiceType === 'standard' ||\n invoiceType === 'permanent additional' ? (\n
    \n \"arrow\"{' '}\n
    \n ) : null}\n
    \n\n
    \n
    \n {generateAmount(total?.new_budget, '', '$')}\n
    \n
    \n
    \n \n );\n };\n\n const renderMainPage = () => {\n return (\n \n
    \n {renderHeaderMessage()}\n {renderHeading()}\n {invoiceType !== 'one time' ? (\n <>\n

    \n {InvoiceCurrentMonthHeader[invoiceType]}\n

    \n
    \n {generateAmount(total?.old_budget, '', '$')}\n
    \n \n ) : null}\n
    \n

    \n {InvoiceNewMonthHeader[invoiceType]}\n {invoiceType === 'pause'\n ? dayjs(new Date(marketplaceData?.applicable_from)).format('MMMM')\n : null}\n

    \n
    \n {generateAmount(total?.new_budget, '', '$')}\n
    {' '}\n
    \n
    {renderTableHeaders()}
    \n
    \n {renderTableData()}\n {renderTotalInvoiceSection()}\n
    \n

    \n {InvoiceInfo[invoiceType]?.mainHeading}\n \n {InvoiceInfo[invoiceType]?.boldHeading\n .replace(\n 'APPLICABLE_MONTH',\n dayjs(\n new Date(\n invoiceType === 'pause'\n ? marketplaceData?.applicable_from\n : marketplaceData?.due_date,\n ),\n ).format('MMMM'),\n )\n .replace(\n 'APPLICABLE_DATE',\n new Date(marketplaceData?.due_date).getDate(),\n )}\n \n {InvoiceInfo[invoiceType]?.mainHeading2}\n

    \n {invoiceType === 'pause' ? (\n
    \n ) : null}\n {invoiceType === 'permanent additional'\n ? renderAdditionalDSPInvoice()\n : null}\n {renderInvoiceApproveReject()}\n
    \n \n );\n };\n\n return (\n <>\n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : isAutherised ? (\n renderMainPage()\n ) : (\n \n )}\n \n );\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { useEffect, useState } from 'react';\n\nimport queryString from 'query-string';\nimport styled from 'styled-components';\n// import HelloSign from 'hellosign-embedded';\nimport { useHistory } from 'react-router-dom';\n\nimport { PageLoader } from '../../../common';\nimport { PATH_WARNING } from '../../../constants';\nimport { transactionalSignUp } from '../../../api';\n\nfunction HelloSignComponent() {\n const history = useHistory();\n const params = queryString.parse(history.location.search);\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [signURL, setSignURL] = useState(null);\n\n useEffect(() => {\n transactionalSignUp({\n request_id: params.key,\n }).then((res) => {\n if (res && res.status === 400) {\n history.push({\n pathname: PATH_WARNING,\n state: { error: res?.data?.request_id },\n });\n setIsLoading({ loader: false, type: 'page' });\n } else {\n setSignURL(res?.data?.sign_url);\n setIsLoading({ loader: false, type: 'page' });\n }\n });\n }, []);\n\n return (\n
    \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n \n \n {/*
    */}\n {/*
    \n

    Last updated by You on Dec 1, 4:18 PM

    \n
    */}\n \n )}\n
    \n );\n}\n\nexport default HelloSignComponent;\nconst SignPanel = styled.div`\n .zoho-sign-panel {\n min-height: 100vh !important;\n }\n`;\n","import React, { useState, useEffect } from 'react';\n\nimport Select from 'react-select';\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useForm } from 'react-hook-form';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport { NextLogo } from '../../theme/images';\nimport { FormContainer } from '../../theme/Global';\nimport { getCustomerNames, getEmail } from '../../api';\nimport { clearErrorMessage, login } from '../../store/actions/userState';\nimport {\n Button,\n ErrorMsg,\n InputFormField,\n PageLoader,\n SuccessMsg,\n ContractInputSelect,\n} from '../../common';\nimport {\n pageTitleConditions,\n PATH_AMAZON_ACCOUNT,\n PATH_AMAZON_MERCHANT,\n PATH_BILLING_DETAILS,\n PATH_COMPANY_DETAILS,\n PATH_CUSTOMER_DETAILS,\n PATH_CUSTOMER_LIST,\n PATH_SUMMARY,\n} from '../../constants';\n\nexport default function Login() {\n const history = useHistory();\n const dispatch = useDispatch();\n const { register, handleSubmit, errors } = useForm();\n const loader = useSelector((state) => state.userState.isLoading);\n const apiError = useSelector((state) => state.userState.error);\n const resetPasswordMsg = useSelector((state) => state.userState.showResetMsg);\n const [showPassword, setShowPassword] = useState({\n password: false,\n name: false,\n email: true,\n });\n const [customerApiError, setCustomerApiError] = useState([]);\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n const [customerNames, setCustomerNames] = useState([]);\n const [getName, setGetName] = useState({ email: '', customer: '' });\n const [forgotApiError, setforgotApiError] = useState([]);\n const params = queryString.parse(history.location.search);\n const role = localStorage.getItem('role') || '';\n const customerId = localStorage.getItem('customer') || '';\n const step = JSON.parse(localStorage.getItem('step')) || '';\n\n // Call the function if only page url is get changed (Code to add page title)\n useEffect(() => {\n pageTitleConditions(history.location);\n history.listen((location) => {\n pageTitleConditions(location);\n });\n }, [history]);\n\n useEffect(() => {\n if (localStorage.getItem('token')) {\n if (role.includes('Customer') || role === 'Customer') {\n const id =\n step &&\n Object.keys(step) &&\n Object.keys(step).find((op) => op === customerId);\n if (step === null || id === '' || id === null)\n history.push(PATH_COMPANY_DETAILS);\n if (step[id] === 1) history.push(PATH_COMPANY_DETAILS);\n if (step[id] === 2) history.push(PATH_BILLING_DETAILS);\n if (step[id] === 3) history.push(PATH_AMAZON_MERCHANT);\n if (step[id] === 4) history.push(PATH_AMAZON_ACCOUNT);\n if (step[id] === 5) history.push(PATH_SUMMARY);\n if (step[id] === 6)\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', id));\n } else history.push(PATH_CUSTOMER_LIST);\n }\n }, [history, role, customerId, step, dispatch]);\n\n const onSubmit = (data) => {\n setIsLoading({ loader: true, type: 'button' });\n if (showPassword.email && !showPassword.password) {\n setGetName({ ...getName, email: data.email });\n if (params && params.customer && params.step) {\n setGetName({\n email: data.email,\n customer: params && params.customer,\n });\n setShowPassword({ email: false, name: false, password: true });\n localStorage.setItem('customer', params?.customer);\n setIsLoading({ loader: false, type: 'button' });\n } else {\n getCustomerNames(data.email).then((response) => {\n if (response?.status === 200) {\n if (response?.data?.length === 0 || response?.data === '') {\n setShowPassword({ name: false, password: true });\n } else if (response?.data?.length === 1) {\n setCustomerNames(response?.data);\n setGetName({\n email: data.email,\n customer: response?.data?.[0]?.value,\n });\n setShowPassword({ email: false, name: false, password: true });\n } else {\n setCustomerNames(response?.data);\n setShowPassword({ name: true, password: false });\n }\n setIsLoading({ loader: false, type: 'button' });\n }\n if (response?.status === 400) {\n setCustomerApiError(response?.data);\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n }\n } else if (showPassword.name) {\n setShowPassword({ password: true, email: false, name: false });\n setIsLoading({ loader: false, type: 'button' });\n } else {\n const detail = {\n ...data,\n email: getName.email,\n };\n localStorage.setItem('customer', getName.customer);\n dispatch(login(history, detail, { customer: getName.customer }, ''));\n setIsLoading({ loader: false, type: 'button' });\n }\n };\n\n const handleChange = () => {\n dispatch(clearErrorMessage());\n setCustomerApiError([]);\n setforgotApiError([]);\n };\n\n const forgotPassword = () => {\n setIsLoading({ loader: true, type: 'forgot' });\n getEmail({ email: getName.email }).then((response) => {\n if (response?.status === 400) {\n setforgotApiError(response?.data?.[0]);\n setIsLoading({ loader: false, type: 'forgot' });\n setShowPassword({ email: true, name: false, password: false });\n } else {\n toast.success(\n 'We have emailed you a reset link, please check your email.',\n );\n setShowPassword({ email: false, name: false, password: true });\n setIsLoading({ loader: false, type: 'forgot' });\n }\n });\n };\n\n return (\n <>\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \"logo\n
    \n\n
    \n {resetPasswordMsg ? (\n \n ) : (\n ''\n )}\n
    \n\n {!showPassword.email ? (\n <>\n {' '}\n
    \n
    \n \n customerNames?.length === 0 ||\n customerNames?.length === 1 ||\n customerNames === ''\n ? setShowPassword({\n email: true,\n name: false,\n password: false,\n })\n : setShowPassword({\n email: !!showPassword.name,\n name: !!showPassword.password,\n })\n }\n >\n \n Back a step\n
    \n
    \n
    \n \n ) : (\n ''\n )}\n\n \n {showPassword?.email\n ? 'Sign in'\n : showPassword.name\n ? 'Select Account'\n : 'Welcome Back!'}\n \n\n {showPassword.password ? (\n

    \n Please verify that it's you.\n

    \n ) : showPassword.name ? (\n

    \n Please select the account you want to sign into.\n

    \n ) : (\n ''\n )}\n\n
    \n {showPassword.email ? (\n <>\n \n \n \n \n {errors?.email?.message || customerApiError?.[0]}\n \n {forgotApiError}\n \n ) : (\n <>\n {showPassword.name ? (\n \n \n \n ) : (\n <>\n {showPassword.password ? (\n <>\n \n \n \n {errors?.password?.message}\n \n {apiError?.data?.non_field_errors?.[0]}\n \n {forgotApiError}\n \n ) : (\n ''\n )}\n \n )}\n \n )}\n\n \n {loader ||\n (isLoading.loader && isLoading.type === 'button') ? (\n \n ) : (\n <>{showPassword.password ? 'Sign In' : 'Continue'}\n )}\n \n {showPassword.password ? (\n forgotPassword()}\n role=\"presentation\"\n >\n Forgot password?\n \n ) : (\n ''\n )}\n \n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useEffect } from 'react';\n\nimport { useForm } from 'react-hook-form';\nimport { useDispatch } from 'react-redux';\nimport { Link, useHistory } from 'react-router-dom';\n\nimport { PATH_LOGIN } from '../../constants';\nimport { getEmail } from '../../api';\nimport { FormContainer } from '../../theme/Global';\nimport { showOnboardingMsg } from '../../store/actions/userState';\nimport { NextLogo, LeftArrowIcon } from '../../theme/images';\nimport { Button, InputFormField, ErrorMsg, PageLoader } from '../../common';\n\nexport default function ForgotPassword() {\n const dispatch = useDispatch();\n const history = useHistory();\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const { register, handleSubmit, errors } = useForm();\n const [apiError, setApiError] = useState([]);\n\n useEffect(() => {\n setIsLoading({ loader: false, type: 'page' });\n }, []);\n\n const onSubmit = (data) => {\n setIsLoading({ loader: true, type: 'button' });\n getEmail(data).then((response) => {\n if (response && response.status === 400) {\n setApiError(response && response.data && response.data[0]);\n setIsLoading({ loader: false, type: 'button' });\n } else {\n dispatch(showOnboardingMsg());\n history.push(PATH_LOGIN);\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n };\n\n return (\n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n
    \n
    \n
    \n
    \n history.push(PATH_LOGIN)}\n role=\"presentation\">\n \"logo\n
    \n \n
    \n \n Back a step\n
    \n \n\n

    Forgot your password?

    \n

    \n Enter your email address and we’ll send you instructions to\n reset your password.\n

    \n
    \n \n \n \n \n {errors && errors.email && errors.email.message}\n {' '}\n {apiError}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )}\n
    \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\n\nimport { useForm } from 'react-hook-form';\nimport queryString from 'query-string';\n\nimport { ArrowIcons, NextLogo } from '../../theme/images';\nimport { Button, PageLoader, ErrorMsg, InputFormField } from '../../common';\nimport { PATH_LOGIN } from '../../constants';\nimport { resetPassword } from '../../api';\nimport { showResetPasswordMsg } from '../../store/actions/userState';\nimport { FormContainer } from '../../theme/Global';\n\nexport default function ResetPassword() {\n const history = useHistory();\n const dispatch = useDispatch();\n const { register, handleSubmit, errors, watch, reset } = useForm();\n const [isLoading, setIsLoading] = useState({ loader: true, type: 'page' });\n const [apiError, setApiError] = useState({});\n const params = queryString.parse(history.location.search);\n\n useEffect(() => {\n setIsLoading({ loader: false, type: 'page' });\n }, []);\n\n const onSubmit = (data) => {\n setIsLoading({ loader: true, type: 'button' });\n const formData = {\n password: data.password,\n key: params.key,\n };\n\n resetPassword(formData).then((response) => {\n if (response && response.status === 400) {\n setApiError(response && response.data);\n setIsLoading({ loader: false, type: 'button' });\n } else if (response && response.status === 200) {\n dispatch(showResetPasswordMsg());\n history.push(PATH_LOGIN);\n setIsLoading({ loader: false, type: 'button' });\n reset();\n }\n });\n };\n\n const handleChange = (event) => {\n setApiError({\n [event.target.name]: '',\n });\n };\n\n return (\n \n {isLoading.loader && isLoading.type === 'page' ? (\n \n ) : (\n
    \n
    \n
    \n
    \n history.push(PATH_LOGIN)}\n role=\"presentation\"\n >\n \"logo\n
    \n \n

    \n {' '}\n \n Back to Sign in\n

    \n \n

    Set your Password

    \n

    \n Please enter your password to proceed.{' '}\n

    \n
    \n \n \n \n {errors && errors.password && errors.password.message}\n \n
    \n \n \n {errors &&\n errors.confirm_password &&\n errors.confirm_password.message}\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )}\n
    \n );\n}\n","import React, { useState, useEffect, Fragment } from 'react';\n\nimport Select from 'react-select';\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport queryString from 'query-string';\nimport { useHistory } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useForm } from 'react-hook-form';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\nimport Theme from '../../theme/Theme';\nimport {\n CloseIcon,\n DSPAdPerformance,\n InventoryManagement,\n NextWhiteLogo,\n OverallSalesPerformance,\n SponsoredAdPerformance,\n} from '../../theme/images';\nimport { FormContainer } from '../../theme/Global';\nimport { getCustomerNames, getEmail, saveRequestDemo } from '../../api';\nimport { clearErrorMessage, login } from '../../store/actions/userState';\nimport {\n Button,\n ErrorMsg,\n InputFormField,\n PageLoader,\n SuccessMsg,\n ContractInputSelect,\n ModalBox,\n} from '../../common';\nimport {\n PATH_AMAZON_ACCOUNT,\n PATH_AMAZON_MERCHANT,\n PATH_BILLING_DETAILS,\n PATH_COMPANY_DETAILS,\n PATH_CUSTOMER_DETAILS,\n PATH_CUSTOMER_LIST,\n PATH_SUMMARY,\n requestDemoDetails,\n} from '../../constants';\n\nexport default function AmazonLogin() {\n const history = useHistory();\n const dispatch = useDispatch();\n const { register, handleSubmit, errors, clearErrors } = useForm();\n const {\n register: registerForDemo,\n errors: errorsForDemo,\n handleSubmit: handleSubmitForDemo,\n } = useForm();\n const loader = useSelector((state) => state.userState.isLoading);\n const apiError = useSelector((state) => state.userState.error);\n const resetPasswordMsg = useSelector((state) => state.userState.showResetMsg);\n const [showPassword, setShowPassword] = useState({\n password: false,\n name: false,\n email: true,\n });\n const [customerApiError, setCustomerApiError] = useState([]);\n const [isLoading, setIsLoading] = useState({ loader: false, type: 'button' });\n const [customerNames, setCustomerNames] = useState([]);\n const [getName, setGetName] = useState({ email: '', customer: '' });\n const [forgotApiError, setforgotApiError] = useState([]);\n const [requestDemo, setRequestDemo] = useState(false);\n const params = queryString.parse(history.location.search);\n const role = localStorage.getItem('role') || '';\n const customerId = localStorage.getItem('customer') || '';\n const step = JSON.parse(localStorage.getItem('step')) || '';\n const customStyle = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n maxWidth: '440px ',\n width: '100% ',\n minHeight: '494px',\n overlay: ' {zIndex: 1000}',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n };\n\n useEffect(() => {\n if (localStorage.getItem('token')) {\n if (role.includes('Customer') || role === 'Customer') {\n const id =\n step &&\n Object.keys(step) &&\n Object.keys(step).find((op) => op === customerId);\n if (step === null || id === '' || id === null)\n history.push(PATH_COMPANY_DETAILS);\n if (step[id] === 1) history.push(PATH_COMPANY_DETAILS);\n if (step[id] === 2) history.push(PATH_BILLING_DETAILS);\n if (step[id] === 3) history.push(PATH_AMAZON_MERCHANT);\n if (step[id] === 4) history.push(PATH_AMAZON_ACCOUNT);\n if (step[id] === 5) history.push(PATH_SUMMARY);\n if (step[id] === 6)\n history.push(PATH_CUSTOMER_DETAILS.replace(':id', id));\n } else history.push(PATH_CUSTOMER_LIST);\n }\n }, [history, role, customerId, step, dispatch]);\n\n const onSubmit = (data) => {\n setIsLoading({ loader: true, type: 'button' });\n if (showPassword.email && !showPassword.password) {\n setGetName({ ...getName, email: data.email });\n if (params && params.customer && params.step) {\n setGetName({\n email: data.email,\n customer: params && params.customer,\n });\n setShowPassword({ email: false, name: false, password: true });\n localStorage.setItem('customer', params?.customer);\n setIsLoading({ loader: false, type: 'button' });\n } else {\n getCustomerNames(data.email).then((response) => {\n if (response?.status === 200) {\n if (response?.data?.length === 0 || response?.data === '') {\n setShowPassword({ name: false, password: true });\n } else if (response?.data?.length === 1) {\n setCustomerNames(response?.data);\n setGetName({\n email: data.email,\n customer: response?.data?.[0]?.value,\n });\n setShowPassword({ email: false, name: false, password: true });\n } else {\n setCustomerNames(response?.data);\n setShowPassword({ name: true, password: false });\n }\n setIsLoading({ loader: false, type: 'button' });\n }\n if (response?.status === 400) {\n setCustomerApiError(response?.data);\n setIsLoading({ loader: false, type: 'button' });\n }\n });\n }\n } else if (showPassword.name) {\n setShowPassword({ password: true, email: false, name: false });\n setIsLoading({ loader: false, type: 'button' });\n } else {\n const detail = {\n ...data,\n email: getName.email,\n };\n localStorage.setItem('customer', getName.customer);\n dispatch(login(history, detail, { customer: getName.customer }, ''));\n setIsLoading({ loader: false, type: 'button' });\n }\n };\n\n const handleChange = () => {\n dispatch(clearErrorMessage());\n setCustomerApiError([]);\n setforgotApiError([]);\n };\n\n const forgotPassword = () => {\n setIsLoading({ loader: true, type: 'forgot' });\n getEmail({ email: getName.email }).then((response) => {\n if (response?.status === 400) {\n setforgotApiError(response?.data?.[0]);\n setIsLoading({ loader: false, type: 'forgot' });\n setShowPassword({ email: true, name: false, password: false });\n } else {\n toast.success(\n 'We have emailed you a reset link, please check your email.',\n );\n setShowPassword({ email: false, name: false, password: true });\n setIsLoading({ loader: false, type: 'forgot' });\n }\n });\n };\n\n const onDemoSubmit = (data) => {\n setIsLoading({ loader: true, type: 'demo' });\n saveRequestDemo(data, requestDemo.type).then((res) => {\n if (res?.status === 201) {\n if (requestDemo.type === 'demo') {\n toast.success(\n 'Request demo for you is in progress. We will get back to you shortly.',\n );\n }\n if (requestDemo.type === 'sign up') {\n toast.success(\n 'We will be in touch soon to help you set up your account.',\n );\n }\n setRequestDemo(false);\n setIsLoading({ loader: false, type: 'demo' });\n }\n });\n };\n\n return (\n <>\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n\n
    \n {resetPasswordMsg ? (\n \n ) : (\n ''\n )}\n
    \n\n {!showPassword.email ? (\n <>\n {' '}\n
    \n
    \n \n customerNames?.length === 0 ||\n customerNames?.length === 1 ||\n customerNames === ''\n ? setShowPassword({\n email: true,\n name: false,\n password: false,\n })\n : setShowPassword({\n email: !!showPassword.name,\n name: !!showPassword.password,\n })\n }>\n \n Back a step\n
    \n
    \n
    \n \n ) : (\n ''\n )}\n {!showPassword.email &&\n (showPassword.name || showPassword.password) ? (\n

    \n {showPassword.name ? 'Select Account' : 'Welcome Back!'}\n

    \n ) : (\n ''\n )}\n {showPassword.password ? (\n

    \n Please verify that it's you.\n

    \n ) : showPassword.name ? (\n

    \n Please select the account you want to sign into.\n

    \n ) : (\n ''\n )}\n\n {showPassword?.email ? (\n <>\n
    \n for amazon sellers and vendors\n
    \n
    \n One tool to track your sales, advertising & inventory\n performance.{' '}\n
    \n \n Ideal for any seller or vendor on the Amazon\n marketplace who wants to gain a deep understanding of\n how their accounts are performing.\n
    \n \n ) : (\n ''\n )}\n
    \n {showPassword.email ? (\n <>\n \n \n \n \n {errors?.email?.message || customerApiError?.[0]}\n \n {forgotApiError}\n \n ) : (\n <>\n {showPassword.name ? (\n \n \n \n ) : (\n <>\n {showPassword.password ? (\n <>\n \n \n \n \n {errors?.password?.message}\n \n \n {apiError?.data?.non_field_errors?.[0]}\n \n {forgotApiError}\n \n ) : (\n ''\n )}\n \n )}\n \n )}\n\n \n {loader ||\n (isLoading.loader && isLoading.type === 'button') ? (\n \n ) : (\n <>{showPassword.password ? 'Sign In' : 'Continue'}\n )}\n \n {showPassword?.email ? (\n {\n setRequestDemo({ value: true, type: 'sign up' });\n clearErrors();\n }}>\n Sign up\n \n ) : null}\n {showPassword.password ? (\n forgotPassword()}\n role=\"presentation\">\n Forgot password?\n \n ) : (\n ''\n )}\n {showPassword.email ? (\n {\n setRequestDemo({ value: true, type: 'demo' });\n clearErrors();\n }}\n role=\"presentation\">\n Request a demo\n \n
    \n ) : null}\n \n
    \n
    \n
    \n {showPassword?.email ? (\n \n
    \n
    \n
    learn more
    \n \n {' '}\n We’re a team of expert Amazon consultants who specialize\n in scaling mid-to-large product brands.\n

    \n\n {\n setRequestDemo({ value: true, type: 'demo' });\n clearErrors();\n }}\n role=\"presentation\">\n Request a demo\n \n
    \n
    \n
    \n
    \n

    \n {' '}\n {`© ${new Date().getFullYear()} Buy Box Experts`}\n

    \n
    \n \n ) : (\n ''\n )}\n
    \n
    \n
    \n \n\n \n
    \n
    \n
    \n
    \n What is NEXT?{' '}\n
    \n

    \n NEXT provides reporting features to track how your account is\n performing on Amazon's Seller and Vendor Central in terms\n of sales, advertising campaigns, and Inventory\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n What features can you expect in NE\n XT?{' '}\n
    \n
    \n Dashboards allowing users to track their performance in the\n following areas\n
    \n
    \n
    \n \n
    \n Sponsored Ad Performance\n
    \n
    \n Users can track their sponsored advertising campaigns'\n performance\n
    \n
    \n
    \n \n
    DSP Ad Performance
    \n
    \n Users can track their DSP advertising campaigns'\n performance\n
    \n
    \n
    \n \n
    Inventory Management
    \n
    \n Users can track their inventory to manage it effectively\n
    \n
    \n
    \n \n
    Sales Performance
    \n
    \n Users can track both overall sales performance and ASIN\n level sales performance\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Simple, transparent{' '}\n pricing.\n
    \n Always know what you’ll pay.\n

    \n\n
    \n
    \n
    \n

    Monthly Subscription

    \n\n \n $499\n \n /month\n {' '}\n
    \n {\n setRequestDemo({ value: true, type: 'demo' });\n clearErrors();\n }}>\n REQUEST A DEMO\n \n
    \n
    \n
    \n
    \n

    Annual Subscription

    \n\n \n $2,499\n \n /year\n {' '}\n
    \n {\n setRequestDemo({ value: true, type: 'demo' });\n clearErrors();\n }}>\n REQUEST A DEMO\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    © 2022 Buy Box Experts
    \n
    \n
    \n \n \n setRequestDemo(false)}\n role=\"presentation\"\n />\n \n
    \n
    \n
    \n
    \n

    \n {requestDemo?.type === 'demo'\n ? 'Request a Demo'\n : 'Sign Up'}\n

    \n
    \n
    \n {requestDemoDetails.map((item) => (\n \n \n \n \n {errorsForDemo?.[item.key]?.message}\n \n ))}\n \n
    \n
    \n
    \n
    \n \n );\n}\n\nconst LandingFooter = styled.div`\n position: fixed;\n bottom: 0;\n width: 50%;\n background: #fff;\n @media only screen and (max-width: 991.98px) {\n width: 100%;\n color: ${Theme.white};\n background: transparent;\n .large-label {\n color: ${Theme.white};\n }\n .normal-text-black {\n color: ${Theme.white};\n }\n .normal-text-black {\n color: ${Theme.white};\n }\n }\n`;\n","import React, { useEffect } from 'react';\n\nimport ReactGA from 'react-ga';\nimport { Route, Switch, BrowserRouter } from 'react-router-dom';\n\nimport './theme/FontAwesome';\nimport GlobalStyle from './theme/css/GlobalStyle';\nimport WarningComponent from './common/WarningComponent';\nimport UnauthorizedHeader from './common/UnauthorizedHeader';\nimport AuthenticationComponent from './common/AuthenticationComponent';\nimport MainContainer from './components/OnBoardingCustomer/MainContainer';\nimport DSPBudgetApprovalContainer from './components/DspBudgetApproval/DSPBudgetApprovalContainer';\nimport { ProdFavicon } from './theme/images';\nimport { ProductDelegation } from './components/Customer';\nimport HelloSignComponent from './components/Contract/CustomerHellosignComponent/HelloSignComponent';\nimport {\n AmazonLogin,\n ForgotPassword,\n Login,\n ResetPassword,\n} from './components/Auth';\nimport {\n BrandAssetSummary,\n BrandAssetUpload,\n DelegationUpload,\n} from './components/BrandAssetGathering';\nimport {\n AmazonDeveloperAccess,\n AmazonMerchant,\n BillingInfo,\n CompanyDigital,\n CreateAccount,\n Info,\n Thanks,\n} from './components/OnBoardingCustomer';\nimport {\n PATH_FORGOT_PASSWORD,\n PATH_LOGIN,\n PATH_ROOT,\n PATH_RESET_PASSWORD,\n PATH_CREATE_PASSWORD,\n PATH_HELLO_SIGN,\n PATH_WARNING,\n PATH_UNAUTHORIZED_HEADER,\n PATH_ACCOUNT_SETUP,\n PATH_UNAUTHORIZED_COMPANY_DETAILS,\n PATH_THANKS,\n PATH_UNAUTHORIZED_BILLING_DETAILS,\n PATH_UNAUTHORIZED_AMAZON_MERCHANT,\n PATH_UNAUTHORIZED_AMAZON_ACCOUNT,\n PATH_ACCOUNT_SETUP_CHOOSE,\n PATH_UNAUTHORIZED_CHOOSE_BRAND_DELEGATE,\n PATH_UNAUTHORIZED_BRAND_ASSET,\n PATH_UNAUTHROIZED_BRAND_ASSET_SUMMARY,\n PATH_UNAUTHORIZED_CHOOSE_PRODUCT_DELEGATE,\n PATH_DSP_BUDGET_APPROVAL,\n} from './constants';\n\nexport default function App() {\n useEffect(() => {\n ReactGA.initialize(process.env.REACT_APP_GA_TRACKING_ID);\n ReactGA.pageview(window.pathname + window.search);\n }, []);\n\n useEffect(() => {\n const favicon = document.getElementById('favicon');\n if (\n process.env.REACT_APP_ENVIRONMENT &&\n process.env.REACT_APP_ENVIRONMENT.includes('production')\n ) {\n favicon.href = ProdFavicon;\n }\n }, []);\n\n return (\n \n \n\n \n {/* Auth */}\n \n \n \n \n\n {/* Contract */}\n \n \n\n {/* Onboarding Customer */}\n \n \n \n \n \n \n \n \n \n \n \n \n {/* DSP budget proposal to BP */}\n \n\n {/* Default */}\n \n \n \n );\n}\n","import * as actionTypes from '../actions/actionTypes';\n\nconst initialState = {\n isLoading: false,\n data: {},\n error: null,\n accountData: {},\n multipleAgreement: [],\n};\n\nconst accountStateReducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.CUSTOMER_ACCOUNT_REQUEST_INITIATED:\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case actionTypes.CUSTOMER_ACCOUNT_REQUEST_SUCCESS:\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n error: null,\n multipleAgreement: action.multipleAgreement,\n };\n case actionTypes.CUSTOMER_ACCOUNT_REQUEST_FAIL:\n return {\n ...state,\n isLoading: false,\n multipleAgreement: [],\n error: action.error.response,\n };\n default:\n return state;\n }\n};\n\nexport default accountStateReducer;\n","import * as actionTypes from '../actions/actionTypes';\n\nconst initialState = {\n isLoading: false,\n data: {},\n error: null,\n contactData: [],\n customerSelectedTab: 'performance',\n showBrandAssetMsg: false,\n customerMembers: [],\n};\n\nconst customerStateReducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.CUSTOMER_REQUEST_INITIATED:\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case actionTypes.CUSTOMER_REQUEST_SUCCESS:\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n error: null,\n };\n case actionTypes.CUSTOMER_REQUEST_FAIL:\n return {\n ...state,\n isLoading: false,\n error: action.error.response,\n };\n\n case actionTypes.CONTACT_REQUEST_INITIATED:\n return {\n ...state,\n isLoading: true,\n // error: null,\n };\n case actionTypes.CONTACT_REQUEST_SUCCESS:\n return {\n ...state,\n isLoading: false,\n contactData: action.contact,\n // error: null,\n };\n case actionTypes.CUSTOMER_SELECTED_TAB:\n return {\n ...state,\n isLoading: false,\n customerSelectedTab: action.tab,\n // error: null,\n };\n case actionTypes.CONTACT_REQUEST_FAIL:\n return {\n ...state,\n isLoading: false,\n contactData: [],\n error: action.error.response,\n };\n case actionTypes.SHOW_BRAND_ASSET_MSG:\n return {\n ...state,\n\n showBrandAssetMsg: action.showBrandAssetMsg,\n };\n case actionTypes.CUSTOMER_MEMBERS:\n return {\n ...state,\n customerMembers: action.customerMembers,\n };\n\n default:\n return state;\n }\n};\n\nexport default customerStateReducer;\n","import * as actionTypes from '../actions/actionTypes';\n\nconst initialState = {\n isLoading: false,\n data: {},\n error: null,\n isAuthenticated: false,\n userInfo: {},\n showForgotMsg: false,\n showResetMsg: false,\n hideHeader: false,\n isInternalUser: null,\n showDynamicMsg: {},\n board: {},\n};\n\nconst userStateReducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.USER_REQUEST_INITIATED:\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case actionTypes.USER_REQUEST_SUCCESS:\n return {\n ...state,\n isLoading: false,\n data: action.payload,\n error: null,\n isAuthenticated: true,\n userInfo: {\n ...action.payload.user,\n isInternalUser: action.payload.user.role !== 'Customer',\n },\n };\n case actionTypes.USER_ME_SUCCESS:\n return {\n ...state,\n isLoading: false,\n error: null,\n isAuthenticated: true,\n userInfo: {\n ...action.payload.data,\n isInternalUser: action.payload.data.role !== 'Customer',\n },\n };\n case actionTypes.USER_REQUEST_FAIL:\n return {\n ...state,\n isLoading: false,\n data: {},\n error: action.error.response,\n };\n case actionTypes.CLEAR_ERROR_MESSAGE:\n return {\n ...state,\n isLoading: false,\n error: null,\n };\n case actionTypes.SHOW_FORGOT_PASSWORD_ERROR:\n return {\n ...state,\n isLoading: false,\n error: null,\n showForgotMsg: action.showForgotMsg,\n };\n case actionTypes.SHOW_RESET_PASSWORD_ERROR:\n return {\n ...state,\n isLoading: false,\n error: null,\n showResetMsg: action.showResetMsg,\n };\n case actionTypes.SHOW_DYNAMIC_ERROR_MESSAGE:\n return {\n ...state,\n showDynamicMsg: action.dynamicMsg,\n };\n\n case actionTypes.HIDE_HEADER:\n return {\n ...state,\n hideHeader: action.hideHeader,\n };\n\n case actionTypes.SHOW_HEADER:\n return {\n ...state,\n hideHeader: action.hideHeader,\n };\n\n case actionTypes.SET_KNOWLEDGE_BASE_TITLE:\n return {\n ...state,\n board: action.board,\n };\n\n default:\n return state;\n }\n};\n\nexport default userStateReducer;\n","import React, { Suspense } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport thunk from 'redux-thunk';\nimport dotenv from 'dotenv';\nimport { Provider } from 'react-redux';\nimport { createStore, applyMiddleware, compose, combineReducers } from 'redux';\nimport * as serviceWorker from './serviceWorker';\n\n// Thrird Party css\nimport './theme/css/bootstrap-grid.min.css';\nimport 'react-toastify/dist/ReactToastify.css';\n\n// import './index.css';\nimport App from './App';\nimport PageLoader from './common/PageLoader';\n\nimport {\n userStateReducer,\n customerStateReducer,\n accountStateReducer,\n} from './store/reducers';\n\ndotenv.config();\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst rootReducer = combineReducers({\n userState: userStateReducer,\n customerState: customerStateReducer,\n accountState: accountStateReducer,\n});\n\nconst store = createStore(\n rootReducer,\n composeEnhancers(applyMiddleware(thunk)),\n);\n\nconst app = (\n \n }>\n \n \n \n);\n\nReactDOM.render(app, document.getElementById('root'));\n\nserviceWorker.unregister();\n","const Theme = {\n /* Theme Base color */\n white: '#ffffff',\n red: '#D60000',\n lightRed: '#fbf2f2',\n darkRed: '#d63649',\n pink: '#f6d2c9',\n lightPink: '#ffded6',\n yellow: '#f7c137',\n lightYellow: '#f5e8c3',\n extraLightYellow: '#FDF3D7',\n darkYellow: '#ffb700',\n orange: '#FF5933',\n lightOrange: '#ffe5df',\n lighterOrange: '#fff4ec',\n extraLighOrange: '#FFE6D4',\n green: '#33ac2e',\n green20: '#33ac2e33',\n lightGreenBg: '#d6eed5',\n lightGreen: '#E5F1E5',\n lighterGreen: '#407b00',\n darkGreen: '#74b035',\n lightBlue: '#d6ebe8',\n blue: '#5578eb',\n darkBlue: '#162C50',\n lightDarkBlue: '#2e5bff',\n black: '#000000',\n gray90: '#2E384D',\n gray85: '#171725',\n gray80: '#333333',\n gray60: '#69707F',\n gray40: '#556178',\n gray45: '#D5D8E1',\n gray35: '#8798AD',\n gray30: '#b0bac9',\n gray25: '#BFC5D2',\n gray20: '#999999',\n gray15: '#f9faff',\n gray12: '#e2e5ef',\n gray11: '#e0e6e8',\n gray9: '#dee2ed',\n gray8: '#F4F6FC',\n gray7: '#e4e8f0',\n gray6: '#fafafb',\n gray5: '#EFF2FF',\n gray4: '#E2E2EA',\n gray3: '#EEF3F5',\n gray2: '#E0E7FF;',\n gray1: '#f8f8fa',\n\n /* Colors */\n baseColor: '#FF5933',\n secondaryColor: '#e74b28',\n\n /* Basic font size */\n textExtraSmall: '8px',\n textSmall: '10px',\n verySmall: '11px',\n extraSmall: '12px',\n small: '13px',\n extraNormal: '14px',\n normal: '15px',\n extraMedium: '16px',\n medium: '17px',\n title: '18px',\n subTitle: '22px',\n\n verySmallRes: '14px',\n extraSmallRes: '15px',\n smallRes: '16px',\n extraNormalRes: '17px',\n normalRes: '18px',\n extraMediumRes: '19px',\n mediumRes: '20px',\n titleRes: '21px',\n\n /* Title font size */\n\n largeTitleFontSize: '48px',\n MediumPageTitleFontSize: '40px',\n primaryTitleFontSize: '36px',\n pageTitleFontSize: '34px',\n MediumTitleFontSize: '32px',\n ExtraMediumTitleFontSize: '26px',\n smallTitleFontSize: '28px',\n secondaryTitleFontSize: '24px',\n textFontSize: '16px',\n largeTitleFontSizeRes: '52px',\n primaryTitleFontSizeRes: '40px',\n pageTitleFontSizeRes: '37px',\n MediumTitleFontSizeRes: '34px',\n smallTitleFontSizeRes: '32px',\n secondaryTitleFontSizeRes: '27px',\n textFontSizeRes: '20px',\n\n /* Font family */\n baseFontFamily: 'Noah Regular',\n titleFontFamily: 'Noah-Bold',\n baseMediumFontFamily: 'Noah-Medium',\n boldItalicFontFamily: 'Noah-BoldItalic',\n regularItalicFontFamily: 'Noah-RegularItalic',\n boldArialTextFontFamily: 'Arial-Bold',\n regularArialTextFontFamily: 'Arial-Regular',\n contactregularFontFamily: 'Helvetica-Regular',\n contactboldFontFamily: 'Helvetica-Bold',\n\n /* Box Shadow */\n commonShadow: '0 10px 20px 0 rgba(46, 91, 255, 0.07)',\n boxShadow: '0px 0px 5px 5px rgba(46, 91, 255, 0.04)',\n};\n\nexport default Theme;\n","module.exports = __webpack_public_path__ + \"static/media/page-not-found.8277bb7d.svg\";","module.exports = __webpack_public_path__ + \"static/media/contract-voided.79eb3454.svg\";","module.exports = __webpack_public_path__ + \"static/media/banner-bg.aa504679.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAA5UlEQVRIic2VOw7CMBBEZxEn4FKIIg2ho0aYiE9LOACYGosEzpCAEBfjBFkKIhowxLsUuFt59F5hzRr492OzomuP557vvq2Bb/IyYcChqm4AOu8yLQ0cgHtMtPLlRIJ1dho94czz1PRzX5YkcCI+POGTgfuUDxKEwoMEEnhjgRTeSKCBfxVo4R8FNi8iBl3qcZqaeB8KBxRFUwuWZnBlpnE9OpuXM4kg6JEJWCxNvPupQCsRFS1EIl4VTSWqZddEEiwIlYgEwMuHk/j+BHHR6mZPH1O19eVUTU5NvCdCxNwaajiqcwdkdoOeVOVATgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/logo.82c7e584.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/default-user.fac07a8d.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAh0lEQVRIie2SQQ5AMBBFfx3IBWycRIJDuALOIMRFsFB7dRosxlakZBpWMm/Z9L/XRQFB+BeDNnE/LqnLxuNe7LXJCKihqBq0Kbg7xZUDyC/DMgz87HXAJneJPAae5NzIbYAj50SsgW6aI0Wq5chPoiQM/OZ6bv1FHrADWB38KxE2lwcJgvAhB3hmLkgV2wimAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAj0lEQVRIiWNgGAWjYBTQHDBiE9x/9HIMA8P/OQwMDOxEmvPzPyNDkpOV3jJ0CSasyv//YybBcAaI2v8s2CSwWuBoo7+QgYGhgnjzGRucrPQXYZXBp23/0UvlDAwMHYQMd7TWbcQpS8ht+C3BbzhRFuC2hLDhRFuAaQlxhpMM9h27nHTg6KVEqhs8CkbBwAIAWagoHzzfl9cAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/edit-icon.be8a4cc9.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAB0UlEQVRIidWVPU8UURSGn7M7IwiddBaYWKCJmWk2yA7RFk3cJVEkEBNpIPyOLf0Pxhgs0Kix2Fk3QqWRZCYkFAwaxR4kFlYuX/txLBAD45UZWSl4q3vm5rzPOXNu7oXTLol/yOWm7bq1MaKiF4wJKtstac5/CF9/+mdALjdtN+z1t4oMJuTtgoxGYbmcBLAOBnVrYwRkUNDx5bDyHNB4whXvxrmsnqmCPgASAZmDgWS0D+Bv5gAfg7nvqswBl5LM/wCoyn5sNP9diIjGc1MBjiPPGz3r9N+6eGKAH+xMSjaz6g4U7p4IQGrbjxUWEHnmeMV7/wUQheVSFPoCEEXzNdncKSi8F+VJHGKZLfbkDBQeidCbBirQCWRFmXG84tpK4L9L7ODXaWlLR3YQhf5UGhPXHerWro6KQBNhYr96OOYM3Pxwyc0XNWZ+HeF+FPhPU3eQSl0dkwLXUB2PwsrL+HbbgG7pfLjZrL1ZXqx+Me23DQiCF1uA0Rzil51oa29VOnI2qipAK00Bh41UVwFcb2kMw2MEcPnq7R4Rbip8TgM49Ius+vlXdfvrAsqsmy/OmlMaALuCGu+euIxPZsNev6OII8YZ6beWSHUl8FN1cPr1E5UGnRk81ruSAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/edit-file.1ef130fc.svg\";","module.exports = __webpack_public_path__ + \"static/media/close.de4b005f.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAACFUlEQVRIie3Vy0tWURQF8J/6FUZB9sAe0osmqTWxx8gwQRvUpCYNRKhZ04r+AOc1qUFNgxoU0SBESuxFRO/mghDRSwcZ1ShTssHZ4vH69aHg8Ftw4d6191nrnHvO2ZsqqqhiiVCziNx6dKMDu7A2+O8YxhM8wO+lMt6P8ziKP3iM9/ga8SbsRCdKGMBFvFnIBMphD+5hGn/Ri7oK+SWcitzpGLtnMYbL0YcJ9OMpbhZyTkSsP95z3MEz3A2NvtCsiCa8wBfp15bwC11ZzmlpRflzOosfjjElHAmt56FdFnsxhiE0BrcthBuyvJEyxiNZfE1wW+O7MTTHwmMODsYsr5m7jy0hUp9x42WMx7P4iuBaMq4U2r/CCzTjJy6Zf8obpMOSi9woY3w9i7fGmNUFrRpcDq/m2iwwZT5+4C2OZdwZ6b7OYAhns+/jeB0GRUwWifZIvGL+lenFN2wo8JviybFRKig9Bb6Eq+HRXjRvwyjuY33G12IQL7GuzCpmsB6vpPtbU+AHQ7vtf4ObpKP/WSqPM2iQSuJHnMTKLLZKKhyf8Mjcve02e502V5g05haQW9ge/DKck67FhFSfh+N9VNrnZZG7A7ctooDk2C3V3UmpcnVIe1WHA9I+9ki1vDZih2KykzG29X/iC2kS+8w2iSmpSXyQfi1skVbYGZMawAW8qyS62LbYpXJbfGiBbbGKKqpYMvwDXrKF2XBgAwMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAABQ0lEQVQ4je3TMUuXYRQF8F+KQyHmpIWGo+lgblJbg0bR4mafQKNFnB2F8hvUt9DFCmqpNP5ahDjUKkqhoKOKpDa8xz9PhvAnVw9cuPdw7nnv8zz35RIXxZUGNFdxK/kG9v/H8AYm8BCHWA/fgxa8xktsNTLNLLbxGdfC30wIV4vmeXrqaCryfiziJ+YwjT1MYTMxGW46ml/4hNtnJ3uA5ZjCR1xPvouTxE64dnwoBqlhuDSroaP4wNuiXi0Mv4XrxJtC3xGPkaYIj/G7ELzHaPIxzOeITwruXaE/ikcdI1jBQOo2fEWffzGINbSmvpPe4bPCvhzpKZpVF72MGdxPvIimN5pnqeuPUr7yd9xT7doShlT3u4rHiS8xvhtNV3p+nJqct9idGMcj1d2Wi92MBbxS7eJfaPTX606+gYMGei5xAfwBX+9H8twU5pkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAACFElEQVQ4jeWTwWsTURDGv3lZalB7Ee2lTUVBoza7SV3rbhqVRT1UzO7agxSr5/4FHkQp+A947qUHRRAh9WA01HoxaLQpPVSTQo5SrAfBtBREEt194yE0tKHb1pwEv9vMm/l98+bxgP9OFHSg6/bB3x1wmWEREAGRAMuvzCgQ/OeluenlXQF13d77qwPjYFwS4Kcs+HWdQkv7a+x7Ib8HQlxk0E0AZVbkvXIhtxoIjCfT3cw0RYSHx3vCk5lMxg+6gZp0rhPzHQl5a7GYq2xZlDDSx2KGowVBWqWdtY/0G+6p3da3r4SZtuIDdl+7/bEBN6IatgsAAgA88DdWaMKyLKUNHpEiJ0JE35vAxlLli5Va54O/pWmmfZeAysdi9j3Q8sqaaT8D8ZcDe37czufz3k6TxZP2ODPrpeKZYeC+bE7YgLkGCL1grK7UOt8kTCe1zVSn46Y9A0ldYNEbM+ejTRcAUJOuSiwfgT2nNDe9rKWcKHyeAVAFUADhMyQxiCMAUgCOEtHQp9nsQsy8elJw6Ikkf3SxmKsIACCWI4J5ZP07SRYeGEv7KHwOUk6B0QdiVYBf4mf9MhPmJcgDGvuX5I8SiRvbLXpSSzpD67FqOGOq4Yw140Hngmraj7fqFa2J/vNXDgE4UZrNvgoyLH/IviWiw9rgcNeOwIV3RlWEQ+lNRSTXBMm1jTkf9WvRbqUaZPrv6g+aucWHCb8RBwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABJklEQVRYhe2WT0rDQBSHv4njFdLgAaQgBGwbum7vUEgKOUF7nN7ARUXBE2iDaxFBEFr3ingEjfNcNISC1uYfCjK/zQRmeN837y0mYGNTIxJ1RaKu1KnhNCVjBayAFbAC/1tAws5ERoFXtKiMAk/CzqQRARn3pig1Q5ukiISMAg9tEpSaybg3rS3A3tsZ8AC00eZawuODrfCo30KbS6ANrDAfF7UF1Mn9K/p9mEkcopzkOwmJ+i1Ir4AjYIWYoTq9e95Zf9eBHBD7Lun+IgM8ImaAcp7Wu9qrAi8lABvzXbd4ma1sfC9JnYE6v3kpWrOUAHzpxGZK3byywBaJSvDKApCPYwFA6gzLtL2xSOy7Evvur4ObzI8jqPvHm0Pmt1s5f/4Y2dh8AkRdbpz9ZQ8AAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/facebook.4fbb3309.svg\";","module.exports = __webpack_public_path__ + \"static/media/linkedin.63e78299.svg\";","module.exports = __webpack_public_path__ + \"static/media/twitter.f61abab8.svg\";","module.exports = __webpack_public_path__ + \"static/media/instagram.d9f7cc18.svg\";","module.exports = __webpack_public_path__ + \"static/media/trash.59ee9dff.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAAaklEQVQ4jWNgGEpAlIGBQYMMfRpQvVglLjIwMGiRYJgWVA9Oh6gzMDBcYGBg0CHCMKLVEqOQFIsJaiDZMHwayTYMmwEUGwYDsJgkKgUwUWobqYCqXqZqpFA12VA1YVM161G9cKB68TU4AQC8/R41iBDaqwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAP0lEQVRIiWNgGAXUBP8jjf//jzT+T4oeJlo5ZtSCUQuoBxiROaSmcZyGLj8LN5fmPiAJjObkUQuGqQWjgCAAAFIWDkjWuJhhAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABxklEQVRIid3Uu2tUURAG8J+6rpDgo7AwKogGRWwkKFhYKPa+gqyVf4RoESsbxVdArGzslPgHiNjZaZEUKURZoxKMr6AGxGej0eLM4uXkbHaTMgPD3Dvnm++7d+7cYalbHQ2MoInv4c3INQKzKBvEK/zt4C9xfCHEy3G1C+Lcr0RtR7u2CPKWX+5EPlgo+haFe9GLHuzGecwU8MfakdfN7flTbMMyHMAZnMauqOnDaFbzAitLAo0MOIPN2ITHhSe9ixrWYzo7O1ESGMlAQ0EwHvdvMFXAiLeq5u+UBJ5noO04EtdPpN734EPWQujPapst0upY9WWCU/73+gF+hr+tYLZGrOZgY0lgRQZah3dxvaGC2VHBfI24WhurCkxnZ4dwL0hWRW4AayqY8Yh7str3JYHRDHQOv/ARjyLXn2FuRjyV5ccU7KS5o/gw4kBgtkhz/glnI7cfv3UxpnW8Loh8kXpfw9qs5iA+Z/gJbX400m+eC9yPs33Sd7qF4Xi7Pxl2VhrteW04K7oe+aGCeO6XOpGT9k51o16I/Ng8xLPSQuxqXbfsMCZxQxrZduQTOLoQ4qrVsBMXpU37Q1rfz3Bbmpa2H3Rp2D8Hns0wOuvFAwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAWElEQVRIie3UMQqAQAwF0Yd3UPT+R1GrtdLC26jN2lhvQHQHUgX+kEBCpfIGJiR0UYIFJ7YoSYs1S3YM35TMuVGyEjRZcESMVJrnivoafhN+aKPgV1H5OxczvjAvdLnZagAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/plus.16545d16.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAp0lEQVRIie2UQQ6DMAwEaZ8AFJVfhvJTOPCc6QEkUNQ6WQdu7BXvjpMYV9UtRUANDEDr8LbACNRWUWDVDHRCeLd5AIJV2BwKsyBR+Aw0KcMLmDbDAvRC7TvVUDbEHZ4DKQ63IKeFHyDxI0pD4DmJ1PmzgPso8O669Ip+Pajyn8jhxjcNkjOKbogy5zKEdeWWLrv/qx74eCYkggypEwSzi7TXXte3Yn0B8ncTdE7nHS8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABmJLR0QA/wD/AP+gvaeTAAABgElEQVRIie2Vv0vDQBTHv+9S4mwziJtjQYmLxIB/QIs0hTr6H4jgYFcHRZBiwX/DqSqmg8XdpoJDUwsOOip0qM4NzZ2DRmNJ2sQUEfE73b179z7vfr0D/orIa6jL+QMQlQDI34zVdbnIdq5rrXCIbvRdcmY7jfrze1/YlknDE4Kk6oVdQGQBzLlc5IZBKV9b9gDRAhs9AGkCtsRbvnUI0ZYYXcxr+S8gFjVogNIA7QmQ4hnsplkl0KbE6HJBKyxNAhKolnV+AoENxkRtQhC+EmS1m2YVwExiiAC2CXQjiKrjfFNhAwTcL+rGEQe6YT4ceIHgqwDWBKEcG+IyKSe5fJ2RmB6XKSeU2w3zODbk9ursAcD+OEAUTfx2BSl0JTHLjAOgYlvmTiwIiEr+MjNKGa2oyGzwCCAQMmq7IpeZu+vTHoCpsPEfOZN/SDKIqhsiScCg+X6Ik9GKStTfMEy2ZVJGKyoA+p7N/04qMhs8qbrx8fjirurTf+AQ6DBJsr9Tr/Q5gf73/pZ/AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/CompanyDefaultUser.2f3a1fbe.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAACW0lEQVRIie3SP2gTYRjH8d/zvjdYEKXqoKhZnAouUgeVoqKLKIr50yyWioO9BMEMIr0kgxHa3kVcFMMl2klwud7FCsU/UISWih0UXBwLogU71A5Cwdrc+zjUlNI2bapphNrvePfe++F53wM22+iRWfDe/QtYA6MZRN0Af64PSQEwpzUAEKz6O2ORukyezbuHFSgtAECBertsZ+96o3dyzm4fZAOA+P2sQZIcyeaKTeuFZnPFJl/KtwRsm4eZuJ0Jr5TkN6bdd7LWqPWw75iSPAymIaFweR4mX5ZSejhG4Nsg8cLKu221Qs1CsZWVGAQjZ8SCVxTE7DxczohF7hFIZ1CvaXuZv0WtvJsA8xNmSiTj4QwRcfmdtnixEQs9Nu3iOBF7Vt4LNNKkruv67FpAx3Hk2JR4wKBLAF1IxUMvF68Ry32YjIdeQ3ALE05NqV3PrYKzvVo0k3O2jk3JZwCdV0IcT8aWohVhADA6Ih8VcBQCjcxypCvXv381tLvg7dki5RDAASFxJN0R/FBpbUUYANJ6+KvWMH0C4E9S+KOm7R6qiNrFg4IxqoBvMz9/tHReDY+vtPeKMADcbG+fPrBDXQShH0TDPXn37BI033daEI+AaHAnTZ7LXG/7vtq+S36u5YpGoz6Aa1bB/QKmpz22d5c17T4ACL+UAHCDiG8ZetiqZj+giokXZugRi5nCJBAVfmlC+KUJEFqJEDL0SNUoUOXEC0vFQwMABrKPvH0AsNpd1gwu96dguTUddS37/+C5O5YcNAtec31IDoABDYT3AJ+pDwoAjDlzs43eLxqS1qChxMvLAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAAD3klEQVRIie2WW2wUZRTHf2dmW1oaglYBhSCaAImXRB6EoCYNqMEHU0N36WpES1DpFDApFpDd4mW0pdti00RC3d16KdFKzNgbFx+8tZAQH1RefFVQC4KR0hBjLW135vhA22zrQou7fTDx/zbn9vu++WbO+eB/JanhXSe/urFz4XTUlqs5IvG27Sg1QDbCh/n0PmdZ1nCmwEYqY02stQKlHhgCzqI8c1HntDiOY04bOBJve16QeuAvT3jcMLlf4ZSgwR/7fAczBR8HjsTbi1GagMuoFO62At27NgXOegkeBn4WNHi6z4yr6lWPaKoaK9DQ4OQOzjR/BWYh3mNhq/jz5MCqd5w7fK55HFiI8GrYClSlAx7b8UCOsQS4UeGriVCAVzYFf8J1HwL6UbanAx0HHs41e4CEwDLbcbJTRvvM9UAeaE/GwPbGokvAEWBezkVj7cTASLztNRRb4BKeuTFj4CsPEgVACNu2PearjbWWj0LVYE14S9HJjIJ3lfm/QPlakWU58+5ZN+YQuQCg8H24NPBtutB/gAHUlEoANWRPQ4OTC3D5fL6jcAooqI22Pjot4MpS/3HQQyiLB/OMPQC2vTqB6A4AFYnVxp3ZGQcDeCKbFfpQKa+Jtj0IUGmt61ThY+B2VV+n3dyckw746kMi2r4e0RaEX8yEu/KlrcHf7PiRmdk61C2wAjiRJdlFO6zC3tGc6qizwBQzqnCXKC2hMv/rIqLXBR6BH0B0g8J3WTP7V+0sKemved+ZI0PmYWAlyjkxKA1ZgU+ro84C0zCPoSwGXMAE3g5Z/hdSwVO+6lEN3pQoBboE7ksM5B10HMesfDZ4IW8odxVoDGG+KkcjsfbPkqAdYui9KOeALbXx9v2pevukzd5u7rhhxqB3Argb4bAvt/+pnSUl/QCRprZH8GgElo6Ed+RL7xOWZQ3vjbUucVWOIcxPtfMpTZnqxs6Fpul+CSxFOOlB4W4rcB7Atrt9M+b1PY2wPF96tyVfFpLhgjSEyvxjPX7K4+3NaPvcBHoUYTnQg3obwpuLj02WlwS/1XXNRS9vXXsGJjnjZO3c7P99MOePAuAD4DbE6IrE2hrr3js061p56ho+BANQjCFv1P6vBvqVC4PuB+YCZxDeGDyff8C2VyeS4+oa2+/0TO0CbgHqwmWBUFpggPr4kZuHdXgf6JMjdX5A2Duj3/2ooiI4MB4qb4Wsohev++O6luqiHSs80SrQNSOmi6h+g0gBkIfqvlBZYNvEfzlt8Khqmz55wPPMckGLgCxgACESKvVXp2ogGQOPLSDuzHZdY9GweqftrcE/M13/v6u/AZdZikPg8w7iAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAAaklEQVQ4je3SsQmAMBBG4f/APaITWDidEzintcEJhGchgkKIOQWrvOpI8d0VkWo1d3YOQJA0SWqcxiZpNLP59gp0QMRfBNrkKqAHFge2AkP2fgf6jDnQcqwA9WMZ9D2WQL9jFzRw/NPaD+047hbItO2TzgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAArElEQVQ4jWNgGAWjgGTACGMYWnnJ//3L3M7IyMBCigH//zP8YWb+W3n+2LaHDAwMCM1//zAzMTAxuP1nYBAm0Ulv//9jq4JxmWCMS6c23//7778zAwPDGxKMe////z/3Cyc2PECYjwa0zXz0mZkY9zAwMIgQYZjr5ZNbz6I6GAsgwlCshuE0kIChOA3DayAOQ/EaRtBANEOZCRlGNDC08pI3tPKSp9igUUAUAAAx1k4pH2gm/wAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABmJLR0QA/wD/AP+gvaeTAAABz0lEQVQokZVSsW7TUBQ99z5DwpS2mAxFYorEH5AlTPADbUlYoR3SoSsuSpcMENdpN9TEBokuVSUMpqpaqRNiydB+A+IHGgeVDTf2uwxtosQ1A2d5eueec+/RfY+QgdZH/x4io0wQU0AhcvFZY7nWT+to8uJ0/IdaGRZBQoj0SFM/AYrEVCHIHEMca/XZjxtm+33wFBpVosR6Xa/9Tk9p7h7M5KOknUA+baxWv01NtN3AE5Fxszdd/37LC1zn3eH8iBMRsrvBB3vHLwEAA4BWhkWUWEQkIyEro0SCF3IrLo1jEkmU51dgtQ4A2Op+LW56gZO1uKbv387iN90vW9vekclD4BFEemlByw1Wcr/Unt05nr1p516MyzKD9V0NDtNlNTROAFQ5Se6kaxo41xDTgOYBkzaz4v0LDBQBChm5+EzAj//HDOiKHtIpN5ZrfYLMNXcPZqZzxw+mzmtc76DQWFsc8FUMcfJR0p58ZyEpgFAXksKYEyFQ1GZSDjDxw966n58o0PM/OWU1Xy5cpIPaneNZUNTWjP2N+tL3KTMA2Dt+CazWieQC4J4Gzq+WoysACkzKseoLP0d6Qga2vSMzxmVZQ0wGhXpIp421xUFa9xdJVraCorz53AAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/telescope.50c13acf.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAACCklEQVRIidWUP2gTcRTHP+93Pw1FSrL5JyBGpNWqpPaCq10EBUHaUsxVF4e6+GeyuDgWlLoJgjgo0moLQh11USxuaiq41IhRHERHNZMmuedwSZoztj0vIPTBDfe5977f93vc+8F6DwFQzy2i8ozv3y7Io/c/WxM0378D45xFOQJk6vgDyGOkdkPuv/4Uyj+6K0EydR3RQzJb2G0CyjSi46SSCzqaTQcI0TH3EuIUUS4C+4BN9Wc/6ARqiuoNTDTFR7NpUskFRMdRZgAMgMwVJoFhoA9rnwDguddQrgIbV5lAAmRKvdwUANY+BfpQHalrBiNqdnDiYA9OLYuvVUTmo8x4uViOYzSBkTcy86rYwNKWB4LnLgG9/2QAS8wW9gpoKzRtafkDbgxxgD3kc/1/QlHPLQE7AR+R0yhdoDdjGIDqGUR+AbcJmi9Z0ElUehGt4jjPqdROtg8uashmrHOPavUKKhajb63MLt4JNTGWs6iupLB6GLEy/eIjcLmJ4vYa2fP/G6jfFVvtL7XhRRsctGwrl1C2x7T4TDcZuVWoNED4BFt+jHQgDpCmrEOtIGwgcq4D8YbI+ZUNgoXrNDKtLzb0SeUYRofx2RBL2lDBD1+SkXZW8wNDGOkJQV/fydziw7Vq7VoJADh8wecu0F0nZZDDUUoj3zp6yt1KjeAPqZp5efDya9Ta9R2/AflImqof7/KnAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/sow.a44ad4ad.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAACF0lEQVRIie2WMW/TQBTHf882G5mRIEJFZejGYKQOLR8AKpF2qEhItw5sgBgYgX4FRsTWVjVCEWqaih0qJNS0wMQWVaKlezMmvsdAgmzHjq+hQQz9b/fe/97vnn1nH5zrH0lsjbroX8WjBMwBE0CxlzoEDhBpYGRTgt0fZwLWxRtXcC88Q3QZcHPsBqih4VMJvh6MDNaKPw+sAhfzFphQG5UlCZr1LIOTCb3vPwJqI0ABCoi+07L/MMuQ2nGv09qwhVnKoLKQ1vkAWKvTRUz3O6N1mqY2aqYk+PIzGhzsyHRWrKDqzAC3LMAFxFlJBmMd945Mi/zdi2zsCYBWfLWAhzjehKx/PuwH4h27zNtAR5BL2ClFA3GwyO0xQPu172SDVa+PDQyT0YEXSwmXUqeoMyPB7qe0VP9d/7FW/FngY4r1cnRgd05dtf6mo3ZeLzE+BgoDLqM7WvFjoVPuaoCj6CDRsbQsi4yiWO3ErmZ7bFihkQ02sgmEY8B2EW8rvo6EtOy/RljOLeXILKFxEPmQ61V5JUHzQWz6gCnsPgfaucWM7lhB4QRPXySDA2B5++0II/c4m0duQJdkbe84Fwwgb5rvUZ78nvg3UB7Lxv5WWnL41ad88y6ia6Sd7eE6wdGqrO83sgxDv1wSNOt0zSTCS6BrATSIruIyNQwKp7neVqeLhJ0SDnOoXCN+vW0B2zhePfrPPdd/oV9RdaO+wl6R8AAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/right-check.4b5eed42.svg\";","module.exports = __webpack_public_path__ + \"static/media/save-check.5f6ffb14.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABHUlEQVRIie2VMUvDQBiGn7OB0ICLOHQ4dEigSGk6GsEf4CFmc9G9UvwBjjr6e9SCg3tdI7hIttTBRf0D5XNoh4BNvAsOFnyn3Eee9+GOkINVj7J9sbeXRi2Re4CZUgfPk5vchluzFbTgGAiBcPFsy9UnMsbXmzvnwAjYAFCw3dFd1vth9p7nszq+9ojiXaNR3hiIK+AMJYfZ5O61qqPyiCJj/LpyAIEBosaRMb6zIPj0RnXlZUnw4Z05C4DTn8pLOXEXCD0HQd9dAG0HQdBE8Cv5F/xRQZykV65Fg+Toetn8289uXi6XrgJgv6O77bfpy0N5uGQHjcrnJFw0ZRvH+kaLk7QA0Ytl8fR4u2XDWX9FggxBTYECpYa23OrnC+UcOZwJtxQLAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABEUlEQVRIie2UsUoDQRCGv4mBwxSeDxBscp2oYAK+goe1oBfrBJu02plSW0trQcE66EtESH/daa+lcMlY5EAhHje7WBjwr3aH+f9vZ1kWll1ibdST3YipPAGwovty+5xafDXzUaZyCLSAVrE2qXICjaOAMOwjDAoAKCnCNW/vN/KYfngDtLvXZJaPgO2Slgl5fiAPk9eyjNIr0jgKKsIBdqjXRxpHgTOA9bXTivAvSBj23QHUuobwuYTEA6CbDoAtDwCrZoDS8AH8iv4BfxSgSWfoGqRH7cuf6gt/kSadIaoXroC5mSu5H59/Ly1O4BsOIJx5e/2ZRulxOwOaxTaTu/GGxWd/RTPpAS9ABtoz+5ZenwsNQe15XC4MAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAMAAABOmSgnAAAAAXNSR0IArs4c6QAAAHVQTFRFAAAA////sbjGsbnFrrnGsLnHsLnGs7rI////v7+/sLrKsbrJsLvJtLzIsLnJsLrJsbzIsLrKsLvGsbzKr7rKsbrJsbvKsbvKsbrIsbzJsbrJsLvJsrrIsLnKsbvJsbvLsLrKsrrIsbvJsLzLsLrGsrrLsbrKNDJHhwAAACd0Uk5TAAEkPkxNOiUCBIHL81jC/1jBWqDK8eupgnKN9n5X939+kZOFUbX41aSbMQAAAN1JREFUOI3t1V0PgiAUgOGjiBqQpNmHlpZm/f+fWCsrBI6xWl313umeIYPNA+D5JKBoAfE9AC/Exa3QA/+VodQHojxFMfTFkfKagLqfCTyaqPsCdV1kJTpAWH/0HmJcCM5G0TSR15LZCOrNReGIyUcMRfyJOIrEE4nPkNPnnDZOU4cjoLPU4TCdrgXpKyib54vlal0U69Vykc8zGyo3ctCmNNFWGm11VNUmqisN7Uwj5V5DjQ01GmptqNXQwYYOGuqOJ52cjp15mHi/RiMj414w+NkjEbex4TSAXEbZGYi6Lrc5fsd/AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAGYktHRAD/AP8A/6C9p5MAAAJISURBVEhLpZNNa1NBFIbPuZHWgkEXuhDFjW5scdGbgmupIKIgCqFpKliq/gSrYpeKrUsXbhSpIk1EqKsgLqr9ASYKoi4UF4J00ZX4gSnJHN8zGdvk9n6leeBk3pmbec/cc88w9YBMDA+S8a5CHkfsRqwgKtSgOX5W/QZNW04g4/55bH8A2d9a6eAHnM/yQvW15xa6QgojUzB/BAlzKZPhI9SfHSBDOWJ5gfWdJPRc8rkDXb+BNWe5D6mHu86l6qx94BCtStGvkPBJTO919QZJ5gpOLNTkGTc5nTqBFIZHk8zXGch+tKPQ3vRv4HkGv7+wazrWXKn/PujUak9tGgU6rIT6FCAfxyZI0+dBZDx3DcNtRJ0840cmSOxzknNcqr1yc0ubOcopF/D8Seg3SNXnxIuSH9phN4AOc+HLaq7rm94gVZ8X/LvEPEgr2RO8vNzYZF5+89D+GXQkCDPHZq39O8QSlaqT2IAcG8SZK+sJok7uEnxG7EK8JDEz1Nz+gfrWDsHwBomMYT3UXLEJ3AfVmoeXpZg7hnMvQmqSIHX849L/mgdhGfMPk8dvobVbIm+oTBzdT6YxDXkKsQ+xilgiI3P8tPYJOhyUYB4hUhwpu6VYJJ/POJkKLcmoVSy37BgDSnmFtn39g8OccUuJaII9Vq31fbFjBK1u4TuQGXzon63VZDTBd6syf4fsGEJbKzYxmwze4Dg0QcUq9m7aSxSgzdzgck1FdUsU7LrjPXR8n7Nc5IXavG7qhtY96KHPk9i4yVvt81iI/gGalBe2t5lmegAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAvElEQVRIie2SOxKCMBRF73Vj7EFdg2Ij2uEGMB1oQ2ANBpfAtqy4Vlo4hM84jk1O+5JzXmYCBAKB/yGJWd1EY+eyuokk0Tdf+OTGuoKdWmNvie+yKd2Wndpz3ZS+SG8AAMCFAFBg3hcxpduKKAF4t8fQUBJNdc8BJQBE6JjG68unXER12ix3JDUr4ItAfEyVjwbeEesKkHsALxEhXdN4dRiSTwr0vARTNp+NJJ5tU2SVs0Pf8uvIz+SBgJcnsO9zFxq742wAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/master-card.602e91fc.svg\";","module.exports = __webpack_public_path__ + \"static/media/visa-card.72e0755a.svg\";","module.exports = __webpack_public_path__ + \"static/media/discover-card.31d7b39e.svg\";","module.exports = __webpack_public_path__ + \"static/media/american-express-card.654c73e2.svg\";","module.exports = __webpack_public_path__ + \"static/media/black-bg.202a6d0b.png\";","module.exports = __webpack_public_path__ + \"static/media/white-logo.8ea62112.svg\";","module.exports = __webpack_public_path__ + \"static/media/amazon-account.1e736ebd.svg\";","module.exports = __webpack_public_path__ + \"static/media/company-details.0b7af03e.svg\";","module.exports = __webpack_public_path__ + \"static/media/lock-finish.aa8ab5b0.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABI0lEQVRYhe2WMU7DQBBF30Ru6Cm4gptQGC5AuAKFcxEoQ0cuEiPlBGko0sImEhRcAQmOYHkokhSIdda73sQg+ZfemZ3n753xQq+OJXULmmcasN8rMJLCfDVNGAQU2achsNSby7OmCU4HpDC1Mbb4rd4pB1cyf/5w5cV2AOANSEmqhebZ6fEBymrE5iw0+hzRAWS+/qSsrrcQKUn1tA8iiQ1g6Z6UpFoA57b4Q5wBm4Z1C9EcqOsW1zw5lgOHAdA808CJGQcghnqAzgG821DH2S3Kw49nu4OoOpHH1b3Pft4OyMxMEe5+k/kXDwKwQgQWhxaTUGZmquOLEwApTFDxVgAbiJdJm/wgANfka3qD2un/taHvG7r09x1o+7dzqXMHenWub08EXIcKlRC0AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABnklEQVRIie2UMU9TcRTFf+ffBylR6Tcg4qCJhURADOmkYdLIYKShHTrxEZgMCxsb8B2a+EyaTk3YwBEXrFHrYCJRwwcAooHU13eZwBfaV3hJCUvP9P/nnnvOPbnJhT5uGop+LJ+9jTc0h2zk0k7Tb4LjmiqNP1cysNKTUf61thCjCQbcw1qzevfpZxzBO38FwQbSHQhz+PUPAosdHkRxYgZcDaXWgVcAlp8awbM10AP5u+MALhLmKbKy/PpON3EAgcmv74DKwDPLZwetOPUGj2+g18BYewIYBnfUTbiD0yFGBi/9BbgPVsV0gFg8o7gu7VeH4Qj1Qv7HeZz2oyUvricRWidZVRrNTqWeJIgT75lBN/TEwPLZwWs1IJVu2MLj551KvVmyCJFtWnGySmgH0QMUNTiCcDiRsJEBDglOxvHSS6BlxK0oxUXI7zGVrDCdswtHsE13BWeF6RxYCdhWpdGUv7tKwEOwKvD9f7izpsKjuyi1BdxLkOEHCmf1tv4rjtB+rgeGXmLhGKb4/cgC5L6SatZU/vw3wUB93ABOARJff2ukemumAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/info-icon.067cc460.svg\";","module.exports = __webpack_public_path__ + \"static/media/check-circle.3dd6a5c4.svg\";","module.exports = __webpack_public_path__ + \"static/media/Billing Icon.1291dedb.svg\";","module.exports = __webpack_public_path__ + \"static/media/Account Setup Complete Icon.f7c78a4a.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABS0lEQVRIidWVvUoDURCFv9mNP5UKPoFgYRVjE1JJSpsERUgr2IuljZBOX8BKUAxY2QQ2+AJWazoXwViIpSkUQSxUkjsWSSQk5mZ30WJPOXfu+Q4zXC4kXTJYyOTX5/TDHBm0IDAT0keBe5C9wPc8K2A5VzxXdFNUThB9D5tUIQ+sGEzm1r+869VTg43d5Mc3195uWHOApezG/KTTehacNeAH4Aw2dsYir1HMARr16kvnvsz214cAf61/BwztoF/pXHEL9HRMkIfAry3GAmD0CodDsfQZaNgsrICgXnsE9q0hxsg+omxhQR1Ko87FcNENEQ+AI6uCHvD7DgyuPgHxAYHvVYCKNcQYJf8dJB8wYslaTucK5TiGimlZAQpvgjQFrUY1N8KXmPaZFQB4oCVVplRoRiIooKkJK8CddnfMZ1sVtiN8mT2FenzJ0jdTG2dQ2KG45QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABQ0lEQVRIidWVMUtCYRSGn9drtFnQLwj6AfUHorHFKXAVUjev4tQSuNUoXp0qK6GpJfAn9CeqIRpzKIJoCv1OS0nE7fMqNdx3PN/7vc+Bw+FA2qWfhVbrbDkIXBfIA7mEOQbcSeyFYWngBURR7wLYAXqgt8SdyrbM2BiP3XqjUbn5qmdjvHngqFYr1ZOGA3S7/RWz0VM2G2wDE0Amxpsz42WWcIBqtfgM4Jwtfa/HAf5U/w6Im8FE7fZJUdKpvxG7r9XKa3MBMhm7Bg7NMj7frS/DCwjDygOw7/NMkxfQ6Ryvmqnw27tkl59NzAdwTpuSDoifgTPTIzA/oF4v94G+zzNN6d+D9ANihyzRjKJec55AyUbTAK/AEHQ1a7iZvUt27gWY2UBSAWwRbDgLQAKJBS/AuSAMAmfALijpyZx8T7J86dIHRv1kN/AUeHUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAzUlEQVRIie3UPQ4BURSG4fcMy9BoRD8TjZDQqlTcwjLsQTQaK0DCLizATydR0IlNMI4CicEYM5nCJPN199zc7znVhTSJibadjnZK+bDvrJ/KjTNAdMTZrYZfLai8bffU2KrGGaTlySwXT7lx+qBd4IAwjNR4kaPMluPHMeu5VG3eyRxKLxIgugf8gEwDcee3uVWX6WITCXn2XgfaKhWw4kPegLiRj0CciC8QF/IVAFBjF4E5ABmtyGS9CwME/qYyXW2BGnDClXKY8jT/kStZPWMESzBsygAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAA6ElEQVRIic3VPQoCMRAF4DeZPYOKJxBWFyxk/WnUUnTBwlPocTyF5RZ2KhZbC4L4cwDxEGos7AR3M9kIvjrzPhJIAvxbauFw6jcGJdP1SlTeimZENGfmjSkiAoh4AcIBQIXZ29Y7UTlzRgIAQNAeF6Dva2j4AF2Y0dsl8dUZIEWsAAliDZgiuQATJDeQhTgB0hAKmiPtCvnIEcrrii6aTZwdUTWMikrpFTR8aJzZo/4uia9OgG/lgIMdpJXnBrLKcwEm5daAabkVICkXA9JyAPAkAClM3k8BTo/no7dPljfJvFGkn/7P8wLD3Jz5v5AaYAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAACwUlEQVRYhe2WP0wTYRjGf+8dxRpgkAFiLIMLOECLibEFwaDGxBDb6NBGBzFEdHDWOGiiTjrrJia6IoMKbGrSxBhKTDTWYCgxLu0gHXSogRp6fV16Bk25P02Y4Fnucvfc8/7y3vvdd7Cj7S7x+0BvNHHSEE2hDCOEapfzoG8RprLzc2+2BCByeLRbxZxEOOrkU0hXRS4vzs989ZJreDH1DSaOqmFmasVXgJtWVftZ/d3K6u9Ww7AOAreAFYERU3UhEo0Pecl27UDk8Gi3GmYG2ANMWcHgxGJ6+lc9b8+RRFuzpY8FUsAPSyTq1okmNwAVc9Iuns3Mngd0M2/u3UwJOBeJxUUhaao+Ao475Tu+gt5o4qTddisYnHAqvpG5bMoloAgcCw+cPtEwgCGaqp0+2Kzt9ZR7N1NS9CGAICknr/MQKsMAVZU5r8VtmUZ1DkDVedU4Awj7AHT3rm9+AdabW+zhCzn53JahArSu/fK0XDcqwHpTLaDaMIDAN4BVM9DvF4BypR9AVBy75wigwisAw8JxkOqpag+foa8bBpAKTwFV0YvhwbMdXov3RhOdwBigZtV40jDAp/ezi6K8BFq1WrnvFUBE7wEtirz4uPDyS8MAAJZpXgPWBMbDA6fH3PzhWOKiwDiwpoZx3c1vuhmK+aWfHaHuoiBxkFN7QwfS3wu5fD1vJBofQpgCAsDVz/MzrluzKwBAsbD8oTPUsx84pHC+o6tnsVhYXtro6RuInwFeALsFnmYzs7e9ZLtuRrZ6uoKXcoWygXJBlOfhWPxfg/49PGsPli57zfX1R5RMJs1cvlxxAW2anp62tgQAIByLK0B7sBRIp9MVgJGRkaYf5bZ1gGxm1lem70+sLbv4/+d+5XkGNigPdNmdqHPPl/x3QOTKJoXytXv+4nwD1NQXi98QqH0d9U42M3e30awdbW/9AZc856ekbOQCAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/menu-icon.1fbe49eb.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-mobile-view.b53cf038.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABRUlEQVRIie2UQUrDUBCG/3mJegID7l0YqEfQongBEXsAN9K6d2HX2kL2TbPxANrkBEboGSxYqHsFb9C+98ZFS6lpk4wg6KL/Lnkz//fI/BNgrX+pdtSrB2HiSeuDMPHaUa++6kxlX7S6cYOZOpo4lUCCMPE0ccpMnVY3bpQCeNM8AvwCoKKJ+7dRvJNnfnf/sK3JPgGoABg6xiTZGsprpLFKAdoHMLSE4+bl2XtRjWPM0fVV7UMEKINIzQsBeRDaMFpqXgrIQggYMUGD4UvMRYA5ZKL6YPIBAIw3x5qDMnNgRYpyZRcfGBPXEV2uFDD/REQ+ASNivIJoVzGeiyIsAmSHrIw5tFumOtuTPQlEHNPFgUr2pBAgybkUsgT4yRJJIEszoLFzPmsYuEzVoijeXNQ+XVYnAAaYzuQ0r/abfvN3vdbf6wtx8dhYY/qGVQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/search-icons.2426b958.svg\";","module.exports = __webpack_public_path__ + \"static/media/productivity-tool.069518a6.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABGklEQVRIie3TsU7CUBgF4PNX30ET3Jm4jF7fQJNeBjYegBgM8hqymjQQw8wLWN4B0EnYGI0OxMTdpcelN2lsve1VFiMn6dD+/c+XNL3Av4rSoVE6ND47B1VfbOiwK5ApIJ3jk/r79mXzsDMgLb8DIOl1XhUpBdSpuRKRcXormdHFUa3+tn3dPLr2A9ewocMuBBEAUGRgnxO8TLmoqc31j4DMZwFFBuv5fWRn68VsYhECty6kEHCV+yI5QOlWz5aD6BeVZxEQfYso3eqVAgSHtny1jEfflduslvHIIgBvvs4PcxtkRwIJnhbxrKw8izTPzHOSMKm6UxilDZU29Nlx/qa7yB7YA79P/qC58wHA6xx4ASTbEPEC/n4+AVBwasrv6i6SAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/banner-img.37643f5b.png\";","module.exports = __webpack_public_path__ + \"static/media/edit-orange-icon.1c6bfe21.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAB+UlEQVRYhe2XTWsTQRjHf89ONio0lYIH66kHD4bSlFKE5iANtpcKi4j4AerFj6AXoeBJkN77BbwIFRpo6EEpCuoqQV3fevbie8EimDa7+3jJRcg2s8k2Uej/NjPP88xv/jM7w8KhBixJGijNeNpFvcBtMlevV7/bJjhdTLKfSk2XR+NnL5y0TejoQPCsmhjTLr6lD1EUnX/3Yv1zp7ysHQB4AxSNMRvT096JvgMYN5wDAiy3I3OAl49r34wbzrcgisaYh/tB5LIGKM14GjX/6ioaYzaAyXbxB3EG2qmUNJCZA0lfS6f7pF8OJMragbQ3o+398f84YLuiAwMAGKtUjhYaw3cFnQc29+Lc4tbz+z96AUi1BcO7hVuCXgIKgJeXaLmXyVMDoFwGUNWrAIgu9BcATgHErjxotfO9AqQ6AypsizLqhCy1up5MlC9OiMZrQAMnNytxeFuVcuBXz2QKMF65MiS/d78gOiqwCDSJueM48arCGABxuKUwog6fbOtaA5hGYxvBbTX3FG6IkSVVPQ38AoaAEeCjxuLZ1k1zBlzgKxABeYFlVM+B1CORKVReKbw36iy89dcC26LWDhzT8Ljv13Ymy941VW4CeVVW8+GR60H93k9gKsVi0gP4fm0H4PXT6gqw0s1k7fTvvwVd/h9Ya+AOHGrg+gNJjKG63Nll7QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+gvaeTAAAAyklEQVRIie2SOwrCQBRFzwuD2GQBuoWAlgq6hZSWbkNTWehSLK0kS1A0lgbdghuwMIhkLPwQJYLK+CnmlJfhXd6bIwCe1yoodzdIRdqiKWGGjcDwsC321uvRXgEoN+lrpCPaUMWJsoauchOAQAFoaAOk4jRW8/HMREu15je1MDnPDpxLO4CpEoDlIpxmZ6u8R5W6f3PEOArlnTyLcx98iq8V5Z4ub/V38iy/3cjK8AxWBivDFSuDleHKSzI84q9kyP1M08RRKF/b6AgbE3E6aKNcWgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/clock-icon.7bc2cdbe.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+gvaeTAAACjUlEQVRIibWWS0hUYRTHf+fO1UqbFgZR5ANatIkMvD2EEtyJkLgpcsaEFpFtWgRB+WhhUUhRbVqUtChKZ0papbYoKCKojJmykqg2lUUYPccEZb6Z02ImxXGeav/dud853+/8z3dfAqCNW4qJmnNADeAmuUYQbZGeYHeK9bSSOGQIKMoiX1HtEH+wI1eQHXdSBPRjTLP0Dn1OSti5YTW2PSn+4LdcIQCiHicEuLHsEul+8ikpJLvRfkBpFX+gJ9mi9a8wA2QI2JEGAlCG0K1e53CyRTtNYUzZjrahogqRByid6qlwiy/Ynugok2pimfb+VBAAFi97Oh1Im3orzuYKSjvaqa0v35+YcUHloHqd07mA5i7lkHqdo5DNGeWmh8C2BNgxbdj4fkFB4gtUTe3fVF5IOK8aoQ/R4/9tdHL1xbj4A/3xsGxBHMW6tzsRqQFeYcyBxDt03o60zinA5A/EISdQVuCyLyTmzX90y91RFpl6THSr+AJXsPQSwvrEtDmPTuucApbKeSbHGsH1HZd4dbfzhgitqN5aEJA2lRdi6EO1GKUOkXWIlhHhIjBKnjkyb1AMkj8AuhLRDizrF8g9VG8Ao5iJWvENjyfWWcAYxN/S2cjknQJdhYtqhFJUH6PRZ6CvMRO10jv8J1mZhcqdWKvhrqxgwnZET8q1wBd+hs5g2aXYrjXiC9anggDYqNWCRKpRqUXNiHqc6T19AZlVobxEZa96HEVpR80gS9iTqT9Lrg++xbI3AL1AKKMjY5oRvgJtCLdxhfdJVyCcqWx2x4kGsvjUp6xt2FSCRD8CvzM/sLme4QyIdsWju5kd7dq8FivyiOx+x5LpBxKpzOgo5zOcVgj0JhKplJ7n7/4CTqwSCxzdCB0AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/external-link-icon.54e7f464.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAETElEQVRoge2ZXWgcVRTHf2d2iUnb5KFBpSloxIcK20wSi+6kaSUP1WrtrK0hIC2KQkCUVtC3UNImjeBjfVAUrIhi2ocIYvNB8QvBtCSVko92EREtSltFDKWxH0nYmePDfk1mN8km2Wyj7P9l7z3n3Hv//zN37567A0UUUUQRdxIyl6PO2lOt4rSpyi7QDUCggLwAHJA/VLU/GHDeGjk78Fu2oKwCasP2Eyp8BpSvKMUcoTAJRvOFoS++9vsyBNRZe6pdnHFWCfkkFCbdIDXRwd7fvfZgRqA4bWiK/CVcWp2bpYPRaM9MQZgmEAq1lAQqbm9H5ThQLVARiEkb8Io3LlNAfM/HOy6t4+d6vy0EYT8SCfvGbNjdikpi6+guf5yROVQ3JFvOzdLBFWOYI5zJsu893Y1+fxYB6dOm0NsmG3wcMk7CbAL+UygKuNMoCvDDtCIdpmX/XRuOtOd77mzIqwCzMbIJtB2oVNGO2obdGcdevrEoAbVWpMu07AnTinRk84urb3jmNHCN55ZLcCHkLMB89Ontih4C1oMermmwH5rl37r3HlWe99pUdH+eeM6JnAQ0NTUFMYx3SBd/IspBb4y4zkGgzDe0vvYRO7R8mnMjJwHXpta9Bpg+84uhhp3rAbZssdco6i2yriQbGmDffHPXN0aqzHDktGnZk6a1+6vQNvu+HLkDOQiob4xUucgRj2kq8bkmwF0vA8wE9SWgMmH/RUS9T2cfvrK9Jmx3mpZ9y7RsdRy9guhOoBxkRzDG8bwJSC4gUAGAEFXVV1MBqgcaGlrKROT1tEmPxSbL+oGJhKm6Nmw3Jv2bwxFThHYyt1t8PFh5E+Cf21A94N4o6ya9Rapu6HQ38GCiP1ESk4/iBZj0pAaKpL7Mhuhh5rnKCgwtglPOAm6r8OboUN930WjPDCLvphfUvem2vHf+fO8tAFHtTg/XllCopWRzOGICzyaNjqt1gYBsBE4D/6jwZSxI62IEZFxovBgf6s2aKQ0470vMOASs9ZinY04sJWxsuPeMadmXgAeAykD59JOgL5DO/ufRc31jifZTiyHtxZJ+iS8M9l8DPp5t1U+iPwz86TUAJz3dI8zO/tGlrO3HkksJQ/VtwE0SctFj/hgX91NP92GyZ39ZWLKA0eG+n0GPAhMidFwc6v/RH5OwjfjMecs+LPAdWAjjQ32dQOd8MaLSraL1HlPesg8FuA8YQU4CTqKb1+xDAQSMnDl1VVQ6gWuqdOUz+7DMLZQrxoZPdQFdKzH3//JKmdyvhEItJQXkkhU+Do7fn03A1WQjsHZq20qQWgyM8pnHPN3LGX6/QZUBj/fDGuuZHXfiSSRqp8cF9wOPecAfl1Hr1G/ddX/MDYynSujVg+tOENP/93rGE4i/CTGa4y8VVg2uI9rsJw9zvDb66/JPv95dvemE4VIK3Auso/AnlkN8z59wguy/eLZvtMDrF1FEEUXkgH8BkGt7UBW9AgUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABkklEQVRoge2XMU4CQRSGv8HALdR4BDoTCpZwElCikc6WZhuoDBgS0YJwCe1ZbqJ3sBBJdixkh40EWHZnMol5X7NhMv97/5cQsoAgCIJPlJOpIaX6ipGCKzTTqMI9IbGLVScOZqqgxkRBF6iguLyIOXtv8kqEtr3MtoAKekyA2z/nVVcSNgV2lU9wImFL4FD5BOsSxQVCSvUaUwWd5EjDTEF1x+fqeczpR5M3GxKlgnkVrHhS0E4ONMwW5Y0MwKLPtdI8mxC0GyumhIX3Fxqw9bUx5bd/MvV8QDctoaFlQyJv+Jjy5ooLiTzBPOXNVdsSx4aKlDeR+YAu8JKakVvimICN8iYa9bnDgkTWyzbLmxE2JLJcdFHejCoqcfBS0GOIm/JmZFSmq2GW2tFqfPOQJZzF8iY12Hb5X0LiRZlOWiJWm737OCygGANLpRk5KZ+wlgAegaWCcZaYmz80QNDbvOdEfXd7Cr+L+EYEfCMCvhEB34iAb0TANyLgGxHwjQjs4evP0wnOBDQMgc/1UxAE4Z/yA3ynwHXLFxzcAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABOUlEQVRoge2XQW6DMBBFnzlN0ltVapSepkmzSBdp6K3MRbJoNnEXIdIEARmKjWk1T0Iga/D8J9nCgGEYxr8jQFHBu4eTh22AIncmNQGchw8P4XZVUKaScDEnC+Aq2AOvLY2+FvDi4BKzZzSBvvCiWXSJKAKa8KJhVInR67LesJ/chy8bZaWof67gMIuN3bZhPRwDFHKsrttPtbFHhweQ46J+HhKPwrcJzEZCE75LILuENnyfQNc8ySWGhH8kMLnE0PAagckkfhNeKzCJhIfN0PBDBGqJwsOx0edNk09juRbP5RJWCQ5klyWsuP+Cr7vqJRqBHXAGNinC3xASW+Acrn0176VBLp2nhH3yH6hGYgK5MYHcmEBuTCA3JpAbE8iNCeTGBHr4btyTkEzAXX/KT075c24YhvE3+QGbPCXLvHBzegAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/recurring-contact.7af89e5d.svg\";","module.exports = __webpack_public_path__ + \"static/media/service-contact.6d3ee720.svg\";","module.exports = __webpack_public_path__ + \"static/media/linkedin-icon.e48f25d9.svg\";","module.exports = __webpack_public_path__ + \"static/media/instagram-icon.9c933bb2.svg\";","module.exports = __webpack_public_path__ + \"static/media/twitter-icon.a5b676be.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABEklEQVRIidXUoU4DQRSF4a8UVw8JJJBgUCSkD4EFNOBAIBG8AZbyBCheAI8kQYABhygCQghuU4laRJfs7NKmO7tr+ieTzGT2nntn58xl3uk2iO1gHzv4xqiVigKukGYjwXrbCUZBghRnswLeSgFNxvBPdDFIcIHNiBOcYyFY3+Mhm79G6EzlWbHqvViBLraxPGW/nyVJcGnsqsr08JRV9oPD2OpmcaJ4/M+6QuElX2Mtm2+UvlvFXYTuO44puiCNra4Jrf2iafTwKL/kg7YTkNt0acJeHy/GFh2ItGgVKj+y0EVHWKmYYKu0PlVsM1+4KQcNtdPoCs2uLtGtOpZBIJ7IH+g/6t5+B7uZ8C0+aurMAb9XBGKlCCKb9gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAfklEQVRIie2POw6DUBADvVyM41ByFPIqclY7YlOQCISyoPARzU5teWwgSZL7cHeTVG/lJNXubn+XkyqkBpJtlCPZjJnXM5JUax4ABlj3S0KyAawfMzv4vHiQ8uWTabl8bf0uyWnlC0mZJN9ylcPlwZNzlseSC8rnksvKkyTkDcZovDAUZHh1AAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/grey-bg.f9ca19a1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/orange-solid-checked.f42456fd.svg\";","module.exports = __webpack_public_path__ + \"static/media/plus-icon.0b4034fb.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAJUlEQVRIiWNgGAWjYBSMAoKAEYn9nxZmM1HZ0FEwCkbBKCAHAAD4CQEEQU/AbwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/NextLogo.49ae5446.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAA7ElEQVRIie2UvarCMBiGn9RWvAG9BgcVxEUOdPBn6aDgjSoo1EWnczgIKoIoeAeKXoBDGuta/GtjAy6+2xfC80DyJvDNpyOSbKr89ApclA/heT0buToCKxk8mEJYQ5DTgccKqq6X5xJMgBKwU4Hq6AqeHlHV9fJK2lOgDOyUUo3t3D8YEZiCPxSYhN8JTMPvBJV6dwFhLQ0Q+ItWObam2hEijI52dMg40osekSOd5nLZ36fy3S7c3kNaSaKappEkfmjvSl5+diYkL1u0+h2fsOw2sAGKMiuHOvBYAcD6f3DEslsIFiDOuoJvPp8rNvyBi62i5AEAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/ThadSignature.1a56989e.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAFa0lEQVRogdWaW2xURRjHf9/Z7UpLKTdvYKB021LapS0CRhLUgKLAAzGKwVAuD0SjJF4SI4nhgaAJ0UQfjAElgcRIA5E0PuADIcFiouEiUCgtW7q03QIWqtxK6TXt7vl8OKXdwrY9Z7vb1l9ysrMz38x8/5wzM9/MOUKcqApqugpLRVmokAPMAqYCqT0mrcAdoF7gsimcEZPffZlyLR79y3AqV1/RjLCyAWUdMDvGZgIK+11CcW6GXInVl5iEVAa1wIBPgSLAFWvnD2EKHDaVL+ZmyhmnlR0JqQzqUwZ8Dax3WtchJSZ8mO+Vf+1WsO3MxTpdK8L3wKSYXHNOkwib8zLkoB3jIYX4/eqRZHYqvDt832JA2U0nH/t80jWY2aBCLvyj493t/AIsj6tzThGOeUK8kZ0t9wc2GYDqap0Q9nAUeD4hzjnnFB286vNJa7RCI1qm36+esIcSxo4IgEWkcKimRh+LVhhViCSzk9F+nKKhvNxl8G20okceLX9Q1wC2ZopRQ1nvy5T9kVn9hPSsE9WM3BQbK81ikJs3SxofZPR7tAz4hrEvAmAiJl9GZvTekaorOl9NzpLYFTueqMKzc71yASLuiJpsZQyIuH4L7rXYMhWBrb1/oCeKNallgFlspDhyEn46DJ4k2P4OZEwfsoop4M3zylUDIKxsZBREmAp1DVBSCreboazayu/qhopaW00YWAEsbgCUooR4GoWubghcg3MBOO2Huz1Bx6J8CGufnWnaa09hHbDD7a/TmcS+KbLF/TYor4HzASi/DJ2Dhn+OyfXX6Uw38Epcm+2h4Sacq4ayANT8bU0xiUKEJW4RFsSjj4EemZFAYYG756DAFl3dUHwEmlugaAVMmQB/lluD1F9vlY8SOW7Aa9f6j/Pw22kr7XLBm0th768Jcs0ZmQYOQpKW9r50c1sC3ImdSQZ9507/ZyaM6koeTwysE0BbTE7rS09NG9huFGhxA/eAKXasX5wHN5usBW71EkgZB0XL4XgFXG0cun4CuecGgticuVwGrHlo+Vz1gnWdugh7DsHE8dB4J/6eDkGdW6yz12XDbam+ERYXwKZVELwBxy9Y4kZoYQy4VSmLxy6kvRPSxltp73TrWrcC9h6yFsu2DutKBAJlbqA0Ho29NA++2mfFVIvz4ZknIRSCqnrYuBIKsqzQ/EQlnL0U3yigO8wxty9TrvmDGsBBqBKN7BmwbRMcPgHb9kBaCnSHYdY0mJ9jbecWzLGuzi4rrDleAZW1EAoPo2OlqjBbGqz9iHAA5fPhCAFInwabV0N3CILXLeezZli/kYzzWONpcQG0tsNffkgdB64IO8PuCifsh55doQH7AJtbmaFJckNOOsyeCcYQ4y81BV55zlqjFuZaeZ4kKMyy1VVYsIT0duMPagnwVmyux48btyAlGSbZCJxU+XlupqyFyH26sANI4PbHHtOfsCcCUJW+s61eIb4MKVcoToBviUH4Md8rFQ/+9htSYZMtQNOIO+WcJk+IzyIz+gkpzJKbwHsj6lIsKB9kZ8utyKxHJjmfV0pQdo+cV84Q2OXLlAMP50edrTua+Ag4knCvnFOqHXwSrWDAWd7v11SSOQosSphbzjhJB685evUG4PNJayiFZYyNO1Pq6mL5QCJgiPPewqeljQ5eH80xI7Cr4y4r58yRQc/obQfwVfX6tio/AJOH7Z097gLv+7xSYsfY9uFDXoYcJIks4DviGJdFQYHikEmuXREQ44udS3WabwpbSMBHNWKyPTdLypxWHtbesCqo6cAGtQTlxtSIUiXCAVWKh/PtVtxetVXW6gyXwVKFhQI5an149jj9Pzy7DdQDAYGy7jDHCrOlIR79/wetvLLtf+dfEQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACLklEQVRoge2YTWsTQRjHf0+yVA+1UD0VL/kC0lOPXnvIVegH6C6IoZlib8VD9yB6M+z2mpC7ePQFpYpiv4B+AdGLpxjIyYa448FZG0hIZl8CLs4PFmYzz8zz/Hee/S8EHI7/G8kS3On0G56XHGtNE9gC6iXV8Qv4DvKiVkseHxwEX20XWguI494u8Ay4lqPALIxA7ii1f2YTbCWg0+k36vXkM6svPmWk9eTW4eHdb8sCPZvdTNukxX8RkWAwWD8Pw71xoTINYfh0bXNzdFtEukAD2ADvGLi3tDabBKbnARCRoN3ef5e72jmYB/E2irqBiJyZPM0lywCoWebYSgeDwfp59hLtGA43Pl7e6Zs2a6xOgCm3mW6b09PuI63lvrl9opT/oMhcGO6N47g3k3MRticwg9ZatJY2cNVcquhcHnILEBENxMBPc8VF53LVYRMUxz2djpXyM338spI1V+4T+FeovABbF5pL2S6UB+dCOBcqlqvyL3HlBTgXwrmQc6FqU3kBzoVwLuRcqNpUXkAhF5pHFPWbIkkIbANr5ucx8EmEk3bbf1VmvlJPII57uyLJc2CHy+Ix4x2teRlFfau/DG0pu4UessQYRJKTMhOWLWA7HXjexXWlfFHKl8lE35gXUwZlC/jbNq1Wa5iOj46CH1MxV8pMWHkXqrwAWxsdY9pj+ku5gIsV7TGD1QloLR9s4qZ4v4o95mElwPPwgTf8eYqLGAOvIQlWsYfD4ZjlNwA0Z9+wr/KxAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACO0lEQVRoge2YMYsTQRTHf+8SYiy8QqvDJv2R5JojsbC9IiRwIH4C01goWAaLsxDtLK72G5yNrHdyoqIYdLERN2wt2tgpBA51dXcssomLCclsdgIuzg8WdjJv5r3/ztv/QsBi+b+RNMFbzd2KkrCnlLRAbQAFQ3WEIJ+VUofFQnj33eujj7oLtQXUG50dJTwAzixVoiYKhrB2aeA+fKoTryVgq7lbiQg9Vlz8GAXDqEjV7zufFsUWtTaUsIeaFP+BiG54Uu77/kGQqdKYzc3LpcL6t4souQ9UBNYLv6QHXF20Vk/AqOdHg4iu99Z5nqXgv4kfxLPahXYXJXHrqJbO2jW9FGpjfBeelPupK9QkHJ5+lRie11mjdQIk3CbZNrVG+w4iN+LhPc91bmaZ8/2DoNbsTOWch+YJzEQQuQaU4+u6gbnUZBGggH3ge3ztG5hLjZaN1podNb73XCfVxy8taXNlOYF/gtwL0HWhmZh2oWWwLoR1oWy5cv8S516AdSGsC1kXyje5F2BdCOtC1oXyTe4FZHKhWVQb7RYitwTqQCn+OVDwHtgbuM5jk/mMnkC90dkRkUcC2/wpHqAksC1wVG20tf4y1MWogEi4zQJjEJE9kzmNCojbBgBVjM56riOe60gowblEWH3G0qUx/RJP2mbQP/w6vvffHH9JxJwymTD3LpR7Abo2GhC3R/JLOYcfK9pjCq0TEHipEzdByYtV7DELLQFhuHZFCU8YPcV5BCg5hp/dVexhsVim+Q0E3Sbx7z3hSwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAABlklEQVR4nO2YsUoDQRCGvzl9ASGFvY3CkdKIbRRBIQqCj+AD+FoKQkSwibURbGLA0gcw4AuYXQsDIlzAKLMz6HzdXXH//l+xt7MQBEEQBEEQBEEQBP8OsV7APOrto7Wl9HaYk1yO7q+etXKWtT78G+pOr12l6SAjLYRTYF0rq9L68E+pO712JXkAtErkuRLQUH6SkBPNTDcCGsq/pCzd8bA/0sx1sQnOKb+jXR4cCLAsD8YCrMuDoQAP5cFIgJfyYCDAU3koLMBbeSgowGN5KCTAa3koIMBzeVAW0Hi2L3C8XQTVWaASznFcHpQFCNnNsDUP1QVOsxwDk9ljq5I8qDu9tmbmouhvglsHGxXVLbA6e/Wac9p9HF4/aGd/hzK/QccSyh2EnEooexR2KKH8MORMgs047EiC3YWIEwm2V2IOJNhfihpLMBcAthJcCAA7CW6GlfHd9VPKssfn7LAiUt1ozw5uBACMh/1RytLl6wB1oZnpSgA0Sphq5rkTAB8SSGxmOCOxb72eIAiCIAiCIAiCIPhjvAPZSBGNGSxgoQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAAA00lEQVR4nO3YQQ7CIBSE4bmK3blh4830tOoBTGziFXRRXkzQatXyLPB/CevHTGnSIgEAAAAAAAAAgIlWko6S9pKC49wg6RBX5zj3wU7SNa5ePiWEOMvmbh1mjuqSzeQuIQ3faziFf7WWdNJ9UxdJmwxz0vBn+b52L+UuYdHhTa4Sighv5i6hqPBmrhKKDG9+LaHo8ObbEqoIbz4toarwZmoJVYY370qoOrwZK6GJ8ObZt7znv8QipCehiSefSktoKrwJGi5SvC9TAAAAAAAAAABo1Q2HhIPIMK9bvQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAABRklEQVRoge2Y22rDMAyGpRHo63WlJRcbbA/Xbe+1MRjscC/JnXZTg1acJl0d22X6IBB8kP6PJBcOgOM4juM4juOcAlHYMMuHiLwShWXtPIcQhWtmeWOWL6LQJxepKjLLO7Po/pLBxRUgCj2ziMn3qaoY56/iDSIqAHybvR2ibluQIQo9om4BoDPDYZ85uWF1YF39ySSeRMy0Gtu4TmwMROG2UHabZTOQ5WZqgeoyZ0uYQtVkskmYgsVlskuYwsVkZpMwDWaXmV3CNJpNppiEaZhdpriEaZxNppqECXC2THUJE+TPMs1ImEAnyzQnYYJNlmlWIjJFZm4JHF8yDaKwRtQn+H1m2KniPQAQoj4m5u4Wi+4hV4ZsDJ0dUmMtHNiOMvCatflNjHFE5nIkIgmZy5OIEIWliLww83OLv5ccx3Ecx3Gcf8YPPZkMdLFfyhoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAABKklEQVRIie3V3U3CYBTG8R/ELoBAdAMTa5hBiGPIDETX0CncwojGERDaQljAsAJivQATxNi+xUt97nrynvN/3o9zyr+qKKGRcTWjWTV3RjPjOqGxHa9vf9To59yueBrRDi0+or3iKeemRr8IcIcJ4ohhCGREO2KIGJNNjZ81p5XykpInZCnHoWsTjsoMBUP2Lh4CqVK8VgZZrs/3LGdaoxvxth3D+SmvewH4fombcIzJkl6HRVF+KWB3JxDi/FP1sgUFzoLMlQJGtJc8WrufWL/1E9yH9EkhYE4r4gFxzjTnIqKLMeIDnov6pFBFT7FKM1Yu/mtIlSaqDJnRTBmn5Cnj0GG3nbM76r9c8vt61AY3EXRYLOnZTOEVl2U7GOz7w0kZZBxWzf3j+gBNDa0eHog9UgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAAZElEQVQ4je2SMQqAMAxFHx6h53EQr6Z4V3eXdImDFkTTkhYEBx9kCckjgQ9fYwEE0FttwOARCBCMvgKrR6KFfn9KxlbB9Z1qQXamcywU+QVPQcQOUiJwhC3LjB3lVAJMjce+xA5iQB9MPZDjIQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+gvaeTAAABQklEQVRIie3WPS9EQRTG8R9hE0Gi0Hkp6ZRUElHyMWh8Bg0RCZ1SfANZoqJU06AShUSoKSgksllXcWdjdtndu7uXKDzJZCYnc57/nLlzM0OqURTxgqRJe8CyNjSKpwyA2raFrlZAxZB4HKCNNFsD220FVtmuZhDo87Wy7aywSkJWfbeNmSrLA5Rg57dACZbyBJ03AN3nCapVPxay+HQKyuTTnQMgk/5Bfxa0Ij3yi/zcqZvEa4jd5g26DuMenEXeC3mCSpgO49XIdy9eSR6g9dBP4S143mGwU9AA1jAcxQq4DH5lzMUJ7YJOQ94FhkJsI/L7cm20CzqMcs8wL/1OCW6kt3GVnmW/ymMVcBTByqEvYabRyk4w1iKsV3VlCTbrTZ7AY83kZu1d+tdXYAchfhUqrasR7PvcxlZhPdJH5Xg9wAf/za4rQbba+QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAA2ElEQVQ4jc3Sz0pCURDH8c9Vw8Q/QQ/RSwQitC56kvA5xF3tguwJXNkmEUHqEXqEiBZtCkSDqIWnOF263msrfzBwmDkz5ztzhm1TH+/4TNkrDvOSK1hgL+Wv4gPPeUWqoUCWvx2KdP5TIG7nJQ6W1iEFLZEE20V9U4K1KkKQVgtjPEnNowhBA3e4wBEeNyGo4wYPOMNpOBciqGGCK5Rxjnurdn6UtUg13OI63LnEDM2/Xur5vcrQxQg7GGAq+sokAznWEG/YDzQnmH8H84aY4MCq1wmO42T4AqKML+KBIjNBAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABM0lEQVQ4jZXTzyvkcRwG8Nd8sbsTye6eTBylUJKbzWlv6yD2tkVJbg4OcnPwHzj4Ayj+AtTEATm52CK0teK03GYSikEO34/6NGlm57m9fz3v5/18+kAd8lhHRo1IMIRmfMa3WgkyWMI/PKMJ87Uq6MEhfqO3VgUJWnGOC7RHtQkUMF6NpCi9vwXXUf4YsziqRvCED2jAQ5S/CepuKw0nKEnN/ISXqNaIu7LcFnaQjQmK+BK2FaLmEjpwGeJm9IVFP5HDWT1O0R02/YkIrvALZyEewyZ2MYphrGWwECQ94CPmwkAeA5jChtTMEfzFPu7xHTql7p9gMFIwE87IYRXLKmAlML/9hQTb4bwi1kTGlSODvXDCNL5iEQfS562IRGpOFv1SY87Rhh94rEYAk+j6n8b38ArWxj7Zw5l3FQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/count-days-clock.524327e6.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAADfElEQVRYhe2WTWhcVRTHf+e+SayLiNKNJRkodpGIyYztmHSyqMWFCzOZDE0dN+5cBBTEDywFwRIpuKiUWgjSuhOCm6EmmZcmq+LK5k1RyryI1PgRZFqUrtQumibz7nExM51hPpMouDD/1eOe8z/nf+6795wLe9jDfwzZifPgcCosIU2JagI4CITLpgKwrqpXhWDBzy3f/lcFREfHe0HOqPIaEOrgbgWuGBOcunl96dd/LCASn5gAnQV6gE1gDpV5Qtzk3kap0p59fVg9gpICTgDdwD3QV31v0d21gGg8+abCJ4ARyKjltH/DXa/ax79WxPqee6yyNjSceEoccw44CVgVeWt1JTvTKodpV3k5uSq8m/fcVzDMROLJhxUpYhHRKid5VRxz0ffcl0XlPUBF9WIkPp7ckYDSP9dZwCicWvXcC2VTHyp9FT/fc4/5K9nna6gP7flc9ryonC7FkNlYbPLAtgWoyodAj0CmJjm+Fzvs547EWlVTb8/nsueBLwUeK3ZvTTfjNJyBweFU2Dh2HQiwDGCYAfp8L3YYpm2r5LWIxicmVfUjhB+tcd42NvgeMCJ6ML+yeKfWt2EHJKQpwAHmygfOorKtxEOjqaHIaPKaolcQ+oHN767P/yywAITUSqqe03CnRXWs9MECgO+55QOUbZl4YOTE/m5TPIvaqbL431X1/dXcc5+Di0UXBEmrYQz4tK0AkEOgSBB8267aZ0cmEtboZYH7SnE/8ASwiXDhUVs8m8st/wWLpYiO+YZAEeVQxx0APQCw0RX6rdk9r8AaLgG9Wl1aEhu8k7+xtFZZqPAfwNgjpaXebQiokVJ3z9ug4HtuohX/8eKW3JcQCg2xmgm4Awx0W+1tVnk1uE4J8hmoIjLVzKfCH4wnnjaAlGJ3FLAODAg6AtxqJWDVc5epTsO2EMxRABV+qbc1NiItnxzlJJTaaySezMN0y7Zdj3Q67UTiSb/StqU0FzCqix0FdBW75oAAJDF4dCLCDvpAQymgz4yMR4ExICgGdr7eqek0jI4mL6syBXzVH973YiaTCXYhgHQ67fxQ2LgGHAe55HvZ1+t9ms8CCX0A/Am8cKvw4NxukgOsFTY+Bo6j/OF0bZ1p5tPyPTAUT74kpfbX6QXUCQHIpO9lm7ZSpxXr7u21n54M998FEu2EdoCK8IbvuV/skr+HPfwP8DdMSWF+OqEzaAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAADdElEQVRYhe2WQWibZRjHf8+bZNhBBdllox0MPVgPKlPQ0xwePKxlFlftRUFt0oCY74sWx0BwVAYeJjbNl0xW20wqO3XMrnPV0/DkTdlNRNEw29JcWnRlFJt87+MhCYnpl6Spgpf8b9/3/J/v+T0v7/O+H3TV1f8s6cR86dKVo75vh0GGgGPA0UpoBcirsixil1x3fPU/BZiamu+LRErnVRkDwm3sFuS6MfZsIhG7+68BMpnci6pcBXqBHdBFVW6oyp1iMbIKEIkU+42Rp8AOg7wEHAC2QF913dhX+wZIp3OOCNOAAbkm4p9znPF8Ne55ue8A67rRE9V3qdSVh43RiyKMABY06bqxbLMaplXnleIqIhOuOzYKkk2nc/UdWVCt5cwtG6PpZDL6MvAeoCBpz5s73RHA1NR8X2XZjYicdZyxFICq9Buj/VWf60ZPuG7suepzfdx1o58A58o15GoqNXNkzwChUOlDoBfkWrU4wObmyvGNjdWnm3XTGC9DyJfAg+FweDIoZ9ceKI+a5gFfxA6AZFWlf3Nz5fjk5KRtVrxenjd7BsxHqvwiEnoH/B8BUyqFj01MvL5W7921AuU5JwS66DjjeWvFiuieCmcynz/uebnbYK4Dj4rIjuu+8SvIEhCORIrDjTkBMy2DFbYlgGQy2nQDVZXNzh+ytnhB1cbL8BRE5P2Njd/nyw5dAl5RlUHg0zYAPAJgTOmHVkU9b25IRGZU2bbWPwTyELAjIinVAxcc57V7Va+1fG9M7dvtAI4A3L8fWg+a85rksip9lQ4R0a9F7LuJRPznGmQ5f3ubwZ4egKq/NUC9/jHnLbTiOLGhZvk9PQ8I/FUm3QPAGjBw8KDpc5w3AzovS4S4Kp8BqqrxIE915VKp2cdCIYMIa42eIIA8MKBqnwF+agbgONFvqN2GLRUKmWcBVPmtLYCI3lKVU8AI8EUmM7fc6TmwsLAQKhS27qhyN5mMnlZlRAREuNXo3XUOlEr+IuADQ9PTs090cg40SEVEPS/3pAiDgG+MudFoCrwNM5ncjCpx4NvDh3tfGB0d9fcBUF2J28BJVS4nk9G3Gj2Bd0E4HPkA+BN4vlDYurif4gDr6/c+Bk4Cf4jI+SBP0/+BTCZ3SpWbtB/VdvJFOOM40ZtBwab/A+VdrgkCZrcDKejbzYp31VVXAH8DrNVw8fTK3QkAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/orange-checkmark.7b48e36a.svg\";","module.exports = __webpack_public_path__ + \"static/media/white-check-icon.66b0b674.svg\";","module.exports = __webpack_public_path__ + \"static/media/square-fb-icon.6ac6237d.svg\";","module.exports = __webpack_public_path__ + \"static/media/gray-clock-icon.2be3ec1a.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABdUlEQVRoge2YIU/DQBhA3weICTQSfgCYCSQSj9jQ2xIIAkbmiqsBu2QCA4EfQYLBTIAGsczPYwhmhIQPwwghu5G1X+9Kck+1vebre+6uEIlEIpHIP0Z8fKTWOjkV1bbC1cZapZOm6YfV7AWrQbMQ1UNgWaA9GI0v0jQ1+66XAEQvvy+hZRmxaDHkL4aPD3fr1a0VYBNAoPr88r5a39m+6ff7mme2lwCA4dP97c8IEJMIbwFQTITXALCP8B4AthFBAsAuIlgA2EQEDYD8EcEDIF9EKQIge0RpAiBbxJJr2G4zOVPoAJUiZN3orztpDkbjV+B42tuuDZUoHOFdfjoCDdeaK0BVpAeMi1Gam2vXgpcDzRxIrZGci3AwefB1CNpzHYLKFDC3PJQnIJM8lCMgszyED8glD2EDcstDuAATeQgTYCYP/gNM5cFvgLk8+AsoRB5m7EYtqTeTLtjLg69fi7A/ubCUB08BKvSAN4WupXwkEolEIp8JKgxCtebRUwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAAqUlEQVRoge3WMQ/BUBhG4VOzxK8mFqIGpvIbVYKtBhIhior67k3Ok9ylTZr3pMsFSZL01hjYAyUwCN7ylR3QXE9FhhEzbgFZRhTAivuIDUb8nxGpMCIVRqTCiFT8NGICHB8+FnXKV8Vtz2tg2L27FzUwevai7dc0wBI49bWoo230gE8VwJpMr96Oj+L4KI6P4vgojo+0IOPxAAcyHg8w5XKznZPheElSus5TF5giGA0xrgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAAFcElEQVR4nO2be2xTVRzHP+duvawTNhkwYIyFrhsbewDZuodIggvRxEgwhpgQNGpiDIkPiDH+IX+Y+IchCEYhgb/UxCAJIUET/IMoLoUIskcLe3WMx9p1L/eCrSDt1m73+AdZw9wG6m57N9bPX7vnd3vP53yze3ruaSt4BNLlUkMJvCaRe4ENjzp3FlInpDhsGgqcEDZbaLqTxHSFYXfj80KKo0B2RPSixw0N8a7Zml85VXFSANJujw9lLDsg4cOp6nMUiRCHVG/fPlFRMfpwYcIAZccf5mAw6RSwLap60UJyRl1wd6dYvSkw3qSEa/JUXDCYfIIndfAAgu3BYNIpabfHjzeFAwi58w6CfMUYs6iyLZix7PPxAwHhCe8Xnpx7/nFITbLVnFVgF9LlUoMJsom5P9v/V1rU9v5CJZSgvc78GzxAbmj1sl2KROwx2sQopJB7xUhrkzRaxEiUx5/yZBMLwGgBo4kFYLSA0cQCMFrAaGIBGC3wv5H6rN/iH3/K7GHE78db58RdW8VQTzc7938142vO+gDu9ffRVu/E46ihvf4KY6MPdrSSU1focv1ZF4DUNHrdt3A7qvA4qhnwtk2oL0hMZMTv162/WRHAaCjIn9dctDpquFV9ift3bk+op6RnkGkrY01xCXJ0lNOf7dOtb8MCCNzz0XbFgcdZi/eqg+BweJ+SeJPKynX5ZBaXkFX2LAuXLA3XOl0NunpENQBfXw8eRzVuZy1dTQ1o2li4lrBwEasLN2IpLsFa+gyqOTEqThENQGoa3Teu0easpbX2MoNdnRPqyakrWFNcitVWyqr89ShxcZHUmRJdAui+3szYyEj42H/Xh9tRjbfOycj9++F2oSikrV2HpaSMTFs5i9NW6dH9jNAlgF+PfImvr2fqDlT1wb+2rRRrcRmJi1P06FI3dL0FEhenYDKpKKZ40vMKsZaUs6pgPfEmVc9udEXXAF7c+zHp+ev1vGTEmbvPAjoRC8BoAaPRdQ44e/jg/J4E/YN3wn8PdnXSeO7s/HgbfGHPR5MWQh5nLW5HFaHhYTzOGjzOGuzKsSdzIZSWkzepLWfzc3z/wTsM9XSzpqiEwc4OfH09dLW46GpxcfH4dzydtgqrrRyLrZS0nDyEEv0pKaLPAkH/XwCU7tjJyrW53Olsx+OsoeV3OwPeNoa6u3CeOY3zzGnMi5KxFNmw2MrI2FiEmmCOpFqYiAaQkmHB31TPtfO/sXJtLinpGSxOS6fD1ciAt420nDzMScm0N1whcM9H84VKmi9UEmcykV6wgUxbOVZbKU+lLImYY0QDKHrpZTqb6mk8dxZfbw/Ls7LpaKyn5+Z1FCWOLW/vJtWSxWgwSEdjHR5HDa3OavyDd/BedeC96sD+jSDVYiWzpIzM4nLdHSP+8XjtT6e4fPI4UtPCbfEmlYrd75O3ZevkF0hJb+tN3I5q3I6qabfEklNX8NbRb2fsF5XvB9zuaOPGpYsEfEMsXLqU3M0VJC1f/q9ee7evF4+zmlZHDV2uBrSxB5socyoAvYjEtvicCmACUoKY+Zfa5u6zgA6Dh7kcgE7EAjBawGhiARgtYDSxAIwWMJpYAECd0RLGIZyKQBwxWsMwhPa1YhoM/ADiutEuBtCsegdOCoBAq2urgjzH/PnJjKZpcqs5u/C8AmC25lcixCGjraKHPGDOLjwPD70LqBbXJ8CPhjlFj5/V9oFPxw8m/3ByJOkkgu3R94oG4idVSdwlLJbh8ZYJ6wCxelNA7ejfAXwBzM2NkqmRIPerma5XHx48PGLSC9xqqlAEx4DciOtFlmZNk++N3/P/ZNqVoDmrwK629xcKyZsgr0TOL1IIpxDyDbW9f8N0gwf4G3QTAbm18DrdAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/thad.4ed2b56b.png\";","module.exports = __webpack_public_path__ + \"static/media/checkmark.6cfaf6c8.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABAUlEQVRYhe3UrW4CQRQF4HO7lidpHZYgSGrqdzxssiEhIdCaXdy6LQowSIJmeQxIcDjegwSDOhUNIf2BzuykYO6RdzL3fGIygEbjkbCZdMNm0vXZEZQujwZ9ASYi8vJUrR132/XqZoAwGvSFHJ0n8lwW4Qz4WX5GPFbr+912tXHZ91C2XIj0NKfIKwAKOTJRkl5c4AP4Xr6Yvw9PZ8tZPqbIGwCCkrsgrADXyn0RfwJsyn0QVwEu5WURFwGmk1WE7AGfj8ym/BcEQGmbTlZxBhTT7BAQDQLxcpaPbcu/IIA4IBrFNDu43reKaaU0rZQ+O5z+gf+IAhSgAAUo4O4AjeYDNI6LJDrduhoAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/black-checkmark-icon.a757ac0b.svg\";","module.exports = __webpack_public_path__ + \"static/media/times-circle.6503d70f.svg\";","module.exports = __webpack_public_path__ + \"static/media/download-icon.eb0ce8ce.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/AP+gvaeTAAAB70lEQVRIid2Wv2uTQRjHP3en5E1tFDqbP0BFs+ng4FiE4CAIUpf4A+PSSQhWlyyivIIOAUFIi3QQNJqhWDtUB93crDqpYxwt2ES0yN3jkLQmMe+9Sd928Ts9d8/d9/M+z70v9yqGUKFQDn7wswh6CiWHOtMfFepRc7z1YKlSWY/zUHELzp6/kbXYReBwxJIVa1y+Xg0bPh/tSxYK5WATIrxHS550kCEdZNCSBz4AOWP185PT0ymf1y5fsqXXryjpQMaC47X75VZXevHUhdKblOh3QG5Pc+wyUNlSRUpkCgAj1/sgACzMhU0l6iqAUuqcz8sLAg4AkEq/jlrwS9tXnfBgEtA4wKBqNrQwFzY7YSYJaNv0/4H++WBPXyrtN1bdAzVJTN8HqAmy7MRde/bwzudIUBtiVkAmRn/mHttVrD5Sm7/5dWOmp3XtSpJCAGRCjLvbPdN3RmoyOaTjhPR49b8Mo56JT/t8oDi9sMZlrXFZYGmUjSOBrHHFejVs1Kthw2CKOwba/Vs2rwKrrfdaSARy2sz+HVDdMRBwIiLedtCW5b1hB+nMxdJRbdEuIWgN2Ovd4fRbF/tLA8D37kFf6+TlUBZDSZYjQdrqGeBbcohaRauZSNDj+VufsCYnqCe02ziq1kCeouVYbfb2l+7EH0UXlWhB7eyIAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABmJLR0QA/wD/AP+gvaeTAAAAaElEQVQokWNgGCjAjEfOi4GB4T8DA8M7Ug1NZmBg+AM1gCSQBNWYSVONjEjsZAYGhlkMDAwdDAwMc/Ho+cLAwPAKWYCLgYHhFwMkgAjhn1D11LEZBsgOLKoZQHY8w4AnAwODCrmaaQsAjPUgFvGms1YAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/gray-check.085d5832.svg\";","module.exports = __webpack_public_path__ + \"static/media/gray-info-icon.e907de28.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAAv0lEQVRoge3YMQ6CQBRF0T+uQxdkbCg0FlpbumhhF5BcG2jMOAgZ/TPmnYSK5r6ChHwzERGRLwL2QDs+jXfPYmP4pAfO3k2LvAyobwTQjNFVjzhGRgzA1bvtYxpRCo0ohUaUQiNKkX0EcAA6/PUk/mJDYkBrZttV6/PrQgi72IvNr0tW4t2L1ICbmXX5WxYbzOzuHTELOBH/iC/ebbMU70XxXhTvRfFeao+v+7DFH5wWqz/uTuf1BzWe10VEpGhPXKtQNzwT+nUAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABF0lEQVRYhe3WQUrDQBiG4TfTyRESPIILG4jBA2jPELCBHCB4n17AhYvqDYyCWxFBu+gJRPQIneZ3YYWgRqaZoCDzbSaL8H/PhIEJ+Pj0jEwzkWkmrnPUEBgP8AAP+N8AKbJK8jSyHShlEkuRVYMApMgqhBla1TYIKZMYE9YIMzneP3EGsGrOgUdgjFY3kh/sdJbnaYQJL4E9YMl6dOEMCOb3r5hmskHsopvr7xCSpxFa1cAYWGLUYTC/fbYBBDYvfSkYccSaJwBME/cttwa0EFe8f+LFZqX1vECvJsHpw4vtzK0ALcTHbtvZeue9AB2I3uW9AJ8QoUu5U6RMYimT+NeLfYZO5yEc4o8XIDi7+/Gg//l17OPzBvuFZn2GyBjqAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/red-trash-icon.97c60424.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon_upload.c732ac86.svg\";","module.exports = __webpack_public_path__ + \"static/media/chat-box.78bc3cfd.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABF0lEQVRYhe2VMU7DQBBF3xCUSA73QMSSXSWEgpYK03EBaHMblA64AB3uqJEwpPJKDicJAiQ0VDTJ7lq2LNzsa/f7/9HfsQ2BQM+I7zBJzsYajd4EJm3MFdby8TUz5mnj0ux5HaLRsm04gMCEaHhbo7GTnlxcqeodsJEfjstVXm1rknmmAKbId3zSaRbrgFdgLCLX5cvjvS3H2kA6zWJVvQFQWNjC6yhXeaWwAFDVZTw7T206awPJPFsDR01Da3g3Rb5zna4d6Drc6bnve8J2t2342xUb/rfgH/A2sE0cXw4HB58G4dAheTZFftrEs3kDgrNORNxnDho1UFUP33S8oL3vQBggDBAGCAN4v4S+v1hX9N5AINA7v3woSE866D/GAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAAA+ElEQVRIie3WMU5CQRDG8f8+lsTYY+INLNCEvAMYkEpjSWGip9OOjoIKCm0JIQEKboDRI7wlQ0Nt5u0MFoSvnplfstndDJxz6gmaInkpv4BLYvUY3pc/HnChqhK5AEpScypvd1f/B+/kCVgBbVLzU17LayusOmoAGXRaxGIK3AIbGvTCx3x7dNgbrwV74rVhLzwL9sCzYStugi247h3/kTBc/BKrPrAGbtiFkabPDOcmWgfIoNMiFROgDWxI4VnT53u5UtENw9n3UWELmg1b0SzYA60Ne6G1YE9UDXujoP1AYmN8QNfE6t6K6mGRBMyJ1YPXsnfO6WcPZaqGIf4H8TQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAFEklEQVRoge2aXWwUVRTHf2dahbqBBA1oxICRqmCKPqgPxkKBmiKESELAj0DqsiWShg+JGJ/74gshRAWTZkPbjcVEQzRqAsqXWFCThhATIZICJaWASouJYYuWls7xYRh2druzu3Nniprwe7pz59xzzz/33Dv33l24w38LicxTo05iiBpsnsfiCZQZwBQgdtPiGnAZ4Rw2vwDfo3SQkj+j6D6ckA06jmssB+qBWqAsoIcR4ABCO/fwGdvlumkoZkJWaAUTaAQ2Aw+adp7DJWArNs2kZDBo4+BCEroIYfvN1BkLzqKsp032BWlUuhAnjbYAG4NGZkg7adayW/4uxbg0IWv0fmz2AE+HicyAYwyzhHbpK2ZYXEhcH8biAFAZRWQGnMGmjpT0FDIqLGS1TkY4CjweZWSBEboZoZqU/O5nYvk2jut4hK+JTsQe4FejlsoMLL5ig47zM/EXUsY2opsTnbTKEsp5Djhn6ONZBtjq9zJ/aiV0EbDXsMN8DGIzi5T08IZO4waHgUcMfS2kVfbnVo4eEWf43jPsJD/Ct6Q4D0BSelHmIXQbevuQuI7PrRwt5BrrgMcMO8nHAGWsAdFbNW1ygTIWYJZmlZSxNrcyW4gzGpsNnPsjbCMpv42qT0ov5czHRIzydu7EzxbibACj2jsBDFNGs+9bczEPMcAyb0VuatUHdFiML/KOhhfTOWOxKvvRpVEn4WzFo0NoLcnOZM4odazUie5jRsgQNQQ/TxTiL0b4rmTr4CNTzt3MdR8yQpTqkjstjY7A54qgIyP5hMDMQJ0Wph+hzahlsAVgllvwConi23EGaCTNdFpkt7GXjJhLRSwfdQvlnsp7jToVqhEGsZnGNL6kSWwjP7dQIc50ktJDQo8ArxUwvs8teIVMMOpXGGSnHAeOG7X3Uq9TuYskynwS+iMwr0iLWzH7735LxWYvDVoVyke9TiWh71LOaZTFQAUBb2W8I5LGM1QBmIJyiAatpUVOltxqhVYwkQXYJBBeyomlVNJuwdv4D8yEQBAxCX0ZSABzUSpC3qxdcQve1DoTyiVMweYTmtQ/XVdoBbADWIiTPuHQTMzeD+KpkG77sHiVJrF9xUzgdWByyH4yWJmYLU/lDyFc9mPzAi1ykrjOpJefiOvsLAtH3Fsh+hiNzVG3mBHi7ItGDNz1ISwgJSdo0CosOoAnsTiYtZr1shTPBywChhniiPuQEeLcih8M6KwPwZngDVqFcgjnBh4yC4Ar5kKYqPOwn4/lqvuQncvCRwEcFRLh4ohJ6DPYEUxuL8Ku7Ecvzv1uNzC1iJt+bGpJyQniOhOLw8ADkQZamIukmcFuGXIrskfE+X3C9+7oJvnmxO0UAbDFKwLybVFsmoGzvi4sXimSTmNNFzGSuZX5v6urdSHCNz6OfsbiTWw+5faLUKCOVhm1KPlvEBK6A1g3hkEFR3mfNtmU75X/diLGZuDYWMVkQCcDvOP30l/IdrlOOYuBrrGIKhBCNxZLcye4l8LnkaRcweZFwm8ow3AaqGWnXC5kVPxglZIehqnm30mzTpRqWuR8McPSTojt0keMOcAHOCvH7SBJjBrapL8UY5Ofp+twzhRRbgC9dAHr8y2xhQh+Zm+V/cSYjbAJuBi4vT8XgI3EeCqoCIjiLxwDLMNiFUodwc/dN4B9CLu4yueFVqViRPenmpU6kfHUoMzBuQGsxDkNulc2aaAP5SwWp7A5itBBq6T9XN7h/8w/S5Z+UWxyHLIAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABSUlEQVRYhe2WS0oDQRCGv0oGMxsPoDcQlxNQyMZLCAaJmCOI4GPjc+UVRBAimoBLr5AIarJUT5AcQFSixCkXk9HOiyTYoGD/q4Jq+vuqoaHA5b9H4kIXZyfwUocgOWDKMqeBcsZHc0cu79/NhvdVJf0DYMMyOM40wiaer8B2fwEhB4AmMlK6u7ZJ1+V0hlDLwEq3QKLDErANB5DzasVkDBL4lTgBJ+AEnIATcAJOwBRoQHt5sBzjznp3zzPqArBFqGXNBj2XSLH2vT8uBXMIp8DMSAahmowBAq3mLp4P0drUs7kA6OqCz9vTPrAOJEeCR6kDBVrNve6G9DncCc0Gkb4yb0wdonLCi67JVe11DJGeeMOPtCNUiKZ+RMlLqXrzE3CccX6BoHLMM2kp1azAYfQXeEAkL8XqrS1wnOEvoByRmgzkwj78T+QTfD9V1NjwCPcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAABBklEQVRIie3UMW7CQBCF4VcgBaXHgsbKEYJIHQ6TKpwhRU6RmhJxBTookIwrEFByChdECn8KsHAMGK/ZtQjiVZa8nm9nNLJ0z38KMARCwCsbXrDNrDQcaAJr9lkCDddoFZhzGLedA59HULedAz4QZcBucKB/BrU/duAF2OSE7XUODAzQOEGyRiUHMpT0KOlL0quktqQng3t+S1pJ+jH4RgKCAt3FmQLPRmAC9tguiEki4AN4KIQWwDdAD/AvAlN4bTe6UxkALWtgTnzlCvSA98RzeuxdV2gMdU7gby7RP7++1Lsgq441NHUmBMa20OQSLYG6lcJXh+7gMGu8LuERMCkVvecm8wuaPOVTPWIivAAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/next-activity-logo.a0c36eda.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABCUlEQVRoge3WrU4DQRiF4Xeox1TATbQYBClqEm4IBWabEgyW+9mkCEqoXUSvANGkCtmk+TBIQubnG2rOo3d2ztmfmQERERERERE5jpBz8cvrcEtgYXDaKMyXBZvH2cVzxpg0/fvH2ehgn8CoKF26A/v9eYyXu5SLT3LubJlv7D8kF7i5mmwx61qGAQgWutSnDwVPdLka7oCn3HFpwiJeTx6yRpRM06ZEfnio+KZ9S5SFh8qf0qdEeXhwWFXqStSFB6dlsaxEfXhwXNfzSviEB+eNKa2EX3hosLP+XcI3PDQ6Gvxewj88NDzbLN+Ge4zHn1m6OJs22r0b6tebcb/ejI+dQ0RERESkjW+NTFgdkds/LwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/faviconProd.fa8adfe8.ico\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAFWUlEQVRogdWaW2wUZRTHf2faXbkUQ9rYQlqQLq29yS1CC5IYERNffBAxQYMQTVCRxGgEnjAxBI0PqA8mBgUSEzBog6IxJkZiIJgUoVSE2N22QHdbLoYiLdqb2Hbn+DBbdrbsdqczW4r/ZJNvzpzL/+x838x3zoyQAWgkOAPTeAyhBrQcCAB5QE5MpRfoBMIgzSgnMMyjUlx11WtscU36clMeg+ZaVNYBi12GPwXmfvzGASmq6HTlYawGev5sEYZvC8JLwBQ3QZOgD2UP/qz3ZVbZlbEYOk5AGxp85E3ZhPIO8amRafSjuhPT/56Ulv7rxMBRAhpuLgOtBV3gjZ9jnEFljcytOJdO0UinoK1Nq8FsuIPkARYi2qBtoVXpFEdNQCNNLyD6JeM3ZUbDNEwOaiS4cTSllAloJPgKqp8B2Rmn5hxZqOzScPC1VApJ14C2Nq1GtBbIGjdqY0MU4Rkprvx25InbEtALwRIM+RW411PIM3XwY601fmINLFzuyR3Qi2QtkeKyZrswYQppMOjHML7CK/nebji0F7pvWL9Dey2ZN+Sg0QPa0OCzCxPXwCTjzYzcba7/AdGh+HF0yJJ5xyJyJ79uF9xKQC+1FCL6lucQ4RDUHb5dXnfYOucZ8ra2hWYOH8XvMAPRrQhTXfvt6rCmSqQ5+fnQKesXqIBVGyA3322kHEzdAmyG2CLWy015DOhF3O5t2s/Bvg/gZr8z/clTYf1mmF3qKhzQh1/ul6KKTusKDJprQdyR77yaSD7bBzUrYf4yyC+0ZNeuwNnjUH8Ehgbhnz7LZtN2yC1wE3UqA/os8LF1BcKhU7jdEu/eYV0BgOl5sH4LFBQl17160SL+d5d1XFwOG7a5CgvUS6CyxogtiIdcuWgNxsln+0YnDzBjtjV1smN3wkgzhJtchQaWaPj3AoOorMBtYXPmeHxcs3J08sOYMRuqV9h81LkKDQiS9ahhlYEu0W7b7c5/2LmdXbc97Y45NUyWGrEa1h16uuLj/Jmp9UaioDA+7u5KrZceZQZoiWvzgYH42D/JuZ1dd8BR4ZUcQqkBMt29hwnHdIOJKVYyhWlpS8q7HQZW0+n/ih4D4cZEs/CAvwyU1olm4RrKeQMkxf43DewVluFiKdlt3FdrLQbKCVemjSfj4zkunoVzyuLjYL0rCoj+YiBDRwAds3GjLei86rEHf9Bm0+gqAQXzWLYE5nVouKkBdIkjs5+/BzUT9zDXOyz5WGCfNm0tcOw7EAMeedKph5MSmNcRKynN/SDOEhhuldhR94PToMlhmnD4oDV2moCyH4aLer9xAOjzxuKOoo97pBZiRb0UVXRqa2gPwhtpTZ38Q4310HUtUZabnzjvPUE/kaLKTrAVMnqppZDBaAt46EwM492N0D/igk7JgW27PLsGehB9YPj11K2bscwqu4KwIxMRyPbfLvMlkbmCbLe/W0t8AnX2fwj85jlGsj7oAs+9UVBO09X3kV00Ps3d6BD89HW83l24HB5fDVmeOvW9YCyWQHmLXZi8vd4WWoXJQe6m9jr6tASqvht5IukmRuZUfoPIpvHn5QgKbExGHkZ5QyPFFbsReREYSqVzBxBF9FUJVO5NpZC2H6SR0FMo+4BpGaWWHt2g61L988Nw9pq1NVSKUAssygi1tAE5jeoaKam6kE7V0UZe5laep72jOvak7vFMMDX6Ud3OTV3mhDy4+dSgLTQTZSvKy2TiqW2hD/RThJ1j/QDE28ceAzwH+jxQ7cKXAieBz/HpFzKrylWLznUCCUwunM0ny7cCk6WIlIMWA/eR+LnNnyARVJsxOEF08KiULLiW2qsz/Ad9I71QozLmFgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADvElEQVRoge2ZTUhUURTHf+qkRANlGuTHIqJo0U7F2lUuKhnbhISbPva6CCxaZZvKVlJktCkSpYI2RkHtUmmhkCZEi/xo4Qd+ZEGUoJFmi/tenvfmzsy9b94MRf7hwp05938+3rvvnPvOgw1s4P9GTkh6coFqoAaoBPYBpUDUkS8CM8AHYAh4BbwBfoVkPzDKgVZgGlizHFPAdaAs614DRcBd4Iehs8nGMnAH2J4t5xuAzxpHZoB7wGmgAhXkJmcUo7bWGeA+MKvhLwCnMul4BHXV/YZ7gBiQZ6mrDujV6Gt35KFiM/DcZ2gUOBqC7lpgzKf7mWMzFESId74D2BKWAVS26iQ+iFDuhH/bXA5DaQK0+GzdTldhA9lz3oU/iPqgiorwZpsOQ14+0AQMoArYItAPNDoyE3QJu5+AQmOvBeTWGcVsz5cCw3ivoBxvnTWpEAXGSWMrleMtUscMOAWOg6kK1xBmd6JWcJYxC/wPWgW5x5DT5DPYDJQ444LznytvNNTZJzjXDDnk4T3bxAx5A4LTrJFfFPJ+Q511gjOBOjSmxEFBmsE8F38XvBKNvFTIvxnqjABzglftX6CLqEbMXwArFsZAbZVZjfyrZm0qrAAvxe8j/gW6ACrFvM/QEEAbKmW2JZDvFvMJC729Yl5lQnjP+i2rsDCUDDl4c3uiIHWoErx3JoQvglBk5aYeUeCJ0PkT2GPB3yG4CyYEmf9NK2cibEXlfVkHLlnqKBDcZRNCmAE8wuv8Dezfw60DCGsL7QVWHT2rwPmAepJuIV0WkilwV0CjoHK2q78buBlQj/QhLj3rAhgR8/0BjQLsFPPhNPRIH0b8Ql0Ag2J+KA3D3cBHZzxOQ89hMR9MuErgAOt7bpYMvGBbIALMC3+MClkuqulke5jLBE4IP4wPc6A6Zi6xN8XaTOK18OOqDbEM7/m9NoDxGOpYPpUG37W/hOULDah2n6tgjPVGrSnkNpy05EZRD7/Lv2XJB1QRWxBKOi356QTwUHDnCfhSD6pXKY8CLRbcWlQQk8BxC94Vn82TFlwt2gkehC38zget3h5EUG0+qbgL+2ciGaJ4t80a8BS7hnFSbCY+iHGCZRc/YngfWNf50Jq7LiKoBpO/z9OH6h7YVOwIqkjJPC8zTmhXXod6vOXdHXPAA+AsquQXo94n8p15FXAO1aJMxE/7gTVFIepuyGIXdCyhrvq2bDkvUYrqmE0aOivHBOp4oOshGSPMz6xVeD+zluH9zDqNahIPoj6zDvEXfGbdwAb+dfwGy0qZzSTZdTYAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAErElEQVRogdXaf6yVcxwH8Ff3Frpr1tCsTGkSDWlh1uKPqBkhJcvIHxiqMWOsWoZNM8waJjYzP2bMWlKsaZqfUSHTirBlyCSERjf90vHH53t67j33nnPuPee5t+u9PTvnOc/3eX8+3x+f7+fH9/A/R2M38PdHAf92say6MQp3YjG+QLNQvIBNOPbQqVYe/XAbvpEpW7wO4Fdsk3XiVPQ9JJq2g+n4WabwL1iIazAMvVK7vlipded2YBXmiZnrVjThpRbKfIIrcFiFd/rieawTM7Fb6w69ibO7TuUM/fC+bBRnoaEGnkaMxBxslhn5XNnM5Y5GLE/CtuCUHHln4u/E/awu6sS8JGAzhnQB/0j8nmTckTf5YOzBTrGTdBXGYhf24Yw8iReKkZmTJ2kZ3JtkLc6LcCD+EVvmEXVyXa36yDZhqzDqXOxshhiR++rg6IUHEs92HF+l/UOp7dw6ZB7EskRW69o/DksSx970+TGOrPDOmandezXKPIgGsb1tq+Hd/mLn2pmUWYcT8Xq6XyuWZ3toTO/tUWfAOSgJW97B9n0wDs/JgrndeFhmP02y0GIrLivDtTa1qbbcKmJMInmqzPMhuETsTq8K71wMD3YJp9Sezzgcj4mAr4C3cF5Jm8Xp2dh6OnB5Ipmf7odhKTbgT63jmYKY8rdFiNG/A/yT8H2L9z/F8PTs6fTb5EoEvasIKMY5B9Ln1CSUWCKbsBHr0/WhWLsdxTKswM0iLD8LU/BgUp4qYUW1DpSiaFB34ZFOvlsOe/B44l6gk0ZbSyRJD0oPa+1AV2O8yDGImX5UGb/RUztwMY5O34cK+3i5vYbVOlDcu8eIiLS7ULTNGUnuD5ioHcdXyYh7YXb6Pl7kAVvy07EsbpQ5r2b8iK+EPxkkgsqDqDQDg0WSsVnsEvtEKEC2xeWJIueQKnq1QqWGRQ+6XqzBoSKi3CAqCnljVeK+Hy/kQXiyGJXP8iDrJBYk2dPT/Yp0P7q0YaUZ+Fa4+dG4IWcFO4oTMEEWXn/XWYLJwmkVxPTOzFO7MrhbGG5pnPVkrYRTRM8LYgeoVMCqFwO0LXp9gJvU6bMaZNW4afXpWBGzk4wVwpALIiLOBeckwnfzIixBg2ymLxJhewHn5inkcxFaj8yTNGGSrHDWW6Sx+8Wyyg3XJiGv5EmaUEwhbxfll1yS+lL0EXFJR2o2A3CdWNezcb3ylYgJovY0HyfhN9GB8+tXuS1mJfJFFdqMEOcFpVvhFu0HhSNE5ftKcShSEDlzVdRSBe4jjpCG4wK8006bJcKHLBVLg0jaJ+IjkXq25BsojLUYxD0hltL+GvTrECaLUfpSVBhKsTE9H9Tit1HazkjpkdRqXNgZRTqbExfxmhjlKSJjurXk+WqcJvbzr9NvxZroi3ijpP0OMRhba9SnJgyQrfOrSp4dgzXajvJKsdYJw14kBuCQZYbjhOvfq63HbMTpIhkar7XvuEd0qFk7EWZ3Y5rYVveKc+JKo9mEZ4Ty+0WdqUdgKv4Siq0RnWp5HnwUbpEd6DUL++lRGCFCjZa7yk8yp1S81goD75FoEPWcZfhDpvR2Ufy9VBceo3YFmvSgvxb0SPwHwk5FM3V8Hl4AAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/external-link.0b37a079.svg\";","module.exports = __webpack_public_path__ + \"static/media/external-link-orange.9a8e33fc.svg\";","module.exports = __webpack_public_path__ + \"static/media/circle-cross.91bb38d0.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAEw0lEQVRogdWaW4hWVRTHfzo1zShlKZniDDnSlSgowktp2W2ULhA9REIk9BBCj3mpDPIhojsk9FJoEBaNQz009aIRlF0Mo3umRY5WTk5pjhOYjuOcHtbanX3Ot89tf+ecqT8cvjlr7bPWf+2z195r7zMwfjgd+AjYBawA2saRizcmAJuBwLoGgXXAWePIqzDWIuQPA/cDXxEGdBh4HJg+buxyohsYBU4Ct1jyhUAfYUDHgFeAC+ommAe3AUcQomsT2iwE3gbGtN0JYBNwaR0EkzAFWA5sAH4k7O1NSJ6k4TLgVSSQAAmsD7i6KrIutAOPAX8RTeg/gQeBlgK2uoAXgKOWnQ+Am8nujKbQBXxrOX0fWAPMB1qbsHsOMgkMWba/BJZRrGNyoRP4VZ18D9xQtgPgDKRjfiMM6JMyHbQAn6rhz4AzyzTuQBvwjvr7ukzDK9TofmBqmYYTcB6SN2PANWUZbQH2IIHcW5bRDGxVfxvKNHqrGv2JChLPgbvV3+/ANF8jk4D7kNnoANHp9aHmOWZiGhJAANzja+QKpFoNHNcIMKNpmtnYqP7ew3MduQhZ0Mz8fScyt5sC8I1SaKZjMZLcx4ALfQy0ATsJCZ+m8olAv8qXJDx7JWF9Vdb1LnCKTyBPES5y7ZZ8qcr3aFAu9JQchLm2FA1mHlJ2jwILYro31ejDCc9OB44j+TOziNMEtCLVgpnqV+Z90B5ST8d0M5HKNI3kKqrJn8Vq95u8DzyhD+wiOqQgO8knAD+Qnj++mKR2h/I0nks4pK6K6ewkX5rw/PVk548vriPM2VTMRVbpAHjGob9Wdf0kk3yd9PzxQStwI7A3y3Yb8CTyFgLgCxqHFEgZHQAvJtg5m3KT3FTV8SnYLAOR3lyAEF+NjO/nkCH1t8OwWVFPJDhejvTeW8i+oVmcGrs/CNyOdNa/aEeGj3kLu2nMiTi6te3PyEbHxhTgF9V3+7BOQHxYPRJv8LEqTgLP4h5KcbQgU18AfIjUYK3A5Xpvdm1V7KlNJ+6OK/ar4o6CBi9BTgddq+5eZO9eBaaqj6O2cCKSSFD87PU75E28hIxZgAHgeaS+6vdlmoF5+rsvrliNRLi+SQeVHs0gQ/cmJC8D5FgpgkWq2FExEV+4pt6tOI6W2pH5foR8iV43PicaxB/A5KTGO7TRolqoFYcZVvtIPzdmvTZYVQ8vbywhLGIjMCu7OambXxcjT5g87kxq0IVEOlALHX+YN7IzrZE5Sz23DkYFYcoTkyNr0hqbbetd1fPKhYuJnrzbe/WGqdeufrfr738pT8Zi9weRUmok7SGzMG5PadMB9ALDyBHPZiS/5ujfRzzkw8h2+fwEn+bAwexIH00LAsKF8TjuuqsDOETjqx7EXTwWlR8CZqXws7fOmTALo2s/0qu6PnU4C/loGZQo70nhNlnbjOYJxCyMDzh0w6qze63TIlaGPO1UxLyRXFX1Mm3c69AZAnXLTY6YneE6R5sGmIUx7aqKcJbfANhGgcJ2S4Yx+9OBPVQ6mpDPSPE3inyjX4nnwXUcLxMmaYde5mNkgCSsr9wk+8YyiGZhNtFPwuY6gHs6LSofoMbyaA7wmhIZQk4TZyO51YMscEXlg8i/alR1WPH/wj+i2AJEI7dbOwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/pause.1d0f35ae.svg\";","module.exports = __webpack_public_path__ + \"static/media/cancel.2da10a50.svg\";","module.exports = __webpack_public_path__ + \"static/media/copy.9b810120.svg\";","module.exports = __webpack_public_path__ + \"static/media/view-external-link.af7e07a1.svg\";","module.exports = __webpack_public_path__ + \"static/media/delete.83b0d90a.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon_invoices.95f09274.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon_partners.6ac1a296.svg\";","module.exports = __webpack_public_path__ + \"static/media/disabled-recurring.feb55536.svg\";","module.exports = __webpack_public_path__ + \"static/media/info-red-icon.a37241f6.svg\";","module.exports = __webpack_public_path__ + \"static/media/fees.6bcd09f2.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAADMklEQVRIid2Vz2tUVxTHP2defszgKETpotKYkLjSiKL9A1KolRZKpiUvdFWTCIkpSEEMmUQXb1NmEpEsipREk2l3rdfaxEVbUCndCSpUTRBJA80PdKVZRE0m43vHxXszmcyPmC7bs3mXc+75fs/5vnvvgf+6yWZB23aqZPtKzFOJCRwG3gtCiyD3RLxJXY5MGOOs/WuC1vb+z0X0PNDwlhpnEe0148lftkTgOE5o+p/VJEIvAMoDERlTuBl+nZkDeBWy6kPCh4icAA4AqDDYtCc84DiOl49XUUiQB55W9Oum+silwiRgGph2HOfb6bmVbpBhUfqm5lcB4mU7CGT5GUiDHDOpxJ8AX3ScrXXVHUb4yM/SW6BxMz702M+LN4vwO1AtKp9d+T4xUURg204V0dVHQIOiJ6+mBkdy4Hh/ge4sEHfJUuvgj6lvFgKSr0S4CPxdU/l83+joaAYglNu/fSUGNKA8aKqLXMr6XXWHA/BfXcurdS2vFvgNpcYT90Iu/+XsCDAF7F3K7GrJ+nMEnkoMQETGNmgeyOJaXve1y0OL1y4PLVpY3QCqHMtuM8a4KjLmK6ixrD/3k0U4goLCzXwlTCq5gwJz3deCJQAbzr+63g0JCSq8X9QByrsAaXEXCgHz7eNTp6qx5Du/OX7Ij2UsnQ+Wu4sJtmDNjlMRfbHNAJ+A/qEvwgNvy1knEJ4CVKtVW27zO/Mrg8CnwO20aEvhExGRirpg+aSYQOWu//WOli1H5TiAp+6X18eHlovCnp+rcGe97sDaOvvaVOUn4OH+uvChErd3U7Nt2yLaeB/YD2KbVOLqhg50OTIBMgsc8K9/CZCOuNodcS3JEG3s8cGZqal8Npl15wiMcdYQ7Q0aG25tjzdvtfq2zoEPgAuAInIme4uhxGva2hlPitIHpFU5LS9nR4wxbsmOfFl6AvAqgcSVVHLDySp6TZv2hAem5lcRpU+Ei0Qbe1o7+8fU9W6EtkXmAELptXr1vKMKJwJZVCCxry58rhCv7MBpa++PqT9w9pbbE9gMImfMeOJ6qeCmI7Orq6tyKbOrRVRjKhxhfWQuKNwTZLKm8tlkvub/P3sDet5AMbXB1joAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABkklEQVRYhe2VT07CQBTGv9K+I4DxBizwDEbQAxjj1kQwMYSUhJOQzMKJC1mw9wJGSDyDLLiB/44w1LqYKY7Tv9OqbPpLSGDaee9733szADUV4Hze4nzeqhLDKbuRsVkTCBcAKAg23cnk+uXfBGjJD9TSuqyIhu0GaXm4VMlX6tN2Xe+hTDusHDAqX7tu4ygIwkBfs3WisICk5KPR5WvSs0gEY3chAIzHg9Q8hVqQlVwm6H8ATg/AM2Q7ltPp7X6R2LkCzJ4T0aGeXBdBRMfQZqKyAMZmTSHEI4AOZOUnw+HFe9r78pnThXSiU0lA0cpNDCe0WBYCbCs3MZyAEOIpbSZi05k3cDaknY5UAZzPW0KIBVT/iGjPpvIkVMw39XNFRD095lZAwvWaeX5tiO4DxQ8ntjPgOJ/n+L5e/4oVgLbnuafRghd98f2rG8ZmIZF3r1kWw6gmRpZrRNQTYnPm+wMeEyA397lKkllGWVTvub7mpbybi1lpnjNpWP8d/za1gFrAzgVkHsMyR8t2z84dqKn5At2Z3dTis4d/AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAABm0lEQVRYhe1Wy0rDQBQ9ppNPMOIfdFEHpJsQELHVhYsKUfw1+xVasKAgtiBCsUgRYoX+gVr/wMmkLjIJ6aR5TGLpJmc1ucnce+65DwJUKAFq2Qa1bKOMD63oxf2D02147iM896nZPN8t6meraHDOyADAnjDNdKa3JpObz7UToJZtwHMHABoApsLsnzXSdka9uYo/pRKEsvsBZ5zzk5rutgC8A2gUKUduBSTZZ5zzo4/Xu69V74JyULOzAADnpZ8YJ5cCacEB4O35/qemu234StSZzoZ5lcgkQC3b4IwMRfApNHIYDR4lAY0cw++LOtPZQ2kCq2qe1mTOqDdf6okyBPJmLkNSIvSlREA1cxmSEkibjlh3ZjWcCpKmI5GAtGQAjeyoLhYZwue3eIwtq5DAivWaOr9KJMQ+EFhSIuwB/ksuETTc+uCPKGF2YCDBwRn3r6h5toBWu45IFoOUTQypqmmkDY9fOOPbboyAf9l/Qc1OWozCELXvRm0k4dtsZ1KmWcokofAPyX+hIlAR2DiB1DEsMlqqdzauQIUKf/bm7BGgkd8DAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/grey-clock-icon.3f780294.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAAAmElEQVRIie2VsQ2DMBBFn8EtPZsEKXt4AWqWcc8CnoMmOxGRJooUBMhn2UBxr7Tk//xPJxkUpRBGesH7cQKevwDDaxj6TppTSS8Af5Jl4RFCqKUhFsD7cQbqtm2sc+6d8Bi+OdHTSGl8RPQ0coujuUxstw5zbe4Re42zbG6KuDgqVrGKVZyMgXz/sYR7NC4pWk/zssbKaXwA/U0reNt9YjgAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABmJLR0QA/wD/AP+gvaeTAAAAlElEQVRIiWNgGAWjgEaAkVQNeha+RxgYGKyRhE5eOrHZglRzmEjVwMDAgG6JeWhoKDOphrAwMDAw6Fn4/mFgYGBWl+VgWb169V8yHMMANYfo0CDHx/gA0aFBbYuJBgNmMQs2QWqlXHwAl4+pknLJsZjmYNTiUYtHLR61mGzAyMBAvfqYFDA4fExLi9BDc8B8PAroBgAl3iKBXvcZMgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/fee-icon.39ea6c35.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrows-rotate-regular.0b63e092.svg\";","module.exports = __webpack_public_path__ + \"static/media/pen-to-square-regular.7427aa73.svg\";","module.exports = __webpack_public_path__ + \"static/media/table-columns.ea6e5f5b.svg\";","module.exports = __webpack_public_path__ + \"static/media/tachometer-light.30b90698.svg\";","module.exports = __webpack_public_path__ + \"static/media/box-alt-light.41671982.svg\";","module.exports = __webpack_public_path__ + \"static/media/circle-info-light.66cd0ba0.svg\";","module.exports = __webpack_public_path__ + \"static/media/authorizedSC.f2e14b02.svg\";","module.exports = __webpack_public_path__ + \"static/media/unauthorizedSC.e840dbd7.svg\";","module.exports = __webpack_public_path__ + \"static/media/authorizedVC.b301be15.svg\";","module.exports = __webpack_public_path__ + \"static/media/unauthorizedVC.9ee46dd6.svg\";","module.exports = __webpack_public_path__ + \"static/media/Next White Logo.cc5b7b1f.svg\";","import styled from 'styled-components';\n\nimport Theme from './Theme';\nimport { BannerBg } from './images';\n\nexport const GroupUser = styled.div`\n display: flex;\n\n .activity-user {\n font-size: ${Theme.normal};\n color: ${Theme.black};\n font-weight: 500;\n line-height: 18px;\n overflow-wrap: break-word;\n text-align: left;\n float: left;\n width: 80%;\n span {\n color: ${Theme.gray35};\n font-weight: 500;\n\n &.font-bold {\n font-weight: 600;\n color: ${Theme.black};\n }\n &.note-text {\n color: ${Theme.black};\n\n p {\n span {\n color: unset;\n }\n }\n }\n &.default-label {\n color: ${Theme.white};\n background: ${Theme.green};\n text-transform: uppercase;\n font-size: ${Theme.textExtraSmall};\n font-weight: 900;\n padding: 4px 4px 2px 4px;\n border-radius: 4px;\n }\n }\n p {\n margin: 0;\n font-size: 15px;\n display: contents;\n word-break: break-word;\n &.note-text {\n color: ${Theme.black};\n\n p {\n span {\n color: unset;\n }\n }\n }\n }\n }\n .email-clicks {\n float: left;\n margin-top: 10px;\n margin-left: 5px;\n .email-opens {\n border-right: 1px solid ${Theme.gray35};\n padding: 0 8px;\n color: ${Theme.black};\n &:last-child {\n border-right: none;\n }\n }\n }\n .default-user-activity {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n float: left;\n margin-right: 15px;\n margin-top: -2px;\n\n &.contract-mail {\n width: 20px;\n height: 20px;\n margin: 10px;\n }\n }\n\n .contract-email {\n background-color: #f4f6fc;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n float: left;\n margin-right: 10px;\n }\n\n .time-date {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n font-weight: 500;\n text-align: left;\n overflow-wrap: break-word;\n\n .pin {\n color: ${Theme.black};\n position: relative;\n\n .more-action {\n list-style-type: none;\n padding: 0;\n margin: 0;\n display: contents;\n li {\n display: inline-block;\n position: relative;\n margin-left: 18px;\n cursor: pointer;\n padding: 0;\n .dot {\n background-color: #8798ad;\n border-radius: 50%;\n width: 3px;\n height: 3px;\n position: absolute;\n top: 7px;\n margin-left: -10px;\n }\n\n &.delete {\n cursor: pointer;\n color: ${Theme.black};\n .delete {\n color: ${Theme.black};\n }\n .delete-msg {\n display: block;\n border-radius: 6px;\n box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.1);\n background-color: ${Theme.white};\n color: ${Theme.red};\n font-size: 16px;\n text-align: center;\n position: absolute;\n top: 25px;\n width: 170px;\n padding: 17px 0;\n z-index: 99999;\n font-weight: 600;\n .red-trash-icon {\n width: 18px;\n vertical-align: text-top;\n margin-right: 6px;\n }\n @media only screen and (max-width: 1900px) and (min-width: 1495px) {\n &.confirm-delete-anno {\n left: -100px;\n }\n }\n @media only screen and (max-width: 1200px) and (min-width: 991px) {\n &.confirm-delete-anno {\n left: -100px;\n }\n }\n @media only screen and (max-width: 477px) and (min-width: 366px) {\n &.confirm-delete-anno {\n left: -100px;\n }\n }\n }\n }\n }\n }\n }\n }\n .pin-icon {\n position: absolute;\n width: 23px;\n background: white;\n top: 20px;\n left: 42px;\n }\n\n .user-email-address {\n color: ${Theme.gray85};\n text-align: left;\n font-size: ${Theme.normal};\n float: left;\n word-break: break-all;\n width: 86%;\n }\n`;\nexport const BrandPartnerDashboard = styled.div`\n .partner-select {\n list-style-type: none;\n padding: 0;\n margin: 10px 0;\n li {\n display: inline-block;\n width: 250px;\n margin-right: 10px;\n vertical-align: top;\n\n &.my-partner {\n width: 220px;\n }\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n .text-md-right {\n text-align: right;\n }\n .text-sm-left {\n display: none;\n }\n .dashboard-header-sticky {\n position: fixed;\n left: 64px;\n top: 0px;\n right: 0;\n z-index: 1;\n background-color: ${Theme.white};\n border-bottom: 1px solid ${Theme.gray7};\n }\n .footer-sticky {\n padding-left: 64px;\n }\n\n @media only screen and (max-width: 991.98px) {\n padding-left: 0;\n\n .dashboard-header-sticky {\n left: 0;\n }\n .partner-select {\n list-style-type: none;\n text-align: left;\n\n li {\n width: 240px;\n\n &.my-partner {\n width: 208px;\n }\n }\n }\n .footer-sticky {\n padding-left: 0;\n }\n }\n @media only screen and (max-width: 767px) {\n .text-sm-left {\n text-align: left;\n }\n .partner-select {\n list-style-type: none;\n text-align: left;\n\n li {\n width: 100%;\n margin-bottom: 10px;\n\n &.my-partner {\n width: 100%;\n }\n }\n }\n }\n`;\n\nexport const DashboardCard = styled.div`\n background: ${Theme.gray6};\n padding-top: 48px;\n min-height: calc(100vh - 48px);\n\n .dashboard-container-body {\n width: 100%;\n margin: 30px auto 0 auto;\n padding: 15px 45px;\n }\n .dashboard-body {\n max-width: 1334px;\n width: 100%;\n margin: 0 auto;\n padding-top: 40px;\n padding-left: 62px;\n\n .company-logo {\n border-radius: 10px;\n width: 66px;\n height: 66px;\n margin-bottom: 8px;\n }\n\n .company-name {\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.title};\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 270px;\n min-height: 20px;\n }\n\n .status {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 270px;\n min-height: 15px;\n }\n\n .solid-icon {\n border-radius: 6px;\n width: 36px;\n height: 36px;\n }\n\n p.black-heading-title {\n font-size: 14px;\n }\n .card-label {\n color: ${Theme.gray40};\n font-size: ${Theme.verySmall};\n font-family: ${Theme.titleFontFamil};\n text-transform: uppercase;\n font-weight: 800;\n margin-bottom: 5px;\n }\n .sold-price {\n color: ${Theme.gray80};\n font-size: 20px;\n font-weight: 500;\n }\n .vs {\n color: ${Theme.gray40};\n font-size: ${Theme.normal};\n }\n .spacing {\n margin: 10px 0 10px 0;\n }\n }\n .white-card-container {\n padding: 0;\n margin: 0 0 15px 0;\n list-style-type: none;\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n li {\n width: 100%;\n display: inline-block;\n max-width: 20%;\n flex: 0 0 20%;\n position: relative;\n padding-right: 10px;\n padding-left: 10px;\n margin-bottom: 15px;\n }\n }\n\n @media only screen and (max-width: 767px) {\n &.finance-dashboard {\n padding-top: 70px;\n }\n\n .dashboard-body {\n padding-left: 0;\n padding-top: 40px;\n }\n .dashboard-container-body {\n padding: 15px;\n }\n .white-card-container {\n li {\n max-width: 50% !important;\n flex: 0 0 50% !important;\n\n &:first-child {\n max-width: 100% !important;\n flex: 0 0 100% !important;\n }\n }\n }\n }\n @media only screen and (max-width: 991.98px) {\n .dashboard-body {\n padding-top: 70px;\n padding-left: 0;\n padding-right: 15px;\n }\n .white-card-container {\n li {\n max-width: 33.333%;\n flex: 0 0 33.333%;\n }\n }\n }\n\n @media only screen and (min-width: 1600px) {\n .dashboard-body {\n max-width: 1434px;\n }\n }\n\n @media only screen and (min-width: 1700px) and (min-width: 1920px) {\n /* height: 95vh; */\n .dashboard-body {\n max-width: 85%;\n }\n }\n`;\n\nexport const FormContainer = styled.div`\n height: 100%;\n .banner-bg {\n width: 100%;\n height: 100%;\n background-image: url(${BannerBg});\n background-position: center;\n background-size: cover;\n }\n // amazon login screen\n .inner-container {\n max-width: 496px;\n margin: 0 auto;\n width: 100%;\n color: ${Theme.white};\n\n .amazon-white-logo {\n padding: 48px 0 72px 0;\n }\n }\n .amazon-mobile-overlay {\n background: ${Theme.black};\n @media only screen and (max-width: 991px) {\n background: rgb(91 91 91 / 0.9);\n }\n }\n .amazon-screen-container {\n background: ${Theme.gray1};\n }\n\n .amazon-screen-inner-container {\n max-width: 1032px;\n margin: 0 auto;\n width: 100%;\n }\n .what-next-conatiner {\n text-align: center;\n padding: 120px 0;\n }\n\n .next-features-bg {\n background: ${Theme.black};\n padding: 48px 0;\n\n .normal-text-black {\n color: ${Theme.white};\n }\n .sub-title-text {\n color: ${Theme.white};\n font-family: ${Theme.titleFontFamily};\n }\n }\n .card-container {\n max-width: 496px;\n width: 100%;\n border: 1px solid ${Theme.gray25};\n border-radius: 8px;\n padding: 32px;\n text-align: left;\n background: ${Theme.white};\n margin: 0 auto;\n }\n .copy-right {\n font-size: ${Theme.textSmall};\n color: ${Theme.gray20};\n }\n .amazaon-footer-list {\n li {\n margin-top: 32px;\n color: ${Theme.white};\n margin-right: 18px;\n font-size: ${Theme.extraSmall};\n }\n }\n .status-label {\n background: ${Theme.lightOrange};\n color: ${Theme.orange};\n text-transform: uppercase;\n font-size: ${Theme.verySmall};\n width: fit-content;\n border-radius: 4px;\n padding: 6px 8px 6px 8px;\n font-weight: bold;\n }\n .inner-langing-form {\n max-width: 320px;\n margin: 0 auto;\n width: 100%;\n vertical-align: middle;\n\n &.inner-body-container {\n max-height: calc(100% - 170px);\n overflow: auto;\n }\n\n .landing-page-logo {\n img {\n width: 118px;\n padding: 48px 0 68px 0;\n }\n }\n }\n\n .inner-form {\n max-width: 360px;\n margin: 0 auto;\n width: 100%;\n vertical-align: middle;\n\n .logo {\n img {\n width: 160px;\n display: inline-table;\n padding: 40px 0 100px 0;\n }\n }\n\n .sub-text {\n color: ${Theme.black};\n font-size: ${Theme.normal};\n margin: 0 0 22px 0;\n line-height: 22px;\n }\n\n .google-icon {\n width: 40px;\n position: absolute;\n top: 2px;\n margin-right: 10px;\n left: 2px;\n bottom: -2px;\n vertical-align: bottom;\n }\n\n h2 {\n font-size: ${Theme.MediumTitleFontSize};\n }\n .back-link {\n font-weight: 500;\n .arrow-back {\n vertical-align: middle;\n width: 15px;\n margin-right: 8px;\n }\n }\n .forgot-pswd-link {\n color: ${Theme.gray40};\n font-size: ${Theme.extraNormal};\n }\n }\n\n @media only screen and (max-width: 991.98px) {\n background-position: center;\n background-size: cover;\n background-image: url(${BannerBg});\n background-repeat: no-repeat;\n height: 100%;\n\n .inner-langing-form {\n max-width: 100%;\n color: ${Theme.white} !important;\n top: 0;\n max-width: 100%;\n padding: 0 20px;\n height: 100%;\n label {\n color: ${Theme.white};\n }\n\n &.grey-overlay {\n background: rgb(91 91 91 / 0.9);\n }\n &.inner-body-container {\n max-height: initial;\n }\n .inner-body {\n max-height: calc(100% - 185px);\n overflow: auto;\n }\n .medium-size-page-heading {\n color: ${Theme.white} !important;\n }\n .normal-text-black {\n color: ${Theme.white};\n }\n }\n .inner-form {\n background: rgb(91 91 91 / 0.9);\n height: 100%;\n top: 0;\n max-width: 100%;\n padding: 0 20px;\n\n .sub-text {\n color: ${Theme.white};\n }\n\n label {\n color: ${Theme.white};\n }\n h2 {\n font-size: ${Theme.MediumTitleFontSize};\n color: ${Theme.white};\n }\n .back-link {\n font-weight: 500;\n color: ${Theme.white};\n .arrow-back {\n vertical-align: middle;\n width: 15px;\n margin-right: 8px;\n }\n }\n .forgot-pswd-link {\n color: ${Theme.white};\n }\n }\n }\n`;\nexport const TabletViewManager = styled.div`\n .company-logo {\n width: 47px;\n height: 47px;\n margin-right: 14px;\n float: left;\n }\n .company-name {\n vertical-align: middle;\n position: relative;\n color: ${Theme.black};\n font-size: ${Theme.title};\n font-weight: 600;\n }\n .increase-rate {\n font-weight: 600;\n }\n .label-info {\n font-weight: 600;\n }\n .status {\n color: ${Theme.gray85};\n font-size: ${Theme.extraNormal};\n }\n @media only screen and (max-width: 768px) {\n padding-top: 20px;\n }\n`;\n\nexport const Icon = styled.span`\n .fa-circle-info {\n color: ${Theme.black};\n /* font-family: FontAwesome5ProLight; */\n font-size: ${Theme.extraSmall};\n height: 12px;\n letter-spacing: 0px;\n line-height: 12px;\n width: 12px;\n margin-left: 4px;\n cursor: pointer;\n margin-bottom: 1px;\n }\n`;\n\nexport const AccountStatus = styled.div`\n border-radius: 12px;\n padding: 5px 10px 4px 10px;\n font-size: ${Theme.extraSmall};\n font-weight: 500;\n color: ${Theme.white};\n text-align: center;\n min-width: 57px;\n width: 100%;\n background: ${Theme.gray8};\n display: inline !important;\n\n &.account-type {\n color: ${Theme.gray80};\n }\n &.active {\n background: ${Theme.darkGreen};\n }\n\n &.pending {\n background: ${Theme.darkYellow};\n }\n\n &.pending-cancellation {\n background: ${Theme.yellow};\n }\n &.inactive {\n background: ${Theme.gray60};\n }\n &.inCollections {\n background: ${Theme.lightDarkBlue};\n }\n\n &.outOfContract {\n background: ${Theme.orange};\n }\n\n &.atRisk {\n background: ${Theme.darkRed};\n }\n`;\n\nexport default global;\n","module.exports = __webpack_public_path__ + \"static/media/Sponsored Ad Performance.86b6b2a1.svg\";","module.exports = __webpack_public_path__ + \"static/media/DSP Ad Performance.f6c6b6f2.svg\";","module.exports = __webpack_public_path__ + \"static/media/Inventory Management.69e70ff4.svg\";","module.exports = __webpack_public_path__ + \"static/media/Sales Performance.f99d87ba.svg\";","module.exports = __webpack_public_path__ + \"static/media/danielWalls.0ec67b05.png\";","module.exports = __webpack_public_path__ + \"static/media/BBE_Standard_logo.62b9f64e.png\";","module.exports = __webpack_public_path__ + \"static/media/BBE_Standard_wide_logo.5c0a37ec.png\";","module.exports = __webpack_public_path__ + \"static/media/monaSerenoImg.63502637.png\";","module.exports = __webpack_public_path__ + \"static/media/BrokenFile.ddb74392.svg\";","module.exports = __webpack_public_path__ + \"static/media/Noah-Medium.b5d96156.woff\";","module.exports = __webpack_public_path__ + \"static/media/Noah-Bold.412ff65e.woff\";","module.exports = __webpack_public_path__ + \"static/media/Noah-Regular.68447794.woff\";","module.exports = __webpack_public_path__ + \"static/media/Noah-RegularItalic.70c781c3.woff\";","module.exports = __webpack_public_path__ + \"static/media/Noah-BoldItalic.608fe554.woff\";","module.exports = __webpack_public_path__ + \"static/media/ARIALMTEXTRABOLD.42a9968b.woff\";","module.exports = __webpack_public_path__ + \"static/media/ARIALMTMEDIUM.f5d900bb.woff\";","module.exports = __webpack_public_path__ + \"static/media/Helvetica.1b580d98.ttf\";","module.exports = __webpack_public_path__ + \"static/media/Helvetica-Bold.d13db1fe.ttf\";","import BannerBg from './banner-bg.png';\nimport ArrowIcons from './icons/arrow-back.png';\nimport Logo from './logo.svg';\nimport newLogo from './newLogo.png';\nimport DefaultUser from './default-user.svg';\nimport SortUp from './icons/sort-up.png';\nimport SortDown from './icons/sort-down.png';\nimport EditIcons from './icons/edit-icon.svg';\nimport LogOutIcons from './icons/logout-icon.png';\nimport EditFileIcons from './icons/edit-file.svg';\nimport CloseIcon from './icons/close.svg';\nimport EyeIcon from './icons/eye.png';\nimport smallEyeIcon from './icons/smallEye.png';\nimport CloseEyeIcon from './icons/closeEye.png';\nimport AttachFile from './icons/attchment.png';\nimport DownloadIcons from './icons/download.png';\nimport CopyPasteIcons from './icons/copy-paste.png';\nimport FaceBookIcons from './icons/facebook.svg';\nimport LinkeDinIcons from './icons/linkedin.svg';\nimport TwitterIcons from './icons/twitter.svg';\nimport InstagramIcons from './icons/instagram.svg';\nimport TrashIcons from './icons/trash.svg';\nimport SmallCloseIcon from './icons/smallClose.png';\nimport AddIcons from './icons/add.png';\nimport PinterestIcon from './icons/pinterest.png';\nimport RightArrowIcon from './icons/right-arrow.png';\nimport PlusIcons from './icons/plus.svg';\nimport whiteCross from './icons/white-cross.png';\nimport SadIcons from './icons/sad-icons.png';\nimport SaveIcon from './icons/save.png';\nimport CompanyDefaultUser from './icons/CompanyDefaultUser.svg';\nimport EmailIcon from './icons/email.png';\nimport PhoneIcon from './icons/phone.png';\nimport WhiteSortDown from './icons/WhiteSortDown.png';\nimport SortDownIcon from './icons/SortDown.png';\nimport InfoIcon from './icons/info.png';\nimport TelescopeIcon from './icons/telescope.svg';\nimport AlarmBellIcon from './icons/alarm-bell.png';\nimport ServiceAgreementIcon from './icons/Service-Agreement.png';\nimport CreateAddendum from './icons/Create-Addendum.png';\nimport StatementWork from './icons/sow.svg';\nimport AddNewIcons from './icons/add-contact.png';\nimport GreenCheck from './icons/right-check.svg';\nimport SaveRedCheck from './icons/save-check.svg';\nimport NotificationBell from './icons/bell.png';\nimport ActiveNotificationBell from './icons/orange-bell.png';\nimport NoContactIcon from './icons/noContact.png';\nimport PageNotFoundImg from './page-not-found.svg';\nimport LinkIcons from './icons/link-icon.png';\nimport CloseArrowIcons from './icons/collapse-close-icon.png';\nimport MasterCardIcons from './icons/master-card.svg';\nimport VisaCardIcons from './icons/visa-card.svg';\nimport DiscoverCardIcons from './icons/discover-card.svg';\nimport AmercianExpressCardIcons from './icons/american-express-card.svg';\nimport blackBg from './black-bg.png';\nimport WhiteLogo from './white-logo.svg';\nimport AmazonAccount from './amazon-account.svg';\nimport CompanyDetailsIcon from './company-details.svg';\nimport LockFinish from './lock-finish.svg';\nimport PdfDownload from './icons/pdf-download.png';\nimport VideoCall from './icons/video-call.png';\nimport InfoIcons from './icons/info-icon.svg';\nimport RightCircle from './icons/check-circle.svg';\nimport BilingDetails from './Billing Icon.svg';\nimport AccountSetupIcon from './Account Setup Complete Icon.svg';\nimport UserGroupIcon from './icons/user-group.png';\nimport UserGroupIconActive from './icons/user-groups-active.png';\nimport ReadBookIcon from './icons/book-read.png';\nimport ReadBookIconActive from './icons/book-read-active.png';\nimport LeftArrowIcon from './icons/left-arrow-icon.png';\nimport RightArrowIcons from './icons/right-arrow-icon.png';\nimport LightBulb from './icons/light-bulb.png';\nimport MenuIcon from './icons/menu-icon.svg';\nimport LogoMobileView from './logo-mobile-view.svg';\nimport RemoveIcon from './icons/cross-search-icon.png';\nimport SearchIcon from './icons/search-icons.svg';\nimport ProductivityTool from './icons/productivity-tool.svg';\nimport ArrowUp from './icons/arrow-up.png';\nimport BannerImg from './banner-img.png';\nimport EditOrangeIcon from './icons/edit-orange-icon.svg';\nimport FileContract from './icons/file-contract.png';\nimport Organization from './icons/organization.png';\n// import ExchangeIcon from './icons/exchange-icon.png';\nimport ClockIcon from './icons/clock-icon.svg';\nimport CopyLinkIcon from './icons/copy-link-orange-icon.png';\nimport ExternalLink from './icons/external-link-icon.svg';\nimport HeartMonitorIcon from './icons/heart-monitor-icon.png';\nimport ArrowUpIcon from './icons/arrow-up-green.png';\nimport ArrowDownIcon from './icons/arrow-down-red.png';\nimport RecurringIcon from './icons/recurring-contact.svg';\nimport ServiceIcon from './icons/service-contact.svg';\nimport LinkedinIcon from './icons/linkedin-icon.svg';\nimport InstagramIcon from './icons/instagram-icon.svg';\nimport TwitterIcon from './icons/twitter-icon.svg';\nimport SliderHIcon from './icons/slider-h-icon.png';\nimport ExpandArrowIcon from './icons/expand-arrow-icon.png';\nimport GreyBannerBg from './grey-bg.jpg';\nimport OrangeChecked from './icons/orange-solid-checked.svg';\nimport PlusIcon from './icons/plus-icon.svg';\nimport MinusIcon from './icons/minus-icon.png';\nimport NextLogo from './NextLogo.png';\nimport BackArrowIcon from './icons/back-arrow-back.png';\nimport DigitalSignature from './ThadSignature.png';\nimport Advertise from './icons/dsp-advertise.png';\nimport OrganizationIcon from './icons/organization-icon.png';\nimport OrganizationActiveIcon from './icons/organization-active-icon.png';\nimport ExpnadArrowBack from './icons/expand-arrow-back.png';\nimport CaretUp from './icons/caretUp.png';\nimport WhiteCaretUp from './icons/whiteCaretUp.png';\nimport ContractCancel from './contract-voided.svg';\nimport RedCross from './icons/red-cross.png';\nimport FileIcon from './icons/file-icon.png';\nimport CheckFileIcon from './icons/check-file.png';\nimport EditFileIcon from './icons/edit-file.png';\nimport SignatureIcon from './icons/signature.png';\nimport CountDayClock from './icons/count-days-clock.svg';\nimport SpeedometerActive from './icons/speedometer-icon.png';\nimport Speedometer from './icons/speedometer-icon-disactive.png';\nimport OrangeCheckMark from './icons/orange-checkmark.svg';\nimport WhiteCheckMark from './icons/white-check-icon.svg';\nimport SquareFbIcon from './icons/square-fb-icon.svg';\nimport GrayClockIcon from './icons/gray-clock-icon.svg';\n// import BillingIcon from './icons/billing-icon.png';\nimport ArrowRightIcon from './icons/arrow-right-icon.png';\nimport ArrowRightBlackIcon from './icons/arrow-right-black-icon.png';\nimport DspOnlyIcon from './icons/dsp-only-icon.png';\nimport ThadProfileImg from './thad.png';\nimport CheckboxCheck from './icons/checkmark.svg';\nimport UpDowGrayArrow from './icons/up-dow-gray-arrow.png';\nimport BlackCheckMark from './icons/black-checkmark-icon.svg';\nimport TimesCircle from './icons/times-circle.svg';\nimport DownloadPdf from './icons/download-icon.svg';\nimport SecurityLock from './icons/security-lock-icon.png';\nimport CalendarFontBackArrow from './icons/calendar-back-arrow.png';\nimport GrayCheckIcon from './icons/gray-check.svg';\nimport GrayInfoIcon from './icons/gray-info-icon.svg';\nimport WhiteArrowRight from './icons/white-arrow-right.png';\nimport OrangeDownloadPdf from './icons/orange-download-pdf.png';\nimport RedTrashIcon from './icons/red-trash-icon.svg';\nimport FileCloud from './icon_upload.svg';\nimport ChatBoxIcon from './icons/chat-box.svg';\nimport CatalogBox from './icons/catalog-box.png';\nimport AnnotationGoal from './icons/annotation-goal.png';\nimport ForwardOrangeIcon from './icons/forward-orange-icon.png';\nimport PinIcon from './icons/circle-pin.png';\nimport OrangeChat from './icons/orange-chat-icon.png';\nimport PinIcons from './icons/pin-icon.png';\nimport NextActivityLogo from './next-activity-logo.svg';\nimport RequestPlan from './icons/request-plane.png';\nimport SortArrowDown from './icons/icons-sort-down.png';\nimport ProdFavicon from './faviconProd.ico';\nimport CircleBellIcon from './icons/circle-bell-icon.png';\nimport HelpIcon from './icons/help.png';\nimport ContractEmailIcon from './icons/contractEmail.png';\nimport HelpDeskIcon from './icons/helpdesk.png';\nimport ExternalLinkFile from './icons/external-link.svg';\nimport ExternalLinkFileOrange from './icons/external-link-orange.svg';\nimport CircleCross from './icons/circle-cross.svg';\nimport HandShake from './icons/hand-shake.png';\nimport PauseIcon from './icons/pause.svg';\nimport CloseCircleIcon from './icons/cancel.svg';\nimport CopyIcon from './icons/copy.svg';\nimport ViewExternalLink from './icons/view-external-link.svg';\nimport DeleteIcon from './icons/delete.svg';\nimport InvoiceIcon from './icons/icon_invoices.svg';\nimport PartnersIcon from './icons/icon_partners.svg';\nimport DisabledRecurring from './icons/disabled-recurring.svg';\nimport InfoRedIcon from './icons/info-red-icon.svg';\nimport Dollar from './icons/fees.svg';\nimport helpCircleIcon from './icons/helpCircleIcon.png';\nimport HomePageIcon from './icons/home-page.png';\nimport HomePageActiveIcon from './icons/home-page-active.png';\nimport GreyClockIcon from './icons/grey-clock-icon.svg';\nimport GraphIconInActive from './icons/graphiconInactive.png';\nimport GraphIconActive from './icons/graphiconActive.png';\nimport CurrencyIcon from './icons/fee-icon.svg';\nimport ArrowRotate from './icons/arrows-rotate-regular.svg';\nimport EditExternalLinkOrange from './icons/pen-to-square-regular.svg';\nimport TableColumns from './icons/table-columns.svg';\nimport Tachometer from './icons/tachometer-light.svg';\nimport BoxTap from './icons/box-alt-light.svg';\nimport OrangeInfoIcon from './icons/circle-info-light.svg';\nimport AuthorizedSC from './icons/authorizedSC.svg';\nimport UnauthorizedSC from './icons/unauthorizedSC.svg';\nimport AuthorizedVC from './icons/authorizedVC.svg';\nimport UnauthorizedVC from './icons/unauthorizedVC.svg';\nimport NextWhiteLogo from './Next White Logo.svg';\nimport SponsoredAdPerformance from './Sponsored Ad Performance.svg';\nimport DSPAdPerformance from './DSP Ad Performance.svg';\nimport InventoryManagement from './Inventory Management.svg';\nimport OverallSalesPerformance from './Sales Performance.svg';\nimport DanielWallsProfileImg from './danielWalls.png';\nimport BBEStandardLogo from './BBE_Standard_logo.png';\nimport BBEStandardWideLogo from './BBE_Standard_wide_logo.png';\nimport monaSerenoImg from './monaSerenoImg.png';\nimport BrokenFile from './BrokenFile.svg';\n\nexport {\n BannerBg,\n ArrowIcons,\n Logo,\n newLogo,\n DefaultUser,\n SortDown,\n SortUp,\n EditIcons,\n LogOutIcons,\n EditFileIcons,\n CloseIcon,\n EyeIcon,\n smallEyeIcon,\n CloseEyeIcon,\n AttachFile,\n DownloadIcons,\n CopyPasteIcons,\n InstagramIcons,\n TwitterIcons,\n FaceBookIcons,\n LinkeDinIcons,\n TrashIcons,\n SmallCloseIcon,\n AddIcons,\n PinterestIcon,\n RightArrowIcon,\n PlusIcons,\n whiteCross,\n SadIcons,\n SaveIcon,\n CompanyDefaultUser,\n EmailIcon,\n PhoneIcon,\n WhiteSortDown,\n SortDownIcon,\n InfoIcon,\n TelescopeIcon,\n AlarmBellIcon,\n ServiceAgreementIcon,\n CreateAddendum,\n StatementWork,\n AddNewIcons,\n GreenCheck,\n SaveRedCheck,\n NotificationBell,\n ActiveNotificationBell,\n NoContactIcon,\n PageNotFoundImg,\n LinkIcons,\n CloseArrowIcons,\n AmercianExpressCardIcons,\n DiscoverCardIcons,\n MasterCardIcons,\n VisaCardIcons,\n blackBg,\n WhiteLogo,\n AmazonAccount,\n CompanyDetailsIcon,\n LockFinish,\n PdfDownload,\n VideoCall,\n InfoIcons,\n RightCircle,\n BilingDetails,\n AccountSetupIcon,\n UserGroupIcon,\n UserGroupIconActive,\n ReadBookIcon,\n ReadBookIconActive,\n LeftArrowIcon,\n RightArrowIcons,\n LightBulb,\n MenuIcon,\n LogoMobileView,\n RemoveIcon,\n SearchIcon,\n ProductivityTool,\n ArrowUp,\n BannerImg,\n EditOrangeIcon,\n FileContract,\n Organization,\n // ExchangeIcon,\n ClockIcon,\n CopyLinkIcon,\n ExternalLink,\n HeartMonitorIcon,\n ArrowUpIcon,\n ArrowDownIcon,\n RecurringIcon,\n ServiceIcon,\n LinkedinIcon,\n InstagramIcon,\n TwitterIcon,\n SliderHIcon,\n ExpandArrowIcon,\n GreyBannerBg,\n OrangeChecked,\n PlusIcon,\n MinusIcon,\n NextLogo,\n BackArrowIcon,\n DigitalSignature,\n Advertise,\n OrganizationIcon,\n OrganizationActiveIcon,\n ExpnadArrowBack,\n CaretUp,\n WhiteCaretUp,\n ContractCancel,\n RedCross,\n FileIcon,\n CheckFileIcon,\n EditFileIcon,\n SignatureIcon,\n CountDayClock,\n SpeedometerActive,\n Speedometer,\n OrangeCheckMark,\n SquareFbIcon,\n GrayClockIcon,\n // BillingIcon,\n ArrowRightIcon,\n ArrowRightBlackIcon,\n WhiteCheckMark,\n DspOnlyIcon,\n ThadProfileImg,\n CheckboxCheck,\n UpDowGrayArrow,\n BlackCheckMark,\n TimesCircle,\n DownloadPdf,\n SecurityLock,\n CalendarFontBackArrow,\n GrayCheckIcon,\n GrayInfoIcon,\n WhiteArrowRight,\n OrangeDownloadPdf,\n RedTrashIcon,\n FileCloud,\n ChatBoxIcon,\n CatalogBox,\n AnnotationGoal,\n ForwardOrangeIcon,\n PinIcon,\n OrangeChat,\n PinIcons,\n RequestPlan,\n NextActivityLogo,\n SortArrowDown,\n ProdFavicon,\n CircleBellIcon,\n HelpIcon,\n ContractEmailIcon,\n HelpDeskIcon,\n ExternalLinkFile,\n ExternalLinkFileOrange,\n CircleCross,\n HandShake,\n PauseIcon,\n CloseCircleIcon,\n CopyIcon,\n ViewExternalLink,\n DeleteIcon,\n InvoiceIcon,\n PartnersIcon,\n DisabledRecurring,\n InfoRedIcon,\n helpCircleIcon,\n Dollar,\n HomePageIcon,\n HomePageActiveIcon,\n GreyClockIcon,\n GraphIconInActive,\n GraphIconActive,\n CurrencyIcon,\n ArrowRotate,\n EditExternalLinkOrange,\n TableColumns,\n Tachometer,\n BoxTap,\n OrangeInfoIcon,\n AuthorizedSC,\n UnauthorizedSC,\n AuthorizedVC,\n UnauthorizedVC,\n NextWhiteLogo,\n SponsoredAdPerformance,\n DSPAdPerformance,\n InventoryManagement,\n OverallSalesPerformance,\n DanielWallsProfileImg,\n BBEStandardLogo,\n BBEStandardWideLogo,\n monaSerenoImg,\n BrokenFile,\n};\n"],"sourceRoot":""}