{"version":3,"file":"js/982-1a8676d0765376c0c887.js","mappings":"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,6BACzB87E,EAAoB97E,KAAK,mBACzB87E,EAAoB97E,KAAK,iBACzB87E,EAAoB97E,KAAK,iBACzB87E,EAAoB97E,KAAK,mCACzB87E,EAAoB97E,KAAK,cACzB87E,EAAoB97E,KAAK,2BAnBzB67E,EAAU77E,KAAK,0BACf67E,EAAU77E,KAAK,2BACf67E,EAAU77E,KAAK,6BACf67E,EAAU77E,KAAK,mBACf67E,EAAU77E,KAAK,iBACf67E,EAAU77E,KAAK,iBACf67E,EAAU77E,KAAK,+BACf67E,EAAU77E,KAAK,mCACf67E,EAAU77E,KAAK,cACf67E,EAAU77E,KAAK,2BAaiB,cAAhCiQ,EAAem0B,eACZoa,GAAkBC,GAAkBE,GAAmBD,GAa1Do9B,EAAoB97E,KAAK,0BACzB87E,EAAoB97E,KAAK,2BACzB87E,EAAoB97E,KAAK,6BACzB87E,EAAoB97E,KAAK,mBACzB87E,EAAoB97E,KAAK,iBACzB87E,EAAoB97E,KAAK,iBACzB87E,EAAoB97E,KAAK,+BACzB87E,EAAoB97E,KAAK,mCACzB87E,EAAoB97E,KAAK,cACzB87E,EAAoB97E,KAAK,yBACzB87E,EAAoB97E,KAAK,eAtBzB67E,EAAU77E,KAAK,0BACf67E,EAAU77E,KAAK,2BACf67E,EAAU77E,KAAK,6BACf67E,EAAU77E,KAAK,aACf67E,EAAU77E,KAAK,mBACf67E,EAAU77E,KAAK,iBACf67E,EAAU77E,KAAK,iBACf67E,EAAU77E,KAAK,+BACf67E,EAAU77E,KAAK,mCACf67E,EAAU77E,KAAK,cACf67E,EAAU77E,KAAK,2BAedk3B,GAaH4kD,EAAoB97E,KAAK,0BACzB87E,EAAoB97E,KAAK,2BACzB87E,EAAoB97E,KAAK,kBACzB87E,EAAoB97E,KAAK,iBACzB87E,EAAoB97E,KAAK,iBACzB87E,EAAoB97E,KAAK,kCACzB87E,EAAoB97E,KAAK,iBACzB87E,EAAoB97E,KAAK,aACzB87E,EAAoB97E,KAAK,+BACzB87E,EAAoB97E,KAAK,gBArBzB67E,EAAU77E,KAAK,0BACf67E,EA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","sources":["webpack://dp-zoom//var/www/apps/datapulse/app/javascript/components|sync|/^\\.\\/.*$/","webpack://dp-zoom/./app/javascript/components/CampaignGroupList.jsx","webpack://dp-zoom/./app/javascript/components/List.jsx","webpack://dp-zoom/./app/javascript/components/ListItem.jsx","webpack://dp-zoom/./app/javascript/components/MetricTable.jsx","webpack://dp-zoom/./app/javascript/components/MetricTableOld.jsx","webpack://dp-zoom/./app/javascript/components/MetricTablePdf.jsx","webpack://dp-zoom/./app/javascript/components/MetricTableRow.jsx","webpack://dp-zoom/./app/javascript/components/MetricTableRowOld.jsx","webpack://dp-zoom/./app/javascript/components/MetricTableRowPdf.jsx","webpack://dp-zoom/./app/javascript/components/TopFlyout.jsx","webpack://dp-zoom/./app/javascript/components/ZoomRedirectPopup.jsx","webpack://dp-zoom/./app/javascript/components/about/AboutDatapulse.jsx","webpack://dp-zoom/./app/javascript/components/activity/Activity.jsx","webpack://dp-zoom/./app/javascript/components/admin/Admin.jsx","webpack://dp-zoom/./app/javascript/components/admin/mailing_lists/MailingList.jsx","webpack://dp-zoom/./app/javascript/components/admin/mailing_lists/MailingLists.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/AlertSubscriptions.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/ManageSubsByClient.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/ManageSubsByUser.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/ManageSubsClientConfig.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/SubsByClient.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/SubsByUser.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/SubscribeUsersModal.jsx","webpack://dp-zoom/./app/javascript/components/alerts/AlertSnoozeModal.jsx","webpack://dp-zoom/./app/javascript/components/alerts/Alerts.jsx","webpack://dp-zoom/./app/javascript/components/alerts/account_alerts/AccountAlerts.jsx","webpack://dp-zoom/./app/javascript/components/alerts/account_alerts/Alert.jsx","webpack://dp-zoom/./app/javascript/components/alerts/account_alerts/AlertList.jsx","webpack://dp-zoom/./app/javascript/components/alerts/alert_summary/Alert.jsx","webpack://dp-zoom/./app/javascript/components/alerts/alert_summary/AlertContainer.jsx","webpack://dp-zoom/./app/javascript/components/alerts/alert_summary/AlertList.jsx","webpack://dp-zoom/./app/javascript/components/alerts/alert_summary/AlertSummary.jsx","webpack://dp-zoom/./app/javascript/components/api_access/ApiAccess.jsx","webpack://dp-zoom/./app/javascript/components/api_access/PlatformSpecific.jsx","webpack://dp-zoom/./app/javascript/components/api_access/SaveChanges.jsx","webpack://dp-zoom/./app/javascript/components/campaign_builder/CampaignBuilder.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartBar.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartGoal.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartLine.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartLocation.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartPie.jsx","webpack://dp-zoom/./app/javascript/components/charts/ResizeableStage.jsx","webpack://dp-zoom/./app/javascript/components/charts/ResizeableStageLine.jsx","webpack://dp-zoom/./app/javascript/components/client_config/AlertsGroup.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ConfigTabs.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ConfigureGoalsModal.jsx","webpack://dp-zoom/./app/javascript/components/client_config/CurrencySelector.jsx","webpack://dp-zoom/./app/javascript/components/client_config/DashboardBuilder.jsx","webpack://dp-zoom/./app/javascript/components/client_config/DashboardBuilderSection.jsx","webpack://dp-zoom/./app/javascript/components/client_config/GoalsTable.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ManualDataPull.jsx","webpack://dp-zoom/./app/javascript/components/client_config/SaveChanges.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/AccountConfig.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/basic_info_cu/Basic.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/basic_info_cu/ClientUsers.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/basic_info_cu/CreateNewUser.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/basic_info_cu/InvoiceRecipients.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/PointsOfContact.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/Services.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/ppc/PpcAgreement.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/ppc/PpcServices.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/ppc/PpcSupportingRoles.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/seo/SEO.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/seo/SideBox.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/team_access/Team.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/team_access/TeamBox.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/website_permissions/Details.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/website_permissions/Permissions.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/website_permissions/Website.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/AccountIdBox.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/CampaignGroup.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/CampaignGroups.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/ConfigureCampaignGroup.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/ConversionActionIds.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/EditCampaignGroup.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/Inflation.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/PPCConfig.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/ScriptBoxes.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/all/All.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/all/dashboard/Dashboard.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/all/goals/Goals.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/all/ids_data/IdsData.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/display/Display.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/display/alerts/Alerts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/display/dashboard/Dashboard.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/display/goals/Goals.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/display/ids_data/IdsData.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/display/scripts/Scripts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/search/Search.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/search/alerts/Alerts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/search/dashboard/Dashboard.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/search/goals/Goals.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/search/ids_data/IdsData.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/search/scripts/Scripts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/social/Social.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/social/alerts/Alerts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/social/dashboard/Dashboard.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/social/goals/Goals.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/social/ids_data/CustomConversions.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/social/ids_data/IdsData.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/video/Video.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/video/alerts/Alerts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/video/dashboard/Dashboard.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/video/goals/Goals.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/video/ids_data/IdsData.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ppc_config/video/scripts/Scripts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/SEOConfig.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/alerts/Alerts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/dashboard/Dashboard.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/goals/Goals.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/ids/GoogleAnalyticsGoals.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/ids/GoogleAnalyticsIds.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/ids/IDs.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/ids/RootDomains.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/ids/SemrushIds.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/keyword_groups/KeywordBox.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/keyword_groups/KeywordGroups.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/landing_pages/LandingPage.jsx","webpack://dp-zoom/./app/javascript/components/client_config/seo_config/landing_pages/LandingPages.jsx","webpack://dp-zoom/./app/javascript/components/client_management/ClientAccountStatus.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/BlueIndentedSection.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/DashboardSubheader.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/GetFormatter.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/GreenIndentedSection.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/KPIMetricBlock.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/KeywordBlock.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/KeywordImprovedDeclinedBlock.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/KeywordTable.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/MetricFormatter.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/NoData.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCDashboardDisplay.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCDashboardOverall.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCDashboardSearch.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCDashboardSocial.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCDashboardVideo.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCSummary.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCSummaryDisplay.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCSummaryOverall.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCSummarySearch.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCSummarySocial.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PPCSummaryVideo.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PdfKPIMetricBlock.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PdfKeywordRow.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/PdfKeywordTable.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/SEODashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/SEOSummary.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/ServiceDisabled.jsx","webpack://dp-zoom/./app/javascript/components/data/allMetrics.js","webpack://dp-zoom/./app/javascript/components/onboarding/AccountConfigurationIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/AlertsGroup.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/BackButton.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/BrandLogo.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/AllCampaignGroups.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/Display.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/Search.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/Social.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/Video.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CompanyLegalInformation.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CompanyName.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CompanyType.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Complete.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/DatapulseAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/AllPPCGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/DisplayGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/Goals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/SEOGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/SearchGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/SocialGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/VideoGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/GoogleAnalyticsGoalTracking.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Display.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Inflation.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/InflationForm.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Search.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Social.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Video.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Intro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/InvoiceRecipients.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/KeywordGroups.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/LandingPages.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/ManualDataPull.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/NextButton.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/NotComplete.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Onboarding.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCConfigurationIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/All.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/Display.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/PPCDashboardCustomization.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/PPCDashboardCustomizationAll.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/Search.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/Social.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/Video.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCServiceAgreements.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Permissions.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PersonBox.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PpcAlerts.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PpcDataPull.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/ProgressBar.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SEMRushSetup.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SEOConfigurationIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SEODashboardCustomization.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SEOServiceAgreements.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Scripts.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/ScrollToTop.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SeoAlerts.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SeoDataPull.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/ServiceAgreementsIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Services.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SkipButton.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SocialConversions/CustomConversions.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SocialConversions/SocialConversions.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/DataFeedWatchInstall.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/FacebookAdsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleAdsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleAnalyticsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleMerchantAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleMyBusinessAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleSearchConsoleAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/MicrosoftAdsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/ShopifyAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/ShopifyAuthenticate.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/TeamAccessIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/TiktokAdsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/YoutubeAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/test.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TrackSpecificActionIds.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Website.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/getNextPage.js","webpack://dp-zoom/./app/javascript/components/organization_management/DeleteOrgModal.jsx","webpack://dp-zoom/./app/javascript/components/organization_management/OrgStatus.jsx","webpack://dp-zoom/./app/javascript/components/organizations/Customizations.jsx","webpack://dp-zoom/./app/javascript/components/organizations/OrgInfo.jsx","webpack://dp-zoom/./app/javascript/components/organizations/OrgPicker.jsx","webpack://dp-zoom/./app/javascript/components/organizations/OrgPickerModal.jsx","webpack://dp-zoom/./app/javascript/components/organizations/Organizations.jsx","webpack://dp-zoom/./app/javascript/components/organizations/SaveChanges.jsx","webpack://dp-zoom/./app/javascript/components/organizations/Users.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyPpcReport.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyPpcSection.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyReportIntro.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyReportOutro.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyReportPdf.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlySeoReport.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlySeoSection.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PDFPage.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfDisplay.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfOverall.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSearch.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSocial.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummaryDisplay.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummaryOverall.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummarySearch.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummarySocial.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummaryVideo.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfVideo.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/SEOPdf.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/SEOPdfSummary.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/PpcPacing.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/SaveChanges.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/Display.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/OverallPPC.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/Search.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/Social.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/Video.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/views/DailyView.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/views/SummaryView.jsx","webpack://dp-zoom/./app/javascript/components/shopify/App.jsx","webpack://dp-zoom/./app/javascript/components/shopify/Dashboard.jsx","webpack://dp-zoom/./app/javascript/components/shopify/Team.jsx","webpack://dp-zoom/./app/javascript/components/user_access/UserAccess.jsx","webpack://dp-zoom/./app/javascript/components/user_access/UserAccessTable.jsx","webpack://dp-zoom/./app/javascript/components/user_access/UserAccessTableButtons.jsx","webpack://dp-zoom/./app/javascript/components/user_access/UserNewForm.jsx","webpack://dp-zoom/./app/javascript/components/utils/ConditionalWrapper.jsx","webpack://dp-zoom/./app/javascript/components/utils/Counter.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomAvatar.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomDropdown.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomFormCheck.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomSwitch.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomTooltip.jsx","webpack://dp-zoom/./app/javascript/components/utils/DataPullSavePopUp.jsx","webpack://dp-zoom/./app/javascript/components/utils/DayPicker.jsx","webpack://dp-zoom/./app/javascript/components/utils/DefaultAvatar.jsx","webpack://dp-zoom/./app/javascript/components/utils/LeftIndent.jsx","webpack://dp-zoom/./app/javascript/components/utils/Metric.jsx","webpack://dp-zoom/./app/javascript/components/utils/MonthPicker.jsx","webpack://dp-zoom/./app/javascript/components/utils/NumberDropdown.jsx","webpack://dp-zoom/./app/javascript/components/utils/ProfileDropdown.jsx","webpack://dp-zoom/./app/javascript/components/utils/RandomQuoteGenerator.jsx","webpack://dp-zoom/./app/javascript/components/utils/StateOptions.jsx","webpack://dp-zoom/./app/javascript/components/utils/UserDepartment.jsx","webpack://dp-zoom/./app/javascript/components/utils/UserRole.jsx","webpack://dp-zoom/./app/javascript/components/utils/UserSelector.jsx","webpack://dp-zoom/./app/javascript/components/utils/currencyConverter.js","webpack://dp-zoom/./app/javascript/components/utils/dashboardTableOrder.js","webpack://dp-zoom/./app/javascript/components/utils/dismissDataPullErrors.js","webpack://dp-zoom/./app/javascript/components/utils/getCurrencyDetails.js","webpack://dp-zoom/./app/javascript/components/utils/getGoalLocked.js","webpack://dp-zoom/./app/javascript/components/utils/getNegative.js","webpack://dp-zoom/./app/javascript/components/utils/jsDig.js","webpack://dp-zoom/./app/javascript/components/utils/metricCanBeBuilt.js","webpack://dp-zoom/./app/javascript/components/utils/testCampaignGroupFilters.js","webpack://dp-zoom/./app/javascript/components/utils/updateParams.js","webpack://dp-zoom/./app/javascript/components/write_mail/RichTextEditor.jsx","webpack://dp-zoom/./app/javascript/components/write_mail/WriteMail.jsx","webpack://dp-zoom/./app/javascript/components/write_mail/components.js"],"sourcesContent":["var map = {\n\t\"./CampaignGroupList\": 19065,\n\t\"./CampaignGroupList.jsx\": 19065,\n\t\"./List\": 18238,\n\t\"./List.jsx\": 18238,\n\t\"./ListItem\": 4121,\n\t\"./ListItem.jsx\": 4121,\n\t\"./MetricTable\": 37266,\n\t\"./MetricTable.jsx\": 37266,\n\t\"./MetricTableOld\": 41675,\n\t\"./MetricTableOld.jsx\": 41675,\n\t\"./MetricTablePdf\": 5156,\n\t\"./MetricTablePdf.jsx\": 5156,\n\t\"./MetricTableRow\": 51020,\n\t\"./MetricTableRow.jsx\": 51020,\n\t\"./MetricTableRowOld\": 83540,\n\t\"./MetricTableRowOld.jsx\": 83540,\n\t\"./MetricTableRowPdf\": 43351,\n\t\"./MetricTableRowPdf.jsx\": 43351,\n\t\"./TopFlyout\": 33784,\n\t\"./TopFlyout.jsx\": 33784,\n\t\"./ZoomRedirectPopup\": 69635,\n\t\"./ZoomRedirectPopup.jsx\": 69635,\n\t\"./about/AboutDatapulse\": 18773,\n\t\"./about/AboutDatapulse.jsx\": 18773,\n\t\"./activity/Activity\": 16030,\n\t\"./activity/Activity.jsx\": 16030,\n\t\"./admin/Admin\": 33193,\n\t\"./admin/Admin.jsx\": 33193,\n\t\"./admin/mailing_lists/MailingList\": 47016,\n\t\"./admin/mailing_lists/MailingList.jsx\": 47016,\n\t\"./admin/mailing_lists/MailingLists\": 42821,\n\t\"./admin/mailing_lists/MailingLists.jsx\": 42821,\n\t\"./alert_subscriptions/AlertSubscriptions\": 75301,\n\t\"./alert_subscriptions/AlertSubscriptions.jsx\": 75301,\n\t\"./alert_subscriptions/ManageSubsByClient\": 60513,\n\t\"./alert_subscriptions/ManageSubsByClient.jsx\": 60513,\n\t\"./alert_subscriptions/ManageSubsByUser\": 41322,\n\t\"./alert_subscriptions/ManageSubsByUser.jsx\": 41322,\n\t\"./alert_subscriptions/ManageSubsClientConfig\": 18713,\n\t\"./alert_subscriptions/ManageSubsClientConfig.jsx\": 18713,\n\t\"./alert_subscriptions/SubsByClient\": 88384,\n\t\"./alert_subscriptions/SubsByClient.jsx\": 88384,\n\t\"./alert_subscriptions/SubsByUser\": 16446,\n\t\"./alert_subscriptions/SubsByUser.jsx\": 16446,\n\t\"./alert_subscriptions/SubscribeUsersModal\": 78467,\n\t\"./alert_subscriptions/SubscribeUsersModal.jsx\": 78467,\n\t\"./alerts/AlertSnoozeModal\": 32107,\n\t\"./alerts/AlertSnoozeModal.jsx\": 32107,\n\t\"./alerts/Alerts\": 96101,\n\t\"./alerts/Alerts.jsx\": 96101,\n\t\"./alerts/account_alerts/AccountAlerts\": 60415,\n\t\"./alerts/account_alerts/AccountAlerts.jsx\": 60415,\n\t\"./alerts/account_alerts/Alert\": 6621,\n\t\"./alerts/account_alerts/Alert.jsx\": 6621,\n\t\"./alerts/account_alerts/AlertList\": 26947,\n\t\"./alerts/account_alerts/AlertList.jsx\": 26947,\n\t\"./alerts/alert_summary/Alert\": 15828,\n\t\"./alerts/alert_summary/Alert.jsx\": 15828,\n\t\"./alerts/alert_summary/AlertContainer\": 67173,\n\t\"./alerts/alert_summary/AlertContainer.jsx\": 67173,\n\t\"./alerts/alert_summary/AlertList\": 5173,\n\t\"./alerts/alert_summary/AlertList.jsx\": 5173,\n\t\"./alerts/alert_summary/AlertSummary\": 54943,\n\t\"./alerts/alert_summary/AlertSummary.jsx\": 54943,\n\t\"./api_access/ApiAccess\": 86818,\n\t\"./api_access/ApiAccess.jsx\": 86818,\n\t\"./api_access/PlatformSpecific\": 71324,\n\t\"./api_access/PlatformSpecific.jsx\": 71324,\n\t\"./api_access/SaveChanges\": 64426,\n\t\"./api_access/SaveChanges.jsx\": 64426,\n\t\"./campaign_builder/CampaignBuilder\": 92125,\n\t\"./campaign_builder/CampaignBuilder.jsx\": 92125,\n\t\"./charts/ChartBar\": 31537,\n\t\"./charts/ChartBar.jsx\": 31537,\n\t\"./charts/ChartGoal\": 31529,\n\t\"./charts/ChartGoal.jsx\": 31529,\n\t\"./charts/ChartLine\": 9447,\n\t\"./charts/ChartLine.jsx\": 9447,\n\t\"./charts/ChartLocation\": 41008,\n\t\"./charts/ChartLocation.jsx\": 41008,\n\t\"./charts/ChartPie\": 63835,\n\t\"./charts/ChartPie.jsx\": 63835,\n\t\"./charts/ResizeableStage\": 28269,\n\t\"./charts/ResizeableStage.jsx\": 28269,\n\t\"./charts/ResizeableStageLine\": 32010,\n\t\"./charts/ResizeableStageLine.jsx\": 32010,\n\t\"./client_config/AlertsGroup\": 81864,\n\t\"./client_config/AlertsGroup.jsx\": 81864,\n\t\"./client_config/ConfigTabs\": 82717,\n\t\"./client_config/ConfigTabs.jsx\": 82717,\n\t\"./client_config/ConfigureGoalsModal\": 18333,\n\t\"./client_config/ConfigureGoalsModal.jsx\": 18333,\n\t\"./client_config/CurrencySelector\": 41684,\n\t\"./client_config/CurrencySelector.jsx\": 41684,\n\t\"./client_config/DashboardBuilder\": 53313,\n\t\"./client_config/DashboardBuilder.jsx\": 53313,\n\t\"./client_config/DashboardBuilderSection\": 76322,\n\t\"./client_config/DashboardBuilderSection.jsx\": 76322,\n\t\"./client_config/GoalsTable\": 12730,\n\t\"./client_config/GoalsTable.jsx\": 12730,\n\t\"./client_config/ManualDataPull\": 3646,\n\t\"./client_config/ManualDataPull.jsx\": 3646,\n\t\"./client_config/SaveChanges\": 60569,\n\t\"./client_config/SaveChanges.jsx\": 60569,\n\t\"./client_config/account_config/AccountConfig\": 2161,\n\t\"./client_config/account_config/AccountConfig.jsx\": 2161,\n\t\"./client_config/account_config/basic_info_cu/Basic\": 30478,\n\t\"./client_config/account_config/basic_info_cu/Basic.jsx\": 30478,\n\t\"./client_config/account_config/basic_info_cu/ClientUsers\": 9754,\n\t\"./client_config/account_config/basic_info_cu/ClientUsers.jsx\": 9754,\n\t\"./client_config/account_config/basic_info_cu/CreateNewUser\": 88626,\n\t\"./client_config/account_config/basic_info_cu/CreateNewUser.jsx\": 88626,\n\t\"./client_config/account_config/basic_info_cu/InvoiceRecipients\": 37678,\n\t\"./client_config/account_config/basic_info_cu/InvoiceRecipients.jsx\": 37678,\n\t\"./client_config/account_config/services_agreement/PointsOfContact\": 89085,\n\t\"./client_config/account_config/services_agreement/PointsOfContact.jsx\": 89085,\n\t\"./client_config/account_config/services_agreement/Services\": 4029,\n\t\"./client_config/account_config/services_agreement/Services.jsx\": 4029,\n\t\"./client_config/account_config/services_agreement/ppc/PpcAgreement\": 69291,\n\t\"./client_config/account_config/services_agreement/ppc/PpcAgreement.jsx\": 69291,\n\t\"./client_config/account_config/services_agreement/ppc/PpcServices\": 48659,\n\t\"./client_config/account_config/services_agreement/ppc/PpcServices.jsx\": 48659,\n\t\"./client_config/account_config/services_agreement/ppc/PpcSupportingRoles\": 70342,\n\t\"./client_config/account_config/services_agreement/ppc/PpcSupportingRoles.jsx\": 70342,\n\t\"./client_config/account_config/services_agreement/seo/SEO\": 14649,\n\t\"./client_config/account_config/services_agreement/seo/SEO.jsx\": 14649,\n\t\"./client_config/account_config/services_agreement/seo/SideBox\": 45944,\n\t\"./client_config/account_config/services_agreement/seo/SideBox.jsx\": 45944,\n\t\"./client_config/account_config/team_access/Team\": 55053,\n\t\"./client_config/account_config/team_access/Team.jsx\": 55053,\n\t\"./client_config/account_config/team_access/TeamBox\": 66358,\n\t\"./client_config/account_config/team_access/TeamBox.jsx\": 66358,\n\t\"./client_config/account_config/website_permissions/Details\": 54891,\n\t\"./client_config/account_config/website_permissions/Details.jsx\": 54891,\n\t\"./client_config/account_config/website_permissions/Permissions\": 99525,\n\t\"./client_config/account_config/website_permissions/Permissions.jsx\": 99525,\n\t\"./client_config/account_config/website_permissions/Website\": 43935,\n\t\"./client_config/account_config/website_permissions/Website.jsx\": 43935,\n\t\"./client_config/ppc_config/AccountIdBox\": 64230,\n\t\"./client_config/ppc_config/AccountIdBox.jsx\": 64230,\n\t\"./client_config/ppc_config/CampaignGroup\": 87418,\n\t\"./client_config/ppc_config/CampaignGroup.jsx\": 87418,\n\t\"./client_config/ppc_config/CampaignGroups\": 89782,\n\t\"./client_config/ppc_config/CampaignGroups.jsx\": 89782,\n\t\"./client_config/ppc_config/ConfigureCampaignGroup\": 280,\n\t\"./client_config/ppc_config/ConfigureCampaignGroup.jsx\": 280,\n\t\"./client_config/ppc_config/ConversionActionIds\": 8513,\n\t\"./client_config/ppc_config/ConversionActionIds.jsx\": 8513,\n\t\"./client_config/ppc_config/EditCampaignGroup\": 93437,\n\t\"./client_config/ppc_config/EditCampaignGroup.jsx\": 93437,\n\t\"./client_config/ppc_config/Inflation\": 11403,\n\t\"./client_config/ppc_config/Inflation.jsx\": 11403,\n\t\"./client_config/ppc_config/PPCConfig\": 19700,\n\t\"./client_config/ppc_config/PPCConfig.jsx\": 19700,\n\t\"./client_config/ppc_config/ScriptBoxes\": 50709,\n\t\"./client_config/ppc_config/ScriptBoxes.jsx\": 50709,\n\t\"./client_config/ppc_config/all/All\": 16044,\n\t\"./client_config/ppc_config/all/All.jsx\": 16044,\n\t\"./client_config/ppc_config/all/dashboard/Dashboard\": 79362,\n\t\"./client_config/ppc_config/all/dashboard/Dashboard.jsx\": 79362,\n\t\"./client_config/ppc_config/all/goals/Goals\": 93249,\n\t\"./client_config/ppc_config/all/goals/Goals.jsx\": 93249,\n\t\"./client_config/ppc_config/all/ids_data/IdsData\": 358,\n\t\"./client_config/ppc_config/all/ids_data/IdsData.jsx\": 358,\n\t\"./client_config/ppc_config/display/Display\": 94110,\n\t\"./client_config/ppc_config/display/Display.jsx\": 94110,\n\t\"./client_config/ppc_config/display/alerts/Alerts\": 95567,\n\t\"./client_config/ppc_config/display/alerts/Alerts.jsx\": 95567,\n\t\"./client_config/ppc_config/display/dashboard/Dashboard\": 6398,\n\t\"./client_config/ppc_config/display/dashboard/Dashboard.jsx\": 6398,\n\t\"./client_config/ppc_config/display/goals/Goals\": 57894,\n\t\"./client_config/ppc_config/display/goals/Goals.jsx\": 57894,\n\t\"./client_config/ppc_config/display/ids_data/IdsData\": 90106,\n\t\"./client_config/ppc_config/display/ids_data/IdsData.jsx\": 90106,\n\t\"./client_config/ppc_config/display/scripts/Scripts\": 80571,\n\t\"./client_config/ppc_config/display/scripts/Scripts.jsx\": 80571,\n\t\"./client_config/ppc_config/search/Search\": 47129,\n\t\"./client_config/ppc_config/search/Search.jsx\": 47129,\n\t\"./client_config/ppc_config/search/alerts/Alerts\": 61692,\n\t\"./client_config/ppc_config/search/alerts/Alerts.jsx\": 61692,\n\t\"./client_config/ppc_config/search/dashboard/Dashboard\": 67262,\n\t\"./client_config/ppc_config/search/dashboard/Dashboard.jsx\": 67262,\n\t\"./client_config/ppc_config/search/goals/Goals\": 90934,\n\t\"./client_config/ppc_config/search/goals/Goals.jsx\": 90934,\n\t\"./client_config/ppc_config/search/ids_data/IdsData\": 65552,\n\t\"./client_config/ppc_config/search/ids_data/IdsData.jsx\": 65552,\n\t\"./client_config/ppc_config/search/scripts/Scripts\": 48362,\n\t\"./client_config/ppc_config/search/scripts/Scripts.jsx\": 48362,\n\t\"./client_config/ppc_config/social/Social\": 16285,\n\t\"./client_config/ppc_config/social/Social.jsx\": 16285,\n\t\"./client_config/ppc_config/social/alerts/Alerts\": 31708,\n\t\"./client_config/ppc_config/social/alerts/Alerts.jsx\": 31708,\n\t\"./client_config/ppc_config/social/dashboard/Dashboard\": 38192,\n\t\"./client_config/ppc_config/social/dashboard/Dashboard.jsx\": 38192,\n\t\"./client_config/ppc_config/social/goals/Goals\": 48637,\n\t\"./client_config/ppc_config/social/goals/Goals.jsx\": 48637,\n\t\"./client_config/ppc_config/social/ids_data/CustomConversions\": 24006,\n\t\"./client_config/ppc_config/social/ids_data/CustomConversions.jsx\": 24006,\n\t\"./client_config/ppc_config/social/ids_data/IdsData\": 69715,\n\t\"./client_config/ppc_config/social/ids_data/IdsData.jsx\": 69715,\n\t\"./client_config/ppc_config/video/Video\": 75617,\n\t\"./client_config/ppc_config/video/Video.jsx\": 75617,\n\t\"./client_config/ppc_config/video/alerts/Alerts\": 49987,\n\t\"./client_config/ppc_config/video/alerts/Alerts.jsx\": 49987,\n\t\"./client_config/ppc_config/video/dashboard/Dashboard\": 38223,\n\t\"./client_config/ppc_config/video/dashboard/Dashboard.jsx\": 38223,\n\t\"./client_config/ppc_config/video/goals/Goals\": 86379,\n\t\"./client_config/ppc_config/video/goals/Goals.jsx\": 86379,\n\t\"./client_config/ppc_config/video/ids_data/IdsData\": 64083,\n\t\"./client_config/ppc_config/video/ids_data/IdsData.jsx\": 64083,\n\t\"./client_config/ppc_config/video/scripts/Scripts\": 37658,\n\t\"./client_config/ppc_config/video/scripts/Scripts.jsx\": 37658,\n\t\"./client_config/seo_config/SEOConfig\": 70059,\n\t\"./client_config/seo_config/SEOConfig.jsx\": 70059,\n\t\"./client_config/seo_config/alerts/Alerts\": 78502,\n\t\"./client_config/seo_config/alerts/Alerts.jsx\": 78502,\n\t\"./client_config/seo_config/dashboard/Dashboard\": 25765,\n\t\"./client_config/seo_config/dashboard/Dashboard.jsx\": 25765,\n\t\"./client_config/seo_config/goals/Goals\": 41187,\n\t\"./client_config/seo_config/goals/Goals.jsx\": 41187,\n\t\"./client_config/seo_config/ids/GoogleAnalyticsGoals\": 98242,\n\t\"./client_config/seo_config/ids/GoogleAnalyticsGoals.jsx\": 98242,\n\t\"./client_config/seo_config/ids/GoogleAnalyticsIds\": 35564,\n\t\"./client_config/seo_config/ids/GoogleAnalyticsIds.jsx\": 35564,\n\t\"./client_config/seo_config/ids/IDs\": 50581,\n\t\"./client_config/seo_config/ids/IDs.jsx\": 50581,\n\t\"./client_config/seo_config/ids/RootDomains\": 34731,\n\t\"./client_config/seo_config/ids/RootDomains.jsx\": 34731,\n\t\"./client_config/seo_config/ids/SemrushIds\": 93696,\n\t\"./client_config/seo_config/ids/SemrushIds.jsx\": 93696,\n\t\"./client_config/seo_config/keyword_groups/KeywordBox\": 97599,\n\t\"./client_config/seo_config/keyword_groups/KeywordBox.jsx\": 97599,\n\t\"./client_config/seo_config/keyword_groups/KeywordGroups\": 16843,\n\t\"./client_config/seo_config/keyword_groups/KeywordGroups.jsx\": 16843,\n\t\"./client_config/seo_config/landing_pages/LandingPage\": 98303,\n\t\"./client_config/seo_config/landing_pages/LandingPage.jsx\": 98303,\n\t\"./client_config/seo_config/landing_pages/LandingPages\": 92450,\n\t\"./client_config/seo_config/landing_pages/LandingPages.jsx\": 92450,\n\t\"./client_management/ClientAccountStatus\": 89565,\n\t\"./client_management/ClientAccountStatus.jsx\": 89565,\n\t\"./dashboards/BlueIndentedSection\": 93414,\n\t\"./dashboards/BlueIndentedSection.jsx\": 93414,\n\t\"./dashboards/DashboardSubheader\": 76931,\n\t\"./dashboards/DashboardSubheader.jsx\": 76931,\n\t\"./dashboards/GetFormatter\": 79920,\n\t\"./dashboards/GetFormatter.jsx\": 79920,\n\t\"./dashboards/GreenIndentedSection\": 59451,\n\t\"./dashboards/GreenIndentedSection.jsx\": 59451,\n\t\"./dashboards/KPIMetricBlock\": 17225,\n\t\"./dashboards/KPIMetricBlock.jsx\": 17225,\n\t\"./dashboards/KeywordBlock\": 70681,\n\t\"./dashboards/KeywordBlock.jsx\": 70681,\n\t\"./dashboards/KeywordImprovedDeclinedBlock\": 11919,\n\t\"./dashboards/KeywordImprovedDeclinedBlock.jsx\": 11919,\n\t\"./dashboards/KeywordTable\": 1821,\n\t\"./dashboards/KeywordTable.jsx\": 1821,\n\t\"./dashboards/MetricFormatter\": 26612,\n\t\"./dashboards/MetricFormatter.jsx\": 26612,\n\t\"./dashboards/NoData\": 69788,\n\t\"./dashboards/NoData.jsx\": 69788,\n\t\"./dashboards/PPCDashboard\": 73160,\n\t\"./dashboards/PPCDashboard.jsx\": 73160,\n\t\"./dashboards/PPCDashboardDisplay\": 85009,\n\t\"./dashboards/PPCDashboardDisplay.jsx\": 85009,\n\t\"./dashboards/PPCDashboardOverall\": 4448,\n\t\"./dashboards/PPCDashboardOverall.jsx\": 4448,\n\t\"./dashboards/PPCDashboardSearch\": 97358,\n\t\"./dashboards/PPCDashboardSearch.jsx\": 97358,\n\t\"./dashboards/PPCDashboardSocial\": 51548,\n\t\"./dashboards/PPCDashboardSocial.jsx\": 51548,\n\t\"./dashboards/PPCDashboardVideo\": 39050,\n\t\"./dashboards/PPCDashboardVideo.jsx\": 39050,\n\t\"./dashboards/PPCSummary\": 28775,\n\t\"./dashboards/PPCSummary.jsx\": 28775,\n\t\"./dashboards/PPCSummaryDisplay\": 47827,\n\t\"./dashboards/PPCSummaryDisplay.jsx\": 47827,\n\t\"./dashboards/PPCSummaryOverall\": 47968,\n\t\"./dashboards/PPCSummaryOverall.jsx\": 47968,\n\t\"./dashboards/PPCSummarySearch\": 14734,\n\t\"./dashboards/PPCSummarySearch.jsx\": 14734,\n\t\"./dashboards/PPCSummarySocial\": 678,\n\t\"./dashboards/PPCSummarySocial.jsx\": 678,\n\t\"./dashboards/PPCSummaryVideo\": 45433,\n\t\"./dashboards/PPCSummaryVideo.jsx\": 45433,\n\t\"./dashboards/PdfKPIMetricBlock\": 24855,\n\t\"./dashboards/PdfKPIMetricBlock.jsx\": 24855,\n\t\"./dashboards/PdfKeywordRow\": 8945,\n\t\"./dashboards/PdfKeywordRow.jsx\": 8945,\n\t\"./dashboards/PdfKeywordTable\": 32682,\n\t\"./dashboards/PdfKeywordTable.jsx\": 32682,\n\t\"./dashboards/SEODashboard\": 43478,\n\t\"./dashboards/SEODashboard.jsx\": 43478,\n\t\"./dashboards/SEOSummary\": 38573,\n\t\"./dashboards/SEOSummary.jsx\": 38573,\n\t\"./dashboards/ServiceDisabled\": 53857,\n\t\"./dashboards/ServiceDisabled.jsx\": 53857,\n\t\"./data/allMetrics\": 44052,\n\t\"./data/allMetrics.js\": 44052,\n\t\"./data/currencyRates\": 20260,\n\t\"./data/currencyRates.json\": 20260,\n\t\"./data/metricData\": 33725,\n\t\"./data/metricData.json\": 33725,\n\t\"./data/sectionData\": 73577,\n\t\"./data/sectionData.json\": 73577,\n\t\"./onboarding/AccountConfigurationIntro\": 2898,\n\t\"./onboarding/AccountConfigurationIntro.jsx\": 2898,\n\t\"./onboarding/AlertsGroup\": 79927,\n\t\"./onboarding/AlertsGroup.jsx\": 79927,\n\t\"./onboarding/BackButton\": 46052,\n\t\"./onboarding/BackButton.jsx\": 46052,\n\t\"./onboarding/BrandLogo\": 71051,\n\t\"./onboarding/BrandLogo.jsx\": 71051,\n\t\"./onboarding/CampaignGroups/AllCampaignGroups\": 30453,\n\t\"./onboarding/CampaignGroups/AllCampaignGroups.jsx\": 30453,\n\t\"./onboarding/CampaignGroups/Display\": 96431,\n\t\"./onboarding/CampaignGroups/Display.jsx\": 96431,\n\t\"./onboarding/CampaignGroups/Search\": 87217,\n\t\"./onboarding/CampaignGroups/Search.jsx\": 87217,\n\t\"./onboarding/CampaignGroups/Social\": 84481,\n\t\"./onboarding/CampaignGroups/Social.jsx\": 84481,\n\t\"./onboarding/CampaignGroups/Video\": 58276,\n\t\"./onboarding/CampaignGroups/Video.jsx\": 58276,\n\t\"./onboarding/CompanyLegalInformation\": 2015,\n\t\"./onboarding/CompanyLegalInformation.jsx\": 2015,\n\t\"./onboarding/CompanyName\": 84899,\n\t\"./onboarding/CompanyName.jsx\": 84899,\n\t\"./onboarding/CompanyType\": 40493,\n\t\"./onboarding/CompanyType.jsx\": 40493,\n\t\"./onboarding/Complete\": 29255,\n\t\"./onboarding/Complete.jsx\": 29255,\n\t\"./onboarding/DatapulseAccess\": 85315,\n\t\"./onboarding/DatapulseAccess.jsx\": 85315,\n\t\"./onboarding/Goals/AllPPCGoals\": 66207,\n\t\"./onboarding/Goals/AllPPCGoals.jsx\": 66207,\n\t\"./onboarding/Goals/DisplayGoals\": 92166,\n\t\"./onboarding/Goals/DisplayGoals.jsx\": 92166,\n\t\"./onboarding/Goals/Goals\": 15988,\n\t\"./onboarding/Goals/Goals.jsx\": 15988,\n\t\"./onboarding/Goals/SEOGoals\": 41126,\n\t\"./onboarding/Goals/SEOGoals.jsx\": 41126,\n\t\"./onboarding/Goals/SearchGoals\": 60722,\n\t\"./onboarding/Goals/SearchGoals.jsx\": 60722,\n\t\"./onboarding/Goals/SocialGoals\": 60829,\n\t\"./onboarding/Goals/SocialGoals.jsx\": 60829,\n\t\"./onboarding/Goals/VideoGoals\": 8384,\n\t\"./onboarding/Goals/VideoGoals.jsx\": 8384,\n\t\"./onboarding/GoogleAnalyticsGoalTracking\": 526,\n\t\"./onboarding/GoogleAnalyticsGoalTracking.jsx\": 526,\n\t\"./onboarding/Inflation/Display\": 36199,\n\t\"./onboarding/Inflation/Display.jsx\": 36199,\n\t\"./onboarding/Inflation/Inflation\": 33424,\n\t\"./onboarding/Inflation/Inflation.jsx\": 33424,\n\t\"./onboarding/Inflation/InflationForm\": 17700,\n\t\"./onboarding/Inflation/InflationForm.jsx\": 17700,\n\t\"./onboarding/Inflation/Search\": 50792,\n\t\"./onboarding/Inflation/Search.jsx\": 50792,\n\t\"./onboarding/Inflation/Social\": 76710,\n\t\"./onboarding/Inflation/Social.jsx\": 76710,\n\t\"./onboarding/Inflation/Video\": 20983,\n\t\"./onboarding/Inflation/Video.jsx\": 20983,\n\t\"./onboarding/Intro\": 51348,\n\t\"./onboarding/Intro.jsx\": 51348,\n\t\"./onboarding/InvoiceRecipients\": 52252,\n\t\"./onboarding/InvoiceRecipients.jsx\": 52252,\n\t\"./onboarding/KeywordGroups\": 87992,\n\t\"./onboarding/KeywordGroups.jsx\": 87992,\n\t\"./onboarding/LandingPages\": 45406,\n\t\"./onboarding/LandingPages.jsx\": 45406,\n\t\"./onboarding/ManualDataPull\": 52402,\n\t\"./onboarding/ManualDataPull.jsx\": 52402,\n\t\"./onboarding/NextButton\": 11425,\n\t\"./onboarding/NextButton.jsx\": 11425,\n\t\"./onboarding/NotComplete\": 40684,\n\t\"./onboarding/NotComplete.jsx\": 40684,\n\t\"./onboarding/Onboarding\": 3992,\n\t\"./onboarding/Onboarding.jsx\": 3992,\n\t\"./onboarding/PPCConfigurationIntro\": 51298,\n\t\"./onboarding/PPCConfigurationIntro.jsx\": 51298,\n\t\"./onboarding/PPCDashboardCustomization/All\": 32143,\n\t\"./onboarding/PPCDashboardCustomization/All.jsx\": 32143,\n\t\"./onboarding/PPCDashboardCustomization/Display\": 45349,\n\t\"./onboarding/PPCDashboardCustomization/Display.jsx\": 45349,\n\t\"./onboarding/PPCDashboardCustomization/PPCDashboardCustomization\": 89859,\n\t\"./onboarding/PPCDashboardCustomization/PPCDashboardCustomization.jsx\": 89859,\n\t\"./onboarding/PPCDashboardCustomization/PPCDashboardCustomizationAll\": 42404,\n\t\"./onboarding/PPCDashboardCustomization/PPCDashboardCustomizationAll.jsx\": 42404,\n\t\"./onboarding/PPCDashboardCustomization/Search\": 5975,\n\t\"./onboarding/PPCDashboardCustomization/Search.jsx\": 5975,\n\t\"./onboarding/PPCDashboardCustomization/Social\": 44806,\n\t\"./onboarding/PPCDashboardCustomization/Social.jsx\": 44806,\n\t\"./onboarding/PPCDashboardCustomization/Video\": 18873,\n\t\"./onboarding/PPCDashboardCustomization/Video.jsx\": 18873,\n\t\"./onboarding/PPCServiceAgreements\": 97151,\n\t\"./onboarding/PPCServiceAgreements.jsx\": 97151,\n\t\"./onboarding/Permissions\": 42441,\n\t\"./onboarding/Permissions.jsx\": 42441,\n\t\"./onboarding/PersonBox\": 34956,\n\t\"./onboarding/PersonBox.jsx\": 34956,\n\t\"./onboarding/PpcAlerts\": 50306,\n\t\"./onboarding/PpcAlerts.jsx\": 50306,\n\t\"./onboarding/PpcDataPull\": 58924,\n\t\"./onboarding/PpcDataPull.jsx\": 58924,\n\t\"./onboarding/ProgressBar\": 13958,\n\t\"./onboarding/ProgressBar.jsx\": 13958,\n\t\"./onboarding/SEMRushSetup\": 3997,\n\t\"./onboarding/SEMRushSetup.jsx\": 3997,\n\t\"./onboarding/SEOConfigurationIntro\": 29971,\n\t\"./onboarding/SEOConfigurationIntro.jsx\": 29971,\n\t\"./onboarding/SEODashboardCustomization\": 3057,\n\t\"./onboarding/SEODashboardCustomization.jsx\": 3057,\n\t\"./onboarding/SEOServiceAgreements\": 60025,\n\t\"./onboarding/SEOServiceAgreements.jsx\": 60025,\n\t\"./onboarding/Scripts\": 94642,\n\t\"./onboarding/Scripts.jsx\": 94642,\n\t\"./onboarding/ScrollToTop\": 12868,\n\t\"./onboarding/ScrollToTop.jsx\": 12868,\n\t\"./onboarding/SeoAlerts\": 82963,\n\t\"./onboarding/SeoAlerts.jsx\": 82963,\n\t\"./onboarding/SeoDataPull\": 47220,\n\t\"./onboarding/SeoDataPull.jsx\": 47220,\n\t\"./onboarding/ServiceAgreementsIntro\": 13727,\n\t\"./onboarding/ServiceAgreementsIntro.jsx\": 13727,\n\t\"./onboarding/Services\": 5556,\n\t\"./onboarding/Services.jsx\": 5556,\n\t\"./onboarding/SkipButton\": 97201,\n\t\"./onboarding/SkipButton.jsx\": 97201,\n\t\"./onboarding/SocialConversions/CustomConversions\": 34216,\n\t\"./onboarding/SocialConversions/CustomConversions.jsx\": 34216,\n\t\"./onboarding/SocialConversions/SocialConversions\": 84892,\n\t\"./onboarding/SocialConversions/SocialConversions.jsx\": 84892,\n\t\"./onboarding/TeamAccess/DataFeedWatchInstall\": 77390,\n\t\"./onboarding/TeamAccess/DataFeedWatchInstall.jsx\": 77390,\n\t\"./onboarding/TeamAccess/FacebookAdsAccess\": 29974,\n\t\"./onboarding/TeamAccess/FacebookAdsAccess.jsx\": 29974,\n\t\"./onboarding/TeamAccess/GoogleAdsAccess\": 41975,\n\t\"./onboarding/TeamAccess/GoogleAdsAccess.jsx\": 41975,\n\t\"./onboarding/TeamAccess/GoogleAnalyticsAccess\": 94967,\n\t\"./onboarding/TeamAccess/GoogleAnalyticsAccess.jsx\": 94967,\n\t\"./onboarding/TeamAccess/GoogleMerchantAccess\": 21565,\n\t\"./onboarding/TeamAccess/GoogleMerchantAccess.jsx\": 21565,\n\t\"./onboarding/TeamAccess/GoogleMyBusinessAccess\": 5464,\n\t\"./onboarding/TeamAccess/GoogleMyBusinessAccess.jsx\": 5464,\n\t\"./onboarding/TeamAccess/GoogleSearchConsoleAccess\": 23791,\n\t\"./onboarding/TeamAccess/GoogleSearchConsoleAccess.jsx\": 23791,\n\t\"./onboarding/TeamAccess/MicrosoftAdsAccess\": 556,\n\t\"./onboarding/TeamAccess/MicrosoftAdsAccess.jsx\": 556,\n\t\"./onboarding/TeamAccess/ShopifyAccess\": 78068,\n\t\"./onboarding/TeamAccess/ShopifyAccess.jsx\": 78068,\n\t\"./onboarding/TeamAccess/ShopifyAuthenticate\": 68828,\n\t\"./onboarding/TeamAccess/ShopifyAuthenticate.jsx\": 68828,\n\t\"./onboarding/TeamAccess/TeamAccessIntro\": 20496,\n\t\"./onboarding/TeamAccess/TeamAccessIntro.jsx\": 20496,\n\t\"./onboarding/TeamAccess/TiktokAdsAccess\": 76203,\n\t\"./onboarding/TeamAccess/TiktokAdsAccess.jsx\": 76203,\n\t\"./onboarding/TeamAccess/YoutubeAccess\": 83098,\n\t\"./onboarding/TeamAccess/YoutubeAccess.jsx\": 83098,\n\t\"./onboarding/TeamAccess/test\": 65693,\n\t\"./onboarding/TeamAccess/test.jsx\": 65693,\n\t\"./onboarding/TrackSpecificActionIds\": 88362,\n\t\"./onboarding/TrackSpecificActionIds.jsx\": 88362,\n\t\"./onboarding/Website\": 26752,\n\t\"./onboarding/Website.jsx\": 26752,\n\t\"./onboarding/getNextPage\": 35828,\n\t\"./onboarding/getNextPage.js\": 35828,\n\t\"./organization_management/DeleteOrgModal\": 94862,\n\t\"./organization_management/DeleteOrgModal.jsx\": 94862,\n\t\"./organization_management/OrgStatus\": 21664,\n\t\"./organization_management/OrgStatus.jsx\": 21664,\n\t\"./organizations/Customizations\": 98160,\n\t\"./organizations/Customizations.jsx\": 98160,\n\t\"./organizations/OrgInfo\": 31385,\n\t\"./organizations/OrgInfo.jsx\": 31385,\n\t\"./organizations/OrgPicker\": 91055,\n\t\"./organizations/OrgPicker.jsx\": 91055,\n\t\"./organizations/OrgPickerModal\": 60001,\n\t\"./organizations/OrgPickerModal.jsx\": 60001,\n\t\"./organizations/Organizations\": 17420,\n\t\"./organizations/Organizations.jsx\": 17420,\n\t\"./organizations/SaveChanges\": 39752,\n\t\"./organizations/SaveChanges.jsx\": 39752,\n\t\"./organizations/Users\": 89148,\n\t\"./organizations/Users.jsx\": 89148,\n\t\"./pdfs/MonthlyPpcReport\": 90837,\n\t\"./pdfs/MonthlyPpcReport.jsx\": 90837,\n\t\"./pdfs/MonthlyPpcSection\": 68623,\n\t\"./pdfs/MonthlyPpcSection.jsx\": 68623,\n\t\"./pdfs/MonthlyReportIntro\": 45516,\n\t\"./pdfs/MonthlyReportIntro.jsx\": 45516,\n\t\"./pdfs/MonthlyReportOutro\": 87997,\n\t\"./pdfs/MonthlyReportOutro.jsx\": 87997,\n\t\"./pdfs/MonthlyReportPdf\": 12352,\n\t\"./pdfs/MonthlyReportPdf.jsx\": 12352,\n\t\"./pdfs/MonthlySeoReport\": 73467,\n\t\"./pdfs/MonthlySeoReport.jsx\": 73467,\n\t\"./pdfs/MonthlySeoSection\": 69443,\n\t\"./pdfs/MonthlySeoSection.jsx\": 69443,\n\t\"./pdfs/PDFPage\": 54130,\n\t\"./pdfs/PDFPage.jsx\": 54130,\n\t\"./pdfs/PPCPdfDisplay\": 50912,\n\t\"./pdfs/PPCPdfDisplay.jsx\": 50912,\n\t\"./pdfs/PPCPdfOverall\": 90872,\n\t\"./pdfs/PPCPdfOverall.jsx\": 90872,\n\t\"./pdfs/PPCPdfSearch\": 60033,\n\t\"./pdfs/PPCPdfSearch.jsx\": 60033,\n\t\"./pdfs/PPCPdfSocial\": 15970,\n\t\"./pdfs/PPCPdfSocial.jsx\": 15970,\n\t\"./pdfs/PPCPdfSummaryDisplay\": 98378,\n\t\"./pdfs/PPCPdfSummaryDisplay.jsx\": 98378,\n\t\"./pdfs/PPCPdfSummaryOverall\": 58342,\n\t\"./pdfs/PPCPdfSummaryOverall.jsx\": 58342,\n\t\"./pdfs/PPCPdfSummarySearch\": 75863,\n\t\"./pdfs/PPCPdfSummarySearch.jsx\": 75863,\n\t\"./pdfs/PPCPdfSummarySocial\": 8521,\n\t\"./pdfs/PPCPdfSummarySocial.jsx\": 8521,\n\t\"./pdfs/PPCPdfSummaryVideo\": 92830,\n\t\"./pdfs/PPCPdfSummaryVideo.jsx\": 92830,\n\t\"./pdfs/PPCPdfVideo\": 7232,\n\t\"./pdfs/PPCPdfVideo.jsx\": 7232,\n\t\"./pdfs/SEOPdf\": 81587,\n\t\"./pdfs/SEOPdf.jsx\": 81587,\n\t\"./pdfs/SEOPdfSummary\": 42639,\n\t\"./pdfs/SEOPdfSummary.jsx\": 42639,\n\t\"./ppc_pacing/PpcPacing\": 70545,\n\t\"./ppc_pacing/PpcPacing.jsx\": 70545,\n\t\"./ppc_pacing/SaveChanges\": 2906,\n\t\"./ppc_pacing/SaveChanges.jsx\": 2906,\n\t\"./ppc_pacing/services/Display\": 65757,\n\t\"./ppc_pacing/services/Display.jsx\": 65757,\n\t\"./ppc_pacing/services/OverallPPC\": 63502,\n\t\"./ppc_pacing/services/OverallPPC.jsx\": 63502,\n\t\"./ppc_pacing/services/Search\": 88873,\n\t\"./ppc_pacing/services/Search.jsx\": 88873,\n\t\"./ppc_pacing/services/Social\": 49548,\n\t\"./ppc_pacing/services/Social.jsx\": 49548,\n\t\"./ppc_pacing/services/Video\": 67010,\n\t\"./ppc_pacing/services/Video.jsx\": 67010,\n\t\"./ppc_pacing/views/DailyView\": 97366,\n\t\"./ppc_pacing/views/DailyView.jsx\": 97366,\n\t\"./ppc_pacing/views/SummaryView\": 9593,\n\t\"./ppc_pacing/views/SummaryView.jsx\": 9593,\n\t\"./shopify/App\": 79330,\n\t\"./shopify/App.jsx\": 79330,\n\t\"./shopify/Dashboard\": 88559,\n\t\"./shopify/Dashboard.jsx\": 88559,\n\t\"./shopify/Team\": 67523,\n\t\"./shopify/Team.jsx\": 67523,\n\t\"./user_access/UserAccess\": 14537,\n\t\"./user_access/UserAccess.jsx\": 14537,\n\t\"./user_access/UserAccessTable\": 42742,\n\t\"./user_access/UserAccessTable.jsx\": 42742,\n\t\"./user_access/UserAccessTableButtons\": 63131,\n\t\"./user_access/UserAccessTableButtons.jsx\": 63131,\n\t\"./user_access/UserNewForm\": 398,\n\t\"./user_access/UserNewForm.jsx\": 398,\n\t\"./utils/ConditionalWrapper\": 59110,\n\t\"./utils/ConditionalWrapper.jsx\": 59110,\n\t\"./utils/Counter\": 73779,\n\t\"./utils/Counter.jsx\": 73779,\n\t\"./utils/CustomAvatar\": 32422,\n\t\"./utils/CustomAvatar.jsx\": 32422,\n\t\"./utils/CustomDropdown\": 99396,\n\t\"./utils/CustomDropdown.jsx\": 99396,\n\t\"./utils/CustomFormCheck\": 79579,\n\t\"./utils/CustomFormCheck.jsx\": 79579,\n\t\"./utils/CustomSwitch\": 54354,\n\t\"./utils/CustomSwitch.jsx\": 54354,\n\t\"./utils/CustomTooltip\": 40806,\n\t\"./utils/CustomTooltip.jsx\": 40806,\n\t\"./utils/DataPullSavePopUp\": 6808,\n\t\"./utils/DataPullSavePopUp.jsx\": 6808,\n\t\"./utils/DayPicker\": 68518,\n\t\"./utils/DayPicker.jsx\": 68518,\n\t\"./utils/DefaultAvatar\": 2919,\n\t\"./utils/DefaultAvatar.jsx\": 2919,\n\t\"./utils/LeftIndent\": 77538,\n\t\"./utils/LeftIndent.jsx\": 77538,\n\t\"./utils/Metric\": 51116,\n\t\"./utils/Metric.jsx\": 51116,\n\t\"./utils/MonthPicker\": 9105,\n\t\"./utils/MonthPicker.jsx\": 9105,\n\t\"./utils/NumberDropdown\": 85077,\n\t\"./utils/NumberDropdown.jsx\": 85077,\n\t\"./utils/ProfileDropdown\": 73507,\n\t\"./utils/ProfileDropdown.jsx\": 73507,\n\t\"./utils/RandomQuoteGenerator\": 4681,\n\t\"./utils/RandomQuoteGenerator.jsx\": 4681,\n\t\"./utils/StateOptions\": 98347,\n\t\"./utils/StateOptions.jsx\": 98347,\n\t\"./utils/UserDepartment\": 67579,\n\t\"./utils/UserDepartment.jsx\": 67579,\n\t\"./utils/UserRole\": 79569,\n\t\"./utils/UserRole.jsx\": 79569,\n\t\"./utils/UserSelector\": 80895,\n\t\"./utils/UserSelector.jsx\": 80895,\n\t\"./utils/currencyConverter\": 93849,\n\t\"./utils/currencyConverter.js\": 93849,\n\t\"./utils/dashboardTableOrder\": 24558,\n\t\"./utils/dashboardTableOrder.js\": 24558,\n\t\"./utils/dismissDataPullErrors\": 16221,\n\t\"./utils/dismissDataPullErrors.js\": 16221,\n\t\"./utils/getCurrencyDetails\": 46769,\n\t\"./utils/getCurrencyDetails.js\": 46769,\n\t\"./utils/getGoalLocked\": 43227,\n\t\"./utils/getGoalLocked.js\": 43227,\n\t\"./utils/getNegative\": 32503,\n\t\"./utils/getNegative.js\": 32503,\n\t\"./utils/jsDig\": 9766,\n\t\"./utils/jsDig.js\": 9766,\n\t\"./utils/metricCanBeBuilt\": 86953,\n\t\"./utils/metricCanBeBuilt.js\": 86953,\n\t\"./utils/testCampaignGroupFilters\": 43279,\n\t\"./utils/testCampaignGroupFilters.js\": 43279,\n\t\"./utils/updateParams\": 15204,\n\t\"./utils/updateParams.js\": 15204,\n\t\"./write_mail/RichTextEditor\": 66273,\n\t\"./write_mail/RichTextEditor.jsx\": 66273,\n\t\"./write_mail/WriteMail\": 96706,\n\t\"./write_mail/WriteMail.jsx\": 96706,\n\t\"./write_mail/components\": 36366,\n\t\"./write_mail/components.js\": 36366\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","import React from \"react\";\nclass CampaignGroupList extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n items: this.props.items,\n };\n }\n // New Events\n handleNewBucket() {\n let items = [...this.state.items];\n items.push({ name: \"\", filter_string: \"\", filter_type: \"contains\", conditions: [] });\n this.setState({ items: items });\n }\n\n handleNewContainsCondition(oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.push({ filter_type: \"contains\", filter_string: \"\", filter_condition: \"or\" });\n this.setState({ items: items });\n }\n\n handleNewNotContainsCondition(oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.push({ filter_type: \"notContains\", filter_string: \"\", filter_condition: \"and\" });\n this.setState({ items: items });\n }\n\n // Change Events\n\n handleItemNameChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.name = event.target.value;\n this.setState({ items: items });\n }\n\n handleItemFilterTypeChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.filter_type = event.target.value;\n this.setState({ items: items });\n }\n\n handleItemInputChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.filter_string = event.target.value;\n this.setState({ items: items });\n }\n\n handleConditionInputChange(event, oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n let condition = item.conditions[conditionIndex];\n condition.filter_string = event.target.value;\n this.setState({ items: items });\n }\n\n handleConditionAndOrChange(event, oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n let condition = item.conditions[conditionIndex];\n condition.filter_condition = event.target.value;\n this.setState({ items: items });\n }\n\n // Remove Events\n\n removeItem(itemIndex) {\n let items = [...this.state.items];\n items.splice(itemIndex, 1);\n this.setState({ items: items });\n }\n\n removeCondition(oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.splice(conditionIndex, 1);\n this.setState({ items: items });\n }\n\n render() {\n const itemList = this.state.items.map((item, index) => {\n let containsList = item.conditions.map((condition, conditionIndex) => {\n if (condition.filter_type == \"contains\") {\n return (\n \n \n \n this.handleConditionAndOrChange(e, item, conditionIndex)}>\n \n \n \n \n \n \n \n \n \n this.handleConditionInputChange(e, item, conditionIndex)}\n />\n \n \n \n \n \n \n \n );\n }\n });\n\n let notContainsList = item.conditions.map((condition, conditionIndex) => {\n if (condition.filter_type == \"notContains\") {\n return (\n \n \n \n this.handleConditionAndOrChange(e, item, conditionIndex)}>\n \n \n \n \n \n \n \n \n \n this.handleConditionInputChange(e, item, conditionIndex)}\n />\n \n \n \n \n \n \n \n );\n }\n });\n\n return (\n \n
\n Name: \n this.handleItemNameChange(e, item)}\n />\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n this.handleItemFilterTypeChange(e, item)}\n style={{ width: \"auto\" }}>\n \n \n \n
\n this.handleItemInputChange(e, item)}\n />\n
\n
\n
\n \n \n \n \n \n {containsList}\n \n \n \n \n
Contains:
\n Add Condition \n this.handleNewContainsCondition(item)}>\n
\n
\n
\n \n \n \n \n \n {notContainsList}\n \n \n \n \n
Does Not Contain:
\n Add Condition \n this.handleNewNotContainsCondition(item)}>\n
\n
\n
\n
\n );\n });\n\n return (\n
\n {itemList}\n Add Bucket \n this.handleNewBucket()}>\n
\n );\n }\n}\nexport default CampaignGroupList;\n","import React from 'react';\nimport ListItem from 'ListItem'\n\nclass List extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n items: this.props.items,\n defaultPropertyValues: [],\n currentItemProperties: [],\n propertyNames: this.props.propertyNames\n };\n this.state.propertyNames.forEach((element, index) => {\n this.state.defaultPropertyValues[index] = \"\";\n });\n this.state.currentItemProperties = this.state.defaultPropertyValues;\n\n this.removeListItem = this.removeListItem.bind(this);\n this.updateListItem = this.updateListItem.bind(this);\n this.addListItem = this.addListItem.bind(this);\n this.handleNewItemChange = this.handleNewItemChange.bind(this);\n }\n\n removeListItem(id) {\n $.ajax({\n type: \"DELETE\",\n url: this.props.url + id,\n async: false,\n success: (response) => {\n let items = [...this.state.items];\n items.splice(items.findIndex((e) => { return e.id == id }), 1);\n this.setState({ items: items })\n }\n })\n }\n\n addListItem(properties) {\n let additionalFields = {};\n switch(this.props.listType) {\n case \"CampaignBucket\":\n additionalFields.name = properties[0];\n additionalFields.filter_string = properties[1];\n break;\n case \"ConversionAction\":\n additionalFields.name = properties[0];\n additionalFields.conversion_id = properties[1];\n additionalFields.conversion_type = this.props.conversionType;\n break;\n default:\n // Just send all the passed in properties to the server as additional fields\n for (let i = 0; i < properties.length; i++) {\n additionalFields['additional_field_' + i] = properties[i];\n }\n }\n\n $.ajax({\n type: \"POST\",\n url: this.props.url,\n async: false,\n data: {\n properties: {\n section_type: this.props.sectionType,\n section_id: this.props.sectionId,\n additional_fields: additionalFields\n }\n },\n success: (response) => {\n let items = [...this.state.items];\n items.push(response)\n this.setState({ items: items })\n this.setState({ currentItemProperties: this.state.defaultPropertyValues })\n }\n })\n }\n\n updateListItem(id, properties) {\n let additionalFields = {};\n switch(this.props.listType) {\n case \"CampaignBucket\":\n additionalFields.name = properties[0];\n additionalFields.filter_string = properties[1];\n break;\n case \"ConversionAction\":\n additionalFields.name = properties[0];\n additionalFields.conversion_id = properties[1];\n additionalFields.conversion_type = this.props.conversionType;\n break;\n default:\n // Just send all the passed in properties to the server as additional fields\n for (let i = 0; i < properties.length; i++) {\n additionalFields['additional_field_' + i] = properties[i];\n }\n }\n\n $.ajax({\n type: \"PATCH\",\n url: this.props.url + id,\n async: false,\n data: {\n properties: {\n section_type: this.props.sectionType,\n section_id: this.props.sectionId,\n additional_fields: additionalFields\n }\n }\n })\n }\n\n handleNewItemChange(event) {\n let properties = [];\n let inputs = event.target.parentElement.children\n for (let i = 0; i < inputs.length; i++) {\n let input = inputs[i];\n if (input.tagName == \"INPUT\") {\n properties.push(input.value);\n }\n }\n\n this.setState({\n currentItemProperties: properties\n });\n }\n\n render() {\n const newItemRow = this.state.currentItemProperties.map((property, index) => {\n return (\n \n );\n });\n const itemList = this.state.items.map((item) => {\n return (\n \n );\n });\n return (\n
\n {newItemRow}\n \n \n
\n );\n }\n}\n\nexport default List;\n","import React from 'react';\n\nclass ListItem extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n propertyNames: this.props.propertyNames,\n properties: [],\n checkStyle: \"none\"\n }\n\n this.state.propertyNames.forEach((element, index) => {\n this.state.properties[index] = \"\";\n });\n\n let item = this.props.item;\n\n switch(this.props.listType) {\n case \"CampaignBucket\":\n this.state.properties[0] = item.name;\n this.state.properties[1] = item.filter_string;\n break;\n case \"ConversionAction\":\n this.state.properties[0] = item.name;\n this.state.properties[1] = item.conversion_id;\n break;\n default:\n // Just map whatever the object passes in\n // Be very careful with this. It's only an emergency catching mechanism. The order cannot be ensured so saving will get fricked up\n let counter = 0;\n for (let prop in item) {\n if (Object.prototype.hasOwnProperty.call(item, prop) && prop != \"id\" && prop != \"section_id\" && prop != \"section_type\" && prop != \"created_at\" && prop != \"updated_at\") {\n this.state.properties[counter] = item[prop];\n counter += 1;\n }\n }\n }\n\n this.handleInputChange = this.handleInputChange.bind(this);\n }\n\n handleInputChange(event) {\n let properties = [];\n let inputs = event.target.parentElement.children\n for (let i = 0; i < inputs.length; i++) {\n let input = inputs[i];\n if (input.tagName == \"INPUT\") {\n properties.push(input.value);\n }\n }\n\n this.setState({\n properties: properties,\n checkStyle: \"inline-block\"\n });\n }\n\n render() {\n const itemRow = this.state.properties.map((property, index) => {\n return (\n \n );\n });\n return (\n
  • \n {itemRow}\n \n \n
  • \n );\n }\n}\n\nexport default ListItem;\n","import React from \"react\";\nimport MetricTableRow from \"MetricTableRow\";\nimport Table from \"react-bootstrap/Table\";\nimport { startCase, camelCase, cloneDeep } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { Stack, Lock, Unlock } from \"react-bootstrap-icons\";\n\nclass MetricTable extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n table: props.table,\n date: moment(props.date),\n headerOrder: this.props.headerOrder,\n compactView: this.props.userDefaultView && this.props.userDefaultView == \"compact_table_view\" ? true : false,\n width: window.innerWidth,\n lockColumns: {},\n selectedPlatform: this.props.selectedPlatform\n };\n }\n componentDidUpdate(prevProps) {\n if (prevProps.table !== this.props.table) {\n this.setState({\n table: this.props.table,\n });\n }\n }\n\n\n updateWidth = () => {\n this.setState({ width: window.innerWidth });\n };\n updateLock = (lockMetric, metricName) => {\n this.setState(\n (prevState) => ({ lockColumns: { ...prevState.lockColumns, [lockMetric]: !prevState.lockColumns[lockMetric] } }),\n () => {\n this.setState((prevState) => ({\n headerOrder: Object.values(prevState.lockColumns).includes(true)\n ? prevState.headerOrder.sort(function (x, y) {\n let metricTitleX = _.startCase(_.camelCase(x));\n if (metricTitleX.includes(\"Roas\")) {\n metricTitleX = metricTitleX.slice(0, -4) + metricTitleX.slice(-4).toUpperCase();\n }\n if (metricTitleX.includes(\"Aov\")) {\n metricTitleX = metricTitleX.slice(0, -3) + metricTitleX.slice(-3).toUpperCase();\n }\n\n if (metricTitleX.includes(\"Cpa\")) {\n metricTitleX = metricTitleX.slice(0, -3) + metricTitleX.slice(-3).toUpperCase();\n }\n if (metricTitleX.includes(\"Cvr\")) {\n metricTitleX = \"Conv. Rate\";\n }\n if (metricTitleX === \"Traffic\") {\n metricTitleX = \"Organic Traffic\";\n }\n let metricTitleY = _.startCase(_.camelCase(y));\n if (metricTitleY.includes(\"Roas\")) {\n metricTitleY = metricTitleY.slice(0, -4) + metricTitleY.slice(-4).toUpperCase();\n }\n if (metricTitleY.includes(\"Aov\")) {\n metricTitleY = metricTitleY.slice(0, -3) + metricTitleY.slice(-3).toUpperCase();\n }\n\n if (metricTitleY.includes(\"Cpa\")) {\n metricTitleY = metricTitleY.slice(0, -3) + metricTitleY.slice(-3).toUpperCase();\n }\n if (metricTitleY.includes(\"Cvr\")) {\n metricTitleY = \"Conv. Rate\";\n }\n if (metricTitleY === \"Traffic\") {\n metricTitleY = \"Organic Traffic\";\n }\n return prevState.lockColumns[`${metricTitleX}`] ? -1 : prevState.lockColumns[`${metricTitleY}`] ? 1 : 0;\n })\n : cloneDeep(this.props.headerOrder),\n }));\n }\n );\n };\n componentDidMount() {\n window.addEventListener(\"resize\", this.updateWidth);\n this.state.headerOrder.map((metricName, index) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n\n this.setState((prevState) => ({ lockColumns: { ...prevState.lockColumns, [metricTitle]: false } }));\n });\n }\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWidth);\n }\n render() {\n if (!this.props.table) return
    No Data To Display Yet!
    ;\n let months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n let mobileMonths = [\"Jan.\", \"Feb.\", \"Mar.\", \"Apr.\", \"May\", \"Jun.\", \"Jul.\", \"Aug.\", \"Sep.\", \"Oct.\", \"Nov.\", \"Dec.\"];\n const headerClass = this.props.ppc ? \"ppc-table-row-header\" : \" seo-table-row-header\";\n const renderHeader = this.state.headerOrder.map((metricName, index) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n\n if (metricTitle.includes(\"Roas\")) {\n metricTitle = metricTitle.slice(0, -4) + metricTitle.slice(-4).toUpperCase();\n }\n if (metricTitle.includes(\"Aov\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n\n if (metricTitle.includes(\"Cpa\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n if (metricTitle.includes(\"Cvr\")) {\n metricTitle = \"Conv. Rate\";\n }\n if (metricTitle === \"Traffic\") {\n metricTitle = \"Organic Traffic\";\n }\n return (\n \n {this.state.lockColumns[`${metricTitle}`] == true ? (\n <>\n \n
    \n

    {metricTitle}

    \n \n
    \n \n \n ) : (\n <>\n \n
    \n

    {metricTitle}

    \n \n
    \n \n \n )}\n
    \n );\n });\n\n return (\n \n \n \n {\n this.setState({ compactView: !this.state.compactView });\n }}\n />\n }\n label=\"Full View\"\n />\n \n\n
    \n \n \n \n \n {renderHeader}\n \n \n \n {this.state.headerOrder.map((metricName) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n if (metricTitle.includes(\"Roas\")) {\n metricTitle = metricTitle.slice(0, -4) + metricTitle.slice(-4).toUpperCase();\n }\n if (metricTitle.includes(\"Aov\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n\n if (metricTitle.includes(\"Cpa\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n if (metricTitle.includes(\"Cvr\")) {\n metricTitle = \"Conv. Rate\";\n }\n if (metricTitle === \"Traffic\") {\n metricTitle = \"Organic Traffic\";\n }\n return (\n \n {this.state.lockColumns[`${metricTitle}`] == true ? (\n <>\n \n {parseInt(this.props.date.substring(0, 4)) - 1}\n \n \n {\" \"}\n {this.state.date.year()}{\" \"}\n \n \n Y/Y\n \n \n ) : (\n <>\n \n \n \n \n )}\n \n );\n })}\n \n \n \n {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((num) => {\n return (\n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n \n
    \n {parseInt(this.props.date.substring(0, 4)) - 1}\n \n {\" \"}\n {this.state.date.year()}{\" \"}\n \n Y/Y\n
    \n {this.state.width > 600 ? months[num - 1] : mobileMonths[num - 1]}\n
    \n YTD\n
    \n Total\n
    \n
    \n
    \n );\n }\n}\nexport default MetricTable;\n","import React from \"react\";\nimport MetricTableRowOld from \"MetricTableRowOld\";\nimport Table from \"react-bootstrap/Table\";\nimport { startCase, camelCase } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\n\nclass MetricTableOld extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n table: props.table,\n date: moment(props.date),\n headerOrder: this.props.headerOrder,\n };\n }\n componentDidUpdate(prevProps) {\n if (prevProps.table !== this.props.table) {\n this.setState({\n table: this.props.table,\n });\n }\n }\n render() {\n if (!this.props.table) return
    No Data To Display Yet!
    ;\n let months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n let scrollMesage =
    ;\n\n if (this.props.scrollMessage) {\n scrollMesage =
    Scroll right to view entire chart
    ;\n }\n\n return (\n \n 2 ? \"inherit\" : \"50%\" }}>\n \n \n \n \n {this.state.headerOrder.map((metricName) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n\n if (metricTitle.includes(\"Roas\")) {\n metricTitle = metricTitle.slice(0, -4) + metricTitle.slice(-4).toUpperCase();\n }\n if (metricTitle.includes(\"Aov\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n\n if (metricTitle.includes(\"Cpa\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n if (metricTitle.includes(\"Cvr\")) {\n metricTitle = \"Conv. Rate\";\n }\n if (metricTitle === \"Traffic\") {\n metricTitle = \"Organic Traffic\";\n }\n\n return (\n \n );\n })}\n \n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n \n \n \n \n );\n })}\n \n \n \n {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((num) => {\n return (\n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n \n
    \n
    {metricTitle}
    \n
    \n {this.props.date ? (\n parseInt(this.props.date.substring(0, 4)) - 1\n ) : (\n \"No date\"\n )}\n \n {\" \"}\n {this.state.date.year()}{\" \"}\n \n Y/Y\n
    \n {months[num - 1]}\n
    \n YTD\n
    \n Total\n
    \n \n {scrollMesage}\n
    \n );\n }\n}\nexport default MetricTableOld;\n","import React from \"react\";\nimport MetricTableRowPdf from \"MetricTableRowPdf\";\nimport Table from \"react-bootstrap/Table\";\nimport _ from \"lodash\";\nimport jsDig from \"utils/jsDig\";\n\nclass MetricTablePdf extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n table: props.table,\n date: moment(props.date),\n headerOrder: this.props.headerOrder,\n width: window.innerWidth,\n };\n }\n\n render() {\n if (!this.props.table) return
    No Data To Display Yet!
    ;\n let months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n const headerClass = this.props.ppc ? \"ppc-table-row-header\" : \" seo-table-row-header\";\n const renderHeader = this.state.headerOrder.map((metricName, index) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n return (\n \n {metricTitle}\n \n );\n });\n\n return (\n \n
    \n \n \n \n \n {renderHeader}\n \n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n \n \n \n \n );\n })}\n \n \n \n {[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map((num) => {\n return (\n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n \n \n {this.state.headerOrder.map((metricName) => {\n return (\n \n );\n })}\n \n \n
    \n {parseInt(this.props.date.substring(0, 4)) - 1}\n \n {\" \"}\n {this.state.date.year()}{\" \"}\n \n Y/Y\n
    \n {months[num - 1]} \n
    \n YTD\n
    \n Total\n
    \n
    \n
    \n );\n }\n}\nexport default MetricTablePdf;\n","import React from \"react\";\nimport Metric from 'utils/Metric'\nimport getCurrencyDetails from 'utils/getCurrencyDetails'\n\nfunction yy_for_metric(current, last_year) {\n if (last_year == null || current == null) {\n return \"\";\n }\n if (last_year == current) {\n return 0\n }\n return ((current - last_year) / last_year) * 100;\n}\n\nfunction formatted_metric(opts, isNull = false, lastYearNull = false, client) {\n\n if (isNull) {\n return \"no data\"\n }\n if (lastYearNull) {\n return \"no data\"\n }\n else if (opts.value === null) {\n if (opts.thisYear === null) {\n return \"\"\n }\n else {\n return \"no data\"\n }\n }\n \n\n opts.metricName = opts.metricName.toLowerCase();\n\n if (opts.metricName.includes(\"roas\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"revenue\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"spend\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"traffic\")) {\n return \n } else if (opts.metricName.includes(\"impressions\")) {\n return \n } else if (opts.metricName.includes(\"views\")) {\n return \n } else if (opts.metricName.includes(\"add_to_carts\")) {\n return \n } else if (opts.metricName.includes(\"earned_likes\")) {\n return \n } else if (opts.metricName.includes(\"earned_shares\")) {\n return \n } else if (opts.metricName.includes(\"checkouts_started\")) {\n return \n } else if (opts.metricName.includes(\"clicks\")) {\n return \n } else if (opts.metricName.includes(\"visits\")) {\n return \n } else if (opts.metricName.includes(\"average_position\")) {\n return \n } else if (opts.metricName.includes(\"top_ten_keywords_percentage\")) {\n return \n } else if (opts.metricName.includes(\"top_ten_keywords\")) {\n return \n } else if (opts.metricName.includes(\"top_twenty_keywords\")) {\n return \n } else if (opts.metricName.includes(\"top_three_keywords\")) {\n return \n } else if (opts.metricName.includes(\"ctr\")) {\n return \n } else if (opts.metricName.includes(\"cart_to_conversion_rate\")) {\n return \n } else if (opts.metricName.includes(\"impression_to_cart_rate\")) {\n return \n } else if (opts.metricName.includes(\"social_view_rate\")) {\n return \n } else if (opts.metricName.includes(\"view_rate\")) {\n return \n } else if (opts.metricName.includes(\"bounce_rate\")) {\n return \n } else if (opts.metricName.includes(\"search_visibility\")) {\n return \n } else if (opts.metricName.includes(\"cpc\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"conversions\")) {\n return \n } else if (opts.metricName.includes(\"conversion rate\")) {\n return \n } else if (opts.metricName.includes(\"cr\")) {\n return \n } else if (opts.metricName.includes(\"cvr\")) {\n return \n } else if (opts.metricName.includes(\"cpa\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"cpv\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"aov\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"phone_calls\")) {\n return \n } else if (opts.metricName.includes(\"cpm\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"yy\")) {\n return \n } else {\n return \"INVALID METRIC\";\n }\n}\n\nclass MetricTableRow extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lockColumns: {},\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.lockColumns !== this.props.lockColumns) {\n this.setState({\n lockColumns: this.props.lockColumns,\n });\n }\n }\n render() {\n const date = new Date()\n let month = date.getMonth() + 1\n let isThisYearNull = this.props.rowNumber <= month && this.props.thisYearValue === null\n let isLastYearNull = this.props.lastYearValue === null\n let shouldRenderBottomBorder = this.props.rowNumber % 3 != 0;\n let yy = yy_for_metric(this.props.thisYearValue, this.props.lastYearValue);\n let firstValueClass = shouldRenderBottomBorder && !this.props.bottomRow ? \"no-border\" : \"no-border-lrt\";\n let secondValueClass = shouldRenderBottomBorder && !this.props.bottomRow ? \"no-border\" : \"no-border-lrt\";\n let thirdValueClass = \"\";\n let metricTitle = _.startCase(_.camelCase(this.props.metricName));\n if (metricTitle.includes(\"Roas\")) {\n metricTitle = metricTitle.slice(0, -4) + metricTitle.slice(-4).toUpperCase();\n }\n if (metricTitle.includes(\"Aov\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n\n if (metricTitle.includes(\"Cpa\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n if (metricTitle.includes(\"Cvr\")) {\n metricTitle = \"Conv. Rate\";\n }\n if (metricTitle === \"Traffic\") {\n metricTitle = \"Organic Traffic\";\n }\n if (typeof yy == \"string\" || yy >= 0) {\n if (typeof yy == \"string\") {\n thirdValueClass += \"\";\n } else if (this.props.metricName === \"click_cpa\" || this.props.metricName == \"cpc\" || this.props.metricName == \"total_cpa\") {\n if (yy == 0) {\n thirdValueClass = \"\"\n }\n else {\n thirdValueClass += \"yy-text-negative\";\n }\n } \n else if (Number.isFinite(yy)) {\n thirdValueClass += \"yy-text-positive\";\n }\n } else if (!Number.isFinite(yy) || yy == 0) {\n thirdValueClass += \"\";\n } else if (this.props.metricName === \"click_cpa\" || this.props.metricName == \"cpc\" || this.props.metricName == \"total_cpa\") {\n thirdValueClass += \"yy-text-positive\";\n } else {\n thirdValueClass += \"yy-text-negative\";\n }\n\n if (shouldRenderBottomBorder && !this.props.bottomRow) {\n thirdValueClass += \" empty3 no-border-ltb\";\n } else {\n thirdValueClass += \" empty3 no-border-lt\";\n }\n return (\n \n {this.state.lockColumns[`${metricTitle}`] == true ? (\n <>\n \n
    \n {formatted_metric({\n metricName: this.props.metricName,\n value: this.props.lastYearValue,\n baseCurrency: this.props.baseCurrency,\n displayCurrency: this.props.displayCurrency\n }, false, isLastYearNull, this.props.client)}\n
    \n \n \n
    \n {formatted_metric({\n metricName: this.props.metricName,\n value: this.props.thisYearValue,\n baseCurrency: this.props.baseCurrency,\n displayCurrency: this.props.displayCurrency,\n thisYear: this.props.thisYearValue\n }, isThisYearNull, false, this.props.client)}\n
    \n \n \n {\" \"}\n {!Number.isFinite(yy) ? \"\" : typeof yy == \"string\" ? \"\" : yy.toFixed(0).toString() + \"%\"}{\" \"}\n \n \n ) : (\n <>\n \n
    \n {formatted_metric({\n metricName: this.props.metricName,\n value: this.props.lastYearValue,\n baseCurrency: this.props.baseCurrency,\n displayCurrency: this.props.displayCurrency,\n lastYear: this.props.lastYearValue\n }, false, isLastYearNull, this.props.client)}\n
    \n \n \n
    \n {formatted_metric({\n metricName: this.props.metricName,\n value: this.props.thisYearValue,\n baseCurrency: this.props.baseCurrency,\n displayCurrency: this.props.displayCurrency,\n thisYear: this.props.thisYearValue\n }, isThisYearNull, false, this.props.client)}\n
    \n \n \n {!Number.isFinite(yy) ? \"\" : typeof yy == \"string\" ? \"\" : yy.toFixed(0).toString() + \"%\"}{\" \"}\n \n \n )}\n
    \n );\n }\n}\n\nexport default MetricTableRow;\n\n","import React from \"react\";\nfunction numberWithCommas(num) {\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n\nfunction yy_for_metric(current, last_year) {\n if (last_year <= 0 || current <= 0) {\n return \"\";\n }\n\n return ((current - last_year) / last_year) * 100;\n}\n\nfunction formatted_metric(opts) {\n if (!opts.value || opts.value == 0) return \"\";\n\n opts.metricName = opts.metricName.toLowerCase();\n\n if (opts.metricName.includes(\"roas\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(2));\n } else if (opts.metricName.includes(\"revenue\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"spend\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"traffic\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"impressions\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"views\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"add_to_carts\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"earned_likes\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"earned_shares\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"checkouts_started\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"clicks\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"average_position\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"top_ten_keywords_percentage\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"top_ten_keywords\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"top_twenty_keywords\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"top_three_keywords\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"ctr\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"cart_to_conversion_rate\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"impression_to_cart_rate\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"social_view_rate\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"view_rate\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"bounce_rate\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"search_visibility\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"cpc\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(2));\n } else if (opts.metricName.includes(\"conversions\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"conversion rate\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"cr\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"cvr\")) {\n return numberWithCommas(opts.value.toFixed(2)) + \"%\";\n } else if (opts.metricName.includes(\"cpa\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(2));\n } else if (opts.metricName.includes(\"cpv\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(2));\n } else if (opts.metricName.includes(\"aov\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(2));\n } else if (opts.metricName.includes(\"roas\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(2));\n } else if (opts.metricName.includes(\"phone calls\")) {\n return numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"cpm\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"gross margin\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"gross profit\")) {\n return \"$\" + numberWithCommas(opts.value.toFixed(0));\n } else if (opts.metricName.includes(\"yy\")) {\n return numberWithCommas(opts.value.toFixed(0)) + \"%\";\n } else {\n return \"INVALID METRIC\";\n }\n}\n\nclass MetricTableRowOld extends React.Component {\n render() {\n let shouldRenderBottomBorder = this.props.rowNumber % 3 != 0;\n\n let yy = yy_for_metric(this.props.thisYearValue, this.props.lastYearValue);\n let firstValueClass = shouldRenderBottomBorder && !this.props.bottomRow ? \"no-border\" : \"no-border-lrt\";\n let secondValueClass = shouldRenderBottomBorder && !this.props.bottomRow ? \"no-border\" : \"no-border-lrt\";\n let thirdValueClass = \"\";\n\n if (typeof yy == \"string\" || yy >= 0) {\n if (typeof yy == \"string\") {\n thirdValueClass += \"\";\n } else if (this.props.metricName.includes === \"cpa\") {\n thirdValueClass += \"yy-text-negative\";\n } else {\n thirdValueClass += \"yy-text-positive\";\n }\n } else if (Number.isNaN(yy)) {\n thirdValueClass += \"\";\n } else if (this.props.metricName.includes(\"cpa\")) {\n thirdValueClass += \"yy-text-positive\";\n } else {\n thirdValueClass += \"yy-text-negative\";\n }\n\n if (shouldRenderBottomBorder && !this.props.bottomRow) {\n thirdValueClass += \" no-border-ltb\";\n } else {\n thirdValueClass += \" no-border-lt\";\n }\n return (\n \n {formatted_metric({ metricName: this.props.metricName, value: this.props.lastYearValue })} \n {formatted_metric({ metricName: this.props.metricName, value: this.props.thisYearValue })} \n {Number.isNaN(yy) ? \"\" : typeof yy == \"string\" ? \"\" : yy.toFixed(0).toString() + \"%\"} \n \n );\n }\n}\n\nexport default MetricTableRowOld;\n","import React from \"react\";\nimport Metric from 'utils/Metric'\nimport getCurrencyDetails from 'utils/getCurrencyDetails'\n\nfunction yy_for_metric(current, last_year) {\n if (last_year == null || current == null) {\n return \"\";\n }\n if (last_year == current) {\n return 0\n }\n return ((current - last_year) / last_year) * 100;\n}\n\nfunction formatted_metric(opts, isNull = false, lastYearNull = false, client) {\n\n if (isNull) {\n return \"no data\"\n }\n if (lastYearNull) {\n return \"no data\"\n }\n else if (opts.value === null) {\n if (opts.thisYear === null) {\n return \"\"\n }\n else {\n return \"no data\"\n }\n }\n \n\n opts.metricName = opts.metricName.toLowerCase();\n\n if (opts.metricName.includes(\"roas\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"revenue\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"spend\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"traffic\")) {\n return \n } else if (opts.metricName.includes(\"impressions\")) {\n return \n } else if (opts.metricName.includes(\"views\")) {\n return \n } else if (opts.metricName.includes(\"add_to_carts\")) {\n return \n } else if (opts.metricName.includes(\"earned_likes\")) {\n return \n } else if (opts.metricName.includes(\"earned_shares\")) {\n return \n } else if (opts.metricName.includes(\"checkouts_started\")) {\n return \n } else if (opts.metricName.includes(\"clicks\")) {\n return \n } else if (opts.metricName.includes(\"visits\")) {\n return \n } else if (opts.metricName.includes(\"average_position\")) {\n return \n } else if (opts.metricName.includes(\"top_ten_keywords_percentage\")) {\n return \n } else if (opts.metricName.includes(\"top_ten_keywords\")) {\n return \n } else if (opts.metricName.includes(\"top_twenty_keywords\")) {\n return \n } else if (opts.metricName.includes(\"top_three_keywords\")) {\n return \n } else if (opts.metricName.includes(\"ctr\")) {\n return \n } else if (opts.metricName.includes(\"cart_to_conversion_rate\")) {\n return \n } else if (opts.metricName.includes(\"impression_to_cart_rate\")) {\n return \n } else if (opts.metricName.includes(\"social_view_rate\")) {\n return \n } else if (opts.metricName.includes(\"view_rate\")) {\n return \n } else if (opts.metricName.includes(\"bounce_rate\")) {\n return \n } else if (opts.metricName.includes(\"search_visibility\")) {\n return \n } else if (opts.metricName.includes(\"cpc\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"conversions\")) {\n return \n } else if (opts.metricName.includes(\"conversion rate\")) {\n return \n } else if (opts.metricName.includes(\"cr\")) {\n return \n } else if (opts.metricName.includes(\"cvr\")) {\n return \n } else if (opts.metricName.includes(\"cpa\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"cpv\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"aov\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"phone_calls\")) {\n return \n } else if (opts.metricName.includes(\"cpm\")) {\n let currencyDetails = getCurrencyDetails(opts.displayCurrency)\n return (\n \n )\n } else if (opts.metricName.includes(\"yy\")) {\n return \n } else {\n return \"INVALID METRIC\";\n }\n}\n\nclass MetricTableRowPdf extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n lockColumns: {},\n };\n }\n componentDidUpdate(prevProps) {\n if (prevProps.lockColumns !== this.props.lockColumns) {\n this.setState({\n lockColumns: this.props.lockColumns,\n });\n }\n }\n render() {\n let shouldRenderBottomBorder = this.props.rowNumber % 3 != 0;\n const date = new Date()\n let month = date.getMonth() + 1\n let isThisYearNull = this.props.rowNumber <= month && this.props.thisYearValue === null\n let isLastYearNull = this.props.lastYearValue === null\n let yy = yy_for_metric(this.props.thisYearValue, this.props.lastYearValue);\n let firstValueClass = shouldRenderBottomBorder && !this.props.bottomRow ? \"no-border\" : \"no-border-lrt\";\n let secondValueClass = shouldRenderBottomBorder && !this.props.bottomRow ? \"no-border\" : \"no-border-lrt\";\n let thirdValueClass = \"\";\n if (typeof yy == \"string\" || yy >= 0) {\n if (typeof yy == \"string\") {\n thirdValueClass += \"\";\n } else if (this.props.metricName === \"click_cpa\" || this.props.metricName == \"cpc\" || this.props.metricName == \"total_cpa\") {\n if (yy == 0) {\n thirdValueClass = \"\"\n }\n else {\n thirdValueClass += \"yy-text-negative\";\n }\n } \n else if (Number.isFinite(yy)) {\n thirdValueClass += \"yy-text-positive\";\n }\n } else if (!Number.isFinite(yy) || yy == 0) {\n thirdValueClass += \"\";\n } else if (this.props.metricName === \"click_cpa\" || this.props.metricName == \"cpc\" || this.props.metricName == \"total_cpa\") {\n thirdValueClass += \"yy-text-positive\";\n } else {\n thirdValueClass += \"yy-text-negative\";\n }\n\n if (shouldRenderBottomBorder && !this.props.bottomRow) {\n thirdValueClass += \" no-border-ltb\";\n } else {\n thirdValueClass += \" no-border-lt\";\n }\n return (\n \n \n
    \n {formatted_metric({\n metricName: this.props.metricName,\n value: this.props.lastYearValue,\n baseCurrency: this.props.baseCurrency,\n displayCurrency: this.props.displayCurrency,\n lastYear: this.props.lastYearValue\n }, false, isLastYearNull, this.props.client)}\n
    \n \n \n
    \n {formatted_metric({\n metricName: this.props.metricName,\n value: this.props.thisYearValue,\n baseCurrency: this.props.baseCurrency,\n displayCurrency: this.props.displayCurrency,\n thisYear: this.props.thisYearValue\n }, isThisYearNull, false, this.props.client)}\n
    \n \n \n {!Number.isFinite(yy) ? \"\" : typeof yy == \"string\" ?   : yy.toFixed(0).toString() + \"%\"}\n {\"\"}\n \n
    \n );\n }\n}\n\nexport default MetricTableRowPdf;\n","import React, { useState } from \"react\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport jsDig from \"utils/jsDig\";\nimport { CircleFill, Gear, SquareFill, Tv, PersonPlusFill, PlusCircleFill } from \"react-bootstrap-icons\";\nimport { Container, Row, Col, OverlayTrigger, Button, Tooltip } from \"react-bootstrap\";\nimport Avatar from \"@material-ui/core/Avatar\";\nimport { Truncate } from \"@shopify/polaris\";\nimport $ from \"jquery\";\nconst websitePlatforms = [\"Shopify\", \"BigCommerce\", \"Magento\", \"Wordpress\", \"Other\"];\nconst backgroundColors = [\"#d97358\", \"#F2C010\", \"#427BFF\", \"#43B995\"];\nconst sections = [\"display\", \"search\", \"seo\", \"social\", \"video\"];\nconst permissionsLabel = [\n \"No changes allowed, or exceptions only\",\n \"All changes require prior approval\",\n \"Free to make changes with follow-up email summary\",\n \"Free to make changes, no notification necessary\",\n];\n\nexport default function TopFlyout(props) {\n const showOrNot = window.innerWidth > 1530 ? false : true;\n\n let shopLogo = require(\"images/shop-logo.png\");\n shopLogo = ;\n let bcLogo = require(\"images/bg-logo.png\");\n bcLogo = ;\n const [collapse, setCollapse] = useState(showOrNot);\n let teamSupports = [];\n let teamLeads = [];\n sections.forEach((section) => {\n if (props[`${section}_section`].account_leads) teamLeads.push(...props[`${section}_section`].account_leads);\n if (props[`${section}_section`].account_supports) teamSupports.push(...props[`${section}_section`].account_supports);\n });\n const toggleCollapse = (event) => {\n let btn = $(event.target);\n btn.next(\".collapse\").collapse(\"toggle\");\n setCollapse(!collapse);\n };\n let chevronLeft = require(\"images/icons/chevron-left.png\");\n chevronLeft = ;\n let chevronRight = require(\"images/icons/chevron-right.png\");\n chevronRight = ;\n let chevronTop = require(\"images/icons/chevron-top.png\");\n chevronTop = (\n \n );\n let chevronDown = require(\"images/icons/chevron-down.png\");\n chevronDown = (\n \n );\n const barShow = collapse ? \"barHiden\" : \"barShow\";\n let departments = [];\n const arrayOfUsers = Object.entries(props.users).map((e) => ({\n [e[0]]: e[1],\n }));\n const avatarTeamLead = arrayOfUsers.map((personal, index) => {\n const info = Object.entries(personal)[0];\n const email = info[0];\n if (teamLeads.includes(email)) {\n const personalInfo = info[1];\n const department = personalInfo.department;\n const personalInfoToolTip = `
    \n
    ${personalInfo.name}
    \n
    \n

    ${props.organization.name}

    \n

    \n

    ${personalInfo.job_title ? personalInfo.job_title : \"N/A\"}

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

    \n
    `;\n let legendColor = \"black\";\n if (department == \"both_departments\") legendColor = \"#2c345b\";\n if (department == \"ppc_department\") legendColor = \"#3291C1\";\n if (department == \"seo_department\") legendColor = \"#42BA96\";\n if (department == \"dev_department\") legendColor = \"#DBB13B\";\n if (!departments.includes(personalInfo.department)) departments.push(personalInfo.department);\n return (\n \n );\n }\n });\n let arrayOfTeamSupport = [];\n arrayOfUsers.forEach((user, index) => {\n const info = Object.entries(user)[0];\n const email = info[0];\n if (teamSupports.includes(email)) {\n arrayOfTeamSupport.push(user);\n }\n });\n const avatarTeamSupport =\n arrayOfTeamSupport.length < 3 ? (\n arrayOfUsers.map((personal, index) => {\n const info = Object.entries(personal)[0];\n const email = info[0];\n if (teamSupports.includes(email)) {\n const personalInfo = info[1];\n const department = personalInfo.department;\n const personalInfoToolTip = `
    \n
    ${personalInfo.name}
    \n
    \n

    ${props.organization.name}

    \n

    \n

    ${personalInfo.job_title ? personalInfo.job_title : \"N/A\"}

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

    \n
    `;\n let legendColor = \"black\";\n if (department == \"both_departments\") legendColor = \"#2c345b\";\n if (department == \"ppc_department\") legendColor = \"#3291C1\";\n if (department == \"seo_department\") legendColor = \"#42BA96\";\n if (department == \"dev_department\") legendColor = \"#DBB13B\";\n if (!departments.includes(personalInfo.department)) departments.push(personalInfo.department);\n return (\n \n );\n }\n })\n ) : (\n <>\n {arrayOfTeamSupport.slice(0, 2).map((personal, index) => {\n const info = Object.entries(personal)[0];\n const email = info[0];\n if (teamSupports.includes(email)) {\n const personalInfo = info[1];\n const department = personalInfo.department;\n const personalInfoToolTip = `
    \n
    ${personalInfo.name}
    \n
    \n

    ${props.organization.name}

    \n

    \n

    ${personalInfo.job_title ? personalInfo.job_title : \"N/A\"}

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

    \n
    `;\n let legendColor = \"black\";\n if (department == \"both_department\") legendColor = \"#2c345b \";\n if (department == \"ppc_department\") legendColor = \"#3291C1\";\n if (department == \"seo_department\") legendColor = \"#42BA96\";\n if (department == \"dev_department\") legendColor = \"#DBB13B\";\n if (!departments.includes(personalInfo.department)) departments.push(personalInfo.department);\n return (\n \n {personalInfo.avatar ? (\n 1550 ? \"30px\" : \"25px\",\n height: window.innerWidth > 1550 ? \"30px\" : \"25px\",\n borderStyle: \"solid\",\n borderColor: `${legendColor}`,\n backgroundColor: \"transparent\",\n }}\n />\n ) : (\n 1550 ? \"30x30\" : \"25x25\"}\n name={info[1].name}\n className=\"avatar\"\n department={info[1].department}\n style={{ backgroundColor: \"transparent\" }}\n />\n )}\n \n );\n }\n })}\n \n
      \n {\" \"}\n {arrayOfTeamSupport.slice(2, arrayOfUsers.length).map((personal, index) => {\n const info = Object.entries(personal)[0];\n const email = info[0];\n\n if (teamSupports.includes(email)) {\n const personalInfo = info[1];\n return (\n
    • \n

      \n {personalInfo.job_title}:

      {personalInfo.name}
      \n

      \n
    • \n );\n }\n })}\n
    \n \n }>\n \n \n \n );\n const clientUsers = props.client_account.client_users;\n\n const clientUsersOverage = !clientUsers ? [...Array(4)]: props.client_account.client_users.filter((el, idx) => idx > 6)\n\n\n \n const arrayOfClients = Object.entries(props.client_users).map((e) => ({\n [e[0]]: e[1],\n }));\n\n\n\n const renderAvatarClients = !clientUsers ? [...Array(4)]: [...Array(Math.ceil(clientUsers.length / 4)).keys()].map((item, idx) => {\n if (idx === 0) {\n return (\n \n{arrayOfClients.filter((el, i) => {\n return clientUsers && clientUsers.includes(Object.entries(el)[0][0])\n\n}).map((personal, index) => {\n const info = Object.entries(personal)[0];\n \n const personalInfo = `
    \n
    ${info[1].name}
    \n
    \n

    ${props.company_name}

    \n

    \n

    ${info[1].job_title ? personal.job_title : \"N/A\"}

    \n
    \n

    ${info[0]}

    \n

    Tel: ${info[1].phone_number}

    \n
    `;\n \n if (index < 4) {\n return (\n \n );\n }\n \n })}\n
    \n )\n }\n if (idx === 1) {\n return (\n\n{arrayOfClients.filter((el, i) => {\n return clientUsers && clientUsers.includes(Object.entries(el)[0][0])\n\n}).map((personal, index, arr) => {\n const info = Object.entries(personal)[0];\n \n const personalInfo = `
    \n
    ${info[1].name}
    \n
    \n

    ${props.company_name}

    \n

    \n

    ${info[1].job_title ? personal.job_title : \"N/A\"}

    \n
    \n

    ${info[0]}

    \n

    Tel: ${info[1].phone_number}

    \n
    `;\n\n const lastInfo = `
    \n \n
    \n

    ${props.company_name}

    \n

    Additional Users

    \n

    \n
    \n
      \n ${clientUsersOverage.map(el => `
    • ${el}
    • `).join('')}\n
    \n
    \n \n
    \n \n
    `;\n \n if (index > 3 && index < 8 && arr.length <= 8) {\n return (\n \n );\n }\n if (index > 3 && index < 7 && arr.length > 8) {\n return (\n \n );\n }\n if (index === 8 && arr.length > 8) {\n return (\n \n );\n }\n \n })}\n
    \n )\n }\n\n }) \n const renderDepartmentsLegends = departments.map((department, index) => {\n department = department ? department.split(\"_\")[0].toUpperCase() : \"\"\n let legendColor = \"black\";\n if (department == \"BOTH\") legendColor = \"#2c345b\";\n if (department == \"PPC\") legendColor = \"#3291C1\";\n if (department == \"SEO\") legendColor = \"#42BA96\";\n if (department == \"DEV\") legendColor = \"#DBB13B\";\n return (\n
  • \n \n {department == \"NO\" ?

    N/A

    :

    {department}

    }\n
  • \n );\n });\n let accessLegends = [];\n\n const accessNames = props.client_account.team_access ? Object.keys(props.client_account.team_access) : [];\n\n const accessLevels = props.client_account.team_access ? Object.values(props.client_account.team_access) : [];\n accessLevels.forEach((access) => {\n if ((access.Full == \"1\" || access[\"Completed setup\"] == \"1\") && !accessLegends.includes(\"Full\")) accessLegends.push(\"Full\");\n if (access.Restricted == \"1\" && !accessLegends.includes(\"Restricted\")) accessLegends.push(\"Restricted\");\n });\n const renderAccessesList = accessNames.map((access, index) => {\n let accessColor = \"#2c345b \";\n if (accessLevels[index][\"Full\"] == \"1\" || accessLevels[index][\"Completed setup\"] == \"1\") accessColor = \"#42BA96\";\n if (Object.values(props.client_account.team_access[`${access}`]).includes(\"1\")) {\n return (\n
  • \n \n

    {access}

    \n
  • \n );\n }\n });\n const renderAccessesLegends = accessLegends.map((access, index) => {\n //default color for Restricted access\n let accessColor = \"#2c345b \";\n if (access == \"Full\") accessColor = \"#42BA96\";\n return (\n
  • \n \n

    {access}

    \n
  • \n );\n });\n const permissionsExplainations = [\n \"No changes allowed, or exceptions only\",\n \"All changes require prior approval\",\n \"Free to make changes with follow-up email summary\",\n \"Free to make changes, no notification necessary\",\n ];\n const comfortLevel = (\n \n \n \n \n
    Global:
    \n \n {props.client_account.global_website_permissions != null && (\n <>\n \n \n {props.client_account.global_website_permissions}\n \n \n \n

    \n {permissionsExplainations[props.client_account.global_website_permissions - 1]}\n

    \n \n \n )}\n
    \n \n \n \n
    Custom:
    \n \n
    \n {props.client_account.custom_website_permissions &&\n props.client_account.custom_website_permissions.map((web, index) => (\n \n \n \n {web.website}\n

    \n \n \n \n {web.permission}\n \n \n \n

    {permissionsLabel[parseInt(web.permission) - 1]}

    \n \n
    \n ))}\n
    \n
    \n );\n\n const clientWebsite = jsDig([\"websites\", \"primary\"], props.client_account) ? jsDig([\"websites\", \"primary\"], props.client_account) : \"N/A\";\n let websitePlatformLogo;\n if (props.client_account.website_platform === 0) {\n websitePlatformLogo = shopLogo;\n } else if (props.client_account.website_platform === 1) {\n websitePlatformLogo = bcLogo;\n } else {\n websitePlatformLogo = websitePlatforms[`${props.client_account.website_platform}`];\n }\n\n return (\n
    \n
    {collapse ? chevronDown : chevronTop}
    \n {/* remove class collapse on below for animation purposes */}\n
    \n
    \n
    \n {props.client_logo ? (\n \n ) : (\n
    {props.company_name}
    \n )}\n
    \n\n
    \n {props.search_section.enabled === true ||\n props.display_section.enabled === true ||\n props.video_section.enabled === true ||\n props.social_section.enabled === true ? (\n
    \n \n

    PPC

    \n
    \n
    \n ) : undefined}\n {props.seo_section && props.seo_section.enabled === true && (\n
    \n \n

    SEO

    \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    Website Platform:
    \n {websitePlatformLogo}\n
    \n

    \n \n   \n {clientWebsite == \"N/A\" ? (\n {clientWebsite}\n ) : (\n \n {clientWebsite}\n \n )}\n

    \n
    \n
    \n\n
    \n
    Client Users:
    \n {renderAvatarClients}\n
    \n
    \n
    Comfort Level with Site Changes:
    \n {props.client_account.custom_website_permissions_enabled ? (\n
    \n \n \n \n
    \n

    Custom:

    \n

    Hover for details

    \n
    \n
    \n ) : (\n \n {/* \n
    Global:
    \n */}\n {props.client_account.global_website_permissions && (\n \n \n \n \n\n \n

    {permissionsExplainations[props.client_account.global_website_permissions - 1]}

    \n \n\n {/* \n {permissionsExplainations[props.client_account.global_website_permissions - 1]}\n \n }>\n \n {props.client_account.global_website_permissions}\n \n */}\n
    \n )}\n
    \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n
    Team Lead(s):
    \n
    {avatarTeamLead}
    \n
    \n
    \n
    Team Support:
    \n
    {avatarTeamSupport}
    \n
    \n
    \n
      {renderDepartmentsLegends}
    \n
    \n
    \n
    \n
    \n
    \n
    Access Granted:
    \n
      {renderAccessesList}
    \n
    \n
    \n
      {renderAccessesLegends}
    \n
    \n
    \n
    \n
    \n \n {chevronRight}\n \n
    \n \n \n \n
    \n
    \n
    \n );\n}\n","import React from 'react'\nimport { Row, Col, Form, Modal, Button } from 'react-bootstrap'\n\nclass ZoomRedirectPopup extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n show: this.props.show\n }\n }\n\n render() {\n const datapulsePreview = require(\"images/datapulse-tablet-preview.png\");\n const datapulseLogo = require(\"images/logos/datapulse-logo-blue-small.png\");\n return (\n <>\n this.setState({show: false})}>\n
    \n
    \n
    \n \n Zoom has evolved...\n \n \n \n \n
    Introducing
    \n \n \n
    \n \n \n

    Due to the emergence of Zoom (the communication software that exploded in popularity in 2020), we have since rebranded our Zoom to be called \"DataPulse\". Not only did it get a new name, but also a new look, and tons of exciting features in the works!

    \n \n \n \n \n
    \n
    \n \n \n \n

    You can still login using your old Zoom credentials.

    \n \n \n
    \n
    \n
    \n
    \n \n );\n }\n\n}\n\nexport default ZoomRedirectPopup;\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Row, Col } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function App(props) {\n let logo = require(\"images/logos/dp-logo-vector.svg\");\n logo = ;\n let icon = require(\"images/icons/datapulse-icon.png\");\n icon = ;\n let tabletImg = require(\"images/tablet-datapulse.png\");\n tabletImg = ;\n\n return (\n <>\n \n \n \n \n {logo}\n

    Login to DataPulse

    \n

    Privacy Policy

    \n
    \n \n
    \n
    \n \n \n \n {icon}\n \n \n \n \n

    DataPulse

    \n

    Real-time metrics reporting

    \n \n
    \n \n \n
    \n

    You see everything we see in real time via our proprietary reporting platform, DataPulse. See organic traffic projections, all your keyword rankings, your personal team with their contact info, and more.

    \n
    \n

    Anytime, anywhere.

    \n
    \n
    \n \n \n
    \n {tabletImg}\n
    \n \n
    \n \n \n
    \n \n
    \n \n \n

    For assistance or help getting set up with DataPulse, contact your account representative or

    support@digitalposition.com

    \n \n
    \n \n \n
    \n \n
    \n
    \n \n )\n}","import React, { useState } from \"react\";\nimport { Accordion, AccordionSummary, AccordionDetails } from \"@material-ui/core\";\nimport { Button } from \"react-bootstrap\";\nimport DayPicker from \"utils/DayPicker\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Activity(props) {\n const logs = props.logs;\n const [renderLogs, setRenderLogs] = useState(logs.slice(0, 20));\n const scrollToTop = () => {\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n };\n const loadMore = () => {\n if (renderLogs.length >= logs.length) {\n alert(\"There are no more logs\");\n } else {\n setRenderLogs([...renderLogs, ...logs.slice(renderLogs.length, Math.min(renderLogs.length + 20, logs.length))]);\n }\n };\n const showLoadBtn = () => {\n if (logs.length > 0 && renderLogs.length < logs.length) {\n return true;\n }\n return false;\n }\n\n return (\n
    \n

    DataPulse Change History

    \n \n
      \n {renderLogs.map((log, index) => {\n const user = props.users.find((el) => el.id == log[\"who_dunn_it\"]);\n const userEmail = user.email;\n const client = props.clients.find((el) => el.id == log[\"client_id\"]);\n const time = moment(log.updated_at).format(\"YYYY-MM-DD hh:mm A\");\n let userName = \"\";\n if (log.table == \"users\") {\n userName = props.users.find((el) => el.id == log[\"client_id\"]);\n }\n const createOrUpdate = log.version == 1 ? \"created with value\" : \"updated\";\n const fieldNames = Object.keys(log.log_data);\n const valuesChange = Object.values(log.log_data);\n\n return (\n
    • \n {\n console.log(this)\n const icon = $(e.target).find(\".fas\");\n if (icon.hasClass(\"fa-sort-up\")) {\n icon.removeClass(\"fa-sort-up\").addClass(\"fa-sort-down\");\n } else {\n icon.removeClass(\"fa-sort-down\").addClass(\"fa-sort-up\");\n }\n }}\n >\n \n

      \n {log.table == \"users\"\n ? `${userEmail} updated user ${userName.email} info at ${time} `\n : `${userEmail} ${createOrUpdate} ${log.table} for ${jsDig([\"company_name\"], client)} at ${time} `}\n

      \n

      Read more

      \n
      \n \n
        \n {fieldNames.map((field, index) => {\n if (field !== \"updated_at\" && field !== \"created_at\" && field !== \"id\") {\n let detailsChange = `${field} was ${createOrUpdate} ${\n log.version > 1\n ? `from ${\n JSON.stringify(jsDig([\"previous_data\", field], log)) && JSON.stringify(jsDig([\"previous_data\", field], log)).replace(/\\\\/g, \"\")\n }`\n : \"\"\n }\n ${log.version > 1 ? \" to \" : \"\"} \n ${JSON.stringify(valuesChange[index]).replace(/\\\\/g, \"\")} `;\n if (log.landing_page_id) {\n detailsChange = `Landing Page ${\n props.landing_page_groups.find((el) => el.id == log.landing_page_id).name\n } ${field} is ${createOrUpdate} ${\n log.version > 1\n ? `from ${\n JSON.stringify(jsDig([\"previous_data\", field], log)) &&\n JSON.stringify(jsDig([\"previous_data\", field], log)).replace(/\\\\/g, \"\")\n }`\n : \"\"\n } to ${JSON.stringify(valuesChange[index]).replace(/\\\\/g, \"\")}`;\n }\n if (log.table == \"campaign_groups\") {\n const campaign = props.campaign_groups.find((el) => el.id == log.campaign_id);\n detailsChange = `Campaign Group ${campaign.name} for ${campaign.section_type} ${field} is ${createOrUpdate} ${\n log.version > 1\n ? `from ${\n JSON.stringify(jsDig([\"previous_data\", field], log)) &&\n JSON.stringify(jsDig([\"previous_data\", field], log)).replace(/\\\\/g, \"\")\n }`\n : \"\"\n } to ${JSON.stringify(valuesChange[index]).replace(/\\\\/g, \"\")}`;\n }\n if (log.table == \"campaign_groups_social\") {\n const campaign = props.campaign_groups_social.find((el) => el.id == log.campaign_social_id);\n detailsChange = `Campaign Group ${campaign.name} for ${campaign.section_type} ${field} is ${createOrUpdate} ${\n log.version > 1\n ? `from ${\n JSON.stringify(jsDig([\"previous_data\", field], log)) &&\n JSON.stringify(jsDig([\"previous_data\", field], log)).replace(/\\\\/g, \"\")\n }`\n : \"\"\n } to ${JSON.stringify(valuesChange[index]).replace(/\\\\/g, \"\")}`;\n }\n return
      • {detailsChange}
      • ;\n }\n })}\n
      \n
      \n
      \n
    • \n );\n })}\n
    \n \n \n
    \n );\n}\n","import React from 'react'\nimport Tab from 'react-bootstrap/Tab'\nimport Nav from 'react-bootstrap/Nav'\nimport MailingLists from 'admin/mailing_lists//MailingLists'\nimport LeftIndent from 'utils/LeftIndent';\n\nclass Admin extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n tabLocation: \"\"\n }\n }\n componentDidMount()\n {\n let hashLoc = location.hash.replace(\"#\", \"\");\n if (hashLoc != \"\") {\n this.setState({tabLocation: hashLoc})\n }\n else {\n location.hash = \"#mailingLists\"\n this.setState({tabLocation: \"mailingLists\"})\n }\n }\n\n selectTab (key)\n {\n location.hash = \"#\" + key\n this.setState({tabLocation: key})\n }\n\n render() {\n return (\n <>\n

    Admin Settings

    \n this.selectTab(k)}>\n \n \n \n \n \n \n \n \n \n
    \n This tool is coming soon!?\n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default Admin;\n","import React from 'react'\nimport Tab from 'react-bootstrap/Tab'\nimport Col from 'react-bootstrap/Col'\nimport Row from 'react-bootstrap/Row'\nimport Nav from 'react-bootstrap/Nav'\nimport Form from 'react-bootstrap/Form'\nimport Button from 'react-bootstrap/Button'\n\nclass MailingList extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n name: \"\",\n description: \"\",\n emails: [],\n emailInputValue: \"\",\n isEditingName: false,\n isEditingDescription: false,\n descriptionInputValue: \"\",\n nameInputValue: \"\",\n }\n }\n componentDidMount()\n {\n this.setState({\n name: this.props.mailingList.name,\n description: this.props.mailingList.description,\n emails: this.props.mailingList.emails,\n descriptionInputValue: this.props.mailingList.description,\n nameInputValue: this.props.mailingList.name\n })\n }\n\n addEmail(email)\n {\n if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(email)))\n {\n DP_FLASH([{ type: 'danger', message: \"Invalid email\" }])\n return false;\n }\n\n const newEmails = [...this.state.emails];\n newEmails.push(email)\n\n $.ajax({\n url: \"/datapulse/admin/mailing_lists/\" + this.props.mailingList.id,\n type: \"put\",\n data: {\n mailing_list: {\n emails: newEmails\n }\n },\n dataType: 'json',\n success: (data) => {\n this.setState({ emails: newEmails });\n DP_FLASH([{ type: 'success', message: 'Email successfully added' }])\n },\n error: (data) => {\n DP_FLASH([{ type: 'danger', message: 'Failed to add email' }])\n }\n })\n }\n\n removeEmail(email)\n {\n const newEmails = this.state.emails.filter((e) => e != email);\n\n $.ajax({\n url: \"/datapulse/admin/mailing_lists/\" + this.props.mailingList.id,\n type: \"put\",\n data: {\n mailing_list: {\n emails: newEmails\n }\n },\n dataType: 'json',\n success: (data) => {\n this.setState({ emails: newEmails });\n DP_FLASH([{ type: 'success', message: 'Email successfully removed' }])\n },\n error: (data) => {\n DP_FLASH([{ type: 'danger', message: 'Failed to remove email' }])\n }\n })\n }\n\n updateDescription(desc) {\n $.ajax({\n url: \"/datapulse/admin/mailing_lists/\" + this.props.mailingList.id,\n type: \"put\",\n data: {\n mailing_list: {\n description: desc\n }\n },\n dataType: 'json',\n success: (data) => {\n this.setState({ description: desc });\n DP_FLASH([{ type: 'success', message: 'Description successfully changed' }])\n },\n error: (data) => {\n DP_FLASH([{ type: 'danger', message: 'Failed update description' }])\n }\n })\n }\n\n updateName(name) {\n $.ajax({\n url: \"/datapulse/admin/mailing_lists/\" + this.props.mailingList.id,\n type: \"put\",\n data: {\n mailing_list: {\n name: name\n }\n },\n dataType: 'json',\n success: (data) => {\n this.setState({ name: name });\n DP_FLASH([{ type: 'success', message: 'Name successfully changed' }])\n },\n error: (data) => {\n DP_FLASH([{ type: 'danger', message: 'Failed update name' }])\n }\n })\n }\n\n render() {\n return (\n
    \n
    \n
    {this.state.name}
    \n \n
    \n
    \n this.setState({nameInputValue: e.target.value})}\n >\n \n \n \n
    \n
    \n

    \n {this.state.description}\n \n

    \n
    \n this.setState({descriptionInputValue: e.target.value})}\n >\n \n \n \n \n
    \n
    \n \n \n this.setState({emailInputValue: e.target.value})} />\n \n \n \n \n \n
    \n
      \n {\n this.state.emails.map( (email) => {\n return (\n
    • \n \n {email}\n
    • \n )\n })\n }\n
    \n
    \n \n
    \n );\n }\n}\n\nexport default MailingList;","import React from 'react'\nimport Tab from 'react-bootstrap/Tab'\nimport Col from 'react-bootstrap/Col'\nimport Row from 'react-bootstrap/Row'\nimport Nav from 'react-bootstrap/Nav'\nimport Form from 'react-bootstrap/Form'\nimport Button from 'react-bootstrap/Button'\nimport MailingList from 'admin/mailing_lists/MailingList'\n\nclass MailingLists extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n mailingLists: []\n }\n\n this.deleteMailingList = this.deleteMailingList.bind(this);\n }\n componentDidMount() {\n this.setState({\n mailingLists: this.props.mailingLists\n })\n }\n\n deleteMailingList(list_id)\n {\n $.ajax({\n url: \"/datapulse/admin/mailing_lists/\" + list_id,\n type: \"DELETE\",\n data: \"\",\n dataType: 'json',\n success: (data) => {\n const newMailingLists = this.props.state.filter((l) => l.id != list_id);\n this.setState({ mailingLists: newMailingLists });\n DP_FLASH([{ type: 'success', message: 'Mailing list successfully deleted' }])\n },\n error: (data) => {\n DP_FLASH([{ type: 'danger', message: 'Failed delete mailing list' }])\n }\n })\n }\n\n createMailingList()\n {\n $.ajax({\n url: \"/datapulse/admin/mailing_lists\",\n type: \"POST\",\n data: {\n mailing_list: {\n name: \"New Mailing List\",\n description: \"description...\"\n }\n },\n dataType: 'json',\n success: (data) => {\n const newMailingLists = [...this.state.mailingLists]\n newMailingLists.push(data);\n this.setState({ mailingLists: newMailingLists });\n DP_FLASH([{ type: 'success', message: 'Mailing list successfully deleted' }])\n },\n error: (data) => {\n DP_FLASH([{ type: 'danger', message: 'Failed delete mailing list' }])\n }\n })\n }\n\n render() {\n return (\n
    \n
    \n \n
    \n \n {\n this.state.mailingLists.map((l) => {\n return (\n \n \n \n )\n })\n }\n \n
    \n );\n }\n}\n\nexport default MailingLists;\n","import React from 'react'\nimport Tab from 'react-bootstrap/Tab'\nimport Nav from 'react-bootstrap/Nav'\nimport LeftIndent from 'utils/LeftIndent'\nimport SubsByClient from 'alert_subscriptions/SubsByClient'\nimport SubsByUser from 'alert_subscriptions/SubsByUser'\n\nclass AlertSubscriptions extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n tabLocation: \"\"\n }\n }\n componentDidMount() {\n let hashLoc = location.hash.replace(\"#\", \"\");\n if (hashLoc != \"\") {\n this.setState({ tabLocation: hashLoc })\n }\n else {\n location.hash = \"#byClient\"\n this.setState({ tabLocation: \"byClient\" })\n }\n }\n\n addUser(email, sectionName, sectionId) {\n let returnedData = \"\";\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/subscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId\n },\n success: (data) => {\n returnedData = data;\n }\n })\n }\n return returnedData;\n }\n\n removeUser(email, sectionName, sectionId) {\n let removalSuccessful = false;\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/unsubscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId\n },\n success: () => {\n removalSuccessful = true;\n }\n })\n }\n return removalSuccessful;\n }\n\n searchClients(filter, clients) {\n filter = filter.toLowerCase();\n Object.values(clients).forEach((clientRow) => {\n let clientName = clientRow.getAttribute(\"data-client-name\").toLowerCase();\n if (!clientName.includes(filter)) {\n clientRow.style.display = \"none\";\n } else {\n clientRow.style.display = \"table-row\";\n }\n })\n }\n\n selectTab(key) {\n location.hash = \"#\" + key;\n this.setState({ tabLocation: key });\n }\n\n render() {\n return (\n <>\n

    Alert Subscriptions

    \n this.selectTab(k)}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n );\n }\n}\n\nexport default AlertSubscriptions;\n","import React from \"react\";\nimport Button from \"react-bootstrap/Button\";\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\nimport Tooltip from \"react-bootstrap/Tooltip\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport ConditionalWrapper from \"utils/ConditionalWrapper\";\nimport SubscribeUsersModal from \"alert_subscriptions/SubscribeUsersModal\";\n\nclass ManageSubsByClient extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tsubscribedUsers: this.props.subscribed_users,\n\t\t};\n\n\t\tthis.addUserCallback = this.addUserCallback.bind(this);\n\t}\n\n\tremoveUser(event) {\n\t\tvar email = event.target.parentElement.getAttribute(\"data-email\");\n\t\tif (email && email != \"\") {\n\t\t\tlet removalSuccessful = this.props.removeUser(\n\t\t\t\temail,\n\t\t\t\tthis.props.section_name,\n\t\t\t\tthis.props.section_id\n\t\t\t);\n\t\t\tif (removalSuccessful) {\n\t\t\t\tlet subscribedUsers = [...this.state.subscribedUsers];\n\t\t\t\tsubscribedUsers.splice(\n\t\t\t\t\tsubscribedUsers.findIndex((e) => {\n\t\t\t\t\t\treturn e == email;\n\t\t\t\t\t}),\n\t\t\t\t\t1\n\t\t\t\t);\n\t\t\t\tthis.setState({ subscribedUsers: subscribedUsers });\n\t\t\t}\n\t\t}\n\t}\n\n\t// Since this is the component that displays subscribed users, we need a callback to this component to update it's state\n\taddUserCallback(email) {\n\t\tif (email && email != \"\" && !this.state.subscribedUsers.includes(email)) {\n\t\t\tlet subscribedUsers = this.state.subscribedUsers;\n\t\t\tsubscribedUsers.push(email);\n\t\t\tthis.setState({ subscribedUsers: subscribedUsers });\n\t\t}\n\t}\n\n\trender() {\n\t\tlet users = \"\";\n\t\tif (this.state.subscribedUsers.length > 0) {\n\t\t\tusers = this.state.subscribedUsers.map((userEmail, index) => {\n\t\t\t\tlet user = this.props.users[userEmail];\n\t\t\t\tif (user) {\n\t\t\t\t\tlet avatar = (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t\tif (user.avatar) {\n\t\t\t\t\t\tavatar = (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t{user.name}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t this.removeUser(e)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{avatar}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t (\n\t\t\t\t\t\tThis service is disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{users}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport default ManageSubsByClient;\n","import React from 'react';\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger'\nimport Tooltip from 'react-bootstrap/Tooltip'\nimport ConditionalWrapper from 'utils/ConditionalWrapper'\nimport CustomFormCheck from 'utils/CustomFormCheck';\n\nclass ManageSubsByUser extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n subscribedUsers: this.props.subscribed_users,\n checked: this.props.subscribed_users.includes(this.props.selectedUser)\n };\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.selectedUser !== this.props.selectedUser) {\n this.setState({checked: this.state.subscribedUsers.includes(this.props.selectedUser)});\n }\n }\n\n removeUser() {\n this.setState({ checked: false });\n this.props.removeUser(this.props.selectedUser, this.props.section_name, this.props.section_id);\n let subscribedUsers = [...this.state.subscribedUsers];\n subscribedUsers.splice(subscribedUsers.findIndex((e) => { return e == this.props.selectedUser }), 1);\n this.setState({subscribedUsers: subscribedUsers});\n }\n\n addUser() {\n this.setState({ checked: true });\n this.props.addUser(this.props.selectedUser, this.props.section_name, this.props.section_id);\n let subscribedUsers = [...this.state.subscribedUsers];\n subscribedUsers.push(this.props.selectedUser);\n this.setState({subscribedUsers: subscribedUsers});\n }\n\n render() {\n return (\n \n (\n <>\n This service is disabled}\n >\n {children}\n \n \n )\n }\n >\n
    \n this.removeUser(e) : (e) => this.addUser(e)} />\n
    \n \n
    \n )\n }\n}\n\nexport default ManageSubsByUser;\n","import React from 'react';\n\nclass SubscribeToAlertsClientConfig extends React.Component {\n constructor(props) {\n super(props)\n this.searchUsers = this.searchUsers.bind(this);\n this.removeUser = this.removeUser.bind(this);\n this.addUser = this.addUser.bind(this);\n this.state = {\n subscribedUsers: this.props.subscribed_users,\n userSearchList: []\n };\n }\n\n removeUser(event) {\n var email = $(event.target.parentElement).text();\n if (email && email != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/unsubscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: this.props.section_name,\n section_id: this.props.section_id\n },\n success: () => {\n let subscribedUsers = [...this.state.subscribedUsers];\n subscribedUsers.splice(subscribedUsers.findIndex((e) => { return e == email }), 1);\n this.setState({ subscribedUsers: subscribedUsers, userSearchList: [] });\n $(\"#userListSearch\").val(\"\");\n }\n })\n }\n }\n\n addUser(event) {\n var email = $(event.target).text();\n if (email && email != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/subscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: this.props.section_name,\n section_id: this.props.section_id\n },\n success: (data) => {\n let subscribedUsers = [...this.state.subscribedUsers];\n subscribedUsers.push(data);\n this.setState({ subscribedUsers: subscribedUsers, userSearchList: [] });\n $(\"#userListSearch\").val(\"\");\n }\n })\n }\n }\n\n searchUsers(event) {\n var filter = event.target.value.trim();\n if (filter && filter != \"\") {\n $.ajax({\n type: \"GET\",\n url: \"/datapulse/user-access/search-users/\" + filter,\n dataType: 'json',\n contentType: \"application/json\",\n async: false,\n data: {\n section_name: this.props.section_name,\n section_id: this.props.section_id\n },\n success: (data) => {\n this.setState({ userSearchList: data });\n }\n })\n }\n }\n\n render() {\n let section = this.props.section_name.match(/[A-Z][a-z]+/g)[0];\n if (section == \"Seo\") {\n section = \"SEO\";\n }\n let users = this.state.subscribedUsers.map((userEmail, index) => {\n return (\n
  • \n this.removeUser(e)}>\n {userEmail}\n
  • \n )\n });\n let userSearchList = this.state.userSearchList.map((userEmail, index) => {\n return (\n this.addUser(e)}>\n \n {userEmail}\n \n )\n })\n\n return (\n \n
    Subscribe to {section} Alerts
    \n
    \n this.searchUsers(e)} />\n \n
    \n {userSearchList}\n
    \n
    \n
    \n
      \n {users}\n
    \n
    \n
    \n )\n }\n}\n\nexport default SubscribeToAlertsClientConfig;\n","import React from 'react'\nimport Table from 'react-bootstrap/Table';\nimport ManageSubsByClient from 'alert_subscriptions/ManageSubsByClient';\n\nclass SubsByClient extends React.Component {\n constructor(props) {\n super(props);\n }\n\n searchClients(event) {\n let filter = event.target.value;\n let clients = document.getElementsByClassName(\"client-row-by-client\");\n this.props.searchClients(filter, clients);\n }\n\n render() {\n return (\n <>\n

    Subscriptions By Client

    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.props.clients.map((client) => {\n console.log(client)\n return (\n \n \n \n \n \n \n \n \n )\n })\n }\n \n
    \n Client Name\n
    \n \n this.searchClients(e)} />\n
    \n
    PPCSEO
    SearchSocialDisplayVideo

    {client.company_name}

    \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n )\n }\n}\n\nexport default SubsByClient;\n","import React from 'react'\nimport { Table, Row, Col, Form } from 'react-bootstrap';\nimport ManageSubsByUser from 'alert_subscriptions/ManageSubsByUser'\nimport DefaultAvatar from 'utils/DefaultAvatar'\nimport CustomAvatar from 'utils/CustomAvatar'\nimport jsDig from 'utils/jsDig'\n\nclass SubsByUser extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n selectedUser: jsDig([\"users\", this.props.defaultUser], this.props) ? this.props.defaultUser : Object.keys(this.props.users)[0],\n users: [],\n searchVisible: false\n };\n }\n\n toggleSearch(e) {\n let arrow = e.target.querySelector('.fas');\n if (arrow.classList.contains('fa-sort-up')) {\n arrow.classList.remove('fa-sort-up');\n arrow.classList.add('fa-sort-down');\n } else {\n arrow.classList.remove('fa-sort-down');\n arrow.classList.add('fa-sort-up');\n }\n this.setState({searchVisible: !this.state.searchVisible});\n }\n\n searchClients(event) {\n let filter = event.target.value;\n let clients = document.getElementsByClassName(\"client-row-by-user\");\n this.props.searchClients(filter, clients);\n }\n\n searchUsers(event) {\n let filter = event.target.value.toLowerCase();\n let filteredUsers = {};\n let count = 0;\n Object.keys(this.props.users).forEach((userEmail) => {\n let user = this.props.users[userEmail];\n // If less than 10 results displayed && name or email matches input\n if (count < 10 && (userEmail.toLowerCase().includes(filter) || user.name.toLowerCase().includes(filter))) {\n filteredUsers[userEmail] = user;\n count++;\n }\n });\n this.setState({ users: filteredUsers });\n }\n\n changeUser(event) {\n let email = event.target.getAttribute(\"data-email\");\n if (email && email != \"\") {\n this.setState({ selectedUser: email });\n }\n }\n\n render() {\n let usersList = this.state.users;\n let users = Object.keys(usersList).map((userEmail) => {\n let user = usersList[userEmail];\n return (\n this.changeUser(e)}>\n +\n {user.name}\n \n )\n })\n\n\n let selectedUser = this.props.users[this.state.selectedUser];\n let bigAvatar = \n if (selectedUser.avatar_big) {\n bigAvatar = \n }\n return (\n <>\n

    Subscriptions By User

    \n
    \n \n \n
    \n { bigAvatar }\n
    \n
    \n
    \n
    this.toggleSearch(e)}>\n

    {selectedUser.name}

    \n
    \n
    \n
    \n \n this.searchUsers(e)} />\n
    \n {users}\n
    \n
    \n
    \n
    \n \n
    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.props.clients.map((client) => {\n \n return (\n \n \n \n \n \n \n \n \n )\n })\n }\n \n
    \n Client Name\n
    \n \n this.searchClients(e)} />\n
    \n
    PPCSEO
    SearchSocialDisplayVideo

    {client.company_name}

    \n
    \n
    \n \n )\n }\n}\n\nexport default SubsByUser;\n","import React from \"react\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport { Row, Col, Form, Modal, Button } from \"react-bootstrap\";\n\nclass SubscribeUsersModal extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tshow: false,\n\t\t\tusers: this.props.users,\n\t\t\tnewSubs: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\t// Filter out users who are already subscribed\n\t\tlet unsubscribedUsers = {};\n\t\tObject.keys(this.state.users).forEach((userEmail) => {\n\t\t\tif (!this.props.subscribedUsers.includes(userEmail)) {\n\t\t\t\tunsubscribedUsers[userEmail] = this.props.users[userEmail];\n\t\t\t}\n\t\t});\n\t\tthis.setState({ users: unsubscribedUsers });\n\t}\n\ttoggleUser(e) {\n\t\tlet userEmail = e.target.getAttribute(\"data-email\");\n\t\tlet newSubs = this.state.newSubs;\n\t\tif (this.state.newSubs.includes(userEmail)) {\n\t\t\tnewSubs.splice(newSubs.indexOf(userEmail), 1);\n\t\t} else {\n\t\t\tnewSubs.push(userEmail);\n\t\t}\n\t\tthis.setState({ newSubs: newSubs });\n\t}\n\n\tsubscribeUsers(e) {\n\t\tthis.state.newSubs.forEach((userEmail) => {\n\t\t\tif (userEmail && userEmail != \"\") {\n\t\t\t\tlet data = this.props.addUser(\n\t\t\t\t\tuserEmail,\n\t\t\t\t\tthis.props.sectionName,\n\t\t\t\t\tthis.props.sectionId\n\t\t\t\t);\n\t\t\t\tthis.props.addUserCallback(userEmail);\n\t\t\t}\n\t\t});\n\t\tthis.setState({ show: false });\n\t\tlet sectionTitle = this.props.sectionName.split(\"Section\")[0];\n\t\tsectionTitle = sectionTitle == \"Seo\" ? \"SEO\" : sectionTitle;\n\t\t{\n\t\t\tthis.state.newSubs.length > 1\n\t\t\t\t? DP_FLASH([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmessage: `${this.state.newSubs.length} users were subscribed to ${this.props.clientName} - ${sectionTitle}`,\n\t\t\t\t\t\t},\n\t\t\t\t ])\n\t\t\t\t: DP_FLASH([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"success\",\n\t\t\t\t\t\t\tmessage: `${this.state.newSubs.length} user was subscribed to ${this.props.clientName} - ${sectionTitle}`,\n\t\t\t\t\t\t},\n\t\t\t\t ]);\n\t\t}\n\t}\n\n\tsearchUsers(e) {\n\t\tlet filter = e.target.value.toLowerCase();\n\t\tlet visibleUsers = {};\n\t\tObject.keys(this.props.users).forEach((userEmail) => {\n\t\t\tlet user = this.props.users[userEmail];\n\t\t\t// If the user is not subscribed already && their name or email matches input\n\t\t\tif (\n\t\t\t\t!this.props.subscribedUsers.includes(userEmail) &&\n\t\t\t\t(user.name.toLowerCase().includes(filter) ||\n\t\t\t\t\tuserEmail.toLowerCase().includes(filter))\n\t\t\t) {\n\t\t\t\tvisibleUsers[userEmail] = user;\n\t\t\t}\n\t\t});\n\t\tthis.setState({ users: visibleUsers });\n\t}\n\n\trender() {\n\n\t\tlet sectionTitle = this.props.sectionName.split(\"Section\")[0];\n\t\tsectionTitle = sectionTitle == \"Seo\" ? \"SEO\" : sectionTitle;\n\n\t\tlet newSubs = this.state.newSubs.map((userEmail) => {\n\t\t\tlet user = this.props.users[userEmail];\n\t\t\treturn (\n\t\t\t\t this.toggleUser(e)}\n\t\t\t\t>\n\t\t\t\t\t{user.name}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t});\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t this.setState({ show: true })}\n\t\t\t\t>\n\t\t\t\t\t+\n\t\t\t\t\n\t\t\t\t this.setState({ show: false })}\n\t\t\t\t>\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{`${this.props.clientName} - Add ${sectionTitle} Subscribers`}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t this.searchUsers(e)}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter a name or email address...\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t{Object.keys(this.state.users).map((userEmail) => {\n\t\t\t\t\t\t\t\t\t\t\tlet user = this.state.users[userEmail];\n\t\t\t\t\t\t\t\t\t\t\tlet avatar = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tif (user.avatar) {\n\t\t\t\t\t\t\t\t\t\t\t\tavatar = (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tlet selected = this.state.newSubs.includes(userEmail)\n\t\t\t\t\t\t\t\t\t\t\t\t? \"selected\"\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.toggleUser(e)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata-email={userEmail}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={selected}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{avatar}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {user.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {userEmail}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\tTo be subscribed:\n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{newSubs}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t this.setState({ show: false })}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t this.subscribeUsers(e)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tSubscribe users\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default SubscribeUsersModal;\n","import React, { useState } from \"react\";\nimport { Button, Modal } from \"react-bootstrap\";\nimport Counter from \"utils/Counter\";\n\nfunction AlertSnoozeModal(props) {\n\tconst [show, setShow] = useState(false);\n\tconst [count, setCount] = useState(7);\n\tconst [snoozed, setSnooze] = useState(false);\n\tconst handleClose = () => setShow(false);\n\tconst handleShow = () => setShow(true);\n\tconst snoozeSrc = require(\"images/icons/snooze-icon.png\");\n\tlet scriptName = props.alert.script_name ? (props.alert.script_name\n\t\t.split(\"_\")\n\t\t.map((a) => {\n\t\t\treturn a.charAt(0).toUpperCase() + a.substring(1);\n\t\t})\n\t\t.join(\" \")) : \"\";\n\n\tconst increment = () => {\n\t\tsetCount((prevCount) => count + 1);\n\t};\n\n\tconst decrement = () => {\n\t\tif (count > 1) {\n\t\t\tsetCount((prevCount) => count - 1);\n\t\t}\n\t};\n\n\tconst snoozeAlert = () => {\n\t\tsetShow(false);\n\t\tsetSnooze(true);\n\t\tprops.snoozeAlert(props.alert.id, count, props.alert.script_name);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t{props.showBtnText && <>{snoozed ? \"Snoozed\" : \"Snooze\"}}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tSnooze Alert\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{`Snooze ${scriptName} for:`}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport default AlertSnoozeModal;\n","import React from \"react\";\nimport AlertSummary from \"alerts/alert_summary/AlertSummary\";\nimport AccountAlerts from \"alerts/account_alerts/AccountAlerts\";\n\nclass Alerts extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t}\n\n\tsnoozeAlert = (alertId, daysToSnooze, scriptName) => {\n\t\tvar daysToSnooze = parseInt(daysToSnooze) || 0;\n\t\tif (daysToSnooze > 0) {\n\t\t\t$.ajax({\n\t\t\t\ttype: \"PATCH\",\n\t\t\t\turl: \"/datapulse/alerts/snooze/\" + alertId,\n\t\t\t\tdata: {\n\t\t\t\t\tid: alertId,\n\t\t\t\t\tdays_to_snooze: daysToSnooze,\n\t\t\t\t\tscript_name: scriptName,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t};\n\n\tresolveAlert = (alertId, resolved) => {\n\t\t$.ajax({\n\t\t\ttype: \"PATCH\",\n\t\t\turl: \"/datapulse/alerts/\" + alertId,\n\t\t\tdata: {\n\t\t\t\tid: alertId,\n\t\t\t\tresolved: resolved,\n\t\t\t\tresolved_by: this.props.userEmail,\n\t\t\t},\n\t\t});\n\t};\n\n\tresolveAll = (ids, refresh, redirectUrl) => {\n\t\t$.ajax({\n\t\t\ttype: \"GET\",\n\t\t\turl: \"/datapulse/resolve-all\",\n\t\t\tdata: {\n\t\t\t\talert_ids: ids,\n\t\t\t\trefresh: refresh,\n\t\t\t\tredirect_url: redirectUrl,\n\t\t\t},\n\t\t});\n\t};\n\n\trender() {\n\t\tlet AlertView;\n\t\tif (this.props.view == \"account_alerts\") {\n\t\t\tAlertView = AccountAlerts;\n\t\t} else if (this.props.view == \"alert_summary\") {\n\t\t\tAlertView = AlertSummary;\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default Alerts;\n","import React from \"react\";\nimport AlertList from \"alerts/account_alerts/AlertList\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport RandomQuoteGenerator from \"utils/RandomQuoteGenerator\";\nimport { Button } from \"react-bootstrap\";\n\nclass AccountAlerts extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n allAlerts: [\n ...this.props.alerts.todaysAlerts,\n ...this.props.alerts.yesterdaysAlerts,\n ...this.props.alerts.otherAlerts,\n ],\n };\n }\n\n resolveAll = () => {\n let ids = this.state.allAlerts.map((alert) => {\n return alert.id;\n });\n this.props.resolveAll(ids, true, \"account-alerts\");\n };\n\n render() {\n const today = new Date();\n const yesterday = new Date(\n today.getFullYear(),\n today.getMonth(),\n today.getDate() - 1\n );\n const twoDaysAgo = new Date(\n today.getFullYear(),\n today.getMonth(),\n today.getDate() - 2\n );\n let quote = RandomQuoteGenerator(this.props);\n let allResolved =\n this.props.alerts.todaysAlerts.length == 0 &&\n this.props.alerts.yesterdaysAlerts.length == 0 &&\n this.props.alerts.otherAlerts.length == 0;\n return (\n <>\n
    \n

    \n {this.props.resolvedView ? \"Resolved Alerts\" : \"Alerts\"} for{\" \"}\n {this.props.clientName}\n

    \n {!this.props.resolvedView && !allResolved && (\n \n \n Resolve All\n \n )}\n
    \n\n {!this.props.resolvedView && allResolved ? (\n <>\n
    \n

    All set for now!

    \n
    \n

    \"{quote.text}\"

    \n
    - {quote.author}
    \n
    \n
    \n \n ) : (\n <>\n
    \n \n
    \n

    Today's Alerts ({today.toLocaleDateString()})

    \n \n
    \n
    \n
    \n
    \n \n
    \n

    Yesterday's Alerts ({yesterday.toLocaleDateString()})

    \n \n
    \n
    \n
    \n
    \n \n
    \n

    \n All Other Alerts (including and prior to{\" \"}\n {twoDaysAgo.toLocaleDateString()})\n

    \n \n
    \n
    \n
    \n \n )}\n \n );\n }\n}\n\nexport default AccountAlerts;\n","import React from 'react';\nimport AlertSnoozeModal from 'alerts/AlertSnoozeModal'\nimport { Button } from 'react-bootstrap';\n\nclass Alert extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n showDetails: false,\n resolved: this.props.alert.resolved\n }\n }\n\n toggleDetails() {\n this.setState({ showDetails: !this.state.showDetails });\n }\n\n toggleResolved() {\n this.props.resolveAlert(this.props.alert.id, !this.state.resolved);\n this.setState({ resolved: !this.state.resolved });\n }\n\n render() {\n let section = capitalize(this.props.alert.alert_type.toLowerCase())\n if (section == \"Seo\") {\n section = \"SEO\";\n }\n\n return (\n \n \n \n
    \n \n {this.props.alert.emergency &&\n \n }\n {this.props.alert.text}\n \n {this.props.alert.secondary_text &&\n <>\n this.toggleDetails()}>\n \n \n {this.state.showDetails ? \"Collapse Details\" : \"View Details\"}\n \n \n\n \n }\n
    \n \n \n
    \n {section}\n
    \n \n \n
    \n \n \n
    \n \n \n {this.state.showDetails &&\n \n \n
    \n
    \n \n \n \n }\n \n
    \n )\n }\n}\n\nexport default Alert;\n","import React from 'react';\nimport Alert from 'alerts/account_alerts/Alert';\n\nclass AlertList extends React.Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n let alerts = this.props.alerts.map((alert) => {\n let section = capitalize(alert.alert_type.toLowerCase())\n if (section == \"Seo\") {\n section = \"SEO\";\n }\n let shouldRender = false;\n if (section == \"SEO\" && this.props.userSubscriptions.showSeo) {\n shouldRender = true;\n } else if (section == \"Search\" && this.props.userSubscriptions.showSearch) {\n shouldRender = true;\n } else if (section == \"Social\" && this.props.userSubscriptions.showSocial) {\n shouldRender = true;\n } else if (section == \"Display\" && this.props.userSubscriptions.showDisplay) {\n shouldRender = true;\n } else if (section == \"Video\" && this.props.userSubscriptions.showVideo) {\n shouldRender = true;\n }\n\n if (shouldRender == true) {\n return (\n \n )\n }\n });\n\n return (\n <>\n {alerts.length > 0 ?\n
    \n \n \n {alerts}\n \n
    \n
    \n :\n
    \n No alerts for this time period\n
    \n }\n \n )\n }\n}\n\nexport default AlertList;\n","import React from 'react';\nimport AlertSnoozeModal from 'alerts/AlertSnoozeModal'\nimport { Button } from 'react-bootstrap';\n\nclass Alert extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n showDetails: false,\n alert: this.props.alert\n }\n }\n\n toggleDetails() {\n this.setState({ showDetails: !this.state.showDetails });\n }\n\n toggleResolved() {\n this.props.resolveAlert(this.props.alert.id, !this.state.alert.resolved);\n let alertTemp = this.state.alert;\n alertTemp.resolved = !this.state.alert.resolved\n this.setState({ alert: alertTemp });\n }\n\n render() {\n let section = capitalize(this.props.alert.alert_type.toLowerCase())\n if (section == \"Seo\") {\n section = \"SEO\";\n }\n\n return (\n \n \n \n
    \n \n {this.props.alert.emergency &&\n \n }\n {this.props.alert.text}\n \n {this.props.alert.secondary_text &&\n <>\n this.toggleDetails()}>\n \n \n Details\n \n \n \n }\n
    \n \n \n
    \n {section}\n
    \n \n \n
    \n \n \n
    \n \n \n {this.state.showDetails &&\n \n \n
    \n
    \n \n \n \n }\n
    \n )\n }\n}\n\nexport default Alert;\n","import React from \"react\";\nimport Alert from \"alerts/alert_summary/Alert\";\nimport { Button } from \"react-bootstrap\";\n\nclass AlertContainer extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\talerts: this.props.alerts,\n\t\t};\n\t}\n\n\tresolveAll = () => {\n\t\tlet ids = [];\n\t\tlet alerts = this.state.alerts.map((alert) => {\n\t\t\tids.push(alert.id);\n\t\t\tlet alertTemp = alert;\n\t\t\talertTemp.resolved = true;\n\t\t\treturn alertTemp;\n\t\t});\n\t\tthis.setState({ alerts: alerts });\n\t\tthis.props.resolveAll(ids, false);\n\t};\n\n\trender() {\n\t\tlet alerts = this.state.alerts.map((alert) => {\n\t\t\tlet section = capitalize(alert.alert_type.toLowerCase());\n\t\t\tif (section == \"Seo\") {\n\t\t\t\tsection = \"SEO\";\n\t\t\t}\n\t\t\tlet shouldRender = false;\n\t\t\tif (\n\t\t\t\tsection == \"SEO\" &&\n\t\t\t\tthis.props.userSubscriptions[this.props.companyName].showSeo\n\t\t\t) {\n\t\t\t\tshouldRender = true;\n\t\t\t} else if (\n\t\t\t\tsection == \"Search\" &&\n\t\t\t\tthis.props.userSubscriptions[this.props.companyName].showSearch\n\t\t\t) {\n\t\t\t\tshouldRender = true;\n\t\t\t} else if (\n\t\t\t\tsection == \"Social\" &&\n\t\t\t\tthis.props.userSubscriptions[this.props.companyName].showSocial\n\t\t\t) {\n\t\t\t\tshouldRender = true;\n\t\t\t} else if (\n\t\t\t\tsection == \"Display\" &&\n\t\t\t\tthis.props.userSubscriptions[this.props.companyName].showDisplay\n\t\t\t) {\n\t\t\t\tshouldRender = true;\n\t\t\t} else if (\n\t\t\t\tsection == \"Video\" &&\n\t\t\t\tthis.props.userSubscriptions[this.props.companyName].showVideo\n\t\t\t) {\n\t\t\t\tshouldRender = true;\n\t\t\t}\n\n\t\t\tif (shouldRender == true) {\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t\tlet companyLogo = this.props.logos[this.props.companyName];\n\t\treturn (\n\t\t\t<>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{companyLogo ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t
    {this.props.companyName}
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tResolve All\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{alerts}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t}\n}\n\nexport default AlertContainer;\n","import React from \"react\";\nimport AlertContainer from \"alerts/alert_summary/AlertContainer\";\n\nclass AlertList extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t}\n\n\trender() {\n\t\tlet alertList = Object.keys(this.props.alerts).map((companyName) => {\n\t\t\tlet alerts = this.props.alerts[companyName];\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t});\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{alertList.length > 0 ? (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{alertList}\n\t\t\t\t\t
    \n\t\t\t\t) : (\n\t\t\t\t\t
    \n\t\t\t\t\t\tNo alerts for this time period\n\t\t\t\t\t
    \n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default AlertList;\n","import React from \"react\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport AlertList from \"alerts/alert_summary/AlertList\";\nimport RandomQuoteGenerator from \"utils/RandomQuoteGenerator\";\nimport { Button } from \"react-bootstrap\";\nclass AlertSummary extends React.Component {\n constructor(props) {\n super(props);\n }\n\n refreshPage = () => {\n location.reload();\n };\n\n render() {\n const today = new Date();\n const yesterday = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 1);\n const twoDaysAgo = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 2);\n let quote = RandomQuoteGenerator(this.props);\n let allResolved =\n Object.keys(this.props.alerts.todaysAlerts).length == 0 &&\n Object.keys(this.props.alerts.yesterdaysAlerts).length == 0 &&\n Object.keys(this.props.alerts.otherAlerts).length == 0;\n return (\n <>\n
    \n

    Alert Summary

    \n {!allResolved && (\n \n )}\n
    \n\n {allResolved ? (\n <>\n
    \n

    All set for now!

    \n
    \n

    \"{quote.text}\"

    \n
    - {quote.author}
    \n
    \n
    \n \n ) : (\n <>\n
    \n \n
    \n

    Today's Alerts ({today.toLocaleDateString()})

    \n \n
    \n
    \n
    \n
    \n \n
    \n

    Yesterday's Alerts ({yesterday.toLocaleDateString()})

    \n \n
    \n
    \n
    \n
    \n \n
    \n

    All Other Alerts (including and prior to {twoDaysAgo.toLocaleDateString()})

    \n \n
    \n
    \n
    \n \n )}\n \n );\n }\n}\n\nexport default AlertSummary;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Button, Col, Row, Form, Container } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { capitalize } from \"lodash-es\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport PlatformSpecific from \"./PlatformSpecific\";\n\nexport default function ApiAccess(props) {\n const [mccId, setMccId] = useState(props.organization.google_ads_mcc_id);\n const [googleAds, setGoogleAds] = useState(props.api_platforms.google_ads);\n const [microsoftAds, setMicrosoftAds] = useState(props.api_platforms.microsoft_ads);\n const [googleAnalytics, setGoogleAnalytics] = useState(props.api_platforms.google_analytics);\n const [googleWebmasters, setGoogleWebmasters] = useState(props.api_platforms.google_webmasters);\n const [facebookAds, setFacebookAds] = useState(props.api_platforms.facebook_ads);\n const [tiktokAds, setTiktokAds] = useState(props.api_platforms.tiktok_ads);\n const [showAlert, setShowAlert] = useState(\n (googleAds.authenticated === true && mccId === null) ||\n (googleAds.authenticated === true && mccId === undefined) ||\n (googleAds.authenticated === true && mccId.length !== 10)\n );\n //Below are states being used to facilitate rerendering component when each service is deauthenticated\n const [deAuthGA, setDeAuthGA] = useState(true);\n const [deAuthGAN, setDeAuthGAN] = useState(true);\n const [deAuthGW, setDeAuthGW] = useState(true);\n const [deAuthMA, setDeAuthMA] = useState(true);\n const [deAuthFA, setDeAuthFA] = useState(true);\n const [deAuthTT, setDeAuthTT] = useState(true);\n //Below are states being used to facilitate rerendering component when each service is authorizing\n const [authGA, setAuthGA] = useState(false);\n const [authGAN, setAuthGAN] = useState(false);\n const [authGW, setAuthGW] = useState(false);\n const [authMA, setAuthMA] = useState(false);\n const [authFA, setAuthFA] = useState(false);\n const [authTT, setAuthTT] = useState(false);\n //Below are refs for each service to ensure they don't auto useEffect on mount\n const didMountRefGA = useRef(false);\n const didMountRefGAN = useRef(false);\n const didMountRefGW = useRef(false);\n const didMountRefMA = useRef(false);\n const didMountRefFA = useRef(false);\n const didMountRefTT = useRef(false);\n //Below states are used to facilitate initial stage on page load, needs to be separate from top state items to prevent infininte loop of rerenders\n const [initialGoogleAdsState, setInitialGoogleAdsState] = useState(props.api_platforms.google_ads.authenticated);\n const [initialMicrosoftAdsState, setInitialMicrosoftAdsState] = useState(props.api_platforms.microsoft_ads.authenticated);\n const [initialGoogleAnalyticsState, setInitialGoogleAnalyticsState] = useState(props.api_platforms.google_analytics.authenticated);\n const [initialGoogleWebmastersState, setInitialGoogleWebmastersState] = useState(props.api_platforms.google_webmasters.authenticated);\n const [initialFacebookAdsState, setInitialFacebookAdsState] = useState(props.api_platforms.facebook_ads.authenticated);\n const [initialTiktokAdsState, setInitialTiktokAdsState] = useState(props.api_platforms.tiktok_ads.authenticated);\n \n useEffect(() => {\n if (\n (googleAds.authenticated === true && mccId === null) ||\n (googleAds.authenticated === true && mccId === undefined) ||\n (googleAds.authenticated === true && mccId.length !== 10)\n ) {\n setShowAlert(true);\n window.scrollTo(0, document.body.scrollHeight);\n } else {\n setShowAlert(false);\n }\n }, [googleAds, mccId, showAlert]);\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], \"_blank\");\n if (platform.title === \"Google Ads\") {\n setAuthGA(!authGA);\n didMountRefGA.current = true;\n }\n if (platform.title === \"Google Analytics\") {\n setAuthGAN(!authGAN);\n didMountRefGAN.current = true;\n }\n if (platform.title === \"Google Webmasters\") {\n setAuthGW(!authGW);\n didMountRefGW.current = true;\n }\n if (platform.title === \"Facebook Ads\") {\n setAuthFA(!authFA);\n didMountRefFA.current = true;\n }\n if (platform.title === \"Microsoft Ads\") {\n setAuthMA(!authMA);\n didMountRefMA.current = true;\n }\n if (platform.title === \"Tiktok Ads\") {\n setAuthTT(!authTT);\n didMountRefTT.current = true;\n }\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], \"_blank\");\n //below items are changing state items so useEffect can pick up on it to rerender automatically\n if (platform.title === \"Google Ads\") {\n didMountRefGA.current = true;\n setDeAuthGA(!deAuthGA);\n setGoogleAds({...googleAds});\n }\n if (platform.title === \"Google Analytics\") {\n didMountRefGAN.current = true;\n setDeAuthGAN(!deAuthGAN);\n setGoogleAnalytics({...googleAnalytics});\n }\n if (platform.title === \"Google Webmasters\") {\n didMountRefGW.current = true;\n setDeAuthGW(!deAuthGW);\n setGoogleWebmasters({...googleWebmasters});\n }\n if (platform.title === \"Facebook Ads\") {\n didMountRefFA.current = true;\n setDeAuthFA(!deAuthFA);\n setFacebookAds({...facebookAds});\n }\n if (platform.title === \"Microsoft Ads\") {\n didMountRefMA.current = true;\n setDeAuthMA(!deAuthMA);\n setMicrosoftAds({...microsoftAds});\n }\n if (platform.title === \"Tiktok Ads\") {\n didMountRefTT.current = true;\n setDeAuthTT(!deAuthTT);\n setTiktokAds({...tiktokAds});\n }\n };\n\n const resetMessage = (platformName) => {\n return `Resetting ${capitalize(platformName)} token will require you to authenticate again`;\n };\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n );\n } else {\n if (platform.title == \"Facebook Ads\" || platform.title == \"Microsoft Ads\" || platform.title == \"Tiktok Ads\") {\n return (\n <>\n \n \n );\n } else {\n let googleBtn = require(\"images/google/btn_google_signin_light_normal_web.png\");\n googleBtn = authenticateFunction(platform)} src={`/datapulse${googleBtn}`} />;\n return
    authenticateFunction(platform)}>{googleBtn}
    ;\n }\n }\n };\n\n //Below items are for deauthorize state change to force rerender for each button\n useEffect(() => {\n if (props.api_platforms.google_ads.authenticated === true && googleAds.authenticated === true) {\n setGoogleAds((prevState) => ({ ...prevState, authenticated: props.api_platforms.google_ads.authenticated }));\n }\n if (props.api_platforms.google_ads.authenticated === false) {\n setGoogleAds((prevState) => ({ ...prevState, authenticated: props.api_platforms.google_ads.authenticated }));\n }\n }, [deAuthGA]);\n useEffect(() => {\n if (props.api_platforms.google_analytics.authenticated === true && googleAnalytics.authenticated === true) {\n setGoogleAnalytics((prevState) => ({ ...prevState, authenticated: props.api_platforms.google_analytics.authenticated }));\n }\n if (props.api_platforms.google_analytics.authenticated === false) {\n setGoogleAnalytics((prevState) => ({ ...prevState, authenticated: props.api_platforms.google_analytics.authenticated }));\n }\n }, [deAuthGAN]);\n useEffect(() => {\n if (props.api_platforms.google_webmasters.authenticated === true && googleWebmasters.authenticated === true) {\n setGoogleWebmasters((prevState) => ({ ...prevState, authenticated: props.api_platforms.google_webmasters.authenticated }));\n }\n if (props.api_platforms.google_webmasters.authenticated === false) {\n setGoogleWebmasters((prevState) => ({ ...prevState, authenticated: props.api_platforms.google_webmasters.authenticated }));\n }\n }, [deAuthGW]);\n useEffect(() => {\n if (props.api_platforms.facebook_ads.authenticated === true && facebookAds.authenticated === true) {\n setFacebookAds((prevState) => ({ ...prevState, authenticated: props.api_platforms.facebook_ads.authenticated}));\n }\n if (props.api_platforms.facebook_ads.authenticated === false) {\n setFacebookAds((prevState) => ({ ...prevState, authenticated: props.api_platforms.facebook_ads.authenticated}));\n }\n }, [deAuthFA]);\n useEffect(() => {\n if (props.api_platforms.microsoft_ads.authenticated === true && microsoftAds.authenticated === true) {\n setMicrosoftAds((prevState) => ({ ...prevState, authenticated: props.api_platforms.microsoft_ads.authenticated }));\n }\n if (props.api_platforms.microsoft_ads.authenticated === false) {\n setMicrosoftAds((prevState) => ({ ...prevState, authenticated: props.api_platforms.microsoft_ads.authenticated }));\n }\n }, [deAuthMA]);\n useEffect(() => {\n if (props.api_platforms.tiktok_ads.authenticated === true && tiktokAds.authenticated === true) {\n setTiktokAds((prevState) => ({ ...prevState, authenticated: props.api_platforms.tiktok_ads.authenticated }));\n }\n if (props.api_platforms.microsoft_ads.authenticated === false) {\n setTiktokAds((prevState) => ({ ...prevState, authenticated: props.api_platforms.tiktok_ads.authenticated }));\n }\n }, [deAuthTT]);\n\n //Below Items make Async calls to fetch authentication status for each platform and set it. Will set authentication status regardless\n //if its to authenticate or deauthenticate. Above useEffects are merely for triggering rerender on deauthenticate.\n\n //Google Ads\n useEffect(() => {\n if (didMountRefGA.current) {\n let count = 0;\n let googleAdsStatePlaceholder = props.api_platforms.google_ads.authenticated;\n\n async function getData() {\n fetch(`/datapulse/api-authentication-updater?service=google_ads`)\n .then((res) => res.json())\n .then((data) => (googleAdsStatePlaceholder = data.data))\n .then(function (newData) {\n if (newData == true) {\n setInitialGoogleAdsState(false);\n } else {\n setInitialGoogleAdsState(true);\n }\n });\n }\n let interval = setInterval(() => {\n if (count > 400 || googleAds.authenticated === true) {\n return () => {\n clearInterval(interval);\n };\n }\n count = count + 1;\n // console.log(\"count ga\", count);\n getData();\n if (initialGoogleAdsState !== googleAdsStatePlaceholder) {\n setGoogleAds((prevState) => ({ ...prevState, authenticated: googleAdsStatePlaceholder }));\n }\n }, 500);\n return () => {\n clearInterval(interval);\n };\n }\n }, [authGA, googleAds]);\n\n //Google Analytics\n useEffect(() => {\n if (didMountRefGAN.current) {\n let count = 0;\n let googleAnalyticsStatePlaceholder = props.api_platforms.google_analytics.authenticated;\n\n async function getData() {\n fetch(`/datapulse/api-authentication-updater?service=google_analytics`)\n .then((res) => res.json())\n .then((data) => (googleAnalyticsStatePlaceholder = data.data))\n .then(function (newData) {\n if (newData == true) {\n setInitialGoogleAnalyticsState(false);\n } else {\n setInitialGoogleAnalyticsState(true);\n }\n });\n }\n\n let interval = setInterval(() => {\n if (count > 400 || googleAnalytics.authenticated === true) {\n return () => {\n clearInterval(interval);\n };\n }\n count = count + 1;\n // console.log(\"count gan\", count);\n getData();\n if (initialGoogleAnalyticsState !== googleAnalyticsStatePlaceholder) {\n setGoogleAnalytics((prevState) => ({ ...prevState, authenticated: googleAnalyticsStatePlaceholder }));\n }\n }, 500);\n return () => {\n clearInterval(interval);\n };\n }\n }, [googleAnalytics, authGAN]);\n\n //Google Webmasters\n useEffect(() => {\n if (didMountRefGW.current) {\n let googleWebmastersStatePlaceholder = props.api_platforms.google_webmasters.authenticated;\n let count = 0;\n\n async function getData() {\n fetch(`/datapulse/api-authentication-updater?service=google_webmasters`)\n .then((res) => res.json())\n .then((data) => (googleWebmastersStatePlaceholder = data.data))\n .then(function (newData) {\n if (newData == true) {\n setInitialGoogleWebmastersState(false);\n } else {\n setInitialGoogleWebmastersState(true);\n }\n });\n }\n\n let interval = setInterval(() => {\n if (count > 400) {\n return;\n }\n count = count + 1;\n getData();\n if (initialGoogleWebmastersState !== googleWebmastersStatePlaceholder) {\n setGoogleWebmasters((prevState) => ({ ...prevState, authenticated: googleWebmastersStatePlaceholder }));\n }\n }, 500);\n return () => {\n clearInterval(interval);\n };\n }\n }, [googleWebmasters, authGW]);\n\n //Microsoft Ads\n useEffect(() => {\n if (didMountRefMA.current) {\n let microsoftAdsStatePlaceholder = props.api_platforms.microsoft_ads.authenticated;\n let count = 0;\n\n async function getData() {\n fetch(`/datapulse/api-authentication-updater?service=microsoft_ads`)\n .then((res) => res.json())\n .then((data) => (microsoftAdsStatePlaceholder = data.data))\n .then(function (newData) {\n if (newData == true) {\n setInitialMicrosoftAdsState(false);\n } else {\n setInitialMicrosoftAdsState(true);\n }\n });\n }\n\n let interval = setInterval(() => {\n if (count > 400) {\n return;\n }\n count = count + 1;\n getData();\n if (initialMicrosoftAdsState !== microsoftAdsStatePlaceholder) {\n setMicrosoftAds((prevState) => ({ ...prevState, authenticated: microsoftAdsStatePlaceholder, title: \"Microsoft Ads\" }));\n }\n }, 500);\n return () => {\n clearInterval(interval);\n };\n }\n }, [microsoftAds, authMA]);\n\n //Facebook Ads\n useEffect(() => {\n if (didMountRefFA.current) {\n let facebookAdsStatePlaceholder = props.api_platforms.facebook_ads.authenticated;\n let count = 0;\n\n async function getData() {\n fetch(`/datapulse/api-authentication-updater?service=facebook_ads`)\n .then((res) => res.json())\n .then((data) => (facebookAdsStatePlaceholder = data.data))\n .then(function (newData) {\n if (newData == true) {\n setInitialFacebookAdsState(false);\n } else {\n setInitialFacebookAdsState(true);\n }\n });\n }\n\n let interval = setInterval(() => {\n if (count > 400) {\n return;\n }\n count = count + 1;\n getData();\n if (initialFacebookAdsState !== facebookAdsStatePlaceholder) {\n setFacebookAds((prevState) => ({ ...prevState, authenticated: facebookAdsStatePlaceholder, title: \"Facebook Ads\" }));\n }\n }, 500);\n return () => {\n clearInterval(interval);\n };\n }\n }, [facebookAds, authFA]);\n\n //Tiktok Ads\n useEffect(() => {\n if (didMountRefTT.current) {\n let tiktokAdsStatePlaceholder = props.api_platforms.tiktok_ads.authenticated;\n let count = 0;\n\n async function getData() {\n fetch(`/datapulse/api-authentication-updater?service=tiktok_ads`)\n .then((res) => res.json())\n .then((data) => (tiktokAdsStatePlaceholder = data.data))\n .then(function (newData) {\n if (newData == true) {\n setInitialTiktokAdsState(false);\n } else {\n setInitialTiktokAdsState(true);\n }\n });\n }\n\n let interval = setInterval(() => {\n if (count > 400) {\n return;\n }\n count = count + 1;\n getData();\n if (initialTiktokAdsState !== tiktokAdsStatePlaceholder) {\n setTiktokAds((prevState) => ({ ...prevState, authenticated: tiktokAdsStatePlaceholder, title: \"Tiktok Ads\" }));\n }\n }, 500);\n return () => {\n clearInterval(interval);\n };\n }\n }, [tiktokAds, authTT]);\n\n return (\n <>\n \n \n \n
    \n
    Authenticate with the services you need to pull for your clients.
    \n
    \n \n {Object.keys(props.api_platforms).map((platformName, index) => {\n let apiTitle =\n props.api_platforms[platformName].title === \"Google Webmasters\" ? \"Google Search Console\" : props.api_platforms[platformName].title;\n let relatedState =\n platformName === \"google_ads\"\n ? googleAds\n : platformName === \"facebook_ads\"\n ? facebookAds\n : platformName === \"google_analytics\"\n ? googleAnalytics\n : platformName === \"microsoft_ads\"\n ? microsoftAds\n : platformName === \"google_webmasters\"\n ? googleWebmasters\n : tiktokAds;\n return (\n \n

    {apiTitle}

    \n {authButton(relatedState)}\n \n );\n })}\n
    \n \n
    \n\n \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Col, Row, Form } from \"react-bootstrap\";\n\nimport SaveChanges from \"./SaveChanges\";\n\nexport default function PlatformSpecific(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [semrushApiKey, setSemrushApiKey] = useState(props.organization.semrush_api_key);\n\n return (\n <>\n \n \n
    \n
    Platform specific data
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n Google Ads MCC ID (No '-'s):\n
    \n \n Please enter 10 digit MCC ID without dashes or spaces before continuing\n \n
    \n props.setMccId(e.target.value)}\n name=\"google_ads_mcc_id\"\n className={props.showAlert === true ? \"mcc-alert\" : \"\"}\n />\n \n \n
    \n SEMRush API Key:\n
    \n setSemrushApiKey(e.target.value)}\n name=\"semrush_api_key\"\n />\n \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Button, Col, Row, Form, Container } from \"react-bootstrap\";\n\n\nexport default function SaveChanges(props) {\n \n\n return (\n <>\n \n Save\n \n \n )\n}","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Row, Col, Button, Form } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function CampaignBuilder(props) {\n const loadingSpinner = require(\"images/generate-spinner.gif\");\n\n const buildCampaigns = () => {\n const selectedActId = $(\"#gads-account-picker\").val();\n const buildBtn = $(\".build-btn\");\n buildBtn.html(` Building`);\n buildBtn.removeClass(\"btn-success\");\n buildBtn.addClass(\"btn-building text-white\");\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/campaign-builder/build-campaigns/\",\n data: {\n account_id: selectedActId\n },\n success: function(response) {\n $('#results').text(response.message);\n buildBtn.html(' Built');\n },\n error: function(jqXHR, textStatus, errorThrown) {\n console.log(jqXHR, textStatus, errorThrown)\n $('#errors').html(`ERROR: ${errorThrown}
    ${JSON.parse(jqXHR.responseText).message}`);\n buildBtn.html('Build');\n buildBtn.removeClass(\"btn-building\");\n buildBtn.addClass(\"btn-success\");\n }\n });\n };\n\n return (\n <>\n \n \n \n

    Campaign Builder

    \n
    \n \n \n {props.google_ads_accounts ? props.google_ads_accounts.map((act) => {\n return (\n \n \n \n );\n }) : (\n <>\n )}\n \n buildCampaigns()}\n >\n Build\n \n
    \n
    \n

    This is a tool designed to help automate some of the initial onboarding steps. Clicking the button above will automatically make the following changes in the account of your choice:

    \n
      \n
    • \n Create the following budgets (if they do not already exist):\n
        \n
      • Branded
      • \n
      • Non-Brand
      • \n
      \n
    • \n
    • \n Create the following bid strategies (if they do not already exist):\n
        \n
      • Branded - BM - tCPA
      • \n
      • Branded - EM - tCPA
      • \n
      • Non-Brand - BM - tCPA
      • \n
      • Non-Brand - EM - tCPA
      • \n
      \n
    • \n
    • \n Create the following Negative Keyword Lists (if they do not already exist):\n
        \n
      • Account-Wide
      • \n
      • Brand Name - Apply To NB Campaigns
      • \n
      • Branded - Apply To Branded Campaigns
      • \n
      • Exact Match Keywords
      • \n
      \n
    • \n
    • \n Create the following campaigns (if they do not already exist):\n
        \n
      • Branded - EM
      • \n
      • Branded - BM
      • \n
      • Non-Brand - EM
      • \n
      • Non-Brand - BM
      • \n
      \n
    • \n
    • \n

      When the script creates new campaigns, it will apply the budget and bid strategy relevant to that campaign. It will also enable ad schedules & geo targeting for the USA and 50 states.

      \n

      Pre-existing campaigns will not be modified.

      \n
    • \n
    • \n Negative keyword Lists will be applied to any campaign that matches the list above.\n
    • \n
    \n
    \n \n
    \n \n \n
    \n
    \n \n
    \n
    \n \n )\n}","import React from \"react\";\nimport { Spring, config } from \"react-spring/renderprops\";\nimport Konva from \"konva\";\nimport { Arc, Stage, Line, Layer, Text, Rect, Shape } from \"react-konva\";\nimport ReactResizeDetector from \"react-resize-detector\";\nimport ResizeableStage from \"charts/ResizeableStage\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport ReactDOMServer from \"react-dom/server\";\nimport jsDig from \"utils/jsDig\";\nimport { startCase, camelCase, capitalize } from \"lodash\";\nimport GetFormatter from \"dashboards/GetFormatter\";\n\nfunction changeColor(color1, color2, percentage) {\n var hex = function (x) {\n x = x.toString(16);\n return x.length == 1 ? \"0\" + x : x;\n };\n\n var r = Math.ceil(parseInt(color1.substring(0, 2), 16) * percentage + parseInt(color2.substring(0, 2), 16) * (1 - percentage));\n var g = Math.ceil(parseInt(color1.substring(2, 4), 16) * percentage + parseInt(color2.substring(2, 4), 16) * (1 - percentage));\n var b = Math.ceil(parseInt(color1.substring(4, 6), 16) * percentage + parseInt(color2.substring(4, 6), 16) * (1 - percentage));\n\n return hex(r) + hex(g) + hex(b);\n}\n\nclass ChartBar extends React.Component {\n constructor(props) {\n super(props);\n\n this.textSizeScalar = 0.15;\n this.strokeScalar = 0.08;\n // The graph actually shows only spend except on hover\n this.bars = jsDig([\"spend\"], this.props.data) ? Object.keys(jsDig([\"spend\"], this.props.data)) : [];\n if (this.props.order) {\n this.bars = this.props.order;\n }\n this.total = 0;\n this.highestValue = 0;\n this.bars.forEach((bar) => {\n this.total += jsDig([\"spend\", bar], this.props.data);\n if (jsDig([\"spend\", bar], this.props.data) > this.highestValue) {\n this.highestValue = jsDig([\"spend\", bar], this.props.data);\n }\n });\n\n if (this.total === 0) this.total = 1;\n\n this.barPercentages = {};\n\n this.bars.forEach((bar) => {\n this.barPercentages[bar] = ReactDOMServer.renderToString();\n });\n\n this.state = {\n tooltipText: \"\",\n };\n }\n\n componentDidMount() {\n const tooltipElement = $(\"#\" + this.props.id).get(0);\n if (tooltipElement) {\n tooltipElement.setAttribute(\"data-toggle\", \"tooltip\");\n tooltipElement.setAttribute(\"data-trigger\", \"manual\");\n tooltipElement.setAttribute(\"data-placement\", \"auto\");\n tooltipElement.setAttribute(\"data-html\", \"true\");\n tooltipElement.setAttribute(\"data-original-title\", \"\");\n tooltipElement.setAttribute(\"data-custom-class\", \"geoMapTooltip\");\n tooltipElement.setAttribute(\n \"data-template\",\n '
    '\n );\n }\n }\n componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data) {\n this.data = this.props.data;\n this.textSizeScalar = 0.15;\n this.strokeScalar = 0.08;\n // The graph actually shows only spend except on hover\n this.bars = jsDig([\"spend\"], this.props.data) ? Object.keys(jsDig([\"spend\"], this.props.data)) : [];\n if (this.props.order) {\n this.bars = this.props.order;\n }\n this.total = 0;\n this.highestValue = 0;\n this.bars.forEach((bar) => {\n this.total += jsDig([\"spend\", bar], this.props.data);\n if (jsDig([\"spend\", bar], this.props.data) > this.highestValue) {\n this.highestValue = jsDig([\"spend\", bar], this.props.data);\n }\n });\n\n if (this.total === 0) this.total = 1;\n\n this.barPercentages = {};\n\n this.bars.forEach((bar) => {\n this.barPercentages[bar] = ReactDOMServer.renderToString();\n });\n // do not understand why I need the below line but we must have it\n this.setState({ tooltipText: \"\" });\n }\n }\n render() {\n return (\n
    \n {\n const wOrH = height > width ? width : height;\n const strokeWidth = this.strokeScalar * wOrH;\n const radius = wOrH / 2.1 - strokeWidth / 1.8;\n\n const hW = width / 2;\n const hH = height / 2;\n const axisLineWidth = height / 65;\n const xAxis = height * 0.9;\n const barPadding = width / 4 / this.bars.length;\n const barWidth = width / this.bars.length - barPadding;\n const interpolateBetweenBeginColor = \"42BA96\";\n return (\n <>\n \n {this.bars.map((bar, i) => {\n const spendSegment = jsDig([\"spend\", bar], this.props.data);\n return (\n \n \n \n {\n const barTitle = _.capitalize(bar);\n let newText = `${barTitle}
    `;\n this.props.metricsEnabled.forEach((metricKey, index) => {\n let Formatter = GetFormatter({ metricName: metricKey });\n const metricTitle = _.startCase(_.camelCase(metricKey));\n const metricValue = ReactDOMServer.renderToString();\n newText += `${metricTitle}: ${metricValue}${index < this.props.metricsEnabled.length ? \"
    \" : \"\"}`;\n });\n this.setState({ tooltipText: newText });\n const tooltipElement = $(\"#\" + this.props.id).get(0);\n tooltipElement.setAttribute(\"data-original-title\", this.state.tooltipText);\n $(\"#\" + this.props.id).tooltip(\"show\");\n }}\n onMouseLeave={() => {\n $(\"#\" + this.props.id).tooltip(\"hide\");\n }}\n />\n\n \n
    \n );\n })}\n \n );\n }}>\n
    \n );\n }\n}\n\nexport default ChartBar;\n","import React from 'react';\nimport { Spring, config } from 'react-spring/renderprops'\nimport Konva from 'konva';\nimport { Arc, Stage, Layer, Text, Shape, Circle } from 'react-konva';\nimport ReactResizeDetector from 'react-resize-detector';\nimport ResizeableStage from 'charts/ResizeableStage';\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport ReactDOMServer from 'react-dom/server';\n\nclass ChartGoal extends React.Component {\n constructor(props) {\n super(props);\n\n this.projectedStrokeScalar = .04\n this.currentStrokeScalar = .08\n this.metricNameTextSizeScalar = .15\n this.currentTextSizeScalar = .2\n this.projectedTextSizeScalar = .13\n this.goalTextSizeScalar = .13\n\n //clamp the angle at max 360 deg\n this.currentToGoalAngle = Math.min((this.props.goal > 0 ? this.props.current / this.props.goal : 0) * 360, 360)\n this.projectedToGoalAngle = Math.min((this.props.goal > 0 ? this.props.projected / this.props.goal : 0) * 360, 360)\n\n this.goodCurrentColor = \"#42ba96\"\n this.goodProjectedColor = \"#9ed8c6\"\n this.badCurrentColor = \"#c76650\"\n this.badProjectedColor = \"#da7159\"\n this.unlockedCurrentColor = \"#358fc1\"\n\n if (this.props.goalLocked) {\n if (this.props.negative) {\n this.currentColor = this.badCurrentColor;\n } else {\n this.currentColor = this.goodCurrentColor;\n }\n } else {\n this.currentColor = this.unlockedCurrentColor;\n }\n\n if (this.props.negative) {\n this.projectedColor = this.badProjectedColor;\n } else {\n this.projectedColor = this.goodProjectedColor;\n }\n }\n\n componentDidMount() {\n }\n\n render() {\n const Formatter = this.props.formatter;\n const formattedCurrent = ReactDOMServer.renderToString()\n const formattedProjected = ReactDOMServer.renderToString()\n const formattedGoal = ReactDOMServer.renderToString()\n return (\n
    \n {\n const wOrH = (height > width ? width : height);\n const projectedStrokeWidth = this.projectedStrokeScalar * wOrH;\n const currentStrokeWidth = this.currentStrokeScalar * wOrH;\n const radius = (wOrH / 2.1) - (currentStrokeWidth / 1.8);\n\n const hW = width / 2;\n const hH = height / 2;\n return (\n <>\n \n\n {!this.props.goal || this.props.goal == 0 ?\n {\n context.beginPath();\n context.font = `${radius * this.metricNameTextSizeScalar}px visby-medium`;\n context.fillStyle = \"#212348\";\n context.textAlign = 'center';\n context.fillText(this.props.metricName, width / 2, hH / 1.4, width);\n }}\n />\n :\n {\n context.beginPath();\n context.font = `${radius * this.metricNameTextSizeScalar}px visby-medium`;\n context.fillStyle = \"#212348\";\n context.textAlign = 'center';\n context.fillText(this.props.metricName, width / 2, hH - (radius / 2.2), width);\n }}\n />\n }\n\n {!this.props.goal || this.props.goal == 0 ?\n {\n context.beginPath();\n context.font = `${radius * this.currentTextSizeScalar }px visby-extra-bold`;\n context.fillStyle = \"#212348\";\n context.textAlign = 'center';\n // context.fillText(formattedCurrent, width / 2, hH - (radius / 6), width);\n context.fillText(formattedCurrent, width / 2, hH / 1, width);\n }}\n />\n :\n {\n context.beginPath();\n context.font = `${radius * this.currentTextSizeScalar}px visby-extra-bold`;\n context.fillStyle = \"#212348\";\n context.textAlign = 'center';\n context.fillText(formattedCurrent, width / 2, hH - (radius / 5.6), width);\n }}\n />\n }\n\n {!this.props.goal || this.props.goal == 0 ?\n {\n context.beginPath();\n context.font = `${radius * this.projectedTextSizeScalar}px nunito-regular`;\n context.fillStyle = \"#212348\";\n context.textAlign = 'center';\n context.fillText(`Projected: ${formattedProjected}`, width / 2, hH / 0.8, width);\n }}\n />\n :\n {\n context.beginPath();\n context.font = `${radius * this.projectedTextSizeScalar}px nunito-regular`;\n context.fillStyle = \"#212348\";\n context.textAlign = 'center';\n context.fillText(`Projected: ${formattedProjected}`, width / 2, hH + (radius / 5), width);\n }}\n />\n }\n\n {!this.props.goal || this.props.goal == 0 ?\n <>\n :\n {\n context.beginPath();\n context.font = `${radius * this.goalTextSizeScalar}px nunito-bold`;\n context.fillStyle = \"#212348\";\n context.textAlign = 'center';\n context.fillText(`Goal: ${formattedGoal}`, width / 2, hH + (radius / 2.3), width);\n }}\n />\n }\n\n { !this.props.goal || this.props.goal == 0 ? (\n <>\n ) : (\n <>\n \n {\n props => (\n \n )\n }\n \n \n {\n props => (\n \n )\n }\n \n \n )}\n \n )\n }}>\n \n
    \n )\n }\n}\n\nexport default ChartGoal;\n","import React from 'react';\nimport { Spring, config } from 'react-spring/renderprops';\nimport Konva from 'konva';\nimport { Arc, Rect, Circle, Stage, Layer, Text, Shape, Line } from 'react-konva';\nimport ReactResizeDetector from 'react-resize-detector';\nimport ResizeableStageLine from 'charts/ResizeableStageLine';\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport ReactDOMServer from 'react-dom/server';\nimport Row from 'react-bootstrap/Row';\nimport Col from 'react-bootstrap/Col';\nimport jsDig from 'utils/jsDig';\n\nclass ChartLine extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: this.props.expanded\n }\n\n this.projectedStrokeScalar = .04\n this.currentStrokeScalar = .08\n }\n\n componentDidMount() {\n }\n\n render() {\n return (\n
    \n {\n const TickFormatter = this.props.tickFormatter;\n\n const wOrH = (height > width ? width : height);\n const projectedStrokeWidth = this.projectedStrokeScalar * wOrH;\n const currentStrokeWidth = this.currentStrokeScalar * wOrH;\n\n const axisLineWidth = wOrH * .015;\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\n const hW = width / 2;\n const hH = height / 2;\n const xAxis = width * 0.99;\n const yAxis = height * 0.85;\n const xPadding = width * 0.14;\n const yPadding = height * 0.08;\n const xTickSpace = xAxis / (months.length + 3);\n const yTickSpace = yAxis / 12;\n const hTickWidth = xAxis * .02;\n const pointRadius = height * .015;\n\n const thisAndLastYearsData = Object.values(this.props.currentYearData).concat(Object.values(this.props.previousYearData));\n const lowestValue = Math.min(...thisAndLastYearsData);\n const highestValue = Math.max(...thisAndLastYearsData) * 1.3;\n const stepY = highestValue / 10;\n const yTicks = [];\n for (let i = 1; i <= 10; i++) {\n yTicks.push(stepY * i);\n }\n const currentYearPoints = [];\n const previousYearPoints = [];\n const yAxisUsed = yAxis - yTickSpace - yPadding;\n const firstTickY = yTickSpace + yPadding;\n\n if (yAxis > 0) {\n months.forEach((month, i) => {\n if (month in this.props.currentYearData) {\n if (this.props.currentYearData[month] > 0) {\n currentYearPoints.push(xPadding + (xTickSpace * (i + 1)), ((yAxisUsed) - ((this.props.currentYearData[month] / (highestValue / yAxisUsed))) + firstTickY))\n }\n }\n if (month in this.props.previousYearData) {\n if (this.props.previousYearData[month] > 0) {\n previousYearPoints.push(xPadding + (xTickSpace * (i + 1)), ((yAxisUsed) - ((this.props.previousYearData[month] / (highestValue / yAxisUsed))) + firstTickY))\n }\n }\n })\n }\n\n return (\n <>\n \n \n \n {\n months.map((month, index) => {\n return (\n \n \n \n \n )\n })\n }\n {\n yTicks.map((tick, index) => {\n return (\n \n \n )}\n align=\"right\"\n fontSize={Math.max(height * .019, 12)}\n width={width * .19}\n verticalAlign=\"middle\"\n height={height * .03}\n x={xPadding - (hTickWidth * 11)}\n y={(yAxis - (yTickSpace * (index + 1))) - (width * .008)}\n fill=\"#2c345b \"\n fontFamily=\"nunito-bold\"\n fontStyle=\"bold\"\n />\n \n )\n })\n }\n \n {\n months.map((month, i) => {\n if (month in this.props.previousYearData && previousYearPoints[(i * 2)]) {\n return (\n \n \n \n )\n }\n else\n {\n return (\n \n \n )\n }\n })\n }\n \n {\n months.map((month, i) => {\n if (month in this.props.currentYearData && currentYearPoints[(i * 2)]) {\n return (\n \n \n \n )\n }\n else\n {\n return (\n \n \n )\n }\n })\n }\n \n )\n }\n }>\n \n
    \n
    \n
    \n
     {this.props.currentYear}
    \n
    \n
    \n
    \n
     {this.props.previousYear}
    \n
    \n
    \n
    \n )\n }\n}\n\nexport default ChartLine;\n","import React from \"react\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport ReactDOMServer from \"react-dom/server\";\nimport { ReactSVG } from \"react-svg\";\nimport jsDig from \"utils/jsDig\";\nimport getCurrencyDetails from \"utils/getCurrencyDetails\";\nimport { startCase, camelCase } from \"lodash\";\nimport GetFormatter from \"dashboards/GetFormatter\";\n\nfunction changeColor(color1, color2, percentage) {\n var hex = function (x) {\n x = x.toString(16);\n return x.length == 1 ? \"0\" + x : x;\n };\n\n var r = Math.ceil(parseInt(color1.substring(0, 2), 16) * percentage + parseInt(color2.substring(0, 2), 16) * (1 - percentage));\n var g = Math.ceil(parseInt(color1.substring(2, 4), 16) * percentage + parseInt(color2.substring(2, 4), 16) * (1 - percentage));\n var b = Math.ceil(parseInt(color1.substring(4, 6), 16) * percentage + parseInt(color2.substring(4, 6), 16) * (1 - percentage));\n\n return hex(r) + hex(g) + hex(b);\n}\n\nconst mapUrl = require(\"images/us-with-labels.svg\");\n\nclass ChartLocation extends React.Component {\n constructor(props) {\n super(props);\n this.svgRef = React.createRef();\n this.max = jsDig([\"spend\"], this.props.data) ? Math.max(...Object.values(jsDig([\"spend\"], this.props.data))) : 0;\n }\n\n componentDidMount() {}\n\n setupSvg(svg) {\n // The graph actually shows only spend except on hover\n let data = jsDig([\"spend\"], this.props.data) ? jsDig([\"spend\"], this.props.data) : [];\n let statePercentages = {};\n let sumOfAllStateSpend = Object.values(data).reduce((accumlulator, item) => {\n return accumlulator + item;\n }, 0);\n\n Object.keys(data).forEach((key, i, arr) => {\n statePercentages[key] = (data[key] / sumOfAllStateSpend) * 100;\n });\n\n Array.from(svg.children).forEach((child, i, arr) => {\n if (child.getAttribute(\"sodipodi:nodetypes\") == \"cccc\" || child.getAttribute(\"sodipodi:nodetypes\") == \"ccc\") return;\n\n if (child.tagName == \"g\") {\n Array.from(child.children).forEach((secondaryChild, i, arr) => {\n let statePercentage = statePercentages[secondaryChild.id.substring(0, 2)];\n if (!statePercentage) statePercentage = 0;\n let scaledStatePercentage = statePercentage * 12;\n if (scaledStatePercentage >= 100) scaledStatePercentage = 100;\n let stateColor = changeColor(\"42BA96\", \"3291C1\", scaledStatePercentage / 100);\n secondaryChild.style.fill = \"#\" + stateColor;\n if (secondaryChild.id == \"MI-\" || secondaryChild.id == \"SP-\") {\n secondaryChild.id = \"MI\";\n }\n\n if (data[secondaryChild.id.substring(0, 2)] && $(\"#\" + secondaryChild.id).length > 0) {\n let tooltipMsg = secondaryChild.id.substring(0, 2) + \"
    \";\n this.props.metricsEnabled.forEach((metricKey, index) => {\n let Formatter = GetFormatter({ metricName: metricKey });\n const metricTitle = _.startCase(_.camelCase(metricKey));\n const metricValue = ReactDOMServer.renderToString();\n tooltipMsg += `${metricTitle}: ${metricValue}${index < this.props.metricsEnabled.length ? \"
    \" : \"\"}`;\n });\n\n $(\"#\" + secondaryChild.id)\n .get(0)\n .setAttribute(\"data-toggle\", \"tooltip\");\n $(\"#\" + secondaryChild.id)\n .get(0)\n .setAttribute(\"data-html\", \"true\");\n $(\"#\" + secondaryChild.id)\n .get(0)\n .setAttribute(\"data-trigger\", \"manual\");\n $(\"#\" + secondaryChild.id)\n .get(0)\n .setAttribute(\"title\", tooltipMsg);\n $(\"#\" + secondaryChild.id)\n .get(0)\n .setAttribute(\"data-placement\", \"auto\");\n $(\"#\" + secondaryChild.id)\n .get(0)\n .setAttribute(\n \"data-template\",\n '
    '\n );\n\n svg.querySelector(\"#\" + secondaryChild.id).addEventListener(\"mouseover\", (event) => {\n $(secondaryChild.id).tooltip(\"show\");\n });\n\n svg.querySelector(\"#\" + secondaryChild.id).addEventListener(\"mouseleave\", (event) => {\n $(\"#\" + secondaryChild.id).tooltip(\"hide\");\n });\n\n $(\"#\" + secondaryChild.id)\n .get(0)\n .addEventListener(\"mouseover\", (event) => {\n $(\"#\" + secondaryChild.id).tooltip(\"show\");\n });\n\n $(\"#\" + secondaryChild.id)\n .get(0)\n .addEventListener(\"mouseleave\", (event) => {\n $(\"#\" + secondaryChild.id).tooltip(\"hide\");\n });\n\n $(\"#\" + secondaryChild.id)\n .siblings(\"rect\")\n .on(\"mouseover\", () => {\n $(\"#\" + secondaryChild.id).tooltip(\"show\");\n });\n\n $(\"#\" + secondaryChild.id)\n .siblings(\"rect\")\n .on(\"mouseleave\", () => {\n $(\"#\" + secondaryChild.id).tooltip(\"hide\");\n });\n }\n });\n } else if (child.tagName == \"text\") {\n child.style.fill = \"white\";\n } else if (child.tagName == \"path\") {\n let statePercentage = statePercentages[child.id.substring(0, 2)];\n if (!statePercentage) statePercentage = 0;\n let scaledStatePercentage = statePercentage * 12;\n if (scaledStatePercentage >= 100) scaledStatePercentage = 100;\n let stateColor = changeColor(\"42BA96\", \"3291C1\", scaledStatePercentage / 100);\n child.style.fill = \"#\" + stateColor;\n\n if (data[child.id.substring(0, 2)]) {\n let tooltipMsg = child.id.substring(0, 2) + \"
    \";\n this.props.metricsEnabled.forEach((metricKey, index) => {\n let Formatter = GetFormatter({ metricName: metricKey });\n const metricTitle = _.startCase(_.camelCase(metricKey));\n const metricValue = ReactDOMServer.renderToString();\n tooltipMsg += `${metricTitle}: ${metricValue}${index < this.props.metricsEnabled.length ? \"
    \" : \"\"}`;\n });\n\n if ($(\"path#\" + child.id).get(0)) {\n $(\"path#\" + child.id)\n .get(0)\n .setAttribute(\"data-toggle\", \"tooltip\");\n $(\"path#\" + child.id)\n .get(0)\n .setAttribute(\"data-trigger\", \"manual\");\n $(\"path#\" + child.id)\n .get(0)\n .setAttribute(\"title\", tooltipMsg);\n $(\"path#\" + child.id)\n .get(0)\n .setAttribute(\"data-placement\", \"auto\");\n $(\"path#\" + child.id)\n .get(0)\n .setAttribute(\"data-html\", \"true\");\n $(\"path#\" + child.id)\n .get(0)\n .setAttribute(\n \"data-template\",\n '
    '\n );\n\n svg.querySelector(\"#\" + child.id).addEventListener(\"mouseover\", (event) => {\n $(\"path#\" + child.id).tooltip(\"show\");\n });\n\n svg.querySelector(\"#\" + child.id).addEventListener(\"mouseleave\", (event) => {\n $(\"path#\" + child.id).tooltip(\"hide\");\n });\n\n $(\"path#\" + child.id)\n .get(0)\n .addEventListener(\"mouseover\", (event) => {\n $(\"path#\" + child.id).tooltip(\"show\");\n });\n\n $(\"path#\" + child.id)\n .get(0)\n .addEventListener(\"mouseleave\", (event) => {\n $(\"path#\" + child.id).tooltip(\"hide\");\n });\n }\n }\n }\n });\n }\n render() {\n let currencyDetails = getCurrencyDetails(this.props.displayCurrency);\n return (\n
    \n
    \n this.setupSvg(svg)}\n beforeInjection={(svg) => {\n svg.setAttribute(\"style\", \"max-width: 100%\");\n }}\n />\n
    \n
    \n { currencyDetails.prefix }0{ currencyDetails.suffix }\n \n \n \n \n
    \n
    \n );\n }\n}\n\nexport default ChartLocation;\n","import React from \"react\";\nimport { Spring, config } from \"react-spring/renderprops\";\nimport Konva from \"konva\";\nimport { Arc, Stage, Layer, Text, Rect, Shape } from \"react-konva\";\nimport ReactResizeDetector from \"react-resize-detector\";\nimport ResizeableStage from \"charts/ResizeableStage\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport ReactDOMServer from \"react-dom/server\";\nimport jsDig from \"utils/jsDig\";\nimport { startCase, camelCase } from \"lodash\";\nimport GetFormatter from \"dashboards/GetFormatter\";\n\nconst colors = [\n \"#2c345b \",\n \"#3291c1\",\n \"#42ba96\",\n \"#dbb13b\",\n \"#a3a3a3\",\n \"#55588f\",\n \"#65abcf\",\n \"#6fc9ad\",\n \"#e1c474\",\n \"#cacaca\",\n \"#7b7da4\",\n \"#97c4db\",\n \"#9fd8c7\",\n \"#e7d29b\",\n];\nclass ChartPie extends React.Component {\n constructor(props) {\n super(props);\n\n this.textSizeScalar = 0.11;\n this.strokeScalar = 0.08;\n\n // The graph actually shows only spend except on hover\n this.slices = jsDig([\"spend\"], this.props.data) ? Object.keys(jsDig([\"spend\"], this.props.data)) : [];\n this.slices = this.slices.filter((slice) => jsDig([\"spend\", slice], this.props.data) > 0);\n this.total = 0;\n this.slices.forEach((slice) => {\n this.total += jsDig([\"spend\", slice], this.props.data);\n });\n if (this.total === 0) this.total = 1;\n\n this.slicePercentages = {};\n this.slices.forEach((slice) => {\n this.slicePercentages[slice] = jsDig([\"spend\", slice], this.props.data) / this.total;\n });\n\n this.state = {\n tooltipText: \"\",\n };\n }\n\n componentDidMount() {\n const tooltipElement = $(\"#\" + this.props.id).get(0);\n if (tooltipElement) {\n tooltipElement.setAttribute(\"data-toggle\", \"tooltip\");\n tooltipElement.setAttribute(\"data-trigger\", \"manual\");\n tooltipElement.setAttribute(\"data-placement\", \"auto\");\n tooltipElement.setAttribute(\"data-html\", \"true\");\n tooltipElement.setAttribute(\"data-original-title\", \"\");\n tooltipElement.setAttribute(\"data-custom-class\", \"geoMapTooltip\");\n tooltipElement.setAttribute(\n \"data-template\",\n '
    '\n );\n }\n }\n componentDidUpdate(prevProps) {\n if (prevProps.data !== this.props.data) {\n this.textSizeScalar = 0.11;\n this.strokeScalar = 0.08;\n\n // The graph actually shows only spend except on hover\n this.slices = jsDig([\"spend\"], this.props.data) ? Object.keys(jsDig([\"spend\"], this.props.data)) : [];\n this.slices = this.slices.filter((slice) => jsDig([\"spend\", slice], this.props.data) > 0);\n this.total = 0;\n this.slices.forEach((slice) => {\n this.total += jsDig([\"spend\", slice], this.props.data);\n });\n if (this.total === 0) this.total = 1;\n\n this.slicePercentages = {};\n this.slices.forEach((slice) => {\n this.slicePercentages[slice] = jsDig([\"spend\", slice], this.props.data) / this.total;\n });\n\n this.setState({\n tooltipText: \"\",\n });\n }\n }\n render() {\n return (\n
    \n {\n const wOrH = height > width ? width : height;\n const strokeWidth = this.strokeScalar * wOrH;\n const radius = wOrH / 2.1 - strokeWidth / 1.8;\n\n const hW = width / 2;\n const hH = height / 2;\n let allText = \"\";\n this.slices.forEach((slice) => {\n allText += `${slice.charAt(0).toUpperCase() + slice.slice(1)}: ${ReactDOMServer.renderToString(\n \n )}\\n`;\n });\n return (\n <>\n {this.slices.map((slice, i) => {\n let previousAccumulation = 0;\n this.slices.some((s) => {\n if (s == slice) return true;\n else {\n previousAccumulation += this.slicePercentages[s];\n }\n });\n\n const sliceAngle = this.slicePercentages[slice] * 360;\n const startAngle = previousAccumulation * 360;\n\n const textYPadding = height / 28;\n const spaceTaken = radius * this.textSizeScalar * this.slices.length + textYPadding * this.slices.length;\n\n return (\n \n \n {(props) => (\n {\n const sliceTitle = _.startCase(_.camelCase(slice));\n let newText = `${sliceTitle}
    `;\n this.props.metricsEnabled.forEach((metricKey, index) => {\n let Formatter = GetFormatter({ metricName: metricKey });\n const metricTitle = _.startCase(_.camelCase(metricKey));\n const metricValue = ReactDOMServer.renderToString();\n newText += `${metricTitle}: ${metricValue}${index < this.props.metricsEnabled.length ? \"
    \" : \"\"}`;\n });\n this.setState({ tooltipText: newText });\n const tooltipElement = $(\"#\" + this.props.id).get(0);\n tooltipElement.setAttribute(\"data-original-title\", this.state.tooltipText);\n $(\"#\" + this.props.id).tooltip(\"show\");\n }}\n onMouseLeave={() => {\n $(\"#\" + this.props.id).tooltip(\"hide\");\n }}\n />\n )}\n
    \n \n )}`}\n x={0}\n y={height / 2 - spaceTaken / 2 + (i * textYPadding + i * radius * this.textSizeScalar)}\n width={width}\n offsetX={-width / 2.6}\n height={radius / 10}\n fontSize={radius * this.textSizeScalar}\n align=\"left\"\n verticalAlign=\"middle\"\n fill=\"#212348\"\n fontFamily=\"visby-extra-bold\"\n />\n \n )}`}\n x={width / 3}\n y={height / 2 - spaceTaken / 2 + (i * textYPadding + i * radius * this.textSizeScalar)}\n width={width / 30}\n height={width / 30}\n fontSize={radius * this.textSizeScalar}\n align=\"left\"\n verticalAlign=\"middle\"\n fill={colors[i]}\n fontFamily=\"nunito-sans-bold\"\n />\n
    \n );\n })}\n \n );\n }}>\n
    \n );\n }\n}\n\nexport default ChartPie;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Spring, config } from \"react-spring/renderprops\";\nimport Konva from \"konva\";\nimport { Arc, Stage, Layer } from \"react-konva\";\n\nexport default function ResizeableStage(props) {\n\n \n const container = useRef();\n const [width, setWidth] = useState(props.pdfDim ? parseInt(props.pdfDim.split(\"x\")[0]) || 0 : 0,);\n const [height, setHeight] = useState(props.pdfDim ? parseInt(props.pdfDim.split(\"x\")[1]) || 0 : 0,);\n\n useEffect(() => {\n if (props.pdfDim) {\n // For PDF rendering, charts have a specific height and width preset\n setTimeout(() => setWidth(width + 1), setHeight(height + 1), 1000);\n } else {\n // For normal viewing (non-PDF) make sure chart renders within the boundary of it's container\n setTimeout(() => setWidth(container.current.offsetWidth), setHeight(container.current.offsetHeight), 1000);\n // Charts must resize responsively if the container is resized\n if (container.current != null) {\n new ResizeObserver(() => {\n setWidth(container.current.offsetWidth) ;\n setHeight(container.current.offsetHeight);\n }).observe(container.current)\n }\n }\n }, [])\n \n let height1 = props.pdfDim ? height :width > props.maxHeight ? props.maxHeight : width;\n\n return (\n
    \n \n {props.render(width, height1)}\n \n
    \n )\n}","import React, { useState, useEffect, useRef } from \"react\";\nimport { Spring, config } from \"react-spring/renderprops\";\nimport Konva from \"konva\";\nimport { Arc, Stage, Layer } from \"react-konva\";\n\nexport default function ResizeableStageLine(props) {\n\n \n const container = useRef();\n const [width, setWidth] = useState(props.pdfDim ? parseInt(props.pdfDim.split(\"x\")[0]) || 0 : 0,);\n const [height, setHeight] = useState(props.pdfDim ? parseInt(props.pdfDim.split(\"x\")[1]) || 0 : 0,); \n\n useEffect(() => {\n if (props.pdfDim) {\n // For PDF rendering, charts have a specific height and width preset\n setTimeout(() => setWidth(width + 1), setHeight(height + 1), 1000);\n } else {\n // For normal viewing (non-PDF) make sure chart renders within the boundary of it's container\n setTimeout(() => setWidth(container.current.offsetWidth), setHeight(container.current.offsetHeight), 1000);\n // Charts must resize responsively if the container is resized\n if (container.current != null) {\n new ResizeObserver(() => {\n setWidth(container.current.offsetWidth) ;\n setHeight(container.current.offsetHeight);\n }).observe(container.current)\n }\n }\n }, [])\n\n let height1 = props.pdfDim ? height :width > props.maxHeight ? props.maxHeight : width;\n\n return (\n
    \n \n {props.render(width, height1)}\n \n
    \n )\n}","import React, { useState, useEffect } from \"react\";\nimport { Container, Row, Col, Button, Table, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function AlertsGroup(props) {\n return (\n <>\n
    \n {props.service == \"seo\" ? (\n

    {props.platform.platformName}

    \n ) : (\n

    {props.platform.platformName}

    \n )}\n\n
    \n {props.platform.alerts.map((alert) => {\n return (\n
    \n
    \n \n \n
    \n {alert.options && (\n
    \n \n \n {alert.options.map((option) => {\n return (\n \n \n \n \n );\n })}\n \n
    {option.title}\n \n
    \n
    \n )}\n
    \n );\n })}\n
    \n
    \n \n );\n}\n","import React from \"react\";\n\nexport default function ConfigTabs(props) {\n const accountConfigPath = \"/datapulse/account-config\";\n const seoConfigPath = \"/datapulse/seo-config\";\n const ppcConfigPath = \"/datapulse/ppc-config\";\n\n return (\n <>\n
    \n
    \n {props.selectedTab == \"account\" ? (\n \n Account Configuration\n \n ) : (\n \n Account Config\n \n )}\n
    \n
    \n {props.selectedTab == \"ppc\" ? (\n \n PPC Config\n \n ) : (\n \n PPC Config\n \n )}\n
    \n
    \n {props.selectedTab == \"seo\" ? (\n \n SEO Config\n \n ) : (\n \n SEO Config\n \n )}\n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Button, Table, Form, Modal } from \"react-bootstrap\";\nimport allMetrics from \"data/allMetrics.js\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomDropdown from \"utils/CustomDropdown\";\n\nconst allMetricData = allMetrics();\n\nexport default function ConfigureGoalsModal(props) {\n const [show, setShow] = useState(false);\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const btnColor = props.service == \"seo\" ? \"success\" : \"info\";\n const metricList = props.metricList;\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\n const startDate = moment(\"2018-01-01\");\n const todaysDate = moment();\n const endDate = todaysDate.add(1, \"year\");\n const yearsDiff = Math.ceil(endDate.diff(startDate, \"years\", true));\n const yearsArray = [...Array(yearsDiff)].map((empty, index) => startDate.year() + index).reverse();\n return (\n <>\n \n\n \n \n Configure goal metrics\n \n \n \n \n
    \n \n \n \n \n \n \n \n
    \n For:\n \n {props.service === \"ppc\" ? (\n {\n props.setSelectedDashboardId(e.target.value);\n }}>\n {props.dashboards.map((dashboard) => {\n return (\n \n );\n })}\n \n ) : (\n \n )}\n
    \n
    \n \n
    \n \n \n

    Metrics to set goals for:

    \n
      \n {typeof metricList != \"undefined\" &&\n Object.keys(metricList).map((metricName, index) => {\n const metric = metricList[metricName];\n const checked = props.checkedMetrics && props.checkedMetrics.includes(metricName) ? true : false;\n if (metric) {\n return (\n
    • \n props.handleMetricCheck(props.selectedDashboardId, props.selectedYear, metricName, !checked)}\n />\n
    • \n );\n } else {\n return
    • {`${metricName} could not be found in metricData.json`}
    • ;\n }\n })}\n
    \n \n
    \n
    \n \n {\n const reset = confirm(\"Are you sure? this would clear away your input for goals\");\n if (reset) {\n let savedCheckedMetrics = {};\n props.dashboards.forEach((dashboard, index) => {\n savedCheckedMetrics[dashboard.id] = {};\n yearsArray.forEach((year) => {\n // Get a list of which metrics have been saved to the dashboard's goals\n let newDashboards = props.dashboards;\n const goals = allMetricData.metricsByDashboard[`${props.service}`].defaults[`${props.accountType}`].goalsAndProjections;\n savedCheckedMetrics[dashboard.id][year] = goals ? Object.keys(goals) : [];\n\n // Clear everything at first to remove old metrics from dashboard.goals\n newDashboards[index][\"goals\"][year] = {};\n months.forEach((month) => {\n newDashboards[index][\"goals\"][year][month] = {};\n });\n\n // Fill-in default metrics with blanks\n savedCheckedMetrics[dashboard.id][year].forEach((metricName) => {\n months.forEach((month) => {\n newDashboards[index][\"goals\"][year][month][metricName] = \"\";\n });\n });\n\n props.setCheckedMetrics({ ...savedCheckedMetrics });\n props.setDashboards([...newDashboards]);\n });\n });\n }\n }}>\n Reset this selection to default\n \n \n {props.onboarding ? (\n \n ) : (\n \n \n )}\n \n
    \n \n );\n}\n","import React from \"react\";\nimport { Row, Col, Form } from \"react-bootstrap\";\nimport getCurrencyDetails from \"utils/getCurrencyDetails\";\nimport jsDig from \"utils/jsDig.js\"\n\nexport default function CurrencySelector(props) {\n const currencies = [\n \"USD\",\n \"EUR\",\n \"JPY\",\n \"GBP\",\n \"AUD\",\n \"CAD\",\n \"CHF\",\n \"CNY\",\n \"HKD\",\n \"NZD\",\n \"AED\",\n \"INR\",\n \"SGD\",\n \"KRW\"\n ]\n const selectedCurrency = props.selectedCurrency ? props.selectedCurrency : currencies[0]\n\n return (\n <>\n
    \n props.setSelectedCurrency(e.target.value)}\n >\n {currencies.map((currency) => {\n const currencyDetails = getCurrencyDetails(currency)\n return (\n \n );\n })}\n \n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport allMetrics from \"data/allMetrics.js\";\nimport DashboardBuilderSection from \"client_config/DashboardBuilderSection\";\nimport { DragDropContext, Droppable } from \"react-beautiful-dnd\";\nimport jsDig from \"utils/jsDig.js\";\nimport { camelCase, snakeCase, capitalize } from \"lodash\";\n\nconst allMetricData = allMetrics();\nconst icons = {\n search: require(\"images/icons/Search-Icon.png\"),\n social: require(\"images/icons/Social-Icon.png\"),\n display: require(\"images/icons/Display-Icon.png\"),\n video: require(\"images/icons/Video-Icon.png\"),\n};\n\nexport default function DashboardBuilder(props) {\n const sectionList = jsDig([\"metricsByDashboard\", props.service, \"sections\"], allMetricData);\n const metricList = jsDig([\"metricsByDashboard\", props.service, \"metrics\"], allMetricData);\n const dashboardId = jsDig([\"id\"], props.dashboard) ? jsDig([\"id\"], props.dashboard) : 0;\n const [dashboardOrder, setDashboardOrder] = useState(jsDig([\"dashboardOrder\"], props.dashboard) ? jsDig([\"dashboardOrder\"], props.dashboard) : []);\n const defaultSectionOrder = dashboardOrder.length > 0 ? dashboardOrder.map((section) => section.name) : Object.keys(sectionList);\n const [dashboards, setDashboards] = useState(props.dashboards);\n const [sectionOrder, setSectionOrder] = useState(defaultSectionOrder);\n const onDragEnd = (result) => {\n const { destination, source, draggableId } = result;\n if (!destination) {\n return;\n }\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\n return;\n }\n\n let newOrder = [...sectionOrder];\n newOrder.splice(source.index, 1);\n newOrder.splice(destination.index, 0, draggableId);\n let newDashboardOrder = dashboardOrder;\n newDashboardOrder.sort((a, b) => {\n if (newOrder.indexOf(a.name) > newOrder.indexOf(b.name)) {\n return 1;\n } else return -1;\n });\n newDashboardOrder = newDashboardOrder.map((el, index) => {\n el.order = index;\n return el;\n });\n\n setSectionOrder(newOrder);\n if (props.onboarding && props.setDashboard) {\n let newDashboard = dashboards;\n newDashboard[props.currentDashboard].dashboardOrder = newDashboardOrder;\n props.setDashboard([...newDashboard]);\n }\n };\n useEffect(() => {\n setDashboards([...props.dashboards]);\n setDashboardOrder(jsDig([\"dashboardOrder\"], props.dashboard) ? jsDig([\"dashboardOrder\"], props.dashboard) : []);\n }, [props.dashboards]);\n\n return (\n <>\n \n \n {(provided) => (\n
    \n {sectionOrder.map((sectionName, index) => {\n let sectionData = jsDig([`${sectionName}`], sectionList);\n let metricData = jsDig([sectionName], metricList);\n let configData = dashboardOrder.find((section) => section.name == sectionName);\n let defaultMetrics = jsDig([\"metricsByDashboard\", props.service, \"defaults\", props.accountType, sectionName], allMetricData);\n // We can't store campaign group information in allMetrics.js because they are dynamic, we need to get them from props\n if (props.service == \"ppc\" && sectionName == \"campaignGroups\" && props.campaignGroups) {\n metricData = {};\n Object.keys(props.campaignGroups).forEach((subservice) => {\n props.campaignGroups[subservice].forEach((campaignGroup) => {\n const icon = `/datapulse${icons[subservice]}`;\n const campaignGroupName = jsDig([\"name\"], campaignGroup);\n if (campaignGroupName) {\n metricData[camelCase(campaignGroupName)] = {\n icon: icon,\n name: { shortened: campaignGroupName, title: campaignGroupName, snakeCase: snakeCase(campaignGroupName) },\n };\n }\n });\n });\n }\n if (props.service == \"ppc\" && sectionName == \"performanceByChannel\" && props.performanceByChannel) {\n metricData = {};\n Object.keys(props.performanceByChannel).forEach((subservice) => {\n if (props.performanceByChannel[subservice]) {\n const icon = `/datapulse${icons[subservice]}`;\n metricData[subservice] = {\n icon: icon,\n name: { shortened: capitalize(subservice), title: capitalize(subservice), snakeCase: subservice },\n };\n }\n });\n }\n return (\n \n );\n })}\n {provided.placeholder}\n
    \n )}\n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Button, Collapse } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport jsDig from \"utils/jsDig.js\";\nimport metricCanBeBuilt from \"utils/metricCanBeBuilt.js\";\nimport { useEffect } from \"react\";\nconst handleSrc = require(\"images/icons/ui-handle.png\");\nconst boxHandle = (\n <>\n \n \n \n);\n\nexport default function DashboardBuilderSection(props) {\n const year = new Date().getFullYear();\n const [isChecked, setIsChecked] = useState(jsDig([\"enabled\"], props.configData) === false ? false : true);\n\n const [clientDashboardOrder, setClientDashboardOrder] = useState(props.dashboards[props.currentDashboard].dashboardOrder);\n const [dashboards, setDashboards] = useState(props.dashboards);\n\n const changeHelper = () => {\n setIsChecked((isChecked) => !isChecked);\n console.log(isChecked);\n };\n\n const disableHelper = (metricName, id) => {\n const sections = [\"searchSection\", \"displaySection\", \"socialSection\", \"videoSection\", \"seoSection\", \"ppcSection\"];\n if (props.onboarding && props.configData.enabled === false) {\n return true;\n }\n if (!props.onboarding && isChecked === false) {\n return true;\n }\n if (props.sectionName === \"goalsAndProjections\") {\n if (id === 0) {\n let disabled = true;\n sections.forEach((section) => {\n if (props[section] && jsDig([section, \"goals\", year], props)) {\n const monthKeys = Object.keys(props[section].goals[year]);\n const allMetrics = monthKeys.map((month) => {\n return Object.keys(props[section].goals[year][month]);\n });\n let uniqueMetrics = new Set(allMetrics.flat());\n uniqueMetrics = Array.from(uniqueMetrics);\n if (uniqueMetrics.includes(metricName)) {\n disabled = false;\n }\n }\n });\n return disabled;\n } else if (props.service !== \"seo\") {\n let disabled = true;\n\n sections.forEach((section) => {\n if (props[section]) {\n let order = props[section].campaign_group_order.indexOf(id);\n if (\n jsDig([section, \"campaign_groups\", order, \"goals\", year], props) === undefined ||\n jsDig([section, \"campaign_groups\", order, \"goals\", year], props) === null\n ) {\n return true;\n } else {\n const monthKeys = Object.keys(jsDig([section, \"campaign_groups\", order, \"goals\", year], props));\n const allMetrics = monthKeys.map((month) => {\n return Object.keys(jsDig([section, \"campaign_groups\", order, \"goals\", year, month], props));\n });\n let uniqueMetrics = new Set(allMetrics.flat());\n uniqueMetrics = Array.from(uniqueMetrics);\n if (uniqueMetrics.includes(metricName)) {\n disabled = false;\n }\n }\n }\n });\n return disabled;\n } else {\n {\n let disabled = true;\n\n sections.forEach((section) => {\n if (props[section]) {\n let order = props[section].landing_page_group_order.indexOf(id);\n if (\n jsDig([section, \"landing_page_groups\", order, \"goals\", year], props) === undefined ||\n jsDig([section, \"landing_page_groups\", order, \"goals\", year], props) === null\n ) {\n return true;\n } else {\n const monthKeys = Object.keys(jsDig([section, \"landing_page_groups\", order, \"goals\", year], props));\n const allMetrics = monthKeys.map((month) => {\n return Object.keys(jsDig([section, \"landing_page_groups\", order, \"goals\", year, month], props));\n });\n let uniqueMetrics = new Set(allMetrics.flat());\n uniqueMetrics = Array.from(uniqueMetrics);\n if (uniqueMetrics.includes(metricName)) {\n disabled = false;\n }\n }\n }\n });\n return disabled;\n }\n }\n }\n };\n const [showConfig, setShowConfig] = useState(false);\n const arrowClass = showConfig ? \"fa-caret-down\" : \"fa-caret-right\";\n const fieldNames = `[dashboard_builder][${props.service}][${props.dashboardId}][${props.sectionName}]`;\n const fieldIds = `${props.service}_dashboard_${props.dashboardId}_${props.sectionData.name.snakeCase}`;\n const resetToDefault = () => {\n let allCheckboxes = $(`input[name*=\"${fieldNames}[metrics_data]\"]`);\n allCheckboxes.prop(\"checked\", false);\n Object.keys(props.defaultMetrics).forEach((metricName) => {\n let defaultCheckbox = $(`input[name*=\"${fieldNames}[metrics_data][${metricName}]\"]`);\n defaultCheckbox.prop(\"checked\", true);\n if (props.onboarding && props.setDashboard) {\n let newDashboardOrder = dashboards[props.currentDashboard].dashboardOrder;\n newDashboardOrder[props.index] = newDashboardOrder[props.index] || {};\n newDashboardOrder[props.index].metrics_data = newDashboardOrder[props.index].metrics_data || {};\n newDashboardOrder[props.index].metrics_data[metricName] = \"1\";\n let newDashboard = dashboards;\n newDashboard[props.currentDashboard].dashboardOrder = newDashboardOrder;\n props.setDashboard([...newDashboard]);\n }\n });\n };\n useEffect(() => {\n setDashboards([...props.dashboards]);\n setIsChecked(\n jsDig(\n [\"enabled\"],\n props.dashboards.find((el) => el.id == props.dashboardId).dashboardOrder.find((section) => section.name == props.sectionName)\n )\n );\n setClientDashboardOrder(props.dashboards[props.currentDashboard].dashboardOrder);\n }, [props.dashboards]);\n\n return (\n <>\n \n \n {(provided) => (\n
    \n
    \n {boxHandle}\n
    \n
    \n
    \n {props.onboarding && dashboards !== undefined ? (\n ${props.sectionData.name.title}`}\n checked={jsDig([props.currentDashboard, \"dashboardOrder\", props.index, \"enabled\"], dashboards)}\n onChange={(e) => {\n let newDashboardOrder = dashboards[props.currentDashboard].dashboardOrder;\n newDashboardOrder[props.index] = newDashboardOrder[props.index] || {};\n if (newDashboardOrder[props.index].enabled === true) {\n newDashboardOrder[props.index].enabled = false;\n } else {\n newDashboardOrder[props.index].enabled = true;\n }\n\n if (props.onboarding && props.setDashboard) {\n let newDashboard = dashboards;\n newDashboard[props.currentDashboard].dashboardOrder = newDashboardOrder;\n props.setDashboard([...newDashboard]);\n }\n }}\n />\n ) : (\n ${props.sectionData.name.title}`}\n checked={isChecked}\n onChange={changeHelper}\n sendUncheckedValue\n />\n )}\n
    \n
    \n
    setShowConfig(!showConfig)}>\n

    Display configuration

    \n
    \n\n \n
    \n
      \n {props.metricData &&\n Object.entries(props.metricData)\n .map((el) => {\n return [el[1].name.title, el[0]];\n })\n .sort()\n .map((item) => {\n return item[1];\n })\n .map((metricName, index) => {\n let metric = props.metricData[metricName];\n if (metric) {\n metric.name.title = (metric.name.title.trim()[0].toUpperCase() + metric.name.title.trim().slice(1).toLowerCase())\n .replace(\"roas\", \"ROAS\")\n .replace(\"Cpc\", \"CPC\")\n .replace(\"Serp\", \"SERP\")\n .replace(\"ips\", \"IPs\")\n .replace(\"top\", \"Top\");\n if (props.service === \"seo\") {\n metric.name.title = (metric.name.title.trim()[0].toUpperCase() + metric.name.title.trim().slice(1).toLowerCase())\n .replace(\"(inflated)\", \"\")\n .replace(\"Gsc\", \"GSC\")\n }\n let label = metric.icon\n ? `${metric.name.title}`\n : props.sectionData.name.title === \"Spend Allocation\" && props.service === \"social\"\n ? metricName === \"spend\"\n ? metric.name.title\n : metric.name.title + \" *\"\n : metric.name.title;\n\n return (\n
      \n {metricCanBeBuilt(props.service, props.sectionName, metricName, props.subServiceDashboards, props.enabledServices) ? (\n
    • \n {props.onboarding ? (\n {\n let newDashboardOrder = dashboards[props.currentDashboard].dashboardOrder;\n if (!newDashboardOrder[props.index].metrics_data) newDashboardOrder[props.index].metrics_data = {};\n newDashboardOrder[props.index].metrics_data[`${metricName}`] =\n newDashboardOrder[props.index].metrics_data && newDashboardOrder[props.index].metrics_data[`${metricName}`] == \"1\"\n ? \"0\"\n : \"1\";\n if (props.onboarding && props.setDashboard) {\n let newDashboard = dashboards;\n newDashboard[props.currentDashboard].dashboardOrder = newDashboardOrder;\n props.setDashboard([...newDashboard]);\n }\n }}\n />\n ) : metricName == \"averagePosition\" ? (\n
      \n {\n let newDashboardOrder = dashboards[props.currentDashboard].dashboardOrder;\n\n if (!newDashboardOrder[props.index].metrics_data) newDashboardOrder[props.index].metrics_data = {};\n newDashboardOrder[props.index].metrics_data[`${metricName}`] =\n newDashboardOrder[props.index].metrics_data &&\n newDashboardOrder[props.index].metrics_data[`${metricName}`] == \"1\"\n ? \"0\"\n : \"1\";\n setClientDashboardOrder([...newDashboardOrder]);\n }}\n />\n
      \n ) : (\n {\n let newDashboardOrder = dashboards[props.currentDashboard].dashboardOrder;\n console.log(newDashboardOrder);\n if (!newDashboardOrder[props.index].metrics_data) newDashboardOrder[props.index].metrics_data = {};\n newDashboardOrder[props.index].metrics_data[`${metricName}`] =\n newDashboardOrder[props.index].metrics_data && newDashboardOrder[props.index].metrics_data[`${metricName}`] == \"1\"\n ? \"0\"\n : \"1\";\n setClientDashboardOrder([...newDashboardOrder]);\n console.log(clientDashboardOrder);\n }}\n />\n )}{\" \"}\n
    • \n ) : (\n
      \n \n
      \n )}\n
      \n );\n } else {\n return (\n
    • \n {`${metricName} not defined in metricData`}\n
    • \n );\n }\n })}\n
    \n
    \n \n {props.sectionData.name.title === \"Spend Allocation\" && props.service === \"social\" && (\n

    * Will populate only under day of week chart

    \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n );\n}\n","import _, { cloneDeep } from \"lodash\";\nimport React from \"react\";\nimport { Table, Form, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\n\n// TODO: make metrics calculated metrics calculatable\nexport default function GoalsTable(props) {\n let calculatorLarge = require(\"images/icons/calculator-large.png\");\n calculatorLarge = ;\n let calculatedMetric = [];\n switch (props.service) {\n case \"ppc\":\n calculatedMetric = [\"cpv\", \"viewRate\", \"viewCtr\", \"viewableCtr\", \"shopifyRoas\", \"shopifySubtotalRoas\", \"clickRoas\", \"totalRoas\", \"cpc\", \"ctr\", \"cvr\", \"videoCvr\", \"clickCpa\", \"totalCpa\", \"clickAov\", \"totalAov\", \"clickConversions\", \"clickRevenue\", \"totalConversions\", \"totalRevenue\"];\n break;\n case \"search\":\n calculatedMetric = [\"clickRoas\", \"cpc\", \"ctr\", \"cvr\", \"clickCpa\", \"clickAov\", \"clickConversions\", \"clickRevenue\"];\n break;\n case \"social\":\n calculatedMetric = [\"viewCtr\", \"clickRoas\", \"totalRoas\", \"viewRate\", \"cpc\", \"viewCtr\", \"ctr\", \"cvr\", \"clickCpa\", \"totalCpa\", \"clickAov\", \"totalAov\", \"clickConversions\", \"clickRevenue\", \"totalConversions\", \"totalRevenue\"];\n break;\n case \"display\":\n calculatedMetric = [\"cpsv\", \"clickRoas\", \"totalRoas\", \"cpc\", \"ctr\", \"cvr\", \"clickCpa\", \"totalCpa\", \"clickAov\", \"totalAov\", \"clickConversions\", \"clickRevenue\", \"totalConversions\", \"totalRevenue\"];\n break;\n case \"video\":\n calculatedMetric = [\"cpv\", \"viewRate\", \"viewCtr\", \"viewableCtr\", \"clickRoas\", \"totalRoas\", \"cpc\", \"ctr\", \"cvr\", \"videoCvr\", \"clickCpa\", \"totalCpa\", \"clickAov\", \"totalAov\", \"clickConversions\", \"clickRevenue\", \"totalConversions\", \"totalRevenue\"];\n break;\n }\n const metricCalculation = (e, metric, month) => {\n e.preventDefault();\n let newDashboards = props.dashboards;\n const thisMonth = newDashboards[props.index][\"goals\"][props.year][month];\n switch (metric) {\n case \"cpc\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"spend\"] / thisMonth[\"clicks\"]).toFixed(2);\n break;\n case \"cpv\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"spend\"] / thisMonth[\"views\"]).toFixed(2);\n break;\n case \"cpsv\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"spend\"] / thisMonth[\"inStoreVisits\"]).toFixed(2);\n break;\n case \"ctr\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = ((thisMonth[\"impressions\"] / thisMonth[\"clicks\"]) * 100).toFixed(2);\n break;\n case \"cvr\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = ((thisMonth[\"clickConversions\"] / thisMonth[\"clicks\"]) * 100).toFixed(2);\n break;\n case \"videoCvr\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = ((thisMonth[\"totalConversions\"] / thisMonth[\"views\"]) * 100).toFixed(2);\n break;\n case \"clickCpa\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"spend\"] / thisMonth[\"clickConversions\"]).toFixed(2);\n break;\n case \"totalCpa\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"spend\"] / thisMonth[\"totalConversions\"]).toFixed(2);\n break;\n case \"clickRevenue\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"clickRoas\"] * thisMonth[\"spend\"]).toFixed(0);\n break;\n case \"totalRevenue\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"totalRoas\"] * thisMonth[\"spend\"]).toFixed(0);\n break;\n case \"clickConversions\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"spend\"] / thisMonth[\"clickCpa\"]).toFixed(0);\n break;\n case \"totalConversions\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"spend\"] / thisMonth[\"totalCpa\"]).toFixed(0);\n break;\n case \"clickRoas\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"clickRevenue\"] / thisMonth[\"spend\"]).toFixed(2);\n break;\n case \"totalRoas\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"totalRevenue\"] / thisMonth[\"spend\"]).toFixed(2);\n break;\n case \"shopifyRoas\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"shopifyRevenue\"] / thisMonth[\"spend\"]).toFixed(2);\n break;\n case \"shopifySubtotalRoas\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"shopifySubtotalRevenue\"] / thisMonth[\"spend\"]).toFixed(2);\n break;\n case \"viewRate\":\n props.service == \"social\"\n ? (newDashboards[props.index][\"goals\"][props.year][month][metric] = ((thisMonth[\"views\"] / thisMonth[\"impressions\"]) * 100).toFixed(2))\n : (newDashboards[props.index][\"goals\"][props.year][month][metric] = ((thisMonth[\"views\"] / thisMonth[\"viewableImpressions\"]) * 100).toFixed(2));\n break;\n case \"viewRate\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = ((thisMonth[\"views\"] / thisMonth[\"viewableImpressions\"]) * 100).toFixed(2);\n break;\n case \"viewCtr\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = ((thisMonth[\"clicks\"] / thisMonth[\"views\"]) * 100).toFixed(2);\n break;\n case \"viewableCtr\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = ((thisMonth[\"clicks\"] / thisMonth[\"viewableImpressions\"]) * 100).toFixed(2);\n break;\n case \"clickAov\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"clickRevenue\"] / thisMonth[\"clickConversions\"]).toFixed(2);\n break;\n case \"totalAov\":\n newDashboards[props.index][\"goals\"][props.year][month][metric] = (thisMonth[\"totalRevenue\"] / thisMonth[\"totalConversions\"]).toFixed(2);\n break;\n }\n props.setDashboards([...newDashboards]);\n };\n return (\n <>\n {props.metricList && props.checkedMetrics && props.checkedMetrics.length > 0 ? (\n
    \n
    \n \n \n \n \n {props.checkedMetrics.map((metricName) => {\n const metric = props.metricList[metricName];\n if (metric) {\n return (\n \n );\n }\n })}\n \n \n \n {moment.monthsShort().map((month) => {\n return (\n \n \n {props.checkedMetrics.map((metricName) => {\n const metric = props.metricList[metricName];\n let newGoals = props.goals;\n if (props.onboarding && props.goals && props.setGoals) {\n // Populate with empty strings so we can save to db even if the input was not filled out\n newGoals[props.service][props.dashboard.id][props.year] = newGoals[props.service][props.dashboard.id][props.year] || {};\n newGoals[props.service][props.dashboard.id][props.year][month] = newGoals[props.service][props.dashboard.id][props.year][month] || {};\n newGoals[props.service][props.dashboard.id][props.year][month][metricName] =\n newGoals[props.service][props.dashboard.id][props.year][month][metricName] || \"\";\n }\n if (metric) {\n return (\n \n );\n }\n })}\n \n );\n })}\n \n
    \n

    {jsDig([\"name\", \"title\"], metric)}

    \n
    \n

    {`${month}.`}

    \n
    \n \n {\n newGoals[props.service][props.dashboard.id][props.year][month][metricName] = e.target.value;\n props.setGoals({ ...newGoals });\n }\n : (e) => {\n let newDashboards = props.dashboards;\n newDashboards[props.index][\"goals\"][props.year][month][metricName] = e.target.value;\n props.setDashboards([...newDashboards]);\n }\n }\n />\n {calculatedMetric.includes(metricName) ? (\n metricCalculation(e, metricName, month)}>\n {calculatorLarge}\n \n ) : (\n
    \n
    \n
    \n ) : (\n <>\n \n \n {platform === \"0\" && (\n <>\n
    \n Shopify URL\n
    \n setShopifyUrl(e.target.value)} />\n \n )}\n \n \n {platform === \"0\" &&\n <>\n \n \n

    If changing the URL you must press \"Save Changes\" before you can \"Authenticate\"

    \n \n \n
    \n \n {shopifyButton}\n \n \n }\n \n \n

    Capabilities

    \n \n
    \n \n \n \n
    \n Development\n
    \n \n \n \n \n
    \n \n \n \n \n \n \n
    \n Creative\n
    \n \n \n \n \n \n
    \n \n
    \n \n \n );\n}","import React, { useState } from \"react\";\nimport { Button, Col, Row, Form } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport NumberDropdown from \"utils/NumberDropdown\";\n\nexport default function Permissions(props) {\n const [isEnabled, setIsEnabled] = useState(\n props.client_account.custom_website_permissions_enabled ? props.client_account.custom_website_permissions_enabled : false\n );\n const [customPermissions, setCustomPermissions] = useState(\n jsDig([\"client_account\", \"custom_website_permissions\"], props)\n ? jsDig([\"client_account\", \"custom_website_permissions\"], props)\n : [{ id: uuidv4(), website: \"\", permission: 1 }]\n );\n const permissionHandler = (items) => {\n if (!isEnabled) {\n return;\n }\n setCustomPermissions(items);\n };\n return (\n
    \n \n \n
    \n

    Website Permissions

    \n
    \n \n \n

    \n Communicate website permissions from the client to the {props.organization.name} team below. Select your global settings to dictate the overall\n permissions for the website and then use the custom permissions fields if necessary to dictate anything that might vary from your global. For\n eample, if a client wants no changes made to the site but they are okay with changes to content specifically, set the Global permission to a\n 1, and then add 'Content' in the custom fields at a 2 or 3.\n

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

    Global permissions

    \n\n \n \n \n \n \n {\" \"}\n 4\n \n \n
    Free to make changes, no notification necessary
    \n \n
    \n \n \n \n \n \n {\" \"}\n 3\n \n \n
    Free to make changes with follow-up email summary
    \n \n
    \n \n \n \n \n \n {\" \"}\n 2\n \n \n
    All changes require prior approval
    \n \n
    \n \n \n \n \n \n {\" \"}\n 1\n \n \n
    \n {\" \"}\n No changes allowed, or exceptions only{\" \"}\n
    \n \n
    \n \n \n

    Custom permissions/exceptions

    \n \n setIsEnabled(!isEnabled)}\n id=\"websitepermissionenable\"\n name=\"custom_website_permissions_enabled\"\n checked={isEnabled}\n />\n
    Enable
    \n
    \n {customPermissions.map((item, idx) => {\n let website = item.website;\n\n return isEnabled ? (\n \n \n \n \n \n \n \n
    \n \n {\" \"}\n
    Set to:
    {\" \"}\n
    \n \n
    \n \n \n
    \n \n
    \n \n \n {\n const newPermissions = customPermissions.filter((el) => item.id !== el.id);\n setCustomPermissions([...newPermissions]);\n }}>\n \n \n
    \n ) : null;\n })}\n \n \n permissionHandler([...customPermissions, { id: uuidv4(), website: \"\", permission: 4 }])}>\n + Add field\n \n \n \n \n
    \n\n \n
    \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Container } from \"react-bootstrap\";\nimport Details from \"./Details\";\nimport Permissions from \"./Permissions\";\n\nexport default function Website(props) {\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\n\t\t\n\t);\n}\n","import React, { useState } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig.js\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport { Row, Col } from \"react-bootstrap\";\n\nexport default function AccountIdBox(props) {\n\tconst [platformEnabled, setPlatformEnabled] = useState(\n\t\tjsDig([\"enabled\"], props.platformData)\n\t\t\t? jsDig([\"enabled\"], props.platformData)\n\t\t\t: false\n\t);\n\n\tconst accountids = jsDig([\"account_ids\"], props.platformData)?jsDig([\"account_ids\"], props.platformData) : [\"\"]\n\n\tconst tooltipMessage =
    Note: Microsoft Ads account IDs must now be taken from the URL. Select the account from the initial list of accounts, then check the url for the \"aid\" parameter. The account id directly follows the = symbol. {props.example}
    \n\t\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetPlatformEnabled(!platformEnabled);\n\t\t\t\t\t}}\n\t\t\t\t\t/>\t\t\n\t\t\t\t\t{props.example &&\n \t \n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t \n\t\t\t\t\n\t\t\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    ID number

    \n\t\t\t\t\t{\n\t\t\t\t\t\taccountids.length > 0 ? (accountids.map((accountId,index)=>{\n\t\t\t\t\t\t\treturn(\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}))\n\t\t\t\t\t\t: (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\n\t\t\n\t);\n}\n","import { includes } from \"lodash-es\";\nimport React from \"react\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport EditCampaignGroup from \"./EditCampaignGroup\";\n\nconst handleSrc = require(\"images/icons/ui-handle.png\");\nlet triangle = require(\"images/icons/blue-triangle.png\");\ntriangle = ;\nlet invisTriangle = require(\"images/icons/invis-triangle.png\");\ninvisTriangle = ;\n\nconst boxGrip = ;\n\nexport default function CampaignGroup(props) {\n const name = props.item.name;\n\n const object = props.item.conditions ? props.item.conditions : { contains: { and: [], or: [] }, not_contains: { and: [], or: [] } };\n let noAnd = object[\"not_contains\"] ? object[\"not_contains\"][\"and\"] : [];\n let noOr = object[\"not_contains\"] ? object[\"not_contains\"][\"or\"] : [];\n let containsAnd = object[\"contains\"] ? object[\"contains\"][\"and\"] : [];\n let containsOr = object[\"contains\"] ? object[\"contains\"][\"or\"] : [];\n let platformType = props.platformType;\n let groupName = `${name}`;\n return (\n <>\n \n {(provided) => (\n
    \n
    \n
    {boxGrip}
    \n
    \n
    \n
    \n
    \n
    \n

    \n {platformType}: {groupName}\n

    \n
    \n \n
    \n
    \n
    \n

    Contains:

    \n {containsAnd && containsAnd.length > 0\n ? containsAnd\n .toString()\n .split(\",\")\n .map((text, index) => {\n return (\n
    \n \n {text}\n \n {index < containsAnd.toString().split(\",\").length - 1 && (\n \n and\n \n )}\n
    \n );\n })\n : containsOr\n .toString()\n .split(\",\")\n .map((text, index) => {\n return (\n
    \n \n {text}\n \n {index < containsOr.toString().split(\",\").length - 1 && (\n \n or\n \n )}\n
    \n );\n })}\n
    \n
    \n
    \n
    \n
    Does not contain:
    \n {noAnd && noAnd.length > 0\n ? noAnd\n .toString()\n .split(\",\")\n .map((text, index) => {\n return (\n
    \n \n {text}\n \n {index < noAnd.toString().split(\",\").length - 1 && (\n \n and\n \n )}\n
    \n );\n })\n : noOr\n .toString()\n .split(\",\")\n .map((text, index) => {\n return (\n
    \n \n {text}\n \n {index < noOr.toString().split(\",\").length - 1 && (\n \n or\n \n )}\n
    \n );\n })}\n
    \n
    \n
    \n {props.platformType == \"Social\" ? (\n

    Custom conversions: {props.item.conversion_objective == \"custom_conversions\" ? \"enabled\" : \"disabled\"}

    \n ) : (\n

    Custom conversions: {props.item.conversion_actions_enabled ? \"enabled\" : \"disabled\"}

    \n )}\n
    \n
    \n
    \n
    \n {props.blueTriangle ? \n triangle :\n invisTriangle\n }\n
    \n
    \n )}\n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CampaignGroup from \"client_config/ppc_config/CampaignGroup\";\nimport { DragDropContext, Droppable } from \"react-beautiful-dnd\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport ConfigureCampaignGroup from \"./ConfigureCampaignGroup\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function CampaignGroups(props) {\n const platform = props.platformType.toLowerCase();\n const campaignGroupsInitial =\n props[`${platform}_section`].campaign_groups && props[`${platform}_section`].campaign_groups.length > 0 ? props[`${platform}_section`].campaign_groups : [];\n // Need to grab conversion actions for preexisting campaign groups\n campaignGroupsInitial.forEach((element) => {\n if (!element[\"conversion_actions\"]) {\n element[\"conversion_actions\"] = props.conversion_actions.filter((el) => el.section_id == element.id);\n }\n });\n const [campaignGroups, setCampaignGroups] = useState(campaignGroupsInitial);\n const [containsPreviewModifier, setContainsPreviewModifier] = useState(\"or\");\n const [notContainsPreviewModifier, setNotContainsPreviewModifier] = useState(\"and\");\n const [showAlert1, setShowAlert1] = useState(false);\n const [showAlert2, setShowAlert2] = useState(false);\n const [containsInput, setContainsInput] = useState(\"\");\n const [notContainsInput, setNotContainsInput] = useState(\"\");\n const [containsTerms, setContainsTerms] = useState([]);\n const [notContainsTerms, setNotContainsTerms] = useState([]);\n const addContains = (value) => {\n setContainsTerms((containsTerms) => [...containsTerms, value]);\n setContainsInput(\"\");\n };\n const addNotContains = (value) => {\n setNotContainsTerms((notContainsTerms) => [...notContainsTerms, value]);\n setNotContainsInput(\"\");\n };\n const addItem = (value, section) => {\n let tempValue = value.toLowerCase();\n let tempContainsTerms = containsTerms.map((el) => el.toLowerCase());\n let tempNotContainsTerms = notContainsTerms.map((el) => el.toLowerCase());\n value === \"\" && section === \"contains\"\n ? setShowAlert1(true)\n : value === \"\" && section === \"notContains\"\n ? setShowAlert2(true)\n : section === \"contains\" && tempContainsTerms.includes(tempValue)\n ? setShowAlert1(true)\n : section === \"notContains\" && tempNotContainsTerms.includes(tempValue)\n ? setShowAlert2(true)\n : section === \"contains\" && !tempContainsTerms.includes(tempValue)\n ? addContains(value)\n : section === \"notContains\" && tempNotContainsTerms.includes(tempValue)\n ? undefined\n : section === \"notContains\" && !tempNotContainsTerms.includes(tempValue)\n ? addNotContains(value)\n : undefined;\n };\n let names = [];\n campaignGroups.forEach((el, index) => {\n names.push(el.name);\n });\n const [campaignGroupsNames, setCampaignGroupsNames] = useState(names);\n const currentSection = `${props.platformType.toLowerCase()}_section`;\n const campaignGroupsOrder = jsDig([currentSection, \"campaign_group_order\"], props) ? jsDig([currentSection, \"campaign_group_order\"], props) : [];\n const defaultSectionOrder = campaignGroupsOrder.length > 0 ? campaignGroupsOrder.map((id) => id.toString()) : [];\n const [sectionOrder, setSectionOrder] = useState(defaultSectionOrder);\n\n const handleAddBox = (conversionActions, conversionActionsEnabled, customConversions, conversionObjective, tiktokConversionObjective) => {\n let newItemId = uuidv4();\n const containsWords = containsPreviewModifier == \"and\" ? { and: containsTerms, or: [] } : { and: [], or: containsTerms };\n const notContainsWords = notContainsPreviewModifier == \"and\" ? { and: notContainsTerms, or: [] } : { and: [], or: notContainsTerms };\n let newItem = {\n id: newItemId,\n name: campaignGroupsNames[campaignGroupsNames.length - 1],\n conditions: {\n contains: containsWords,\n not_contains: notContainsWords,\n }\n }\n if (props.platformType == \"Social\") {\n newItem.conversion_objective = conversionObjective;\n newItem.tiktok_conversion_objective = tiktokConversionObjective;\n newItem.custom_conversions = customConversions;\n } else {\n newItem.conversion_actions_enabled = conversionActionsEnabled;\n newItem.conversion_actions = conversionActions;\n }\n if (props.onboarding && props.setCampaignGroups) {\n // Update the state of Onboarding.jsx if rendered from there\n const newCampaignGroups = [...campaignGroups, newItem];\n let allCampaignGroups = {};\n Object.keys(props.allCampaignGroups).forEach((sectionName) => {\n allCampaignGroups[sectionName] = sectionName == platform ? newCampaignGroups : props.allCampaignGroups[sectionName];\n });\n props.setCampaignGroups({ ...allCampaignGroups });\n }\n\n setSectionOrder([...sectionOrder, `${newItem.id}`]);\n setCampaignGroups([...campaignGroups, newItem]);\n };\n const handleEditBox = (\n itemId,\n newName,\n term,\n contains,\n action,\n containsList,\n notContainsList,\n conversionEnabled,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n groupContainsModifier,\n groupNotContainsModifier\n ) => {\n let newCampaignGroups = campaignGroups;\n let newContainsTerms = containsList;\n let newNotContainsTerms = notContainsList;\n if (contains == \"contains\") {\n if (action == \"remove\") newContainsTerms = newContainsTerms.filter((el) => el != term.toLowerCase());\n else if (action == \"add\") {\n if (!newContainsTerms.includes(term.toLowerCase())) {\n newContainsTerms.push(term.toLowerCase());\n }\n }\n } else if (contains == \"notContains\") {\n if (action == \"remove\") newNotContainsTerms = newNotContainsTerms.filter((el) => el != term.toLowerCase());\n else if (action == \"add\") newNotContainsTerms.push(term.toLowerCase());\n }\n const containsWords = groupContainsModifier && groupContainsModifier == \"and\" ? { and: newContainsTerms, or: [] } : { and: [], or: newContainsTerms };\n const notContainsWords = groupNotContainsModifier && groupNotContainsModifier == \"and\" ? { and: newNotContainsTerms, or: [] } : { and: [], or: newNotContainsTerms };\n const newItem = {\n id: itemId,\n name: newName,\n conditions: {\n contains: containsWords,\n not_contains: notContainsWords,\n }\n };\n if (props.platformType == \"Social\") {\n newItem.conversion_objective = conversionObjective;\n newItem.tiktok_conversion_objective = tiktokConversionObjective;\n newItem.custom_conversions = customConversions;\n } else {\n newItem.conversion_actions_enabled = conversionEnabled;\n newItem.conversion_actions = conversionActions;\n }\n\n const index = newCampaignGroups.findIndex((el) => el.id == itemId);\n newCampaignGroups[index] = newItem;\n setCampaignGroups([...newCampaignGroups]);\n if (props.onboarding && props.setCampaignGroups) {\n // Update the state of Onboarding.jsx if rendered from there\n let allCampaignGroups = {};\n Object.keys(props.allCampaignGroups).forEach((sectionName) => {\n allCampaignGroups[sectionName] = sectionName == platform ? newCampaignGroups : props.allCampaignGroups[sectionName];\n });\n props.setCampaignGroups(allCampaignGroups);\n }\n };\n\n const removeItem = (term, section) => {\n term = term.toLowerCase();\n section === \"contains\"\n ? setContainsTerms(containsTerms.filter((el) => el.toLowerCase() !== term))\n : setNotContainsTerms(notContainsTerms.filter((el) => el.toLowerCase() !== term));\n };\n\n const handleDeleteBox = (itemId) => {\n let deleteState = campaignGroups.filter((group) => group.id != itemId);\n setCampaignGroups([...deleteState]);\n setSectionOrder([...sectionOrder.filter((groupId) => groupId != itemId)]);\n if (props.onboarding && props.setCampaignGroups) {\n // Update the state of Onboarding.jsx if rendered from there\n let allCampaignGroups = {};\n Object.keys(props.allCampaignGroups).forEach((sectionName) => {\n allCampaignGroups[sectionName] = sectionName == platform ? deleteState : props.allCampaignGroups[sectionName];\n });\n\n props.setCampaignGroups(allCampaignGroups);\n }\n };\n \n // ======================ITEMS BETWEEN THESE LINES ARE FOR DRAG AND DROP======================\n\n const onDragEnd = (result) => {\n const { destination, source, draggableId } = result;\n if (!destination) {\n return;\n }\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\n return;\n }\n\n // Since we added a second droppable column we can't just splice the draggableIndex into section order\n // We need to figure out what the index should be based on the column\n const getIndex = (index, col) => index * 2 + (col.includes(\"col-2\") ? 1 : 0);\n let newOrder = [...sectionOrder];\n newOrder.splice(getIndex(source.index, source.droppableId), 1);\n newOrder.splice(getIndex(destination.index, destination.droppableId), 0, draggableId);\n setSectionOrder(newOrder);\n };\n \n return (\n
    \n \n \n {!props.onboarding && (\n
    \n

    \n Campaign Groups:\n

    \n

    \n Here you can create new campaign groups, view and edit all of your existing campaign groups, and click and drag to reorder them.\n Only the top three campaign groups will be displayed in the PPC Summary (indicated with a blue triangle in the bottom-right corner).\n

    \n
    \n )}\n \n \n \n {\n /* Moving the hidden inputs out of the drag and drop stuff to preserve campaign group order */\n sectionOrder.map((groupId, idx) => {\n const campaign = campaignGroups.find((group) => group.id == groupId);\n if (campaign) {\n return (\n \n \n {campaign.conditions.contains && (\n <>\n {Array.isArray(campaign.conditions.contains.and)\n ? campaign.conditions.contains.and.map((words, i) => {\n return ;\n })\n : campaign.conditions.contains.and &&\n campaign.conditions.contains.and.split(\",\").map((words, i) => {\n return ;\n })}\n {Array.isArray(campaign.conditions.contains.or)\n ? campaign.conditions.contains.or.map((words, i) => {\n return ;\n })\n : campaign.conditions.contains.or &&\n campaign.conditions.contains.or.split(\",\").map((words, i) => {\n return ;\n })}\n \n )}\n {campaign.conditions.not_contains && (\n <>\n {Array.isArray(campaign.conditions.not_contains.and)\n ? campaign.conditions.not_contains.and.map((words, i) => {\n return ;\n })\n : campaign.conditions.not_contains.and &&\n campaign.conditions.not_contains.and.split(\",\").map((words, i) => {\n return ;\n })}\n {Array.isArray(campaign.conditions.not_contains.or)\n ? campaign.conditions.not_contains.or.map((words, i) => {\n return ;\n })\n : campaign.conditions.not_contains.or &&\n campaign.conditions.not_contains.or.split(\",\").map((words, i) => {\n return ;\n })}\n \n )}\n\n {campaign.id && }\n {props.platformType == \"Social\" ? (\n <>\n \n {campaign.custom_conversions &&\n campaign.custom_conversions.length > 0 &&\n campaign.custom_conversions.map((conversion, index) => {\n return (\n \n \n \n \n );\n })}\n \n \n ) : (\n <>\n \n {campaign.conversion_actions &&\n campaign.conversion_actions.length > 0 &&\n campaign.conversion_actions.map((conversion) => {\n return (\n
    \n \n \n \n {conversion.id && (\n \n )}\n
    \n );\n })}\n \n )}\n
    \n );\n }\n })\n }\n\n
    \n \n {[1, 2].map((col) => {\n return (\n \n \n {(provided) => (\n
    \n {sectionOrder\n .filter((groupId, idx) => {\n if (col == 1 && idx % 2 == 0) {\n return groupId;\n }\n if (col == 2 && idx % 2 != 0) {\n return groupId;\n }\n })\n .map((groupId, idx) => {\n const campaign = campaignGroups.find((group) => group.id == groupId);\n if (campaign) {\n return (\n
    \n \n
    \n );\n }\n })}\n {provided.placeholder}\n
    \n )}\n
    \n
    \n );\n })}\n
    \n
    \n \n
    \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Modal, Table, Button, Form, Alert } from \"react-bootstrap\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport ConversionActionIds from \"./ConversionActionIds\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport testCampaignGroupFilters from \"utils/testCampaignGroupFilters\";\nimport CustomConversions from \"client_config/ppc_config/social/ids_data/CustomConversions\";\n\nexport default function ConfigureCampaignGroup(props) {\n const [showBox, setShowBox] = useState(false);\n const clearFields = (item, input) => {\n document.getElementById(`${item}`).value = \"\";\n };\n const [testString, setTestString] = useState(\"\");\n const testStringMatches = testCampaignGroupFilters({ contains: { [props.containsPreviewModifier]: props.containsTerms }, notContains: { [props.notContainsPreviewModifier]: props.notContainsTerms } }, testString) == true\n const [conversionActionsEnabled, setConversionActionsEnabled] = useState(false);\n const [conversionActions, setConversionActions] = useState([{ conversion_type: \"exclusive\", name: \"\", conversion_id: \"\" }]);\n // Only used for social\n const [conversionObjective, setConversionObjective] = useState(props.social_section.conversion_objective);\n const [customConversions, setCustomConversions] = useState([]);\n const [tiktokConversionObjective, setTiktokConversionObjective] = useState(props.social_section.tiktok_conversion_objective);\n // Error handling\n const [errorText, setErrorText] = useState([]);\n \n const handleSumbit = (e) => {\n e.preventDefault();\n \n const newName = $(\".campaign-name\").val();\n const conversionActionsLabels = $(\".conversion-actions-label\").map(function() { return $(this).val(); }).toArray();\n const conversionActionsIds = $(\".conversion-actions-id\").map(function() { return $(this).val(); }).toArray();\n const customConversionsLabels = $(\".social-custom-conversions-label\").map(function() { return $(this).val(); }).toArray();\n const customConversionsIds = $(\".social-custom-conversions-id\").map(function() { return $(this).val(); }).toArray();\n let errorsPresent = false;\n let errors = [];\n\n if (newName === undefined || newName === \"\") {\n errorsPresent = true;\n errors.push(\"You must include a campaign group name\")\n }\n if (conversionActionsEnabled && conversionActions.length > 0 && conversionActionsLabels.includes(\"\")) {\n errorsPresent = true;\n errors.push(\"All conversion actions must have a label\")\n }\n if (conversionActionsEnabled && conversionActions.length > 0 && conversionActionsIds.includes(\"\")) {\n errorsPresent = true;\n errors.push(\"All conversion actions must have an ID\")\n }\n // check the props if this is the social section\n if (props.platformType === \"Social\" && conversionObjective === \"custom_conversions\" && customConversions.length > 0 && customConversionsLabels.includes(\"\")) {\n errorsPresent = true;\n errors.push(\"All custom conversions must have a label\")\n }\n if (props.platformType === \"Social\" && conversionObjective === \"custom_conversions\" && customConversions.length > 0 && customConversionsIds.includes(\"\")) {\n errorsPresent = true;\n errors.push(\"All custom conversions must have an ID\")\n }\n\n setErrorText(errors);\n\n if (!errorsPresent) {\n setErrorText([])\n props.handleAddBox(conversionActions, conversionActionsEnabled, customConversions, conversionObjective, tiktokConversionObjective);\n setShowBox(false);\n props.setContainsTerms([]);\n props.setNotContainsTerms([]);\n props.setCampaignGroupsNames([]);\n setConversionActionsEnabled(false);\n setConversionActions([{ conversion_type: \"exclusive\", name: \"\", conversion_id: \"\" }]);\n setConversionObjective(props.social_section.conversion_objective);\n setCustomConversions([]);\n setTiktokConversionObjective(props.social_section.tiktok_conversion_objective);\n }\n };\n\n return (\n
    \n
    \n setShowBox(true)}\n className=\"btn-lg\"\n style={{\n cursor: \"pointer\",\n paddingLeft: \"26px\",\n paddingRight: \"26px\",\n }}\n variant=\"success\">\n + New campaign group\n \n
    \n {/* Popup Modal */}\n setShowBox(false)}>\n \n Configure Campaign Groups\n \n \n \n \n \n \n

    Name:

    \n \n \n props.setCampaignGroupsNames([...props.campaignGroupsNames, e.target.value])}\n placeholder={`${props.platformType}: Campaign Group Name`}\n required\n />\n \n
    \n\n \n \n

    Contains:

    \n
    \n {\n props.setShowAlert1(false);\n }}\n onChange={(e) => {\n props.setContainsInput(e.target.value);\n }}\n id=\"contains_term\"\n />\n
    \n {props.showAlert1 === true ? (\n \n \n \n {props.containsInput !== \"\" ? (\n <>\n

    \n The keyword \"{props.containsInput}\" already exists!\n

    \n \n ) : (\n <>\n

    You must include a term!

    \n \n )}\n \n \n {\n props.setShowAlert1(false);\n props.setContainsInput(\"\");\n }}>\n x\n

    \n \n
    \n
    \n ) : undefined}\n
    \n {\n props.addItem(props.containsInput, \"contains\");\n clearFields(\"contains_term\");\n {\n props.showAlert1 === true && props.setContainsInput(\"\");\n }\n }}>\n + Add term\n \n
    \n
    \n {props.containsTerms.map((term, idx) => {\n return (\n
    \n {term}\n {\n props.removeItem(term, \"contains\");\n props.setShowAlert1(false);\n }}>\n x\n \n
    \n );\n })}\n
    \n \n \n

    Does not contain:

    \n
    \n {\n props.setShowAlert2(false);\n }}\n onChange={(e) => props.setNotContainsInput(e.target.value)}\n />\n {props.showAlert2 === true ? (\n \n \n \n {props.notContainsInput === \"\" ? (\n

    You must include a term!

    \n ) : (\n <>\n

    \n The keyword \"{props.notContainsInput}\" already exists!\n

    \n \n )}\n \n \n {\n props.setShowAlert2(false);\n props.setContainsInput(\"\");\n }}>\n x\n

    \n \n
    \n
    \n ) : undefined}\n
    \n
    \n {\n props.addItem(props.notContainsInput, \"notContains\");\n clearFields(\"does_not_contain_term\");\n {\n props.showAlert2 === true && props.setNotContainsInput(\"\");\n }\n }}>\n + Add term\n \n
    \n
    \n {props.notContainsTerms.map((term, idx) => {\n return (\n
    \n {term}\n {\n props.removeItem(term, \"notContains\");\n props.setShowAlert2(false);\n }}>\n x\n \n
    \n );\n })}\n
    \n \n
    \n \n \n \n \n

    \n \"Contains\" modifier:\n

    \n \n \n props.setContainsPreviewModifier(e.target.value)}\n size=\"sm\"\n as=\"select\"\n value={props.containsPreviewModifier}\n style={{ width: \"70px\" }}>\n \n \n \n \n
    \n \n \n \n \n

    \n \"Not contains\" modifier:\n

    \n \n \n props.setNotContainsPreviewModifier(e.target.value)}\n className=\"primary \"\n size=\"sm\"\n value={props.notContainsPreviewModifier}\n as=\"select\"\n style={{ width: \"70px\" }}>\n \n \n \n \n
    \n \n
    \n\n \n \n \n \n

    Output preview:

    \n \n
    \n \n \n

    Contains:

    \n \n \n {props.containsPreviewModifier === \"and\"\n ? props.containsTerms\n .toString()\n .replaceAll(\",\", \" and \")\n .split(\" \")\n .map((text) => {\n return text === \"and\" ? (\n \n and\n \n ) : (\n \n {text}\n \n );\n })\n : props.containsTerms\n .toString()\n .replaceAll(\",\", \" or \")\n .split(\" \")\n .map((text) => {\n return text === \"or\" ? (\n \n or\n \n ) : (\n \n {text}\n \n );\n })}\n \n
    \n \n \n

    \n Does not contain:\n

    \n \n \n {props.notContainsPreviewModifier === \"and\"\n ? props.notContainsTerms\n .toString()\n .replaceAll(\",\", \" and \")\n .split(\" \")\n .map((text) => {\n return text === \"and\" ? (\n \n and\n \n ) : (\n \n {text}\n \n );\n })\n : props.notContainsTerms\n .toString()\n .replaceAll(\",\", \" or \")\n .split(\" \")\n .map((text) => {\n return text === \"or\" ? (\n \n or\n \n ) : (\n \n {text}\n \n );\n })}\n \n
    \n \n \n

    \n Test a campaign name:\n

    \n
    \n setTestString(e.target.value)}\n placeholder={\"Add the name of a campaign here\"}\n value={testString}\n style={testString != \"\" ? (\n testStringMatches ? {\n background: \"rgba(0, 200, 0, .25)\"\n } : {\n background: \"rgba(200, 0, 0, .25)\"\n }\n ) : {}}\n />\n
    \n {testString != \"\" && (\n testStringMatches ? (\n \n ) : (\n \n )\n )}\n
    \n
    \n \n
    \n \n
    \n \n \n
    \n

    Instructions:

    \n

    \n First, configure your terms that you want to contain (or exclude) by typing the term in the top corresponding field and clicking \"Add term\".\n

    \n

    \n Then, select your modifier for each column to determine how those groups of terms will affect tracking. Choosing 'and' will detect and track\n results in which every listed term is included. Choosing 'or' will detect and track{\" \"}\n any result with at least one of the listed terms.\n

    \n

    \n Finally, read (and re-read) your output to ensure your \"sentence structure\" is correct. Remember, 'and' will only track results with{\" \"}\n all terms, while 'or' will track results with any term.\n

    \n
    \n \n
    \n
    \n \n {props.platformType === \"Social\" ? (\n \n
    \n

    Facebook Objective

    \n \n setConversionObjective(e.target.value)}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {Object.keys(props.facebook_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.facebook_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n {conversionObjective == \"custom_conversions\" && (\n \n )}\n
    \n
    \n

    Tiktok Objective

    \n \n setTiktokConversionObjective(e.target.value)}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {Object.keys(props.tiktok_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.tiktok_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n
    \n \n ) : (\n \n
    \n Custom Conversions\n \n \n

    To get a Conversion Action ID, go to Google Ads and open the Tools & Settings menu from the top right of the navbar. In the Measurement column, select Conversions. Next, select the conversion action from the list that appears. Once you have selected a conversion action, check the final URL of the page and look for the 'ctId' parameter. This will be equal to the Conversion Action's ID.

    \n \"Conversion\n
    \n }\n inline={true}\n />\n \n
    \n {\n setConversionActionsEnabled(!conversionActionsEnabled);\n }}\n option=\"custom conversions\"\n conversionActions={conversionActions}\n setConversionActions={setConversionActions}\n />\n \n )}\n \n \n \n \n \n setShowBox(false)}>\n Cancel\n \n\n \n Save campaign group\n \n \n {errorText.length > 0 && (\n \n \n {errorText.map((error, index) => {\n return

    {error}

    ;\n }\n )}\n
    \n \n )}\n
    \n
    \n \n \n );\n}\n","import React, { useState} from \"react\";\nimport { Button, Table, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport { v4 } from \"uuid\";\nimport jsDig from \"utils/jsDig.js\";\nexport default function ConversionActionIds(props) {\n const [conversionActionsEnabled, setConversionActionsEnabled] = useState(\n props.conversionActionsEnabled !== undefined ? props.conversionActionsEnabled : false\n );\n const [conversionActions, setConversionActions] = useState(\n props.conversionActions ? props.conversionActions : [{ conversion_type: \"exclusive\", name: \"\", conversion_id: \"\" }]\n );\n const handleDelete = (targetIndex) => {\n let newActions = conversionActions;\n newActions.splice(targetIndex, 1);\n setConversionActions([...newActions]);\n props.setConversionActions && props.setConversionActions([...newActions]);\n };\n\n const handleChange = (targetIndex, property, value) => {\n let newActions = conversionActions.map((action, index) => {\n let newAction = action;\n if (index == targetIndex) {\n newAction[property] = value;\n }\n return newAction;\n });\n setConversionActions(newActions);\n props.setConversionActions ? props.setConversionActions([...newActions]) : null;\n };\n return (\n <>\n
    \n
    \n {\n setConversionActionsEnabled(!conversionActionsEnabled);\n }\n }\n />\n
    \n
    \n \n \n {props.option ? (\n \n \n \n \n \n \n ) : undefined}\n {conversionActions.map((conversionAction, index) => {\n return (\n \n \n \n \n {(index >= 0 && conversionActions.length > 0) ? (\n \n ) : (\n \n )}\n \n );\n })}\n \n
    \n

    Label

    {\" \"}\n
    \n

    ID

    \n
    \n \n handleChange(index, \"conversion_type\", e.target.value)}\n readOnly={props.conversionActionsEnabled !== undefined ? !props.conversionActionsEnabled : !conversionActionsEnabled}>\n \n \n \n \n handleChange(index, \"name\", e.target.value)}\n readOnly={props.conversionActionsEnabled !== undefined ? !props.conversionActionsEnabled : !conversionActionsEnabled}\n />\n \n handleChange(index, \"conversion_id\", e.target.value)}\n readOnly={props.conversionActionsEnabled !== undefined ? !props.conversionActionsEnabled : !conversionActionsEnabled}\n />\n handleDelete(index)}>\n \n
    \n
    \n
    \n {\n setConversionActions([...conversionActions, { conversion_type: \"exclusive\", name: \"\", conversion_id: \"\" }]);\n props.setConversionActions\n ? props.setConversionActions([...conversionActions, { conversion_type: \"exclusive\", name: \"\", conversion_id: \"\" }])\n : null;\n }}>\n + Add\n \n {props.cg &&\n

    Conversion actions defined here are the only ones that will be used for this campaign group

    \n }\n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Modal, Table, Button, Form, Alert } from \"react-bootstrap\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport ConversionActionIds from \"./ConversionActionIds\";\nimport testCampaignGroupFilters from \"utils/testCampaignGroupFilters\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport CustomConversions from \"client_config/ppc_config/social/ids_data/CustomConversions\";\n\nexport default function EditCampaignGroup(props) {\n let edit = require(\"images/icons/edit.png\");\n edit = ;\n\n const [showBox, setShowBox] = useState(false);\n\n const clearFields = (item, input) => {\n document.getElementById(`${item}`).value = \"\";\n };\n const [testString, setTestString] = useState(\"\");\n const [conversionActionsEnabled, setConversionActionsEnabled] = useState(props.item ? props.item.conversion_actions_enabled : false);\n const [conversionActions, setConversionActions] = useState(props.item ? props.item.conversion_actions : []);\n // Only used for social\n const [conversionObjective, setConversionObjective] = useState(props.item ? props.item.conversion_objective : props.social_section.conversion_objective);\n const [customConversions, setCustomConversions] = useState(props.item ? props.item.custom_conversions : []);\n const [tiktokConversionObjective, setTiktokConversionObjective] = useState(props.item ? props.item.tiktok_conversion_objective : props.social_section.tiktok_conversion_objective);\n // Error handling\n const [errorText, setErrorText] = useState([]);\n\n const handleSubmit = (e) => {\n e.preventDefault();\n \n const newName = $(\".campaign-name\").val();\n const conversionActionsLabels = $(\".conversion-actions-label\").map(function() { return $(this).val(); }).toArray();\n const conversionActionsIds = $(\".conversion-actions-id\").map(function() { return $(this).val(); }).toArray();\n const customConversionsLabels = $(\".social-custom-conversions-label\").map(function() { return $(this).val(); }).toArray();\n const customConversionsIds = $(\".social-custom-conversions-id\").map(function() { return $(this).val(); }).toArray();\n let errorsPresent = false;\n let errors = [];\n\n if (newName === undefined || newName === \"\") {\n errorsPresent = true;\n errors.push(\"You must include a campaign group name\")\n }\n if (conversionActionsEnabled && conversionActions.length > 0 && conversionActionsLabels.includes(\"\")) {\n errorsPresent = true;\n errors.push(\"All conversion actions must have a label\")\n }\n if (conversionActionsEnabled && conversionActions.length > 0 && conversionActionsIds.includes(\"\")) {\n errorsPresent = true;\n errors.push(\"All conversion actions must have an ID\")\n }\n // check the props if this is the social section\n if (props.platformType === \"Social\" && conversionObjective === \"custom_conversions\" && customConversions.length > 0 && customConversionsLabels.includes(\"\")) {\n errorsPresent = true;\n errors.push(\"All custom conversions must have a label\")\n }\n if (props.platformType === \"Social\" && conversionObjective === \"custom_conversions\" && customConversions.length > 0 && customConversionsIds.includes(\"\")) {\n errorsPresent = true;\n errors.push(\"All custom conversions must have an ID\")\n }\n\n setErrorText(errors);\n\n if (!errorsPresent) {\n setShowBox(false);\n props.handleEditBox(\n props.item.id,\n props.item.name,\n \"\",\n \"\",\n \"\",\n containsTerms,\n notContainsTerms,\n conversionActionsEnabled,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n containsPreviewModifier,\n notContainsPreviewModifier\n );\n }\n }\n\n let containsAnd = [];\n let containsOr = [];\n let notContainsAnd = [];\n let notContainsOr = [];\n let containsTerms = [];\n let notContainsTerms = [];\n if (props.item.conditions.contains) {\n if (props.item.conditions.contains.and)\n containsAnd = Array.isArray(props.item.conditions.contains.and)\n ? props.item.conditions.contains.and\n : props.item.conditions.contains.and.split(\",\");\n if (props.item.conditions.contains.or)\n containsOr = Array.isArray(props.item.conditions.contains.or)\n ? props.item.conditions.contains.or\n : props.item.conditions.contains.or.split(\",\");\n }\n if (props.item.conditions.not_contains) {\n if (props.item.conditions.not_contains.and)\n notContainsAnd = Array.isArray(props.item.conditions.not_contains.and)\n ? props.item.conditions.not_contains.and\n : props.item.conditions.not_contains.and.split(\",\");\n if (props.item.conditions.not_contains.or)\n notContainsOr = Array.isArray(props.item.conditions.not_contains.or)\n ? props.item.conditions.not_contains.or\n : props.item.conditions.not_contains.or.split(\",\");\n }\n containsTerms = containsAnd.length > 0 && !(containsAnd.length == 1 && containsAnd[0] == \"\") ? containsAnd : containsOr;\n notContainsTerms = notContainsAnd.length > 0 && !(notContainsAnd.length == 1 && notContainsAnd[0] == \"\") ? notContainsAnd : notContainsOr;\n\n const [containsPreviewModifier, setContainsPreviewModifier] = useState(\n containsAnd.length > 0 && !(containsAnd.length == 1 && containsAnd[0] == \"\") ? \"and\" : \"or\"\n );\n const [notContainsPreviewModifier, setNotContainsPreviewModifier] = useState(\n notContainsAnd.length > 0 && !(notContainsAnd.length == 1 && notContainsAnd[0] == \"\") ? \"and\" : \"or\"\n );\n const [showAlert1, setShowAlert1] = useState(false);\n const [showAlert2, setShowAlert2] = useState(false);\n\n const testStringMatches = testCampaignGroupFilters({ contains: { [containsPreviewModifier]: containsTerms }, notContains: { [notContainsPreviewModifier]: notContainsTerms } }, testString) == true\n\n return (\n
    \n
    \n \n
    \n {/* Popup Modal */}\n setShowBox(false)}>\n \n Edit Campaign Groups\n \n \n \n \n {/*

    Configure Campaign Groups

    */}\n \n \n

    Name:

    \n \n \n {\n props.handleEditBox(\n props.draggableId,\n e.target.value,\n \"\",\n \"\",\n \"\",\n containsTerms,\n notContainsTerms,\n conversionActionsEnabled,\n props.item,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n containsPreviewModifier,\n notContainsPreviewModifier\n );\n }}\n placeholder=\"Search: Campaign Group Name 1\"\n />\n \n
    \n \n \n

    Contains:

    \n
    \n {\n setShowAlert1(false);\n }}\n onChange={(e) => {\n props.setContainsInput(e.target.value);\n }}\n id=\"contains_term\"\n />\n
    \n {showAlert1 === true ? (\n \n \n \n {props.containsInput !== \"\" ? (\n <>\n

    \n The keyword \"{props.containsInput}\" already exists!\n

    \n \n ) : (\n <>\n

    You must include a term!

    \n \n )}\n \n \n {\n setShowAlert1(false);\n props.setContainsInput(\"\");\n }}>\n x\n

    \n \n
    \n
    \n ) : undefined}\n
    \n {\n let tempContainsTerms = containsTerms.map((el) => el.toLowerCase());\n let tempNotContainsTerms = notContainsTerms.map((el) => el.toLowerCase());\n let tempValue = props.containsInput.toLowerCase();\n clearFields(\"contains_term\");\n if (tempContainsTerms.includes(tempValue) || props.containsInput == \"\") setShowAlert1(true);\n else\n props.handleEditBox(\n props.item.id,\n props.item.name,\n props.containsInput,\n \"contains\",\n \"add\",\n tempContainsTerms,\n tempNotContainsTerms,\n conversionActionsEnabled,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n containsPreviewModifier,\n notContainsPreviewModifier\n );\n\n {\n showAlert1 === true && props.setContainsInput(\"\");\n }\n }}>\n + Add term\n \n
    \n
    \n {containsTerms[0] !== \"\" &&\n containsTerms.map((term, idx) => {\n return (\n
    \n {term}\n {\n props.handleEditBox(\n props.item.id,\n props.item.name,\n term,\n \"contains\",\n \"remove\",\n containsTerms,\n notContainsTerms,\n conversionActionsEnabled,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n containsPreviewModifier,\n notContainsPreviewModifier\n );\n setShowAlert1(false);\n }}>\n x\n \n
    \n );\n })}\n
    \n \n \n

    Does not contain:

    \n
    \n {\n setShowAlert2(false);\n }}\n onChange={(e) => props.setNotContainsInput(e.target.value)}\n />\n {showAlert2 === true ? (\n \n \n \n {props.notContainsInput === \"\" ? (\n

    You must include a term!

    \n ) : (\n <>\n

    \n The keyword \"{props.notContainsInput}\" already exists!\n

    \n \n )}\n \n \n {\n setShowAlert2(false);\n props.setContainsInput(\"\");\n }}>\n x\n

    \n \n
    \n
    \n ) : undefined}\n
    \n
    \n {\n let tempContainsTerms = containsTerms.map((el) => el.toLowerCase());\n let tempNotContainsTerms = notContainsTerms.map((el) => el.toLowerCase());\n let tempValue = props.notContainsInput.toLowerCase();\n clearFields(\"does_not_contain_term\");\n if (tempNotContainsTerms.includes(tempValue) || props.notContainsInput == \"\") setShowAlert2(true);\n else\n props.handleEditBox(\n props.item.id,\n props.item.name,\n props.notContainsInput,\n \"notContains\",\n \"add\",\n tempContainsTerms,\n tempNotContainsTerms,\n conversionActionsEnabled,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n containsPreviewModifier,\n notContainsPreviewModifier\n );\n\n clearFields(\"does_not_contain_term\");\n {\n showAlert2 === true && props.setNotContainsInput(\"\");\n }\n }}>\n + Add term\n \n
    \n
    \n {notContainsTerms[0] !== \"\" &&\n notContainsTerms.map((term, idx) => {\n return (\n
    \n {term}\n {\n props.handleEditBox(\n props.item.id,\n props.item.name,\n term,\n \"notContains\",\n \"remove\",\n containsTerms,\n notContainsTerms,\n conversionActionsEnabled,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n containsPreviewModifier,\n notContainsPreviewModifier\n );\n setShowAlert2(false);\n }}>\n x\n \n
    \n );\n })}\n
    \n \n
    \n \n \n \n \n

    \n \"Contains\" modifier:\n

    \n \n \n {\n setContainsPreviewModifier(e.target.value);\n props.setContainsPreviewModifier(e.target.value);\n props.handleEditBox(\n props.item.id,\n props.item.name,\n props.containsInput,\n \"\",\n \"\",\n containsTerms,\n notContainsTerms,\n conversionActionsEnabled,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n e.target.value,\n notContainsPreviewModifier\n );\n\n }}\n size=\"sm\"\n as=\"select\"\n style={{ width: \"70px\" }}\n value={containsPreviewModifier}>\n \n \n \n \n
    \n \n \n \n \n

    \n \"Not contains\" modifier:\n

    \n \n \n {\n setNotContainsPreviewModifier(e.target.value);\n props.setNotContainsPreviewModifier(e.target.value);\n props.handleEditBox(\n props.item.id,\n props.item.name,\n props.notContainsInput,\n \"\",\n \"\",\n containsTerms,\n notContainsTerms,\n conversionActionsEnabled,\n conversionActions,\n customConversions,\n conversionObjective,\n tiktokConversionObjective,\n containsPreviewModifier,\n e.target.value\n );\n }}\n className=\"primary \"\n size=\"sm\"\n as=\"select\"\n style={{ width: \"70px\" }}\n value={notContainsPreviewModifier}>\n \n \n \n \n
    \n \n
    \n\n \n \n \n \n

    Output preview:

    \n \n
    \n \n \n

    Contains:

    \n \n \n {containsPreviewModifier === \"and\"\n ? containsTerms.map((text, index) => {\n return (\n
    \n \n {text}\n \n {index < containsTerms.length - 1 && (\n \n and\n \n )}\n
    \n );\n })\n : containsTerms.map((text, index) => {\n return (\n
    \n \n {text}\n \n {index < containsTerms.length - 1 && (\n \n or\n \n )}\n
    \n );\n })}\n \n
    \n \n \n

    \n Does not contain:\n

    \n \n \n {notContainsPreviewModifier === \"and\"\n ? notContainsTerms.map((text, index) => {\n return (\n
    \n \n {text}\n \n {index < notContainsTerms.length - 1 && (\n \n and\n \n )}\n
    \n );\n })\n : notContainsTerms.map((text, index) => {\n return (\n
    \n \n {text}\n \n {index < notContainsTerms.length - 1 && (\n \n or\n \n )}\n
    \n );\n })}\n \n
    \n \n \n

    \n Test a campaign name:\n

    \n
    \n setTestString(e.target.value)}\n placeholder={\"Add the name of a campaign here\"}\n value={testString}\n style={testString != \"\" ? (\n testStringMatches ? {\n background: \"rgba(0, 200, 0, .25)\"\n } : {\n background: \"rgba(200, 0, 0, .25)\"\n }\n ) : {}}\n />\n
    \n {testString != \"\" && (\n testStringMatches ? (\n \n ) : (\n \n )\n )}\n
    \n
    \n \n
    \n \n
    \n \n \n
    \n

    Instructions:

    \n

    \n First, configure your terms that you want to contain (or exclude) by typing the term in the top corresponding field and clicking \"Add term\".\n

    \n

    \n Then, select your modifier for each column to determine how those groups of terms will affect tracking. Choosing 'and' will detect and track\n results in which every listed term is included. Choosing 'or' will detect and track{\" \"}\n any result with at least one of the listed terms.\n

    \n

    \n Finally, read (and re-read) your output to ensure your \"sentence structure\" is correct. Remember, 'and' will only track results with{\" \"}\n all terms, while 'or' will track results with any term.\n

    \n
    \n \n
    \n
    \n \n {props.platformType === \"Social\" ? (\n \n
    \n

    Facebook Objective

    \n \n setConversionObjective(e.target.value)}\n style={{\n width: \"256px\",\n paddingLeft: \"20px\",\n marginLeft: \"3px\",\n }}>\n {Object.keys(props.facebook_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.facebook_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n {conversionObjective == \"custom_conversions\" && (\n \n )}\n
    \n
    \n

    Tiktok Objective

    \n \n setTiktokConversionObjective(e.target.value)}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {Object.keys(props.tiktok_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.tiktok_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n
    \n \n ) : (\n \n
    \n Custom Conversions\n \n \n

    To get a Conversion Action ID, go to Google Ads and open the Tools & Settings menu from the top right of the navbar. In the Measurement column, select Conversions. Next, select the conversion action from the list that appears. Once you have selected a conversion action, check the final URL of the page and look for the 'ctId' parameter. This will be equal to the Conversion Action's ID.

    \n \"Conversion\n
    \n }\n inline={true}\n />\n \n
    \n {\n setConversionActionsEnabled(!conversionActionsEnabled);\n }}\n option=\"custom conversions\"\n conversionActions={conversionActions}\n setConversionActions={setConversionActions}\n />\n \n )}\n \n \n \n \n \n props.handleDeleteBox(props.draggableId)}>\n Delete campaign group\n \n \n \n setShowBox(false)}>\n Cancel\n \n\n \n Save campaign group\n \n \n \n {errorText.length > 0 && (\n \n \n \n {errorText.map((error, index) => {\n return

    {error}

    ;\n }\n )}\n
    \n \n
    \n )}\n
    \n \n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport { Tooltip, OverlayTrigger, Row, Col, Button, Table, Form } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig.js\";\n\nexport default function Inflation(props) {\n const section = props.section;\n const csvUploadRef = useRef();\n const lodashClonedeep = require(\"lodash/cloneDeep\");\n\n const [selectedPlatform, setSelectedPlatform] = useState(props.platforms[0]);\n let yieldMetrics = [\"Revenue\", \"Conversions\"];\n const [inflation, setInflation] = useState(props.daily_yields);\n const copyInflation = () => {\n let copyInflationArray = { ...inflation };\n if (selectedPlatform === props.platforms[0]) {\n // using deep copy to avoid the object referencing another object but actually just copying the values\n copyInflationArray[`${selectedPlatform.toLowerCase()}`] = lodashClonedeep(inflation[`${props.platforms[1].toLowerCase()}`]);\n } else if (selectedPlatform === props.platforms[1]) {\n copyInflationArray[`${selectedPlatform.toLowerCase()}`] = lodashClonedeep(inflation[`${props.platforms[0].toLowerCase()}`]);\n }\n setInflation({ ...copyInflationArray });\n };\n\n const uploadCsv = (e) => {\n let fileInput = $(e.target).get(0);\n let yieldTable = $(`.${props.section}-${selectedPlatform.toLowerCase()}-yield-table`);\n let reader = new FileReader();\n var extension = fileInput.files[0].name.split('.').pop().toLowerCase() // file extension from input file\n var fileTypes = ['csv'];\n var isSuccess = fileTypes.indexOf(extension) > -1;\n if (isSuccess) {\n reader.readAsText(fileInput.files[0]);\n\n function processCsv(file, yieldTable) {\n let yields = file.replace(/[\\r]+/g, \"\").split(\"\\n\");\n let tableColumns = yieldTable.find(\"tbody tr\").first().children().length - 1;\n let currentRow = 0;\n let currentColumn = 0;\n let newInflation = { ...inflation };\n yieldTable.find(\"input\").each(function (index) {\n if (typeof yields[currentRow] == \"string\") {\n $(this).val(yields[currentRow].split(\",\")[currentColumn]);\n newInflation[selectedPlatform.toLowerCase()][yieldMetrics[currentColumn].toLowerCase()][currentRow + 1] =\n yields[currentRow].split(\",\")[currentColumn];\n }\n if ((index + 1) % tableColumns == 0) {\n currentRow++;\n currentColumn = 0;\n } else {\n currentColumn++;\n }\n });\n setInflation(newInflation);\n }\n\n reader.onload = function () {\n processCsv(reader.result, yieldTable);\n };\n }\n };\n\n const ComingSoonTooltip = () => {\n const renderTooltip = (refs) => (\n \n
    This feature is coming soon.
    \n
    \n );\n\n return (\n
    \n \n \n \n
    \n );\n };\n\n return (\n <>\n
    \n {props.platforms === \"Facebook\" ? (\n <>\n \n \n \n \n ) : (\n <>\n {\n setSelectedPlatform(e.target.value);\n }}\n value={selectedPlatform}>\n {props.platforms.map((platform, index) => {\n return ;\n })}\n \n \n )}\n\n {\n uploadCsv(e);\n }}\n onClick={(e) => {\n e.target.value = null;\n }}\n />\n
    \n \n {ComingSoonTooltip()}\n {props.platforms !== \"Facebook\" && (\n \n )}\n
    \n\n {props.platforms.map((platform, index) => {\n const visability = platform == selectedPlatform ? \"flex\" : \"none\";\n return (\n \n {[0, 1].map((tableIndex) => {\n return (\n \n
    \n \n \n \n \n {yieldMetrics.map((metric, index) => {\n return (\n \n );\n })}\n \n \n \n {[...Array(15)].map((blank, index) => {\n const day = index + 1 + tableIndex * 15;\n return (\n \n \n Day {day}\n \n\n {yieldMetrics.map((metric, index) => {\n metric = metric.toLowerCase();\n const value = jsDig([`${metric}`], inflation[`${platform.toLowerCase()}`])\n ? inflation[`${platform.toLowerCase()}`][`${metric}`][day]\n : \"\";\n\n return (\n \n );\n })}\n \n );\n })}\n \n
    \n {metric}\n
    \n {\n let newInflation = { ...inflation };\n if (!newInflation[platform.toLowerCase()]) {\n newInflation[platform.toLowerCase()] = {};\n }\n if (!newInflation[platform.toLowerCase()][metric]) {\n newInflation[platform.toLowerCase()][metric] = {};\n }\n newInflation[platform.toLowerCase()][metric][day] = e.target.value;\n\n setInflation(newInflation);\n }}\n />\n
    \n
    \n \n );\n })}\n
    \n );\n })}\n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport ConfigTabs from \"client_config/ConfigTabs\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport { Tab, Nav, Container, Form, Row, Col } from \"react-bootstrap\";\nimport Search from \"./search/Search\";\nimport Social from \"./social/Social\";\nimport Display from \"./display/Display\";\nimport Video from \"./video/Video\";\nimport All from \"./all/All\";\nimport SaveChanges from \"client_config/SaveChanges\";\nimport updateParams from \"utils/updateParams.js\";\nimport jsDig from \"utils/jsDig\";\nimport dismissDataPullErrors from \"utils/dismissDataPullErrors\";\nimport { capitalize, uniq } from \"lodash-es\";\n\nexport default function PPCConfig(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n const formSubmitUrl = \"/datapulse/ppc-config\";\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n const ppcPulling =\n jsDig([\"data_pull_status\", \"shopify_data_pull\"], props.ppc_section) && jsDig([\"data_pull_status\", \"shopify_data_pull\"], props.ppc_section).length > 0;\n const searchPulling =\n (jsDig([\"data_pull_status\", \"google_data_pull\"], props.search_section) &&\n jsDig([\"data_pull_status\", \"google_data_pull\"], props.search_section).length > 0) ||\n (jsDig([\"data_pull_status\", \"bing_data_pull\"], props.search_section) && jsDig([\"data_pull_status\", \"bing_data_pull\"], props.search_section).length > 0);\n const socialPulling =\n jsDig([\"data_pull_status\", \"facebook_data_pull\"], props.social_section) &&\n jsDig([\"data_pull_status\", \"facebook_data_pull\"], props.social_section).length > 0;\n const displayPulling =\n jsDig([\"data_pull_status\", \"google_data_pull\"], props.display_section) && jsDig([\"data_pull_status\", \"google_data_pull\"], props.display_section).length > 0;\n const videoPulling =\n jsDig([\"data_pull_status\", \"google_data_pull\"], props.video_section) && jsDig([\"data_pull_status\", \"google_data_pull\"], props.video_section).length > 0;\n\n const ppcRecalculating =\n jsDig([\"data_pull_status\", \"recalculation\"], props.ppc_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], props.ppc_section).length > 0;\n const searchRecalculating =\n (jsDig([\"data_pull_status\", \"recalculation\"], props.search_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], props.search_section).length > 0);\n\n const socialRecalculating =\n jsDig([\"data_pull_status\", \"recalculation\"], props.social_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], props.social_section).length > 0;\n const displayRecalculating =\n jsDig([\"data_pull_status\", \"recalculation\"], props.display_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], props.display_section).length > 0;\n const videoRecalculating =\n jsDig([\"data_pull_status\", \"recalculation\"], props.video_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], props.video_section).length > 0;\n\n const [showPpcErrors, setShowPpcErrors] = useState((jsDig([\"data_pull_errors\"], props.ppc_section) && Object.keys(jsDig([\"data_pull_errors\"], props.ppc_section)).length > 0) ? true : false)\n const [showSearchErrors, setShowSearchErrors] = useState((jsDig([\"data_pull_errors\"], props.search_section) && Object.keys(jsDig([\"data_pull_errors\"], props.search_section)).length > 0) ? true : false)\n const [showSocialErrors, setShowSocialErrors] = useState((jsDig([\"data_pull_errors\"], props.social_section) && Object.keys(jsDig([\"data_pull_errors\"], props.social_section)).length > 0) ? true : false)\n const [showDisplayErrors, setShowDisplayErrors] = useState((jsDig([\"data_pull_errors\"], props.display_section) && Object.keys(jsDig([\"data_pull_errors\"], props.display_section)).length > 0) ? true : false)\n const [showVideoErrors, setShowVideoErrors] = useState((jsDig([\"data_pull_errors\"], props.video_section) && Object.keys(jsDig([\"data_pull_errors\"], props.video_section)).length > 0) ? true : false)\n\n\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"search\";\n }\n setTabLocation(page);\n updateParams(\"page\", page);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"page\", key);\n };\n\n\n const pullInProgress = () => {\n return (\n
    \n
    \n
    \n \n
    \n
    \n A data pull is in progress.\n
    \n
    \n

    This page is not available while the data pull is in progress.

    \n Please check back later or\n {\n location.reload();\n }}>\n {\" \"}\n refresh \n \n the page.\n
    \n
    \n
    \n );\n };\n\n const recalcInProgress = () => {\n return (\n
    \n
    \n
    \n \n
    \n
    \n Data is being recalculated.\n
    \n
    \n

    Your data pull has completed but data is recalculating

    \n Please be patient {props.current_user ? props.current_user.first_name : \"my guy\"} and check back later or\n {\n location.reload();\n }}>\n {\" \"}\n refresh \n \n the page.\n
    \n
    \n
    \n );\n };\n\n const displayErrors = (section) => {\n return (\n
    \n
    \n
    \n There were errors on the last data pull\n
    \n
    \n {jsDig([section, \"data_pull_errors\"], props) && Object.keys(jsDig([section, \"data_pull_errors\"], props)).map((platform) => {\n const errorCounts = jsDig([section, \"data_pull_errors\", platform], props).reduce((map, val) => { map[val] = (map[val] || 0) + 1; return map }, {});\n return (\n \n
    \n

    {capitalize(platform)}:

    \n
      \n {uniq(jsDig([section, \"data_pull_errors\", platform], props)).map((errorMessage, index) => {\n const length = errorCounts[errorMessage];\n return (\n
    • - {length > 1 ? `(${length}x) ` : ' '}{errorMessage}
    • \n )\n })}\n
    \n
    \n
    \n )\n })}\n
    \n {\n e.preventDefault()\n dismissDataPullErrors(jsDig([section, \"id\"], props), section.split(\"_\")[0])\n $(e.target).closest('.spin-container').fadeOut();\n setTimeout(() => {\n location.reload()\n }, 1000)\n }}>\n Dismiss\n \n
    \n
    \n
    \n
    \n )\n }\n\n return (\n <>\n \n \n \n
    \n \n \n \n \n \n selectTab(k)}>\n \n \n \n {ppcPulling === true && ppcRecalculating !== true ? (\n <>\n {pullInProgress()}\n
    \n \n
    \n \n ) : ppcRecalculating === true ? (\n <>\n {recalcInProgress()}\n
    \n \n
    \n \n ) : showPpcErrors ? (\n <>\n {displayErrors(\"ppc_section\")}\n
    \n \n
    \n \n ) : (\n \n )}\n
    \n \n {searchPulling === true ? (\n <>\n {pullInProgress()}\n
    \n \n
    \n \n ) : searchRecalculating === true ? (\n <>\n {recalcInProgress()}\n
    \n \n
    \n \n ) : showSearchErrors ? (\n <>\n {displayErrors(\"search_section\")}\n
    \n \n
    \n \n ) : (\n \n )}\n
    \n \n {socialPulling === true ? (\n <>\n {pullInProgress()}\n
    \n \n
    \n \n ) : socialRecalculating === true ? (\n <>\n {recalcInProgress()}\n
    \n \n
    \n \n ) : showSocialErrors ? (\n <>\n {displayErrors(\"social_section\")}\n
    \n \n
    \n \n ) : (\n \n )}\n
    \n \n {displayPulling === true ? (\n <>\n {pullInProgress()}\n
    \n \n
    \n \n ) : displayRecalculating === true ? (\n <>\n {recalcInProgress()}\n
    \n \n
    \n \n ) : showDisplayErrors ? (\n <>\n {displayErrors(\"display_section\")}\n
    \n \n
    \n \n ) : (\n \n )}\n
    \n \n {videoPulling === true ? (\n <>\n {pullInProgress()}\n
    \n
    \n \n ) : videoRecalculating === true ? (\n <>\n {recalcInProgress()}\n
    \n
    \n \n ) : showVideoErrors ? (\n <>\n {displayErrors(\"video_section\")}\n
    \n
    \n \n ) : (\n
    \n
    \n
    \n
    \n
    \n \n
    \n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport { Tab, Nav, Container, Row, Col, Button, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig.js\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport default function ScriptBoxes(props) {\n\n const [excludeNbInShoppingKeywords, setExcludeNbInShoppingKeywords] = useState(jsDig([\"client_account\", \"scripts\", \"exclude_nb_in_shopping\", \"keyword\"], props) || {});\n const [youtubeChannelExcluderData, setYoutubeChannelExcluderData] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\"], props) || {});\n\n const deleteKeyword = (e, kwNum) => {\n e.preventDefault();\n const {[kwNum]: deletedValue, ...remainingKeywords} = excludeNbInShoppingKeywords;\n setExcludeNbInShoppingKeywords(remainingKeywords);\n if (props.onboarding) {\n let newScripts = { ...props.client_account.scripts };\n newScripts[\"exclude_nb_in_shopping\"][\"keyword\"] = remainingKeywords;\n props.setScripts({ ...newScripts });\n }\n };\n\n const handleAddKeyword = (e) => {\n e.preventDefault();\n // excludeNbInShoppingKeywords is an object with numeric keys\n const newKey = uuidv4()\n const newKeywords = { ...excludeNbInShoppingKeywords, [newKey]: \"\" }; // Add a new entry with an empty string or a default value\n setExcludeNbInShoppingKeywords(newKeywords);\n };\n\n const handleScriptPropertyInput = (e, propertyName, currentData, updateMethod) => {\n e.preventDefault();\n console.log(\"handleScriptPropertyInput\", propertyName, e.target.value);\n const newData = { ...currentData, [propertyName]: e.target.value };\n updateMethod(newData);\n };\n\n return (\n <>\n {props.scripts.map((script) => {\n return (\n \n {script.name == \"exclude_nb_in_shopping\" ? (\n \n
    \n
    \n {props.onboarding ? (\n ${script.title}

    `}\n onChange={(e) => {\n let newScripts = props.client_account.scripts;\n newScripts[script.name] = newScripts[script.name] || {};\n newScripts[script.name][\"enabled\"] = e.target.checked ? \"1\" : \"0\";\n props.setScripts({ ...newScripts });\n props.setIsChecked({ ...newScripts });\n props.checkValidation();\n }}\n />\n ) : (\n ${script.title}

    `}\n static\n />\n )}\n
    \n
    \n

    \n {script.desc}\n

    \n
    \n
    \n

    Please add branded keywords:

    \n

    All keywords with more than 0 clicks in the past 30 days will be analyzed

    \n
    \n
    \n
    \n {Object.keys(excludeNbInShoppingKeywords).map((kwNum, i) => {\n return (\n
    \n {kwNum}.\n {props.onboarding ? (\n {\n let newScripts = { ...props.client_account.scripts };\n newScripts[script.name] = newScripts[script.name] || {};\n newScripts[script.name][\"keyword\"] = newScripts[script.name][\"keyword\"] || {};\n newScripts[script.name][\"keyword\"][kwNum] = e.target.value;\n props.setScripts({ ...newScripts });\n }}\n />\n ) : (\n {\n let newKeywords = { ...excludeNbInShoppingKeywords };\n newKeywords[kwNum] = e.target.value;\n setExcludeNbInShoppingKeywords(newKeywords);\n }}\n />\n )}\n deleteKeyword(e, kwNum)}>\n \n \n
    \n );\n })}\n
    \n
    \n \n
    \n \n ) : (script.name == \"youtube_channel_excluder\") ? (\n \n
    \n
    \n {props.onboarding ? (\n ${script.title}

    `}\n onChange={(e) => {\n let newScripts = props.client_account.scripts;\n newScripts[script.name] = newScripts[script.name] || {};\n newScripts[script.name][\"enabled\"] = e.target.checked ? \"1\" : \"0\";\n props.setScripts({ ...newScripts });\n props.setIsChecked({ ...newScripts });\n props.checkValidation();\n }}\n />\n ) : (\n ${script.title}

    `}\n static\n />\n )}\n
    \n
    \n

    {script.desc}

    \n
    \n
    \n

    Please create a copy of this google sheet before enabling this script.

    \n

    Edit access must be granted to support@digitalposition.com

    \n
    \n
    \n \n Google Sheet\n {props.onboarding ? (\n {\n let newScripts = { ...props.client_account.scripts };\n newScripts[script.name] = newScripts[script.name] || {};\n newScripts[script.name][\"google_sheet\"] = e.target.value;\n props.setScripts({ ...newScripts });\n props.setIsChecked({ ...newScripts });\n props.checkValidation();\n }}\n placeholder=\"https://docs.google.com/spreadsheets/...\"\n />\n ) : (\n handleScriptPropertyInput(e, \"google_sheet\", youtubeChannelExcluderData, setYoutubeChannelExcluderData)}\n placeholder=\"https://docs.google.com/spreadsheets/...\"\n />\n )}\n \n \n Allowed Countries\n

    Please supply a regex formula to specfify which countries you would like to whitelist. (E.g. ^US|UK|CA$)

    \n {props.onboarding ? (\n {\n let newScripts = { ...props.client_account.scripts };\n newScripts[script.name] = newScripts[script.name] || {};\n newScripts[script.name][\"allowed_countries\"] = e.target.value;\n props.setScripts({ ...newScripts });\n props.setIsChecked({ ...newScripts });\n props.checkValidation();\n }}\n placeholder=\"^US$\"\n />\n ) : (\n handleScriptPropertyInput(e, \"allowed_countries\", youtubeChannelExcluderData, setYoutubeChannelExcluderData)}\n placeholder=\"^US$\"\n />\n )}\n
    \n \n Impressions Time Range\n

    Select a predefined time range.

    \n {props.onboarding ? (\n {\n let newScripts = { ...props.client_account.scripts };\n newScripts[script.name] = newScripts[script.name] || {};\n newScripts[script.name][\"impressions_time_range\"] = e.target.value;\n console.log(newScripts)\n props.setScripts({ ...newScripts });\n props.setIsChecked({ ...newScripts });\n props.checkValidation();\n }}\n placeholder=\"LAST_7_DAYS\"\n as=\"select\"\n >\n \n \n \n \n \n ) : (\n handleScriptPropertyInput(e, \"impressions_time_range\", youtubeChannelExcluderData, setYoutubeChannelExcluderData)}\n placeholder=\"LAST_7_DAYS\"\n as=\"select\"\n >\n \n \n \n \n \n )}\n
    \n \n Impressions Threshold\n

    Minimum number of impressions to consider a channel for exclusion.

    \n {props.onboarding ? (\n {\n let newScripts = { ...props.client_account.scripts };\n newScripts[script.name] = newScripts[script.name] || {};\n newScripts[script.name][\"impressions_threshold\"] = e.target.value;\n props.setScripts({ ...newScripts });\n props.setIsChecked({ ...newScripts });\n props.checkValidation();\n }}\n placeholder=\"Default: 10\"\n />\n ) : (\n handleScriptPropertyInput(e, \"impressions_threshold\", youtubeChannelExcluderData, setYoutubeChannelExcluderData)}\n placeholder=\"Default: 10\"\n />\n )}\n
    \n
    \n
    \n \n ) : (\n \n
    \n
    \n {props.onboarding ? (\n ${script.title}

    `}\n onChange={(e) => {\n let newScripts = props.client_account.scripts;\n newScripts[script.name] = e.target.checked ? \"1\" : \"0\";\n props.setScripts({ ...newScripts });\n props.setIsChecked({ ...newScripts });\n props.checkValidation();\n }}\n />\n ) : (\n ${script.title}

    `}\n static\n />\n )}\n
    \n
    \n

    {script.desc}

    \n
    \n
    \n \n )}\n
    \n );\n })}\n \n )\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport Goals from \"./goals/Goals\";\nimport Dashboard from \"./dashboard/Dashboard\";\nimport updateParams from \"utils/updateParams.js\";\nimport IdsData from \"./ids_data/IdsData\";\n\nexport default function All(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"subpage\");\n if (!page || page == \"\") {\n page = \"ids_data\";\n }\n setTabLocation(page);\n updateParams(\"subpage\", page);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"subpage\", key);\n };\n\n return (\n <>\n
    \n {props.selectedPage == \"all_ppc\" && }\n selectTab(k)}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n );\n}\n","import React from \"react\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport DashboardBuilder from \"client_config/DashboardBuilder\";\n\nexport default function Dashboard(props) {\n let dashboards = [{ name: \"PPC: Overall\", id: 0, dashboardOrder: props.ppc_section.dashboard_order }];\n const campaignGroups = {\n search: props.search_section.campaign_groups,\n social: props.social_section.campaign_groups,\n display: props.display_section.campaign_groups,\n video: props.video_section.campaign_groups,\n };\n const performanceByChannel = {\n search: props.search_section.enabled,\n social: props.social_section.enabled,\n display: props.display_section.enabled,\n video: props.video_section.enabled,\n };\n if (props.onboarding && props.ppcDashboard) {\n dashboards = props.ppcDashboard;\n }\n const subServiceDashboards = {\n search: props.search_section.dashboard_order,\n social: props.social_section.dashboard_order,\n display: props.display_section.dashboard_order,\n video: props.video_section.dashboard_order,\n };\n return (\n <>\n \n \n \n
    \n

    Dashboard modules:

    \n
    \n
    \n \n
    \n \n \n {dashboards.map((dashboard, index) => {\n return (\n
    \n \n
    \n );\n })}\n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport GoalsTable from \"client_config/GoalsTable\";\nimport ConfigureGoalsModal from \"client_config/ConfigureGoalsModal\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport jsDig from \"utils/jsDig\";\nimport { snakeCase, cloneDeep } from \"lodash\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\n\nexport default function Goals(props) {\n const metricList = allMetricData.metricsByDashboard.ppc.metrics.goalsAndProjections;\n const [goalChangePercent, setGoalChangePercent] = useState(0);\n const [allOrBlank, setAllOrBlank] = useState(\"blank\");\n const startDate = moment(\"2018-01-01\");\n const todaysDate = moment();\n const endDate = todaysDate.add(1, \"year\");\n const yearsDiff = Math.ceil(endDate.diff(startDate, \"years\", true));\n const yearsArray = [...Array(yearsDiff).fill(\"empty\")].map((empty, index) => startDate.year() + index).reverse();\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n let calculatorLarge = require(\"images/icons/calculator-large.png\");\n calculatorLarge = ;\n // For All PPC we only set goals for the overall dashboard\n const dashboardsInitial = [{ name: \"PPC: Overall\", id: 0, goals: props.ppc_section.goals }];\n\n const [dashboards, setDashboards] = useState(dashboardsInitial);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n const [selectedYear, setSelectedYear] = useState(moment().year().toString());\n\n let savedCheckedMetrics = {};\n savedCheckedMetrics[dashboardsInitial[0].id] = {};\n yearsArray.forEach((year) => {\n // Get a list of which metrics have been saved to the dashboard's goals\n const goals = jsDig([\"goals\", year, \"Jan\"], dashboardsInitial[0]);\n savedCheckedMetrics[dashboardsInitial[0].id][year] = goals ? Object.keys(goals).map((metricName) => metricName) : [];\n });\n const [checkedMetrics, setCheckedMetrics] = useState(savedCheckedMetrics);\n\n const handleMetricCheck = (id, year, metricName, check) => {\n let newDashboards = dashboards;\n let newCheckedMetrics = cloneDeep(checkedMetrics);\n\n if (check && jsDig([id, year], newCheckedMetrics)) {\n newCheckedMetrics[id][year].push(metricName);\n } else {\n newCheckedMetrics[id][year].splice(newCheckedMetrics[id][year].indexOf(metricName), 1);\n }\n\n const dashIndex = newDashboards.findIndex((el) => el.id == id);\n if (!newDashboards[dashIndex].goals[year]) newDashboards[dashIndex].goals[year] = {};\n if (check == true) {\n months.forEach((month) => {\n if (!newDashboards[dashIndex].goals[year][month]) newDashboards[dashIndex].goals[year][month] = {};\n newDashboards[dashIndex].goals[year][month][metricName] = \"\";\n });\n } else {\n months.forEach((month) => {\n delete newDashboards[dashIndex][\"goals\"][year][month][metricName];\n });\n }\n\n setDashboards(newDashboards);\n setCheckedMetrics(newCheckedMetrics);\n };\n\n const handlePullMetric = (selectedId) => {\n if (props.ppc_cc_data[selectedId]) {\n const year = moment().year();\n const percentChange = goalChangePercent / 100;\n // The cc data sent by the controller includes all platforms, so filter to only 'all'\n const allCcData = props.ppc_cc_data[selectedId].filter((datum) => datum.platform == \"all\");\n let newDashboards = dashboards;\n const dashIndex = newDashboards.findIndex((el) => el.id == selectedId);\n // Reformat cc data to make it easier to access\n const ccData = {};\n allCcData.forEach((datum) => {\n let newDate = moment(datum.date.split(\"T\")[0]);\n\n const newMonth = newDate.format(\"MMM\");\n const newyear = newDate.format(\"YYYY\");\n if (!ccData[newyear]) ccData[newyear] = {};\n ccData[newyear][newMonth] = datum;\n });\n\n // Only apply the changes to the metrics that have been checked\n const goalShortcutMetrics = $('.metric-selector input[type=\"checkbox\"]:checked');\n \n months.forEach((month) => {\n goalShortcutMetrics.each((i, metricCheckbox) => {\n const metricCamel = metricCheckbox.name;\n const metricSnake = snakeCase(metricCamel);\n const historical = jsDig([year - 1, month, metricSnake, \"projected\"], ccData);\n const newValue = Math.round(historical * (1 + percentChange) * 100) / 100;\n if (allOrBlank == \"blank\") {\n if (historical && newDashboards[dashIndex].goals[year][month][metricCamel] == \"\") {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n } else {\n if (historical) {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n }\n });\n });\n setDashboards([...newDashboards]);\n } else {\n console.log(\"No historical data!\");\n }\n };\n\n return (\n <>\n
    \n \n \n

    Goals:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    For:\n {\n setSelectedDashboardId(e.target.value);\n }}>\n {dashboards.map((dashboard, index) => (\n \n ))}\n \n
    Year:\n {\n setSelectedYear(e.target.value);\n }}>\n {yearsArray.map((year) => {\n return ;\n })}\n \n
    \n
    \n \n {/* Only show the pull metrics button if the selectedYear matches the current year */}\n { selectedYear == moment().year().toString() ? (\n <>\n { props.ppc_cc_data[selectedDashboardId].length > 0 ? (\n
    \n

    \n You have the option to pull in historical data from the last year to help set this year's goals. Enter a percentage change to apply to the previous year's data:\n

    \n

    \n (Negative numbers are also supported)\n

    \n
    \n setGoalChangePercent(e.target.value)}\n >\n \n %\n
    \n\n
    \n

    Metrics to fill in:

    \n {/* Let the user select which metric to apply the change to. Generate a checkbox for each metric */}\n {checkedMetrics[selectedDashboardId][selectedYear].map((metricName, index) => {\n const metric = metricList[metricName];\n return (\n
    \n \n
    \n );\n })}\n
    \n\n
    \n

    Goals to replace:

    \n setAllOrBlank(e.target.value)}>\n \n \n \n
    \n\n handlePullMetric(selectedDashboardId)}>\n Pull metrics\n \n
    \n ) : (\n

    No historical data has been pulled so goals cannot be generated.

    \n )}\n \n ) : <> }\n
    \n \n \n
    \n

    Configure which metrics for the selected for/year fields that you would like to set goals for:

    \n \n
    \n \n \n
    \n
    \n {calculatorLarge}

    What's this?

    \n
    \n
    \n

    \n When you see the blue calculator icon on a goal or column, it means that this metric can be auto-generated using pre-existing information. For\n example, ROAS can be auto-generated based on the existing Spend and Revenue goals. Hover over the icon to get information on which metrics it\n needs to calculate, and click to generate into that field.\n

    \n
    \n
    \n \n
    \n \n \n {dashboards.map((dashboard, dbIndex) => {\n return (\n \n {yearsArray.map((year, yearIndex) => {\n let visible = dashboard.id == selectedDashboardId && selectedYear == year;\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n })}\n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport ManualDataPull from \"client_config/ManualDataPull\";\nimport CurrencySelector from \"client_config/CurrencySelector\";\nimport jsDig from \"utils/jsDig.js\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport { Form } from \"react-bootstrap\";\n\nexport default function IdsData(props) {\n let platforms = [\n {\n name: \"shopify\",\n id: \"pull-shopify\",\n label: \"Pull Shopify data on save\",\n },\n ];\n\n const [platformEnabled, setPlatformEnabled] = useState(\n jsDig([\"platform_data\", \"shopify\", \"enabled\"], props.ppc_section) ? jsDig([\"platform_data\", \"shopify\", \"enabled\"], props.ppc_section) : false\n );\n\n const [baseCurrency, setBaseCurrency] = useState(props.ppc_section.base_currency)\n const [displayCurrency, setDisplayCurrency] = useState(props.ppc_section.display_currency)\n\n return (\n
    \n \n \n
    \n \n Shopify Data\n \n \n
    \n
    \n {\n setPlatformEnabled(!platformEnabled);\n }}\n />\n
    \n
    \n

    Shopify URL

    \n \n
    \n
    \n

    Shopify revenue type

    \n \n \n
    \n
    \n
    \n \n \n \n \n
    \n \n \n
    Shopify Country Filter
    \n
    \n \n {[\"none\", \"US\", \"CA\"].map((country) => {\n return (\n \n );\n })}\n \n
    \n \n
    \n \n \n
    Base Currency
    \n \n \n \n
    Display Currency
    \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport IdsData from \"./ids_data/IdsData\";\nimport CampaignGroups from \"../CampaignGroups\";\nimport Goals from \"./goals/Goals\";\nimport Dashboard from \"./dashboard/Dashboard\";\nimport Scripts from \"./scripts/Scripts\";\nimport Alerts from \"./alerts/Alerts\";\nimport updateParams from \"utils/updateParams.js\";\nimport jsDig from \"utils/jsDig\"\n\nexport default function Display(props) {\n\tconst [tabLocation, setTabLocation] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tlet searchParams = new URL(location.href).searchParams;\n\t\tlet page = searchParams.get(\"subpage\");\n\t\tif (!page || page == \"\") {\n\t\t\tpage = \"ids_data\";\n\t\t}\n\t\tsetTabLocation(page);\n\t\tupdateParams(\"subpage\", page);\n\t}, []);\n\n\tconst selectTab = (key) => {\n\t\tsetTabLocation(key);\n\t\tupdateParams(\"subpage\", key);\n\t};\n\n\n\t// const [shouldWeReloadDisplay, setShouldWeReloadDisplay ]= useState(props.search_section.data_pull_status.display_data_pull !== true)\n // useEffect(() => {\n // if (props.search_section.data_pull_status.display_data_pull === true) {\n // setTimeout(() => {setShouldWeReloadDisplay(shouldWeReloadDisplay)}, 3000)\n // }\n // }, [shouldWeReloadDisplay])\n\n\tconst campaignGroups = props.display_section.campaign_groups\n\tconst google_ads_id = [jsDig([\"google_ads\", \"account_ids\"], props.search_section.platform_data), jsDig([\"google_ads\", \"account_ids\"], props.display_section.platform_data), jsDig([\"google_ads\", \"account_ids\"], props.video_section.platform_data)].filter((id) => id != null)[0]\n\tconst show_scripts = google_ads_id && google_ads_id != \"\" && !props.search_section.enabled && props.display_section.enabled\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t{props.selectedPage == \"display\" && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t selectTab(k)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{show_scripts &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n","import React from \"react\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport AlertsGroup from \"client_config/AlertsGroup\";\nimport ManageSubsByClient from \"alert_subscriptions/ManageSubsByClient\";\nimport OnboardingAlertsGroup from \"onboarding/AlertsGroup\";\n\nconst addUser = (email, sectionName, sectionId) => {\n let returnedData = \"\";\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/subscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: (data) => {\n returnedData = data;\n },\n });\n }\n return returnedData;\n};\n\nconst removeUser = (email, sectionName, sectionId) => {\n let removalSuccessful = false;\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/unsubscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: () => {\n removalSuccessful = true;\n },\n });\n }\n return removalSuccessful;\n};\n\nexport default function Alerts(props) {\n const platforms = [\n {\n platformName: \"Google Ads\",\n alerts: [\n {\n name: \"google_ads_display_impressions_emergency_detector\",\n title: \"Impressions emergency detector\",\n desc: \"Gets the number of Google Ads impressions on display campaigns for each account and if it falls beneath a certain threshold, emails all DP employees.\",\n },\n\n {\n name: \"google_ads_display_disapproved_ads_detector\",\n title: \"Disapproved ads detector\",\n desc: \"Creates an alert with a list of all disapproved display ads on Google Ads.\",\n },\n {\n name: \"google_ads_display_out_of_stock_detector\",\n title: \"Out of stock detector\",\n desc: \"Checks the landing pages of all display ads on accounts for specific 'out of stock' related language and creates a list of landing pages that match.\",\n },\n {\n name: \"google_ads_display_impressions_flux_detector\",\n title: \"Impressions flux detector\",\n desc: \"Creates an alert if Google Ads display impressions fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_display_clicks_flux_detector\",\n title: \"Clicks flux detector\",\n desc: \"Creates an alert if Google Ads display clicks fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_display_url_issue_detector\",\n title: \"URL issue detector\",\n desc: \"Goes through all Google Ads display ads in an account and makes an alert of pages that produce unacceptable response codes.\",\n },\n\n {\n name: \"google_ads_display_spend_flux_detector\",\n title: \"Spend flux detector\",\n desc: \"Creates an alert if Google Ads display spend fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n\n {\n name: \"google_ads_display_conversions_flux_detector\",\n title: \"Conversions flux detector\",\n desc: \"Creates an alert if Google Ads display conversions fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_display_conversion_rate_flux_detector\",\n title: \"Conversion Rate flux detector\",\n desc: \"Creates an alert if Google Ads display conversion rate fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n ],\n },\n ];\n\n return (\n <>\n \n \n \n
    \n

    Alerts:

    \n
    \n \n
    \n \n \n
    \n {platforms.map((platform) => {\n return props.onboarding ? (\n \n ) : (\n \n );\n })}\n
    \n \n \n \n
    Subscribed to these alerts:
    \n \n \n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Container, Row, Col, Button } from \"react-bootstrap\";\nimport DashboardBuilder from \"client_config/DashboardBuilder\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport { cloneDeep } from \"lodash\";\n\nexport default function Dashboard(props) {\n let initialDashboards = [\n { name: \"Display: Overall\", id: 0, dashboardOrder: props.display_section.dashboard_order },\n ...props.display_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, dashboardOrder: group.dashboard_order })),\n ];\n\n if (props.onboarding && props.displayDashboard) {\n initialDashboards = props.displayDashboard;\n }\n const [dashboards, setDashboards] = useState(initialDashboards);\n\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n const copyFromOverall = () => {\n console.log(dashboards, selectedDashboard);\n const index = dashboards.findIndex((el) => el.name == selectedDashboard);\n let newDashboards = dashboards;\n newDashboards[index].dashboardOrder = cloneDeep(dashboards[0].dashboardOrder);\n setDashboards([...newDashboards]);\n };\n\n return (\n <>\n \n \n \n
    \n

    Dashboard modules:

    \n

    Select View:

    \n \n
    \n {dashboards.findIndex((el) => el.name == selectedDashboard) !== 0 && (\n \n )}\n
    \n\n
    \n

    \n \n Keep in mind you will need to configure the 'Campaign Groups' tab above before they will appear in the 'Select View' dropdown above!\n \n    Check the box to enable/disable, and click and drag the left handleto reorder your dashboard. Click 'Display configuration' to\n configure which metrics will show in each section.\n

    \n
    \n
    \n \n
    \n \n \n
    \n {dashboards\n .map((el) => {\n if (!el.name.includes(\"Display: Overall\")) {\n let newDash = el;\n let result = newDash.dashboardOrder.filter((dash) => {\n return dash.name !== \"campaignGroups\";\n });\n el.dashboardOrder = result;\n }\n return el;\n })\n .map((dashboard, index) => {\n let visible = dashboard.name == selectedDashboard;\n return (\n
    \n \n
    \n );\n })}\n
    \n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport GoalsTable from \"client_config/GoalsTable\";\nimport ConfigureGoalsModal from \"client_config/ConfigureGoalsModal\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport jsDig from \"utils/jsDig\";\nimport { snakeCase, cloneDeep } from \"lodash\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\n\nexport default function Goals(props) {\n const metricList = allMetricData.metricsByDashboard.display.metrics.goalsAndProjections;\n const [goalChangePercent, setGoalChangePercent] = useState(0);\n const [allOrBlank, setAllOrBlank] = useState(\"blank\");\n const startDate = moment(\"2018-01-01\");\n const todaysDate = moment();\n const endDate = todaysDate.add(1, \"year\");\n const yearsDiff = Math.ceil(endDate.diff(startDate, \"years\", true));\n const yearsArray = [...Array(yearsDiff)].map((empty, index) => startDate.year() + index).reverse();\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n let calculatorLarge = require(\"images/icons/calculator-large.png\");\n calculatorLarge = ;\n\n // Default dashboard to configure is the overall dashboard which will directly update the search_section's goals. If there is valid id passed through parameters the controller will update the relevant campaign group.\n const dashboardsInitial = [\n { name: \"Display: Overall\", id: 0, goals: props.display_section.goals },\n ...props.display_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n\n const [dashboards, setDashboards] = useState(dashboardsInitial);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n const [selectedYear, setSelectedYear] = useState(moment().year().toString());\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n\n let savedCheckedMetrics = {};\n dashboardsInitial.forEach((dashboard) => {\n savedCheckedMetrics[dashboard.id] = {};\n yearsArray.forEach((year) => {\n // Get a list of which metrics have been saved to the dashboard's goals\n const goals = jsDig([\"goals\", year, \"Jan\"], dashboard);\n savedCheckedMetrics[dashboard.id][year] = goals ? Object.keys(goals).map((metricName) => metricName) : [];\n });\n });\n const [checkedMetrics, setCheckedMetrics] = useState(savedCheckedMetrics);\n\n const handleMetricCheck = (id, year, metricName, check) => {\n let newDashboards = dashboards;\n let newCheckedMetrics = cloneDeep(checkedMetrics);\n if (check && jsDig([id, year], newCheckedMetrics)) {\n newCheckedMetrics[id][year].push(metricName);\n } else {\n newCheckedMetrics[id][year].splice(newCheckedMetrics[id][year].indexOf(metricName), 1);\n }\n\n const dashIndex = newDashboards.findIndex((el) => el.id == id);\n if (!newDashboards[dashIndex].goals[year]) newDashboards[dashIndex].goals[year] = {};\n if (check == true) {\n months.forEach((month) => {\n if (!newDashboards[dashIndex].goals[year][month]) newDashboards[dashIndex].goals[year][month] = {};\n newDashboards[dashIndex].goals[year][month][metricName] = \"\";\n });\n } else {\n months.forEach((month) => {\n delete newDashboards[dashIndex][\"goals\"][year][month][metricName];\n });\n }\n setDashboards(newDashboards);\n setCheckedMetrics(newCheckedMetrics);\n };\n\n const handlePullMetric = (selectedId) => {\n if (props.display_cc_data[selectedId]) {\n const year = moment().year();\n const percentChange = goalChangePercent / 100;\n // The cc data sent by the controller includes all platforms, so filter to only 'all'\n const allCcData = props.display_cc_data[selectedId].filter((datum) => datum.platform == \"all\");\n let newDashboards = dashboards;\n const dashIndex = newDashboards.findIndex((el) => el.id == selectedId);\n // Reformat cc data to make it easier to access\n const ccData = {};\n allCcData.forEach((datum) => {\n let newDate = moment(datum.date.split(\"T\")[0]);\n\n const newMonth = newDate.format(\"MMM\");\n const newyear = newDate.format(\"YYYY\");\n if (!ccData[newyear]) ccData[newyear] = {};\n ccData[newyear][newMonth] = datum;\n });\n\n // Only apply the changes to the metrics that have been checked\n const goalShortcutMetrics = $('.metric-selector input[type=\"checkbox\"]:checked');\n \n months.forEach((month) => {\n goalShortcutMetrics.each((i, metricCheckbox) => {\n const metricCamel = metricCheckbox.name;\n const metricSnake = snakeCase(metricCamel);\n const historical = jsDig([year - 1, month, metricSnake, \"projected\"], ccData);\n const newValue = Math.round(historical * (1 + percentChange) * 100) / 100;\n if (allOrBlank == \"blank\") {\n if (historical && newDashboards[dashIndex].goals[year][month][metricCamel] == \"\") {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n } else {\n if (historical) {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n }\n });\n });\n setDashboards([...newDashboards]);\n } else {\n console.log(\"No historical data!\");\n }\n };\n\n return (\n <>\n
    \n \n \n

    Goals:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    For:\n \n
    Year:\n {\n setSelectedYear(e.target.value);\n }}>\n {yearsArray.map((year) => {\n return ;\n })}\n \n
    \n
    \n {/* Only show the pull metrics button if the selectedYear matches the current year */}\n { selectedYear == moment().year().toString() ? (\n <>\n { props.display_cc_data[selectedDashboardId].length > 0 ? (\n
    \n

    \n You have the option to pull in historical data from the last year to help set this year's goals. Enter a percentage change to apply to the previous year's data:\n

    \n

    \n (Negative numbers are also supported)\n

    \n
    \n setGoalChangePercent(e.target.value)}\n >\n \n %\n
    \n\n
    \n

    Metrics to fill in:

    \n {/* Let the user select which metric to apply the change to. Generate a checkbox for each metric */}\n {checkedMetrics[selectedDashboardId][selectedYear].map((metricName, index) => {\n const metric = metricList[metricName];\n return (\n
    \n \n
    \n );\n })}\n
    \n\n
    \n

    Goals to replace:

    \n setAllOrBlank(e.target.value)}>\n \n \n \n
    \n\n handlePullMetric(selectedDashboardId)}>\n Pull metrics\n \n
    \n ) : (\n

    No historical data has been pulled so goals cannot be generated.

    \n )}\n \n ) : <> }\n
    \n \n \n
    \n

    Configure which metrics for the selected for/year fields that you would like to set goals for:

    \n \n
    \n \n \n
    \n
    \n {calculatorLarge}

    What's this?

    \n
    \n
    \n

    \n When you see the blue calculator icon on a goal or column, it means that this metric can be auto-generated using pre-existing information. For\n example, ROAS can be auto-generated based on the existing Spend and Revenue goals. Hover over the icon to get information on which metrics it\n needs to calculate, and click to generate into that field.\n

    \n
    \n
    \n \n
    \n \n \n {dashboards.map((dashboard, dbIndex) => {\n return (\n \n {yearsArray.map((year, yearIndex) => {\n let visible = dashboard.id == selectedDashboardId && selectedYear == year;\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n })}\n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport AccountIdBox from \"../../AccountIdBox\";\nimport ConversionActionIds from \"../../ConversionActionIds\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport ManualDataPull from \"client_config/ManualDataPull\";\nimport Inflation from \"client_config/ppc_config/Inflation\";\nimport CurrencySelector from \"client_config/CurrencySelector\";\nimport jsDig from \"utils/jsDig.js\"\n\nexport default function IdsData(props) {\n\tlet thumbnail = require(\"images/ShowMeHow.jpg\");\n thumbnail = ;\n\n\tlet platforms = [\n\t\t{\n\t\t\tname: \"google_ads\",\n\t\t\tid: \"pull-display-google\",\n\t\t\tlabel: \"Pull Google Ads on save\",\n\t\t}\n\t];\n\tlet platformNames = [\"Google\"];\n\n\tconst [baseCurrency, setBaseCurrency] = useState(props.display_section.base_currency)\n const [displayCurrency, setDisplayCurrency] = useState(props.display_section.display_currency)\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAccount IDs\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tInclude/Exclude Conversion Action IDs\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    To get a Conversion Action ID, go to Google Ads and open the Tools & Settings menu from the top right of the navbar. In the Measurement column, select Conversions. Next, select the conversion action from the list that appears. Once you have selected a conversion action, check the final URL of the page and look for the 'ctId' parameter. This will be equal to the Conversion Action's ID.

    \n\t\t\t\t\t\t\t\t\t\"Conversion\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tinline={true}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tInflation (Past 30 Days)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{thumbnail}} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n \n
    Base Currency
    \n \n \n \n
    Display Currency
    \n \n \n
    \n\t\t\n\t);\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Row, Col, Button, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport ScriptBoxes from \"components/client_config/ppc_config/ScriptBoxes\";\n\nexport default function Scripts(props) {\n\tlet exclaimTriangle = require(\"images/icons/exclaim-triangle.png\");\n\texclaimTriangle = ;\n\n const scripts = [\n {\n name: \"text_converting_query_mining_script\",\n title: \"Text converting query mining script\",\n desc: \"Monthly iterates through all text campaign converted queries on an account for the previous two months and creates ad groups based on the converted query text.\",\n },\n {\n name: \"em_bm_negative_overlap_script\",\n title: \"EM/BM negative overlap script\",\n desc: \"Syncs negative keyword lists throughout the account to prevent overlap.\",\n },\n {\n name: \"negative_dsa_sync_script\",\n title: \"Negative DSA sync script\",\n desc: \"Syncs enabled account keywords as negatives in the '[DSA]' ad group to prevent bidding on pre_targeted queries.\",\n },\n {\n name: \"exclude_nb_in_shopping\",\n title: \"Exclude Non-Brand in Shopping\",\n desc: \"When you split Shopping campaigns on branded and non-branded search terms, you often still get non-branded search terms in your branded Shopping campaign(s). This script automatically excludes these terms.\",\n },\n {\n name: \"keyword_cannibalization_script\",\n title: \"Keyword Cannibalization Script\",\n desc: \"For every ad group in the entire account, adds all keywords NOT in that ad group to be an exact match negative version to that ad group.\",\n },\n {\n name: \"youtube_channel_excluder\",\n title: \"Exclude Foreign Language YouTube Channels\",\n desc: \"For display and video campaigns, Google is not quite so particular about targeting individual languages and video ads are often played in foreign language channels. This script identifies YouTube channels in undesired countries on which the video campaign(s) was/are played and automatically excludes them from the respective campaign.\",\n },\n ];\n\n\treturn (\n\t\t<>\n \n \n \n
    \n

    Scripts:

    \n
    {exclaimTriangle}
    \n

    \n Enabling/disabling these scripts without a thorough understanding of the function may have unintended consequences. Please proceed with caution.\n

    \n
    \n \n
    \n \n \n \n
    \n\t\t\n\t);\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container } from \"react-bootstrap\";\nimport IdsData from \"./ids_data/IdsData\";\nimport CampaignGroups from \"../CampaignGroups\";\nimport Goals from \"./goals/Goals\";\nimport Dashboard from \"./dashboard/Dashboard\";\nimport Scripts from \"./scripts/Scripts\";\nimport Alerts from \"./alerts/Alerts\";\nimport updateParams from \"utils/updateParams.js\";\nimport jsDig from \"utils/jsDig\"\n\nexport default function Search(props) {\n\tconst [tabLocation, setTabLocation] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tlet searchParams = new URL(location.href).searchParams;\n\t\tlet page = searchParams.get(\"subpage\");\n\t\tif (!page || page == \"\") {\n\t\t\tpage = \"ids_data\";\n\t\t}\n\t\tsetTabLocation(page);\n\t\tupdateParams(\"subpage\", page);\n\t}, []);\n\n\tconst selectTab = (key) => {\n\t\tsetTabLocation(key);\n\t\tupdateParams(\"subpage\", key);\n\t};\n\n\tconst campaignGroups = props.search_section.campaign_groups\n\tconst google_ads_id = [jsDig([\"google_ads\", \"account_ids\"], props.search_section.platform_data), jsDig([\"google_ads\", \"account_ids\"], props.display_section.platform_data), jsDig([\"google_ads\", \"account_ids\"], props.video_section.platform_data)].filter((id) => id != null)[0]\n\tconst show_scripts = google_ads_id && google_ads_id != \"\" && props.search_section.enabled\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t{props.selectedPage == \"search\" && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t selectTab(k)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{show_scripts &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Row, Col, Button, Form } from \"react-bootstrap\";\nimport AlertsGroup from \"client_config/AlertsGroup\";\nimport ManageSubsByClient from \"alert_subscriptions/ManageSubsByClient\";\nimport OnboardingAlertsGroup from \"onboarding/AlertsGroup\";\nconst addUser = (email, sectionName, sectionId) => {\n let returnedData = \"\";\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/subscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: (data) => {\n returnedData = data;\n },\n });\n }\n return returnedData;\n};\n\nconst removeUser = (email, sectionName, sectionId) => {\n let removalSuccessful = false;\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/unsubscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: () => {\n removalSuccessful = true;\n },\n });\n }\n return removalSuccessful;\n};\n\nexport default function Alerts(props) {\n const platforms = [\n {\n platformName: \"Google Ads\",\n alerts: [\n {\n name: \"google_ads_search_impressions_emergency_detector\",\n title: \"Impressions emergency detector\",\n desc: \"Gets the number of Google Ads impressions on search & shopping campaigns for each account and if it falls beneath a certain threshold, emails all DP employees.\",\n },\n\n {\n name: \"google_ads_search_disapproved_ads_detector\",\n title: \"Disapproved ads detector\",\n desc: \"Creates an alert with a list of all disapproved search ads on Google Ads.\",\n },\n {\n name: \"google_ads_search_out_of_stock_detector\",\n title: \"Out of stock detector\",\n desc: \"Checks the landing pages of all search ads on accounts for specific 'out of stock' related language and creates a list of landing pages that match.\",\n },\n {\n name: \"google_ads_search_impressions_flux_detector\",\n title: \"Impressions flux detector\",\n desc: \"Creates an alert if Google Ads search impressions fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_search_clicks_flux_detector\",\n title: \"Clicks flux detector\",\n desc: \"Creates an alert if Google Ads search clicks fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_search_keyword_bleeder_detector\",\n title: \"Keyword bleeder detector\",\n desc: \"Emails the PPC team if a Google Ads keyword has spent over $350 with no conversions in the past 14 days.\",\n options: [\n {\n name: \"threshold\",\n title: \"Spend threshold:\",\n placeholder: \"Default $350\",\n },\n ],\n },\n {\n name: \"google_ads_search_url_issue_detector\",\n title: \"URL issue detector\",\n desc: \"Goes through all Google Ads search ads in an account and makes an alert of pages that produce unacceptable response codes.\",\n },\n\n {\n name: \"google_ads_search_spend_flux_detector\",\n title: \"Spend flux detector\",\n desc: \"Creates an alert if Google Ads search spend fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n\n {\n name: \"google_ads_search_conversions_flux_detector\",\n title: \"Conversions flux detector\",\n desc: \"Creates an alert if Google Ads search conversions fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_search_conversion_rate_flux_detector\",\n title: \"Conversion Rate flux detector\",\n desc: \"Creates an alert if Google Ads search conversion rate fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_search_new_invite_detector\",\n title: \"New Invite Detector\",\n desc: \"Creates an alert & sends an email if a new user has been invited to a Google Ads account.\",\n },\n ],\n },\n {\n platformName: \"Google Shopping\",\n alerts: [\n {\n name: \"google_ads_shopping_campaign_fluctuation_detector\",\n title: \"Shopping campaign fluctuation detector\",\n desc: \"Checks all clicks from all Shopping campaigns on an account and if they fall or rise more than 40%, it will be highlighted in an alert.\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 60%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 140%\",\n },\n ],\n },\n {\n name: \"google_ads_shopping_product_fluctuation_detector\",\n title: \"Shopping product fluctuation detector\",\n desc: \"Checks all products on an account and highlights those which got no clicks despite historically getting clicks in an alert.\",\n },\n ],\n },\n {\n platformName: \"Microsoft Ads\",\n alerts: [\n {\n name: \"bing_ads_search_impressions_emergency_detector\",\n title: \"Impressions emergency detector\",\n desc: \"Gets the number of Bing Ads impressions on search & shopping campaigns for each account and if it falls beneath a certain threshold, emails all DP employees.\",\n },\n {\n name: \"bing_ads_search_disapproved_ads_detector\",\n title: \"Disapproved ads detector\",\n desc: \"Creates an alert with a list of all disapproved search ads on Bing Ads.\",\n },\n {\n name: \"bing_ads_search_impressions_flux_detector\",\n title: \"Impressions flux detector\",\n desc: \"Creates an alert if Bing Ads search impressions fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"bing_ads_search_clicks_flux_detector\",\n title: \"Clicks flux detector\",\n desc: \"Creates an alert if Bing Ads search clicks fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"bing_ads_search_keyword_bleeder_detector\",\n title: \"Keyword bleeder detector\",\n desc: \"Emails the PPC team if a Bing Ads keyword has spent over $350 with no conversions in the past 14 days.\",\n options: [\n {\n name: \"threshold\",\n title: \"Spend threshold:\",\n placeholder: \"Default $350\",\n },\n ],\n },\n {\n name: \"bing_ads_search_spend_flux_detector\",\n title: \"Spend flux detector\",\n desc: \"Creates an alert if Bing Ads search spend fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"bing_ads_search_conversions_flux_detector\",\n title: \"Conversions flux detector\",\n desc: \"Creates an alert if Bing Ads search conversions fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"bing_ads_search_conversion_rate_flux_detector\",\n title: \"Conversion Rate flux detector\",\n desc: \"Creates an alert if Bing Ads search conversion rate fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n ],\n },\n ];\n\n return (\n <>\n \n \n \n
    \n

    Alerts:

    \n
    \n \n
    \n \n \n
    \n {platforms.map((platform) => {\n return props.onboarding ? (\n \n ) : (\n \n );\n })}\n
    \n \n \n \n
    Subscribed to these alerts:
    \n \n \n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Container, Row, Col, Form, Button } from \"react-bootstrap\";\nimport DashboardBuilder from \"client_config/DashboardBuilder\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport { cloneDeep } from \"lodash\";\n\nexport default function Dashboard(props) {\n // Default dashboard to configure is the overall dashboard which will directly update the search_section's dashboard_order. If there is valid id passed through parameters the controller will update the relevant campaign group.\n let initialDashboards = [\n { name: \"Search: Overall\", id: 0, dashboardOrder: props.search_section.dashboard_order },\n ...props.search_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, dashboardOrder: group.dashboard_order })),\n ];\n\n if (props.onboarding && props.searchDashboard) {\n initialDashboards = props.searchDashboard;\n }\n const [dashboards, setDashboards] = useState(initialDashboards);\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n \n const copyFromOverall = () => {\n console.log(dashboards, selectedDashboard);\n const index = dashboards.findIndex((el) => el.name == selectedDashboard);\n let newDashboards = dashboards;\n newDashboards[index].dashboardOrder = cloneDeep(dashboards[0].dashboardOrder);\n setDashboards([...newDashboards]);\n };\n return (\n <>\n \n \n \n
    \n

    Dashboard modules:

    \n

    Select View:

    \n \n
    \n {dashboards.findIndex((el) => el.name == selectedDashboard) !== 0 && (\n \n )}\n
    \n
    \n

    \n \n Keep in mind you will need to configure the 'Campaign Groups' tab above before they will appear in the 'Select View' dropdown above!\n \n    Check the box to enable/disable, and click and drag the left handleto reorder your dashboard. Click 'Display configuration' to\n configure which metrics will show in each section.\n

    \n
    \n
    \n
    \n \n
    \n \n \n
    \n {dashboards\n .map((el) => {\n if (!el.name.includes(\"Search: Overall\")) {\n let newDash = el;\n let result = newDash.dashboardOrder.filter((dash) => {\n return dash.name !== \"campaignGroups\";\n });\n el.dashboardOrder = result;\n }\n return el;\n })\n .map((dashboard, index) => {\n let visible = dashboard.name == selectedDashboard;\n return (\n
    \n \n
    \n );\n })}\n
    \n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport GoalsTable from \"client_config/GoalsTable\";\nimport ConfigureGoalsModal from \"client_config/ConfigureGoalsModal\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport jsDig from \"utils/jsDig\";\nimport { snakeCase, cloneDeep } from \"lodash\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\n\nexport default function Goals(props) {\n const metricList = allMetricData.metricsByDashboard.search.metrics.goalsAndProjections;\n const [goalChangePercent, setGoalChangePercent] = useState(0);\n const [allOrBlank, setAllOrBlank] = useState(\"blank\");\n const startDate = moment(\"2018-01-01\");\n const todaysDate = moment();\n const endDate = todaysDate.add(1, \"year\");\n const yearsDiff = Math.ceil(endDate.diff(startDate, \"years\", true));\n const yearsArray = [...Array(yearsDiff)].map((empty, index) => startDate.year() + index).reverse();\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n let calculatorLarge = require(\"images/icons/calculator-large.png\");\n calculatorLarge = ;\n\n // Default dashboard to configure is the overall dashboard which will directly update the search_section's goals. If there is valid id passed through parameters the controller will update the relevant campaign group.\n const dashboardsInitial = [\n { name: \"Search: Overall\", id: 0, goals: props.search_section.goals },\n ...props.search_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n\n const [dashboards, setDashboards] = useState(dashboardsInitial);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n const [selectedYear, setSelectedYear] = useState(moment().year().toString());\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n\n let savedCheckedMetrics = {};\n dashboards.forEach((dashboard) => {\n savedCheckedMetrics[dashboard.id] = {};\n yearsArray.forEach((year) => {\n // Get a list of which metrics have been saved to the dashboard's goals\n const goals = jsDig([\"goals\", year, \"Jan\"], dashboard);\n savedCheckedMetrics[dashboard.id][year] = goals ? Object.keys(goals).map((metricName) => metricName) : [];\n });\n });\n const [checkedMetrics, setCheckedMetrics] = useState(savedCheckedMetrics);\n const handleMetricCheck = (id, year, metricName, check) => {\n let newDashboards = dashboards;\n let newCheckedMetrics = cloneDeep(checkedMetrics);\n if (check && jsDig([id, year], newCheckedMetrics)) {\n newCheckedMetrics[id][year].push(metricName);\n } else {\n newCheckedMetrics[id][year].splice(newCheckedMetrics[id][year].indexOf(metricName), 1);\n }\n\n const dashIndex = newDashboards.findIndex((el) => el.id == id);\n if (!newDashboards[dashIndex].goals[year]) newDashboards[dashIndex].goals[year] = {};\n if (check == true) {\n months.forEach((month) => {\n if (!newDashboards[dashIndex].goals[year][month]) newDashboards[dashIndex].goals[year][month] = {};\n newDashboards[dashIndex].goals[year][month][metricName] = \"\";\n });\n } else {\n months.forEach((month) => {\n delete newDashboards[dashIndex][\"goals\"][year][month][metricName];\n });\n }\n setDashboards(newDashboards);\n setCheckedMetrics(newCheckedMetrics);\n };\n\n const handlePullMetric = (selectedId) => {\n if (props.search_cc_data[selectedId]) {\n const year = moment().year();\n const percentChange = goalChangePercent / 100;\n // The cc data sent by the controller includes all platforms, so filter to only 'all'\n const allCcData = props.search_cc_data[selectedId].filter((datum) => datum.platform == \"all\");\n let newDashboards = dashboards;\n const dashIndex = newDashboards.findIndex((el) => el.id == selectedId);\n // Reformat cc data to make it easier to access\n const ccData = {};\n allCcData.forEach((datum) => {\n let newDate = moment(datum.date.split(\"T\")[0]);\n\n const newMonth = newDate.format(\"MMM\");\n const newyear = newDate.format(\"YYYY\");\n if (!ccData[newyear]) ccData[newyear] = {};\n ccData[newyear][newMonth] = datum;\n });\n\n // Only apply the changes to the metrics that have been checked\n const goalShortcutMetrics = $('.metric-selector input[type=\"checkbox\"]:checked');\n \n months.forEach((month) => {\n goalShortcutMetrics.each((i, metricCheckbox) => {\n const metricCamel = metricCheckbox.name;\n const metricSnake = snakeCase(metricCamel);\n const historical = jsDig([year - 1, month, metricSnake, \"projected\"], ccData);\n const newValue = Math.round(historical * (1 + percentChange) * 100) / 100;\n if (allOrBlank == \"blank\") {\n if (historical && newDashboards[dashIndex].goals[year][month][metricCamel] == \"\") {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n } else {\n if (historical) {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n }\n });\n });\n setDashboards([...newDashboards]);\n } else {\n console.log(\"No historical data!\");\n }\n };\n\n return (\n <>\n
    \n \n \n

    Goals:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    For:\n \n
    Year:\n {\n setSelectedYear(e.target.value);\n }}>\n {yearsArray.map((year) => {\n return ;\n })}\n \n
    \n
    \n \n {/* Only show the pull metrics button if the selectedYear matches the current year */}\n { selectedYear == moment().year().toString() ? (\n <>\n { props.search_cc_data[selectedDashboardId].length > 0 ? (\n
    \n

    \n You have the option to pull in historical data from the last year to help set this year's goals. Enter a percentage change to apply to the previous year's data:\n

    \n

    \n (Negative numbers are also supported)\n

    \n
    \n setGoalChangePercent(e.target.value)}\n >\n \n %\n
    \n\n
    \n

    Metrics to fill in:

    \n {/* Let the user select which metric to apply the change to. Generate a checkbox for each metric */}\n {checkedMetrics[selectedDashboardId][selectedYear].map((metricName, index) => {\n const metric = metricList[metricName];\n return (\n
    \n \n
    \n );\n })}\n
    \n\n
    \n

    Goals to replace:

    \n setAllOrBlank(e.target.value)}>\n \n \n \n
    \n\n handlePullMetric(selectedDashboardId)}>\n Pull metrics\n \n
    \n ) : (\n

    No historical data has been pulled so goals cannot be generated.

    \n )}\n \n ) : <> }\n
    \n \n \n
    \n

    Configure which metrics for the selected for/year fields that you would like to set goals for:

    \n \n
    \n \n \n
    \n
    \n {calculatorLarge}

    What's this?

    \n
    \n
    \n

    \n When you see the blue calculator icon on a goal or column, it means that this metric can be auto-generated using pre-existing information. For\n example, ROAS can be auto-generated based on the existing Spend and Revenue goals. Hover over the icon to get information on which metrics it\n needs to calculate, and click to generate into that field.\n

    \n
    \n
    \n \n
    \n \n \n {dashboards.map((dashboard, dbIndex) => {\n return (\n \n {yearsArray.map((year, yearIndex) => {\n let visible = dashboard.id == selectedDashboardId && selectedYear == year;\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n })}\n \n
    \n
    \n \n );\n}\n","import React, {useState} from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport AccountIdBox from \"../../AccountIdBox\";\nimport ConversionActionIds from \"../../ConversionActionIds\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport ManualDataPull from \"client_config/ManualDataPull\";\nimport Inflation from \"client_config/ppc_config/Inflation\";\nimport CurrencySelector from \"client_config/CurrencySelector\";\nimport jsDig from \"utils/jsDig.js\"\n\nexport default function IdsData(props) {\n let thumbnail = require(\"images/ShowMeHow.jpg\");\n thumbnail = ;\n\n let example = require(\"images/onboarding/microsoft-example.png\");\n example = ;\n\n let platforms = [\n {\n name: \"google_ads\",\n id: \"pull-search-google\",\n label: \"Pull Google Ads on save\"\n },\n {\n name: \"microsoft_ads\",\n id: \"pull-search-microsoft\",\n label: \"Pull Microsoft Ads on save\"\n },\n ];\n let platformNames = [\"Google\", \"Microsoft\"];\n\n const [baseCurrency, setBaseCurrency] = useState(props.search_section.base_currency)\n const [displayCurrency, setDisplayCurrency] = useState(props.search_section.display_currency)\n\n return (\n
    \n \n \n
    \n \n Account IDs\n \n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n Include/Exclude Conversion Action IDs\n \n

    To get a Conversion Action ID, go to Google Ads and open the Tools & Settings menu from the top right of the navbar. In the Measurement column, select Conversions. Next, select the conversion action from the list that appears. Once you have selected a conversion action, check the final URL of the page and look for the 'ctId' parameter. This will be equal to the Conversion Action's ID.

    \n \"Conversion\n
    \n }\n inline={true}\n />\n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n \n Inflation (Past 30 Days)\n \n\t\t\t\t\t\t\n\t\t\t\t\t\t{thumbnail}} />\n\t\t\t\t\t\t\n
    \n \n\n
    \n
    \n \n
    \n \n \n
    Base Currency
    \n \n \n \n
    Display Currency
    \n \n \n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Row, Col, Button, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport ScriptBoxes from \"components/client_config/ppc_config/ScriptBoxes\";\n\nexport default function Scripts(props) {\n let exclaimTriangle = require(\"images/icons/exclaim-triangle.png\");\n exclaimTriangle = ;\n\n const scripts = [\n {\n name: \"text_converting_query_mining_script\",\n title: \"Text converting query mining script\",\n desc: \"Monthly iterates through all text campaign converted queries on an account for the previous two months and creates ad groups based on the converted query text.\",\n },\n {\n name: \"em_bm_negative_overlap_script\",\n title: \"EM/BM negative overlap script\",\n desc: \"Syncs negative keyword lists throughout the account to prevent overlap.\",\n },\n {\n name: \"negative_dsa_sync_script\",\n title: \"Negative DSA sync script\",\n desc: \"Syncs enabled account keywords as negatives in the '[DSA]' ad group to prevent bidding on pre_targeted queries.\",\n },\n {\n name: \"exclude_nb_in_shopping\",\n title: \"Exclude Non-Brand in Shopping\",\n desc: \"Runs daily - When you split Shopping campaigns on branded and non-branded search terms, you often still get non-branded search terms in your branded Shopping campaign(s). This script automatically excludes these terms.\",\n },\n {\n name: \"keyword_cannibalization_script\",\n title: \"Keyword Cannibalization Script\",\n desc: \"For every ad group in the entire account, adds all keywords NOT in that ad group to be an exact match negative version to that ad group.\",\n },\n {\n name: \"youtube_channel_excluder\",\n title: \"Exclude Foreign Language YouTube Channels\",\n desc: \"For display and video campaigns, Google is not quite so particular about targeting individual languages and video ads are often played in foreign language channels. This script identifies YouTube channels in undesired countries on which the video campaign(s) was/are played and automatically excludes them from the respective campaign.\",\n },\n ];\n\n return (\n <>\n \n \n \n
    \n

    Scripts:

    \n
    {exclaimTriangle}
    \n

    \n Enabling/disabling these scripts without a thorough understanding of the function may have unintended consequences. Please proceed with caution.\n

    \n
    \n \n
    \n \n \n \n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport IdsData from \"./ids_data/IdsData\";\nimport CampaignGroups from \"../CampaignGroups\";\nimport Goals from \"./goals/Goals\";\nimport Dashboard from \"./dashboard/Dashboard\";\nimport Alerts from \"./alerts/Alerts\";\nimport updateParams from \"utils/updateParams.js\";\nimport jsDig from \"utils/jsDig\"\n\nexport default function Social(props) {\n\tconst [tabLocation, setTabLocation] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tlet searchParams = new URL(location.href).searchParams;\n\t\tlet page = searchParams.get(\"subpage\");\n\t\tif (!page || page == \"\") {\n\t\t\tpage = \"ids_data\";\n\t\t}\n\t\tsetTabLocation(page);\n\t\tupdateParams(\"subpage\", page);\n\t}, []);\n\n\tconst selectTab = (key) => {\n\t\tsetTabLocation(key);\n\t\tupdateParams(\"subpage\", key);\n\t};\n\n\t// Will come from controller eventually\n\tconst campaignGroups = props.social_section.campaign_groups\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t{props.selectedPage == \"social\" && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t selectTab(k)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tIDs and Data\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCampaign Groups\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tGoals\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDashboard\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAlerts\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport AlertsGroup from \"client_config/AlertsGroup\";\nimport ManageSubsByClient from \"alert_subscriptions/ManageSubsByClient\";\nimport OnboardingAlertsGroup from \"onboarding/AlertsGroup\";\n\nconst addUser = (email, sectionName, sectionId) => {\n let returnedData = \"\";\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/subscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: (data) => {\n returnedData = data;\n },\n });\n }\n return returnedData;\n};\n\nconst removeUser = (email, sectionName, sectionId) => {\n let removalSuccessful = false;\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/unsubscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: () => {\n removalSuccessful = true;\n },\n });\n }\n return removalSuccessful;\n};\n\nexport default function Alerts(props) {\n const platforms = [\n {\n platformName: \"Facebook Ads\",\n alerts: [\n {\n name: \"facebook_ads_social_impressions_emergency_detector\",\n title: \"Impressions Emergency Detector\",\n desc: \"Gets the number of Facebook Ads impressions for each account and if it falls beneath a certain threshold, emails all DP employees.\",\n },\n {\n name: \"facebook_ads_social_impressions_flux_detector\",\n title: \"Impressions Flux Detector\",\n desc: \"Creates an alert if Facebook Ads social impressions fall below or rise above a custom threshold\",\n options: [\n { name: \"min_threshold\", title: \"Min Threshold\", placeholder: \"Default 15%\" },\n { name: \"max_threshold\", title: \"Max Threshold\", placeholder: \"Default 300%\" },\n ],\n },\n {\n name: \"facebook_ads_social_spend_flux_detector\",\n title: \"Spend Flux Detector\",\n desc: \"Creates an alert if Facebook Ads social spend fall below or rise above a custom threshold\",\n options: [\n { name: \"min_threshold\", title: \"Min Threshold\", placeholder: \"Default 15%\" },\n { name: \"max_threshold\", title: \"Max Threshold\", placeholder: \"Default 300%\" },\n ],\n },\n {\n name: \"facebook_ads_social_clicks_flux_detector\",\n title: \"Clicks Flux Detector\",\n desc: \"Creates an alert if Facebook Ads social clicks fall below or rise above a custom threshold\",\n options: [\n { name: \"min_threshold\", title: \"Min Threshold\", placeholder: \"Default 15%\" },\n { name: \"max_threshold\", title: \"Max Threshold\", placeholder: \"Default 300%\" },\n ],\n },\n {\n name: \"facebook_ads_social_conversions_flux_detector\",\n title: \"Conversions Flux Detector\",\n desc: \"Creates an alert if Facebook Ads social conversions fall below or rise above a custom threshold\",\n options: [\n { name: \"min_threshold\", title: \"Min Threshold\", placeholder: \"Default 15%\" },\n { name: \"max_threshold\", title: \"Max Threshold\", placeholder: \"Default 300%\" },\n ],\n },\n {\n name: \"facebook_ads_social_conversion_rate_flux_detector\",\n title: \"Conversion Rate Flux Detector\",\n desc: \"Creates an alert if Facebook Ads social conversion rate fall below or rise above a custom threshold\",\n options: [\n { name: \"min_threshold\", title: \"Min Threshold\", placeholder: \"Default 15%\" },\n { name: \"max_threshold\", title: \"Max Threshold\", placeholder: \"Default 300%\" },\n ],\n },\n ],\n },\n ];\n\n return (\n <>\n \n \n \n
    \n

    Alerts:

    \n
    \n \n
    \n \n \n
    \n {platforms.map((platform) => {\n return props.onboarding ? (\n \n ) : (\n \n );\n })}\n
    \n \n \n \n
    Subscribed to these alerts:
    \n \n \n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Container, Row, Col, Button } from \"react-bootstrap\";\nimport DashboardBuilder from \"client_config/DashboardBuilder\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport { cloneDeep } from \"lodash\";\n\nexport default function Dashboard(props) {\n let initialDashboards = [\n { name: \"Social: Overall\", id: 0, dashboardOrder: props.social_section.dashboard_order },\n ...props.social_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, dashboardOrder: group.dashboard_order })),\n ];\n if (props.onboarding && props.socialDashboard) {\n initialDashboards = props.socialDashboard;\n }\n const [dashboards, setDashboards] = useState(initialDashboards);\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n\n const copyFromOverall = () => {\n console.log(dashboards, selectedDashboard);\n const index = dashboards.findIndex((el) => el.name == selectedDashboard);\n let newDashboards = dashboards;\n newDashboards[index].dashboardOrder = cloneDeep(dashboards[0].dashboardOrder);\n setDashboards([...newDashboards]);\n };\n return (\n <>\n \n \n \n
    \n

    Dashboard modules:

    \n

    Select View:

    \n \n
    \n {dashboards.findIndex((el) => el.name == selectedDashboard) !== 0 && (\n \n )}\n
    \n
    \n

    \n \n Keep in mind you will need to configure the 'Campaign Groups' tab above before they will appear in the 'Select View' dropdown above!\n \n    Check the box to enable/disable, and click and drag the left handleto reorder your dashboard. Click 'Display configuration' to\n configure which metrics will show in each section.\n

    \n
    \n
    \n
    \n \n
    \n \n \n
    \n {dashboards\n .map((el) => {\n if (!el.name.includes(\"Social: Overall\")) {\n let newDash = el;\n let result = newDash.dashboardOrder.filter((dash) => {\n return dash.name !== \"campaignGroups\";\n });\n el.dashboardOrder = result;\n }\n return el;\n })\n .map((dashboard, index) => {\n let visible = dashboard.name == selectedDashboard;\n return (\n
    \n \n
    \n );\n })}\n
    \n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport GoalsTable from \"client_config/GoalsTable\";\nimport ConfigureGoalsModal from \"client_config/ConfigureGoalsModal\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport jsDig from \"utils/jsDig\";\nimport { snakeCase, cloneDeep } from \"lodash\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\n\nexport default function Goals(props) {\n const metricList = allMetricData.metricsByDashboard.social.metrics.goalsAndProjections;\n const [goalChangePercent, setGoalChangePercent] = useState(0);\n const [allOrBlank, setAllOrBlank] = useState(\"blank\");\n const startDate = moment(\"2018-01-01\");\n const todaysDate = moment();\n const endDate = todaysDate.add(1, \"year\");\n const yearsDiff = Math.ceil(endDate.diff(startDate, \"years\", true));\n const yearsArray = [...Array(yearsDiff)].map((empty, index) => startDate.year() + index).reverse();\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n let calculatorLarge = require(\"images/icons/calculator-large.png\");\n calculatorLarge = ;\n\n // Default dashboard to configure is the overall dashboard which will directly update the social_section's goals. If there is valid id passed through parameters the controller will update the relevant campaign group.\n const dashboardsInitial = [\n { name: \"Social: Overall\", id: 0, goals: props.social_section.goals },\n ...props.social_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n\n const [dashboards, setDashboards] = useState(dashboardsInitial);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n const [selectedYear, setSelectedYear] = useState(moment().year().toString());\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n\n let savedCheckedMetrics = {};\n dashboards.forEach((dashboard) => {\n savedCheckedMetrics[dashboard.id] = {};\n yearsArray.forEach((year) => {\n // Get a list of which metrics have been saved to the dashboard's goals\n const goals = jsDig([\"goals\", year, \"Jan\"], dashboard);\n savedCheckedMetrics[dashboard.id][year] = goals ? Object.keys(goals).map((metricName) => metricName) : [];\n });\n });\n const [checkedMetrics, setCheckedMetrics] = useState(savedCheckedMetrics);\n\n const handleMetricCheck = (id, year, metricName, check) => {\n let newDashboards = dashboards;\n let newCheckedMetrics = cloneDeep(checkedMetrics);\n\n if (check && jsDig([id, year], newCheckedMetrics)) {\n newCheckedMetrics[id][year].push(metricName);\n } else {\n newCheckedMetrics[id][year].splice(newCheckedMetrics[id][year].indexOf(metricName), 1);\n }\n\n const dashIndex = newDashboards.findIndex((el) => el.id == id);\n if (!newDashboards[dashIndex].goals[year]) newDashboards[dashIndex].goals[year] = {};\n if (check == true) {\n months.forEach((month) => {\n if (!newDashboards[dashIndex].goals[year][month]) newDashboards[dashIndex].goals[year][month] = {};\n newDashboards[dashIndex].goals[year][month][metricName] = \"\";\n });\n } else {\n months.forEach((month) => {\n delete newDashboards[dashIndex][\"goals\"][year][month][metricName];\n });\n }\n\n setDashboards(newDashboards);\n setCheckedMetrics(newCheckedMetrics);\n };\n\n const handlePullMetric = (selectedId) => {\n if (props.social_cc_data[selectedId]) {\n const year = moment().year();\n const percentChange = goalChangePercent / 100;\n // The cc data sent by the controller includes all platforms, so filter to only 'all'\n const allCcData = props.social_cc_data[selectedId].filter((datum) => datum.platform == \"all\");\n let newDashboards = dashboards;\n const dashIndex = newDashboards.findIndex((el) => el.id == selectedId);\n // Reformat cc data to make it easier to access\n const ccData = {};\n allCcData.forEach((datum) => {\n let newDate = moment(datum.date.split(\"T\")[0]);\n\n const newMonth = newDate.format(\"MMM\");\n const newyear = newDate.format(\"YYYY\");\n if (!ccData[newyear]) ccData[newyear] = {};\n ccData[newyear][newMonth] = datum;\n });\n\n // Only apply the changes to the metrics that have been checked\n const goalShortcutMetrics = $('.metric-selector input[type=\"checkbox\"]:checked');\n \n months.forEach((month) => {\n goalShortcutMetrics.each((i, metricCheckbox) => {\n const metricCamel = metricCheckbox.name;\n const metricSnake = snakeCase(metricCamel);\n const historical = jsDig([year - 1, month, metricSnake, \"projected\"], ccData);\n const newValue = Math.round(historical * (1 + percentChange) * 100) / 100;\n if (allOrBlank == \"blank\") {\n if (historical && newDashboards[dashIndex].goals[year][month][metricCamel] == \"\") {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n } else {\n if (historical) {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n }\n });\n });\n setDashboards([...newDashboards]);\n } else {\n console.log(\"No historical data!\");\n }\n };\n\n return (\n <>\n
    \n \n \n

    Goals:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    For:\n \n
    Year:\n {\n setSelectedYear(e.target.value);\n }}>\n {yearsArray.map((year) => {\n return ;\n })}\n \n
    \n
    \n \n {/* Only show the pull metrics button if the selectedYear matches the current year */}\n { selectedYear == moment().year().toString() ? (\n <>\n { props.social_cc_data[selectedDashboardId].length > 0 ? (\n
    \n

    \n You have the option to pull in historical data from the last year to help set this year's goals. Enter a percentage change to apply to the previous year's data:\n

    \n

    \n (Negative numbers are also supported)\n

    \n
    \n setGoalChangePercent(e.target.value)}\n >\n \n %\n
    \n\n
    \n

    Metrics to fill in:

    \n {/* Let the user select which metric to apply the change to. Generate a checkbox for each metric */}\n {checkedMetrics[selectedDashboardId][selectedYear].map((metricName, index) => {\n const metric = metricList[metricName];\n return (\n
    \n \n
    \n );\n })}\n
    \n\n
    \n

    Goals to replace:

    \n setAllOrBlank(e.target.value)}>\n \n \n \n
    \n\n handlePullMetric(selectedDashboardId)}>\n Pull metrics\n \n
    \n ) : (\n

    No historical data has been pulled so goals cannot be generated.

    \n )}\n \n ) : <> }\n
    \n \n \n
    \n

    Configure which metrics for the selected for/year fields that you would like to set goals for:

    \n \n
    \n \n \n
    \n
    \n {calculatorLarge}

    What's this?

    \n
    \n
    \n

    \n When you see the blue calculator icon on a goal or column, it means that this metric can be auto-generated using pre-existing information. For\n example, ROAS can be auto-generated based on the existing Spend and Revenue goals. Hover over the icon to get information on which metrics it\n needs to calculate, and click to generate into that field.\n

    \n
    \n
    \n \n
    \n \n \n {dashboards.map((dashboard, dbIndex) => {\n return (\n \n {yearsArray.map((year, yearIndex) => {\n let visible = dashboard.id == selectedDashboardId && selectedYear == year;\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n })}\n \n
    \n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Table, Row, Col, Button, Form } from \"react-bootstrap\";\n\nexport default function CustomConversions(props) {\n const [customConversions, setCustomConversions] = useState(props.customConversions && props.customConversions.length > 0 ? props.customConversions : [{label: \"\", id: \"\"}]);\n const handleChange = (index, property, value) => {\n let newConversions = customConversions;\n newConversions[index][property] = value;\n setCustomConversions([...newConversions])\n props.setCustomConversions && props.setCustomConversions([...newConversions])\n }\n\n const handleDelete = (targetIndex) => {\n let newConversions = customConversions\n newConversions.splice(targetIndex, 1);\n setCustomConversions([...newConversions])\n props.setCustomConversions && props.setCustomConversions([...newConversions])\n }\n\n const handleAdd = () => {\n setCustomConversions([...customConversions, {label: \"\", id: \"\"}])\n props.setCustomConversions && props.setCustomConversions([...customConversions, {label: \"\", id: \"\"}])\n }\n\n return (\n <>\n \n \n \n \n \n\n \n \n \n \n {customConversions.map((conversion, index) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    LabelID
    \n handleChange(index, \"label\", e.target.value)}\n />\n \n handleChange(index, \"id\", e.target.value)}\n />\n \n {(index >= 0 && customConversions.length > 1) && (\n handleDelete(index)}>\n )}\n
    \n \n + Add custom conversion\n \n \n )\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Form } from \"react-bootstrap\";\nimport AccountIdBox from \"../../AccountIdBox\";\nimport CustomConversions from \"./CustomConversions\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport ManualDataPull from \"client_config/ManualDataPull\";\nimport CurrencySelector from \"client_config/CurrencySelector\";\nimport jsDig from \"utils/jsDig.js\";\nimport { capitalize } from \"lodash\";\n\nexport default function IdsData(props) {\n let thumbnail = require(\"images/ShowMeHow.jpg\");\n thumbnail = ;\n let platforms = [\n {\n name: \"facebook_ads\",\n id: \"pull-social-facebook\",\n label: \"Pull Facebook Ads on save\",\n },\n {\n name: \"tiktok_ads\",\n id: \"pull-social-tiktok\",\n label: \"Pull TikTok Ads on save\",\n }\n ];\n const [conversionObjective, setConversionObjective] = useState(props.social_section.conversion_objective);\n const [tiktokConversionObjective, setTiktokConversionObjective] = useState(props.social_section.tiktok_conversion_objective);\n\n const [baseCurrency, setBaseCurrency] = useState(props.social_section.base_currency)\n const [displayCurrency, setDisplayCurrency] = useState(props.social_section.display_currency)\n\n return (\n
    \n \n \n
    \n
    \n

    Account IDs

    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    \n \n \n \n
    \n \n Filter account data{\" \"}\n \n \n\n \n
    \n \n
    \n \n \n
    \n
    \n

    Facebook Objective

    \n \n setConversionObjective(e.target.value)}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {Object.keys(props.facebook_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.facebook_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n {conversionObjective == \"custom_conversions\" && }\n
    \n \n
    \n

    Tiktok Objective

    \n \n setTiktokConversionObjective(e.target.value)}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {Object.keys(props.tiktok_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.tiktok_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n
    \n
    \n \n
    \n \n \n
    Base Currency
    \n \n \n \n
    Display Currency
    \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport IdsData from \"./ids_data/IdsData\";\nimport CampaignGroups from \"../CampaignGroups\";\nimport Goals from \"./goals/Goals\";\nimport Dashboard from \"./dashboard/Dashboard\";\nimport Scripts from \"./scripts/Scripts\";\nimport Alerts from \"./alerts/Alerts\";\nimport updateParams from \"utils/updateParams.js\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Video(props) {\n\tconst [tabLocation, setTabLocation] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tlet searchParams = new URL(location.href).searchParams;\n\t\tlet page = searchParams.get(\"subpage\");\n\t\tif (!page || page == \"\") {\n\t\t\tpage = \"ids_data\";\n\t\t}\n\t\tsetTabLocation(page);\n\t\tupdateParams(\"subpage\", page);\n\t}, []);\n\n\tconst selectTab = (key) => {\n\t\tsetTabLocation(key);\n\t\tupdateParams(\"subpage\", key);\n\t};\n\n\tconst campaignGroups = props.video_section.campaign_groups\n\tconst google_ads_id = [jsDig([\"google_ads\", \"account_ids\"], props.search_section.platform_data), jsDig([\"google_ads\", \"account_ids\"], props.display_section.platform_data), jsDig([\"google_ads\", \"account_ids\"], props.video_section.platform_data)].filter((id) => id != null)[0]\n\tconst show_scripts = google_ads_id && google_ads_id != \"\" && !props.search_section.enabled && !props.display_section.enabled && props.video_section.enabled\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t{props.selectedPage == \"video\" && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t selectTab(k)}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{show_scripts &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n","import React from \"react\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport AlertsGroup from \"client_config/AlertsGroup\";\nimport ManageSubsByClient from \"alert_subscriptions/ManageSubsByClient\";\nimport OnboardingAlertsGroup from \"onboarding/AlertsGroup\";\n\nconst addUser = (email, sectionName, sectionId) => {\n let returnedData = \"\";\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/subscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: (data) => {\n returnedData = data;\n },\n });\n }\n return returnedData;\n};\n\nconst removeUser = (email, sectionName, sectionId) => {\n let removalSuccessful = false;\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/unsubscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: () => {\n removalSuccessful = true;\n },\n });\n }\n return removalSuccessful;\n};\n\nexport default function Alerts(props) {\n const platforms = [\n {\n platformName: \"Google Ads\",\n alerts: [\n {\n name: \"google_ads_video_impressions_emergency_detector\",\n title: \"Impressions emergency detector\",\n desc: \"Gets the number of Google Ads impressions on video campaigns for each account and if it falls beneath a certain threshold, emails all DP employees.\",\n },\n\n {\n name: \"google_ads_video_disapproved_ads_detector\",\n title: \"Disapproved ads detector\",\n desc: \"Creates an alert with a list of all disapproved video ads on Google Ads.\",\n },\n {\n name: \"google_ads_video_out_of_stock_detector\",\n title: \"Out of stock detector\",\n desc: \"Checks the landing pages of all video ads on accounts for specific 'out of stock' related language and creates a list of landing pages that match.\",\n },\n {\n name: \"google_ads_video_impressions_flux_detector\",\n title: \"Impressions flux detector\",\n desc: \"Creates an alert if Google Ads video impressions fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_video_clicks_flux_detector\",\n title: \"Clicks flux detector\",\n desc: \"Creates an alert if Google Ads video clicks fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_video_url_issue_detector\",\n title: \"URL issue detector\",\n desc: \"Goes through all Google Ads video ads in an account and makes an alert of pages that produce unacceptable response codes.\",\n },\n\n {\n name: \"google_ads_video_spend_flux_detector\",\n title: \"Spend flux detector\",\n desc: \"Creates an alert if Google Ads video spend fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n\n {\n name: \"google_ads_video_conversions_flux_detector\",\n title: \"Conversions flux detector\",\n desc: \"Creates an alert if Google Ads video conversions fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n {\n name: \"google_ads_video_conversion_rate_flux_detector\",\n title: \"Conversion Rate flux detector\",\n desc: \"Creates an alert if Google Ads video conversion rate fall below or rise above a custom threshold\",\n options: [\n {\n name: \"min_threshold\",\n title: \"Min threshold:\",\n placeholder: \"Default 15%\",\n },\n {\n name: \"max_threshold\",\n title: \"Max threshold:\",\n placeholder: \"Default 300%\",\n },\n ],\n },\n ],\n },\n ];\n\n return (\n <>\n \n \n \n
    \n

    Alerts:

    \n
    \n \n
    \n \n \n
    \n {platforms.map((platform) => {\n return props.onboarding ? (\n \n ) : (\n \n );\n })}\n
    \n \n \n \n
    Subscribed to these alerts:
    \n \n \n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Container, Row, Col, Button } from \"react-bootstrap\";\nimport DashboardBuilder from \"client_config/DashboardBuilder\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport { cloneDeep } from \"lodash\";\n\nexport default function Dashboard(props) {\n // Default dashboard to configure is the overall dashboard which will directly update the search_section's dashboard_order. If there is valid id passed through parameters the controller will update the relevant campaign group.\n let initialDashboards = [\n { name: \"Video: Overall\", id: 0, dashboardOrder: props.video_section.dashboard_order },\n ...props.video_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, dashboardOrder: group.dashboard_order })),\n ];\n if (props.onboarding && props.videoDashboard) {\n initialDashboards = props.videoDashboard;\n }\n const [dashboards, setDashboards] = useState(initialDashboards);\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n\n const copyFromOverall = () => {\n console.log(dashboards, selectedDashboard);\n const index = dashboards.findIndex((el) => el.name == selectedDashboard);\n let newDashboards = dashboards;\n newDashboards[index].dashboardOrder = cloneDeep(dashboards[0].dashboardOrder);\n setDashboards([...newDashboards]);\n };\n return (\n <>\n \n \n \n
    \n

    Dashboard modules:

    \n

    Select View:

    \n \n
    \n {dashboards.findIndex((el) => el.name == selectedDashboard) !== 0 && (\n \n )}\n
    \n
    \n

    \n \n Keep in mind you will need to configure the 'Campaign Groups' tab above before they will appear in the 'Select View' dropdown above!\n \n    Check the box to enable/disable, and click and drag the left handleto reorder your dashboard. Click 'Display configuration' to\n configure which metrics will show in each section.\n

    \n
    \n
    \n
    \n \n
    \n \n \n
    \n {dashboards\n .map((el) => {\n if (!el.name.includes(\"Video: Overall\")) {\n let newDash = el;\n let result = newDash.dashboardOrder.filter((dash) => {\n return dash.name !== \"campaignGroups\";\n });\n el.dashboardOrder = result;\n }\n return el;\n })\n .map((dashboard, index) => {\n let visible = dashboard.name == selectedDashboard;\n return (\n
    \n \n
    \n );\n })}\n
    \n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport GoalsTable from \"client_config/GoalsTable\";\nimport ConfigureGoalsModal from \"client_config/ConfigureGoalsModal\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport jsDig from \"utils/jsDig\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport { snakeCase, cloneDeep } from \"lodash\";\n\nexport default function Goals(props) {\n const metricList = allMetricData.metricsByDashboard.video.metrics.goalsAndProjections;\n const [allOrBlank, setAllOrBlank] = useState(\"blank\");\n const [goalChangePercent, setGoalChangePercent] = useState(0);\n const startDate = moment(\"2018-01-01\");\n const todaysDate = moment();\n const endDate = todaysDate.add(1, \"year\");\n const yearsDiff = Math.ceil(endDate.diff(startDate, \"years\", true));\n const yearsArray = [...Array(yearsDiff)].map((empty, index) => startDate.year() + index).reverse();\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n let calculatorLarge = require(\"images/icons/calculator-large.png\");\n calculatorLarge = ;\n\n const dashboardsInitial = [\n { name: \"Video: Overall\", id: 0, goals: props.video_section.goals },\n ...props.video_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n\n const [dashboards, setDashboards] = useState(dashboardsInitial);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n const [selectedYear, setSelectedYear] = useState(moment().year().toString());\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n\n let savedCheckedMetrics = {};\n dashboards.forEach((dashboard) => {\n savedCheckedMetrics[dashboard.id] = {};\n yearsArray.forEach((year) => {\n // Get a list of which metrics have been saved to the dashboard's goals\n const goals = jsDig([\"goals\", year, \"Jan\"], dashboard);\n savedCheckedMetrics[dashboard.id][year] = goals ? Object.keys(goals).map((metricName) => metricName) : [];\n });\n });\n const [checkedMetrics, setCheckedMetrics] = useState(savedCheckedMetrics);\n\n const handleMetricCheck = (id, year, metricName, check) => {\n let newDashboards = dashboards;\n let newCheckedMetrics = cloneDeep(checkedMetrics);\n\n if (check && jsDig([id, year], newCheckedMetrics)) {\n newCheckedMetrics[id][year].push(metricName);\n } else {\n newCheckedMetrics[id][year].splice(newCheckedMetrics[id][year].indexOf(metricName), 1);\n }\n\n const dashIndex = newDashboards.findIndex((el) => el.id == id);\n if (!newDashboards[dashIndex].goals[year]) newDashboards[dashIndex].goals[year] = {};\n if (check == true) {\n months.forEach((month) => {\n if (!newDashboards[dashIndex].goals[year][month]) newDashboards[dashIndex].goals[year][month] = {};\n newDashboards[dashIndex].goals[year][month][metricName] = \"\";\n });\n } else {\n months.forEach((month) => {\n delete newDashboards[dashIndex][\"goals\"][year][month][metricName];\n });\n }\n\n setDashboards(newDashboards);\n setCheckedMetrics(newCheckedMetrics);\n };\n\n const handlePullMetric = (selectedId) => {\n if (props.video_cc_data[selectedId]) {\n const year = moment().year();\n const percentChange = goalChangePercent / 100;\n // The cc data sent by the controller includes all platforms, so filter to only 'all'\n const allCcData = props.video_cc_data[selectedId].filter((datum) => datum.platform == \"all\");\n let newDashboards = dashboards;\n const dashIndex = newDashboards.findIndex((el) => el.id == selectedId);\n // Reformat cc data to make it easier to access\n const ccData = {};\n allCcData.forEach((datum) => {\n let newDate = moment(datum.date.split(\"T\")[0]);\n\n const newMonth = newDate.format(\"MMM\");\n const newyear = newDate.format(\"YYYY\");\n if (!ccData[newyear]) ccData[newyear] = {};\n ccData[newyear][newMonth] = datum;\n });\n\n // Only apply the changes to the metrics that have been checked\n const goalShortcutMetrics = $('.metric-selector input[type=\"checkbox\"]:checked');\n \n months.forEach((month) => {\n goalShortcutMetrics.each((i, metricCheckbox) => {\n const metricCamel = metricCheckbox.name;\n const metricSnake = snakeCase(metricCamel);\n const historical = jsDig([year - 1, month, metricSnake, \"projected\"], ccData);\n const newValue = Math.round(historical * (1 + percentChange) * 100) / 100;\n if (allOrBlank == \"blank\") {\n if (historical && newDashboards[dashIndex].goals[year][month][metricCamel] == \"\") {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n } else {\n if (historical) {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n }\n });\n });\n setDashboards([...newDashboards]);\n } else {\n console.log(\"No historical data!\");\n }\n };\n\n return (\n <>\n
    \n \n \n

    Goals:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    For:\n \n
    Year:\n {\n setSelectedYear(e.target.value);\n }}>\n {yearsArray.map((year) => {\n return ;\n })}\n \n
    \n
    \n \n {/* Only show the pull metrics button if the selectedYear matches the current year */}\n { selectedYear == moment().year().toString() ? (\n <>\n { props.video_cc_data[selectedDashboardId].length > 0 ? (\n
    \n

    \n You have the option to pull in historical data from the last year to help set this year's goals. Enter a percentage change to apply to the previous year's data:\n

    \n

    \n (Negative numbers are also supported)\n

    \n
    \n setGoalChangePercent(e.target.value)}\n >\n \n %\n
    \n\n
    \n

    Metrics to fill in:

    \n {/* Let the user select which metric to apply the change to. Generate a checkbox for each metric */}\n {checkedMetrics[selectedDashboardId][selectedYear].map((metricName, index) => {\n const metric = metricList[metricName];\n return (\n
    \n \n
    \n );\n })}\n
    \n\n
    \n

    Goals to replace:

    \n setAllOrBlank(e.target.value)}>\n \n \n \n
    \n\n handlePullMetric(selectedDashboardId)}>\n Pull metrics\n \n
    \n ) : (\n

    No historical data has been pulled so goals cannot be generated.

    \n )}\n \n ) : <> }\n
    \n \n \n
    \n

    Configure which metrics for the selected for/year fields that you would like to set goals for:

    \n \n
    \n \n \n
    \n
    \n {calculatorLarge}

    What's this?

    \n
    \n
    \n

    \n When you see the blue calculator icon on a goal or column, it means that this metric can be auto-generated using pre-existing information. For\n example, ROAS can be auto-generated based on the existing Spend and Revenue goals. Hover over the icon to get information on which metrics it\n needs to calculate, and click to generate into that field.\n

    \n
    \n
    \n \n
    \n \n \n {dashboards.map((dashboard, dbIndex) => {\n return (\n \n {yearsArray.map((year, yearIndex) => {\n let visible = dashboard.id == selectedDashboardId && selectedYear == year;\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n })}\n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport AccountIdBox from \"../../AccountIdBox\";\nimport ConversionActionIds from \"../../ConversionActionIds\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport ManualDataPull from \"client_config/ManualDataPull\";\nimport CurrencySelector from \"client_config/CurrencySelector\";\nimport Inflation from \"client_config/ppc_config/Inflation\";\nimport jsDig from \"utils/jsDig.js\"\n\nexport default function IdsData(props) {\n\tlet thumbnail = require(\"images/ShowMeHow.jpg\");\n thumbnail = ;\n\n\tlet platforms = [\n\t\t{\n\t\t\tname: \"google_ads\",\n\t\t\tid: \"pull-video-google\",\n\t\t\tlabel: \"Pull Google Ads on save\",\n\t\t}\n\t];\n\tlet platformNames = [\"Google\"];\n\n\tconst [baseCurrency, setBaseCurrency] = useState(props.video_section.base_currency)\n const [displayCurrency, setDisplayCurrency] = useState(props.video_section.display_currency)\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAccount IDs\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tInclude/Exclude Conversion Action IDs\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    To get a Conversion Action ID, go to Google Ads and open the Tools & Settings menu from the top right of the navbar. In the Measurement column, select Conversions. Next, select the conversion action from the list that appears. Once you have selected a conversion action, check the final URL of the page and look for the 'ctId' parameter. This will be equal to the Conversion Action's ID.

    \n\t\t\t\t\t\t\t\t\t\"Conversion\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tinline={true}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tInflation (Past 30 Days)\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{thumbnail}} />\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t\n \n
    Base Currency
    \n \n \n \n
    Display Currency
    \n \n \n
    \n\t\t\n\t);\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Row, Col, Button, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport ScriptBoxes from \"components/client_config/ppc_config/ScriptBoxes\";\n\nexport default function Scripts(props) {\n let exclaimTriangle = require(\"images/icons/exclaim-triangle.png\");\n exclaimTriangle = ;\n\n const scripts = [\n {\n name: \"text_converting_query_mining_script\",\n title: \"Text converting query mining script\",\n desc: \"Monthly iterates through all text campaign converted queries on an account for the previous two months and creates ad groups based on the converted query text.\",\n },\n {\n name: \"em_bm_negative_overlap_script\",\n title: \"EM/BM negative overlap script\",\n desc: \"Syncs negative keyword lists throughout the account to prevent overlap.\",\n },\n {\n name: \"negative_dsa_sync_script\",\n title: \"Negative DSA sync script\",\n desc: \"Syncs enabled account keywords as negatives in the '[DSA]' ad group to prevent bidding on pre_targeted queries.\",\n },\n {\n name: \"exclude_nb_in_shopping\",\n title: \"Exclude Non-Brand in Shopping\",\n desc: \"When you split Shopping campaigns on branded and non-branded search terms, you often still get non-branded search terms in your branded Shopping campaign(s). This script automatically excludes these terms.\",\n },\n {\n name: \"keyword_cannibalization_script\",\n title: \"Keyword Cannibalization Script\",\n desc: \"For every ad group in the entire account, adds all keywords NOT in that ad group to be an exact match negative version to that ad group.\",\n },\n {\n name: \"youtube_channel_excluder\",\n title: \"Exclude Foreign Language YouTube Channels\",\n desc: \"For display and video campaigns, Google is not quite so particular about targeting individual languages and video ads are often played in foreign language channels. This script identifies YouTube channels in undesired countries on which the video campaign(s) was/are played and automatically excludes them from the respective campaign.\",\n },\n ];\n\n\treturn (\n\t\t<>\n \n \n \n
    \n

    Scripts:

    \n
    {exclaimTriangle}
    \n

    \n Enabling/disabling these scripts without a thorough understanding of the function may have unintended consequences. Please proceed with caution.\n

    \n
    \n \n
    \n \n \n \n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport ConfigTabs from \"../ConfigTabs\";\nimport { Tab, Nav, Container, Form, Row, Col } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport Alerts from \"./alerts/Alerts\";\nimport Dashboard from \"./dashboard/Dashboard\";\nimport Goals from \"./goals/Goals\";\nimport IDs from \"./ids/IDs\";\nimport KeywordGroups from \"./keyword_groups/KeywordGroups\";\nimport SaveChanges from \"client_config/SaveChanges\";\nimport LandingPages from \"./landing_pages/LandingPages\";\nimport jsDig from \"utils/jsDig\";\nimport dismissDataPullErrors from \"utils/dismissDataPullErrors\";\nimport { capitalize, uniq } from \"lodash-es\";\n\nexport default function SEOConfig(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n const formSubmitUrl = \"/datapulse/seo-config\";\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const seoPulling =\n (jsDig([\"data_pull_status\", \"google_data_pull\"], props.seo_section) && jsDig([\"data_pull_status\", \"google_data_pull\"], props.seo_section).length > 0) ||\n (jsDig([\"data_pull_status\", \"search_console_data_pull\"], props.seo_section) && jsDig([\"data_pull_status\", \"search_console_data_pull\"], props.seo_section).length > 0) ||\n (jsDig([\"data_pull_status\", \"semrush_data_pull\"], props.seo_section) && jsDig([\"data_pull_status\", \"semrush_data_pull\"], props.seo_section).length > 0);\n const seoRecalculating =\n (jsDig([\"data_pull_status\", \"recalculation\"], props.seo) && jsDig([\"data_pull_status\", \"recalculation\"], props.seo).length > 0)\n\n const [showErrors, setShowErrors] = useState((jsDig([\"data_pull_errors\"], props.seo_section) && Object.keys(jsDig([\"data_pull_errors\"], props.seo_section)).length > 0) ? true : false)\n\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"ids\";\n }\n setTabLocation(page);\n updateParams(\"page\", page);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"page\", key);\n };\n\n const pullInProgress = () => {\n return (\n
    \n
    \n
    \n \n
    \n
    \n A data pull is in progress.\n
    \n
    \n

    This page is not available while the data pull is in progress.

    \n Please check back later or\n {\n location.reload();\n }}>\n {\" \"}\n refresh \n \n the page.\n
    \n
    \n
    \n );\n };\n\n const recalcInProgress = () => {\n return (\n
    \n
    \n
    \n \n
    \n
    \n Data is being recalculated.\n
    \n
    \n

    Your data pull has completed but data is recalculating

    \n Please be patient {props.current_user ? props.current_user.first_name : \"my guy\"} and check back later or\n {\n location.reload();\n }}>\n {\" \"}\n refresh \n \n the page.\n
    \n
    \n
    \n );\n };\n\n const displayErrors = () => {\n return (\n
    \n
    \n
    \n There were errors on the last data pull\n
    \n
    \n {props.seo_section.data_pull_errors && Object.keys(props.seo_section.data_pull_errors).map((platform) => {\n const errorCounts = props.seo_section.data_pull_errors[platform].reduce((map, val) => {map[val] = (map[val] || 0)+1; return map}, {} );\n return (\n \n
    \n

    {capitalize(platform)}:

    \n
      \n {uniq(props.seo_section.data_pull_errors[platform]).map((errorMessage, index) => {\n const length = errorCounts[errorMessage];\n return (\n
    • - {length > 1 ? `(${length}x) ` : ' '}{errorMessage}
    • \n )\n })}\n
    \n
    \n
    \n )\n })}\n
    \n {\n e.preventDefault()\n dismissDataPullErrors(jsDig([\"id\"], props.seo_section), \"seo\")\n $(e.target).closest('.spin-container').fadeOut();\n setTimeout(() => {\n location.reload()\n }, 1000)\n }}>\n Dismiss\n \n
    \n
    \n
    \n
    \n )\n }\n\n return (\n <>\n \n {seoPulling ? (\n pullInProgress()\n ) : seoRecalculating ? (\n recalcInProgress()\n ) : showErrors ? (\n displayErrors()\n ) : (\n \n \n
    \n \n \n \n \n \n selectTab(k)}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n )}\n \n );\n}\n","import React from \"react\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport AlertsGroup from \"client_config/AlertsGroup\";\nimport ManageSubsByClient from \"alert_subscriptions/ManageSubsByClient\";\nimport OnboardingAlertsGroup from \"onboarding/AlertsGroup\";\n\nconst addUser = (email, sectionName, sectionId) => {\n let returnedData = \"\";\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/subscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: (data) => {\n returnedData = data;\n },\n });\n }\n return returnedData;\n};\n\nconst removeUser = (email, sectionName, sectionId) => {\n let removalSuccessful = false;\n if (email && email != \"\" && sectionId && sectionId != \"\") {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/alerts/unsubscribe-user/\",\n async: false,\n data: {\n email: email,\n section_name: sectionName,\n section_id: sectionId,\n },\n success: () => {\n removalSuccessful = true;\n },\n });\n }\n return removalSuccessful;\n};\n\nexport default function Alerts(props) {\n const platforms = [\n {\n platformName: \"Google Analytics\",\n alerts: [\n {\n name: \"google_analytics_seo_traffic_fluctuation_detector\",\n title: \"Traffic Fluctuation Detector\",\n desc: \"Checks if the number of organic sessions rises above or below 20% compared to the last 3 instances of yesterday.\",\n options: [\n { name: \"min_threshold\", title: \"Min Threshold\", placeholder: \"Default 80%\" },\n { name: \"max_threshold\", title: \"Max Threshold\", placeholder: \"Default 120%\" },\n ],\n },\n ],\n },\n ];\n return (\n \n \n \n
    \n

    Alerts:

    \n
    \n \n
    \n \n \n
    \n {platforms.map((platform) => {\n return props.onboarding ? (\n \n ) : (\n \n );\n })}\n
    \n \n \n \n
    Subscribed to these alerts:
    \n \n \n \n
    \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { Container, Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport DashboardBuilder from \"client_config/DashboardBuilder\";\nimport { cloneDeep } from \"lodash\";\nimport CustomDropdown from \"utils/CustomDropdown\";\n\nexport default function Dashboard(props) {\n // Default dashboard to configure is the overall dashboard which will directly update the seo_section's dashboard_order. If there is valid id passed through parameters the controller will update the relevant landing page group.\n let initialDashboards = [{ name: \"SEO: Overall\", id: 0, dashboardOrder: props.seo_section.dashboard_order }];\n\n props.seo_section.landing_page_groups.forEach((el) => {\n initialDashboards.push({ name: el.name, id: el.id, dashboardOrder: el.dashboard_order });\n });\n if (props.onboarding && props.seoDashboard) {\n initialDashboards = props.seoDashboard;\n }\n const [dashboards, setDashboards] = useState(initialDashboards);\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n const copyFromOverall = () => {\n console.log(dashboards, selectedDashboard);\n const index = dashboards.findIndex((el) => el.name == selectedDashboard);\n let newDashboards = dashboards;\n newDashboards[index].dashboardOrder = cloneDeep(dashboards[0].dashboardOrder);\n setDashboards([...newDashboards]);\n };\n return (\n \n
    \n
    \n \n \n

    Dashboard modules:

    \n \n
    \n\n \n \n

    Select View:

    \n \n
    \n {dashboards.findIndex((el) => el.name == selectedDashboard) !== 0 && (\n \n )}\n
    \n \n
    \n \n \n

    \n \n Keep in mind you will need to configure the 'Landing Pages' tab above before they will appear in the 'Select View' dropdown above! \n \n Check the box to enable/disable, and click and drag the left handle to reorder your dashboard. Click 'Display configuration' to configure which\n metrics will show in each section.\n

    \n \n
    \n
    \n\n {dashboards\n .map((el) => {\n if (!el.name.includes(\"SEO: Overall\")) {\n let newDash = el;\n let result = newDash.dashboardOrder.filter((dash) => {\n return dash.name !== \"landingPageBreakdown\";\n });\n el.dashboardOrder = result;\n }\n return el;\n })\n .map((dashboard, index) => {\n let visible = dashboard.name == selectedDashboard;\n return (\n
    \n \n
    \n );\n })}\n
    \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport GoalsTable from \"client_config/GoalsTable\";\nimport ConfigureGoalsModal from \"client_config/ConfigureGoalsModal\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport jsDig from \"utils/jsDig\";\nimport { snakeCase, cloneDeep } from \"lodash\";\nimport CustomDropdown from \"utils/CustomDropdown\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\n\nexport default function Goals(props) {\n const metricList = allMetricData.metricsByDashboard.seo.metrics.goalsAndProjections;\n const [goalChangePercent, setGoalChangePercent] = useState(0);\n const startDate = moment(\"2018-01-01\");\n const todaysDate = moment();\n const endDate = todaysDate.add(1, \"year\");\n const yearsDiff = Math.ceil(endDate.diff(startDate, \"years\", true));\n const yearsArray = [...Array(yearsDiff)].map((empty, index) => startDate.year() + index).reverse();\n const [allOrBlank, setAllOrBlank] = useState(\"blank\");\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n let calculatorLarge = require(\"images/icons/calculator-large.png\");\n calculatorLarge = ;\n\n // Default dashboard to configure is the overall dashboard which will directly update the seo_section's goals. If there is valid id passed through parameters the controller will update the relevant LP group.\n const dashboardsInitial = [\n { name: \"SEO: Overall\", id: 0, goals: props.seo_section.goals },\n ...props.seo_section.landing_page_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n\n const [dashboards, setDashboards] = useState(dashboardsInitial);\n const [selectedDashboardId, setSelectedDashboardId] = useState(dashboards[0].id);\n const [selectedYear, setSelectedYear] = useState(moment().year().toString());\n const [selectedDashboard, setSelectedDashboard] = useState(dashboards[0].name);\n\n let savedCheckedMetrics = {};\n dashboards.forEach((dashboard) => {\n savedCheckedMetrics[dashboard.id] = {};\n yearsArray.forEach((year) => {\n // Get a list of which metrics have been saved to the dashboard's goals\n const goals = jsDig([\"goals\", year, \"Jan\"], dashboard);\n savedCheckedMetrics[dashboard.id][year] = goals ? Object.keys(goals).map((metricName) => metricName) : [];\n });\n });\n const [checkedMetrics, setCheckedMetrics] = useState(savedCheckedMetrics);\n\n const handleMetricCheck = (id, year, metricName, check) => {\n let newDashboards = dashboards;\n let newCheckedMetrics = cloneDeep(checkedMetrics);\n if (check && jsDig([id, year], newCheckedMetrics)) {\n newCheckedMetrics[id][year].push(metricName);\n } else {\n newCheckedMetrics[id][year].splice(newCheckedMetrics[id][year].indexOf(metricName), 1);\n }\n\n const dashIndex = newDashboards.findIndex((el) => el.id == id);\n if (!newDashboards[dashIndex].goals[year]) newDashboards[dashIndex].goals[year] = {};\n if (check == true) {\n months.forEach((month) => {\n if (!newDashboards[dashIndex].goals[year][month]) newDashboards[dashIndex].goals[year][month] = {};\n newDashboards[dashIndex].goals[year][month][metricName] = \"\";\n });\n } else {\n months.forEach((month) => {\n delete newDashboards[dashIndex][\"goals\"][year][month][metricName];\n })\n }\n\n setDashboards(newDashboards);\n setCheckedMetrics(newCheckedMetrics);\n };\n\n const handlePullMetric = (selectedId) => {\n if (props.seo_cc_data[selectedId]) {\n const year = moment().year();\n const percentChange = goalChangePercent / 100;\n // The cc data sent by the controller includes all platforms, so filter to only 'all'\n const allCcData = props.seo_cc_data[selectedId].filter((datum) => datum.platform == \"all\");\n let newDashboards = dashboards;\n const dashIndex = newDashboards.findIndex((el) => el.id == selectedId);\n // Reformat cc data to make it easier to access\n const ccData = {};\n allCcData.forEach((datum) => {\n let newDate = moment(datum.date.split(\"T\")[0]);\n\n const newMonth = newDate.format(\"MMM\");\n const newyear = newDate.format(\"YYYY\");\n if (!ccData[newyear]) ccData[newyear] = {};\n ccData[newyear][newMonth] = datum;\n });\n\n // Only apply the changes to the metrics that have been checked\n const goalShortcutMetrics = $('.metric-selector input[type=\"checkbox\"]:checked');\n \n months.forEach((month) => {\n goalShortcutMetrics.each((i, metricCheckbox) => {\n const metricCamel = metricCheckbox.name;\n const metricSnake = snakeCase(metricCamel);\n const historical = jsDig([year - 1, month, metricSnake, \"projected\"], ccData);\n const newValue = Math.round(historical * (1 + percentChange) * 100) / 100;\n if (allOrBlank == \"blank\") {\n if (historical && newDashboards[dashIndex].goals[year][month][metricCamel] == \"\") {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n } else {\n if (historical) {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n }\n });\n });\n setDashboards([...newDashboards]);\n } else {\n console.log(\"No historical data!\");\n }\n };\n\n return (\n <>\n
    \n \n \n

    Goals:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    For:\n \n
    Year:\n {\n setSelectedYear(e.target.value);\n }}>\n {yearsArray.map((year) => {\n return ;\n })}\n \n
    \n
    \n \n {/* Only show the pull metrics button if the selectedYear matches the current year */}\n { selectedYear == moment().year().toString() ? (\n <>\n { props.seo_cc_data[selectedDashboardId].length > 0 ? (\n
    \n

    \n You have the option to pull in historical data from the last year to help set this year's goals. Enter a percentage change to apply to the previous year's data:\n

    \n

    \n (Negative numbers are also supported)\n

    \n
    \n setGoalChangePercent(e.target.value)}\n >\n \n %\n
    \n\n
    \n

    Metrics to fill in:

    \n {/* Let the user select which metric to apply the change to. Generate a checkbox for each metric */}\n {checkedMetrics[selectedDashboardId][selectedYear].map((metricName, index) => {\n const metric = metricList[metricName];\n return (\n
    \n \n
    \n );\n })}\n
    \n\n
    \n

    Goals to replace:

    \n setAllOrBlank(e.target.value)}>\n \n \n \n
    \n\n handlePullMetric(selectedDashboardId)}>\n Pull metrics\n \n
    \n ) : (\n

    No historical data has been pulled so goals cannot be generated.

    \n )}\n \n ) : <> }\n
    \n \n \n
    \n

    Configure which metrics for the selected for/year fields that you would like to set goals for:

    \n \n
    \n \n
    \n \n \n {dashboards.map((dashboard, dbIndex) => {\n return (\n \n {yearsArray.map((year, yearIndex) => {\n let visible = dashboard.id == selectedDashboardId && selectedYear == year;\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n })}\n \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Form, Col, Row, Button, Table, Container } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function GoogleAnalyticsGoals(props) {\n const [customGoals, setCustomGoals] = useState(props.customGoals);\n const [customGoalsEnabled, setCustomGoalsEnabled] = useState(props.customGoalsEnabled);\n const accountLabels = props.analyticsAccounts;\n const [selectedAccount, setSelectedAccount] = useState(accountLabels[0] && accountLabels[0].id ? accountLabels[0].id : \"\");\n\n const handleDelete = (targetKey, targetIndex) => {\n let newData = { ...customGoals };\n\n if (jsDig([targetKey, targetIndex], newData)) {\n newData[targetKey] = newData[targetKey].filter((goal, index) => {\n return targetIndex != index;\n });\n }\n setCustomGoals(newData);\n };\n\n const handleChange = (targetKey, targetIndex, property, value) => {\n let newData = { ...customGoals };\n if (jsDig([targetKey, targetIndex], newData)) {\n newData[targetKey][targetIndex][property] = value;\n }\n setCustomGoals(newData);\n };\n\n const addGoal = (targetKey) => {\n let newData = { ...customGoals };\n\n if (jsDig([targetKey], newData)) {\n newData[targetKey].push({});\n } else {\n newData[targetKey] = [{}];\n }\n setCustomGoals(newData);\n };\n\n return (\n <>\n \n \n setCustomGoalsEnabled(!customGoalsEnabled)}\n label=\"Track goals from Google Analytics\"\n />\n \n \n \n \n

    Select Label/ID:

    \n \n \n setSelectedAccount(e.target.value)}>\n {accountLabels.map((label) => {\n if (label.id) {\n return (\n \n );\n }\n })}\n \n \n
    \n \n \n

    \n Select the label/ID to track goals for, and set/name the goals below. Note: If you have just added a new ID above, you will need to save and refresh\n before it will appear in this section.\n

    \n \n
    \n \n \n
    \n \n \n \n \n \n \n\n \n \n \n \n {accountLabels.map((label) => {\n if (label.id) {\n if (customGoals[label.id]) {\n return (\n \n {customGoals[label.id].map((goalData, index) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n );\n }\n }\n })}\n \n
    Label
    \n handleChange(label.id, index, \"enabled\", e.target.checked ? \"1\" : \"0\")}\n />\n \n handleChange(label.id, index, \"goal\", e.target.value)}>\n \n {[...Array(20)].map((e, i) => {\n let goalNumber = i + 1;\n return (\n \n );\n })}\n \n \n handleChange(label.id, index, \"label\", e.target.value)}\n />\n \n {(index >= 0 && customGoals[label.id].length > 1) && (\n {\n handleDelete(label.id, index);\n }}>\n )}\n
    \n
    \n
    \n {\n addGoal(selectedAccount);\n }}\n value=\"+ Add goal\"\n variant=\"success\"\n />\n
    \n \n
    \n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport { Form, Col, Row, Button, Table, Container } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport DatePicker from \"react-datepicker\";\n\nexport default function GoogleAnalyticsIds(props) {\n const [googleAnalyticsIds, setGoogleAnalyticsIds] = useState(jsDig([\"google_analytics\", \"account_ids\"], props.platformData) ? jsDig([\"google_analytics\", \"account_ids\"], props.platformData) : []);\n const [googleAnalyticsEnabled, setGoogleAnalyticsEnabled] = useState(jsDig([\"google_analytics\", \"enabled\"], props.platformData) ? jsDig([\"google_analytics\", \"enabled\"], props.platformData) : false);\n const [ga4Date, setGa4Date] = useState(props.ga4Date)\n\n const handleIdDelete = (targetIndex) => {\n let newIds = googleAnalyticsIds.filter((id, index) => {\n return targetIndex != index;\n });\n setGoogleAnalyticsIds(newIds);\n };\n\n const handleIdChange = (targetIndex, property, value) => {\n let newIds = googleAnalyticsIds.map((id, index) => {\n let newId = id;\n if (index == targetIndex) {\n newId[property] = value;\n }\n return newId;\n });\n setGoogleAnalyticsIds(newIds);\n };\n\n let firstImg = require(\"images/analytics-screenshot-1.png\");\n let secondImg = require(\"images/analytics-screenshot-2.png\");\n firstImg = ;\n secondImg = ;\n const idTooltipMessage = () => {\n return (\n <>\n
    \n There are 2 types of Google Analytics properties, GA4 and UA.\n

    \n

    \n For UA, the ID to use in DataPulse is the view ID. That can be extracted from the URL after you select the relevant view:\n {firstImg}\n

    \n The view ID is the number that comes after the 'p' in the URL.\n

    \n

    \n For GA4, the ID to use is the profile ID. That can also be extracted from the URL after you select the relevant property:\n {secondImg}\n

    \n The property ID is the number that comes after the 'p' in the URL.\n
    \n \n )\n }\n\n const calendarForm = (name, defaultDate) => {\n const [startDate, setStartDate] = useState(new Date(props.ga4Date));\n\n const handleStartDateChange = (date) => {\n setStartDate(date);\n }\n\n const formatDate = (date) => {\n return moment(date).format(\"YYYY,MM,DD\");\n };\n\n const calendarRef = useRef();\n\n return (\n <>\n
    \n
    \n {\n calendarRef.current.setOpen(true);\n }}\n className=\"far f20 fa-calendar-alt\">\n \n
    \n \n
    \n \n );\n };\n\n let segmentImg = require(\"images/analytics-segment.png\");\n segmentImg = ;\n const tooltipMessage = () => {\n return (\n <>\n
    \n In Analytics, apply the segment you wish to use and check the URL for the parameter '_.useg'. The segment ID is everything that follows the 'user' string. For pulling a built-in segment, take the number after 'builtin' and add a hyphen '-' before.\n {segmentImg}\n

    \n

    \n Also please note that the segment must be shared in order to work. To do this, when creating or editing a segment, in the top right you'll see \"Segment is visible in any View. Change\" click Change then select \"Collaborators and I can apply/edit Segment in this view\". Click okay, then save the segment.\n

    \n Click this tooltip for a guided walkthrough.\n
    \n \n )\n }\n\n return (\n <>\n \n \n setGoogleAnalyticsEnabled(!googleAnalyticsEnabled)} />\n \n \n \n \n GA4 Date:\n \n \n {calendarForm()}\n \n \n \n \n\n \n \n
    \n \n \n \n \n \n ID\n \n \n \n \n \n Add custom segment ID\n \n \n \n \n \n \n \n \n \n \n \n {googleAnalyticsIds.map((googleAnalyticsId, index) => {\n return (\n \n \n \n \n \n {/* */}\n \n \n );\n })}\n \n
    Label
    \n handleIdChange(index, \"label\", e.target.value)} />\n \n handleIdChange(index, \"id\", e.target.value)} />\n \n handleIdChange(index, \"custom_segment_enabled\", e.target.checked ? \"1\" : \"0\")}\n />\n \n handleIdChange(index, \"custom_segment\", e.target.value)}\n />\n \n {(index >= 0 && googleAnalyticsIds.length > 1) && (\n {\n handleIdDelete(index);\n }}>\n )}\n
    \n
    \n
    \n {\n setGoogleAnalyticsIds((prevState) => [...prevState, {}]);\n }}\n value=\"+ Add Google analytics ID\"\n variant=\"success\"\n />\n
    \n \n
    \n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport { Col, Row, Container, Form } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport ManualDataPull from \"client_config/ManualDataPull\";\nimport GoogleAnalyticsIds from \"client_config/seo_config/ids/GoogleAnalyticsIds\";\nimport SemrushIds from \"client_config/seo_config/ids/SemrushIds\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport GoogleAnalyticsGoals from \"client_config/seo_config/ids/GoogleAnalyticsGoals\";\nimport CurrencySelector from \"client_config/CurrencySelector\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function IDs(props) {\n const platformData = props.seo_section.platform_data;\n const customAnalyticsGoals = props.seo_section.custom_analytics_goals;\n const customAnalyticsGoalsEnabled = props.seo_section.custom_analytics_goals_enabled;\n const analyticsAccounts = jsDig([\"google_analytics\", \"account_ids\"], platformData) ? jsDig([\"google_analytics\", \"account_ids\"], platformData) : [];\n const checkRef = useRef(null);\n let platforms = [\n {\n name: \"pull_google_data\",\n id: \"google_analytics\",\n label: \"Pull Google Data\",\n },\n {\n name: \"pull_search_console_data\",\n id: \"search_console\",\n label: \"Pull Search Console Data\",\n },\n {\n name: \"pull_semrush_data\",\n id: \"semrush\",\n label: \"Pull SEMRush Data\",\n },\n ];\n\n const [baseCurrency, setBaseCurrency] = useState(props.seo_section.base_currency)\n const [displayCurrency, setDisplayCurrency] = useState(props.seo_section.display_currency)\n\n return (\n \n
    \n \n \n \n
    \n Account IDs\n \n
    \n \n
    \n \n \n \n \n \n \n
    \n \n \n

    \n SEMRush target Location:\n

    \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n \n {\n e.preventDefault();\n checkRef.current.click();\n }}>\n Property is a domain property?\n \n \n
    \n
    \n \n \n
    Base Currency
    \n \n \n \n
    Display Currency
    \n \n \n
    \n
    \n {/* */}\n \n
    \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { Form, Col, Row, Button, Table } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport jsDig from \"utils/jsDig\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\n\nexport default function RootDomains(props) {\n const [rootDomains, setRootDomains] = useState(\n jsDig([\"search_console\", \"root_domains\"], props.platformData) ? jsDig([\"search_console\", \"root_domains\"], props.platformData) : []\n );\n const websites = [\n jsDig([\"primary\"], props.websites),\n ...(jsDig([\"additional\"], props.websites) ? jsDig([\"additional\"], props.websites) : []).map((website) => website.url),\n ];\n\n const handleDelete = (targetIndex) => {\n let newIds = rootDomains.filter((id, index) => {\n return targetIndex != index;\n });\n setRootDomains(newIds);\n };\n\n const handleChange = (targetIndex, property, value) => {\n let newIds = rootDomains.map((id, index) => {\n let newId = id;\n if (index == targetIndex) {\n newId[property] = value;\n }\n return newId;\n });\n setRootDomains(newIds);\n };\n return (\n <>\n \n \n
    \n Root Domain\n \n
    \n

    \n

    \n Your root domain(s) are auto-filled from what you entered as the website in account configuration, but you can change them here if need be.\n

    \n \n
    \n {/* \n \n Domain Property\n */}\n \n \n
    \n \n \n {rootDomains.map((rootDomain, index) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    \n handleChange(index, \"website\", e.target.value)}>\n \n {websites.map((website) => {\n return (\n \n );\n })}\n \n \n handleChange(index, \"root_domain\", e.target.value)}\n />\n \n {(index >= 0 && rootDomains.length > 1) && (\n {\n handleDelete(index);\n }}>\n )}\n
    \n {\n setRootDomains((prevState) => [...prevState, {}]);\n }}\n value=\"+ Add\"\n variant=\"success\"\n />\n
    \n \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Form, Col, Row, Button, Table, Container } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function SemrushIds(props) {\n const [semrushIds, setSemrushIds] = useState(\n jsDig([\"semrush\", \"project_ids\"], props.platformData) ? jsDig([\"semrush\", \"project_ids\"], props.platformData) : []\n );\n const [semrushEnabled, setSemrushEnabled] = useState(\n jsDig([\"semrush\", \"enabled\"], props.platformData) ? jsDig([\"semrush\", \"enabled\"], props.platformData) : false\n );\n const websites = [\n jsDig([\"primary\"], props.websites),\n ...(jsDig([\"additional\"], props.websites) ? jsDig([\"additional\"], props.websites) : []).map((website) => website.url),\n ];\n\n let projectIdImg = require(\"images/semrush-project-id.jpg\");\n projectIdImg = ;\n const tooltipMessage =
    The ID can change if a new target location has been selected. To make sure the ID is correct, open the project in SEMRush, and in the 'Position Tracking' tile, select 'View full report'. Copy the ID from the URL.

    {projectIdImg}
    \n\n const addNewRow = () => {\n //create an object with all of the state fields\n let newRow = {};\n newRow.id = \"\";\n newRow.label = \"\";\n newRow.website = jsDig([\"websites\", \"primary\"], props) ? jsDig([\"websites\", \"primary\"], props) : \"\";\n\n setSemrushIds([...semrushIds, newRow]);\n };\n\n const handleIdDelete = (targetIndex) => {\n let newIds = semrushIds.filter((id, index) => {\n return targetIndex != index;\n });\n setSemrushIds(newIds);\n };\n\n const handleIdChange = (targetIndex, property, value) => {\n let newIds = semrushIds.map((id, index) => {\n let newId = id;\n if (index == targetIndex) {\n newId[property] = value;\n }\n return newId;\n });\n setSemrushIds(newIds);\n };\n return (\n <>\n \n \n setSemrushEnabled(!semrushEnabled)}\n />\n \n \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n {semrushIds.map((semrushId, index) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n
    WebsiteLabel\n ID\n \n \n
    \n handleIdChange(index, \"website\", e.target.value)}>\n \n {websites.map((website) => {\n return (\n \n );\n })}\n \n \n handleIdChange(index, \"label\", e.target.value)}\n />\n \n handleIdChange(index, \"id\", e.target.value)}\n />\n \n {index >= 0 && semrushIds.length > 1 && (\n {\n handleIdDelete(index);\n }}>\n )}\n
    \n
    \n
    \n addNewRow()}\n value=\"+ Add SEMRush Project ID\"\n variant=\"success\"\n />\n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Row, Col, Form, Button, Container } from \"react-bootstrap\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function KeywordBox(props) {\n const handleSrc = require(\"images/icons/ui-handle.png\");\n const boxHandle = ;\n const kgGroupId = props.id;\n const [conditions, setConditions] = useState(\n props.conditions\n ? Object.values(props.conditions).map((el) => {\n return (el = [el, uuidv4()]);\n })\n : [[{ contains: \"contains\", word: \"\" }, uuidv4()]]\n );\n const handleAddCondition = () => {\n let newCondition = [{ contains: \"contains\", word: \"\" }, uuidv4()];\n let newKeywordGroups = props.keywordGroups;\n newKeywordGroups[props.index][\"conditions\"] = [...props.conditions, { contains: \"contains\", word: \"\" }];\n setConditions((conditions) => [...conditions, newCondition]);\n props.setKeywordGroups([...newKeywordGroups]);\n };\n const handleRemoveCondition = (id) => {\n let newKeywordGroups = props.keywordGroups;\n newKeywordGroups[props.index][\"conditions\"] = conditions.filter((condition) => condition[1] !== id).map((el) => el[0]);\n props.setKeywordGroups([...newKeywordGroups]);\n setConditions(conditions.filter((condition) => condition[1] !== id));\n };\n\n return (\n \n {(provided) => (\n
    \n \n \n \n
    {boxHandle}
    \n \n \n \n
    \n \n \n

    Label

    \n \n \n {\" \"}\n props.handleDelete(props.id)}>\n \n
    \n
    \n
    \n \n \n \n {\" \"}\n {props.onboarding ? (\n {\n let newArray = props.keywordGroups;\n newArray[props.index][\"name\"] = e.target.value;\n props.setKeywordGroups([...newArray]);\n }}\n />\n ) : (\n \n )}\n \n \n
    \n \n \n

    Conditions

    \n \n
    \n {conditions.map((el, index) => {\n console.log(props.conditions);\n return (\n
    \n \n \n \n
    \n \n
    \n handleRemoveCondition(el[1], index)}>\n
    \n \n \n \n \n
    \n \n
    \n {props.onboarding ? (\n {\n let newArray = props.keywordGroups;\n console.log(newArray);\n let newConditions = conditions;\n newConditions[index][0][\"word\"] = e.target.value;\n setConditions([...newConditions]);\n newArray[props.index][\"conditions\"][index][\"word\"] = e.target.value;\n console.log(newArray);\n props.setKeywordGroups([...newArray]);\n }}\n style={{ marginBottom: \"12px\" }}\n />\n ) : (\n \n )\n }\n
    \n \n
    \n
    \n );\n })}\n \n \n \n \n
    \n
    \n
    \n )}\n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Container, Row, Col, Button, Modal, Form } from \"react-bootstrap\";\nimport { DragDropContext, Droppable } from \"react-beautiful-dnd\";\nimport KeywordBox from \"./KeywordBox\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport jsDig from \"utils/jsDig\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function KeywordGroups(props) {\n let keywords = jsDig([\"keywordGroups\"], props) ? jsDig([\"keywordGroups\"], props) : [];\n props.onboarding && keywords === null ? (keywords = props.keyword_groups) : undefined;\n if (keywords) {\n if (keywords.length == 0) keywords = [{ frontID: uuidv4(), label: \"\", conditions: [{ contains: \"contains\", word: \"\" }] }];\n }\n const [keywordGroups, setKeywordGroups] = useState(keywords);\n const keywordGroupsOrder = jsDig([\"seo_section\", \"keyword_groups_order\"], props) ? jsDig([\"seo_section\", \"keyword_groups_order\"], props) : [];\n const defaultSectionOrder = keywordGroupsOrder.length > 0 ? keywordGroupsOrder.map((id) => id.toString()) : [];\n const [sectionOrder, setSectionOrder] = useState(defaultSectionOrder);\n const originalGroupIds = keywords.map((group) => group.id);\n const [showBox, setShowBox] = useState(false);\n const handleDeleteBox = (keywordId) => {\n let removeKeyword;\n const removeState = props.onboarding ? props.keywordGroups : keywordGroups;\n removeKeyword = removeState.filter((item) => {\n return item.id != keywordId;\n });\n if (props.onboarding && props.setKeywordGroups) {\n props.setKeywordGroups([...removeKeyword]);\n }\n setKeywordGroups([...removeKeyword]);\n };\n const handleAddBox = () => {\n let newGroup = {\n id: uuidv4(),\n name: \"\",\n conditions: [{ contains: \"contains\", word: \"\" }],\n };\n if (props.onboarding && props.setKeywordGroups) {\n props.setKeywordGroups([...keywordGroups, newGroup]);\n setSectionOrder([...sectionOrder, newGroup.id]);\n }\n setKeywordGroups([...keywordGroups, newGroup]);\n setSectionOrder([...sectionOrder, newGroup.id]);\n };\n\n const onDragEnd = (result) => {\n const { destination, source, draggableId } = result;\n if (!destination) {\n return;\n }\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\n return;\n }\n\n let newOrder = [...sectionOrder];\n newOrder.splice(source.index, 1);\n newOrder.splice(destination.index, 0, draggableId);\n setSectionOrder(newOrder);\n };\n\n return (\n \n \n {!props.onboarding && (\n \n

    Keyword Groups

    \n
    \n In this section, you can configure keyword groups. It's very important that these entries are configured correctly- failing to do so can return\n skewed or undesirable reporting. Click 'Show me some examples' to the right to learn more about properly configuring your keyword groups. Labels\n are for reference only and will not affect the reporting (besides how it is titled in the performance dashboard).\n
    \n \n )}\n\n \n setShowBox(true)}>\n \n {\" \"}\n Show me some examples\n \n \n \n
    \n \n \n setShowBox(false)}>\n \n \n \n

    setShowBox(false)} className=\"f22 pr-0\">\n X\n

    \n \n
    \n \n

    \n Setting Up Keyword Groups\n

    \n
    \n \n

    \n In this section you can filter Google Search Console SEO keyword data into Keyword Groups to be displayed on the client's SEO Dashboard. This\n will allow you to see trends in certain keyword buckets in SEO. Your objective is to enter unique keyword phrases into each\n field that have no overlap with other fields, to filter the data into a bucket of your choosing. It is important this section is configured\n correctly, or else you wil have overlapping and inaccurate data. A few importnat notes up-front:\n

    \n
    \n \n

    \n {\"1.)\"} Keyword filter entries are not case sensitive.\n

    \n {\"2.)\"} Be mindful of singular/plural entries and how that could potentially double-count results.\n

    \n {\"3.)\"}Spaces are treated just like any other character. For example, \"nikeshoes\" and \"nike shoes\" are unique keyword phrase filters that\n don't overlap.\n

    \n
    \n \n

    \n Let's imagine we are setting up a client who sells shoes of various brands. You might want a keyword group for \"nike shoes\" keywords to see\n how that group of brand-specific keywords is performing. See the scenarios below to see what keyword filters you'll need to add to filter{\" \"}\n only these keywords properly:\n

    \n
    \n \n \n \n

    Scenario #1:

    \n

    Good

    \n
    \n \n \n \n \n \n \n \n \n

    \n The entries are unique and use the shortest and simplest amount of characters possible to account for all scenarios.\n

    \n

    \n

    -No one keyword filter is contained within any other keyword filter.

    \n

    \n

    -We accounted for a misspelling we found in Search Console.

    \n

    \n

    -The keyword filters won't pick up other irrelevant keywords.

    \n

    \n

    \n *Note: if the client carried \"nike shirts\" too, but you only wanted to filter on shoes, this would NOT be okay because \"nike\" is contained\n within \"nike shirts\" and thus would pick up shirts keywords too. See scenario #2.\n

    \n
    \n \n\n \n \n

    Scenario #2:

    \n

    Good

    \n
    \n \n \n \n \n \n \n \n \n \n \n

    \n If the client carried \"Nike shirts\" too, we would change the inputs to this scenario to only capture the shoes keywords.\n

    \n

    \n

    \n This also doesn't include overlap - even though the word \"shoes\" is in all keyword filters above, these are treated as{\" \"}\n phrases, so no entire keyword phrase is contained within any other phrase.\n

    \n
    \n \n \n \n

    Scenario #3:

    \n

    Not Good

    \n
    \n \n \n \n \n \n \n \n \n \n \n

    This list of keyword filters would have overlap, causing double {`(maybe triple) `}counting of the data.

    \n

    \n

    \n The first entry \"nike\" is contained within the second entry \"nike shoe\". Also, the third entry \"shoes\" would pick up irrelevant keywords\n like \"adidas shoes\" in Google Search Console.\n

    \n
    \n \n
    \n
    \n
    \n\n \n \n
    \n \n \n {(provided) => (\n
    \n {sectionOrder.map((kgGroupId, idx) => {\n const keyword = props.onboarding\n ? props.keywordGroups.find((group) => group.id == kgGroupId)\n : keywordGroups.find((group) => group.id == kgGroupId);\n const index = props.onboarding\n ? props.keywordGroups.findIndex((group) => group.id == kgGroupId)\n : keywordGroups.findIndex((group) => group.id == kgGroupId);\n if (keyword) {\n return (\n
    \n {props.onboarding ? (\n \n ) : (\n \n )}\n
    \n );\n }\n })}\n {provided.placeholder}\n
    \n )}\n
    \n
    \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { Button, Row, Col, Form } from \"react-bootstrap\";\nimport { Draggable } from \"react-beautiful-dnd\";\nimport jsDig from \"utils/jsDig.js\";\nconst handleSrc = require(\"images/icons/ui-handle.png\");\nconst boxHandle = (\n <>\n \n \n \n);\n\nexport default function LandingPage(props) {\n const lpGroup = props.lpGroups.find((el) => el.id == props.lpGroupId);\n const lpGroupId = props.lpGroupId.toString();\n\n const conditionHtml = (type, url, index, conditionsLength) => {\n return (\n <>\n
    \n
    \n
    \n \n {\n let newLpGroups = props.lpGroups;\n let targetIndex = newLpGroups.indexOf(newLpGroups.find((group) => group.id == lpGroupId));\n newLpGroups[targetIndex][\"conditions\"].splice(index, 1);\n props.setLpGroups([...newLpGroups]);\n }}>\n \n \n {\n let newLpGroups = props.lpGroups;\n let targetIndex = newLpGroups.indexOf(newLpGroups.find((group) => group.id == lpGroupId));\n newLpGroups[targetIndex][\"conditions\"][index].type = e.target.value;\n props.setLpGroups([...newLpGroups]);\n }}>\n \n \n \n \n \n
    \n \n URL:\n \n {\n let newLpGroups = props.lpGroups;\n let targetIndex = newLpGroups.indexOf(newLpGroups.find((group) => group.id == lpGroupId));\n newLpGroups[targetIndex][\"conditions\"][index].url = e.target.value;\n props.setLpGroups([...newLpGroups]);\n }}\n />\n \n \n \n
    \n
    \n \n );\n };\n\n return (\n <>\n \n {(provided) => (\n
    \n
    \n {boxHandle}\n
    \n
    \n {\n let newLpGroups = props.lpGroups;\n let targetIndex = newLpGroups.indexOf(newLpGroups.find((group) => group.id == lpGroupId));\n let newSectionOrder = props.sectionOrder;\n newSectionOrder.splice(props.index, 1);\n props.setSectionOrder(newSectionOrder);\n newLpGroups.splice(targetIndex, 1);\n props.setLpGroups([...newLpGroups]);\n }}>\n \n Name:\n \n {\n let newLpGroups = props.lpGroups;\n let targetIndex = newLpGroups.indexOf(newLpGroups.find((group) => group.id == lpGroupId));\n newLpGroups[targetIndex].name = e.target.value;\n props.setLpGroups([...newLpGroups]);\n }}\n />\n \n \n {lpGroup.conditions &&\n lpGroup.conditions.map((condition, index) => {\n return {conditionHtml(condition.type, condition.url, index, lpGroup.conditions.length)};\n })}\n
    \n \n \n {\n let newLpGroups = props.lpGroups;\n let targetIndex = newLpGroups.indexOf(newLpGroups.find((group) => group.id == lpGroupId));\n if (!newLpGroups[targetIndex].conditions) {\n newLpGroups[targetIndex].conditions = [];\n }\n newLpGroups[targetIndex].conditions.push({ type: \"equals\", url: \"\" });\n props.setLpGroups([...newLpGroups]);\n }}\n />\n \n \n \n
    \n
    \n
    \n )}\n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\r\nimport { Container, Row, Col, Button } from \"react-bootstrap\";\r\nimport { DragDropContext, Droppable } from \"react-beautiful-dnd\";\r\nimport LandingPage from \"./LandingPage\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nexport default function LandingPages(props) {\r\n const [lpGroups, setLpGroups] = useState(jsDig([\"seo_section\", \"landing_page_groups\"], props) ? jsDig([\"seo_section\", \"landing_page_groups\"], props) : []);\r\n const lpGroupOrder = jsDig([\"seo_section\", \"landing_page_group_order\"], props) ? jsDig([\"seo_section\", \"landing_page_group_order\"], props) : [];\r\n const defaultSectionOrder = lpGroupOrder.length > 0 ? lpGroupOrder.map((id) => id.toString()) : [];\r\n const [sectionOrder, setSectionOrder] = useState(defaultSectionOrder);\r\n const originalGroupIds = (jsDig([\"seo_section\", \"landing_page_groups\"], props) ? jsDig([\"seo_section\", \"landing_page_groups\"], props) : []).map(\r\n (group) => group.id\r\n );\r\n const onDragEnd = (result) => {\r\n const { destination, source, draggableId } = result;\r\n if (!destination) {\r\n return;\r\n }\r\n if (destination.droppableId === source.droppableId && destination.index === source.index) {\r\n return;\r\n }\r\n\r\n let newOrder = [...sectionOrder];\r\n newOrder.splice(source.index, 1);\r\n newOrder.splice(destination.index, 0, draggableId);\r\n setSectionOrder(newOrder);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.onboarding) {\r\n if (props.setLandingPageGroups) {\r\n let newGroups = sectionOrder.map((groupId) => {\r\n const group = lpGroups.find((group) => group.id == groupId);\r\n let newGroup = { name: group.name, conditions: group.conditions };\r\n if (originalGroupIds.includes(group.id)) {\r\n newGroup.id = group.id;\r\n }\r\n return newGroup;\r\n });\r\n\r\n props.setLandingPageGroups([...newGroups]);\r\n }\r\n }\r\n }, [lpGroups, sectionOrder]);\r\n\r\n return (\r\n <>\r\n \r\n {!props.onboarding &&\r\n sectionOrder.map((groupId) => {\r\n const group = lpGroups.find((group) => group.id == groupId);\r\n return (\r\n \r\n \r\n {group.conditions &&\r\n group.conditions.map((condition, conditionIndex) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n {originalGroupIds.includes(group.id) && }\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n

    Landing Page Tracking

    \r\n \r\n
    \r\n \r\n \r\n {\r\n let newGroup = { id: uuidv4(), name: \"\", conditions: [] };\r\n setLpGroups([...lpGroups, newGroup]);\r\n setSectionOrder([...sectionOrder, newGroup.id]);\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {(provided) => (\r\n
    \r\n {sectionOrder.map((lpGroupId, index) => {\r\n if (lpGroups.find((group) => group.id == lpGroupId)) {\r\n return (\r\n \r\n );\r\n }\r\n })}\r\n {provided.placeholder}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React from \"react\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport Confetti from \"react-dom-confetti\";\nimport { Row, Col, Form, Modal, Button, Table } from \"react-bootstrap\";\n\nclass ClientAccountStatus extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n clients: [],\n activeClients: [],\n deactivatedClients: [],\n confettiTrigger: false,\n show: false,\n };\n }\n\n componentDidMount() {\n this.setState({ clients: this.props.clients }, () => {\n const newActiveClients = this.state.clients.filter((c) => c.active);\n const newDeactivatedClients = this.state.clients.filter((c) => !c.active);\n this.setState({ activeClients: newActiveClients, deactivatedClients: newDeactivatedClients });\n });\n\n $(\".collapser\").on(\"click\", function () {\n $(this).next(\".collapse\").collapse(\"toggle\");\n var icon = $(this).find(\".fas\");\n if (icon.hasClass(\"fa-sort-up\")) {\n icon.removeClass(\"fa-sort-up\").addClass(\"fa-sort-down\");\n } else {\n icon.removeClass(\"fa-sort-down\").addClass(\"fa-sort-up\");\n }\n });\n }\n\n sortClients() {\n const newActiveClients = this.state.clients.filter((c) => c.active);\n const newDeactivatedClients = this.state.clients.filter((c) => !c.active);\n\n this.setState({ activeClients: newActiveClients, deactivatedClients: newDeactivatedClients });\n }\n\n confirmDeleteClient(client) {\n let decision = confirm(\"DANGER:\\nAre You Sure You Want To Delete This Client? ALL DATA ASSOCIATED WITH THIS CLIENT WILL BE PERMANENTLY DELETED.\");\n if (decision) this.deleteClient(client);\n }\n\n deleteClient(client) {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/client-management/remove-client/\" + client.client_company_id,\n });\n }\n\n changeActiveStatus(client, active) {\n let successMsg = active ? \"Client successfully activated\" : \"Client successfully deactivated\";\n let failureMsg = active ? \"Client failed to activate\" : \"Client failed to deactivate\";\n const activateMsg = active ? `Do you want to reactivate ${client.company_name}?` : `Are you sure? ${client.company_name} will be deactivated.`\n if (confirm(activateMsg) == true) {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/client-management/activate-deactivate/\" + client.id,\n dataType: \"json\",\n data: {\n id: client.id,\n active: active,\n },\n success: (data) => {\n this.setState({ confettiTrigger: true });\n DP_FLASH([{ type: \"success\", message: successMsg }]);\n client.active = active;\n this.sortClients();\n this.setState({ confettiTrigger: false });\n },\n failure: (data) => {\n DP_FLASH([{ type: \"danger\", message: failureMsg }]);\n },\n });\n }\n }\n\n render() {\n const confettiConfig = {\n angle: \"85\",\n spread: \"83\",\n startVelocity: \"30\",\n elementCount: \"125\",\n dragFriction: \"0.03\",\n duration: \"5000\",\n stagger: \"0\",\n width: \"8px\",\n height: \"31px\",\n perspective: \"1000px\",\n colors: [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"],\n };\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n return (\n <>\n

    Client Management

    \n \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n {this.state.activeClients.map((client) => {\n return (\n \n \n \n \n \n \n \n );\n })}\n \n
    StatusLast ChangeClient NameActivation Date
    \n this.changeActiveStatus(client, false)} />\n {new Date(Date.parse(client.updated_at)).toLocaleDateString()}{client.company_name}{new Date(Date.parse(client.created_at)).toLocaleDateString()}
    \n
    \n {this.props.current_user_is_admin && (\n
    \n
    \n
    Archive
    \n
    \n
    \n

    \n Collapse Section \n

    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n {this.state.deactivatedClients.map((client) => {\n return (\n \n \n \n \n \n \n \n );\n })}\n \n
    StatusLast ChangeClient NameActivation DateDanger Zone
    \n this.changeActiveStatus(client, true)} />\n {new Date(Date.parse(client.updated_at)).toLocaleDateString()}{client.company_name}{new Date(Date.parse(client.created_at)).toLocaleDateString()}\n \n
    \n
    \n
    \n
    \n
    \n )}\n
    \n
    \n \n \n
    \n \n
    \n \n
    \n this.setState({ show: false })} style={{ textAlign: \"center\" }}>\n
    \n \n {\" \"}\n \n \n

    What is the name of the company for this account?

    \n \n
    \n
    \n \n \n \n

    \n This is how your name will be displayed in DataPulse.

    Just the simplest form of your company name is ideal.\n

    \n \n
    \n \n \n
    \n \n \n \n \n

    \n Note: Avoid adding company type suffixes like \"Inc\" or \"LLC\" here (that's what the legal page is for!)\n

    \n \n
    \n \n \n \n Next\n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n \n );\n }\n}\n\nexport default ClientAccountStatus;\n","import React from \"react\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nclass BlueIndentedSection extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n open: true,\n };\n }\n\n toggleCollapse(event) {\n console.log(event.target);\n let btn = $(event.target);\n btn.next(\".collapse\").collapse(\"toggle\");\n let icon = btn.find(\".fas\");\n this.setState({ open: !this.state.open });\n if (icon.hasClass(\"fa-sort-up\")) {\n icon.removeClass(\"fa-sort-up\").addClass(\"fa-sort-down\");\n } else {\n icon.removeClass(\"fa-sort-down\").addClass(\"fa-sort-up\");\n }\n console.log(this.state.open);\n }\n\n render() {\n return (\n <>\n
    \n
    \n

    {this.props.sectionTitle}

    \n
    this.toggleCollapse(e)}>\n

    \n {this.state.open === true ? \"Collapse \" : \"Expand \"}Section \n

    \n
    \n
    {this.props.children}
    \n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default BlueIndentedSection;\n","import React, { useState } from \"react\";\r\nimport { Table, Row, Col, Button, Form } from \"react-bootstrap\";\r\nimport CustomDropdown from \"utils/CustomDropdown\";\r\n\r\nconst DashboardSubheader = (props) => {\r\n return (\r\n <>\r\n
    \r\n

    Select view:

    \r\n {props.tabLocation !== \"ppc\" ?\r\n\r\n \r\n :\r\n props.setSelectedDashboard(parseInt(e.target.value))}\r\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}\r\n value={props.selectedDashboard}\r\n >\r\n {props.dashboards.map((dashboard, index) => {\r\n return (\r\n \r\n )\r\n })}\r\n \r\n }\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default DashboardSubheader;\r\n\r\n","import React from 'react';\nimport MetricFormatter from 'dashboards/MetricFormatter'\n\n// Gets the correct MetricFormatter for each metric based on metric name. We need this because we are looping through each metric now rather than hard coding each metric\nconst GetFormatter = (props) => {\n let Formatter;\n let metric = props.metricName.toLowerCase();\n\n if (props.tick == true) {\n if (metric.includes(\"roas\") || metric.includes(\"aov\") || metric.includes(\"cpa\") || metric.includes(\"cpc\")) {\n Formatter = MetricFormatter.CalculatedMonetaryTick;\n } else if (metric.includes(\"revenue\") || metric.includes(\"spend\")) {\n Formatter = MetricFormatter.MonetaryTick;\n } else if (metric.includes(\"ctr\") || metric.includes(\"cvr\") || metric.includes(\"bounce_rate\")) {\n Formatter = MetricFormatter.CalculatedTick;\n } else {\n Formatter = MetricFormatter.DefaultTick;\n }\n } else {\n if (metric.includes(\"traffic\")) {\n Formatter = MetricFormatter.Sessions;\n } else if (metric.includes(\"impressions\")) {\n Formatter = MetricFormatter.Impressions;\n } else if (metric.includes(\"phone_calls\")) {\n Formatter = MetricFormatter.PhoneCalls;\n } else if (metric.includes(\"search_visibility\")) {\n Formatter = MetricFormatter.SearchVisibility;\n } else if (metric.includes(\"clicks\")) {\n Formatter = MetricFormatter.Clicks;\n } else if (metric.includes(\"revenue\") || metric.includes(\"spend\")) {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.includes(\"bounce_rate\")) {\n Formatter = MetricFormatter.BounceRate;\n } else if (metric.includes(\"roas\")) {\n Formatter = MetricFormatter.ROAS;\n } else if (metric.includes(\"aov\")) {\n Formatter = MetricFormatter.AOV;\n } else if (metric.includes(\"cpa\")) {\n Formatter = MetricFormatter.CPA;\n } else if (metric.includes(\"cpc\")) {\n Formatter = MetricFormatter.CPC;\n } else if (metric.includes(\"cvr\")) {\n Formatter = MetricFormatter.CVR;\n } else if (metric.includes(\"ctr\")) {\n Formatter = MetricFormatter.CTR;\n } else if (metric.includes(\"conversions\")) {\n Formatter = MetricFormatter.Conversions;\n } else if (metric.includes(\"backlinks\")) {\n Formatter = MetricFormatter.Backlinks;\n } else {\n Formatter = MetricFormatter.Sessions;\n }\n }\n\n return Formatter;\n}\n\nexport default GetFormatter;\n","import React from 'react';\nimport ChartGoal from 'charts/ChartGoal'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nclass GreenIndentedSection extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n }\n }\n\n toggleCollapse(event) {\n let btn = $(event.target);\n btn.next('.collapse').collapse('toggle');\n let icon = btn.find('.fas');\n if (icon.hasClass('fa-sort-up')) {\n icon.removeClass('fa-sort-up').addClass('fa-sort-down')\n } else {\n icon.removeClass('fa-sort-down').addClass('fa-sort-up')\n }\n }\n\n render() {\n return (\n <>\n
    \n
    \n

    \n {this.props.sectionTitle}\n

    \n
    this.toggleCollapse(e)}>\n

    Collapse Section 

    \n
    \n
    \n {\n this.props.children\n }\n
    \n
    \n
    \n
    \n
    \n
    \n \n )\n }\n\n}\n\nexport default GreenIndentedSection;\n","import React from \"react\";\n\nclass KPIMetricBlock extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentDidMount() { }\n\n render() {\n const goodOrBadText = this.props.negative ? \"text-danger\" : \"text-success\";\n const goodOrBadBg = this.props.negative ? \"bg-danger\" : \"bg-success\";\n return (\n
    \n
    {this.props.metricName}
    \n
    {this.props.metric}
    \n
    {this.props.yy}
    \n
    \n );\n }\n}\n\nexport default KPIMetricBlock;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport ReactDOMServer from \"react-dom/server\";\n\nclass KeywordBlock extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentDidMount() {}\n\n render() {\n const yyText = ReactDOMServer.renderToString();\n const goodOrBadText = this.props.negative ? (this.props.yy >= 0 ? \"text-danger\" : \"text-success\") : this.props.yy >= 0 ? \"text-success\" : \"text-danger\";\n const goodOrBadBg = this.props.negative ? (this.props.yy >= 0 ? \"bg-danger\" : \"bg-success\") : this.props.yy >= 0 ? \"bg-success\" : \"bg-danger\";\n return (\n
    \n
    {this.props.metricName}
    \n
    {`${\n this.props.metric ? this.props.metric : 0\n } (${yyText})`}
    \n {/*
    {`New: ${this.props.new}`}
    \n
    {`Lost: ${this.props.lost}`}
    */}\n
    \n );\n }\n}\n\nexport default KeywordBlock;\n","import React from 'react';\n\nclass KeywordImprovedDeclinedBlock extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
    \n
    \n Improved: {this.props.improved}\n
    \n
    \n Declined: {this.props.declined}\n
    \n
    \n )\n }\n}\n\nexport default KeywordImprovedDeclinedBlock;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\n\nclass KeywordTable extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n sortBy: props.keyword_sort,\n sortOrderAsc: props.keyword_sort_order_asc,\n sortedKeywords: [],\n };\n }\n\n sortKeywords(by, initial = false) {\n let kwCopy = this.props.keywords === null ? [...this.state.sortedKeywords] : initial ? this.props.keywords : [...this.state.sortedKeywords];\n let tempSortOrder = this.state.sortOrderAsc;\n if (by == this.state.sortBy && !initial) {\n tempSortOrder = !tempSortOrder;\n kwCopy.reverse();\n } else {\n tempSortOrder = initial ? this.state.sortOrderAsc : true;\n if (by == \"keyword\") {\n kwCopy.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n } else if (by == \"prevpos\") {\n kwCopy.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n } else if (by == \"currentpos\") {\n kwCopy.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n } else if (by == \"diff\") {\n kwCopy.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n } else if (by == \"cpc\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n } else if (by == \"volume\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n } else if (by == \"difficulty\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n }\n if (!tempSortOrder) {\n kwCopy.reverse();\n }\n }\n\n this.setState({ sortBy: by, sortOrderAsc: tempSortOrder, sortedKeywords: kwCopy });\n }\n componentDidMount() {\n this.setState({ sortedKeywords: this.props.keywords });\n this.sortKeywords(this.state.sortBy, true);\n }\n render() {\n const sortUpHtml = ;\n const sortDownHtml = ;\n return (\n
    \n
    \n {!this.props.pdf && this.props.user_is_employee && (\n
    \n \n \n \n
    \n )}\n
    \n
    \n \n \n \n {this.props.metrics[\"metrics_data\"][\"keywordName\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordSerpFeatures\"] == \"1\" && }\n {this.props.metrics[\"metrics_data\"][\"keywordPreviousPosition\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordCurrentPosition\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordDifference\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordCostPerConversion\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordSearchVolume\"] == \"1\" && (\n \n )}\n\n {this.props.metrics[\"metrics_data\"][\"keywordDifficulty\"] == \"1\" && (\n \n )}\n\n {this.props.metrics[\"metrics_data\"][\"keywordLabel\"] == \"1\" && }\n {this.props.metrics[\"metrics_data\"][\"keywordUrl\"] == \"1\" && }\n \n \n \n {this.state.sortedKeywords.map((keyword, i) => {\n let diffBackground = \"\";\n if (keyword.ranking_difference > 0) diffBackground = \"bg-success text-white\";\n else if (keyword.ranking_difference < 0) diffBackground = \"bg-danger text-white\";\n return (\n \n {this.props.metrics[\"metrics_data\"][\"keywordName\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordSerpFeatures\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordPreviousPosition\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordCurrentPosition\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordDifference\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordCostPerConversion\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordSearchVolume\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordDifficulty\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordLabel\"] == \"1\" && (\n \n )}\n {this.props.metrics[\"metrics_data\"][\"keywordUrl\"] == \"1\" && (\n \n )}\n \n );\n })}\n \n
    this.sortKeywords(\"keyword\")}>\n Keyword \n {this.state.sortBy == \"keyword\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n SERP Features this.sortKeywords(\"prevpos\")}>\n Prev. Pos \n {this.state.sortBy == \"prevpos\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"currentpos\")}>\n Current Pos \n {this.state.sortBy == \"currentpos\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"diff\")}>\n Diff \n {this.state.sortBy == \"diff\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"cpc\")}>\n CPC \n {this.state.sortBy == \"cpc\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"volume\")}>\n Volume \n {this.state.sortBy == \"volume\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"difficulty\")}>\n Difficulty \n {this.state.sortBy == \"difficulty\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n LabelRanking Page
    \n
    {keyword.keyword}
    \n
    \n
    \n {keyword.serp_features.map((serp_feature) => {\n if (serp_feature == \"rel\") return ;\n if (serp_feature == \"rev\") return ;\n if (serp_feature == \"fsn\") return ;\n if (serp_feature == \"shp\") return ;\n if (serp_feature == \"stl\") return ;\n if (serp_feature == \"adt\") return ;\n if (serp_feature == \"adb\") return ;\n if (serp_feature == \"vid\") return ;\n if (serp_feature == \"img\") return ;\n if (serp_feature == \"geo\") return ;\n if (serp_feature == \"vib\") return ;\n if (serp_feature == \"new\") return ;\n if (serp_feature == \"twt\") return ;\n if (serp_feature == \"knw\") return ;\n if (serp_feature == \"kng\") return ;\n })}\n
    \n
    \n
    \n {keyword.start_date_ranking == 0 ? \"100+\" : }\n
    \n
    \n
    \n {keyword.end_date_ranking == 0 ? \"100+\" : }\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n {keyword.tag &&\n keyword.tag.map((el, index) => {\n let string = el;\n if (index < keyword.tag.length - 1) string += \", \";\n return string;\n })}\n
    \n
    \n
    {keyword.ranking_page}
    \n
    \n
    \n
    \n );\n }\n}\n\nexport default KeywordTable;\n","import React from 'react';\nimport Metric from 'utils/Metric'\nimport currencyConverter from 'utils/currencyConverter'\nimport getCurrencyDetails from 'utils/getCurrencyDetails'\n\nconst getTickProps = (oldValue) => {\n let value = oldValue;\n let suffix = \"\";\n let roundTo = 0;\n let decimal = 0;\n if (value === 0) {\n suffix = \"\";\n roundTo = 0;\n } else if (value >= 100 && value < 1000) {\n suffix = \"\";\n roundTo = 1;\n } else if (value >= 1000 && value < 1000000) {\n suffix = \"k\"\n roundTo = 100;\n if (value < 10000) {\n decimal = parseFloat(Math.round(value).toString().split(\"\").reverse()[2]);\n }\n } else if (value >= 1000000 && value < 1000000000) {\n suffix = \"m\"\n roundTo = 100;\n if (value < 10000000) {\n decimal = parseFloat(Math.round(value).toString().split(\"\").reverse()[5]);\n }\n } else if (value >= 1000000000) {\n suffix = \"b\"\n roundTo = 100;\n if (value < 10000000000) {\n decimal = parseFloat(Math.round(value).toString().split(\"\").reverse()[8]);\n }\n }\n\n if (roundTo > 0) {\n value = Math.round(value / roundTo) * roundTo;\n }\n //turn into the last digits after multiples of 3 e.g 1k 100k 999k 89k instead of 1000 999000 89000\n if (value >= 100) {\n value = parseFloat(value.toString().substring(0, (value.toString().length % 3) == 0 ? 3 : (value.toString().length % 3)));\n }\n // We want to show partial values for some abbreviated ticks to avoid showing duplicates, like some were saying 1k, 1k, 1k, 1k, then jump to 2k, 2k, 2k, 2k\n if (decimal > 0) {\n value += decimal / 10\n }\n\n return {\n value: value,\n decimal: decimal,\n suffix: suffix,\n }\n}\n\nconst MetricFormatter = {\n YY: (props) => {\n if (isNaN(props.value) || (typeof props.value == \"string\")) {\n return (\n \n )\n } else {\n return (\n \n )\n }\n },\n YY0: (props) => ,\n Sessions: (props) => ,\n Impressions: (props) => ,\n PhoneCalls: (props) => ,\n SearchVisibility: (props) => ,\n OrganicTraffic: (props) => ,\n Clicks: (props) => ,\n Revenue: (props) => {\n let currencyDetails = getCurrencyDetails(props.displayCurrency);\n return (\n \n )\n },\n BounceRate: (props) => ,\n ROAS: (props) => {\n let currencyDetails = getCurrencyDetails(props.displayCurrency);\n return (\n \n )\n },\n AOV: (props) => {\n let currencyDetails = getCurrencyDetails(props.displayCurrency);\n return (\n \n )\n },\n CPA: (props) => {\n let currencyDetails = getCurrencyDetails(props.displayCurrency);\n return (\n \n )\n },\n CPC: (props) => {\n let currencyDetails = getCurrencyDetails(props.displayCurrency);\n return (\n \n )\n },\n CVR: (props) => ,\n CTR: (props) => ,\n Conversions: (props) => ,\n Backlinks: (props) => ,\n DefaultTick: (props) => {\n let tickProps = getTickProps(props.value);\n let suffix = tickProps.suffix;\n let decimal = tickProps.decimal;\n let value = tickProps.value;\n return (\n 0 ? 1 : 0} suffix={suffix} />\n )\n },\n MonetaryTick: (props) => {\n let currencyDetails = getCurrencyDetails(props.displayCurrency)\n let convertedValue = currencyConverter(props.value, props.baseCurrency, props.displayCurrency)\n let tickProps = getTickProps(convertedValue);\n let suffix = tickProps.suffix;\n let decimal = tickProps.decimal;\n let value = tickProps.value;\n return (\n 0 ? 1 : 0} \n suffix={currencyDetails.suffix + suffix} \n />\n )\n },\n CalculatedTick: (props) => {\n let tickProps = getTickProps(props.value);\n let suffix = tickProps.suffix;\n let decimal = tickProps.decimal;\n let value = tickProps.value;\n return (\n 0 ? 1 : 0} suffix={suffix} />\n )\n },\n CalculatedMonetaryTick: (props) => {\n let currencyDetails = getCurrencyDetails(props.displayCurrency)\n let convertedValue = currencyConverter(props.value, props.baseCurrency, props.displayCurrency)\n let tickProps = getTickProps(convertedValue);\n let suffix = tickProps.suffix;\n let decimal = tickProps.decimal;\n let value = tickProps.value;\n return (\n 0 ? 1 : 0}\n suffix={currencyDetails.suffix + suffix}\n />\n )\n }\n}\n\nexport default MetricFormatter;\n","import React from 'react';\n\nclass NoData extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n let text = \"\";\n let indentClass = \"styled-indent-blue\";\n switch(this.props.service) {\n case \"seo\":\n indentClass = \"styled-indent-green\";\n text = \"No SEO Data\";\n break;\n case \"overall\":\n text = \"No PPC Data.\";\n break;\n case \"search\":\n text = \"No paid search data.\";\n break;\n case \"social\":\n text = \"No paid social data.\";\n break;\n case \"display\":\n text = \"No display ads data.\";\n break;\n case \"video\":\n text = \"No video ads data.\";\n break;\n }\n return (\n
    \n
    \n
    \n
    \n
    {text}
    \n
    \n
    \n
    \n
    \n )\n }\n\n}\n\nexport default NoData;\n","import React from \"react\";\nimport Tab from \"react-bootstrap/Tab\";\nimport Nav from \"react-bootstrap/Nav\";\nimport PPCDashboardOverall from \"dashboards/PPCDashboardOverall\";\nimport PPCDashboardSearch from \"dashboards/PPCDashboardSearch\";\nimport PPCDashboardSocial from \"dashboards/PPCDashboardSocial\";\nimport PPCDashboardDisplay from \"dashboards/PPCDashboardDisplay\";\nimport PPCDashboardVideo from \"dashboards/PPCDashboardVideo\";\nimport DashboardSubheader from \"dashboards/DashboardSubheader\";\nimport jsDig from \"utils/jsDig\";\nimport updateParams from \"utils/updateParams.js\";\nimport dismissDataPullErrors from \"utils/dismissDataPullErrors\";\nimport { capitalize, uniq } from \"lodash-es\";\n\nclass PPCDashboard extends React.Component {\n constructor(props) {\n super(props);\n this.setSelectedDashboard = this.setSelectedDashboard.bind(this);\n this.state = {\n tabLocation: \"\",\n selectedDashboard: 0,\n selectedPlatform: \"all\",\n showPpcErrors: (jsDig([\"data_pull_errors\"], this.props.ppc_section) && Object.keys(jsDig([\"data_pull_errors\"], this.props.ppc_section)).length > 0 && this.props.shared.user_is_employee) ? true : false,\n showSearchErrors: (jsDig([\"data_pull_errors\"], this.props.search_section) && Object.keys(jsDig([\"data_pull_errors\"], this.props.search_section)).length > 0 && this.props.shared.user_is_employee) ? true : false,\n showSocialErrors: (jsDig([\"data_pull_errors\"], this.props.social_section) && Object.keys(jsDig([\"data_pull_errors\"], this.props.social_section)).length > 0 && this.props.shared.user_is_employee) ? true : false,\n showDisplayErrors: (jsDig([\"data_pull_errors\"], this.props.display_section) && Object.keys(jsDig([\"data_pull_errors\"], this.props.display_section)).length > 0 && this.props.shared.user_is_employee) ? true : false,\n showVideoErrors: (jsDig([\"data_pull_errors\"], this.props.video_section) && Object.keys(jsDig([\"data_pull_errors\"], this.props.video_section)).length > 0 && this.props.shared.user_is_employee) ? true : false,\n };\n }\n\n setPlatform = (p) => {\n this.setState({selectedPlatform: p})\n }\n\n pullInProgress() {\n return (\n
    \n
    \n
    \n \n
    \n
    \n A data pull is in progress.\n
    \n
    \n

    This page is not available while the data pull is in progress.

    \n Please check back later or\n {\n location.reload();\n }}>\n {\" \"}\n refresh \n \n the page.\n
    \n
    \n
    \n );\n }\n\n recalcInProgress() {\n return (\n
    \n
    \n
    \n \n
    \n
    \n Data is being recalculated.\n
    \n
    \n

    Your data pull has completed but data is recalculating

    \n Please be patient {this.props.shared && this.props.shared.user ? this.props.shared.user.first_name : \"my guy\"} and check back later or\n {\n location.reload();\n }}>\n {\" \"}\n refresh \n \n the page.\n
    \n
    \n
    \n );\n };\n\n displayErrors(section) {\n let configUrl = \"\"\n if (section == \"ppc_section\") {\n configUrl = \"/datapulse/ppc-config?page=ppc\"\n } else if (section == \"search_section\") {\n configUrl = \"/datapulse/ppc-config?page=search\"\n } else if (section == \"social_section\") {\n configUrl = \"/datapulse/ppc-config?page=social\"\n } else if (section == \"display_section\") {\n configUrl = \"/datapulse/ppc-config?page=display\"\n } else if (section == \"video_section\") {\n configUrl = \"/datapulse/ppc-config?page=video\"\n }\n return (\n
    \n
    \n
    \n There were errors on the last data pull\n
    \n
    \n {jsDig([section, \"data_pull_errors\"], this.props) && Object.keys(jsDig([section, \"data_pull_errors\"], this.props)).map((platform) => {\n const errorCounts = jsDig([section, \"data_pull_errors\", platform], this.props).reduce((map, val) => {map[val] = (map[val] || 0)+1; return map}, {} );\n return (\n \n
    \n

    {capitalize(platform)}:

    \n
      \n {uniq(jsDig([section, \"data_pull_errors\", platform], this.props)).map((errorMessage, index) => {\n const length = errorCounts[errorMessage];\n return (\n
    • - {length > 1 ? `(${length}x) ` : ' '}{errorMessage}
    • \n )\n })}\n
    \n
    \n
    \n )\n })}\n
    \n {\n dismissDataPullErrors(jsDig([section, \"id\"], this.props), section.split(\"_\")[0])\n $(e.target).closest('.spin-shell').fadeOut();\n setTimeout(() => {\n if (section == \"ppc_section\") {\n this.setState({ showPpcErrors: false })\n } else if (section == \"search_section\") {\n this.setState({ showSearchErrors: false })\n } else if (section == \"social_section\") {\n this.setState({ showSocialErrors: false })\n } else if (section == \"display_section\") {\n this.setState({ showDisplayErrors: false })\n } else if (section == \"video_section\") {\n this.setState({ showVideoErrors: false })\n }\n }, 1000)\n }}>\n Dismiss\n \n {\n dismissDataPullErrors(jsDig([section, \"id\"], this.props), section.split(\"_\")[0])\n }}>\n Go to configs\n \n
    \n
    \n
    \n
    \n )\n }\n\n changeSection(hashLoc = \"ppc\") {\n let exportButton = $(\".ppc-export-pdf\");\n let href = exportButton.attr(\"href\").split(\"§ion=\")[0];\n exportButton.attr(\"href\", href + \"§ion=\" + hashLoc + \"&dashboard=0\");\n }\n\n componentDidMount() {\n const urlSearchParams = new URL(location.href).searchParams;\n let hashLoc = urlSearchParams.get(\"page\");\n if (hashLoc) {\n this.setState({ tabLocation: hashLoc });\n updateParams(\"page\", hashLoc, \"dashboard\");\n this.changeSection(hashLoc);\n } else {\n this.setState({ tabLocation: \"paidSearch\" });\n updateParams(\"page\", \"paidSearch\", \"dashboard\");\n this.changeSection();\n }\n }\n\n selectTab(key) {\n this.setState({ tabLocation: key });\n this.setState({ selectedDashboard: 0 });\n this.changeSection(key);\n updateParams(\"page\", key, \"dashboard\");\n setTimeout(() => window.dispatchEvent(new Event(\"resize\")), 1);\n if (key === \"paidDisplay\") {\n $(\"#configure-btn\").attr(\"href\", `ppc-config?page=display&subpage=dashboard`);\n }\n if (key === \"paidVideo\") {\n $(\"#configure-btn\").attr(\"href\", `ppc-config?page=video&subpage=dashboard`);\n }\n if (key === \"paidSocial\") {\n $(\"#configure-btn\").attr(\"href\", `ppc-config?page=social&subpage=dashboard`);\n }\n if (key === \"paidSearch\") {\n $(\"#configure-btn\").attr(\"href\", `ppc-config?page=search&subpage=dashboard`);\n }\n if (key === \"ppc\") {\n $(\"#configure-btn\").attr(\"href\", `ppc-config?page=ppc&subpage=dashboard`);\n }\n }\n\n setSelectedDashboard(id) {\n this.setState({ selectedDashboard: id });\n let exportButton = $(\".ppc-export-pdf\");\n let href = exportButton.attr(\"href\").split(\"§ion=\")[0];\n exportButton.attr(\"href\", href + \"§ion=\" + this.state.tabLocation + \"&dashboard=\" + id);\n }\n\n \n render() {\n\n const ppcDashboards = [{ name: \"PPC: Overall\", id: 0 }];\n const searchDashboards = [\n { name: \"Search: Overall\", id: 0 },\n ...this.props.search_section.campaign_groups.map((group) => ({ name: group.name, id: group.id })),\n ];\n const socialDashboards = [\n { name: \"Social: Overall\", id: 0 },\n ...this.props.social_section.campaign_groups.map((group) => ({ name: group.name, id: group.id })),\n ];\n const displayDashboards = [\n { name: \"Display: Overall\", id: 0 },\n ...this.props.display_section.campaign_groups.map((group) => ({ name: group.name, id: group.id })),\n ];\n const videoDashboards = [\n { name: \"Video: Overall\", id: 0 },\n ...this.props.video_section.campaign_groups.map((group) => ({ name: group.name, id: group.id })),\n ];\n\n let dashboards = [];\n switch (this.state.tabLocation) {\n case \"ppc\":\n dashboards = [...ppcDashboards];\n break;\n case \"paidSearch\":\n dashboards = [...searchDashboards];\n break;\n case \"paidSocial\":\n dashboards = [...socialDashboards];\n break;\n case \"paidDisplay\":\n dashboards = [...displayDashboards];\n break;\n case \"paidVideo\":\n dashboards = [...videoDashboards];\n break;\n default:\n dashboards = [];\n break;\n }\n\n const allPpcEnabled =\n this.props.search_section.enabled || this.props.social_section.enabled || this.props.display_section.enabled || this.props.video_section.enabled;\n\n const ppcPulling =\n jsDig([\"data_pull_status\", \"shopify_data_pull\"], this.props.ppc_section) &&\n jsDig([\"data_pull_status\", \"shopify_data_pull\"], this.props.ppc_section).length > 0;\n const searchPulling =\n (jsDig([\"data_pull_status\", \"google_data_pull\"], this.props.search_section) &&\n jsDig([\"data_pull_status\", \"google_data_pull\"], this.props.search_section).length > 0) ||\n (jsDig([\"data_pull_status\", \"bing_data_pull\"], this.props.search_section) &&\n jsDig([\"data_pull_status\", \"bing_data_pull\"], this.props.search_section).length > 0);\n const socialPulling =\n jsDig([\"data_pull_status\", \"facebook_data_pull\"], this.props.social_section) &&\n jsDig([\"data_pull_status\", \"facebook_data_pull\"], this.props.social_section).length > 0;\n const displayPulling =\n jsDig([\"data_pull_status\", \"google_data_pull\"], this.props.display_section) &&\n jsDig([\"data_pull_status\", \"google_data_pull\"], this.props.display_section).length > 0;\n const videoPulling =\n jsDig([\"data_pull_status\", \"google_data_pull\"], this.props.video_section) &&\n jsDig([\"data_pull_status\", \"google_data_pull\"], this.props.video_section).length > 0;\n\n const ppcRecalculating =\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.ppc_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.ppc_section).length > 0;\n const searchRecalculating =\n (jsDig([\"data_pull_status\", \"recalculation\"], this.props.search_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.search_section).length > 0) ||\n (jsDig([\"data_pull_status\", \"recalculation\"], this.props.search_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.search_section).length > 0);\n const socialRecalculating =\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.social_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.social_section).length > 0;\n const displayRecalculating =\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.display_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.display_section).length > 0;\n const videoRecalculating =\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.video_section) &&\n jsDig([\"data_pull_status\", \"recalculation\"], this.props.video_section).length > 0;\n\n\n let platformCount\n if (this.state.tabLocation === \"paidSearch\" || this.state.tabLocation === \"\") {\n platformCount = Object.keys(this.props[\"search_section\"][\"cc_data\"]).length\n }\n if (this.state.tabLocation === \"paidSocial\") {\n platformCount = Object.keys(this.props[\"social_section\"][\"cc_data\"]).length\n }\n if (this.state.tabLocation === \"paidDisplay\") {\n platformCount = Object.keys(this.props[\"display_section\"][\"cc_data\"]).length\n }\n if (this.state.tabLocation === \"paidVideo\") {\n platformCount = Object.keys(this.props[\"video_section\"][\"cc_data\"]).length\n }\n\n return (\n <>\n \n
    \n this.selectTab(k)}>\n \n \n \n {ppcPulling ? (\n this.pullInProgress()\n ) : ppcRecalculating ? (\n this.recalcInProgress()\n ) : this.state.showPpcErrors ? (\n this.displayErrors(\"ppc_section\")\n ) : (\n \n )}\n \n \n {searchPulling ? (\n this.pullInProgress()\n ) : searchRecalculating ? (\n this.recalcInProgress()\n ) : this.state.showSearchErrors ? (\n this.displayErrors(\"search_section\")\n ) : (\n \n )}\n \n \n {socialPulling ? (\n this.pullInProgress()\n ) : socialRecalculating ? (\n this.recalcInProgress()\n ) : this.state.showSocialErrors ? (\n this.displayErrors(\"social_section\")\n ) : (\n \n )}\n \n \n {displayPulling ? (\n this.pullInProgress()\n ) : displayRecalculating ? (\n this.recalcInProgress()\n ) : this.state.showDisplayErrors ? (\n this.displayErrors(\"display_section\")\n ) : (\n \n )}\n \n \n {videoPulling ? (\n this.pullInProgress()\n ) : videoRecalculating ? (\n this.recalcInProgress()\n ) : this.state.showVideoErrors ? (\n this.displayErrors(\"video_section\")\n ) : (\n \n )}\n \n \n \n
    \n \n );\n }\n}\n\nexport default PPCDashboard;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport BlueIndentedSection from \"dashboards/BlueIndentedSection\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTable from \"MetricTable\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport allMetrics from \"data/allMetrics.js\";\nimport getNegative from \"utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport { camelCase } from \"lodash-es\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\nclass PPCDashboardDisplay extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedPlatform: \"google\",\n };\n }\n\n handlePlatform = (p) => {\n this.setState({ selectedPlatform: p });\n };\n\n generateDashboardSection(section, cc_data, dashboard, p) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (section.name) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n \n \n \n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n\n return (\n \n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"campaignGroups\":\n const groupOrder = this.props.campaign_group_order ? this.props.campaign_group_order : [];\n return (\n <>\n {groupOrder.map((group_id, index) => {\n let metricTitles = [];\n const campaignGroup = this.props.campaign_groups.find((group) => group.id == group_id);\n if (campaignGroup) {\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n \n \n \n
    \n );\n }\n })}\n \n );\n case \"spendAllocation\":\n let metricsEnabled = [];\n if (jsDig([dashboard, \"spend\", \"raw\"], cc_data) > 0 && this.state.selectedPlatform === \"all\") {\n return (\n <>\n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n metricsEnabled.push(metricKey);\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n \n
    \n

    By Location

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

    No spend data.

    ;\n }\n default:\n return

    {section.name} is not a valid section name for this dashboard

    ;\n }\n }\n }\n\n render() {\n const allPlatforms = Object.keys(jsDig([\"cc_data\"], this.props));\n const platformCount = allPlatforms.length - 1;\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n bing: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n const dashboard = this.props.selectedDashboard;\n let cc_data = this.props.cc_data[this.state.selectedPlatform];\n const sectionList = jsDig([\"metricsByDashboard\", \"display\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"display\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardsEnable = false;\n const dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n capitalized = capitalized == \"Bing\" ? \"Microsoft\" : capitalized;\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\" || platform == \"bing\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Display + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n\n {dashboardOrder.map((dashboardSection, index) => {\n const sectionData = sectionList[dashboardSection.name];\n if (dashboardSection.enabled) {\n dashboardsEnable = true;\n return (\n \n {this.generateDashboardSection(dashboardSection, this.props.cc_data[this.state.selectedPlatform], dashboard, this.state.selectedPlatform)}\n \n );\n }\n })}\n {!dashboardsEnable &&\n (this.props.user_is_employee ? (\n

    You have not enabled any sections for this dashboard yet. Click the configure dashboard button above to set up your dashboard.

    \n ) : (\n

    No sections of this dashboard are currently enabled. Please contact your account representatives if you would like to this view.

    \n ))}\n \n );\n } else {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Display + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n \n Discovery Campaign Data\n \n \n
    \n
    \n ;\n \n );\n }\n } else {\n return ;\n }\n }\n}\n\nexport default PPCDashboardDisplay;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport BlueIndentedSection from \"dashboards/BlueIndentedSection\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTable from \"MetricTable\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport getNegative from \"utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport { snakeCase, capitalize, camelCase } from \"lodash-es\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\n\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\nclass PPCDashboardOverall extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedPlatform: \"all\",\n };\n }\n\n handlePlatform = (p) => {\n this.setState({ selectedPlatform: p });\n };\n\n generateDashboardSection(section, cc_data, dashboard, dashboardOrder) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (section.name) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n \n \n \n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n \n }\n yy={}\n key={index}\n negative={negative}\n />\n );\n }\n } else {\n return

    {metricKey} was not found in cc_data

    ;\n }\n } else {\n return

    {metricName} not defined in metricData.json

    ;\n }\n })}\n
    \n \n );\n case \"performanceByChannel\":\n const channels = renderArray.map((channel) => {\n if (section.metrics_data[`${channel}`] == \"1\") return channel;\n });\n return (\n
    \n {[\"search\", \"social\", \"display\", \"video\"].map((channel, index) => {\n let metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"total_conversions\", \"total_roas\"]\n : [\"spend\", \"clicks\", \"total_conversions\", \"total_cpa\"];\n if (channel == \"search\") {\n metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"click_conversions\", \"click_roas\"]\n : [\"spend\", \"clicks\", \"click_conversions\", \"click_cpa\"];\n }\n\n if (channels.includes(channel)) {\n if (jsDig([`${channel}_section`, \"cc_data\", 0, \"date\"], this.props)) {\n let tempMetricNames = [];\n return (\n
    \n \n

    {capitalize(channel)}

    \n {metricNames.map((metricName, index) => {\n if (metricName) {\n if (jsDig([`${channel}_section`, \"cc_data\", 0, \"metrics_2_years\", metricName], this.props) == null) {\n console.log(`${metricName} was not found.`);\n return <>;\n }\n } else {\n return

    {metricName} not defined in metricData.json

    ;\n }\n\n tempMetricNames.push(metricName);\n })}\n\n \n \n \n
    \n
    \n );\n } else return

    There is no data for {channel}

    ;\n }\n })}\n
    \n );\n case \"campaignGroups\":\n const sections = renderArray.map((channel) => {\n if (section.metrics_data[`${channel}`] == \"1\") return channel;\n });\n\n return (\n <>\n {[\"search\", \"social\", \"display\", \"video\"].map((channel, index) => {\n const channelName = `${channel}_section`;\n const groupOrder = this.props[channelName].campaign_group_order ? this.props[channelName].campaign_group_order : [];\n\n return (\n
    \n {groupOrder.map((group_id, index) => {\n let metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"total_conversions\", \"total_roas\"]\n : [\"spend\", \"clicks\", \"total_conversions\", \"click_cpa\"];\n if (channel == \"search\") {\n metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"click_conversions\", \"click_roas\"]\n : [\"spend\", \"clicks\", \"click_conversions\", \"click_cpa\"];\n }\n const campaignGroup = this.props[channelName].campaign_groups.find(\n (group) => group.id == group_id && sections.includes(camelCase(group.name))\n );\n\n if (campaignGroup) {\n let tempMetricNames = [];\n return (\n
    \n \n

    {campaignGroup.name}

    \n {metricNames.map((metricName, index) => {\n if (metricName) {\n if (jsDig([group_id, \"metrics_2_years\", metricName], this.props[channelName].cc_data) == null) {\n console.log(`${metricName} was not found in metrics_2_years in cc_data for campaign group ${group_id}`);\n return <>;\n }\n } else {\n return

    {metricName} not defined in metricData.json

    ;\n }\n\n tempMetricNames.push(metricName);\n })}\n\n \n \n \n
    \n
    \n );\n }\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocation\":\n let metricsEnabled = [];\n if (jsDig([dashboard, \"spend\", \"raw\"], cc_data) > 0 && this.state.selectedPlatform === \"all\") {\n return (\n <>\n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n metricsEnabled.push(metricKey);\n }\n } else {\n return

    {metricKey} was not found in cc_data

    ;\n }\n } else {\n return

    {metricName} not defined in metricData.json

    ;\n }\n })}\n\n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n } else if (jsDig([dashboard, \"spend\", \"raw\"], cc_data) > 0 && this.state.selectedPlatform !== \"all\") {\n return undefined\n } \n else {\n return

    No spend data.

    ;\n }\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n render() {\n const allPlatforms = Object.keys(jsDig([\"cc_data\"], this.props));\n const platformCount = allPlatforms.length - 1;\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n bing: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n const dashboard = this.props.selectedDashboard;\n let cc_data = this.props.cc_data[this.state.selectedPlatform]\n const sectionList = jsDig([\"metricsByDashboard\", \"ppc\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"ppc\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardsEnable = false;\n const dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n capitalized = capitalized == \"Bing\" ? \"Microsoft\" : capitalized;\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\" || platform == \"bing\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Overall + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n {dashboardOrder.map((dashboardSection, index) => {\n const sectionData = sectionList[dashboardSection.name];\n if (dashboardSection.enabled) {\n dashboardsEnable = true;\n return (\n \n {this.generateDashboardSection(dashboardSection, this.props.cc_data[this.state.selectedPlatform], dashboard, this.state.selectedPlatform)}\n \n );\n }\n })}\n {!dashboardsEnable &&\n (this.props.user_is_employee ? (\n

    You have not enabled any sections for this dashboard yet. Click the configure dashboard button above to set up your dashboard.

    \n ) : (\n

    No sections of this dashboard are currently enabled. Please contact your account representatives if you would like to this view.

    \n ))}\n \n );\n } else {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Overall + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n ;\n \n );\n }\n } else {\n return ;\n }\n }\n}\n\nexport default PPCDashboardOverall;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport BlueIndentedSection from \"dashboards/BlueIndentedSection\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTable from \"MetricTable\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport getNegative from \"utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase } from \"lodash-es\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\nclass PPCDashboardSearch extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedPlatform: \"all\",\n };\n }\n\n handlePlatform = (p) => {\n this.setState({ selectedPlatform: p });\n };\n\n generateDashboardSection(section, cc_data, dashboard, p) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (section.name) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n \n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n\n return (\n \n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"campaignGroups\":\n const groupOrder = this.props.campaign_group_order ? this.props.campaign_group_order : [];\n return (\n <>\n {groupOrder.map((group_id, index) => {\n let metricTitles = [];\n const campaignGroup = this.props.campaign_groups.find((group) => group.id == group_id);\n if (campaignGroup) {\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n \n
    \n );\n }\n })}\n \n );\n case \"spendAllocation\":\n let metricsEnabled = [];\n if (jsDig([dashboard, \"spend\", \"raw\"], cc_data) > 0 && this.state.selectedPlatform === \"all\") {\n return (\n <>\n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n metricsEnabled.push(metricKey);\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n } else if (jsDig([dashboard, \"spend\", \"raw\"], cc_data) > 0 && this.state.selectedPlatform !== \"all\") {\n return undefined\n }\n else return

    No spend data.

    ;\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n render() {\n const allPlatforms = Object.keys(jsDig([\"cc_data\"], this.props));\n const platformCount = allPlatforms.length - 1;\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n bing: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n const dashboard = this.props.selectedDashboard;\n let cc_data = this.props.cc_data[this.state.selectedPlatform];\n const sectionList = jsDig([\"metricsByDashboard\", \"search\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"search\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardsEnable = false;\n const dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n console.log(capitalized);\n capitalized = capitalized == \"Bing\" ? \"Microsoft\" : capitalized;\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\" || platform == \"bing\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Search + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n\n {dashboardOrder.map((dashboardSection, index) => {\n const sectionData = sectionList[dashboardSection.name];\n if (dashboardSection.enabled) {\n dashboardsEnable = true;\n return (\n \n {this.generateDashboardSection(dashboardSection, this.props.cc_data[this.state.selectedPlatform], dashboard, this.state.selectedPlatform)}\n \n );\n }\n })}\n {!dashboardsEnable &&\n (this.props.user_is_employee ? (\n

    You have not enabled any sections for this dashboard yet. Click the configure dashboard button above to set up your dashboard.

    \n ) : (\n

    No sections of this dashboard are currently enabled. Please contact your account representatives if you would like to this view.

    \n ))}\n \n );\n } else {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Search + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n ;\n \n );\n }\n } else {\n return ;\n }\n }\n}\n\nexport default PPCDashboardSearch;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport BlueIndentedSection from \"dashboards/BlueIndentedSection\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTable from \"MetricTable\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase } from \"lodash-es\";\nimport getNegative from \"utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\nclass PPCDashboardSocial extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedPlatform: \"all\",\n };\n }\n\n handlePlatform = (p) => {\n this.setState({ selectedPlatform: p });\n };\n\n generateDashboardSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (section.name) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n \n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n\n return (\n \n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"campaignGroups\":\n const groupOrder = this.props.campaign_group_order ? this.props.campaign_group_order : [];\n return (\n <>\n {groupOrder.map((group_id, index) => {\n let metricTitles = [];\n const campaignGroup = this.props.campaign_groups.find((group) => group.id == group_id);\n if (campaignGroup) {\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

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

    {metricName} not defined in metricData.json

    ;\n }\n })}\n \n \n \n
    \n );\n }\n })}\n \n );\n case \"spendAllocation\":\n let metricsEnabled = [];\n if (jsDig([dashboard, \"spend\", \"raw\"], cc_data) > 0) {\n return (\n <>\n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n metricsEnabled.push(metricKey);\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n {jsDig([\"platform_data\", \"tiktok_ads\", \"enabled\"], this.props) == true ? (\n

    *Device, Gender, Age, Hourly & Location charts do not currently include TikTok data

    \n ) : (\n <>\n )}\n \n );\n } else {\n return

    No spend data.

    ;\n }\n default:\n return

    {section.name} is not a valid section name for this dashboard

    ;\n }\n }\n }\n\n render() {\n const dashboard = this.props.selectedDashboard;\n let cc_data = this.props.cc_data[this.state.selectedPlatform];\n\n const allPlatforms = Object.keys(jsDig([\"cc_data\"], this.props));\n const platformCount = allPlatforms.length - 1;\n const uniquePlatforms = Array.from(Object.keys(jsDig([\"cc_data\"], this.props)));\n\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n bing: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n const sectionList = jsDig([\"metricsByDashboard\", \"social\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"social\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardsEnable = false;\n const dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n capitalized = capitalized == \"Bing\" ? \"Microsoft\" : capitalized;\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\" || platform == \"bing\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Social + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n\n {dashboardOrder.map((dashboardSection, index) => {\n const sectionData = sectionList[dashboardSection.name];\n if (dashboardSection.enabled) {\n dashboardsEnable = true;\n return (\n \n {this.generateDashboardSection(dashboardSection, cc_data, dashboard)}\n \n );\n }\n })}\n {!dashboardsEnable &&\n (this.props.user_is_employee ? (\n

    You have not enabled any sections for this dashboard yet. Click the configure dashboard button above to set up your dashboard.

    \n ) : (\n

    No sections of this dashboard are currently enabled. Please contact your account representatives if you would like to this view.

    \n ))}\n \n );\n } else {\n return(\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Social + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n ;\n \n )\n }\n } else {\n return ;\n }\n }\n}\n\nexport default PPCDashboardSocial;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport BlueIndentedSection from \"dashboards/BlueIndentedSection\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTable from \"MetricTable\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase } from \"lodash-es\";\nimport getNegative from \"utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\nclass PPCDashboardVideo extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedPlatform: \"google\",\n };\n }\n\n handlePlatform = (p) => {\n this.setState({ selectedPlatform: p });\n };\n\n generateDashboardSection(section, cc_data, dashboard, p) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (section.name) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n \n \n \n
    \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n\n return (\n \n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"campaignGroups\":\n const groupOrder = this.props.campaign_group_order ? this.props.campaign_group_order : [];\n return (\n <>\n {groupOrder.map((group_id, index) => {\n let metricTitles = [];\n const campaignGroup = this.props.campaign_groups.find((group) => group.id == group_id);\n if (campaignGroup) {\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricTitle = jsDig([metricName, \"name\", \"title\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n \n \n \n
    \n );\n }\n })}\n \n );\n case \"spendAllocation\":\n let metricsEnabled = [];\n if (jsDig([dashboard, \"spend\", \"raw\"], cc_data) > 0 && this.state.selectedPlatform === \"all\") {\n return (\n <>\n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n metricsEnabled.push(metricKey);\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n \n
    \n

    By Location

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

    No spend data.

    ;\n }\n default:\n return

    {section.name} is not a valid section name for this dashboard

    ;\n }\n }\n }\n\n render() {\n const allPlatforms = Object.keys(jsDig([\"cc_data\"], this.props));\n const platformCount = allPlatforms.length - 1;\n const uniquePlatforms = Array.from(Object.keys(jsDig([\"cc_data\"], this.props)));\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n bing: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n const dashboard = this.props.selectedDashboard;\n let cc_data = this.props.cc_data[this.state.selectedPlatform];\n\n const sectionList = jsDig([\"metricsByDashboard\", \"video\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"video\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardsEnable = false;\n const dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n console.log(capitalized);\n capitalized = capitalized == \"Bing\" ? \"Microsoft\" : capitalized;\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\" || platform == \"bing\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Video + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n\n {dashboardOrder.map((dashboardSection, index) => {\n const sectionData = sectionList[dashboardSection.name];\n if (dashboardSection.enabled) {\n dashboardsEnable = true;\n return (\n \n {this.generateDashboardSection(dashboardSection, this.props.cc_data[this.state.selectedPlatform], dashboard, this.state.selectedPlatform)}\n \n );\n }\n })}\n {!dashboardsEnable &&\n (this.props.user_is_employee ? (\n

    You have not enabled any sections for this dashboard yet. Click the configure dashboard button above to set up your dashboard.

    \n ) : (\n

    No sections of this dashboard are currently enabled. Please contact your account representatives if you would like to this view.

    \n ))}\n \n );\n } else {\n return (\n <>\n
    \n
    Select Platform:
    \n
    \n \n
    {svgList[this.state.selectedPlatform]}
    \n \n
      \n {Object.keys(this.props[\"cc_data\"])\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n this.handlePlatform(platform)}\n className={this.state.selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`Video + ${index}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n ;\n \n );\n }\n } else {\n return ;\n }\n }\n}\n\nexport default PPCDashboardVideo;\n","import React from 'react';\nimport Tab from 'react-bootstrap/Tab'\nimport Nav from 'react-bootstrap/Nav'\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PPCSummaryOverall from 'dashboards/PPCSummaryOverall'\nimport PPCSummarySearch from 'dashboards/PPCSummarySearch'\nimport PPCSummarySocial from 'dashboards/PPCSummarySocial'\nimport PPCSummaryDisplay from 'dashboards/PPCSummaryDisplay'\nimport PPCSummaryVideo from 'dashboards/PPCSummaryVideo'\n\nclass PPCSummary extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n tabLocation: \"\"\n }\n }\n\n changeSection(hashLoc = \"overall\") {\n let exportButton = $('.ppc-summary-export-pdf');\n let href = exportButton.attr(\"href\").split(\"§ion=\")[0];\n exportButton.attr(\"href\", href + \"§ion=\" + hashLoc);\n }\n\n componentDidMount() {\n let hashLoc = location.hash.replace(\"#\", \"\");\n if (hashLoc != \"\") {\n this.setState({tabLocation: hashLoc})\n this.changeSection(hashLoc);\n } else {\n location.hash = \"#overall\"\n this.setState({tabLocation: \"overall\"})\n this.changeSection();\n }\n }\n\n selectTab(key)\n {\n location.hash = \"#\" + key\n this.setState({tabLocation: key})\n this.changeSection(key);\n }\n\n render() {\n return (\n this.selectTab(k)}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nexport default PPCSummary;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport Metric from \"utils/Metric\";\n\nclass PPCSummaryDisplay extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeTable: \"ecommerce\",\n };\n }\n\n render() {\n const clients = Object.keys(this.props.metrics);\n const firstKey = clients[0];\n const metrics = Object.keys(this.props.metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n const leadgenList = this.props.client_list.filter((el) => el[\"account_type\"] == \"leadgen\").map((item) => item);\n const leadgenClients = leadgenList.map((item) => item.client_name);\n const ecommerceList = this.props.client_list.filter((el) => el[\"account_type\"] == \"ecommerce\").map((item) => item);\n const ecommerceClients = ecommerceList.map((item) => item.client_name);\n let totals = {\n leadgen: {},\n ecommerce: {},\n };\n\n leadgenClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"leadgen\"][metricName] ? (totals[\"leadgen\"][metricName] += mValue) : (totals[\"leadgen\"][metricName] = mValue);\n });\n });\n\n ecommerceClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"ecommerce\"][metricName] ? (totals[\"ecommerce\"][metricName] += mValue) : (totals[\"ecommerce\"][metricName] = mValue);\n });\n });\n\n totals[\"leadgen\"][\"rev_or_conv_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv\"] - totals[\"leadgen\"][\"rev_or_conv_ly\"]) / totals[\"leadgen\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"leadgen\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv_lm\"] - totals[\"leadgen\"][\"rev_or_conv_lmly\"]) / totals[\"leadgen\"][\"rev_or_conv_lmly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv\"] - totals[\"ecommerce\"][\"rev_or_conv_ly\"]) / totals[\"ecommerce\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv_lm\"] - totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) / totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) * 100;\n\n const changeTable = (table) => {\n this.setState({ activeTable: table });\n };\n return (\n <>\n
    \n
    \n

    Client Type:

    \n
    \n
    \n {\n changeTable(\"ecommerce\");\n }}>\n Ecommerce\n \n
    \n
    \n {\n changeTable(\"leadgen\");\n }}>\n Lead Gen\n \n
    \n
    \n
    \n
    \n
    \n
    \n {this.state.activeTable == \"ecommerce\" ? (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {ecommerceList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger \";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"ecommerce\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Revenue\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Revenue Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Revenue Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n ) : (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {leadgenList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"leadgen\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Conversions\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Conversions Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Conversions Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n )}\n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default PPCSummaryDisplay;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport Metric from \"utils/Metric\";\nimport { Button, Row, Col } from \"react-bootstrap\";\n\nclass PPCSummaryOverall extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeTable: \"ecommerce\",\n };\n }\n\n render() {\n const clients = Object.keys(this.props.metrics);\n const firstKey = clients[0];\n const metrics = Object.keys(this.props.metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n const leadgenList = this.props.client_list.filter((el) => el[\"account_type\"] == \"leadgen\").map((item) => item);\n const leadgenClients = leadgenList.map((item) => item.client_name);\n const ecommerceList = this.props.client_list.filter((el) => el[\"account_type\"] == \"ecommerce\").map((item) => item);\n const ecommerceClients = ecommerceList.map((item) => item.client_name);\n let totals = {\n leadgen: {},\n ecommerce: {},\n };\n\n leadgenClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"leadgen\"][metricName] ? (totals[\"leadgen\"][metricName] += mValue) : (totals[\"leadgen\"][metricName] = mValue);\n });\n });\n\n ecommerceClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"ecommerce\"][metricName] ? (totals[\"ecommerce\"][metricName] += mValue) : (totals[\"ecommerce\"][metricName] = mValue);\n });\n });\n\n totals[\"leadgen\"][\"rev_or_conv_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv\"] - totals[\"leadgen\"][\"rev_or_conv_ly\"]) / totals[\"leadgen\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"leadgen\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv_lm\"] - totals[\"leadgen\"][\"rev_or_conv_lmly\"]) / totals[\"leadgen\"][\"rev_or_conv_lmly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv\"] - totals[\"ecommerce\"][\"rev_or_conv_ly\"]) / totals[\"ecommerce\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv_lm\"] - totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) / totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) * 100;\n\n const changeTable = (table) => {\n this.setState({ activeTable: table });\n };\n return (\n <>\n
    \n
    \n

    Client Type:

    \n
    \n
    \n {\n changeTable(\"ecommerce\");\n }}>\n Ecommerce\n \n
    \n
    \n {\n changeTable(\"leadgen\");\n }}>\n Lead Gen\n \n
    \n
    \n
    \n
    \n
    \n
    \n {this.state.activeTable == \"ecommerce\" ? (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {ecommerceList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger \";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"ecommerce\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Revenue\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Revenue Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Revenue Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n ) : (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {leadgenList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"leadgen\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Conversions\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Conversions Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Conversions Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n )}\n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default PPCSummaryOverall;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport Metric from \"utils/Metric\";\n\nclass PPCSummarySearch extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeTable: \"ecommerce\",\n };\n }\n\n render() {\n const clients = Object.keys(this.props.metrics);\n const firstKey = clients[0];\n const metrics = Object.keys(this.props.metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n const leadgenList = this.props.client_list.filter((el) => el[\"account_type\"] == \"leadgen\").map((item) => item);\n const leadgenClients = leadgenList.map((item) => item.client_name);\n const ecommerceList = this.props.client_list.filter((el) => el[\"account_type\"] == \"ecommerce\").map((item) => item);\n const ecommerceClients = ecommerceList.map((item) => item.client_name);\n let totals = {\n leadgen: {},\n ecommerce: {},\n };\n\n leadgenClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"leadgen\"][metricName] ? (totals[\"leadgen\"][metricName] += mValue) : (totals[\"leadgen\"][metricName] = mValue);\n });\n });\n\n ecommerceClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"ecommerce\"][metricName] ? (totals[\"ecommerce\"][metricName] += mValue) : (totals[\"ecommerce\"][metricName] = mValue);\n });\n });\n\n totals[\"leadgen\"][\"rev_or_conv_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv\"] - totals[\"leadgen\"][\"rev_or_conv_ly\"]) / totals[\"leadgen\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"leadgen\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv_lm\"] - totals[\"leadgen\"][\"rev_or_conv_lmly\"]) / totals[\"leadgen\"][\"rev_or_conv_lmly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv\"] - totals[\"ecommerce\"][\"rev_or_conv_ly\"]) / totals[\"ecommerce\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv_lm\"] - totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) / totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) * 100;\n\n const changeTable = (table) => {\n this.setState({ activeTable: table });\n };\n return (\n <>\n
    \n
    \n

    Client Type:

    \n
    \n
    \n {\n changeTable(\"ecommerce\");\n }}>\n Ecommerce\n \n
    \n
    \n {\n changeTable(\"leadgen\");\n }}>\n Lead Gen\n \n
    \n
    \n
    \n
    \n
    \n
    \n {this.state.activeTable == \"ecommerce\" ? (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {ecommerceList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger \";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"ecommerce\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Revenue\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Revenue Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Revenue Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n ) : (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {leadgenList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"leadgen\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Conversions\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Conversions Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Conversions Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n )}\n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default PPCSummarySearch;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport Metric from \"utils/Metric\";\n\nclass PPCSummarySocial extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeTable: \"ecommerce\",\n };\n }\n\n render() {\n const clients = Object.keys(this.props.metrics);\n const firstKey = clients[0];\n const metrics = Object.keys(this.props.metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n const leadgenList = this.props.client_list.filter((el) => el[\"account_type\"] == \"leadgen\").map((item) => item);\n const leadgenClients = leadgenList.map((item) => item.client_name);\n const ecommerceList = this.props.client_list.filter((el) => el[\"account_type\"] == \"ecommerce\").map((item) => item);\n const ecommerceClients = ecommerceList.map((item) => item.client_name);\n let totals = {\n leadgen: {},\n ecommerce: {},\n };\n\n leadgenClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"leadgen\"][metricName] ? (totals[\"leadgen\"][metricName] += mValue) : (totals[\"leadgen\"][metricName] = mValue);\n });\n });\n\n ecommerceClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"ecommerce\"][metricName] ? (totals[\"ecommerce\"][metricName] += mValue) : (totals[\"ecommerce\"][metricName] = mValue);\n });\n });\n\n totals[\"leadgen\"][\"rev_or_conv_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv\"] - totals[\"leadgen\"][\"rev_or_conv_ly\"]) / totals[\"leadgen\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"leadgen\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv_lm\"] - totals[\"leadgen\"][\"rev_or_conv_lmly\"]) / totals[\"leadgen\"][\"rev_or_conv_lmly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv\"] - totals[\"ecommerce\"][\"rev_or_conv_ly\"]) / totals[\"ecommerce\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv_lm\"] - totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) / totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) * 100;\n\n const changeTable = (table) => {\n this.setState({ activeTable: table });\n };\n return (\n <>\n
    \n
    \n

    Client Type:

    \n
    \n
    \n {\n changeTable(\"ecommerce\");\n }}>\n Ecommerce\n \n
    \n
    \n {\n changeTable(\"leadgen\");\n }}>\n Lead Gen\n \n
    \n
    \n
    \n
    \n
    \n
    \n {this.state.activeTable == \"ecommerce\" ? (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {ecommerceList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger \";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"ecommerce\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Revenue\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Revenue Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Revenue Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n ) : (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {leadgenList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"leadgen\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Conversions\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Conversions Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Conversions Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n )}\n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default PPCSummarySocial\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport Metric from \"utils/Metric\";\n\nclass PPCSummaryVideo extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeTable: \"ecommerce\",\n };\n }\n\n render() {\n const clients = Object.keys(this.props.metrics);\n const firstKey = clients[0];\n const metrics = Object.keys(this.props.metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n const leadgenList = this.props.client_list.filter((el) => el[\"account_type\"] == \"leadgen\").map((item) => item);\n const leadgenClients = leadgenList.map((item) => item.client_name);\n const ecommerceList = this.props.client_list.filter((el) => el[\"account_type\"] == \"ecommerce\").map((item) => item);\n const ecommerceClients = ecommerceList.map((item) => item.client_name);\n let totals = {\n leadgen: {},\n ecommerce: {},\n };\n\n leadgenClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"leadgen\"][metricName] ? (totals[\"leadgen\"][metricName] += mValue) : (totals[\"leadgen\"][metricName] = mValue);\n });\n });\n\n ecommerceClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"ecommerce\"][metricName] ? (totals[\"ecommerce\"][metricName] += mValue) : (totals[\"ecommerce\"][metricName] = mValue);\n });\n });\n\n totals[\"leadgen\"][\"rev_or_conv_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv\"] - totals[\"leadgen\"][\"rev_or_conv_ly\"]) / totals[\"leadgen\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"leadgen\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"leadgen\"][\"rev_or_conv_lm\"] - totals[\"leadgen\"][\"rev_or_conv_lmly\"]) / totals[\"leadgen\"][\"rev_or_conv_lmly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv\"] - totals[\"ecommerce\"][\"rev_or_conv_ly\"]) / totals[\"ecommerce\"][\"rev_or_conv_ly\"]) * 100;\n totals[\"ecommerce\"][\"rev_or_conv_lm_yy\"] =\n ((totals[\"ecommerce\"][\"rev_or_conv_lm\"] - totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) / totals[\"ecommerce\"][\"rev_or_conv_lmly\"]) * 100;\n\n const changeTable = (table) => {\n this.setState({ activeTable: table });\n };\n return (\n <>\n
    \n
    \n

    Client Type:

    \n
    \n
    \n {\n changeTable(\"ecommerce\");\n }}>\n Ecommerce\n \n
    \n
    \n {\n changeTable(\"leadgen\");\n }}>\n Lead Gen\n \n
    \n
    \n
    \n
    \n
    \n
    \n {this.state.activeTable == \"ecommerce\" ? (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {ecommerceList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger \";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"ecommerce\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"$\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Revenue\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Revenue Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Revenue Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n ) : (\n \n \n \n \n {this.props.metric_list.map((metric) => {\n return (\n \n );\n })}\n \n \n \n {leadgenList.map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = this.props.metrics[client.client_name][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[\"leadgen\"][metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n if (metric.programmatic_name.includes(\"yy\")) {\n suffix = \"%\";\n precision = 0;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n suffix = value == 0 || value == Infinity || value == -Infinity ? \"\" : suffix;\n } else if (metric.programmatic_name.includes(\"rev_or_conv\")) {\n prefix = \"\";\n } else if (metric.programmatic_name.includes(\"proj_to_budget\")) {\n prefix = \"$\";\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"proj_to_kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name.includes(\"kpi_goal\")) {\n prefix = \"$\";\n precision = 2;\n } else {\n prefix = \"$\";\n }\n\n return (\n \n );\n })}\n \n \n
    Client\n {metric.display_name == \"Revenue or Conversions\" ? \"Conversions\" :\n metric.display_name == \"Revenue or Conversions Y/Y\" ? \"Conversions Y/Y\" :\n metric.display_name == \"Revenue or Conversions Y/Y Last Month\" ? \"Conversions Y/Y Last Month\" :\n metric.display_name}\n
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n )}\n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default PPCSummaryVideo;\n","import React from \"react\";\n\nexport default function PdfKPIMetricBlock(props) {\n const goodOrBadText = props.negative ? \"text-danger\" : \"text-success\";\n const goodOrBadBg = props.negative ? \"bg-danger\" : \"bg-success\";\n return (\n
    \n

    {props.metricName} (Y/Y)

    \n
    \n {\" \"}\n
    {props.metric}
    \n
    {props.yy}
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport ReactDOMServer from \"react-dom/server\";\n\nclass PdfKeywordRow extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n sortBy: \"diff\",\n sortOrderAsc: true,\n sortedKeywords: [],\n };\n }\n\n componentDidMount() {\n this.setState({ sortedKeywords: this.props.keywords });\n }\n\n render() {\n return (\n
    \n \n \n {this.state.sortedKeywords.map((keyword, i) => {\n let diffBackground = \"\";\n if (keyword.ranking_difference > 0) diffBackground = \"bg-success text-white\";\n else if (keyword.ranking_difference < 0) diffBackground = \"bg-danger text-white\";\n return (\n \n \n \n \n \n \n \n \n \n );\n })}\n \n
    {keyword.keyword}\n {keyword.serp_features.map((serp_feature) => {\n if (serp_feature == \"rel\") return ;\n if (serp_feature == \"rev\") return ;\n if (serp_feature == \"fsn\") return ;\n if (serp_feature == \"shp\") return ;\n if (serp_feature == \"stl\") return ;\n if (serp_feature == \"adt\") return ;\n if (serp_feature == \"adb\") return ;\n if (serp_feature == \"vid\") return ;\n if (serp_feature == \"img\") return ;\n if (serp_feature == \"geo\") return ;\n if (serp_feature == \"vib\") return ;\n if (serp_feature == \"new\") return ;\n if (serp_feature == \"twt\") return ;\n if (serp_feature == \"knw\") return ;\n if (serp_feature == \"kng\") return ;\n })}\n {keyword.start_date_ranking == 0 ? \"100+\" : }{keyword.end_date_ranking == 0 ? \"100+\" : }\n \n \n \n \n \n
    \n
    \n );\n }\n}\n\nexport default PdfKeywordRow;\n","import React, { useState, useEffect } from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\n\nexport default function PdfKeywordTable(props) {\n const [sortBy, setSortBy] = useState(props.keyword_sort);\n const [sortOrderAsc, setSortOrderAsc] = useState(props.keyword_sort_order_asc);\n const [sortedKeywords, setSortedKeywords] = useState([]);\n const sortKeywords = (by, initial = false) => {\n let kwCopy = initial ? props.keywords : [...sortedKeywords];\n let tempSortOrder = sortOrderAsc;\n if (by == sortBy && !initial) {\n tempSortOrder = !tempSortOrder;\n kwCopy.reverse();\n } else {\n tempSortOrder = initial ? sortOrderAsc : true;\n if (by == \"keyword\") {\n kwCopy.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n } else if (by == \"prevpos\") {\n kwCopy.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n } else if (by == \"currentpos\") {\n kwCopy.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n } else if (by == \"diff\") {\n kwCopy.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n } else if (by == \"cpc\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n } else if (by == \"volume\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n } else if (by == \"difficulty\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n }\n if (!tempSortOrder) {\n kwCopy.reverse();\n }\n }\n\n setSortBy(by);\n setSortOrderAsc(tempSortOrder);\n setSortedKeywords(kwCopy);\n };\n useEffect(() => {\n setSortedKeywords(props.keywords);\n sortKeywords(sortBy, true);\n });\n const sortUpHtml = ;\n const sortDownHtml = ;\n return (\n
    \n {!props.pdf && props.user_is_employee && (\n
    \n \n \n \n
    \n )}\n\n \n \n \n {props.metrics[\"metrics_data\"][\"keywordName\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordSerpFeatures\"] == \"1\" && }\n {props.metrics[\"metrics_data\"][\"keywordPreviousPosition\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordCurrentPosition\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordDifference\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordCostPerConversion\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordSearchVolume\"] == \"1\" && (\n \n )}\n\n {props.metrics[\"metrics_data\"][\"keywordDifficulty\"] == \"1\" && (\n \n )}\n\n {props.metrics[\"metrics_data\"][\"keywordLabel\"] == \"1\" && }\n {props.metrics[\"metrics_data\"][\"keywordUrl\"] == \"1\" && }\n \n \n \n {sortedKeywords.map((keyword, i) => {\n let diffBackground = \"\";\n if (keyword.ranking_difference > 0) diffBackground = \"bg-success text-white\";\n else if (keyword.ranking_difference < 0) diffBackground = \"bg-danger text-white\";\n return (\n \n {props.metrics[\"metrics_data\"][\"keywordName\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordSerpFeatures\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordPreviousPosition\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordCurrentPosition\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordDifference\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordCostPerConversion\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordSearchVolume\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordDifficulty\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordLabel\"] == \"1\" && (\n \n )}\n {props.metrics[\"metrics_data\"][\"keywordUrl\"] == \"1\" && (\n \n )}\n \n );\n })}\n \n
    sortKeywords(\"keyword\")} className=\" table-row-header table-row-header-pdf seo-table-row-header\">\n Keyword \n {sortBy == \"keyword\" ? sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n SERP Features sortKeywords(\"prevpos\")} scope=\"col\">\n Prev. Pos \n {sortBy == \"prevpos\" ? sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n sortKeywords(\"currentpos\")}>\n Current Pos \n {sortBy == \"currentpos\" ? sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n sortKeywords(\"diff\")}>\n Diff \n {sortBy == \"diff\" ? sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n sortKeywords(\"cpc\")}>\n CPC \n {sortBy == \"cpc\" ? sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n sortKeywords(\"volume\")}>\n Volume \n {sortBy == \"volume\" ? sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n sortKeywords(\"difficulty\")}>\n Difficulty \n {sortBy == \"difficulty\" ? sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n LabelRanking Page
    \n
    {keyword.keyword}
    \n
    \n
    \n {keyword.serp_features.map((serp_feature) => {\n if (serp_feature == \"rel\") return ;\n if (serp_feature == \"rev\") return ;\n if (serp_feature == \"fsn\") return ;\n if (serp_feature == \"shp\") return ;\n if (serp_feature == \"stl\") return ;\n if (serp_feature == \"adt\") return ;\n if (serp_feature == \"adb\") return ;\n if (serp_feature == \"vid\") return ;\n if (serp_feature == \"img\") return ;\n if (serp_feature == \"geo\") return ;\n if (serp_feature == \"vib\") return ;\n if (serp_feature == \"new\") return ;\n if (serp_feature == \"twt\") return ;\n if (serp_feature == \"knw\") return ;\n if (serp_feature == \"kng\") return ;\n })}\n
    \n
    \n
    \n {keyword.start_date_ranking == 0 ? \"100+\" : }\n
    \n
    \n
    \n {keyword.end_date_ranking == 0 ? \"100+\" : }\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n {keyword.tag &&\n keyword.tag.map((el, index) => {\n let string = el;\n if (index < keyword.tag.length - 1) string += \", \";\n return string;\n })}\n
    \n
    \n
    {keyword.ranking_page}
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport BlueIndentedSection from \"dashboards/BlueIndentedSection\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport KeywordBlock from \"dashboards/KeywordBlock\";\nimport KeywordTable from \"dashboards/KeywordTable\";\nimport MetricTable from \"MetricTable\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport getNegative from \"utils/getNegative\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport allMetrics from \"data/allMetrics.js\";\nimport KeywordImprovedDeclinedBlock from \"dashboards/KeywordImprovedDeclinedBlock\";\nimport DashboardSubheader from \"dashboards/DashboardSubheader\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dismissDataPullErrors from \"utils/dismissDataPullErrors\";\nimport { camelCase, capitalize, uniq } from \"lodash-es\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\nimport { Row, Col, OverlayTrigger, Tooltip } from \"react-bootstrap\";\n\nconst allMetricData = allMetrics();\n\nclass SEODashboard extends React.Component {\n constructor(props) {\n super(props);\n this.setSelectedDashboard = this.setSelectedDashboard.bind(this);\n this.state = {\n selectedDashboard: 0,\n showErrors: (jsDig([\"data_pull_errors\"], this.props.seo) && Object.keys(jsDig([\"data_pull_errors\"], this.props.seo)).length > 0 && this.props.user_is_employee) ? true : false\n };\n }\n\n pullInProgress() {\n return (\n
    \n
    \n
    \n \n
    \n
    \n A data pull is in progress.\n
    \n
    \n

    This page is not available while the data pull is in progress.

    \n Please check back later or\n {\n location.reload();\n }}>\n {\" \"}\n refresh \n \n the page.\n
    \n
    \n
    \n );\n }\n\n recalcInProgress() {\n return (\n
    \n
    \n
    \n \n
    \n
    \n Data is being recalculated.\n
    \n
    \n

    Your data pull has completed but data is recalculating

    \n Please be patient {this.props.user ? this.props.user.first_name : \"my guy\"} and check back later or\n {\n location.reload();\n }}>\n {\" \"}\n refresh \n \n the page.\n
    \n
    \n
    \n );\n };\n\n displayErrors() {\n return (\n
    \n
    \n
    \n There were errors on the last data pull\n
    \n
    \n {this.props.seo.data_pull_errors && Object.keys(this.props.seo.data_pull_errors).map((platform) => {\n const errorCounts = this.props.seo.data_pull_errors[platform].reduce((map, val) => { map[val] = (map[val] || 0) + 1; return map }, {});\n return (\n \n
    \n

    {capitalize(platform)}:

    \n
      \n {uniq(this.props.seo.data_pull_errors[platform]).map((errorMessage, index) => {\n const length = errorCounts[errorMessage];\n return (\n
    • - {length > 1 ? `(${length}x) ` : ' '}{errorMessage}
    • \n )\n })}\n
    \n
    \n
    \n )\n })}\n
    \n {\n dismissDataPullErrors(jsDig([\"id\"], this.props.seo), \"seo\")\n $(e.target).closest('.spin-shell').fadeOut();\n setTimeout(() => {\n this.setState({ showErrors: false })\n }, 1000)\n }}>\n Dismiss\n \n {\n dismissDataPullErrors(jsDig([\"id\"], this.props.seo), \"seo\")\n }}>\n Go to configs\n \n
    \n
    \n
    \n
    \n )\n }\n\n generateDashboardSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"seo\", Object.keys(section.metrics_data));\n switch (section.name) {\n case \"goalsAndProjections\":\n let goals = this.props.seo.goals;\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey, true);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n \n \n \n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n\n return (\n <>\n {metricKey == \"average_position\" ? (\n \n
    \n Average Position is the monthly average of all your rankings for the keywords in your campaign. For any keyword where you\n aren’t ranking, it will be calculated as a ranking of 100.{\" \"}\n
    \n \n }>\n
    \n }\n yy={}\n negative={negative}\n key={index}\n />\n
    \n \n ) : (\n }\n yy={}\n negative={negative}\n key={index}\n />\n )}\n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"landingPageBreakdown\":\n const groupOrder = this.props.seo.landing_page_group_order ? this.props.seo.landing_page_group_order : [];\n return (\n <>\n {groupOrder.map((group_id, index) => {\n let metricTitles = [];\n const landingPageGroup = this.props.seo.landing_page_groups.find((group) => group.id == group_id);\n return (\n \n

    {landingPageGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n // metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return
    ;\n } else {\n metricTitles.push(metricKey);\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n \n
    \n );\n })}\n \n );\n case \"backlinks\":\n return (\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n );\n case \"keywordGroups\":\n const keywordGroupOrder = this.props.seo.keyword_groups_order ? this.props.seo.keyword_groups_order : [];\n return (\n <>\n {keywordGroupOrder.map((group_id, index) => {\n // let metricTitles = jsDig([group_id, \"metrics_2_years\"], this.props.seo) ? Object.keys(jsDig([group_id, \"metrics_2_years\"], cc_data)) : [];\n const keywordGroup = this.props.seo.keyword_groups.find((group) => group.id == group_id);\n console.log(keywordGroup)\n let metricTitle = this.props.seo.keyword_groups.map((group) => group.name)[index];\n let metricTitles = [];\n metricTitles.push(metricTitle);\n return (\n
    \n \n

    {keywordGroup ? keywordGroup.name : \"\"}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n if (jsDig([0, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for landing page group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n \n \n \n
    \n
    \n );\n })}\n \n );\n case \"keywordSummary\":\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n case \"keywordRankings\":\n return (\n \n \n el.name == \"keywordRankings\")}\n keyword_sort_order_asc={this.props.keyword_sort_order_asc}\n keyword_sort={this.props.keyword_sort}\n user_is_employee={this.props.user_is_employee}\n />\n \n \n );\n\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n setSelectedDashboard(id) {\n this.setState({ selectedDashboard: id });\n }\n\n render() {\n const dashboard = this.state.selectedDashboard;\n let cc_data = this.props.cc_data;\n\n const dashboards = [{ name: \"SEO: Overall\", id: 0 }, ...this.props.seo.landing_page_groups.map((group) => ({ name: group.name, id: group.id }))];\n const sectionList = jsDig([\"metricsByDashboard\", \"seo\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"seo\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardsEnable = false;\n const seoPulling =\n (jsDig([\"data_pull_status\", \"google_data_pull\"], this.props.seo) && jsDig([\"data_pull_status\", \"google_data_pull\"], this.props.seo).length > 0) ||\n (jsDig([\"data_pull_status\", \"search_console_data_pull\"], this.props.seo) && jsDig([\"data_pull_status\", \"search_console_data_pull\"], this.props.seo).length > 0) ||\n (jsDig([\"data_pull_status\", \"semrush_data_pull\"], this.props.seo) && jsDig([\"data_pull_status\", \"semrush_data_pull\"], this.props.seo).length > 0);\n\n const seoRecalculating = (jsDig([\"data_pull_status\", \"recalculation\"], this.props.seo) && jsDig([\"data_pull_status\", \"recalculation\"], this.props.seo).length > 0)\n\n let dashboardOrder =\n jsDig([dashboard], this.props.seo.dashboard_order) && jsDig([dashboard], this.props.seo.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.seo.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n return {\n name: sectionName,\n enabled: true,\n metrics_data: Object.keys(defaultMetrics[sectionName]).reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n if (this.props.enabled) {\n if (jsDig([this.state.selectedDashboard, \"date\"], cc_data)) {\n return (\n <>\n \n\n {seoPulling ? (\n this.pullInProgress()\n ) : seoRecalculating ? (\n this.recalcInProgress()\n ) : this.state.showErrors ? (\n this.displayErrors()\n ) : (\n <>\n {dashboardOrder.map((dashboardSection, index) => {\n const sectionData = sectionList[dashboardSection.name];\n if (dashboardSection.enabled) {\n dashboardsEnable = true;\n return (\n \n {this.generateDashboardSection(dashboardSection, cc_data, this.state.selectedDashboard)}\n \n );\n }\n })}\n {!dashboardsEnable &&\n (this.props.user_is_employee ? (\n

    You have not enabled any sections for this dashboard yet. Click the configure dashboard button above to set up your dashboard.

    \n ) : (\n

    No sections of this dashboard are currently enabled. Please contact your account representatives if you would like to this view.

    \n ))}\n \n )}\n \n );\n } else {\n return (\n <>\n \n \n \n );\n }\n } else {\n return ;\n }\n }\n}\n\nexport default SEODashboard;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport getCurrencyDetails from \"utils/getCurrencyDetails\";\n\nclass SEOSummary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n activeTable: \"ecommerce\",\n };\n }\n\n render() {\n let clients = Object.keys(this.props.metrics);\n const firstKey = clients[0];\n const metrics = Object.keys(this.props.metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n const leadgenList = this.props.client_list.filter((el) => el[\"account_type\"] == \"leadgen\").map((item) => item);\n const leadgenClients = leadgenList.map((item) => item.client_name);\n const ecommerceList = this.props.client_list.filter((el) => el[\"account_type\"] == \"ecommerce\").map((item) => item);\n const ecommerceClients = ecommerceList.map((item) => item.client_name);\n let totals = {\n leadgen: {},\n ecommerce: {},\n };\n\n leadgenClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"leadgen\"][metricName] ? (totals[\"leadgen\"][metricName] += mValue) : (totals[\"leadgen\"][metricName] = mValue);\n });\n });\n\n ecommerceClients.map((client) => {\n metrics.map((metricName) => {\n let mValue = this.props.metrics[client][metricName];\n totals[\"ecommerce\"][metricName] ? (totals[\"ecommerce\"][metricName] += mValue) : (totals[\"ecommerce\"][metricName] = mValue);\n });\n });\n\n totals[\"leadgen\"][\"revenue_mtd_yy\"] =\n ((totals[\"leadgen\"][\"revenue_mtd\"] - totals[\"leadgen\"][\"revenue_mtd_last_year\"]) / totals[\"leadgen\"][\"revenue_mtd_last_year\"]) * 100;\n totals[\"leadgen\"][\"revenue_this_month_yy\"] =\n ((totals[\"leadgen\"][\"revenue_this_month_projected\"] - totals[\"leadgen\"][\"revenue_this_month_last_year\"]) /\n totals[\"leadgen\"][\"revenue_this_month_last_year\"]) *\n 100;\n totals[\"leadgen\"][\"traffic_mtd_yy\"] =\n ((totals[\"leadgen\"][\"traffic_mtd\"] - totals[\"leadgen\"][\"traffic_mtd_last_year\"]) / totals[\"leadgen\"][\"traffic_mtd_last_year\"]) * 100;\n totals[\"leadgen\"][\"traffic_this_month_yy\"] =\n ((totals[\"leadgen\"][\"traffic_this_month_projected\"] - totals[\"leadgen\"][\"traffic_this_month_last_year\"]) /\n totals[\"leadgen\"][\"traffic_this_month_last_year\"]) *\n 100;\n\n console.log(totals)\n\n totals[\"ecommerce\"][\"revenue_mtd_yy\"] =\n ((totals[\"ecommerce\"][\"revenue_mtd\"] - totals[\"ecommerce\"][\"revenue_mtd_last_year\"]) / totals[\"ecommerce\"][\"revenue_mtd_last_year\"]) * 100;\n\n console.log(totals)\n\n totals[\"ecommerce\"][\"revenue_this_month_yy\"] =\n ((totals[\"ecommerce\"][\"revenue_this_month_projected\"] - totals[\"ecommerce\"][\"revenue_this_month_last_year\"]) /\n totals[\"ecommerce\"][\"revenue_this_month_last_year\"]) * 100;\n\n totals[\"ecommerce\"][\"traffic_mtd_yy\"] =\n ((totals[\"ecommerce\"][\"traffic_mtd\"] - totals[\"ecommerce\"][\"traffic_mtd_last_year\"]) / totals[\"ecommerce\"][\"traffic_mtd_last_year\"]) * 100;\n\n totals[\"ecommerce\"][\"traffic_this_month_yy\"] =\n ((totals[\"ecommerce\"][\"traffic_this_month_projected\"] - totals[\"ecommerce\"][\"traffic_this_month_last_year\"]) /\n totals[\"ecommerce\"][\"traffic_this_month_last_year\"]) * 100;\n\n const changeTable = (table) => {\n this.setState({ activeTable: table });\n };\n\n return (\n <>\n
    \n
    \n

    Client Type:

    \n
    \n
    \n {\n changeTable(\"ecommerce\");\n }}>\n Ecommerce\n \n
    \n
    \n {\n changeTable(\"leadgen\");\n }}>\n Lead Gen\n \n
    \n
    \n
    \n
    \n
    \n
    \n {this.state.activeTable == \"ecommerce\" ? (\n \n \n \n \n \n \n \n \n \n \n \n {[1, 2, 3, 4].map((index) => {\n return (\n \n \n \n \n \n );\n })}\n \n \n \n {ecommerceClients.map((clientName) => {\n return (\n \n \n {[\n \"revenue_mtd\",\n \"revenue_mtd_last_year\",\n \"revenue_mtd_yy\",\n \"revenue_this_month_projected\",\n \"revenue_this_month_last_year\",\n \"revenue_this_month_yy\",\n \"traffic_mtd\",\n \"traffic_mtd_last_year\",\n \"traffic_mtd_yy\",\n \"traffic_this_month_projected\",\n \"traffic_this_month_last_year\",\n \"traffic_this_month_yy\",\n ].map((metricName) => {\n let className = \"\";\n let value = this.props.metrics[clientName][metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\";\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n }\n return (\n \n );\n })}\n \n );\n })}\n \n \n {[\n \"revenue_mtd\",\n \"revenue_mtd_last_year\",\n \"revenue_mtd_yy\",\n \"revenue_this_month_projected\",\n \"revenue_this_month_last_year\",\n \"revenue_this_month_yy\",\n \"traffic_mtd\",\n \"traffic_mtd_last_year\",\n \"traffic_mtd_yy\",\n \"traffic_this_month_projected\",\n \"traffic_this_month_last_year\",\n \"traffic_this_month_yy\",\n ].map((metricName) => {\n let className = \"\";\n let value = totals[\"ecommerce\"][metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\";\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n }\n return (\n \n );\n })}\n \n \n
    \n Client\n \n
    Revenue {this.props.this_month} MTD
    \n
    \n
    Revenue {this.props.this_month} Y/Y
    \n
    \n
    Organic Traffic {this.props.this_month} MTD
    \n
    \n
    Organic Traffic {this.props.this_month} Projected Y/Y
    \n
    \n {this.props.date.substring(0, 4)}\n \n {parseInt(this.props.date.substring(0, 4)) - 1}\n \n Y/Y\n
    \n {clientName}\n \n {value != 0 ? (\n metricName.includes(\"yy\") ? (\n \n ) : metricName.includes(\"revenue\") ? (\n \n ) : (\n \n )\n ) : (\n <>\n )}\n
    \n TOTALS\n \n {value != 0 ? (\n metricName.includes(\"yy\") ? (\n \n ) : metricName.includes(\"revenue\") ? (\n \n ) : (\n \n )\n ) : (\n <>\n )}\n
    \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n {[1, 2, 3, 4].map((index) => {\n return (\n \n \n \n \n \n );\n })}\n \n \n \n {leadgenClients.map((clientName) => {\n return (\n \n \n {[\n \"revenue_mtd\",\n \"revenue_mtd_last_year\",\n \"revenue_mtd_yy\",\n \"revenue_this_month_projected\",\n \"revenue_this_month_last_year\",\n \"revenue_this_month_yy\",\n \"traffic_mtd\",\n \"traffic_mtd_last_year\",\n \"traffic_mtd_yy\",\n \"traffic_this_month_projected\",\n \"traffic_this_month_last_year\",\n \"traffic_this_month_yy\",\n ].map((metricName) => {\n let className = \"\";\n let value = this.props.metrics[clientName][metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\";\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n }\n return (\n \n );\n })}\n \n );\n })}\n \n \n {[\n \"revenue_mtd\",\n \"revenue_mtd_last_year\",\n \"revenue_mtd_yy\",\n \"revenue_this_month_projected\",\n \"revenue_this_month_last_year\",\n \"revenue_this_month_yy\",\n \"traffic_mtd\",\n \"traffic_mtd_last_year\",\n \"traffic_mtd_yy\",\n \"traffic_this_month_projected\",\n \"traffic_this_month_last_year\",\n \"traffic_this_month_yy\",\n ].map((metricName) => {\n let className = \"\";\n let value = totals[\"leadgen\"][metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\";\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n className = value == 0 || value == Infinity || value == -Infinity ? \"\" : className;\n }\n return (\n \n );\n })}\n \n \n
    \n Client\n \n
    Conversions {this.props.this_month} MTD
    \n
    \n
    Conversions {this.props.this_month} Y/Y
    \n
    \n
    Organic Traffic {this.props.this_month} MTD
    \n
    \n
    Organic Traffic {this.props.this_month} Projected Y/Y
    \n
    \n {this.props.date.substring(0, 4)}\n \n {parseInt(this.props.date.substring(0, 4)) - 1}\n \n Y/Y\n
    \n {clientName}\n \n {value != 0 ? (\n metricName.includes(\"yy\") ? (\n \n ) : metricName.includes(\"revenue\") ? (\n \n ) : (\n \n )\n ) : (\n <>\n )}\n
    \n TOTALS\n \n {value != 0 ? (\n metricName.includes(\"yy\") ? (\n \n ) : metricName.includes(\"revenue\") ? (\n \n ) : (\n \n )\n ) : (\n <>\n )}\n
    \n )}\n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default SEOSummary;\n","import React from 'react';\n\nclass ServiceDisabled extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n let topText = \"\", leftBullets = \"\", rightBullets = \"\", indentClass = \"styled-indent-blue\", btnClass = \"btn-info\";\n switch(this.props.service) {\n case \"seo\":\n indentClass = \"styled-indent-green\";\n btnClass = \"btn-success\";\n topText = \"You aren't currently signed up for SEO, but we can change that!\";\n leftBullets = [\n \"Increased SEO Revenue 105% in the past year for our clients.\",\n \"We have clients ranking #3 for \\\"running shoes \\\", #1 for \\\"vaporizers\\\", #2 for \\\"jump rope\\\", #1 for \\\"christmas ornaments\\\", and more!\",\n \"Get the same level of service you've come to expect from the same team. Less agencies to manage!\",\n \"Staff of veterans with many years of experience who have scaled accounts for reputable brands.\"\n ];\n rightBullets = [\n \"SEO consulting (we'll tell you exactly what to do)\",\n \"Full service execution (content writing, light development, on-page optimizations)\",\n \"Keyword tracking & management\",\n \"Reporting\"\n ];\n break;\n case \"overall\":\n topText = \"You aren't currently signed up for PPC, but we can change that!\";\n leftBullets = [\n \"Increased PPC Revenue 105% in the past year for our clients.\",\n \"Get the same level of service you've come to expect from the same team. Less agencies to manage!\",\n \"Staff of veterans with many years of experience who have scaled accounts for reputable brands.\"\n ];\n rightBullets = [\n \"Ads managed primarily through Google Ads and Microsoft Ads\",\n \"Full service management (structure, bids, ad copy, etc.)\",\n \"Regular communication\",\n \"Reporting\"\n ];\n break;\n case \"search\":\n topText = \"You aren't currently signed up for paid search, but we can change that!\";\n leftBullets = [\n \"Increased PPC Revenue 105% in the past year for our clients.\",\n \"Get the same level of service you've come to expect from the same team. Less agencies to manage!\",\n \"Staff of veterans with many years of experience who have scaled accounts for reputable brands.\"\n ];\n rightBullets = [\n \"Ads managed through Google Ads and Microsoft Ads\",\n \"Full service management (structure, bids, ad copy, etc.)\",\n \"Regular communication\",\n \"Reporting\"\n ];\n break;\n case \"social\":\n topText = \"You aren't currently signed up for paid social, but we can change that!\";\n leftBullets = [\n \"Increased PPC Revenue 105% in the past year for our clients.\",\n \"Get the same level of service you've come to expect from the same team. Less agencies to manage!\",\n \"Staff of veterans with many years of experience who have scaled accounts for reputable brands.\"\n ];\n rightBullets = [\n \"Ads managed through Facebook Ads\",\n \"Account structure management\",\n \"Budget & bidding management\",\n \"Regular communication\",\n \"Reporting\",\n <>Creative needs to be supplied by client\n ];\n break;\n case \"display\":\n topText = \"You aren't currently signed up for display ads, but we can change that!\";\n leftBullets = [\n \"Increased PPC Revenue 105% in the past year for our clients.\",\n \"Get the same level of service you've come to expect from the same team. Less agencies to manage!\",\n \"Staff of veterans with many years of experience who have scaled accounts for reputable brands.\"\n ];\n rightBullets = [\n \"Ads managed through Google Ads\",\n \"Account structure management\",\n \"Budget & bidding management\",\n \"Regular communication\",\n \"Reporting\",\n \"Brand lift studies and a true understanding of value for display\",\n <>Creative needs to be supplied by client\n ];\n break;\n case \"video\":\n topText = \"You aren't currently signed up for video ads, but we can change that!\";\n leftBullets = [\n \"Increased PPC Revenue 105% in the past year for our clients.\",\n \"Get the same level of service you've come to expect from the same team. Less agencies to manage!\",\n \"Staff of veterans with many years of experience who have scaled accounts for reputable brands.\"\n ];\n rightBullets = [\n \"Ads managed through Google Ads (Youtube)\",\n \"Account structure management\",\n \"Budget & bidding management\",\n \"Regular communication\",\n \"Reporting\",\n \"Brand lift studies and a true understanding of value for video\",\n <>Creative needs to be supplied by client\n ];\n break;\n }\n if (this.props.organizationName === \"Digital Position\") {\n if (!this.props.userIsEmployee) {\n return (\n
    \n
    \n
    \n
    \n
    {topText}
    \n

    Reach out to your team and we'll be happy to point you in the right direction!

    \n See My Team\n
    \n
    \n
    \n
    Why sign up?
    \n
      \n {\n leftBullets.map((bullet, index) => {\n return(\n
    • {bullet}
    • \n )\n })\n }\n
    \n
    \n
    \n
    What you'll get:
    \n
      \n {\n rightBullets.map((bullet, index) => {\n return(\n
    • {bullet}
    • \n )\n })\n }\n
    \n
    \n
    \n
    \n
    \n
    \n )\n } else {\n let serviceName = \"\";\n switch(this.props.service) {\n case \"seo\":\n serviceName = \"SEO\";\n break;\n case \"overall\":\n serviceName = \"PPC\";\n break;\n case \"search\":\n serviceName = \"Search\";\n break;\n case \"social\":\n serviceName = \"Social\";\n break;\n case \"display\":\n serviceName = \"Display\";\n break;\n case \"video\":\n serviceName = \"Video\";\n break;\n }\n return (\n
    \n
    \n
    \n
    \n
    This client doesn't have {serviceName} enabled.
    \n

    If you'd like to enable it, please change their configuration settings.

    \n Account Configuration\n
    \n
    \n
    \n
    \n )\n }\n } else {\n let serviceName = \"\";\n switch(this.props.service) {\n case \"seo\":\n serviceName = \"SEO\";\n break;\n case \"overall\":\n serviceName = \"PPC\";\n break;\n case \"search\":\n serviceName = \"Search\";\n break;\n case \"social\":\n serviceName = \"Social\";\n break;\n case \"display\":\n serviceName = \"Display\";\n break;\n case \"video\":\n serviceName = \"Video\";\n break;\n }\n return (\n
    \n
    \n
    \n
    \n
    This client doesn't have {serviceName} enabled.
    \n

    If you'd like to enable it, please reach out to your account manager.

    \n\n
    \n
    \n
    \n
    \n )\n }\n }\n\n}\n\nexport default ServiceDisabled;\n","export default () => {\n let allDashboards = [\"seo\", \"ppc\", \"search\", \"social\", \"display\", \"video\"];\n let allSeoDashboards = [\"seo\"];\n let allPpcDashboards = [\"ppc\", \"search\", \"social\", \"display\", \"video\"];\n let allMetrics = {};\n\n let metricData = require(\"data/metricData.json\");\n\n let sectionData = require(\"data/sectionData.json\");\n\n let metricsByDashboard = {\n seo: {\n sections: {\n goalsAndProjections: sectionData.goalsAndProjections,\n primaryKpiCharts: sectionData.primaryKpiCharts,\n primaryKpiTables: sectionData.primaryKpiTables,\n allKpisVsPreviousYear: sectionData.allKpisVsPreviousYear,\n landingPageBreakdown: sectionData.landingPageBreakdown,\n backlinks: sectionData.backlinks,\n keywordGroups: sectionData.keywordGroups,\n keywordSummary: sectionData.keywordSummary,\n keywordRankings: sectionData.keywordRankings,\n },\n metrics: {\n goalsAndProjections: {\n traffic: metricData.traffic,\n conversions: metricData.conversions,\n revenue: metricData.revenue,\n cvr: metricData.cvr,\n aov: metricData.aov,\n gscClicks: metricData.gscClicks,\n gscImpressions: metricData.gscImpressions,\n searchVisibility: metricData.searchVisibility,\n topThreeKeywords: metricData.topThreeKeywords,\n topThreeKeywordsPercentage: metricData.topThreeKeywordsPercentage,\n topTenKeywords: metricData.topTenKeywords,\n topTenKeywordsPercentage: metricData.topTenKeywordsPercentage,\n topTwentyKeywords: metricData.topTwentyKeywords,\n topTwentyKeywordsPercentage: metricData.topTwentyKeywordsPercentage,\n },\n primaryKpiCharts: {\n traffic: metricData.traffic,\n conversions: metricData.conversions,\n revenue: metricData.revenue,\n cvr: metricData.cvr,\n aov: metricData.aov,\n gscClicks: metricData.gscClicks,\n gscImpressions: metricData.gscImpressions,\n searchVisibility: metricData.searchVisibility,\n topThreeKeywords: metricData.topThreeKeywords,\n topThreeKeywordsPercentage: metricData.topThreeKeywordsPercentage,\n topTenKeywords: metricData.topTenKeywords,\n topTenKeywordsPercentage: metricData.topTenKeywordsPercentage,\n topTwentyKeywords: metricData.topTwentyKeywords,\n topTwentyKeywordsPercentage: metricData.topTwentyKeywordsPercentage,\n },\n primaryKpiTables: {\n traffic: metricData.traffic,\n conversions: metricData.conversions,\n revenue: metricData.revenue,\n cvr: metricData.cvr,\n aov: metricData.aov,\n gscClicks: metricData.gscClicks,\n gscImpressions: metricData.gscImpressions,\n searchVisibility: metricData.searchVisibility,\n topThreeKeywords: metricData.topThreeKeywords,\n topThreeKeywordsPercentage: metricData.topThreeKeywordsPercentage,\n topTenKeywords: metricData.topTenKeywords,\n topTenKeywordsPercentage: metricData.topTenKeywordsPercentage,\n topTwentyKeywords: metricData.topTwentyKeywords,\n topTwentyKeywordsPercentage: metricData.topTwentyKeywordsPercentage,\n },\n allKpisVsPreviousYear: {\n traffic: metricData.traffic,\n bounceRate: metricData.bounceRate,\n gscClicks: metricData.gscClicks,\n gscImpressions: metricData.gscImpressions,\n engagedSessions: metricData.engagedSessions,\n conversions: metricData.conversions,\n revenue: metricData.revenue,\n cvr: metricData.cvr,\n aov: metricData.aov,\n searchVisibility: metricData.searchVisibility,\n averagePosition: metricData.averagePosition,\n topThreeKeywords: metricData.topThreeKeywords,\n topThreeKeywordsPercentage: metricData.topThreeKeywordsPercentage,\n topTenKeywords: metricData.topTenKeywords,\n topTenKeywordsPercentage: metricData.topTenKeywordsPercentage,\n topTwentyKeywords: metricData.topTwentyKeywords,\n topTwentyKeywordsPercentage: metricData.topTwentyKeywordsPercentage,\n },\n landingPageBreakdown: {\n traffic: metricData.traffic,\n bounceRate: metricData.bounceRate,\n conversions: metricData.conversions,\n revenue: metricData.revenue,\n cvr: metricData.cvr,\n aov: metricData.aov,\n searchVisibility: metricData.searchVisibility,\n averagePosition: metricData.averagePosition,\n topThreeKeywords: metricData.topThreeKeywords,\n topThreeKeywordsPercentage: metricData.topThreeKeywordsPercentage,\n topTenKeywords: metricData.topTenKeywords,\n topTenKeywordsPercentage: metricData.topTenKeywordsPercentage,\n topTwentyKeywords: metricData.topTwentyKeywords,\n topTwentyKeywordsPercentage: metricData.topTwentyKeywordsPercentage,\n },\n backlinks: {\n totalBacklinks: metricData.totalBacklinks,\n referringIps: metricData.referringIps,\n referringDomains: metricData.referringDomains,\n authorityScore: metricData.authorityScore,\n },\n keywordGroups: {\n traffic: metricData.traffic,\n },\n keywordSummary: {\n keywordsImproved: metricData.keywordsImproved,\n keywordsDeclined: metricData.keywordsDeclined,\n topThreeKeywords: metricData.topThreeKeywords,\n topThreeKeywordsPercentage: metricData.topThreeKeywordsPercentage,\n topTenKeywords: metricData.topTenKeywords,\n topTenKeywordsPercentage: metricData.topTenKeywordsPercentage,\n topTwentyKeywords: metricData.topTwentyKeywords,\n topTwentyKeywordsPercentage: metricData.topTwentyKeywordsPercentage,\n },\n keywordRankings: {\n keywordName: metricData.keywordName,\n keywordSerpFeatures: metricData.keywordSerpFeatures,\n keywordPreviousPosition: metricData.keywordPreviousPosition,\n keywordCurrentPosition: metricData.keywordCurrentPosition,\n keywordDifference: metricData.keywordDifference,\n keywordCostPerConversion: metricData.keywordCostPerConversion,\n keywordSearchVolume: metricData.keywordSearchVolume,\n keywordLabel: metricData.keywordLabel,\n keywordDifficulty: metricData.keywordDifficulty,\n keywordUrl: metricData.keywordUrl,\n },\n },\n defaults: {\n ecommerce: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n traffic: metricData.traffic,\n revenue: metricData.revenue,\n },\n primaryKpiTables: {\n traffic: metricData.traffic,\n revenue: metricData.revenue,\n cvr: metricData.cvr,\n aov: metricData.aov,\n },\n allKpisVsPreviousYear: {\n traffic: metricData.traffic,\n bounceRate: metricData.bounceRate,\n conversions: metricData.conversions,\n revenue: metricData.revenue,\n cvr: metricData.cvr,\n aov: metricData.aov,\n searchVisibility: metricData.searchVisibility,\n },\n landingPageBreakdown: {\n traffic: metricData.traffic,\n },\n backlinks: {\n totalBacklinks: metricData.totalBacklinks,\n referringIps: metricData.referringIps,\n referringDomains: metricData.referringDomains,\n authorityScore: metricData.authorityScore,\n },\n keywordGroups: {\n traffic: metricData.traffic,\n },\n keywordSummary: {\n keywordsImproved: metricData.keywordsImproved,\n keywordsDeclined: metricData.keywordsDeclined,\n topThreeKeywords: metricData.topThreeKeywords,\n topThreeKeywordsPercentage: metricData.topThreeKeywordsPercentage,\n topTenKeywords: metricData.topTenKeywords,\n topTenKeywordsPercentage: metricData.topTenKeywordsPercentage,\n topTwentyKeywords: metricData.topTwentyKeywords,\n topTwentyKeywordsPercentage: metricData.topTwentyKeywordsPercentage,\n },\n keywordRankings: {\n keywordName: metricData.keywordName,\n keywordPreviousPosition: metricData.keywordPreviousPosition,\n keywordCurrentPosition: metricData.keywordCurrentPosition,\n keywordDifference: metricData.keywordDifference,\n keywordDifficulty: metricData.keywordDifficulty,\n keywordSearchVolume: metricData.keywordSearchVolume,\n keywordUrl: metricData.keywordUrl,\n },\n },\n leadgen: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n traffic: metricData.traffic,\n conversions: metricData.conversions,\n },\n primaryKpiTables: {\n traffic: metricData.traffic,\n conversions: metricData.conversions,\n cvr: metricData.cvr,\n },\n allKpisVsPreviousYear: {\n traffic: metricData.traffic,\n gscImpressions: metricData.gscImpressions,\n conversions: metricData.conversions,\n cvr: metricData.cvr,\n searchVisibility: metricData.searchVisibility,\n },\n landingPageBreakdown: {\n traffic: metricData.traffic,\n },\n backlinks: {\n totalBacklinks: metricData.totalBacklinks,\n referringIps: metricData.referringIps,\n referringDomains: metricData.referringDomains,\n authorityScore: metricData.authorityScore,\n },\n keywordGroups: {\n traffic: metricData.traffic,\n },\n keywordSummary: {\n keywordsImproved: metricData.keywordsImproved,\n keywordsDeclined: metricData.keywordsDeclined,\n topThreeKeywords: metricData.topThreeKeywords,\n topThreeKeywordsPercentage: metricData.topThreeKeywordsPercentage,\n topTenKeywords: metricData.topTenKeywords,\n topTenKeywordsPercentage: metricData.topTenKeywordsPercentage,\n topTwentyKeywords: metricData.topTwentyKeywords,\n topTwentyKeywordsPercentage: metricData.topTwentyKeywordsPercentage,\n },\n keywordRankings: {\n keywordName: metricData.keywordName,\n keywordPreviousPosition: metricData.keywordPreviousPosition,\n keywordCurrentPosition: metricData.keywordCurrentPosition,\n keywordDifficulty: metricData.keywordDifficulty,\n keywordSearchVolume: metricData.keywordSearchVolume,\n keywordUrl: metricData.keywordUrl,\n },\n },\n mandatory: {\n keywordRankings: {\n keywordName: metricData.keywordName,\n },\n },\n },\n },\n ppc: {\n sections: {\n goalsAndProjections: sectionData.goalsAndProjections,\n primaryKpiCharts: sectionData.primaryKpiCharts,\n primaryKpiTables: sectionData.primaryKpiTables,\n allKpisVsPreviousYear: sectionData.allKpisVsPreviousYear,\n performanceByChannel: sectionData.performanceByChannel,\n campaignGroups: sectionData.campaignGroups,\n spendAllocation: sectionData.spendAllocation,\n },\n metrics: {\n goalsAndProjections: {\n shopifyRevenue: metricData.shopifyRevenue,\n shopifyRoas: metricData.shopifyRoas,\n shopifySubtotalRevenue: metricData.shopifySubtotalRevenue,\n shopifySubtotalRoas: metricData.shopifySubtotalRoas,\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n primaryKpiCharts: {\n shopifyRevenue: metricData.shopifyRevenue,\n shopifyRoas: metricData.shopifyRoas,\n shopifySubtotalRevenue: metricData.shopifySubtotalRevenue,\n shopifySubtotalRoas: metricData.shopifySubtotalRoas,\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n primaryKpiTables: {\n shopifyRevenue: metricData.shopifyRevenue,\n shopifyRoas: metricData.shopifyRoas,\n shopifySubtotalRevenue: metricData.shopifySubtotalRevenue,\n shopifySubtotalRoas: metricData.shopifySubtotalRoas,\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n allKpisVsPreviousYear: {\n shopifyRevenue: metricData.shopifyRevenue,\n shopifyRoas: metricData.shopifyRoas,\n shopifySubtotalRevenue: metricData.shopifySubtotalRevenue,\n shopifySubtotalRoas: metricData.shopifySubtotalRoas,\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n performanceByChannel: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n spendAllocation: {\n spend: metricData.spend,\n clickConversions: metricData.clickConversions,\n totalConversions: metricData.totalConversions,\n clickRevenue: metricData.clickRevenue,\n totalRevenue: metricData.totalRevenue,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n },\n },\n defaults: {\n ecommerce: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n clicks: metricData.clicks,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n totalCpa: metricData.totalCpa,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n spendAllocation: {\n spend: metricData.spend,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n },\n leadgen: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n clicks: metricData.clicks,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n totalCpa: metricData.totalCpa,\n },\n spendAllocation: {\n spend: metricData.spend,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n },\n },\n },\n search: {\n sections: {\n goalsAndProjections: sectionData.goalsAndProjections,\n primaryKpiCharts: sectionData.primaryKpiCharts,\n primaryKpiTables: sectionData.primaryKpiTables,\n allKpisVsPreviousYear: sectionData.allKpisVsPreviousYear,\n campaignGroups: sectionData.campaignGroups,\n spendAllocation: sectionData.spendAllocation,\n },\n metrics: {\n goalsAndProjections: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n impressionsTopRate: metricData.impressionsTopRate,\n impressionsAbsTopRate: metricData.impressionsAbsTopRate,\n searchImpressionsShare: metricData.searchImpressionsShare,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n clickAov: metricData.clickAov,\n },\n primaryKpiCharts: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n impressionsTopRate: metricData.impressionsTopRate,\n impressionsAbsTopRate: metricData.impressionsAbsTopRate,\n searchImpressionsShare: metricData.searchImpressionsShare,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n clickAov: metricData.clickAov,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n impressionsTopRate: metricData.impressionsTopRate,\n impressionsAbsTopRate: metricData.impressionsAbsTopRate,\n searchImpressionsShare: metricData.searchImpressionsShare,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n clickAov: metricData.clickAov,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n impressionsTopRate: metricData.impressionsTopRate,\n impressionsAbsTopRate: metricData.impressionsAbsTopRate,\n searchImpressionsShare: metricData.searchImpressionsShare,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n clickAov: metricData.clickAov,\n },\n campaignGroups: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n impressionsTopRate: metricData.impressionsTopRate,\n impressionsAbsTopRate: metricData.impressionsAbsTopRate,\n searchImpressionsShare: metricData.searchImpressionsShare,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n clickAov: metricData.clickAov,\n },\n spendAllocation: {\n spend: metricData.spend,\n clickConversions: metricData.clickConversions,\n clickRevenue: metricData.clickRevenue,\n clickCpa: metricData.clickCpa,\n clickRoas: metricData.clickRoas,\n },\n },\n defaults: {\n ecommerce: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n clicks: metricData.clicks,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n clickConversions: metricData.clickConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n clickAov: metricData.clickAov,\n },\n campaignGroups: {\n spend: metricData.spend,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n },\n spendAllocation: {\n spend: metricData.spend,\n clickRevenue: metricData.clickRevenue,\n clickRoas: metricData.clickRoas,\n },\n },\n leadgen: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n clickConversions: metricData.clickConversions,\n clickCpa: metricData.clickCpa,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n clicks: metricData.clicks,\n clickConversions: metricData.clickConversions,\n clickCpa: metricData.clickCpa,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n clickConversions: metricData.clickConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n },\n campaignGroups: {\n spend: metricData.spend,\n clickConversions: metricData.clickConversions,\n clickCpa: metricData.clickCpa,\n },\n spendAllocation: {\n spend: metricData.spend,\n clickConversions: metricData.clickConversions,\n clickCpa: metricData.clickCpa,\n },\n },\n },\n },\n social: {\n sections: {\n goalsAndProjections: sectionData.goalsAndProjections,\n primaryKpiCharts: sectionData.primaryKpiCharts,\n primaryKpiTables: sectionData.primaryKpiTables,\n allKpisVsPreviousYear: sectionData.allKpisVsPreviousYear,\n campaignGroups: sectionData.campaignGroups,\n spendAllocation: sectionData.spendAllocation,\n },\n metrics: {\n goalsAndProjections: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n addToCarts: metricData.addToCarts,\n impressionToCartRate: metricData.impressionToCartRate,\n checkoutsStarted: metricData.checkoutsStarted,\n cartToConversionRate: metricData.cartToConversionRate,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n primaryKpiCharts: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n views: metricData.views,\n cpv: metricData.cpv,\n socialViewRate: metricData.socialViewRate,\n viewCtr: metricData.viewCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n addToCarts: metricData.addToCarts,\n impressionToCartRate: metricData.impressionToCartRate,\n checkoutsStarted: metricData.checkoutsStarted,\n cartToConversionRate: metricData.cartToConversionRate,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n views: metricData.views,\n cpv: metricData.cpv,\n socialViewRate: metricData.socialViewRate,\n viewCtr: metricData.viewCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n addToCarts: metricData.addToCarts,\n impressionToCartRate: metricData.impressionToCartRate,\n checkoutsStarted: metricData.checkoutsStarted,\n cartToConversionRate: metricData.cartToConversionRate,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n addToCarts: metricData.addToCarts,\n impressionToCartRate: metricData.impressionToCartRate,\n checkoutsStarted: metricData.checkoutsStarted,\n cartToConversionRate: metricData.cartToConversionRate,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n campaignGroups: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n views: metricData.views,\n cpv: metricData.cpv,\n socialViewRate: metricData.socialViewRate,\n viewCtr: metricData.viewCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n addToCarts: metricData.addToCarts,\n impressionToCartRate: metricData.impressionToCartRate,\n checkoutsStarted: metricData.checkoutsStarted,\n cartToConversionRate: metricData.cartToConversionRate,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n spendAllocation: {\n spend: metricData.spend,\n clickConversions: metricData.clickConversions,\n totalConversions: metricData.totalConversions,\n clickRevenue: metricData.clickRevenue,\n totalRevenue: metricData.totalRevenue,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n },\n },\n defaults: {\n ecommerce: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n addToCarts: metricData.addToCarts,\n impressionToCartRate: metricData.impressionToCartRate,\n checkoutsStarted: metricData.checkoutsStarted,\n cartToConversionRate: metricData.cartToConversionRate,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n totalCpa: metricData.totalCpa,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n campaignGroups: {\n spend: metricData.spend,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n spendAllocation: {\n spend: metricData.spend,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n },\n leadgen: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n addToCarts: metricData.addToCarts,\n impressionToCartRate: metricData.impressionToCartRate,\n checkoutsStarted: metricData.checkoutsStarted,\n cartToConversionRate: metricData.cartToConversionRate,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n totalCpa: metricData.totalCpa,\n },\n campaignGroups: {\n spend: metricData.spend,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n spendAllocation: {\n spend: metricData.spend,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n },\n },\n },\n display: {\n sections: {\n goalsAndProjections: sectionData.goalsAndProjections,\n primaryKpiCharts: sectionData.primaryKpiCharts,\n primaryKpiTables: sectionData.primaryKpiTables,\n allKpisVsPreviousYear: sectionData.allKpisVsPreviousYear,\n campaignGroups: sectionData.campaignGroups,\n spendAllocation: sectionData.spendAllocation,\n },\n metrics: {\n goalsAndProjections: {\n cpsv: metricData.cpsv,\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n primaryKpiCharts: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n campaignGroups: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n spendAllocation: {\n spend: metricData.spend,\n clickConversions: metricData.clickConversions,\n totalConversions: metricData.totalConversions,\n clickRevenue: metricData.clickRevenue,\n totalRevenue: metricData.totalRevenue,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n },\n },\n defaults: {\n ecommerce: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n totalCpa: metricData.totalCpa,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n campaignGroups: {\n spend: metricData.spend,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n spendAllocation: {\n spend: metricData.spend,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n },\n leadgen: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n totalCpa: metricData.totalCpa,\n },\n campaignGroups: {\n spend: metricData.spend,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n spendAllocation: {\n spend: metricData.spend,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n },\n },\n },\n video: {\n sections: {\n goalsAndProjections: sectionData.goalsAndProjections,\n primaryKpiCharts: sectionData.primaryKpiCharts,\n primaryKpiTables: sectionData.primaryKpiTables,\n allKpisVsPreviousYear: sectionData.allKpisVsPreviousYear,\n campaignGroups: sectionData.campaignGroups,\n spendAllocation: sectionData.spendAllocation,\n },\n metrics: {\n goalsAndProjections: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n videoCvr: metricData.videoCvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n primaryKpiCharts: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n videoCvr: metricData.videoCvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n videoCvr: metricData.videoCvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n videoCvr: metricData.videoCvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n campaignGroups: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n viewableImpressions: metricData.viewableImpressions,\n views: metricData.views,\n cpv: metricData.cpv,\n viewRate: metricData.viewRate,\n viewCtr: metricData.viewCtr,\n viewableCtr: metricData.viewableCtr,\n\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n inStoreVisits: metricData.inStoreVisits,\n clickConversions: metricData.clickConversions,\n viewConversions: metricData.viewConversions,\n totalConversions: metricData.totalConversions,\n cvr: metricData.cvr,\n videoCvr: metricData.videoCvr,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRevenue: metricData.clickRevenue,\n viewRevenue: metricData.viewRevenue,\n totalRevenue: metricData.totalRevenue,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n clickAov: metricData.clickAov,\n totalAov: metricData.totalAov,\n },\n spendAllocation: {\n spend: metricData.spend,\n clickConversions: metricData.clickConversions,\n totalConversions: metricData.totalConversions,\n clickRevenue: metricData.clickRevenue,\n totalRevenue: metricData.totalRevenue,\n clickCpa: metricData.clickCpa,\n totalCpa: metricData.totalCpa,\n clickRoas: metricData.clickRoas,\n totalRoas: metricData.totalRoas,\n },\n },\n defaults: {\n ecommerce: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n views: metricData.views,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n views: metricData.views,\n cpv: metricData.cpv,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n totalConversions: metricData.totalConversions,\n videoCvr: metricData.videoCvr,\n totalCpa: metricData.totalCpa,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n totalAov: metricData.totalAov,\n },\n campaignGroups: {\n spend: metricData.spend,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n spendAllocation: {\n spend: metricData.spend,\n totalRevenue: metricData.totalRevenue,\n totalRoas: metricData.totalRoas,\n },\n },\n leadgen: {\n goalsAndProjections: {},\n primaryKpiCharts: {\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n primaryKpiTables: {\n spend: metricData.spend,\n views: metricData.views,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n allKpisVsPreviousYear: {\n spend: metricData.spend,\n impressions: metricData.impressions,\n views: metricData.views,\n cpv: metricData.cpv,\n clicks: metricData.clicks,\n cpc: metricData.cpc,\n ctr: metricData.ctr,\n phoneCalls: metricData.phoneCalls,\n totalConversions: metricData.totalConversions,\n videoCvr: metricData.videoCvr,\n totalCpa: metricData.totalCpa,\n },\n campaignGroups: {\n spend: metricData.spend,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n spendAllocation: {\n spend: metricData.spend,\n totalConversions: metricData.totalConversions,\n totalCpa: metricData.totalCpa,\n },\n },\n },\n },\n };\n\n allMetrics[\"metricsByDashboard\"] = metricsByDashboard;\n allMetrics[\"metricData\"] = metricData;\n allMetrics[\"sectionData\"] = sectionData;\n\n return allMetrics;\n};\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button } from \"react-bootstrap\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function AccountConfigurationIntro(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n return (\n <>\n
    \n \n \n \n
    \n

    First Up: Account Configuration

    \n
    \n
    \n

    \n In the next few sections, the designated team member will set up the account configuration. We'll also set up any necessary configurations for\n services and subservices, depending on what was selected so far.\n

    \n
    \n \n
    \n\n \n \n
    \n \n \n
    \n \n
    \n
    \n \n );\n}\n","import { cloneDeep } from \"lodash-es\";\nimport React from \"react\";\nimport { Table, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function AlertsGroup(props) {\n return (\n <>\n
    \n {props.service == \"seo\" ? (\n

    {props.platform.platformName}

    \n ) : (\n

    {props.platform.platformName}

    \n )}\n\n
    \n {props.platform.alerts.map((alert) => {\n return (\n
    \n
    \n {\n const newObj = cloneDeep(props.scripts);\n newObj[alert.name] = jsDig([alert.name], props.scripts) == \"1\" ? \"0\" : \"1\";\n props.setScripts(newObj);\n }}\n />\n \n
    \n {alert.options && (\n
    \n \n \n {alert.options.map((option) => {\n return (\n \n \n \n \n );\n })}\n \n
    {option.title}\n {\n const newObj = cloneDeep(props.scriptVariables);\n newObj[alert.name][option.name] = e.target.value;\n props.setScriptsVar(newObj);\n }}\n />\n
    \n
    \n )}\n
    \n );\n })}\n
    \n
    \n \n );\n}\n","import React, {useEffect, useContext} from \"react\";\nimport { Button } from \"react-bootstrap\";\nimport { useHistory } from \"react-router-dom\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function BackButton(props) {\n const history = useHistory();\n const route = useContext(RouterContext)\n\n let chevronLeft = require(\"images/onboarding/chevronLeft.png\");\n chevronLeft = ;\n\n const backFunction = () => {\n let tempRoute = route.get\n let navigateTo = tempRoute.pop()\n route.set(tempRoute)\n return navigateTo\n }\n\n return (\n history.push(backFunction())}>\n {chevronLeft}{` Back`}\n \n );\n}\n\n\n\n\n\n","import React, { useState, useEffect, useRef, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function BrandLogo(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n props.setBase64Img(base64Img);\n }, [base64Img]);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (props.logo || base64Img) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n let defaultLogo = require(\"images/icons/company-logo.png\");\n const inputRef = useRef();\n const [imageURL, setImageURL] = useState(props.logo ? props.logo : `/datapulse${defaultLogo}`);\n const [fileName, setFileName] = useState(\"No File Chosen\");\n const [base64Img, setBase64Img] = useState(props.base64Img);\n let companyLogo = ;\n\n const encodeImageFileAsURL = (element) => {\n let file = element.files[0];\n let reader = new FileReader();\n if (file.size > 10000000) {\n alert(\"Image must be less than 10MB. Consider use another image or compress this one.\");\n }\n reader.onloadend = () => {\n setBase64Img(reader.result);\n props.setBase64Img(reader.result);\n };\n reader.readAsDataURL(file);\n };\n return (\n <>\n \n \n \n
    \n

    Company Logo

    \n
    \n
    \n

    Upload the brand logo here.

    \n
    \n
    {companyLogo}
    \n
    \n {\n setImageURL(URL.createObjectURL(e.target.files[0]));\n setFileName(e.target.files[0].name);\n encodeImageFileAsURL(e.target);\n }}\n />\n\n \n
    \n
    \n

    {fileName}

    \n
    \n
    \n

    \n Square image no less than 300x300 is ideal. Maximum

    file size is 2MB. Supported files: JPG, PNG\n

    \n
    \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Container, Tab, Nav } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport Search from \"./Search\";\nimport Display from \"./Display\";\nimport Social from \"./Social\";\nimport Video from \"./Video\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport {RouterContext} from \"../Onboarding\"\n\nexport default function AllCampaignGroups(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"search\";\n }\n setTabLocation(page);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n };\n\n return (\n \n \n \n
    \n

    Campaign Groups

    \n
    \n
    \n

    \n On this page, you can set up any necessary campaign groups for your PPC services. Campaign groups are a great way to track the performance of\n specific areas of your business. Create campaign groups for each specific PPC sub-service as needed, and configure them below.{\" \"}\n \n Only the top three campaign groups will be displayed in the PPC Summary (indicated with a blue triangle in the bottom-right corner).{\" \"}\n \n

    \n
    \n \n
    \n \n \n \n \n \n
    \n selectTab(k)}>\n \n \n \n {\n props.search_section.enabled ?\n \n :\n
    \n \n \n
    \n

    Search is not currently enabled

    \n
    \n \n
    \n
    \n }\n
    \n \n {\n props.social_section.enabled ?\n \n :\n
    \n \n \n
    \n

    Social is not currently enabled

    \n
    \n \n
    \n
    \n }\n
    \n \n {\n props.display_section.enabled ?\n \n :\n
    \n \n \n
    \n

    Display is not currently enabled

    \n
    \n \n
    \n
    \n }\n
    \n \n {\n props.video_section.enabled ?\n \n
    \n
    \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport CampaignGroups from \"../../client_config/ppc_config/CampaignGroups\"\n\nexport default function Display(props) {\n \n const displayCampaignGroups = props.campaignGroups.display\n const allCampaignGroups = props.campaignGroups\n\n return (\n
    \n\n \n
    \n \n );\n}","import React from \"react\";\nimport CampaignGroups from \"../../client_config/ppc_config/CampaignGroups\"\n\nexport default function Search(props) {\n \n const searchCampaignGroups = props.campaignGroups.search\n const allCampaignGroups = props.campaignGroups\n\n return (\n
    \n \n \n
    \n \n );\n}","import React from \"react\";\nimport CampaignGroups from \"../../client_config/ppc_config/CampaignGroups\"\n\nexport default function Social(props) {\n \n const socialCampaignGroups = props.campaignGroups.social\n const allCampaignGroups = props.campaignGroups\n\n return (\n
    \n\n \n
    \n \n );\n}","import React from \"react\";\nimport CampaignGroups from \"../../client_config/ppc_config/CampaignGroups\"\n\nexport default function Video(props) {\n \n const videoCampaignGroups = props.campaignGroups.video\n const allCampaignGroups = props.campaignGroups\n\n return (\n
    \n\n \n
    \n \n );\n}","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport StateOptions from \"utils/StateOptions\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\"\n\nexport default function CompanyLegalInformation(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n let companyLogo = require(\"images/onboarding/company-logo.png\");\n companyLogo = ;\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === false) {\n setValidated(false);\n } else {\n setValidated(true);\n }\n });\n\n return (\n <>\n \n \n \n

    Company Legal Information

    \n \n
    \n \n \n

    \n Please add the company's information as it is known legally. It is important that this information is 100% accurate, so please double-check your\n spelling and grammar before continuing.\n

    \n \n
    \n\n \n \n

    Legal Company Name:

    \n \n
    \n \n \n props.legalChange(e, 0)}\n />\n \n \n \n \n

    Legal Company Address

    \n \n
    \n \n \n

    Street Address

    \n \n
    \n \n \n props.legalChange(e, 1)}\n required\n type=\"text\"\n />\n \n \n \n \n

    Unit, building, or apt #

    \n \n
    \n \n \n props.legalChange(e, 2)} />\n \n \n \n \n \n \n \n City\n props.legalChange(e, 3)} className=\"tableSearch mb-2 \"\n required\n type=\"text\"\n />\n \n \n \n \n State/Province\n props.legalChange(e, 4)}\n className=\"tableSearch mb-2 \">\n \n \n \n \n \n Zip\n props.legalChange(e, 5)}\n className=\"tableSearch mb-2\"\n required\n />\n \n \n \n \n \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function CompanyName(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === false) {\n setValidated(false);\n } else {\n setValidated(true);\n }\n });\n\n return (\n <>\n \n \n \n

    What is the name of the company for this account?

    \n \n
    \n \n \n

    \n This is how your name will be displayed in DataPulse. Just the simplest form

    of your company name is ideal.\n

    \n \n
    \n \n \n props.setCompanyName(e.target.value)}\n required\n type=\"text\"\n />\n A company name is required\n \n \n \n \n

    Note: Avoid adding company type suffixes like \"Inc\" or \"LLC\" here (that's what the legal page is for!)

    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function CompanyType(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n let eCommerce = require(\"images/onboarding/cart.png\");\n eCommerce = ;\n let leadGen = require(\"images/onboarding/profileicon.png\");\n leadGen = ;\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (ecommerce || lead) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [ecommerce, setEcommerce] = useState(props.accountType == 0 ? true : false);\n\n const [lead, setLead] = useState(props.accountType == 1 ? true : false);\n\n const changeOption = (option) => {\n if (option === 1 && lead === true) {\n setLead(false);\n props.setAccountType(\"\");\n }\n if (option === 1 && lead === false) {\n setLead(true);\n setEcommerce(false);\n props.setAccountType(1);\n }\n if (option === 0 && ecommerce === true) {\n setEcommerce(false);\n props.setAccountType(\"\");\n }\n if (option === 0 && ecommerce === false) {\n setLead(false);\n setEcommerce(true);\n props.setAccountType(0);\n }\n };\n\n return (\n <>\n \n \n

    What type of company is this?

    \n \n
    \n\n \n \n \n\n \n
    \n
    \n \n \n What's the difference?\n \n
    \n
    \n
    \n

    \n Ecommerce clients are those that are

    tracking revenue and measuring return on

    ad spend.\n

    \n
    \n
    \n

    \n Lead generation clients are those that are

    NOT tracking revenue and are measuring

    leads & cost per acquisition.\n

    \n
    \n
    \n
    \n \n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, {useState, useEffect} from \"react\";\nimport Confetti from 'react-dom-confetti';\nimport { Row, Col, Button, Container } from \"react-bootstrap\";\n\nexport default function Complete(props) {\n let chevronRight = require(\"images/onboarding/chevronRight.png\");\n chevronRight = ;\n\n\n useEffect(() => {\n props.setConfettiTrigger(false)\n setTimeout(() => props.setConfettiTrigger(true), 400)\n\n\n }, [])\n\n\n props.pageLocator();\n let small = require(\"images/onboarding/small-blue-circle.png\");\n small = ;\n let medium = require(\"images/onboarding/medium-circle.png\");\n medium = ;\n large;\n let large = require(\"images/onboarding/large-circle.png\");\n large = ;\n return (\n <>\n \n
    {large}
    \n
    {medium}
    \n
    {small}
    \n \n \n
    \n

    Victory belongs to the most persevering.

    \n
    \n
    \n

    \n Congratulations on completing onboarding for {props.company_name}!{\" \"}\n

    \n

    Well Done!

    \n
    \n \n
    \n \n \n \n
    \n {props.ppcEnabled ? (\n props.submitForm(\"/datapulse/ppc-dashboard\")}\n style={{\n backgroundColor: \"#3291C1\",\n\n paddingLeft: \"55px\",\n paddingRight: \"55px\",\n }}\n className=\"py-1 f16 nunito-regular onboarding-completed\"\n size=\"md\">\n {`Go to My Dashboard`}{chevronRight}\n \n ) : (\n props.submitForm(\"/datapulse/seo-dashboard\")}\n style={{\n backgroundColor: \"#3291C1\",\n\n paddingLeft: \"55px\",\n paddingRight: \"55px\",\n }}\n className=\"py-1 f16 nunito-regular onboarding-completed\"\n size=\"md\">\n {`Go to My Dashboard`}{chevronRight}\n \n )}\n
    \n \n
    \n \n \n {/*
    \n \n
    */}\n \n
    \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\n\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function DatapulseAccess({\n pageLocator,\n setFirstAlert,\n setLastAlert,\n selectedUsers,\n showUsers,\n clientUsers,\n addNewPerson,\n removePerson,\n changePerson,\n submitForm,\n onboarding_progress,\n}) {\n pageLocator();\n const route = useContext(RouterContext);\n const nextPage = getNextPage(onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const dpAccessBox = (user, userEmail, disabled) => {\n return (\n <>\n
    \n {\n disabled &&\n
    \n

    This email already has access to DataPulse

    \n
    \n }\n \n \n

    Add person

    \n \n \n removePerson(user.id, userEmail)} className=\"fas fa-minus-circle\">\n \n
    \n\n \n \n

    First Name (required)

    \n \n \n

    Last Name (required)

    \n \n
    \n\n \n \n changePerson(user.id, userEmail, \"first_name\", e.target.value)}\n onFocus={(e) => {\n setFirstAlert(false);\n }}\n id=\"onboard_first_name\"\n disabled={disabled}\n />\n \n \n changePerson(user.id, userEmail, \"last_name\", e.target.value)}\n onFocus={(e) => {\n setLastAlert(false);\n }}\n id=\"onboard_last_name\"\n className=\"pb-2 mb-2 \"\n value={user.last_name ? user.last_name : \"\"}\n disabled={disabled}\n />\n \n \n\n \n \n

    Email (required)

    \n \n
    \n \n \n changePerson(user.id, userEmail, \"email\", e.target.value)}\n id=\"onboard_email\"\n className=\" mb-2\"\n value={userEmail ? userEmail : \"\"}\n disabled={disabled}\n />\n \n \n\n \n \n

    Phone

    \n changePerson(user.id, userEmail, \"phone_number\", e.target.value)}\n id=\"onboard_phone\"\n className=\"mb-2\"\n pattern=\"[1-9]{1}[0-9]{9}\"\n placeholder=\"1231231234\"\n value={user.phone_number ? user.phone_number : \"\"}\n disabled={disabled}\n />\n \n\n \n

    Job Title

    \n changePerson(user.id, userEmail, \"job_title\", e.target.value)}\n id=\"onboard_job_title\"\n className=\"mb-2\"\n value={user.job_title ? user.job_title : \"\"}\n disabled={disabled}\n />\n \n
    \n\n {/* Commenting this out for now since this field doesn't exist anymore and is not displayed anywhere\n \n \n
    \n changePerson(user.id, userEmail, \"is_primary_point_of_contact\", e.target.value)}\n label=\"Primary point of contact\"\n disabled={disabled}\n />\n
    \n \n
    */}\n
    \n \n );\n };\n\n return (\n <>\n \n \n

    DataPulse Access

    \n \n
    \n \n \n

    \n Here we will add folks from the company that will have direct access to DataPulse. Provide the details to the corresponding fields, and then click\n 'Add' to add them to the list. You can add as many people as necessary, but we recommend limiting your primary points of contact to only one or two.{\" \"}\n All individuals added here will have a DataPulse invitation sent to the email provided for them.\n

    \n \n
    \n \n\n \n {showUsers !== undefined &&\n showUsers.map((box) => {\n let userEmail = box[0];\n if (selectedUsers.some((el) => el.toLowerCase() == userEmail.toLowerCase())) {\n let user = box[1];\n return (\n \n {dpAccessBox(user, userEmail, Object.keys(clientUsers).includes(userEmail) ? true : false)}\n \n );\n }\n })}\n \n\n \n \n \n \n \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport Goals from \"onboarding/Goals/Goals\";\nimport { Row, Col, Button, Container, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\nimport { isEmpty } from \"lodash\";\nexport default function AllPPCGoals(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n const metricList = allMetricData.metricsByDashboard.ppc.metrics.goalsAndProjections;\n const [dashboards, setDashboards] = useState([{ name: \"PPC: Overall\", id: 0, goals: jsDig([\"goals\"], props.ppc_section) }]);\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const today = new Date();\n const thisMonth = today.getMonth();\n const year = today.getFullYear();\n const validationInit =\n jsDig([\"goals\", year, months[thisMonth]], dashboards[0]) &&\n (Object.values(jsDig([\"goals\", year, months[thisMonth]], dashboards[0])).includes(\"\") ||\n Object.values(jsDig([\"goals\", year, months[thisMonth + 1]], dashboards[0])).includes(\"\")\n ? false\n : true);\n const [validated, setValidatation] = useState(validationInit);\n useEffect(() => {\n let validationInit = true;\n if (!isEmpty(dashboards[0][\"goals\"][year])) {\n if (jsDig([0, \"goals\", year, months[thisMonth]], dashboards) && jsDig([0, \"goals\", year, months[thisMonth + 1]], dashboards)) {\n validationInit =\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth]]).includes(\"\") ||\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth + 1]]).includes(\"\")\n ? false\n : true;\n }\n }\n\n if (validationInit) setValidatation(true);\n else setValidatation(false);\n });\n return (\n \n \n \n \n
    \n

    PPC: Overall Goals

    \n
    \n
    \n

    \n Let's set some goals for overall PPC. First, indicate which year you would like to set goals for. Then indicate which key metrics you would like\n to track. Lastly, you can set your goals by month in the fields below. You can autofill from previous years' metrics to set your goals to beat\n last years results.\n

    \n
    \n \n
    \n\n props.submitForm(\"/datapulse/onboarding/all_ppc_goals\")}\n />\n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport Goals from \"onboarding/Goals/Goals\";\nimport { Row, Col, Button, Container, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\nimport { isEmpty } from \"lodash\";\n\nexport default function DisplayGoals(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const metricList = allMetricData.metricsByDashboard.display.metrics.goalsAndProjections;\n const dashboardsInit = [\n { name: \"Display: Overall\", id: 0, goals: props.display_section.goals },\n ...props.display_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n const [dashboards, setDashboards] = useState(dashboardsInit);\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const today = new Date();\n const thisMonth = today.getMonth();\n const year = today.getFullYear();\n const validationInit =\n jsDig([\"goals\", year, months[thisMonth]], dashboards[0]) &&\n (Object.values(jsDig([\"goals\", year, months[thisMonth]], dashboards[0])).includes(\"\") ||\n Object.values(jsDig([\"goals\", year, months[thisMonth + 1]], dashboards[0])).includes(\"\")\n ? false\n : true);\n const [validated, setValidatation] = useState(validationInit);\n useEffect(() => {\n let validationInit = true;\n if (!isEmpty(dashboards[0][\"goals\"][year])) {\n if (jsDig([0, \"goals\", year, months[thisMonth]], dashboards) && jsDig([0, \"goals\", year, months[thisMonth + 1]], dashboards)) {\n validationInit =\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth]]).includes(\"\") ||\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth + 1]]).includes(\"\")\n ? false\n : true;\n }\n }\n\n if (validationInit) setValidatation(true);\n else setValidatation(false);\n });\n return (\n \n \n \n \n
    \n

    PPC: Display Goals

    \n
    \n
    \n

    \n Let's set some goals for display ads. First, indicate which group and year you would like to set goals for. You can either set goals for all\n search, or choose by campaign group if you've already created and configured those. Then indicate which key metrics you would like to track.\n Lastly, you can set your goals by month in the fields below. You can autofill from previous years' metrics to set your goals to beat last years\n results.\n

    \n
    \n \n
    \n props.submitForm(\"/datapulse/onboarding/display_goals\")}\n />\n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport GoalsTable from \"client_config/GoalsTable\";\nimport ConfigureGoalsModal from \"client_config/ConfigureGoalsModal\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { snakeCase, cloneDeep } from \"lodash\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\n\nconst allMetricData = allMetrics();\n\nexport default function Goals(props) {\n props.pageLocator();\n const metricList = props.metricList;\n const startDate = moment(\"2018-01-01\");\n const todaysDate = moment();\n const endDate = todaysDate.add(1, \"year\");\n const yearsDiff = Math.ceil(endDate.diff(startDate, \"years\", true));\n const yearsArray = [...Array(yearsDiff)].map((empty, index) => startDate.year() + index).reverse();\n const [goalChangePercent, setGoalChangePercent] = useState(0);\n const [allOrBlank, setAllOrBlank] = useState(\"blank\");\n\n let calculatorLarge = require(\"images/icons/calculator-large.png\");\n calculatorLarge = ;\n const [selectedDashboardId, setSelectedDashboardId] = useState(props.dashboards[0].id);\n const [selectedYear, setSelectedYear] = useState(moment().year().toString());\n\n let savedCheckedMetrics = {};\n\n props.dashboards.forEach((dashboard) => {\n savedCheckedMetrics[dashboard.id] = {};\n yearsArray.forEach((year) => {\n // Get a list of which metrics have been saved to the dashboard's goals\n let goals = jsDig([\"goals\", year, \"Jan\"], dashboard);\n if (props.service && Object.keys(dashboard.goals).length == 0) {\n goals = allMetricData.metricsByDashboard[`${props.service}`].defaults[`${props.client_account.account_type}`].goalsAndProjections;\n }\n savedCheckedMetrics[dashboard.id][year] = goals ? Object.keys(goals).map((metricName) => metricName) : [];\n });\n });\n const [checkedMetrics, setCheckedMetrics] = useState(savedCheckedMetrics);\n\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const handleMetricCheck = (id, year, metricName, check) => {\n let newCheckedMetrics = cloneDeep(checkedMetrics);\n if (check && jsDig([id, year], newCheckedMetrics)) {\n newCheckedMetrics[id][year].push(metricName);\n } else {\n newCheckedMetrics[id][year].splice(newCheckedMetrics[id][year].indexOf(metricName), 1);\n }\n\n let newDashboards = cloneDeep(props.dashboards);\n const index = newDashboards.findIndex((el) => el.id == id);\n newDashboards[index][\"goals\"][year] = {};\n newCheckedMetrics[id][year].forEach((metricName) => {\n months.forEach((month) => {\n if (!newDashboards[index][\"goals\"][year][month]) newDashboards[index][\"goals\"][year][month] = {};\n newDashboards[index][\"goals\"][year][month][metricName] = jsDig([year, month, metricName], props.dashboards[index][\"goals\"])\n ? props.dashboards[index][\"goals\"][year][month][metricName]\n : \"\";\n });\n });\n\n let newGoals = cloneDeep(props.goals);\n newDashboards.forEach((el) => {\n newGoals[props.service][el.id] = el.goals;\n });\n props.setGoals(newGoals);\n props.setDashboards([...newDashboards]);\n setCheckedMetrics(newCheckedMetrics);\n };\n\n const handlePullMetric = (selectedId) => {\n const data = `${props.service}_cc_data`;\n if (props[data][selectedId]) {\n const year = moment().year();\n const percentChange = goalChangePercent / 100;\n // The cc data sent by the controller includes all platforms, so filter to only 'all'\n const allCcData = props[data][selectedId].filter((datum) => datum.platform == \"all\");\n let newDashboards = props.dashboards;\n const dashIndex = newDashboards.findIndex((el) => el.id == selectedId);\n // Reformat cc data to make it easier to access\n const ccData = {};\n allCcData.forEach((datum) => {\n let newDate = moment(datum.date.split(\"T\")[0]);\n\n const newMonth = newDate.format(\"MMM\");\n const newyear = newDate.format(\"YYYY\");\n if (!ccData[newyear]) ccData[newyear] = {};\n ccData[newyear][newMonth] = datum;\n });\n\n // Only apply the changes to the metrics that have been checked\n const goalShortcutMetrics = $('.metric-selector input[type=\"checkbox\"]:checked');\n \n months.forEach((month) => {\n goalShortcutMetrics.each((i, metricCheckbox) => {\n const metricCamel = metricCheckbox.name;\n const metricSnake = snakeCase(metricCamel);\n const historical = jsDig([year - 1, month, metricSnake, \"projected\"], ccData);\n const newValue = Math.round(historical * (1 + percentChange) * 100) / 100;\n if (allOrBlank == \"blank\") {\n if (historical && newDashboards[dashIndex].goals[year][month][metricCamel] == \"\") {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n } else {\n if (historical) {\n newDashboards[dashIndex].goals[year][month][metricCamel] = newValue;\n }\n }\n });\n });\n props.setDashboards([...newDashboards]);\n } else {\n console.log(\"No historical data!\");\n }\n };\n\n return (\n <>\n \n \n
    \n
    \n \n \n {!props.onboarding && (\n \n \n \n \n )}\n \n \n \n \n \n
    For:\n {\n setSelectedDashboardId(e.target.value);\n }}>\n {props.dashboards.map((dashboard, index) => (\n \n ))}\n \n
    Year:\n {\n setSelectedYear(e.target.value);\n }}>\n {yearsArray.map((year) => {\n return ;\n })}\n \n
    \n
    \n \n {/* Only show the pull metrics button if the selectedYear matches the current year */}\n { selectedYear == moment().year().toString() ? (\n <>\n { props[`${props.service}_cc_data`][selectedDashboardId].length > 0 ? (\n
    \n

    \n You have the option to pull in historical data from the last year to help set this year's goals. Enter a percentage change to apply to the previous year's data:\n

    \n

    \n (Negative numbers are also supported)\n

    \n
    \n setGoalChangePercent(e.target.value)}\n >\n \n %\n
    \n\n
    \n

    Metrics to fill in:

    \n {/* Let the user select which metric to apply the change to. Generate a checkbox for each metric */}\n {checkedMetrics[selectedDashboardId][selectedYear].map((metricName, index) => {\n const metric = metricList[metricName];\n return (\n
    \n \n
    \n );\n })}\n
    \n\n
    \n

    Goals to replace:

    \n setAllOrBlank(e.target.value)}>\n \n \n \n
    \n\n handlePullMetric(selectedDashboardId)}>\n Pull metrics\n \n
    \n ) : (\n

    No historical data has been pulled so goals cannot be generated.

    \n )}\n \n ) : <> }\n
    \n \n \n
    \n

    Configure which metrics for the selected for/year fields that you would like to set goals for:

    \n
    \n \n
    \n
    \n \n \n
    \n
    \n {calculatorLarge}

    What's this?

    \n
    \n
    \n

    \n When you see the blue calculator icon on a goal or column, it means that this metric can be auto-generated using pre-existing information. For\n example, ROAS can be auto-generated based on the existing Spend and Revenue goals. Hover over the icon to get information on which metrics it\n needs to calculate, and click to generate into that field.\n

    \n
    \n
    \n \n
    \n \n \n {props.dashboards.map((dashboard, dbIndex) => {\n return (\n \n {yearsArray.map((year, yearIndex) => {\n let visible = dashboard.id == selectedDashboardId && selectedYear == year;\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n })}\n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport Goals from \"onboarding/Goals/Goals\";\nimport { Row, Col, Button, Container, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport allMetrics from \"data/allMetrics.js\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\nimport { isEmpty } from \"lodash\";\n\nconst allMetricData = allMetrics();\n\nexport default function SEOGoals(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const metricList = allMetricData.metricsByDashboard.seo.metrics.goalsAndProjections;\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const today = new Date();\n const thisMonth = today.getMonth();\n const year = today.getFullYear();\n const dashboardsInit = [\n { name: \"SEO: Overall\", id: 0, goals: props.seo_section.goals },\n ...props.seo_section.landing_page_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n const [dashboards, setDashboards] = useState(dashboardsInit);\n const validationInit =\n jsDig([\"goals\", year, months[thisMonth]], dashboards[0]) &&\n (Object.values(jsDig([\"goals\", year, months[thisMonth]], dashboards[0])).includes(\"\") ||\n Object.values(jsDig([\"goals\", year, months[thisMonth + 1]], dashboards[0])).includes(\"\")\n ? false\n : true);\n const [validated, setValidatation] = useState(validationInit);\n useEffect(() => {\n let validationInit = true;\n if (!isEmpty(dashboards[0][\"goals\"][year])) {\n if (jsDig([0, \"goals\", year, months[thisMonth]], dashboards) && jsDig([0, \"goals\", year, months[thisMonth + 1]], dashboards)) {\n validationInit =\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth]]).includes(\"\") ||\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth + 1]]).includes(\"\")\n ? false\n : true;\n }\n }\n if (validationInit) setValidatation(true);\n else setValidatation(false);\n });\n return (\n \n \n \n \n
    \n

    SEO Goals

    \n
    \n
    \n

    \n Let's set some goals for SEO. First, indicate which group and year you would like to set goals for. You can either set goals for all SEO, or\n choose by landing page group if you've already created and configured those. Then indicate which key metrics you would like to track. Lastly, you\n can set your goals by month in the fields below. You can autofill from previous years' metrics to set your goals to beat last years results.\n

    \n
    \n \n
    \n props.submitForm(\"/datapulse/onboarding/seo_goals\")}\n />\n\n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport Goals from \"onboarding/Goals/Goals\";\nimport { Row, Col, Button, Container, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\nimport { isEmpty } from \"lodash\";\n\nexport default function SearchGoals(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const metricList = allMetricData.metricsByDashboard.search.metrics.goalsAndProjections;\n const dashboardsInit = [\n { name: \"Search: Overall\", id: 0, goals: props.search_section.goals },\n ...props.search_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n const [dashboards, setDashboards] = useState(dashboardsInit);\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const today = new Date();\n const thisMonth = today.getMonth();\n const year = today.getFullYear();\n const validationInit =\n jsDig([\"goals\", year, months[thisMonth]], dashboards[0]) &&\n (Object.values(jsDig([\"goals\", year, months[thisMonth]], dashboards[0])).includes(\"\") ||\n Object.values(jsDig([\"goals\", year, months[thisMonth + 1]], dashboards[0])).includes(\"\")\n ? false\n : true);\n const [validated, setValidatation] = useState(validationInit);\n useEffect(() => {\n let validationInit = true;\n if (!isEmpty(dashboards[0][\"goals\"][year])) {\n if (jsDig([0, \"goals\", year, months[thisMonth]], dashboards) && jsDig([0, \"goals\", year, months[thisMonth + 1]], dashboards)) {\n validationInit =\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth]]).includes(\"\") ||\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth + 1]]).includes(\"\")\n ? false\n : true;\n }\n }\n\n if (validationInit) setValidatation(true);\n else setValidatation(false);\n });\n return (\n \n \n \n \n
    \n

    PPC: Search Goals

    \n
    \n
    \n

    \n Let's set some goals for paid search. First, indicate which group and year you would like to set goals for. You can either set goals for all\n search, or choose by campaign group if you've already created and configured those. Then indicate which key metrics you would like to track.\n Lastly, you can set your goals by month in the fields below. You can autofill from previous years' metrics to set your goals to beat last years\n results.\n

    \n
    \n \n
    \n props.submitForm(\"/datapulse/onboarding/search_goals\")}\n />\n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport Goals from \"onboarding/Goals/Goals\";\nimport { Row, Col, Button, Container, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { Link } from \"react-router-dom\";\nimport { RouterContext } from \"../Onboarding\";\nimport { isEmpty } from \"lodash\";\n\nexport default function SocialGoals(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const metricList = allMetricData.metricsByDashboard.social.metrics.goalsAndProjections;\n const dashboardsInit = [\n { name: \"Social: Overall\", id: 0, goals: props.social_section.goals },\n ...props.social_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n const [dashboards, setDashboards] = useState(dashboardsInit);\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const today = new Date();\n const thisMonth = today.getMonth();\n const year = today.getFullYear();\n const validationInit =\n jsDig([\"goals\", year, months[thisMonth]], dashboards[0]) &&\n (Object.values(jsDig([\"goals\", year, months[thisMonth]], dashboards[0])).includes(\"\") ||\n Object.values(jsDig([\"goals\", year, months[thisMonth + 1]], dashboards[0])).includes(\"\")\n ? false\n : true);\n const [validated, setValidatation] = useState(validationInit);\n useEffect(() => {\n let validationInit = true;\n if (!isEmpty(dashboards[0][\"goals\"][year])) {\n if (jsDig([0, \"goals\", year, months[thisMonth]], dashboards) && jsDig([0, \"goals\", year, months[thisMonth + 1]], dashboards)) {\n validationInit =\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth]]).includes(\"\") ||\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth + 1]]).includes(\"\")\n ? false\n : true;\n }\n }\n if (validationInit) setValidatation(true);\n else setValidatation(false);\n });\n return (\n \n \n \n \n
    \n

    PPC: Social Goals

    \n
    \n
    \n

    \n Let's set some goals for paid social. First, indicate which group and year you would like to set goals for. You can either set goals for all\n search, or choose by campaign group if you've already created and configured those. Then indicate which key metrics you would like to track.\n Lastly, you can set your goals by month in the fields below. You can autofill from previous years' metrics to set your goals to beat last years\n results.\n

    \n
    \n \n
    \n props.submitForm(\"/datapulse/onboarding/social_goals\")}\n />\n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport Goals from \"onboarding/Goals/Goals\";\nimport { Row, Col, Button, Container, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport allMetrics from \"data/allMetrics.js\";\nconst allMetricData = allMetrics();\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\nimport { isEmpty } from \"lodash\";\n\nexport default function VideoGoals(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const metricList = allMetricData.metricsByDashboard.video.metrics.goalsAndProjections;\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const today = new Date();\n const thisMonth = today.getMonth();\n const year = today.getFullYear();\n const dashboardsInit = [\n { name: \"Video: Overall\", id: 0, goals: props.video_section.goals },\n ...props.video_section.campaign_groups.map((group) => ({ name: group.name, id: group.id, goals: group.goals })),\n ];\n const [dashboards, setDashboards] = useState(dashboardsInit);\n const validationInit =\n jsDig([\"goals\", year, months[thisMonth]], dashboards[0]) &&\n (Object.values(jsDig([\"goals\", year, months[thisMonth]], dashboards[0])).includes(\"\") ||\n Object.values(jsDig([\"goals\", year, months[thisMonth + 1]], dashboards[0])).includes(\"\")\n ? false\n : true);\n const [validated, setValidatation] = useState(validationInit);\n useEffect(() => {\n let validationInit = true;\n if (!isEmpty(dashboards[0][\"goals\"][year])) {\n if (jsDig([0, \"goals\", year, months[thisMonth]], dashboards) && jsDig([0, \"goals\", year, months[thisMonth + 1]], dashboards)) {\n validationInit =\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth]]).includes(\"\") ||\n Object.values(dashboards[0][\"goals\"][year][months[thisMonth + 1]]).includes(\"\")\n ? false\n : true;\n }\n }\n\n if (validationInit) setValidatation(true);\n else setValidatation(false);\n });\n return (\n \n \n \n \n
    \n

    PPC: Video Goals

    \n
    \n
    \n

    \n Let's set some goals for video ads. First, indicate which group and year you would like to set goals for. You can either set goals for all search,\n or choose by campaign group if you've already created and configured those. Then indicate which key metrics you would like to track. Lastly, you\n can set your goals by month in the fields below. You can autofill from previous years' metrics to set your goals to beat last years results.\n

    \n
    \n \n
    \n props.submitForm(\"/datapulse/onboarding/video_goals\")}\n />\n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function GoogleAnalyticsGoalTracking(props) {\n let labels = jsDig([\"google_analytics\", \"account_ids\"], props.seo_section.platform_data)\n ? jsDig([\"google_analytics\", \"account_ids\"], props.seo_section.platform_data)\n : [];\n\n const [selectedLabel, setSelectedLabel] = useState(labels[0] ? labels[0].id : null);\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const addNewRow = () => {\n //create an object with all of the state fields\n let newRow = {};\n newRow.label = \"\";\n newRow.enabled = \"0\";\n newRow.goal = \"1\";\n let newObject = props.customAnalyticGoals;\n\n newObject[`${selectedLabel}`] = newObject[`${selectedLabel}`] ? [...newObject[`${selectedLabel}`], newRow] : [newRow];\n props.setCustomAnalyticaGoals({ ...newObject });\n };\n\n const removeRow = (id) => {\n let newObject = props.customAnalyticGoals;\n newObject[`${selectedLabel}`].splice(id, 1);\n props.setCustomAnalyticaGoals({ ...newObject });\n };\n\n const setupBox = (data, idx) => {\n return (\n \n \n {\n let newObject = props.customAnalyticGoals;\n newObject[`${selectedLabel}`][idx][\"enabled\"] = newObject[`${selectedLabel}`][idx][\"enabled\"] == \"1\" ? \"0\" : \"1\";\n props.setCustomAnalyticaGoals({ ...newObject });\n }}\n />\n \n \n {\n let newObject = props.customAnalyticGoals;\n newObject[`${selectedLabel}`][idx][\"goal\"] = e.target.value;\n props.setCustomAnalyticaGoals({ ...newObject });\n }}>\n \n {[...Array(20)].map((e, i) => {\n let goalNumber = i + 1;\n return (\n \n );\n })}\n \n \n \n {\n let newObject = props.customAnalyticGoals;\n newObject[`${selectedLabel}`][idx][\"label\"] = e.target.value;\n props.setCustomAnalyticaGoals({ ...newObject });\n }}\n id={`ob-goal-tracking-id-${idx}`}\n />\n \n \n removeRow(idx)} className=\"fas fa-minus-circle color-danger\">\n \n \n );\n };\n\n const infoText = () => {\n if (props.client_account.account_type == \"ecommerce\") {\n return `${props.company_name} is an ecommerce client. This step is optional.`;\n } else {\n return `${props.company_name} is a lead-gen client. If you do not select goals to track, then DataPulse will not pull any. This step is highly recommended!`;\n }\n }\n\n return (\n <>\n \n \n
    \n

    Google Analytics Goal Tracking

    \n
    \n
    \n

    \n Here you can specify which goals should be pulled from Analytics and counted towards conversions in DataPulse for this client. The 'Label' field may be used to describe the goal, just like in Analytics.\n

    \n

    \n {infoText()}\n

    \n
    \n \n
    \n\n \n \n \n \n

    Provide the information below:

    \n \n
    \n \n \n props.setCustomAnalyticaGoalsEnabled(!props.customAnalyticGoalsEnabled)}\n label=\"Track goals from Google Analytics\"\n />\n \n \n \n {props.customAnalyticGoalsEnabled && (\n <>\n \n \n

    Select label/ID

    \n setSelectedLabel(e.target.value)}>\n {labels.map((data) => (\n \n ))}\n \n \n
    \n {props.customAnalyticGoals[`${selectedLabel}`]\n ? (\n
    \n \n \n {props.customAnalyticGoals[`${selectedLabel}`].map((row, idx) => {\n return
    {setupBox(row, idx)}
    ;\n })}\n \n
    \n
    \n )\n : <>\n }\n \n \n addNewRow()}\n value=\"+ Add goal\"\n variant=\"success\"\n />\n \n \n \n )}\n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport InflationForm from \"./InflationForm\";\n\nexport default function Display(props) {\n let thumbnail = require(\"images/ShowMeHow.jpg\");\n thumbnail = ;\n\n \n let platformNames = [\"Google\"];\n\n return (\n
    \n \n \n
    \n \n Inflation (Past 30 Days)\n \n \n\t\t\t\t\t\t{thumbnail}} />\n\t\t\t\t\t\t\n
    \n \n
    \n
    \n \n
    \n
    \n );\n}","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Container, Tab, Nav, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport Search from \"./Search\";\nimport Display from \"./Display\";\nimport Social from \"./Social\";\nimport Video from \"./Video\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Inflation(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [tabLocation, setTabLocation] = useState(\"\");\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"search\";\n }\n setTabLocation(page);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n };\n let validatedInit = true;\n\n // No inflation for social\n const enabledServices = [];\n if (props.search_section.enabled) enabledServices.push(\"search\");\n if (props.display_section.enabled) enabledServices.push(\"display\");\n if (props.video_section.enabled) enabledServices.push(\"video\");\n\n for (const service in props.inflation) {\n if (enabledServices.includes(service)) {\n for (const platform in props.inflation[service]) {\n for (const metric in props.inflation[service][platform]) {\n if (jsDig([service, platform, metric], props.inflation)) {\n const array = Object.values(props.inflation[service][platform][metric]);\n if (\n Object.values(props.inflation[service][platform][metric])\n .slice(0, array.length - 1)\n .includes(\"\")\n )\n validatedInit = false;\n }\n }\n }\n }\n }\n const [validated, setValidatation] = useState(validatedInit);\n useEffect(() => {\n let validation = true;\n for (const service in props.inflation) {\n if (enabledServices.includes(service)) {\n for (const platform in props.inflation[service]) {\n for (const metric in props.inflation[service][platform]) {\n if (jsDig([service, platform, metric], props.inflation)) {\n const array = Object.values(props.inflation[service][platform][metric]);\n\n if (\n Object.values(props.inflation[service][platform][metric])\n .slice(0, array.length - 1)\n .includes(\"\")\n )\n validation = false;\n }\n }\n }\n }\n }\n setValidatation(validation);\n });\n return (\n \n \n \n
    \n

    Inflation

    \n
    \n
    \n

    \n Here you can set values for inflation. You can do so manually, import values from a CSV, or import directly from the accounts that you linked on\n the previous pages in this access section. You can also copy and paste from Google.\n

    \n
    \n \n
    \n \n \n
    \n \n
    \n \n
    \n
    \n selectTab(k)}>\n \n \n \n {props.search_section.enabled ? (\n \n ) : (\n
    \n \n \n
    \n

    Search is not currently enabled

    \n
    \n \n
    \n
    \n )}\n
    \n \n \n \n \n {props.display_section.enabled ? (\n \n ) : (\n
    \n \n \n
    \n

    Display is not currently enabled

    \n
    \n \n
    \n
    \n )}\n
    \n \n {props.video_section.enabled ? (\n \n
    \n
    \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Tooltip, OverlayTrigger, Row, Col, Button, Table, Form } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport jsDig from \"utils/jsDig.js\";\nexport default function InflationForm(props) {\n const lodashClonedeep = require(\"lodash/cloneDeep\");\n const section = props.section;\n const [selectedPlatform, setSelectedPlatform] = useState(props.platforms[0]);\n let yieldMetrics = [\"Revenue\", \"Conversions\"];\n const copyInflation = () => {\n let copyInflationArray = { ...props.inflation };\n if (selectedPlatform === props.platforms[0]) {\n // using deep copy to avoid the object referencing another object but actually just copying the values\n copyInflationArray.search[`${selectedPlatform.toLowerCase()}`] = lodashClonedeep(props.inflation.search[`${props.platforms[1].toLowerCase()}`]);\n } else if (selectedPlatform === props.platforms[1]) {\n copyInflationArray.search[`${selectedPlatform.toLowerCase()}`] = lodashClonedeep(props.inflation.search[`${props.platforms[0].toLowerCase()}`]);\n }\n props.setInflation({ ...copyInflationArray });\n };\n\n const csvUploadRef = useRef();\n const uploadCsv = (e) => {\n let fileInput = $(e.target).get(0);\n let yieldTable = $(`.${props.section}-${selectedPlatform.toLowerCase()}-yield-table`);\n let reader = new FileReader();\n var extension = fileInput.files[0].name.split('.').pop().toLowerCase() // file extension from input file\n var fileTypes = ['csv'];\n var isSuccess = fileTypes.indexOf(extension) > -1;\n if (isSuccess) {\n reader.readAsText(fileInput.files[0]);\n\n function processCsv(file, yieldTable) {\n let yields = file.replace(/[\\r]+/g, \"\").split(\"\\n\");\n let tableColumns = yieldTable.find(\"tbody tr\").first().children().length - 1;\n let currentRow = 0;\n let currentColumn = 0;\n\n let newInflation = { ...props.inflation };\n yieldTable.find(\"input\").each(function (index) {\n if (typeof yields[currentRow] == \"string\") {\n $(this).val(yields[currentRow].split(\",\")[currentColumn]);\n newInflation[props.section][selectedPlatform.toLowerCase()][yieldMetrics[currentColumn].toLowerCase()][currentRow + 1] =\n yields[currentRow].split(\",\")[currentColumn];\n }\n if ((index + 1) % tableColumns == 0) {\n currentRow++;\n currentColumn = 0;\n } else {\n currentColumn++;\n }\n });\n props.setInflation(newInflation);\n }\n\n reader.onload = function () {\n processCsv(reader.result, yieldTable);\n };\n }\n };\n\n const ComingSoonTooltip = () => {\n const renderTooltip = (refs) => (\n \n
    This feature is coming soon.
    \n
    \n );\n\n return (\n
    \n \n \n \n
    \n );\n };\n return (\n <>\n
    \n {\n setSelectedPlatform(e.target.value);\n }}>\n {props.platforms.map((platform, index) => {\n return ;\n })}\n \n\n {\n uploadCsv(e);\n }}\n onClick={(e) => {\n e.target.value = null;\n }}\n />\n
    \n \n {ComingSoonTooltip()}\n {props.section == \"search\" && (\n \n )}\n
    \n {props.platforms.map((platform, index) => {\n const platformKey = platform.toLowerCase();\n const visability = platform == selectedPlatform ? \"flex\" : \"none\";\n return (\n \n {[0, 1].map((tableIndex) => {\n return (\n \n
    \n \n \n \n \n {yieldMetrics.map((metric, index) => {\n return (\n \n );\n })}\n \n \n \n {[...Array(15)].map((blank, index) => {\n const day = index + 1 + tableIndex * 15;\n return (\n \n \n Day {day}\n \n\n {yieldMetrics.map((metric, index) => {\n metric = metric.toLowerCase();\n\n return (\n \n );\n })}\n \n );\n })}\n \n
    \n {metric}\n
    \n {\n let newInflation = lodashClonedeep(props.inflation);\n if (!newInflation[section]) {\n newInflation[section] = {};\n }\n if (!newInflation[section][platformKey]) {\n newInflation[section][platformKey] = {};\n }\n if (!newInflation[section][platformKey][metric]) {\n newInflation[section][platformKey][metric] = {};\n }\n newInflation[section][platformKey][metric][day] = e.target.value;\n\n props.setInflation(newInflation);\n }}\n />\n
    \n
    \n \n );\n })}\n
    \n );\n })}\n
    \n \n );\n}\n","import React from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport InflationForm from \"./InflationForm\";\n\nexport default function Search(props) {\n let platformNames = [\"Google\", \"Microsoft\"];\n\n let thumbnail = require(\"images/ShowMeHow.jpg\");\n thumbnail = ;\n\n\n return (\n
    \n \n \n
    \n Inflation (Past 30 Days)\n \n\t\t\t\t\t\t{thumbnail}} />\n\t\t\t\t\t\t\n
    \n \n
    \n
    \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport InflationForm from \"./InflationForm\";\n\nexport default function Social(props) {\n let platformNames = [\"Facebook\"];\n\n return (\n
    \n \n \n
    \n

    Social does not have inflation so there is no need to do this for social

    \n {/* \n InflationForm (Past 30 Days)\n \n \n \n \n
    \n \n
    */}\n
    \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport InflationForm from \"./InflationForm\";\n\nexport default function Video(props) {\n let thumbnail = require(\"images/ShowMeHow.jpg\");\n thumbnail = ;\n\n \n let platformNames = [\"Google\"];\n\n return (\n
    \n \n \n
    \n \n Inflation (Past 30 Days)\n \n \n\t\t\t\t\t\t{thumbnail}} />\n\t\t\t\t\t\t\n
    \n \n
    \n
    \n \n
    \n
    \n );\n}","import React, {useContext, useEffect} from \"react\";\nimport { Row, Col, Button } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport NextButton from \"./NextButton\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function Intro1(props) {\n const route = useContext(RouterContext)\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n let welcome = require(\"images/onboarding/dp-welcome.png\");\n welcome = ;\n let logo = require(\"images/onboarding/datapulse.png\");\n logo = ;\n let ipad = require(\"images/onboarding/dp-ipad.png\");\n ipad = ;\n let chat = require(\"images/onboarding/chaticon.png\");\n chat = ;\n let small = require(\"images/onboarding/small-circle.png\");\n small = ;\n let medium = require(\"images/onboarding/medium-circle.png\");\n medium = ;\n large;\n let large = require(\"images/onboarding/large-circle.png\");\n large = ;\n\n return (\n
    \n
    {large}
    \n
    {medium}
    \n
    {small}
    \n
    {welcome}
    \n \n \n \n

    \n In the last year, our clients saw a 178% increase in PPC Revenue and a 105% increase in SEO revenue. We're very excited to see your growth as well!\n Which brings us to our first order of business...\n

    \n \n \n
    \n
    \n
    \n You are currently looking at {logo}\n
    \n
    \n \n \n

    \n DataPulse is our proprietary reporting platform where you can see all of your organic traffic projections, keyword rankings, your personal Digital\n Position team, and way, way, more -- all in real time. It will be your way (and our way too) of monitoring your progress and growth.{\" \"}\n The first step to beginning your journey with {route.organization.name} will be to complete this onboarding form within DataPulse.\n

    \n

    \n

    \n We try to make onboarding as simple and straight-forward as possible for you. You can view your progress at the top of the page, and you can save\n and come back at any time. If you don't know the answer to a question, feel free to skip it and continue. However, please circle back to as much as\n you possibly can, as this information is very necessary for us to do our best work for you. Any of these answers and settings can be changed at any\n time in 'Account Configuration' later.\n

    \n \n {ipad}\n
    \n \n \n {chat}\n \n \n

    \n This section is to be completed by the client and the team member together. If you have arranged an onboarding meeting or call, you should begin the\n meeting before continuing forward below.\n

    \n \n
    \n \n \n \n \n \n \n \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function InvoiceRecipients({\n pageLocator,\n invoiceRecipients,\n setInvoiceRecipients,\n handleDeleteRecipient,\n handleAddRecipient,\n submitForm,\n onboarding_progress,\n}) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (invoiceRecipients.length > 0 && form.checkValidity() === true) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n return (\n <>\n \n \n \n
    \n

    Invoice Recipients

    \n
    \n
    \n

    \n Here we will add emails that will receive invoices. You can add any number of emails here, and invoices will be sent to the provided\n addresses at the end of every month.\n

    \n
    \n \n
    \n \n \n \n \n

    Add email

    \n \n
    \n {invoiceRecipients.map((invoiceRecipient, index) => {\n return (\n \n {\n let newRecipients = [...invoiceRecipients];\n newRecipients[index].email = e.target.value;\n setInvoiceRecipients(newRecipients);\n }}\n pattern=\"[a-zA-Z0-9.-_]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}\"\n required\n />\n \n \n );\n })}\n \n \n \n \n \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, {useContext, useEffect} from \"react\";\nimport { Row, Col, Button } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport KeywordGroups from \"../client_config/seo_config/keyword_groups/KeywordGroups\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function KeywordGroupsOB(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n let exclaimCircle = require(\"images/onboarding/exclaim-circle.png\");\n exclaimCircle = ;\n props.pageLocator();\n return (\n <>\n \n \n \n
    \n

    Keyword Groups

    \n
    \n
    \n

    \n In this section, you can configure keyword groups. It's very important that these entries are configured correctly - failing to do so can return\n skewed or undesirable reporting. Click 'Show me some examples' to the right to learn more about properly configuring your keyword groups. Labels\n are for reference only and will not affect the reporting (besides how it is titled in the performance dashboard).\n

    \n
    \n \n
    \n \n \n \n \n \n {exclaimCircle}\n \n \n

    \n Improper configuration of keywords can have misleading results showing for different keyword groups. Please double-check your BKI entries\n before continuing or click 'Show me some examples' if unsure.\n

    \n \n
    \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport LandingPages from \"../client_config/seo_config/landing_pages/LandingPages\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function LandingPagesOB(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n return (\n <>\n \n \n \n
    \n

    Landing Pages

    \n
    \n
    \n

    \n On this page, you can set up any landing pages that you may want to track for SEO purposes. You can set the landing page items below to track\n exact landing page URLs (like your homepage), or groups of landing pages that share a common base URL (like product pages).\n

    \n
    \n \n
    \n \n \n \n \n \n
    \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Table, Row, Button, Tooltip, OverlayTrigger } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nexport default function ManualDataPull(props) {\n const [isEnabled, setIsEnabled] = useState(props.isEnabled);\n const renderTooltip = (props) => (\n \n Please authenticate shopify url first at account config/website and permissions first.\n \n );\n const calendarForm = (name, defaultDate) => {\n const [open, setOpen] = useState(false);\n const [startDate, setStartDate] = useState(defaultDate ? defaultDate : new Date());\n\n const formatDate = (date) => {\n return moment(date).format(\"YYYYMMDD\");\n };\n\n return (\n <>\n
    \n \n \n
    \n \n );\n };\n\n return (\n
    \n \n {\n setIsEnabled(!isEnabled);\n }}\n label=\"Enable Manual Data Pulls\"\n />\n \n \n {props.platforms.map((platform) => {\n return (\n \n {\n (platform.name =\n \"shopify\" && props.shopify_token == 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 Date range:{\" \"}\n

    \n
    {calendarForm(\"start_date\", moment().subtract(30, \"days\").toDate())}\n

    \n through\n

    \n
    {calendarForm(\"end_date\", moment().subtract(1, \"days\").toDate())}
    \n
    \n
    \n
    \n \n
    \n );\n}\n","import React, {useEffect, useContext} from \"react\";\nimport { Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function NextButton(props) {\n const route = useContext(RouterContext)\n\n let chevronRight = require(\"images/onboarding/chevronRight.png\");\n chevronRight = ;\n\n return (\n <>\n {props.validated ? (\n <>\n {\n route.set((prev) => [...prev, window.location.pathname]);\n if (props.onClick) { \n props.onClick();\n // Need to delay submitForm since onClick updates client account and saves can overlap\n setTimeout(() => props.submitForm(props.nextPage), 1000);\n } else {\n props.submitForm(props.nextPage);\n }\n \n }}\n >\n {props.btnText}{chevronRight}\n \n \n ) : (\n \n

    {props.invalidText}

    \n \n }>\n \n \n )}\n \n );\n}\n\n\n\n\n\n","import React, {useContext, useEffect} from \"react\";\nimport { Row, Col, Button, Container } from \"react-bootstrap\";\nimport { Link , useHistory } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function NotComplete(props) {\n let history = useHistory();\n const route = useContext(RouterContext)\n\n let chevronRight = require(\"images/onboarding/chevronRight.png\");\n chevronRight = ;\n \n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n let caution = require(\"images/icons/exclaim-triangle.png\");\n caution = (\n \n );\n let mobileHideCaution = require(\"images/icons/exclaim-triangle.png\");\n mobileHideCaution = (\n \n );\n return (\n \n \n \n \n {caution}{\" \"}\n

    \n Onboarding is not yet completed\n

    \n {mobileHideCaution}\n
    \n \n
    \n \n \n {/*\n
    \n \n {caution}{\" \"}\n

    \n Onboarding is not yet completed\n

    \n {mobileHideCaution}\n
    \n
    */}\n
    \n

    \n There are steps that were skipped that still need to be\n completed to finish onboarding. Until those are done, \"Complete Onboarding\" will continue to remain for this client in the left\n navigation of DataPulse.{\" \"}



    \n \n To complete the skipped onboarding sections please click the \"Finish Onboarding\"\n button below now, or click \"Complete Onboarding\" in the left\n navigation at any time.\n \n

    \n
    \n \n
    \n \n \n \n
    \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Form, Row, Col } from \"react-bootstrap\";\nimport { BrowserRouter as Router, Switch, Route, Redirect, useHistory } from \"react-router-dom\";\nimport jsDig from \"utils/jsDig\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport ScrollToTop from \"./ScrollToTop\";\nimport Confetti from \"react-dom-confetti\";\nimport Intro1 from \"./Intro\";\nimport Company_Name from \"./CompanyName\";\nimport Company_Type from \"./CompanyType\";\nimport Services from \"./Services\";\nimport Brand_Logo from \"./BrandLogo\";\nimport Website from \"./Website\";\nimport Company_Legal_Information from \"./CompanyLegalInformation\";\nimport Datapulse_Access from \"./DatapulseAccess\";\nimport Invoice_Recipients from \"./InvoiceRecipients\";\nimport Permissions from \"./Permissions\";\nimport Team_Access_Intro from \"./TeamAccess/TeamAccessIntro\";\nimport Shopify_Access from \"./TeamAccess/ShopifyAccess\";\nimport Shopify_Authenticate from \"./TeamAccess/ShopifyAuthenticate\";\nimport Google_Analytics_Access from \"./TeamAccess/GoogleAnalyticsAccess\";\nimport Google_Ads_Access from \"./TeamAccess/GoogleAdsAccess\";\nimport Microsoft_Ads_Access from \"./TeamAccess/MicrosoftAdsAccess\";\nimport Google_Merchant_Access from \"./TeamAccess/GoogleMerchantAccess\";\nimport DataFeedWatch_Install from \"./TeamAccess/DataFeedWatchInstall\";\nimport Facebook_Ads_Access from \"./TeamAccess/FacebookAdsAccess\";\nimport Tiktok_Ads_Access from \"./TeamAccess/TiktokAdsAccess\";\nimport Youtube_Access from \"./TeamAccess/YoutubeAccess\";\nimport Google_Search_Console_Access from \"./TeamAccess/GoogleSearchConsoleAccess\";\nimport Google_My_Business_Access from \"./TeamAccess/GoogleMyBusinessAccess\";\nimport Service_Agreements_Intro from \"./ServiceAgreementsIntro\";\nimport PPC_Service_Agreements from \"./PPCServiceAgreements\";\nimport SEO_Service_Agreements from \"./SEOServiceAgreements\";\nimport Account_Configuration_Intro from \"./AccountConfigurationIntro\";\nimport PPC_Configuration_Intro from \"./PPCConfigurationIntro\";\nimport Track_Specific_Action_IDs from \"./TrackSpecificActionIds\";\nimport Social_Conversions from \"./SocialConversions/SocialConversions\";\nimport Inflation from \"./Inflation/Inflation\";\nimport All_Campaign_Groups from \"./CampaignGroups/AllCampaignGroups\";\nimport Ppc_Data_Pull from \"./PpcDataPull\";\nimport All_PPC_Goals from \"./Goals/AllPPCGoals\";\nimport Search_Goals from \"./Goals/SearchGoals\";\nimport Social_Goals from \"./Goals/SocialGoals\";\nimport Display_Goals from \"./Goals/DisplayGoals\";\nimport Video_Goals from \"./Goals/VideoGoals\";\nimport Scripts from \"./Scripts\";\nimport PPC_Dashboard_Customization from \"./PPCDashboardCustomization/PPCDashboardCustomization\";\nimport PPC_Dashboard_Customization_All from \"./PPCDashboardCustomization/PPCDashboardCustomizationAll\";\nimport SEO_Configuration_Intro from \"./SEOConfigurationIntro\";\nimport Keyword_Groups from \"./KeywordGroups\";\nimport Landing_Pages from \"./LandingPages\";\nimport SEMRush_Setup from \"./SEMRushSetup\";\nimport Google_Analytics_Goal_Tracking from \"./GoogleAnalyticsGoalTracking\";\nimport SEO_Goals from \"./Goals/SEOGoals\";\nimport SEO_Dashboard_Customization from \"./SEODashboardCustomization\";\nimport SeoAlerts from \"./SeoAlerts\";\nimport Seo_Data_Pull from \"./SeoDataPull\";\nimport Progress_Bar from \"./ProgressBar\";\nimport Complete from \"./Complete\";\nimport Not_Complete from \"./NotComplete\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PpcAlerts from \"./PpcAlerts\";\nimport { cloneDeep } from \"lodash-es\";\n\nconst allMetricData = allMetrics();\n\nexport const RouterContext = React.createContext();\n\nexport default function Onboarding(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n const [routerHistory, setRouterHistory] = useState(\n jsDig([\"routerHistory\"], window.localStorage) === null\n ? []\n : jsDig([\"routerHistory\"], window.localStorage) === \"\"\n ? []\n : jsDig([\"routerHistory\"], window.localStorage) === undefined\n ? []\n : JSON.parse(jsDig([\"routerHistory\"], window.localStorage))\n );\n\n let history = useHistory();\n\n //DETERMINE IF ONBOARDING IS COMPLETE\n const [onboardingComplete, setOnboardingComplete] = useState(false);\n\n // GENERAL INFO STATE\n\n //Confetti Time!!\n const confettiConfig = {\n angle: \"85\",\n spread: \"83\",\n startVelocity: \"30\",\n elementCount: \"125\",\n dragFriction: \"0.03\",\n duration: \"5000\",\n stagger: \"0\",\n width: \"8px\",\n height: \"31px\",\n perspective: \"1000px\",\n colors: [\"#a864fd\", \"#29cdff\", \"#78ff44\", \"#ff718d\", \"#fdff6a\"],\n };\n const [confettiTrigger, setConfettiTrigger] = useState(false);\n //company_name\n const [companyName, setCompanyName] = useState(props.client_company.company_name ? props.client_company.company_name : \"\");\n //company_type\n const [accountType, setAccountType] = useState(props.client_account.account_type == \"ecommerce\" ? 0 : 1);\n //services\n const [searchEnabled, setSearchEnabled] = useState(props.search_section.enabled === true ? true : false);\n const [displayEnabled, setDisplayEnabled] = useState(props.display_section.enabled === true ? true : false);\n const [socialEnabled, setSocialEnabled] = useState(props.social_section.enabled === true ? true : false);\n const [videoEnabled, setVideoEnabled] = useState(props.video_section.enabled === true ? true : false);\n const [seoEnabled, setSeoEnabled] = useState(props.seo_section.enabled === true ? true : false);\n //brand_logo - base64Img is false unless it has been changed\n const [base64Img, setBase64Img] = useState(false);\n //website\n const website = jsDig([\"client_account\", \"websites\", \"primary\"], props) ? jsDig([\"client_account\", \"websites\", \"primary\"], props) : \"\";\n const additionalWebsites = jsDig([\"client_account\", \"websites\", \"additional\"], props);\n const [primarySite, setPrimarySite] = useState(website);\n const [additionalWebs, setAdditionalWebs] = useState(additionalWebsites ? additionalWebsites : []);\n const handleOnChange = (e, i) => {\n let newArray = additionalWebs;\n newArray[i].url = e.target.value;\n setAdditionalWebs([...newArray]);\n };\n const handleDelete = (i) => {\n setAdditionalWebs(\n additionalWebs.filter((web) => {\n return web.id !== i;\n })\n );\n };\n const addRow = () => {\n let newitem = {};\n newitem.url = \"\";\n newitem.id = uuidv4();\n setAdditionalWebs([...additionalWebs, newitem]);\n };\n const [webPlatform, setWebPlatform] = useState(jsDig([\"website_platform\"], props.client_account) ? jsDig([\"website_platform\"], props.client_account) : 0);\n const handleSelect = (value) => {\n setWebPlatform(value);\n };\n //comany_legal_information\n const [legalInfo, setLegalInfo] = useState([\n props.client_company.legal_company_name,\n props.client_company.street_address,\n props.client_company.unit_building_number,\n props.client_company.city,\n props.client_company.state_province,\n props.client_company.postal_code,\n ]);\n const legalChange = (e, index) => {\n let updated = e.target.value;\n let newArray = legalInfo;\n legalInfo[index] = updated;\n setLegalInfo([...newArray]);\n };\n\n //datapulse_access\n const [firstAlert, setFirstAlert] = useState(false);\n const [lastAlert, setLastAlert] = useState(false);\n const [poc, setPoc] = useState(false);\n const [firstName, setFirstName] = useState(\"\");\n const [lastName, setLastName] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [phone, setPhone] = useState(\"\");\n const [job, setJob] = useState(\"\");\n\n // Only personBoxes will get created into new users\n const [personBoxes, setPersonBoxes] = useState([]);\n const [showUsers, setShowUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState(props.client_account.client_users ? props.client_account.client_users : []);\n const addNewPerson = () => {\n let newPoc = {};\n newPoc.id = uuidv4();\n newPoc.email = \"\";\n newPoc.first_name = \"\";\n newPoc.last_name = \"\";\n newPoc.phone_number = \"\";\n newPoc.job_title = \"\";\n newPoc.account_access_ids = [props.client_account.id];\n newPoc.is_primary_point_of_contact = false;\n\n if (showUsers.findIndex((showUser) => showUser[1].id == newPoc.id) < 0) {\n setPersonBoxes((personBoxes) => [...personBoxes, newPoc]);\n setSelectedUsers([...selectedUsers, email]);\n setShowUsers((showUsers) => [...showUsers, [email, newPoc]]);\n }\n };\n\n const changePerson = (id, email, property, value) => {\n let newShowUsers = showUsers;\n let newShowUsersIndex = newShowUsers.findIndex((box) => box[1].id == id);\n newShowUsers[newShowUsersIndex][1][property] = value;\n if (property == \"email\") {\n newShowUsers[newShowUsersIndex][0] = value;\n }\n setShowUsers([...newShowUsers]);\n\n let newPeople = personBoxes;\n let personIndex = newPeople.findIndex((user) => user.id == id);\n newPeople[personIndex][property] = value;\n setPersonBoxes([...newPeople]);\n\n if (property == \"email\") {\n let newSelectedUsers = selectedUsers;\n let newSelectedUsersIndex = newSelectedUsers.findIndex((userEmail) => userEmail == email);\n newSelectedUsers[newSelectedUsersIndex] = value;\n setSelectedUsers(newSelectedUsers);\n }\n };\n\n const removePerson = (id, email) => {\n setShowUsers(showUsers.filter((box) => box[1].id !== id));\n\n let selection = [...selectedUsers];\n selection.splice(selection.indexOf(email), 1);\n setSelectedUsers(selection);\n\n let newPeople = personBoxes;\n let personIndex = newPeople.findIndex((user) => user.id == id);\n newPeople.splice(personIndex, 1);\n setPersonBoxes([...newPeople]);\n };\n\n const phoneChange = (phone) => {\n const cleaned = (\"\" + phone).replace(/\\D/g, \"\");\n const match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\n setPhone(\"(\" + match[1] + \") \" + match[2] + \"-\" + match[3]);\n };\n //invoice_recipients\n const [invoiceRecipients, setInvoiceRecipients] = useState(props.billing_config.invoice_recipients);\n const handleDeleteRecipient = (id) => {\n const newInvoices = invoiceRecipients.filter((el) => el.id !== id);\n setInvoiceRecipients([...newInvoices]);\n };\n const handleAddRecipient = () => {\n setInvoiceRecipients([...invoiceRecipients, { id: uuidv4(), email: \"\" }]);\n };\n //permissions\n const [globalPermission, setGlobalPermission] = useState(\n props.client_account.global_website_permissions ? props.client_account.global_website_permissions : undefined\n );\n const [isPermissionsEnabled, setIsPermissionsEnabled] = useState(\n props.client_account.custom_website_permissions_enabled ? props.client_account.custom_website_permissions_enabled : false\n );\n const [customPermissions, setCustomPermissions] = useState(\n jsDig([\"client_account\", \"custom_website_permissions\"], props)\n ? jsDig([\"client_account\", \"custom_website_permissions\"], props)\n : [{ id: uuidv4(), website: \"\", permission: 1 }]\n );\n const permissionHandler = (items) => {\n if (!isPermissionsEnabled) {\n return;\n }\n setCustomPermissions(items);\n };\n const [developmentCapabilities, setDevelopmentCapabilities] = useState(\n props.client_account.development_capabilities ? props.client_account.development_capabilities : 0\n );\n const [creativeCapabilities, setCreativeCapabilities] = useState(\n props.client_account.creative_capabilities ? props.client_account.creative_capabilities : 0\n );\n /* team access */\n const platforms = [\n \"Google Analytics\",\n \"Google Ads\",\n \"Microsoft Ads\",\n \"Google Merchant\",\n \"DataFeedWatch\",\n \"Facebook Ads\",\n \"Tiktok Ads\",\n \"Youtube\",\n \"Google Search Console\",\n \"SEMRush\",\n \"Shopify\",\n \"Google Business\",\n ];\n let defaultTeamAccess = props.client_account.team_access ? props.client_account.team_access : {};\n platforms.forEach((platformName) => {\n defaultTeamAccess[platformName] = defaultTeamAccess[platformName] || { Restricted: \"0\" };\n });\n const [teamAccess, setTeamAccess] = useState(defaultTeamAccess);\n const [shopifyChannel, setShopifyChannel] = useState(jsDig([\"shopify_revenue_type\"], props.ppc_section));\n const [domainProperty, setDomainProperty] = useState(undefined);\n /* shopify url */\n let shopifyUrlTemp = props.client_account.shopify_url;\n if (shopifyUrlTemp) {\n shopifyUrlTemp = shopifyUrlTemp.split(\".myshopify.com\")[0];\n }\n const [shopifyUrl, setShopifyUrl] = useState(shopifyUrlTemp);\n /* platform data */\n const [googleAnalyticsIds, setGoogleAnalyticsIds] = useState(\n jsDig([\"platform_data\", \"google_analytics\", \"account_ids\"], props.seo_section)\n ? jsDig([\"platform_data\", \"google_analytics\", \"account_ids\"], props.seo_section)\n : []\n );\n const [sameId, setSameId] = useState(true);\n const [searchGoogleAdsIds, setSearchGoogleAdsIds] = useState(\n jsDig([\"platform_data\", \"google_ads\", \"account_ids\", \"id\"], props.search_section)\n ? jsDig([\"platform_data\", \"google_ads\", \"account_ids\"], props.search_section)\n : [{ id: \"\" }]\n );\n const [displayGoogleAdsIds, setDisplayGoogleAdsIds] = useState(\n jsDig([\"platform_data\", \"google_ads\", \"account_ids\", \"id\"], props.display_section)\n ? jsDig([\"platform_data\", \"google_ads\", \"account_ids\"], props.display_section)\n : [{ id: \"\" }]\n );\n const [videoGoogleAdsIds, setVideoGoogleAdsIds] = useState(\n jsDig([\"platform_data\", \"google_ads\", \"account_ids\", \"id\"], props.video_section)\n ? jsDig([\"platform_data\", \"google_ads\", \"account_ids\"], props.video_section)\n : [{ id: \"\" }]\n );\n const [allGoogleAdsIds, setAllGoogleAdsIds] = useState(\n videoGoogleAdsIds[0][\"id\"] == displayGoogleAdsIds[0][\"id\"] && displayGoogleAdsIds[0][\"id\"] == searchGoogleAdsIds[0][\"id\"]\n ? jsDig([\"platform_data\", \"google_ads\", \"account_ids\"], props.search_section)\n : [{ id: \"\" }]\n );\n\n const setGoogleAdsIds = (id) => {\n setSearchGoogleAdsIds(id);\n setDisplayGoogleAdsIds(id);\n setVideoGoogleAdsIds(id);\n };\n\n // Google Ads Access\n const [mccId, setMccId] = useState(props.organization.google_ads_mcc_id)\n const savedMccId = props.organization.google_ads_mcc_id\n\n const [semrushApiKey, setSemrushApiKey] = useState(props.organization.semrush_api_key)\n const savedSemrushKey = props.organization.semrush_api_key\n\n const [facebookAdsIds, setFacebookAdsIds] = useState(\n jsDig([\"platform_data\", \"facebook_ads\", \"account_ids\"], props.social_section)\n ? jsDig([\"platform_data\", \"facebook_ads\", \"account_ids\"], props.social_section)\n : []\n );\n const [tiktokAdsIds, setTiktokAdsIds] = useState(\n jsDig([\"platform_data\", \"tiktok_ads\", \"account_ids\"], props.social_section)\n ? jsDig([\"platform_data\", \"tiktok_ads\", \"account_ids\"], props.social_section)\n : []\n );\n const [microsoftAdsIds, setMicrosoftAdsIds] = useState(\n jsDig([\"platform_data\", \"microsoft_ads\", \"account_ids\"], props.search_section)\n ? jsDig([\"platform_data\", \"microsoft_ads\", \"account_ids\"], props.search_section)\n : []\n );\n /* conversion_actions */\n const [conversionActions, setConversionActions] = useState({\n search: jsDig([\"conversion_actions\"], props.search_section),\n display: jsDig([\"conversion_actions\"], props.display_section),\n video: jsDig([\"conversion_actions\"], props.video_section),\n });\n /* social conversions */\n const [facebookCustomConversions, setFacebookCustomConversions] = useState(props.social_section.custom_conversions);\n const [facebookConversionObjective, setFacebookConversionObjective] = useState(props.social_section.conversion_objective);\n const [tiktokConversionObjective, setTiktokConversionObjective] = useState(props.social_section.tiktok_conversion_objective);\n /* data pull */\n const [pullBoxes, setPullBoxes] = useState([\n [\"Google Ads\", \"[search]google_ads\", false],\n [\"Microsoft Ads\", \"[search]microsoft_ads\", false],\n [\"SEMRush\", \"[seo]pull_semrush_data\", false],\n [\"Google Search Console\", \"[seo]pull_search_console_data\", false],\n [\"Google: SEO\", \"[seo]pull_google_data\", false],\n [\"Google: Display\", \"[display]google_ads\", false],\n [\"Google: Video\", \"[video]google_ads\", false],\n [\"Facebook\", \"[social]facebook_ads\", false],\n [\"Tiktok\", \"[social]tiktok_ads\", false],\n [\"Shopify\", \"[ppc]shopify\", false],\n ]);\n const [pullPlatforms, setPullPlatform] = useState({\n search: {\n google_ads: \"0\",\n microsoft_ads: \"0\",\n },\n social: {\n facebook_ads: \"0\",\n tiktok_ads: \"0\",\n },\n display: {\n google_ads: \"0\",\n },\n video: {\n google_ads: \"0\",\n },\n seo: {\n pull_google_data: \"0\",\n pull_search_console_data: \"0\",\n pull_semrush_data: \"0\",\n },\n ppc: {\n shopify: \"0\",\n },\n });\n useEffect(() => {\n const newPlatforms = cloneDeep(pullPlatforms);\n pullBoxes[0][2] === true ? (newPlatforms[\"search\"][\"google_ads\"] = \"1\") : (newPlatforms[\"search\"][\"google_ads\"] = \"0\");\n pullBoxes[1][2] === true ? (newPlatforms[\"search\"][\"microsoft_ads\"] = \"1\") : (newPlatforms[\"search\"][\"microsoft_ads\"] = \"0\");\n pullBoxes[2][2] === true ? (newPlatforms[\"seo\"][\"pull_semrush_data\"] = \"1\") : (newPlatforms[\"seo\"][\"pull_semrush_data\"] = \"0\");\n pullBoxes[3][2] === true ? (newPlatforms[\"seo\"][\"pull_search_console_data\"] = \"1\") : (newPlatforms[\"seo\"][\"pull_search_console_data\"] = \"0\");\n pullBoxes[4][2] === true ? (newPlatforms[\"seo\"][\"pull_google_data\"] = \"1\") : (newPlatforms[\"seo\"][\"pull_google_data\"] = \"0\");\n pullBoxes[5][2] === true ? (newPlatforms[\"display\"][\"google_ads\"] = \"1\") : (newPlatforms[\"display\"][\"google_ads\"] = \"0\");\n pullBoxes[6][2] === true ? (newPlatforms[\"video\"][\"google_ads\"] = \"1\") : (newPlatforms[\"video\"][\"google_ads\"] = \"0\");\n pullBoxes[7][2] === true ? (newPlatforms[\"social\"][\"facebook_ads\"] = \"1\") : (newPlatforms[\"social\"][\"facebook_ads\"] = \"0\");\n pullBoxes[8][2] === true ? (newPlatforms[\"social\"][\"tiktok_ads\"] = \"1\") : (newPlatforms[\"social\"][\"tiktok_ads\"] = \"0\");\n pullBoxes[9][2] === true && props.client_account.shopify_token !== null ? (newPlatforms[\"ppc\"][\"shopify\"] = \"1\") : (newPlatforms[\"ppc\"][\"shopify\"] = \"0\");\n setPullPlatform({ ...newPlatforms });\n }, [pullBoxes]);\n\n const manualDataPull = () => {\n let myObject = {\n client_account_id: props.client_account.id,\n pull_platform_data: pullPlatforms,\n };\n\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/onboarding/manual_pull\",\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(myObject),\n });\n };\n\n const videoInflation =\n Object.keys(jsDig([\"daily_yields\"], props.social_section)).length > 0\n ? jsDig([\"daily_yields\"], props.video_section)\n : {\n google: {\n conversions: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n revenue: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n },\n };\n\n const displayInflation =\n Object.keys(jsDig([\"daily_yields\"], props.display_section)).length > 0\n ? jsDig([\"daily_yields\"], props.display_section)\n : {\n google: {\n conversions: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n revenue: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n },\n };\n\n const socialInflation =\n Object.keys(jsDig([\"daily_yields\"], props.social_section)).length > 0\n ? jsDig([\"daily_yields\"], props.social_section)\n : {\n facebook: {\n conversions: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n revenue: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n },\n tiktok: {\n conversions: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n revenue: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n }\n };\n\n const searchInflation =\n Object.keys(jsDig([\"daily_yields\"], props.search_section)).length > 0\n ? jsDig([\"daily_yields\"], props.search_section)\n : {\n google: {\n conversions: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n revenue: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n },\n microsoft: {\n conversions: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n revenue: {\n 1: \"\",\n 2: \"\",\n 3: \"\",\n 4: \"\",\n 5: \"\",\n 6: \"\",\n 7: \"\",\n 8: \"\",\n 9: \"\",\n 10: \"\",\n 11: \"\",\n 12: \"\",\n 13: \"\",\n 14: \"\",\n 15: \"\",\n 16: \"\",\n 17: \"\",\n 18: \"\",\n 19: \"\",\n 20: \"\",\n 21: \"\",\n 22: \"\",\n 23: \"\",\n 24: \"\",\n 25: \"\",\n 26: \"\",\n 27: \"\",\n 28: \"\",\n 29: \"\",\n 30: \"0\",\n },\n },\n };\n /* inflation */\n const [inflation, setInflation] = useState({\n search: searchInflation,\n social: socialInflation,\n display: displayInflation,\n video: videoInflation,\n });\n /* campaign groups */\n const [campaignGroups, setCampaignGroups] = useState(props.campaign_groups);\n /* goals */\n let allGoals = {\n seo: {\n 0: jsDig([\"goals\"], props.seo_section),\n },\n ppc: {\n 0: jsDig([\"goals\"], props.ppc_section),\n },\n search: {\n 0: jsDig([\"goals\"], props.search_section),\n },\n social: {\n 0: jsDig([\"goals\"], props.social_section),\n },\n display: {\n 0: jsDig([\"goals\"], props.display_section),\n },\n video: {\n 0: jsDig([\"goals\"], props.video_section),\n },\n };\n props.seo_section.landing_page_groups.forEach((group) => {\n allGoals.seo[group.id] = group.goals;\n });\n const ppcPlatformsArray = [\"search\", \"social\", \"display\", \"video\"];\n ppcPlatformsArray.forEach((service) => {\n let section = props[service + \"_section\"];\n section.campaign_groups.forEach((group) => {\n allGoals[service][group.id] = group.goals;\n });\n });\n\n const [goals, setGoals] = useState(allGoals);\n const [scripts, setScripts] = useState(props.client_account.scripts);\n /* service agreements */\n const [searchUniqueFeeEnabled, setSearchUniqueFeeEnabled] = useState(props.billing_config.search_fee_structure_enabled === true ? true : false);\n const [displayUniqueFeeEnabled, setDisplayUniqueFeeEnabled] = useState(props.billing_config.display_fee_structure_enabled === true ? true : false);\n const [socialUniqueFeeEnabled, setSocialUniqueFeeEnabled] = useState(props.billing_config.social_fee_structure_enabled === true ? true : false);\n const [videoUniqueFeeEnabled, setVideoUniqueFeeEnabled] = useState(props.billing_config.video_fee_structure_enabled === true ? true : false);\n const [seoAccountLeads, setSeoAccountLeads] = useState(props.seo_section.account_leads ? props.seo_section.account_leads : []);\n const [seoAccountSupports, setSeoAccountSupports] = useState(props.seo_section.account_supports ? props.seo_section.account_supports : []);\n const [searchAccountLeads, setSearchAccountLeads] = useState(props.search_section.account_leads ? props.search_section.account_leads : []);\n const [searchAccountSupports, setSearchAccountSupports] = useState(props.search_section.account_supports ? props.search_section.account_supports : []);\n const [socialAccountLeads, setSocialAccountLeads] = useState(props.social_section.account_leads ? props.social_section.account_leads : []);\n const [socialAccountSupports, setSocialAccountSupports] = useState(props.social_section.account_supports ? props.social_section.account_supports : []);\n const [displayAccountLeads, setDisplayAccountLeads] = useState(props.display_section.account_leads ? props.display_section.account_leads : []);\n const [displayAccountSupports, setDisplayAccountSupports] = useState(props.display_section.account_supports ? props.display_section.account_supports : []);\n const [videoAccountLeads, setVideoAccountLeads] = useState(props.video_section.account_leads ? props.video_section.account_leads : []);\n const [videoAccountSupports, setVideoAccountSupports] = useState(props.video_section.account_supports ? props.video_section.account_supports : []);\n const [seoPointsOfContact, setSeoPointsOfContact] = useState(props.client_account.seo_points_of_contact ? props.client_account.seo_points_of_contact : []);\n const [ppcPointsOfContact, setPpcPointsOfContact] = useState(props.client_account.ppc_points_of_contact ? props.client_account.ppc_points_of_contact : []);\n const [ppcWhiteLabelService, setPpcWhiteLabelService] = useState(props.search_section.white_label_service ? props.search_section.white_label_service : false);\n const [seoWhiteLabelService, setSeoWhiteLabelService] = useState(props.seo_section.white_label_service ? props.seo_section.white_label_service : false);\n const [ppcStartDate, setPpcStartDate] = useState(props.billing_config.ppc_start_date ? new Date(props.billing_config.ppc_start_date) : undefined);\n const [seoStartDate, setSeoStartDate] = useState(props.billing_config.seo_start_date ? props.billing_config.seo_start_date : undefined);\n const [displayFeeStructure, setDisplayFeeStructure] = useState(\n props.billing_config.display_fee_structure && props.billing_config.video_fee_structure[0]\n ? props.billing_config.display_fee_structure\n : [\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ]\n );\n const [searchFeeStructure, setSearchFeeStructure] = useState(\n props.billing_config.search_fee_structure && props.billing_config.video_fee_structure[0]\n ? props.billing_config.search_fee_structure\n : [\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ]\n );\n const [socialFeeStructure, setSocialFeeStructure] = useState(\n props.billing_config.social_fee_structure && props.billing_config.video_fee_structure[0]\n ? props.billing_config.social_fee_structure\n : [\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ]\n );\n const [videoFeeStructure, setVideoFeeStructure] = useState(\n props.billing_config.video_fee_structure && props.billing_config.video_fee_structure[0]\n ? props.billing_config.video_fee_structure\n : [\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ]\n );\n const [ppcFeeStructure, setPpcFeeStructure] = useState(\n props.billing_config.ppc_fee_structure\n ? props.billing_config.ppc_fee_structure\n : [\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ]\n );\n const seoFeeStructureinitial = props.billing_config.seo_fee_structure\n ? props.billing_config.seo_fee_structure.map((el) => {\n if (!el.id) {\n el[\"id\"] = uuidv4();\n return el;\n }\n return el;\n })\n : [];\n const [seoFeeStructure, setSEOFeeStructure] = useState(seoFeeStructureinitial);\n const [ppcFees, setPpcFees] = useState(\n props.billing_config.ppc_fees\n ? props.billing_config.ppc_fees\n : [\n {\n id: uuidv4(),\n label: \"\",\n amount: \"0\",\n status: \"0\",\n enabled: \"0\",\n status: \"Recurring\",\n frequency: \"Monthly\",\n },\n ]\n );\n const seoFeesinitial = props.billing_config.seo_fees\n ? props.billing_config.seo_fees.map((el) => {\n if (!el.id) {\n el[\"id\"] = uuidv4();\n return el;\n }\n return el;\n })\n : [\n {\n id: uuidv4(),\n label: \"\",\n amount: \"0\",\n status: \"0\",\n enabled: \"0\",\n status: \"Recurring\",\n frequency: \"Monthly\",\n },\n ];\n const [seoFees, setSeoFees] = useState(seoFeesinitial);\n const searchScriptsInitial = {\n google_ads_search_impressions_emergency_detector: \"0\",\n google_ads_search_disapproved_ads_detector: \"0\",\n google_ads_search_out_of_stock_detector: \"0\",\n google_ads_search_impressions_flux_detector: \"0\",\n google_ads_search_clicks_flux_detector: \"0\",\n google_ads_search_keyword_bleeder_detector: \"0\",\n google_ads_search_url_issue_detector: \"0\",\n google_ads_search_spend_flux_detector: \"0\",\n google_ads_search_conversions_flux_detector: \"0\",\n google_ads_shopping_campaign_fluctuation_detector: \"0\",\n google_ads_shopping_product_fluctuation_detector: \"0\",\n bing_ads_search_impressions_emergency_detector: \"0\",\n bing_ads_search_disapproved_ads_detector: \"0\",\n bing_ads_search_impressions_flux_detector: \"0\",\n bing_ads_search_clicks_flux_detector: \"0\",\n bing_ads_search_keyword_bleeder_detector: \"0\",\n bing_ads_search_spend_flux_detector: \"0\",\n bing_ads_search_conversions_flux_detector: \"0\",\n };\n const searchScriptsVarInitial = {\n google_ads_search_impressions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_search_clicks_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_search_keyword_bleeder_detector: { threshold: \"\" },\n google_ads_search_spend_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_search_conversions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_shopping_campaign_fluctuation_detector: { min_threshold: \"\", max_threshold: \"\" },\n bing_ads_search_impressions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n bing_ads_search_clicks_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n bing_ads_search_keyword_bleeder_detector: { threshold: \"\" },\n bing_ads_search_spend_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n bing_ads_search_conversions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n };\n const socialScriptsInitial = {\n facebook_ads_social_impressions_emergency_detector: \"0\",\n facebook_ads_social_impressions_flux_detector: \"0\",\n facebook_ads_social_spend_flux_detector: \"0\",\n facebook_ads_social_clicks_flux_detector: \"0\",\n facebook_ads_social_conversions_flux_detector: \"0\",\n };\n const socialScriptsVarInitial = {\n facebook_ads_social_impressions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n facebook_ads_social_spend_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n facebook_ads_social_clicks_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n facebook_ads_social_conversions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n };\n\n const displayScriptsInitial = {\n google_ads_display_impressions_emergency_detector: \"0\",\n google_ads_display_disapproved_ads_detector: \"0\",\n google_ads_display_out_of_stock_detector: \"0\",\n google_ads_display_impressions_flux_detector: \"0\",\n google_ads_display_clicks_flux_detector: \"0\",\n google_ads_display_keyword_bleeder_detector: \"0\",\n google_ads_display_url_issue_detector: \"0\",\n google_ads_display_spend_flux_detector: \"0\",\n google_ads_display_conversions_flux_detector: \"0\",\n };\n const displayScriptsVarInitial = {\n google_ads_display_impressions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_display_clicks_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_display_keyword_bleeder_detector: { threshold: \"\" },\n google_ads_display_spend_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_display_conversions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n };\n\n const videoScriptsInitial = {\n google_ads_video_impressions_emergency_detector: \"0\",\n google_ads_video_disapproved_ads_detector: \"0\",\n google_ads_video_out_of_stock_detector: \"0\",\n google_ads_video_impressions_flux_detector: \"0\",\n google_ads_video_clicks_flux_detector: \"0\",\n google_ads_video_keyword_bleeder_detector: \"0\",\n google_ads_video_url_issue_detector: \"0\",\n google_ads_video_spend_flux_detector: \"0\",\n google_ads_video_conversions_flux_detector: \"0\",\n };\n const videoScriptsVarInitial = {\n google_ads_video_impressions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_video_clicks_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_video_keyword_bleeder_detector: { threshold: \"\" },\n google_ads_video_spend_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n google_ads_video_conversions_flux_detector: { min_threshold: \"\", max_threshold: \"\" },\n };\n\n const seoScriptsInitial = {\n google_analytics_seo_traffic_fluctuation_detector: \"0\",\n };\n const seoScriptsVarInitial = {\n google_analytics_seo_traffic_fluctuation_detector: { min_threshold: \"\", max_threshold: \"\" },\n };\n const [searchScripts, setSearchScripts] = useState(\n jsDig([\"scripts\"], props.search_section) ? jsDig([\"scripts\"], props.search_section) : searchScriptsInitial\n );\n const [searchScriptsVar, setSearchScriptsVar] = useState(\n jsDig([\"script_variables\"], props.search_section) ? jsDig([\"script_variables\"], props.search_section) : searchScriptsVarInitial\n );\n const [socialScripts, setSocialScripts] = useState(\n jsDig([\"scripts\"], props.social_section) ? jsDig([\"scripts\"], props.social_section) : socialScriptsInitial\n );\n const [socialScriptsVar, setSocialScriptsVar] = useState(\n jsDig([\"script_variables\"], props.social_section) ? jsDig([\"script_variables\"], props.social_section) : socialScriptsVarInitial\n );\n const [displayScripts, setDisplayScripts] = useState(\n jsDig([\"scripts\"], props.display_section) ? jsDig([\"scripts\"], props.display_section) : displayScriptsInitial\n );\n const [displayScriptsVar, setDisplayScriptsVar] = useState(\n jsDig([\"script_variables\"], props.display_section) ? jsDig([\"script_variables\"], props.display_section) : displayScriptsVarInitial\n );\n const [videoScripts, setVideoScripts] = useState(jsDig([\"scripts\"], props.video_section) ? jsDig([\"scripts\"], props.video_section) : videoScriptsInitial);\n const [videoScriptsVar, setVideoScriptsVar] = useState(\n jsDig([\"script_variables\"], props.video_section) ? jsDig([\"script_variables\"], props.video_section) : videoScriptsVarInitial\n );\n\n const [seoScripts, setSeoScripts] = useState(jsDig([\"scripts\"], props.seo_section) ? jsDig([\"scripts\"], props.seo_section) : seoScriptsInitial);\n const [seoScriptsVar, setSeoScriptsVar] = useState(\n jsDig([\"script_variables\"], props.seo_section) ? jsDig([\"script_variables\"], props.seo_section) : seoScriptsVarInitial\n );\n\n // Seo Config\n const [allPages, setAllPages] = useState([\n [\"/datapulse/onboarding/account_configuration_intro\", 0]\n [\"/datapulse/onboarding/company_type\", 1],\n [\"/datapulse/onboarding/services\", 2],\n [\"/datapulse/onboarding/brand_logo\", 3],\n [\"/datapulse/onboarding/website\", 4],\n [\"/datapulse/onboarding/company_legal_information\", 5],\n [\"/datapulse/onboarding/datapulse_access\", 6],\n [\"/datapulse/onboarding/invoice_recipients\", 7],\n [\"/datapulse/onboarding/permissions\", 8],\n [\"/datapulse/onboarding/team_access_intro\", 9],\n [\"/datapulse/onboarding/shopify_access\", 10],\n [\"/datapulse/onboarding/shopify_authenticate\", 11],\n [\"/datapulse/onboarding/facebook_ads_access\", 12],\n [\"/datapulse/onboarding/tiktok_ads_access\", 13],\n [\"/datapulse/onboarding/google_ads_access\", 14],\n [\"/datapulse/onboarding/google_analytics_access\", 15],\n [\"/datapulse/onboarding/google_merchant_access\", 16],\n [\"/datapulse/onboarding/google_my_business_access\", 17],\n [\"/datapulse/onboarding/google_search_console_access\", 18],\n [\"/datapulse/onboarding/microsoft_ads_access\", 19],\n [\"/datapulse/onboarding/youtube_access\", 20],\n [\"/datapulse/onboarding/service_agreements_intro\", 21],\n [\"/datapulse/onboarding/ppc_service_agreements\", 22],\n [\"/datapulse/onboarding/seo_service_agreements\", 23],\n [\"/datapulse/onboarding/ppc_configuration_intro\", 24],\n [\"/datapulse/onboarding/track_specific_action_ids\", 25],\n [\"/datapulse/onboarding/social_conversions\", 26],\n [\"/datapulse/onboarding/inflation\", 27],\n [\"/datapulse/onboarding/campaign_groups\", 28],\n [\"/datapulse/onboarding/all_ppc_goals\", 29],\n [\"/datapulse/onboarding/search_goals\", 30],\n [\"/datapulse/onboarding/social_goals\", 31],\n [\"/datapulse/onboarding/display_goals\", 32],\n [\"/datapulse/onboarding/video_goals\", 33],\n [\"/datapulse/onboarding/ppc_dashboard_customization\", 34],\n [\"/datapulse/onboarding/ppc_dashboard_customization_all\", 35],\n [\"/datapulse/onboarding/ppc_data_pull\", 36],\n [\"/datapulse/onboarding/datafeedwatch_install\", 37],\n [\"/datapulse/onboarding/scripts\", 38],\n [\"/datapulse/onboarding/ppc_alerts\", 39],\n [\"/datapulse/onboarding/seo_configuration_intro\", 40],\n [\"/datapulse/onboarding/keyword_groups\", 41],\n [\"/datapulse/onboarding/landing_pages\", 42],\n [\"/datapulse/onboarding/semrush_setup\", 43],\n [\"/datapulse/onboarding/google_analytics_goal_tracking\", 44],\n [\"/datapulse/onboarding/seo_goals\", 45],\n [\"/datapulse/onboarding/seo_dashboard_customization\", 46],\n [\"/datapulse/onboarding/seo_data_pull\", 47],\n [\"/datapulse/onboarding/seo_alerts\", 48],\n [\"/datapulse/onboarding/complete\", 49],\n ]);\n\n const [teamAccessChoices, setTeamAccessChoices] = useState(\n jsDig([\"teamChoices\"], window.localStorage) !== \"undefined\" && jsDig([\"teamChoices\"], window.localStorage) !== undefined\n ? JSON.parse(jsDig([\"teamChoices\"], window.localStorage))\n : [\n \"google_analytics_access\",\n \"google_ads_access\",\n \"microsoft_ads_access\",\n \"google_merchant_access\",\n \"datafeedwatch_install\",\n \"facebook_ads_access\",\n \"tiktok_ads_access\",\n \"youtube_access\",\n \"google_search_console_access\",\n \"google_my_business_access\",\n \"test\"\n ]\n );\n\n const teamAccessNav = (currentPage) => {\n const exists = teamAccessChoices.filter((el) => el.includes(currentPage));\n if (exists.length !== 0) {\n const index = teamAccessChoices.indexOf(currentPage);\n if (index !== teamAccessChoices.length - 1) {\n return teamAccessChoices[index + 1];\n }\n }\n return \"service_agreements_intro\";\n };\n\n const pageLocator = () => {\n return useEffect(() => {\n let current = allPages.filter((el) => el[0] === window.location.pathname);\n if (current[0] === undefined) {\n return;\n }\n if (current[0] === `/datapulse/onboarding/complete`) {\n setPercent((prevState) => ({ ...prevState, currentPage: 100 }));\n } else {\n setPercent((prevState) => ({ ...prevState, currentPage: current[0][1] }));\n }\n }, []);\n };\n const [percent, setPercent] = useState({\n currentPage: 0,\n totalPages: allPages.length,\n lastPercent: 0,\n percent: function () {\n let complete = props.onboarding_progress.filter((page) => page.completed == true).length;\n let total = props.onboarding_progress.length;\n return Math.floor((complete / (total > 0 ? total : 1)) * 100);\n },\n });\n\n const initialKeywordGroups =\n props.keyword_groups.length > 0\n ? props.keyword_groups\n : [\n {\n name: \"\",\n conditions: [\n { word: \"\", contains: \"\" },\n { word: \"\", contains: \"\" },\n ],\n },\n ];\n\n const [keywordGroups, setKeywordGroups] = useState(initialKeywordGroups);\n const [landingPageGroups, setLandingPageGroups] = useState(props.seo_section.landing_page_groups ? props.seo_section.landing_page_groups : []);\n const semrushInitialIds = jsDig([\"platform_data\", \"semrush\", \"project_ids\"], props.seo_section)\n ? jsDig([\"platform_data\", \"semrush\", \"project_ids\"], props.seo_section).map((el) => {\n if (!el.website) el.website = primarySite;\n return el;\n })\n : undefined;\n const [semRushIds, setSemRushIds] = useState(jsDig([\"platform_data\", \"semrush\", \"project_ids\"], props.seo_section) ? semrushInitialIds : []);\n const [customAnalyticGoals, setCustomAnalyticaGoals] = useState(props.seo_section.custom_analytics_goals ? props.seo_section.custom_analytics_goals : {});\n const [customAnalyticGoalsEnabled, setCustomAnalyticaGoalsEnabled] = useState(props.seo_section.custom_analytics_goals_enabled ? true : false);\n\n const defaultMetrics = (service, sectionName) => {\n const defaults = jsDig([\"metricsByDashboard\", service, \"defaults\", accountType == 1 ? \"leadgen\" : \"ecommerce\", sectionName], allMetricData);\n return Object.keys(defaults ? defaults : {});\n };\n\n const seoSectionList = jsDig([\"metricsByDashboard\", \"seo\", \"sections\"], allMetricData);\n const [seoDefault, setSeoDefault] = useState(props.seo_section.default_dash_used !== null ? props.seo_section.default_dash_used : true);\n let initialSeoDashboardOrder =\n !(props.seo_section.dashboard_order && props.seo_section.dashboard_order.length > 0) || seoDefault\n ? Object.keys(seoSectionList).map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"seo\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\",\n }))\n : props.seo_section.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n });\n\n let seoInitialDashboards = [{ name: \"SEO: Overall\", id: 0, dashboardOrder: initialSeoDashboardOrder }];\n props.seo_section.landing_page_groups.forEach((el, idx) => {\n seoInitialDashboards.push({\n name: el.name,\n id: el.id,\n dashboardOrder:\n !(el.dashboard_order && el.dashboard_order.length > 0) || seoDefault\n ? Object.keys(seoSectionList)\n .filter((section) => section != \"landingPageBreakdown\")\n .map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"seo\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\",\n }))\n : el.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n }),\n });\n });\n\n const ppcSectionList = jsDig([\"metricsByDashboard\", \"ppc\", \"sections\"], allMetricData);\n const [ppcDefault, setPpcDefault] = useState(props.ppc_section.default_dash_used !== null ? props.ppc_section.default_dash_used : true);\n let initialPpcDashboardOrder =\n !(props.ppc_section.dashboard_order && props.ppc_section.dashboard_order.length > 0) || ppcDefault\n ? Object.keys(ppcSectionList).map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"ppc\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\",\n }))\n : props.ppc_section.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n });\n let ppcInitialDashboards = [{ name: \"PPC: Overall\", id: 0, dashboardOrder: initialPpcDashboardOrder }];\n\n const displaySectionList = jsDig([\"metricsByDashboard\", \"display\", \"sections\"], allMetricData);\n const [displayDefault, setDisplayDefault] = useState(props.display_section.default_dash_used !== null ? props.display_section.default_dash_used : true);\n let initialDisplayDashboardOrder =\n !(props.display_section.dashboard_order && props.display_section.dashboard_order.length > 0) || displayDefault\n ? Object.keys(displaySectionList).map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"display\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\",\n }))\n : props.display_section.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n });\n let displayInitialDashboards = [{ name: \"Display: Overall\", id: 0, dashboardOrder: initialDisplayDashboardOrder }];\n props.display_section.campaign_groups.forEach((el, idx) => {\n displayInitialDashboards.push({\n name: el.name,\n id: el.id,\n dashboardOrder:\n !(el.dashboard_order && el.dashboard_order.length > 0) || displayDefault\n ? Object.keys(displaySectionList)\n .filter((section) => section != \"campaignGroups\")\n .map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"display\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\",\n }))\n : el.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n }),\n });\n });\n\n const searchSectionList = jsDig([\"metricsByDashboard\", \"search\", \"sections\"], allMetricData);\n const [searchDefault, setSearchDefault] = useState(props.search_section.default_dash_used !== null ? props.search_section.default_dash_used : true);\n let initialSearchDashboardOrder =\n !(props.search_section.dashboard_order && props.search_section.dashboard_order.length > 0) || searchDefault\n ? Object.keys(searchSectionList).map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"search\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\" ? true : false,\n }))\n : props.search_section.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n });\n let searchInitialDashboards = [{ name: \"Search: Overall\", id: 0, dashboardOrder: initialSearchDashboardOrder }];\n props.search_section.campaign_groups.forEach((el, idx) => {\n searchInitialDashboards.push({\n name: el.name,\n id: el.id,\n dashboardOrder:\n !(el.dashboard_order && el.dashboard_order.length > 0) || searchDefault\n ? Object.keys(searchSectionList)\n .filter((section) => section != \"campaignGroups\")\n .map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"search\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\",\n }))\n : el.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n }),\n });\n });\n\n const socialSectionList = jsDig([\"metricsByDashboard\", \"social\", \"sections\"], allMetricData);\n const [socialDefault, setSocialDefault] = useState(props.social_section.default_dash_used !== null ? props.social_section.default_dash_used : true);\n let initialSocialDashboardOrder =\n !(props.social_section.dashboard_order && props.social_section.dashboard_order.length > 0) || socialDefault\n ? Object.keys(socialSectionList).map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"social\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\" ? true : false,\n }))\n : props.social_section.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n });\n let socialInitialDashboards = [{ name: \"Social: Overall\", id: 0, dashboardOrder: initialSocialDashboardOrder }];\n props.social_section.campaign_groups.forEach((el, idx) => {\n socialInitialDashboards.push({\n name: el.name,\n id: el.id,\n dashboardOrder:\n !(el.dashboard_order && el.dashboard_order.length > 0) || socialDefault\n ? Object.keys(socialSectionList)\n .filter((section) => section != \"campaignGroups\")\n .map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"social\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\" ? true : false,\n }))\n : el.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n }),\n });\n });\n const videoSectionList = jsDig([\"metricsByDashboard\", \"video\", \"sections\"], allMetricData);\n const [videoDefault, setVideoDefault] = useState(props.video_section.default_dash_used !== null ? props.video_section.default_dash_used : true);\n let initialVideoDashboardOrder =\n !(props.video_section.dashboard_order && props.video_section.dashboard_order.length > 0) || videoDefault\n ? Object.keys(videoSectionList).map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"video\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\" ? true : false,\n }))\n : props.video_section.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n });\n let videoInitialDashboards = [{ name: \"Video: Overall\", id: 0, dashboardOrder: initialVideoDashboardOrder }];\n props.video_section.campaign_groups.forEach((el, idx) => {\n videoInitialDashboards.push({\n name: el.name,\n id: el.id,\n dashboardOrder:\n !(el.dashboard_order && el.dashboard_order.length > 0) || videoDefault\n ? Object.keys(videoSectionList)\n .filter((section) => section != \"campaignGroups\")\n .map((sectionName, index) => ({\n name: sectionName,\n order: index,\n metrics_data: defaultMetrics(\"video\", sectionName).reduce((acc, metric) => ((acc[metric] = \"1\"), acc), {}),\n enabled: sectionName != \"goalsAndProjections\" ? true : false,\n }))\n : el.dashboard_order.map((el, index) => {\n el.order = index;\n return el;\n }),\n });\n });\n\n const [seoDashboard, setSeoDashboard] = useState(seoInitialDashboards);\n const [ppcDashboard, setPpcDashboard] = useState(ppcInitialDashboards);\n const [displayDashboard, setDisplayDashboard] = useState(displayInitialDashboards);\n const [searchDashboard, setSearchDashboard] = useState(searchInitialDashboards);\n const [socialDashboard, setSocialDashboard] = useState(socialInitialDashboards);\n const [videoDashboard, setVideoDashboard] = useState(videoInitialDashboards);\n\n const submitForm = (url = \"/datapulse/onboarding\") => {\n // Submit the form with javascript so that we can construct the params we send to the controller\n const submitUrl = \"/datapulse/onboarding\";\n //changing the uniform params structure\n let seoDashBoardData = {};\n seoDashboard.forEach((el) => (seoDashBoardData[`${el.id}`] = el.dashboardOrder));\n let ppcDashboardData = {};\n ppcDashboard.forEach((el) => (ppcDashboardData[`${el.id}`] = el.dashboardOrder));\n let searchDashboardData = {};\n searchDashboard.forEach((el) => (searchDashboardData[`${el.id}`] = el.dashboardOrder));\n let displayDashboardData = {};\n displayDashboard.forEach((el) => (displayDashboardData[`${el.id}`] = el.dashboardOrder));\n let videoDashboardData = {};\n videoDashboard.forEach((el) => (videoDashboardData[`${el.id}`] = el.dashboardOrder));\n let socialDashboardData = {};\n socialDashboard.forEach((el) => (socialDashboardData[`${el.id}`] = el.dashboardOrder));\n let paramsObject = {\n current_page: window.location.pathname,\n conversion_actions: conversionActions,\n facebook_custom_conversions: facebookCustomConversions,\n facebook_conversion_objective: facebookConversionObjective,\n tiktok_conversion_objective: tiktokConversionObjective,\n inflation: inflation,\n campaign_groups: campaignGroups,\n goals: goals,\n scripts: scripts,\n org_id: props.organization.id,\n google_ads_mcc_id: mccId,\n semrush_api_key: semrushApiKey,\n ppc_fee_structure: ppcFeeStructure,\n seo_fee_structure: seoFeeStructure,\n video_fee_structure: videoFeeStructure,\n social_fee_structure: socialFeeStructure,\n display_fee_structure: displayFeeStructure,\n search_fee_structure: searchFeeStructure,\n ppc_fees: ppcFees,\n seo_fees: seoFees,\n client_account_id: props.client_account.id,\n company_name: companyName,\n account_type: accountType == \"0\" ? \"ecommerce\" : \"leadgen\",\n legal_company_name: legalInfo[0],\n street_address: legalInfo[1],\n unit_building_number: legalInfo[2],\n city: legalInfo[3],\n state_province: legalInfo[4],\n postal_code: legalInfo[5],\n seo_enabled: seoEnabled,\n video_enabled: videoEnabled,\n social_enabled: socialEnabled,\n display_enabled: displayEnabled,\n search_enabled: searchEnabled,\n video_fee_structure_enabled: videoUniqueFeeEnabled,\n social_fee_structure_enabled: socialUniqueFeeEnabled,\n display_fee_structure_enabled: displayUniqueFeeEnabled,\n search_fee_structure_enabled: searchUniqueFeeEnabled,\n websites: {\n primary: primarySite,\n additional: additionalWebs,\n },\n website_platform: webPlatform,\n invoice_recipients: invoiceRecipients,\n development_capabilities: developmentCapabilities,\n creative_capabilities: creativeCapabilities,\n global_website_permissions: globalPermission,\n custom_website_permissions: customPermissions,\n custom_website_permissions_enabled: isPermissionsEnabled,\n team_access: teamAccess,\n shopify_channel: shopifyChannel,\n shopify_url: shopifyUrl ? shopifyUrl.split(\".myshopify.com\")[0] + \".myshopify.com\" : \"\",\n google_analytics_ids: googleAnalyticsIds,\n search_google_ads_id: sameId ? allGoogleAdsIds : searchGoogleAdsIds,\n display_google_ads_id: sameId ? allGoogleAdsIds : displayGoogleAdsIds,\n video_google_ads_id: sameId ? allGoogleAdsIds : videoGoogleAdsIds,\n social_facebook_ads_id: facebookAdsIds,\n social_tiktok_ads_id: tiktokAdsIds,\n search_microsoft_ads_id: microsoftAdsIds,\n authenticity_token: authenticityToken,\n current_onboarding_page: window.location.origin,\n supporting_roles: {\n seo: { account_leads: seoAccountLeads, account_support: seoAccountSupports },\n search: { account_leads: searchAccountLeads, account_support: searchAccountSupports },\n social: { account_leads: socialAccountLeads, account_support: socialAccountSupports },\n display: { account_leads: displayAccountLeads, account_support: displayAccountSupports },\n video: { account_leads: videoAccountLeads, account_support: videoAccountSupports },\n },\n points_of_contact: { seo: seoPointsOfContact, ppc: ppcPointsOfContact },\n ppc_section: { white_label_service: ppcWhiteLabelService },\n seo_section: { white_label_service: seoWhiteLabelService },\n ppc_start_date: ppcStartDate,\n seo_start_date: seoStartDate,\n client_users: selectedUsers,\n new_users: personBoxes,\n keyword_groups: keywordGroups,\n semrush_ids: semRushIds,\n // pull_platform_data: pullPlatforms ,\n landing_page_groups: landingPageGroups,\n custom_analytics_goals: customAnalyticGoals,\n custom_analytics_goals_enabled: customAnalyticGoalsEnabled,\n dashboard_builder: {\n seo_default: seoDefault,\n ppc_default: ppcDefault,\n search_default: searchDefault,\n display_default: displayDefault,\n video_default: videoDefault,\n social_default: socialDefault,\n seo: seoDashBoardData,\n ppc: ppcDashboardData,\n search: searchDashboardData,\n display: displayDashboardData,\n video: videoDashboardData,\n social: socialDashboardData,\n },\n search_scripts: searchScripts,\n search_script_variables: searchScriptsVar,\n social_scripts: socialScripts,\n social_script_variables: socialScriptsVar,\n display_scripts: displayScripts,\n display_script_variables: displayScriptsVar,\n video_scripts: videoScripts,\n video_script_variables: videoScriptsVar,\n seo_scripts: seoScripts,\n seo_script_variables: seoScriptsVar,\n domain_property: domainProperty,\n };\n // Don't bother processing an image upload if the image wasn't changed\n if (base64Img != false) {\n paramsObject[\"logo\"] = base64Img;\n }\n\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n // location.reload();\n //change it back to below before push\n // window.location.href = data.redirect_url;\n if (percent.currentPage == 9 && props.client_account.website_platform !== 0) {\n window.location.href = url;\n } else {\n window.location.href = url;\n }\n },\n });\n };\n const basicRoutes = [\n [\"Account_Configuration_Intro\", ],\n [\"Company_Type\", ],\n [\n \"Services\",\n ,\n ],\n [\"Brand_Logo\", ],\n [\n \"Website\",\n ,\n ],\n [\n \"Company_Legal_Information\",\n ,\n ],\n [\n \"Datapulse_Access\",\n ,\n ],\n [\n \"Invoice_Recipients\",\n ,\n ],\n [\n \"Permissions\",\n ,\n ],\n [\n \"Team_Access_Intro\",\n ,\n ],\n [\n \"Shopify_Access\",\n ,\n ],\n [\"Shopify_Authenticate\", ],\n [\n \"Google_Analytics_Access\",\n ,\n ],\n [\n \"Google_Ads_Access\",\n ,\n ],\n [\n \"Microsoft_Ads_Access\",\n ,\n ],\n [\n \"Google_Merchant_Access\",\n ,\n ],\n [\n \"DataFeedWatch_Install\",\n ,\n ],\n [\n \"Facebook_Ads_Access\",\n ,\n ],\n [\n \"Tiktok_Ads_Access\",\n ,\n ],\n [\n \"Youtube_Access\",\n ,\n ],\n [\n \"Google_Search_Console_Access\",\n ,\n ],\n [\n \"Google_My_Business_Access\",\n ,\n ],\n [\"Service_Agreements_Intro\", ],\n [\"PPC_Configuration_Intro\", ],\n [\n \"Track_Specific_Action_IDs\",\n ,\n ],\n [\n \"Social_Conversions\",\n ,\n ],\n [\"Inflation\", ],\n [\n \"Campaign_Groups\",\n ,\n ],\n [\n \"Ppc_Data_Pull\",\n ,\n ],\n [\"All_PPC_Goals\", ],\n [\"Search_Goals\", ],\n [\"Social_Goals\", ],\n [\"Display_Goals\", ],\n [\"Video_Goals\", ],\n [\"Scripts\", ],\n [\n \"PPC_Dashboard_Customization\",\n ,\n ],\n [\n \"PPC_Dashboard_Customization_All\",\n ,\n ],\n [\n \"PPC_Alerts\",\n ,\n ],\n\n [\"SEO_Configuration_Intro\", ],\n [\n \"Keyword_Groups\",\n ,\n ],\n [\"Landing_Pages\", ],\n [\n \"SEMRush_Setup\",\n ,\n ],\n [\n \"Google_Analytics_Goal_Tracking\",\n ,\n ],\n [\"SEO_Goals\", ],\n [\n \"SEO_Dashboard_Customization\",\n ,\n ],\n [\n \"Seo_Data_Pull\",\n ,\n ],\n [\n \"SEO_Alerts\",\n ,\n ],\n [\n \"SEO_Service_Agreements\",\n ,\n ],\n [\n \"PPC_Service_Agreements\",\n ,\n ],\n [\n \"Complete\",\n ,\n ],\n [\"Progress_Bar\", ],\n ];\n return (\n \n \n \n \n
    \n
    \n \n {\n let shouldRedirect = props.onboarding_progress && props.onboarding_progress.length > 0;\n if (shouldRedirect) {\n // Just need the first uncompleted page\n let currentUrl = props.onboarding_progress.find((page) => page.completed == false);\n if (currentUrl) {\n return ;\n } else {\n return ;\n }\n } else {\n return ;\n }\n }}\n />\n (\n \n )}\n exact\n path=\"/datapulse/onboarding/not_complete\"\n />\n\n {basicRoutes.map((page) => {\n const url = page[0].toLowerCase();\n const path = `/datapulse/onboarding/${url}`;\n return (\n \n {page[1]}\n \n );\n })}\n \n
    \n
    \n \n \n
    \n \n
    \n \n
    \n
    \n \n );\n}\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\"\nimport NextButton from \"./NextButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function PPCConfigurationIntro(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator()\n return (\n <>\n \n \n
    \n

    Next Up: PPC Configuration

    \n
    \n
    \n

    Now we will configure the PPC services. You will be able to set up campaign groups, inflation, scripts, and also manage all of your goals for each subservice.

    \n
    \n \n
    \n \n \n \n
    \n \n \n
    \n \n
    \n \n );\n}\n","import React from \"react\";\n\nimport Dashboard from \"../../client_config/ppc_config/all/dashboard/Dashboard\";\n\nexport default function All(props) {\n return (\n
    \n \n
    \n );\n}\n","import React from \"react\";\n\nimport Dashboard from \"../../client_config/ppc_config/display/dashboard/Dashboard\";\n\nexport default function Display(props) {\n return (\n
    \n \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Container, Tab, Nav, Form } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport Search from \"./Search\";\nimport Display from \"./Display\";\nimport Social from \"./Social\";\nimport Video from \"./Video\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport updateParams from \"utils/updateParams.js\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function PPCDashboardCustomization(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const [tabLocation, setTabLocation] = useState(\"\");\n const [validated, setValidatation] = useState(false);\n\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"search\";\n }\n setTabLocation(page);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"page\", key);\n };\n\n const [showBoxes, setShowBoxes] = useState(false);\n \n return (\n \n \n \n \n \n
    \n

    PPC Dashboard Customization - Services

    \n
    \n
    \n

    Would you like to customize your PPC dashboards now or use the default settings?

    \n
    \n \n
    \n\n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(false);\n setValidatation(true);\n props.setSearchDefault(true)\n props.setDisplayDefault(true)\n props.setSocialDefault(true)\n props.setVideoDefault(true)\n }}\n />\n {\n setShowBoxes(true);\n setValidatation(true);\n props.setSearchDefault(false)\n props.setDisplayDefault(false)\n props.setSocialDefault(false)\n props.setVideoDefault(false)\n }}\n />\n
    \n \n
    \n \n \n

    \n Check the boxes to enable/disable sections, and then click and drag dashboard boxes to reorder how they will appear in your performance\n dashboards:\n

    \n

    \n

    \n You will configure the \"All\" PPC dashboard on the next page and available options will be dependent on how the below services are set up.\n

    \n \n
    \n \n
    \n
    \n {showBoxes === false &&
    }\n selectTab(k)}>\n \n \n \n {props.search_section.enabled ? (\n \n ) : (\n
    \n \n \n
    \n

    Search is not currently enabled

    \n
    \n \n
    \n
    \n )}\n
    \n \n {props.display_section.enabled ? (\n \n ) : (\n
    \n \n \n
    \n

    Display is not currently enabled

    \n
    \n \n
    \n
    \n )}\n
    \n \n {props.social_section.enabled ? (\n \n ) : (\n
    \n \n \n
    \n

    Social is not currently enabled

    \n
    \n \n
    \n
    \n )}\n
    \n \n {props.video_section.enabled ? (\n \n
    \n
    \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Container, Tab, Nav, Form, OverlayTrigger, Tooltip } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport All from \"./All\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function PPCDashboardCustomizationAll(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [validated, setValidatation] = useState(false);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const [showBoxes, setShowBoxes] = useState(false);\n let chevronLeft = require(\"images/onboarding/chevronLeft.png\");\n chevronLeft = ;\n const backTooltip = (props) => (\n \n You cannot return to the previous page and change your config, but after finishing onboarding, you can adjust your dashboards under configs.\n \n );\n return (\n \n \n \n \n \n
    \n

    PPC Dashboard Customization - All

    \n
    \n
    \n

    Would you like to customize your PPC dashboards now or use the default settings?

    \n
    \n \n
    \n\n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(false);\n setValidatation(true);\n props.setPpcDefault(true)\n }}\n />\n {\n setShowBoxes(true);\n setValidatation(true);\n props.setPpcDefault(false)\n }}\n />\n
    \n \n
    \n \n \n

    \n Check the boxes to enable/disable sections, and then click and drag dashboard boxes to reorder how they will appear in your performance\n dashboards:\n

    \n \n
    \n \n
    \n
    \n {showBoxes === false &&
    }\n \n \n \n \n \n \n \n \n
    \n \n \n
    \n \n \n {chevronLeft}\n {` Back`}\n \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React from \"react\";\n\nimport Dashboard from \"../../client_config/ppc_config/search/dashboard/Dashboard\";\n\nexport default function Search(props) {\n return (\n
    \n \n
    \n );\n}\n","import React from \"react\";\n\nimport Dashboard from \"../../client_config/ppc_config/social/dashboard/Dashboard\";\n\nexport default function Social(props) {\n return (\n
    \n \n
    \n );\n}\n","import React from \"react\";\n\nimport Dashboard from \"../../client_config/ppc_config/video/dashboard/Dashboard\";\n\nexport default function Video(props) {\n return (\n
    \n \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Button, Table, Form, Row, Col, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomSwitch from \"utils/CustomSwitch\";\nimport PointsofContact from \"../client_config/account_config/services_agreement/PointsOfContact\";\nimport PpcSupportingRoles from \"../client_config/account_config/services_agreement/ppc/PpcSupportingRoles\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function PPCServiceAgreements(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const isPpcEnabled = props[`searchEnabled`] || props[`socialEnabled`] || props[`displayEnabled`] || props[`videoEnabled`];\n const [isChecked, setIsChecked] = useState(isPpcEnabled);\n const [searchValidation, setSearchValidation] = useState(false)\n const [socialValidation, setSocialValidation] = useState(false)\n const [displayValidation, setDisplayValidation] = useState(false)\n const [videoValidation, setVideoValidation] = useState(false)\n const [validated, setValidation] = useState(true);\n const removeRow = (id, selector) => {\n if (!isChecked) {\n return undefined;\n }\n if (selector == \"1\") {\n const newArray = props.ppcFeeStructure.filter((el) => el.id !== id);\n\n props.setPpcFeeStructure([...newArray]);\n }\n if (selector == \"2\") {\n const newArray = props.ppcFees.filter((el) => el.id !== id);\n props.setPpcFees([...newArray]);\n }\n };\n const ppcStartDate = new Date(props.ppcStartDate);\n\n const validator = () => {\n setSearchValidation(false)\n setSocialValidation(false)\n setVideoValidation(false)\n setDisplayValidation(false)\n setValidation(false);\n if (!isChecked || (props.ppcFeeStructure.length > 0 && props.ppcPointsOfContact.length > 0 && ppcStartDate.getFullYear() > 2000)) {\n if (props.searchEnabled) {\n if (props.searchAccountLeads.length === 0 || props.searchAccountSupports.length === 0) {\n setSearchValidation(false)\n }\n if (props.searchAccountLeads.length > 0 && props.searchAccountSupports.length > 0)\n if (props.searchUniqueFeeEnabled === false) {\n setSearchValidation(true)\n } else if (props.searchFeeStructure.length > 0) setSearchValidation(true);\n else setSearchValidation(false);\n }\n else {\n setSearchValidation(true)\n }\n if (props.socialEnabled) {\n if (props.socialAccountLeads.length === 0 || props.socialAccountSupports.length === 0) {\n setSocialValidation(false)\n }\n if (props.socialAccountLeads.length > 0 && props.socialAccountSupports.length > 0)\n if (props.socialUniqueFeeEnabled === false) {\n setSocialValidation(true)\n } else if (props.socialFeeStructure.length > 0) setSocialValidation(true);\n else setSocialValidation(false);\n }\n else {\n setSocialValidation(true)\n }\n if (props.videoEnabled) {\n if (props.videoAccountLeads.length === 0 || props.videoAccountSupports.length === 0) {\n setVideoValidation(false)\n }\n if (props.videoAccountLeads.length > 0 && props.videoAccountSupports.length > 0)\n if (props.videoUniqueFeeEnabled === false) {\n setVideoValidation(true)\n } else if (props.videoFeeStructure.length > 0) setVideoValidation(true);\n else setVideoValidation(false);\n } else {\n setVideoValidation(true)\n }\n if (props.displayEnabled) {\n if (props.displayAccountLeads.length === 0 || props.displayAccountSupports.length === 0) {\n setDisplayValidation(false)\n }\n if (props.displayAccountLeads.length > 0 && props.displayAccountSupports.length > 0)\n if (props.searchUniqueFeeEnabled === false) {\n setDisplayValidation(true)\n } else if (props.displayFeeStructure.length > 0) setDisplayValidation(true);\n else setDisplayValidation(false);\n } \n else {\n setDisplayValidation(true)\n }\n if (searchValidation === true && socialValidation === true && videoValidation === true && displayValidation === true) {setValidation(true)}\n if (!props.searchEnabled && !props.displayEnabled && !props.socialEnabled && !props.videoEnabled) setValidation(true);\n }\n else {\n setValidation(false);\n }\n }\n\n useEffect(() => validator());\n return (\n <>\n
    \n \n \n
    \n

    PPC Service Agreements

    \n
    \n
    \n

    \n Please configure the PPC service agreements below for both overall PPC and by sub-service. We have already enabled any services that you have\n indicated in the beginning of onboarding, but you can make changes here if need be.\n

    \n
    \n \n
    \n \n \n

    To complete:

    \n

    \n

    Step 1: Choose which services should be enabled

    \n

    Step 2: Choose a start date for each service

    \n

    Step 3: Fill in invoicing information (add fees if applicable)

    \n

    Step 4: Assign points of contact, leads and supports (must assign for every service)

    \n \n
    \n
    \n \n \n \n \n \n\n
    \n
    \n
    \n \n PPC\n

    \n }\n variant=\"ppc\"\n customClass=\"d-inline-block\"\n id=\"ob-agree-ppc-enable\"\n />\n
    \n \n \n

    Agreement

    \n
    \n
    \n \n \n \n \n \n \n \n \n \n {props.ppcFeeStructure.map((el, index) => {\n const flatFeeEnabled = el[\"flat_fee_enabled\"] == \"1\";\n const percentageEnabled = el[\"percentage_fee_enabled\"] == \"1\";\n const greyout1 = flatFeeEnabled ? null : { opacity: \"0.6\" };\n const greyout2 = percentageEnabled ? null : { opacity: \"0.6\" };\n return (\n \n \n \n \n \n );\n })}\n \n
    \n

    Select and set shared fee structure

    \n \n
    \n \n Fixed amount\n

    \n
    \n {\" \"}\n \n % of ad spend (total or above)\n

    \n
    \n
    \n

    Over ad spend

    \n
    \n {\n let newArray = props.ppcFeeStructure;\n newArray[index][\"over_ad_spend\"] = e.target.value;\n props.setPpcFeeStructure([...newArray]);\n }}\n />\n\n $\n
    \n

    charge

    \n
    \n
    \n
    \n
    \n {\n let newArray = props.ppcFeeStructure;\n newArray[index][\"flat_fee_enabled\"] = flatFeeEnabled ? \"0\" : \"1\";\n props.setPpcFeeStructure([...newArray]);\n }}\n id={`ppcagreecharge ` + `${index}`}\n />\n
    \n
    \n {\n let newArray = props.ppcFeeStructure;\n newArray[index][\"flat_fee\"] = e.target.value;\n props.setPpcFeeStructure([...newArray]);\n }}\n />\n \n $\n \n
    \n
    \n
    \n
    \n
    \n {\n let newArray = props.ppcFeeStructure;\n newArray[index][\"percentage_fee_enabled\"] = percentageEnabled ? \"0\" : \"1\";\n props.setPpcFeeStructure([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props.ppcFeeStructure;\n\n newArray[index][\"percentage_fee_total_over\"] = e.target.value;\n props.setPpcFeeStructure([...newArray]);\n }}\n size=\"sm\"\n placeholder=\"0\">\n \n \n \n
    \n
    \n {\n let newArray = props.ppcFeeStructure;\n newArray[index][\"percentage_fee\"] = e.target.value;\n props.setPpcFeeStructure([...newArray]);\n }}\n />\n \n %\n \n
    \n {index >= 0 && removeRow(el.id, \"1\")} className=\"fas fa-minus-circle\">}\n
    \n
    \n
    \n \n props.setPpcFeeStructure([\n ...props.ppcFeeStructure,\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ])\n }>\n + Add Condition\n \n
    \n
    \n

    Active PPC Fees

    \n

    \n View full history\n

    \n
    \n {/* */}\n\n \n \n \n \n \n \n \n \n \n \n \n {props.ppcFees.map((el, index) => {\n const greyout = el[\"enabled\"] == \"1\" ? null : { opacity: \"0.6\" };\n return (\n \n \n \n \n \n \n \n );\n })}\n \n
    \n Frequency\n \n Label\n \n Amount\n \n Status\n
    \n
    \n {\n let newArray = props.ppcFees;\n newArray[index][\"enabled\"] = el[\"enabled\"] == \"1\" ? \"0\" : \"1\";\n props.setPpcFees([...newArray]);\n }}\n />\n
    \n
    \n
    \n {\n let newArray = props.ppcFees;\n newArray[index][\"frequency\"] = e.target.value;\n props.setPpcFees([...newArray]);\n }}>\n \n \n \n
    \n
    \n
    \n {\n let newArray = props.ppcFees;\n newArray[index][\"label\"] = e.target.value;\n props.setPpcFees([...newArray]);\n }}\n />\n
    \n
    \n
    \n
    \n {\n let newArray = props.ppcFees;\n newArray[index][\"amount\"] = e.target.value;\n props.setPpcFees([...newArray]);\n }}\n />\n \n $\n \n
    \n
    \n removeRow(el.id, \"2\")} className={\"fas fa-minus-circle\"}>\n
    \n
    \n
    \n

    \n {index === 0 && \"\"}\n {index === 1 && \"\"}\n {index === 2 && \"\"}\n

    \n
    \n
    \n \n props.setPpcFees([\n ...props.ppcFees,\n {\n id: uuidv4(),\n label: \"\",\n amount: \"0\",\n status: \"0\",\n enabled: \"0\",\n frequency: \"Monthly\",\n },\n ])\n }>\n + Add fee\n \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n \n

    Configure PPC subservices

    \n
    \n\n {[\"Search\", \"Social\", \"Display\", \"Video\"].map((section, index) => {\n const sectionName = section.toLowerCase();\n const dataSet = props[`${sectionName}FeeStructure`];\n const greyout = props[`${sectionName}UniqueFeeEnabled`] === true ? null : { opacity: \"0.6\" };\n const greyout2 = props[`${sectionName}UniqueFeeEnabled`] === true ? null : { backgroundColor: \"white\", opacity: \"0.6\" };\n\n const addInnerRow = () => {\n props[`set${section}FeeStructure`]([\n ...props[`${sectionName}FeeStructure`],\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ]);\n };\n\n const removeInnerRow = (id, enabled, uniqueEnabled) => {\n props[`set${section}FeeStructure`](props[`${sectionName}FeeStructure`].filter((row) => row.id !== id));\n };\n return (\n
    \n \n
    \n \n \n
    \n
    \n \n {section}\n \n }\n variant=\"ppc\"\n id={`${sectionName}-subservice`}\n customClass=\"d-inline-block\"\n isEnabled={props[`${sectionName}Enabled`]}\n setIsEnabled={() => props[`set${section}Enabled`](!props[`${sectionName}Enabled`])}\n />\n
    \n\n
    \n {\n props[`set${section}UniqueFeeEnabled`](false);\n }}\n disabled={!props[`${sectionName}Enabled`]}\n />\n {\n props[`set${section}UniqueFeeEnabled`](true);\n }}\n disabled={!props[`${sectionName}Enabled`]}\n />\n
    \n
    \n
    \n \n \n {props[`${sectionName}FeeStructure`] &&\n props[`${sectionName}FeeStructure`].map((el, index) => {\n const flatFeeEnabled = el[\"flat_fee_enabled\"] == \"1\";\n\n const percentageEnabled = el[\"percentage_fee_enabled\"] == \"1\";\n const greyout1 =\n props[`${sectionName}UniqueFeeEnabled`] === true && flatFeeEnabled === true ? null : { opacity: \"0.6\" };\n const greyout2 = props[`${sectionName}UniqueFeeEnabled`] === true && percentageEnabled ? null : { opacity: \"0.6\" };\n return (\n \n \n \n \n \n );\n })}\n \n
    \n
    \n

    Over ad spend

    \n\n
    \n {\n let newArray = props[`${sectionName}FeeStructure`];\n newArray[index][\"over_ad_spend\"] = e.target.value;\n props[`set${section}FeeStructure`]([...newArray]);\n }}\n />\n\n \n $\n \n
    \n

    charge

    \n
    \n
    \n
    \n
    \n {\n let newArray = props[`${sectionName}FeeStructure`];\n newArray[index][\"flat_fee_enabled\"] = flatFeeEnabled ? \"0\" : \"1\";\n props[`set${section}FeeStructure`]([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props[`${sectionName}FeeStructure`];\n newArray[index][\"flat_fee\"] = e.target.value;\n props[`set${section}FeeStructure`]([...newArray]);\n }}\n />\n \n $\n \n
    \n
    \n
    \n
    \n
    \n {\n let newArray = props[`${sectionName}FeeStructure`];\n newArray[index][\"percentage_fee_enabled\"] = percentageEnabled ? \"0\" : \"1\";\n props[`set${section}FeeStructure`]([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props[`${sectionName}FeeStructure`];\n newArray[index][\"percentage_fee\"] = e.target.value;\n props[`set${section}FeeStructure`]([...newArray]);\n }}\n />\n \n %\n \n
    \n {index >= 0 && (\n \n removeInnerRow(el.id, props[`${sectionName}Enabled`], props[`${sectionName}UniqueFeeEnabled`])\n }\n className={\"fas fa-minus-circle\"}>\n )}\n
    \n
    \n
    \n addInnerRow()}>\n + Add Condition\n \n \n\n \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n );\n })}\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport NumberDropdown from \"utils/NumberDropdown\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function Permissions({\n setDevelopmentCapabilities,\n setCreativeCapabilities,\n permissionHandler,\n pageLocator,\n globalPermission,\n setGlobalPermission,\n isPermissionsEnabled,\n setIsPermissionsEnabled,\n customPermissions,\n setCustomPermissions,\n global_website_permissions,\n submitForm,\n onboarding_progress,\n}) {\n pageLocator();\n\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true && globalPermission) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n return (\n <>\n \n \n
    \n
    \n

    Capabilities and Permissions

    \n
    \n
    \n

    What does the company's development team look like?

    \n
    \n
    \n \n setDevelopmentCapabilities(e.target.value)}\n required>\n \n \n \n \n \n
    \n
    \n

    What does the company's creative team look like?

    \n
    \n
    \n \n setCreativeCapabilities(e.target.value)}\n required>\n \n \n \n \n \n
    \n
    \n \n
    \n \n \n

    Website Permissions

    \n \n
    \n \n \n

    \n This is where you should dictate permissions in regards to what the marketing team can and cannot make changes to.{\" \"}\n \n It's important to review these options carefully, as the marketing team will reference these answers first before making changes to your web\n properties.\n \n

    \n

    \n

    \n Make a global selection below to the left that best suits your preferences, and then customize any exceptions in the custom fields to the right. For\n example, if a client wants no changes made to the website but they are okay with changes to only content specifically, set the Global permissions to\n a 1, and then add 'Content' in the custom fields at a 2 or higher.\n

    \n \n
    \n \n \n
    \n \n \n

    Global permissions

    \n\n \n \n setGlobalPermission(4)}\n />\n \n \n {\" \"}\n 4\n \n \n

    Free to make changes, no notification necessary

    \n \n
    \n \n \n setGlobalPermission(3)}\n />\n \n \n {\" \"}\n 3\n \n \n

    Free to make changes with follow-up email summary

    \n \n
    \n \n \n setGlobalPermission(2)}\n />\n \n \n {\" \"}\n 2\n \n \n

    All changes require prior approval

    \n \n
    \n \n \n setGlobalPermission(1)}\n />\n \n \n {\" \"}\n 1\n \n \n

    \n {\" \"}\n No changes allowed, or

    exceptions only{\" \"}\n

    \n \n
    \n \n \n

    \n Custom permissions\n

    \n \n setIsPermissionsEnabled(!isPermissionsEnabled)}\n id={\"websitepermissionenable\"}\n checked={isPermissionsEnabled}\n label=\"Enable\"\n />\n \n {customPermissions.map((item, idx) => {\n return isPermissionsEnabled ? (\n \n \n \n \n {\n let newRecipients = [...customPermissions];\n newRecipients[idx].website = e.target.value;\n setCustomPermissions(newRecipients);\n }}\n />\n \n\n \n {\" \"}\n

    Set to:

    {\" \"}\n\n \n \n
    \n \n \n {idx >= 0 && (\n {\n const newPermissions = customPermissions.filter((el) => item.id !== el.id);\n setCustomPermissions([...newPermissions]);\n }}\n className=\"mb-2 fas fa-minus-circle\">\n )}\n \n
    \n ) : null;\n })}\n\n \n \n permissionHandler([...customPermissions, { id: uuidv4(), website: \"\", permission: 1 }])}\n style={{ width: \"120px\", backgroundColor: isPermissionsEnabled ? undefined : \"#70768F\", cursor: isPermissionsEnabled ? undefined : \"default\" }}\n className=\"mt-0 mb-2 btn-sm px-4 ml-2 text-center\"\n variant=\"success\">\n + Add field\n \n \n \n \n
    \n
    \n \n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\nimport { propTypes } from \"react-bootstrap/esm/Image\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\n\nexport default function PersonBox({ firstName, lastName, job, email, poc, phone, removePerson, id }) {\n return (\n <>\n \n \n

    \n {firstName} {lastName}\n

    \n \n \n removePerson(id, email)} className=\"fas fa-minus-circle\">\n \n
    \n \n \n

    {email}

    \n \n
    \n \n \n

    {phone}

    \n \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Container, Tab, Nav } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport SearchAlerts from \"../client_config/ppc_config/search/alerts/Alerts\";\nimport DisplayAlerts from \"../client_config/ppc_config/display/alerts/Alerts\";\nimport SocialAlerts from \"../client_config/ppc_config/social/alerts/Alerts\";\nimport VideoAlerts from \"../client_config/ppc_config/video/alerts/Alerts\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function Inflation(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n const [tabLocation, setTabLocation] = useState(\"\");\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"search\";\n }\n setTabLocation(page);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n };\n\n return (\n \n \n \n
    \n

    PPC Alerts

    \n
    \n
    \n

    \n We need to make sure PPC alerts are configured correctly. By default, we have automatically subscribed team\n support/leads accordingly based on how they were assigned in the Service Agreement, but if you need to make any changes or customizations, you can\n do so below.\n

    \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n selectTab(k)}>\n \n \n \n {\n props.search_section.enabled ?\n \n :\n
    \n \n \n
    \n

    Search is not currently enabled

    \n
    \n \n
    \n
    \n }\n
    \n \n {\n props.social_section.enabled ?\n \n :\n
    \n \n \n
    \n

    Social is not currently enabled

    \n
    \n \n
    \n
    \n }\n
    \n \n {\n props.display_section.enabled ?\n \n :\n
    \n \n \n
    \n

    Display is not currently enabled

    \n
    \n \n
    \n
    \n }\n
    \n \n {\n props.video_section.enabled ?\n \n :\n
    \n \n \n
    \n

    Video is not currently enabled

    \n
    \n \n
    \n
    \n }\n
    \n
    \n
    \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Container, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\nimport jsDig from \"utils/jsDig\";\nimport DataPullSavePopUp from \"../utils/DataPullSavePopUp\";\nexport default function DataPull(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const pullResetter = () => {\n return props.pullBoxes\n .filter(\n (platform, idx) =>\n !(\n platform[0] == \"Google: SEO\" ||\n platform[0] == \"Google Search Console\" ||\n platform[0] == \"SEMRush\" ||\n (platform[0] == \"Shopify\" && jsDig([\"website_platform\"], props.client_account) != \"0\")\n )\n )\n .map((newItem) => {\n newItem[2] = false;\n return newItem;\n });\n };\n\n const pullUpdateHelper = (idx, newValue) => {\n let newArray = props.pullBoxes;\n newArray[idx][2] = newValue;\n props.setPullBoxes([...newArray]);\n };\n const [showBoxes, setShowBoxes] = useState(false);\n const [validated, setValidation] = useState(false);\n const ppcPullboxes = props.pullBoxes.slice(0, 2).concat(props.pullBoxes.slice(5, props.pullBoxes.length));\n const [open, setOpen] = useState(false);\n\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n \n \n \n \n \n
    \n

    Pull PPC Data

    \n
    \n
    \n

    Would you like to pull data from your accounts now?

    \n
    \n \n
    \n \n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(true);\n setValidation(false);\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n pullResetter();\n }}\n />\n
    \n \n
    \n \n
    \n
    \n \n \n

    For which accounts?

    \n
    \n {props.pullBoxes.map((platform, idx) => {\n let show = true;\n if (platform[0] == \"Google: SEO\" || platform[0] == \"Google Search Console\" || platform[0] == \"SEMRush\") show = false;\n if (platform[0] == \"Shopify\" && jsDig([\"website_platform\"], props.client_account) != \"0\") show = false;\n if (platform[0] == \"Google Ads\") show = jsDig([\"google_ads\", \"enabled\"], props.search_section.platform_data);\n if (platform[0] == \"Microsoft Ads\") show = jsDig([\"microsoft_ads\", \"enabled\"], props.search_section.platform_data);\n if (platform[0] == \"Google: Video\") show = props.video_section.enabled;\n if (platform[0] == \"Google: Display\") show = props.display_section.enabled;\n if (platform[0] == \"Facebook\") show = props.social_section.enabled;\n const visible = show ? \"flex \" : \"none\";\n return (\n
    \n {\n pullUpdateHelper(idx, !platform[2]);\n\n if (show) {\n let exist = ppcPullboxes.find((el) => el.includes(true));\n\n if (exist == undefined) setValidation(false);\n else setValidation(true);\n }\n }}\n />\n
    \n );\n })}\n
    \n

    Clicking next will initiate a large data pull which could take several hours to complete.

    \n \n
    \n
    \n \n \n
    \n \n \n {\n showBoxes ? setOpen(true) : props.submitForm(nextPage.url);\n // props.manualDataPull();\n }}\n // onClick={() => setOpen(true)}\n />\n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport SaveChanges from \"../client_config/SaveChanges\";\n\nexport default function ProgressBar({\n submitForm,\n percent,\n setPercent,\n onboardingProgress,\n onboardingComplete,\n setOnboardingComplete,\n manualDataPull,\n}) {\n let leftBar = require(\"images/onboarding/left-bar.png\");\n leftBar = ;\n let midBar = require(\"images/onboarding/mid-bar.png\");\n midBar = ;\n let rightBar = require(\"images/onboarding/right-bar.png\");\n rightBar = ;\n\n const [allComplete, setAllComplete] = useState(false);\n //In below lines for state we are checking if useState([Is section completed? , Is section in progress?])\n const [generalComplete, setGeneralComplete] = useState([false, false]);\n const [teamAccessComplete, setTeamAccessComplete] = useState([false, false]);\n const [serviceComplete, setServiceComplete] = useState([false, false]);\n const [ppcConfigComplete, setPpcConfigComplete] = useState([false, false]);\n const [seoConfigComplete, setSeoConfigComplete] = useState([false, false]);\n\n let generalUrls = onboardingProgress.filter((item) => item.section === \"general\").map((el) => el.url);\n let teamUrls = onboardingProgress.filter((item) => item.section === \"team\").map((el) => el.url);\n let serviceUrls = onboardingProgress.filter((item) => item.section === \"service\").map((el) => el.url);\n let ppcUrls = onboardingProgress.filter((item) => item.section === \"ppc\").map((el) => el.url);\n let seoUrls = onboardingProgress.filter((item) => item.section === \"seo\").map((el) => el.url);\n const [serviceArray, setServiceArray] = useState([]);\n const [seoArray, setSeoArray] = useState([]);\n const [ppcArray, setPpcArray] = useState([]);\n let generalArray = [];\n let teamArray = [];\n\n const isUndefined = (value) => value === undefined;\n\n\n\n useEffect(() => {\n let tempGeneralArray = [];\n let tempTeamArray = [];\n let tempServiceArray = [];\n let tempPpcArray = [];\n let tempSeoArray = [];\n\n for (let i = 0; i < onboardingProgress.length; i++) {\n if (i <= 8) {\n generalArray.push(onboardingProgress[i].completed);\n //we are checking if the onboarding item is completed and required. If we see completed === true and required === false, we know this item was skipped\n //and our map below does not look for this condition so it will return undefined so this particular value will not be included in evaluating the section progress.\n // setGeneralArray(tempGeneralArray)\n }\n if (i >= 9 && i <= 20) {\n teamArray.push(onboardingProgress[i].completed);\n }\n if (i >= 21 && i <= 23) {\n tempServiceArray.push([onboardingProgress[i].completed, onboardingProgress[i].required]);\n let temp = tempServiceArray.map((el) => {\n if (el[0] === false && el[1] === true) {\n return false;\n }\n if (el[0] === true && el[1] === true) {\n return true;\n }\n });\n setServiceArray(temp);\n }\n if (i >= 24 && i <= 39) {\n tempPpcArray.push([onboardingProgress[i].completed, onboardingProgress[i].required]);\n let temp = tempPpcArray.map((el) => {\n if (el[0] === false && el[1] === true) {\n return false;\n }\n if (el[0] === true && el[1] === true) {\n return true;\n }\n });\n setPpcArray(temp);\n }\n if (i >= 40 && i <= 48) {\n tempSeoArray.push([onboardingProgress[i].completed, onboardingProgress[i].required]);\n let temp = tempSeoArray.map((el) => {\n if (el[0] === false && el[1] === true) {\n return false;\n }\n if (el[0] === true && el[1] === true) {\n return true;\n }\n });\n setSeoArray(temp);\n }\n if (!generalArray.includes(false)) {\n setGeneralComplete([true, false]);\n }\n if (generalArray.includes(false) && generalArray.includes(true)) {\n setGeneralComplete([false, true]);\n }\n if (!generalArray.includes(true)) {\n setGeneralComplete([false, false]);\n }\n if (!teamArray.includes(false)) {\n setTeamAccessComplete([true, false]);\n }\n if (teamArray.includes(false) && teamArray.includes(true)) {\n setTeamAccessComplete([false, true]);\n }\n if (!teamArray.includes(true)) {\n setTeamAccessComplete([false, false]);\n }\n if (!serviceArray.includes(false)) {\n setServiceComplete([true, false]);\n }\n if (serviceArray.includes(false) && serviceArray.includes(true)) {\n setServiceComplete([false, true]);\n }\n if (!serviceArray.includes(true)) {\n setServiceComplete([false, false]);\n }\n if (!ppcArray.includes(false)) {\n setPpcConfigComplete([true, false]);\n }\n if (ppcArray.includes(false) && ppcArray.includes(true)) {\n setPpcConfigComplete([false, true]);\n }\n if (!ppcArray.includes(true)) {\n setPpcConfigComplete([false, false]);\n }\n if (!seoArray.includes(false)) {\n setSeoConfigComplete([true, false]);\n }\n if (seoArray.includes(false) && seoArray.includes(true)) {\n setSeoConfigComplete([false, true]);\n }\n if (!seoArray.includes(true)) {\n setSeoConfigComplete([false, false]);\n }\n if (\n generalComplete[0] === true &&\n teamAccessComplete[0] === true &&\n serviceComplete[0] === true &&\n (ppcConfigComplete[0] === true || ppcArray.every(isUndefined)) &&\n (seoConfigComplete[0] === true || seoArray.every(isUndefined)) === true\n ) {\n setAllComplete((prev) => true);\n } else {\n setAllComplete((prev) => false);\n }\n }\n }, [onboardingProgress, generalComplete[0], teamAccessComplete[0], serviceComplete[0], ppcConfigComplete[0], seoConfigComplete[0]]);\n\n useEffect(() => {\n if (allComplete === true) {\n setOnboardingComplete((prev) => true);\n }\n }, [allComplete, generalComplete[0], teamAccessComplete[0], serviceComplete[0], ppcConfigComplete[0], seoConfigComplete[0]]);\n return (\n \n \n \n {\n if (window.location.pathname == \"/datapulse/onboarding/ppc_data_pull\" || \"/datapulse/onboarding/seo_data_pull\") manualDataPull();\n submitForm(window.location.pathname);\n }}\n />\n \n \n
    \n
    \n
    \n \n {percent.percent()}%\n \n
    \n
    \n \n \n \n setPercent((prevState) => ({ ...prevState, currentPage: 0 }))}\n className=\"bar-box\">\n General Info\n
    \n \n \n \n \n \n Team Access\n
    \n \n \n \n \n \n Service Agreements\n \n \n \n 0 ? \"disabled \" : undefined}>\n event.preventDefault() : undefined}>\n \n PPC Configuration\n \n \n \n 0 ? \"disabled\" : undefined}>\n event.preventDefault() : undefined}>\n \n SEO Configuration\n \n \n \n \n \n Complete!\n \n \n
    \n {leftBar}\n {midBar}\n {rightBar}\n \n \n \n

    Onboarding Progress

    \n \n
    \n \n \n \n \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function SEMRushSetup(props) {\n props.pageLocator();\n const route = useContext(RouterContext);\n const nextPage = getNextPage(props.onboarding_progress);\n const [showBoxes, setShowBoxes] = useState(false);\n const [validated, setValidation] = useState(false);\n const checkValidation = () => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidation(true);\n } else {\n setValidation(false);\n }\n };\n\n let projectIdImg = require(\"images/semrush-project-id.jpg\");\n projectIdImg = ;\n const tooltipMessage =
    The ID can change if a new target location has been selected. To make sure the ID is correct, open the project in SEMRush, and in the 'Position Tracking' tile, select 'View full report'. Copy the ID from the URL.

    {projectIdImg}
    \n\n const addNewRow = () => {\n //create an object with all of the state fields\n let newRow = {};\n newRow.id = \"\";\n newRow.label = \"\";\n newRow.website = props.website;\n // setValidation(true);\n let accessChecked = props.teamAccess;\n accessChecked[\"SEMRush\"][\"Completed setup\"] = \"1\";\n props.setTeamAccess({ ...accessChecked });\n props.setSemRushIds([...props.semRushIds, newRow]);\n };\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const removeRow = (el) => {\n if (props.semRushIds.length == 1) {\n setValidation(false);\n let accessChecked = props.teamAccess;\n accessChecked[\"SEMRush\"][\"Completed setup\"] = \"0\";\n props.setTeamAccess({ ...accessChecked });\n }\n props.setSemRushIds(props.semRushIds.filter((row, idx) => idx != el));\n };\n useEffect(() => {\n if (props.teamAccess[\"SEMRush\"][\"Completed setup\"] !== \"1\" && showBoxes && props.semRushIds.length == 0) {\n setValidation(false);\n }\n });\n\n const setupBox = (el, idx) => {\n return (\n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    ID:

    \n
    \n {\n let newArray = props.semRushIds;\n newArray[idx].id = e.target.value;\n props.setSemRushIds([...newArray]);\n checkValidation();\n }}\n id={`ob-analytics-id`}\n />\n
    \n

    Label:

    \n
    \n {\n let newArray = props.semRushIds;\n newArray[idx].label = e.target.value;\n props.setSemRushIds([...newArray]);\n }}\n id={`ob-semrush-label`}\n />\n
    \n
    \n \n {idx >= 0 && removeRow(idx)} className=\"fas fa-minus-circle color-danger\">}\n
    \n
    \n );\n };\n return (\n <>\n \n \n
    \n

    SEMRush Setup

    \n
    \n
    \n

    \n Now we will need to set up the client in SEMRush. Follow along with the tutorial video to set up the client in SEMRush under the {route.organization.name}\n account, and then add the project ID's in the field below. You can use the 'Label' field to name them for your own reference (this will not affect\n the data in any way).\n

    \n
    \n \n
    \n \n \n
    \n

    Do we need to set up SEMRush for this client?

    \n
    \n \n
    \n \n \n
    \n {\n setShowBoxes(true);\n setValidation(true);\n let accessChecked = props.teamAccess;\n accessChecked[\"SEMRush\"][\"Exist\"] = \"1\";\n\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n let accessChecked = props.teamAccess;\n accessChecked[\"SEMRush\"][\"Exist\"] = \"0\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n \n
    \n \n \n

    \n Provide the information below:\n

    \n \n \n
    \n \n \n addNewRow()}\n value=\"+ Add Project\"\n variant=\"success\"\n />\n \n \n \n \n
    \n
    \n {props.semRushIds.map((row, idx) => {\n return
    {setupBox(row, idx)}
    ;\n })}\n
    \n
    \n \n
    \n {(!props.savedSemrushKey || props.savedSemrushKey == \"\") &&\n \n \n

    SEMRush API Key:

    \n 4}\n onChange={(e) => {props.setSemrushApiKey(e.target.value); checkValidation()}}\n name=\"semrush_api_key\"\n />\n \n
    \n }\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button } from \"react-bootstrap\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function SEOConfigurationIntro(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n return (\n <>\n \n \n
    \n

    Next up: SEO Configuration

    \n
    \n
    \n

    \n Now we will configure the SEO service. You will be able to set up branded keywords, landing pages, and also manage your SEO goals.\n

    \n
    \n \n
    \n \n \n \n
    \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Container, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport Dashboard from \"../client_config/seo_config/dashboard/Dashboard\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function PPCDashboardCustomization(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const [showBoxes, setShowBoxes] = useState(false);\n const [validated, setValidatation] = useState(false);\n\n return (\n \n \n \n
    \n

    SEO Dashboard Customization

    \n
    \n
    \n

    Would you like to customize your SEO dashboards now or use the default settings?

    \n
    \n \n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(false);\n setValidatation(true);\n props.setSeoDefault(true)\n }}\n />\n {\n setShowBoxes(true);\n setValidatation(true);\n props.setSeoDefault(false)\n }}\n />\n
    \n \n \n

    \n Check the boxes to enable/disable sections, and then click and drag dashboard boxes to reorder how they will appear in your performance\n dashboards:\n

    \n \n
    \n\n
    \n {showBoxes === false &&
    }\n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Button, Table, Form, Row, Col, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomSwitch from \"utils/CustomSwitch\";\nimport PointsofContact from \"../client_config/account_config/services_agreement/PointsOfContact\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function SEOServiceAgreements(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const isChecked = props.seoEnabled;\n const seoFeeArray = props.seoFees.map((el, idx) => (el.enabled === \"0\" ? false : true));\n\n const [innerCheckDisabled, setInnerCheckDisabled] = useState(seoFeeArray);\n const [validated, setValidatation] = useState(true);\n const removeRow = (id, selector) => {\n if (selector == \"1\") {\n const newArray = props.seoFeeStructure.filter((el) => el.id !== id);\n\n props.setSeoFeeStructure([...newArray]);\n }\n if (selector == \"2\") {\n const newArray = props.seoFees.filter((el) => el.id !== id);\n props.setSeoFees([...newArray]);\n }\n };\n const seoStartDate = new Date(props.seoStartDate);\n\n useEffect(() => {\n if (\n !props.seoEnabled ||\n (props.seoFeeStructure.length > 0 &&\n props.seoStartDate !== undefined &&\n props.seoAccountLeads.length > 0 &&\n props.seoAccountSupports.length > 0 &&\n props.seoPointsOfContact.length > 0 &&\n seoStartDate.getFullYear() > 2000)\n ) {\n setValidatation(true);\n } else {\n setValidatation(false);\n }\n });\n return (\n <>\n \n \n
    \n

    SEO Service Agreements

    \n
    \n
    \n

    \n Please configure the SEO service agreement below. If you checked SEO at the beginning of onboarding, we have enabled it here for you. If not, now\n is the opportunity to change it if need be.\n

    \n
    \n \n
    \n \n \n

    To complete:

    \n

    \n

    Step 1: Choose a start date

    \n

    Step 2: Fill in invoicing information (add fees if applicable)

    \n

    Step 3: Assign points of contact, leads and supports

    \n \n
    \n \n
    \n \n \n \n \n \n\n
    \n
    \n
    \n \n SEO\n

    \n }\n setIsEnabled={() => props.setSeoEnabled(!props.seoEnabled)}\n />\n
    \n \n \n

    Agreement

    \n
    \n
    \n \n \n \n \n \n \n \n \n \n {props.seoFeeStructure.map((el, index) => {\n const flatFeeEnabled = el[\"flat_fee_enabled\"] == \"1\";\n const percentageEnabled = el[\"percentage_fee_enabled\"] == \"1\";\n const greyout1 = flatFeeEnabled ? null : { opacity: \"0.6\" };\n const greyout2 = percentageEnabled ? null : { opacity: \"0.6\" };\n return (\n \n \n \n \n \n );\n })}\n \n
    \n

    Select and set shared fee structure

    \n \n
    \n 0 ? undefined : \"none\" }}\n className=\"f12 pl-3 nunito-regular light-primary\">\n Fixed amount\n

    \n
    \n 0 ? undefined : \"none\" }}\n className=\"f12 pl-3 nunito-regular light-primary\">\n Revenue (total or above)\n

    \n
    \n
    \n

    Over revenue

    \n\n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"over_ad_spend\"] = e.target.value;\n props.setSeoFeeStructure([...newArray]);\n }}\n />\n\n $\n
    \n

    charge

    \n
    \n
    \n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"flat_fee_enabled\"] = flatFeeEnabled ? \"0\" : \"1\";\n props.setSeoFeeStructure([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"flat_fee\"] = e.target.value;\n props.setSeoFeeStructure([...newArray]);\n }}\n size=\"sm\"\n className=\"cw2\"\n placeholder=\"0\"\n />\n \n $\n \n
    \n
    \n
    \n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"percentage_fee_enabled\"] = percentageEnabled ? \"0\" : \"1\";\n props.setSeoFeeStructure([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"percentage_fee_total_over\"] = e.target.value;\n props.setSeoFeeStructure([...newArray]);\n }}>\n \n \n \n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"percentage_fee\"] = e.target.value;\n props.setSeoFeeStructure([...newArray]);\n }}\n />\n \n %\n \n
    \n {index >= 0 && removeRow(el.id, \"1\")} className=\"fas fa-minus-circle \">}\n
    \n
    \n
    \n \n props.setSeoFeeStructure([\n ...props.seoFeeStructure,\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ])\n }>\n + Add Condition\n \n
    \n
    \n

    Active SEO Fees

    \n

    \n View full history\n

    \n
    \n \n \n \n \n 0 ? undefined : \"none\" }}\n className=\"pl-3 f12 nunito-regular light-primary\">\n Frequency\n \n 0 ? undefined : \"none\" }}\n className=\"pl-3 f12 nunito-regular light-primary\">\n Label\n \n 0 ? undefined : \"none\" }}\n className=\"pl-3 f12 nunito-regular light-primary\">\n Amount\n \n \n \n \n \n {props.seoFees.map((el, index) => {\n const greyout = el[\"enabled\"] == \"1\" ? null : \"0.6\";\n return (\n \n \n \n \n \n \n \n );\n })}\n \n
    \n Status\n
    \n
    \n {\n let newArray = props.seoFees;\n newArray[index][\"enabled\"] = el[\"enabled\"] == \"1\" ? \"0\" : \"1\";\n props.setSeoFees([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props.seoFees;\n newArray[index][\"frequency\"] = e.target.value;\n props.setSeoFees([...newArray]);\n }}>\n \n \n \n \n {\n let newArray = props.seoFees;\n newArray[index][\"label\"] = e.target.value;\n props.setSeoFees([...newArray]);\n }}\n />\n \n
    \n
    \n {\n let newArray = props.seoFees;\n newArray[index][\"amount\"] = e.target.value;\n props.setSeoFees([...newArray]);\n }}\n />\n \n $\n \n
    \n
    \n removeRow(el.id, \"2\")} className=\"fas fa-minus-circle\">\n
    \n
    \n
    \n

    \n {index === 0 && \"Recurring\"}\n {index === 1 && \"Ready to be fulfilled in billing\"}\n {index === 2 && \"Currently disabled, will not show in billing\"}\n

    \n
    \n
    \n \n props.setSeoFees([\n ...props.seoFees,\n {\n id: uuidv4(),\n label: \"\",\n amount: \"0\",\n status: \"0\",\n enabled: \"0\",\n status: \"Recurring\",\n frequency: \"Monthly\",\n },\n ])\n }>\n + Add fee\n \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport ScriptBoxes from \"components/client_config/ppc_config/ScriptBoxes\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function Scripts(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n let exclaimTriangle = require(\"images/icons/exclaim-triangle.png\");\n exclaimTriangle = ;\n let exclaimTriangleMobile = require(\"images/icons/exclaim-triangle.png\");\n exclaimTriangleMobile = ;\n const [validated, setValidation] = useState(false);\n\n const removeScripts = () => {\n let newScripts = props.scripts;\n\n let resetScripts = {};\n Object.entries(newScripts).forEach(([key, value]) => {\n if (typeof resetScripts[key] === \"object\") {\n resetScripts[key][\"enabled\"] = \"0\";\n } else {\n resetScripts[key] = \"0\"\n }\n });\n\n setIsChecked(resetScripts);\n props.setScripts(resetScripts);\n };\n\n const [isChecked, setIsChecked] = useState(props.scripts);\n const checkValidation = () => {\n const amount1 = Object.values(props.scripts).filter((el) => el === \"1\").length;\n const amount2 = jsDig([\"scripts\",\"exclude_nb_in_shopping\",\"enabled\"], props) == \"1\" ? 1 : 0;\n const amount = amount1 + amount2;\n\n if (amount > 0) {\n setValidation(true);\n } else {\n setValidation(false);\n }\n };\n\n const scripts = [\n {\n name: \"text_converting_query_mining_script\",\n title: \"Text converting query mining script\",\n desc: \"Monthly iterates through all text campaign converted queries on an account for the previous two months and creates ad groups based on the converted query text.\",\n },\n {\n name: \"em_bm_negative_overlap_script\",\n title: \"EM/BM negative overlap script\",\n desc: \"Syncs negative keyword lists throughout the account to prevent overlap.\",\n },\n {\n name: \"negative_dsa_sync_script\",\n title: \"Negative DSA sync script\",\n desc: \"Syncs enabled account keywords as negatives in the '[DSA]' ad group to prevent bidding on pre_targeted queries.\",\n },\n {\n name: \"exclude_nb_in_shopping\",\n title: \"Exclude Non-Brand in Shopping\",\n desc: \"When you split Shopping campaigns on branded and non-branded search terms, you often still get non-branded search terms in your branded Shopping campaign(s). This script automatically excludes these terms.\",\n },\n {\n name: \"keyword_cannibalization_script\",\n title: \"Keyword Cannibalization Script\",\n desc: \"For every ad group in the entire account, adds all keywords NOT in that ad group to be an exact match negative version to that ad group.\",\n },\n {\n name: \"youtube_channel_excluder\",\n title: \"Exclude Foreign Language YouTube Channels\",\n desc: \"For display and video campaigns, Google is not quite so particular about targeting individual languages and video ads are often played in foreign language channels. This script identifies YouTube channels in undesired countries on which the video campaign(s) was/are played and automatically excludes them from the respective campaign.\",\n },\n ];\n\n const [showBoxes, setShowBoxes] = useState(false);\n\n return (\n <>\n \n \n
    \n

    Scripts

    \n
    \n
    \n

    Would you like to activate any PPC scripts at this time?

    \n
    \n \n
    \n\n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(true);\n setValidation(false);\n checkValidation();\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n removeScripts();\n }}\n />\n
    \n \n
    \n \n \n
    \n
    \n {exclaimTriangle}\n
    \n
    \n {exclaimTriangleMobile}\n
    \n

    \n Enabling/disabling these scripts without a thorough understanding of the function may have unintended consequences. Please proceed with caution.\n

    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\n\nclass ScrollToTop extends React.Component {\n componentDidUpdate(prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n window.scrollTo(0, 0);\n }\n }\n\n render() {\n return null;\n }\n}\n\nexport default withRouter(ScrollToTop);\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button, Container } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport Alerts from \"../client_config/seo_config/alerts/Alerts\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function SeoAlerts(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n return (\n \n \n \n
    \n

    SEO Alerts

    \n
    \n\n
    \n

    \n We need to make sure SEO alerts are configured correctly. By default, we have automatically subscribed team\n support/leads accordingly based on how they were assigned in the Service Agreement, but if you need to make any changes or customizations, you can\n do so below.\n

    \n
    \n \n
    \n \n \n \n \n \n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Container, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\nimport jsDig from \"utils/jsDig\";\nimport DataPullSavePopUp from \"../utils/DataPullSavePopUp\";\n\nexport default function SeoDataPull(props) {\n const route = useContext(RouterContext);\n const [validated, setValidation] = useState(false);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const seoPullboxes = props.pullBoxes.slice(2, 5);\n\n const pullResetter = () => {\n return props.pullBoxes\n .filter(\n (platform, idx) =>\n platform[0] == \"Google: SEO\" ||\n platform[0] == \"Google Search Console\" ||\n platform[0] == \"SEMRush\" ||\n (platform[0] == \"Shopify\" && jsDig([\"website_platform\"], props.client_account) != \"0\")\n )\n .map((newItem) => {\n newItem[2] = false;\n return newItem;\n });\n };\n\n const pullUpdateHelper = (idx, newValue) => {\n let newArray = props.pullBoxes;\n newArray[idx][2] = newValue;\n props.setPullBoxes((prevState) => [...newArray]);\n };\n const [showBoxes, setShowBoxes] = useState(false);\n const [open, setOpen] = useState(false);\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n \n \n \n \n \n
    \n

    Pull SEO Data

    \n
    \n
    \n

    Would you like to pull data from your accounts now?

    \n
    \n \n
    \n \n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(true), setValidation(false);\n }}\n />\n {\n setShowBoxes(false), setValidation(true), pullResetter();\n }}\n />\n
    \n \n
    \n \n
    \n
    \n \n \n

    For which accounts?

    \n
    \n {props.pullBoxes.map((platform, idx) => {\n let show = false;\n if (\n (platform[0] == \"Google: SEO\" && Object.values(jsDig([\"Google Analytics\"], props.client_account.team_access)).includes(\"1\")) ||\n (platform[0] == \"Google Search Console\" && Object.values(jsDig([\"Google Search Console\"], props.client_account.team_access)).includes(\"1\")) ||\n (platform[0] == \"SEMRush\" && Object.values(jsDig([\"SEMRush\"], props.client_account.team_access)).includes(\"1\"))\n ) {\n show = true;\n }\n const visible = show ? \"flex \" : \"none\";\n return (\n
    \n {\n pullUpdateHelper(idx, !platform[2]);\n if (show) {\n let exist = seoPullboxes.find((el) => el.includes(true));\n if (exist == undefined) setValidation(false);\n else setValidation(true);\n }\n }}\n />\n
    \n );\n })}\n
    \n

    Clicking next will initiate a large data pull which could take several hours to complete.

    \n \n
    \n
    \n \n \n
    \n \n \n {\n showBoxes ? setOpen(true) : props.submitForm(nextPage.url);\n // props.manualDataPull();\n // props.submitForm(nextPage.url);\n }}\n />\n props.submitForm(nextPage.url)}\n open={open}\n handleClose={handleClose}\n />\n
    \n \n
    \n
    \n );\n}\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button } from \"react-bootstrap\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function ServiceAgreementsIntro(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n let chat = require(\"images/onboarding/chaticon.png\");\n chat = ;\n\n return (\n <>\n \n \n
    \n

    Next Up: Service Agreements

    \n
    \n
    \n

    \n Congrats on making it through the basic setup and access! The client can take a deep breath, they are done for now!

    \n

    On the next two pages, we need to configure the service agreements for the services and sub-services that you selected in the beginning.\n We will set up the agreement information, and also create the makeup of the company's marketing team by providing leads, support, and points of\n contact for each specific service. We have already enabled/disabled services for you based on your answers from earlier, but if you need to make\n changes to the services being provided you can do so here as well.\n

    \n
    \n \n
    \n \n \n \n \n {chat}\n \n

    \n \n The remainder of onboarding for this account is to be completed by the team member only. If you are still on the onboarding meeting or call,\n this section can be completed after that has been concluded.\n \n

    \n \n
    \n \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Container, Row, Col, Button } from \"react-bootstrap\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function Services({\n pageLocator,\n searchEnabled,\n displayEnabled,\n socialEnabled,\n videoEnabled,\n setSearchEnabled,\n setDisplayEnabled,\n setSocialEnabled,\n setVideoEnabled,\n seo,\n setSeo,\n submitForm,\n onboarding_progress,\n client_account,\n}) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n let seoA = require(\"images/onboarding/seochart-active.png\");\n seoA = ;\n let seoI = require(\"images/onboarding/seochart-inactive.png\");\n seoI = ;\n let ppcA = require(\"images/onboarding/ppcchart-active.png\");\n ppcA = ;\n let ppcI = require(\"images/onboarding/ppcchart-inactive.png\");\n ppcI = ;\n let searchI = require(\"images/onboarding/magnify-inactive.png\");\n searchI = ;\n let searchA = require(\"images/onboarding/magnify-active.png\");\n searchA = ;\n let displayA = require(\"images/onboarding/display-active.png\");\n displayA = ;\n let displayI = require(\"images/onboarding/display-inactive.png\");\n displayI = ;\n let socialI = require(\"images/onboarding/social-inactive.png\");\n socialI = ;\n let socialA = require(\"images/onboarding/social-active.png\");\n socialA = ;\n let videoI = require(\"images/onboarding/video-inactive.png\");\n videoI = ;\n let videoA = require(\"images/onboarding/video-active.png\");\n videoA = ;\n\n pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (seo) {\n if (!ppc) {\n setValidated(true);\n }\n if (ppc) {\n if (searchEnabled || displayEnabled || socialEnabled || videoEnabled) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n } else {\n setValidated(true);\n }\n } else if (!seo) {\n if (searchEnabled || displayEnabled || socialEnabled || videoEnabled) {\n setValidated(true);\n } else setValidated(false);\n }\n });\n\n const subServices = [searchEnabled, displayEnabled, socialEnabled, videoEnabled].filter((el) => el === true);\n const [ppc, setPpc] = useState(subServices.length > 0 ? true : false);\n\n const setPpcHelper = () => {\n if (ppc === true) {\n setSearchEnabled(false);\n setDisplayEnabled(false);\n setSocialEnabled(false);\n setVideoEnabled(false);\n }\n setPpc(!ppc);\n };\n\n const services = [\n [\"Search\", searchEnabled, searchA, searchI, setSearchEnabled],\n [\"Display\", displayEnabled, displayA, displayI, setDisplayEnabled],\n [\"Social\", socialEnabled, socialA, socialI, setSocialEnabled],\n [\"Video\", videoEnabled, videoA, videoI, setVideoEnabled],\n ];\n\n // Need to complete pages in progress tracker that do not need to be set up\n const completePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/complete_pages\";\n let paramsObject = {\n client_account_id: client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Completed pages: \" + JSON.stringify(pages));\n },\n });\n };\n const incompletePageFunc = (pages) => {\n const submitUrl = \"/datapulse/onboarding/incomplete_pages\";\n let paramsObject = {\n client_account_id: client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Incompleted pages: \" + JSON.stringify(pages));\n },\n });\n };\n\n return (\n \n \n \n

    What services will be provided?

    \n \n
    \n\n \n \n {\n setPpcHelper();\n }}\n className={ppc ? \"active-box ppc\" : \"choose-box ppc\"}>\n
    {ppc ? ppcA : ppcI}
    \n
    \n

    PPC

    \n
    \n \n\n {\n setSeo(!seo);\n }}\n className={seo ? \"seo-active\" : \"choose-box seo\"}>\n
    {seo ? seoA : seoI}
    \n\n
    \n

    SEO

    \n
    \n \n \n
    \n
    \n \n \n

    Select PPC sub-services

    \n \n
    \n \n \n \n
    \n {services.map((service, idx) => {\n return (\n {\n service[4](!service[1]);\n }}\n className={service[1] ? \"active-box-small \" : \"choose-box-small\"}>\n {service[1] ? service[2] : service[3]}\n\n
    \n

    {service[0]}

    \n
    \n \n );\n })}\n
    \n \n
    \n
    \n\n \n \n
    \n \n \n {\n // Some pages won't be necessary to fill out\n let pageNames = [];\n let incompletePageNames = [];\n if (!searchEnabled) {\n pageNames.push(\"search_goals\");\n } else {\n incompletePageNames.push(\"search_goals\");\n }\n if (!socialEnabled) {\n pageNames.push(\"social_goals\");\n pageNames.push(\"social_conversions\");\n } else {\n incompletePageNames.push(\"social_goals\");\n incompletePageNames.push(\"social_conversions\");\n }\n if (!displayEnabled) {\n pageNames.push(\"display_goals\");\n } else {\n incompletePageNames.push(\"display_goals\");\n }\n if (!videoEnabled) {\n pageNames.push(\"video_goals\");\n } else {\n incompletePageNames.push(\"video_goals\");\n }\n if (!searchEnabled && !displayEnabled && !videoEnabled) {\n pageNames.push(\"scripts\");\n } else {\n incompletePageNames.push(\"scripts\");\n }\n if (client_account.account_type === \"leadgen\") {\n pageNames.push(\"inflation\");\n if (!searchEnabled && !socialEnabled && !displayEnabled && !videoEnabled) {\n pageNames.push(\"ppc_service_agreements\");\n pageNames.push(\"ppc_configuration_intro\");\n pageNames.push(\"track_specific_action_ids\");\n pageNames.push(\"campaign_groups\");\n pageNames.push(\"ppc_data_pull\");\n pageNames.push(\"all_ppc_goals\");\n pageNames.push(\"ppc_dashboard_customization\");\n pageNames.push(\"ppc_dashboard_customization_all\");\n pageNames.push(\"ppc_alerts\");\n pageNames.push(\"datafeedwatch_install\");\n } else {\n incompletePageNames.push(\"ppc_service_agreements\");\n incompletePageNames.push(\"ppc_configuration_intro\");\n incompletePageNames.push(\"track_specific_action_ids\");\n incompletePageNames.push(\"campaign_groups\");\n incompletePageNames.push(\"ppc_data_pull\");\n incompletePageNames.push(\"all_ppc_goals\");\n incompletePageNames.push(\"ppc_dashboard_customization_all\");\n incompletePageNames.push(\"ppc_alerts\");\n incompletePageNames.push(\"datafeedwatch_install\");\n }\n }\n if (client_account.account_type === \"ecommerce\") {\n if (!searchEnabled && !socialEnabled && !displayEnabled && !videoEnabled) {\n pageNames.push(\"ppc_service_agreements\");\n pageNames.push(\"ppc_configuration_intro\");\n pageNames.push(\"track_specific_action_ids\");\n pageNames.push(\"inflation\");\n pageNames.push(\"campaign_groups\");\n pageNames.push(\"ppc_data_pull\");\n pageNames.push(\"all_ppc_goals\");\n pageNames.push(\"ppc_dashboard_customization\");\n pageNames.push(\"ppc_dashboard_customization_all\");\n pageNames.push(\"ppc_alerts\");\n pageNames.push(\"datafeedwatch_install\");\n } else {\n incompletePageNames.push(\"ppc_service_agreements\");\n incompletePageNames.push(\"ppc_configuration_intro\");\n incompletePageNames.push(\"track_specific_action_ids\");\n incompletePageNames.push(\"campaign_groups\");\n incompletePageNames.push(\"ppc_data_pull\");\n incompletePageNames.push(\"all_ppc_goals\");\n incompletePageNames.push(\"ppc_dashboard_customization\");\n incompletePageNames.push(\"ppc_dashboard_customization_all\");\n incompletePageNames.push(\"ppc_alerts\");\n incompletePageNames.push(\"datafeedwatch_install\");\n incompletePageNames.push(\"inflation\");\n }\n }\n if (!seo) {\n pageNames.push(\"seo_service_agreements\");\n pageNames.push(\"seo_configuration_intro\");\n pageNames.push(\"keyword_groups\");\n pageNames.push(\"landing_pages\");\n pageNames.push(\"semrush_setup\");\n pageNames.push(\"google_analytics_goal_tracking\");\n pageNames.push(\"seo_data_pull\");\n pageNames.push(\"google_my_business_access\");\n pageNames.push(\"seo_goals\");\n pageNames.push(\"seo_dashboard_customization\");\n pageNames.push(\"seo_alerts\");\n } else {\n incompletePageNames.push(\"seo_service_agreements\");\n incompletePageNames.push(\"seo_configuration_intro\");\n incompletePageNames.push(\"keyword_groups\");\n incompletePageNames.push(\"landing_pages\");\n incompletePageNames.push(\"semrush_setup\");\n incompletePageNames.push(\"google_analytics_goal_tracking\");\n incompletePageNames.push(\"seo_data_pull\");\n incompletePageNames.push(\"seo_goals\");\n incompletePageNames.push(\"seo_dashboard_customization\");\n incompletePageNames.push(\"seo_alerts\");\n }\n completePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n incompletePageFunc(incompletePageNames.map((page) => `/datapulse/onboarding/${page}`));\n }}\n />\n
    \n \n
    \n
    \n );\n}\n","import React, {useContext} from \"react\";\nimport { Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function SkipButton(props) {\n const route = useContext(RouterContext)\n let onboardingProgress = route.onboardingProgress\n const remainingPages = onboardingProgress.map((page) => page.completed).filter((completed) => completed === false).length\n\n\n\n return (\n <>\n {\n remainingPages !== 1 ?\n \n route.set((prev) => [...prev, window.location.pathname])}\n style={{\n backgroundColor: \"#888888\",\n paddingLeft: \"60px\",\n paddingRight: \"60px\",\n }}\n className=\"py-1 f16 skip-button nunito-regular\"\n size=\"md\"\n >\n {props.btnText}\n \n \n :\n \n

    You cannot skip the last page

    \n \n }>\n \n {props.btnText}\n \n \n }\n \n );\n}\n\n\n\n\n\n\n\n\n\n\n","import React, { useState, useEffect } from \"react\";\nimport { Table, Row, Col, Button, Form } from \"react-bootstrap\";\n\nexport default function CustomConversions(props) {\n const [customConversions, setCustomConversions] = useState(props.customConversions && props.customConversions.length > 0 ? props.customConversions : [{label: \"\", id: \"\"}]);\n const handleChange = (index, property, value) => {\n let newConversions = customConversions;\n newConversions[index][property] = value;\n setCustomConversions([...newConversions])\n props.setCustomConversions && props.setCustomConversions([...newConversions])\n }\n\n const handleDelete = (targetIndex) => {\n let newConversions = customConversions\n newConversions.splice(targetIndex, 1);\n setCustomConversions([...newConversions])\n props.setCustomConversions && props.setCustomConversions([...newConversions])\n }\n\n const handleAdd = () => {\n setCustomConversions([...customConversions, {label: \"\", id: \"\"}])\n props.setCustomConversions && props.setCustomConversions([...customConversions, {label: \"\", id: \"\"}])\n }\n\n return (\n <>\n \n \n \n \n \n\n \n \n \n \n {customConversions.map((conversion, index) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    LabelID
    \n handleChange(index, \"label\", e.target.value)}\n />\n \n handleChange(index, \"id\", e.target.value)}\n />\n \n {index >= 1 && (\n handleDelete(index)}>\n )}\n
    \n \n + Add custom conversion\n \n \n )\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomConversions from \"./CustomConversions\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport {RouterContext} from \"../Onboarding\"\n\nexport default function SocialConversions(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n const [validated, setValidatation] = useState(false);\n \n return (\n <>\n \n \n
    \n

    Social Conversions

    \n
    \n
    \n

    Choose the account-level conversion objectives for Facebook & Tiktok.

    \n
    \n \n
    \n \n \n
    \n

    Facebook Objective

    \n \n {\n props.setFacebookConversionObjective(e.target.value);\n setValidatation(true);\n }}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {}\n \n {Object.keys(props.facebook_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.facebook_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n {props.facebookConversionObjective == \"custom_conversions\" && (\n \n )}\n
    \n \n
    \n \n \n
    \n

    Tiktok Objective

    \n \n {\n props.setTiktokConversionObjective(e.target.value);\n setValidatation(true);\n }}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {}\n \n {Object.keys(props.tiktok_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.tiktok_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n
    \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\n\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function DataFeedWatchInstall(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [showBoxes, setShowBoxes] = useState(false);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidation] = useState(false);\n useEffect(() => {\n if (props.teamAccess[\"DataFeedWatch\"][\"Completed setup\"] !== \"1\" && showBoxes) {\n setValidation(false);\n }\n });\n\n return (\n <>\n \n \n
    \n

    DataFeedWatch Install

    \n
    \n
    \n

    \n On this page you will install DataFeedWatch.{\" \"}\n \n Please click here\n {\" \"}\n to open a new tab with detailed instructions on how to set up properly, and then check the box to indicate that setup is done and the custom feed\n is configured.\n

    \n
    \n \n
    \n \n \n
    \n

    Do we need to set up DataFeedWatch for this client?

    \n
    \n \n
    \n \n \n
    \n {\n setShowBoxes(true);\n setValidation(true);\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n }}\n />\n
    \n \n
    \n\n \n \n
    \n
    \n \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"DataFeedWatch\"][\"Completed setup\"] = props.teamAccess[\"DataFeedWatch\"][\"Completed setup\"] == \"1\" ? \"0\" : \"1\";\n accessChecked[\"DataFeedWatch\"][\"Completed setup\"] == \"1\" && setValidation(true);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function FacebookAdsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Facebook Ads\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Facebook Ads\"][\"Full\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Facebook Ads\"][\"Full\"] == \"1\") || props.teamAccess[\"Facebook Ads\"][\"Restricted\"] == \"1\") ) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n useEffect(() => {\n if (props.facebookAdsIds.length > 0) return null;\n let newRow = {};\n newRow.frontId = uuidv4();\n newRow.label = \"\";\n newRow.id = \"\";\n props.setFacebookAdsIds((rows) => [...rows, newRow]);\n }, []);\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Facebook Ads Access

    \n
    \n
    \n

    \n On this page you will grant access to Facebook Ads. Please {/*watch the video for the detailed instruction on how to grant access properly, and then*/}\n check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and will\n not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Facebook:

    \n \n
    \n \n \n
    \n
    \n
    \n {authButton(props.api_platforms[\"facebook_ads\"])}\n

    {props.api_platforms[\"facebook_ads\"][\"authenticated\"] ?\n \"You have already authenticated with Facebook Ads. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Facebook Ads!\"\n }\n

    \n
    \n
    \n
    \n \n \n
    \n
    \n

    Facebook Ads ID

    \n \n \n {props.facebookAdsIds.map((el, idx) => {\n return (\n \n \n \n );\n })}\n \n
    \n {\n let newFacebookAdsIds = props.facebookAdsIds;\n newFacebookAdsIds[idx][\"id\"] = e.target.value;\n props.setFacebookAdsIds([...newFacebookAdsIds]);\n }}\n id={`ob-facebook-ads-id${idx}`}\n required\n type=\"text\"\n />\n
    \n
    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n setUserGrantAccess(!userGrantAccess);\n }}\n />\n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Facebook Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Facebook Ads\"][\"Full\"] = props.teamAccess[\"Facebook Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Facebook Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Facebook Ads\"][\"Restricted\"] = props.teamAccess[\"Facebook Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n\n
    \n

    \n Note: Facebook Ads requires it's own specific process to grant access. Make sure to double-check with the client that all necessary steps have\n been taken, all necessary access is granted, and then check the box to confirm.\n

    \n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleAdsAccess(props) {\n const route = useContext(RouterContext);\n const [idProvided, setIdProvided] = useState(false);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (\n form.checkValidity() === true &&\n (jsDig([\"Google Ads\", \"Full\"], props.teamAccess) == \"1\" || jsDig([\"Google Ads\", \"Restricted\"], props.teamAccess) == \"1\")\n ) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [accessGranted, setAccessGranted] = useState(\n jsDig([\"Google Ads\", \"Full\"], props.teamAccess) == \"1\" || jsDig([\"Google Ads\", \"Restricted\"], props.teamAccess) == \"1\"\n );\n\n const addDashes = (id) => {\n if (id.length < 12) {\n const cleanId = id ? id.split(\"-\").join(\"\") : id;\n let finalVal = id ? cleanId.match(/.{1,3}/g).join(\"-\") : id;\n return finalVal;\n }\n return id;\n };\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n return (\n <>\n \n \n \n
    \n

    Grant Google Ads Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Ads. First, you can provide your account ID's below. This will be used in DataPulse and will\n additionally give {route.organization.name} the means to request access to your account. Once access is requested, the client can log into their Google Ads\n account and approve.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Google:

    \n \n
    \n \n \n
    \n {authButton(props.api_platforms[\"google_ads\"])}\n

    {props.api_platforms[\"google_ads\"][\"authenticated\"] ?\n \"You have already authenticated with Google Ads. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Google Ads!\"\n }\n

    \n
    \n \n \n

    Google Ads MCC ID (No '-'s):

    \n {props.setMccId(e.target.value); checkValidation()}}\n disabled={props.savedMccId.length > 4}\n name=\"google_ads_mcc_id\"\n style={{maxWidth: \"200px\"}}\n />\n

    {props.mccId && props.mccId != \"\" ?\n \"MCC ID has already been set. If the value above is incorrect go to API Access to change it.\"\n : \"MCC ID must be set to pull data from Google Ads.\"\n }\n

    \n \n
    \n \n \n

    Provide your account information below:

    \n \n
    \n \n \n props.setSameId(!props.sameId)}\n />\n \n \n \n {props.sameId ? (\n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n ID\n
    \n {\n let newGoogleAdsIds = props.allGoogleAdsIds;\n if (!newGoogleAdsIds[0]) {\n newGoogleAdsIds[0] = {};\n }\n newGoogleAdsIds[0][\"id\"] = addDashes(e.target.value);\n props.setAllGoogleAdsIds([...newGoogleAdsIds]);\n }}\n id={`ob-google-ads-id`}\n required\n type=\"text\"\n />\n
    \n
    \n \n
    \n ) : (\n <>\n {[\"Search\", \"Display\", \"Video\"].map((section, idx) => {\n return (\n \n \n \n \n

    {section}

    \n \n
    \n
    \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n ID\n
    \n {\n if (section === \"Search\") {\n let newGoogleAdsIds1 = props.searchGoogleAdsIds;\n if (!newGoogleAdsIds1[0]) {\n newGoogleAdsIds1[0] = {};\n }\n newGoogleAdsIds1[0][\"id\"] = addDashes(e.target.value);\n props.setSearchGoogleAdsIds([...newGoogleAdsIds1]);\n } else if (section === \"Display\") {\n let newGoogleAdsIds2 = props.displayGoogleAdsIds;\n if (!newGoogleAdsIds2[0]) {\n newGoogleAdsIds2[0] = {};\n }\n newGoogleAdsIds2[0][\"id\"] = addDashes(e.target.value);\n props.setDisplayGoogleAdsIds([...newGoogleAdsIds2]);\n } else if (section === \"Video\") {\n let newGoogleAdsIds3 = props.videoGoogleAdsIds;\n if (!newGoogleAdsIds3[0]) {\n newGoogleAdsIds3[0] = {};\n }\n newGoogleAdsIds3[0][\"id\"] = addDashes(e.target.value);\n props.setVideoGoogleAdsIds([...newGoogleAdsIds3]);\n }\n }}\n id={`ob-google-ads-id-${section}`}\n required\n type=\"text\"\n />\n
    \n
    \n \n \n );\n })}\n \n )}\n
    \n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

    \n \n
    */}\n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n setIdProvided(!idProvided);\n }}\n dynamic\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Ads\"][\"Requested\"] = props.teamAccess[\"Google Ads\"][\"Requested\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n setAccessGranted(!accessGranted);\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Ads\"][\"Restricted\"] = 0;\n accessChecked[\"Google Ads\"][\"Full\"] = 0;\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Ads\"][\"Full\"] = props.teamAccess[\"Google Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Google Ads\"][\"Restricted\"] = props.teamAccess[\"Google Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover, Tooltip } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function GoogleAnalyticsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n let segmentImg = require(\"images/analytics-segment.png\");\n segmentImg = ;\n const tooltipMessage =
    In Analytics, apply the segment you wish to use and check the URL for the parameter '_.useg'. The segment ID is everything that follows the 'user' string. For pulling a built-in segment, take the number after 'builtin' and add a hyphen '-' before.

    {segmentImg}
    \n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n props.googleAnalyticsIds.map((googleAnalyticsId, index) => {\n handleIdChange(index, \"custom_segment\", \"\");\n });\n }, [route.get]);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Analytics\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Analytics\"][\"Restricted\"] == \"1\"\n );\n const handleIdDelete = (targetIndex) => {\n let newIds = props.googleAnalyticsIds.filter((id) => {\n return targetIndex != id.frontId;\n });\n props.setGoogleAnalyticsIds(newIds);\n };\n\n const handleIdChange = (targetIndex, property, value) => {\n let newIds = props.googleAnalyticsIds.map((id, index) => {\n let newId = id;\n if (index == targetIndex) {\n newId[property] = value;\n }\n return newId;\n });\n props.setGoogleAnalyticsIds(newIds);\n };\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && (props.googleAnalyticsIds.length > 0) && ((props.teamAccess[\"Google Analytics\"][\"Full\"] == \"1\") || props.teamAccess[\"Google Analytics\"][\"Restricted\"] == \"1\")) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n let firstImg = require(\"images/analytics-screenshot-1.png\");\n let secondImg = require(\"images/analytics-screenshot-2.png\");\n firstImg = ;\n secondImg = ;\n const idTooltipMessage = () => {\n return (\n <>\n
    \n There are 2 types of Google Analytics properties, GA4 and UA.\n

    \n

    \n For UA, the ID to use in DataPulse is the view ID. That can be extracted from the URL after you select the relevant view:\n {firstImg}\n

    \n The view ID is the number that comes after the 'p' in the URL.\n

    \n

    \n For GA4, the ID to use is the profile ID. That can also be extracted from the URL after you select the relevant property:\n {secondImg}\n

    \n The property ID is the number that comes after the 'p' in the URL.\n
    \n \n )\n }\n\n return (\n <>\n \n \n
    \n

    Grant Google Analytics Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Analytics. Provide your Account ID's below, and use the 'Label' fields to name elements for your own\n reference (this will not affect data in any way). You can then check the access level that you have granted your team. It's important to note that\n checking the access level boxes are solely for reference, and will not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Google:

    \n \n
    \n \n \n
    \n
    \n {authButton(props.api_platforms[\"google_analytics\"])}\n

    {props.api_platforms[\"google_analytics\"][\"authenticated\"] ?\n \"You have already authenticated with Google Analytics. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Google Analytics!\"\n }\n

    \n
    \n
    \n \n
    \n \n \n

    Provide your account information below:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n {props.googleAnalyticsIds.map((googleAnalyticsId, index) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n
    \n Label\n Label is mainly for handling multiple google analytics ids, if you do not know what to put, you can just put main

    }\n />\n
    \n ID\n \n \n \n \n \n Add custom segment ID\n \n \n \n \n
    \n handleIdChange(index, \"label\", e.target.value)}\n value={jsDig([\"label\"], googleAnalyticsId) ? jsDig([\"label\"], googleAnalyticsId) : \"\"}\n id={`ob-analytics-label${index}`}\n />\n \n handleIdChange(index, \"id\", e.target.value)}\n id={`ob-analytics-id${index}`}\n required\n type=\"text\"\n />\n \n
    \n handleIdChange(index, \"custom_segment_enabled\", e.target.checked ? \"1\" : \"0\")}\n sendUncheckedValue\n id={`ob-google-analytics-id-${index}-custom-segment-enabled`}\n checked={jsDig([\"custom_segment_enabled\"], googleAnalyticsId) == \"1\" ? true : false}\n />\n
    \n handleIdChange(index, \"custom_segment\", e.target.value)}\n style={{ display: \"inline-block\", width: \"80%\" }}\n />\n\n
    \n handleIdDelete(googleAnalyticsId.frontId)} className=\" pl-2 fas fa-minus-circle\">\n
    \n
    \n {\n props.setGoogleAnalyticsIds((prevState) => [...prevState, { frontId: uuidv4() }]);\n }}\n value=\"+ Add Google Analytics ID\"\n variant=\"success\"\n />\n \n
    \n \n
    \n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

    \n \n
    */}\n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n setUserGrantAccess(!userGrantAccess)}\n />\n
    \n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Analytics\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Analytics\"][\"Full\"] = props.teamAccess[\"Google Analytics\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Analytics\"][\"Full\"] = \"0\";\n accessChecked[\"Google Analytics\"][\"Restricted\"] = props.teamAccess[\"Google Analytics\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleMerchantAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n if (props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\") {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant Google Merchant Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Merchant. Please {/*watch the video for the detailed instruction on how to grant access properly, and\n then */}check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and\n will not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n\n \n \n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

    \n \n
    */}\n\n \n \n
    \n {\n setUserGrantAccess(!userGrantAccess);\n }}\n />\n
    \n
    \n

    Access level granted:

    \n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Merchant\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Merchant\"][\"Full\"] = props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Merchant\"][\"Full\"] = \"0\";\n accessChecked[\"Google Merchant\"][\"Restricted\"] = props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleMyBusinessAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Business\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Business\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Google Business\"][\"Restricted\"] === \"1\") || (props.teamAccess[\"Google Business\"][\"Full\"] === \"1\"))) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant Google Business Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Business. Please check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and\n will not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Business\"][\"Restricted\"] = props.teamAccess[\"Google Business\"][\"Restricted\"] == \"0\" ? \"0\" : \"1\";\n setUserGrantAccess(!userGrantAccess);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Access level granted:

    \n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Business\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Business\"][\"Full\"] = props.teamAccess[\"Google Business\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Business\"][\"Full\"] = \"0\";\n accessChecked[\"Google Business\"][\"Restricted\"] = props.teamAccess[\"Google Business\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    \n Note: Google Business requires it's own specific process to grant access. Make sure to double-check with the client and other team members\n that all necessary steps have been taken, all necessary access are granted, and then check the box to confirm.\n

    \n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleSearchConsoleAccess(props) {\n const route = useContext(RouterContext);\n\n let tipImage = require(\"images/onboarding/domain.png\");\n tipImage = ;\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Search Console\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Search Console\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Google Search Console\"][\"Restricted\"] === \"1\") || (props.teamAccess[\"Google Search Console\"][\"Full\"] === \"1\")) && props.domainProperty !== undefined) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Google Search Console Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Search Console. Please check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference,\n and will not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Google:

    \n \n
    \n \n \n
    \n
    \n {authButton(props.api_platforms[\"google_webmasters\"])}\n

    {props.api_platforms[\"google_webmasters\"][\"authenticated\"] ?\n \"You have already authenticated with Google Search Console. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Google Search Console!\"\n }\n

    \n
    \n
    \n \n
    \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Full\"] = \"0\";\n setUserGrantAccess(!userGrantAccess);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Full\"] = props.teamAccess[\"Google Search Console\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Full\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Restricted\"] = props.teamAccess[\"Google Search Console\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n Property is a domain property? \n
    \n
    \n {\n let domainChecked\n if (props.domainProperty === undefined)\n {\n domainChecked = true\n }\n if (props.domainProperty === true)\n {\n domainChecked = undefined\n }\n if (props.domainProperty === false)\n {\n domainChecked = true\n }\n props.setDomainProperty(domainChecked);\n }}\n />\n
    \n
    \n {\n let domainChecked\n if (props.domainProperty === undefined)\n {\n domainChecked = false\n }\n if (props.domainProperty === true)\n {\n domainChecked = false\n }\n if (props.domainProperty === false)\n {\n domainChecked = undefined\n }\n props.setDomainProperty(domainChecked);\n }}\n />\n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Form, Table, Button } from \"react-bootstrap\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function MicrosoftAdsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n const [idProvided, setIdProvided] = useState(false);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const [accessGranted, setAccessGranted] = useState(\n props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\"\n );\n let example = require(\"images/onboarding/microsoft-example.png\");\n example = ;\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true && (props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\" || props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\")) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n // useEffect(() => {\n // if (props.microsoftAdsIds.length > 0) return null;\n // let newRow = {};\n // props.setMicrosoftAdsIds((rows) => [...rows, newRow]);\n // }, []);\n\n props.pageLocator();\n\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Microsoft Ads Access

    \n
    \n
    \n

    \n On this page you will grant access to Microsoft Ads. First, provide your account ID below. This will be used in DataPulse and will additionally\n give {route.organization.name} the means to request access to your account. Once access is requested, the client can log into their Microsoft Ads account\n and approve.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Microsoft:

    \n \n
    \n \n \n
    \n
    \n {authButton(props.api_platforms[\"microsoft_ads\"])}\n

    {props.api_platforms[\"microsoft_ads\"][\"authenticated\"] ?\n \"You have already authenticated with Microsoft Ads. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Microsoft Ads!\"\n }\n

    \n
    \n
    \n \n
    \n \n \n

    Provide your account information below:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n ID\n
    \n {\n props.setMicrosoftAdsIds([{ \"id\": e.target.value }]);\n }}\n id={`ob-microsoft-ads-id`}\n />\n
    \n
    \n
    \n \n
    \n\n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

    \n \n
    */}\n \n \n
    \n
    {example}
    \n
    \n

    \n Note: Microsoft Ads account IDs must now be taken from the URL. Select the account from the initial list of accounts, then check the url for\n the \"aid\" parameter. The account id directly follows the = symbol.\n

    \n
    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n setIdProvided(!idProvided)}\n dynamic\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Requested\"] = props.teamAccess[\"Microsoft Ads\"][\"Requested\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n setAccessGranted(!accessGranted);\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Exist\"] = \"1\";\n\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Please indicate access granted

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Microsoft Ads\"][\"Full\"] = props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Microsoft Ads\"][\"Restricted\"] = props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function ShopifyAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n const [radio, setRadio] = useState(false)\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && (radio === true)) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [accessGranted, setAccessGranted] = useState(\n jsDig([\"Shopify\", \"Restricted\"], props.teamAccess) == \"1\" || jsDig([\"Shopify\", \"Full\"], props.teamAccess) == \"1\"\n );\n const [urlProvided, setUrlProvided] = useState(false);\n\n let shopifyIcon = require(\"images/logos/shopify-icon.png\");\n shopifyIcon = ;\n\n return (\n <>\n \n \n
    \n

    Grant Shopify Access

    \n
    \n
    \n

    \n On this page you will grant access to Shopify, which requires a unique process to grant access. There are three steps below that include providing\n the client store URL, having access requested, and then the client granting said access.\n

    \n
    \n \n
    \n \n \n \n \n

    First, enter your Shopify store URL:

    \n \n
    \n\n \n \n props.setShopifyUrl(e.target.value)}\n required\n type=\"text\"\n />\n

    \n .myshopify.com\n

    \n \n
    \n \n \n
    \n

    \n Next you will need to grant {route.organization.name} access to the account. Check the boxes below to confirm they've been completed.\n

    \n
    \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n setUrlProvided(!urlProvided)}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Shopify\"][\"Requested\"] = props.teamAccess[\"Shopify\"][\"Requested\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Shopify\"][\"Full\"] = \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n\n \n
    \n
    \n

    \n Will Shopify data be pulled utilizing all sales channels or only the online store?\n

    \n
    \n
    \n {props.setShopifyChannel(\"online_store\");\n setRadio(true)}}\n />\n {props.setShopifyChannel(\"overall\");\n setRadio(true)}}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function ShopifyAuthenticate(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [urlProvided, setUrlProvided] = useState(false);\n\n const [urlCopied, setUrlCopied] = useState(false);\n\n const getFullShopifyUrl = (url) => {\n if (url && url != \"\") {\n if (url.includes(\".myshopify.com\")) {\n return url;\n } else {\n return url + \".myshopify.com\";\n }\n } else {\n return false;\n }\n };\n\n const copyAuthUrl = () => {\n let authUrl = \"\";\n if (getFullShopifyUrl(props.shopifyUrl) == false) {\n return false;\n }\n const paramsObject = {\n shopify_url: getFullShopifyUrl(props.shopifyUrl),\n };\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/shopify-authenticate\",\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n authUrl = data.permission_url;\n },\n });\n\n /* Copy the text inside the text field */\n navigator.clipboard.writeText(authUrl);\n setUrlCopied(true);\n };\n\n const authenticateFunction = () => {\n if (getFullShopifyUrl(props.shopifyUrl) == false) {\n return false;\n }\n const paramsObject = {\n shopify_url: getFullShopifyUrl(props.shopifyUrl),\n };\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/shopify-authenticate\",\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n window.open(data.permission_url, \"_blank\");\n },\n });\n };\n\n let shopifyIcon = require(\"images/logos/shopify-icon.png\");\n shopifyIcon = ;\n const authenticateButton = (\n \n Authenticate\n {shopifyIcon}\n \n );\n\n const copyButton = (\n \n Copy install link  \n {urlCopied ? : }\n \n );\n\n return (\n <>\n \n \n \n
    \n

    Grant DataPulse Access to Shopify

    \n
    \n
    \n

    \n Now you will install the DataPulse Bridge to the client's Shopify store. This will allow DataPulse to connect and pull metrics and display them in the dashboards.\n

    \n
    \n
    \n

    {getFullShopifyUrl(props.shopifyUrl)}

    \n
    \n \n
    \n \n \n \n \n
    \n

    \n Authenticate your account with one of the two methods below. The green authenticate button will attempt to authenticate automatically,\n or click the blue button to copy the URL (then paste in your browser) to authenticate manually.\n

    \n
    \n
    \n {authenticateButton}\n {copyButton}\n
    \n \n
    \n \n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function TeamAccessIntro(props) {\n const route = useContext(RouterContext);\n let nextUrl;\n if (props.client_account.website_platform == 0) {\n nextUrl = \"/datapulse/onboarding/shopify_access\";\n } else {\n nextUrl =\n props.teamAccessChoices && props.teamAccessChoices[0] && props.teamAccessChoices[0] !== \"datafeedwatch_install\"\n ? `/datapulse/onboarding/${props.teamAccessChoices[0]}`\n : `/datapulse/onboarding/service_agreements_intro`;\n }\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n const completePages = Object.keys(props.teamAccess).filter((platform) => parseInt(props.teamAccess[platform][\"Exist\"]) == \"1\");\n if (completePages.length > 0) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n const platforms =\n\n props.enabled_services.ppc === true && props.enabled_services.seo === true\n ? [\"Google Analytics\", \"Google Ads\", \"Microsoft Ads\", \"Google Merchant\", \"Facebook Ads\", \"Tiktok Ads\", \"Youtube\", \"Google Search Console\", \"Google Business\"]\n : props.enabled_services.ppc === true && props.enabled_services.seo !== true\n ? [\"Google Analytics\", \"Google Ads\", \"Microsoft Ads\", \"Google Merchant\", \"Facebook Ads\", \"Tiktok Ads\", \"Youtube\"]\n : [\"Google Analytics\", \"Google Search Console\", \"Google Business\"];\n\n useEffect(() => {\n window.localStorage.setItem(\n \"teamChoices\",\n JSON.stringify(\n Object.entries(props.teamAccess)\n .filter((el) => el[0] !== \"SEMRush\")\n .filter((el) => el[1][\"Exist\"] === \"1\")\n .map((el) =>\n el[0] === \"DataFeedWatch\" ? el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n )\n .sort()\n )\n );\n props.setTeamAccessChoices(\n Object.entries(props.teamAccess)\n .filter((el) => el[0] !== \"SEMRush\")\n .filter((el) => el[1][\"Exist\"] === \"1\")\n .map((el) => (el[0] === \"DataFeedWatch\" ? el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_access\"))\n .sort()\n );\n }, [props.teamAccess]);\n\n // Need to complete pages in progress tracker that do not need to be set up\n const completePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/complete_pages\";\n let paramsObject = {\n client_account_id: props.client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Completed pages: \" + JSON.stringify(pages));\n },\n });\n };\n const incompletePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/incomplete_pages\";\n let paramsObject = {\n client_account_id: props.client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Incompleted pages: \" + JSON.stringify(pages));\n },\n });\n };\n console.log(\n Object.keys(props.teamAccess).filter(\n (platform) => parseInt(props.teamAccess[platform][\"Exist\"]) !== 1 && (platform != \"SEMRush\") & (platform != \"DataFeedWatch\")\n )\n );\n return (\n <>\n \n \n
    \n

    Next Up: Team Access

    \n
    \n
    \n

    \n On this page we'll need to select all of the platforms that the company has accounts with. Then we will go through each of these one at a time on\n the next few pages and provide information and ID's so that the marketing team can do what they do best. Now would be a good opportunity to pause\n and get in touch with anyone who may have this information handy, like company IT specialists and account managers.{\" \"}\n \n You can skip and come back to any of the upcoming sections, but we must stress that this may be detrimental to your teams work, and failing to\n provide this information could potentially impede progress and optimal results.\n \n

    \n
    \n \n
    \n \n \n

    \n Please select the platforms that the company will be utilizing that we either need to set-up OR be given access to:\n

    \n \n \n
    \n {platforms.map((platform, idx) => {\n return (\n
    \n {\n let accessChecked = props.teamAccess;\n const currentValue = accessChecked[platform][\"Exist\"] == \"1\";\n accessChecked[platform][\"Exist\"] = currentValue == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n );\n })}\n
    \n \n
    \n \n
    \n \n \n \n
    \n \n {\n let completePagesNames = Object.keys(props.teamAccess).filter(\n (platform) => parseInt(props.teamAccess[platform][\"Exist\"]) !== 1 && (platform != \"SEMRush\") & (platform != \"DataFeedWatch\")\n );\n\n !props.seo_section.enabled && completePagesNames.push(\"SEMRush\");\n let incompletePagesNames = Object.keys(props.teamAccess).filter((platform) => parseInt(props.teamAccess[platform][\"Exist\"]) == 1);\n let pageNames = completePagesNames.map((page) =>\n page == \"DataFeedWatch\" ? page.toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : page.toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n );\n let inCompletepageNames = incompletePagesNames.map((page) =>\n page == \"DataFeedWatch\" ? page.toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : page.toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n );\n\n completePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n incompletePages(inCompletepageNames.map((page) => `/datapulse/onboarding/${page}`));\n\n if (props.webPlatform !== 0) {\n completePages([`shopify_access`, `shopify_authenticate`].map((page) => `/datapulse/onboarding/${page}`));\n } else {\n incompletePages([`shopify_access`, `shopify_authenticate`].map((page) => `/datapulse/onboarding/${page}`));\n }\n }}\n />\n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function TiktokAdsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Tiktok Ads\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Tiktok Ads\"][\"Full\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Tiktok Ads\"][\"Full\"] == \"1\") || props.teamAccess[\"Tiktok Ads\"][\"Restricted\"] == \"1\") ) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n useEffect(() => {\n if (props.tiktokAdsIds.length > 0) return null;\n let newRow = {};\n newRow.frontId = uuidv4();\n newRow.label = \"\";\n newRow.id = \"\";\n props.setTiktokAdsIds((rows) => [...rows, newRow]);\n }, []);\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Tiktok Ads Access

    \n
    \n
    \n

    \n On this page you will grant access to Tiktok Ads. Please {/*watch the video for the detailed instruction on how to grant access properly, and then*/}\n check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and will\n not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Tiktok:

    \n \n
    \n \n \n
    \n
    \n
    \n {authButton(props.api_platforms[\"tiktok_ads\"])}\n

    {props.api_platforms[\"tiktok_ads\"][\"authenticated\"] ?\n \"You have already authenticated with Tiktok Ads. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Tiktok Ads!\"\n }\n

    \n
    \n
    \n
    \n \n \n
    \n
    \n

    Tiktok Ads ID

    \n \n \n {props.tiktokAdsIds.map((el, idx) => {\n return (\n \n \n \n );\n })}\n \n
    \n {\n let newTiktokAdsIds = props.tiktokAdsIds;\n newTiktokAdsIds[idx][\"id\"] = e.target.value;\n props.setTiktokAdsIds([...newTiktokAdsIds]);\n }}\n id={`ob-tiktok-ads-id${idx}`}\n required\n type=\"text\"\n />\n
    \n
    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n setUserGrantAccess(!userGrantAccess);\n }}\n />\n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Tiktok Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Tiktok Ads\"][\"Full\"] = props.teamAccess[\"Tiktok Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Tiktok Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Tiktok Ads\"][\"Restricted\"] = props.teamAccess[\"Tiktok Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n\n
    \n

    \n Note: Tiktok Ads requires it's own specific process to grant access. Make sure to double-check with the client that all necessary steps have\n been taken, all necessary access is granted, and then check the box to confirm.\n

    \n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function YoutubeAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n const [accessGranted, setAccessGranted] = useState(props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Youtube\"][\"Full\"] == \"1\");\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true && (props.teamAccess[\"Youtube\"][\"Full\"] == \"1\" || props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\")) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant YouTube Access

    \n
    \n
    \n

    \n On this page you will grant access to YouTube. Please check\n the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and will not\n perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Standard\"] = props.teamAccess[\"Youtube\"][\"Standard\"] == \"1\" ? \"0\" : \"1\";\n setAccessGranted(!accessGranted);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Restricted\"] = \"0\";\n accessChecked[\"Youtube\"][\"Full\"] = props.teamAccess[\"Youtube\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Full\"] = \"0\";\n accessChecked[\"Youtube\"][\"Restricted\"] = props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    \n Note: YouTube requires it's own specific process to grant access. Make sure to double-check with the client that all necessary steps have been\n taken, all necessary access are granted, and then check the box to confirm.\n

    \n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","const text = ['

    Virtual + In-Store Appointments. Book Today.

    ', '

    Free Domestic Shipping + Shop Our Sale.

    ', '

    Shop our Cluster Rings + Classic Bands

    ', '

    Read our Customer Reviews

    ', 'Free 2-day shipping for domestic orders valued over $500.'];\nlet counter = 0;\nconst elem = document.getElementById(\"top-bar\");\nconst inst = setInterval(change, 5000);\n\nfunction change() {\n elem.innerHTML = text[counter];\n counter++;\n if (counter >= text.length) {\n counter = 0;\n\n }\n}","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\nimport { capitalize } from \"lodash\";\nexport default function TrackSpecificACtionIds(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const sectionName = [\"Search\", \"Display\", \"Video\"];\n const sectionName2 = [\"Search\", \"Display\", \"Video\"];\n\n console.log(props.conversionActions.search.length)\n const [searchActive, setSearchActive] = useState(props.conversionActions.search.lengh > 0 ? false : true);\n const [displayActive, setDisplayActive] = useState(props.conversionActions.display.lengh > 0 ? false : true);\n const [videoActive, setVideoActive] = useState(props.conversionActions.video.lengh > 0 ? false : true)\n const [showBoxes, setShowBoxes] = useState(searchActive ? true : displayActive ? true : videoActive ? true : false);\n const [validated, setValidation] = useState(false);\nconsole.log(searchActive)\n const displayHelper = (section) => {\n section = section.toLowerCase();\n\n if (section === \"search\") {\n return searchActive;\n }\n if (section === \"display\") {\n return displayActive;\n }\n if (section === \"video\") {\n return videoActive;\n }\n };\n useEffect(() => {\n if (!(searchActive || displayActive || videoActive) && showBoxes) {\n setValidation(false);\n }\n });\n const conversionActionBox = (section) => {\n const sectionKey = section.toLowerCase();\n\n const conversionActions = props.conversionActions[sectionKey] ? props.conversionActions[sectionKey] : [];\n\n const [rows, setRows] = useState(conversionActions);\n\n const addNewRow = () => {\n let newActions = { ...props.conversionActions };\n let newRow = {\n conversion_type: \"exclusive\",\n conversion_id: \"\",\n name: \"\",\n };\n newActions[sectionKey].push(newRow);\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n const removeRow = (index) => {\n let newActions = { ...props.conversionActions };\n newActions[sectionKey].splice(index, 1);\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n const changeRow = (index, name, value) => {\n let newActions = { ...props.conversionActions };\n newActions[sectionKey][index][name] = value;\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n return (\n \n \n \n \n \n

    {section}

    \n \n
    \n
    \n {rows.map((conversionAction, idx) => {\n return (\n \n \n changeRow(idx, \"conversion_type\", e.target.value)}>\n \n \n \n \n \n changeRow(idx, \"name\", e.target.value)}\n />\n \n \n changeRow(idx, \"conversion_id\", e.target.value)}\n />\n \n \n removeRow(idx)} className=\"fas pb-1 fa-minus-circle\" style={{width: \"30px\"}}>\n \n \n );\n })}\n
    \n \n \n addNewRow()}>\n + Add\n \n \n \n \n \n );\n };\n\n return (\n <>\n \n \n
    \n

    Conversion Action ID Tracking

    \n
    \n
    \n

    Do you have any specific conversion action ID's to include or exclude for any PPC sub-services?

    \n
    \n \n
    \n\n \n \n
    \n \n

    \n Sometimes, clients have multiple conversion actions for their campaigns and we only need to focus on one. As a result, sometimes we need to\n specify which conversions to use for the \"conversions\" column in DataPulse. If you need to utilize a specific conversion action ID to track as\n the success metric for a sub-service, you may enter it in here.

    \n

    To get a Conversion Action ID, go to Google Ads and open the Tools & Settings menu from the top right of the navbar. In the\n Measurement column, select Conversions. Next, select the conversion action from the list that appears. Once you have selected a conversion\n action, check the final URL of the page and look for the 'ctId' parameter. This will be equal to the Conversion Action's ID`\n

    \n \"Conversion\n
    \n }\n inline={true}\n />{\" \"}\n What does this mean?\n \n
    \n {\n setShowBoxes(true);\n setValidation(true);\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n setDisplayActive(false)\n setSearchActive(false)\n setVideoActive(false)\n }}\n />\n
    \n \n
    \n
    \n \n \n

    For which sub-services?

    \n \n \n
    \n {sectionName.map((section, idx) => {\n section = section.toLowerCase();\n\n return (\n
    \n {section === \"search\" ? (\n {\n setValidation(true);\n setSearchActive(!searchActive);\n }}\n />\n ) : section === \"display\" ? (\n {\n setDisplayActive(!displayActive);\n setValidation(true);\n }}\n />\n ) : section === \"video\" ? (\n {\n setVideoActive(!videoActive);\n setValidation(true);\n }}\n />\n ) : undefined}\n
    \n );\n })}\n
    \n \n
    \n \n
    \n \n \n \n {sectionName2.map((section, idx) => {\n return (\n \n {conversionActionBox(section)}\n \n );\n })}\n \n \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function Website({\n pageLocator,\n primarySite,\n setPrimarySite,\n additionalWebs,\n handleOnChange,\n handleDelete,\n addRow,\n handleSelect,\n webPlatform,\n clientAccountId,\n submitForm,\n onboarding_progress,\n}) {\n pageLocator();\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const regex = \"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)\"\n\n // Need to complete pages in progress tracker that do not need to be set up\n const completePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/complete_pages\";\n let paramsObject = {\n client_account_id: clientAccountId,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Completed pages: \" + JSON.stringify(pages));\n },\n });\n };\n const incompletePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/incomplete_pages\";\n let paramsObject = {\n client_account_id: clientAccountId,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Incompleted pages: \" + JSON.stringify(pages));\n },\n });\n };\n\n return (\n <>\n \n \n

    Website

    \n \n
    \n \n \n \n \n

    Website/Domain Details

    \n \n
    \n \n \n

    \n Navigate to your website in a browser, and copy and paste the URL directly from the address bar into the field below. To add\n additional websites or subdomains (ie. if your primary website is \"example.com\" and you need to add \"shop.example.com\"), click the 'Add\n subdomain' button to create a new field and follow the same process in the new field with every entry.\n

    \n \n
    \n \n \n \n \n \n \n

    Primary Website

    \n
    \n \n
    \n \n \n setPrimarySite(e.target.value)}\n type=\"url\"\n pattern=\"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)\"\n required\n />\n \n \n \n
    \n \n \n

    Additional websites/subdomains

    \n
    \n\n {additionalWebs.map((website, index) => {\n return (\n \n handleOnChange(e, index)}\n />\n\n \n \n );\n })}\n\n \n \n \n
    \n \n
    \n \n \n

    Website platform

    \n \n
    \n \n \n

    What platform is being used?

    \n \n
    \n \n \n \n handleSelect(e.target.value)}\n defaultValue={webPlatform}\n required>\n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n {\n // Some pages won't be necessary to fill out\n let pageNames = [\"shopify_access\", \"shopify_authenticate\"];\n if (webPlatform != \"0\") {\n completePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n }\n else {\n incompletePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n }\n }}\n />\n \n \n \n \n \n );\n}\n","export default (onboarding_progress) => {\r\n let nextPage = {};\r\n if (onboarding_progress && onboarding_progress.length > 0) {\r\n const unresolvedPages = onboarding_progress.filter((page) => page.completed == false);\r\n const currentIndex = onboarding_progress.findIndex((page) => page.url == window.location.pathname);\r\n\r\n nextPage.url = \"/datapulse/onboarding/complete\";\r\n // Find next unresolved page starting from current index\r\n for (let i = currentIndex + 1; i < onboarding_progress.length; i++) {\r\n if (onboarding_progress[i].completed == false) {\r\n nextPage = onboarding_progress[i];\r\n // Break out of loop\r\n i = onboarding_progress.length;\r\n }\r\n }\r\n\r\n // Override last page if not actually complete\r\n if (nextPage.url == \"/datapulse/onboarding/complete\") {\r\n // Greater than 2 because counting current page & /datapulse/onboarding/complete is also a page\r\n if (unresolvedPages.length >= 2) {\r\n nextPage.url = \"/datapulse/onboarding/not_complete\";\r\n }\r\n }\r\n } else {\r\n // If onboarding_progress is nil or an empty array then this client hasn't even started onboarding yet and they requested the url directly. Next page should be intro\r\n nextPage.url = \"/datapulse/onboarding/company_type\";\r\n }\r\n return nextPage;\r\n};\r\n","import React from \"react\";\nimport {Row, Container, Col, Form, Button, Modal, Table } from \"react-bootstrap\";\n\n\nexport default function DeleteOrgModal(props) {\n return (\n props.setShowDeleteModal(false)} style={{ textAlign: \"center\" }}>\n
    \n \n {\" \"}\n \n \n

    Are you sure you want to delete?

    \n \n
    \n
    \n \n \n \n

    \n WARNING!\n

    \n

    \n Be absolutely sure that this is what you are intending to do. If you delete this organization, every client company within this org will be deleted as well. There is no way to restore this data once it is deleted.\n

    \n \n
    \n \n \n
    \n \n \n

    \n If you are absolutely sure you want to proceed, type '{ props.deleteTarget.name }' below and click delete.\n

    \n \n
    \n \n \n {\n props.setDeleteLocked(e.target.value != props.deleteTarget.name)\n }} \n />\n \n \n \n \n props.setShowDeleteModal(false)}\n >\n Cancel\n \n props.deleteOrg(props.deleteTarget)}\n >\n Delete { props.deleteTarget.name }\n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n )\n}","import React, { useState, useEffect, useRef } from \"react\";\nimport {Row, Container, Col, Form, Button, Modal, Table } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport DeleteOrgModal from \"./DeleteOrgModal\";\n\n\nexport default function OrgStatus(props) {\n const createNewOrgUrl = \"/datapulse/org-management/new-org\"\n const [showCreateModal, setShowCreateModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [deleteTarget, setDeleteTarget] = useState({});\n const [deleteLocked, setDeleteLocked] = useState(true);\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n const confirmDelete = (org) => {\n setDeleteTarget(org)\n setShowCreateModal(false)\n setShowDeleteModal(true)\n }\n\n const deleteOrg = (org) => {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/org-management/remove-org/\" + org.id,\n });\n }\n\n return (\n <>\n

    Organization Management

    \n \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n {props.orgs.map((org) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    NameCreation Date
    {org.name}{new Date(Date.parse(org.created_at)).toLocaleDateString()}\n \n View\n \n \n
    \n
    \n
    \n
    \n setShowCreateModal(false)} style={{ textAlign: \"center\" }}>\n
    \n \n {\" \"}\n \n \n

    What is the name of the organization?

    \n \n
    \n
    \n \n \n \n

    \n This is how your name will be displayed in DataPulse.\n

    \n \n
    \n \n \n
    \n \n \n \n \n \n Next\n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n );\n}\n\n","import React, { useState, useEffect } from \"react\";\nimport {Row, Container, Col, Form } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\n\n\n\nexport default function Customizations(props) {\n\n return (\n \n \n \n \n

    CUSTOMIZATIONS PAGE

    \n \n
    \n
    \n
    \n );\n}\n\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {Row, Container, Col, Form, Button, Modal } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport SaveChanges from \"./SaveChanges\";\nimport DeleteOrgModal from \"organization_management/DeleteOrgModal\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function OrgInfo(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const formSubmitUrl = `/datapulse/organization`;\n let defaultLogo = require(\"images/organizations/orgLogo.png\");\n const [fileName, setFileName] = useState(\"No File Chosen\");\n const inputRef = useRef();\n const [imageURL, setImageURL] = useState(props.logo ? props.logo : `/datapulse${defaultLogo}`);\n let OrgLogo = ;\n let upload = require(\"images/organizations/upload.png\");\n upload = ;\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [deleteTarget, setDeleteTarget] = useState({});\n const [deleteLocked, setDeleteLocked] = useState(true);\n const [zIndexFirst, setZIndexFirst] = useState (2500)\n const [show, setShow] = useState(false);\n const [show2, setShow2] = useState(false);\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const [toggledUsers, setToggledUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState(Object.entries(props.org_users).length > 0 ? Object.entries(props.org_users).map((el) => el[1]).filter(item => item.id === props.owner.id)[0].email: [])\n const unSelectedUsers = Object.entries(props.org_users).map((el) => el[1]).filter(item => item.role === \"admin\").map((user) => user.email)\n const [visibleUsers, setVisibleUsers] = useState([...unSelectedUsers]);\n const [newOwnerId, setNewOwnerId] = useState()\n\n let caution = require(\"images/icons/exclaim-triangle.png\");\n caution = \n \n\n const handleShow2 = () => {\n setShow2(true);\n setZIndexFirst(1000)\n }\n\n const handleClose2 = () => {\n setShow2(false)\n setZIndexFirst(3001)\n }\n\n // Update the list of users you can select from to be only unselected ones\n useEffect(() => {\n setVisibleUsers(Object.entries(props.org_users).map((el) => el[1]).filter(item => item.role === \"admin\" && item.id !== props.owner.id).map((user) => user.email));\n }, [selectedUsers]);\n \n // Update who the new owner should be whenever a new selection is toggled\n useEffect(() => {\n const capturedId = Object.entries(props.org_users).map((el) => el[1]).filter(item => item.email === toggledUsers[0]).map((user) => user.id)[0]\n setNewOwnerId(capturedId)\n }, [toggledUsers]);\n \n const toggleUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...toggledUsers];\n if (selection.includes(userEmail)) {\n selection.splice(selection.indexOf(userEmail), 1);\n } \n else {\n selection.pop()\n selection.push(userEmail);\n }\n setToggledUsers(selection);\n };\n \n const selectUsers = () => {\n props.setServiceAccount && props.setServiceAccount([...selectedUsers, ...toggledUsers]);\n setSelectedUsers([...selectedUsers, ...toggledUsers]);\n setToggledUsers([]);\n handleClose();\n };\n \n const handleCancel = () => {\n setToggledUsers([]);\n handleClose();\n };\n \n const searchUsers = (e) => {\n let filter = e.target.value.toLowerCase();\n let matchedUsers = [];\n unSelectedUsers.forEach((userEmail) => {\n let user = props.org_users[userEmail];\n // If the user is not subscribed already && their name or email matches input\n if (!selectedUsers.includes(userEmail) && (user.name.toLowerCase().includes(filter) || userEmail.toLowerCase().includes(filter))) {\n matchedUsers.push(userEmail);\n }\n });\n setVisibleUsers(matchedUsers);\n };\n \n const toggledUsersList = toggledUsers.map((userEmail) => {\n let user = props.org_users[userEmail];\n return (\n toggleUser(e)}>\n {user.name}\n \n \n );\n });\n\n \n\n const confirmDelete = (org) => {\n setDeleteTarget(org)\n setShowDeleteModal(true)\n }\n\n const deleteOrg = (org) => {\n props.handleOrgDelete()\n }\n\n\n return (\n <>\n
    \n \n \n \n {/* */}\n \n \n \n

    Organization Information

    \n \n
    \n \n \n
    \n

    Organization Logo

    \n
    \n
    \n {OrgLogo}\n
    \n

    inputRef.current.click()} className=\"plus-sign\">+

    \n
    \n
    \n
    \n {\n if (e.target.files[0].size > 8000000) {\n alert(\"Image must be less than 8MB. Consider use another image or compress this one.\");\n }\n setImageURL(URL.createObjectURL(e.target.files[0]));\n setFileName(e.target.files[0].name);\n }}\n />\n \n
    \n
    \n
    {fileName}
    \n
    \n
    \n

    \n Accepted file types: JPG, PNG, SVG \n
    \n Minimum file dimensions: 100x100px\n
    \n Ideal ratio 1:1\n
    \n Maximum file size: 8 MB\n

    \n
    \n \n \n

    Basic Info

    \n \n \n
    \n Organization Name\n
    \n \n
    \n \n \n \n \n \n \n \n
    \n Location\n
    \n \n
    \n \n \n \n \n \n \n \n
    \n Type{\" \"}\n
    \n \n \n \n \n \n \n
    \n {props.isOwner &&\n
    \n \n \n

    Owner Actions:

    \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n }\n \n \n

    Description

    \n \n \n \n \n \n \n
    \n \n
    \n \n Select new organization owner\n \n \n \n \n
    \n \n searchUsers(e)} placeholder=\"Enter a name or email address...\" />\n
    \n \n
    \n \n \n
      \n {visibleUsers.map((userEmail) => {\n let user = props.org_users[userEmail];\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n let toggled = toggledUsers.includes(userEmail) ? \"toggled\" : undefined;\n return (\n \n
    • toggleUser(e)} data-email={userEmail} className={toggled}>\n
      \n
      \n
      \n {avatar}\n
      \n \n
      \n
      \n  {user.name}\n  {userEmail}\n
      \n
      \n
    • \n
      \n );\n })}\n
    \n \n
    \n
    \n \n
    \n

    \n Transfer ownership to:\n

    \n {toggledUsersList}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n {caution}{\" \"}ARE YOU SURE?\n \n
    \n \n \n \n

    By relinquishing ownership you will lose access to ownership features

    \n \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n {/*
    */}\n \n \n \n );\n}\n\n","import React, { useState } from \"react\";\nimport { Row, Col, Form, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport OrgPickerModal from \"organizations/OrgPickerModal\"\n\nexport default function OrgPicker(props) {\n let orgPic = ;\n let dpLogo = require(\"images/logos/dp-logo-white.png\");\n dpLogo = ;\n const [show, setShow] = useState(false);\n const handleShow = () => setShow(true);\n const isClickable = (props.organizations && (props.organizations.length > 1)) || props.god_or_admin\n let orgName = props.selected_org.name\n if (orgName.length > 20) {\n orgName = orgName.slice(0,20) + \"...\"\n }\n\n return (\n \n {(props.organizations && props.organizations.length > 0) && (\n \n )}\n \n
    \n \n \n \n {props.logo ? orgPic : dpLogo} {orgName}\n \n {isClickable ?\n \n\n\n \n\n \n : <>\n }\n \n \n {isClickable ?\n
    \n {props.organizations.length > 1 &&\n

    \n Change Organization\n

    \n }\n {\n props.god_or_admin &&\n\n \n Organization Settings\n \n }\n
    \n : <>\n }\n
    \n \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Modal, Form, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function OrgPickerModal(props) {\n const [selfShow, setSelfShow] = useState(true)\n const changeOrg = () => {\n const selectedOrgId = $(\"#org-picker\").val();\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/organization/select-organization/\",\n data: {\n org_id: selectedOrgId,\n },\n });\n };\n\n return (\n {} : () => props.setShow(false)}>\n \n Change Organization\n \n \n \n \n

    Select organization to view:

    \n \n \n {props.organizations.map((org) => {\n return (\n \n \n \n );\n })}\n \n \n
    \n \n {props.force_selection != true && (\n \n \n \n )}\n \n {\n if (props.force_selection) {\n setSelfShow(false)\n } else {\n props.setShow(false)\n }\n changeOrg();\n }}\n variant=\"success\">\n Change Organization\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Form } from \"react-bootstrap\";\nimport SaveChanges from \"./SaveChanges\";\nimport updateParams from \"utils/updateParams.js\";\nimport Users from \"./Users\"\nimport Customizations from \"./Customizations\"\nimport OrgInfo from \"./OrgInfo\"\n\nexport default function Organizations(props) {\n const [tabLocation, setTabLocation] = useState(\"orgInfo\");\n const [isOwner, setIsOwner] = useState((props.current_user.id === props.owner.id) || props.current_user_is_god)\n\n const servicePicker = (searchParams) => {\n if (searchParams.toString().includes(\"customizations\")) {\n return \"customizations\"\n }\n if (searchParams.toString().includes(\"users\")) {\n return \"users\"\n }\n }\n\n const handleOwnershipTransfer = (user_id) => {\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/transfer-ownership/\",\n\t\t\tdata: {\n\t\t\t\torg_id: props.org.id,\n user_id: user_id\n\t\t\t},\n\t\t});\n }\n\n const handleOrgDelete = () => {\n // Nothing on this url yet, just psuedocode\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/delete/\",\n\t\t\tdata: {\n\t\t\t\torg_id: props.org.id\n\t\t\t},\n\t\t});\n }\n \n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"orgInfo\";\n }\n if (page === \"customizations\") {\n setTabLocation(page);\n updateParams(\"page\", page);\n updateParams(\"sub_page\", servicePicker(searchParams));\n }\n else {\n setTabLocation(page);\n updateParams(\"page\", page);\n }\n }, []);\n\n const selectTab = (key) => {\n if (key === \"services\") {\n setTabLocation(key);\n updateParams(\"page\", key);\n updateParams(\"sub_page\", servicePicker(searchParams));\n }\n else {\n\n setTabLocation(key);\n updateParams(\"page\", key);\n }\n };\n\n return (\n
    \n \n selectTab(k)}>\n {/* */}\n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n {/* */}\n
    \n );\n}\n","import React, { useRef, useState, useEffect } from \"react\";\nimport { Button, Col, Row } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\n\n\n\nexport default function SaveChanges(props) {\n return (\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport {Row, Container, Col, Form, Table, Button } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport SaveChanges from \"./SaveChanges\";\n\n\n\nexport default function Users(props) {\nconst authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [filteredInput, setFilteredInput] = useState(\"\")\n const departments = [\"no_department\", \"seo_department\", \"ppc_department\", \"both_departments\", \"dev_department\"]\n const roles = [\"nobody\", \"client\", \"employee\", \"specialist\", \"manager\", \"admin\"]\n const formSubmitUrl = `/datapulse/organization/${props.org.id}/user-detail`;\n\n\n return (\n
    \n \n \n \n \n \n \n

    User Management

    \n \n
    \n \n \n
    \n Filter:\n setFilteredInput(e.target.value) } value={filteredInput} />\n
    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n { props.isOwner && }\n \n \n \n {\n Object.entries(props.org_users).map((el) => el[1]).sort((a,b) => a.id -b.id).map((user, idx) => {\n const tempName = user.name.toLowerCase()\n const tempEmail = user.email.toLowerCase()\n console.log(user.role)\n const tempRole = user.role !== \"owner\" ? user.role.toLowerCase().replace(\"_\", \" \") : user.role\n const tempDepartment = !user.department ? \"no_department\" : user.department.toLowerCase().replace(\"_\", \" \")\n if (tempName.includes(filteredInput.toLowerCase()) || tempEmail.includes(filteredInput.toLowerCase()) || tempDepartment.includes(filteredInput.toLowerCase()) || tempRole.includes(filteredInput.toLowerCase()) || filteredInput === \"\")\n return (\n \n \n \n \n \n \n \n { props.isOwner && }\n \n )})\n } \n \n
    ID #NameEmailRoleDepartment
    {user.id}{user.name}{user.email}\n {\n user.role === \"owner\" ?\n <>\n

    Owner

    \n \n\n \n :\n\n \n {\n roles.map((el) => {\n //This is formatting items such as DP_Employee and Client_Employee to remove underscores and mention of DP\n let tempRole = el.replace(\"dp_\", \"\").replace(\"_\", \" \")\n let tempRoleFormatted = []\n for (let i = 0; i < tempRole.length; i++) {\n if (i === 0) {\n tempRoleFormatted.push(tempRole[i].toUpperCase())\n }\n else if (tempRole[i - 1] === \" \") {\n tempRoleFormatted.push(tempRole[i].toUpperCase())\n }\n else {\n tempRoleFormatted.push(tempRole[i])\n }\n }\n return (\n \n )\n })} \n \n }\n
    \n \n \n { \n departments.map((el) => {\n let tempDepartment = el.replace(\"_\", \" \")\n let tempDepartmentFormatted = []\n for (let i = 0; i < tempDepartment.length; i++) {\n if (i === 0) {\n tempDepartmentFormatted.push(tempDepartment[i].toUpperCase())\n }\n else if (tempDepartment[i - 1] === \" \") {\n tempDepartmentFormatted.push(tempDepartment[i].toUpperCase())\n }\n else {\n tempDepartmentFormatted.push(tempDepartment[i])\n }\n }\n return (\n \n )\n })\n }\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n );\n}\n","import React from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport MonthlyPpcSection from \"./MonthlyPpcSection\";\n\nfunction MonthlyPpcReport(props) {\n const page = props.page;\n const dashboard = props.dashboard;\n if (page) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"]\n .map((metric) => metric)\n .filter((value, index, self) => self.findIndex((el) => el.section == value.section && el.service == value.service) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section, index) => {\n sections.push({\n name: section.section,\n service: section.service,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section.section && m[\"service\"] == section.service)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n return (\n \n {sections.map((section, index) => {\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n } else {\n return (\n <>\n )\n }\n}\nexport default MonthlyPpcReport;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\nconst allMetricData = allMetrics();\nexport default function MonthlyPpcSection(props) {\n const section = props.section;\n let cc_data = props[`${props.section.service}_section`].cc_data;\n const baseCurrency = jsDig([`${props.section.service}_section`, 'base_currency'], props)\n const displayCurrency = jsDig([`${props.section.service}_section`, 'display_currency'], props)\n const dashboard = props.dashboard;\n const metricData = allMetricData[\"metricData\"];\n const goalChartDim = \"120x120\";\n const lineChartDim = \"350x250\";\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const tablesPerRow = 1;\n\n let date = props.date ? moment(props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = props[`${props.section.service}_section`].goals;\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n KPI's vs Goals{\" \"}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n \n
    \n {section.service == \"ppc\" ? \"All PPC\" : section.service == \"seo\" ? \"SEO\" : capitalize(section.service)}\n
    \n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n let Formatter = GetFormatter({ metricName: metricKey });\n\n return (\n \n {jsDig([dashboard, metricKey, \"raw\"], cc_data) != null && section.metrics_data[metricName] == \"1\" ? (\n \n ) : (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n PPC Performance: {props.section.service == \"ppc\" ? \"All PPC\" : capitalize(props.section.service)}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n {props.sectionIndex == 1 && props.section.service == \"ppc\" &&

    PPC Performance: All PPC

    }\n

    Primary KPI's (charts)

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n PPC Performance: {props.section.service == \"ppc\" ? \"All PPC\" : capitalize(props.section.service)}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (tables)

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n}\n","import React from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nexport default function MonthlyReportIntro(props) {\n const datapulseLogo = require(\"images/logos/datapulse-logo-blue.png\");\n const ppcEnabled = jsDig([\"search_section\", \"enabled\"], props) || jsDig([\"social_section\", \"enabled\"], props) || jsDig([\"display_section\", \"enabled\"], props) || jsDig([\"video_section\", \"enabled\"], props)\n const seoEnabled = jsDig([\"seo_section\", \"enabled\"], props)\n\n return (\n \n

    \n \n

    \n

    {props.client_name}

    \n
    Performance Snapshot for
    \n

    {props.date_formatted}

    \n
    \n

    In this reivew, we'll walk through {props.date_formatted}'s performance in regard to:

    \n {ppcEnabled && (\n <>\n
    PPC Performance
    \n
      \n
    • KPI's vs. Goals
    • \n
    • Overview of all PPC performance
    • \n
    • Overview of PPC sub-services
    • \n
    \n \n )}\n {seoEnabled && (\n <>\n
    SEO Performance
    \n
      \n
    • Overview of all SEO performance
    • \n
    \n \n )}\n
    \n
    \n );\n}\n","import React from \"react\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nexport default function MonthlyReportOutro(props) {\n return (\n \n
    \n

    Any questions about your monthly report? Ask your account leads.

    \n

    More detailed data can be found by logging into DataPulse

    \n
      \n
    • Campaign groups
    • \n
    • Spend allocation
    • \n
    • & more!
    • \n
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport MonthlyPpcReport from \"./MonthlyPpcReport\";\nimport MonthlySeoReport from \"./MonthlySeoReport\";\nimport MonthlyReportIntro from \"./MonthlyReportIntro\";\nimport MonthlyReportOutro from \"./MonthlyReportOutro\";\n\nconst allMetricData = allMetrics();\n\nexport default function MonthlyReportPdf(props) {\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const kpiBlocksPerRow = 4;\n const metricsPerTable = 4;\n const goalRowHeight = 119;\n const chartRowHeight = 300;\n const tableRowHeight = 315;\n const kpiBlockRowHeight = 200;\n const keywordRankingRowHeight = 25;\n const checkPpcSections = (name) => {\n return props.ppc_section[name] || props.search_section[name] || props.social_section[name] || props.display_section[name] || props.video_section[name];\n };\n const dashboard = props.dashboard;\n const seo_cc_data = props.seo_section.cc_data;\n const allServices = [\"ppc\", \"search\", \"social\", \"display\", \"video\", \"seo\"];\n let dashboardOrders = [];\n allServices.forEach((service) => {\n const defaultMetrics = jsDig([\"metricsByDashboard\", service, \"defaults\", props.client_type], allMetricData);\n if (jsDig([`${service}_section`, \"dashboard_order\", dashboard], props) && jsDig([`${service}_section`, \"dashboard_order\", dashboard], props).length > 0) {\n dashboardOrders.push(\n cloneDeep(jsDig([`${service}_section`, \"dashboard_order\", dashboard], props)).map((obj) => {\n obj[\"service\"] = service;\n return obj;\n })\n )\n } else {\n const sectionList = jsDig([\"metricsByDashboard\", service, \"sections\"], allMetricData);\n dashboardOrders.push(\n Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n service: service,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n })\n );\n }\n });\n\n // Rearrange goal sections and put them all on the first dashboardOrder\n let goalsAndProjections = [];\n dashboardOrders.forEach((dbOrd, index) => {\n dbOrd.forEach((section, sectionIndex) => {\n if (section.name == \"goalsAndProjections\") {\n goalsAndProjections.push(section)\n dashboardOrders[index].splice(sectionIndex, 1)\n }\n })\n });\n dashboardOrders.unshift(goalsAndProjections)\n \n // Removing irrelevant sections\n dashboardOrders = dashboardOrders.map((dashboardOrder) => {\n return (dashboardOrder.filter((item) => {\n return (\n (item.name !== \"allKpisVsPreviousYear\") &&\n (item.name !== \"performanceByChannel\") &&\n (item.name !== \"campaignGroups\") &&\n (item.name !== \"spendAllocation\") &&\n (item.name !== \"keywordGroups\") &&\n (item.name !== \"keywordSummary\") &&\n (item.name !== \"landingPageBreakdown\")\n )\n }))\n });\n \n // Separate ppc & seo dashboard orders for processing\n let seoDashboardOrder = dashboardOrders[dashboardOrders.length - 1];\n dashboardOrders.pop();\n\n // Removing irrelevant sections\n seoDashboardOrder = seoDashboardOrder.filter((item) => {\n return ((item.name !== \"allKpisVsPreviousYear\") && (item.name !== \"keywordGroups\") && (item.name !== \"keywordSummary\") && (item.name !== \"goalsAndProjections\") && (item.name !== \"landingPageBreakdown\"))\n });\n \n // PDFs can't be processed section props.keyword_sort section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let seoPages = [];\n let ppcPages = [];\n let keepingTrack = [];\n let currentPage = 0;\n\n // Process PPC dashboard order\n dashboardOrders.forEach((dashboardOrder) => {\n for (const [index, section] of dashboardOrder.entries()) {\n console.log(section, \"section\")\n if (jsDig([`${section.service}_section`, \"enabled\"], props) || (section.service == \"ppc\" && checkPpcSections(\"enabled\"))) {\n if (section.enabled) {\n if (section.metrics_data) {\n keepingTrack.push(section);\n if (\n section.name != \"goalsAndProjections\" &&\n jsDig([keepingTrack.length - 2, \"name\"], keepingTrack) != \"goalsAndProjections\" &&\n keepingTrack.length > 1 &&\n jsDig([keepingTrack.length - 2, \"service\"], keepingTrack) != jsDig([keepingTrack.length - 1, \"service\"], keepingTrack)\n ) {\n console.log(\"Service has changed\")\n //initialize new page\n currentPage += 1;\n if (!ppcPages[currentPage]) {\n console.log(\"Initialized new page\");\n ppcPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = goalsPerRow;\n elementHeight = goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = chartsPerRow;\n elementHeight = chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = metricsPerTable;\n elementHeight = tableRowHeight;\n } else {\n return section.name;\n }\n\n // Create pages array\n let metricNames = Object.keys(section.metrics_data ? section.metrics_data : {});\n metricNames.forEach((metricName, metricIndex) => {\n if (!ppcPages[currentPage]) {\n ppcPages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n ppcPages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0) {\n let maxPageHeight = 971;\n if (\n (elementHeight + ppcPages[currentPage][\"pageHeight\"] > maxPageHeight) || \n (section.name !== \"goalsAndProjections\" && jsDig([keepingTrack.length - 2, \"name\"], keepingTrack) == \"goalsAndProjections\")\n ) {\n //initialize new page\n currentPage += 1;\n if (!ppcPages[currentPage]) {\n console.log(\"Initialized new page\");\n ppcPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n ppcPages[currentPage][\"pageHeight\"] += elementHeight;\n }\n ppcPages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n service: section.service,\n });\n console.log(metricName, \"metric\", cloneDeep(ppcPages))\n });\n }\n }\n }\n }\n });\n\n // Process SEO dashboard order\n currentPage = 0;\n for (const [index, section] of seoDashboardOrder.entries()) {\n console.log(section, \"section\")\n if (jsDig([\"seo_section\", \"enabled\"], props)) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = chartsPerRow;\n elementHeight = chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = metricsPerTable;\n elementHeight = tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = kpiBlocksPerRow;\n elementHeight = kpiBlockRowHeight;\n } else if (section.name == \"backlinks\") {\n elementsPerRow = kpiBlocksPerRow;\n elementHeight = kpiBlockRowHeight;\n } else if (section.name == \"keywordRankings\") {\n elementsPerRow = 1;\n elementHeight = keywordRankingRowHeight;\n } else {\n return section.name;\n }\n\n if (section.name == \"keywordRankings\") {\n metricNames = jsDig([dashboard, \"keyword_rankings\"], seo_cc_data).map((ranking) => ranking[\"keyword\"]);\n }\n\n metricNames.forEach((metricName, metricIndex) => {\n if (!seoPages[currentPage]) {\n seoPages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n seoPages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0) {\n let maxPageHeight = 971;\n if (elementHeight + seoPages[currentPage][\"pageHeight\"] > maxPageHeight) {\n currentPage += 1;\n if (!seoPages[currentPage]) {\n console.log(\"Initialized new page\");\n seoPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n if (section.name == \"keywordRankings\") {\n //for table head\n seoPages[currentPage][\"pageHeight\"] += 25;\n }\n }\n\n seoPages[currentPage][\"pageHeight\"] += elementHeight;\n }\n seoPages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n console.log(metricName, \"metric\")\n });\n }\n }\n }\n }\n\n // Separate goals page from ppc pages\n let goalPage = ppcPages.length > 0 ? [ppcPages.shift()] : []\n\n console.log(seoPages, \"seoPages\")\n console.log(ppcPages, \"ppcPages\")\n console.log(goalPage, \"goalPage\")\n\n // Pages start at 1 to account for intro page\n let pageNumber = 1;\n return (\n <>\n \n {goalPage.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n }\n\n {checkPpcSections(\"enabled\") && jsDig([dashboard, \"date\"], props.ppc_section.cc_data) && (\n ppcPages.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n )}\n\n {props.seo_section.enabled && jsDig([dashboard, \"date\"], seo_cc_data) && (\n seoPages.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n )}\n \n \n );\n}\n","import React from \"react\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport MonthlySeoSection from \"./MonthlySeoSection\";\n\nexport default function MonthlySeoReport(props) {\n const page = props.page;\n const seo_cc_data = props.seo_cc_data;\n const dashboard = props.dashboard;\n\n if (page) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n return (\n \n {sections.map((section, index) => {\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n } else {\n return (\n <>\n )\n }\n}\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport PdfKPIMetricBlock from \"dashboards/PdfKPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport PdfKeywordTable from \"dashboards/PdfKeywordTable\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\nconst allMetricData = allMetrics();\n\nexport default function MonthlySeoSection(props) {\n const goalChartDim = \"135x135\";\n const lineChartDim = \"350x250\";\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const tablesPerRow = 1;\n const section = props.section;\n const cc_data = props.cc_data;\n const dashboard = props.dashboard;\n const metricData = allMetricData[\"metricData\"];\n let date = props.date ? moment(props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n function categorize(string) {\n if (string.includes(\"landingPageGroups\")) {\n landingPageCase = string;\n }\n if (string.includes(\"keywordGroups\")) {\n keywordCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"seo\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let seoGoals = props.seo_section.goals;\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], seoGoals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (charts)

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (tables)

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"backlinks\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Backlinks

    \n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"keywordRankings\":\n let sortedKeywords = jsDig([dashboard, \"keyword_rankings\"], cc_data);\n switch (props.keyword_sort) {\n case \"keyword\":\n sortedKeywords.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n break;\n case \"prevpos\":\n sortedKeywords.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n break;\n case \"currentpos\":\n sortedKeywords.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n break;\n case \"diff\":\n sortedKeywords.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n break;\n case \"cpc\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n break;\n case \"volume\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n break;\n case \"difficulty\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n break;\n }\n if (!props.seo_section.keyword_sort_order_asc) {\n sortedKeywords.reverse();\n }\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Keyword Listings

    \n el.name == \"keywordRankings\")}\n keyword_sort_order_asc={props.seo_section.keyword_sort_order_asc}\n keyword_sort={props.seo_section.keyword_sort}\n pdf={true}\n />\n \n );\n default:\n return

    {section.name} is not a valid section name for this dashboard

    ;\n }\n }\n}\n","import React from \"react\";\n\nclass PDFPage extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n componentDidMount() {}\n\n render() {\n const logo = require(\"images/logos/dp-logo-small.png\");\n return (\n
    \n
    {this.props.children}
    \n
    \n {/* {this.props.hideLogo ? (\n \n ) : (\n <>\n \n \n )} */}\n\n

    {this.props.pageNumber}

    \n
    \n
    \n );\n }\n}\n\nexport default PDFPage;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfDisplay extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Display Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"display\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"display\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfDisplay;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { cloneDeep, capitalize, camelCase } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"../utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfOverall extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"performanceByChannel\":\n const channels = renderArray.map((channel) => {\n if (section.metrics_data[`${channel}`] == \"1\") return channel;\n });\n\n return (\n
    \n

    Performance By Channels

    \n {[\"search\", \"social\", \"display\", \"video\"].map((channel, index) => {\n let metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"total_conversions\", \"total_roas\"]\n : [\"spend\", \"clicks\", \"total_conversions\", \"cpa\"];\n if (channel == \"search\") {\n metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"click_conversions\", \"click_roas\"]\n : [\"spend\", \"clicks\", \"click_conversions\", \"cpa\"];\n }\n\n if (channels.includes(channel)) {\n let tempMetricNames = [];\n return (\n
    \n \n

    {capitalize(channel)}

    \n {metricNames.map((metricName, index) => {\n if (metricName) {\n if (jsDig([`${channel}_section`, \"cc_data\", 0, \"metrics_2_years\", metricName], this.props) == null) {\n console.log(`${metricName} was not found.`);\n return <>;\n }\n } else {\n return

    {metricName} not defined in metricData.json

    ;\n }\n\n tempMetricNames.push(metricName);\n })}\n\n \n \n \n
    \n
    \n );\n }\n })}\n
    \n );\n case campaignGroupCase:\n const sections = renderArray.map((channel) => {\n if (section.metrics_data[`${channel}`] == \"1\") return channel;\n });\n\n return (\n <>\n

    Campaign Groups

    \n {[\"search\", \"social\", \"display\", \"video\"].map((channel, index) => {\n const channelName = `${channel}_section`;\n const groupOrder = this.props[channelName].campaign_group_order ? this.props[channelName].campaign_group_order : [];\n\n return (\n
    \n {groupOrder.map((group_id, index) => {\n let metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"total_conversions\", \"total_roas\"]\n : [\"spend\", \"clicks\", \"total_conversions\", \"cpa\"];\n if (channel == \"search\") {\n metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"click_conversions\", \"click_roas\"]\n : [\"spend\", \"clicks\", \"click_conversions\", \"cpa\"];\n }\n const campaignGroup = this.props[channelName].campaign_groups.find(\n (group) => group.id == group_id && sections.includes(camelCase(group.name))\n );\n\n if (campaignGroup) {\n let tempMetricNames = [];\n return (\n
    \n \n

    {campaignGroup.name}

    \n {metricNames.map((metricName, index) => {\n if (metricName) {\n if (jsDig([group_id, \"metrics_2_years\", metricName], this.props[channelName].cc_data) == null) {\n console.log(`${metricName} was not found in metrics_2_years in cc_data for campaign group ${group_id}`);\n return <>;\n }\n } else {\n return

    {metricName} not defined in metricData.json

    ;\n }\n\n tempMetricNames.push(metricName);\n })}\n\n {[...Array(Math.ceil(metricNames.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n
    \n );\n }\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} PPC Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return <>{this.generatePdfSection(section, cc_data, dashboard)};\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = this.props.dashboard;\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"ppc\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"ppc\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"performanceByChannel\") {\n elementsPerRow = 1;\n elementHeight = this.groupTableRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = 1;\n elementHeight = this.groupTableRowHeight;\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n let metricNames = Object.keys(section.metrics_data);\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.search_section.enabled || this.props.social_section.enabled || this.props.display_section.enabled || this.props.video_section.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return ;\n }\n }\n}\n\nexport default PPCPdfOverall;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfSearch extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Search Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"search\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"search\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n console.log(\"Pages:\");\n console.log(pages);\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfSearch;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfSocial extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Social Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"social\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"social\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfSocial;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummaryDisplay extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.display_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.display_metrics);\n const firstKey = clients[0];\n const displayMetrics = Object.keys(this.props.display_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n displayMetrics.map((metricName) => {\n let mValue = this.props.display_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Display

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryDisplay;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nclass PPCPdfSummaryOverall extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.search_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.search_metrics);\n const firstKey = clients[0];\n const searchMetrics = Object.keys(this.props.search_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n searchMetrics.map((metricName) => {\n let mValue = this.props.search_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Search

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryOverall;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummarySearch extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.search_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.search_metrics);\n const firstKey = clients[0];\n const searchMetrics = Object.keys(this.props.search_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n searchMetrics.map((metricName) => {\n let mValue = this.props.search_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Search

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummarySearch;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummarySocial extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.social_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.social_metrics);\n const firstKey = clients[0];\n const socialMetrics = Object.keys(this.props.social_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n socialMetrics.map((metricName) => {\n let mValue = this.props.social_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Social

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummarySocial;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummaryVideo extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.video_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.video_metrics);\n const firstKey = clients[0];\n const videoMetrics = Object.keys(this.props.video_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n videoMetrics.map((metricName) => {\n let mValue = this.props.video_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Video

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryVideo;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfVideo extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Video Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"video\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"video\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to video and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfVideo;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport KeywordBlock from \"dashboards/KeywordBlock\";\nimport KeywordImprovedDeclinedBlock from \"dashboards/KeywordImprovedDeclinedBlock\";\nimport KeywordTable from \"dashboards/KeywordTable\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\n\nclass SEOPdf extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.keywordRankingRowHeight = 25;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let landingPageCase;\n let keywordCase;\n // console.log(section, \"looking for keyword\");\n function categorize(string) {\n if (string.includes(\"landingPageGroups\")) {\n landingPageCase = string;\n }\n if (string.includes(\"keywordGroups\")) {\n keywordCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"seo\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n

    Primary Kpi Tables

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case landingPageCase:\n const pageName = landingPageCase.replace(\"landingPageGroups\", \"\");\n const landingPage = this.props.landing_page_groups.find((el) => el.name == pageName);\n return (\n <>\n {[landingPage.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {landingPage.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for landing page group {group_id}\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"backlinks\":\n return (\n <>\n

    Backlinks

    \n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case keywordCase:\n const keywordName = keywordCase.replace(\"keywordGroups\", \"\");\n const keywordGroup = this.props.keyword_groups.find((el) => el.name == keywordName);\n return (\n <>\n {[keywordGroup].map((group, index) => {\n console.log(group);\n console.log(section);\n const keywordGroup = group;\n const group_id = group.id;\n let metricTitle = this.props.keyword_groups.map((group) => group.name)[index];\n let metricTitles = [];\n metricTitles.push(metricTitle);\n return (\n
    \n \n

    Keyword: {keywordGroup.name}

    \n\n \n \n \n
    \n
    \n );\n })}\n \n );\n case \"keywordSummary\":\n return (\n <>\n

    Keyword Summary

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricName == \"Improved\") {\n if (section.metrics_data[metricName] == \"1\") {\n return (\n \n \n \n );\n }\n } else if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

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

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"keywordRankings\":\n let sortedKeywords = jsDig([dashboard, \"keyword_rankings\"], cc_data);\n switch (this.props.keyword_sort) {\n case \"keyword\":\n sortedKeywords.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n break;\n case \"prevpos\":\n sortedKeywords.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n break;\n case \"currentpos\":\n sortedKeywords.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n break;\n case \"diff\":\n sortedKeywords.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n break;\n case \"cpc\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n break;\n case \"volume\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n break;\n case \"difficulty\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n break;\n }\n if (!this.props.keyword_sort_order_asc) {\n sortedKeywords.reverse();\n }\n return (\n <>\n

    Keyword Rankings

    \n el.name == \"keywordRankings\")}\n keyword_sort_order_asc={this.props.keyword_sort_order_asc}\n keyword_sort={this.props.keyword_sort}\n pdf={true}\n />\n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections, sections.includes(\"landingPageGroups\"));\n\n return (\n \n {index == 0 && (\n
    \n

    {this.props.client_name} SEO Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n \n {this.generatePdfSection(section, cc_data, dashboard)}\n \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = this.props.dashboard;\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"seo\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"seo\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n let landingPageIndex = dashboardOrder.findIndex((el) => el.name == \"landingPageBreakdown\");\n const copyOfLandingPageMetric = cloneDeep(dashboardOrder[landingPageIndex]);\n dashboardOrder.splice(landingPageIndex, 1);\n this.props.landing_page_groups.forEach((group) => {\n let duplicateLandingPage = copyOfLandingPageMetric;\n duplicateLandingPage[\"name\"] = `landingPageGroups${group.name}`;\n dashboardOrder.splice(landingPageIndex, 0, cloneDeep(duplicateLandingPage));\n landingPageIndex += 1;\n });\n\n let keywordIndex = dashboardOrder.findIndex((el) => el.name == \"keywordGroups\");\n const copyOfKeywordMetric = cloneDeep(dashboardOrder[keywordIndex]);\n dashboardOrder.splice(keywordIndex, 1);\n this.props.keyword_groups.forEach((group) => {\n let duplicateKeywordGroup = copyOfKeywordMetric;\n duplicateKeywordGroup[\"name\"] = `keywordGroups${group.name}`;\n dashboardOrder.splice(keywordIndex, 0, cloneDeep(duplicateKeywordGroup));\n keywordIndex += 1;\n });\n // PDFs can't be processed section this.props.keyword_sort section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n console.log(dashboardOrder, \"entries\");\n let firstLandingPageIndex = dashboardOrder.findIndex((el) => el.name.includes(\"landingPageGroups\"));\n let firstKeywordIndex = dashboardOrder.findIndex((el) => el.name.includes(\"keywordGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n console.log(index, firstLandingPageIndex, section, \"section\", !((index - firstLandingPageIndex) % 2 == 0));\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n if (section.name == \"keywordGroups\") {\n metricNames = this.props.keyword_groups.map((el) => el.name);\n }\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"landingPageGroups\") || section.name.includes(\"keywordGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (\n ((dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0)) ||\n (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"keywordGroups\") && !((index - firstKeywordIndex) % 2 == 0))) &&\n metricNames.length < 3\n ) {\n elementHeight = 0;\n console.log(\"group table height\", 0);\n } else {\n console.log(\"group table height\", this.groupTableRowHeight);\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"backlinks\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"keywordSummary\") {\n elementsPerRow = 2;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"keywordRankings\") {\n elementsPerRow = 1;\n elementHeight = this.keywordRankingRowHeight;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"keywordSummary\") {\n metricNames = [\"topThreeKeywords\", \"topTenKeywords\", \"topTwentyKeywords\", \"Improved\"];\n }\n\n if (section.name == \"keywordRankings\") {\n metricNames = jsDig([dashboard, \"keyword_rankings\"], cc_data).map((ranking) => ranking[\"keyword\"]);\n }\n\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n if (\n ((dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0)) ||\n (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"keywordGroups\") && !((index - firstKeywordIndex) % 2 == 0))) &&\n metricNames.length < 3\n ) {\n pages[currentPage][\"pageHeight\"] += 0;\n } else {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n }\n\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n if (section.name == \"keywordRankings\") {\n //for table head\n pages[currentPage][\"pageHeight\"] += 25;\n }\n }\n if (metricIndex == 0) {\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0) && metricNames.length < 3) {\n pages[currentPage][\"pageHeight\"] += 0;\n } else {\n pages[currentPage][\"pageHeight\"] += 40;\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default SEOPdf;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass SEOPdfSummary extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n }\n console.log(this.props)\n }\n\n\n getPageNumber(current) {\n return (current + 1);\n }\n\n render() {\n let pageNumber = 0;\n let clientsPerPage = 35;\n let clients = Object.keys(this.props.metrics);\n\n let totals = {}\n\n clients.map((client) => {[\"revenue_mtd\", \"revenue_mtd_last_year\",\"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => { \n let value = this.props.metrics[client][metricName];\n totals[metricName] ? totals[metricName] += value : totals[metricName] = value\n })})\n\n totals[\"revenue_mtd_yy\"] = (totals[\"revenue_mtd\"] - totals[\"revenue_mtd_last_year\"]) / totals[\"revenue_mtd_last_year\"] * 100\n totals[\"revenue_this_month_yy\"] = (totals[\"revenue_this_month_projected\"] - totals[\"revenue_this_month_last_year\"]) / totals[\"revenue_this_month_last_year\"] * 100\n totals[\"traffic_mtd_yy\"] = (totals[\"traffic_mtd\"] - totals[\"traffic_mtd_last_year\"]) / totals[\"traffic_mtd_last_year\"] * 100\n totals[\"traffic_this_month_yy\"] = (totals[\"traffic_this_month_projected\"] - totals[\"traffic_this_month_last_year\"]) / totals[\"traffic_this_month_last_year\"] * 100\n\n return (\n
    \n {\n [...Array(Math.ceil(clients.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    SEO Summary

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n {\n [1,2,3,4].map((index) => {\n return (\n \n \n \n \n \n )\n })\n }\n \n \n \n {\n clients.map((clientName) => {\n return (\n \n \n {\n [\"revenue_mtd\", \"revenue_mtd_last_year\", \"revenue_mtd_yy\", \"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"revenue_this_month_yy\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_mtd_yy\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => {\n let className = \"\";\n let value = this.props.metrics[clientName][metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\"\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n }\n return (\n \n )\n })\n }\n \n )\n })\n }\n \n \n {\n [\"revenue_mtd\", \"revenue_mtd_last_year\", \"revenue_mtd_yy\", \"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"revenue_this_month_yy\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_mtd_yy\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => {\n let className = \"\";\n let value = totals[metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\"\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n }\n return (\n \n )\n })\n }\n \n \n
    Client
    Revenue {this.props.this_month} MTD
    Revenue {this.props.this_month} Y/Y
    Organic Traffic {this.props.this_month} MTD
    Organic Traffic {this.props.this_month} Projected Y/Y
    {this.props.date.substring(0, 4)}{parseInt(this.props.date.substring(0, 4)) - 1}Y/Y
    {clientName}\n {\n value != 0 ?\n metricName.includes(\"yy\") ?\n \n : \n : <>\n }\n
    TOTALS\n {\n value != 0 ?\n metricName.includes(\"yy\") ?\n \n : \n : <>\n }\n
    \n
    \n
    \n )\n })\n }\n
    \n )\n }\n}\n\nexport default SEOPdfSummary;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Tab, Nav, Container, Form } from \"react-bootstrap\";\nimport SaveChanges from \"./SaveChanges\";\nimport updateParams from \"utils/updateParams.js\";\nimport OverallPPC from \"./services/OverallPPC\";\nimport Search from \"./services/Search\";\nimport Display from \"./services/Display\";\nimport Social from \"./services/Social\";\nimport Video from \"./services/Video\";\n\nexport const PacingContext = React.createContext();\n\nexport default function PpcPacing(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [tabLocation, setTabLocation] = useState(\"overallPPC\");\n\n const servicePicker = (searchParams) => {\n if (searchParams.toString().includes(\"paidSearch\")) {\n return \"paidSearch\";\n }\n if (searchParams.toString().includes(\"daily\")) {\n return \"daily\";\n }\n if (searchParams.toString().includes(\"display\")) {\n return \"social\";\n }\n if (searchParams.toString().includes(\"display\")) {\n return \"video\";\n }\n };\n\n const submitForm = () => {\n document.getElementById(\"ppc-pacing-data\").submit();\n };\n\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"overallPPC\";\n }\n if (page === \"paidSearch\") {\n setTabLocation(page);\n updateParams(\"page\", page);\n // updateParams(\"sub_page\", servicePicker(searchParams));\n } else {\n setTabLocation(page);\n updateParams(\"page\", page);\n }\n }, []);\n\n const selectTab = (key) => {\n if (key === \"services\") {\n setTabLocation(key);\n updateParams(\"page\", key);\n // updateParams(\"sub_page\", servicePicker(searchParams));\n } else {\n setTabLocation(key);\n updateParams(\"page\", key);\n }\n };\n\n return (\n
    \n
    \n \n \n

    PPC Pacing

    \n {props.ppc_pacing_metrics ? (\n <>\n selectTab(k)}>\n \n \n \n \n {props.enabled_services.ppc == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.overall).length != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any PPC data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have PPC enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.search == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.search) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Search data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Search enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.social == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.social) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Social data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Social enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.display == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.display) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Display data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Display enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.video == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.video) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Video data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Video enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n \n ) : (\n <>\n
    \n
    This client doesn't have any PPC Data calculated yet.
    \n
    \n \n )}\n
    \n
    \n );\n}\n","import React, { useContext } from \"react\";\nimport { Button, Col, Row } from \"react-bootstrap\";\nimport { PacingContext } from \"./PpcPacing\";\n\n\nexport default function SaveChanges(props) {\n const pacingContext = useContext(PacingContext);\n return (\n \n {pacingContext.submitForm(); props.setShowBox(false)}}\n as=\"input\"\n type=\"submit\"\n value=\"Save\"\n variant=\"success\"\n id=\"ppc-pacing-save-btn\"\n />\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Display(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.display}\n defaultMetrics={defaultMetrics.summary.display}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.display}\n platforms={props.platforms}\n metricsData={props.metricsData}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Overall(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.overall}\n defaultMetrics={defaultMetrics.summary.overall}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.overall}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Search(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.search}\n defaultMetrics={defaultMetrics.summary.search}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.search}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Social(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.social}\n defaultMetrics={defaultMetrics.summary.social}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.social}\n defaultMetrics={defaultMetrics.daily.social}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Video(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.video}\n defaultMetrics={defaultMetrics.summary.video}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.video}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Table, Button, Modal, Form, Row, Col } from \"react-bootstrap\";\nimport SaveChanges from \"../SaveChanges\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { Stack, Lock, Unlock } from \"react-bootstrap-icons\";\nimport { PacingContext } from \"../PpcPacing\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function DailyView(props) {\n const pacingContext = useContext(PacingContext);\n const allPlatforms = Object.keys(jsDig([\"metricsData\"], props));\n const platformCount = allPlatforms.length - 1;\n\n const platformSelector = () => {\n const newItem = allPlatforms.filter((item) => item !== \"all\");\n if (platformCount >= 2) {\n return \"all\";\n } else {\n return newItem[0];\n }\n };\n\n const redOrGreen = (integer, metric) => {\n metric = metric.toLowerCase();\n if (integer === \"\") {\n return \"grey-text\";\n }\n if (metric.includes(\"cpa\") || metric.includes(\"cpc\")) {\n if (integer < 0) {\n return \"green-text\";\n } else {\n return \"red-text\";\n }\n } else if (integer < 0) {\n return \"red-text\";\n } else {\n return \"green-text\";\n }\n };\n\n const [availableMetrics, setAvailableMetrics] = useState(props.availableMetrics ? props.availableMetrics : []);\n const [selectedMetrics, setSelectedMetrics] = useState(props.pacingOrder);\n const [selectedPlatform, setSelectedPlatform] = useState(platformSelector());\n const [selectedCampaign, setSelectedCampaign] = useState(\"overall\");\n const [compactView, setCompactView] = useState(pacingContext.user.table_view_preference === \"compact_table_view\" ? true : false);\n const [showBox, setShowBox] = useState(false);\n const [yoy, setYoy] = useState(true);\n\n let columnCount = Math.ceil(availableMetrics.length / 5);\n if (columnCount >= 4) {\n columnCount = 4;\n }\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n const metricHelper = (e) => {\n const index = selectedMetrics.indexOf(e.target.name);\n let updatedList = [...selectedMetrics];\n if (index > -1) {\n updatedList.splice(selectedMetrics.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedMetrics, e.target.name];\n }\n setSelectedMetrics(updatedList);\n };\n\n const formatDate = (date) => {\n let newDate = \"\";\n if (date.charAt(4) === \"0\") {\n newDate = newDate + date.charAt(5) + \"/\";\n }\n if (date.charAt(4) !== \"0\") {\n newDate = newDate + date.charAt(4) + date.charAt(5) + \"/\";\n }\n if (date.charAt(6) === \"0\") {\n newDate = newDate + date.charAt(7) + \"/\";\n }\n if (date.charAt(6) !== \"0\") {\n newDate = newDate + date.charAt(6) + date.charAt(7) + \"/\";\n }\n return newDate + date.charAt(2) + date.charAt(3);\n };\n\n const numberWithCommas = (x) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n };\n\n const campaignCapitalized = selectedCampaign.charAt(0).toUpperCase() + selectedCampaign.slice(1);\n const serviceCapitalized = props.service.charAt(0).toUpperCase() + props.service.slice(1);\n\n let platformArray = [];\n if (props.service !== \"overall\") {\n props.platforms.forEach((platform) => props.metricsData[platform] && platformArray.push(Object.keys(props.metricsData[platform])));\n }\n const platformSet = new Set(...platformArray);\n const uniquePlatforms = props.service !== \"overall\" ? Array.from(platformSet) : [];\n\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n const MetricFormatter = (name, number, views) => {\n let metric = name.toLowerCase();\n let formatted;\n if (metric.includes(\"revenue\") || metric.includes(\"spend\")) {\n formatted = `$${numberWithCommas(Math.round(number))}`;\n } else if (metric.includes(\"cpa\") || metric.includes(\"roas\") || metric.includes(\"cpc\") || metric.includes(\"aov\")) {\n formatted = `$${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}`;\n } else if (metric.includes(\"video cvr\") && views === 0) {\n formatted = `0%`;\n } else if (metric.includes(\"cvr\") || metric.includes(\"ctr\")) {\n formatted = `${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}%`;\n } else {\n formatted = `${numberWithCommas(Math.round(number))}`;\n }\n return formatted;\n };\n\n return (\n
    \n {selectedMetrics.map((metric, idx) => {\n return ;\n })}\n {props.service !== \"overall\" && (\n
    \n
    \n \n\n
      \n {selectedPlatform === \"all\"\n ? uniquePlatforms.map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`a${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })\n : Object.keys(props.metricsData[selectedPlatform]).map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })}\n
    \n
    \n
    \n \n
      \n {Object.keys(props.metricsData)\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\" ? googleIcon : platform === \"microsoft\" ? microsoftIcon : platform === \"facebook\" ? facebookIcon : platform === \"tiktok\" ? tiktokIcon : allIcon;\n return (\n setSelectedPlatform(platform)}\n className={selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${platform + index + props.platform + props.service}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n )}\n
    \n setShowBox(false)}>\n \n Customize Table\n \n \n \n \n

    Show these parameters when available:

    \n \n
    \n \n \n
    Metric:
    \n \n
    \n \n \n
      \n {availableMetrics.map((el, i) => {\n return (\n
    • \n metricHelper(e)}\n checked={selectedMetrics.includes(el)}\n id={`custom-check${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n
    \n \n \n \n \n \n\n \n \n \n
    \n
    \n \n
    \n \n {\n setYoy(!yoy);\n }}\n />\n }\n label=\"Show Y/Y Metrics\"\n />\n \n
    \n {/*
    \n \n \n {\n setCompactView(!compactView);\n }}\n />\n }\n label={compactView ? \"Compact View\" : \"Full View\"}\n />\n \n
    */}\n
    \n
    \n \n \n \n \n {selectedMetrics.map((metricName, i) => {\n return (\n \n );\n })}\n \n \n \n {props.dateRanges.last_30_days.map((date, i) => {\n const evenOrOdd = i % 2 === 0 ? \"even\" : \"odd\";\n let beforeDate =\n i === 0\n ? \"Yesterday \"\n : i === 6\n ? \"1 week ago \"\n : i === 13\n ? \"2 weeks ago \"\n : i === 20\n ? \"3 weeks ago \"\n : i === 27\n ? \"4 week ago \"\n : `${i + 1} days ago `;\n return (\n \n \n {selectedMetrics.map((metricName, i) => {\n const number =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"this_year\", date], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"this_year\", date], props);\n const views =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", \"Views\", \"daily\", \"running_31\", \"this_year\", date], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, \"Views\", \"daily\", \"running_31\", \"this_year\", date], props);\n const currentValue = MetricFormatter(metricName, number, views);\n let overallAmount =\n jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"yoy\", date], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (Math.round((jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"yoy\", date], props) + Number.EPSILON) * 100) / 100).toFixed(0)\n );\n\n let amount =\n jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"yoy\", date], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (\n Math.round(\n (jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"yoy\", date], props) + Number.EPSILON) * 100\n ) / 100\n ).toFixed(0)\n );\n\n return props.service === \"overall\" ? (\n overallAmount == \"\" ? (\n \n ) : (\n \n )\n ) : amount === \"\" ? (\n \n ) : (\n \n );\n })}\n \n );\n })}\n \n
    \n \n \n {metricName}\n
    \n

    {`${beforeDate} (${formatDate(date)})`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n {`${overallAmount}%`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n

    {`${amount}%`}

    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { Table, Button, Modal, Row, Col } from \"react-bootstrap\";\nimport SaveChanges from \"../SaveChanges\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { PacingContext } from \"../PpcPacing\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function SummaryView(props) {\n const pacingContext = useContext(PacingContext);\n const allPlatforms = Object.keys(jsDig([\"metricsData\"], props));\n const platformCount = allPlatforms.length - 1;\n\n const platformSelector = () => {\n const newItem = allPlatforms.filter((item) => item !== \"all\");\n if (platformCount >= 2) {\n return \"all\";\n } else {\n return newItem[0];\n }\n };\n\n const redOrGreen = (integer, metric) => {\n metric = metric.toLowerCase();\n if (integer === \"\") {\n return \"grey-text\";\n }\n if (metric.includes(\"cpa\") || metric.includes(\"cpc\")) {\n if (integer < 0) {\n return \"green-text\";\n } else {\n return \"red-text\";\n }\n } else if (integer < 0) {\n return \"red-text\";\n } else {\n return \"green-text\";\n }\n };\n\n const [availableMetrics, setAvailableMetrics] = useState(props.availableMetrics ? props.availableMetrics : []);\n const [selectedMetrics, setSelectedMetrics] = useState(props.pacingOrder);\n const [availableFrequency, setAvailableFrequency] = useState([\n \"MTD\",\n \"Last 7 days\",\n \"2 weeks ago\",\n \"Last 14 days\",\n \"Last 30 days\",\n \"Last month\",\n \"2 months ago\",\n \"Projected\",\n ]);\n const [selectedFrequency, setSelectedFrequency] = useState(\n props.frequency.selected_frequency ? props.frequency.selected_frequency[props.service] : availableFrequency\n );\n const [selectedPlatform, setSelectedPlatform] = useState(platformSelector());\n const [selectedCampaign, setSelectedCampaign] = useState(\"overall\");\n const [compactView, setCompactView] = useState(pacingContext.user.table_view_preference === \"compact_table_view\" ? true : false);\n const [yoy, setYoy] = useState(true);\n const [showBox, setShowBox] = useState(false);\n\n let columnCount = Math.ceil(availableMetrics.length / 5);\n if (columnCount >= 4) {\n columnCount = 4;\n }\n\n const metricHelper = (e) => {\n const index = selectedMetrics.indexOf(e.target.name);\n let updatedList = [...selectedMetrics];\n if (index > -1) {\n updatedList.splice(selectedMetrics.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedMetrics, e.target.name];\n }\n setSelectedMetrics(updatedList);\n };\n const frequencyHelper = (e) => {\n const index = selectedFrequency.indexOf(e.target.name);\n let updatedList = [...selectedFrequency];\n if (index > -1) {\n updatedList.splice(selectedFrequency.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedFrequency, e.target.name];\n }\n setSelectedFrequency(updatedList);\n };\n\n const numberWithCommas = (x) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n };\n\n const campaignCapitalized = selectedCampaign.charAt(0).toUpperCase() + selectedCampaign.slice(1);\n const serviceCapitalized = props.service.charAt(0).toUpperCase() + props.service.slice(1);\n\n let platformArray = [];\n if (props.service !== \"overall\") {\n props.platforms.forEach((platform) => props.metricsData[platform] && platformArray.push(Object.keys(props.metricsData[platform])));\n }\n const platformSet = new Set(...platformArray);\n const uniquePlatforms = props.service !== \"overall\" ? Array.from(platformSet) : [];\n\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n const MetricFormatter = (name, number, views) => {\n let metric = name.toLowerCase();\n let formatted;\n if (metric.includes(\"revenue\") || metric.includes(\"spend\")) {\n formatted = `$${numberWithCommas(Math.round(number))}`;\n } else if (metric.includes(\"cpa\") || metric.includes(\"roas\") || metric.includes(\"cpc\") || metric.includes(\"aov\")) {\n formatted = `$${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}`;\n } else if (metric.includes(\"video cvr\") && views === 0) {\n formatted = `0%`;\n } else if (metric.includes(\"cvr\") || metric.includes(\"ctr\")) {\n formatted = `${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}%`;\n } else {\n formatted = `${numberWithCommas(Math.round(number))}`;\n }\n return formatted;\n };\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n return (\n
    \n {selectedMetrics.map((metric, idx) => {\n return ;\n })}\n {selectedFrequency.map((frequency, idx) => {\n return ;\n })}\n {props.service !== \"overall\" && (\n
    \n
    \n \n\n
      \n {selectedPlatform === \"all\"\n ? uniquePlatforms.map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`a${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })\n : Object.keys(props.metricsData[selectedPlatform]).map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })}\n
    \n
    \n
    \n \n
      \n {Object.keys(props.metricsData)\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n setSelectedPlatform(platform)}\n className={selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${platform + index + props.platform + props.service}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n )}\n
    \n setShowBox(false)}>\n \n Customize Table\n \n \n \n \n

    Show these parameters when available:

    \n \n
    \n \n \n
    Metric:
    \n \n
    \n \n \n
      \n {availableMetrics.map((el, i) => {\n return (\n
    • \n metricHelper(e)}\n checked={selectedMetrics.includes(el)}\n id={`custom-check${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n \n \n
    Frequency:
    \n \n
    \n \n \n
      \n {availableFrequency.map((el, i) => {\n return (\n
    • \n frequencyHelper(e)}\n checked={selectedFrequency.includes(el)}\n id={`custom-check-frequency${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n
    \n \n \n \n {\n setSelectedMetrics(props.defaultMetrics);\n setSelectedFrequency([\"2 months ago\", \"Last month\", \"MTD\", \"Last 7 days\", \"2 weeks ago\", \"Last 14 days\", \"Last 30 days\", \"Projected\"]);\n }}\n className=\"text-center defaults-btn\">\n Use defaults\n \n \n\n \n \n \n
    \n
    \n \n
    \n \n {\n setYoy(!yoy);\n }}\n />\n }\n label=\"Show Y/Y Metrics\"\n />\n \n
    \n {/*
    \n \n \n {\n setCompactView(!compactView);\n }}\n />\n }\n label={compactView ? \"Compact View\" : \"Full View\"}\n />\n \n
    */}\n
    \n
    \n \n \n \n \n {selectedFrequency.map((frequency, i) => {\n return (\n \n );\n })}\n \n \n \n {selectedMetrics.map((metricName, i) => {\n const evenOrOdd = i % 2 === 0 ? \"even\" : \"odd\";\n return (\n \n \n {selectedFrequency.map((frequency, i) => {\n const number =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", metricName, \"summary\", \"this_year\", frequency], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"this_year\", frequency], props);\n const views =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", \"Views\", \"summary\", \"this_year\", frequency], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, \"Views\", \"summary\", \"this_year\", frequency], props);\n const currentValue = MetricFormatter(metricName, number, views);\n let overallAmount =\n jsDig([\"metricsData\", metricName, \"summary\", \"yoy\", frequency], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (Math.round((jsDig([\"metricsData\", metricName, \"summary\", \"yoy\", frequency], props) + Number.EPSILON) * 100) / 100).toFixed(0)\n );\n\n let amount =\n jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"yoy\", frequency], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (\n Math.round(\n (jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"yoy\", frequency], props) + Number.EPSILON) *\n 100\n ) / 100\n ).toFixed(0)\n );\n\n return props.service === \"overall\" ? (\n overallAmount == \"\" ? (\n \n ) : (\n \n )\n ) : amount === \"\" ? (\n \n ) : (\n \n );\n })}\n \n );\n })}\n \n
    \n \n \n {frequency}\n
    \n

    {metricName}

    \n

    \n Y/Y (%)\n

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n {`${overallAmount}%`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n

    {`${amount}%`}

    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function App(props) {\r\n const dashboardUrl = `/datapulse/shopify/app/dashboard?shop=${props.shop}`\r\n const teamUrl = `/datapulse/shopify/app/team?shop=${props.shop}`\r\n\r\n return (\r\n \r\n \r\n \r\n

    With this app installed on your shopify store, Digital Position will be able to pull your performance data and display it in your metrics dashboards on DataPulse.

    \r\n
    \r\n \r\n \r\n

    DataPulse Bridge is successfully Connected to your store.

    \r\n

    It was installed on \r\n { props.shopify_install.updated_at.split(\"T\")[0] }\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n

    To see the metrics we have pulled from your store click the button below.

    \r\n \r\n
    \r\n
    \r\n \r\n \r\n

    See your team members and get in touch.

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function Dashboard(props) {\r\n const indexUrl = `/datapulse/shopify/app?shop=${props.shop}`\r\n const breadcrumbs = [{content: 'DataPulse Bridge by Digital Position', url: indexUrl}];\r\n\r\n return (\r\n \r\n \r\n \r\n {props.client_account ? (\r\n <>\r\n \r\n

    Your data was last pulled successfully on: \r\n { props.last_updated ? props.last_updated.split(\"T\")[0] : \"Never\" }\r\n

    \r\n
    \r\n \r\n

    Your performance for the current month is:

    \r\n
    \r\n \r\n \r\n Shopify Revenue: ${ jsDig([\"shopify_revenue\", \"raw\"], props.cc_data) }\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n

    Even though you have successfully installed the DataPulse Bridge shopify app, it looks like your store ({props.shop}) hasn't been configured in DataPulse yet. DataPulse is where your real dashboards live, but you may see the data we are pulling from Shopify on this page once we have finished configuring your account. Reach out to your Digital Position representative to address this issue.

    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function Team(props) {\r\n const indexUrl = `/datapulse/shopify/app?shop=${props.shop}`\r\n const breadcrumbs = [{content: 'DataPulse Bridge by Digital Position', url: indexUrl}];\r\n\r\n return (\r\n \r\n \r\n \r\n {props.client_account ? (\r\n <>\r\n \r\n Account Leads:\r\n {(props.account_leads && props.account_leads.length > 0) ? (\r\n <>\r\n \r\n {props.account_leads.map((user) => {\r\n return (\r\n <>\r\n \r\n Name: {`${user.first_name} ${user.last_name}`},\r\n Phone: {(user.phone_number && user.phone_number != \"\") ? user.phone_number : \"Not set\"},\r\n Role: {(user.job_title && user.job_title != \"\") ? user.job_title : \"Not set\"}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n ) : (\r\n <>\r\n

    After your account is configured, account leads & contact information will appear here.

    \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n Account Supports:\r\n {(props.account_supports && props.account_supports.length > 0) ? (\r\n <>\r\n \r\n {props.account_supports.map((user) => {\r\n return (\r\n <>\r\n \r\n Name: {`${user.first_name} ${user.last_name}`},\r\n Phone: {(user.phone_number && user.phone_number != \"\") ? user.phone_number : \"Not set\"},\r\n Role: {(user.job_title && user.job_title != \"\") ? user.job_title : \"Not set\"}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n ) : (\r\n <>\r\n

    After your account is configured, account supports & contact information will appear here.

    \r\n \r\n )}\r\n
    \r\n \r\n ) : (\r\n <>\r\n \r\n

    Even though you have successfully installed the DataPulse Bridge shopify app, it looks like your store ({props.shop}) hasn't been configured in DataPulse yet. You can see complete data about the Digital Position employees who are assisting your marketing efforts by going to DataPulse, but you may see basic contact information about them on this page once we have finished configuring your account. Reach out to your Digital Position representative to address this issue.

    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React from \"react\";\nimport UserAccessTable from \"user_access/UserAccessTable\";\nimport UserNewForm from \"user_access/UserNewForm\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport Form from \"react-bootstrap/Form\";\n\nclass UserAccess extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n users: [],\n };\n }\n\n \n componentDidMount() {\n const users = this.props.users\n const userInfo = Object.values(users)\n this.setState({\n users: userInfo.sort((a, b) => a.name.localeCompare(b.name)),\n });\n $(\".collapser\").on(\"click\", function () {\n $(this).next(\".collapse\").collapse(\"toggle\");\n var icon = $(this).find(\".fas\");\n if (icon.hasClass(\"fa-sort-up\")) {\n icon.removeClass(\"fa-sort-up\").addClass(\"fa-sort-down\");\n } else {\n icon.removeClass(\"fa-sort-down\").addClass(\"fa-sort-up\");\n }\n });\n }\n\n deleteUser(user) {\n $.ajax({\n url: \"/datapulse/users/\" + user.id,\n type: \"delete\",\n });\n }\n\n removeUser(user, org_id) {\n console.log(user, org_id)\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/remove-user/\",\n\t\t\tdata: {\n\t\t\t\torganization_id: org_id,\n user_id: user.id\n\t\t\t},\n\t\t});\n }\n\n\n searchUsers(e) {\n let searchString = e.target.value.toLowerCase();\n let newUsers = [];\n this.props.users_array.forEach((u) => {\n if ((u.first_name + \" \" + u.last_name).toLowerCase().includes(searchString) || u.email.toLowerCase().includes(searchString)) {\n newUsers.push(u);\n }\n });\n\n this.setState({\n users: newUsers,\n });\n }\n\n render() {\n return (\n <>\n

    User Access

    \n \n
    \n
    \n \n
    \n
    \n Search Users\n {\n this.searchUsers(e);\n }}\n />\n \n u.role == \"client\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Clients\" />\n u.role == \"employee\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Restricted Access\" />\n u.role == \"specialist\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Standard Access\" />\n u.role == \"manager\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Full Access\" />\n u.role == \"admin\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Admin Access\" />\n
    \n
    \n \n );\n }\n}\n\nexport default UserAccess;\n","import React from 'react'\n\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport Table from 'react-bootstrap/Table';\nimport Form from 'react-bootstrap/Form';\nimport Button from 'react-bootstrap/Button';\nimport UserAccessTableButtons from 'user_access/UserAccessTableButtons'\nimport UserRole from 'utils/UserRole'\nimport UserDepartment from 'utils/UserDepartment'\n\nclass UserAccessTable extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n <>\n
    \n
    \n
    {this.props.tableName}
    \n
    \n
    \n

    Collapse Section  0 ? \" fa-sort-up\" : \" fa-sort-down\")}>

    \n
    \n
    0 ? \" show\" : \"\")}>\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.props.users.map((user) => {\n return (\n \n \n \n \n \n \n \n \n )\n })\n }\n \n
    ID#NameEmailRoleDepartment
    {user.id}{user.name}{user.email}\n
    \n {\n this.props.permissions.includes(user.role) && (\n \n )\n }\n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default UserAccessTable;\n","import React from 'react'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport Table from 'react-bootstrap/Table';\nimport Button from 'react-bootstrap/Button';\nimport Overlay from 'react-bootstrap/Overlay';\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\nimport Tooltip from 'react-bootstrap/Tooltip';\n\nclass UserAccessTableButtons extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n confirmDelete: false,\n confirmRemove: false\n }\n }\n\n render() {\n return (\n \n \n\n {this.props.current_user_is_god &&\n \n This will permanently delete user from database\n \n }\n >\n \n \n }\n\n \n {this.props.current_user_is_god &&\n \n }\n \n This will remove user from the selected Organization only\n \n }\n >\n \n \n \n \n );\n }\n}\n\nexport default UserAccessTableButtons;\n","import React from 'react'\nimport { Row, Col, Form, Modal, Button, FormControl, Alert } from 'react-bootstrap'\nimport {findDOMNode} from 'react-dom'\n\nclass UserNewForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n show: false,\n employeeType: \"client\",\n clients: this.props.clients?this.props.clients:[],\n first_name: \"\",\n fNameError: \"\",\n last_name: \"\",\n lNameError: \"\",\n email: \"\" ,\n emailError: \"\"\n }\n }\n\n\n clientButtonClick(event) {\n $('.client-button').addClass('selected');\n $('.employee-button').removeClass('selected');\n $('.employee-only-fields').hide();\n this.setState({ employeeType: \"client\" });\n }\n\n employeeButtonClick(event) {\n $('.employee-button').addClass('selected');\n $('.client-button').removeClass('selected');\n $('.employee-only-fields').show();\n this.setState({ employeeType: \"employee\" });\n }\n\n toggleAccess(event) {\n }\n\n accessAll(event) {\n let checkAll = event.target.checked;\n $('.client-list input[type=checkbox]').each((index, el) => {\n $(el).prop(\"checked\", checkAll)\n })\n }\n\n nextPage() {\n $(\".page-1\").hide();\n $(\".page-2\").show();\n }\n\n backPage() {\n $(\".page-2\").hide();\n $(\".page-1\").show();\n }\n\n searchClients(event) {\n let filter = event.target.value.toLowerCase().trim();\n let visibleClients = [];\n this.props.clients.forEach((client) => {\n let clientName = client.company_name.toLowerCase();\n if (clientName.includes(filter)) {\n visibleClients.push(client);\n }\n })\n this.setState({clients: visibleClients})\n }\n\n //=========================== FORM VALIDATION START ===================================\n handleSubmit = e => {\n e.preventDefault()\n const err = this.errorCheck()\n if (!err) {\n this.nextPage()\n }\n else {\n return\n }\n }\n\n errorCheck = () => {\n let isError = false\n const errors = {\n fNameError: \"\",\n lNameError: \"\",\n emailError: \"\"\n }\n\n if (this.state.first_name.length < 1) {\n isError = true\n errors.fNameError=\"First name cannot be empty\"\n }\n\n if (this.state.last_name.length < 1) {\n isError = true\n errors.lNameError= \"Last name cannot be empty\"\n }\n\n\n if (this.state.email.indexOf(\"@\") === -1 ) {\n isError = true\n errors.emailError = \"Valid email must contain @ symbol\"\n\n }\n if (isError){\n this.setState({\n ...this.state,\n ...errors\n })\n }\n return isError\n }\n\n change = e => {\n this.setState({\n [e.target.name]: e.target.value\n })\n }\n\n//=========================== FORM VALIDATION END ===================================\n\n\n render() {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n return (\n <>\n \n this.setState({show: false})}>\n
    \n \n
    \n \n Add New User - Basic Info\n \n \n \n \n

    I want to add a new:

    \n \n
    \n \n \n
    {this.clientButtonClick(e)}}>\n \n

    Client

    \n
    \n \n \n \n
    {this.employeeButtonClick(e)}}>\n \n

    Employee

    \n
    \n \n \n
    \n \n \n \n this.change(e)} type=\"text\" name=\"first_name\" placeholder=\"First Name (required)\" />\n {this.state.fNameError ? (\n {this.state.fNameError}\n ) : null}\n\n \n \n this.change(e)} type=\"text\" name=\"last_name\" placeholder=\"Last Name (required)\" />\n {this.state.lNameError ? (\n {this.state.lNameError}\n ) : null}\n \n \n this.change(e)} type=\"email\" name=\"email\" placeholder=\"Email (required)\" />\n {this.state.emailError ? (\n {this.state.emailError}\n ) : null}\n \n \n \n \n Employee Level:\n \n \n \n \n \n \n \n \n Employee Department:\n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n
    \n
    \n \n Add New User - Account Access\n \n \n

    Back to Basic Info

    \n
    \n
    \n \n this.searchClients(e)} placeholder=\"Search accounts...\" />\n
    \n
    \n
    \n {this.accessAll(e)}} className=\"custom-control-input\" id='toggle-all-access' />\n \n
    \n
    \n
    \n \n \n
      \n {\n this.state.clients.map((client) => {\n return (\n
    • \n \n
      \n {this.toggleAccess(e)}} name={`account_access_ids[${client.id}]`} className=\"custom-control-input\" id={`account-access-id-${client.id}`} />\n \n
      \n
      \n
    • \n )\n })\n }\n
    \n \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default UserNewForm;\n","import React from \"react\";\n\nconst ConditionalWrapper = ({ condition, wrapper, children }) =>\n\tcondition ? wrapper(children) : children;\n\nexport default ConditionalWrapper;\n","import React, { useState } from \"react\";\nimport { Button } from \"react-bootstrap\";\n\nfunction Counter(props) {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t-\n\t\t\t\t\n\t\t\t\t{props.count}\n\t\t\t\t\n\t\t\t\t\t+\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n\nexport default Counter;\n","import React from 'react'\n\nclass CustomAvatar extends React.Component {\n render() {\n let christmasSpecial = require(\"images/special/Christmas.svg\");\n let fallSpecial = require(\"images/special/FirstDayFall.svg\")\n let springSpecial = require(\"images/special/FirstDaySpring.svg\")\n let summerSpecial = require(\"images/special/FirstDaySummer.svg\")\n let winterSpecial = require(\"images/special/FirstDayWinter.svg\")\n let halloweenSpecial = require(\"images/special/Halloween.svg\")\n return (\n <>\n \n {this.props.special == \"christmas\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"fall\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"spring\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"summer\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"winter\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"halloween\" &&\n <>\n
    \n \n
    \n \n }\n \n );\n }\n}\n\nexport default CustomAvatar;\n","import React, { useState } from \"react\";\nimport onClickOutside from \"react-onclickoutside\";\n\n\nfunction CustomDropdown(props) {\n const campaignGroups = props.dashboards;\n let currentTab = props.tabLocation === \"paidSearch\" ? \"search\" : props.tabLocation === \"paidSocial\" ? \"social\" : props.tabLocation === \"paidDisplay\" ? \"display\" : props.tabLocation === \"paidVideo\" ? \"video\" : undefined\n\n let upper = currentTab\n if (upper !== undefined) {\n\n upper = upper[0].toUpperCase() + upper.slice(1)\n }\n const [open, setOpen] = useState(false);\n const [currentSection, setCurrentSection] = useState(\n props.platformName === \"all\" ? \"Search\" : props.platformName\n );\n const [currentCampaign, setCurrentCampaign] = useState(props.section !== \"Performance\" ? campaignGroups[0].name : 0);\n\n CustomDropdown[`handleClickOutside_` + props.platformName + props.section] = () =>\n setOpen(false);\n\n const campaignSetter = (campaign, section) => {\n setCurrentCampaign(campaign.name);\n setCurrentSection(section);\n props.setSelectedDashboard(campaign.name)\n props.setSelectedDashboardId(campaign.id)\n setTimeout(() => setOpen(false), 200)\n };\n\n const goalSetter = (campaign, section) => {\n setCurrentCampaign(campaign.name);\n setCurrentSection(section);\n props.setSelectedDashboardId(campaign.id)\n props.setSelectedDashboard(campaign.name)\n\n setTimeout(() => setOpen(false), 200)\n };\n const performanceSetter = (campaign, section) => {\n console.log(campaign, section)\n setCurrentCampaign(props.seo ? campaign.id : currentTab);\n setCurrentSection(section);\n props.setSelectedDashboard(campaign.id)\n setTimeout(() => setOpen(false), 200)\n };\n\n const platform = props.platformName ? props.platformName.charAt(0).toUpperCase() + props.platformName.slice(1) : undefined\n\n const toggle = () => setOpen(!open);\n\n return (\n
    \n
    \n
    toggle(!open)}>\n {\n props.section === \"Performance\" ?\n props.seo === undefined ?\n //PPC Performance main input text\n

    \n {upper}: {(currentTab !== undefined) && (props[`${currentTab}`].filter((el) => el.id === props.selectedDashboard)[0] !== undefined) ? props[`${currentTab}`].length > 0 ? props[`${currentTab}`].filter((el) => el.id === props.selectedDashboard)[0].name : \"Overall\" : \"Overall\"}\n {open ? (\n \n ) : (\n \n )}\n

    \n :\n //SEO Performance main input text\n

    \n SEO: {props.dashboards.filter((el) => el.id === currentCampaign) && currentCampaign !== 0 ? props.dashboards.filter((el) => el.id === currentCampaign)[0].name : \"Overall\"}\n {open ? (\n \n ) : (\n \n )}\n

    \n :\n props.configure === true ?\n props.dashboardId === 0 ? (\n //configure goals for overall\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n {open ? (\n \n ) : (\n \n )}\n

    \n ) : (\n\n //configure goals for remaining\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}\n {\": \"}\n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n\n :\n props.selectedDashboardId === 0 ? (\n //Dashboard and main goals for overall\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n {open ? (\n \n ) : (\n \n )}\n

    \n ) :\n props.seo === undefined ?\n (\n //Dashboard and main goals for remaining\n

    \n {currentSection === \"Seo\" ? \"SEO\" : currentSection}\n {\": \"}\n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n :\n (\n //Dashboard and main goals SEO for remaining\n

    \n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n }\n
    \n
    \n
    \n
    \n {props.section === \"Goals\" ? (\n //non-clickable display goals/configure goals\n <>\n
    \n \n

    \n {platform === \"Seo\" ? \"SEO\" : platform} Goals\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n //name displayed in list goals/configure GOALS Overall\n return idx === 0 ? (\n
    \n \n goalSetter(dash, platform)\n\n }\n >\n \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n
    \n
    \n ) : (\n //name displayed in list goals/configure Goals remaining\n
    \n \n goalSetter(dash, platform)\n }\n >\n \n \n {platform === \"Seo\" ? \"SEO\" : platform}: {dash.name}\n \n
    \n
    \n );\n })}\n \n ) : props.section === \"Performance\" ?\n props.seo === undefined ?\n (\n <>\n
    \n \n

    \n {upper} Performance\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n performanceSetter(dash, platform)\n\n }\n >\n \n {upper}: Overall\n
    \n
    \n ) : (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n \n {upper}: {dash.name}\n \n
    \n
    \n );\n })}\n \n ) :\n (\n <>\n
    \n \n

    \n SEO Performance\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n SEO: Overall\n
    \n \n ) : (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n \n SEO: {dash.name}\n \n
    \n \n );\n })}\n \n ) :\n (\n <>\n
    \n \n

    \n {props.platformName} Overall\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n campaignSetter(dash, props.platformName)\n\n }\n >\n \n {props.platformName}: Overall\n
    \n \n ) : (\n
    \n \n campaignSetter(dash, props.platformName)\n }\n >\n \n \n {props.platformName}: {dash.name}\n \n
    \n \n );\n })}\n \n )}\n \n \n \n \n );\n}\n\nconst clickOutsideConfig = {\n handleClickOutside: ({ props }) =>\n CustomDropdown[`handleClickOutside_` + props.platformName + props.section],\n};\n\nexport default onClickOutside(CustomDropdown, clickOutsideConfig);\n","import React, { useState } from \"react\";\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\n// React Form.Check elements have default styling and don't allow changing colors. We already addressed this so we will use this custom form check with custom classes\nconst CustomFormCheck = React.forwardRef((props,ref) => {\n let inputElement;\n if (props.dynamic) {\n let checked = props.checked ? props.checked : false;\n const [isChecked, setIsChecked] = useState(checked);\n const handleChange = props.onChange\n ? () => {\n props.onChange();\n setIsChecked(!isChecked);\n }\n : () => {\n setIsChecked(!isChecked);\n };\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && !isChecked && }\n \n \n );\n } else if (props.static && window.location.href.includes(\"ppc-config?page=ppc&subpage=ids_data\") && props.label == \"Pull Shopify data on save\") {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && }\n {}\n \n \n );\n } else if (props.static) {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && }\n \n \n );\n } else {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && !props.checked && }\n {\n false;\n }\n }\n value=\"1\"\n style={{ zIndex: \"1\" }}\n required={props.required}\n readOnly={props.readOnly}\n />\n \n );\n }\n\n return (\n <>\n
    \n {inputElement}\n {props.hoverText ? (\n \n
    {props.hoverText}
    \n \n }>\n \n \n ) : (\n \n )}\n
    \n \n );\n})\nexport default CustomFormCheck","import React, { useState } from \"react\";\n\nexport default function CustomSwitch(props) {\n const [isChecked, setIsChecked] = useState(props.checked || props.isEnabled ? true : false);\n return (\n <>\n
    \n
    \n {props.isEnabled !== undefined ? (\n {\n props.setIsEnabled(!props.isEnabled);\n setIsChecked(!isChecked);\n }}\n type=\"checkbox\"\n className=\"custom-control-input\"\n id={props.id}\n name={props.name ? props.name : null}\n disabled={props.disabled}\n />\n ) : (\n setIsChecked(!isChecked)}\n type=\"checkbox\"\n className=\"custom-control-input\"\n id={props.id}\n name={props.name ? props.name : null}\n disabled={props.disabled}\n />\n )}\n \n \n
    \n
    \n
    \n {props.isEnabled !== undefined ? (\n props.isEnabled ? (\n

    {props.text} is currently enabled

    \n ) : (\n

    {props.text} is currently disabled

    \n )\n ) : isChecked ? (\n

    \n {\" \"}\n {props.text} is currently enabled\n

    \n ) : (\n

    \n {\" \"}\n {props.text} is currently disabled\n

    \n )}\n
    \n \n );\n}\n","import React from \"react\";\nimport { Tooltip, OverlayTrigger } from \"react-bootstrap\";\n\nexport default function CustomTooltip(props) {\n\tconst renderTooltip = (refs) => (\n\t\t\n\t\t\t
    \n\t\t\t\t{props.message}\n\t\t\t\t
    \n\t\t
    \n\t);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t{props.label}\n\t\t\t\n\t\t
    \n\t);\n}\n","import * as React from \"react\";\nimport { Button } from \"react-bootstrap\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport { Row } from \"react-bootstrap\";\nimport { ExclamationCircle } from \"react-bootstrap-icons\";\nexport default function DataPullSavePopUp(props) {\n return (\n
    \n props.handleClose()} aria-labelledby=\"alert-dialog-title\">\n \n   Important: Initiating Data Pull\n \n
    setOpen(false)} style={{ position: \"absolute\", right: \"5px\", cursor: \"pointer\" }}>\n \n \n \n
    \n \n

    \n You have requested to initiate a data pull, or changes made on this page would require a data pull to proceed.\n

    \n

    \n A data pull can take up to several hours and you will not be able to access or make changes to this account's associated configuration pages until\n the pull is finished. Please proceed with full certainty!\n

    \n
    \n
    \n props.handleClose()}\n style={{\n backgroundColor: \"#3291c1\",\n paddingTop: \"8px\",\n paddingBottom: \"8px\",\n paddingLeft: \"22px\",\n paddingRight: \"22px\",\n }}>\n Hold on, go back\n \n {\n props.manualDataPull();\n if (props.onboarding == true) {\n setTimeout(() => props.submitForm(props.nextPage), 1000);\n }\n else {\n props.submitForm();\n }\n }}\n style={{\n backgroundColor: \"#42ba96\",\n paddingTop: \"8px\",\n paddingBottom: \"8px\",\n paddingLeft: \"22px\",\n paddingRight: \"22px\",\n }}\n autoFocus>\n Save changes and initiate data pull\n \n
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport Datepicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nclass DayPicker extends React.Component {\n changeDate(value) {\n let date = new Date(value).yyyymmdd();\n const url = window.location.origin + window.location.pathname + \"?date_selection=\" + date;\n window.location = url;\n }\n render() {\n let startDate = Date.parse(new Date(this.props.startDate).yyyymmdd());\n let minDate = Date.parse(new Date(\"2019-01-01\").yyyymmdd());\n return (\n <>\n
    \n \n
    \n \n );\n }\n}\n\nexport default DayPicker;\n","import React from \"react\";\n\nclass DefaultAvatar extends React.Component {\n chooseColor(firstLetter, secondLetter) {\n // Need to use something to generate colors since some users don't have full names\n let firstInitial = firstLetter != \"\" ? firstLetter : \"a\";\n let secondInitial = secondLetter != \"\" ? secondLetter : \"a\";\n const colors = [\n { text: \"#2f6051\", bg: \"#47bb98\" },\n { text: \"#55403b\", bg: \"#d97358\" },\n { text: \"#c7f7f7\", bg: \"#2e93c6\" },\n { text: \"#bcdff2\", bg: \"#604bc6\" },\n { text: \"#f2cfbc\", bg: \"#ac3d4d\" },\n { text: \"#bbb5ad\", bg: \"#474857\" },\n { text: \"#7fa7b5\", bg: \"#1a4a77\" },\n { text: \"#6f5d2b\", bg: \"#dbb13b\" },\n { text: \"#4ecac3\", bg: \"#2e6661\" },\n { text: \"#608ac1\", bg: \"#481f6c\" },\n ];\n // Get first letters distance from 'a'\n let firstModifier = firstInitial.charCodeAt(0) - 97;\n // Invert the second modifier to get a more 'random' result\n let secondModifier = (secondInitial.charCodeAt(0) - 97) * -1 + 25;\n let finalModifier = (firstModifier + secondModifier) / 2;\n let optionsRatio = colors.length / 26; // 0.38461538461538464\n let chosenIndex = Math.round(finalModifier * optionsRatio) - 1;\n if (chosenIndex < 0) chosenIndex = 2;\n return colors[chosenIndex];\n }\n\n render() {\n let width = this.props.dim.split(\"x\")[0];\n let height = this.props.dim.split(\"x\")[1];\n let firstName = Number.isInteger(this.props.name) ? String(this.props.name)[0] : this.props.name.split(\" \")[0];\n let lastName = Number.isInteger(this.props.name) ? String(this.props.name % 10) : this.props.name.split(\" \")[1];\n let firstInitial = firstName ? firstName.charAt(0).toLowerCase() : \"\";\n let secondInitial = lastName ? lastName.charAt(0).toLowerCase() : \"\";\n let color = this.chooseColor(firstInitial, secondInitial);\n\n if (this.props.alertCounter) {\n if (Number.isInteger(this.props.name) && this.props.name >= 10) {\n firstInitial = \"9\";\n secondInitial = \"+\";\n } else {\n secondInitial = \"\";\n }\n }\n return (\n \n \n \n {firstInitial.toUpperCase() + secondInitial.toUpperCase()}\n \n \n );\n }\n}\n\nexport default DefaultAvatar;\n","import React from 'react'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\n\nclass LeftIndent extends React.Component {\n render() {\n return (\n \n \n {this.props.children}\n \n \n );\n }\n}\n\nexport default LeftIndent;\n","\nimport React from 'react';\nimport ChartGoal from 'charts/ChartGoal'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport currencyConverter from 'utils/currencyConverter'\n\nclass Metric extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n\n function addCommasToNumber(input) {\n return input.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '$&,') + (value.length == 2 ? '.' + value[1] : '')\n }\n\n const conversion = (typeof (this.props.baseCurrency) != \"undefined\") && (this.props.baseCurrency != this.props.displayCurrency)\n let value = this.props.value ? this.props.value : 0;\n\n if (conversion == true && !this.props.noConvert) {\n value = currencyConverter(value, this.props.baseCurrency, this.props.displayCurrency)\n }\n\n\n if (typeof value == 'string')\n value = parseFloat(value)\n\n if (this.props.precision != null && this.props.precision != undefined) {\n value = value.toFixed(this.props.precision);\n }\n\n if (this.props.commas) {\n value = value.toString().split('.')\n value = addCommasToNumber(value[0])\n }\n\n value = Number.isFinite(parseFloat(value)) ? value.toString() : \"\"\n\n let prefix = this.props.prefix ? this.props.prefix : '';\n let suffix = this.props.suffix ? this.props.suffix : '';\n if (this.props.client == \"IWA Wine\") {\n prefix = \"\"\n suffix = \"x\"\n }\n\n\n let finalValue = `${prefix}${value}${suffix}`\n finalValue = finalValue.replace('$-', '-$')\n\n return (\n <>\n {\n `${finalValue}`\n }\n \n )\n }\n\n}\n\nexport default Metric;\n","import React from \"react\";\nimport Datepicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nclass MonthPicker extends React.Component {\n changeDate(value) {\n let date = new Date(value).yyyymmdd();\n let searchParams = new URL(location.href).searchParams;\n const url = this.props.section === \"SEO\" ? `${window.location.origin + window.location.pathname + \"?date_selection=\" + date}` : `${window.location.origin + window.location.pathname + `?page=${searchParams.get(\"page\")}` + \"&date_selection=\" + date}`\n window.location = url;\n }\n render() {\n let startDate = Date.parse(new Date(this.props.startDate).yyyymmdd());\n let minDate = Date.parse(new Date(\"2019-01-01\").yyyymmdd());\n return (\n <>\n
    \n \n
    \n \n );\n }\n}\n\nexport default MonthPicker;\n","import React, { useState } from \"react\";\nimport onClickOutside from \"react-onclickoutside\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nfunction NumberDropdown(props) {\n const sections = [\n [\"1\", \"button-1\"],\n [\"2\", \"button-2\"],\n [\"3\", \"button-3\"],\n [\"4\", \"button-4\"],\n ];\n const index = props.permission ? props.permission : 1;\n const [open, setOpen] = useState(false);\n const [currentSection, setCurrentSection] = useState(sections[index - 1]);\n NumberDropdown[`handleClickOutside_` + props.item] = () => setOpen(false);\n\n const handleChange = (section) => {\n setCurrentSection([section[0], section[1]]);\n if (props.customPermissions && props.setCustomPermissions) {\n let newRecipients = [...props.customPermissions];\n newRecipients[props.idx].permission = section[0];\n props.setCustomPermissions(newRecipients);\n }\n };\n\n const toggle = () => setOpen(!open);\n return (\n
    \n
    \n
    toggle(!open)}>\n
    \n {currentSection[0]}\n {open ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n {sections.map((section) => {\n return (\n
    handleChange(section)} className=\"d-flex pointer\" key={uuidv4()}>\n
    \n {section[0] === \"1\" ? (\n 1\n ) : section[0] === \"2\" ? (\n 2\n ) : section[0] === \"3\" ? (\n 3\n ) : section[0] === \"4\" ? (\n 4\n ) : undefined}\n
    \n
    \n );\n })}\n \n
    \n
    \n
    \n
    \n );\n}\n\nconst clickOutsideConfig = {\n handleClickOutside: ({ props }) => NumberDropdown[\"handleClickOutside_\" + props.item],\n};\n\nexport default onClickOutside(NumberDropdown, clickOutsideConfig);\n","import React, { useState } from \"react\";\nimport {Row, Col, Modal, Form, Button} from \"react-bootstrap\";\nimport OrgPickerModal from \"organizations/OrgPickerModal\"\nimport jsDig from \"utils/jsDig\"\n\nexport default function ProfileDropdown(props) {\n let logout = require(\"images/organizations/logout.png\");\n logout = ;\n let dpLogo = require(\"images/logos/dp-logo-white.png\");\n dpLogo = ;\n\n\n const [imageURL, setImageURL] = useState(props.logo ? props.logo : '');\n \n let orgLogo = ;\n\n const [show, setShow] = useState(false);\n const handleShow = () => setShow(true);\n\n const userOrgDetail = props.user_org_details.find((el) => el.organization_id == jsDig([\"selected_org\", \"id\"], props))\n const getRoleTitle = (role) => {\n // :nobody, :client, :employee, :specialist, :manager, :admin\n switch(role) {\n case \"admin\":\n return \"Admin\";\n case \"manager\":\n return \"Full\";\n case \"specialist\":\n return \"Standard\";\n case \"employee\":\n return \"Restricted\"\n case \"client\":\n return \"Client\";\n default:\n return \"Nobody\";\n }\n }\n\n return (\n
    \n {(props.organizations && props.organizations.length) > 0 && (\n <>\n \n \n \n \n

    Organization

    \n \n {props.organizations.length > 1 &&\n \n

    Change Organization

    \n \n }\n
    \n \n \n \n \n {props.logo ? orgLogo : dpLogo}\n \n \n \n \n

    {props.selected_org ? props.selected_org.name : \"None\"}

    \n \n
    \n \n \n

    {getRoleTitle(jsDig([\"role\"], userOrgDetail))}

    \n \n
    \n \n
    \n \n \n \n
    \n {\n (getRoleTitle(jsDig([\"role\"], userOrgDetail)) === \"Admin\" || props.current_user_is_god) &&\n \n \n Organization Settings\n \n \n }\n \n
    \n \n )}\n \n \n Edit My Profile

    \n My Team

    \n {/* {logout}Logout

    */}\n {logout}Logout\n \n
    \n {(props.organizations && props.organizations.length > 0) && (\n \n )}\n
    \n );\n}\n\n","function RandomQuoteGenerator(props) {\n console.log(props)\n const quotes = [\n {text: \"No job is complete until a selfie is posted.\", author: \"Ashok Kallarakkal\"},\n {text: \"The best way to predict the future is to create it.\", author: \"Abraham Lincoln\"},\n {text: \"If opportunity doesn't knock, build a door.\", author: \"Milton Berle\"},\n {text: \"The world is your \\u{1F9AA}; it's up to you to find the pearls.\", author: \"Chris Gardner\"},\n {text: \"It's what you do right now that makes a difference.\", author: \"Mark Bowden\"},\n {text: \"You don't need to take all the steps, only the next one.\", author: \"Unknown\"},\n {text: \"Boi?\", author: \"Jordan Lagan\"},\n {text: \"Obtain the grain.\", author: \"Kaylee Price\"},\n {text: \"We're no strangers to love. You know the rules and so do I.\", author: \"Rick Astley\"},\n {text: \"Fail fast and cheap.\", author: \"Roger Parent\"},\n {text: \"With increased revenue, comes increased heart rate.\", author: \"Tim Pelletier\"},\n {text: \"Ignore it for now.\", author: \"John Zhang\"},\n {text: \"Do or do not. There is no try.\", author: \"Yoda\"},\n {text: \"I like turtles\", author: \"Jonathan The Zombie\"},\n {text: \"If you're going through hell, keep going\", author: \"Winston Churchill\"},\n {text: \"Walking the dogs, brb!\", author: \"Mike Harrison\"},\n {text: \"All we have to decide is what to do with the time that is given us.\", author: \"Gandalf the Grey\"},\n {text: \"When you arise in the morning, think of what a precious privilege it is to be alive - to breathe, to think, to enjoy, to love.\", author: \"Marcus Aurelius\"},\n {text: \"Just keep swimming.\", author: \"Dory\"}\n ];\n\n const normalQuotes= [\n\n {text: \"The best way to predict the future is to create it.\", author: \"Abraham Lincoln\"},\n {text: \"If opportunity doesn't knock, build a door.\", author: \"Milton Berle\"},\n {text: \"The world is your oyster; it's up to you to find the pearls.\", author: \"Chris Gardner\"},\n {text: \"It's what you do right now that makes a difference.\", author: \"Mark Bowden\"},\n {text: \"You don't need to take all the steps, only the next one.\", author: \"Unknown\"},\n {text: \"I attribute my success to this: I never gave or took any excuse.\", author: \"Florence Nightingale\"},\n {text: \"Today’s accomplishments were yesterday’s impossibilities.\", author: \"Robert H. Schuller\"},\n {text: \"Things may come to those who wait, but only the things left by those who hustle.\", author: \"Unknown\"},\n {text: \"When you arise in the morning, think of what a precious privilege it is to be alive - to breathe, to think, to enjoy, to love.\", author: \"Marcus Aurelius\"}\n ];\n\n const specialQuotes = [\n {text: \"oooooOOHH! It's Mista SooFLAY\", author: \"Jöel Begér\", className: \"rainbow\"}\n ]\n\n let roll = Math.random() * 100;\n let quote = {};\n if (roll < 1) {\n quote = specialQuotes[Math.floor(Math.random() * specialQuotes.length)];\n } else {\n quote = quotes[Math.floor(Math.random() * quotes.length)];\n }\n if (props.organization.name !== \"Digital Position\") {\n quote = normalQuotes[Math.floor(Math.random() * normalQuotes.length)];\n }\n\n return quote\n}\n\nexport default RandomQuoteGenerator;\n","import React, { useState, useEffect } from \"react\";\n\nexport default function StateOptions(props) {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react';\n\nfunction UserDepartment(props) {\n let humanizedDepartment =
    ;\n if (props.department == null || props.department == \"no_department\")\n {\n humanizedDepartment =
    NONE
    \n }\n else\n {\n humanizedDepartment =
    {props.department.split(\"_\")[0].toUpperCase()}
    \n }\n return humanizedDepartment;\n}\n\nexport default UserDepartment;\n","import React from 'react';\n\nfunction UserRole(props) {\n let humanizedRole =
    ;\n if (props.role == \"client\")\n {\n humanizedRole =
    Client
    \n }\n else\n {\n let to_lower = props.role.replace(\"dp_\", \"\")\n let firstCap = to_lower.charAt(0).toUpperCase() + to_lower.slice(1);\n humanizedRole =
    {firstCap}
    \n }\n return humanizedRole;\n}\n\nexport default UserRole;","// This component takes a list of relevant users to choose from and an array of\n// html form namespaces so that the params sent to the server can be structured\n// as needed via hidden inputs.\nimport React, { useState, useEffect } from \"react\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport { Row, Col, Form, Modal, Button, OverlayTrigger, Tooltip } from \"react-bootstrap\";\n\nexport default function UserSelector(props) {\n const [show, setShow] = useState(false);\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const fieldsFor = props.fieldsForArray.map((field) => `[${field}]`).join(\"\") + \"[]\";\n const [selectedUsers, setSelectedUsers] = useState(Array.isArray(props.defaultValue) ? props.defaultValue : []);\n const [toggledUsers, setToggledUsers] = useState([]);\n const unSelectedUsers = Object.keys(props.users).filter((userEmail) => !selectedUsers.includes(userEmail));\n const [visibleUsers, setVisibleUsers] = useState([...unSelectedUsers]);\n // Update the list of users you can select from to be only unselected ones\n useEffect(() => {\n setVisibleUsers([...Object.keys(props.users).filter((userEmail) => !selectedUsers.includes(userEmail))]);\n }, [selectedUsers]);\n\n // Update the list of selected users\n useEffect(() => {\n setSelectedUsers(Array.isArray(props.defaultValue) ? props.defaultValue : []);\n }, [props.defaultValue]);\n\n const toggleUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...toggledUsers];\n if (selection.includes(userEmail)) {\n selection.splice(selection.indexOf(userEmail), 1);\n } else {\n selection.push(userEmail);\n }\n setToggledUsers(selection);\n };\n\n const selectUsers = () => {\n props.setServiceAccount && props.setServiceAccount([...selectedUsers, ...toggledUsers]);\n setSelectedUsers([...selectedUsers, ...toggledUsers]);\n setToggledUsers([]);\n handleClose();\n };\n\n const unselectUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...selectedUsers];\n selection.splice(selection.indexOf(userEmail), 1);\n props.setServiceAccount && props.setServiceAccount(selection);\n setSelectedUsers(selection);\n props.validator()\n };\n\n const handleCancel = () => {\n setToggledUsers([]);\n handleClose();\n };\n\n const searchUsers = (e) => {\n let filter = e.target.value.toLowerCase();\n let matchedUsers = [];\n Object.keys(props.users).forEach((userEmail) => {\n let user = props.users[userEmail];\n // If the user is not subscribed already && their name or email matches input\n if (!selectedUsers.includes(userEmail) && (user.name.toLowerCase().includes(filter) || userEmail.toLowerCase().includes(filter))) {\n matchedUsers.push(userEmail);\n }\n });\n setVisibleUsers(matchedUsers);\n };\n\n const toggledUsersList = toggledUsers.map((userEmail) => {\n let user = props.users[userEmail];\n return (\n toggleUser(e)}>\n {user.name}\n \n \n );\n });\n const btnDisabled = props.isEnabled !== undefined ? !props.isEnabled : false;\n return (\n <>\n
    \n {selectedUsers.map((userEmail, index) => {\n let user = props.users[userEmail];\n if (user) {\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n return (\n {user.name}}>\n
    unselectUser(e)} className=\"d-inline-block cont mr-2 mb-1\">\n {avatar}\n
    \n \n
    \n \n
    \n
    \n );\n }\n })}\n \n +\n \n \n
    \n \n {props.modalHeader}\n \n \n \n \n
    \n \n searchUsers(e)} placeholder=\"Enter a name or email address...\" />\n
    \n \n
    \n \n \n
      \n {visibleUsers.map((userEmail) => {\n let user = props.users[userEmail];\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n let toggled = toggledUsers.includes(userEmail) ? \"toggled\" : undefined;\n return (\n \n
    • toggleUser(e)} data-email={userEmail} className={toggled}>\n
      \n
      \n
      \n {avatar}\n
      \n \n
      \n
      \n  {user.name}\n  {userEmail}\n
      \n
      \n
    • \n
      \n );\n })}\n
    \n \n
    \n
    \n \n
    \n

    \n To be selected:\n

    \n {toggledUsersList}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n );\n}\n","import jsDig from 'utils/jsDig';\n\nexport default (value, baseCurrency, selectedCurrency) => {\n const decimalPlaces = countDecimals(value);\n const allRates = require(\"data/currencyRates.json\");\n const conversionRate = jsDig([baseCurrency, selectedCurrency], allRates);\n const newValue = (value * conversionRate).toFixed(decimalPlaces);\n return newValue;\n}\n\nconst countDecimals = function (value) {\n if (!value) return 0;\n if (Math.floor(value.valueOf()) === value.valueOf()) return 0;\n return value.toString().split(\".\")[1].length || 0; \n}","const ppcOrderArray = [\n \"spend\",\n \"impressions\",\n \"impressionsTopRate\",\n \"impressionsAbsTopRate\",\n \"searchImpressionsShare\",\n \"views\",\n \"viewableImpressions\",\n \"clicks\",\n \"phoneCalls\",\n \"inStoreVisits\",\n \"cpsv\",\n \"earnedSubscribers\",\n \"earnedLikes\",\n \"earnedShares\",\n \"cpc\",\n \"cpv\",\n \"viewCtr\",\n \"ctr\",\n \"clickConversions\",\n \"viewConversions\",\n \"totalConversions\",\n \"cvr\",\n \"videoCvr\",\n \"clickRevenue\",\n \"viewRevenue\",\n \"shopifyRevenue\",\n \"totalRevenue\",\n \"clickCpa\",\n \"totalCpa\",\n \"clickRoas\",\n \"shopifyRoas\",\n \"totalRoas\",\n \"clickAov\",\n \"totalAov\",\n];\n\nconst seoOrderArray = [\n \"traffic\",\n \"searchVisibility\",\n \"topThreeKeywords\",\n \"topThreeKeywordsPercentage\",\n \"topTenKeywords\",\n \"topTenKeywordsPercentage\",\n \"topTwentyKeywords\",\n \"topTwentyKeywordsPercentage\",\n \"averagePosition\",\n \"bounceRate\",\n \"conversions\",\n \"cvr\",\n \"revenue\",\n \"aov\",\n];\nexport default (service, array) => {\n if (service == \"ppc\") {\n array.sort((a, b) => ppcOrderArray.indexOf(a) - ppcOrderArray.indexOf(b));\n return array;\n } else if (service == \"seo\") {\n array.sort((a, b) => seoOrderArray.indexOf(a) - seoOrderArray.indexOf(b));\n return array;\n }\n};\n","export default (id, section) => {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/dismiss-errors\",\n data: {\n section_id: id,\n section_name: section\n },\n });\n};\n","export default (currency) => {\n let currencyObj = {\n prefix: \"\",\n suffix: \"\",\n symbol: \"\"\n }\n if (currency == \"USD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"EUR\") {\n currencyObj.prefix = \"€\"\n currencyObj.symbol = \"€\"\n } else if (currency == \"JPY\") {\n currencyObj.prefix = \"JP¥\"\n currencyObj.symbol = \"¥\"\n } else if (currency == \"GBP\") {\n currencyObj.prefix = \"£\"\n currencyObj.symbol = \"£\"\n } else if (currency == \"AUD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"CAD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"CHF\") {\n currencyObj.prefix = \"fr.\"\n currencyObj.symbol = \"fr.\"\n } else if (currency == \"CNY\") {\n currencyObj.prefix = \"¥\"\n currencyObj.symbol = \"¥\"\n } else if (currency == \"HKD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"NZD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"AED\") {\n currencyObj.prefix = \"د.إ\"\n currencyObj.symbol = \"د.إ\"\n } else if (currency == \"INR\") {\n currencyObj.prefix = \"₹\"\n currencyObj.symbol = \"₹\"\n } else if (currency == \"SGD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"KRW\") {\n currencyObj.prefix = \"₩\"\n currencyObj.symbol = \"₩\"\n }\n\n return currencyObj;\n}","export default (date, metricKey, seoMetric = false) => {\n const metric = metricKey.toLowerCase();\n let inflated = false;\n if (!seoMetric) {\n if (metric.includes(\"roas\")) {\n inflated = true;\n } else if (metric.includes(\"cpa\")) {\n inflated = true;\n } else if (metric.includes(\"revenue\")) {\n inflated = true;\n } else if (metric.includes(\"conversions\")) {\n inflated = true;\n }\n }\n \n const today = moment();\n let lockDate = moment(date);\n if (inflated) {\n lockDate.endOf(\"month\").add(30, \"days\")\n } else {\n lockDate.endOf(\"month\").add(1, \"days\")\n }\n\n return today >= lockDate;\n};\n","export default (sectionName, metricKey, diff) => {\n let lessIsGood = false;\n const metric = metricKey.toLowerCase();\n if (metric.includes(\"cpc\")) {\n lessIsGood = true;\n } else if (metric.includes(\"cpa\")) {\n lessIsGood = true;\n } else if (metric.includes(\"spend\") && sectionName == \"goalsAndProjections\") {\n lessIsGood = true;\n } else if (metric.includes(\"bounce_rate\")) {\n lessIsGood = true;\n } else if (metric.includes(\"cpv\")) {\n lessIsGood = true;\n }\n \n const negative = lessIsGood ? diff >= 0 : diff < 0;\n\n return negative;\n};\n","export default (p, o) => {\r\n return p.reduce((xs, x) => (xs && (xs[x] || xs[x] == 0)) ? xs[x] : null, o);\r\n}\r\n","import jsDig from \"utils/jsDig.js\";\r\n\r\nexport default (service, section, metric, dashboards, enabledServices) => {\r\n // This could be expanded if we ever need more customized metrics\r\n if (service == \"ppc\") {\r\n const services = [\"search\", \"social\", \"display\", \"video\"].filter((serviceName) => enabledServices[serviceName] == true);\r\n let canBuild = false;\r\n\r\n if (metric.includes(\"shopify\")) {\r\n canBuild = true;\r\n }\r\n\r\n if (section == \"campaignGroups\" || section == \"performanceByChannel\") {\r\n canBuild = true;\r\n }\r\n\r\n if (section == \"goalsAndProjections\" || section == \"allKpisVsPreviousYear\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"goalsAndProjections\" || s[\"name\"] == \"allKpisVsPreviousYear\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"primaryKpiCharts\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"primaryKpiCharts\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"primaryKpiTables\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"primaryKpiTables\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"spendAllocation\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"spendAllocation\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n return canBuild;\r\n } else {\r\n return true;\r\n }\r\n}\r\n","export default (conditions, name) => {\r\n const containsOr = conditions[\"contains\"][\"or\"]\r\n const containsAnd = conditions[\"contains\"][\"and\"]\r\n const notContainsOr = conditions[\"notContains\"][\"or\"]\r\n const notContainsAnd = conditions[\"notContains\"][\"and\"]\r\n let passes = true;\r\n if (name && name != \"\") {\r\n if (containsOr && containsOr.length > 0) {\r\n const nameContains = containsOr.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (!nameContains.includes(true)) {\r\n passes = false\r\n }\r\n }\r\n if (containsAnd && containsAnd.length > 0) {\r\n const nameContains = containsAnd.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (nameContains.includes(false)) {\r\n passes = false\r\n }\r\n }\r\n if (notContainsOr && notContainsOr.length > 0) {\r\n const nameNotContains = notContainsOr.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (!nameNotContains.includes(false)) {\r\n passes = false\r\n }\r\n }\r\n if (notContainsAnd && notContainsAnd.length > 0) {\r\n const nameNotContains = notContainsAnd.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (nameNotContains.includes(true)) {\r\n passes = false\r\n }\r\n }\r\n } else {\r\n passes = false;\r\n }\r\n\r\n return passes\r\n};\r\n","export default (key, value, page) => {\r\n let searchParams = new URL(location.href).searchParams;\r\n if (key === undefined && page === \"services\") {\r\n key = \"sub_page\";\r\n if (searchParams.toString().includes(\"seo\")) {\r\n value = \"ppc\";\r\n } else {\r\n value = \"seo\";\r\n }\r\n }\r\n searchParams.set(key, value);\r\n searchParams = \"?\" + searchParams.toString();\r\n var newurl = `${window.location.origin}${window.location.pathname}${searchParams}`;\r\n window.history.pushState({ path: newurl }, \"\", newurl);\r\n};\r\n","import React, { useCallback, useMemo, useState } from \"react\";\nimport isHotkey from \"is-hotkey\";\nimport { Editable, withReact, useSlate, Slate } from \"slate-react\";\nimport { Editor, Transforms, createEditor } from \"slate\";\nimport { withHistory } from \"slate-history\";\n\nimport { Button, Icon, Toolbar } from \"./components\";\n\nconst HOTKEYS = {\n \"mod+b\": \"bold\",\n \"mod+i\": \"italic\",\n \"mod+u\": \"underline\",\n \"mod+`\": \"code\"\n};\n\nconst LIST_TYPES = [\"numbered-list\", \"bulleted-list\"];\n\nconst RichTextEditor = (props) => {\n const [value, setValue] = useState(initialValue);\n const renderElement = useCallback(props => , []);\n const renderLeaf = useCallback(props => , []);\n const editor = useMemo(() => withHistory(withReact(createEditor())), []);\n\n return (\n <>\n
    \n {\n setValue(value)\n props.setEmailBody(value)\n const isAstChange = editor.operations.some(\n op => 'set_selection' !== op.type\n )\n if (isAstChange) {\n // Save the value to Local Storage.\n const content = JSON.stringify(value)\n }\n }}>\n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n {\n for (const hotkey in HOTKEYS) {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n const mark = HOTKEYS[hotkey];\n toggleMark(editor, mark);\n }\n }\n }}\n />\n \n
    \n \n );\n};\n\nconst toggleBlock = (editor, format) => {\n const isActive = isBlockActive(editor, format);\n const isList = LIST_TYPES.includes(format);\n\n Transforms.unwrapNodes(editor, {\n match: n => LIST_TYPES.includes(n.type),\n split: true\n });\n\n Transforms.setNodes(editor, {\n type: isActive ? \"paragraph\" : isList ? \"list-item\" : format\n });\n\n if (!isActive && isList) {\n const block = { type: format, children: [] };\n Transforms.wrapNodes(editor, block);\n }\n};\n\nconst toggleMark = (editor, format) => {\n const isActive = isMarkActive(editor, format);\n\n if (isActive) {\n Editor.removeMark(editor, format);\n } else {\n Editor.addMark(editor, format, true);\n }\n};\n\nconst isBlockActive = (editor, format) => {\n const [match] = Editor.nodes(editor, {\n match: n => n.type === format\n });\n\n return !!match;\n};\n\nconst isMarkActive = (editor, format) => {\n const marks = Editor.marks(editor);\n return marks ? marks[format] === true : false;\n};\n\nconst Element = ({ attributes, children, element }) => {\n switch (element.type) {\n case \"block-quote\":\n return
    {children}
    ;\n case \"bulleted-list\":\n return
      {children}
    ;\n case \"heading-one\":\n return

    {children}

    ;\n case \"heading-two\":\n return

    {children}

    ;\n case \"list-item\":\n return
  • {children}
  • ;\n case \"numbered-list\":\n return
      {children}
    ;\n default:\n return

    {children}

    ;\n }\n};\n\nconst Leaf = ({ attributes, children, leaf }) => {\n if (leaf.bold) {\n children = {children};\n }\n\n if (leaf.code) {\n children = {children};\n }\n\n if (leaf.italic) {\n children = {children};\n }\n\n if (leaf.underline) {\n children = {children};\n }\n\n return {children};\n};\n\nconst BlockButton = ({ format, icon }) => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n toggleBlock(editor, format);\n }}\n >\n {icon}\n \n );\n};\n\nconst MarkButton = ({ format, icon }) => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n toggleMark(editor, format);\n }}\n >\n {icon}\n \n );\n};\n\nconst initialValue = [\n {\n type: \"paragraph\",\n children: [\n { text: \"\" }\n ]\n }\n];\n\nexport default RichTextEditor;\n","import React, { useState } from \"react\";\nimport { Table, Form, Button, } from \"react-bootstrap\";\nimport RichTextEditor from './RichTextEditor'\nimport escapeHtml from 'escape-html'\nimport { Text } from 'slate'\n\nexport default function WriteMail(props) {\n const emails = [\n \"support@digitalposition.com\",\n \"datapulse@digitalposition.com\"\n ]\n\n const handleSubmit = (e) => {\n e.preventDefault()\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/admin/send-email\",\n\t\t\tdata: {\n\t\t\t\temailBody: emailBody.map((node) => serialize(node)).join(''),\n\t\t\t\temailFrom: emailFrom,\n emailTo: emailTo.split(\",\").map(email => email.trim()),\n subject: subject\n\t\t\t},\n\t\t});\n location.reload()\n }\n\n const [emailBody, setEmailBody] = useState([])\n const [emailFrom, setEmailFrom] = useState(\"support@digitalposition.com\")\n const [emailTo, setEmailTo] = useState(\"\")\n const [subject, setSubject] = useState(\"\")\n\n const serialize = node => {\n if (Text.isText(node)) {\n let string = escapeHtml(node.text)\n if (node.bold) {\n string = `${string}`\n }\n if (node.italic) {\n string = `${string}`\n }\n if (node.underline) {\n string = `${string}`\n }\n if (node.code) {\n string = `${string}`\n }\n return string\n }\n \n const children = node.children.map(n => serialize(n)).join('')\n \n switch (node.type) {\n case 'heading-one':\n return `

    ${children}

    `\n case 'heading-two':\n return `

    ${children}

    `\n case 'numbered-list':\n return `
      ${children}
    `\n case 'bulleted-list':\n return `
      ${children}
    `\n case 'list-item':\n return `
  • ${children}
  • `\n case 'quote':\n return `

    ${children}

    `\n case 'paragraph':\n return `

    ${children}

    `\n case 'link':\n return `${children}`\n default:\n return children\n }\n }\n\n return(\n <>\n
    \n

    Send E-Mail from DataPulse

    \n
    \n
    \n From:\n setEmailFrom(e.target.value)}\n style={{}}>\n {emails.map((email, index) => {\n return (\n \n );\n })}\n \n
    \n
    \n To:\n setEmailTo(e.target.value)}\n value={emailTo}\n style={{}}/>\n
    \n
    \n\n Subject:\n setSubject(e.target.value)}\n value={subject}\n style={{}}/>\n\n \n\n
    \n \n
    \n \n \n )\n}","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { css, cx } from '@emotion/css';\n\nexport const Button = React.forwardRef(\n ({ className, active, reversed, ...props }, ref) => (\n \n )\n);\n\nexport const EditorValue = React.forwardRef(\n ({ className, value, ...props }, ref) => {\n const textLines = value.document.nodes\n .map(node => node.text)\n .toArray()\n .join(\"\\n\");\n return (\n \n \n Slate's value as text\n \n \n {textLines}\n \n \n );\n }\n);\n\nexport const Icon = React.forwardRef(({ className, ...props }, ref) => (\n \n));\n\nexport const Instruction = React.forwardRef(({ className, ...props }, ref) => (\n \n));\n\nexport const Menu = React.forwardRef(({ className, ...props }, ref) => (\n * {\n display: inline-block;\n }\n\n & > * + * {\n margin-left: 15px;\n }\n `\n )}\n />\n));\n\nexport const Portal = ({ children }) => {\n return ReactDOM.createPortal(children, document.body);\n};\n\nexport const Toolbar = React.forwardRef(({ className, ...props }, ref) => (\n \n));\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","CampaignGroupList","props","state","items","this","push","name","filter_string","filter_type","conditions","setState","oldItem","find","x","filter_condition","event","target","value","conditionIndex","itemIndex","splice","itemList","item","index","containsList","condition","key","parentForm","onChange","handleConditionAndOrChange","className","style","height","type","handleConditionInputChange","onClick","removeCondition","background","notContainsList","handleItemNameChange","removeItem","handleItemFilterTypeChange","width","placeholder","propertyName","handleItemInputChange","float","colSpan","handleNewContainsCondition","handleNewNotContainsCondition","handleNewBucket","React","List","defaultPropertyValues","currentItemProperties","propertyNames","forEach","element","removeListItem","bind","updateListItem","addListItem","handleNewItemChange","$","ajax","url","async","success","response","findIndex","properties","additionalFields","listType","conversion_id","conversion_type","conversionType","i","length","data","section_type","sectionType","section_id","sectionId","additional_fields","inputs","parentElement","children","input","tagName","newItemRow","property","listStyle","ListItem","checkStyle","counter","prop","prototype","hasOwnProperty","call","handleInputChange","itemRow","display","MetricTable","window","innerWidth","lockMetric","metricName","prevState","lockColumns","headerOrder","values","includes","sort","y","metricTitleX","_","startCase","camelCase","slice","toUpperCase","metricTitleY","cloneDeep","table","date","moment","compactView","userDefaultView","selectedPlatform","prevProps","addEventListener","updateWidth","metricTitle","removeEventListener","months","mobileMonths","headerClass","ppc","renderHeader","scope","left","indexOf","padding","updateLock","marginBlock","flexDirection","fill","labelPlacement","control","color","checked","label","responsive","border","backgroundColor","parseInt","substring","year","num","client","rowNumber","thisYearValue","jsDig","toString","lastYearValue","baseCurrency","displayCurrency","bottomRow","MetricTableOld","scrollMesage","scrollMessage","margin","MetricTablePdf","formatted_metric","opts","isNull","lastYearNull","thisYear","toLowerCase","currencyDetails","getCurrencyDetails","prefix","commas","precision","suffix","MetricTableRow","current","last_year","month","Date","getMonth","isThisYearNull","isLastYearNull","shouldRenderBottomBorder","yy","firstValueClass","secondValueClass","thirdValueClass","Number","isFinite","isNaN","textAlign","minWidth","toFixed","lastYear","numberWithCommas","replace","MetricTableRowOld","MetricTableRowPdf","minHeight","websitePlatforms","backgroundColors","sections","permissionsLabel","TopFlyout","showOrNot","shopLogo","require","src","bcLogo","useState","collapse","setCollapse","teamSupports","teamLeads","section","account_leads","account_supports","toggleCollapse","next","chevronLeft","chevronRight","chevronTop","chevronDown","barShow","departments","arrayOfUsers","entries","users","avatarTeamLead","personal","info","email","personalInfo","department","personalInfoToolTip","organization","job_title","phone_number","legendColor","title","avatar","borderStyle","borderWidth","borderColor","dim","arrayOfTeamSupport","user","avatarTeamSupport","placement","overlay","listStyleType","clientUsers","client_account","client_users","clientUsersOverage","filter","el","idx","Array","arrayOfClients","renderAvatarClients","Math","ceil","company_name","arr","lastInfo","join","bg","renderDepartmentsLegends","split","size","accessLegends","accessNames","team_access","accessLevels","access","Full","Restricted","websitePlatformLogo","renderAccessesList","accessColor","renderAccessesLegends","permissionsExplainations","comfortLevel","zIndex","maxWidth","xs","global_website_permissions","flexGrow","fontSize","position","top","marginTop","custom_website_permissions","web","marginBottom","fontWeight","website","permission","clientWebsite","website_platform","transition","client_logo","maxHeight","paddingBottom","search_section","enabled","display_section","video_section","social_section","href","undefined","seo_section","role","custom_website_permissions_enabled","delay","show","hide","variant","custom","paddingRight","paddingLeft","visibility","login_type","ZoomRedirectPopup","datapulsePreview","datapulseLogo","onHide","closeButton","sm","lineHeight","App","logo","icon","tabletImg","fluid","Activity","logs","renderLogs","setRenderLogs","startDate","dateParam","date_param","paddingTop","log","userEmail","clients","time","updated_at","format","userName","createOrUpdate","version","fieldNames","log_data","valuesChange","console","hasClass","removeClass","addClass","marginLeft","wordBreak","field","detailsChange","JSON","stringify","landing_page_id","landing_page_groups","campaign","campaign_groups","campaign_id","campaign_groups_social","campaign_social_id","alert","min","scrollTo","behavior","bottom","right","Admin","tabLocation","hashLoc","location","hash","defaultActiveKey","activeKey","onSelect","k","selectTab","eventKey","mailingLists","MailingList","description","emails","emailInputValue","isEditingName","isEditingDescription","descriptionInputValue","nameInputValue","mailingList","test","DP_FLASH","message","newEmails","mailing_list","dataType","error","desc","defaultValue","updateName","as","updateDescription","noGutters","md","addEmail","block","removeEmail","deleteMailingList","MailingLists","list_id","newMailingLists","l","createMailingList","AlertSubscriptions","sectionName","returnedData","section_name","removalSuccessful","clientRow","getAttribute","addUser","removeUser","searchClients","defaultUser","default_user","ManageSubsByClient","subscribedUsers","subscribed_users","addUserCallback","pointerEvents","wrapper","clientName","client_name","ManageSubsByUser","selectedUser","disabled","SubscribeToAlertsClientConfig","searchUsers","userSearchList","text","val","trim","contentType","match","SubsByClient","document","getElementsByClassName","striped","rowSpan","search_subs","search_section_id","social_subs","social_section_id","display_subs","display_section_id","video_subs","video_section_id","seo_subs","seo_section_id","SubsByUser","searchVisible","arrow","querySelector","classList","contains","remove","add","filteredUsers","count","usersList","changeUser","bigAvatar","avatar_big","toggleSearch","SubscribeUsersModal","newSubs","unsubscribedUsers","sectionTitle","visibleUsers","toggleUser","verticalAlign","selected","subscribeUsers","setShow","setCount","snoozed","setSnooze","handleClose","snoozeSrc","scriptName","script_name","a","charAt","showBtnText","increment","prevCount","decrement","snoozeAlert","Alerts","alertId","daysToSnooze","days_to_snooze","resolved","resolved_by","ids","refresh","redirectUrl","alert_ids","redirect_url","AlertView","view","AccountAlerts","AlertSummary","resolveAlert","resolveAll","allAlerts","alerts","todaysAlerts","yesterdaysAlerts","otherAlerts","today","yesterday","getFullYear","getDate","twoDaysAgo","quote","RandomQuoteGenerator","allResolved","resolvedView","author","toLocaleDateString","userSubscriptions","Alert","showDetails","capitalize","alert_type","emergency","secondary_text","toggleDetails","toggleResolved","dangerouslySetInnerHTML","__html","AlertList","shouldRender","showSeo","showSearch","showSocial","showDisplay","showVideo","alertTemp","AlertContainer","companyName","companyLogo","logos","alertList","reload","refreshPage","ApiAccess","google_ads_mcc_id","mccId","setMccId","api_platforms","google_ads","googleAds","setGoogleAds","microsoft_ads","microsoftAds","setMicrosoftAds","google_analytics","googleAnalytics","setGoogleAnalytics","google_webmasters","googleWebmasters","setGoogleWebmasters","facebook_ads","facebookAds","setFacebookAds","tiktok_ads","tiktokAds","setTiktokAds","authenticated","showAlert","setShowAlert","deAuthGA","setDeAuthGA","deAuthGAN","setDeAuthGAN","deAuthGW","setDeAuthGW","deAuthMA","setDeAuthMA","deAuthFA","setDeAuthFA","deAuthTT","setDeAuthTT","authGA","setAuthGA","authGAN","setAuthGAN","authGW","setAuthGW","authMA","setAuthMA","authFA","setAuthFA","authTT","setAuthTT","didMountRefGA","useRef","didMountRefGAN","didMountRefGW","didMountRefMA","didMountRefFA","didMountRefTT","initialGoogleAdsState","setInitialGoogleAdsState","initialMicrosoftAdsState","setInitialMicrosoftAdsState","initialGoogleAnalyticsState","setInitialGoogleAnalyticsState","initialGoogleWebmastersState","setInitialGoogleWebmastersState","initialFacebookAdsState","setInitialFacebookAdsState","initialTiktokAdsState","setInitialTiktokAdsState","useEffect","body","scrollHeight","authenticateFunction","platform","open","authButton","deauthorizeFunction","faClass","platformName","inline","googleBtn","googleAdsStatePlaceholder","getData","fetch","then","res","json","newData","interval","setInterval","clearInterval","googleAnalyticsStatePlaceholder","googleWebmastersStatePlaceholder","microsoftAdsStatePlaceholder","facebookAdsStatePlaceholder","tiktokAdsStatePlaceholder","apiTitle","relatedState","PlatformSpecific","authenticityToken","content","semrush_api_key","semrushApiKey","setSemrushApiKey","justifyContent","method","action","hidden","readOnly","SaveChanges","CampaignBuilder","loadingSpinner","google_ads_accounts","act","selectedActId","buildBtn","html","account_id","jqXHR","textStatus","errorThrown","parse","responseText","ChartBar","textSizeScalar","strokeScalar","bars","order","total","highestValue","bar","barPercentages","ReactDOMServer","tooltipText","tooltipElement","get","setAttribute","pdfDim","render","axisLineWidth","xAxis","barPadding","barWidth","Line","stroke","strokeWidth","points","color1","color2","percentage","hex","r","g","b","spendSegment","Text","fontFamily","align","offsetX","Rect","onMouseEnter","barTitle","newText","metricsEnabled","metricKey","Formatter","GetFormatter","metricValue","tooltip","onMouseLeave","ChartGoal","projectedStrokeScalar","currentStrokeScalar","metricNameTextSizeScalar","currentTextSizeScalar","projectedTextSizeScalar","goalTextSizeScalar","currentToGoalAngle","goal","projectedToGoalAngle","projected","goodCurrentColor","goodProjectedColor","badCurrentColor","badProjectedColor","unlockedCurrentColor","goalLocked","negative","currentColor","projectedColor","formatter","formattedCurrent","formattedProjected","formattedGoal","wOrH","projectedStrokeWidth","currentStrokeWidth","radius","hW","hH","Circle","Shape","sceneFunc","context","shape","beginPath","font","fillStyle","fillText","from","angle","to","Arc","innerRadius","outerRadius","lineCap","lineJoin","rotation","ChartLine","expanded","TickFormatter","tickFormatter","yAxis","xPadding","yPadding","xTickSpace","yTickSpace","hTickWidth","pointRadius","thisAndLastYearsData","currentYearData","concat","previousYearData","max","stepY","yTicks","currentYearPoints","previousYearPoints","yAxisUsed","firstTickY","wrap","fontStyle","tick","currentYear","previousYear","changeColor","mapUrl","ChartLocation","svgRef","svg","statePercentages","sumOfAllStateSpend","reduce","accumlulator","child","secondaryChild","statePercentage","scaledStatePercentage","stateColor","tooltipMsg","siblings","on","ref","urlOrigin","afterInjection","err","setupSvg","beforeInjection","colors","ChartPie","slices","slicePercentages","previousAccumulation","some","s","sliceAngle","startAngle","textYPadding","spaceTaken","config","sliceTitle","ResizeableStage","container","setWidth","setHeight","setTimeout","offsetWidth","offsetHeight","ResizeObserver","observe","height1","Stage","Layer","ResizeableStageLine","AlertsGroup","service","sendUncheckedValue","defaultChecked","scripts","static","options","option","scriptVariables","ConfigTabs","accountConfigPath","seoConfigPath","ppcConfigPath","selectedTab","enabledServices","opacity","seo","allMetricData","allMetrics","ConfigureGoalsModal","btnColor","metricList","endDate","yearsDiff","diff","yearsArray","empty","reverse","whiteSpace","selectedDashboardId","dialogClassName","setSelectedDashboardId","dashboards","dashboard","configure","dashboardId","selectedDashboard","setSelectedDashboard","metric","checkedMetrics","goalConfig","handleMetricCheck","selectedYear","confirm","savedCheckedMetrics","newDashboards","goals","metricsByDashboard","defaults","accountType","goalsAndProjections","setCheckedMetrics","setDashboards","onboarding","submitForm","CurrencySelector","currencies","selectedCurrency","nameAttribute","setSelectedCurrency","currency","symbol","icons","search","social","video","DashboardBuilder","sectionList","dashboardOrder","setDashboardOrder","defaultSectionOrder","sectionOrder","setSectionOrder","onDragEnd","result","destination","source","draggableId","droppableId","newOrder","newDashboardOrder","setDashboard","newDashboard","currentDashboard","provided","droppableProps","innerRef","sectionData","metricData","configData","defaultMetrics","campaignGroups","subservice","campaignGroup","campaignGroupName","shortened","snakeCase","performanceByChannel","searchSection","ppcSection","socialSection","videoSection","displaySection","seoSection","subServiceDashboards","handleSrc","boxHandle","DashboardBuilderSection","isChecked","setIsChecked","clientDashboardOrder","setClientDashboardOrder","changeHelper","disableHelper","uniqueMetrics","Set","flat","campaign_group_order","landing_page_group_order","showConfig","setShowConfig","arrowClass","fieldIds","resetToDefault","metrics_data","draggableProps","dragHandleProps","in","metricCanBeBuilt","hoverText","GoalsTable","calculatorLarge","calculatedMetric","monthsShort","newGoals","setGoals","step","preventDefault","thisMonth","metricCalculation","ManualDataPull","isEnabled","setIsEnabled","searchConsoleSelected","setSearchConsoleSelected","setOpen","renderTooltip","inputRef","warningDisplay","setWarningDisplay","calendarForm","defaultDate","setStartDate","calendarRef","subtract","autoComplete","dateFormat","fourteenMonthsAgo","isBefore","popperProps","positionFixed","platforms","isAdmin","shopify_token","toDate","is","attr","click","onClose","cursor","xmlns","viewBox","fillRule","d","autoFocus","showSavePrompt","setShowSavePrompt","showGoalWarning","setShowGoalWarning","targetLinkId","setTargetLinkId","dashboardOrderOrig","setDashboardOrderOrig","dbTemp","each","pageHtmlOrig","serialize","pageHtmlSnap","shouldShowGoalWarning","showWarning","URL","searchParams","shouldStartDataPull","dashboardOrderTemp","savePrompt","targetLink","linkType","origin","updateParams","page","routeToTargetLink","set","pathname","appendTo","goalWarning","dataPullSave","userIsAdmin","class","paddingBot","AccountConfig","setTabLocation","isPpcEnabled","setIsPpcEnabled","isSeoEnabled","servicePicker","enabled_services","encType","Basic","defaultLogo","fileName","setFileName","imageURL","setImageURL","maxLength","client_company","lg","account_type","legal_company_name","street_address","unit_building_number","city","xl","state_province","postal_code","country","files","createObjectURL","ClientUsers","selectedUsers","setSelectedUsers","setClientUsers","newUsers","setNewUsers","hiddenFields","firstName","lastName","accountAccessIds","addNewUser","newClientUsers","selectedAccountId","modalHeader","fieldsForArray","bigAvatars","CreateNewUser","errorCheck","nextPage","first_name","last_name","employeeType","fNameError","lNameError","emailError","isError","errors","clientId","checkAll","visibleClients","onSubmit","handleSubmit","createUserPath","pathMethod","change","handleNext","backPage","accessAll","htmlFor","toggleAccess","InvoiceRecipients","billing_config","invoice_recipients","invoiceRecipients","setInvoiceRecipients","invoiceRecipient","uuidv4","newInvoices","PointsOfContact","initialDate","group","ppc_start_date","seo_start_date","labelCheck","white_label_service","checkLabel","setCheckLabel","utcOffset","setPpcWhiteLabelService","setSeoWhiteLabelService","seo_points_of_contact","ppc_points_of_contact","setServiceAccount","setSeoPointsOfContact","setPpcPointsOfContact","setSeoAccountLeads","setSeoAccountSupports","seodot","ppcdot","disableddot","Services","setIsSeoEnabled","Agreement","ppcFeeStructure","ppcFees","flat_fee","over_ad_spend","percentage_fee","flat_fee_enabled","percentage_fee_enabled","percentage_fee_total_over","ppcFeesStructure","setPPCFeesStructureDetail","amount","status","ppcFeesDetail","setPPCFeesDetail","handleChange","newArray","customClass","detail","flatFeeEnabled","percentageEnabled","greyout1","greyout2","marginRight","remain","fee","ppcFeeEnabled","greyout","enable","newSEOFeeEnabled","handleFeeChangeEnable","frequency","billingConfig","setBillingConfig","uniqueFee","setUniqueFee","feeDetail","serviceEnabled","setServiceEnabled","newOverallSpend","newFlatFeeEnabled","newPercentageFeeEnabled","newFields","handleDeleteFee","arrayForChange","PpcSupportingRoles","serviceName","accountLeads","accountSupports","validator","setServiceAccountLeads","setServiceAccountSupports","SEO","seoFeeStructure","seoFees","seoFeesStructure","setSEOFeesStructureDetail","seoFeesDetail","setSEOFeesDetail","seoFeeEnabled","SideBox","Team","teamAccess","TeamBox","thumbnail","Youtube","Shopify","SEMRush","adminAccessCheck","standardAccessCheck","semAccessCheck","dataFeedAccessCheck","checkMain","collaborateAccessCheck","editAccessCheck","readAndAnalyzeAccessCheck","manageUsersCheck","semSetupCheck","setSemSetupCheck","mainCheck","setMainCheck","check1","setCheck1","check2","setCheck2","controlid","Details","additionalWebsites","primarySite","setPrimarySite","additionalWebs","setAdditionalWebs","setPlatform","shopify_url","shopifyUrl","setShopifyUrl","shopifyIcon","authenticateButton","paramsObject","xhr","permission_url","setShopifyButton","resetButton","myObject","client_account_id","shopifyButton","renderAdditionalWebs","handleOnChange","newitem","development_capabilities","creative_capabilities","Permissions","customPermissions","setCustomPermissions","required","webName","newPermissions","Website","AccountIdBox","platformData","platformEnabled","setPlatformEnabled","accountids","tooltipMessage","example","platformId","fieldName","accountId","triangle","invisTriangle","boxGrip","CampaignGroup","object","and","or","not_contains","noAnd","noOr","containsAnd","containsOr","platformType","groupName","overflowX","conversion_objective","conversion_actions_enabled","blueTriangle","CampaignGroups","campaignGroupsInitial","conversion_actions","setCampaignGroups","containsPreviewModifier","setContainsPreviewModifier","notContainsPreviewModifier","setNotContainsPreviewModifier","showAlert1","setShowAlert1","showAlert2","setShowAlert2","containsInput","setContainsInput","notContainsInput","setNotContainsInput","containsTerms","setContainsTerms","notContainsTerms","setNotContainsTerms","addContains","addNotContains","addItem","tempValue","tempContainsTerms","tempNotContainsTerms","names","campaignGroupsNames","setCampaignGroupsNames","currentSection","campaignGroupsOrder","handleEditBox","itemId","newName","term","conversionEnabled","conversionActions","customConversions","conversionObjective","tiktokConversionObjective","groupContainsModifier","groupNotContainsModifier","newCampaignGroups","newContainsTerms","newNotContainsTerms","newItem","tiktok_conversion_objective","custom_conversions","allCampaignGroups","handleDeleteBox","deleteState","groupId","handleAddBox","conversionActionsEnabled","newItemId","containsWords","notContainsWords","isArray","words","conversion","getIndex","col","flexWrap","ConfigureCampaignGroup","showBox","setShowBox","clearFields","getElementById","testString","setTestString","testStringMatches","testCampaignGroupFilters","notContains","setConversionActionsEnabled","setConversionActions","setConversionObjective","setCustomConversions","setTiktokConversionObjective","errorText","setErrorText","onFocus","replaceAll","gap","facebook_conversion_objectives","objectiveName","objectiveInt","tiktok_conversion_objectives","alt","cg","conversionActionsLabels","toArray","conversionActionsIds","customConversionsLabels","customConversionsIds","errorsPresent","ConversionActionIds","targetIndex","newActions","newAction","v4","conversionAction","EditCampaignGroup","edit","notContainsAnd","notContainsOr","Inflation","csvUploadRef","lodashClonedeep","setSelectedPlatform","yieldMetrics","daily_yields","inflation","setInflation","accept","fileInput","yieldTable","reader","FileReader","extension","pop","processCsv","file","yields","tableColumns","first","currentRow","currentColumn","newInflation","readAsText","onload","uploadCsv","refs","copyInflationArray","visability","tableIndex","blank","day","PPCConfig","ppcPulling","ppc_section","searchPulling","socialPulling","displayPulling","videoPulling","ppcRecalculating","searchRecalculating","socialRecalculating","displayRecalculating","videoRecalculating","showPpcErrors","showSearchErrors","showSocialErrors","showDisplayErrors","showVideoErrors","pullInProgress","recalcInProgress","current_user","displayErrors","errorCounts","uniq","errorMessage","dismissDataPullErrors","closest","fadeOut","user_is_admin","selectedPage","ScriptBoxes","excludeNbInShoppingKeywords","setExcludeNbInShoppingKeywords","youtubeChannelExcluderData","setYoutubeChannelExcluderData","handleScriptPropertyInput","currentData","updateMethod","script","newScripts","setScripts","checkValidation","columnGap","kwNum","newKeywords","remainingKeywords","deleteKeyword","newKey","handleAddKeyword","textDecoration","controlId","All","Dashboard","dashboard_order","ppcDashboard","searchEnabled","socialEnabled","videoEnabled","displayEnabled","setPpcDashboard","Goals","metrics","goalChangePercent","setGoalChangePercent","allOrBlank","setAllOrBlank","dashboardsInitial","setSelectedYear","ppc_cc_data","alignItems","selectedId","percentChange","allCcData","datum","dashIndex","ccData","newDate","newMonth","newyear","goalShortcutMetrics","metricCheckbox","metricCamel","metricSnake","historical","newValue","round","handlePullMetric","check","newCheckedMetrics","dbIndex","yearIndex","visible","IdsData","base_currency","setBaseCurrency","display_currency","setDisplayCurrency","shopify_revenue_type","data_pull_enabled","shopify_country_filter","Display","google_ads_id","platform_data","show_scripts","displayScripts","displayScriptsVar","setDisplayScripts","setScriptsVar","setDisplayScriptsVar","script_variables","subs","initialDashboards","displayDashboard","dash","setDisplayDashboard","display_cc_data","Scripts","exclaimTriangle","Search","searchScripts","searchScriptsVar","setSearchScripts","setSearchScriptsVar","searchDashboard","setSearchDashboard","search_cc_data","Social","socialScripts","socialScriptsVar","setSocialScripts","setSocialScriptsVar","socialDashboard","setSocialDashboard","social_cc_data","CustomConversions","newConversions","pull_campaign_name_only","Video","videoScripts","videoScriptsVar","setVideoScripts","setVideoScriptsVar","videoDashboard","setVideoDashboard","video_cc_data","SEOConfig","seoPulling","seoRecalculating","showErrors","data_pull_errors","keywordGroups","keyword_groups","seoScripts","seoScriptsVar","setSeoScripts","setSeoScriptsVar","seoDashboard","setSeoDashboard","seo_cc_data","GoogleAnalyticsGoals","customGoals","setCustomGoals","customGoalsEnabled","setCustomGoalsEnabled","accountLabels","analyticsAccounts","selectedAccount","setSelectedAccount","targetKey","word","goalData","goalNumber","GoogleAnalyticsIds","googleAnalyticsIds","setGoogleAnalyticsIds","googleAnalyticsEnabled","setGoogleAnalyticsEnabled","ga4Date","handleIdChange","newIds","newId","firstImg","secondImg","segmentImg","googleAnalyticsId","IDs","customAnalyticsGoals","custom_analytics_goals","customAnalyticsGoalsEnabled","custom_analytics_goals_enabled","checkRef","ga4_date","websites","dynamic","domain_property","RootDomains","rootDomains","setRootDomains","rootDomain","SemrushIds","semrushIds","setSemrushIds","semrushEnabled","setSemrushEnabled","projectIdImg","semrushId","newRow","KeywordBox","kgGroupId","setConditions","handleAddCondition","newCondition","newKeywordGroups","setKeywordGroups","handleDelete","justifyItems","alignItem","newConditions","KeywordGroups","keywords","frontID","keywordGroupsOrder","keywordId","removeKeyword","newGroup","direction","keyword","LandingPage","lpGroup","lpGroups","lpGroupId","newLpGroups","newSectionOrder","setLpGroups","conditionsLength","conditionHtml","LandingPages","lpGroupOrder","originalGroupIds","setLandingPageGroups","newGroups","ClientAccountStatus","activeClients","deactivatedClients","confettiTrigger","newActiveClients","c","active","newDeactivatedClients","deleteClient","client_company_id","successMsg","failureMsg","activateMsg","sortClients","failure","changeActiveStatus","created_at","current_user_is_admin","confirmDeleteClient","spread","startVelocity","elementCount","dragFriction","duration","stagger","perspective","BlueIndentedSection","btn","ppcDash","borderBottom","MetricFormatter","GreenIndentedSection","KPIMetricBlock","goodOrBadText","goodOrBadBg","KeywordBlock","yyText","KeywordImprovedDeclinedBlock","improved","declined","KeywordTable","sortBy","keyword_sort","sortOrderAsc","keyword_sort_order_asc","sortedKeywords","by","initial","kwCopy","tempSortOrder","start_date_ranking","parseFloat","end_date_ranking","ranking_difference","cpc","volume","difficulty","sortKeywords","sortUpHtml","sortDownHtml","pdf","user_is_employee","diffBackground","serp_features","serp_feature","tag","string","ranking_page","getTickProps","oldValue","roundTo","decimal","YY","YY0","Sessions","Impressions","PhoneCalls","SearchVisibility","OrganicTraffic","Clicks","Revenue","BounceRate","ROAS","AOV","CPA","CPC","CVR","CTR","Conversions","Backlinks","DefaultTick","tickProps","MonetaryTick","convertedValue","currencyConverter","CalculatedTick","CalculatedMonetaryTick","NoData","indentClass","PPCDashboard","p","shared","configUrl","exportButton","changeSection","dispatchEvent","Event","searchDashboards","socialDashboards","displayDashboards","videoDashboards","platformCount","allPpcEnabled","ageKeyOrder","dayKeyOrder","hourKeyOrder","PPCDashboardDisplay","cc_data","renderArray","dashboardTableOrder","metricShortened","getNegative","getGoalLocked","metricTitles","groupOrder","group_id","svgList","google","microsoft","transform","bing","facebook","rx","tiktok","all","clipRule","allIcon","googleIcon","microsoftIcon","facebookIcon","allPlatformIcon","tiktokIcon","client_type","dashboardsEnable","sum","capitalized","iconGraphic","handlePlatform","dashboardSection","generateDashboardSection","userIsEmployee","PPCDashboardOverall","channels","channel","metricNames","tempMetricNames","channelName","PPCDashboardSearch","PPCDashboardSocial","PPCDashboardVideo","PPCSummary","client_list","metric_list","overall_metrics","search_metrics","social_metrics","display_metrics","video_metrics","PPCSummaryDisplay","activeTable","firstKey","leadgenList","leadgenClients","ecommerceList","ecommerceClients","totals","leadgen","ecommerce","mValue","changeTable","display_name","programmatic_name","Infinity","PPCSummaryOverall","PPCSummarySearch","PPCSummarySocial","PPCSummaryVideo","PdfKPIMetricBlock","PdfKeywordRow","PdfKeywordTable","setSortBy","setSortOrderAsc","setSortedKeywords","SEODashboard","landingPageGroup","keywordGroupOrder","keyword_groups_order","keywordGroup","new","lost","organizationName","organization_name","SEOSummary","this_month","borderTop","ServiceDisabled","topText","leftBullets","rightBullets","btnClass","bullet","primaryKpiCharts","primaryKpiTables","allKpisVsPreviousYear","landingPageBreakdown","backlinks","keywordSummary","keywordRankings","traffic","conversions","revenue","cvr","aov","gscClicks","gscImpressions","searchVisibility","topThreeKeywords","topThreeKeywordsPercentage","topTenKeywords","topTenKeywordsPercentage","topTwentyKeywords","topTwentyKeywordsPercentage","bounceRate","engagedSessions","averagePosition","totalBacklinks","referringIps","referringDomains","authorityScore","keywordsImproved","keywordsDeclined","keywordName","keywordSerpFeatures","keywordPreviousPosition","keywordCurrentPosition","keywordDifference","keywordCostPerConversion","keywordSearchVolume","keywordLabel","keywordDifficulty","keywordUrl","mandatory","spendAllocation","shopifyRevenue","shopifyRoas","shopifySubtotalRevenue","shopifySubtotalRoas","spend","impressions","viewableImpressions","views","cpv","viewRate","viewCtr","viewableCtr","clicks","ctr","phoneCalls","inStoreVisits","clickConversions","viewConversions","totalConversions","clickCpa","totalCpa","clickRevenue","viewRevenue","totalRevenue","clickRoas","totalRoas","totalAov","impressionsTopRate","impressionsAbsTopRate","searchImpressionsShare","clickAov","addToCarts","impressionToCartRate","checkoutsStarted","cartToConversionRate","socialViewRate","cpsv","videoCvr","AccountConfigurationIntro","route","useContext","RouterContext","getNextPage","onboarding_progress","localStorage","setItem","pageLocator","smaller","validated","btnText","invalidText","newObj","BackButton","history","useHistory","tempRoute","navigateTo","BrandLogo","setValidated","setBase64Img","base64Img","onloadend","readAsDataURL","AllCampaignGroups","displayCampaignGroups","searchCampaignGroups","socialCampaignGroups","videoCampaignGroups","CompanyLegalInformation","checkValidity","legalInfo","legalChange","CompanyName","setCompanyName","CompanyType","eCommerce","leadGen","lead","setEcommerce","setLead","changeOption","setAccountType","Complete","setConfettiTrigger","small","medium","large","ppcEnabled","DatapulseAccess","setFirstAlert","setLastAlert","showUsers","addNewPerson","removePerson","changePerson","box","pattern","dpAccessBox","AllPPCGoals","validationInit","setValidatation","isEmpty","DisplayGoals","dashboardsInit","SEOGoals","SearchGoals","SocialGoals","VideoGoals","GoogleAnalyticsGoalTracking","labels","selectedLabel","setSelectedLabel","setupBox","newObject","customAnalyticGoals","setCustomAnalyticaGoals","customAnalyticGoalsEnabled","setCustomAnalyticaGoalsEnabled","row","routes","validatedInit","array","validation","InflationForm","platformKey","Intro1","welcome","ipad","chat","handleDeleteRecipient","handleAddRecipient","form","newRecipients","KeywordGroupsOB","exclaimCircle","LandingPagesOB","NextButton","prev","trigger","NotComplete","caution","mobileHideCaution","Onboarding","routerHistory","setRouterHistory","onboardingComplete","setOnboardingComplete","setSearchEnabled","setDisplayEnabled","setSocialEnabled","setVideoEnabled","seoEnabled","setSeoEnabled","webPlatform","setWebPlatform","setLegalInfo","firstAlert","lastAlert","poc","setPoc","setFirstName","setLastName","setEmail","phone","setPhone","job","setJob","personBoxes","setPersonBoxes","setShowUsers","globalPermission","setGlobalPermission","isPermissionsEnabled","setIsPermissionsEnabled","developmentCapabilities","setDevelopmentCapabilities","creativeCapabilities","setCreativeCapabilities","defaultTeamAccess","setTeamAccess","shopifyChannel","setShopifyChannel","domainProperty","setDomainProperty","shopifyUrlTemp","sameId","setSameId","searchGoogleAdsIds","setSearchGoogleAdsIds","displayGoogleAdsIds","setDisplayGoogleAdsIds","videoGoogleAdsIds","setVideoGoogleAdsIds","allGoogleAdsIds","setAllGoogleAdsIds","savedMccId","savedSemrushKey","facebookAdsIds","setFacebookAdsIds","tiktokAdsIds","setTiktokAdsIds","microsoftAdsIds","setMicrosoftAdsIds","facebookCustomConversions","setFacebookCustomConversions","facebookConversionObjective","setFacebookConversionObjective","pullBoxes","setPullBoxes","pull_google_data","pull_search_console_data","pull_semrush_data","shopify","pullPlatforms","setPullPlatform","newPlatforms","manualDataPull","pull_platform_data","videoInflation","displayInflation","socialInflation","searchInflation","allGoals","search_fee_structure_enabled","searchUniqueFeeEnabled","setSearchUniqueFeeEnabled","display_fee_structure_enabled","displayUniqueFeeEnabled","setDisplayUniqueFeeEnabled","social_fee_structure_enabled","socialUniqueFeeEnabled","setSocialUniqueFeeEnabled","video_fee_structure_enabled","videoUniqueFeeEnabled","setVideoUniqueFeeEnabled","seoAccountLeads","seoAccountSupports","searchAccountLeads","setSearchAccountLeads","searchAccountSupports","setSearchAccountSupports","socialAccountLeads","setSocialAccountLeads","socialAccountSupports","setSocialAccountSupports","displayAccountLeads","setDisplayAccountLeads","displayAccountSupports","setDisplayAccountSupports","videoAccountLeads","setVideoAccountLeads","videoAccountSupports","setVideoAccountSupports","seoPointsOfContact","ppcPointsOfContact","ppcWhiteLabelService","seoWhiteLabelService","ppcStartDate","setPpcStartDate","seoStartDate","setSeoStartDate","display_fee_structure","video_fee_structure","displayFeeStructure","setDisplayFeeStructure","search_fee_structure","searchFeeStructure","setSearchFeeStructure","social_fee_structure","socialFeeStructure","setSocialFeeStructure","videoFeeStructure","setVideoFeeStructure","ppc_fee_structure","setPpcFeeStructure","seoFeeStructureinitial","seo_fee_structure","setSEOFeeStructure","ppc_fees","setPpcFees","seoFeesinitial","seo_fees","setSeoFees","google_ads_search_impressions_emergency_detector","google_ads_search_disapproved_ads_detector","google_ads_search_out_of_stock_detector","google_ads_search_impressions_flux_detector","google_ads_search_clicks_flux_detector","google_ads_search_keyword_bleeder_detector","google_ads_search_url_issue_detector","google_ads_search_spend_flux_detector","google_ads_search_conversions_flux_detector","google_ads_shopping_campaign_fluctuation_detector","google_ads_shopping_product_fluctuation_detector","bing_ads_search_impressions_emergency_detector","bing_ads_search_disapproved_ads_detector","bing_ads_search_impressions_flux_detector","bing_ads_search_clicks_flux_detector","bing_ads_search_keyword_bleeder_detector","bing_ads_search_spend_flux_detector","bing_ads_search_conversions_flux_detector","min_threshold","max_threshold","threshold","facebook_ads_social_impressions_emergency_detector","facebook_ads_social_impressions_flux_detector","facebook_ads_social_spend_flux_detector","facebook_ads_social_clicks_flux_detector","facebook_ads_social_conversions_flux_detector","google_ads_display_impressions_emergency_detector","google_ads_display_disapproved_ads_detector","google_ads_display_out_of_stock_detector","google_ads_display_impressions_flux_detector","google_ads_display_clicks_flux_detector","google_ads_display_keyword_bleeder_detector","google_ads_display_url_issue_detector","google_ads_display_spend_flux_detector","google_ads_display_conversions_flux_detector","google_ads_video_impressions_emergency_detector","google_ads_video_disapproved_ads_detector","google_ads_video_out_of_stock_detector","google_ads_video_impressions_flux_detector","google_ads_video_clicks_flux_detector","google_ads_video_keyword_bleeder_detector","google_ads_video_url_issue_detector","google_ads_video_spend_flux_detector","google_ads_video_conversions_flux_detector","google_analytics_seo_traffic_fluctuation_detector","allPages","teamAccessChoices","setTeamAccessChoices","teamAccessNav","currentPage","setPercent","totalPages","lastPercent","percent","complete","completed","floor","initialKeywordGroups","landingPageGroups","semrushInitialIds","semRushIds","setSemRushIds","seoSectionList","default_dash_used","seoDefault","setSeoDefault","seoInitialDashboards","acc","ppcSectionList","ppcDefault","setPpcDefault","ppcInitialDashboards","displaySectionList","displayDefault","setDisplayDefault","displayInitialDashboards","searchSectionList","searchDefault","setSearchDefault","searchInitialDashboards","socialSectionList","socialDefault","setSocialDefault","socialInitialDashboards","videoSectionList","videoDefault","setVideoDefault","videoInitialDashboards","submitUrl","seoDashBoardData","ppcDashboardData","searchDashboardData","displayDashboardData","videoDashboardData","socialDashboardData","current_page","facebook_custom_conversions","facebook_conversion_objective","org_id","seo_enabled","video_enabled","social_enabled","display_enabled","search_enabled","primary","additional","shopify_channel","google_analytics_ids","search_google_ads_id","display_google_ads_id","video_google_ads_id","social_facebook_ads_id","social_tiktok_ads_id","search_microsoft_ads_id","authenticity_token","current_onboarding_page","supporting_roles","account_support","points_of_contact","new_users","semrush_ids","dashboard_builder","seo_default","ppc_default","search_default","display_default","video_default","social_default","search_scripts","search_script_variables","social_scripts","social_script_variables","display_scripts","display_script_variables","video_scripts","video_script_variables","seo_scripts","seo_script_variables","basicRoutes","setSeo","handleSelect","clientAccountId","addRow","updated","newPoc","account_access_ids","is_primary_point_of_contact","showUser","selection","newPeople","personIndex","newShowUsers","newShowUsersIndex","newSelectedUsers","newSelectedUsersIndex","phoneChange","permissionHandler","setGoogleAdsIds","setSeoFeeStructure","Provider","onboardingProgress","ppcServices","setSearch","setSocial","setVideo","setDisplay","exact","path","component","routeProps","PPCConfigurationIntro","PPCDashboardCustomization","showBoxes","setShowBoxes","PPCDashboardCustomizationAll","PPCServiceAgreements","searchValidation","setSearchValidation","socialValidation","setSocialValidation","displayValidation","setDisplayValidation","videoValidation","setVideoValidation","setValidation","removeRow","selector","PersonBox","DataPull","ppcPullboxes","pullUpdateHelper","exist","ProgressBar","leftBar","midBar","rightBar","allComplete","setAllComplete","generalComplete","setGeneralComplete","teamAccessComplete","setTeamAccessComplete","serviceComplete","setServiceComplete","ppcConfigComplete","setPpcConfigComplete","seoConfigComplete","setSeoConfigComplete","generalUrls","teamUrls","serviceUrls","ppcUrls","seoUrls","serviceArray","setServiceArray","seoArray","setSeoArray","ppcArray","setPpcArray","generalArray","teamArray","isUndefined","tempServiceArray","tempPpcArray","tempSeoArray","temp","every","SEMRushSetup","accessChecked","addNewRow","SEOConfigurationIntro","SEOServiceAgreements","seoFeeArray","exclaimTriangleMobile","amount1","amount2","resetScripts","ScrollToTop","withRouter","SeoAlerts","SeoDataPull","seoPullboxes","ServiceAgreementsIntro","seoA","seoI","ppcA","ppcI","searchI","searchA","displayA","displayI","socialI","socialA","videoI","videoA","subServices","setPpc","services","pages","pageNames","incompletePageNames","incompletePageFunc","SkipButton","remainingPages","SocialConversions","DataFeedWatchInstall","FacebookAdsAccess","userGrantAccess","setUserGrantAccess","frontId","rows","newFacebookAdsIds","GoogleAdsAccess","idProvided","setIdProvided","accessGranted","setAccessGranted","addDashes","cleanId","newGoogleAdsIds","newGoogleAdsIds1","newGoogleAdsIds2","newGoogleAdsIds3","ads","GoogleAnalyticsAccess","GoogleMerchantAccess","GoogleMyBusinessAccess","GoogleSearchConsoleAccess","tipImage","domainChecked","MicrosoftAdsAccess","ShopifyAccess","radio","setRadio","urlProvided","setUrlProvided","ShopifyAuthenticate","urlCopied","setUrlCopied","getFullShopifyUrl","copyButton","authUrl","navigator","clipboard","writeText","TeamAccessIntro","nextUrl","completePages","incompletePages","currentValue","completePagesNames","incompletePagesNames","inCompletepageNames","TiktokAdsAccess","newTiktokAdsIds","YoutubeAccess","elem","innerHTML","TrackSpecificACtionIds","lengh","searchActive","setSearchActive","displayActive","setDisplayActive","videoActive","setVideoActive","displayHelper","conversionActionBox","sectionKey","setRows","changeRow","unresolvedPages","currentIndex","DeleteOrgModal","showDeleteModal","setShowDeleteModal","deleteTarget","setDeleteLocked","deleteLocked","deleteOrg","OrgStatus","showCreateModal","setShowCreateModal","setDeleteTarget","orgs","org","confirmDelete","Customizations","OrgInfo","OrgLogo","upload","zIndexFirst","setZIndexFirst","show2","setShow2","toggledUsers","setToggledUsers","org_users","owner","unSelectedUsers","setVisibleUsers","newOwnerId","setNewOwnerId","handleClose2","capturedId","toggledUsersList","organization_type","isOwner","isPrimaryOrg","matchedUsers","toggled","handleOwnershipTransfer","handleOrgDelete","OrgPicker","orgPic","dpLogo","isClickable","organizations","god_or_admin","orgName","selected_org","selectedOrg","OrgPickerModal","selfShow","setSelfShow","centered","force_selection","selectedOrgId","Organizations","current_user_is_god","is_primary_org","user_id","Users","filteredInput","setFilteredInput","roles","formSubmitUrl","tempName","tempEmail","tempRole","tempDepartment","tempRoleFormatted","user_org_detail_id","tempDepartmentFormatted","sectionNames","self","m","pageNumber","hideLogo","sectionIndex","MonthlyPpcSection","campaignGroupCase","date_formatted","MonthlyReportIntro","MonthlyReportOutro","MonthlyReportPdf","checkPpcSections","dashboardOrders","obj","defaultMetricsData","dbOrd","unshift","seoDashboardOrder","seoPages","ppcPages","keepingTrack","pageHeight","elementsPerRow","elementHeight","metricIndex","ranking","goalPage","shift","MonthlySeoReport","MonthlySeoSection","landingPageCase","keywordCase","seoGoals","PDFPage","PPCPdfDisplay","goalChartDim","lineChartDim","pieChartDim","goalsPerRow","chartsPerRow","tablesPerRow","kpiBlocksPerRow","metricsPerTable","goalRowHeight","chartRowHeight","tableRowHeight","groupTableRowHeight","kpiBlockRowHeight","pieRowHeight","barRowHeight","mapRowHeight","campaignName","url_origin","generatePdfSection","tempIndex","campaignIndex","copyOfCampaignMetric","duplicateCampaign","allocationIndex","allocationMetrics","campaignGroupIndex","maxPageHeight","generatePdfPage","PPCPdfOverall","PPCPdfSearch","PPCPdfSocial","PPCPdfSummaryDisplay","displayMetrics","getPageNumber","PPCPdfSummaryOverall","searchMetrics","PPCPdfSummarySearch","PPCPdfSummarySocial","socialMetrics","PPCPdfSummaryVideo","videoMetrics","PPCPdfVideo","SEOPdf","keywordRankingRowHeight","pageName","landingPage","landingPageIndex","copyOfLandingPageMetric","duplicateLandingPage","keywordIndex","copyOfKeywordMetric","duplicateKeywordGroup","firstLandingPageIndex","firstKeywordIndex","SEOPdfSummary","PacingContext","PpcPacing","selected_account","ppc_pacing_metrics","submit","overall","metricsData","availableMetrics","available_metrics","default_metrics","pacingOrder","pacing_order","dateRanges","date_ranges","overall_platforms","search_platforms","social_platforms","display_platforms","video_platforms","pacingContext","summary","daily","Overall","DailyView","allPlatforms","redOrGreen","integer","selectedMetrics","setSelectedMetrics","selectedCampaign","setSelectedCampaign","table_view_preference","yoy","setYoy","columnCount","campaignCapitalized","serviceCapitalized","platformArray","platformSet","uniquePlatforms","campCapitalized","updatedList","metricHelper","last_30_days","evenOrOdd","beforeDate","formatDate","number","EPSILON","overallAmount","SummaryView","availableFrequency","selected_frequency","selectedFrequency","setSelectedFrequency","frequencyHelper","dashboardUrl","shop","teamUrl","i18n","enTranslations","fullWidth","sectioned","variation","shopify_install","breadcrumbs","last_updated","UserAccess","userInfo","localeCompare","organization_id","searchString","users_array","u","permissions","deleteUser","tableName","UserAccessTable","UserAccessTableButtons","confirmRemove","UserNewForm","clientButtonClick","employeeButtonClick","default","CustomAvatar","christmasSpecial","fallSpecial","springSpecial","summerSpecial","winterSpecial","halloweenSpecial","special","CustomDropdown","currentTab","upper","setCurrentSection","currentCampaign","setCurrentCampaign","campaignSetter","goalSetter","performanceSetter","clickOutsideConfig","handleClickOutside","onClickOutside","CustomFormCheck","inputElement","CustomSwitch","CustomTooltip","DataPullSavePopUp","DayPicker","yyyymmdd","minDate","convertUTCToLocalDate","changeDate","placeholderText","blur","DefaultAvatar","firstLetter","secondLetter","secondInitial","finalModifier","charCodeAt","optionsRatio","chosenIndex","isInteger","String","firstInitial","chooseColor","alertCounter","borderRadius","xmlnsXlink","dy","textAnchor","dominantBaseline","LeftIndent","Metric","noConvert","finalValue","MonthPicker","showMonthYearPicker","NumberDropdown","ProfileDropdown","logout","orgLogo","hieght","userOrgDetail","user_org_details","getRoleTitle","rel","logout_path","quotes","normalQuotes","specialQuotes","random","StateOptions","humanizedRole","to_lower","firstCap","UserSelector","fieldsFor","btnDisabled","big_avatar","unselectUser","decimalPlaces","countDecimals","allRates","valueOf","ppcOrderArray","seoOrderArray","currencyObj","seoMetric","inflated","lockDate","endOf","lessIsGood","canBuild","subGroupSection","passes","newurl","pushState","HOTKEYS","LIST_TYPES","toggleMark","editor","isMarkActive","Editor","isBlockActive","n","marks","Element","attributes","Leaf","leaf","bold","italic","underline","BlockButton","useSlate","Button","onMouseDown","isActive","isList","Transforms","toggleBlock","Icon","MarkButton","initialValue","setValue","renderElement","useCallback","renderLeaf","useMemo","withHistory","withReact","createEditor","setEmailBody","operations","op","Toolbar","spellCheck","onKeyDown","hotkey","isHotkey","WriteMail","emailBody","emailFrom","setEmailFrom","emailTo","setEmailTo","subject","setSubject","node","escapeHtml","reversed","cx","css","EditorValue","textLines","nodes","Instruction","Menu","Portal","ReactDOM"],"sourceRoot":""}