{"version":3,"file":"js/982-a7e06f9abc2769cd781f.js","mappings":"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Aa,eAEf,CACErC,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,kBAInB,CACErC,KAAM,wCACNmP,MAAO,sBACPwK,KAAM,+FAIZ,CACEua,aAAc,kBACdhT,OAAQ,CACN,CACElhB,KAAM,oDACNmP,MAAO,yCACPwK,KAAM,0IACN4a,QAAS,CACP,CACEv0B,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,eAEf,CACErC,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,kBAInB,CACErC,KAAM,mDACNmP,MAAO,wCACPwK,KAAM,iIAIZ,CACEua,aAAc,gBACdhT,OAAQ,CACN,CACElhB,KAAM,iDACNmP,MAAO,iCACPwK,KAAM,iKAER,CACE3Z,KAAM,2CACNmP,MAAO,2BACPwK,KAAM,2EAER,CACE3Z,KAAM,4CACNmP,MAAO,4BACPwK,KAAM,8FACN4a,QAAS,CACP,CACEv0B,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,eAEf,CACErC,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,kBAInB,CACErC,KAAM,uCACNmP,MAAO,uBACPwK,KAAM,yFACN4a,QAAS,CACP,CACEv0B,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,eAEf,CACErC,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,kBAInB,CACErC,KAAM,2CACNmP,MAAO,2BACPwK,KAAM,yGACN4a,QAAS,CACP,CACEv0B,KAAM,YACNmP,MAAO,mBACP9M,YAAa,kBAInB,CACErC,KAAM,sCACNmP,MAAO,sBACPwK,KAAM,wFACN4a,QAAS,CACP,CACEv0B,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,eAEf,CACErC,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,kBAInB,CACErC,KAAM,4CACNmP,MAAO,4BACPwK,KAAM,8FACN4a,QAAS,CACP,CACEv0B,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,eAEf,CACErC,KAAM,gBACNmP,MAAO,iBACP9M,YAAa,kBAInB,CACErC,KAAM,gDACNmP,MAAO,gCACPwK,KAAM,kGACN4a,QAAS,CACP,CACEv0B,KAAM,gBACNmP,MAAO,i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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/alerts/lite/LiteAlerts.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/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/lite/Access.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/AccountIds.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/AccountSettingsButton.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/AccountSettingsModal.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/AccountUsers.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/AddUser.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/Basic.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/DataPulseScripts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/GoogleAdsCampaignFilters.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/GoogleAdsCustomConversions.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/GoogleAdsScripts.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/Inflation.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/LastDataPullStatus.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/LiteCurrencySelector.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/MetaAdsCustomConversions.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/Scripts.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/dashboards/lite/AmazonDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/BillingDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/BillingDashboardTable.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/ChartHelpModal.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/DashboardOptions.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/EmailDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/LiteBuyBoxTable.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/LiteKeywordTable.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/LiteLineChart.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/LiteMetricTable.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/LiteRefresh.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/ObjectivePicker.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/OrganicSearchDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/OrganicSocialDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/OtherDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/OverviewDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/PpcPortfolioDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/ProgressBar.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/SearchDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/SocialDashboard.jsx","webpack://dp-zoom/./app/javascript/components/dashboards/lite/YearPicker.jsx","webpack://dp-zoom/./app/javascript/components/data/allMetrics.js","webpack://dp-zoom/./app/javascript/components/export_reports/Reports.jsx","webpack://dp-zoom/./app/javascript/components/feedback/FeedbackForm.jsx","webpack://dp-zoom/./app/javascript/components/home/CreateFirstAccountModal.jsx","webpack://dp-zoom/./app/javascript/components/home/CreateOrg.jsx","webpack://dp-zoom/./app/javascript/components/home/JoinOrg.jsx","webpack://dp-zoom/./app/javascript/components/home/NoAccounts.jsx","webpack://dp-zoom/./app/javascript/components/home/Onboarding.jsx","webpack://dp-zoom/./app/javascript/components/home/SetUpApiAccessModal.jsx","webpack://dp-zoom/./app/javascript/components/home/WelcomeToDataPulseModal.jsx","webpack://dp-zoom/./app/javascript/components/login/RegisterAccount.jsx","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/profile/DeleteAccount.jsx","webpack://dp-zoom/./app/javascript/components/profile/ProfileDropdown.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/terms_and_conditions/TermsAndConditions.jsx","webpack://dp-zoom/./app/javascript/components/terms_and_conditions/TermsAndConditionsModal.jsx","webpack://dp-zoom/./app/javascript/components/terms_and_conditions/TermsAndConditionsModalStandalone.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/HelpModal.jsx","webpack://dp-zoom/./app/javascript/components/utils/LeftIndent.jsx","webpack://dp-zoom/./app/javascript/components/utils/LiteExportPDF.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/Pagination.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/formatMetric.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/showAlert.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/utils/usePagination.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\"./alerts/lite/LiteAlerts\": 23577,\n\t\"./alerts/lite/LiteAlerts.jsx\": 23577,\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\"./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/lite/Access\": 99353,\n\t\"./client_config/lite/Access.jsx\": 99353,\n\t\"./client_config/lite/AccountIds\": 92892,\n\t\"./client_config/lite/AccountIds.jsx\": 92892,\n\t\"./client_config/lite/AccountSettingsButton\": 8200,\n\t\"./client_config/lite/AccountSettingsButton.jsx\": 8200,\n\t\"./client_config/lite/AccountSettingsModal\": 87167,\n\t\"./client_config/lite/AccountSettingsModal.jsx\": 87167,\n\t\"./client_config/lite/AccountUsers\": 72189,\n\t\"./client_config/lite/AccountUsers.jsx\": 72189,\n\t\"./client_config/lite/AddUser\": 37948,\n\t\"./client_config/lite/AddUser.jsx\": 37948,\n\t\"./client_config/lite/Basic\": 94645,\n\t\"./client_config/lite/Basic.jsx\": 94645,\n\t\"./client_config/lite/DataPulseScripts\": 11753,\n\t\"./client_config/lite/DataPulseScripts.jsx\": 11753,\n\t\"./client_config/lite/GoogleAdsCampaignFilters\": 92008,\n\t\"./client_config/lite/GoogleAdsCampaignFilters.jsx\": 92008,\n\t\"./client_config/lite/GoogleAdsCustomConversions\": 29947,\n\t\"./client_config/lite/GoogleAdsCustomConversions.jsx\": 29947,\n\t\"./client_config/lite/GoogleAdsScripts\": 40881,\n\t\"./client_config/lite/GoogleAdsScripts.jsx\": 40881,\n\t\"./client_config/lite/Inflation\": 5142,\n\t\"./client_config/lite/Inflation.jsx\": 5142,\n\t\"./client_config/lite/LastDataPullStatus\": 71098,\n\t\"./client_config/lite/LastDataPullStatus.jsx\": 71098,\n\t\"./client_config/lite/LiteCurrencySelector\": 14553,\n\t\"./client_config/lite/LiteCurrencySelector.jsx\": 14553,\n\t\"./client_config/lite/MetaAdsCustomConversions\": 70814,\n\t\"./client_config/lite/MetaAdsCustomConversions.jsx\": 70814,\n\t\"./client_config/lite/Scripts\": 1724,\n\t\"./client_config/lite/Scripts.jsx\": 1724,\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\": 45081,\n\t\"./client_config/ppc_config/ConfigureCampaignGroup.jsx\": 45081,\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\"./dashboards/lite/AmazonDashboard\": 10717,\n\t\"./dashboards/lite/AmazonDashboard.jsx\": 10717,\n\t\"./dashboards/lite/BillingDashboard\": 50608,\n\t\"./dashboards/lite/BillingDashboard.jsx\": 50608,\n\t\"./dashboards/lite/BillingDashboardTable\": 42121,\n\t\"./dashboards/lite/BillingDashboardTable.jsx\": 42121,\n\t\"./dashboards/lite/ChartHelpModal\": 86372,\n\t\"./dashboards/lite/ChartHelpModal.jsx\": 86372,\n\t\"./dashboards/lite/DashboardOptions\": 48172,\n\t\"./dashboards/lite/DashboardOptions.jsx\": 48172,\n\t\"./dashboards/lite/EmailDashboard\": 50284,\n\t\"./dashboards/lite/EmailDashboard.jsx\": 50284,\n\t\"./dashboards/lite/LiteBuyBoxTable\": 586,\n\t\"./dashboards/lite/LiteBuyBoxTable.jsx\": 586,\n\t\"./dashboards/lite/LiteKeywordTable\": 32724,\n\t\"./dashboards/lite/LiteKeywordTable.jsx\": 32724,\n\t\"./dashboards/lite/LiteLineChart\": 17842,\n\t\"./dashboards/lite/LiteLineChart.jsx\": 17842,\n\t\"./dashboards/lite/LiteMetricTable\": 85831,\n\t\"./dashboards/lite/LiteMetricTable.jsx\": 85831,\n\t\"./dashboards/lite/LiteRefresh\": 19509,\n\t\"./dashboards/lite/LiteRefresh.jsx\": 19509,\n\t\"./dashboards/lite/ObjectivePicker\": 92685,\n\t\"./dashboards/lite/ObjectivePicker.jsx\": 92685,\n\t\"./dashboards/lite/OrganicSearchDashboard\": 4405,\n\t\"./dashboards/lite/OrganicSearchDashboard.jsx\": 4405,\n\t\"./dashboards/lite/OrganicSocialDashboard\": 60759,\n\t\"./dashboards/lite/OrganicSocialDashboard.jsx\": 60759,\n\t\"./dashboards/lite/OtherDashboard\": 88181,\n\t\"./dashboards/lite/OtherDashboard.jsx\": 88181,\n\t\"./dashboards/lite/OverviewDashboard\": 74901,\n\t\"./dashboards/lite/OverviewDashboard.jsx\": 74901,\n\t\"./dashboards/lite/PpcPortfolioDashboard\": 22658,\n\t\"./dashboards/lite/PpcPortfolioDashboard.jsx\": 22658,\n\t\"./dashboards/lite/ProgressBar\": 82799,\n\t\"./dashboards/lite/ProgressBar.jsx\": 82799,\n\t\"./dashboards/lite/SearchDashboard\": 50339,\n\t\"./dashboards/lite/SearchDashboard.jsx\": 50339,\n\t\"./dashboards/lite/SocialDashboard\": 7220,\n\t\"./dashboards/lite/SocialDashboard.jsx\": 7220,\n\t\"./dashboards/lite/YearPicker\": 52521,\n\t\"./dashboards/lite/YearPicker.jsx\": 52521,\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\"./export_reports/Reports\": 60763,\n\t\"./export_reports/Reports.jsx\": 60763,\n\t\"./feedback/FeedbackForm\": 9066,\n\t\"./feedback/FeedbackForm.jsx\": 9066,\n\t\"./home/CreateFirstAccountModal\": 15052,\n\t\"./home/CreateFirstAccountModal.jsx\": 15052,\n\t\"./home/CreateOrg\": 11565,\n\t\"./home/CreateOrg.jsx\": 11565,\n\t\"./home/JoinOrg\": 15392,\n\t\"./home/JoinOrg.jsx\": 15392,\n\t\"./home/NoAccounts\": 14488,\n\t\"./home/NoAccounts.jsx\": 14488,\n\t\"./home/Onboarding\": 14959,\n\t\"./home/Onboarding.jsx\": 14959,\n\t\"./home/SetUpApiAccessModal\": 6937,\n\t\"./home/SetUpApiAccessModal.jsx\": 6937,\n\t\"./home/WelcomeToDataPulseModal\": 36363,\n\t\"./home/WelcomeToDataPulseModal.jsx\": 36363,\n\t\"./login/RegisterAccount\": 49177,\n\t\"./login/RegisterAccount.jsx\": 49177,\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\"./profile/DeleteAccount\": 94988,\n\t\"./profile/DeleteAccount.jsx\": 94988,\n\t\"./profile/ProfileDropdown\": 30261,\n\t\"./profile/ProfileDropdown.jsx\": 30261,\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\"./terms_and_conditions/TermsAndConditions\": 77828,\n\t\"./terms_and_conditions/TermsAndConditions.jsx\": 77828,\n\t\"./terms_and_conditions/TermsAndConditionsModal\": 27531,\n\t\"./terms_and_conditions/TermsAndConditionsModal.jsx\": 27531,\n\t\"./terms_and_conditions/TermsAndConditionsModalStandalone\": 21775,\n\t\"./terms_and_conditions/TermsAndConditionsModalStandalone.jsx\": 21775,\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/HelpModal\": 54247,\n\t\"./utils/HelpModal.jsx\": 54247,\n\t\"./utils/LeftIndent\": 77538,\n\t\"./utils/LeftIndent.jsx\": 77538,\n\t\"./utils/LiteExportPDF\": 91477,\n\t\"./utils/LiteExportPDF.jsx\": 91477,\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/Pagination\": 26498,\n\t\"./utils/Pagination.jsx\": 26498,\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/formatMetric\": 45840,\n\t\"./utils/formatMetric.js\": 45840,\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/showAlert\": 66726,\n\t\"./utils/showAlert.js\": 66726,\n\t\"./utils/testCampaignGroupFilters\": 43279,\n\t\"./utils/testCampaignGroupFilters.js\": 43279,\n\t\"./utils/updateParams\": 15204,\n\t\"./utils/updateParams.js\": 15204,\n\t\"./utils/usePagination\": 47201,\n\t\"./utils/usePagination.js\": 47201,\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

    datapulse@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 } from \"react\";\nimport { Modal, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport { capitalize } from \"lodash\";\nimport showAlert from 'utils/showAlert';\n\nexport default function LiteAlerts(props) {\n let chevronDown = require(\"images/lite/icons/chevron-down.png\");\n chevronDown = ;\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [clients, setClients] = useState(props.clients);\n const [selectedClient, setSelectedClient] = useState(null);\n const [showModal, setShowModal] = useState(false);\n\n const handleViewAlerts = (client) => {\n setSelectedClient(client);\n setShowModal(true);\n };\n\n const handleResolveAllAlerts = (clientId) => {\n fetch(\"/datapulse/lite-alerts/resolve-all-alerts\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": authenticityToken,\n },\n body: JSON.stringify({ client_account_id: clientId }),\n })\n .then((response) => response.json())\n .then((data) => {\n showAlert(data.message);\n if (data.success == true) {\n setClients((prevClients) =>\n prevClients.map((client) =>\n client.id === clientId ? { ...client, alerts: [] } : client\n )\n );\n setSelectedClient((prevClient) => ({\n ...prevClient,\n alerts: [],\n }));\n }\n });\n };\n\n const handleResolveAlert = (alertId) => {\n fetch(\"/datapulse/lite-alerts/resolve-alert\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": authenticityToken,\n },\n body: JSON.stringify({ alert_id: alertId }),\n })\n .then((response) => response.json())\n .then((data) => {\n console.log(data);\n console.log(data.success == true)\n showAlert(data.message);\n if (data.success == true) {\n setClients((prevClients) =>\n prevClients.map((client) =>\n client.id === selectedClient.id\n ? {\n ...client,\n alerts: client.alerts.filter((alert) => alert.id !== alertId),\n }\n : client\n )\n );\n setSelectedClient((prevClient) => ({\n ...prevClient,\n alerts: prevClient.alerts.filter((alert) => alert.id !== alertId),\n }));\n }\n });\n };\n\n const filteredClients = clients.filter((client) =>\n client.alerts.length > 0 && client.company_name.toLowerCase().includes(searchTerm.toLowerCase())\n );\n\n const handleToggleDetails = (e) => {\n if (e.target.tagName === \"BUTTON\") return; // don't toggle details if the user clicked the resolve alert button\n const alertItem = $(e.currentTarget).closest(\".alert-item\");\n alertItem.find(\".alert-details\").slideToggle();\n alertItem.find(\".alert-toggle-icon img\").toggleClass(\"lite-chevron-down lite-chevron-up\");\n };\n\n return (\n <>\n
    \n

    Alerts

    \n
    \n
    \n

    \n Search:\n

    \n setSearchTerm(e.target.value)}\n />\n
    \n
    \n
    \n {filteredClients.length === 0 &&

    No alerts

    }\n {filteredClients.map((client) => (\n
    \n
    \n {client.company_name}\n
    \n
    \n
    {client.alerts.length}
    \n \n \n
    \n
    \n ))}\n
    \n
    \n\n {selectedClient && (\n setShowModal(false)} className=\"client-alerts-modal\">\n \n \n

    Alerts for {selectedClient.company_name}

    \n
    \n
    \n \n {selectedClient.alerts.map((alert, index) => {\n const alertCreatedAt = new Date(alert.created_at).toLocaleString(\"en-US\", { // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n return (\n
    \n
    \n

    {alert.text}

    \n
    \n \n
    \n {chevronDown}\n
    \n
    \n
    \n
    \n

    Type: {alert.alert_type}

    \n

    Created At: {alertCreatedAt}

    \n {alert.secondary_text && (\n
    \n )}\n
    \n
    \n \n )\n })}\n
    \n \n \n \n
    \n )}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Button, Col, Row, Container } from \"react-bootstrap\";\nimport { capitalize } from \"lodash-es\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport PlatformSpecific from \"./PlatformSpecific\";\n\nfunction ApiAccess(props) {\n // Simplified platform state handling\n const [platforms, setPlatforms] = useState(props.api_platforms);\n const [mccId, setMccId] = useState(props.organization.google_ads_mcc_id);\n const [showAlert, setShowAlert] = useState(false);\n\n useEffect(() => {\n const googleAds = platforms.google_ads;\n const showAlertCondition = googleAds.authenticated && (!mccId || mccId.length !== 10);\n setShowAlert(showAlertCondition);\n }, [platforms.google_ads, mccId]);\n\n\n const openAuthPage = (authUrl) => {\n window.open(authUrl, \"_blank\");\n };\n\n\n useEffect(() => {\n const checkAuthStatusForAllPlatforms = () => {\n // Loop through each platform and check the authentication status\n Object.keys(platforms).forEach((platformKey) => {\n fetch(`/datapulse/api-access/check-status?platform=${platformKey}`)\n .then((response) => response.json())\n .then((data) => {\n if (data.authenticated !== platforms[platformKey].authenticated) {\n setPlatforms((prevPlatforms) => ({\n ...prevPlatforms,\n [platformKey]: { ...prevPlatforms[platformKey], authenticated: data.authenticated },\n }));\n }\n })\n .catch((error) => console.error(`Error checking ${platformKey} auth status`, error));\n });\n };\n \n const intervalId = setInterval(checkAuthStatusForAllPlatforms, 2000); // check every 2 seconds\n \n return () => clearInterval(intervalId); // Clean up the interval when the component unmounts\n }, [platforms]);\n \n\n const renderAuthButton = (platformKey) => {\n const platform = platforms[platformKey];\n const isGoogleService = platform.title.toLowerCase().includes(\"google\");\n \n if (platform.authenticated) {\n return (\n <>\n \n \n );\n } else if (isGoogleService) {\n const googleBtn = require(\"images/google/btn_google_signin_light_normal_web.png\");\n return (\n
    openAuthPage(platform.auth_url)}>\n \"Google\n
    \n );\n } else {\n return (\n <>\n \n \n );\n }\n };\n\n return (\n <>\n
    \n

    Data Connections

    \n

    Note: Access to some platforms is handled on the account level. Please go to Account Settings to authorize them.

    \n
    \n
    \n
    \n
    Authenticate with the services you need to pull for your clients.
    \n
    \n
    \n {Object.keys(platforms).map((platformKey, index) => {\n const platform = platforms[platformKey];\n const apiTitle = platformKey === \"search_console\" ? \"Google Search Console\" : platform.title;\n return (\n
    \n

    {apiTitle}

    \n {renderAuthButton(platformKey)}\n
    \n );\n })}\n
    \n
    \n \n
    \n
    \n \n );\n}\n\nexport default ApiAccess;","import React, { useState } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport CustomTooltip from \"utils/CustomTooltip\";\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
    Platform specific data
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n Google Ads MCC ID (No '-'s):\n \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 lite-input\" : \"lite-input\"}\n />\n
    \n
    \n
    \n SEMRush API Key:\n Subscription Info > API Units`} inline={true} />\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","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, useContext, useRef } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport jsDig from \"utils/jsDig.js\";\nimport AccountUsers from \"client_config/lite/AccountUsers\";\n\nexport default function Access() {\n const context = useContext(SettingsContext);\n\n let teamAccess = require(\"images/lite/icons/teamAccess.png\");\n teamAccess = \"teamAccess\";\n\n let handshake = require(\"images/lite/icons/handshake.png\");\n handshake = \"handshake\";\n\n return (\n
    \n
    \n
    \n {handshake}

    Client Access

    \n
    \n \n
    \n
    \n
    \n {teamAccess}

    Team Access

    \n
    \n \n
    \n
    \n );\n}\n","import React, { useContext, useState } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport jsDig from \"utils/jsDig.js\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport showAlert from \"utils/showAlert\";\nimport LastDataPullStatus from \"client_config/lite/LastDataPullStatus\";\nimport GoogleAdsCustomConversions from \"client_config/lite/GoogleAdsCustomConversions\";\nimport GoogleAdsCampaignFilters from \"client_config/lite/GoogleAdsCampaignFilters\";\nimport MetaAdsCustomConversions from \"./MetaAdsCustomConversions\";\n\nexport default function AccountIds() {\n const context = useContext(SettingsContext);\n\n let shopifyIcon = require(\"images/lite/icons/shopify.png\");\n let shopifyIconWhite = ;\n shopifyIcon = ;\n let googleAds = require(\"images/lite/icons/google-ads.png\");\n googleAds = ;\n let microsoftAds = require(\"images/lite/icons/microsoft-ads.png\");\n microsoftAds = ;\n let metaAds = require(\"images/lite/icons/meta.png\");\n metaAds = ;\n let tiktokAds = require(\"images/lite/icons/tiktok.png\");\n tiktokAds = ;\n let GoogleAnalytics = require(\"images/lite/icons/google-analytics.png\");\n GoogleAnalytics = ;\n let searchConsoleIcon = require(\"images/lite/icons/search-console.png\");\n searchConsoleIcon = ;\n let semrush = require(\"images/lite/icons/semrush.png\");\n semrush = ;\n let amazonAdsIcon = require(\"images/lite/icons/amazon-icon.png\");\n amazonAdsIcon = ;\n let amazonSellerIcon = require(\"images/lite/icons/amazon-sc.png\");\n amazonSellerIcon = ;\n let googleSheetsIcon = require(\"images/lite/icons/google-sheets.png\");\n googleSheetsIcon = ;\n let mailchimpIcon = require(\"images/lite/icons/mailchimp.png\");\n mailchimpIcon = ;\n let pinterestIcon = require(\"images/lite/icons/pinterest.png\");\n pinterestIcon = ;\n let klaviyoIcon = require(\"images/lite/icons/klaviyo.png\");\n klaviyoIcon = ;\n let refreshIcon = require(\"images/lite/icons/refresh.svg\");\n refreshIcon = ;\n\n let microsoftExample = require(\"images/onboarding/microsoft-example.png\");\n microsoftExample = ;\n const microsoftMessage =
    Account IDs must 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. {microsoftExample}
    \n \n let pinterestExample = require(\"images/lite/icons/pinterestID.jpg\");\n pinterestExample = ;\n const pinterestMessage =
    Account IDs must be taken from the URL. Select the account, then check the url for the number following between the slashes following \"advertiser\" in the url {pinterestExample}
    \n\n const klaviyoMessage =
    You need to create a private API key in Klaviyo. Log in and go to Settings {\">\"} Account {\">\"} API Keys. Create a new private API key and make sure to give Read access to all scopes.
    \n\n let projectIdImg = require(\"images/semrush-project-id.jpg\");\n projectIdImg = ;\n const semrushExample =
    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 let googleSheetsUrlMessage = \"Create a copy of the template link and input the performance data. Make sure view access to the spreadsheet is given to the account that authenticated with Google Sheets.\";\n\n const [facebookObjective, setFacebookObjective] = useState(jsDig([\"facebookObjective\"], context) || '');\n const [tiktokObjective, setTiktokObjective] = useState(jsDig([\"tiktokObjective\"], context) || '');\n const [semrushTargetLocation, setSemrushTargetLocation] = useState(jsDig([\"semrushTargetLocation\"], context) || '');\n const [shopifyRevenueType, setShopifyRevenueType] = useState(jsDig([\"shopifyRevenueType\"], context) || '');\n const [shopifyCountryFilter, setShopifyCountryFilter] = useState(jsDig([\"shopifyCountryFilter\"], context) || '');\n const [googleAdsId, setGoogleAdsId] = useState(jsDig([\"googleAdsId\"], context) || '');\n const [microsoftId, setMicrosoftId] = useState(jsDig([\"microsoftId\"], context) || '');\n const [metaId, setMetaId] = useState(jsDig([\"metaId\"], context) || '');\n const [tiktokId, setTiktokId] = useState(jsDig([\"tiktokId\"], context) || '');\n const [googleAnalyticsId, setGoogleAnalyticsId] = useState(jsDig([\"googleAnalyticsId\"], context) || '');\n const [searchConsoleProperty, setSearchConsoleProperty] = useState(jsDig([\"searchConsoleProperty\"], context) || '');\n const [brandedRegex, setBrandedRegex] = useState(jsDig([\"brandedRegex\"], context) || '');\n const [semrushId, setSemrushId] = useState(jsDig([\"semrushId\"], context) || '');;\n const [amazonAdsId, setAmazonAdsId] = useState(jsDig([\"amazonAdsId\"], context) || '');\n const [amazonSellerCountry, setAmazonSellerCountry] = useState(jsDig([\"amazonSellerCountry\"], context) || '');\n const [shopifyUrl, setShopifyUrl] = useState(jsDig([\"shopifyUrl\"], context) || '');\n const [googleSheetsUrl, setGoogleSheetsUrl] = useState(jsDig([\"googleSheetsUrl\"], context) || '');\n const [mailchimpServerPrefix, setMailchimpServerPrefix] = useState(jsDig([\"mailchimpServerPrefix\"], context) || '');\n const [pinterestAdsId, setPinterestAdsId] = useState(jsDig([\"pinterestAdsId\"], context) || '');\n const [klaviyoApiKey, setKlaviyoApiKey] = useState(jsDig([\"klaviyoApiKey\"], context) || '');\n const [klaviyoConversionMetric, setKlaviyoConversionMetric] = useState(jsDig([\"klaviyoConversionMetric\"], context) || '');\n const [searchConsoleProperties, setSearchConsoleProperties] = useState(jsDig([\"search_console_properties\"], context) || []);\n const [amazonAdsProfileIds, setAmazonAdsProfileIds] = useState(jsDig([\"amazon_profile_ids\"], context) || []);\n const [klaviyoMetrics, setKlaviyoMetrics] = useState(jsDig([\"klaviyo_metrics\"], context) || []);\n const [metaAdsAttributionType, setMetaAdsAttributionType] = useState(jsDig([\"metaAdsAttributionType\"], context) || '');\n const [shopifyRevenueMetric, setShopifyRevenueMetric] = useState(jsDig([\"shopifyRevenueMetric\"], context) || '');\n\n const handleRefreshIds = async (platform) => {\n let platformTitle = \"\";\n let updateIdsCallback = null;\n let route = \"\";\n\n if (platform == \"search_console\") {\n platformTitle = \"Search Console\";\n updateIdsCallback = setSearchConsoleProperties;\n route = \"refresh-search-console-properties\";\n } else if (platform == \"amazon_ads\") {\n platformTitle = \"Amazon Ads\";\n updateIdsCallback = setAmazonAdsProfileIds;\n route = \"refresh-amazon-ads-profiles\";\n } else if (platform == \"klaviyo\") {\n platformTitle = \"Klaviyo\";\n updateIdsCallback = setKlaviyoMetrics;\n route = \"refresh-klaviyo-metrics\";\n }\n\n const response = await fetch(`/datapulse/lite-config/${route}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector(\"[name='csrf-token']\").content,\n }\n });\n if (response.ok) {\n const data = await response.json();\n console.log(data);\n if (data.success) {\n updateIdsCallback(data.platform_ids);\n showAlert(`${platformTitle} IDs refreshed successfully`);\n } else {\n showAlert(`Failed to refresh ${platformTitle} IDs\\n` + data.error);\n }\n }\n };\n \n // onChange handlers\n const handleFacebookObjectiveChange = (e) => {\n setFacebookObjective(e.target.value);\n context.setFacebookObjective(e.target.value);\n };\n const handleTiktokObjectiveChange = (e) => {\n setTiktokObjective(e.target.value);\n context.setTiktokObjective(e.target.value);\n };\n const handleSemrushTargetLocationChange = (e) => {\n setSemrushTargetLocation(e.target.value);\n context.setSemrushTargetLocation(e.target.value);\n };\n const handleShopifyRevenueTypeChange = (e) => {\n setShopifyRevenueType(e.target.value);\n context.setShopifyRevenueType(e.target.value);\n };\n const handleShopifyCountryFilterChange = (e) => {\n setShopifyCountryFilter(e.target.value);\n context.setShopifyCountryFilter(e.target.value);\n };\n\n const handleGoogleAdsIdChange = (e) => {\n const formattedId = phoneNumberAutoFormat(e.target.value);\n setGoogleAdsId(formattedId);\n context.setGoogleAdsId(formattedId);\n };\n const handleMicrosoftIdChange = (e) => {\n setMicrosoftId(e.target.value);\n context.setMicrosoftId(e.target.value);\n };\n const handleMetaIdChange = (e) => {\n setMetaId(e.target.value);\n context.setMetaId(e.target.value);\n };\n const handleTiktokIdChange = (e) => {\n setTiktokId(e.target.value);\n context.setTiktokId(e.target.value);\n };\n const handleGoogleAnalyticsIdChange = (e) => {\n setGoogleAnalyticsId(e.target.value);\n context.setGoogleAnalyticsId(e.target.value);\n };\n const handleSearchConsolePropertyChange = (e) => {\n setSearchConsoleProperty(e.target.value);\n context.setSearchConsoleProperty(e.target.value);\n };\n const handleBrandedRegexChange = (e) => {\n setBrandedRegex(e.target.value);\n context.setBrandedRegex(e.target.value);\n };\n const handleSemrushIdChange = (e) => {\n setSemrushId(e.target.value);\n context.setSemrushId(e.target.value);\n };\n const handleShopifyUrlChange = (e) => {\n setShopifyUrl(e.target.value);\n context.setShopifyUrl(e.target.value);\n };\n const handleAmazonAdsIdChange = (e) => {\n setAmazonAdsId(e.target.value);\n context.setAmazonAdsId(e.target.value);\n };\n const handleAmazonSellerCountryChange = (e) => {\n setAmazonSellerCountry(e.target.value);\n context.setAmazonSellerCountry(e.target.value);\n };\n const handleGoogleSheetsUrlChange = (e) => {\n setGoogleSheetsUrl(e.target.value);\n context.setGoogleSheetsUrl(e.target.value);\n };\n const handleMailchimpServerPrefixChange = (e) => {\n setMailchimpServerPrefix(e.target.value);\n context.setMailchimpServerPrefix(e.target.value);\n };\n const handlePinterestAdsIdChange = (e) => {\n setPinterestAdsId(e.target.value);\n context.setPinterestAdsId(e.target.value);\n };\n const handleKlaviyoApiKeyChange = (e) => {\n setKlaviyoApiKey(e.target.value);\n context.setKlaviyoApiKey(e.target.value);\n };\n const handleKlaviyoConversionMetricChange = (e) => {\n setKlaviyoConversionMetric(e.target.value);\n context.setKlaviyoConversionMetric(e.target.value);\n };\n const handleMetaAdsAttributionTypeChange = (e) => {\n setMetaAdsAttributionType(e.target.value);\n context.setMetaAdsAttributionType(e.target.value);\n };\n const handleShopifyRevenueMetricChange = (e) => {\n setShopifyRevenueMetric(e.target.value);\n context.setShopifyRevenueMetric(e.target.value);\n };\n\n const phoneNumberAutoFormat = (phoneNumber) => {\n // First, check if input ends with a hyphen\n const endsWithHyphen = phoneNumber.endsWith(\"-\");\n // Remove all non-numeric characters except for the trailing hyphen\n const number = phoneNumber.trim().replace(endsWithHyphen ? /[^0-9-]$/g : /[^0-9]/g, \"\");\n \n if (number.length < 4) return number;\n if (number.length === 4 && endsWithHyphen) return number.substring(0, 3) + '-';\n if (number.length < 7) return number.replace(/(\\d{3})(\\d+)/, \"$1-$2\");\n if (number.length < 11) return number.replace(/(\\d{3})(\\d{3})(\\d+)/, \"$1-$2-$3\");\n return number.replace(/(\\d{3})(\\d{3})(\\d{4})/, \"$1-$2-$3\");\n };\n\n const authenticateShopifyFunction = () => {\n const paramsObject = {\n shopify_url: shopifyUrl,\n };\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/shopify/get-permission-url\",\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 // Change the button to red and update text to \"Reset Token\"\n const button = document.querySelector('.shopify-authentication button');\n button.classList.remove('btn-success');\n button.classList.add('btn-danger');\n button.innerHTML = `Reset Token`;\n button.removeAttribute('onclick'); \n button.onclick = resetShopifyToken; \n },\n });\n console.log(\"Started Shopify authentication flow\");\n };\n\n const resetShopifyToken = () => {\n let myObject = {\n shopify_token: \"\",\n client_account_id: context.client_account.id,\n };\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/shopify/reset-token\",\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(myObject),\n success: (data, success, xhr) => {\n const button = document.querySelector('.shopify-authentication button');\n button.classList.remove('btn-danger');\n button.classList.add('btn-success');\n button.innerHTML = `Authenticate`;\n button.removeAttribute('onclick'); \n button.onclick = authenticateShopifyFunction; \n }\n });\n console.log(\"Reset Shopify authentication\")\n };\n\n const amazonSellerCountries = [\n { name: \"United States\", value: \"US\" },\n { name: \"Canada\", value: \"CA\" },\n { name: \"Mexico\", value: \"MX\" },\n { name: \"Brazil\", value: \"BR\" },\n { name: \"United Kingdom\", value: \"UK\" },\n { name: \"Germany\", value: \"DE\" },\n { name: \"France\", value: \"FR\" },\n { name: \"Italy\", value: \"IT\" },\n { name: \"Spain\", value: \"ES\" },\n { name: \"Netherlands\", value: \"NL\" },\n { name: \"Sweden\", value: \"SE\" },\n { name: \"Poland\", value: \"PL\" },\n { name: \"Turkey\", value: \"TR\" },\n { name: \"Australia\", value: \"AU\" },\n { name: \"Japan\", value: \"JP\" },\n { name: \"India\", value: \"IN\" },\n { name: \"Singapore\", value: \"SG\" },\n { name: \"United Arab Emirates\", value: \"AE\" },\n { name: \"Saudi Arabia\", value: \"SA\" },\n { name: \"Egypt\", value: \"EG\" },\n { name: \"South Africa\", value: \"ZA\" },\n { name: \"Belgium\", value: \"BE\" },\n ];\n\n const authorizeAmazonSeller = () => {\n window.open(`/datapulse/amazon-seller/oauth/authorize?country=${amazonSellerCountry}&platform=amazon_seller`, \"_blank\");\n document.querySelector(\"#amazon-seller-reload-msg\").style.display = \"block\";\n };\n\n const deauthorizeAmazonSeller = async (id, el) => {\n const response = await fetch(`/datapulse/amazon-seller/oauth/deauthorize`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector(\"[name='csrf-token']\").content,\n },\n body: JSON.stringify({ credential_id: id }),\n });\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n el.closest(\".amazon-seller-authentication\").remove();\n showAlert(\"Amazon Seller deauthorized successfully\");\n } else {\n showAlert(\"Failed to deauthorize Amazon Seller.\\n\" + data.error);\n }\n }\n };\n\n const pullGoogleSheetsData = async (e) => {\n const button = e.target;\n // disable the button and add a buffering icon\n button.disabled = true;\n button.innerHTML = ' Pulling data...';\n const response = await fetch(`/datapulse/lite-config/pull-google-sheets-data`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector(\"[name='csrf-token']\").content,\n },\n body: JSON.stringify({ client_account_id: context.client_account.id }),\n });\n if (response.ok) {\n const data = await response.json();\n console.log(data)\n if (data.success) {\n showAlert(\"Google Sheets data pulled successfully\");\n button.innerHTML = \"Pull data\";\n } else {\n showAlert(\"Failed to pull Google Sheets data.\\n\" + data.message);\n button.innerHTML = \"Pull data\";\n button.disabled = false;\n }\n }\n }\n\n const deleteGoogleSheetsData = async () => {\n const response = await fetch(`/datapulse/lite-config/delete-google-sheets-data`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector(\"[name='csrf-token']\").content,\n },\n body: JSON.stringify({ client_account_id: context.client_account.id }),\n });\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n showAlert(\"Google Sheets data deleted successfully\");\n }\n }\n }\n\n const authorizeMailchimp = async () => {\n window.open(`/datapulse/mailchimp/oauth/authorize?platform=mailchimp`, \"_blank\");\n document.querySelector(\"#mailchimp-reload-msg\").style.display = \"block\";\n }\n\n const deauthorizeMailchimp = async (id, el) => {\n const response = await fetch(`/datapulse/mailchimp/oauth/deauthorize`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector(\"[name='csrf-token']\").content,\n },\n body: JSON.stringify({ credential_id: id }),\n });\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n showAlert(\"Mailchimp deauthorized successfully\");\n } else {\n showAlert(\"Failed to deauthorize Mailchimp.\\n\" + data.error);\n }\n }\n }\n\n // Datapull error display\n const googleAnalyticsErrors = context.data_pull_errors.filter((error) => error.platform == \"google_analytics\");\n const searchConsoleErrors = context.data_pull_errors.filter((error) => error.platform == \"search_console\");\n const googleAdsErrors = context.data_pull_errors.filter((error) => error.platform == \"google_ads\");\n const microsoftAdsErrors = context.data_pull_errors.filter((error) => error.platform == \"microsoft_ads\");\n const metaAdsErrors = context.data_pull_errors.filter((error) => error.platform == \"meta_ads\");\n const tiktokAdsErrors = context.data_pull_errors.filter((error) => error.platform == \"tiktok_ads\");\n const semrushErrors = context.data_pull_errors.filter((error) => error.platform == \"semrush\");\n const shopifyErrors = context.data_pull_errors.filter((error) => error.platform == \"shopify\");\n const googleSheetsErrors = context.data_pull_errors.filter((error) => error.platform == \"google_sheets\");\n const amazonAdsErrors = context.data_pull_errors.filter((error) => error.platform == \"amazon_ads\");\n const amazonSellerErrors = context.data_pull_errors.filter((error) => error.platform == \"amazon_seller\");\n const mailchimpErrors = context.data_pull_errors.filter((error) => error.platform == \"mailchimp\");\n const pinterestErrors = context.data_pull_errors.filter((error) => error.platform == \"pinterest_ads\");\n const klaviyoErrors = context.data_pull_errors.filter((error) => error.platform == \"klaviyo\");\n \n return (\n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {GoogleAnalytics}

    Google Analytics

    \n
    \n \n
    \n
    \n

    Google Analytics ID

    \n Property details, then locate the 'PROPERTY ID' in the top right\"\n inline={true}\n />\n \n
    \n
    \n\n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {searchConsoleIcon}

    Search Console

    \n
    \n \n
    \n
    \n

    Search Property

    \n \n
    \n
    \n \n
    \n handleRefreshIds(\"search_console\")} style={{ cursor: \"pointer\" }}>\n \n \n
    \n
    \n
    \n

    Branded Regex

    \n \n Use this to instruct DataPulse what your branded keywords are for the Organic Search dashboard.\n
    \n .*digital position.*|.*positions.*|.*pisitions.*\n This regex will match any text containing \"digital position,\" \"positions,\" or \"pisitions,\" with each pattern separated by a pipe (|) and beginning and ending with .* to allow for any characters before or after each keyword.\n \n }\n inline={true}\n />\n \n
    \n
    \n\n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {googleAds}

    Google Ads

    \n
    \n \n
    \n
    \n

    Google Ads ID

    \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {microsoftAds}

    Microsoft Ads

    \n
    \n \n
    \n
    \n

    \n Microsoft Ads ID\n

    \n \n \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {metaAds}

    Meta Ads

    \n
    \n \n
    \n
    \n

    Meta Ads ID

    \n \n \n
    \n
    \n
    \n Facebook Objective\n \n
    \n
    \n \n
    \n {\n facebookObjective === \"custom_conversions\" &&\n
    \n \n
    \n }\n
    \n Attribution Setting\n \n
    \n
    \n \n
    \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {tiktokAds}

    TikTok Ads

    \n
    \n \n
    \n
    \n

    TikTok Ads ID

    \n \n \n
    \n
    \n
    \n TikTok Objective\n \n
    \n
    \n \n
    \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {semrush}

    SEMRush

    \n
    \n \n
    \n
    \n

    SEMRush ID

    \n \n \n
    \n
    \n

    SEMRush Target Location:

    \n
    \n \n
    \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {shopifyIcon}

    Shopify

    \n
    \n \n
    \n
    \n

    \n Shopify URL\n

    \n Domains and locate the domain containing 'myshopify.com'\"\n inline={true}\n />\n \n
    \n
    \n

    Sales channel filter

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

    Shopify Country Filter

    \n
    \n \n
    \n

    \n Shopify Revenue Metric\n

    \n \n
    \n \n
    \n
    \n {jsDig([\"shopify_token\"], context.client_account) ? (\n
    \n \n
    \n ) : (context.client_account.shopify_url && context.client_account.shopify_url != \"\") ? (\n
    \n \n
    \n ) : (\n
    \n

    Shopify URL required to authenticate

    \n
    \n )}\n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {googleSheetsIcon}

    Google Sheets

    \n
    \n \n
    \n
    \n

    Can be used in place of Shopify or Google Analytics for total website conversions, revenue and new customers metrics

    \n

    Template link

    \n

    Spreadsheet URL:

    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {amazonAdsIcon}

    Amazon Ads

    \n
    \n \n
    \n
    \n

    Amazon Ads ID

    \n \n

    Please select an account from the list below

    \n
    \n
    \n \n
    \n handleRefreshIds(\"amazon_ads\")} style={{ cursor: \"pointer\" }}>\n \n \n
    \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {amazonSellerIcon}

    Amazon Seller Central

    \n
    \n \n
    \n
    \n

    Select the country you would like to authenticate with:

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

    If authentication was successful you will see it on this page when you reload.

    \n
    \n
    \n
    \n

    \n Current Authentications:\n

    \n {context.amazon_seller_credentials.map((cred) => {\n return (\n
    \n

    \n {`${cred[\"country\"]}`} - {`${jsDig([\"platform_ids\", `amazon_seller_${cred[\"country\"]}`], context.client_account)}`}\n

    \n \n
    \n );\n })}\n {context.amazon_seller_credentials.length === 0 &&

    None

    }\n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {mailchimpIcon}

    Mailchimp

    \n
    \n \n
    \n
    \n

    \n Server prefix:\n

    \n \n \n
    \n

    If authentication was successful you will see it on this page when you reload.

    \n
    \n
    \n
    \n
    \n {context.mailchimp_credentials.map((cred) => {\n return (\n \n );\n })}\n {context.mailchimp_credentials.length === 0 && (\n \n )}\n
    \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {klaviyoIcon}

    Klaviyo

    \n
    \n \n
    \n
    \n

    \n Klaviyo Private API KEY\n

    \n \n \n
    \n
    \n
    \n Klaviyo Conversion Objective\n \n
    \n
    \n
    \n \n
    \n handleRefreshIds(\"klaviyo\")} style={{ cursor: \"pointer\" }}>\n \n \n
    \n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {pinterestIcon}

    Pinterest

    \n
    \n \n
    \n
    \n

    Pinterest Account ID

    \n \n \n
    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useEffect, createContext } from \"react\";\nimport jsDig from \"utils/jsDig.js\";\nimport AccountSettingsModal from \"./AccountSettingsModal\";\n\nexport const SettingsContext = createContext();\n\nexport default function AccountSettingsButton(props) {\n const dataPullErrors = jsDig([\"data_pull_errors\"], props).length;\n let cog = require(\"images/lite/icons/settings.png\");\n cog = 0 ? \"errors-present\" : \"\"}`} alt=\"Settings\" src={`/datapulse${cog}`} />;\n let alerts = props.alerts.length\n let bell = require(\"images/lite/icons/bell.png\");\n bell = \n
    \n \"icon\"\n {alerts}\n
    \n
    \n\n const [isModalOpen, setModalOpen] = useState(false);\n const toggleModal = () => setModalOpen(!isModalOpen);\n\n\n //Users\n const [clientUsers, setClientUsers] = useState(props.users ? props.users.clients : []);\n const [teamUsers, setTeamUsers] = useState(props.users ? props.users.employees : []);\n\n //Basic Tab\n const [companyName, setCompanyName] = useState(props.company_name);\n const [baseCurrency, setBaseCurrency] = useState(jsDig([\"client_account\", \"base_currency\"], props));\n const [displayCurrency, setDisplayCurrency] = useState(jsDig([\"client_account\", \"display_currency\"], props));\n const [defaultObjective, setDefaultObjective] = useState(jsDig([\"client_account\", \"dashboard_objective\"], props));\n const [overviewDatasource, setOverviewDatasource] = useState(jsDig([\"client_account\", \"overview_datasource\"], props));\n const [website, setWebsite] = useState(jsDig([\"client_account\", \"website\"], props));\n const [clientLogo, setClientLogo] = useState(props.client_logo);\n const [clientLogoUrl, setClientLogoUrl] = useState(props.client_logo);\n\n //Account Ids\n const [facebookObjective, setFacebookObjective] = useState(jsDig([\"social_section\", \"conversion_objective\"], props));\n const [tiktokObjective, setTiktokObjective] = useState(jsDig([\"social_section\", \"tiktok_conversion_objective\"], props));\n const [semrushTargetLocation, setSemrushTargetLocation] = useState(jsDig([\"seo_section\", \"semrush_target_location\"], props));\n const [shopifyRevenueType, setShopifyRevenueType] = useState(jsDig([\"ppc_section\", \"shopify_revenue_type\"], props)); // This is actually more accurately called Shopify Sales Channel\n const [shopifyCountryFilter, setShopifyCountryFilter] = useState(jsDig([\"ppc_section\", \"shopify_country_filter\"], props));\n const [googleAdsId, setGoogleAdsId] = useState(jsDig([\"client_account\", \"platform_ids\", \"google_ads\"], props));\n const [googleAdsCustomConversionsEnabled, setGoogleAdsCustomConversionsEnabled] = useState(jsDig([\"google_ads_custom_conversions_enabled\"], props) || false);\n const [googleAdsCustomConversions, setGoogleAdsCustomConversions] = useState(jsDig([\"google_ads_custom_conversions\"], props) || []);\n const [googleAdsCampaignFiltersEnabled, setGoogleAdsCampaignFiltersEnabled] = useState(jsDig([\"google_ads_campaign_filters_enabled\"], props) || false);\n const [googleAdsCampaignFilters, setGoogleAdsCampaignFilters] = useState(jsDig([\"google_ads_campaign_filters\"], props) || []);\n const [microsoftId, setMicrosoftId] = useState(jsDig([\"client_account\", \"platform_ids\", \"microsoft_ads\"], props));\n const [metaId, setMetaId] = useState(jsDig([\"client_account\", \"platform_ids\", \"meta_ads\"], props));\n const [metaAdsCustomConversions, setMetaAdsCustomConversions] = useState(jsDig([\"social_section\", \"custom_conversions\"], props) || []);\n const [tiktokId, setTiktokId] = useState(jsDig([\"client_account\", \"platform_ids\", \"tiktok_ads\"], props));\n const [googleAnalyticsId, setGoogleAnalyticsId] = useState(jsDig([\"client_account\", \"platform_ids\", \"google_analytics\"], props));\n const [searchConsoleProperty, setSearchConsoleProperty] = useState(jsDig([\"client_account\", \"platform_ids\", \"search_console\"], props));\n const [brandedRegex, setBrandedRegex] = useState(jsDig([\"client_account\", \"branded_regex\"], props));\n const [semrushId, setSemrushId] = useState(jsDig([\"client_account\", \"platform_ids\", \"semrush\"], props));\n const [shopifyUrl, setShopifyUrl] = useState(jsDig([\"client_account\", \"shopify_url\"], props));\n const [amazonAdsId, setAmazonAdsId] = useState(jsDig([\"client_account\", \"platform_ids\", \"amazon_ads\"], props));\n const [amazonSellerCountry, setAmazonSellerCountry] = useState(\"US\");\n const [googleSheetsUrl, setGoogleSheetsUrl] = useState(jsDig([\"client_account\", \"platform_ids\", \"google_sheets_url\"], props));\n const [mailchimpServerPrefix, setMailchimpServerPrefix] = useState(jsDig([\"client_account\", \"platform_ids\", \"mailchimp_server_prefix\"], props));\n const [pinterestAdsId, setPinterestAdsId] = useState(jsDig([\"client_account\", \"platform_ids\", \"pinterest_ads\"], props));\n const [klaviyoApiKey, setKlaviyoApiKey] = useState(jsDig([\"client_account\", \"platform_ids\", \"klaviyo_api_key\"], props));\n const [klaviyoConversionMetric, setKlaviyoConversionMetric] = useState(jsDig([\"client_account\", \"klaviyo_conversion_metric\"], props));\n const [metaAdsAttributionType, setMetaAdsAttributionType] = useState(jsDig([\"social_section\", \"meta_ads_attribution_type\"], props));\n const [shopifyRevenueMetric, setShopifyRevenueMetric] = useState(jsDig([\"ppc_section\", \"shopify_revenue_metric\"], props));\n\n\n // Google Ads Scripts\n const [googleAdsScripts, setGoogleAdsScripts] = useState(jsDig([\"client_account\", \"google_ads_scripts\"], props) || {});\n\n // DataPulse Scripts\n const [dataPulseScripts, setDataPulseScripts] = useState(jsDig([\"client_account\", \"datapulse_scripts\"], props) || {});\n\n // All Script Variables\n const [scriptVariables, setScriptVariables] = useState(jsDig([\"client_account\", \"script_variables\"], props) || {});\n\n //inflation\n const [inflation, setInflation] = useState(props.search_section.daily_yields);\n\n const contextValue = {\n isModalOpen,\n toggleModal,\n clientUsers,\n setClientUsers,\n teamUsers,\n setTeamUsers,\n companyName,\n setCompanyName,\n website,\n setWebsite,\n defaultObjective,\n setDefaultObjective,\n overviewDatasource,\n setOverviewDatasource,\n baseCurrency,\n setBaseCurrency,\n displayCurrency,\n setDisplayCurrency,\n clientLogo,\n setClientLogo,\n clientLogoUrl,\n setClientLogoUrl,\n googleAnalyticsId,\n setGoogleAnalyticsId,\n searchConsoleProperty,\n setSearchConsoleProperty,\n brandedRegex,\n setBrandedRegex,\n googleAdsId,\n setGoogleAdsId,\n googleAdsCustomConversionsEnabled,\n setGoogleAdsCustomConversionsEnabled,\n googleAdsCustomConversions,\n setGoogleAdsCustomConversions,\n googleAdsCampaignFiltersEnabled,\n setGoogleAdsCampaignFiltersEnabled,\n googleAdsCampaignFilters,\n setGoogleAdsCampaignFilters,\n metaId,\n setMetaId,\n metaAdsCustomConversions,\n setMetaAdsCustomConversions,\n facebookObjective,\n setFacebookObjective,\n microsoftId,\n setMicrosoftId,\n tiktokId,\n setTiktokId,\n tiktokObjective,\n setTiktokObjective,\n semrushId,\n setSemrushId,\n semrushTargetLocation,\n setSemrushTargetLocation,\n shopifyRevenueType,\n setShopifyRevenueType,\n shopifyCountryFilter,\n setShopifyCountryFilter,\n shopifyUrl,\n setShopifyUrl,\n amazonAdsId,\n setAmazonAdsId,\n amazonSellerCountry,\n setAmazonSellerCountry,\n googleSheetsUrl,\n setGoogleSheetsUrl,\n mailchimpServerPrefix,\n setMailchimpServerPrefix,\n googleAdsScripts,\n setGoogleAdsScripts,\n dataPulseScripts,\n setDataPulseScripts,\n scriptVariables,\n setScriptVariables,\n inflation,\n setInflation,\n pinterestAdsId,\n setPinterestAdsId,\n klaviyoApiKey,\n setKlaviyoApiKey,\n klaviyoConversionMetric,\n setKlaviyoConversionMetric,\n metaAdsAttributionType,\n setMetaAdsAttributionType,\n shopifyRevenueMetric,\n setShopifyRevenueMetric,\n ...props,\n };\n\n return (\n \n
    \n \n {alerts > 0 && props.organization.name == \"Digital Position\" &&\n bell\n }\n
    \n \n
    \n );\n}\n","import React, { useState, useEffect, useRef, useContext } from 'react';\nimport { SettingsContext } from './AccountSettingsButton';\nimport LiteRefresh from '../../dashboards/lite/LiteRefresh';\nimport Basic from './Basic'; \nimport AccountIds from './AccountIds';\nimport Inflation from './Inflation';\nimport Access from './Access';\nimport Scripts from './Scripts';\nimport showAlert from 'utils/showAlert';\n\nfunction AccountSettingsModal() {\n const modalRef = useRef();\n const context = useContext(SettingsContext);\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n let download = require(\"images/lite/icons/download.png\");\n download = ;\n\n const [activeTab, setActiveTab] = useState('basicInfo');\n const inflation = context.inflation;\n\n const logo = context.client_logo ? \"Client : \"\";\n\n let xIcon = require(\"images/lite/icons/x-close.svg\");\n xIcon = (\n \"remove\"\n );\n\n const [showModalMenu, setShowModalMenu] = useState(false);\n const modalMenuRef = useRef(null); // Ref for the menu\n const modalButtonRef = useRef(null); // Ref for the button\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (modalMenuRef.current && !modalMenuRef.current.contains(event.target) &&\n modalButtonRef.current && !modalButtonRef.current.contains(event.target)) {\n setShowModalMenu(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n const handleFormSubmit = async (event) => {\n event.preventDefault();\n context.toggleModal();\n console.log(\"Submitting form\")\n console.log(context.metaAdsCustomConversions)\n console.log(context.googleAdsCustomConversions)\n\n const configForm = document.querySelector(\"#lite-config-form\");\n\n const formData = new FormData();\n formData.append('company_name', context.companyName);\n formData.append('website', configForm['website'].value);\n formData.append('dashboard_objective', configForm.dashboard_objective.value);\n formData.append('overview_datasource', configForm.overview_datasource.value);\n formData.append('base_currency', configForm.base_currency.value);\n formData.append('display_currency', configForm.display_currency.value);\n formData.append('client_account_id', context.client_account.id);\n formData.append('client_logo', context.clientLogo);\n formData.append('google_ads_id', configForm.google_ads_id.value);\n formData.append('google_ads_custom_conversions_enabled', context.googleAdsCustomConversionsEnabled);\n formData.append('google_ads_custom_conversions', JSON.stringify(context.googleAdsCustomConversions));\n formData.append('google_ads_campaign_filters_enabled', context.googleAdsCampaignFiltersEnabled);\n formData.append('google_ads_campaign_filters', JSON.stringify((context.googleAdsCampaignFilters)));\n formData.append('microsoft_id', configForm.microsoft_id.value);\n formData.append('meta_id', configForm.meta_id.value);\n formData.append('meta_ads_custom_conversions', JSON.stringify(context.metaAdsCustomConversions));\n formData.append('tiktok_id', configForm.tiktok_id.value);\n formData.append('google_analytics_id', configForm.google_analytics_id.value);\n formData.append('search_console_property', configForm.search_console_property.value);\n formData.append('branded_regex', configForm.branded_regex.value);\n formData.append('shopify_url', configForm.shopify_url.value);\n formData.append('shopify_revenue_type', configForm.shopify_revenue_type.value);\n formData.append('facebook_conversion_objective', configForm.facebook_conversion_objective.value);\n formData.append('tiktok_conversion_objective', configForm.tiktok_conversion_objective.value);\n formData.append('semrush_target_location', configForm.semrush_target_location.value);\n formData.append('semrush_id', configForm.semrush_id.value);\n formData.append('shopify_country_filter', configForm.shopify_country_filter.value);\n formData.append('amazon_ads_id', configForm.amazon_ads_id.value);\n formData.append('amazon_seller_country', configForm.amazon_seller_country.value);\n formData.append('google_sheets_url', configForm.google_sheets_url.value);\n formData.append('mailchimp_server_prefix', configForm.mailchimp_server_prefix.value);\n formData.append('pinterest_ads_id', configForm.pinterest_ads_id.value);\n formData.append('klaviyo_api_key', configForm.klaviyo_api_key.value);\n formData.append('klaviyo_conversion_metric', configForm.klaviyo_conversion_metric.value);\n formData.append('meta_ads_attribution_type', configForm.meta_ads_attribution_type.value);\n formData.append('shopify_revenue_metric', configForm.shopify_revenue_metric.value);\n\n // Google Ads Scripts\n formData.append(\"google_ads_scripts\", JSON.stringify(context.googleAdsScripts));\n\n // DataPulse Scripts\n formData.append(\"datapulse_scripts\", JSON.stringify(context.dataPulseScripts));\n\n // Script variables\n formData.append(\"script_variables\", JSON.stringify(context.scriptVariables));\n\n // Inflation\n for (const platform in inflation) {\n for (const metric in inflation[platform]) {\n for (const day in inflation[platform][metric]) {\n const value = inflation[platform][metric][day];\n formData.append(`inflation[search][${platform}][${metric}][${day}]`, value);\n }\n }\n }\n\n // client data\n context.clientUsers.forEach((user, index) => {\n if (user.id) {\n formData.append(`client_users[${index}][id]`, user.id);\n }\n formData.append(`client_users[${index}][role]`, user.role);\n formData.append(`client_users[${index}][department]`, user.department);\n formData.append(`client_users[${index}][email]`, user.email);\n formData.append(`client_users[${index}][first_name]`, user.first_name);\n formData.append(`client_users[${index}][last_name]`, user.last_name);\n });\n\n // employee data\n context.teamUsers.forEach((user, index) => {\n if (user.id) {\n formData.append(`team_users[${index}][id]`, user.id);\n }\n formData.append(`team_users[${index}][role]`, user.role);\n formData.append(`team_users[${index}][department]`, user.department);\n formData.append(`team_users[${index}][email]`, user.email);\n formData.append(`team_users[${index}][first_name]`, user.first_name);\n formData.append(`team_users[${index}][last_name]`, user.last_name);\n });\n\n \n try {\n const response = await fetch(\"/datapulse/lite-config/save-config\", {\n method: \"POST\",\n headers: {\n \"X-CSRF-Token\": authenticityToken,\n },\n body: formData,\n });\n\n if (response.ok) {\n const data = await response.json();\n if (data.success == true) {\n console.log(\"Configuration saved successfully. Message from Server: \", data.message);\n showAlert(data.message);\n } else {\n console.error(\"Failed to save configuration\", data.message);\n showAlert(data.message);\n }\n } else {\n console.error(\"Failed to save configuration. No message from server\");\n showAlert(\"Failed to save configuration\");\n }\n } catch (error) {\n console.error(\"Network error:\", error);\n showAlert(\"Network error\");\n }\n };\n\n useEffect(() => {\n if (context.isModalOpen) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n \n // Cleanup function to ensure class is removed if the component unmounts\n return () => {\n document.body.classList.remove('no-scroll');\n };\n }, [context.isModalOpen]);\n\n const handleScroll = (e) => {\n const bottom = e.target.scrollHeight - e.target.scrollTop === e.target.clientHeight;\n if (!bottom) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n };\n\n return (\n
    \n
    \n
    e.stopPropagation()}>\n \n
    \n
    \n

    Account Configuration

    \n
    \n {logo}\n

    {context.company_name}

    \n
    \n
    \n
    \n
    \n \n \n \n {context.organization.name == \"Digital Position\" &&\n \n }\n {context.organization.name == \"Digital Position\" &&\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 handleFormSubmit(e)}> \n ✔ Save changes\n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default AccountSettingsModal;\n","import React, { useState, useContext, useRef, useEffect } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport AddUser from \"client_config/lite/AddUser\";\nimport { capitalize } from \"lodash\";\n\nexport default function AccountUsers(props) {\n const context = useContext(SettingsContext);\n\n let xIcon = require(\"images/lite/icons/x-close.svg\");\n xIcon = \"remove\";\n\n const [users, setUsers] = useState(props.userType === \"client\" ? context.clientUsers : context.teamUsers);\n\n useEffect(() => {\n if (props.userType === \"client\") {\n setUsers(context.clientUsers);\n } else {\n setUsers(context.teamUsers);\n }\n }, [context.clientUsers, context.teamUsers, props.userType]);\n\n const handleRemoveUser = (email) => {\n if (props.userType === \"client\") {\n context.setClientUsers((prevUsers) => prevUsers.filter((user) => user.email !== email));\n } else {\n context.setTeamUsers((prevUsers) => prevUsers.filter((user) => user.email !== email));\n }\n };\n\n return (\n
    \n
    \n {users.map((user, index) => {\n let activeString = \"\";\n if (user.active === true) {\n activeString = \"active\";\n } else if (user.active === false) {\n activeString = \"invited\";\n }\n return (\n \n {props.userType === \"client\" ? (\n
    \n
    \n \n
    \n
    handleRemoveUser(user.email)}>{xIcon}
    \n
    \n

    {capitalize(activeString)}

    \n
    \n
    \n ) : (\n
    \n {user.avatar ? (\n \n ) : (\n \n )}\n {user.name ? user.name : user.first_name + \" \" + user.last_name}\n
    handleRemoveUser(user.email)}>{xIcon}
    \n
    \n )}\n
    \n );\n })}\n
    \n\n \n
    \n );\n}\n","import React, { useState, useContext, useEffect, useCallback } from \"react\";\nimport { Modal, Button, Form, Table } from \"react-bootstrap\";\nimport { debounce } from \"lodash\";\nimport { SettingsContext } from \"client_config/lite/AccountSettingsButton\"; // Make sure this path matches your context file\n\nexport default function AddUser(props) {\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [foundUsers, setFoundUsers] = useState([]);\n const [newUser, setNewUser] = useState({\n first_name: '',\n last_name: '',\n email: '',\n role: props.userType == \"employee\" ? \"Employee\" : \"Client\",\n department: 'None',\n });\n\n const context = useContext(SettingsContext);\n\n // Add Existing User Functionality (Left Side)\n // Use useCallback to memoize the debounced function\n const debouncedSearch = useCallback(debounce((filter) => {\n if (!filter.trim()) {\n setFoundUsers([]);\n return;\n }\n fetch(`/datapulse/user-access/search-users/${filter}?` + new URLSearchParams({\n userType: props.userType,\n }))\n .then((response) => response.json())\n .then((data) => setFoundUsers(data));\n }, 750), [props.userType]); // Re-create this function only if userType changes\n\n useEffect(() => {\n // Call the debounced function within useEffect\n debouncedSearch(searchTerm);\n\n // Cleanup function to cancel the debounced call if component unmounts or input changes\n return () => debouncedSearch.cancel();\n }, [searchTerm, debouncedSearch]);\n\n const showModal = () => setIsModalVisible(true);\n const hideModal = () => setIsModalVisible(false);\n\n const handleSearchChange = (event) => {\n event.preventDefault();\n setSearchTerm(event.target.value);\n };\n\n const handleAddUser = (user) => {\n if (props.userType === \"client\") {\n if (!context.clientUsers.some((u) => u.email === user.email)) {\n context.setClientUsers((prevUsers) => [...prevUsers, user]);\n }\n } else {\n if (!context.teamUsers.some((u) => u.email === user.email)) {\n context.setTeamUsers((prevUsers) => [...prevUsers, user]);\n }\n }\n hideModal();\n };\n\n // Add New User Functionality (Right Side)\n const handleNewUserChange = (event) => {\n event.preventDefault();\n const { name, value } = event.target;\n setNewUser({ ...newUser, [name]: value });\n };\n\n const createNewUser = (event) => {\n event.preventDefault();\n const isValidEmail = (email) => /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\n let hasError = false;\n const userToAdd = { ...newUser, userType: props.userType };\n const firstName = userToAdd.first_name.trim();\n const lastName = userToAdd.last_name.trim();\n const email = userToAdd.email.trim();\n\n if (!firstName) {\n hasError = true;\n document.getElementById(\"new-user-first-name\").classList.add(\"lite-invalid-input\");\n } else {\n document.getElementById(\"new-user-first-name\").classList.remove(\"lite-invalid-input\");\n }\n if (!lastName) {\n hasError = true;\n document.getElementById(\"new-user-last-name\").classList.add(\"lite-invalid-input\");\n } else {\n document.getElementById(\"new-user-last-name\").classList.remove(\"lite-invalid-input\");\n }\n if (!isValidEmail(email)) {\n hasError = true;\n document.getElementById(\"new-user-email\").classList.add(\"lite-invalid-input\");\n } else {\n document.getElementById(\"new-user-email\").classList.remove(\"lite-invalid-input\");\n }\n\n if (!hasError) {\n if (props.userType === \"client\") {\n if (!context.clientUsers.some((u) => u.email === userToAdd.email)) {\n context.setClientUsers((prevUsers) => [...prevUsers, userToAdd]);\n }\n } else {\n if (!context.teamUsers.some((u) => u.email === userToAdd.email)) {\n context.setTeamUsers((prevUsers) => [...prevUsers, userToAdd]);\n }\n }\n hideModal();\n }\n };\n\n return (\n <>\n \n \n \n \n

    Add a new {props.userType} user

    \n
    \n
    \n \n

    Add {props.userType} user to this account. You may search for an existing user or create a new one.

    \n
    \n
    \n
    Search
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n {foundUsers.map((user) => (\n \n \n \n \n \n ))}\n \n
    NameEmail
    {`${user.first_name} ${user.last_name}`}{user.email}\n \n
    \n
    \n
    \n
    \n
    Create
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n {props.userType === \"employee\" && (\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, useContext, useEffect, useRef } from 'react';\nimport LiteCurrencySelector from './LiteCurrencySelector';\nimport { SettingsContext } from './AccountSettingsButton';\nimport jsDig from 'utils/jsDig.js';\n\nexport default function Basic() {\n const context = useContext(SettingsContext);\n\n const [companyName, setCompanyName] = useState(jsDig([\"companyName\"], context) || '');\n const [baseCurrency, setBaseCurrency] = useState(jsDig([\"baseCurrency\"], context) || '');\n const [displayCurrency, setDisplayCurrency] = useState(jsDig([\"displayCurrency\"], context) || '');\n const [defaultObjective, setDefaultObjective] = useState(jsDig([\"defaultObjective\"], context) || '');\n const [overviewDatasource, setOverviewDatasource] = useState(jsDig([\"overviewDatasource\"], context) || '');\n const [website, setWebsite] = useState(jsDig([\"website\"], context) || '');\n const [isPrimarySiteValid, setPrimarySiteValid] = useState(true); \n\n const defaultLogo = require(\"images/lite/icons/logo-placeholder.png\");\n const [clientLogoUrl, setClientLogoUrl] = useState(context.clientLogoUrl ? context.clientLogoUrl : `/datapulse${defaultLogo}`);\n const inputRef = useRef();\n\n const companyLogo = \"Company;\n\n useEffect(() => {\n setCompanyName(jsDig([\"companyName\"], context) || '');\n setWebsite(context.website || '');\n setDefaultObjective(context.defaultObjective || '');\n setOverviewDatasource(context.overviewDatasource || '');\n setBaseCurrency(context.baseCurrency || '');\n setDisplayCurrency(context.displayCurrency || '');\n setClientLogoUrl(context.clientLogoUrl ? context.clientLogoUrl : `/datapulse${defaultLogo}`);\n }, [context]);\n\n const handleCompanyNameChange = (e) => {\n setCompanyName(e.target.value);\n };\n\n const handleCompanyNameBlur = () => {\n context.setCompanyName(companyName);\n };\n\n const handlePrimarySiteChange = (event) => {\n const url = event.target.value;\n setWebsite(url);\n setPrimarySiteValid(validatePrimarySite(url));\n };\n\n const handleDefaultObjectiveChange = (event) => {\n const newObjective = event.target.value;\n setDefaultObjective(newObjective); \n context.setDefaultObjective(newObjective); \n };\n\n const handleOverviewDatasourceChange = (event) => {\n const newOverviewDatasource = event.target.value;\n setOverviewDatasource(newOverviewDatasource); \n context.setOverviewDatasource(newOverviewDatasource); \n }\n\n const handleBaseCurrencyChange = (e) => {\n const newBaseCurrency = e.target.value;\n setBaseCurrency(newBaseCurrency);\n context.setBaseCurrency(newBaseCurrency); \n };\n\n const handleDisplayCurrencyChange = (e) => {\n const newDisplayCurrency = e.target.value;\n setDisplayCurrency(newDisplayCurrency);\n context.setDisplayCurrency(newDisplayCurrency); \n };\n\n const handleLogoChange = (e) => {\n const file = e.target.files[0];\n if (file && file.size > 10000000) {\n alert(\"Image must be less than 10MB. Consider using another image or compressing this one.\");\n } else if (file) {\n const fileUrl = URL.createObjectURL(file);\n setClientLogoUrl(fileUrl); // Update local state with the new logo URL\n context.setClientLogo(file);\n context.setClientLogoUrl(fileUrl); \n }\n };\n\n const handlePrimarySiteBlur = () => {\n context.setWebsite(website);\n };\n\n const validatePrimarySite = (url) => {\n const pattern = new RegExp(\n '^https?:\\\\/\\\\/' + \n '(([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + \n '(\\\\d{1,3}\\\\.){3}\\\\d{1,3}' + \n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + \n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + \n '(\\\\#[-a-z\\\\d_]*)?$', 'i');\n return pattern.test(url);\n };\n\n return (\n
    \n
    \n
    \n

    Company display name

    \n \n
    \n
    \n

    Company Website

    \n \n {!isPrimarySiteValid &&

    Must use valid URL which includes http or https

    }\n
    \n
    \n
    \n
    \n

    Default Dashboard Objective

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

    Total Website Conversions & Revenue Source

    \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
    \n

    Client Logo

    \n
    \n
    {companyLogo}
    \n
    \n \n \n
    \n
    \n

    Use a square (1:1) image for best results.

    \n
    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { Col, Form, Table } from \"react-bootstrap\";\nimport { SettingsContext } from './AccountSettingsButton'\nimport jsDig from \"utils/jsDig.js\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function DataPulseScripts(props) {\n\n const context = useContext(SettingsContext);\n\n console.log(\"Context: \", context)\n\n const handleCheckbox = (e, name) => {\n context.setDataPulseScripts({\n ...context.dataPulseScripts,\n [name]: e.target.checked ? \"1\" : \"0\"\n });\n }\n\n const handleScriptVariableChange = (e, scriptName, optionName) => {\n context.setScriptVariables({\n ...context.scriptVariables,\n [scriptName]: {\n ...context.scriptVariables[scriptName],\n [optionName]: e.target.value\n }\n });\n }\n\n return (\n <>\n {props.scripts.map((script) => {\n return (\n
    \n
    \n
    \n
    \n {\n handleCheckbox(e, script.name)\n }}\n defaultChecked={\n context.dataPulseScripts[script.name] == \"1\" ? true : false \n }\n />\n \n
    \n
    \n
    \n

    {script.desc}

    \n
    \n {script.options && (\n
    \n
    \n {script.options.map((option) => {\n return (\n
    \n \n {option.desc && (\n

    {option.desc}

    \n )}\n {\n handleScriptVariableChange(e, script.name, option.name);\n }}\n >\n
    \n )\n })}\n
    \n \n
    \n )}\n
    \n
    \n );\n })}\n \n );\n}","import React, { useState, useContext } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function GoogleAdsCampaignFilters() {\n const context = useContext(SettingsContext);\n const [googleAdsCampaignFiltersEnabled, setGoogleAdsCampaignFiltersEnabled] = useState(context.googleAdsCampaignFiltersEnabled);\n const [googleAdsCampaignFilters, setGoogleAdsCampaignFilters] = useState(context.googleAdsCampaignFilters || []);\n\n // Combined state and context updates\n const setFiltersAndContext = (newFilters) => {\n setGoogleAdsCampaignFilters(newFilters);\n context.setGoogleAdsCampaignFilters(newFilters);\n };\n\n const handleCheckboxChange = (event) => {\n setGoogleAdsCampaignFiltersEnabled(event.target.checked);\n context.setGoogleAdsCampaignFiltersEnabled(event.target.checked);\n };\n\n const addCustomConversion = () => {\n const newConversion = { id: new Date().valueOf(), type: \"exclusive\", name: \"\" };\n const updatedFilters = [...googleAdsCampaignFilters, newConversion];\n setFiltersAndContext(updatedFilters);\n };\n\n const deleteCustomConversion = (index) => {\n const updatedFilters = googleAdsCampaignFilters.filter((_, i) => i !== index);\n setFiltersAndContext(updatedFilters);\n };\n\n const handleCustomConversionChange = (index, field, value) => {\n const updatedFilters = googleAdsCampaignFilters.map((campaign, i) => {\n if (i === index) {\n return { ...campaign, [field]: value };\n }\n return campaign;\n });\n setFiltersAndContext(updatedFilters);\n };\n\n return (\n
    \n
    \n \n \n
    \n {googleAdsCampaignFiltersEnabled && (\n
    \n
    \n {googleAdsCampaignFilters.map((campaignFilter, index) => (\n
    \n
    \n \n
    \n handleCustomConversionChange(index, \"name\", e.target.value)}\n />\n \n
    \n ))}\n \n
    \n
    \n )}\n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport jsDig from \"utils/jsDig.js\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function GoogleAdsCustomConversions() {\n const context = useContext(SettingsContext);\n const [customConversionsEnabled, setCustomConversionsEnabled] = useState(context.googleAdsCustomConversionsEnabled);\n const [customConversions, setCustomConversions] = useState(context.googleAdsCustomConversions || []);\n\n const handleCheckboxChange = (event) => {\n setCustomConversionsEnabled(event.target.checked);\n context.setGoogleAdsCustomConversionsEnabled(event.target.checked);\n };\n\n const addCustomConversion = () => {\n setCustomConversions([...customConversions, { conversion_type: \"inclusive\", name: \"\", conversion_id: \"\" }]);\n context.setGoogleAdsCustomConversions([...customConversions, { conversion_type: \"inclusive\", name: \"\", conversion_id: \"\" }]);\n };\n\n const deleteCustomConversion = (index) => {\n const newCustomConversions = customConversions.filter((_, i) => i !== index);\n setCustomConversions(newCustomConversions);\n context.setGoogleAdsCustomConversions(newCustomConversions);\n };\n\n const handleCustomConversionChange = (index, field, value) => {\n const newCustomConversions = customConversions.map((customConversion, i) => {\n if (i === index) {\n return { ...customConversion, [field]: value };\n }\n return customConversion;\n });\n setCustomConversions(newCustomConversions);\n context.setGoogleAdsCustomConversions(newCustomConversions);\n };\n\n return (\n
    \n
    \n \n \n
    \n {customConversionsEnabled && (\n
    \n {customConversions.map((customConversion, index) => (\n
    \n
    \n \n
    \n handleCustomConversionChange(index, \"name\", e.target.value)} />\n handleCustomConversionChange(index, \"conversion_id\", e.target.value)} />\n \n
    \n ))}\n \n
    \n )}\n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport { SettingsContext } from './AccountSettingsButton'\nimport jsDig from \"utils/jsDig.js\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport default function ScriptBoxes(props) {\n\n const context = useContext(SettingsContext);\n\n const handleCheckbox = (e, name) => {\n context.setGoogleAdsScripts({\n ...context.googleAdsScripts,\n [name]: e.target.checked ? \"1\" : \"0\"\n });\n }\n\n const handleScriptVariableChange = (e, scriptName, optionName) => {\n context.setScriptVariables({\n ...context.scriptVariables,\n [scriptName]: {\n ...context.scriptVariables[scriptName],\n [optionName]: e.target.value\n }\n });\n }\n\n // Exclude NB in Shopping Script Vars\n\n const brandedKeywords = jsDig([\"exclude_nb_in_shopping\", \"branded_keywords\"], context.scriptVariables)\n\n const deleteBrandedKeyword = (e, kwNum) => {\n e.preventDefault();\n let newBrandedKeywords = {...brandedKeywords};\n delete newBrandedKeywords[kwNum];\n context.setScriptVariables({\n ...context.scriptVariables,\n exclude_nb_in_shopping: {\n ...context.scriptVariables.exclude_nb_in_shopping,\n branded_keywords: newBrandedKeywords\n }\n });\n };\n\n const addBrandedKeyword = (e) => {\n e.preventDefault();\n const newKey = uuidv4()\n context.setScriptVariables({\n ...context.scriptVariables,\n exclude_nb_in_shopping: {\n ...context.scriptVariables.exclude_nb_in_shopping,\n branded_keywords: {\n ...brandedKeywords,\n [newKey]: \"\"\n }\n }\n });\n };\n\n const handleBrandedKeywordChange = (kwNum, value) => {\n let oldKeywords = jsDig([\"exclude_nb_in_shopping\", \"branded_keywords\"], context.scriptVariables);\n let newKeywords = {...oldKeywords, [kwNum]: value};\n handleScriptVariableChange({target: {value: newKeywords}}, \"exclude_nb_in_shopping\", \"branded_keywords\");\n };\n\n return (\n <>\n {props.scripts.map((script) => {\n const scriptBoxClass = (script.name == \"exclude_nb_in_shopping\" || script.name == \"youtube_channel_excluder\") ? \"script-box-wide\" : \"script-box\";\n return (\n \n \n
    \n
    \n
    \n {handleCheckbox(e, script.name)}}\n defaultChecked={\n context.googleAdsScripts[script.name] == \"1\" ? true : false \n }\n />\n \n
    \n
    \n
    \n

    {script.desc}

    \n
    \n \n {script.name == \"pmax_performance_reporting_script\" && (\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\n {script.name == \"exclude_nb_in_shopping\" ? ( // EXCLUDE NON-BRAND IN SHOPPING SCRIPT\n <>\n
    \n

    Please add branded keywords - keywords should only match variations of the company name, no long-tail keywords:

    \n

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

    \n
    \n
    \n
    \n {brandedKeywords && Object.keys(brandedKeywords).map((kwNum, i) => {\n return (\n
    \n {kwNum}.\n handleBrandedKeywordChange(kwNum, e.target.value)}\n />\n deleteBrandedKeyword(e, kwNum)}>\n \n \n
    \n );\n })}\n
    \n
    \n \n \n ) : (script.name == \"youtube_channel_excluder\") ? ( // YOUTUBE CHANNEL EXCLUDER SCRIPT\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 \n {\n handleScriptVariableChange(e, script.name, \"google_sheet\");\n }}\n >\n
    \n
    \n \n

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

    \n {\n handleScriptVariableChange(e, script.name, \"allowed_countries\");\n }}\n >\n
    \n
    \n \n

    Select a predefined time range.

    \n
    \n {\n handleScriptVariableChange(e, script.name, \"impressions_time_range\");\n }}\n >\n \n \n \n \n \n
    \n
    \n
    \n \n

    Minimum number of impressions to consider a channel for exclusion.

    \n {\n handleScriptVariableChange(e, script.name, \"impressions_threshold\");\n }}\n >\n
    \n
    \n \n ) : (\n <>\n {script.options && (\n
    \n
    \n {script.options.map((option) => {\n return (\n
    \n \n {option.desc && (\n

    {option.desc}

    \n )}\n {\n handleScriptVariableChange(e, script.name, option.name);\n }}\n >\n
    \n )\n })}\n
    \n \n
    \n )}\n \n )}\n
    \n \n
    \n );\n })}\n \n )\n}\n","import React, { useState, useRef, useContext } from \"react\";\nimport { SettingsContext } from './AccountSettingsButton';\nimport { Tooltip, OverlayTrigger, Row, Col, Button, Table, Form } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig.js\";\n\nexport default function Inflation() {\n const props = useContext(SettingsContext);\n const section = \"search\";\n const platforms = [\"Google\", \"Microsoft\"]\n const csvUploadRef = useRef();\n const lodashClonedeep = require(\"lodash/cloneDeep\");\n const [tempValue, setTempValue] = useState({});\n\n let document = require(\"images/lite/icons/document.png\");\n document = (\n \"document\"\n );\n\n let transfer = require(\"images/lite/icons/transfer.png\");\n transfer = (\n \"transfer\"\n );\n\n let paste = require(\"images/lite/icons/paste.png\");\n paste = (\n \"paste\"\n );\n\n let calendarBolt = require(\"images/lite/icons/calendarBolt.png\");\n calendarBolt = (\n \"calendarBolt\"\n );\n \n\n const [selectedPlatform, setSelectedPlatform] = useState(platforms[0]);\n let yieldMetrics = [\"Revenue\", \"Conversions\"];\n const [inflation, setInflation] = useState(props.inflation);\n const copyInflation = () => {\n let copyInflationArray = { ...inflation };\n if (selectedPlatform === 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[`${platforms[1].toLowerCase()}`]);\n } else if (selectedPlatform === platforms[1]) {\n copyInflationArray[`${selectedPlatform.toLowerCase()}`] = lodashClonedeep(inflation[`${platforms[0].toLowerCase()}`]);\n }\n setInflation({ ...copyInflationArray });\n props.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 let cellValue = yields[currentRow].split(\",\")[currentColumn];\n $(this).val(cellValue); \n if (!newInflation[selectedPlatform.toLowerCase()]) {\n newInflation[selectedPlatform.toLowerCase()] = {};\n }\n if (!newInflation[selectedPlatform.toLowerCase()][yieldMetrics[currentColumn].toLowerCase()]) {\n newInflation[selectedPlatform.toLowerCase()][yieldMetrics[currentColumn].toLowerCase()] = {};\n }\n newInflation[selectedPlatform.toLowerCase()][yieldMetrics[currentColumn].toLowerCase()][currentRow + 1] = cellValue;\n }\n if ((index + 1) % tableColumns == 0) {\n currentRow++;\n currentColumn = 0;\n } else {\n currentColumn++;\n }\n });\n setInflation(newInflation);\n }\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 return (\n <>\n
    \n {platforms === \"Facebook\" ? (\n <>\n \n \n \n \n ) : (\n <>\n
    \n

    {calendarBolt} Inflation (past 30 days)

    \n
    \n
    \n

    Show inflation for:

    \n
    \n {\n setSelectedPlatform(e.target.value);\n }}\n value={selectedPlatform}>\n {platforms.map((platform, index) => {\n return ;\n })}\n \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 {platforms !== \"Facebook\" && (\n \n )}\n
    \n\n
    \n {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 // Update temporary value while typing\n setTempValue({\n ...tempValue,\n [`${platform}-${metric}-${day}`]: e.target.value,\n });\n }}\n onBlur={(e) => {\n let newInflation = { ...inflation };\n const inputValue = e.target.value === \"\" ? \"\" : parseFloat(e.target.value) || 0;\n \n // Convert input to 0 if it's negative\n const sanitizedValue = inputValue < 0 ? 0 : inputValue;\n \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] = sanitizedValue;\n \n // Update the main inflation state and reset tempValue for this input\n setInflation(newInflation);\n setTempValue((prev) => ({\n ...prev,\n [`${platform}-${metric}-${day}`]: sanitizedValue,\n }));\n }}\n \n />\n
    \n
    \n \n );\n })}\n
    \n );\n })}\n

    Negative values are not permitted

    \n
    \n
    \n \n );\n}\n","import React, { useContext, useState } from \"react\";\nimport { SettingsContext } from './AccountSettingsButton';\nimport jsDig from \"utils/jsDig.js\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport { Modal } from 'react-bootstrap';\nimport showAlert from \"utils/showAlert\";\n\nexport default function LastDataPullStatus(props) {\n const context = useContext(SettingsContext);\n const [showModal, setShowModal] = useState(false);\n\n const toggleModal = () => setShowModal(!showModal);\n\n let errorIcon = require(\"images/lite/icons/alert-circle.svg\");\n errorIcon = ;\n let successIcon = require(\"images/lite/icons/check.svg\");\n successIcon = ;\n\n const errors = context.data_pull_errors ? context.data_pull_errors.filter((error) => error.platform == props.platform) : [];\n const active = context.active_datasources.includes(props.platform);\n\n const formatErrorDate = (dateString) => {\n const date = new Date(dateString);\n\n // Format the date into a readable format in the user's local timezone\n const formattedDate = date.toLocaleString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: '2-digit',\n hour12: true // Use 12-hour time with AM/PM\n });\n\n return formattedDate;\n }\n\n const fourDaysAgo = new Date();\n fourDaysAgo.setDate(fourDaysAgo.getDate() - 4);\n \n const uniqueMessages = new Set();\n \n const filteredErrors = errors\n .filter(error => new Date(error.created_at) >= fourDaysAgo) // Remove errors older than 4 days\n .sort((a, b) => new Date(b.created_at) - new Date(a.created_at)) // Sort by most recent created_at\n .filter(error => {\n const messageWithoutId = error.message.replace(/\\(\\s*fbtrace_id:\\s*[A-Za-z0-9_-]+\\s*\\)/, '').trim();\n if (uniqueMessages.has(messageWithoutId)) {\n return false;\n } else {\n uniqueMessages.add(messageWithoutId);\n return true;\n }\n });\n\n \n \n return (\n
    \n {filteredErrors.length > 0 ? (\n \n ) : (\n active ? (\n successIcon\n ) : (\n \n )\n )}\n\n \n \n \n

    Data Pull Errors

    \n
    \n
    \n \n {filteredErrors.length > 0 ? (\n filteredErrors.map((error, index) => (\n
    \n {formatErrorDate(error.created_at)} - {error.message}\n
    \n ))\n ) : (\n

    No errors.

    \n )}\n
    \n \n \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport getCurrencyDetails from \"utils/getCurrencyDetails\";\n\nexport default function LiteCurrencySelector({ selectedCurrency, setSelectedCurrency, nameAttribute }) {\n const currencies = [\n \"USD\", \"EUR\", \"JPY\", \"GBP\", \"AUD\", \"CAD\", \n \"CHF\", \"CNY\", \"HKD\", \"NZD\", \"AED\", \"INR\", \n \"SGD\", \"KRW\"\n ];\n\n return (\n
    \n setSelectedCurrency(e)}\n >\n {currencies.map((currency) => {\n const currencyDetails = getCurrencyDetails(currency);\n return (\n \n );\n })}\n \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport jsDig from \"utils/jsDig.js\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function MetaAdsCustomConversions() {\n const context = useContext(SettingsContext);\n const [customConversions, setCustomConversions] = useState(context.social_section.custom_conversions || []);\n\n const addCustomConversion = () => {\n setCustomConversions([...customConversions, {id: new Date().valueOf(), name: \"\", conversion_id: \"\" }]);\n context.setMetaAdsCustomConversions([...customConversions, {id: new Date().valueOf(), name: \"\", conversion_id: \"\" }]);\n };\n\n const deleteCustomConversion = (index) => {\n const newCustomConversions = customConversions.filter((_, i) => i !== index);\n setCustomConversions(newCustomConversions);\n context.setMetaAdsCustomConversions(newCustomConversions);\n };\n\n const handleCustomConversionChange = (index, field, value) => {\n const newCustomConversions = customConversions.map((customConversion, i) => {\n if (i === index) {\n return { ...customConversion, [field]: value };\n }\n return customConversion;\n });\n setCustomConversions(newCustomConversions);\n context.setMetaAdsCustomConversions(newCustomConversions);\n };\n\n return (\n
    \n
    \n {customConversions.map((customConversion, index) => (\n
    \n handleCustomConversionChange(index, \"name\", e.target.value)} />\n handleCustomConversionChange(index, \"conversion_id\", e.target.value)} />\n \n
    \n ))}\n \n
    \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { Tab, Nav, Container, Row, Col, Button, Form } from \"react-bootstrap\";\nimport GoogleAdsScripts from \"./GoogleAdsScripts\";\nimport DataPulseScripts from \"./DataPulseScripts\";\nimport { SettingsContext } from './AccountSettingsButton'\n\nexport default function Scripts() {\n\tlet exclaimTriangle = require(\"images/icons/exclaim-triangle.png\");\n\texclaimTriangle = ;\n\n const props = useContext(SettingsContext);\n\n const googleAdsScripts = [\n {\n name: \"text_converting_query_mining_script\",\n title: \"Text converting query mining script\",\n desc: \"Goes through all search queries that converted on an account during the previous two months and creates ad groups based on the converted query text.\",\n },\n {\n name: \"pmax_converting_query_mining_script\",\n title: \"PMAX converting query mining script\",\n desc: \"Goes through all search queries that converted on PMAX campaigns and creates ad groups based on the converted query text.\",\n options: [\n {\n name: \"days_to_query\",\n title: \"Number of days to query:\",\n placeholder: \"Default 30\",\n },\n {\n name: \"conversions_threshold\",\n title: \"Conversions threshold:\",\n placeholder: \"Default 2\",\n },\n {\n name: \"impressions_threshold\",\n title: \"Impressions threshold:\",\n placeholder: \"Default 15\",\n },\n ]\n },\n {\n name: \"pmax_performance_reporting_script\",\n title: \"PMAX performance reporting script\",\n desc: \"Provides a detailed view of PMAX campaign performace.\",\n options: [\n {\n name: \"google_sheet_url\",\n title: \"Google Sheet URL:\",\n placeholder: \"https://docs.google.com/spreadsheets/...\",\n }\n ]\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 dataPulseScripts = [\n {\n name: \"impressions_emergency_detector_google_ads_search\",\n title: \"Impressions emergency detector - Google Ads Search\",\n desc: \"Creates an alert and sends an email if impressions drop to 0.\",\n },\n {\n name: \"impressions_emergency_detector_google_ads_display\",\n title: \"Impressions emergency detector - Google Ads Display\",\n desc: \"Creates an alert and sends an email if impressions drop to 0.\",\n },\n {\n name: \"impressions_emergency_detector_google_ads_video\",\n title: \"Impressions emergency detector - Google Ads Video\",\n desc: \"Creates an alert and sends an email if impressions drop to 0.\",\n },\n {\n name: \"impressions_emergency_detector_microsoft_ads_search\",\n title: \"Impressions emergency detector - Microsoft Ads Search\",\n desc: \"Creates an alert and sends an email if impressions drop to 0.\",\n },\n {\n name: \"impressions_emergency_detector_meta_ads_social\",\n title: \"Impressions emergency detector - Meta Ads Social\",\n desc: \"Creates an alert and sends an email if impressions drop to 0.\",\n },\n {\n name: \"disapproved_ads_detector\",\n title: \"Disapproved ads detector\",\n desc: \"Creates an alert with a list of disapproved ads on Google ads & Microsoft.\",\n },\n {\n name: \"keyword_bleeder_detector\",\n title: \"Keyword bleeder detector\",\n desc: \"Emails the PPC team if a Google Ads or Microsoft keyword has spent over a specified threshold 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: \"url_issue_detector\",\n title: \"URL issue detector\",\n desc: \"Goes through all ads on Google Ads account and makes an alert of pages that produce unacceptable response codes.\",\n },\n {\n name: \"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\treturn (\n\t\t<>\n
    \n
    \n
    \n
    DataPulse Scripts
    \n

    \n DataPulse scripts can be used to provide useful alerts when issues occur on this account. Some require additional configuration. Please read the description of each script carefully before enabling.\n

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    Google Ads Scripts
    \n

    \n Google Ads scripts can be applied to your account to help manage and optimize your campaigns. These scripts can be enabled or disabled at any time. Some require additional configuration. Please read the description of each script carefully before enabling.\n

    \n
    \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 } 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 - keywords should only match variations of the company name, no long-tail 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 Confetti from \"react-dom-confetti\";\nimport { Row, Col, Form, Modal, Button, Table } from \"react-bootstrap\";\nimport CreateFirstAccountModal from \"home/CreateFirstAccountModal\";\nimport SetUpApiAccessModal from \"home/SetUpApiAccessModal\";\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 showDeleteModal: false,\n clientToDelete: null,\n };\n }\n\n componentDidMount() {\n this.setState({ clients: this.props.clients }, () => {\n this.sortClients();\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 this.setState({ activeClients: newActiveClients, deactivatedClients: newDeactivatedClients });\n }\n\n handleShowCreateModal = () => {\n this.setState({ show: true });\n };\n\n handleShowDeleteModal = (client) => {\n this.setState({ showDeleteModal: true, clientToDelete: client });\n };\n\n handleHideDeleteModal = () => {\n this.setState({ showDeleteModal: false, clientToDelete: null });\n };\n\n confirmDeleteClient = () => {\n if (this.state.clientToDelete) {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/client-management/remove-client/\" + this.state.clientToDelete.client_company_id,\n success: () => {\n this.setState({ showDeleteModal: false, clientToDelete: null });\n this.sortClients(); // Re-sort clients after deletion\n }\n });\n }\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
    \n

    Manage my Accounts

    \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 ChangeAccount 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 ChangeAccount 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\n this.setState({ show: false })} style={{ textAlign: \"center\" }}>\n
    \n \n {\" \"}\n \n \n

    What is the name of the company?

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

    \n This field determines how this account will be displayed in DataPulse.

    Just the simplest form of the company name is ideal.\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

    Delete Client

    \n
    \n
    \n \n
    \n

    Are you sure you want to permanently delete {this.state.clientToDelete ? this.state.clientToDelete.company_name : 'this client'}? All data associated with this client will be permanently deleted.

    \n \n \n
    \n
    \n
    \n\n {this.props.create_first_account.show && }\n {this.props.set_up_api_access.show && }\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","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteBuyBoxTable from \"dashboards/lite/LiteBuyBoxTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport YearPicker from \"dashboards/lite/YearPicker\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\n\nexport default function AmazonDashboard(props) {\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n const buyBoxTableDimensions = jsDig([\"overall\", \"buy_box_data\", \"last_30\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"buy_box_data\", \"last_30\"], props.table_data)) : [];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n // Read the 'year' query param if it exists\n const urlParams = new URLSearchParams(window.location.search);\n const queryYear = parseInt(urlParams.get(\"year\"), 10);\n\n // If queryYear is not a valid number, use the current year, else use queryYear\n const thisYear = isNaN(queryYear) ? new Date().getFullYear() : queryYear;\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/amazon.svg\");\n mainIcon =
    \n let disabledIcon = require(\"images/lite/icons/coming-soon.png\");\n disabledIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"amazon\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Amazon Dashboard

    \n
    \n
    \n
    \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n \n \n {props.user_is_employee && (\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 \", data: jsDig([\"overall\", \"l7\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport BillingDashboardTable from \"dashboards/lite/BillingDashboardTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\n\nexport default function BillingDashboard(props) {\n console.log(props)\n const billingDimensions = jsDig([\"overall\", \"total\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\"], props.table_data)).sort() : [];\n\n let mainIcon = require(\"images/lite/icons/bar-separated.svg\");\n mainIcon =
    \n\n const lastMonthDate = new Date();\n lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);\n const lastMonthName = lastMonthDate.toLocaleString('default', { month: 'long' });\n\n const subHeaderOrder = {\n \"total\": [\"Total\"],\n \"search\": [\"Google Ads\", \"Microsoft Ads\", \"Total\"],\n \"social\": [\"Facebook Ads\", \"TikTok Ads\", \"Pinterest Ads\", \"YouTube\", \"Total\"],\n \"marketplace\": [\"Amazon Ads\", \"Total\"]\n }\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Spend Summary Report

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { last, startCase, toLower } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\nimport formatMetric from \"utils/formatMetric\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function BillingDashboardTable(props) {\n\n const [isDarkMode, setIsDarkMode] = useState(document.body.classList.contains('dark-theme'));\n\n let chevronDown = require(\"images/lite/icons/chevron-down.png\");\n chevronDown = ;\n let chevronUp = require(\"images/lite/icons/chevron-down.png\");\n chevronUp = ;\n\n useEffect(() => {\n const handleThemeChange = () => {\n setIsDarkMode(document.body.classList.contains('dark-theme'));\n };\n\n // Attach a mutation observer to listen for changes in the body class\n const observer = new MutationObserver(handleThemeChange);\n observer.observe(document.body, { attributes: true, attributeFilter: ['class'] });\n\n // Cleanup observer on unmount\n return () => observer.disconnect();\n }, []);\n\n const metaAds = () => (\n \n \n \n );\n\n let errorIcon = require(\"images/lite/icons/alert-circle.svg\");\n errorIcon = ;\n let successIcon = require(\"images/lite/icons/check.svg\");\n successIcon = ;\n\n const googleAds = () => (\n \n \n \n \n \n );\n\n const microsoftAds = () => (\n \n \n \n );\n\n const socialIcon = () => (\n \n \n \n \n );\n\n const tiktokAds = () => (\n \n \n \n );\n\n const searchIcon = () => (\n \n \n \n \n );\n\n const amazonAds = () => (\n \n \n \n );\n\n const pinterestAds = () => (\n \n \n \n );\n\n const youtubeAds = () => (\n \n \n \n );\n\n const facebookAds = () => (\n \n \n \n );\n\n const [showDropdown, setShowDropdown] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState(props.groups && props.groups.length > 0 ? props.groups[0] : null);\n const [isCollapsed, setIsCollapsed] = useState(props.collapsed || false);\n const dropdownRef = useRef(null);\n const tableContainerRef = useRef(null);\n const collapsible = props.collapsed == true || props.collapsed == false ? true : false;\n \n useEffect(() => {\n const handleClickOutside = (event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowDropdown(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n \n useEffect(() => {\n if (collapsible) {\n // Adjust max-height based on the collapsed state and the content of the table\n const maxHeight = isCollapsed ? \"0px\" : `${tableContainerRef.current.scrollHeight}px`;\n tableContainerRef.current.style.maxHeight = maxHeight;\n }\n }, [isCollapsed]);\n \n const toggleCollapse = () => setIsCollapsed(!isCollapsed);\n const toggleDropdown = () => setShowDropdown(!showDropdown);\n const selectGroup = (group) => {\n setSelectedGroup(group);\n setShowDropdown(false);\n };\n\n const baseUrl = props.baseUrl ? props.baseUrl.replace(/\\/$/, \"\") : null;\n\n const renderGroupSelector = () => {\n if (!props.groups || props.groups.length === 0) {\n return null;\n }\n\n return (\n
    \n \n {showDropdown && (\n
    \n {props.groups.map((group) => (\n
    selectGroup(group)}>\n {group}\n
    \n ))}\n
    \n )}\n
    \n );\n };\n\n const renderTopSummaryRow = () => {\n if (props.topSummaryRow) {\n const dim = jsDig([\"dimension\"], props.topSummaryRow);\n const topSummaryData = jsDig([\"data\"], props.topSummaryRow);\n return (\n <>\n \n {dim}\n {props.headerOrder.map((metric, index) => {\n const subHeaders = props.subHeaderOrder[metric] || [];\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName], topSummaryData) : jsDig([metricName], topSummaryData);\n\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, false, false, false, dim, subHeaders) : \n renderBlankRow(false, subHeaders.length)\n }\n \n );\n })}\n \n \n )\n } \n\n }\n\n const renderTableHeader = () => {\n let columnWidth = 100 / (props.headerOrder.length + 1);\n return (\n <>\n \n \n {props.headerOrder.map((metric, index) => {\n const last = props.headerOrder.length - 1 === index;\n const subHeaders = props.subHeaderOrder[metric] || []; // Access the array for each metric\n return (\n \n {getColumnName(metric)}\n \n );\n })}\n \n \n \n {props.headerOrder.map((metric, index) => {\n const subHeaders = props.subHeaderOrder[metric] || []; // Access the array for each metric\n const last = props.headerOrder.length - 1 === index;\n return subHeaders.map((subHeader, subIndex) => (\n \n {subHeader}\n \n ));\n })}\n \n \n );\n };\n \n \n\n const renderTableRows = () => {\n return props.dimensions.map((dim) => {\n const borderClass = dim.toLowerCase() === \"ytd\" ? \"lite-border-top\" : false;\n const monthName = new Date().toLocaleString('en', { month: 'long' });\n let showProjection = dim.toLowerCase() === monthName.toLowerCase() || dim.toLowerCase() === \"total\";\n \n return (\n \n \n \n
    \n {dim}\n {(props.dataPullErrors.includes(dim)) ? (\n \n ) : (\n \n )}\n
    \n \n {props.headerOrder.map((metric, index) => {\n const subHeaders = props.subHeaderOrder[metric] || [];\n const metricData = selectedGroup\n ? jsDig([toLower(selectedGroup), metric, dim], props.data)\n : jsDig([metric, dim], props.data);\n const last = props.headerOrder.length - 1 === index;\n return (\n \n {metricData\n ? formatCells(metricData, metric, borderClass, last, showProjection, dim, subHeaders)\n : renderBlankRow(borderClass, subHeaders.length)\n }\n \n );\n })}\n \n
    \n );\n });\n };\n \n\n const renderBlankRow = (borderClass, subHeaderCount) => {\n return Array.from({ length: subHeaderCount }).map((_, index) => (\n \n
     
    \n \n ));\n };\n \n\n // Helper function to format individual metric\n const formatCells = (metric, metricName, borderClass, last, showProjection, dim, subHeaders) => {\n return (\n <>\n {subHeaders.map((subHeader, index) => {\n let metricValue = null;\n\n if (props.tableName.includes(\"Spend Summary\")) {\n if (subHeader == \"Total\") {\n metricValue = metric[\"total_spend\"];\n } else if (subHeader == \"Google Ads\") {\n metricValue = metric[\"google_ads_spend\"];\n } else if (subHeader == \"Microsoft Ads\") {\n metricValue = metric[\"microsoft_ads_spend\"];\n } else if (subHeader == \"Facebook Ads\") {\n metricValue = metric[\"facebook_ads_spend\"];\n } else if (subHeader == \"TikTok Ads\") {\n metricValue = metric[\"tiktok_ads_spend\"];\n } else if (subHeader == \"Pinterest Ads\") {\n metricValue = metric[\"pinterest_ads_spend\"];\n } else if (subHeader == \"YouTube\") {\n metricValue = metric[\"youtube_spend\"];\n } else if (subHeader == \"Amazon Ads\") {\n metricValue = metric[\"amazon_ads_spend\"];\n }\n } else {\n metricValue = metric[subHeader] || metric;\n }\n \n return (\n \n
    \n {/* {formatMetric(metricName, metricValue, subHeader, false)} */}\n {formatMetric(\"spend\", metricValue, subHeader, false)}\n
    \n \n );\n })}\n \n );\n };\n \n\n const getColumnName = (metric) => {\n switch (metric) {\n case \"spend\":\n return \"Spend\";\n case \"clicks\":\n return \"Clicks\";\n case \"conversions\":\n return \"Conversions\";\n case \"revenue\":\n return \"Revenue\";\n case \"roas\":\n return \"ROAS\";\n case \"cpa\":\n return \"CPA\";\n case \"mer\":\n return \"MER\";\n case \"frequency\":\n return \"Frequency\";\n case \"conversion_rate\":\n return \"Conversion Rate\";\n case \"sessions\":\n return \"Sessions\";\n case \"paid_sessions\":\n return \"Paid Sessions\";\n case \"organic_sessions\":\n return \"Organic Sessions\";\n case \"impressions\":\n return \"Impressions\";\n case \"reach\":\n return \"Reach\";\n case \"new_customers\":\n return \"New Customers\";\n case \"aov\":\n return \"AOV\";\n case \"open_rate\":\n return \"Open Rate\";\n case \"ctr\":\n return \"CTR\";\n case \"bounce_rate\":\n return \"Bounce Rate\";\n case \"email_list_growth\":\n return \"Email List Growth\";\n case \"affiliates\":\n return \"Affiliate\";\n case \"direct\":\n return \"Direct\";\n case \"referral\":\n return \"Referral\";\n case \"audio\":\n return \"Audio\";\n case \"mobile_push_notifications\":\n return \"Mobile Push Notifications\";\n case \"sms\":\n return \"SMS\";\n case \"last_30\":\n return \"Last 30 Days\";\n default:\n return startCase(metric);\n }\n }\n\n const renderTableName = (tableName, selectedGroup = \"\") => {\n // let tableName = tableName\n if (selectedGroup != \"\") {\n selectedGroup = \"- \" + selectedGroup\n }\n let tableIcon = \"\"\n if (tableName.toLowerCase().includes(\"search\")) {\n if (selectedGroup.toLowerCase().includes(\"google ads\")) {\n tableIcon = googleAds()\n } else if (selectedGroup.toLowerCase().includes(\"microsoft ads\")) {\n tableIcon = microsoftAds()\n }\n else tableIcon = searchIcon()\n } else if (tableName.toLowerCase().includes(\"social\")) {\n if (selectedGroup.toLowerCase().includes(\"facebook\")) {\n tableIcon = facebookAds()\n } else if (selectedGroup.toLowerCase().includes(\"tiktok\")) {\n tableIcon = tiktokAds()\n }\n else tableIcon = socialIcon()\n } else if (tableName.toLowerCase().includes(\"facebook\") && tableName.toLowerCase().includes(\"instagram\")) {\n tableIcon = metaAds()\n } else if (tableName.toLowerCase().includes(\"tiktok\")) {\n tableIcon = tiktokAds()\n } else if (tableName.toLowerCase().includes(\"youtube\")) {\n tableIcon = youtubeAds()\n } else if (tableName.toLowerCase().includes(\"pinterest\")) {\n tableIcon = pinterestAds()\n } else if (tableName.toLowerCase().includes(\"amazon\")) {\n tableIcon = amazonAds()\n }\n\n else tableIcon = \"\"\n\n return(\n
    \n
    \n {tableIcon}\n
    \n
    \n {tableName} {selectedGroup}\n
    \n
    \n )\n }\n\n const exportTableToCSV = () => {\n const rows = [];\n const currentYear = new Date().getFullYear();\n const previousYear = currentYear - 1;\n\n // Headers\n const headers = ['Dimension'];\n const subHeaders = [''];\n \n props.headerOrder.forEach((header) => {\n headers.push(getColumnName(header));\n headers.push(''); // Empty space for the subheader row\n headers.push('');\n });\n\n props.headerOrder.forEach((header) => {\n subHeaders.push(previousYear);\n subHeaders.push(currentYear);\n subHeaders.push('Y/Y');\n });\n\n rows.push(headers.join(','));\n rows.push(subHeaders.join(','));\n\n // Data Rows\n props.dimensions.forEach((dim) => {\n const row = [dim]; // First column is the dimension name\n \n props.headerOrder.forEach((metric) => {\n const metricName = toLower(metric);\n const metricData = selectedGroup\n ? jsDig([toLower(selectedGroup), metricName, dim], props.data)\n : jsDig([metricName, dim], props.data);\n \n // Handling each subheader value\n let currentValue = '';\n let previousValue = '';\n let yoyValue = '';\n\n if (metricData) {\n previousValue = metricData['previous'] !== undefined ? formatMetric(metricName, metricData['previous'], previousYear) : '';\n currentValue = metricData['current'] !== undefined ? formatMetric(metricName, metricData['current'], currentYear) : '';\n yoyValue = metricData['comparison'] !== undefined ? formatMetric(metricName, metricData['comparison'], 'Y/Y') : '';\n }\n\n // Ensure proper formatting by enclosing values in quotes if they contain commas or special characters\n row.push(`\"${previousValue}\"`);\n row.push(`\"${currentValue}\"`);\n row.push(`\"${yoyValue}\"`);\n });\n\n rows.push(row.join(','));\n });\n\n // Create and download the CSV file\n const csvContent = \"data:text/csv;charset=utf-8,\" + rows.join(\"\\n\");\n const encodedUri = encodeURI(csvContent);\n const link = document.createElement(\"a\");\n link.setAttribute(\"href\", encodedUri);\n link.setAttribute(\"download\", `${props.tableName || 'table_data'}.csv`);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\n return (\n <>\n
    \n {/* Export Button */}\n {/* */}\n \n
    \n
    {renderGroupSelector()}
    \n
    {renderTableName(props.tableName, selectedGroup ? selectedGroup : \"\")}
    \n
    \n
    \n {isCollapsed ? chevronDown : chevronUp}\n
    \n
    \n
    \n
    \n \n \n {renderTableHeader()}\n \n \n {renderTopSummaryRow()}\n {renderTableRows()}\n \n
    \n
    \n
    \n {props.disabledMsg && (\n
    \n {props.disabledMsg}\n
    \n )}\n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport showAlert from \"utils/showAlert\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function SetUpApiAccessModal(props) {\n const [isModalVisible, setIsModalVisible] = useState(false);\n\n const hideModal = () => setIsModalVisible(false);\n\n let tooltipMessage = \"\";\n if (props.title == \"Marketing Spend Funnel Allocation\") {\n tooltipMessage = \"This chart shows the allocation of your marketing spend across the different stages of the marketing funnel. Click this tooltip to see how the data is organized.\";\n } else if (props.title == \"Prospecting vs Remarketing L60D\") {\n tooltipMessage = \"This chart shows your paid social prospecting spend compared to remarketing. Click this tooltip to see how the data is organized.\";\n } else if (props.title == \"Branded vs. Non-Branded L60D\") {\n tooltipMessage = \"This chart shows your paid search branded spend compared to non-branded. Click this tooltip to see how the data is organized.\";\n }\n\n const modalBodyText = () => {\n if (props.title == \"Marketing Spend Funnel Allocation\") {\n return (\n <>\n

    This chart organizes your marketing campaigns based on their names. If some campaigns show as 'Uncategorized,' you might need to adjust their names to match the filters below:

    \n

    (Campaign names are not case-sensitive)

    \n \n
    Top of Funnel:
    \n
      \n
    • Any campaign with 'prospecting' in the name
    • \n
    • All Google Ads display, discovery, and demand gen campaigns
    • \n
    \n \n
    Mid Funnel:
    \n
      \n
    • Google and Microsoft Ads search and shopping campaigns that do not include 'branded'
    • \n
    • Google Ads performance max campaigns that do not include 'branded'
    • \n
    \n \n
    Lower Funnel:
    \n
      \n
    • Google and Microsoft Ads search, shopping, and performance max campaigns that include 'branded'
    • \n
    • Google Ads display, discovery, and video (YouTube) campaigns that include 'remarketing' or 'branded'
    • \n
    • Meta, TikTok, and Pinterest Ads campaigns that include 'remarketing'
    • \n
    \n \n

    Campaigns that don't match these filters will be marked as 'Uncategorized'.

    \n \n );\n\n } else if (props.title == \"Prospecting vs Remarketing L60D\") {\n return (\n <>\n

    This chart shows your prospecting spend compared to remarketing for Paid Social platforms. Data will be tracked here if the campaigns match the filters below:

    \n

    (Campaign names are not case-sensitive)

    \n \n
    Prospecting:
    \n
      \n
    • Meta Ads, TikTok Ads, Pinterest Ads & YouTube campaigns that include 'prospecting' in the title
    • \n
    • Google Ads display & demand gen campaigns that include 'prospecting' in the title
    • \n
    \n\n
    Remarketing:
    \n
      \n
    • Meta Ads, TikTok Ads, Pinterest Ads & YouTube campaigns that include 'remarketing' in the title
    • \n
    • Google Ads display & demand gen campaigns that include 'remarketing' in the title
    • \n
    \n \n );\n\n } else if (props.title == \"Branded vs. Non-Branded L60D\") {\n return (\n <>\n

    This chart shows your branded spend compared to non-branded for Paid Search platforms. Data will be tracked here if the campaigns match the filters below:

    \n

    (Campaign names are not case-sensitive)

    \n\n
    Branded:
    \n
      \n
    • Google and Microsoft Ads search, shopping, and performance max campaigns that include 'branded' in the title
    • \n
    \n\n
    Non-Branded:
    \n
      \n
    • Google and Microsoft Ads search, shopping, and performance max campaigns that do not include 'branded' in the title
    • \n
    \n \n );\n }\n }\n\n return (\n <>\n
    setIsModalVisible(true)}>\n \n
    \n\n \n \n \n

    {props.title}

    \n
    \n
    \n \n
    \n {modalBodyText()}\n
    \n\n
    \n \n
    \n
    \n
    \n \n );\n}","import React, { useState, useEffect, useRef } from 'react';\nimport { Modal } from \"react-bootstrap\";\nimport { startCase, capitalize } from \"lodash\";\nimport showAlert from \"utils/showAlert\";\nimport jsDig from \"utils/jsDig.js\";\n\n// Dashboard options is structured like this in DB\n// {\n// \"dashboard_name\": {\n// \"modifier_name\": {\n// \"enabled\": true,\n// \"config\": {\n// \"option_name\": \"value\"\n// }\n// }\n// }\n// }\n\nexport default function DashboardOptions(props) {\n console.log(props);\n const [isModalVisible, setIsModalVisible] = useState(false);\n const showModal = () => setIsModalVisible(true);\n const hideModal = () => setIsModalVisible(false);\n const [dashboardOptions, setDashboardOptions] = useState(props.dashboardOptions);\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n const dashboardModifiers = {\n \"overview\": [],\n \"paid_social\": [],\n \"paid_search\": [\n {\n \"name\": \"show_branded_and_non_branded_l7d_tables\",\n \"title\": \"Show Branded and Non-Branded L7D Tables\",\n \"desc\": \"Show the Branded and Non-Branded L7D tables on the Paid Search dashboard.\",\n \"options\": []\n },\n ],\n \"organic_social\": [],\n \"organic_search\": [],\n \"email\": [],\n \"amazon\": [],\n \"other\": [],\n }\n const currentModifiers = dashboardModifiers[props.dashboardType];\n\n const handleCheckbox = (e, name) => {\n const isChecked = e.target.checked;\n const newDashboardOptions = {\n ...dashboardOptions,\n [props.dashboardType]: {\n ...jsDig([props.dashboardType], dashboardOptions),\n [name]: {\n enabled: isChecked,\n config: jsDig([props.dashboardType, name, \"config\"], dashboardOptions) || {}\n }\n }\n };\n setDashboardOptions(newDashboardOptions);\n }\n\n const handleModifierConfigChange = (e, modifierName, optionName) => {\n const newValue = e.target.value;\n const newDashboardOptions = {\n ...dashboardOptions,\n [props.dashboardType]: {\n ...jsDig([props.dashboardType], dashboardOptions),\n [modifierName]: {\n enabled: jsDig([props.dashboardType, modifierName, \"enabled\"], dashboardOptions),\n config: {\n ...jsDig([props.dashboardType, modifierName, \"config\"], dashboardOptions),\n [optionName]: newValue\n }\n }\n }\n };\n setDashboardOptions(newDashboardOptions);\n }\n\n const saveDashboardOptions = async () => {\n console.log('Saving dashboard options', dashboardOptions);\n const response = await fetch('/datapulse/dashboards/update-dashboard-options', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n body: JSON.stringify({\n account_id: props.accountId,\n dashboard_options: dashboardOptions\n })\n });\n\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n console.log('Dashboard options saved successfully', data);\n props.setDashboardOptions(dashboardOptions);\n hideModal();\n showAlert(\"Saved dashboard options\")\n } else {\n console.error('Failed to save dashboard options');\n showAlert('Failed to save dashboard options', 'danger');\n }\n }\n }\n \n return (\n <>\n {currentModifiers.length > 0 && (\n <>\n \n \n \n \n

    {startCase(props.dashboardType)} Dashboard Options

    \n
    \n
    \n \n
    \n {currentModifiers.map((modifier) => {\n const defaultChecked = props.dashboardOptions && jsDig([props.dashboardType, modifier.name, \"enabled\"], props.dashboardOptions) == true ? true : false;\n return (\n
    \n
    \n
    \n
    \n handleCheckbox(e, modifier.name)}\n />\n \n
    \n
    \n
    \n

    {modifier.desc}

    \n
    \n\n {modifier.options && (\n
    \n
    \n {modifier.options.map((option) => {\n const defaultValue = jsDig([props.dashboardType, modifier.name, \"config\", option.name], props.dashboardOptions);\n return (\n
    \n \n {option.desc && (\n

    {option.desc}

    \n )}\n handleModifierConfigChange(e, modifier.name, option.name)}\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// const updateRefreshPreference = async (autoRefresh) => {\n// const params = new URLSearchParams({\n// default_refresh: autoRefresh == true ? 1 : 0\n// });\n// try {\n// const response = await fetch(`/datapulse/update-default-refresh?${params.toString()}`, {\n// method: 'POST',\n// headers: {\n// 'Content-Type': 'application/json',\n// 'X-CSRF-Token': authenticityToken,\n// },\n// });\n\n// if (response.ok) {\n// const data = await response.json();\n// console.log('Refresh preference updated successfully', data);\n// } else {\n// console.error('Failed to update refresh preference');\n// }\n// } catch (error) {\n// console.error('Network error:', error);\n// }\n\n// }","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport YearPicker from \"dashboards/lite/YearPicker\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\n\nexport default function EmailDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"google_analytics\", \"total\", \"sessions\"], props.table_data) ? Object.keys(jsDig([\"google_analytics\", \"total\", \"sessions\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n // Read the 'year' query param if it exists\n const urlParams = new URLSearchParams(window.location.search);\n const queryYear = parseInt(urlParams.get(\"year\"), 10);\n\n // If queryYear is not a valid number, use the current year, else use queryYear\n const thisYear = isNaN(queryYear) ? new Date().getFullYear() : queryYear;\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/email.svg\");\n mainIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"email\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    E-mail Dashboard

    \n
    \n
    \n
    \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n \n \n {props.user_is_employee && (\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 \", data: jsDig([\"google_analytics\", \"l7\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useRef, useEffect, useMemo } from \"react\";\nimport { last, startCase, toLower } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\nimport formatMetric from \"utils/formatMetric\";\nimport Pagination from \"utils/Pagination\";\n\nexport default function LiteBuyBoxTable(props) {\n\n let chevronDown = require(\"images/lite/icons/chevron-down.png\");\n chevronDown = ;\n let chevronUp = require(\"images/lite/icons/chevron-down.png\");\n chevronUp = ;\n \n const amazonAds = () => (\n \n \n \n );\n\n const [showDropdown, setShowDropdown] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState(props.groups && props.groups.length > 0 ? props.groups[0] : null);\n const [isCollapsed, setIsCollapsed] = useState(props.collapsed || false);\n const dropdownRef = useRef(null);\n const tableContainerRef = useRef(null);\n const collapsible = props.collapsed == true || props.collapsed == false ? true : false;\n\n // Pagination state\n const itemsPerPage = 20;\n const [currentPage, setCurrentPage] = useState(1);\n\n // filter out any dimensions where buy_box_percentage >= 95\n const filteredData = props.dimensions.filter(dim => {\n return jsDig([\"yesterday\", dim, \"buy_box_percentage\"], props.data) < 95;\n });\n const currentTableData = useMemo(() => {\n // Apply pagination to the filtered data\n const firstPageIndex = (currentPage - 1) * itemsPerPage;\n const lastPageIndex = firstPageIndex + itemsPerPage;\n return filteredData.slice(firstPageIndex, lastPageIndex); // Return only the rows for the current page\n }, [currentPage, props.dimensions, props.data]);\n\n const handlePageChange = (page) => {\n setCurrentPage(page);\n };\n\n\n \n useEffect(() => {\n const handleClickOutside = (event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowDropdown(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n \n useEffect(() => {\n // Adjust max-height based on the collapsed state and the content of the table\n const maxHeight = isCollapsed ? \"0px\" : `${tableContainerRef.current.scrollHeight}px`;\n tableContainerRef.current.style.maxHeight = maxHeight;\n }, [isCollapsed]);\n \n const toggleCollapse = () => setIsCollapsed(!isCollapsed);\n const toggleDropdown = () => setShowDropdown(!showDropdown);\n const selectGroup = (group) => {\n setSelectedGroup(group);\n setShowDropdown(false);\n };\n\n const baseUrl = props.baseUrl ? props.baseUrl.replace(/\\/$/, \"\") : null;\n\n const renderGroupSelector = () => {\n if (!props.groups || props.groups.length === 0) {\n return null;\n }\n\n return (\n
    \n \n {showDropdown && (\n
    \n {props.groups.map((group) => (\n
    selectGroup(group)}>\n {group}\n
    \n ))}\n
    \n )}\n
    \n );\n };\n\n const renderTopSummaryRow = () => {\n if (props.topSummaryRow) {\n const dim = jsDig([\"dimension\"], props.topSummaryRow);\n const topSummaryData = jsDig([\"data\"], props.topSummaryRow);\n return (\n <>\n \n {dim}\n {props.headerOrder.map((metric, index) => {\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName, \"total\"], topSummaryData) : jsDig([metricName, \"total\"], topSummaryData);\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, false, false, false) : \n renderBlankRow(false)\n }\n \n );\n })}\n \n \n )\n } \n }\n\n const renderTableHeader = () => {\n let columnWidth = 100 / (props.headerOrder.length + 1);\n columnWidth = 23\n return (\n <>\n \n Product Name / Link\n {props.headerOrder.map((metric, index) => {\n const last = props.headerOrder.length - 1 == index ? true : false\n return {getColumnName(metric)};\n })}\n \n \n \n {props.headerOrder.map((metric, index) => {\n const last = props.headerOrder.length - 1 == index ? true : false\n return props.subHeaderOrder.map((subHeader, index) => {\n if (subHeader == \"buy_box_percentage\") {subHeader = \"Buy Box %\"}\n if (metric == \"yesterday\" && subHeader == \"revenue\") {subHeader = \"Revenue\"}\n if (metric == \"last_30\" && subHeader == \"revenue\") {subHeader = \"Avg. Daily Rev.\"}\n\n return {subHeader};\n })\n })}\n \n \n )\n };\n\n const renderTableRows = () => {\n return currentTableData.map((dim) => {\n const borderClass = dim.toLowerCase() === \"ytd\" ? \"lite-border-top\" : false;\n // Get the name of the current month\n const monthName = new Date().toLocaleString('en', { month: 'long' });\n let showProjection = false;\n if (dim.toLowerCase() == monthName.toLowerCase()) { showProjection = true; }\n if (dim.toLowerCase() == \"ytd\") { showProjection = true; }\n if (dim.toLowerCase() == \"total\") { showProjection = true; }\n return (\n jsDig([\"yesterday\", dim, \"buy_box_percentage\"], props.data) >= 95 ? null :\n \n \n {dim}\n {(props.containsUrl && baseUrl && (dim != \"(not set)\")) && (\n \n \n \n )}\n \n \n \n \n {props.headerOrder.map((metric, index) => {\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName, dim], props.data) : jsDig([metricName, dim], props.data);\n const last = props.headerOrder.length - 1 == index ? true : false\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, borderClass, last, showProjection, dim) : \n renderBlankRow(borderClass)\n }\n \n );\n })}\n \n );\n })\n };\n\n const renderBlankRow = (borderClass) => {\n return (\n <>\n {\n props.subHeaderOrder.map((subHeader, index) => {\n return (\n \n
     
    \n \n )\n })\n }\n \n )\n }\n\n // Helper function to format individual metric\n const formatCells = (metric, metricName, borderClass, last, showProjection, dim) => {\n return (\n <>\n {props.subHeaderOrder.map((subHeader, index) => {\n const thisYear = new Date().getFullYear() - 1\n const lastYear = thisYear - 1;\n let metricValue = null;\n if (subHeader == lastYear) {\n metricValue = metric[\"previous\"];\n } else if (subHeader == thisYear) {\n if (showProjection) {\n metricValue = metric[\"current\"];\n } else {\n metricValue = metric[\"current\"];\n }\n } else if (subHeader == \"Diff\") {\n metricValue = metric[\"difference\"];\n } else if (subHeader == \"Y/Y\") {\n if (showProjection) {\n metricValue = metric[\"comparison\"];\n } else {\n metricValue = metric[\"comparison\"];\n }\n } else if (subHeader == \"revenue\") {\n metricValue = metric[\"revenue\"]\n }\n else if (subHeader == \"buy_box_percentage\") {\n metricValue = metric[\"buy_box_percentage\"]\n } else {\n metricValue = metric; // If the subheader doesn't match any expected values, assume it's a flat dataset with no groupings\n }\n return (\n \n
    \n {formatMetric(metricName, metricValue, subHeader, true)}\n
    \n \n )\n })}\n \n )\n };\n\n const getColumnName = (metric) => {\n switch (metric) {\n case \"spend\":\n return \"Spend\";\n case \"clicks\":\n return \"Clicks\";\n case \"conversions\":\n return \"Conversions\";\n case \"revenue\":\n return \"Revenue\";\n case \"roas\":\n return \"ROAS\";\n case \"cpa\":\n return \"CPA\";\n case \"mer\":\n return \"MER\";\n case \"frequency\":\n return \"Frequency\";\n case \"conversion_rate\":\n return \"Conversion Rate\";\n case \"sessions\":\n return \"Sessions\";\n case \"paid_sessions\":\n return \"Paid Sessions\";\n case \"organic_sessions\":\n return \"Organic Sessions\";\n case \"impressions\":\n return \"Impressions\";\n case \"reach\":\n return \"Reach\";\n case \"new_customers\":\n return \"New Customers\";\n case \"aov\":\n return \"AOV\";\n case \"open_rate\":\n return \"Open Rate\";\n case \"ctr\":\n return \"CTR\";\n case \"bounce_rate\":\n return \"Bounce Rate\";\n case \"email_list_growth\":\n return \"Email List Growth\";\n case \"affiliates\":\n return \"Affiliate\";\n case \"direct\":\n return \"Direct\";\n case \"referral\":\n return \"Referral\";\n case \"audio\":\n return \"Audio\";\n case \"mobile_push_notifications\":\n return \"Mobile Push Notifications\";\n case \"sms\":\n return \"SMS\";\n case \"last_30\":\n return \"Last 30 Days\";\n default:\n return startCase(metric);\n }\n }\n\n const renderTableName = (tableName, selectedGroup = \"\") => {\n if (selectedGroup != \"\") {\n selectedGroup = \"- \" + selectedGroup\n }\n let tableIcon = \"\"\n if (tableName.toLowerCase().includes(\"search\")) {\n if (selectedGroup.toLowerCase().includes(\"google ads\")) {\n tableIcon = googleAds\n } else if (selectedGroup.toLowerCase().includes(\"microsoft ads\")) {\n tableIcon = microsoftAds\n }\n else tableIcon = searchIcon\n } else if (tableName.toLowerCase().includes(\"social\")) {\n if (selectedGroup.toLowerCase().includes(\"facebook\")) {\n tableIcon = facebook\n } else if (selectedGroup.toLowerCase().includes(\"tiktok\")) {\n tableIcon = tiktokAds\n }\n else tableIcon = socialIcon\n } else if (tableName.toLowerCase().includes(\"facebook\") && tableName.toLowerCase().includes(\"instagram\")) {\n tableIcon = metaAds\n } else if (tableName.toLowerCase().includes(\"tiktok\")) {\n tableIcon = tiktokAds\n } else if (tableName.toLowerCase().includes(\"youtube\")) {\n tableIcon = youtube\n } else if (tableName.toLowerCase().includes(\"pinterest\")) {\n tableIcon = pinterest\n } else if (tableName.toLowerCase().includes(\"amazon\")) {\n tableIcon = amazon\n }\n\n else tableIcon = \"\"\n return(\n
    \n
    \n {tableIcon}\n
    \n
    \n {tableName} {selectedGroup}\n
    \n
    \n )\n }\n\n const exportTableToCSV = () => {\n const rows = [];\n const currentYear = new Date().getFullYear();\n const previousYear = currentYear - 1;\n\n // Headers\n const headers = ['Dimension'];\n const subHeaders = [''];\n \n props.headerOrder.forEach((header) => {\n headers.push(getColumnName(header));\n headers.push(''); // Empty space for the subheader row\n headers.push('');\n });\n\n props.headerOrder.forEach((header) => {\n subHeaders.push(previousYear);\n subHeaders.push(currentYear);\n subHeaders.push('Y/Y');\n });\n\n rows.push(headers.join(','));\n rows.push(subHeaders.join(','));\n\n // Data Rows\n props.dimensions.forEach((dim) => {\n const row = [dim]; // First column is the dimension name\n \n props.headerOrder.forEach((metric) => {\n const metricName = toLower(metric);\n const metricData = selectedGroup\n ? jsDig([toLower(selectedGroup), metricName, dim], props.data)\n : jsDig([metricName, dim], props.data);\n \n // Handling each subheader value\n let currentValue = '';\n let previousValue = '';\n let yoyValue = '';\n\n if (metricData) {\n previousValue = metricData['previous'] !== undefined ? formatMetric(metricName, metricData['previous'], previousYear) : '';\n currentValue = metricData['current'] !== undefined ? formatMetric(metricName, metricData['current'], currentYear) : '';\n yoyValue = metricData['comparison'] !== undefined ? formatMetric(metricName, metricData['comparison'], 'Y/Y') : '';\n }\n\n // Ensure proper formatting by enclosing values in quotes if they contain commas or special characters\n row.push(`\"${previousValue}\"`);\n row.push(`\"${currentValue}\"`);\n row.push(`\"${yoyValue}\"`);\n });\n\n rows.push(row.join(','));\n });\n\n // Create and download the CSV file\n const csvContent = \"data:text/csv;charset=utf-8,\" + rows.join(\"\\n\");\n const encodedUri = encodeURI(csvContent);\n const link = document.createElement(\"a\");\n link.setAttribute(\"href\", encodedUri);\n link.setAttribute(\"download\", `${props.tableName || 'table_data'}.csv`);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\n return (\n <>\n
    \n {/* Export Button */}\n {/* */}\n \n
    \n
    {renderGroupSelector()}
    \n
    {renderTableName(props.tableName, selectedGroup ? selectedGroup : \"\")}
    \n
    \n
    \n {isCollapsed ? chevronUp : chevronDown}\n
    \n
    \n
    \n
    \n \n \n {renderTableHeader()}\n \n \n {renderTopSummaryRow()}\n {renderTableRows()}\n \n
    \n
    \n \n\n
    \n {props.disabledMsg && (\n
    \n {props.disabledMsg}\n
    \n )}\n \n );\n}\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport Pagination from \"utils/Pagination\";\n\nconst LiteKeywordTable = (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 keywordCount = props.keywords ? props.keywords.length : 0;\n const itemsPerPage = 20;\n const [currentPage, setCurrentPage] = useState(1);\n\n const sortKeywords = (by, initial = false) => {\n let kwCopy = initial ? [...props.keywords] : [...sortedKeywords];\n let tempSortOrder = sortOrderAsc;\n\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) => a.keyword.toLowerCase().localeCompare(b.keyword.toLowerCase()));\n } else if (by === \"prevpos\") {\n kwCopy.sort((a, b) => {\n a.start_date_ranking = typeof a.start_date_ranking === \"string\" ? parseFloat(a.start_date_ranking) : a.start_date_ranking;\n b.start_date_ranking = typeof b.start_date_ranking === \"string\" ? parseFloat(b.start_date_ranking) : b.start_date_ranking;\n\n if (a.start_date_ranking === 0) return 1;\n if (b.start_date_ranking === 0) return -1;\n return a.start_date_ranking - b.start_date_ranking;\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 return a.end_date_ranking - b.end_date_ranking;\n });\n } else if (by === \"diff\") {\n kwCopy.sort((a, b) => a.ranking_difference - b.ranking_difference);\n } else if (by === \"cpc\") {\n kwCopy.sort((a, b) => parseFloat(a.cpc) - parseFloat(b.cpc));\n } else if (by === \"volume\") {\n kwCopy.sort((a, b) => parseFloat(a.volume) - parseFloat(b.volume));\n } else if (by === \"difficulty\") {\n kwCopy.sort((a, b) => parseFloat(a.difficulty) - parseFloat(b.difficulty));\n }\n if (!tempSortOrder) {\n kwCopy.reverse();\n }\n }\n\n setSortBy(by);\n setSortOrderAsc(tempSortOrder);\n setSortedKeywords(kwCopy);\n };\n\n useEffect(() => {\n if (props.keywords && props.keywords.length > 0) {\n sortKeywords(sortBy, true);\n }\n }, [props.keywords]); // Run this effect when props.keywords change\n\n\n const currentTableData = useMemo(() => {\n const firstPageIndex = (currentPage - 1) * itemsPerPage;\n const lastPageIndex = firstPageIndex + itemsPerPage;\n return sortedKeywords.slice(firstPageIndex, lastPageIndex);\n }, [currentPage, sortedKeywords]); // Add sortedKeywords as a dependency\n\n const sortUpHtml = ;\n const sortDownHtml = ;\n\n return (\n
    \n
    Keyword Ranking
    \n
    \n \n \n \n {props.metrics.includes(\"keywordName\") && (\n \n )}\n {props.metrics.includes(\"keywordSerpFeatures\") && }\n {props.metrics.includes(\"keywordPreviousPosition\") && (\n \n )}\n {props.metrics.includes(\"keywordCurrentPosition\") && (\n \n )}\n {props.metrics.includes(\"keywordDifference\") && (\n \n )}\n {props.metrics.includes(\"keywordCostPerConversion\") && (\n \n )}\n {props.metrics.includes(\"keywordSearchVolume\") && (\n \n )}\n {props.metrics.includes(\"keywordDifficulty\") && (\n \n )}\n {props.metrics.includes(\"keywordLabel\") && }\n {props.metrics.includes(\"keywordUrl\") && }\n \n \n \n {currentTableData.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\n return (\n \n {props.metrics.includes(\"keywordName\") && (\n \n )}\n {props.metrics.includes(\"keywordSerpFeatures\") && (\n \n )}\n {props.metrics.includes(\"keywordPreviousPosition\") && (\n \n )}\n {props.metrics.includes(\"keywordCurrentPosition\") && (\n \n )}\n {props.metrics.includes(\"keywordDifference\") && (\n \n )}\n {props.metrics.includes(\"keywordCostPerConversion\") && (\n \n )}\n {props.metrics.includes(\"keywordSearchVolume\") && (\n \n )}\n {props.metrics.includes(\"keywordDifficulty\") && (\n \n )}\n {props.metrics.includes(\"keywordLabel\") && (\n \n )}\n {props.metrics.includes(\"keywordUrl\") && (\n \n )}\n \n );\n })}\n \n
    sortKeywords(\"keyword\")}>\n Keyword \n {sortBy === \"keyword\" ? (sortOrderAsc ? sortUpHtml : sortDownHtml) : null}\n SERP Features sortKeywords(\"prevpos\")}>\n Prev. Pos \n {sortBy === \"prevpos\" ? (sortOrderAsc ? sortUpHtml : sortDownHtml) : null}\n sortKeywords(\"currentpos\")}>\n Current Pos \n {sortBy === \"currentpos\" ? (sortOrderAsc ? sortUpHtml : sortDownHtml) : null}\n sortKeywords(\"diff\")}>\n Diff \n {sortBy === \"diff\" ? (sortOrderAsc ? sortUpHtml : sortDownHtml) : null}\n sortKeywords(\"cpc\")}>\n CPC \n {sortBy === \"cpc\" ? (sortOrderAsc ? sortUpHtml : sortDownHtml) : null}\n sortKeywords(\"volume\")}>\n Volume \n {sortBy === \"volume\" ? (sortOrderAsc ? sortUpHtml : sortDownHtml) : null}\n sortKeywords(\"difficulty\")}>\n Difficulty \n {sortBy === \"difficulty\" ? (sortOrderAsc ? sortUpHtml : sortDownHtml) : null}\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\" || serp_feature === \"adb\")\n 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 return null;\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
    \n {keyword.ranking_page && (\n \n \n \n )}\n {keyword.ranking_page}\n
    \n
    \n
    \n setCurrentPage(page)}\n />\n
    \n );\n};\n\nexport default LiteKeywordTable;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { last, startCase, toLower } from \"lodash\";\nimport {\n Chart as ChartJS,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend,\n Filler\n} from 'chart.js';\nimport { Line } from 'react-chartjs-2';\nimport formatMetric from \"utils/formatMetric\";\nimport chartTrendline from \"chartjs-plugin-trendline\";\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend,\n Filler,\n chartTrendline\n);\n\nimport jsDig from 'utils/jsDig';\nimport ChartHelpModal from \"dashboards/lite/ChartHelpModal\";\n\nexport default function LiteLineChart(props) {\n let chevronDown = require(\"images/lite/icons/chevron-down.png\");\n chevronDown = ;\n let chevronUp = require(\"images/lite/icons/chevron-down.png\");\n chevronUp = ;\n\n\n const themeToggleRef = useRef(null);\n\n // Need to get the theme from the DOM\n const [darkMode, setDarkMode] = useState(document.body.getAttribute('data-theme') === 'dark');\n const [showDropdown, setShowDropdown] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState(props.groups && props.groups.length > 0 ? props.groups[0] : null);\n const dropdownRef = useRef(null);\n const [isCollapsed, setIsCollapsed] = useState(props.collapsed || false);\n const collapsible = props.collapsed == true || props.collapsed == false ? true : false;\n const chartContainerRef = useRef(null);\n const spendFunnelAllocationChart = props.metric == \"stacked\" && props.datasetNames.includes(\"Top of Funnel\")\n const prospectingVsRemarketingChart = props.metric == \"stacked\" && props.datasetNames.includes(\"Pros. Spend\")\n const brandedVsNonBrandedChart = props.metric == \"stacked\" && props.datasetNames.includes(\"Branded\")\n\n useEffect(() => {\n themeToggleRef.current = document.getElementById('theme-toggle');\n const handleThemeChange = () => {\n setDarkMode(themeToggleRef.current.checked);\n };\n\n if (themeToggleRef.current) {\n themeToggleRef.current.addEventListener('change', handleThemeChange);\n }\n\n // Check initial state\n if (themeToggleRef.current) {\n setDarkMode(themeToggleRef.current.checked);\n }\n\n return () => {\n if (themeToggleRef.current) {\n themeToggleRef.current.removeEventListener('change', handleThemeChange);\n }\n };\n }, []);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowDropdown(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n useEffect(() => {\n // Adjust max-height based on the collapsed state and the content of the table\n // const maxHeight = isCollapsed ? \"0px\" : `${chartContainerRef.current.scrollHeight}px`;\n const maxHeight = isCollapsed ? \"0px\" : props.fixedHeight ? `${props.fixedHeight}px` : \"1700px\";\n chartContainerRef.current.style.maxHeight = maxHeight;\n }, [isCollapsed]);\n\n const toggleCollapse = () => setIsCollapsed(!isCollapsed);\n const toggleDropdown = () => setShowDropdown(!showDropdown);\n const selectGroup = (group) => {\n setSelectedGroup(group);\n setShowDropdown(false);\n };\n\n const renderGroupSelector = () => {\n if (!props.groups || props.groups.length === 0) {\n return null;\n }\n\n return (\n
    \n \n {showDropdown && (\n
    \n {props.groups.map((group) => (\n
    selectGroup(group)}>\n {group}\n
    \n ))}\n
    \n )}\n
    \n );\n };\n\n const getChartOptions = (darkMode) => {\n let xScalesConfig = {\n ticks: {\n maxTicksLimit: 5,\n maxRotation: 0,\n autoSkip: true,\n color: darkMode ? '#eae6e1' : '#434248',\n font: {\n size: 12, \n family: '\"DM Mono\", arial, sans-serif',\n },\n },\n grid: {\n display: true,\n },\n }\n\n let yScalesConfig = {\n beginAtZero: props.metric == \"stacked\",\n stacked: props.metric == \"stacked\",\n ticks: {\n color: darkMode ? '#eae6e1' : '#434248',\n font: {\n size: 12, \n family: '\"DM Mono\", arial, sans-serif',\n },\n callback: function(value, index, values) {\n return ` ${formatMetric(props.metric, value, \"tick\")}`;\n },\n },\n grid: {\n drawBorder: false,\n },\n }\n if (props.metric == \"stacked\") {\n yScalesConfig[\"min\"] = 0;\n yScalesConfig[\"max\"] = 100;\n yScalesConfig[\"ticks\"][\"stepSize\"] = 20;\n }\n\n return {\n responsive: true,\n maintainAspectRatio: false,\n interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n position: 'bottom',\n labels: { \n padding: 20,\n color: darkMode ? '#eae6e1' : '#434248',\n font: {\n size: 16, \n family: '\"DM Mono\", arial, sans-serif',\n },\n generateLabels: (chart) => {\n const datasets = chart.data.datasets;\n return datasets.map((dataset, i) => ({\n text: dataset.label,\n fillStyle: getLineColor(i, dataset.label, darkMode, props),\n strokeStyle: dataset.borderColor,\n lineWidth: 2,\n hidden: !chart.isDatasetVisible(i),\n datasetIndex: i,\n fontColor: darkMode ? '#eae6e1' : '#434248',\n }));\n },\n },\n reverse: (spendFunnelAllocationChart || prospectingVsRemarketingChart || brandedVsNonBrandedChart) ? true : false,\n },\n title: {\n display: false,\n },\n tooltip: {\n titleFont: {\n size: 16,\n family: '\"DM Mono\", arial, sans-serif',\n },\n bodyFont: {\n size: 16,\n family: '\"DM Mono\", arial, sans-serif',\n },\n callbacks: {\n label: function(context) {\n let label = context.dataset.label || '';\n \n if (label) {\n label += ': ';\n }\n\n if (props.metric == \"stacked\" && props.tooltipData) {\n // Show the actual metric which is passed in through props.tooltipData\n label += formatMetric(props.tooltipMetric, props.tooltipData[context.dataset.label][context.dataIndex], \"\");\n } else if (context.parsed.y !== null) {\n label += formatMetric(props.metric, context.parsed.y, \"\");\n }\n return label;\n },\n },\n itemSort: function (a, b) {\n // Check if the sorting should be reversed\n if (spendFunnelAllocationChart || prospectingVsRemarketingChart || brandedVsNonBrandedChart) {\n return b.datasetIndex - a.datasetIndex;\n }\n // Otherwise, keep the default sorting (ascending)\n return a.datasetIndex - b.datasetIndex;\n }\n },\n },\n scales: {\n x: xScalesConfig,\n y: yScalesConfig,\n },\n elements: {\n line: {\n cubicInterpolationMode: 'monotone',\n tension: 0.4,\n },\n },\n }\n };\n \n const labels = props.labels;\n let orderedDatasetNames = props.datasetNames;\n if (spendFunnelAllocationChart) { // Stacked charts draw from bottom to top so we have to reverse the order so that Top of funnel appears on top\n const order = [\"Uncategorized\", \"Lower Funnel\", \"Mid Funnel\", \"Top of Funnel\"]\n orderedDatasetNames = order.filter(name => props.datasetNames.includes(name));\n }\n if (prospectingVsRemarketingChart) { // Stacked charts draw from bottom to top so we have to reverse the order so that Prospecting appears on top\n const order = [\"Uncategorized\", \"Rem. Spend\", \"Pros. Spend\"]\n orderedDatasetNames = order.filter(name => props.datasetNames.includes(name));\n }\n if (brandedVsNonBrandedChart) { // Stacked charts draw from bottom to top so we have to reverse the order so that Branded appears on top\n const order = [\"Non-Branded\", \"Branded\"]\n orderedDatasetNames = order.filter(name => props.datasetNames.includes(name));\n }\n let data = {\n labels,\n datasets: orderedDatasetNames.map((name, index) => {\n let fillStyle = false;\n if (props.metric == \"stacked\") {\n fillStyle = index == 0 ? \"origin\" : \"-1\";\n }\n let trendlineLinear = null;\n const currentGroupData = selectedGroup ? labels.map((day, index) => jsDig([toLower(selectedGroup), name, index], props.data)) : labels.map((day, index) => jsDig([name, index], props.data));\n if (currentGroupData.filter(x => x).length > 1 && props.metric != \"stacked\") { // Only show trendline if there are more than 1 data points and not stacked\n trendlineLinear = {\n lineStyle: \"dotted\",\n width: 2,\n color: getLineColor(index, name, darkMode, props),\n }\n }\n const urlParams = new URLSearchParams(window.location.search);\n const selectedYear = urlParams.get(\"year\") || new Date().getFullYear().toString(); // Default to the current year\n const thisYear = parseInt(selectedYear);\n const lastYear = thisYear - 1;\n\n return ({\n label: name,\n fill: fillStyle,\n pointRadius: props.metric == \"stacked\" ? 0 : 0,\n pointHoverRadius: 3,\n data: currentGroupData,\n borderColor: getLineColor(index, name, darkMode, props),\n backgroundColor: props.metric == \"stacked\" ? hexToRGBA(getLineColor(index, name, darkMode, props), 0.5) : getLineColor(index, name, darkMode, props),\n borderJoinStyle: \"round\",\n borderWidth: name == lastYear ? 2 : 3,\n trendlineLinear: trendlineLinear,\n })\n }),\n };\n\n let chartHelpModal = null;\n if (props.chartName == \"Branded vs. Non-Branded L60D\") {\n chartHelpModal = ;\n } else if (props.chartName == \"Marketing Spend Funnel Allocation\") {\n chartHelpModal = ;\n } else if (props.chartName == \"Prospecting vs. Remarketing L60D\") {\n chartHelpModal = ;\n }\n\n const handleCollapse = (e) => { \n e.preventDefault();\n e.stopPropagation();\n const target = e.target;\n if (target.closest(\".chart-help-modal\") || target.classList.contains(\"chart-help-icon\") || target.closest(\".lite-group-selector\")) {\n return; // Do not collapse if the click happened inside the help modal, the help icon, or the dropdown toggle\n }\n if (collapsible) {\n toggleCollapse();\n }\n }\n\n return (\n <>\n
    \n
    handleCollapse(e)}>\n
    \n {renderGroupSelector()}\n
    \n

    {props.chartName}

    \n
    \n {chartHelpModal}\n {collapsible && (\n
    \n {isCollapsed ? chevronDown : chevronUp}\n
    \n )}\n
    \n
    \n
    \n \n
    \n {props.disabledMsg && (\n
    \n {props.disabledMsg}\n
    \n )}\n
    \n \n )\n}\n\nfunction hexToRGBA(hex, alpha) {\n let r = parseInt(hex.slice(1, 3), 16),\n g = parseInt(hex.slice(3, 5), 16),\n b = parseInt(hex.slice(5, 7), 16);\n return `rgba(${r},${g},${b},${alpha})`;\n}\n\nfunction getLineColor(index, label, darkMode, props) {\n // TODO: Colors aren't finalized yet but we can modify these to make it easier to understand which traffic is from which brand\n const newLabel = String(label).toLowerCase();\n \n const urlParams = new URLSearchParams(window.location.search);\n const selectedYear = urlParams.get(\"year\") || new Date().getFullYear().toString(); // Default to the current year\n const thisYear = parseInt(selectedYear);\n const lastYear = thisYear - 1;\n\n if (String(thisYear) == newLabel) {\n if (props.colorBlindAssist == true) {\n return \"#0072B2\";\n }\n else {\n return \"#1E9C77\";\n }\n }\n if (String(lastYear) == newLabel) {\n if (props.colorBlindAssist == true) {\n return \"#E69F00\";\n }\n else {\n return hexToRGBA(\"#7E7D7E\", 0.4)\n }\n }\n if (newLabel == \"top of funnel\") {\n return \"#1E9C77\";\n }\n if (newLabel == \"mid funnel\") {\n return \"#2488BB\";\n }\n if (newLabel == \"lower funnel\") {\n return \"#BF9E40\";\n }\n if (newLabel == \"pros. spend\") {\n return \"#1E9C77\";\n }\n if (newLabel == \"rem. spend\") {\n return \"#2488BB\";\n }\n if (newLabel == \"other\" || newLabel == \"uncategorized\") {\n return \"#7E7D7E\";\n }\n if (newLabel == \"snapchat\") {\n return \"#BF9E40\";\n }\n if (newLabel == \"facebook\") {\n return \"#2488BB\";\n }\n if (newLabel == \"instagram\") {\n return \"#EE884F\";\n }\n if (newLabel == \"youtube\") {\n return \"#C75B5B\";\n }\n if (newLabel == \"twitter\") {\n return \"#22BEBE\";\n }\n if (newLabel == \"tiktok\") {\n return \"#CB55B1\";\n }\n if (newLabel == \"linkedin\") {\n return \"#1E9C77\";\n }\n \n const lightColors = [\"#1E9C77\", \"#2488BB\", \"#BF9E40\", \"#6746EA\", \"#22BEBE\", \"#CB55B1\", \"#FFD23F\", \"#7E7D7E\", \"#C75B5B\"];;\n const darkColors = [\"#1E9C77\", \"#2488BB\", \"#BF9E40\", \"#6746EA\", \"#22BEBE\", \"#CB55B1\", \"#FFD23F\", \"#7E7D7E\", \"#C75B5B\"];;\n return darkMode ? darkColors[index % darkColors.length] : lightColors[index % lightColors.length];\n}","import React, { useState, useRef, useEffect } from \"react\";\nimport { last, startCase, toLower } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\nimport formatMetric from \"utils/formatMetric\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function LiteMetricTable(props) {\n\n const [isDarkMode, setIsDarkMode] = useState(document.body.classList.contains('dark-theme'));\n\n let chevronDown = require(\"images/lite/icons/chevron-down.png\");\n chevronDown = ;\n let chevronUp = require(\"images/lite/icons/chevron-down.png\");\n chevronUp = ;\n\n useEffect(() => {\n const handleThemeChange = () => {\n setIsDarkMode(document.body.classList.contains('dark-theme'));\n };\n\n // Attach a mutation observer to listen for changes in the body class\n const observer = new MutationObserver(handleThemeChange);\n observer.observe(document.body, { attributes: true, attributeFilter: ['class'] });\n\n // Cleanup observer on unmount\n return () => observer.disconnect();\n }, []);\n\n const metaAds = () => (\n \n \n \n );\n\n const googleAds = () => (\n \n \n \n \n \n );\n\n const microsoftAds = () => (\n \n \n \n );\n\n const socialIcon = () => (\n \n \n \n \n );\n\n const tiktokAds = () => (\n \n \n \n );\n\n const searchIcon = () => (\n \n \n \n \n );\n\n const amazonAds = () => (\n \n \n \n );\n\n const pinterestAds = () => (\n \n \n \n );\n\n const youtubeAds = () => (\n \n \n \n );\n\n const facebookAds = () => (\n \n \n \n );\n\n const [showDropdown, setShowDropdown] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState(props.groups && props.groups.length > 0 ? props.groups[0] : null);\n const [isCollapsed, setIsCollapsed] = useState(props.collapsed || false);\n const dropdownRef = useRef(null);\n const tableContainerRef = useRef(null);\n const collapsible = props.collapsed == true || props.collapsed == false ? true : false;\n \n useEffect(() => {\n const handleClickOutside = (event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowDropdown(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n \n useEffect(() => {\n if (collapsible) {\n // Adjust max-height based on the collapsed state and the content of the table\n const maxHeight = isCollapsed ? \"0px\" : `${tableContainerRef.current.scrollHeight}px`;\n tableContainerRef.current.style.maxHeight = maxHeight;\n }\n }, [isCollapsed]);\n \n const toggleCollapse = () => setIsCollapsed(!isCollapsed);\n const toggleDropdown = () => setShowDropdown(!showDropdown);\n const selectGroup = (group) => {\n setSelectedGroup(group);\n setShowDropdown(false);\n };\n\n const baseUrl = props.baseUrl ? props.baseUrl.replace(/\\/$/, \"\") : null;\n\n const renderGroupSelector = () => {\n if (!props.groups || props.groups.length === 0) {\n return null;\n }\n\n return (\n
    \n \n {showDropdown && (\n
    \n {props.groups.map((group) => (\n
    selectGroup(group)}>\n {group}\n
    \n ))}\n
    \n )}\n
    \n );\n };\n\n const renderTopSummaryRow = () => {\n if (props.topSummaryRow) {\n const dim = jsDig([\"dimension\"], props.topSummaryRow);\n const topSummaryData = jsDig([\"data\"], props.topSummaryRow);\n return (\n <>\n \n {dim}\n {props.headerOrder.map((metric, index) => {\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName, \"total\"], topSummaryData) : jsDig([metricName, \"total\"], topSummaryData);\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, false, false, false, dim) : \n renderBlankRow(false)\n }\n \n );\n })}\n \n\n {props.tableName == \"PPC Portfolio Performance\" && ( // Add comparison period row for PPC Portfolio Performance table\n \n \n Comparison Period\n \n {props.headerOrder.map((metric, index) => {\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName, \"total\"], topSummaryData) : jsDig([metricName, \"total\"], topSummaryData);\n const last = props.headerOrder.length - 1 == index ? true : false\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, false, false, false, \"comparison\") : \n renderBlankRow(false)\n }\n \n );\n })}\n \n )}\n \n )\n } \n }\n\n const renderTableHeader = () => {\n let columnWidth = 100 / (props.headerOrder.length + 1);\n return (\n <>\n \n \n {props.headerOrder.map((metric, index) => {\n const last = props.headerOrder.length - 1 == index ? true : false\n return ( \n \n {getColumnName(metric)}\n \n )\n })}\n \n \n \n {props.headerOrder.map((metric, index) => {\n const last = props.headerOrder.length - 1 == index ? true : false\n return props.subHeaderOrder.map((subHeader, index) => {\n if ((metric == \"cpa\" || metric == \"roas\" || metric == \"mer\") && subHeader == \"L7D Avg.\") { return }\n\n if (subHeader == \"buy_box_percentage\") {subHeader = \"Buy Box %\"}\n if (metric == \"yesterday\" && subHeader == \"revenue\") {subHeader = \"Revenue\"}\n if (metric == \"last_30\" && subHeader == \"revenue\") {subHeader = \"Avg. Daily Rev.\"}\n\n let customTooltip = null;\n if (subHeader == \"Growth Rate\") {\n customTooltip = \n

    This metric looks at the YoY performance of the last 30 days and compares it to the YoY performance of the previous 30 days.

    \n

    For example, last 30 days we were up 20%+ YoY, but the previous 30 days we were up 10% YoY, then we have increased performance 10 percentage points in the right direction

    \n

    This metric gives us an accurate, recent view on performance that takes into account all seasonality of the business.

    \n \n } \n inline={true} \n />\n }\n\n return (\n \n {subHeader}\n {customTooltip}\n \n );\n })\n })}\n \n \n )\n };\n\n const renderTableRows = () => {\n return props.dimensions.map((dim) => {\n const borderClass = dim.toLowerCase() === \"ytd\" ? \"lite-border-top\" : false;\n // Get the name of the current month\n const monthName = new Date().toLocaleString('en', { month: 'long' });\n let showProjection = false;\n if (dim.toLowerCase() == monthName.toLowerCase()) { showProjection = true; }\n if (dim.toLowerCase() == \"ytd\") { showProjection = false; }\n if (dim.toLowerCase() == \"total\") { showProjection = true; }\n return (\n \n \n \n {dim}\n {(props.containsUrl && (dim != \"(not set)\")) && (\n \n \n \n )}\n \n {props.headerOrder.map((metric, index) => {\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName, dim], props.data) : jsDig([metricName, dim], props.data);\n const last = props.headerOrder.length - 1 == index ? true : false\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, borderClass, last, showProjection, dim) : \n renderBlankRow(borderClass)\n }\n \n );\n })}\n \n\n {props.tableName == \"PPC Portfolio Performance\" && ( // Add comparison period row for PPC Portfolio Performance table\n \n \n Comparison Period\n \n {props.headerOrder.map((metric, index) => {\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName, dim], props.data) : jsDig([metricName, dim], props.data);\n const last = props.headerOrder.length - 1 == index ? true : false\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, borderClass, last, showProjection, \"comparison\") : \n renderBlankRow(borderClass)\n }\n \n );\n })}\n \n )}\n \n );\n })\n };\n\n const renderBlankRow = (borderClass) => {\n return (\n <>\n {\n props.subHeaderOrder.map((subHeader, index) => {\n return (\n \n
     
    \n \n )\n })\n }\n \n )\n }\n\n // Helper function to format individual metric\n const formatCells = (metric, metricName, borderClass, last, showProjection, dim) => {\n const urlParams = new URLSearchParams(window.location.search);\n const selectedYear = urlParams.get(\"year\") || new Date().getFullYear().toString(); // Default to the current year\n const thisYear = parseInt(selectedYear);\n const lastYear = thisYear - 1;\n if (parseInt(selectedYear) !== new Date().getFullYear()) { // set showProjection to false if year parameter is not current year\n showProjection = false;\n }\n\n return (\n <>\n {props.subHeaderOrder.map((subHeader, index) => {\n let metricValue = null;\n\n if (subHeader == lastYear) {\n metricValue = metric[\"previous\"];\n } else if (subHeader == thisYear) {\n if (showProjection) {\n metricValue = metric[\"projection\"];\n } else {\n metricValue = metric[\"current\"];\n }\n } else if (subHeader == \"Diff\") {\n metricValue = metric[\"difference\"];\n } else if (subHeader == \"Y/Y\") {\n if (showProjection) {\n metricValue = metric[\"projection_comparison\"];\n } else {\n metricValue = metric[\"comparison\"];\n }\n } else if (subHeader == \"L30D\") {\n metricValue = metric[\"current\"];\n } else if (subHeader == \"YoY\") {\n metricValue = metric[\"comparison\"];\n } else if (subHeader == \"MoM\") {\n metricValue = metric[\"mom\"];\n } else if (subHeader == \"Growth Rate\") {\n metricValue = metric[\"growth_rate\"];\n } else if (subHeader == \"revenue\") {\n metricValue = metric[\"revenue\"];\n } else if (subHeader == \"buy_box_percentage\") {\n metricValue = metric[\"buy_box_percentage\"];\n } else if (subHeader == \"MTD\") { \n if (dim == \"comparison\") { metricValue = metric[\"prev_mtd\"] } else { metricValue = metric[\"mtd\"] } // Used for PPC Portfolio Table\n } else if (subHeader == \"L7D\") {\n if (dim == \"comparison\") { metricValue = metric[\"prev_l7d\"] } else { metricValue = metric[\"l7d\"] } // Used for PPC Portfolio Table\n } else if (subHeader == \"L7D Avg.\") {\n if (dim == \"comparison\") { metricValue = metric[\"prev_l7d_average\"] } else { metricValue = metric[\"l7d_average\"] } // Used for PPC Portfolio Table\n } else if (subHeader == \"Yesterday\") {\n if (dim == \"comparison\") { metricValue = metric[\"prev_yesterday\"] } else { metricValue = metric[\"yesterday\"] } // Used for PPC Portfolio Table\n } else if (subHeader == \"Proj.\") {\n if (dim == \"comparison\") { metricValue = metric[\"prev_this_month\"] } else { metricValue = metric[\"projected\"] } // Used for PPC Portfolio Table\n } else {\n metricValue = metric; // If the subheader doesn't match any expected values, assume it's a flat dataset with no groupings\n }\n\n const showCorner = (subHeader == thisYear && showProjection == true && metricValue) || (subHeader == thisYear && dim == \"Total\" && metricValue);\n let shouldHide = false;\n if (subHeader == \"L7D Avg.\" && (metricName == \"cpa\" || metricName == \"roas\" || metricName == \"mer\")) {\n shouldHide = true;\n }\n\n return (\n \n
    \n
    \n {(metricValue != null && metricValue !== 0) &&\n {showCorner && <>{`MTD: ${formatMetric(metricName, metric[\"current\"], subHeader, false)}`}}\n }\n {shouldHide ? \"\" : (\n formatMetric(metricName, metricValue, subHeader, false)\n )}\n
    \n
    \n
    \n
    \n \n ); \n })}\n \n )\n };\n\n const getColumnName = (metric) => {\n switch (metric) {\n case \"spend\":\n return \"Spend\";\n case \"clicks\":\n return \"Clicks\";\n case \"conversions\":\n return \"Conversions\";\n case \"revenue\":\n return \"Revenue\";\n case \"roas\":\n return \"ROAS\";\n case \"cpa\":\n return \"CPA\";\n case \"mer\":\n return \"MER\";\n case \"frequency\":\n return \"Frequency\";\n case \"conversion_rate\":\n return \"Conversion Rate\";\n case \"sessions\":\n return \"Sessions\";\n case \"paid_sessions\":\n return \"Paid Sessions\";\n case \"organic_sessions\":\n return \"Organic Sessions\";\n case \"impressions\":\n return \"Impressions\";\n case \"reach\":\n return \"Reach\";\n case \"new_customers\":\n return \"New Customers\";\n case \"aov\":\n return \"AOV\";\n case \"open_rate\":\n return \"Open Rate\";\n case \"ctr\":\n return \"CTR\";\n case \"bounce_rate\":\n return \"Bounce Rate\";\n case \"email_list_growth\":\n return \"Email List Growth\";\n case \"affiliates\":\n return \"Affiliate\";\n case \"direct\":\n return \"Direct\";\n case \"referral\":\n return \"Referral\";\n case \"audio\":\n return \"Audio\";\n case \"mobile_push_notifications\":\n return \"Mobile Push Notifications\";\n case \"sms\":\n return \"SMS\";\n case \"last_30\":\n return \"Last 30 Days\";\n default:\n return startCase(metric);\n }\n }\n\n const renderTableName = (tableName, selectedGroup = \"\") => {\n if (selectedGroup != \"\") {\n selectedGroup = \"- \" + selectedGroup\n }\n let tableIcon = \"\"\n if (tableName.toLowerCase().includes(\"search\")) {\n if (selectedGroup.toLowerCase().includes(\"google ads\")) {\n tableIcon = googleAds()\n } else if (selectedGroup.toLowerCase().includes(\"microsoft ads\")) {\n tableIcon = microsoftAds()\n }\n else tableIcon = searchIcon()\n } else if (tableName.toLowerCase().includes(\"social\")) {\n if (selectedGroup.toLowerCase().includes(\"facebook\")) {\n tableIcon = facebookAds()\n } else if (selectedGroup.toLowerCase().includes(\"tiktok\")) {\n tableIcon = tiktokAds()\n }\n else tableIcon = socialIcon()\n } else if (tableName.toLowerCase().includes(\"facebook\") && tableName.toLowerCase().includes(\"instagram\")) {\n tableIcon = metaAds()\n } else if (tableName.toLowerCase().includes(\"tiktok\")) {\n tableIcon = tiktokAds()\n } else if (tableName.toLowerCase().includes(\"youtube\")) {\n tableIcon = youtubeAds()\n } else if (tableName.toLowerCase().includes(\"pinterest\")) {\n tableIcon = pinterestAds()\n } else if (tableName.toLowerCase().includes(\"amazon\")) {\n tableIcon = amazonAds()\n }\n\n else tableIcon = \"\"\n\n return(\n
    \n
    \n {tableIcon}\n
    \n
    \n {tableName} {selectedGroup}\n
    \n
    \n )\n }\n\n const exportTableToCSV = () => {\n const rows = [];\n const currentYear = new Date().getFullYear();\n const previousYear = currentYear - 1;\n\n // Headers\n const headers = ['Dimension'];\n const subHeaders = [''];\n \n props.headerOrder.forEach((header) => {\n headers.push(getColumnName(header));\n headers.push(''); // Empty space for the subheader row\n headers.push('');\n });\n\n props.headerOrder.forEach((header) => {\n subHeaders.push(previousYear);\n subHeaders.push(currentYear);\n subHeaders.push('Y/Y');\n });\n\n rows.push(headers.join(','));\n rows.push(subHeaders.join(','));\n\n // Data Rows\n props.dimensions.forEach((dim) => {\n const row = [dim]; // First column is the dimension name\n \n props.headerOrder.forEach((metric) => {\n const metricName = toLower(metric);\n const metricData = selectedGroup\n ? jsDig([toLower(selectedGroup), metricName, dim], props.data)\n : jsDig([metricName, dim], props.data);\n \n // Handling each subheader value\n let currentValue = '';\n let previousValue = '';\n let yoyValue = '';\n\n if (metricData) {\n previousValue = metricData['previous'] !== undefined ? formatMetric(metricName, metricData['previous'], previousYear) : '';\n currentValue = metricData['current'] !== undefined ? formatMetric(metricName, metricData['current'], currentYear) : '';\n yoyValue = metricData['comparison'] !== undefined ? formatMetric(metricName, metricData['comparison'], 'Y/Y') : '';\n }\n\n // Ensure proper formatting by enclosing values in quotes if they contain commas or special characters\n row.push(`\"${previousValue}\"`);\n row.push(`\"${currentValue}\"`);\n row.push(`\"${yoyValue}\"`);\n });\n\n rows.push(row.join(','));\n });\n\n // Create and download the CSV file\n const csvContent = \"data:text/csv;charset=utf-8,\" + rows.join(\"\\n\");\n const encodedUri = encodeURI(csvContent);\n const link = document.createElement(\"a\");\n link.setAttribute(\"href\", encodedUri);\n link.setAttribute(\"download\", `${props.tableName || 'table_data'}.csv`);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\n return (\n <>\n
    \n {/* Export Button */}\n {/* */}\n \n
    \n
    {renderGroupSelector()}
    \n
    {renderTableName(props.tableName, selectedGroup ? selectedGroup : \"\")}
    \n
    \n
    \n {isCollapsed ? chevronDown : chevronUp}\n
    \n
    \n
    \n
    \n \n \n {renderTableHeader()}\n \n \n {renderTopSummaryRow()}\n {renderTableRows()}\n \n
    \n
    \n
    \n {props.disabledMsg && (\n
    \n {props.disabledMsg}\n
    \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport ProgressBar from 'dashboards/lite/ProgressBar';\nimport showAlert from \"utils/showAlert\";\n\nconst LiteRefresh = ({ currentDashboard, accountId, alreadyPulling, refreshPreference, icon, companyName, modalButtonRef, setShowModalMenu, showModalMenu, modalMenuRef }) => {\n const [showMenu, setShowMenu] = useState(false);\n const [loading, setLoading] = useState(alreadyPulling > 0 || false);\n const [progress, setProgress] = useState(0);\n const loadingGif = require(\"images/generate-spinner.gif\");\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [totalQueries, setTotalQueries] = useState(alreadyPulling);\n const [dataPullComplete, setDataPullComplete] = useState(false);\n const [autoRefresh, setAutoRefresh] = useState(refreshPreference ? refreshPreference : false);\n\n let dotsHorizontal = require(\"images/lite/icons/dots-horizontal.png\");\n dotsHorizontal = ;\n let refreshIcon = require(\"images/icons/refresh-icon.png\");\n refreshIcon = ;\n\n const menuRef = useRef(null); // Ref for the menu\n const buttonRef = useRef(null); // Ref for the button\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target) &&\n buttonRef.current && !buttonRef.current.contains(event.target)) {\n setShowMenu(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n \n useEffect(() => {\n const intervalId = loading ? setInterval(() => {\n fetchRefreshStatus(totalQueries);\n }, 7000) : null;\n\n return () => {\n if (intervalId) {\n clearInterval(intervalId);\n }\n };\n }, [loading, totalQueries]); // Depend on `loading` to start or stop the interval\n\n useEffect(() => {\n if (dataPullComplete && autoRefresh) {\n window.location.reload();\n }\n }, [dataPullComplete, autoRefresh]); // Reacts to changes in dataPullComplete and autoRefresh\n\n const fetchRefreshStatus = async (totalQueriesCurrent) => {\n const params = new URLSearchParams({\n dashboard: currentDashboard,\n accountId\n });\n \n try {\n const response = await fetch(`/datapulse/lite/refresh-status?${params.toString()}`, {\n method: 'POST', // Assuming GET is the method to fetch status\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n });\n\n if (response.ok) {\n const data = await response.json();\n console.log('Refresh status fetched successfully', data);\n updateProgress(data, totalQueriesCurrent);\n } else {\n console.error('Failed to fetch refresh status');\n }\n } catch (error) {\n console.error('Network error:', error);\n }\n\n };\n\n const updateRefreshPreference = async (autoRefresh) => {\n const params = new URLSearchParams({\n default_refresh: autoRefresh == true ? 1 : 0\n });\n try {\n const response = await fetch(`/datapulse/update-default-refresh?${params.toString()}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n });\n\n if (response.ok) {\n const data = await response.json();\n console.log('Refresh preference updated successfully', data);\n } else {\n console.error('Failed to update refresh preference');\n }\n } catch (error) {\n console.error('Network error:', error);\n }\n\n }\n\n const updateProgress = (data, totalQueriesCurrent) => {\n const remainingQueries = data.total_jobs; // total_jobs updates with each fetch\n if (remainingQueries === 0) {\n setLoading(false);\n setDataPullComplete(true);\n document.querySelector(\"#most-recent-refresh\").innerText = `Last refresh: ${new Date().toLocaleString(\"en-US\", { hour: \"numeric\", minute: \"numeric\", hour12: true, month: \"numeric\", day: \"numeric\", year: \"numeric\" })}`;\n }\n const completedQueries = totalQueriesCurrent - remainingQueries;\n console.log(\"totalQueries\", totalQueriesCurrent, \"remainingQueries\", remainingQueries, \"completedQueries\", completedQueries, \"data\", data)\n setProgress((completedQueries / ((totalQueries && (totalQueries > 0)) ? totalQueries : 1)) * 100);\n };\n\n\n const handleRefresh = async (timePeriod) => {\n setLoading(true);\n setShowMenu(false);\n setDataPullComplete(false);\n setProgress(0);\n try {\n const params = new URLSearchParams({\n dashboard: currentDashboard,\n accountId: accountId, \n timePeriod: timePeriod,\n });\n \n // Goes to LiteController#refresh\n const response = await fetch(`/datapulse/lite/refresh?${params.toString()}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n });\n\n if (response.ok) {\n const data = await response.json();\n if (data.success == true) {\n setTotalQueries(data.total_jobs);\n console.log('Dashboard refresh initiated successfully', `Total jobs: ${data.total_jobs}`);\n } else {\n // Handle errors\n showAlert(`Dashboard refresh failed - ${data.error}`, 'alert-danger');\n console.error(`Dashboard refresh failed - ${data.error}`);\n setLoading(false);\n }\n } else {\n // Handle errors\n showAlert('Dashboard refresh failed - Server Error', 'alert-danger');\n console.error('Dashboard refresh failed - Server Error');\n setLoading(false);\n }\n } catch (error) {\n // Handle network errors\n showAlert('Dashboard refresh failed - Network Error', 'alert-danger');\n console.error('Network error:', error);\n } finally {\n // No\n }\n };\n\n return (\n <>\n {(loading || dataPullComplete) && (\n
    \n
    \n {dataPullComplete ? (\n <>\n
    \n

    Data refreshed!

    \n \n
    \n
    \n

    Reload the page to see your new data

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

    Refreshing data...

    \n
    \n {\n setAutoRefresh(!autoRefresh);\n updateRefreshPreference(!autoRefresh);\n }}\n />\n \n
    \n
    \n
    \n

    You can continue browsing DataPulse

    \n
    \n \n )}\n \n
    \n
    \n )} \n
    \n {\n currentDashboard == \"all_dashboards\" ? (\n <>\n \n {showModalMenu && (\n
    \n
    {handleRefresh('currentMonth'), window.location.reload()}}>Refresh Current Month
    \n
    {handleRefresh('last60Days'); window.location.reload()}}>Last 60 Days
    \n
    {handleRefresh('wholeDashboard'); window.location.reload()}}>Refresh Whole Dashboard
    \n
    \n )}\n \n ) : (\n <>\n setShowMenu(!showMenu)}\n disabled={loading}\n >\n
    \n

    Refresh data

    \n {dotsHorizontal}\n
    \n \n {showMenu && (\n
    \n
    handleRefresh('currentMonth')}>Refresh Current Month
    \n
    handleRefresh('last60Days')}>Last 60 Days
    \n
    handleRefresh('wholeDashboard')}>Refresh Whole Dashboard
    \n
    \n )}\n \n ) \n }\n
    \n \n );\n};\n\nexport default LiteRefresh;\n","import React from 'react';\n\n\nexport default function ObjectivePicker(props) {\n const handleObjectiveChange = (event) => {\n const newObjective = event.target.value;\n props.setDashboardObjective(newObjective);\n };\n\n return (\n
    \n
    Objective:
    \n
    \n \n \n \n \n
    \n
    \n )\n}","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport YearPicker from \"dashboards/lite/YearPicker\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport LiteKeywordTable from \"dashboards/lite/LiteKeywordTable\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\n\nexport default function OrganicSearchDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Landing pages have already been sorted so just grab the first 15 for the increase/decrease table dimensions\n const landingPageIncreasesDimensions = jsDig([\"overall\", \"landing_page_increase_l30\", \"sessions\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"landing_page_increase_l30\", \"sessions\"], props.table_data)).slice(0, 20) : [];\n const landingPageDecreasesDimensions = jsDig([\"overall\", \"landing_page_decrease_l30\", \"sessions\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"landing_page_decrease_l30\", \"sessions\"], props.table_data)).slice(0, 20) : [];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n // Read the 'year' query param if it exists\n const urlParams = new URLSearchParams(window.location.search);\n const queryYear = parseInt(urlParams.get(\"year\"), 10);\n\n // If queryYear is not a valid number, use the current year, else use queryYear\n const thisYear = isNaN(queryYear) ? new Date().getFullYear() : queryYear;\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/search.svg\");\n mainIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"organic_search\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Organic Search Dashboard

    \n
    \n
    \n
    \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n \n \n {props.user_is_employee && (\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 \", data: jsDig([\"overall\", \"l7\"], props.table_data)}}\n collapsed={true}\n groups={[\"Total\", \"Shopping\"]}\n />\n
    \n
    \n
    \n\n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\nimport YearPicker from \"dashboards/lite/YearPicker\";\n\nexport default function OrganicSocialDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"sessions\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"sessions\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n // Read the 'year' query param if it exists\n const urlParams = new URLSearchParams(window.location.search);\n const queryYear = parseInt(urlParams.get(\"year\"), 10);\n\n // If queryYear is not a valid number, use the current year, else use queryYear\n const thisYear = isNaN(queryYear) ? new Date().getFullYear() : queryYear;\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/social.svg\");\n let followerIcon =
    \n mainIcon =
    \n let disabledIcon = require(\"images/lite/icons/coming-soon.png\");\n disabledIcon =
    \n\n let facebookIcon = require(\"images/lite/icons/facebook.png\");\n facebookIcon = \n let instagramIcon = require(\"images/lite/icons/instagram.svg\");\n instagramIcon = \n let tiktokIcon = require(\"images/lite/icons/tiktok.png\");\n tiktokIcon = \n let youtubeIcon = require(\"images/lite/icons/youtube.png\");\n youtubeIcon = \n let twitterIcon = require(\"images/lite/icons/twitter.svg\");\n twitterIcon = \n let linkedinIcon = require(\"images/lite/icons/linkedin.svg\");\n linkedinIcon = \n let snapchatIcon = require(\"images/lite/icons/snapchat.png\");\n snapchatIcon = \n let otherIcon = require(\"images/lite/icons/other.svg\");\n otherIcon = \n\n function formatNumber(num) {\n if (num >= 1000) {\n return (num / 1000).toFixed(1) + 'k'; // Converts the number to 'k' format\n }\n return num.toString(); // Returns the number as a string if under 1000\n }\n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"organic_social\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n const followerCards = [\n {\n platform: \"Facebook\",\n icon: facebookIcon,\n followers: 157500,\n followersChange: 1500,\n },\n {\n platform: \"Instagram\",\n icon: instagramIcon,\n followers: 57500,\n followersChange: 500,\n },\n {\n platform: \"TikTok\",\n icon: tiktokIcon,\n followers: 57500,\n followersChange: 2500,\n },\n {\n platform: \"YouTube\",\n icon: youtubeIcon,\n followers: 97500,\n followersChange: 1500,\n },\n {\n platform: \"Twitter\",\n icon: twitterIcon,\n followers: 57500,\n followersChange: -500,\n },\n {\n platform: \"LinkedIn\",\n icon: linkedinIcon,\n followers: 1300,\n followersChange: 42,\n },\n {\n platform: \"Snapchat\",\n icon: snapchatIcon,\n followers: 57500,\n followersChange: 500,\n },\n {\n platform: \"Other\",\n icon: otherIcon,\n followers: 57500,\n followersChange: 500,\n }\n ]\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Organic Social Dashboard

    \n
    \n
    \n
    \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n \n \n {props.user_is_employee && (\n \n )}\n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {disabledIcon}

    Metric coming soon!

    }\n />\n
    \n
    \n\n
    \n
    \n
    \n {followerIcon} Followers (vs. last week)\n
    \n
    \n {\n followerCards.map((card, index) => {\n return(\n
    \n
    \n {card.icon}

    {card.platform}

    \n
    \n
    \n
    \n {formatNumber(card.followers)}\n
    \n {card.followersChange >= 0 ? \n
    +{formatNumber(card.followersChange)}
    :\n
    {formatNumber(card.followersChange)}
    \n }\n
    \n
    \n )\n }\n )\n }\n
    \n
    \n {disabledIcon}

    Engagement metrics coming soon!

    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n {disabledIcon}

    Metric coming soon!

    }\n colorBlindAssist={props.color_blind_assist}\n />\n
    \n
    \n {disabledIcon}

    Metric coming soon!

    }\n colorBlindAssist={props.color_blind_assist}\n />\n
    \n
    \n {disabledIcon}

    Metric coming soon!

    }\n />\n
    \n
    \n {disabledIcon}

    Metric coming soon!

    }\n />\n
    \n
    \n\n
    \n
    \n \", data: jsDig([\"overall\", \"l7\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\nimport YearPicker from \"dashboards/lite/YearPicker\";\n\nexport default function OtherDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"sessions\", \"direct\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"sessions\", \"direct\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n // Read the 'year' query param if it exists\n const urlParams = new URLSearchParams(window.location.search);\n const queryYear = parseInt(urlParams.get(\"year\"), 10);\n\n // If queryYear is not a valid number, use the current year, else use queryYear\n const thisYear = isNaN(queryYear) ? new Date().getFullYear() : queryYear;\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/other.svg\");\n mainIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"other\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Other Dashboard

    \n
    \n
    \n
    \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n \n {/* */}\n {props.user_is_employee && (\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 \", data: jsDig([\"overall\", \"l7\", \"sessions\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport YearPicker from \"dashboards/lite/YearPicker\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport ChartHelpModal from \"dashboards/lite/ChartHelpModal\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\n\nexport default function OverviewDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n // Read the 'year' query param if it exists\n const urlParams = new URLSearchParams(window.location.search);\n const queryYear = parseInt(urlParams.get(\"year\"), 10);\n\n // If queryYear is not a valid number, use the current year, else use queryYear\n const thisYear = isNaN(queryYear) ? new Date().getFullYear() : queryYear;\n const lastYear = thisYear - 1;\n\n\n let mainIcon = require(\"images/lite/icons/overview.svg\");\n mainIcon =
    \n let disabledIcon = require(\"images/lite/icons/coming-soon.png\");\n disabledIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(jsDig([\"client_account\", \"dashboard_objective\"], props) ? jsDig([\"client_account\", \"dashboard_objective\"], props) : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let merOrCpa = dashboardObjective == \"sales\" ? \"mer\" : \"cpa\";\n\n const dashboardType = \"overview\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Overview Dashboard

    \n
    \n
    \n
    \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n \n \n {props.user_is_employee && (\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 {dashboardObjective == \"sales\" && (\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n )}\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \", data: jsDig([\"overall\", \"l7\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n\n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\n\nexport default function PpcPortfolioDashboard(props) {\n console.log(props)\n const ppcPortfolioDimensions = jsDig([\"overall\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"spend\"], props.table_data)).sort() : [];\n\n let mainIcon = require(\"images/lite/icons/bar-separated.svg\");\n mainIcon =
    \n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    PPC Portfolio Performance

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n );\n}\n","import React from 'react';\n\nconst ProgressBar = ({ progress }) => {\n const fillerStyles = {\n height: '100%',\n width: `${progress}%`,\n backgroundColor: '#42ba96', // Choose a juicy color!\n borderRadius: 'inherit',\n textAlign: 'right',\n transition: 'width 1s ease-in-out', // Smooth transition for the \"juicy\" feel\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n paddingRight: 5, // Padding to ensure the label does not touch the edges\n };\n\n const labelStyles = {\n padding: 5,\n color: 'white',\n fontWeight: 'bold',\n fontSize: '10px'\n };\n\n return (\n
    \n
    \n {`${progress}%`}\n
    \n
    \n );\n};\n\nexport default ProgressBar;\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport YearPicker from \"dashboards/lite/YearPicker\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\n\nexport default function SearchDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n const l7metricTableDimensions = jsDig([\"overall\", \"l7_branded\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"l7_branded\", \"spend\"], props.table_data)).filter(d => d != \"total\") : []\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n // Read the 'year' query param if it exists\n const urlParams = new URLSearchParams(window.location.search);\n const queryYear = parseInt(urlParams.get(\"year\"), 10);\n\n // If queryYear is not a valid number, use the current year, else use queryYear\n const thisYear = isNaN(queryYear) ? new Date().getFullYear() : queryYear;\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/search.svg\");\n mainIcon =
    \n let disabledIcon = require(\"images/lite/icons/coming-soon.png\");\n disabledIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"paid_search\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n \n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Paid Search Dashboard

    \n
    \n
    \n
    \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n \n \n {props.user_is_employee && (\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 {jsDig([dashboardType, \"show_branded_and_non_branded_l7d_tables\", \"enabled\"], dashboardOptions) && (\n
    \n
    \n \", data: jsDig([\"overall\", \"l7_branded\"], props.table_data)}}\n />\n
    \n
    \n \", data: jsDig([\"overall\", \"l7_nonbranded\"], props.table_data)}}\n />\n
    \n
    \n )}\n
    \n
    \n \", data: jsDig([\"overall\", \"l7\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n\n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"dashboards/lite/ObjectivePicker\";\nimport DashboardOptions from \"dashboards/lite/DashboardOptions\";\nimport ChartHelpModal from \"dashboards/lite/ChartHelpModal\";\nimport { capitalize } from \"lodash\";\nimport LiteExportPDF from 'utils/LiteExportPDF';\nimport YearPicker from \"dashboards/lite/YearPicker\";\n\nexport default function SocialDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n // Read the 'year' query param if it exists\n const urlParams = new URLSearchParams(window.location.search);\n const queryYear = parseInt(urlParams.get(\"year\"), 10);\n\n // If queryYear is not a valid number, use the current year, else use queryYear\n const thisYear = isNaN(queryYear) ? new Date().getFullYear() : queryYear;\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/social.svg\");\n mainIcon =
    \n let disabledIcon = require(\"images/lite/icons/coming-soon.png\");\n disabledIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"paid_social\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Paid Social Dashboard

    \n
    \n
    \n
    \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n \n \n {props.user_is_employee && (\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 \", data: jsDig([\"overall\", \"l7\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\n\nexport default function YearPicker() {\n // Detect the current query param for 'year' if it exists\n const [selectedYear, setSelectedYear] = useState(() => {\n const urlParams = new URLSearchParams(window.location.search);\n // Default to the current year (or pick whatever default you'd like)\n return urlParams.get(\"year\") || new Date().getFullYear().toString();\n });\n\n const handleYearChange = (event) => {\n const newYear = event.target.value;\n setSelectedYear(newYear);\n\n // Create a new URL object from current window location\n const currentUrl = new URL(window.location.href);\n\n // Update or add 'year' query parameter\n currentUrl.searchParams.set(\"year\", newYear);\n\n // Reload the page with the new query parameter\n window.location.href = currentUrl.toString();\n };\n\n // Build a list of years from 2022 up to the current year\n // (You can modify this range as desired)\n const years = [];\n for (let y = 2022; y <= new Date().getFullYear(); y++) {\n years.push(y);\n }\n\n return (\n
    \n
    Year:
    \n
    \n \n {years.map((yr) => (\n \n ))}\n \n
    \n
    \n );\n}\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, { useState } from \"react\";\nimport { Modal, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport { capitalize } from \"lodash\";\nimport showAlert from 'utils/showAlert';\nimport { event } from \"jquery\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function Reports(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [show, setShow] = useState(false);\n\n const [newReport, setNewReport] = useState({\n id: \"\",\n dashboard: \"\",\n platforms: \"\",\n dimensions: \"\",\n metrics: \"\",\n daterange: \"\",\n google_sheets_url: \"\",\n refresh_daily: false,\n sheet_name: \"\",\n target_cell: \"\",\n });\n const [selectedReport, setSelectedReport] = useState(null);\n\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n\n const createNewReport = (event) => {\n event.preventDefault();\n // Sends post request to /reports/create-report\n fetch('/datapulse/reports/create-report', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n body: JSON.stringify({\n new_report: newReport,\n account_id: props.selected_account.id\n }),\n })\n .then(response => response.json())\n .then(data => {\n showAlert('New report created successfully!');\n handleClose();\n window.location.reload();\n })\n .catch(error => {\n showAlert('Error creating report. Please try again.', 'danger');\n console.error('Error:', error);\n });\n };\n \n const saveReport = (event) => {\n event.preventDefault();\n // Sends post request to /reports/save-report\n fetch('/datapulse/reports/save-report', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n body: JSON.stringify({\n report: selectedReport,\n account_id: props.selected_account.id\n }),\n })\n .then(response => response.json())\n .then(data => {\n showAlert('Report saved successfully!');\n handleClose();\n window.location.reload();\n })\n .catch(error => {\n showAlert('Error saving report. Please try again.', 'danger');\n console.error('Error:', error);\n });\n }\n \n const exportReport = (event) => {\n event.preventDefault();\n // Sends post request to /reports/export-to-google-sheets\n fetch('/datapulse/reports/export-to-google-sheets', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n body: JSON.stringify({ report_id: selectedReport.id }),\n })\n .then(response => response.json())\n .then(data => {\n if (data.success) {\n handleClose();\n showAlert('Report exported to Google Sheets successfully!');\n } else {\n handleClose();\n showAlert(`Error exporting report. ${data.message}`, 'danger');\n }\n })\n .catch(error => {\n showAlert('Error exporting report. Please try again.', 'danger');\n console.error('Error:', error);\n });\n }\n \n const deleteReport = (event) => {\n event.preventDefault();\n // Sends post request to /reports/delete-report\n fetch('/datapulse/reports/delete-report', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n body: JSON.stringify({ report_id: selectedReport.id }),\n })\n .then(response => response.json())\n .then(data => {\n showAlert('Report deleted successfully!');\n handleClose();\n window.location.reload();\n })\n .catch(error => {\n showAlert('Error deleting report. Please try again.', 'danger');\n console.error('Error:', error);\n });\n }\n\n const openReport = (id) => {\n const report = props.export_reports.find(report => report.id === id);\n setSelectedReport(report);\n handleShow();\n }\n\n\n return (\n <>\n
    \n
    \n

    Export Reports

    \n

    Use this tool to automate sending data from DataPulse dashboards to Google Sheets.

    \n
    \n
    \n {props.export_reports && props.export_reports.map((report) => (\n
    openReport(report.id)} style={{ cursor: \"pointer\", alignItems: \"center\" }}>\n

    {report.dashboard && report.dashboard != \"\" ? report.dashboard : \"Not configured\"}

    \n

    {report.platforms}

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

    Report

    \n
    \n
    \n \n
    \n
    \n
    \n \n Options:\n \n \n setSelectedReport({ ...selectedReport, dashboard: e.target.value })} />\n
    \n
    \n \n Options:\n \n \n setSelectedReport({ ...selectedReport, platforms: e.target.value })} />\n
    \n
    \n \n Options:\n \n \n setSelectedReport({ ...selectedReport, daterange: e.target.value })} />\n
    \n
    \n \n setSelectedReport({ ...selectedReport, refresh_daily: e.target.checked })} />\n
    \n
    \n
    \n
    \n \n Options:\n \n \n {/* setSelectedReport({ ...selectedReport, dimensions: e.target.value })} /> */}\n \n
    \n
    \n \n Options:\n \n \n setSelectedReport({ ...selectedReport, metrics: e.target.value })} />\n
    \n
    \n \n Format: SheetName!A1\n setSelectedReport({ ...selectedReport, target_cell: e.target.value })} />\n
    \n
    \n
    \n\n
    \n \n setSelectedReport({ ...selectedReport, google_sheets_url: e.target.value })} />\n
    \n\n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n );\n}","import React, { useState } from 'react';\n\nexport default function FeedbackForm() {\n const [feedback, setFeedback] = useState({\n usefulness: '',\n improvement: ''\n });\n\n const [submitted, setSubmitted] = useState(false);\n const [errors, setErrors] = useState({\n usefulness: false,\n improvement: false\n });\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setFeedback({ ...feedback, [name]: value });\n };\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n\n let hasError = false;\n const { usefulness, improvement } = feedback;\n\n // Reset errors\n setErrors({\n usefulness: false,\n improvement: false\n });\n\n // Error checking for usefulness rating (must be between 1 and 10)\n if (!usefulness || usefulness < 1 || usefulness > 10) {\n hasError = true;\n document.getElementById(\"usefulness\").classList.add(\"lite-invalid-input\");\n setErrors((prev) => ({ ...prev, usefulness: true }));\n } else {\n document.getElementById(\"usefulness\").classList.remove(\"lite-invalid-input\");\n }\n\n // Error checking for the feedback text\n if (!improvement || improvement.trim() === '') {\n hasError = true;\n document.getElementById(\"improvement\").classList.add(\"lite-invalid-input\");\n setErrors((prev) => ({ ...prev, improvement: true }));\n } else {\n document.getElementById(\"improvement\").classList.remove(\"lite-invalid-input\");\n }\n\n if (!hasError) {\n try {\n // Send POST request to /datapulse/feedback\n const success = await submitFeedback(feedback);\n if (success) {\n setSubmitted(true);\n }\n } catch (error) {\n console.error(\"Error submitting feedback:\", error);\n }\n }\n };\n\n const submitFeedback = async (feedbackData) => {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n try {\n const response = await fetch('/datapulse/feedback', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n body: JSON.stringify({ feedback: feedbackData })\n });\n\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n console.log('Feedback submitted successfully', data);\n return true;\n } else {\n console.error('Failed to submit feedback', data.error_message);\n return false;\n }\n } else {\n console.error('Failed to submit feedback');\n return false;\n }\n } catch (error) {\n console.error('Request error:', error);\n return false;\n }\n };\n\n return (\n
    \n

    Submit Feedback for DataPulse

    \n {!submitted ? (\n
    \n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n \n Submit Feedback\n \n
    \n
    \n ) : (\n <>\n

    Thank you for your feedback! We sincerely appreciate it as we seek to make the platform better.

    \n

    If you still need support reach out to us at datapulse@digitalposition.com

    \n \n )}\n
    \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport showAlert from \"utils/showAlert\";\n\nexport default function CreateFirstAccountModal(props) {\n console.log(props);\n\n const org = props.org;\n const defaultLogo = require(\"images/lite/icons/logo-placeholder.png\");\n const orgLogoUrl = props.org_logo ? props.org_logo : `/datapulse${defaultLogo}`;\n const orgLogo = \"Organization;\n\n const [isModalVisible, setIsModalVisible] = useState(props.show || false);\n\n const hideModal = () => setIsModalVisible(false);\n\n const copyInviteCode = () => {\n navigator.clipboard.writeText(org.invite_code);\n showAlert(\"Invite code copied to clipboard!\", \"success\");\n };\n\n const showCreateAccountForm = () => {\n hideModal();\n props.showCreateModal();\n };\n\n return (\n <>\n \n \n \n
    {orgLogo}
    \n

    {org.name} is in the building!

    \n
    \n
    \n \n
    \n
    \n Watch this short video to learn about DataPulse and how to use it:\n
    \n \n
    \n
    \n
    \n Here's your join code to invite your team to your organization:\n
    \n

    {org.invite_code}

    \n \n
    \n

    \n Note: You can find your invite code again at any time by clicking your avatar in the top-right, and clicking the organization dropdown, then\n going to Organization Settings.\n

    \n
    \n\n
    \n
    Your first step is creating a company account. DataPulse can hold multiple accounts per organization.
    \n
      \n
    • If you're an agency looking to track clients' metrics, this allows you to have separate dashboards for every client company account.
    • \n
    • If you're a business only interested in tracking your own metrics, you'll likely just need to make a single account for your company.
    • \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport showAlert from \"utils/showAlert\";\n\nexport default function CreateOrg(props) {\n let createOrgIcon = require(\"images/lite/icons/graph-scatter.svg\");\n createOrgIcon = ;\n\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [isCreating, setIsCreating] = useState(false);\n const [newOrgName, setNewOrgName] = useState(\"\");\n const [newOrgType, setNewOrgType] = useState(\"agency\");\n\n // Logo\n const defaultLogo = require(\"images/lite/icons/logo-placeholder.png\");\n const [orgLogoUrl, setOrgLogoUrl] = useState(props.org_logo_url ? props.org_logo_url : `/datapulse${defaultLogo}`);\n const [orgLogoFile, setOrgLogoFile] = useState(props.org_logo ? props.org_logo : \"\");\n const inputRef = useRef();\n const orgLogo = \"Organization;\n\n const showModal = () => setIsModalVisible(true);\n const hideModal = () => setIsModalVisible(false);\n\n const handleLogoChange = (e) => {\n const file = e.target.files[0];\n if (file && file.size > 10000000) {\n alert(\"Image must be less than 10MB. Consider using another image or compressing this one.\");\n } else if (file) {\n const fileUrl = URL.createObjectURL(file);\n setOrgLogoUrl(fileUrl);\n setOrgLogoFile(file);\n }\n };\n\n const createOrg = async (event) => {\n event.preventDefault();\n let hasError = false;\n\n if (!newOrgName) {\n hasError = true;\n document.getElementById(\"new-org-name\").classList.add(\"lite-invalid-input\");\n }\n\n if (hasError) {\n return;\n }\n\n setIsCreating(true);\n\n // Create a new FormData object to handle the multipart data\n const formData = new FormData();\n formData.append(\"organization_name\", newOrgName);\n formData.append(\"organization_type\", newOrgType);\n\n if (orgLogoFile) {\n formData.append(\"organization_logo\", orgLogoFile);\n }\n\n try {\n const response = await fetch(\"/datapulse/organization/create\", {\n method: \"POST\",\n headers: {\n \"X-CSRF-Token\": document.querySelector('meta[name=\"csrf-token\"]').content,\n },\n body: formData,\n });\n\n console.log(response);\n\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n window.location.href = \"/datapulse/account-management?create_first_account=true\"; // Redirect to client management page and prompt user to create a new client\n } else {\n if (data.error) {\n showAlert(data.error, \"danger\");\n } else {\n showAlert(\"Failed to create organization. Please try again later.\", \"danger\");\n }\n }\n\n } else {\n showAlert(\"Failed to create organization. Please try again later.\", \"danger\");\n }\n } catch (error) {\n console.log(error)\n showAlert(\"An error occurred while creating the organization. Please try again later.\", \"danger\");\n } finally {\n setIsCreating(false);\n hideModal();\n }\n };\n\n return (\n <>\n
    \n {createOrgIcon}\n

    \n Create

    organization\n

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

    Create your organization

    \n
    \n
    \n \n
    \n
    \n
    \n \n setNewOrgName(e.target.value)}\n />\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    {orgLogo}
    \n
    \n \n {\n e.preventDefault();\n inputRef.current.click();\n }}>\n \"Upload\n Upload logo\n \n
    \n
    \n

    Use a square (1:1) image for best results.

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n {isCreating ? (\n \"Creating...\"\n ) : (\n <>\n ✔ Save and continue\n \n )}\n \n
    \n
    \n \n );\n}\n","import React, { useState } from 'react';\nimport { Modal } from 'react-bootstrap';\nimport showAlert from 'utils/showAlert';\n\nexport default function JoinOrg(props) {\n let joinOrgIcon = require(\"images/lite/icons/search.svg\");\n joinOrgIcon = \n \n const [isModalVisible, setIsModalVisible] = useState(false);\n const [isJoining, setIsJoining] = useState(false);\n const [isSearching, setIsSearching] = useState(false);\n const [org, setOrg] = useState(null);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const showModal = () => setIsModalVisible(true);\n const hideModal = () => setIsModalVisible(false);\n\n const joinOrg = async (event) => {\n event.preventDefault();\n let hasError = false;\n\n if (!org) {\n hasError = true;\n showAlert(\"Please search for an organization before joining.\", \"danger\");\n }\n\n if (hasError) {\n return;\n }\n\n setIsJoining(true);\n\n try {\n const response = await fetch(`/datapulse/organization/join`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector('meta[name=\"csrf-token\"]').content,\n },\n body: JSON.stringify({ org_id: org.id, invite_code: org.invite_code }),\n });\n\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n hideModal();\n const turbolinksEvent = new Event(\"turbolinks:request-start\");\n document.dispatchEvent(turbolinksEvent); // Emit this event to start the loading spinner\n window.location.href = \"/datapulse\";\n } else {\n if (data.error) {\n showAlert(data.error, \"danger\");\n } else {\n showAlert(\"An error occurred while joining the organization. Please try again.\", \"danger\");\n }\n }\n\n } else {\n showAlert(\"An error occurred while joining the organization. Please try again.\", \"danger\");\n }\n } catch (error) {\n console.log(error)\n showAlert(\"An error occurred while joining the organization. Please try again.\", \"danger\");\n } finally {\n setIsJoining(false);\n setSearchTerm(\"\");\n setOrg(null);\n }\n }\n\n\n const searchForOrg = async (event) => {\n event.preventDefault();\n let hasError = false;\n\n if (!searchTerm) {\n hasError = true;\n document.getElementById(\"join-org-code\").classList.add(\"lite-invalid-input\");\n }\n\n if (hasError) {\n return;\n }\n\n setIsSearching(true);\n try {\n const response = await fetch(`/datapulse/organization/search`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector('meta[name=\"csrf-token\"]').content,\n },\n body: JSON.stringify({ invite_code: searchTerm }),\n });\n\n console.log(response);\n\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n setOrg(data.organization);\n } else {\n if (data.error) {\n showAlert(data.error, \"danger\");\n } else {\n showAlert(\"An error occurred while searching for the organization. Please try again.\", \"danger\");\n }\n }\n\n } else {\n showAlert(\"An error occurred while searching for the organization. Please try again.\", \"danger\");\n }\n } catch (error) {\n console.log(error)\n showAlert(\"An error occurred while searching for the organization. Please try again.\", \"danger\");\n } finally {\n setIsSearching(false);\n }\n }\n\n return (\n <>\n
    \n {props.customBtnText ? (\n props.customBtnText\n ) : (\n <>\n {joinOrgIcon}\n

    Join

    organization

    \n \n )}\n
    \n\n \n \n Join an organization\n \n \n
    \n
    \n
    \n \n setSearchTerm(e.target.value)}\n />\n
    \n
    \n {org ? (\n
    \n ✔ {org.name} found!\n
    \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n
    \n \n \n {isJoining ? (\n \"Joining...\"\n ) : (\n <>\n ✔ Join organization\n \n )}\n \n
    \n
    \n \n )\n}","import React, { useState } from 'react';\n\n\nexport default function NoAccounts(props) {\n\n let dpLogo = require(\"images/logos/datapulse-logo-blue-small.png\");\n dpLogo = \n\n let chat= require(\"images/lite/icons/chat.png\");\n chat = \n\n return (\n
    \n
    \n

    Welcome to {dpLogo}

    \n {props.is_owner ? (\n

    Create your first account to get started!

    \n ) : (\n

    Looks like you don't have access yet!

    \n )}\n
    \n
    \n
    {chat}
    \n {props.is_owner ? (\n

    Click this link to create your first account. After that you can configure your dashboards and start pulling data.

    \n ) : props.is_primary_org ? (\n

    Reach out to your Digital Position account lead for help. They will be able to grant you the permissions you need to access your accounts.

    \n ) : (\n

    Reach out to an admin in your organization for help. They will be able to grant you the permissions you need to access your accounts.

    \n )}\n
    \n \n
    \n )\n}","import React, { useState } from 'react';\nimport CreateOrg from \"home/CreateOrg\";\nimport JoinOrg from \"home/JoinOrg\";\nimport WelcomeToDataPulseModal from \"home/WelcomeToDataPulseModal\";\n\nexport default function Onboarding(props) {\n\n let dpLogo = require(\"images/logos/datapulse-logo-blue-small.png\");\n dpLogo = \n\n \n\n return (\n <>\n
    \n
    \n

    Welcome to {dpLogo}

    \n

    Looks like you don't have access to any organizations yet.

    \n
    \n
    \n \n \n
    \n \n
    \n \n \n )\n}","import React, { useState, useRef } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport showAlert from \"utils/showAlert\";\n\nexport default function SetUpApiAccessModal(props) {\n console.log(props);\n\n const org = props.org;\n\n const [isModalVisible, setIsModalVisible] = useState(props.show || false);\n\n const hideModal = () => setIsModalVisible(false);\n\n const goToApiAccess = () => {\n hideModal();\n window.location.href = \"/datapulse/api-access\";\n }\n\n return (\n <>\n \n \n \n

    Next step: Set up Data Connections

    \n
    \n
    \n \n
    \n

    Great job creating your first account!

    \n

    The next step is to set up your Data Connections so you can pull in your data for {org.name}.

    \n

    Head over to the Data Connections page to authenticate with the platforms you use.

    \n
    \n\n
    \n \n \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Modal } from \"react-bootstrap\";\n\nexport default function WelcomeToDataPulseModal(props) {\n console.log(props);\n\n const [isModalVisible, setIsModalVisible] = useState(props.show || false);\n\n const hideModal = () => setIsModalVisible(false);\n\n return (\n <>\n \n \n \n

    Welcome to DataPulse

    \n
    \n
    \n \n
    \n

    You're almost there!

    \n

    Get started by creating an organization (or joining one if you have an invite code).

    \n

    Once you're in, you can create your first account and start pulling in your data.

    \n
    \n \"DataPulse\n
    \n
    \n\n
    \n \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useContext, useEffect, useCallback } from \"react\";\nimport { Modal, Button, Form, Table } from \"react-bootstrap\";\nimport TermsAndConditionsModal from \"terms_and_conditions/TermsAndConditionsModal\";\nimport { debounce } from \"lodash\";\nimport showAlert from 'utils/showAlert';\n\nexport default function RegisterAccount(props) {\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [isThankYouModalVisible, setIsThankYouModalVisible] = useState(false);\n const [isTermsModalVisible, setIsTermsModalVisible] = useState(false);\n const [newUser, setNewUser] = useState({\n first_name: '',\n last_name: '',\n email: '',\n password: '',\n password_confirmation: ''\n });\n\n const showModal = () => setIsModalVisible(true);\n const hideModal = () => setIsModalVisible(false);\n const showThankYouModal = () => setIsThankYouModalVisible(true);\n const hideThankYouModal = () => setIsThankYouModalVisible(false);\n const showTermsModal = () => setIsTermsModalVisible(true);\n const hideTermsModal = () => setIsTermsModalVisible(false);\n const [acceptedTerms, setAcceptedTerms] = useState(false);\n\n // Add New User Functionality\n const handleNewUserChange = (event) => {\n event.preventDefault();\n const { name, value } = event.target;\n setNewUser({ ...newUser, [name]: value });\n };\n\n const createNewUser = async (event) => {\n event.preventDefault();\n const isValidEmail = (email) => /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email);\n let hasError = false;\n const userToAdd = newUser;\n const firstName = userToAdd.first_name.trim();\n const lastName = userToAdd.last_name.trim();\n const email = userToAdd.email.trim();\n const password = userToAdd.password.trim();\n const passwordConfirmation = userToAdd.password_confirmation.trim();\n \n if (!firstName) {\n hasError = true;\n document.getElementById(\"new-user-first-name\").classList.add(\"lite-invalid-input\");\n } else {\n document.getElementById(\"new-user-first-name\").classList.remove(\"lite-invalid-input\");\n }\n if (!lastName) {\n hasError = true;\n document.getElementById(\"new-user-last-name\").classList.add(\"lite-invalid-input\");\n } else {\n document.getElementById(\"new-user-last-name\").classList.remove(\"lite-invalid-input\");\n }\n if (!isValidEmail(email)) {\n hasError = true;\n document.getElementById(\"new-user-email\").classList.add(\"lite-invalid-input\");\n } else {\n document.getElementById(\"new-user-email\").classList.remove(\"lite-invalid-input\");\n }\n if (!password) {\n hasError = true;\n document.getElementById(\"new-user-password\").classList.add(\"lite-invalid-input\");\n }\n if (!passwordConfirmation) {\n hasError = true;\n document.getElementById(\"new-user-password-confirmation\").classList.add(\"lite-invalid-input\");\n }\n if (password !== passwordConfirmation) {\n hasError = true;\n document.getElementById(\"new-user-password\").classList.add(\"lite-invalid-input\");\n document.getElementById(\"new-user-password-confirmation\").classList.add(\"lite-invalid-input\");\n }\n \n if (!hasError) {\n try {\n // Send request to create new user and wait for result\n const success = await createUserRequest(userToAdd);\n \n if (success) {\n if (typeof gtag === \"function\") { // gtag is only defined on production environment\n gtag(\"event\", \"datapulse_lead\", {\n event_label: \"datapulse_account_register\",\n })\n }\n\n hideModal();\n showThankYouModal();\n }\n } catch (error) {\n console.error(\"Error creating user:\", error);\n }\n }\n };\n \n const createUserRequest = async (userToAdd) => {\n console.log(\"Creating new user\", userToAdd);\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n \n try {\n const response = await fetch('/datapulse/profile', { // routes to users/registrations#create\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n body: JSON.stringify({\n user: userToAdd\n })\n });\n \n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n console.log('New user created successfully', data);\n return true;\n } else {\n console.error('Failed to create new user', data.error_message);\n showAlert(`Failed to register your account. ${data.error_message}`, 'danger');\n return false;\n }\n } else {\n console.error('Failed to create new user');\n showAlert('Error - Failed to register your account.', 'danger');\n return false;\n }\n } catch (error) {\n console.error('Request error:', error);\n showAlert('An error occurred while trying to register your account.', 'danger');\n return false;\n }\n };\n\n return (\n <>\n
    \n

    \n Don't have an account?\n Create one\n

    \n
    \n \n \n \n

    Create your account

    \n
    \n
    \n \n

    Thanks for your interest in DataPulse! Please create your free account to continue.

    \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 I accept the showTermsModal()}>Terms and Conditions\n setAcceptedTerms(!acceptedTerms)} checked={acceptedTerms} />\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n

    Confirm your account

    \n
    \n
    \n \n

    Welcome to DataPulse! Your account is created, we just need you to confirm your email address.

    \n
    \n \n

    Check for your confirmation email from support@digitalposition.com and click the link. (Be sure to check your spam folder)

    \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 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 Data Connections 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 \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
    \n

    Organization Management

    \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 \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 organization 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 SaveChanges from \"./SaveChanges\";\nimport DeleteOrgModal from \"organization_management/DeleteOrgModal\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport showAlert from \"utils/showAlert\";\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 const handleShow2 = () => {\n setShow2(true);\n setZIndexFirst(1000);\n };\n\n const handleClose2 = () => {\n setShow2(false);\n setZIndexFirst(3001);\n };\n\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 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 } else {\n selection.pop();\n selection.push(userEmail);\n }\n setToggledUsers(selection);\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 (!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 const confirmDelete = (org) => {\n setDeleteTarget(org);\n setShowDeleteModal(true);\n };\n\n const deleteOrg = (org) => {\n props.handleOrgDelete();\n };\n\n const copyInviteCode = () => {\n navigator.clipboard.writeText(props.org.invite_code);\n showAlert(\"Invite code copied to clipboard!\", \"success\");\n };\n\n return (\n <>\n
    \n \n \n
    \n \n
    \n

    Organization Settings

    \n
    \n
    \n
    \n

    Organization Name

    \n \n
    \n
    \n

    Location

    \n \n
    \n
    \n

    Type

    \n
    \n \n
    \n
    \n {props.isOwner && (\n
    \n

    Owner Actions

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

    Description

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

    Organization Logo

    \n
    \n
    \n {OrgLogo}\n
    \n
    \n {\n if (e.target.files[0].size > 8000000) {\n alert(\"Image must be less than 8MB. Consider using 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

    \n Accepted file types: JPG, PNG, SVG
    \n Minimum file dimensions: 100x100px
    \n Ideal ratio 1:1
    \n Maximum file size: 8 MB\n

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

    Invite code: {props.org.invite_code}

    \n \n
    \n

    \n (Send this code to users who you would like to join '{props.org.name}'. User's who join using the code will be added as employees and given access to all accounts.\n This can be changed at any time with the User Access page.)\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 \n {caution}{\" \"}\n

    ARE YOU SURE?

    \n
    \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}","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 \n

    Change Organization

    \n
    \n
    \n \n
    \n

    Select organization to view:

    \n
    \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 if (props.force_selection) {\n setSelfShow(false);\n } else {\n props.setShow(false);\n }\n changeOrg();\n }}>\n Change Organization\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 Save changes\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 && user.role !== \"owner\" ? user.role.toLowerCase().replace(\"_\", \" \") : user.role ? user.role : \"none\"\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 } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport showAlert from 'utils/showAlert';\n\nexport default function DeleteAccount(props) {\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [isDeleting, setIsDeleting] = useState(false); // To handle button state during deletion\n\n const showModal = () => setIsModalVisible(true);\n const hideModal = () => setIsModalVisible(false);\n\n const deleteUser = async (event) => {\n event.preventDefault();\n setIsDeleting(true);\n\n try {\n const response = await fetch('/datapulse/users/destroy-self', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': document.querySelector('meta[name=\"csrf-token\"]').content,\n },\n });\n\n console.log(response);\n\n if (response.ok) {\n const data = await response.json();\n showAlert('Your account has been deleted successfully.', 'success');\n window.location.href = '/datapulse/login'; // Redirect to home page\n } else {\n showAlert('Failed to delete your account. Please try again later.', 'danger');\n }\n } catch (error) {\n showAlert('An error occurred while deleting your account. Please try again later.', 'danger');\n } finally {\n setIsDeleting(false);\n hideModal();\n }\n };\n\n return (\n <>\n
    \n
    \n \n
    \n \n \n \n

    Delete your DataPulse account

    \n
    \n
    \n \n
    \n

    Are you sure you want to permanently delete your account? This action is not reversible.

    \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 OrgPickerModal from \"organizations/OrgPickerModal\";\nimport jsDig from \"utils/jsDig\";\nimport JoinOrg from \"home/JoinOrg\";\n\nexport default function ProfileDropdown(props) {\n let logout = require(\"images/lite/icons/logout.png\");\n logout = ;\n let dpLogo = require(\"images/logos/dp-logo-white.png\");\n dpLogo = ;\n let orgLogo = props.logo ? props.logo : \"\";\n orgLogo = ;\n\n const [show, setShow] = useState(false);\n const handleShow = () => setShow(true);\n\n const [showOrgOptions, setShowOrgOptions] = useState(false);\n const toggleOrgOptions = () => setShowOrgOptions(!showOrgOptions);\n const userOrgDetail = props.user_org_details.find((el) => el.organization_id == jsDig([\"selected_org\", \"id\"], props));\n const getRoleTitle = (role) => {\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 let dropdownArrow = require(\"images/lite/icons/chevron-down.png\");\n dropdownArrow = ;\n\n return (\n
    \n {(props.organizations && props.organizations.length) > 0 && (\n <>\n

    {e.stopPropagation(); toggleOrgOptions()}}>\n Organization: {props.selected_org ? props.selected_org.name : \"None\"}\n \n {dropdownArrow}\n \n

    \n \n
    \n
    \n
    \n
    \n {props.logo ? orgLogo : dpLogo}\n
    \n
    \n

    \n {props.selected_org ? props.selected_org.name : \"None\"}\n

    \n

    \n {props.current_user_is_owner ? \"Owner\" : getRoleTitle(jsDig([\"role\"], userOrgDetail))}\n

    \n
    \n
    \n {(props.organizations.length > 1 || !props.selected_org) && (\n

    \n Change Organization\n

    \n )}\n {(getRoleTitle(jsDig([\"role\"], userOrgDetail)) === \"Admin\" || props.current_user_is_admin || props.current_user_is_owner) && (\n

    \n \n Organization Settings\n \n

    \n )}\n {props.current_user_is_god && ( \n

    \n \n Organization Management\n \n

    \n )}\n \n

    \n Join Organization\n

    \n \n } />\n
    \n
    \n \n )}\n \n \n

    \n {props.current_user.first_name} {props.current_user.last_name}\n

    \n \n My Profile\n \n {(([\"Standard\", \"Full\", \"Admin\"].includes(getRoleTitle(jsDig([\"role\"], userOrgDetail)))) && props.is_primary_org) && (\n <>\n \n Alerts\n \n \n )}\n {(([\"Standard\", \"Full\", \"Admin\"].includes(getRoleTitle(jsDig([\"role\"], userOrgDetail)))) && props.is_primary_org) && (\n <>\n \n Google Sheets Export\n \n \n )}\n
    \n {(getRoleTitle(jsDig([\"role\"], userOrgDetail)) == \"Admin\" || props.current_user_is_owner) && (\n <>\n

    Admin

    \n \n User Access\n \n \n Manage My Accounts\n \n \n Data Connections\n \n {(([\"Admin\"].includes(getRoleTitle(jsDig([\"role\"], userOrgDetail))))) && (\n <>\n \n Spend Summary Report\n \n \n )}\n
    \n \n )}\n \n {logout}Logout\n \n \n
    \n {props.organizations && props.organizations.length > 0 && (\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([\"revenue\"], props).toFixed(2) }\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 Your users:\r\n {(props.team_members && props.team_members.length > 0) ? (\r\n <>\r\n \r\n {props.team_members.map((user) => {\r\n return (\r\n <>\r\n \r\n Name: {`${user.first_name} ${user.last_name}`}, \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 <>\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, { useState, useRef } from \"react\";\n\nexport default function TermsAndConditions(props) {\n\n return (\n <>\n

    Welcome to DataPulse, a reporting and performance tracking tool developed by Digital Position. By using our platform, you agree to the following terms and conditions. Please read these terms carefully before using our service.

    \n\n

    1. Acceptance of Terms

    \n

    By accessing and using DataPulse (\"Service\"), you agree to be bound by these Terms and Conditions (\"Terms\"). If you do not agree to these Terms, please do not use the Service.

    \n\n

    2. Service Description

    \n

    DataPulse is a software tool that provides reporting, performance tracking, and data analytics services to businesses and individuals (\"Users\"). The Service is provided free of charge. We reserve the right to put restrictions in place to maintain the integrity of the Service for our Users.

    \n\n

    3. User Accounts

    \n

    To use the features of the Service, you must create an account. You agree to provide accurate and complete information when creating your account. You are responsible for maintaining the confidentiality of your account and password and for restricting access to your account. You agree to accept responsibility for all activities that occur under your account.

    \n\n

    4. Use of the Service

    \n

    You agree to use the Service only for lawful purposes. You agree not to use the Service to:

    \n
      \n
    • Violate any applicable law or regulation;
    • \n
    • Infringe the intellectual property rights of others;
    • \n
    • Engage in fraudulent or deceptive practices;
    • \n
    • Access or attempt to access another user's account without permission;
    • \n
    • Transmit any viruses, malware, or other harmful code.
    • \n
    \n\n

    5. Data Collection and Privacy

    \n

    We collect, store, and process data as part of providing the Service. Specifically, the data collected through DataPulse is used to generate performance insights, track key metrics, and display dashboards that help Users monitor and improve their business performance. This data may include but is not limited to performance metrics from marketing platforms, sales data, and other analytics necessary for reporting. Your use of DataPulse is subject to our Privacy Policy, which explains how we collect, use, and protect your personal information. By using the Service, you consent to the data practices described in our Privacy Policy.

    \n\n

    6. Intellectual Property

    \n

    All content, software, and materials used to provide the Service, including but not limited to text, graphics, logos, and code, are the property of Digital Position and are protected by intellectual property laws. You may not reproduce, modify, distribute, or otherwise exploit any content or materials provided by the Service without prior written consent from Digital Position.

    \n\n

    7. Disclaimer of Warranties

    \n

    The Service is provided \"as is\" and \"as available.\" We make no representations or warranties of any kind, express or implied, regarding the Service or the content available through the Service. We do not guarantee that the Service will be uninterrupted, error-free, or free of viruses or other harmful components.

    \n\n

    8. Limitation of Liability

    \n

    To the maximum extent permitted by law, Digital Position shall not be liable for any direct, indirect, incidental, special, or consequential damages arising out of or in connection with your use of the Service, including but not limited to loss of data, business interruption, or loss of profits, even if we have been advised of the possibility of such damages.

    \n\n

    9. Changes to Terms

    \n

    We may update these Terms from time to time. If we make material changes, we will notify you via email or by posting the updated Terms on our website. Your continued use of the Service after the effective date of the updated Terms constitutes your acceptance of the changes.

    \n\n

    10. Termination

    \n

    We may suspend or terminate your access to the Service at any time, without prior notice, if we believe you have violated these Terms. Upon termination, your right to use the Service will immediately cease.

    \n\n

    11. Governing Law

    \n

    These Terms are governed by the laws of the State of Connecticut, without regard to its conflict of law principles. Any disputes arising out of or related to these Terms or the Service shall be resolved in the courts of Connecticut.

    \n\n

    12. Consent to Contact for Assistance and Offers

    \n

    By using DataPulse, you consent to being contacted by our team through email regarding offers of assistance, tips, and guidance for optimizing and maximizing the value of DataPulse. This may include setup assistance, feature recommendations, and personalized advice to enhance your experience. You may opt-out of receiving such communications at any time by following the unsubscribe instructions provided in our messages or by contacting our support team directly.

    \n\n

    13. Contact Us

    \n

    If you have any questions about these Terms, please contact us at datapulse@digitalposition.com.

    \n\n

    Last updated: 9/25/2024

    \n\n \n )\n}","import React, { useState, useRef } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport showAlert from \"utils/showAlert\";\nimport TermsAndConditions from \"terms_and_conditions/TermsAndConditions\";\n\nexport default function TermsAndConditionsModal(props) {\n console.log(props);\n\n const acceptTerms = () => {\n props.hideTermsModal()\n } \n\n return (\n <>\n \n \n \n

    Terms & Conditions

    \n
    \n
    \n \n
    \n

    Please accept the DataPulse Terms and Conditions to use the software.

    \n
    \n \n
    \n
    \n\n
    \n \n
    \n
    \n \n props.setAcceptedTerms(!props.acceptedTerms)} checked={props.acceptedTerms} />\n
    \n \n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport { Modal } from \"react-bootstrap\";\nimport showAlert from \"utils/showAlert\";\nimport TermsAndConditions from \"terms_and_conditions/TermsAndConditions\";\n\nexport default function TermsAndConditionsModal(props) {\n console.log(props);\n\n const [isModalVisible, setIsModalVisible] = useState(props.show || false);\n const [acceptedTerms, setAcceptedTerms] = useState(false);\n\n const hideModal = () => setIsModalVisible(false);\n\n const acceptTerms = async () => {\n try {\n const response = await fetch(`/datapulse/users/accept-terms-and-conditions`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": document.querySelector('meta[name=\"csrf-token\"]').content,\n },\n body: JSON.stringify({ accepted: acceptedTerms }),\n });\n\n if (response.ok) {\n const data = await response.json();\n if (data.success) {\n showAlert(\"Terms and Conditions accepted successfully.\", \"success\");\n } else {\n if (data.error) {\n showAlert(data.error, \"danger\");\n } else {\n showAlert(\"An error occurred while joining the organization. Please try again.\", \"danger\");\n }\n }\n\n } else {\n showAlert(\"An error occurred while joining the organization. Please try again.\", \"danger\");\n }\n } catch (error) {\n console.log(error)\n showAlert(\"An error occurred while joining the organization. Please try again.\", \"danger\");\n } finally {\n hideModal()\n }\n } \n\n return (\n <>\n {}} className=\"terms-and-conditions-modal\">\n \n \n

    Terms & Conditions

    \n
    \n
    \n \n
    \n

    You must accept our updated Terms and Conditions to continue using DataPulse.

    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n \n setAcceptedTerms(!acceptedTerms)} checked={acceptedTerms} />\n
    \n \n
    \n
    \n
    \n
    \n \n );\n}\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\";\nimport { truncate } from \"lodash\";\n\nclass UserAccess extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n users: [],\n unaffiliated_users: []\n };\n }\n\n \n componentDidMount() {\n const users = this.props.users\n const unaffiliated_users = this.props.unaffiliated_users\n const userInfo = Object.values(users)\n const unaffiliated_userInfo = Object.values(unaffiliated_users)\n this.setState({\n users: userInfo.sort((a, b) => a.name.localeCompare(b.name)),\n unaffiliated_users: unaffiliated_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
    \n

    User Access

    \n
    \n
    \n

    Search:

    \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 {this.props.current_user_is_god &&\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) || user.role == \"unaffiliated\") && (\n \n )\n }\n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default UserAccessTable;\n","import React from 'react';\nimport Modal from 'react-bootstrap/Modal';\n\nclass UserAccessTableButtons extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showModal: false,\n actionType: null // 'delete' or 'remove'\n };\n }\n\n handleShowModal = (actionType) => {\n this.setState({ showModal: true, actionType });\n }\n\n handleHideModal = () => {\n this.setState({ showModal: false, actionType: null });\n }\n\n handleConfirmAction = () => {\n if (this.state.actionType === 'delete') {\n this.props.deleteUser(this.props.user);\n } else if (this.state.actionType === 'remove') {\n this.props.removeUser(this.props.user, this.props.org_id);\n }\n this.handleHideModal();\n }\n\n render() {\n const { showModal, actionType } = this.state;\n\n return (\n \n \n {this.props.current_user_is_god &&\n \n }\n {this.props.user.role !== 'unaffiliated' &&\n \n }\n\n \n \n \n

    Confirm Action

    \n
    \n
    \n \n
    \n

    \n {actionType === 'delete' ? 'Are you sure you want to permanently delete this user from the database?' :\n 'Are you sure you want to remove this user from the selected organization?'}\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 last_name: \"\",\n email: \"\" ,\n errors: {}\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 $('.employee-only-fields').css('display', 'flex');\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 errorChecking = (e) => {\n e.preventDefault();\n const { first_name, last_name, email } = this.state;\n let errors = {};\n\n if (!first_name.trim()) errors.first_name = true;\n if (!last_name.trim()) errors.last_name = true;\n // if (!email.includes('@')) errors.email = true;\n const emailRegex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (!emailRegex.test(email)) {\n errors.email = true;\n }\n\n if (Object.keys(errors).length) {\n this.setState({ errors });\n } else {\n // Proceed with form submission logic here\n console.log('Form is ready to be submitted');\n this.nextPage();\n }\n };\n\n handleChange = (e) => {\n this.setState({ [e.target.name]: e.target.value, errors: { ...this.state.errors, [e.target.name]: false } });\n };\n\n//=========================== FORM VALIDATION END ===================================\n\n\n render() {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n let clientIcon = require(\"images/lite/icons/handshake.svg\");\n clientIcon = ;\n let employeeIcon = require(\"images/lite/icons/user-two.svg\");\n employeeIcon = ;\n const errorClass = \"lite-invalid-input\";\n console.log(this.state.errors)\n\n return (\n <>\n \n this.setState({show: false})}>\n
    \n \n
    \n \n \n

    \n Add New User - Basic Info\n

    \n
    \n
    \n \n

    I want to add a new:

    \n\n
    \n
    {this.clientButtonClick(e)}}>\n {clientIcon}\n

    Client

    \n
    \n \n\n
    {this.employeeButtonClick(e)}}>\n {employeeIcon}\n

    Employee

    \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

    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\tprops.message\n\t\t\t\t)}\n\t\t\t\t{props.paragraphs && (\n\t\t\t\t\tprops.paragraphs.map((paragraph, index) => (\n\t\t\t\t\t\t

    {paragraph}

    \n\t\t\t\t\t))\n\t\t\t\t)}\n\t\t\t
    \n\t\t
    \n\t);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{props.img ? (\n\t\t\t\t\t{props.img}{props.label}\n\t\t\t\t) : (\n\t\t\t\t\t{props.label}\n\t\t\t\t)}\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, { useState } from 'react';\n\nconst HelpModal = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const openModal = () => {\n setIsOpen(true);\n };\n\n const closeModal = () => {\n setIsOpen(false);\n };\n\n const handleClickOutside = (event) => {\n // Close the modal if the click is outside the modal content\n if (event.target.id === 'videoModal') {\n closeModal();\n }\n };\n\n let helpIcon = require(\"images/lite/icons/question-circle.svg\");\n helpIcon = ;\n\n let xIcon = require(\"images/lite/icons/x-close.svg\");\n xIcon = (\n \"remove\"\n );\n\n\n\n return (\n <>\n
    \n {helpIcon}\n
    \n\n {isOpen && (\n
    \n
    \n \n {/* × */}\n \n
    \n
    \n )}\n \n );\n};\n\nexport default HelpModal;\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","import React from \"react\";\nimport html2canvas from \"html2canvas\";\nimport { jsPDF } from \"jspdf\";\n\n\nexport default function LiteExportPDF(props) {\n let exportIcon = require(\"images/lite/icons/export-icon.png\");\n exportIcon = \n // get todays date in the format of YYYY-MM-DD\n const today = new Date().toISOString().slice(0, 10);\n const pdfTitle = `${props.companyName}-${props.dashName}-${today}.pdf`;\n \n const takeScreenshot = async (type = 'jpeg') => {\n const element = document.querySelector('.lite-dashboard'); // Capture the div with class 'lite-dashboard'\n const exportIconContainer = document.querySelector('.export-icon-container');\n\n if (element) {\n document.body.style.cursor = 'wait';\n exportIconContainer.style.cursor = 'wait';\n document.body.offsetHeight;\n\n const refreshContainer = document.querySelector('.lite-refresh-container');\n const refreshButton = document.querySelector('.lite-refresh-button');\n const headerButton = document.querySelector('.dashboard-header-button');\n const l60d = document.querySelectorAll('.l60d');\n\n\n if (refreshContainer) refreshContainer.classList.add('no-export');\n if (refreshButton) refreshButton.classList.add('no-export');\n if (headerButton) headerButton.classList.add('no-export');\n if (l60d) l60d.forEach((el) => el.classList.add('no-export'));\n if (exportIconContainer) exportIconContainer.classList.add('no-export');\n \n const bodyStyles = getComputedStyle(document.body);\n const backgroundColor = bodyStyles.getPropertyValue('background-color').trim();\n \n const fixedWidth = 1650;\n \n // Take screenshot using html2canvas\n const canvas = await html2canvas(element, {\n backgroundColor, // Ensure the entire background gets the right color\n windowWidth: fixedWidth, // Force a fixed width\n window: element.offsetWidth,\n ignoreElements: (el) => el.classList.contains('no-export') || el.classList.contains('chevpdf') \n });\n \n // Define margins\n const marginTop = 50; // Top margin\n const marginSide = 50; // Left and right margins\n const marginBottom = 0; // No bottom margin\n \n // Create a new canvas that includes margins\n const newCanvas = document.createElement('canvas');\n newCanvas.width = canvas.width + (2 * marginSide); // Add the margin to both left and right\n newCanvas.height = canvas.height + marginTop; // Add the margin to both top and bottom\n \n const context = newCanvas.getContext('2d');\n \n // Fill the new canvas with background color\n context.fillStyle = backgroundColor;\n context.fillRect(0, 0, newCanvas.width, newCanvas.height);\n \n // Draw the original canvas onto the new one, centered within the margins\n context.drawImage(canvas, marginSide, marginTop); // Draw with the fixed margin applied on all sides\n \n const imageData = newCanvas.toDataURL(`image/${type}`);\n \n // Create a PDF using jsPDF, but dynamically set the height\n const pdfWidth = 210; // A4 width in mm\n const pdfHeight = (newCanvas.height * pdfWidth) / newCanvas.width; // Dynamically set the height\n \n const pdf = new jsPDF({\n orientation: 'portrait',\n unit: 'mm',\n format: [pdfWidth, pdfHeight], // Set the page size based on the canvas height\n });\n \n // Add the entire canvas as an image to the PDF\n pdf.addImage(imageData, 'JPEG', 0, 0, pdfWidth, pdfHeight, '', 'FAST');\n pdf.save(pdfTitle)\n \n } else {\n console.error('No element found with class \"lite-dashboard\"');\n }\n document.body.style.cursor = 'default';\n exportIcon.style.cursor = 'pointer';\n };\n\nreturn (\n
    takeScreenshot('pdf')}>\n {exportIcon}\n
    \n );\n}\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 from 'react';\nimport { usePagination } from './usePagination';\n\nconst Pagination = (props) => {\n const {\n onPageChange,\n totalCount,\n currentPage,\n pageSize,\n className\n } = props;\n\n const paginationRange = usePagination({\n currentPage,\n totalCount,\n pageSize\n });\n\n // If there's only one page (or no items), hide the pagination buttons but show the info\n const hidePaginationButtons = totalCount <= pageSize;\n\n const onNext = () => {\n if (currentPage < paginationRange[paginationRange.length - 1]) {\n onPageChange(currentPage + 1);\n }\n };\n\n const onPrevious = () => {\n if (currentPage > 1) {\n onPageChange(currentPage - 1);\n }\n };\n\n const startItemIndex = (currentPage - 1) * pageSize + 1;\n const endItemIndex = Math.min(currentPage * pageSize, totalCount);\n\n return (\n
      \n {/* Item Range Display */}\n
    • \n {startItemIndex}-{endItemIndex} of {totalCount}\n
    • \n\n {!hidePaginationButtons && (\n <>\n {/* Left Arrow */}\n \n \n \n\n {/* Current Page Number */}\n
    • \n {currentPage}\n
    • \n\n {/* Right Arrow */}\n \n \n \n \n )}\n
    \n );\n};\n\nexport default Pagination;","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","import React from \"react\";\n\nexport default (metric, value, subHeader, buyBox=false) => {\n // This function is used by both LiteLineChart and LiteMetricTable\n // subHeader is only used by LiteMetricTable\n const monetaryMetrics0Precision = [\"spend\", \"revenue\", \"customer_acquisition_cost\"]\n const monetaryMetrics2Precision = [\"roas\", \"cpa\", \"mer\", \"aov\"]\n const standardMetrics2Precision = [\"frequency\"]\n const percentageMetrics2Precision = [\"conversion_rate\", \"open_rate\", \"ctr\", \"bounce_rate\", \"open_rate\"]\n const percentageMetrics0Precision = [\"stacked\"]\n const percentageSubHeaders = [\"Y/Y\", \"YoY\", \"MoM\", \"Growth Rate\"]\n // All other metrics are standard metrics with 0 precision\n\n if (buyBox == true) {\n let temp_metric = subHeader\n let temp_subHeader = metric\n metric = temp_metric\n subHeader = temp_subHeader\n }\n\n if (value === undefined || value === null) {\n return \"\";\n }\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let multiplier = 1;\n if (percentageSubHeaders.includes(subHeader)) {\n suffix = \"%\";\n } else {\n if (standardMetrics2Precision.includes(metric)) {\n precision = 2;\n }\n if (percentageMetrics2Precision.includes(metric)) {\n precision = 2;\n suffix = \"%\";\n multiplier = 100;\n }\n if (percentageMetrics0Precision.includes(metric)) {\n suffix = \"%\";\n }\n if (monetaryMetrics0Precision.includes(metric)) {\n prefix = \"$\";\n }\n if (monetaryMetrics2Precision.includes(metric)) {\n precision = 2;\n prefix = \"$\";\n }\n if (metric == \"buy_box_percentage\") {\n suffix = \"%\";\n }\n }\n if (subHeader == \"Diff\") {\n if (value > 0) {\n prefix = \"+\" + prefix;\n }\n }\n\n value = parseFloat(value) * multiplier;\n\n // Conditional formatting for large numbers on ticks\n if (subHeader === \"tick\") {\n const absValue = Math.abs(value);\n if (absValue >= 1e9) {\n value = (value / 1e9).toFixed(absValue % 1e9 < 1e8 ? 0 : 1).replace(/\\.0+$/, '') + 'b';\n } else if (absValue >= 1e6) {\n value = (value / 1e6).toFixed(absValue % 1e6 < 1e5 ? 0 : 1).replace(/\\.0+$/, '') + 'm';\n } else if (absValue >= 1e3) {\n value = (value / 1e3).toFixed(absValue % 1e3 < 100 ? 0 : 1).replace(/\\.0+$/, '') + 'k';\n } else {\n // For values < 1000, round to variable precision and remove trailing zeros\n value = value.toFixed(precision).replace(/\\.00$/, '').replace(/(\\.\\d)0$/, '$1');\n }\n } else {\n value = value.toFixed(precision);\n let valueParts = value.toString().split('.');\n value = valueParts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + (valueParts.length === 2 ? '.' + valueParts[1] : '');\n }\n\n let finalValue = `${prefix}${value}${suffix}`\n finalValue = finalValue.replace('$-', '-$')\n\n return finalValue\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 (message, extraClass = false) => {\n const alertBox = document.querySelector(\"#lite-alert\");\n if (alertBox) {\n alertBox.textContent = message;\n if (extraClass) {\n alertBox.classList.add(extraClass);\n }\n alertBox.style.display = \"block\";\n void alertBox.offsetWidth;\n alertBox.style.opacity = 1;\n setTimeout(() => {\n alertBox.style.opacity = 0;\n setTimeout(() => {\n alertBox.style.display = \"none\";\n }, 500);\n }\n , 6000);\n } else {\n console.log(\"Alert box not found\")\n }\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 from 'react';\nimport { useMemo } from 'react';\n\nconst range = (start, end) => {\n let length = end - start + 1;\n return Array.from({ length }, (_, idx) => idx + start);\n};\n\nexport const usePagination = ({\n totalCount,\n pageSize,\n siblingCount = 1,\n currentPage\n}) => {\n const paginationRange = useMemo(() => {\n const totalPageCount = Math.ceil(totalCount / pageSize);\n\n /*\n If the number of pages is less than the total number of pages we want to show in our\n pagination component, we return the range [1..totalPageCount]\n */\n if (totalPageCount <= siblingCount + 5) {\n return range(1, totalPageCount);\n }\n\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);\n const rightSiblingIndex = Math.min(\n currentPage + siblingCount,\n totalPageCount\n );\n\n return range(leftSiblingIndex, rightSiblingIndex);\n }, [totalCount, pageSize, siblingCount, currentPage]);\n\n return paginationRange;\n};\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 emailCc: showCC ? emailCC.split(\",\").map(email => email.trim()) : [],\n emailBcc: showBCC ? emailBCC.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 [emailCC, setEmailCC] = useState(\"\");\n const [emailBCC, setEmailBCC] = useState(\"\");\n const [subject, setSubject] = useState(\"\")\n const [showCC, setShowCC] = useState(false);\n const [showBCC, setShowBCC] = useState(false);\n\n const toggleCC = () => setShowCC(!showCC);\n const toggleBCC = () => setShowBCC(!showBCC);\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 \n \n {showCC && (\n setEmailCC(e.target.value)}\n value={emailCC}\n />\n )}\n \n\n \n \n {showBCC && (\n setEmailBCC(e.target.value)}\n value={emailBCC}\n />\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","LiteAlerts","authenticityToken","content","searchTerm","setSearchTerm","setClients","selectedClient","setSelectedClient","showModal","setShowModal","filteredClients","handleToggleDetails","alertItem","currentTarget","closest","slideToggle","toggleClass","class","handleViewAlerts","clientId","fetch","method","headers","body","client_account_id","then","json","showAlert","prevClients","prevClient","alertCreatedAt","created_at","toLocaleString","hour","minute","hour12","day","alert_id","api_platforms","platforms","setPlatforms","google_ads_mcc_id","mccId","setMccId","setShowAlert","useEffect","showAlertCondition","google_ads","authenticated","openAuthPage","authUrl","open","intervalId","setInterval","platformKey","prevPlatforms","catch","clearInterval","platform","apiTitle","isGoogleService","deauth_url","faClass","inline","googleBtn","auth_url","alt","renderAuthButton","PlatformSpecific","semrush_api_key","semrushApiKey","setSemrushApiKey","justifyContent","action","hidden","readOnly","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","useRef","setWidth","setHeight","setTimeout","offsetWidth","offsetHeight","ResizeObserver","observe","height1","Stage","Layer","ResizeableStageLine","AlertsGroup","service","platformName","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","isAdmin","shopify_token","toDate","is","attr","click","onClose","cursor","xmlns","viewBox","fillRule","d","autoFocus","SaveChanges","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","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","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","shopifyButton","renderAdditionalWebs","handleOnChange","newitem","development_capabilities","creative_capabilities","Permissions","customPermissions","setCustomPermissions","required","webName","newPermissions","Website","Access","useContext","SettingsContext","handshake","userType","AccountIds","googleAds","microsoftAds","metaAds","tiktokAds","GoogleAnalytics","searchConsoleIcon","semrush","amazonAdsIcon","amazonSellerIcon","googleSheetsIcon","mailchimpIcon","pinterestIcon","klaviyoIcon","refreshIcon","microsoftExample","microsoftMessage","pinterestExample","pinterestMessage","klaviyoMessage","projectIdImg","semrushExample","facebookObjective","setFacebookObjective","tiktokObjective","setTiktokObjective","semrushTargetLocation","setSemrushTargetLocation","shopifyRevenueType","setShopifyRevenueType","shopifyCountryFilter","setShopifyCountryFilter","googleAdsId","setGoogleAdsId","microsoftId","setMicrosoftId","metaId","setMetaId","tiktokId","setTiktokId","googleAnalyticsId","setGoogleAnalyticsId","searchConsoleProperty","setSearchConsoleProperty","brandedRegex","setBrandedRegex","semrushId","setSemrushId","amazonAdsId","setAmazonAdsId","amazonSellerCountry","setAmazonSellerCountry","googleSheetsUrl","setGoogleSheetsUrl","mailchimpServerPrefix","setMailchimpServerPrefix","pinterestAdsId","setPinterestAdsId","klaviyoApiKey","setKlaviyoApiKey","klaviyoConversionMetric","setKlaviyoConversionMetric","searchConsoleProperties","setSearchConsoleProperties","amazonAdsProfileIds","setAmazonAdsProfileIds","klaviyoMetrics","setKlaviyoMetrics","metaAdsAttributionType","setMetaAdsAttributionType","shopifyRevenueMetric","setShopifyRevenueMetric","handleRefreshIds","platformTitle","updateIdsCallback","route","ok","platform_ids","handleShopifyRevenueTypeChange","phoneNumberAutoFormat","phoneNumber","endsWithHyphen","endsWith","number","authenticateShopifyFunction","button","innerHTML","removeAttribute","onclick","resetShopifyToken","deauthorizeAmazonSeller","credential_id","pullGoogleSheetsData","deleteGoogleSheetsData","authorizeMailchimp","deauthorizeMailchimp","googleAnalyticsErrors","data_pull_errors","searchConsoleErrors","googleAdsErrors","microsoftAdsErrors","metaAdsErrors","tiktokAdsErrors","semrushErrors","shopifyErrors","googleSheetsErrors","amazonAdsErrors","amazonSellerErrors","mailchimpErrors","pinterestErrors","klaviyoErrors","alignItems","gap","site","img","formattedId","facebook_conversion_objectives","objectiveName","objectiveInt","c","attType","tiktok_conversion_objectives","amazon_seller_credentials","cred","mailchimp_credentials","createContext","AccountSettingsButton","dataPullErrors","cog","bell","isModalOpen","setModalOpen","toggleModal","employees","teamUsers","setTeamUsers","setCompanyName","setBaseCurrency","setDisplayCurrency","defaultObjective","setDefaultObjective","overviewDatasource","setOverviewDatasource","setWebsite","clientLogo","setClientLogo","clientLogoUrl","setClientLogoUrl","googleAdsCustomConversionsEnabled","setGoogleAdsCustomConversionsEnabled","googleAdsCustomConversions","setGoogleAdsCustomConversions","googleAdsCampaignFiltersEnabled","setGoogleAdsCampaignFiltersEnabled","googleAdsCampaignFilters","setGoogleAdsCampaignFilters","metaAdsCustomConversions","setMetaAdsCustomConversions","googleAdsScripts","setGoogleAdsScripts","dataPulseScripts","setDataPulseScripts","setScriptVariables","daily_yields","inflation","setInflation","contextValue","Provider","modalRef","download","activeTab","setActiveTab","xIcon","showModalMenu","setShowModalMenu","modalMenuRef","modalButtonRef","handleClickOutside","handleFormSubmit","configForm","formData","FormData","append","dashboard_objective","overview_datasource","base_currency","display_currency","google_ads_id","microsoft_id","meta_id","tiktok_id","google_analytics_id","search_console_property","branded_regex","shopify_revenue_type","facebook_conversion_objective","tiktok_conversion_objective","semrush_target_location","semrush_id","shopify_country_filter","amazon_ads_id","amazon_seller_country","google_sheets_url","mailchimp_server_prefix","pinterest_ads_id","klaviyo_api_key","klaviyo_conversion_metric","meta_ads_attribution_type","shopify_revenue_metric","onScroll","scrollHeight","scrollTop","clientHeight","stopPropagation","refreshPreference","default_refresh_preference","accountId","alreadyPulling","current_data_pulls","AccountUsers","setUsers","handleRemoveUser","prevUsers","activeString","active","AddUser","isModalVisible","setIsModalVisible","foundUsers","setFoundUsers","newUser","setNewUser","debouncedSearch","useCallback","debounce","URLSearchParams","cancel","hideModal","handleNewUserChange","alignSelf","bordered","hover","u","handleAddUser","level","default","hasError","userToAdd","getElementById","isValidEmail","createNewUser","isPrimarySiteValid","setPrimarySiteValid","validatePrimarySite","RegExp","onBlur","newObjective","newOverviewDatasource","newBaseCurrency","newDisplayCurrency","file","fileUrl","DataPulseScripts","script","handleCheckbox","optionName","handleScriptVariableChange","GoogleAdsCampaignFilters","setFiltersAndContext","newFilters","handleCustomConversionChange","updatedFilters","campaignFilter","deleteCustomConversion","newConversion","valueOf","GoogleAdsCustomConversions","customConversionsEnabled","setCustomConversionsEnabled","customConversions","setCustomConversions","newCustomConversions","customConversion","ScriptBoxes","brandedKeywords","scriptBoxClass","textDecoration","columnGap","kwNum","newKeywords","handleBrandedKeywordChange","newBrandedKeywords","exclude_nb_in_shopping","branded_keywords","deleteBrandedKeyword","newKey","addBrandedKeyword","Inflation","csvUploadRef","lodashClonedeep","tempValue","setTempValue","transfer","paste","calendarBolt","setSelectedPlatform","yieldMetrics","accept","fileInput","yieldTable","reader","FileReader","extension","pop","processCsv","yields","tableColumns","first","currentRow","currentColumn","newInflation","cellValue","readAsText","onload","uploadCsv","refs","copyInflationArray","visability","tableIndex","blank","inputValue","parseFloat","sanitizedValue","prev","LastDataPullStatus","errorIcon","successIcon","active_datasources","fourDaysAgo","setDate","uniqueMessages","filteredErrors","messageWithoutId","has","dateString","LiteCurrencySelector","MetaAdsCustomConversions","custom_conversions","Scripts","exclaimTriangle","AccountIdBox","platformData","platformEnabled","setPlatformEnabled","accountids","tooltipMessage","example","platformId","fieldName","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","tempContainsTerms","tempNotContainsTerms","names","campaignGroupsNames","setCampaignGroupsNames","currentSection","campaignGroupsOrder","handleEditBox","itemId","newName","term","conversionEnabled","conversionActions","conversionObjective","tiktokConversionObjective","groupContainsModifier","groupNotContainsModifier","newCampaignGroups","newContainsTerms","newNotContainsTerms","newItem","allCampaignGroups","handleDeleteBox","deleteState","groupId","handleAddBox","conversionActionsEnabled","newItemId","containsWords","notContainsWords","isArray","words","conversion","getIndex","col","flexWrap","ConfigureCampaignGroup","showBox","setShowBox","clearFields","testString","setTestString","testStringMatches","testCampaignGroupFilters","notContains","setConversionActionsEnabled","setConversionActions","setConversionObjective","setTiktokConversionObjective","errorText","setErrorText","onFocus","replaceAll","cg","conversionActionsLabels","toArray","conversionActionsIds","customConversionsLabels","customConversionsIds","errorsPresent","ConversionActionIds","targetIndex","newActions","newAction","v4","conversionAction","EditCampaignGroup","edit","notContainsAnd","notContainsOr","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","fadeOut","user_is_admin","selectedPage","excludeNbInShoppingKeywords","setExcludeNbInShoppingKeywords","youtubeChannelExcluderData","setYoutubeChannelExcluderData","handleScriptPropertyInput","currentData","updateMethod","newScripts","setScripts","checkValidation","remainingKeywords","deleteKeyword","handleAddKeyword","controlId","All","Dashboard","dashboard_order","ppcDashboard","searchEnabled","socialEnabled","videoEnabled","displayEnabled","setPpcDashboard","Goals","metrics","goalChangePercent","setGoalChangePercent","allOrBlank","setAllOrBlank","dashboardsInitial","setSelectedYear","ppc_cc_data","selectedId","percentChange","allCcData","datum","dashIndex","ccData","newDate","newMonth","newyear","goalShortcutMetrics","metricCheckbox","metricCamel","metricSnake","historical","newValue","round","handlePullMetric","check","newCheckedMetrics","dbIndex","yearIndex","visible","IdsData","data_pull_enabled","Display","platform_data","show_scripts","displayScripts","displayScriptsVar","setDisplayScripts","setScriptsVar","setDisplayScriptsVar","script_variables","subs","initialDashboards","displayDashboard","dash","setDisplayDashboard","display_cc_data","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","keywordGroups","keyword_groups","seoScripts","seoScriptsVar","setSeoScripts","setSeoScriptsVar","seoDashboard","setSeoDashboard","seo_cc_data","GoogleAnalyticsGoals","customGoals","setCustomGoals","customGoalsEnabled","setCustomGoalsEnabled","accountLabels","analyticsAccounts","selectedAccount","setSelectedAccount","targetKey","newData","word","goalData","goalNumber","GoogleAnalyticsIds","googleAnalyticsIds","setGoogleAnalyticsIds","googleAnalyticsEnabled","setGoogleAnalyticsEnabled","ga4Date","handleIdChange","newIds","newId","firstImg","secondImg","segmentImg","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","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","showDeleteModal","clientToDelete","client_company_id","sortClients","activeClients","deactivatedClients","confettiTrigger","newActiveClients","newDeactivatedClients","successMsg","failureMsg","failure","handleShowCreateModal","changeActiveStatus","current_user_is_admin","handleShowDeleteModal","spread","startVelocity","elementCount","dragFriction","duration","stagger","perspective","handleHideDeleteModal","confirmDeleteClient","create_first_account","org","org_logo","showCreateModal","set_up_api_access","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","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","AmazonDashboard","metricTableDimensions","table_data","buyBoxTableDimensions","lastDataPull","urlParams","queryYear","mainIcon","disabledIcon","dashboardObjective","setDashboardObjective","revenueOrConversions","roasOrCpa","dashboard_options","dashboardOptions","setDashboardOptions","last_data_pull","dashboardType","dashName","datasetNames","chart_data","labels","chartName","colorBlindAssist","color_blind_assist","subHeaderOrder","tableName","dimensions","buyBox","topSummaryRow","dimension","collapsed","BillingDashboard","billingDimensions","lastMonthDate","setMonth","lastMonthName","BillingDashboardTable","isDarkMode","setIsDarkMode","chevronUp","observer","MutationObserver","attributes","attributeFilter","disconnect","socialIcon","searchIcon","amazonAds","pinterestAds","youtubeAds","facebookAds","showDropdown","setShowDropdown","groups","selectedGroup","setSelectedGroup","isCollapsed","setIsCollapsed","dropdownRef","tableContainerRef","collapsible","columnWidth","toggleDropdown","renderBlankRow","baseUrl","borderClass","subHeaderCount","formatCells","last","showProjection","subHeaders","subHeader","formatMetric","getColumnName","disabledMsg","selectGroup","tableIcon","renderTableName","overflow","subIndex","topSummaryData","toLower","renderTopSummaryRow","monthName","SetUpApiAccessModal","DashboardOptions","currentModifiers","saveDashboardOptions","modifier","newDashboardOptions","modifierName","handleModifierConfigChange","EmailDashboard","skipPrev","campaign_dimensions","LiteBuyBoxTable","currentPage","setCurrentPage","filteredData","currentTableData","useMemo","firstPageIndex","lastPageIndex","youtube","pinterest","amazon","renderTableHeader","containsUrl","rel","totalCount","pageSize","onPageChange","keywordCount","localeCompare","LiteLineChart","themeToggleRef","darkMode","setDarkMode","chartContainerRef","spendFunnelAllocationChart","prospectingVsRemarketingChart","brandedVsNonBrandedChart","handleThemeChange","fixedHeight","orderedDatasetNames","datasets","trendlineLinear","currentGroupData","lineStyle","getLineColor","pointHoverRadius","hexToRGBA","borderJoinStyle","chartHelpModal","handleCollapse","xScalesConfig","ticks","maxTicksLimit","maxRotation","autoSkip","family","grid","yScalesConfig","beginAtZero","stacked","callback","drawBorder","maintainAspectRatio","interaction","mode","intersect","plugins","legend","generateLabels","chart","dataset","strokeStyle","lineWidth","isDatasetVisible","datasetIndex","fontColor","titleFont","bodyFont","callbacks","tooltipData","tooltipMetric","dataIndex","parsed","itemSort","scales","elements","line","cubicInterpolationMode","tension","getChartOptions","alpha","newLabel","String","lightColors","darkColors","ChartJS","CategoryScale","LinearScale","PointElement","LineElement","Title","Tooltip","Legend","Filler","chartTrendline","LiteMetricTable","showCorner","shouldHide","customTooltip","showMenu","setShowMenu","loading","setLoading","progress","setProgress","totalQueries","setTotalQueries","dataPullComplete","setDataPullComplete","autoRefresh","setAutoRefresh","dotsHorizontal","menuRef","buttonRef","fetchRefreshStatus","totalQueriesCurrent","params","updateProgress","updateRefreshPreference","default_refresh","remainingQueries","total_jobs","innerText","completedQueries","handleRefresh","timePeriod","ObjectivePicker","OrganicSearchDashboard","landingPageIncreasesDimensions","landingPageDecreasesDimensions","OrganicSocialDashboard","followerIcon","instagramIcon","youtubeIcon","twitterIcon","linkedinIcon","snapchatIcon","otherIcon","formatNumber","followerCards","followers","followersChange","card","OtherDashboard","OverviewDashboard","merOrCpa","PpcPortfolioDashboard","ppcPortfolioDimensions","fillerStyles","borderRadius","SearchDashboard","l7metricTableDimensions","SocialDashboard","YearPicker","years","newYear","currentUrl","yr","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","Reports","daterange","refresh_daily","sheet_name","target_cell","newReport","selectedReport","setSelectedReport","openReport","report","export_reports","new_report","selected_account","bold","paragraphs","report_id","FeedbackForm","usefulness","improvement","feedback","setFeedback","submitted","setSubmitted","setErrors","submitFeedback","feedbackData","error_message","rows","cols","CreateFirstAccountModal","orgLogoUrl","orgLogo","frameBorder","allow","allowFullScreen","invite_code","navigator","clipboard","writeText","CreateOrg","createOrgIcon","isCreating","setIsCreating","newOrgName","setNewOrgName","newOrgType","setNewOrgType","org_logo_url","setOrgLogoUrl","orgLogoFile","setOrgLogoFile","createOrg","JoinOrg","joinOrgIcon","isJoining","setIsJoining","isSearching","setIsSearching","setOrg","joinOrg","org_id","turbolinksEvent","searchForOrg","customBtnText","NoAccounts","dpLogo","chat","is_owner","is_primary_org","Onboarding","WelcomeToDataPulseModal","RegisterAccount","isThankYouModalVisible","setIsThankYouModalVisible","isTermsModalVisible","setIsTermsModalVisible","password","password_confirmation","acceptedTerms","setAcceptedTerms","passwordConfirmation","createUserRequest","gtag","event_label","hideTermsModal","AccountConfigurationIntro","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","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","selectedLabel","setSelectedLabel","setupBox","newObject","customAnalyticGoals","setCustomAnalyticaGoals","customAnalyticGoalsEnabled","setCustomAnalyticaGoalsEnabled","row","routes","validatedInit","array","validation","InflationForm","Intro1","welcome","ipad","handleDeleteRecipient","handleAddRecipient","form","newRecipients","KeywordGroupsOB","exclaimCircle","LandingPagesOB","NextButton","trigger","NotComplete","caution","mobileHideCaution","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","microsoft_ads","facebook_ads","tiktok_ads","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","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","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","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","deauthorizeFunction","authenticateFunction","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","TeamAccessIntro","nextUrl","completePages","incompletePages","currentValue","completePagesNames","incompletePagesNames","inCompletepageNames","TiktokAdsAccess","newTiktokAdsIds","YoutubeAccess","elem","TrackSpecificACtionIds","lengh","searchActive","setSearchActive","displayActive","setDisplayActive","videoActive","setVideoActive","displayHelper","conversionActionBox","sectionKey","setRows","changeRow","unresolvedPages","currentIndex","DeleteOrgModal","setShowDeleteModal","deleteTarget","setDeleteLocked","deleteLocked","deleteOrg","OrgStatus","setShowCreateModal","setDeleteTarget","orgs","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","isClickable","organizations","god_or_admin","orgName","selected_org","selectedOrg","OrgPickerModal","selfShow","setSelfShow","centered","force_selection","selectedOrgId","Organizations","current_user_is_god","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","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","EPSILON","overallAmount","SummaryView","availableFrequency","selected_frequency","selectedFrequency","setSelectedFrequency","frequencyHelper","DeleteAccount","isDeleting","setIsDeleting","deleteUser","ProfileDropdown","logout","hieght","showOrgOptions","setShowOrgOptions","userOrgDetail","user_org_details","organization_id","getRoleTitle","dropdownArrow","flexBasis","current_user_is_owner","logout_path","dashboardUrl","shop","teamUrl","i18n","enTranslations","fullWidth","sectioned","variation","shopify_install","breadcrumbs","last_updated","team_members","TermsAndConditions","TermsAndConditionsModal","acceptTerms","accepted","UserAccess","unaffiliated_users","userInfo","unaffiliated_userInfo","searchString","users_array","permissions","unaffiliated","UserAccessTable","UserAccessTableButtons","actionType","handleHideModal","handleShowModal","handleConfirmAction","UserNewForm","css","clientIcon","employeeIcon","errorClass","clientButtonClick","employeeButtonClick","errorChecking","CustomAvatar","christmasSpecial","fallSpecial","springSpecial","summerSpecial","winterSpecial","halloweenSpecial","special","CustomDropdown","currentTab","upper","setCurrentSection","currentCampaign","setCurrentCampaign","campaignSetter","goalSetter","performanceSetter","clickOutsideConfig","onClickOutside","CustomFormCheck","inputElement","CustomSwitch","CustomTooltip","paragraph","DataPullSavePopUp","DayPicker","yyyymmdd","minDate","convertUTCToLocalDate","changeDate","placeholderText","blur","DefaultAvatar","firstLetter","secondLetter","secondInitial","finalModifier","charCodeAt","optionsRatio","chosenIndex","isInteger","firstInitial","chooseColor","alertCounter","xmlnsXlink","dy","textAnchor","dominantBaseline","isOpen","setIsOpen","closeModal","helpIcon","referrerPolicy","LeftIndent","LiteExportPDF","exportIcon","toISOString","pdfTitle","takeScreenshot","exportIconContainer","refreshContainer","refreshButton","headerButton","l60d","querySelectorAll","bodyStyles","getComputedStyle","getPropertyValue","fixedWidth","html2canvas","windowWidth","ignoreElements","canvas","marginSide","newCanvas","createElement","getContext","fillRect","drawImage","imageData","toDataURL","pdfWidth","pdfHeight","jsPDF","orientation","unit","addImage","save","Metric","noConvert","finalValue","MonthPicker","showMonthYearPicker","NumberDropdown","paginationRange","usePagination","hidePaginationButtons","startItemIndex","endItemIndex","quotes","normalQuotes","specialQuotes","random","StateOptions","humanizedRole","to_lower","firstCap","UserSelector","fieldsFor","btnDisabled","big_avatar","unselectUser","decimalPlaces","countDecimals","allRates","ppcOrderArray","seoOrderArray","monetaryMetrics0Precision","monetaryMetrics2Precision","standardMetrics2Precision","percentageMetrics2Precision","percentageMetrics0Precision","percentageSubHeaders","temp_metric","temp_subHeader","multiplier","absValue","abs","valueParts","currencyObj","seoMetric","inflated","lockDate","endOf","lessIsGood","canBuild","subGroupSection","extraClass","alertBox","textContent","passes","newurl","pushState","range","start","end","siblingCount","totalPageCount","leftSiblingIndex","rightSiblingIndex","HOTKEYS","LIST_TYPES","toggleMark","editor","isMarkActive","Editor","isBlockActive","n","marks","Element","Leaf","leaf","italic","underline","BlockButton","useSlate","Button","onMouseDown","isActive","isList","Transforms","toggleBlock","Icon","MarkButton","initialValue","setValue","renderElement","renderLeaf","withHistory","withReact","createEditor","setEmailBody","operations","op","Toolbar","spellCheck","onKeyDown","hotkey","isHotkey","WriteMail","emailBody","emailFrom","setEmailFrom","emailTo","setEmailTo","emailCC","setEmailCC","emailBCC","setEmailBCC","subject","setSubject","showCC","setShowCC","showBCC","setShowBCC","node","escapeHtml","emailCc","emailBcc","reversed","cx","EditorValue","textLines","nodes","Instruction","Menu","Portal","ReactDOM"],"sourceRoot":""}