{"version":3,"file":"js/982-c3b276567609a3f69f9e.js","mappings":"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","sources":["webpack://dp-zoom//var/www/apps/datapulse/app/javascript/components|sync|/^\\.\\/.*$/","webpack://dp-zoom/./app/javascript/components/CampaignGroupList.jsx","webpack://dp-zoom/./app/javascript/components/List.jsx","webpack://dp-zoom/./app/javascript/components/ListItem.jsx","webpack://dp-zoom/./app/javascript/components/MetricTable.jsx","webpack://dp-zoom/./app/javascript/components/MetricTableOld.jsx","webpack://dp-zoom/./app/javascript/components/MetricTablePdf.jsx","webpack://dp-zoom/./app/javascript/components/MetricTableRow.jsx","webpack://dp-zoom/./app/javascript/components/MetricTableRowOld.jsx","webpack://dp-zoom/./app/javascript/components/MetricTableRowPdf.jsx","webpack://dp-zoom/./app/javascript/components/TopFlyout.jsx","webpack://dp-zoom/./app/javascript/components/ZoomRedirectPopup.jsx","webpack://dp-zoom/./app/javascript/components/about/AboutDatapulse.jsx","webpack://dp-zoom/./app/javascript/components/activity/Activity.jsx","webpack://dp-zoom/./app/javascript/components/admin/Admin.jsx","webpack://dp-zoom/./app/javascript/components/admin/mailing_lists/MailingList.jsx","webpack://dp-zoom/./app/javascript/components/admin/mailing_lists/MailingLists.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/AlertSubscriptions.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/ManageSubsByClient.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/ManageSubsByUser.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/ManageSubsClientConfig.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/SubsByClient.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/SubsByUser.jsx","webpack://dp-zoom/./app/javascript/components/alert_subscriptions/SubscribeUsersModal.jsx","webpack://dp-zoom/./app/javascript/components/alerts/AlertSnoozeModal.jsx","webpack://dp-zoom/./app/javascript/components/alerts/Alerts.jsx","webpack://dp-zoom/./app/javascript/components/alerts/account_alerts/AccountAlerts.jsx","webpack://dp-zoom/./app/javascript/components/alerts/account_alerts/Alert.jsx","webpack://dp-zoom/./app/javascript/components/alerts/account_alerts/AlertList.jsx","webpack://dp-zoom/./app/javascript/components/alerts/alert_summary/Alert.jsx","webpack://dp-zoom/./app/javascript/components/alerts/alert_summary/AlertContainer.jsx","webpack://dp-zoom/./app/javascript/components/alerts/alert_summary/AlertList.jsx","webpack://dp-zoom/./app/javascript/components/alerts/alert_summary/AlertSummary.jsx","webpack://dp-zoom/./app/javascript/components/api_access/ApiAccess.jsx","webpack://dp-zoom/./app/javascript/components/api_access/PlatformSpecific.jsx","webpack://dp-zoom/./app/javascript/components/api_access/SaveChanges.jsx","webpack://dp-zoom/./app/javascript/components/campaign_builder/CampaignBuilder.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartBar.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartGoal.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartLine.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartLocation.jsx","webpack://dp-zoom/./app/javascript/components/charts/ChartPie.jsx","webpack://dp-zoom/./app/javascript/components/charts/ResizeableStage.jsx","webpack://dp-zoom/./app/javascript/components/charts/ResizeableStageLine.jsx","webpack://dp-zoom/./app/javascript/components/client_config/AlertsGroup.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ConfigTabs.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ConfigureGoalsModal.jsx","webpack://dp-zoom/./app/javascript/components/client_config/CurrencySelector.jsx","webpack://dp-zoom/./app/javascript/components/client_config/DashboardBuilder.jsx","webpack://dp-zoom/./app/javascript/components/client_config/DashboardBuilderSection.jsx","webpack://dp-zoom/./app/javascript/components/client_config/GoalsTable.jsx","webpack://dp-zoom/./app/javascript/components/client_config/ManualDataPull.jsx","webpack://dp-zoom/./app/javascript/components/client_config/SaveChanges.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/AccountConfig.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/basic_info_cu/Basic.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/basic_info_cu/ClientUsers.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/basic_info_cu/CreateNewUser.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/basic_info_cu/InvoiceRecipients.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/PointsOfContact.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/Services.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/ppc/PpcAgreement.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/ppc/PpcServices.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/ppc/PpcSupportingRoles.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/seo/SEO.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/services_agreement/seo/SideBox.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/team_access/Team.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/team_access/TeamBox.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/website_permissions/Details.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/website_permissions/Permissions.jsx","webpack://dp-zoom/./app/javascript/components/client_config/account_config/website_permissions/Website.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/Access.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/AccountHome.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/ClientUsers.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/ClientUsers1.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/CreateNewUser.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/CreateNewUser1.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/Inflation.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/LiteCurrencySelector.jsx","webpack://dp-zoom/./app/javascript/components/client_config/lite/ScriptBoxes.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/EmailDashboard.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/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/data/allMetrics.js","webpack://dp-zoom/./app/javascript/components/onboarding/AccountConfigurationIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/AlertsGroup.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/BackButton.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/BrandLogo.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/AllCampaignGroups.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/Display.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/Search.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/Social.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CampaignGroups/Video.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CompanyLegalInformation.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CompanyName.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/CompanyType.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Complete.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/DatapulseAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/AllPPCGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/DisplayGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/Goals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/SEOGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/SearchGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/SocialGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Goals/VideoGoals.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/GoogleAnalyticsGoalTracking.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Display.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Inflation.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/InflationForm.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Search.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Social.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Inflation/Video.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Intro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/InvoiceRecipients.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/KeywordGroups.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/LandingPages.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/ManualDataPull.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/NextButton.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/NotComplete.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Onboarding.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCConfigurationIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/All.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/Display.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/PPCDashboardCustomization.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/PPCDashboardCustomizationAll.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/Search.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/Social.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCDashboardCustomization/Video.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PPCServiceAgreements.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Permissions.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PersonBox.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PpcAlerts.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/PpcDataPull.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/ProgressBar.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SEMRushSetup.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SEOConfigurationIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SEODashboardCustomization.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SEOServiceAgreements.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Scripts.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/ScrollToTop.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SeoAlerts.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SeoDataPull.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/ServiceAgreementsIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Services.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SkipButton.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SocialConversions/CustomConversions.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/SocialConversions/SocialConversions.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/DataFeedWatchInstall.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/FacebookAdsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleAdsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleAnalyticsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleMerchantAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleMyBusinessAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/GoogleSearchConsoleAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/MicrosoftAdsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/ShopifyAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/ShopifyAuthenticate.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/TeamAccessIntro.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/TiktokAdsAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/YoutubeAccess.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TeamAccess/test.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/TrackSpecificActionIds.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/Website.jsx","webpack://dp-zoom/./app/javascript/components/onboarding/getNextPage.js","webpack://dp-zoom/./app/javascript/components/organization_management/DeleteOrgModal.jsx","webpack://dp-zoom/./app/javascript/components/organization_management/OrgStatus.jsx","webpack://dp-zoom/./app/javascript/components/organizations/Customizations.jsx","webpack://dp-zoom/./app/javascript/components/organizations/OrgInfo.jsx","webpack://dp-zoom/./app/javascript/components/organizations/OrgPicker.jsx","webpack://dp-zoom/./app/javascript/components/organizations/OrgPickerModal.jsx","webpack://dp-zoom/./app/javascript/components/organizations/Organizations.jsx","webpack://dp-zoom/./app/javascript/components/organizations/SaveChanges.jsx","webpack://dp-zoom/./app/javascript/components/organizations/Users.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyPpcReport.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyPpcSection.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyReportIntro.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyReportOutro.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlyReportPdf.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlySeoReport.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/MonthlySeoSection.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PDFPage.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfDisplay.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfOverall.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSearch.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSocial.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummaryDisplay.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummaryOverall.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummarySearch.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummarySocial.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfSummaryVideo.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/PPCPdfVideo.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/SEOPdf.jsx","webpack://dp-zoom/./app/javascript/components/pdfs/SEOPdfSummary.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/PpcPacing.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/SaveChanges.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/Display.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/OverallPPC.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/Search.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/Social.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/services/Video.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/views/DailyView.jsx","webpack://dp-zoom/./app/javascript/components/ppc_pacing/views/SummaryView.jsx","webpack://dp-zoom/./app/javascript/components/shopify/App.jsx","webpack://dp-zoom/./app/javascript/components/shopify/Dashboard.jsx","webpack://dp-zoom/./app/javascript/components/shopify/Team.jsx","webpack://dp-zoom/./app/javascript/components/user_access/UserAccess.jsx","webpack://dp-zoom/./app/javascript/components/user_access/UserAccessTable.jsx","webpack://dp-zoom/./app/javascript/components/user_access/UserAccessTableButtons.jsx","webpack://dp-zoom/./app/javascript/components/user_access/UserNewForm.jsx","webpack://dp-zoom/./app/javascript/components/utils/ConditionalWrapper.jsx","webpack://dp-zoom/./app/javascript/components/utils/Counter.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomAvatar.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomDropdown.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomFormCheck.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomSwitch.jsx","webpack://dp-zoom/./app/javascript/components/utils/CustomTooltip.jsx","webpack://dp-zoom/./app/javascript/components/utils/DataPullSavePopUp.jsx","webpack://dp-zoom/./app/javascript/components/utils/DayPicker.jsx","webpack://dp-zoom/./app/javascript/components/utils/DefaultAvatar.jsx","webpack://dp-zoom/./app/javascript/components/utils/LeftIndent.jsx","webpack://dp-zoom/./app/javascript/components/utils/Metric.jsx","webpack://dp-zoom/./app/javascript/components/utils/MonthPicker.jsx","webpack://dp-zoom/./app/javascript/components/utils/NumberDropdown.jsx","webpack://dp-zoom/./app/javascript/components/utils/ProfileDropdown.jsx","webpack://dp-zoom/./app/javascript/components/utils/RandomQuoteGenerator.jsx","webpack://dp-zoom/./app/javascript/components/utils/StateOptions.jsx","webpack://dp-zoom/./app/javascript/components/utils/UserDepartment.jsx","webpack://dp-zoom/./app/javascript/components/utils/UserRole.jsx","webpack://dp-zoom/./app/javascript/components/utils/UserSelector.jsx","webpack://dp-zoom/./app/javascript/components/utils/currencyConverter.js","webpack://dp-zoom/./app/javascript/components/utils/dashboardTableOrder.js","webpack://dp-zoom/./app/javascript/components/utils/dismissDataPullErrors.js","webpack://dp-zoom/./app/javascript/components/utils/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/write_mail/RichTextEditor.jsx","webpack://dp-zoom/./app/javascript/components/write_mail/WriteMail.jsx","webpack://dp-zoom/./app/javascript/components/write_mail/components.js"],"sourcesContent":["var map = {\n\t\"./CampaignGroupList\": 19065,\n\t\"./CampaignGroupList.jsx\": 19065,\n\t\"./List\": 18238,\n\t\"./List.jsx\": 18238,\n\t\"./ListItem\": 4121,\n\t\"./ListItem.jsx\": 4121,\n\t\"./MetricTable\": 37266,\n\t\"./MetricTable.jsx\": 37266,\n\t\"./MetricTableOld\": 41675,\n\t\"./MetricTableOld.jsx\": 41675,\n\t\"./MetricTablePdf\": 5156,\n\t\"./MetricTablePdf.jsx\": 5156,\n\t\"./MetricTableRow\": 51020,\n\t\"./MetricTableRow.jsx\": 51020,\n\t\"./MetricTableRowOld\": 83540,\n\t\"./MetricTableRowOld.jsx\": 83540,\n\t\"./MetricTableRowPdf\": 43351,\n\t\"./MetricTableRowPdf.jsx\": 43351,\n\t\"./TopFlyout\": 33784,\n\t\"./TopFlyout.jsx\": 33784,\n\t\"./ZoomRedirectPopup\": 69635,\n\t\"./ZoomRedirectPopup.jsx\": 69635,\n\t\"./about/AboutDatapulse\": 18773,\n\t\"./about/AboutDatapulse.jsx\": 18773,\n\t\"./activity/Activity\": 16030,\n\t\"./activity/Activity.jsx\": 16030,\n\t\"./admin/Admin\": 33193,\n\t\"./admin/Admin.jsx\": 33193,\n\t\"./admin/mailing_lists/MailingList\": 47016,\n\t\"./admin/mailing_lists/MailingList.jsx\": 47016,\n\t\"./admin/mailing_lists/MailingLists\": 42821,\n\t\"./admin/mailing_lists/MailingLists.jsx\": 42821,\n\t\"./alert_subscriptions/AlertSubscriptions\": 75301,\n\t\"./alert_subscriptions/AlertSubscriptions.jsx\": 75301,\n\t\"./alert_subscriptions/ManageSubsByClient\": 60513,\n\t\"./alert_subscriptions/ManageSubsByClient.jsx\": 60513,\n\t\"./alert_subscriptions/ManageSubsByUser\": 41322,\n\t\"./alert_subscriptions/ManageSubsByUser.jsx\": 41322,\n\t\"./alert_subscriptions/ManageSubsClientConfig\": 18713,\n\t\"./alert_subscriptions/ManageSubsClientConfig.jsx\": 18713,\n\t\"./alert_subscriptions/SubsByClient\": 88384,\n\t\"./alert_subscriptions/SubsByClient.jsx\": 88384,\n\t\"./alert_subscriptions/SubsByUser\": 16446,\n\t\"./alert_subscriptions/SubsByUser.jsx\": 16446,\n\t\"./alert_subscriptions/SubscribeUsersModal\": 78467,\n\t\"./alert_subscriptions/SubscribeUsersModal.jsx\": 78467,\n\t\"./alerts/AlertSnoozeModal\": 32107,\n\t\"./alerts/AlertSnoozeModal.jsx\": 32107,\n\t\"./alerts/Alerts\": 96101,\n\t\"./alerts/Alerts.jsx\": 96101,\n\t\"./alerts/account_alerts/AccountAlerts\": 60415,\n\t\"./alerts/account_alerts/AccountAlerts.jsx\": 60415,\n\t\"./alerts/account_alerts/Alert\": 6621,\n\t\"./alerts/account_alerts/Alert.jsx\": 6621,\n\t\"./alerts/account_alerts/AlertList\": 26947,\n\t\"./alerts/account_alerts/AlertList.jsx\": 26947,\n\t\"./alerts/alert_summary/Alert\": 15828,\n\t\"./alerts/alert_summary/Alert.jsx\": 15828,\n\t\"./alerts/alert_summary/AlertContainer\": 67173,\n\t\"./alerts/alert_summary/AlertContainer.jsx\": 67173,\n\t\"./alerts/alert_summary/AlertList\": 5173,\n\t\"./alerts/alert_summary/AlertList.jsx\": 5173,\n\t\"./alerts/alert_summary/AlertSummary\": 54943,\n\t\"./alerts/alert_summary/AlertSummary.jsx\": 54943,\n\t\"./api_access/ApiAccess\": 86818,\n\t\"./api_access/ApiAccess.jsx\": 86818,\n\t\"./api_access/PlatformSpecific\": 71324,\n\t\"./api_access/PlatformSpecific.jsx\": 71324,\n\t\"./api_access/SaveChanges\": 64426,\n\t\"./api_access/SaveChanges.jsx\": 64426,\n\t\"./campaign_builder/CampaignBuilder\": 92125,\n\t\"./campaign_builder/CampaignBuilder.jsx\": 92125,\n\t\"./charts/ChartBar\": 31537,\n\t\"./charts/ChartBar.jsx\": 31537,\n\t\"./charts/ChartGoal\": 31529,\n\t\"./charts/ChartGoal.jsx\": 31529,\n\t\"./charts/ChartLine\": 9447,\n\t\"./charts/ChartLine.jsx\": 9447,\n\t\"./charts/ChartLocation\": 41008,\n\t\"./charts/ChartLocation.jsx\": 41008,\n\t\"./charts/ChartPie\": 63835,\n\t\"./charts/ChartPie.jsx\": 63835,\n\t\"./charts/ResizeableStage\": 28269,\n\t\"./charts/ResizeableStage.jsx\": 28269,\n\t\"./charts/ResizeableStageLine\": 32010,\n\t\"./charts/ResizeableStageLine.jsx\": 32010,\n\t\"./client_config/AlertsGroup\": 81864,\n\t\"./client_config/AlertsGroup.jsx\": 81864,\n\t\"./client_config/ConfigTabs\": 82717,\n\t\"./client_config/ConfigTabs.jsx\": 82717,\n\t\"./client_config/ConfigureGoalsModal\": 18333,\n\t\"./client_config/ConfigureGoalsModal.jsx\": 18333,\n\t\"./client_config/CurrencySelector\": 41684,\n\t\"./client_config/CurrencySelector.jsx\": 41684,\n\t\"./client_config/DashboardBuilder\": 53313,\n\t\"./client_config/DashboardBuilder.jsx\": 53313,\n\t\"./client_config/DashboardBuilderSection\": 76322,\n\t\"./client_config/DashboardBuilderSection.jsx\": 76322,\n\t\"./client_config/GoalsTable\": 12730,\n\t\"./client_config/GoalsTable.jsx\": 12730,\n\t\"./client_config/ManualDataPull\": 3646,\n\t\"./client_config/ManualDataPull.jsx\": 3646,\n\t\"./client_config/SaveChanges\": 60569,\n\t\"./client_config/SaveChanges.jsx\": 60569,\n\t\"./client_config/account_config/AccountConfig\": 2161,\n\t\"./client_config/account_config/AccountConfig.jsx\": 2161,\n\t\"./client_config/account_config/basic_info_cu/Basic\": 30478,\n\t\"./client_config/account_config/basic_info_cu/Basic.jsx\": 30478,\n\t\"./client_config/account_config/basic_info_cu/ClientUsers\": 9754,\n\t\"./client_config/account_config/basic_info_cu/ClientUsers.jsx\": 9754,\n\t\"./client_config/account_config/basic_info_cu/CreateNewUser\": 88626,\n\t\"./client_config/account_config/basic_info_cu/CreateNewUser.jsx\": 88626,\n\t\"./client_config/account_config/basic_info_cu/InvoiceRecipients\": 37678,\n\t\"./client_config/account_config/basic_info_cu/InvoiceRecipients.jsx\": 37678,\n\t\"./client_config/account_config/services_agreement/PointsOfContact\": 89085,\n\t\"./client_config/account_config/services_agreement/PointsOfContact.jsx\": 89085,\n\t\"./client_config/account_config/services_agreement/Services\": 4029,\n\t\"./client_config/account_config/services_agreement/Services.jsx\": 4029,\n\t\"./client_config/account_config/services_agreement/ppc/PpcAgreement\": 69291,\n\t\"./client_config/account_config/services_agreement/ppc/PpcAgreement.jsx\": 69291,\n\t\"./client_config/account_config/services_agreement/ppc/PpcServices\": 48659,\n\t\"./client_config/account_config/services_agreement/ppc/PpcServices.jsx\": 48659,\n\t\"./client_config/account_config/services_agreement/ppc/PpcSupportingRoles\": 70342,\n\t\"./client_config/account_config/services_agreement/ppc/PpcSupportingRoles.jsx\": 70342,\n\t\"./client_config/account_config/services_agreement/seo/SEO\": 14649,\n\t\"./client_config/account_config/services_agreement/seo/SEO.jsx\": 14649,\n\t\"./client_config/account_config/services_agreement/seo/SideBox\": 45944,\n\t\"./client_config/account_config/services_agreement/seo/SideBox.jsx\": 45944,\n\t\"./client_config/account_config/team_access/Team\": 55053,\n\t\"./client_config/account_config/team_access/Team.jsx\": 55053,\n\t\"./client_config/account_config/team_access/TeamBox\": 66358,\n\t\"./client_config/account_config/team_access/TeamBox.jsx\": 66358,\n\t\"./client_config/account_config/website_permissions/Details\": 54891,\n\t\"./client_config/account_config/website_permissions/Details.jsx\": 54891,\n\t\"./client_config/account_config/website_permissions/Permissions\": 99525,\n\t\"./client_config/account_config/website_permissions/Permissions.jsx\": 99525,\n\t\"./client_config/account_config/website_permissions/Website\": 43935,\n\t\"./client_config/account_config/website_permissions/Website.jsx\": 43935,\n\t\"./client_config/lite/Access\": 99353,\n\t\"./client_config/lite/Access.jsx\": 99353,\n\t\"./client_config/lite/AccountHome\": 89629,\n\t\"./client_config/lite/AccountHome.jsx\": 89629,\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/ClientUsers\": 65579,\n\t\"./client_config/lite/ClientUsers.jsx\": 65579,\n\t\"./client_config/lite/ClientUsers1\": 60788,\n\t\"./client_config/lite/ClientUsers1.jsx\": 60788,\n\t\"./client_config/lite/CreateNewUser\": 38222,\n\t\"./client_config/lite/CreateNewUser.jsx\": 38222,\n\t\"./client_config/lite/CreateNewUser1\": 64846,\n\t\"./client_config/lite/CreateNewUser1.jsx\": 64846,\n\t\"./client_config/lite/Inflation\": 5142,\n\t\"./client_config/lite/Inflation.jsx\": 5142,\n\t\"./client_config/lite/LiteCurrencySelector\": 14553,\n\t\"./client_config/lite/LiteCurrencySelector.jsx\": 14553,\n\t\"./client_config/lite/ScriptBoxes\": 7252,\n\t\"./client_config/lite/ScriptBoxes.jsx\": 7252,\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/EmailDashboard\": 50284,\n\t\"./dashboards/lite/EmailDashboard.jsx\": 50284,\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/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\"./data/allMetrics\": 44052,\n\t\"./data/allMetrics.js\": 44052,\n\t\"./data/currencyRates\": 20260,\n\t\"./data/currencyRates.json\": 20260,\n\t\"./data/metricData\": 33725,\n\t\"./data/metricData.json\": 33725,\n\t\"./data/sectionData\": 73577,\n\t\"./data/sectionData.json\": 73577,\n\t\"./onboarding/AccountConfigurationIntro\": 2898,\n\t\"./onboarding/AccountConfigurationIntro.jsx\": 2898,\n\t\"./onboarding/AlertsGroup\": 79927,\n\t\"./onboarding/AlertsGroup.jsx\": 79927,\n\t\"./onboarding/BackButton\": 46052,\n\t\"./onboarding/BackButton.jsx\": 46052,\n\t\"./onboarding/BrandLogo\": 71051,\n\t\"./onboarding/BrandLogo.jsx\": 71051,\n\t\"./onboarding/CampaignGroups/AllCampaignGroups\": 30453,\n\t\"./onboarding/CampaignGroups/AllCampaignGroups.jsx\": 30453,\n\t\"./onboarding/CampaignGroups/Display\": 96431,\n\t\"./onboarding/CampaignGroups/Display.jsx\": 96431,\n\t\"./onboarding/CampaignGroups/Search\": 87217,\n\t\"./onboarding/CampaignGroups/Search.jsx\": 87217,\n\t\"./onboarding/CampaignGroups/Social\": 84481,\n\t\"./onboarding/CampaignGroups/Social.jsx\": 84481,\n\t\"./onboarding/CampaignGroups/Video\": 58276,\n\t\"./onboarding/CampaignGroups/Video.jsx\": 58276,\n\t\"./onboarding/CompanyLegalInformation\": 2015,\n\t\"./onboarding/CompanyLegalInformation.jsx\": 2015,\n\t\"./onboarding/CompanyName\": 84899,\n\t\"./onboarding/CompanyName.jsx\": 84899,\n\t\"./onboarding/CompanyType\": 40493,\n\t\"./onboarding/CompanyType.jsx\": 40493,\n\t\"./onboarding/Complete\": 29255,\n\t\"./onboarding/Complete.jsx\": 29255,\n\t\"./onboarding/DatapulseAccess\": 85315,\n\t\"./onboarding/DatapulseAccess.jsx\": 85315,\n\t\"./onboarding/Goals/AllPPCGoals\": 66207,\n\t\"./onboarding/Goals/AllPPCGoals.jsx\": 66207,\n\t\"./onboarding/Goals/DisplayGoals\": 92166,\n\t\"./onboarding/Goals/DisplayGoals.jsx\": 92166,\n\t\"./onboarding/Goals/Goals\": 15988,\n\t\"./onboarding/Goals/Goals.jsx\": 15988,\n\t\"./onboarding/Goals/SEOGoals\": 41126,\n\t\"./onboarding/Goals/SEOGoals.jsx\": 41126,\n\t\"./onboarding/Goals/SearchGoals\": 60722,\n\t\"./onboarding/Goals/SearchGoals.jsx\": 60722,\n\t\"./onboarding/Goals/SocialGoals\": 60829,\n\t\"./onboarding/Goals/SocialGoals.jsx\": 60829,\n\t\"./onboarding/Goals/VideoGoals\": 8384,\n\t\"./onboarding/Goals/VideoGoals.jsx\": 8384,\n\t\"./onboarding/GoogleAnalyticsGoalTracking\": 526,\n\t\"./onboarding/GoogleAnalyticsGoalTracking.jsx\": 526,\n\t\"./onboarding/Inflation/Display\": 36199,\n\t\"./onboarding/Inflation/Display.jsx\": 36199,\n\t\"./onboarding/Inflation/Inflation\": 33424,\n\t\"./onboarding/Inflation/Inflation.jsx\": 33424,\n\t\"./onboarding/Inflation/InflationForm\": 17700,\n\t\"./onboarding/Inflation/InflationForm.jsx\": 17700,\n\t\"./onboarding/Inflation/Search\": 50792,\n\t\"./onboarding/Inflation/Search.jsx\": 50792,\n\t\"./onboarding/Inflation/Social\": 76710,\n\t\"./onboarding/Inflation/Social.jsx\": 76710,\n\t\"./onboarding/Inflation/Video\": 20983,\n\t\"./onboarding/Inflation/Video.jsx\": 20983,\n\t\"./onboarding/Intro\": 51348,\n\t\"./onboarding/Intro.jsx\": 51348,\n\t\"./onboarding/InvoiceRecipients\": 52252,\n\t\"./onboarding/InvoiceRecipients.jsx\": 52252,\n\t\"./onboarding/KeywordGroups\": 87992,\n\t\"./onboarding/KeywordGroups.jsx\": 87992,\n\t\"./onboarding/LandingPages\": 45406,\n\t\"./onboarding/LandingPages.jsx\": 45406,\n\t\"./onboarding/ManualDataPull\": 52402,\n\t\"./onboarding/ManualDataPull.jsx\": 52402,\n\t\"./onboarding/NextButton\": 11425,\n\t\"./onboarding/NextButton.jsx\": 11425,\n\t\"./onboarding/NotComplete\": 40684,\n\t\"./onboarding/NotComplete.jsx\": 40684,\n\t\"./onboarding/Onboarding\": 3992,\n\t\"./onboarding/Onboarding.jsx\": 3992,\n\t\"./onboarding/PPCConfigurationIntro\": 51298,\n\t\"./onboarding/PPCConfigurationIntro.jsx\": 51298,\n\t\"./onboarding/PPCDashboardCustomization/All\": 32143,\n\t\"./onboarding/PPCDashboardCustomization/All.jsx\": 32143,\n\t\"./onboarding/PPCDashboardCustomization/Display\": 45349,\n\t\"./onboarding/PPCDashboardCustomization/Display.jsx\": 45349,\n\t\"./onboarding/PPCDashboardCustomization/PPCDashboardCustomization\": 89859,\n\t\"./onboarding/PPCDashboardCustomization/PPCDashboardCustomization.jsx\": 89859,\n\t\"./onboarding/PPCDashboardCustomization/PPCDashboardCustomizationAll\": 42404,\n\t\"./onboarding/PPCDashboardCustomization/PPCDashboardCustomizationAll.jsx\": 42404,\n\t\"./onboarding/PPCDashboardCustomization/Search\": 5975,\n\t\"./onboarding/PPCDashboardCustomization/Search.jsx\": 5975,\n\t\"./onboarding/PPCDashboardCustomization/Social\": 44806,\n\t\"./onboarding/PPCDashboardCustomization/Social.jsx\": 44806,\n\t\"./onboarding/PPCDashboardCustomization/Video\": 18873,\n\t\"./onboarding/PPCDashboardCustomization/Video.jsx\": 18873,\n\t\"./onboarding/PPCServiceAgreements\": 97151,\n\t\"./onboarding/PPCServiceAgreements.jsx\": 97151,\n\t\"./onboarding/Permissions\": 42441,\n\t\"./onboarding/Permissions.jsx\": 42441,\n\t\"./onboarding/PersonBox\": 34956,\n\t\"./onboarding/PersonBox.jsx\": 34956,\n\t\"./onboarding/PpcAlerts\": 50306,\n\t\"./onboarding/PpcAlerts.jsx\": 50306,\n\t\"./onboarding/PpcDataPull\": 58924,\n\t\"./onboarding/PpcDataPull.jsx\": 58924,\n\t\"./onboarding/ProgressBar\": 13958,\n\t\"./onboarding/ProgressBar.jsx\": 13958,\n\t\"./onboarding/SEMRushSetup\": 3997,\n\t\"./onboarding/SEMRushSetup.jsx\": 3997,\n\t\"./onboarding/SEOConfigurationIntro\": 29971,\n\t\"./onboarding/SEOConfigurationIntro.jsx\": 29971,\n\t\"./onboarding/SEODashboardCustomization\": 3057,\n\t\"./onboarding/SEODashboardCustomization.jsx\": 3057,\n\t\"./onboarding/SEOServiceAgreements\": 60025,\n\t\"./onboarding/SEOServiceAgreements.jsx\": 60025,\n\t\"./onboarding/Scripts\": 94642,\n\t\"./onboarding/Scripts.jsx\": 94642,\n\t\"./onboarding/ScrollToTop\": 12868,\n\t\"./onboarding/ScrollToTop.jsx\": 12868,\n\t\"./onboarding/SeoAlerts\": 82963,\n\t\"./onboarding/SeoAlerts.jsx\": 82963,\n\t\"./onboarding/SeoDataPull\": 47220,\n\t\"./onboarding/SeoDataPull.jsx\": 47220,\n\t\"./onboarding/ServiceAgreementsIntro\": 13727,\n\t\"./onboarding/ServiceAgreementsIntro.jsx\": 13727,\n\t\"./onboarding/Services\": 5556,\n\t\"./onboarding/Services.jsx\": 5556,\n\t\"./onboarding/SkipButton\": 97201,\n\t\"./onboarding/SkipButton.jsx\": 97201,\n\t\"./onboarding/SocialConversions/CustomConversions\": 34216,\n\t\"./onboarding/SocialConversions/CustomConversions.jsx\": 34216,\n\t\"./onboarding/SocialConversions/SocialConversions\": 84892,\n\t\"./onboarding/SocialConversions/SocialConversions.jsx\": 84892,\n\t\"./onboarding/TeamAccess/DataFeedWatchInstall\": 77390,\n\t\"./onboarding/TeamAccess/DataFeedWatchInstall.jsx\": 77390,\n\t\"./onboarding/TeamAccess/FacebookAdsAccess\": 29974,\n\t\"./onboarding/TeamAccess/FacebookAdsAccess.jsx\": 29974,\n\t\"./onboarding/TeamAccess/GoogleAdsAccess\": 41975,\n\t\"./onboarding/TeamAccess/GoogleAdsAccess.jsx\": 41975,\n\t\"./onboarding/TeamAccess/GoogleAnalyticsAccess\": 94967,\n\t\"./onboarding/TeamAccess/GoogleAnalyticsAccess.jsx\": 94967,\n\t\"./onboarding/TeamAccess/GoogleMerchantAccess\": 21565,\n\t\"./onboarding/TeamAccess/GoogleMerchantAccess.jsx\": 21565,\n\t\"./onboarding/TeamAccess/GoogleMyBusinessAccess\": 5464,\n\t\"./onboarding/TeamAccess/GoogleMyBusinessAccess.jsx\": 5464,\n\t\"./onboarding/TeamAccess/GoogleSearchConsoleAccess\": 23791,\n\t\"./onboarding/TeamAccess/GoogleSearchConsoleAccess.jsx\": 23791,\n\t\"./onboarding/TeamAccess/MicrosoftAdsAccess\": 556,\n\t\"./onboarding/TeamAccess/MicrosoftAdsAccess.jsx\": 556,\n\t\"./onboarding/TeamAccess/ShopifyAccess\": 78068,\n\t\"./onboarding/TeamAccess/ShopifyAccess.jsx\": 78068,\n\t\"./onboarding/TeamAccess/ShopifyAuthenticate\": 68828,\n\t\"./onboarding/TeamAccess/ShopifyAuthenticate.jsx\": 68828,\n\t\"./onboarding/TeamAccess/TeamAccessIntro\": 20496,\n\t\"./onboarding/TeamAccess/TeamAccessIntro.jsx\": 20496,\n\t\"./onboarding/TeamAccess/TiktokAdsAccess\": 76203,\n\t\"./onboarding/TeamAccess/TiktokAdsAccess.jsx\": 76203,\n\t\"./onboarding/TeamAccess/YoutubeAccess\": 83098,\n\t\"./onboarding/TeamAccess/YoutubeAccess.jsx\": 83098,\n\t\"./onboarding/TeamAccess/test\": 65693,\n\t\"./onboarding/TeamAccess/test.jsx\": 65693,\n\t\"./onboarding/TrackSpecificActionIds\": 88362,\n\t\"./onboarding/TrackSpecificActionIds.jsx\": 88362,\n\t\"./onboarding/Website\": 26752,\n\t\"./onboarding/Website.jsx\": 26752,\n\t\"./onboarding/getNextPage\": 35828,\n\t\"./onboarding/getNextPage.js\": 35828,\n\t\"./organization_management/DeleteOrgModal\": 94862,\n\t\"./organization_management/DeleteOrgModal.jsx\": 94862,\n\t\"./organization_management/OrgStatus\": 21664,\n\t\"./organization_management/OrgStatus.jsx\": 21664,\n\t\"./organizations/Customizations\": 98160,\n\t\"./organizations/Customizations.jsx\": 98160,\n\t\"./organizations/OrgInfo\": 31385,\n\t\"./organizations/OrgInfo.jsx\": 31385,\n\t\"./organizations/OrgPicker\": 91055,\n\t\"./organizations/OrgPicker.jsx\": 91055,\n\t\"./organizations/OrgPickerModal\": 60001,\n\t\"./organizations/OrgPickerModal.jsx\": 60001,\n\t\"./organizations/Organizations\": 17420,\n\t\"./organizations/Organizations.jsx\": 17420,\n\t\"./organizations/SaveChanges\": 39752,\n\t\"./organizations/SaveChanges.jsx\": 39752,\n\t\"./organizations/Users\": 89148,\n\t\"./organizations/Users.jsx\": 89148,\n\t\"./pdfs/MonthlyPpcReport\": 90837,\n\t\"./pdfs/MonthlyPpcReport.jsx\": 90837,\n\t\"./pdfs/MonthlyPpcSection\": 68623,\n\t\"./pdfs/MonthlyPpcSection.jsx\": 68623,\n\t\"./pdfs/MonthlyReportIntro\": 45516,\n\t\"./pdfs/MonthlyReportIntro.jsx\": 45516,\n\t\"./pdfs/MonthlyReportOutro\": 87997,\n\t\"./pdfs/MonthlyReportOutro.jsx\": 87997,\n\t\"./pdfs/MonthlyReportPdf\": 12352,\n\t\"./pdfs/MonthlyReportPdf.jsx\": 12352,\n\t\"./pdfs/MonthlySeoReport\": 73467,\n\t\"./pdfs/MonthlySeoReport.jsx\": 73467,\n\t\"./pdfs/MonthlySeoSection\": 69443,\n\t\"./pdfs/MonthlySeoSection.jsx\": 69443,\n\t\"./pdfs/PDFPage\": 54130,\n\t\"./pdfs/PDFPage.jsx\": 54130,\n\t\"./pdfs/PPCPdfDisplay\": 50912,\n\t\"./pdfs/PPCPdfDisplay.jsx\": 50912,\n\t\"./pdfs/PPCPdfOverall\": 90872,\n\t\"./pdfs/PPCPdfOverall.jsx\": 90872,\n\t\"./pdfs/PPCPdfSearch\": 60033,\n\t\"./pdfs/PPCPdfSearch.jsx\": 60033,\n\t\"./pdfs/PPCPdfSocial\": 15970,\n\t\"./pdfs/PPCPdfSocial.jsx\": 15970,\n\t\"./pdfs/PPCPdfSummaryDisplay\": 98378,\n\t\"./pdfs/PPCPdfSummaryDisplay.jsx\": 98378,\n\t\"./pdfs/PPCPdfSummaryOverall\": 58342,\n\t\"./pdfs/PPCPdfSummaryOverall.jsx\": 58342,\n\t\"./pdfs/PPCPdfSummarySearch\": 75863,\n\t\"./pdfs/PPCPdfSummarySearch.jsx\": 75863,\n\t\"./pdfs/PPCPdfSummarySocial\": 8521,\n\t\"./pdfs/PPCPdfSummarySocial.jsx\": 8521,\n\t\"./pdfs/PPCPdfSummaryVideo\": 92830,\n\t\"./pdfs/PPCPdfSummaryVideo.jsx\": 92830,\n\t\"./pdfs/PPCPdfVideo\": 7232,\n\t\"./pdfs/PPCPdfVideo.jsx\": 7232,\n\t\"./pdfs/SEOPdf\": 81587,\n\t\"./pdfs/SEOPdf.jsx\": 81587,\n\t\"./pdfs/SEOPdfSummary\": 42639,\n\t\"./pdfs/SEOPdfSummary.jsx\": 42639,\n\t\"./ppc_pacing/PpcPacing\": 70545,\n\t\"./ppc_pacing/PpcPacing.jsx\": 70545,\n\t\"./ppc_pacing/SaveChanges\": 2906,\n\t\"./ppc_pacing/SaveChanges.jsx\": 2906,\n\t\"./ppc_pacing/services/Display\": 65757,\n\t\"./ppc_pacing/services/Display.jsx\": 65757,\n\t\"./ppc_pacing/services/OverallPPC\": 63502,\n\t\"./ppc_pacing/services/OverallPPC.jsx\": 63502,\n\t\"./ppc_pacing/services/Search\": 88873,\n\t\"./ppc_pacing/services/Search.jsx\": 88873,\n\t\"./ppc_pacing/services/Social\": 49548,\n\t\"./ppc_pacing/services/Social.jsx\": 49548,\n\t\"./ppc_pacing/services/Video\": 67010,\n\t\"./ppc_pacing/services/Video.jsx\": 67010,\n\t\"./ppc_pacing/views/DailyView\": 97366,\n\t\"./ppc_pacing/views/DailyView.jsx\": 97366,\n\t\"./ppc_pacing/views/SummaryView\": 9593,\n\t\"./ppc_pacing/views/SummaryView.jsx\": 9593,\n\t\"./shopify/App\": 79330,\n\t\"./shopify/App.jsx\": 79330,\n\t\"./shopify/Dashboard\": 88559,\n\t\"./shopify/Dashboard.jsx\": 88559,\n\t\"./shopify/Team\": 67523,\n\t\"./shopify/Team.jsx\": 67523,\n\t\"./user_access/UserAccess\": 14537,\n\t\"./user_access/UserAccess.jsx\": 14537,\n\t\"./user_access/UserAccessTable\": 42742,\n\t\"./user_access/UserAccessTable.jsx\": 42742,\n\t\"./user_access/UserAccessTableButtons\": 63131,\n\t\"./user_access/UserAccessTableButtons.jsx\": 63131,\n\t\"./user_access/UserNewForm\": 398,\n\t\"./user_access/UserNewForm.jsx\": 398,\n\t\"./utils/ConditionalWrapper\": 59110,\n\t\"./utils/ConditionalWrapper.jsx\": 59110,\n\t\"./utils/Counter\": 73779,\n\t\"./utils/Counter.jsx\": 73779,\n\t\"./utils/CustomAvatar\": 32422,\n\t\"./utils/CustomAvatar.jsx\": 32422,\n\t\"./utils/CustomDropdown\": 99396,\n\t\"./utils/CustomDropdown.jsx\": 99396,\n\t\"./utils/CustomFormCheck\": 79579,\n\t\"./utils/CustomFormCheck.jsx\": 79579,\n\t\"./utils/CustomSwitch\": 54354,\n\t\"./utils/CustomSwitch.jsx\": 54354,\n\t\"./utils/CustomTooltip\": 40806,\n\t\"./utils/CustomTooltip.jsx\": 40806,\n\t\"./utils/DataPullSavePopUp\": 6808,\n\t\"./utils/DataPullSavePopUp.jsx\": 6808,\n\t\"./utils/DayPicker\": 68518,\n\t\"./utils/DayPicker.jsx\": 68518,\n\t\"./utils/DefaultAvatar\": 2919,\n\t\"./utils/DefaultAvatar.jsx\": 2919,\n\t\"./utils/LeftIndent\": 77538,\n\t\"./utils/LeftIndent.jsx\": 77538,\n\t\"./utils/Metric\": 51116,\n\t\"./utils/Metric.jsx\": 51116,\n\t\"./utils/MonthPicker\": 9105,\n\t\"./utils/MonthPicker.jsx\": 9105,\n\t\"./utils/NumberDropdown\": 85077,\n\t\"./utils/NumberDropdown.jsx\": 85077,\n\t\"./utils/ProfileDropdown\": 73507,\n\t\"./utils/ProfileDropdown.jsx\": 73507,\n\t\"./utils/RandomQuoteGenerator\": 4681,\n\t\"./utils/RandomQuoteGenerator.jsx\": 4681,\n\t\"./utils/StateOptions\": 98347,\n\t\"./utils/StateOptions.jsx\": 98347,\n\t\"./utils/UserDepartment\": 67579,\n\t\"./utils/UserDepartment.jsx\": 67579,\n\t\"./utils/UserRole\": 79569,\n\t\"./utils/UserRole.jsx\": 79569,\n\t\"./utils/UserSelector\": 80895,\n\t\"./utils/UserSelector.jsx\": 80895,\n\t\"./utils/currencyConverter\": 93849,\n\t\"./utils/currencyConverter.js\": 93849,\n\t\"./utils/dashboardTableOrder\": 24558,\n\t\"./utils/dashboardTableOrder.js\": 24558,\n\t\"./utils/dismissDataPullErrors\": 16221,\n\t\"./utils/dismissDataPullErrors.js\": 16221,\n\t\"./utils/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\"./write_mail/RichTextEditor\": 66273,\n\t\"./write_mail/RichTextEditor.jsx\": 66273,\n\t\"./write_mail/WriteMail\": 96706,\n\t\"./write_mail/WriteMail.jsx\": 96706,\n\t\"./write_mail/components\": 36366,\n\t\"./write_mail/components.js\": 36366\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","import React from \"react\";\nclass CampaignGroupList extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n items: this.props.items,\n };\n }\n // New Events\n handleNewBucket() {\n let items = [...this.state.items];\n items.push({ name: \"\", filter_string: \"\", filter_type: \"contains\", conditions: [] });\n this.setState({ items: items });\n }\n\n handleNewContainsCondition(oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.push({ filter_type: \"contains\", filter_string: \"\", filter_condition: \"or\" });\n this.setState({ items: items });\n }\n\n handleNewNotContainsCondition(oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.push({ filter_type: \"notContains\", filter_string: \"\", filter_condition: \"and\" });\n this.setState({ items: items });\n }\n\n // Change Events\n\n handleItemNameChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.name = event.target.value;\n this.setState({ items: items });\n }\n\n handleItemFilterTypeChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.filter_type = event.target.value;\n this.setState({ items: items });\n }\n\n handleItemInputChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.filter_string = event.target.value;\n this.setState({ items: items });\n }\n\n handleConditionInputChange(event, oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n let condition = item.conditions[conditionIndex];\n condition.filter_string = event.target.value;\n this.setState({ items: items });\n }\n\n handleConditionAndOrChange(event, oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n let condition = item.conditions[conditionIndex];\n condition.filter_condition = event.target.value;\n this.setState({ items: items });\n }\n\n // Remove Events\n\n removeItem(itemIndex) {\n let items = [...this.state.items];\n items.splice(itemIndex, 1);\n this.setState({ items: items });\n }\n\n removeCondition(oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.splice(conditionIndex, 1);\n this.setState({ items: items });\n }\n\n render() {\n const itemList = this.state.items.map((item, index) => {\n let containsList = item.conditions.map((condition, conditionIndex) => {\n if (condition.filter_type == \"contains\") {\n return (\n \n \n \n this.handleConditionAndOrChange(e, item, conditionIndex)}>\n \n \n \n \n \n \n \n \n \n this.handleConditionInputChange(e, item, conditionIndex)}\n />\n \n \n \n \n \n \n \n );\n }\n });\n\n let notContainsList = item.conditions.map((condition, conditionIndex) => {\n if (condition.filter_type == \"notContains\") {\n return (\n \n \n \n this.handleConditionAndOrChange(e, item, conditionIndex)}>\n \n \n \n \n \n \n \n \n \n this.handleConditionInputChange(e, item, conditionIndex)}\n />\n \n \n \n \n \n \n \n );\n }\n });\n\n return (\n \n
\n Name: \n this.handleItemNameChange(e, item)}\n />\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n this.handleItemFilterTypeChange(e, item)}\n style={{ width: \"auto\" }}>\n \n \n \n
\n this.handleItemInputChange(e, item)}\n />\n
\n
\n
\n \n \n \n \n \n {containsList}\n \n \n \n \n
Contains:
\n Add Condition \n this.handleNewContainsCondition(item)}>\n
\n
\n
\n \n \n \n \n \n {notContainsList}\n \n \n \n \n
Does Not Contain:
\n Add Condition \n this.handleNewNotContainsCondition(item)}>\n
\n
\n
\n
\n );\n });\n\n return (\n
\n {itemList}\n Add Bucket \n this.handleNewBucket()}>\n
\n );\n }\n}\nexport default CampaignGroupList;\n","import React from 'react';\nimport ListItem from 'ListItem'\n\nclass List extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n items: this.props.items,\n defaultPropertyValues: [],\n currentItemProperties: [],\n propertyNames: this.props.propertyNames\n };\n this.state.propertyNames.forEach((element, index) => {\n this.state.defaultPropertyValues[index] = \"\";\n });\n this.state.currentItemProperties = this.state.defaultPropertyValues;\n\n this.removeListItem = this.removeListItem.bind(this);\n this.updateListItem = this.updateListItem.bind(this);\n this.addListItem = this.addListItem.bind(this);\n this.handleNewItemChange = this.handleNewItemChange.bind(this);\n }\n\n removeListItem(id) {\n $.ajax({\n type: \"DELETE\",\n url: this.props.url + id,\n async: false,\n success: (response) => {\n let items = [...this.state.items];\n items.splice(items.findIndex((e) => { return e.id == id }), 1);\n this.setState({ items: items })\n }\n })\n }\n\n addListItem(properties) {\n let additionalFields = {};\n switch(this.props.listType) {\n case \"CampaignBucket\":\n additionalFields.name = properties[0];\n additionalFields.filter_string = properties[1];\n break;\n case \"ConversionAction\":\n additionalFields.name = properties[0];\n additionalFields.conversion_id = properties[1];\n additionalFields.conversion_type = this.props.conversionType;\n break;\n default:\n // Just send all the passed in properties to the server as additional fields\n for (let i = 0; i < properties.length; i++) {\n additionalFields['additional_field_' + i] = properties[i];\n }\n }\n\n $.ajax({\n type: \"POST\",\n url: this.props.url,\n async: false,\n data: {\n properties: {\n section_type: this.props.sectionType,\n section_id: this.props.sectionId,\n additional_fields: additionalFields\n }\n },\n success: (response) => {\n let items = [...this.state.items];\n items.push(response)\n this.setState({ items: items })\n this.setState({ currentItemProperties: this.state.defaultPropertyValues })\n }\n })\n }\n\n updateListItem(id, properties) {\n let additionalFields = {};\n switch(this.props.listType) {\n case \"CampaignBucket\":\n additionalFields.name = properties[0];\n additionalFields.filter_string = properties[1];\n break;\n case \"ConversionAction\":\n additionalFields.name = properties[0];\n additionalFields.conversion_id = properties[1];\n additionalFields.conversion_type = this.props.conversionType;\n break;\n default:\n // Just send all the passed in properties to the server as additional fields\n for (let i = 0; i < properties.length; i++) {\n additionalFields['additional_field_' + i] = properties[i];\n }\n }\n\n $.ajax({\n type: \"PATCH\",\n url: this.props.url + id,\n async: false,\n data: {\n properties: {\n section_type: this.props.sectionType,\n section_id: this.props.sectionId,\n additional_fields: additionalFields\n }\n }\n })\n }\n\n handleNewItemChange(event) {\n let properties = [];\n let inputs = event.target.parentElement.children\n for (let i = 0; i < inputs.length; i++) {\n let input = inputs[i];\n if (input.tagName == \"INPUT\") {\n properties.push(input.value);\n }\n }\n\n this.setState({\n currentItemProperties: properties\n });\n }\n\n render() {\n const newItemRow = this.state.currentItemProperties.map((property, index) => {\n return (\n \n );\n });\n const itemList = this.state.items.map((item) => {\n return (\n \n );\n });\n return (\n
\n {newItemRow}\n \n \n
\n );\n }\n}\n\nexport default List;\n","import React from 'react';\n\nclass ListItem extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n propertyNames: this.props.propertyNames,\n properties: [],\n checkStyle: \"none\"\n }\n\n this.state.propertyNames.forEach((element, index) => {\n this.state.properties[index] = \"\";\n });\n\n let item = this.props.item;\n\n switch(this.props.listType) {\n case \"CampaignBucket\":\n this.state.properties[0] = item.name;\n this.state.properties[1] = item.filter_string;\n break;\n case \"ConversionAction\":\n this.state.properties[0] = item.name;\n this.state.properties[1] = item.conversion_id;\n break;\n default:\n // Just map whatever the object passes in\n // Be very careful with this. It's only an emergency catching mechanism. The order cannot be ensured so saving will get fricked up\n let counter = 0;\n for (let prop in item) {\n if (Object.prototype.hasOwnProperty.call(item, prop) && prop != \"id\" && prop != \"section_id\" && prop != \"section_type\" && prop != \"created_at\" && prop != \"updated_at\") {\n this.state.properties[counter] = item[prop];\n counter += 1;\n }\n }\n }\n\n this.handleInputChange = this.handleInputChange.bind(this);\n }\n\n handleInputChange(event) {\n let properties = [];\n let inputs = event.target.parentElement.children\n for (let i = 0; i < inputs.length; i++) {\n let input = inputs[i];\n if (input.tagName == \"INPUT\") {\n properties.push(input.value);\n }\n }\n\n this.setState({\n properties: properties,\n checkStyle: \"inline-block\"\n });\n }\n\n render() {\n const itemRow = this.state.properties.map((property, index) => {\n return (\n \n );\n });\n return (\n
  • \n {itemRow}\n \n \n
  • \n );\n }\n}\n\nexport default ListItem;\n","import React from \"react\";\nimport MetricTableRow from \"MetricTableRow\";\nimport Table from \"react-bootstrap/Table\";\nimport { startCase, camelCase, cloneDeep } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { Stack, Lock, Unlock } from \"react-bootstrap-icons\";\n\nclass MetricTable extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n table: props.table,\n date: moment(props.date),\n headerOrder: this.props.headerOrder,\n compactView: this.props.userDefaultView && this.props.userDefaultView == \"compact_table_view\" ? true : false,\n width: window.innerWidth,\n lockColumns: {},\n selectedPlatform: this.props.selectedPlatform\n };\n }\n componentDidUpdate(prevProps) {\n if (prevProps.table !== this.props.table) {\n this.setState({\n table: this.props.table,\n });\n }\n }\n\n\n updateWidth = () => {\n this.setState({ width: window.innerWidth });\n };\n updateLock = (lockMetric, metricName) => {\n this.setState(\n (prevState) => ({ lockColumns: { ...prevState.lockColumns, [lockMetric]: !prevState.lockColumns[lockMetric] } }),\n () => {\n this.setState((prevState) => ({\n headerOrder: Object.values(prevState.lockColumns).includes(true)\n ? prevState.headerOrder.sort(function (x, y) {\n let metricTitleX = _.startCase(_.camelCase(x));\n if (metricTitleX.includes(\"Roas\")) {\n metricTitleX = metricTitleX.slice(0, -4) + metricTitleX.slice(-4).toUpperCase();\n }\n if (metricTitleX.includes(\"Aov\")) {\n metricTitleX = metricTitleX.slice(0, -3) + metricTitleX.slice(-3).toUpperCase();\n }\n\n if (metricTitleX.includes(\"Cpa\")) {\n metricTitleX = metricTitleX.slice(0, -3) + metricTitleX.slice(-3).toUpperCase();\n }\n if (metricTitleX.includes(\"Cvr\")) {\n metricTitleX = \"Conv. Rate\";\n }\n if (metricTitleX === \"Traffic\") {\n metricTitleX = \"Organic Traffic\";\n }\n let metricTitleY = _.startCase(_.camelCase(y));\n if (metricTitleY.includes(\"Roas\")) {\n metricTitleY = metricTitleY.slice(0, -4) + metricTitleY.slice(-4).toUpperCase();\n }\n if (metricTitleY.includes(\"Aov\")) {\n metricTitleY = metricTitleY.slice(0, -3) + metricTitleY.slice(-3).toUpperCase();\n }\n\n if (metricTitleY.includes(\"Cpa\")) {\n metricTitleY = metricTitleY.slice(0, -3) + metricTitleY.slice(-3).toUpperCase();\n }\n if (metricTitleY.includes(\"Cvr\")) {\n metricTitleY = \"Conv. Rate\";\n }\n if (metricTitleY === \"Traffic\") {\n metricTitleY = \"Organic Traffic\";\n }\n return prevState.lockColumns[`${metricTitleX}`] ? -1 : prevState.lockColumns[`${metricTitleY}`] ? 1 : 0;\n })\n : cloneDeep(this.props.headerOrder),\n }));\n }\n );\n };\n componentDidMount() {\n window.addEventListener(\"resize\", this.updateWidth);\n this.state.headerOrder.map((metricName, index) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n\n this.setState((prevState) => ({ lockColumns: { ...prevState.lockColumns, [metricTitle]: false } }));\n });\n }\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWidth);\n }\n render() {\n if (!this.props.table) return
    No Data To Display Yet!
    ;\n let months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n let mobileMonths = [\"Jan.\", \"Feb.\", \"Mar.\", \"Apr.\", \"May\", \"Jun.\", \"Jul.\", \"Aug.\", \"Sep.\", \"Oct.\", \"Nov.\", \"Dec.\"];\n const headerClass = this.props.ppc ? \"ppc-table-row-header\" : \" seo-table-row-header\";\n const renderHeader = this.state.headerOrder.map((metricName, index) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n\n if (metricTitle.includes(\"Roas\")) {\n metricTitle = metricTitle.slice(0, -4) + metricTitle.slice(-4).toUpperCase();\n }\n if (metricTitle.includes(\"Aov\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n\n if (metricTitle.includes(\"Cpa\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n if (metricTitle.includes(\"Cvr\")) {\n metricTitle = \"Conv. Rate\";\n }\n if (metricTitle === \"Traffic\") {\n metricTitle = \"Organic Traffic\";\n }\n return (\n \n {this.state.lockColumns[`${metricTitle}`] == true ? (\n <>\n \n
    \n

    {metricTitle}

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

    {metricTitle}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

      \n {personalInfo.job_title}:

      {personalInfo.name}
      \n

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

    ${props.company_name}

    \n

    \n

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

    \n
    \n

    ${info[0]}

    \n

    Tel: ${info[1].phone_number}

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

    ${props.company_name}

    \n

    \n

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

    \n
    \n

    ${info[0]}

    \n

    Tel: ${info[1].phone_number}

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

    ${props.company_name}

    \n

    Additional Users

    \n

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

    N/A

    :

    {department}

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

    {access}

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

    {access}

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

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

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

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

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

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

    PPC

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

    SEO

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

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

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

    Custom:

    \n

    Hover for details

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

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

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

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

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

    You can still login using your old Zoom credentials.

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

    Login to DataPulse

    \n

    Privacy Policy

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

    DataPulse

    \n

    Real-time metrics reporting

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

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

    \n
    \n

    Anytime, anywhere.

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

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

    support@digitalposition.com

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

    DataPulse Change History

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

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

      \n

      Read more

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

    Admin Settings

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

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

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

    Alert Subscriptions

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

    Subscriptions By Client

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

    {client.company_name}

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

    Subscriptions By User

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

    {selectedUser.name}

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

    {client.company_name}

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

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

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

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

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

    All set for now!

    \n
    \n

    \"{quote.text}\"

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

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

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

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

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

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

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

    Alert Summary

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

    All set for now!

    \n
    \n

    \"{quote.text}\"

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

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

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

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

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

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

    \n \n
    \n
    \n
    \n \n )}\n \n );\n }\n}\n\nexport default AlertSummary;\n","import React, { useState, useEffect } 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 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 \n \n
    \n
    Authenticate with the services you need to pull for your clients.
    \n

    Note: Access to Amazon Seller Central and Shopify platforms is handled on the account level. Please go to Account Settings to authorize them.

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

    Campaign Builder

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

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

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

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

      \n

      Pre-existing campaigns will not be modified.

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

    {props.platform.platformName}

    \n ) : (\n

    {props.platform.platformName}

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

    Metrics to set goals for:

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

    Display configuration

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

    * Will populate only under day of week chart

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

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

    \n
    \n

    {`${month}.`}

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

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

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

    Capabilities

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

    Website Permissions

    \n
    \n \n \n

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

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

    Global permissions

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

    Custom permissions/exceptions

    \n \n setIsEnabled(!isEnabled)}\n id=\"websitepermissionenable\"\n name=\"custom_website_permissions_enabled\"\n checked={isEnabled}\n />\n
    Enable
    \n
    \n {customPermissions.map((item, idx) => {\n let website = item.website;\n\n return isEnabled ? (\n \n \n \n \n \n \n \n
    \n \n {\" \"}\n
    Set to:
    {\" \"}\n
    \n \n
    \n \n \n
    \n \n
    \n \n \n {\n const newPermissions = customPermissions.filter((el) => item.id !== el.id);\n setCustomPermissions([...newPermissions]);\n }}>\n \n \n
    \n ) : null;\n })}\n \n \n permissionHandler([...customPermissions, { id: uuidv4(), website: \"\", permission: 4 }])}>\n + Add field\n \n \n \n \n
    \n\n \n
    \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Container } from \"react-bootstrap\";\nimport Details from \"./Details\";\nimport Permissions from \"./Permissions\";\n\nexport default function Website(props) {\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\n\t\t\n\t);\n}\n","import React, { useState, useContext, useRef } from \"react\";\nimport LiteCurrencySelector from \"./LiteCurrencySelector\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport jsDig from \"utils/jsDig.js\";\nimport ClientUsers1 from \"./ClientUsers1\";\nimport AccountUsers from \"client_config/lite/AccountUsers\";\nimport AddUser from \"client_config/lite/AddUser\";\n\nexport default function Access() {\n const props = 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, { useState } from 'react';\n\n\nexport default function AccountHome(props) {\n\n let dpLogo = require(\"images/logos/datapulse-logo-blue-small.png\");\n dpLogo = \n\n return (\n
    \n
    \n

    {dpLogo}

    \n

    Real time performance tracking and reporting

    \n

    Marketing has evolved and so has DataPulse. We restructured your dashboards to cut out data that isn't actionable and bring you right to the numbers that matter most. The data from all of your platforms aggregated together will tell you the whole story of whether your strategy is working or not.\n Welcome to the new streamlined experience!

    \n
    \n
    \n

    Have questions? Please reach out to support@digitalposition.com to get in touch with an expert\n We'd love to hear your thoughts. If you have feedback to help us make DataPulse better, please fill out this form.

    \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\";\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 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-seller.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\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 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 const authenticateShopifyFunction = () => {\n const paramsObject = {\n shopify_url: 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 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 $('.shopify-authentication button').removeClass('red-button').addClass('green-button').html(\n `Authenticate`\n );\n }\n });\n console.log(\"Reset Shopify authentication\")\n };\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 [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 \n // onChange handlers\n const handleFacebookObjectiveChange = (e) => {\n const targetValue = e.target.value;\n setFacebookObjective(targetValue);\n context.setFacebookObjective(targetValue);\n };\n const handleTiktokObjectiveChange = (e) => {\n const targetValue = e.target.value;\n setTiktokObjective(targetValue);\n context.setTiktokObjective(targetValue);\n };\n const handleSemrushTargetLocationChange = (e) => {\n const targetValue = e.target.value;\n setSemrushTargetLocation(targetValue);\n context.setSemrushTargetLocation(targetValue);\n };\n const handleShopifyRevenueTypeChange = (e) => {\n const targetValue = e.target.value;\n setShopifyRevenueType(targetValue);\n context.setShopifyRevenueType(targetValue);\n };\n const handleShopifyCountryFilterChange = (e) => {\n const targetValue = e.target.value;\n setShopifyCountryFilter(targetValue);\n context.setShopifyCountryFilter(targetValue);\n };\n const handleGoogleAdsIdChange = (e) => setGoogleAdsId(e.target.value);\n const handleMicrosoftIdChange = (e) => setMicrosoftId(e.target.value);\n const handleMetaIdChange = (e) => setMetaId(e.target.value);\n const handleTiktokIdChange = (e) => setTiktokId(e.target.value);\n const handleGoogleAnalyticsIdChange = (e) => setGoogleAnalyticsId(e.target.value);\n const handleSemrushIdChange = (e) => setSemrushId(e.target.value);\n const handleShopifyUrlChange = (e) => setShopifyUrl(e.target.value);\n const handleAmazonAdsIdChange = (e) => setAmazonAdsId(e.target.value);\n const handleAmazonSellerCountryChange = (e) => {\n const targetValue = e.target.value;\n setAmazonSellerCountry(targetValue);\n context.setAmazonSellerCountry(targetValue);\n };\n const handleGoogleSheetsUrlChange = (e) => setGoogleSheetsUrl(e.target.value);\n const handleMailchimpServerPrefixChange = (e) => setMailchimpServerPrefix(e.target.value);\n\n // onBlur handlers to update the context\n const handleGoogleAdsIdBlur = () => context.setGoogleAdsId(googleAdsId);\n const handleMicrosoftIdBlur = () => context.setMicrosoftId(microsoftId);\n const handleMetaIdBlur = () => context.setMetaId(metaId);\n const handleTiktokIdBlur = () => context.setTiktokId(tiktokId);\n const handleGoogleAnalyticsIdBlur = () => context.setGoogleAnalyticsId(googleAnalyticsId);\n const handleSemrushIdBlur = () => context.setSemrushId(semrushId);\n const handleShopifyUrlBlur = () => context.setShopifyUrl(shopifyUrl);\n const handleAmazonAdsIdBlur = () => context.setAmazonAdsId(amazonAdsId);\n const handleGoogleSheetsUrlBlur = () => context.setGoogleSheetsUrl(googleSheetsUrl);\n const handleMailchimpServerPrefixBlur = () => context.setMailchimpServerPrefix(mailchimpServerPrefix);\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 return (\n
    \n
    \n
    \n
    \n {GoogleAnalytics}

    Google Analytics

    \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
    \n {googleAds}

    Google Ads

    \n
    \n
    \n

    Google Ads ID

    \n 111-222-3333
    (Preserve the dashes\"\n inline={true}\n />\n \n
    \n
    \n
    \n
    \n {microsoftAds}

    Microsoft Ads

    \n
    \n
    \n

    \n Microsoft Ads ID\n

    \n \n \n
    \n
    \n
    \n
    \n {metaAds}

    Meta Ads

    \n
    \n
    \n

    Meta Ads ID

    \n \n \n
    \n
    \n
    \n Facebook Objective\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {tiktokAds}

    TikTok Ads

    \n
    \n
    \n

    TikTok Ads ID

    \n \n \n
    \n
    \n
    \n TikTok Objective\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {semrush}

    SEMRush

    \n
    \n
    \n

    SEMRush ID

    \n \n \n
    \n
    \n

    SEMRush Target Location:

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {shopifyIcon}

    Shopify

    \n
    \n
    \n

    \n Shopify URL\n

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

    Shopify revenue type

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

    Shopify Country Filter

    \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
    \n
    \n {googleSheetsIcon}

    Google Sheets

    \n
    \n
    \n

    Create a copy of this template.

    \n

    Data imported from sheet below will appear on the Overview dashboard

    \n

    Spreadsheet url:

    \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n {amazonAdsIcon}

    Amazon Ads

    \n
    \n
    \n

    Amazon Ads ID

    \n

    Please select an account from the list below

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {amazonSellerIcon}

    Amazon Seller Central

    \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
    \n
    \n {mailchimpIcon}

    Mailchimp

    \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
    \n
    \n );\n}\n","import React, { useState, 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 let cog = require(\"images/lite/icons/settings.png\");\n cog = \"Settings\";\n\n const [isModalOpen, setModalOpen] = useState(false);\n const toggleModal = () => setModalOpen(!isModalOpen);\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));\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 [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 [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 [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\n //scripts\n const [excludeNbInShoppingKeywords, setExcludeNbInShoppingKeywords] = useState(jsDig([\"client_account\", \"scripts\", \"exclude_nb_in_shopping\", \"keyword\"], props) || {});\n const [textConvertingQueryMiningScript, setTextConvertingQueryMiningScript] = useState(jsDig([\"client_account\", \"scripts\", \"text_converting_query_mining_script\"], props));\n const [emBmNegativeOverlapScript, setEmBmNegativeOverlapScript] = useState(jsDig([\"client_account\", \"scripts\", \"em_bm_negative_overlap_script\"], props));\n const [negativeDsaSyncScript, setNegativeDsaSyncScript] = useState(jsDig([\"client_account\", \"scripts\", \"negative_dsa_sync_script\"], props));\n const [excludeNbInShopping, setExcludeNbInShopping] = useState(jsDig([\"client_account\", \"scripts\", \"exclude_nb_in_shopping\", \"enabled\"], props));\n const [keywordCannibalizationScript, setKeywordCannibalizationScript] = useState(jsDig([\"client_account\", \"scripts\", \"keyword_cannibalization_script\"], props));\n const [youtubeChannelExcluder, setYoutubeChannelExcluder] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\", \"enabled\"], props));\n const [youtubeChannelExcluderCountries, setYoutubeChannelExcluderCountries] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\", \"allowed_countries\"], props));\n const [youtubeChannelExcluderTimeRange, setYoutubeChannelExcluderTimeRange] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\", \"impressions_time_range\"], props));\n const [youtubeChannelExcluderImpressionsThreshold, setYoutubeChannelExcluderImpressionsThreshold] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\", \"impressions_threshold\"], props));\n const [youtubeChannelExcluderGoogleSheet, setYoutubeChannelExcluderGoogleSheet] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\", \"google_sheet\"], props));\n\n //inflation\n const [inflation, setInflation] = useState(props.search_section.daily_yields);\n\n\n const contextValue = {\n isModalOpen,\n toggleModal,\n excludeNbInShoppingKeywords,\n setExcludeNbInShoppingKeywords,\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 googleAdsId,\n setGoogleAdsId,\n metaId,\n setMetaId,\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 textConvertingQueryMiningScript,\n setTextConvertingQueryMiningScript,\n emBmNegativeOverlapScript,\n setEmBmNegativeOverlapScript,\n negativeDsaSyncScript,\n setNegativeDsaSyncScript,\n excludeNbInShopping,\n setExcludeNbInShopping,\n keywordCannibalizationScript,\n setKeywordCannibalizationScript,\n youtubeChannelExcluder,\n setYoutubeChannelExcluder,\n youtubeChannelExcluderCountries,\n setYoutubeChannelExcluderCountries,\n youtubeChannelExcluderTimeRange,\n setYoutubeChannelExcluderTimeRange,\n youtubeChannelExcluderImpressionsThreshold,\n setYoutubeChannelExcluderImpressionsThreshold,\n youtubeChannelExcluderGoogleSheet,\n setYoutubeChannelExcluderGoogleSheet,\n inflation,\n setInflation,\n ...props,\n };\n\n return (\n \n \n \n \n );\n}\n","import React, { useState, useEffect, useRef, useContext } from 'react';\nimport { SettingsContext } from './AccountSettingsButton';\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 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 handleFormSubmit = async (event) => {\n event.preventDefault();\n context.toggleModal();\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('microsoft_id', configForm.microsoft_id.value);\n formData.append('meta_id', configForm.meta_id.value);\n formData.append('tiktok_id', configForm.tiktok_id.value);\n formData.append('google_analytics_id', configForm.google_analytics_id.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 // Append script data\n formData.append(\"scripts[text_converting_query_mining_script]\", configForm[\"scripts[text_converting_query_mining_script]\"].checked ? \"1\" : \"0\");\n formData.append(\"scripts[em_bm_negative_overlap_script]\", configForm[\"scripts[em_bm_negative_overlap_script]\"].checked ? \"1\" : \"0\");\n formData.append(\"scripts[negative_dsa_sync_script]\", configForm[\"scripts[negative_dsa_sync_script]\"].checked ? \"1\" : \"0\");\n formData.append(\"scripts[keyword_cannibalization_script]\", configForm[\"scripts[keyword_cannibalization_script]\"].checked ? \"1\" : \"0\");\n\n // For nested script settings like exclude_nb_in_shopping\n formData.append('scripts[exclude_nb_in_shopping][enabled]', context.excludeNbInShopping ? '1' : '0');\n // formData.append('scripts[exclude_nb_in_shopping][keyword]', configForm['scripts[exclude_nb_in_shopping][keyword]'].value);\n Object.keys(context.excludeNbInShoppingKeywords).forEach(key => {\n formData.append(`scripts[exclude_nb_in_shopping][keyword][${key}]`, context.excludeNbInShoppingKeywords[key]);\n });\n\n // For youtube_channel_excluder\n formData.append(\"scripts[youtube_channel_excluder][enabled]\", configForm[\"scripts[youtube_channel_excluder][enabled]\"].checked ? \"1\" : \"0\");\n formData.append(\"scripts[youtube_channel_excluder][google_sheet]\", configForm[\"scripts[youtube_channel_excluder][google_sheet]\"].value);\n formData.append(\"scripts[youtube_channel_excluder][allowed_countries]\", configForm[\"scripts[youtube_channel_excluder][allowed_countries]\"].value);\n formData.append(\"scripts[youtube_channel_excluder][impressions_time_range]\", configForm[\"scripts[youtube_channel_excluder][impressions_time_range]\"].value);\n formData.append(\"scripts[youtube_channel_excluder][impressions_threshold]\", configForm[\"scripts[youtube_channel_excluder][impressions_threshold]\"].value);\n\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 const TabContent = () => (\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \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 \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 } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport CustomAvatar from \"utils/CustomAvatar\";\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 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
    \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 \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 userToAdd = { ...newUser, userType: props.userType };\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 return (\n <>\n \n \n \n \n

    Add a new {props.userType}

    \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 \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
    \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\n const defaultLogo = require(\"images/lite/icons/logo-placeholder.png\");\n let uploadIcon = require(\"images/lite/icons/upload.png\");\n uploadIcon = ;\n const inputRef = useRef();\n const [clientLogoUrl, setClientLogoUrl] = useState(context.clientLogoUrl ? context.clientLogoUrl : `/datapulse${defaultLogo}`);\n const companyLogo = ;\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 }, [context.website, context.defaultObjective, context.overviewDatasource, context.baseCurrency, context.displayCurrency, context.companyName]);\n \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); // Update local state\n context.setDefaultObjective(newObjective); // Update context state\n };\n\n const handleOverviewDatasourceChange = (event) => {\n const newOverviewDatasource = event.target.value;\n setOverviewDatasource(newOverviewDatasource); // Update local state\n context.setOverviewDatasource(newOverviewDatasource); // Update context state\n }\n\n const handleBaseCurrencyChange = (e) => {\n const newBaseCurrency = e.target.value;\n setBaseCurrency(newBaseCurrency);\n context.setBaseCurrency(newBaseCurrency); // Update context immediately\n };\n\n const handleDisplayCurrencyChange = (e) => {\n const newDisplayCurrency = e.target.value;\n setDisplayCurrency(newDisplayCurrency);\n context.setDisplayCurrency(newDisplayCurrency); // Update context immediately\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 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?:\\\\/\\\\/' + // protocol (http or https required)\n '(([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '(\\\\d{1,3}\\\\.){3}\\\\d{1,3}' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\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

    Overview Datasource

    \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
    \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { Button, Row, Col } from \"react-bootstrap\";\nimport UserSelector from \"utils/UserSelector\";\nimport CreateNewUser from \"./CreateNewUser\";\nimport { SettingsContext } from './AccountSettingsButton'\n\nexport default function ClientUsers(props) {\n\n\n const context = useContext(SettingsContext);\n // Users selected in user selector as client users\n const [selectedUsers, setSelectedUsers] = useState(props.client_account.client_users ? props.client_account.client_users : [])\n // All client users in the database with relevant data\n const [clientUsers, setClientUsers] = useState(props.client_users ? props.client_users : {})\n // New users that will need to be created on client config save\n const newUsers = context.newUsers\n const setNewUsers = context.setNewUsers\n \n\n\n const addNewUser = (user) => {\n let newClientUsers = {...clientUsers}\n newClientUsers[user.email] = {\n avatar: false,\n avatar_big: false,\n name: user.firstName + \" \" + user.lastName,\n job_title: null,\n department: \"no_department\"\n }\n setClientUsers(newClientUsers)\n setSelectedUsers([...selectedUsers, user.email])\n setNewUsers([...newUsers, {\n email: user.email,\n firstName: user.firstName,\n lastName: user.lastName,\n accountAccessIds: user.accountAccessIds\n }])\n }\n\n const hiddenFields = newUsers.map((user, index) => (\n \n \n \n \n {user.accountAccessIds.map((id) => (\n \n ))}\n \n ))\n\n return (\n <>\n \n \n

    Client Users

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

    Internal Datapulse users

    \n
    \n \n
    \n \n \n
    \n {hiddenFields}\n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useContext, useRef } from 'react';\nimport { Alert } from 'react-bootstrap'\nimport { SettingsContext } from './AccountSettingsButton'\nimport CreateNewUser1 from './CreateNewUser1'\nimport CustomAvatar from \"utils/CustomAvatar\";\n\n\nexport default function ClientUsers1(props) {\n\n const context = useContext(SettingsContext);\n\n let xIcon = require(\"images/lite/icons/x-close.svg\");\n xIcon = (\n \"remove\"\n );\n\n const [users, setUsers] = useState(props.userType === \"client\" ? context.clientUsers : context.teamUsers)\n const [userExistsWarning, setUserExistsWarning] = useState(\"\")\n\n\n\n return (\n
    \n {userExistsWarning !== \"\" && (\n
    {setUserExistsWarning(\"\")}}>\n {userExistsWarning}\n
    \n )}\n\n
    \n {users.map((user, index) => (\n \n {props.userType === \"client\" ?\n\n
    \n
    \n \n
    \n
    \n {xIcon}\n
    \n
    \n

    \n {user.active ? \"Active\" : \"Invited\"}\n

    \n
    \n
    \n :\n
    \n {/* */}\n {user.name ? user.name : user.first_name + \" \" + user.last_name} \n
    \n }\n
    \n ))}\n
    \n \n \n
    \n );\n}\n","import React, { useContext } from \"react\";\nimport { Row, Col, Form, Modal, Button, FormControl, Alert } from \"react-bootstrap\";\nimport {SettingsContext} from './AccountSettingsButton';\n\nclass CreateNewUser extends React.Component {\n\n\n constructor(props) {\n super(props);\n\n this.state = {\n show: false,\n employeeType: \"client\",\n clients: this.props.clients ? this.props.clients : [],\n first_name: \"\",\n fNameError: \"\",\n last_name: \"\",\n lNameError: \"\",\n email: \"\",\n emailError: \"\",\n accountAccessIds: [this.props.selectedAccountId],\n };\n\n }\n\n\n toggleAccess(clientId) {\n if (!this.state.accountAccessIds.includes(clientId)) {\n this.setState({\n accountAccessIds: [...this.state.accountAccessIds, clientId],\n });\n } else {\n this.setState({\n accountAccessIds: this.state.accountAccessIds.filter((id) => id != clientId),\n });\n }\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 checkAll\n ? this.setState({\n accountAccessIds: this.state.clients.map((client) => client.id),\n })\n : this.setState({ accountAccessIds: [] });\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 handleNext = (e) => {\n e.preventDefault();\n const err = this.errorCheck();\n if (!err) {\n this.nextPage();\n } else {\n return;\n }\n };\n\n handleSubmit = (e) => {\n e.preventDefault();\n this.props.addNewUser({\n email: this.state.email,\n firstName: this.state.first_name,\n lastName: this.state.last_name,\n accountAccessIds: this.state.accountAccessIds,\n });\n // Reset state\n this.setState({\n show: false,\n employeeType: \"client\",\n clients: this.props.clients ? this.props.clients : [],\n first_name: \"\",\n fNameError: \"\",\n last_name: \"\",\n lNameError: \"\",\n email: \"\",\n emailError: \"\",\n accountAccessIds: [this.props.selectedAccountId],\n });\n };\n\n errorCheck = () => {\n let isError = false;\n const errors = {\n fNameError: \"\",\n lNameError: \"\",\n emailError: \"\",\n };\n\n if (this.state.first_name.length < 1) {\n isError = true;\n errors.fNameError = \"First name cannot be empty\";\n }\n\n if (this.state.last_name.length < 1) {\n isError = true;\n errors.lNameError = \"Last name cannot be empty\";\n }\n\n if (this.state.email.indexOf(\"@\") === -1) {\n isError = true;\n errors.emailError = \"Valid email must contain @ symbol\";\n }\n if (isError) {\n this.setState({\n ...this.state,\n ...errors,\n });\n }\n return isError;\n };\n\n change = (e) => {\n this.setState({\n [e.target.name]: e.target.value,\n });\n };\n\n //=========================== FORM VALIDATION END ===================================\n\n render() {\n return (\n \n {settings => (\n <>\n \n this.setState({ show: false })}>\n
    \n
    \n \n Add New User - Basic Info\n \n \n \n \n \n this.change(e)} type=\"text\" name=\"first_name\" placeholder=\"First Name (required)\" />\n {this.state.fNameError ? {this.state.fNameError} : null}\n \n \n this.change(e)} type=\"text\" name=\"last_name\" placeholder=\"Last Name (required)\" />\n {this.state.lNameError ? {this.state.lNameError} : null}\n \n \n this.change(e)} type=\"email\" name=\"email\" placeholder=\"Email (required)\" />\n {this.state.emailError ? {this.state.emailError} : null}\n \n \n \n \n \n \n \n \n
    \n
    \n \n Add New User - Account Access\n \n \n

    \n Back to Basic Info\n

    \n
    \n
    \n \n this.searchClients(e)} placeholder=\"Search accounts...\" />\n
    \n
    \n
    \n {\n this.accessAll(e);\n }}\n className=\"custom-control-input\"\n id=\"toggle-all-access\"\n />\n \n
    \n
    \n
    \n \n \n
      \n {this.state.clients.map((client) => {\n return (\n
    • \n \n
      \n {\n this.toggleAccess(client.id);\n }}\n name={`account_access_ids[${client.id}]`}\n className=\"custom-control-input\"\n 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}\n}\n\nexport default CreateNewUser;\n","import React from 'react'\nimport { Row, Col, Form, Modal, Button, FormControl, Alert } from 'react-bootstrap'\nimport { SettingsContext } from './AccountSettingsButton';\n\nclass CreateNewUser1 extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n show: false,\n employeeType: this.props.userType ? this.props.userType : \"client\",\n clients: this.props.clients ? this.props.clients : [],\n first_name: \"\",\n fNameError: \"\",\n last_name: \"\",\n lNameError: \"\",\n email: \"\",\n emailError: \"\",\n userExistsWarning: \"\",\n client: this.props.userType == \"client\" ? \"1\" : \"0\",\n employee: this.props.userType == \"employee\" ? \"1\" : \"0\",\n role: \"Employee\",\n department: \"None\",\n account_access_ids: [],\n }\n }\n\n buildUser(context) {\n let employeeType = this.state.employeeType;\n let user = {\n client: this.state.client,\n employee: this.state.employee,\n role: this.state.role,\n department: this.state.department,\n email: this.state.email,\n first_name: this.state.first_name,\n last_name: this.state.last_name,\n account_access_ids: this.state.account_access_ids,\n new_user: true\n }\n\n let existingUser = context.clientUsers.concat(context.teamUsers).find(u => u.email === user.email);\n\n if (existingUser) {\n this.props.setUserExistsWarning(\"A user with this email already exists!\")\n return; // Stop the function if the user already exists\n }\n\n if (employeeType == \"client\") {\n if (!context.clientUsers.some(u => u.email === user.email)) {\n context.setClientUsers([...context.clientUsers, user]);\n }\n }\n else {\n if (!context.teamUsers.some(u => u.email === user.email)) {\n context.setTeamUsers([...context.teamUsers, user]);\n }\n }\n }\n\n\n clientButtonClick(event) {\n $('.client-button').addClass('selected');\n $('.employee-button').removeClass('selected');\n $('.employee-only-fields').hide();\n this.setState({ employeeType: \"client\" });\n }\n\n employeeButtonClick(event) {\n $('.employee-button').addClass('selected');\n $('.client-button').removeClass('selected');\n $('.employee-only-fields').show();\n this.setState({ employeeType: \"employee\" });\n }\n\n toggleAccess(event) {\n }\n\n accessAll(event) {\n let checkAll = event.target.checked;\n let accessIds = [];\n $('.client-list input[type=checkbox]').each((index, el) => {\n $(el).prop(\"checked\", checkAll)\n })\n if (checkAll) {\n // Checkbox is checked, add all client IDs to accessIds\n accessIds = this.state.clients.map(client => client.id);\n } else {\n // Checkbox is unchecked, keep accessIds empty to remove all\n }\n // Update the state to reflect the new set of account access IDs\n this.setState({ account_access_ids: accessIds });\n }\n\n nextPage() {\n $(\".page-1\").hide();\n $(\".page-2\").show();\n }\n\n backPage() {\n $(\".page-2\").hide();\n $(\".page-1\").show();\n }\n\n searchClients(event) {\n let filter = event.target.value.toLowerCase().trim();\n let visibleClients = [];\n this.props.clients.forEach((client) => {\n let clientName = client.company_name.toLowerCase();\n if (clientName.includes(filter)) {\n visibleClients.push(client);\n }\n })\n this.setState({clients: visibleClients})\n }\n\n //=========================== FORM VALIDATION START ===================================\n handleSubmit = e => {\n e.preventDefault()\n const err = this.errorCheck()\n if (!err) {\n this.nextPage()\n }\n else {\n return\n }\n }\n\n errorCheck = () => {\n let isError = false\n const errors = {\n fNameError: \"\",\n lNameError: \"\",\n emailError: \"\"\n }\n\n if (this.state.first_name.length < 1) {\n isError = true\n errors.fNameError=\"First name cannot be empty\"\n }\n\n if (this.state.last_name.length < 1) {\n isError = true\n errors.lNameError= \"Last name cannot be empty\"\n }\n\n\n if (this.state.email.indexOf(\"@\") === -1 ) {\n isError = true\n errors.emailError = \"Valid email must contain @ symbol\"\n\n }\n if (isError){\n this.setState({\n ...this.state,\n ...errors\n })\n }\n return isError\n }\n\n change = e => {\n this.setState({\n [e.target.name]: e.target.value\n })\n }\n\n changeAccessIds = e => {\n let accessIds = this.state.account_access_ids\n if (e.target.checked) {\n accessIds.push(e.target.value)\n } else {\n accessIds = accessIds.filter((id) => id != e.target.value)\n }\n this.setState({account_access_ids: accessIds})\n }\n\n//=========================== FORM VALIDATION END ===================================\n\n\n render() {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n\n return (\n \n {(context) => (\n <>\n \n this.setState({show: false})}>\n \n
    \n \n Add New User - Basic Info\n \n \n {this.state.userExistsWarning && (\n {this.state.userExistsWarning}\n )}\n {this.props.userType ? (\n \n \n { this.props.userType == \"client\" ?\n

    Adding a {this.props.userType}

    \n :\n

    Adding an {this.props.userType}

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

    I want to add a new:

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

    Client

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

    Employee

    \n
    \n \n \n
    \n \n )}\n \n \n \n \n this.change(e)} type=\"text\" name=\"first_name\" placeholder=\"First Name (required)\" />\n {this.state.fNameError ? (\n {this.state.fNameError}\n ) : null}\n\n \n \n this.change(e)} type=\"text\" name=\"last_name\" placeholder=\"Last Name (required)\" />\n {this.state.lNameError ? (\n {this.state.lNameError}\n ) : null}\n \n \n this.change(e)} type=\"email\" name=\"email\" placeholder=\"Email (required)\" />\n {this.state.emailError ? (\n {this.state.emailError}\n ) : null}\n \n \n {this.props.userType == \"employee\" &&\n \n \n Employee Level:\n this.change(e)}>\n \n \n \n \n \n \n \n Employee Department:\n this.change(e)}>\n \n \n \n \n \n \n \n \n }\n \n
    \n \n {this.state.userExistsWarning && {this.state.userExistsWarning}}\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.changeAccessIds(e)}} name={`account_access_ids[${client.id}]`} className=\"custom-control-input\" id={`account-access-id-${client.id}`} value={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}\n\nexport default CreateNewUser1;","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\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 $(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 {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 {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 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 { 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 const [localKeywords, setLocalKeywords] = useState(context.excludeNbInShoppingKeywords);\n\n const deleteKeyword = (e, kwNum) => {\n e.preventDefault();\n const {[kwNum]: deletedValue, ...remainingKeywords} = context.excludeNbInShoppingKeywords;\n context.setExcludeNbInShoppingKeywords(remainingKeywords);\n };\n\n const handleAddKeyword = (e) => {\n e.preventDefault();\n // context.excludeNbInShoppingKeywords is an object with numeric keys\n const newKey = uuidv4()\n const newKeywords = { ...context.excludeNbInShoppingKeywords, [newKey]: \"\" }; // Add a new entry with an empty string or a default value\n context.setExcludeNbInShoppingKeywords(newKeywords);\n };\n\n const handleLocalChange = (key, value) => {\n setLocalKeywords(prevKeywords => ({\n ...prevKeywords,\n [key]: value\n }));\n};\n\n const [youtubeChannelExcluderCountries, setYoutubeChannelExcluderCountries] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\", \"allowed_countries\"], context));\n const [youtubeChannelExcluderImpressionsThreshold, setYoutubeChannelExcluderImpressionsThreshold] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\", \"impressions_threshold\"], context));\n const [youtubeChannelExcluderGoogleSheet, setYoutubeChannelExcluderGoogleSheet] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\", \"google_sheet\"], context));\n\n\n\n //onchange checkboxes\n\n const handleCheckbox = (e, scriptName) => {\n if (scriptName == \"text_converting_query_mining_script\") {\n context.setTextConvertingQueryMiningScript(e.target.checked);\n } else if (scriptName == \"em_bm_negative_overlap_script\") {\n context.setEmBmNegativeOverlapScript(e.target.checked);\n }\n else if (scriptName == \"negative_dsa_sync_script\") {\n context.setNegativeDsaSyncScript(e.target.checked);\n }\n else if (scriptName == \"keyword_cannibalization_script\") {\n context.setKeywordCannibalizationScript(e.target.checked);\n }\n else if (scriptName == \"youtube_channel_excluder\") {\n context.setYoutubeChannelExcluder(e.target.checked);\n }\n else if (scriptName == \"exclude_nb_in_shopping\") {\n context.setExcludeNbInShopping(e.target.checked);\n }\n }\n\n\n //onchange inputs\n \n const handleYoutubeChannelExcluderCountries = (e) => {\n setYoutubeChannelExcluderCountries(e.target.value);\n }\n const handleYoutubeChannelExcluderTimeRange = (e) => {\n context.setYoutubeChannelExcluderTimeRange(e.target.value);\n }\n const handleYoutubeChannelExcluderGoogleSheet = (e) => {\n setYoutubeChannelExcluderGoogleSheet(e.target.value);\n }\n\n const handleYoutubeChannelExcluderImpressionsThreshold = (e) => {\n setYoutubeChannelExcluderImpressionsThreshold(e.target.value);\n }\n\n\n//onblur\n\nconst handleGoogleSheetsBlur = () => {\n context.setYoutubeChannelExcluderGoogleSheet(youtubeChannelExcluderGoogleSheet);\n};\nconst handleAllowedCountriesBlur = () => {\n context.setYoutubeChannelExcluderCountries(youtubeChannelExcluderCountries);\n};\nconst handleImpressionsThresholdBlur = () => {\n context.setYoutubeChannelExcluderImpressionsThreshold(youtubeChannelExcluderImpressionsThreshold);\n};\n\nconst handleBlur = () => {\n context.setExcludeNbInShoppingKeywords(localKeywords);\n};\n\n return (\n <>\n {props.scripts.map((script) => {\n return (\n \n {script.name == \"exclude_nb_in_shopping\" ? (\n \n
    \n
    \n
    \n {handleCheckbox(e, \"exclude_nb_in_shopping\")}}\n defaultChecked={jsDig([\"excludeNbInShopping\" ], context) == \"1\" ? true: false} \n />\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(context.excludeNbInShoppingKeywords).map((kwNum, i) => {\n return (\n
    \n {kwNum}.\n handleLocalChange(kwNum, e.target.value)}\n onBlur={handleBlur}\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
    \n {handleCheckbox(e, \"youtube_channel_excluder\")}}\n defaultChecked={jsDig([\"youtubeChannelExcluder\" ], context) == \"1\" ? true: false} \n />\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 \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 \n
    \n \n Impressions Time Range\n

    Select a predefined time range.

    \n
    \n \n \n \n \n \n \n
    \n
    \n \n Impressions Threshold\n

    Minimum number of impressions to consider a channel for exclusion.

    \n \n
    \n
    \n
    \n \n ) : (\n \n
    \n
    \n
    \n {handleCheckbox(e, script.name)}}\n defaultChecked={\n script.name == \"text_converting_query_mining_script\" ? context.textConvertingQueryMiningScript == \"1\" ? true : false :\n script.name == \"em_bm_negative_overlap_script\" ? context.emBmNegativeOverlapScript == \"1\" ? true : false :\n script.name == \"negative_dsa_sync_script\" ? context.negativeDsaSyncScript == \"1\" ? true : false :\n script.name == \"keyword_cannibalization_script\" ? context.keywordCannibalizationScript == \"1\" ? true : false :\n script.name == \"youtube_channel_excluder\" ? context.youtubeChannelExcluder == \"1\" ? true : false : false} \n />\n \n
    \n\n
    \n
    \n

    {script.desc}

    \n
    \n
    \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 ScriptBoxes from \"./ScriptBoxes\";\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 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
    {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\";\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 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

    Client Management

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

    \n Collapse Section \n

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

    What is the name of the company?

    \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 );\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 LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"./ObjectivePicker\";\nimport { capitalize } from \"lodash\";\n\nexport default function AmazonDashboard(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 const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/amazon.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 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
    \n
    \n
    \n
    \n
    \n
    \n

    Total {capitalize(revenueOrConversions)} L60D

    \n \n
    \n
    \n

    Total {roasOrCpa.toUpperCase()} L60D

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

    Ad Spend L60D

    \n \n
    \n
    \n

    Ad {capitalize(revenueOrConversions)} L60D

    \n \n
    \n
    \n

    Conversion Rate L60D

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

    Paid Sessions L60D

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

    Organic Sessions L60D

    \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 \"./ObjectivePicker\";\nimport { capitalize } from \"lodash\";\nexport default function EmailDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"clicks\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"clicks\"], 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 const thisYear = new Date().getFullYear();\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\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
    \n
    \n
    \n
    \n
    \n
    \n

    E-mail Traffic L60D

    \n \n
    \n
    \n

    {capitalize(revenueOrConversions)}

    \n \n
    \n
    \n

    Bounce Rate L60D

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

    Open Rate L60D

    \n \n
    \n
    \n

    CTR L60D

    \n \n
    \n
    \n

    Conversion Rate L60D

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

    E-mail List Growth L90D

    \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 from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\n\n// All possible metrics to use: [\"keywordName\", \"keywordPreviousPosition\", \"keywordCurrentPosition\", \"keywordSearchVolume\", \"keywordDifficulty\", \"keywordUrl\", \"keywordSerpFeatures\", \"keywordLabel\", \"keywordCostPerConversion\", \"keywordDifference\"]\n\nclass LiteKeywordTable 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
    \n KEYWORD RANKING\n
    \n \n \n \n {this.props.metrics.includes(\"keywordName\") && (\n \n )}\n {this.props.metrics.includes(\"keywordSerpFeatures\") && }\n {this.props.metrics.includes(\"keywordPreviousPosition\") && (\n \n )}\n {this.props.metrics.includes(\"keywordCurrentPosition\") && (\n \n )}\n {this.props.metrics.includes(\"keywordDifference\") && (\n \n )}\n {this.props.metrics.includes(\"keywordCostPerConversion\") && (\n \n )}\n {this.props.metrics.includes(\"keywordSearchVolume\") && (\n \n )}\n\n {this.props.metrics.includes(\"keywordDifficulty\") && (\n \n )}\n\n {this.props.metrics.includes(\"keywordLabel\") && }\n {this.props.metrics.includes(\"keywordUrl\") && }\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.includes(\"keywordName\") && (\n \n )}\n {this.props.metrics.includes(\"keywordSerpFeatures\") && (\n \n )}\n {this.props.metrics.includes(\"keywordPreviousPosition\") && (\n \n )}\n {this.props.metrics.includes(\"keywordCurrentPosition\") && (\n \n )}\n {this.props.metrics.includes(\"keywordDifference\") && (\n \n )}\n {this.props.metrics.includes(\"keywordCostPerConversion\") && (\n \n )}\n {this.props.metrics.includes(\"keywordSearchVolume\") && (\n \n )}\n {this.props.metrics.includes(\"keywordDifficulty\") && (\n \n )}\n {this.props.metrics.includes(\"keywordLabel\") && (\n \n )}\n {this.props.metrics.includes(\"keywordUrl\") && (\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 LiteKeywordTable;\n","import React, { useState, useEffect, useRef } from 'react';\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\";\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend,\n Filler\n);\n\nimport jsDig from 'utils/jsDig';\n\nexport default function LiteLineChart(props) {\n console.log(props)\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\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 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 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 }\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 },\n },\n scales: {\n x: xScalesConfig,\n y: yScalesConfig,\n },\n }\n };\n \n const labels = props.labels;\n let data = {\n labels,\n datasets: props.datasetNames.map((name, index) => ({\n label: name,\n fill: props.metric == \"stacked\",\n pointRadius: props.metric == \"stacked\" ? 0 : 3,\n data: labels.map((day, index) => jsDig([name, index], props.data)),\n borderColor: getLineColor(index, name, darkMode),\n backgroundColor: getLineColor(index, name, darkMode),\n borderJoinStyle: \"round\",\n })),\n };\n\n return (\n
    \n \n
    \n )\n}\n\nfunction getLineColor(index, label, darkMode) {\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 const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n if (String(thisYear) == newLabel) {\n return \"#1E9C77\";\n }\n if (String(lastYear) == newLabel) {\n return \"#7E7D7E\";\n }\n if (newLabel == \"other\") {\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\";\n\nexport default function LiteMetricTable(props) {\n console.log(props)\n let shopifyIcon = require(\"images/lite/icons/shopify.png\");\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 searchIcon = require(\"images/lite/icons/search-icon.png\");\n searchIcon = ;\n let socialIcon = require(\"images/lite/icons/social-icon.png\"); \n let pinterest = require(\"images/lite/icons/pinterest.png\");\n pinterest = ;\n let youtube = require(\"images/lite/icons/youtube.png\");\n youtube = ;\n socialIcon = ;\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 semrush = require(\"images/lite/icons/semrush.png\");\n semrush = ;\n let amazonAdsIcon = require(\"images/lite/icons/amazon-icon.png\");\n amazonAdsIcon = ;\n let facebook = require(\"images/lite/icons/facebook.png\");\n facebook = ;\n let amazon = require(\"images/lite/icons/amazon-icon.png\");\n amazon = ;\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 [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 \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) : \n renderBlankRow(false)\n }\n \n );\n })}\n \n \n )\n }\n }\n\n const renderTableHeader = () => {\n const 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 {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 return {subHeader};\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 return (\n \n \n {dim}\n {(props.containsUrl && baseUrl && (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) : \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 = false) => {\n return (\n <>\n {props.subHeaderOrder.map((subHeader, index) => {\n const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n let metricValue = null;\n if (subHeader == lastYear) {\n metricValue = metric[\"previous\"];\n } else if (subHeader == thisYear) {\n metricValue = metric[\"current\"];\n } else if (subHeader == \"Diff\") {\n metricValue = metric[\"difference\"];\n } else if (subHeader == \"Y/Y\") {\n metricValue = metric[\"comparison\"];\n }\n\n {/* = 75 && metric['comparison'] < 95) ? \"percent-warn\" : metric['comparison'] >= 105 ? \"percent-good\" : \"\"}>{formatMetric(metricName, metric['comparison'], true)} */}\n return (\n \n
    {formatMetric(metricName, metricValue, subHeader)}
    \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 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 return (\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 );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport ProgressBar from 'dashboards/lite/ProgressBar';\n\nconst LiteRefresh = ({ currentDashboard, accountId, alreadyPulling }) => {\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 [pullOnlyShopify, setPullOnlyShopify] = useState(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 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 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 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 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 pullOnlyShopify: pullOnlyShopify,\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 console.error(`Dashboard refresh failed - ${data.error}`);\n setLoading(false);\n }\n } else {\n // Handle errors\n console.error('Dashboard refresh failed - Server Error');\n setLoading(false);\n }\n } catch (error) {\n // Handle network errors\n console.error('Network error:', error);\n } finally {\n // No\n }\n };\n\n return (\n <>\n {(loading || dataPullComplete) && (\n
    \n {dataPullComplete ? (\n \n ) : (\n \"Buffering\"\n )}\n
    \n
    \n {dataPullComplete ? (\n <>\n
    Data pull complete!
    \n \n \n ) : (\n <>\n
    Refreshing data...
    \n
    Total Queries: {totalQueries}
    \n \n )}\n
    \n \n
    \n
    \n )} \n
    \n setShowMenu(!showMenu)}\n disabled={loading}\n >\n
    \n

    Refresh data

    \n {dotsHorizontal}\n
    \n \n \n {showMenu && (\n
    \n {currentDashboard == \"overview\" && (\n
    \n setPullOnlyShopify(!pullOnlyShopify)} />\n \n
    \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\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 ObjectivePicker from \"./ObjectivePicker\";\nimport LiteKeywordTable from \"dashboards/lite/LiteKeywordTable\";\nimport { capitalize } from \"lodash\";\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 // 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 const thisYear = new Date().getFullYear();\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 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
    \n
    \n
    \n\n
    \n
    \n
    \n

    Organic Traffic L60D

    \n \n
    \n
    \n

    Organic {capitalize(revenueOrConversions)} L60D

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

    Organic Shopping Traffic L60D

    \n \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 \"./ObjectivePicker\";\nimport { capitalize } from \"lodash\";\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 const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/social.svg\");\n let followerIcon =
    \n mainIcon =
    \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 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
    \n
    \n
    \n
    \n
    \n
    \n

    Organic Social Traffic L60D

    \n \n
    \n
    \n

    Organic Social {capitalize(revenueOrConversions)} L60D

    \n \n
    \n
    \n

    Total Followers L60D

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

    Organic Social Traffic By Source L60D

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

    Views L60D

    \n \n
    \n
    \n

    Likes L60D

    \n \n
    \n
    \n

    Comments L60D

    \n \n
    \n
    \n

    Save/Favorite/Share L60D

    \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 \"./ObjectivePicker\";\nimport { capitalize } from \"lodash\";\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 const thisYear = new Date().getFullYear();\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 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
    \n
    \n
    \n
    \n
    \n
    \n

    Affiliate Traffic L60D

    \n \n
    \n
    \n

    Direct Traffic L60D

    \n \n
    \n
    \n

    Referral Traffic L60D

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

    Audio Traffic L60D

    \n \n
    \n
    \n

    Mobile Push Notification Traffic L60D

    \n \n
    \n
    \n

    SMS Traffic L60D

    \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 ObjectivePicker from \"./ObjectivePicker\";\nimport { capitalize } from \"lodash\";\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 const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/overview.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 merOrCpa = dashboardObjective == \"sales\" ? \"mer\" : \"cpa\";\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
    \n
    \n
    \n\n
    \n
    \n
    \n

    Ad Spend L60D

    \n \n
    \n
    \n

    {capitalize(revenueOrConversions)}

    \n \n
    \n
    \n

    {merOrCpa.toUpperCase()} L60D

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

    Website Traffic L60D

    \n \n
    \n
    \n

    CVR L60D

    \n \n
    \n {dashboardObjective == \"sales\" && (\n
    \n

    AOV L60D

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

    Marketing Spend Funnel Allocation

    \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 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 ObjectivePicker from \"./ObjectivePicker\";\nimport { capitalize } from \"lodash\";\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 // 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 const thisYear = new Date().getFullYear();\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 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
    \n
    \n
    \n\n
    \n
    \n
    \n

    Search Spend L60D (infl.)

    \n \n
    \n
    \n

    Search {capitalize(revenueOrConversions)} L60D (infl.)

    \n \n
    \n
    \n

    Search {roasOrCpa.toUpperCase()} L60D (infl.)

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

    Branded vs. Non-Branded L60D

    \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}\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 \"./ObjectivePicker\";\nimport { capitalize } from \"lodash\";\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 const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/social.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 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
    \n
    \n
    \n
    \n
    \n
    \n

    Social Spend L60D

    \n \n
    \n
    \n

    Social {capitalize(revenueOrConversions)} L60D

    \n \n
    \n
    \n

    Social {roasOrCpa.toUpperCase()} L60D

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

    Prospecting vs. Remarketing L60D

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

    First Up: Account Configuration

    \n
    \n
    \n

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

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

    {props.platform.platformName}

    \n ) : (\n

    {props.platform.platformName}

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

    Company Logo

    \n
    \n
    \n

    Upload the brand logo here.

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

    {fileName}

    \n
    \n
    \n

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

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

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

    Campaign Groups

    \n
    \n
    \n

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

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

    Search is not currently enabled

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

    Social is not currently enabled

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

    Display is not currently enabled

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

    Company Legal Information

    \n \n
    \n \n \n

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

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

    Legal Company Name:

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

    Legal Company Address

    \n \n
    \n \n \n

    Street Address

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

    Unit, building, or apt #

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

    What is the name of the company for this account?

    \n \n
    \n \n \n

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

    of your company name is ideal.\n

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

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

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

    What type of company is this?

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

    \n Ecommerce clients are those that are

    tracking revenue and measuring return on

    ad spend.\n

    \n
    \n
    \n

    \n Lead generation clients are those that are

    NOT tracking revenue and are measuring

    leads & cost per acquisition.\n

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

    Victory belongs to the most persevering.

    \n
    \n
    \n

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

    \n

    Well Done!

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

    This email already has access to DataPulse

    \n
    \n }\n \n \n

    Add person

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

    First Name (required)

    \n \n \n

    Last Name (required)

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

    Email (required)

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

    Phone

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

    Job Title

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

    DataPulse Access

    \n \n
    \n \n \n

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

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

    PPC: Overall Goals

    \n
    \n
    \n

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

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

    PPC: Display Goals

    \n
    \n
    \n

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

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

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

    \n

    \n (Negative numbers are also supported)\n

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

    Metrics to fill in:

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

    Goals to replace:

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

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

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

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

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

    What's this?

    \n
    \n
    \n

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

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

    SEO Goals

    \n
    \n
    \n

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

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

    PPC: Search Goals

    \n
    \n
    \n

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

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

    PPC: Social Goals

    \n
    \n
    \n

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

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

    PPC: Video Goals

    \n
    \n
    \n

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

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

    Google Analytics Goal Tracking

    \n
    \n
    \n

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

    \n

    \n {infoText()}\n

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

    Provide the information below:

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

    Select label/ID

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

    Inflation

    \n
    \n
    \n

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

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

    Search is not currently enabled

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

    Display is not currently enabled

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

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

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

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

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

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

    \n

    \n

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

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

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

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

    Invoice Recipients

    \n
    \n
    \n

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

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

    Add email

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

    Keyword Groups

    \n
    \n
    \n

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

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

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

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

    Landing Pages

    \n
    \n
    \n

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

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

    \n {\" \"}\n Date range:{\" \"}\n

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

    \n through\n

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

    {props.invalidText}

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

    \n Onboarding is not yet completed\n

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

    \n Onboarding is not yet completed\n

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

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



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

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

    Next Up: PPC Configuration

    \n
    \n
    \n

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

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

    PPC Dashboard Customization - Services

    \n
    \n
    \n

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

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

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

    \n

    \n

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

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

    Search is not currently enabled

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

    Display is not currently enabled

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

    Social is not currently enabled

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

    PPC Dashboard Customization - All

    \n
    \n
    \n

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

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

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

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

    PPC Service Agreements

    \n
    \n
    \n

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

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

    To complete:

    \n

    \n

    Step 1: Choose which services should be enabled

    \n

    Step 2: Choose a start date for each service

    \n

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

    \n

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

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

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

    Agreement

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

    Select and set shared fee structure

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

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

    \n
    \n
    \n

    Over ad spend

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

    charge

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

    Active PPC Fees

    \n

    \n View full history\n

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

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

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

    Configure PPC subservices

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

    Over ad spend

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

    charge

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

    Capabilities and Permissions

    \n
    \n
    \n

    What does the company's development team look like?

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

    What does the company's creative team look like?

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

    Website Permissions

    \n \n
    \n \n \n

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

    \n

    \n

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

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

    Global permissions

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

    Free to make changes, no notification necessary

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

    Free to make changes with follow-up email summary

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

    All changes require prior approval

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

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

    exceptions only{\" \"}\n

    \n \n
    \n \n \n

    \n Custom permissions\n

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

    Set to:

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

    \n {firstName} {lastName}\n

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

    {email}

    \n \n
    \n \n \n

    {phone}

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

    PPC Alerts

    \n
    \n
    \n

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

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

    Search is not currently enabled

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

    Social is not currently enabled

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

    Display is not currently enabled

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

    Video is not currently enabled

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

    Pull PPC Data

    \n
    \n
    \n

    Would you like to pull data from your accounts now?

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

    For which accounts?

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

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

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

    Onboarding Progress

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

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

    ID:

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

    Label:

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

    SEMRush Setup

    \n
    \n
    \n

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

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

    Do we need to set up SEMRush for this client?

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

    \n Provide the information below:\n

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

    SEMRush API Key:

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

    Next up: SEO Configuration

    \n
    \n
    \n

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

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

    SEO Dashboard Customization

    \n
    \n
    \n

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

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

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

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

    SEO Service Agreements

    \n
    \n
    \n

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

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

    To complete:

    \n

    \n

    Step 1: Choose a start date

    \n

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

    \n

    Step 3: Assign points of contact, leads and supports

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

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

    Agreement

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

    Select and set shared fee structure

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

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

    \n
    \n
    \n

    Over revenue

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

    charge

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

    Active SEO Fees

    \n

    \n View full history\n

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

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

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

    Scripts

    \n
    \n
    \n

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

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

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

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

    SEO Alerts

    \n
    \n\n
    \n

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

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

    Pull SEO Data

    \n
    \n
    \n

    Would you like to pull data from your accounts now?

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

    For which accounts?

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

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

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

    Next Up: Service Agreements

    \n
    \n
    \n

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

    \n

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

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

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

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

    What services will be provided?

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

    PPC

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

    SEO

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

    Select PPC sub-services

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

    {service[0]}

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

    You cannot skip the last page

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

    Social Conversions

    \n
    \n
    \n

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

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

    Facebook Objective

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

    Tiktok Objective

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

    DataFeedWatch Install

    \n
    \n
    \n

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

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

    Do we need to set up DataFeedWatch for this client?

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

    Grant Facebook Ads Access

    \n
    \n
    \n

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

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

    Authenticate with Facebook:

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

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

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

    Facebook Ads ID

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

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

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

    Please indicate access granted.

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

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

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

    Grant Google Ads Access

    \n
    \n
    \n

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

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

    Authenticate with Google:

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

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

    \n
    \n \n \n

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

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

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

    \n \n
    \n \n \n

    Provide your account information below:

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

    {section}

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

    Email to grant access to:

    \n

    support@digitalposition.com

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

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

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

    Please indicate access granted.

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

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

    \n

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

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

    \n

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

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

    Grant Google Analytics Access

    \n
    \n
    \n

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

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

    Authenticate with Google:

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

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

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

    Provide your account information below:

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

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

    Email to grant access to:

    \n

    support@digitalposition.com

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

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

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

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Analytics\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Analytics\"][\"Full\"] = props.teamAccess[\"Google Analytics\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Analytics\"][\"Full\"] = \"0\";\n accessChecked[\"Google Analytics\"][\"Restricted\"] = props.teamAccess[\"Google Analytics\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleMerchantAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n if (props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\") {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant Google Merchant Access

    \n
    \n
    \n

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

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

    Email to grant access to:

    \n

    support@digitalposition.com

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

    Access level granted:

    \n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Merchant\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Merchant\"][\"Full\"] = props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Merchant\"][\"Full\"] = \"0\";\n accessChecked[\"Google Merchant\"][\"Restricted\"] = props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleMyBusinessAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Business\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Business\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Google Business\"][\"Restricted\"] === \"1\") || (props.teamAccess[\"Google Business\"][\"Full\"] === \"1\"))) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant Google Business Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Business. Please check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and\n will not perform any actions in regards to granting access to your account.\n

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

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

    \n
    \n
    \n
    \n \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Business\"][\"Restricted\"] = props.teamAccess[\"Google Business\"][\"Restricted\"] == \"0\" ? \"0\" : \"1\";\n setUserGrantAccess(!userGrantAccess);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Access level granted:

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

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

    \n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleSearchConsoleAccess(props) {\n const route = useContext(RouterContext);\n\n let tipImage = require(\"images/onboarding/domain.png\");\n tipImage = ;\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Search Console\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Search Console\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Google Search Console\"][\"Restricted\"] === \"1\") || (props.teamAccess[\"Google Search Console\"][\"Full\"] === \"1\")) && props.domainProperty !== undefined) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Google Search Console Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Search Console. Please check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference,\n and will not perform any actions in regards to granting access to your account.\n

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

    Authenticate with Google:

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

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

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

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

    \n
    \n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Full\"] = \"0\";\n setUserGrantAccess(!userGrantAccess);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Full\"] = props.teamAccess[\"Google Search Console\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Full\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Restricted\"] = props.teamAccess[\"Google Search Console\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n Property is a domain property? \n
    \n
    \n {\n let domainChecked\n if (props.domainProperty === undefined)\n {\n domainChecked = true\n }\n if (props.domainProperty === true)\n {\n domainChecked = undefined\n }\n if (props.domainProperty === false)\n {\n domainChecked = true\n }\n props.setDomainProperty(domainChecked);\n }}\n />\n
    \n
    \n {\n let domainChecked\n if (props.domainProperty === undefined)\n {\n domainChecked = false\n }\n if (props.domainProperty === true)\n {\n domainChecked = false\n }\n if (props.domainProperty === false)\n {\n domainChecked = undefined\n }\n props.setDomainProperty(domainChecked);\n }}\n />\n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Form, Table, Button } from \"react-bootstrap\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function MicrosoftAdsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n const [idProvided, setIdProvided] = useState(false);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const [accessGranted, setAccessGranted] = useState(\n props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\"\n );\n let example = require(\"images/onboarding/microsoft-example.png\");\n example = ;\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true && (props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\" || props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\")) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n // useEffect(() => {\n // if (props.microsoftAdsIds.length > 0) return null;\n // let newRow = {};\n // props.setMicrosoftAdsIds((rows) => [...rows, newRow]);\n // }, []);\n\n props.pageLocator();\n\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Microsoft Ads Access

    \n
    \n
    \n

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

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

    Authenticate with Microsoft:

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

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

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

    Provide your account information below:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n ID\n
    \n {\n props.setMicrosoftAdsIds([{ \"id\": e.target.value }]);\n }}\n id={`ob-microsoft-ads-id`}\n />\n
    \n
    \n
    \n \n
    \n\n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

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

    \n Note: Microsoft Ads account IDs must now be taken from the URL. Select the account from the initial list of accounts, then check the url for\n the \"aid\" parameter. The account id directly follows the = symbol.\n

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

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

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

    Please indicate access granted

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Microsoft Ads\"][\"Full\"] = props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Microsoft Ads\"][\"Restricted\"] = props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function ShopifyAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n const [radio, setRadio] = useState(false)\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && (radio === true)) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [accessGranted, setAccessGranted] = useState(\n jsDig([\"Shopify\", \"Restricted\"], props.teamAccess) == \"1\" || jsDig([\"Shopify\", \"Full\"], props.teamAccess) == \"1\"\n );\n const [urlProvided, setUrlProvided] = useState(false);\n\n let shopifyIcon = require(\"images/logos/shopify-icon.png\");\n shopifyIcon = ;\n\n return (\n <>\n \n \n
    \n

    Grant Shopify Access

    \n
    \n
    \n

    \n On this page you will grant access to Shopify, which requires a unique process to grant access. There are three steps below that include providing\n the client store URL, having access requested, and then the client granting said access.\n

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

    First, enter your Shopify store URL:

    \n \n
    \n\n \n \n props.setShopifyUrl(e.target.value)}\n required\n type=\"text\"\n />\n

    \n .myshopify.com\n

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

    \n Next you will need to grant {route.organization.name} access to the account. Check the boxes below to confirm they've been completed.\n

    \n
    \n
    \n

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

    \n
    \n
    \n
    \n setUrlProvided(!urlProvided)}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Shopify\"][\"Requested\"] = props.teamAccess[\"Shopify\"][\"Requested\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Shopify\"][\"Full\"] = \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n\n \n
    \n
    \n

    \n Will Shopify data be pulled utilizing all sales channels or only the online store?\n

    \n
    \n
    \n {props.setShopifyChannel(\"online_store\");\n setRadio(true)}}\n />\n {props.setShopifyChannel(\"overall\");\n setRadio(true)}}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function ShopifyAuthenticate(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [urlProvided, setUrlProvided] = useState(false);\n\n const [urlCopied, setUrlCopied] = useState(false);\n\n const getFullShopifyUrl = (url) => {\n if (url && url != \"\") {\n if (url.includes(\".myshopify.com\")) {\n return url;\n } else {\n return url + \".myshopify.com\";\n }\n } else {\n return false;\n }\n };\n\n const copyAuthUrl = () => {\n let authUrl = \"\";\n if (getFullShopifyUrl(props.shopifyUrl) == false) {\n return false;\n }\n const paramsObject = {\n shopify_url: getFullShopifyUrl(props.shopifyUrl),\n };\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/shopify-authenticate\",\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n authUrl = data.permission_url;\n },\n });\n\n /* Copy the text inside the text field */\n navigator.clipboard.writeText(authUrl);\n setUrlCopied(true);\n };\n\n const authenticateFunction = () => {\n if (getFullShopifyUrl(props.shopifyUrl) == false) {\n return false;\n }\n const paramsObject = {\n shopify_url: getFullShopifyUrl(props.shopifyUrl),\n };\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/shopify-authenticate\",\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n window.open(data.permission_url, \"_blank\");\n },\n });\n };\n\n let shopifyIcon = require(\"images/logos/shopify-icon.png\");\n shopifyIcon = ;\n const authenticateButton = (\n \n Authenticate\n {shopifyIcon}\n \n );\n\n const copyButton = (\n \n Copy install link  \n {urlCopied ? : }\n \n );\n\n return (\n <>\n \n \n \n
    \n

    Grant DataPulse Access to Shopify

    \n
    \n
    \n

    \n Now you will install the DataPulse Bridge to the client's Shopify store. This will allow DataPulse to connect and pull metrics and display them in the dashboards.\n

    \n
    \n
    \n

    {getFullShopifyUrl(props.shopifyUrl)}

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

    \n Authenticate your account with one of the two methods below. The green authenticate button will attempt to authenticate automatically,\n or click the blue button to copy the URL (then paste in your browser) to authenticate manually.\n

    \n
    \n
    \n {authenticateButton}\n {copyButton}\n
    \n \n
    \n \n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function TeamAccessIntro(props) {\n const route = useContext(RouterContext);\n let nextUrl;\n if (props.client_account.website_platform == 0) {\n nextUrl = \"/datapulse/onboarding/shopify_access\";\n } else {\n nextUrl =\n props.teamAccessChoices && props.teamAccessChoices[0] && props.teamAccessChoices[0] !== \"datafeedwatch_install\"\n ? `/datapulse/onboarding/${props.teamAccessChoices[0]}`\n : `/datapulse/onboarding/service_agreements_intro`;\n }\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n const completePages = Object.keys(props.teamAccess).filter((platform) => parseInt(props.teamAccess[platform][\"Exist\"]) == \"1\");\n if (completePages.length > 0) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n const platforms =\n\n props.enabled_services.ppc === true && props.enabled_services.seo === true\n ? [\"Google Analytics\", \"Google Ads\", \"Microsoft Ads\", \"Google Merchant\", \"Facebook Ads\", \"Tiktok Ads\", \"Youtube\", \"Google Search Console\", \"Google Business\"]\n : props.enabled_services.ppc === true && props.enabled_services.seo !== true\n ? [\"Google Analytics\", \"Google Ads\", \"Microsoft Ads\", \"Google Merchant\", \"Facebook Ads\", \"Tiktok Ads\", \"Youtube\"]\n : [\"Google Analytics\", \"Google Search Console\", \"Google Business\"];\n\n useEffect(() => {\n window.localStorage.setItem(\n \"teamChoices\",\n JSON.stringify(\n Object.entries(props.teamAccess)\n .filter((el) => el[0] !== \"SEMRush\")\n .filter((el) => el[1][\"Exist\"] === \"1\")\n .map((el) =>\n el[0] === \"DataFeedWatch\" ? el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n )\n .sort()\n )\n );\n props.setTeamAccessChoices(\n Object.entries(props.teamAccess)\n .filter((el) => el[0] !== \"SEMRush\")\n .filter((el) => el[1][\"Exist\"] === \"1\")\n .map((el) => (el[0] === \"DataFeedWatch\" ? el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_access\"))\n .sort()\n );\n }, [props.teamAccess]);\n\n // Need to complete pages in progress tracker that do not need to be set up\n const completePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/complete_pages\";\n let paramsObject = {\n client_account_id: props.client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Completed pages: \" + JSON.stringify(pages));\n },\n });\n };\n const incompletePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/incomplete_pages\";\n let paramsObject = {\n client_account_id: props.client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Incompleted pages: \" + JSON.stringify(pages));\n },\n });\n };\n console.log(\n Object.keys(props.teamAccess).filter(\n (platform) => parseInt(props.teamAccess[platform][\"Exist\"]) !== 1 && (platform != \"SEMRush\") & (platform != \"DataFeedWatch\")\n )\n );\n return (\n <>\n \n \n
    \n

    Next Up: Team Access

    \n
    \n
    \n

    \n On this page we'll need to select all of the platforms that the company has accounts with. Then we will go through each of these one at a time on\n the next few pages and provide information and ID's so that the marketing team can do what they do best. Now would be a good opportunity to pause\n and get in touch with anyone who may have this information handy, like company IT specialists and account managers.{\" \"}\n \n You can skip and come back to any of the upcoming sections, but we must stress that this may be detrimental to your teams work, and failing to\n provide this information could potentially impede progress and optimal results.\n \n

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

    \n Please select the platforms that the company will be utilizing that we either need to set-up OR be given access to:\n

    \n \n \n
    \n {platforms.map((platform, idx) => {\n return (\n
    \n {\n let accessChecked = props.teamAccess;\n const currentValue = accessChecked[platform][\"Exist\"] == \"1\";\n accessChecked[platform][\"Exist\"] = currentValue == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n );\n })}\n
    \n \n
    \n \n
    \n \n \n \n
    \n \n {\n let completePagesNames = Object.keys(props.teamAccess).filter(\n (platform) => parseInt(props.teamAccess[platform][\"Exist\"]) !== 1 && (platform != \"SEMRush\") & (platform != \"DataFeedWatch\")\n );\n\n !props.seo_section.enabled && completePagesNames.push(\"SEMRush\");\n let incompletePagesNames = Object.keys(props.teamAccess).filter((platform) => parseInt(props.teamAccess[platform][\"Exist\"]) == 1);\n let pageNames = completePagesNames.map((page) =>\n page == \"DataFeedWatch\" ? page.toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : page.toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n );\n let inCompletepageNames = incompletePagesNames.map((page) =>\n page == \"DataFeedWatch\" ? page.toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : page.toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n );\n\n completePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n incompletePages(inCompletepageNames.map((page) => `/datapulse/onboarding/${page}`));\n\n if (props.webPlatform !== 0) {\n completePages([`shopify_access`, `shopify_authenticate`].map((page) => `/datapulse/onboarding/${page}`));\n } else {\n incompletePages([`shopify_access`, `shopify_authenticate`].map((page) => `/datapulse/onboarding/${page}`));\n }\n }}\n />\n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function TiktokAdsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Tiktok Ads\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Tiktok Ads\"][\"Full\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Tiktok Ads\"][\"Full\"] == \"1\") || props.teamAccess[\"Tiktok Ads\"][\"Restricted\"] == \"1\") ) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n useEffect(() => {\n if (props.tiktokAdsIds.length > 0) return null;\n let newRow = {};\n newRow.frontId = uuidv4();\n newRow.label = \"\";\n newRow.id = \"\";\n props.setTiktokAdsIds((rows) => [...rows, newRow]);\n }, []);\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Tiktok Ads Access

    \n
    \n
    \n

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

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

    Authenticate with Tiktok:

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

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

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

    Tiktok Ads ID

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

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

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

    Please indicate access granted.

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

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

    \n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function YoutubeAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n const [accessGranted, setAccessGranted] = useState(props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Youtube\"][\"Full\"] == \"1\");\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true && (props.teamAccess[\"Youtube\"][\"Full\"] == \"1\" || props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\")) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant YouTube Access

    \n
    \n
    \n

    \n On this page you will grant access to YouTube. Please check\n the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and will not\n perform any actions in regards to granting access to your account.\n

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

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

    \n
    \n
    \n
    \n \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Standard\"] = props.teamAccess[\"Youtube\"][\"Standard\"] == \"1\" ? \"0\" : \"1\";\n setAccessGranted(!accessGranted);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Restricted\"] = \"0\";\n accessChecked[\"Youtube\"][\"Full\"] = props.teamAccess[\"Youtube\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Full\"] = \"0\";\n accessChecked[\"Youtube\"][\"Restricted\"] = props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

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

    \n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","const text = ['

    Virtual + In-Store Appointments. Book Today.

    ', '

    Free Domestic Shipping + Shop Our Sale.

    ', '

    Shop our Cluster Rings + Classic Bands

    ', '

    Read our Customer Reviews

    ', 'Free 2-day shipping for domestic orders valued over $500.'];\nlet counter = 0;\nconst elem = document.getElementById(\"top-bar\");\nconst inst = setInterval(change, 5000);\n\nfunction change() {\n elem.innerHTML = text[counter];\n counter++;\n if (counter >= text.length) {\n counter = 0;\n\n }\n}","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\nimport { capitalize } from \"lodash\";\nexport default function TrackSpecificACtionIds(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const sectionName = [\"Search\", \"Display\", \"Video\"];\n const sectionName2 = [\"Search\", \"Display\", \"Video\"];\n\n console.log(props.conversionActions.search.length)\n const [searchActive, setSearchActive] = useState(props.conversionActions.search.lengh > 0 ? false : true);\n const [displayActive, setDisplayActive] = useState(props.conversionActions.display.lengh > 0 ? false : true);\n const [videoActive, setVideoActive] = useState(props.conversionActions.video.lengh > 0 ? false : true)\n const [showBoxes, setShowBoxes] = useState(searchActive ? true : displayActive ? true : videoActive ? true : false);\n const [validated, setValidation] = useState(false);\nconsole.log(searchActive)\n const displayHelper = (section) => {\n section = section.toLowerCase();\n\n if (section === \"search\") {\n return searchActive;\n }\n if (section === \"display\") {\n return displayActive;\n }\n if (section === \"video\") {\n return videoActive;\n }\n };\n useEffect(() => {\n if (!(searchActive || displayActive || videoActive) && showBoxes) {\n setValidation(false);\n }\n });\n const conversionActionBox = (section) => {\n const sectionKey = section.toLowerCase();\n\n const conversionActions = props.conversionActions[sectionKey] ? props.conversionActions[sectionKey] : [];\n\n const [rows, setRows] = useState(conversionActions);\n\n const addNewRow = () => {\n let newActions = { ...props.conversionActions };\n let newRow = {\n conversion_type: \"exclusive\",\n conversion_id: \"\",\n name: \"\",\n };\n newActions[sectionKey].push(newRow);\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n const removeRow = (index) => {\n let newActions = { ...props.conversionActions };\n newActions[sectionKey].splice(index, 1);\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n const changeRow = (index, name, value) => {\n let newActions = { ...props.conversionActions };\n newActions[sectionKey][index][name] = value;\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n return (\n \n \n \n \n \n

    {section}

    \n \n
    \n
    \n {rows.map((conversionAction, idx) => {\n return (\n \n \n changeRow(idx, \"conversion_type\", e.target.value)}>\n \n \n \n \n \n changeRow(idx, \"name\", e.target.value)}\n />\n \n \n changeRow(idx, \"conversion_id\", e.target.value)}\n />\n \n \n removeRow(idx)} className=\"fas pb-1 fa-minus-circle\" style={{width: \"30px\"}}>\n \n \n );\n })}\n
    \n \n \n addNewRow()}>\n + Add\n \n \n \n \n \n );\n };\n\n return (\n <>\n \n \n
    \n

    Conversion Action ID Tracking

    \n
    \n
    \n

    Do you have any specific conversion action ID's to include or exclude for any PPC sub-services?

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

    \n Sometimes, clients have multiple conversion actions for their campaigns and we only need to focus on one. As a result, sometimes we need to\n specify which conversions to use for the \"conversions\" column in DataPulse. If you need to utilize a specific conversion action ID to track as\n the success metric for a sub-service, you may enter it in here.

    \n

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

    \n \"Conversion\n
    \n }\n inline={true}\n />{\" \"}\n What does this mean?\n \n
    \n {\n setShowBoxes(true);\n setValidation(true);\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n setDisplayActive(false)\n setSearchActive(false)\n setVideoActive(false)\n }}\n />\n
    \n \n
    \n
    \n \n \n

    For which sub-services?

    \n \n \n
    \n {sectionName.map((section, idx) => {\n section = section.toLowerCase();\n\n return (\n
    \n {section === \"search\" ? (\n {\n setValidation(true);\n setSearchActive(!searchActive);\n }}\n />\n ) : section === \"display\" ? (\n {\n setDisplayActive(!displayActive);\n setValidation(true);\n }}\n />\n ) : section === \"video\" ? (\n {\n setVideoActive(!videoActive);\n setValidation(true);\n }}\n />\n ) : undefined}\n
    \n );\n })}\n
    \n \n
    \n \n
    \n \n \n \n {sectionName2.map((section, idx) => {\n return (\n \n {conversionActionBox(section)}\n \n );\n })}\n \n \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function Website({\n pageLocator,\n primarySite,\n setPrimarySite,\n additionalWebs,\n handleOnChange,\n handleDelete,\n addRow,\n handleSelect,\n webPlatform,\n clientAccountId,\n submitForm,\n onboarding_progress,\n}) {\n pageLocator();\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const regex = \"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)\"\n\n // Need to complete pages in progress tracker that do not need to be set up\n const completePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/complete_pages\";\n let paramsObject = {\n client_account_id: clientAccountId,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Completed pages: \" + JSON.stringify(pages));\n },\n });\n };\n const incompletePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/incomplete_pages\";\n let paramsObject = {\n client_account_id: clientAccountId,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Incompleted pages: \" + JSON.stringify(pages));\n },\n });\n };\n\n return (\n <>\n \n \n

    Website

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

    Website/Domain Details

    \n \n
    \n \n \n

    \n Navigate to your website in a browser, and copy and paste the URL directly from the address bar into the field below. To add\n additional websites or subdomains (ie. if your primary website is \"example.com\" and you need to add \"shop.example.com\"), click the 'Add\n subdomain' button to create a new field and follow the same process in the new field with every entry.\n

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

    Primary Website

    \n
    \n \n
    \n \n \n setPrimarySite(e.target.value)}\n type=\"url\"\n pattern=\"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)\"\n required\n />\n \n \n \n
    \n \n \n

    Additional websites/subdomains

    \n
    \n\n {additionalWebs.map((website, index) => {\n return (\n \n handleOnChange(e, index)}\n />\n\n \n \n );\n })}\n\n \n \n \n
    \n \n
    \n \n \n

    Website platform

    \n \n
    \n \n \n

    What platform is being used?

    \n \n
    \n \n \n \n handleSelect(e.target.value)}\n defaultValue={webPlatform}\n required>\n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n {\n // Some pages won't be necessary to fill out\n let pageNames = [\"shopify_access\", \"shopify_authenticate\"];\n if (webPlatform != \"0\") {\n completePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n }\n else {\n incompletePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n }\n }}\n />\n \n \n \n \n \n );\n}\n","export default (onboarding_progress) => {\r\n let nextPage = {};\r\n if (onboarding_progress && onboarding_progress.length > 0) {\r\n const unresolvedPages = onboarding_progress.filter((page) => page.completed == false);\r\n const currentIndex = onboarding_progress.findIndex((page) => page.url == window.location.pathname);\r\n\r\n nextPage.url = \"/datapulse/onboarding/complete\";\r\n // Find next unresolved page starting from current index\r\n for (let i = currentIndex + 1; i < onboarding_progress.length; i++) {\r\n if (onboarding_progress[i].completed == false) {\r\n nextPage = onboarding_progress[i];\r\n // Break out of loop\r\n i = onboarding_progress.length;\r\n }\r\n }\r\n\r\n // Override last page if not actually complete\r\n if (nextPage.url == \"/datapulse/onboarding/complete\") {\r\n // Greater than 2 because counting current page & /datapulse/onboarding/complete is also a page\r\n if (unresolvedPages.length >= 2) {\r\n nextPage.url = \"/datapulse/onboarding/not_complete\";\r\n }\r\n }\r\n } else {\r\n // If onboarding_progress is nil or an empty array then this client hasn't even started onboarding yet and they requested the url directly. Next page should be intro\r\n nextPage.url = \"/datapulse/onboarding/company_type\";\r\n }\r\n return nextPage;\r\n};\r\n","import React from \"react\";\nimport {Row, Container, Col, Form, Button, Modal, Table } from \"react-bootstrap\";\n\n\nexport default function DeleteOrgModal(props) {\n return (\n props.setShowDeleteModal(false)} style={{ textAlign: \"center\" }}>\n
    \n \n {\" \"}\n \n \n

    Are you sure you want to delete?

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

    \n WARNING!\n

    \n

    \n Be absolutely sure that this is what you are intending to do. If you delete this organization, every client company within this org will be deleted as well. There is no way to restore this data once it is deleted.\n

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

    \n If you are absolutely sure you want to proceed, type '{ props.deleteTarget.name }' below and click delete.\n

    \n \n
    \n \n \n {\n props.setDeleteLocked(e.target.value != props.deleteTarget.name)\n }} \n />\n \n \n \n \n props.setShowDeleteModal(false)}\n >\n Cancel\n \n props.deleteOrg(props.deleteTarget)}\n >\n Delete { props.deleteTarget.name }\n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n )\n}","import React, { useState, useEffect, useRef } from \"react\";\nimport {Row, Container, Col, Form, Button, Modal, Table } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport DeleteOrgModal from \"./DeleteOrgModal\";\n\n\nexport default function OrgStatus(props) {\n const createNewOrgUrl = \"/datapulse/org-management/new-org\"\n const [showCreateModal, setShowCreateModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [deleteTarget, setDeleteTarget] = useState({});\n const [deleteLocked, setDeleteLocked] = useState(true);\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n const confirmDelete = (org) => {\n setDeleteTarget(org)\n setShowCreateModal(false)\n setShowDeleteModal(true)\n }\n\n const deleteOrg = (org) => {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/org-management/remove-org/\" + org.id,\n });\n }\n\n return (\n <>\n

    Organization Management

    \n \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n {props.orgs.map((org) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    NameCreation Date
    {org.name}{new Date(Date.parse(org.created_at)).toLocaleDateString()}\n \n View\n \n \n
    \n
    \n
    \n
    \n setShowCreateModal(false)} style={{ textAlign: \"center\" }}>\n
    \n \n {\" \"}\n \n \n

    What is the name of the organization?

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

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

    \n \n
    \n \n \n
    \n \n \n \n \n \n Next\n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n );\n}\n\n","import React, { useState, useEffect } from \"react\";\nimport {Row, Container, Col, Form } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\n\n\n\nexport default function Customizations(props) {\n\n return (\n \n \n \n \n

    CUSTOMIZATIONS PAGE

    \n \n
    \n
    \n
    \n );\n}\n\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {Row, Container, Col, Form, Button, Modal } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport SaveChanges from \"./SaveChanges\";\nimport DeleteOrgModal from \"organization_management/DeleteOrgModal\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function OrgInfo(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const formSubmitUrl = `/datapulse/organization`;\n let defaultLogo = require(\"images/organizations/orgLogo.png\");\n const [fileName, setFileName] = useState(\"No File Chosen\");\n const inputRef = useRef();\n const [imageURL, setImageURL] = useState(props.logo ? props.logo : `/datapulse${defaultLogo}`);\n let OrgLogo = ;\n let upload = require(\"images/organizations/upload.png\");\n upload = ;\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [deleteTarget, setDeleteTarget] = useState({});\n const [deleteLocked, setDeleteLocked] = useState(true);\n const [zIndexFirst, setZIndexFirst] = useState (2500)\n const [show, setShow] = useState(false);\n const [show2, setShow2] = useState(false);\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const [toggledUsers, setToggledUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState(Object.entries(props.org_users).length > 0 ? Object.entries(props.org_users).map((el) => el[1]).filter(item => item.id === props.owner.id)[0].email: [])\n const unSelectedUsers = Object.entries(props.org_users).map((el) => el[1]).filter(item => item.role === \"admin\").map((user) => user.email)\n const [visibleUsers, setVisibleUsers] = useState([...unSelectedUsers]);\n const [newOwnerId, setNewOwnerId] = useState()\n\n let caution = require(\"images/icons/exclaim-triangle.png\");\n caution = \n \n\n const handleShow2 = () => {\n setShow2(true);\n setZIndexFirst(1000)\n }\n\n const handleClose2 = () => {\n setShow2(false)\n setZIndexFirst(3001)\n }\n\n // Update the list of users you can select from to be only unselected ones\n useEffect(() => {\n setVisibleUsers(Object.entries(props.org_users).map((el) => el[1]).filter(item => item.role === \"admin\" && item.id !== props.owner.id).map((user) => user.email));\n }, [selectedUsers]);\n \n // Update who the new owner should be whenever a new selection is toggled\n useEffect(() => {\n const capturedId = Object.entries(props.org_users).map((el) => el[1]).filter(item => item.email === toggledUsers[0]).map((user) => user.id)[0]\n setNewOwnerId(capturedId)\n }, [toggledUsers]);\n \n const toggleUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...toggledUsers];\n if (selection.includes(userEmail)) {\n selection.splice(selection.indexOf(userEmail), 1);\n } \n else {\n selection.pop()\n selection.push(userEmail);\n }\n setToggledUsers(selection);\n };\n \n const selectUsers = () => {\n props.setServiceAccount && props.setServiceAccount([...selectedUsers, ...toggledUsers]);\n setSelectedUsers([...selectedUsers, ...toggledUsers]);\n setToggledUsers([]);\n handleClose();\n };\n \n const handleCancel = () => {\n setToggledUsers([]);\n handleClose();\n };\n \n const searchUsers = (e) => {\n let filter = e.target.value.toLowerCase();\n let matchedUsers = [];\n unSelectedUsers.forEach((userEmail) => {\n let user = props.org_users[userEmail];\n // If the user is not subscribed already && their name or email matches input\n if (!selectedUsers.includes(userEmail) && (user.name.toLowerCase().includes(filter) || userEmail.toLowerCase().includes(filter))) {\n matchedUsers.push(userEmail);\n }\n });\n setVisibleUsers(matchedUsers);\n };\n \n const toggledUsersList = toggledUsers.map((userEmail) => {\n let user = props.org_users[userEmail];\n return (\n toggleUser(e)}>\n {user.name}\n \n \n );\n });\n\n \n\n const confirmDelete = (org) => {\n setDeleteTarget(org)\n setShowDeleteModal(true)\n }\n\n const deleteOrg = (org) => {\n props.handleOrgDelete()\n }\n\n\n return (\n <>\n
    \n \n \n \n {/* */}\n \n \n \n

    Organization Information

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

    Organization Logo

    \n
    \n
    \n {OrgLogo}\n
    \n

    inputRef.current.click()} className=\"plus-sign\">+

    \n
    \n
    \n
    \n {\n if (e.target.files[0].size > 8000000) {\n alert(\"Image must be less than 8MB. Consider use another image or compress this one.\");\n }\n setImageURL(URL.createObjectURL(e.target.files[0]));\n setFileName(e.target.files[0].name);\n }}\n />\n \n
    \n
    \n
    {fileName}
    \n
    \n
    \n

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

    \n
    \n \n \n

    Basic Info

    \n \n \n
    \n Organization Name\n
    \n \n
    \n \n \n \n \n \n \n \n
    \n Location\n
    \n \n
    \n \n \n \n \n \n \n \n
    \n Type{\" \"}\n
    \n \n \n \n \n \n \n
    \n {props.isOwner &&\n
    \n \n \n

    Owner Actions:

    \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n }\n \n \n

    Description

    \n \n \n \n \n \n \n
    \n \n
    \n \n Select new organization owner\n \n \n \n \n
    \n \n searchUsers(e)} placeholder=\"Enter a name or email address...\" />\n
    \n \n
    \n \n \n
      \n {visibleUsers.map((userEmail) => {\n let user = props.org_users[userEmail];\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n let toggled = toggledUsers.includes(userEmail) ? \"toggled\" : undefined;\n return (\n \n
    • toggleUser(e)} data-email={userEmail} className={toggled}>\n
      \n
      \n
      \n {avatar}\n
      \n \n
      \n
      \n  {user.name}\n  {userEmail}\n
      \n
      \n
    • \n
      \n );\n })}\n
    \n \n
    \n
    \n \n
    \n

    \n Transfer ownership to:\n

    \n {toggledUsersList}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n {caution}{\" \"}ARE YOU SURE?\n \n
    \n \n \n \n

    By relinquishing ownership you will lose access to ownership features

    \n \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n {/*
    */}\n \n \n \n );\n}\n\n","import React, { useState } from \"react\";\nimport { Row, Col, Form, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport OrgPickerModal from \"organizations/OrgPickerModal\"\n\nexport default function OrgPicker(props) {\n let orgPic = ;\n let dpLogo = require(\"images/logos/dp-logo-white.png\");\n dpLogo = ;\n const [show, setShow] = useState(false);\n const handleShow = () => setShow(true);\n const isClickable = (props.organizations && (props.organizations.length > 1)) || props.god_or_admin\n let orgName = props.selected_org.name\n if (orgName.length > 20) {\n orgName = orgName.slice(0,20) + \"...\"\n }\n\n return (\n \n {(props.organizations && props.organizations.length > 0) && (\n \n )}\n \n
    \n \n \n \n {props.logo ? orgPic : dpLogo} {orgName}\n \n {isClickable ?\n \n\n\n \n\n \n : <>\n }\n \n \n {isClickable ?\n
    \n {props.organizations.length > 1 &&\n

    \n Change Organization\n

    \n }\n {\n props.god_or_admin &&\n\n \n Organization Settings\n \n }\n
    \n : <>\n }\n
    \n \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Modal, Form, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function OrgPickerModal(props) {\n const [selfShow, setSelfShow] = useState(true)\n const changeOrg = () => {\n const selectedOrgId = $(\"#org-picker\").val();\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/organization/select-organization/\",\n data: {\n org_id: selectedOrgId,\n },\n });\n };\n\n return (\n {} : () => props.setShow(false)}>\n \n Change Organization\n \n \n \n \n

    Select organization to view:

    \n \n \n {props.organizations.map((org) => {\n return (\n \n \n \n );\n })}\n \n \n
    \n \n {props.force_selection != true && (\n \n \n \n )}\n \n {\n if (props.force_selection) {\n setSelfShow(false)\n } else {\n props.setShow(false)\n }\n changeOrg();\n }}\n variant=\"success\">\n Change Organization\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Form } from \"react-bootstrap\";\nimport SaveChanges from \"./SaveChanges\";\nimport updateParams from \"utils/updateParams.js\";\nimport Users from \"./Users\"\nimport Customizations from \"./Customizations\"\nimport OrgInfo from \"./OrgInfo\"\n\nexport default function Organizations(props) {\n const [tabLocation, setTabLocation] = useState(\"orgInfo\");\n const [isOwner, setIsOwner] = useState((props.current_user.id === props.owner.id) || props.current_user_is_god)\n\n const servicePicker = (searchParams) => {\n if (searchParams.toString().includes(\"customizations\")) {\n return \"customizations\"\n }\n if (searchParams.toString().includes(\"users\")) {\n return \"users\"\n }\n }\n\n const handleOwnershipTransfer = (user_id) => {\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/transfer-ownership/\",\n\t\t\tdata: {\n\t\t\t\torg_id: props.org.id,\n user_id: user_id\n\t\t\t},\n\t\t});\n }\n\n const handleOrgDelete = () => {\n // Nothing on this url yet, just psuedocode\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/delete/\",\n\t\t\tdata: {\n\t\t\t\torg_id: props.org.id\n\t\t\t},\n\t\t});\n }\n \n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"orgInfo\";\n }\n if (page === \"customizations\") {\n setTabLocation(page);\n updateParams(\"page\", page);\n updateParams(\"sub_page\", servicePicker(searchParams));\n }\n else {\n setTabLocation(page);\n updateParams(\"page\", page);\n }\n }, []);\n\n const selectTab = (key) => {\n if (key === \"services\") {\n setTabLocation(key);\n updateParams(\"page\", key);\n updateParams(\"sub_page\", servicePicker(searchParams));\n }\n else {\n\n setTabLocation(key);\n updateParams(\"page\", key);\n }\n };\n\n return (\n
    \n \n selectTab(k)}>\n {/* */}\n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n {/* */}\n
    \n );\n}\n","import React, { useRef, useState, useEffect } from \"react\";\nimport { Button, Col, Row } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\n\n\n\nexport default function SaveChanges(props) {\n return (\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport {Row, Container, Col, Form, Table, Button } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport SaveChanges from \"./SaveChanges\";\n\n\n\nexport default function Users(props) {\nconst authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [filteredInput, setFilteredInput] = useState(\"\")\n const departments = [\"no_department\", \"seo_department\", \"ppc_department\", \"both_departments\", \"dev_department\"]\n const roles = [\"nobody\", \"client\", \"employee\", \"specialist\", \"manager\", \"admin\"]\n const formSubmitUrl = `/datapulse/organization/${props.org.id}/user-detail`;\n\n\n return (\n
    \n \n \n \n \n \n \n

    User Management

    \n \n
    \n \n \n
    \n Filter:\n setFilteredInput(e.target.value) } value={filteredInput} />\n
    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n { props.isOwner && }\n \n \n \n {\n Object.entries(props.org_users).map((el) => el[1]).sort((a,b) => a.id -b.id).map((user, idx) => {\n const tempName = user.name.toLowerCase()\n const tempEmail = user.email.toLowerCase()\n console.log(user.role)\n const tempRole = user.role && 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, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function App(props) {\r\n const dashboardUrl = `/datapulse/shopify/app/dashboard?shop=${props.shop}`\r\n const teamUrl = `/datapulse/shopify/app/team?shop=${props.shop}`\r\n\r\n return (\r\n \r\n \r\n \r\n

    With this app installed on your shopify store, Digital Position will be able to pull your performance data and display it in your metrics dashboards on DataPulse.

    \r\n
    \r\n \r\n \r\n

    DataPulse Bridge is successfully Connected to your store.

    \r\n

    It was installed on \r\n { props.shopify_install.updated_at.split(\"T\")[0] }\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n

    To see the metrics we have pulled from your store click the button below.

    \r\n \r\n
    \r\n
    \r\n \r\n \r\n

    See your team members and get in touch.

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function Dashboard(props) {\r\n const indexUrl = `/datapulse/shopify/app?shop=${props.shop}`\r\n const breadcrumbs = [{content: 'DataPulse Bridge by Digital Position', url: indexUrl}];\r\n\r\n return (\r\n \r\n \r\n \r\n {props.client_account ? (\r\n <>\r\n \r\n

    Your data was last pulled successfully on: \r\n { props.last_updated ? props.last_updated.split(\"T\")[0] : \"Never\" }\r\n

    \r\n
    \r\n \r\n

    Your performance for the current month is:

    \r\n
    \r\n \r\n \r\n Shopify Revenue: ${ jsDig([\"shopify_revenue\", \"raw\"], props.cc_data) }\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n

    Even though you have successfully installed the DataPulse Bridge shopify app, it looks like your store ({props.shop}) hasn't been configured in DataPulse yet. DataPulse is where your real dashboards live, but you may see the data we are pulling from Shopify on this page once we have finished configuring your account. Reach out to your Digital Position representative to address this issue.

    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function Team(props) {\r\n const indexUrl = `/datapulse/shopify/app?shop=${props.shop}`\r\n const breadcrumbs = [{content: 'DataPulse Bridge by Digital Position', url: indexUrl}];\r\n\r\n return (\r\n \r\n \r\n \r\n {props.client_account ? (\r\n <>\r\n \r\n Account Leads:\r\n {(props.account_leads && props.account_leads.length > 0) ? (\r\n <>\r\n \r\n {props.account_leads.map((user) => {\r\n return (\r\n <>\r\n \r\n Name: {`${user.first_name} ${user.last_name}`},\r\n Phone: {(user.phone_number && user.phone_number != \"\") ? user.phone_number : \"Not set\"},\r\n Role: {(user.job_title && user.job_title != \"\") ? user.job_title : \"Not set\"}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n ) : (\r\n <>\r\n

    After your account is configured, account leads & contact information will appear here.

    \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n Account Supports:\r\n {(props.account_supports && props.account_supports.length > 0) ? (\r\n <>\r\n \r\n {props.account_supports.map((user) => {\r\n return (\r\n <>\r\n \r\n Name: {`${user.first_name} ${user.last_name}`},\r\n Phone: {(user.phone_number && user.phone_number != \"\") ? user.phone_number : \"Not set\"},\r\n Role: {(user.job_title && user.job_title != \"\") ? user.job_title : \"Not set\"}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n ) : (\r\n <>\r\n

    After your account is configured, account supports & contact information will appear here.

    \r\n \r\n )}\r\n
    \r\n \r\n ) : (\r\n <>\r\n \r\n

    Even though you have successfully installed the DataPulse Bridge shopify app, it looks like your store ({props.shop}) hasn't been configured in DataPulse yet. You can see complete data about the Digital Position employees who are assisting your marketing efforts by going to DataPulse, but you may see basic contact information about them on this page once we have finished configuring your account. Reach out to your Digital Position representative to address this issue.

    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React from \"react\";\nimport UserAccessTable from \"user_access/UserAccessTable\";\nimport UserNewForm from \"user_access/UserNewForm\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport Form from \"react-bootstrap/Form\";\n\nclass UserAccess extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n users: [],\n };\n }\n\n \n componentDidMount() {\n const users = this.props.users\n const userInfo = Object.values(users)\n this.setState({\n users: userInfo.sort((a, b) => a.name.localeCompare(b.name)),\n });\n $(\".collapser\").on(\"click\", function () {\n $(this).next(\".collapse\").collapse(\"toggle\");\n var icon = $(this).find(\".fas\");\n if (icon.hasClass(\"fa-sort-up\")) {\n icon.removeClass(\"fa-sort-up\").addClass(\"fa-sort-down\");\n } else {\n icon.removeClass(\"fa-sort-down\").addClass(\"fa-sort-up\");\n }\n });\n }\n\n deleteUser(user) {\n $.ajax({\n url: \"/datapulse/users/\" + user.id,\n type: \"delete\",\n });\n }\n\n removeUser(user, org_id) {\n console.log(user, org_id)\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/remove-user/\",\n\t\t\tdata: {\n\t\t\t\torganization_id: org_id,\n user_id: user.id\n\t\t\t},\n\t\t});\n }\n\n\n searchUsers(e) {\n let searchString = e.target.value.toLowerCase();\n let newUsers = [];\n this.props.users_array.forEach((u) => {\n if ((u.first_name + \" \" + u.last_name).toLowerCase().includes(searchString) || u.email.toLowerCase().includes(searchString)) {\n newUsers.push(u);\n }\n });\n\n this.setState({\n users: newUsers,\n });\n }\n\n render() {\n return (\n <>\n
    \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
    \n \n );\n }\n}\n\nexport default UserAccess;\n","import React from 'react'\n\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport Table from 'react-bootstrap/Table';\nimport Form from 'react-bootstrap/Form';\nimport Button from 'react-bootstrap/Button';\nimport UserAccessTableButtons from 'user_access/UserAccessTableButtons'\nimport UserRole from 'utils/UserRole'\nimport UserDepartment from 'utils/UserDepartment'\n\nclass UserAccessTable extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n <>\n
    \n
    \n
    {this.props.tableName}
    \n
    \n
    \n

    Collapse Section  0 ? \" fa-sort-up\" : \" fa-sort-down\")}>

    \n
    \n
    0 ? \" show\" : \"\")}>\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.props.users.map((user) => {\n return (\n \n \n \n \n \n \n \n \n )\n })\n }\n \n
    ID#NameEmailRoleDepartment
    {user.id}{user.name}{user.email}\n
    \n {\n this.props.permissions.includes(user.role) && (\n \n )\n }\n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default UserAccessTable;\n","import React from 'react';\nimport 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 \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
    \n\t\t
    \n\t);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t{props.label}\n\t\t\t\n\t\t
    \n\t);\n}\n","import * as React from \"react\";\nimport { Button } from \"react-bootstrap\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport { Row } from \"react-bootstrap\";\nimport { ExclamationCircle } from \"react-bootstrap-icons\";\nexport default function DataPullSavePopUp(props) {\n return (\n
    \n props.handleClose()} aria-labelledby=\"alert-dialog-title\">\n \n   Important: Initiating Data Pull\n \n
    setOpen(false)} style={{ position: \"absolute\", right: \"5px\", cursor: \"pointer\" }}>\n \n \n \n
    \n \n

    \n You have requested to initiate a data pull, or changes made on this page would require a data pull to proceed.\n

    \n

    \n A data pull can take up to several hours and you will not be able to access or make changes to this account's associated configuration pages until\n the pull is finished. Please proceed with full certainty!\n

    \n
    \n
    \n props.handleClose()}\n style={{\n backgroundColor: \"#3291c1\",\n paddingTop: \"8px\",\n paddingBottom: \"8px\",\n paddingLeft: \"22px\",\n paddingRight: \"22px\",\n }}>\n Hold on, go back\n \n {\n props.manualDataPull();\n if (props.onboarding == true) {\n setTimeout(() => props.submitForm(props.nextPage), 1000);\n }\n else {\n props.submitForm();\n }\n }}\n style={{\n backgroundColor: \"#42ba96\",\n paddingTop: \"8px\",\n paddingBottom: \"8px\",\n paddingLeft: \"22px\",\n paddingRight: \"22px\",\n }}\n autoFocus>\n Save changes and initiate data pull\n \n
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport Datepicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nclass DayPicker extends React.Component {\n changeDate(value) {\n let date = new Date(value).yyyymmdd();\n const url = window.location.origin + window.location.pathname + \"?date_selection=\" + date;\n window.location = url;\n }\n render() {\n let startDate = Date.parse(new Date(this.props.startDate).yyyymmdd());\n let minDate = Date.parse(new Date(\"2019-01-01\").yyyymmdd());\n return (\n <>\n
    \n \n
    \n \n );\n }\n}\n\nexport default DayPicker;\n","import React from \"react\";\n\nclass DefaultAvatar extends React.Component {\n chooseColor(firstLetter, secondLetter) {\n // Need to use something to generate colors since some users don't have full names\n let firstInitial = firstLetter != \"\" ? firstLetter : \"a\";\n let secondInitial = secondLetter != \"\" ? secondLetter : \"a\";\n const colors = [\n { text: \"#2f6051\", bg: \"#47bb98\" },\n { text: \"#55403b\", bg: \"#d97358\" },\n { text: \"#c7f7f7\", bg: \"#2e93c6\" },\n { text: \"#bcdff2\", bg: \"#604bc6\" },\n { text: \"#f2cfbc\", bg: \"#ac3d4d\" },\n { text: \"#bbb5ad\", bg: \"#474857\" },\n { text: \"#7fa7b5\", bg: \"#1a4a77\" },\n { text: \"#6f5d2b\", bg: \"#dbb13b\" },\n { text: \"#4ecac3\", bg: \"#2e6661\" },\n { text: \"#608ac1\", bg: \"#481f6c\" },\n ];\n // Get first letters distance from 'a'\n let firstModifier = firstInitial.charCodeAt(0) - 97;\n // Invert the second modifier to get a more 'random' result\n let secondModifier = (secondInitial.charCodeAt(0) - 97) * -1 + 25;\n let finalModifier = (firstModifier + secondModifier) / 2;\n let optionsRatio = colors.length / 26; // 0.38461538461538464\n let chosenIndex = Math.round(finalModifier * optionsRatio) - 1;\n if (chosenIndex < 0) chosenIndex = 2;\n return colors[chosenIndex];\n }\n\n render() {\n let width = this.props.dim.split(\"x\")[0];\n let height = this.props.dim.split(\"x\")[1];\n let firstName = Number.isInteger(this.props.name) ? String(this.props.name)[0] : this.props.name.split(\" \")[0];\n let lastName = Number.isInteger(this.props.name) ? String(this.props.name % 10) : this.props.name.split(\" \")[1];\n let firstInitial = firstName ? firstName.charAt(0).toLowerCase() : \"\";\n let secondInitial = lastName ? lastName.charAt(0).toLowerCase() : \"\";\n let color = this.chooseColor(firstInitial, secondInitial);\n\n if (this.props.alertCounter) {\n if (Number.isInteger(this.props.name) && this.props.name >= 10) {\n firstInitial = \"9\";\n secondInitial = \"+\";\n } else {\n secondInitial = \"\";\n }\n }\n return (\n \n \n \n {firstInitial.toUpperCase() + secondInitial.toUpperCase()}\n \n \n );\n }\n}\n\nexport default DefaultAvatar;\n","import React from 'react'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\n\nclass LeftIndent extends React.Component {\n render() {\n return (\n \n \n {this.props.children}\n \n \n );\n }\n}\n\nexport default LeftIndent;\n","\nimport React from 'react';\nimport ChartGoal from 'charts/ChartGoal'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport currencyConverter from 'utils/currencyConverter'\n\nclass Metric extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n\n function addCommasToNumber(input) {\n return input.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '$&,') + (value.length == 2 ? '.' + value[1] : '')\n }\n\n const conversion = (typeof (this.props.baseCurrency) != \"undefined\") && (this.props.baseCurrency != this.props.displayCurrency)\n let value = this.props.value ? this.props.value : 0;\n\n if (conversion == true && !this.props.noConvert) {\n value = currencyConverter(value, this.props.baseCurrency, this.props.displayCurrency)\n }\n\n\n if (typeof value == 'string')\n value = parseFloat(value)\n\n if (this.props.precision != null && this.props.precision != undefined) {\n value = value.toFixed(this.props.precision);\n }\n\n if (this.props.commas) {\n value = value.toString().split('.')\n value = addCommasToNumber(value[0])\n }\n\n value = Number.isFinite(parseFloat(value)) ? value.toString() : \"\"\n\n let prefix = this.props.prefix ? this.props.prefix : '';\n let suffix = this.props.suffix ? this.props.suffix : '';\n if (this.props.client == \"IWA Wine\") {\n prefix = \"\"\n suffix = \"x\"\n }\n\n\n let finalValue = `${prefix}${value}${suffix}`\n finalValue = finalValue.replace('$-', '-$')\n\n return (\n <>\n {\n `${finalValue}`\n }\n \n )\n }\n\n}\n\nexport default Metric;\n","import React from \"react\";\nimport Datepicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nclass MonthPicker extends React.Component {\n changeDate(value) {\n let date = new Date(value).yyyymmdd();\n let searchParams = new URL(location.href).searchParams;\n const url = this.props.section === \"SEO\" ? `${window.location.origin + window.location.pathname + \"?date_selection=\" + date}` : `${window.location.origin + window.location.pathname + `?page=${searchParams.get(\"page\")}` + \"&date_selection=\" + date}`\n window.location = url;\n }\n render() {\n let startDate = Date.parse(new Date(this.props.startDate).yyyymmdd());\n let minDate = Date.parse(new Date(\"2019-01-01\").yyyymmdd());\n return (\n <>\n
    \n \n
    \n \n );\n }\n}\n\nexport default MonthPicker;\n","import React, { useState } from \"react\";\nimport onClickOutside from \"react-onclickoutside\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nfunction NumberDropdown(props) {\n const sections = [\n [\"1\", \"button-1\"],\n [\"2\", \"button-2\"],\n [\"3\", \"button-3\"],\n [\"4\", \"button-4\"],\n ];\n const index = props.permission ? props.permission : 1;\n const [open, setOpen] = useState(false);\n const [currentSection, setCurrentSection] = useState(sections[index - 1]);\n NumberDropdown[`handleClickOutside_` + props.item] = () => setOpen(false);\n\n const handleChange = (section) => {\n setCurrentSection([section[0], section[1]]);\n if (props.customPermissions && props.setCustomPermissions) {\n let newRecipients = [...props.customPermissions];\n newRecipients[props.idx].permission = section[0];\n props.setCustomPermissions(newRecipients);\n }\n };\n\n const toggle = () => setOpen(!open);\n return (\n
    \n
    \n
    toggle(!open)}>\n
    \n {currentSection[0]}\n {open ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n {sections.map((section) => {\n return (\n
    handleChange(section)} className=\"d-flex pointer\" key={uuidv4()}>\n
    \n {section[0] === \"1\" ? (\n 1\n ) : section[0] === \"2\" ? (\n 2\n ) : section[0] === \"3\" ? (\n 3\n ) : section[0] === \"4\" ? (\n 4\n ) : undefined}\n
    \n
    \n );\n })}\n \n
    \n
    \n
    \n
    \n );\n}\n\nconst clickOutsideConfig = {\n handleClickOutside: ({ props }) => NumberDropdown[\"handleClickOutside_\" + props.item],\n};\n\nexport default onClickOutside(NumberDropdown, clickOutsideConfig);\n","import React, { useState } from \"react\";\nimport { Row, Col, Modal, Form, Button } from \"react-bootstrap\";\nimport OrgPickerModal from \"organizations/OrgPickerModal\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function ProfileDropdown(props) {\n let logout = require(\"images/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 // :nobody, :client, :employee, :specialist, :manager, :admin\n switch (role) {\n case \"admin\":\n return \"Admin\";\n case \"manager\":\n return \"Full\";\n case \"specialist\":\n return \"Standard\";\n case \"employee\":\n return \"Restricted\";\n case \"client\":\n return \"Client\";\n default:\n return \"Nobody\";\n }\n };\n let dropdownArrow = require(\"images/lite/icons/chevron-down.png\");\n dropdownArrow = ;\n\n return (\n
    \n {(props.organizations && props.organizations.length) > 0 && props.current_user_is_god && (\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

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

    \n \n
    \n \n \n

    {getRoleTitle(jsDig([\"role\"], userOrgDetail))}

    \n \n
    \n \n
    \n \n \n
    \n {props.organizations.length > 1 && (\n

    \n Change Organization\n

    \n )}\n {(getRoleTitle(jsDig([\"role\"], userOrgDetail)) === \"Admin\" || props.current_user_is_god) && (\n \n Organization Settings\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

    \n
    \n {(getRoleTitle(jsDig([\"role\"])) == \"Admin\" || props.current_user_is_god) && (\n <>\n

    Admin

    \n \n User Access\n \n

    \n \n Client Management\n \n

    \n \n API Access\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","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) => {\n // This function is used by both LiteLineChart and LiteMetricTable\n // subHeader is only used by LiteMetricTable\n const monetaryMetrics0Precision = [\"spend\", \"revenue\"]\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 // All other metrics are standard metrics with 0 precision\n\n if (value === undefined || value === null) {\n return \"\";\n }\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n if (subHeader == \"Y/Y\") {\n suffix = \"%\";\n } else {\n if (standardMetrics2Precision.includes(metric)) {\n precision = 2;\n }\n if (percentageMetrics2Precision.includes(metric)) {\n precision = 2;\n suffix = \"%\";\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 }\n if (subHeader == \"Diff\") {\n if (value > 0) {\n prefix = \"+\" + prefix;\n }\n }\n\n value = parseFloat(value);\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 unless the decimals would just be \"00\"\n value = value.toFixed(precision).replace(/\\.00$/, '');\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) => {\n const alertBox = document.querySelector(\"#lite-alert\");\n if (alertBox) {\n alertBox.textContent = message;\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, { 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","api_platforms","platforms","google_ads_mcc_id","mccId","setMccId","showAlert","setShowAlert","useEffect","showAlertCondition","google_ads","authenticated","openAuthPage","authUrl","open","platformKey","platform","apiTitle","isGoogleService","deauth_url","faClass","inline","googleBtn","auth_url","alt","renderAuthButton","PlatformSpecific","authenticityToken","content","semrush_api_key","semrushApiKey","setSemrushApiKey","justifyContent","method","action","hidden","readOnly","SaveChanges","CampaignBuilder","loadingSpinner","google_ads_accounts","act","selectedActId","buildBtn","html","account_id","jqXHR","textStatus","errorThrown","parse","responseText","ChartBar","textSizeScalar","strokeScalar","bars","order","total","highestValue","bar","barPercentages","ReactDOMServer","tooltipText","tooltipElement","get","setAttribute","pdfDim","render","axisLineWidth","xAxis","barPadding","barWidth","Line","stroke","strokeWidth","points","color1","color2","percentage","hex","r","g","b","spendSegment","Text","fontFamily","align","offsetX","Rect","onMouseEnter","barTitle","newText","metricsEnabled","metricKey","Formatter","GetFormatter","metricValue","tooltip","onMouseLeave","ChartGoal","projectedStrokeScalar","currentStrokeScalar","metricNameTextSizeScalar","currentTextSizeScalar","projectedTextSizeScalar","goalTextSizeScalar","currentToGoalAngle","goal","projectedToGoalAngle","projected","goodCurrentColor","goodProjectedColor","badCurrentColor","badProjectedColor","unlockedCurrentColor","goalLocked","negative","currentColor","projectedColor","formatter","formattedCurrent","formattedProjected","formattedGoal","wOrH","projectedStrokeWidth","currentStrokeWidth","radius","hW","hH","Circle","Shape","sceneFunc","context","shape","beginPath","font","fillStyle","fillText","from","angle","to","Arc","innerRadius","outerRadius","lineCap","lineJoin","rotation","ChartLine","expanded","TickFormatter","tickFormatter","yAxis","xPadding","yPadding","xTickSpace","yTickSpace","hTickWidth","pointRadius","thisAndLastYearsData","currentYearData","concat","previousYearData","max","stepY","yTicks","currentYearPoints","previousYearPoints","yAxisUsed","firstTickY","wrap","fontStyle","tick","currentYear","previousYear","changeColor","mapUrl","ChartLocation","svgRef","svg","statePercentages","sumOfAllStateSpend","reduce","accumlulator","child","secondaryChild","statePercentage","scaledStatePercentage","stateColor","tooltipMsg","siblings","on","ref","urlOrigin","afterInjection","err","setupSvg","beforeInjection","colors","ChartPie","slices","slicePercentages","previousAccumulation","some","s","sliceAngle","startAngle","textYPadding","spaceTaken","config","sliceTitle","ResizeableStage","container","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","showSavePrompt","setShowSavePrompt","showGoalWarning","setShowGoalWarning","targetLinkId","setTargetLinkId","dashboardOrderOrig","setDashboardOrderOrig","dbTemp","each","pageHtmlOrig","serialize","pageHtmlSnap","shouldShowGoalWarning","showWarning","URL","searchParams","shouldStartDataPull","dashboardOrderTemp","savePrompt","targetLink","linkType","origin","updateParams","page","routeToTargetLink","set","pathname","appendTo","goalWarning","dataPullSave","userIsAdmin","class","paddingBot","AccountConfig","setTabLocation","isPpcEnabled","setIsPpcEnabled","isSeoEnabled","servicePicker","enabled_services","encType","Basic","defaultLogo","fileName","setFileName","imageURL","setImageURL","maxLength","client_company","lg","account_type","legal_company_name","street_address","unit_building_number","city","xl","state_province","postal_code","country","files","createObjectURL","ClientUsers","selectedUsers","setSelectedUsers","setClientUsers","newUsers","setNewUsers","hiddenFields","firstName","lastName","accountAccessIds","addNewUser","newClientUsers","selectedAccountId","modalHeader","fieldsForArray","bigAvatars","CreateNewUser","errorCheck","nextPage","first_name","last_name","employeeType","fNameError","lNameError","emailError","isError","errors","clientId","checkAll","visibleClients","onSubmit","handleSubmit","createUserPath","pathMethod","change","handleNext","backPage","accessAll","htmlFor","toggleAccess","InvoiceRecipients","billing_config","invoice_recipients","invoiceRecipients","setInvoiceRecipients","invoiceRecipient","uuidv4","newInvoices","PointsOfContact","initialDate","group","ppc_start_date","seo_start_date","labelCheck","white_label_service","checkLabel","setCheckLabel","utcOffset","setPpcWhiteLabelService","setSeoWhiteLabelService","seo_points_of_contact","ppc_points_of_contact","setServiceAccount","setSeoPointsOfContact","setPpcPointsOfContact","setSeoAccountLeads","setSeoAccountSupports","seodot","ppcdot","disableddot","Services","setIsSeoEnabled","Agreement","ppcFeeStructure","ppcFees","flat_fee","over_ad_spend","percentage_fee","flat_fee_enabled","percentage_fee_enabled","percentage_fee_total_over","ppcFeesStructure","setPPCFeesStructureDetail","amount","status","ppcFeesDetail","setPPCFeesDetail","handleChange","newArray","customClass","detail","flatFeeEnabled","percentageEnabled","greyout1","greyout2","marginRight","remain","fee","ppcFeeEnabled","greyout","enable","newSEOFeeEnabled","handleFeeChangeEnable","frequency","billingConfig","setBillingConfig","uniqueFee","setUniqueFee","feeDetail","serviceEnabled","setServiceEnabled","newOverallSpend","newFlatFeeEnabled","newPercentageFeeEnabled","newFields","handleDeleteFee","arrayForChange","PpcSupportingRoles","serviceName","accountLeads","accountSupports","validator","setServiceAccountLeads","setServiceAccountSupports","SEO","seoFeeStructure","seoFees","seoFeesStructure","setSEOFeesStructureDetail","seoFeesDetail","setSEOFeesDetail","seoFeeEnabled","SideBox","Team","teamAccess","TeamBox","thumbnail","Youtube","Shopify","SEMRush","adminAccessCheck","standardAccessCheck","semAccessCheck","dataFeedAccessCheck","checkMain","collaborateAccessCheck","editAccessCheck","readAndAnalyzeAccessCheck","manageUsersCheck","semSetupCheck","setSemSetupCheck","mainCheck","setMainCheck","check1","setCheck1","check2","setCheck2","controlid","Details","additionalWebsites","primarySite","setPrimarySite","additionalWebs","setAdditionalWebs","setPlatform","shopify_url","shopifyUrl","setShopifyUrl","shopifyIcon","authenticateButton","paramsObject","xhr","permission_url","then","setShopifyButton","resetButton","myObject","client_account_id","shopifyButton","renderAdditionalWebs","handleOnChange","newitem","development_capabilities","creative_capabilities","Permissions","customPermissions","setCustomPermissions","required","webName","newPermissions","Website","Access","useContext","SettingsContext","handshake","userType","AccountHome","dpLogo","AccountIds","googleAds","microsoftAds","metaAds","tiktokAds","GoogleAnalytics","semrush","amazonAdsIcon","amazonSellerIcon","googleSheetsIcon","mailchimpIcon","microsoftExample","microsoftMessage","projectIdImg","semrushExample","facebookObjective","setFacebookObjective","tiktokObjective","setTiktokObjective","semrushTargetLocation","setSemrushTargetLocation","shopifyRevenueType","setShopifyRevenueType","shopifyCountryFilter","setShopifyCountryFilter","googleAdsId","setGoogleAdsId","microsoftId","setMicrosoftId","metaId","setMetaId","tiktokId","setTiktokId","googleAnalyticsId","setGoogleAnalyticsId","semrushId","setSemrushId","amazonAdsId","setAmazonAdsId","amazonSellerCountry","setAmazonSellerCountry","googleSheetsUrl","setGoogleSheetsUrl","mailchimpServerPrefix","setMailchimpServerPrefix","handleShopifyRevenueTypeChange","targetValue","deauthorizeAmazonSeller","fetch","headers","body","credential_id","ok","json","closest","pullGoogleSheetsData","button","innerHTML","deleteGoogleSheetsData","authorizeMailchimp","deauthorizeMailchimp","onBlur","facebook_conversion_objectives","objectiveName","objectiveInt","c","tiktok_conversion_objectives","amazon_profile_ids","amazon_seller_credentials","cred","mailchimp_credentials","createContext","AccountSettingsButton","cog","isModalOpen","setModalOpen","toggleModal","employees","teamUsers","setTeamUsers","setCompanyName","setBaseCurrency","setDisplayCurrency","defaultObjective","setDefaultObjective","overviewDatasource","setOverviewDatasource","setWebsite","clientLogo","setClientLogo","clientLogoUrl","setClientLogoUrl","excludeNbInShoppingKeywords","setExcludeNbInShoppingKeywords","textConvertingQueryMiningScript","setTextConvertingQueryMiningScript","emBmNegativeOverlapScript","setEmBmNegativeOverlapScript","negativeDsaSyncScript","setNegativeDsaSyncScript","excludeNbInShopping","setExcludeNbInShopping","keywordCannibalizationScript","setKeywordCannibalizationScript","youtubeChannelExcluder","setYoutubeChannelExcluder","youtubeChannelExcluderCountries","setYoutubeChannelExcluderCountries","youtubeChannelExcluderTimeRange","setYoutubeChannelExcluderTimeRange","youtubeChannelExcluderImpressionsThreshold","setYoutubeChannelExcluderImpressionsThreshold","youtubeChannelExcluderGoogleSheet","setYoutubeChannelExcluderGoogleSheet","daily_yields","inflation","setInflation","contextValue","Provider","modalRef","activeTab","setActiveTab","xIcon","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","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","day","TabContent","onScroll","scrollHeight","scrollTop","clientHeight","stopPropagation","AccountUsers","handleRemoveUser","prevUsers","activeString","active","AddUser","isModalVisible","setIsModalVisible","searchTerm","setSearchTerm","foundUsers","setFoundUsers","newUser","setNewUser","debouncedSearch","useCallback","debounce","URLSearchParams","cancel","hideModal","handleNewUserChange","alignSelf","bordered","hover","u","handleAddUser","gap","level","default","userToAdd","createNewUser","isPrimarySiteValid","setPrimarySiteValid","uploadIcon","validatePrimarySite","RegExp","newObjective","newOverviewDatasource","newBaseCurrency","newDisplayCurrency","file","fileUrl","ClientUsers1","userExistsWarning","setUserExistsWarning","settings","CreateNewUser1","accessIds","account_access_ids","employee","new_user","clientButtonClick","employeeButtonClick","changeAccessIds","buildUser","Inflation","csvUploadRef","lodashClonedeep","transfer","paste","calendarBolt","setSelectedPlatform","yieldMetrics","accept","fileInput","yieldTable","reader","FileReader","extension","pop","processCsv","yields","tableColumns","first","currentRow","currentColumn","newInflation","readAsText","onload","uploadCsv","refs","copyInflationArray","visability","tableIndex","blank","LiteCurrencySelector","ScriptBoxes","localKeywords","setLocalKeywords","handleCheckbox","handleYoutubeChannelExcluderCountries","handleYoutubeChannelExcluderTimeRange","handleYoutubeChannelExcluderGoogleSheet","handleYoutubeChannelExcluderImpressionsThreshold","handleGoogleSheetsBlur","handleAllowedCountriesBlur","handleImpressionsThresholdBlur","handleBlur","script","columnGap","kwNum","prevKeywords","remainingKeywords","deleteKeyword","newKey","newKeywords","handleAddKeyword","textDecoration","controlId","Scripts","exclaimTriangle","AccountIdBox","platformData","platformEnabled","setPlatformEnabled","accountids","tooltipMessage","example","platformId","fieldName","accountId","triangle","invisTriangle","boxGrip","CampaignGroup","object","and","or","not_contains","noAnd","noOr","containsAnd","containsOr","platformType","groupName","overflowX","conversion_objective","conversion_actions_enabled","blueTriangle","CampaignGroups","campaignGroupsInitial","conversion_actions","setCampaignGroups","containsPreviewModifier","setContainsPreviewModifier","notContainsPreviewModifier","setNotContainsPreviewModifier","showAlert1","setShowAlert1","showAlert2","setShowAlert2","containsInput","setContainsInput","notContainsInput","setNotContainsInput","containsTerms","setContainsTerms","notContainsTerms","setNotContainsTerms","addContains","addNotContains","addItem","tempValue","tempContainsTerms","tempNotContainsTerms","names","campaignGroupsNames","setCampaignGroupsNames","currentSection","campaignGroupsOrder","handleEditBox","itemId","newName","term","conversionEnabled","conversionActions","customConversions","conversionObjective","tiktokConversionObjective","groupContainsModifier","groupNotContainsModifier","newCampaignGroups","newContainsTerms","newNotContainsTerms","newItem","custom_conversions","allCampaignGroups","handleDeleteBox","deleteState","groupId","handleAddBox","conversionActionsEnabled","newItemId","containsWords","notContainsWords","isArray","words","conversion","getIndex","col","flexWrap","ConfigureCampaignGroup","showBox","setShowBox","clearFields","getElementById","testString","setTestString","testStringMatches","testCampaignGroupFilters","notContains","setConversionActionsEnabled","setConversionActions","setConversionObjective","setCustomConversions","setTiktokConversionObjective","errorText","setErrorText","onFocus","replaceAll","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","youtubeChannelExcluderData","setYoutubeChannelExcluderData","handleScriptPropertyInput","currentData","updateMethod","newScripts","setScripts","checkValidation","All","Dashboard","dashboard_order","ppcDashboard","searchEnabled","socialEnabled","videoEnabled","displayEnabled","setPpcDashboard","Goals","metrics","goalChangePercent","setGoalChangePercent","allOrBlank","setAllOrBlank","dashboardsInitial","setSelectedYear","ppc_cc_data","alignItems","selectedId","percentChange","allCcData","datum","dashIndex","ccData","newDate","newMonth","newyear","goalShortcutMetrics","metricCheckbox","metricCamel","metricSnake","historical","newValue","round","handlePullMetric","check","newCheckedMetrics","dbIndex","yearIndex","visible","IdsData","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","data_pull_errors","keywordGroups","keyword_groups","seoScripts","seoScriptsVar","setSeoScripts","setSeoScriptsVar","seoDashboard","setSeoDashboard","seo_cc_data","GoogleAnalyticsGoals","customGoals","setCustomGoals","customGoalsEnabled","setCustomGoalsEnabled","accountLabels","analyticsAccounts","selectedAccount","setSelectedAccount","targetKey","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","changeActiveStatus","created_at","current_user_is_admin","handleShowDeleteModal","spread","startVelocity","elementCount","dragFriction","duration","stagger","perspective","handleHideDeleteModal","confirmDeleteClient","BlueIndentedSection","btn","ppcDash","borderBottom","MetricFormatter","GreenIndentedSection","KPIMetricBlock","goodOrBadText","goodOrBadBg","KeywordBlock","yyText","KeywordImprovedDeclinedBlock","improved","declined","KeywordTable","sortBy","keyword_sort","sortOrderAsc","keyword_sort_order_asc","sortedKeywords","by","initial","kwCopy","tempSortOrder","start_date_ranking","parseFloat","end_date_ranking","ranking_difference","cpc","volume","difficulty","sortKeywords","sortUpHtml","sortDownHtml","pdf","user_is_employee","diffBackground","serp_features","serp_feature","tag","string","ranking_page","getTickProps","oldValue","roundTo","decimal","YY","YY0","Sessions","Impressions","PhoneCalls","SearchVisibility","OrganicTraffic","Clicks","Revenue","BounceRate","ROAS","AOV","CPA","CPC","CVR","CTR","Conversions","Backlinks","DefaultTick","tickProps","MonetaryTick","convertedValue","currencyConverter","CalculatedTick","CalculatedMonetaryTick","NoData","indentClass","PPCDashboard","p","shared","configUrl","exportButton","changeSection","dispatchEvent","Event","searchDashboards","socialDashboards","displayDashboards","videoDashboards","platformCount","allPpcEnabled","ageKeyOrder","dayKeyOrder","hourKeyOrder","PPCDashboardDisplay","cc_data","renderArray","dashboardTableOrder","metricShortened","getNegative","getGoalLocked","metricTitles","groupOrder","group_id","svgList","google","microsoft","transform","bing","facebook","rx","tiktok","all","clipRule","allIcon","googleIcon","microsoftIcon","facebookIcon","allPlatformIcon","tiktokIcon","client_type","dashboardsEnable","sum","capitalized","iconGraphic","handlePlatform","dashboardSection","generateDashboardSection","userIsEmployee","PPCDashboardOverall","channels","channel","metricNames","tempMetricNames","channelName","PPCDashboardSearch","PPCDashboardSocial","PPCDashboardVideo","PPCSummary","client_list","metric_list","overall_metrics","search_metrics","social_metrics","display_metrics","video_metrics","PPCSummaryDisplay","activeTable","firstKey","leadgenList","leadgenClients","ecommerceList","ecommerceClients","totals","leadgen","ecommerce","mValue","changeTable","display_name","programmatic_name","Infinity","PPCSummaryOverall","PPCSummarySearch","PPCSummarySocial","PPCSummaryVideo","PdfKPIMetricBlock","PdfKeywordRow","PdfKeywordTable","setSortBy","setSortOrderAsc","setSortedKeywords","SEODashboard","landingPageGroup","keywordGroupOrder","keyword_groups_order","keywordGroup","new","lost","organizationName","organization_name","SEOSummary","this_month","borderTop","ServiceDisabled","topText","leftBullets","rightBullets","btnClass","bullet","AmazonDashboard","metricTableDimensions","table_data","lastDataPull","toLocaleString","hour","minute","hour12","mainIcon","dashboardObjective","setDashboardObjective","revenueOrConversions","roasOrCpa","last_data_pull","alreadyPulling","current_data_pulls","datasetNames","chart_data","labels","subHeaderOrder","tableName","dimensions","topSummaryRow","dimension","collapsed","EmailDashboard","LiteKeywordTable","LiteLineChart","themeToggleRef","darkMode","setDarkMode","handleThemeChange","datasets","getLineColor","borderJoinStyle","fixedHeight","xScalesConfig","ticks","maxTicksLimit","maxRotation","autoSkip","family","grid","yScalesConfig","beginAtZero","stacked","callback","formatMetric","drawBorder","interaction","mode","intersect","plugins","legend","titleFont","bodyFont","callbacks","dataset","tooltipData","tooltipMetric","dataIndex","parsed","scales","getChartOptions","newLabel","String","lightColors","darkColors","ChartJS","CategoryScale","LinearScale","PointElement","LineElement","Title","Tooltip","Legend","Filler","LiteMetricTable","searchIcon","socialIcon","pinterest","youtube","amazon","chevronUp","showDropdown","setShowDropdown","groups","selectedGroup","setSelectedGroup","isCollapsed","setIsCollapsed","dropdownRef","tableContainerRef","handleClickOutside","columnWidth","toggleDropdown","baseUrl","renderBlankRow","borderClass","subHeader","last","formatCells","getColumnName","selectGroup","tableIcon","renderTableName","overflow","topSummaryData","toLower","renderTopSummaryRow","containsUrl","rel","showMenu","setShowMenu","loading","setLoading","progress","setProgress","loadingGif","totalQueries","setTotalQueries","dataPullComplete","setDataPullComplete","pullOnlyShopify","setPullOnlyShopify","dotsHorizontal","refreshIcon","menuRef","buttonRef","intervalId","setInterval","fetchRefreshStatus","clearInterval","totalQueriesCurrent","params","updateProgress","remainingQueries","total_jobs","innerText","completedQueries","handleRefresh","timePeriod","ObjectivePicker","OrganicSearchDashboard","OrganicSocialDashboard","followerIcon","instagramIcon","youtubeIcon","twitterIcon","linkedinIcon","snapchatIcon","otherIcon","formatNumber","followerCards","followers","followersChange","card","OtherDashboard","skipPrev","OverviewDashboard","merOrCpa","fillerStyles","borderRadius","SearchDashboard","SocialDashboard","primaryKpiCharts","primaryKpiTables","allKpisVsPreviousYear","landingPageBreakdown","backlinks","keywordSummary","keywordRankings","traffic","conversions","revenue","cvr","aov","gscClicks","gscImpressions","searchVisibility","topThreeKeywords","topThreeKeywordsPercentage","topTenKeywords","topTenKeywordsPercentage","topTwentyKeywords","topTwentyKeywordsPercentage","bounceRate","engagedSessions","averagePosition","totalBacklinks","referringIps","referringDomains","authorityScore","keywordsImproved","keywordsDeclined","keywordName","keywordSerpFeatures","keywordPreviousPosition","keywordCurrentPosition","keywordDifference","keywordCostPerConversion","keywordSearchVolume","keywordLabel","keywordDifficulty","keywordUrl","mandatory","spendAllocation","shopifyRevenue","shopifyRoas","shopifySubtotalRevenue","shopifySubtotalRoas","spend","impressions","viewableImpressions","views","cpv","viewRate","viewCtr","viewableCtr","clicks","ctr","phoneCalls","inStoreVisits","clickConversions","viewConversions","totalConversions","clickCpa","totalCpa","clickRevenue","viewRevenue","totalRevenue","clickRoas","totalRoas","totalAov","impressionsTopRate","impressionsAbsTopRate","searchImpressionsShare","clickAov","addToCarts","impressionToCartRate","checkoutsStarted","cartToConversionRate","socialViewRate","cpsv","videoCvr","AccountConfigurationIntro","route","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","chat","handleDeleteRecipient","handleAddRecipient","form","newRecipients","KeywordGroupsOB","exclaimCircle","LandingPagesOB","NextButton","prev","trigger","NotComplete","caution","mobileHideCaution","Onboarding","routerHistory","setRouterHistory","onboardingComplete","setOnboardingComplete","setSearchEnabled","setDisplayEnabled","setSocialEnabled","setVideoEnabled","seoEnabled","setSeoEnabled","webPlatform","setWebPlatform","setLegalInfo","firstAlert","lastAlert","poc","setPoc","setFirstName","setLastName","setEmail","phone","setPhone","job","setJob","personBoxes","setPersonBoxes","setShowUsers","globalPermission","setGlobalPermission","isPermissionsEnabled","setIsPermissionsEnabled","developmentCapabilities","setDevelopmentCapabilities","creativeCapabilities","setCreativeCapabilities","defaultTeamAccess","setTeamAccess","shopifyChannel","setShopifyChannel","domainProperty","setDomainProperty","shopifyUrlTemp","sameId","setSameId","searchGoogleAdsIds","setSearchGoogleAdsIds","displayGoogleAdsIds","setDisplayGoogleAdsIds","videoGoogleAdsIds","setVideoGoogleAdsIds","allGoogleAdsIds","setAllGoogleAdsIds","savedMccId","savedSemrushKey","facebookAdsIds","setFacebookAdsIds","tiktokAdsIds","setTiktokAdsIds","microsoftAdsIds","setMicrosoftAdsIds","facebookCustomConversions","setFacebookCustomConversions","facebookConversionObjective","setFacebookConversionObjective","pullBoxes","setPullBoxes","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","currentPage","setPercent","totalPages","lastPercent","percent","complete","completed","floor","initialKeywordGroups","landingPageGroups","semrushInitialIds","semRushIds","setSemRushIds","seoSectionList","default_dash_used","seoDefault","setSeoDefault","seoInitialDashboards","acc","ppcSectionList","ppcDefault","setPpcDefault","ppcInitialDashboards","displaySectionList","displayDefault","setDisplayDefault","displayInitialDashboards","searchSectionList","searchDefault","setSearchDefault","searchInitialDashboards","socialSectionList","socialDefault","setSocialDefault","socialInitialDashboards","videoSectionList","videoDefault","setVideoDefault","videoInitialDashboards","submitUrl","seoDashBoardData","ppcDashboardData","searchDashboardData","displayDashboardData","videoDashboardData","socialDashboardData","current_page","facebook_custom_conversions","org_id","seo_enabled","video_enabled","social_enabled","display_enabled","search_enabled","primary","additional","shopify_channel","google_analytics_ids","search_google_ads_id","display_google_ads_id","video_google_ads_id","social_facebook_ads_id","social_tiktok_ads_id","search_microsoft_ads_id","authenticity_token","current_onboarding_page","supporting_roles","account_support","points_of_contact","new_users","semrush_ids","dashboard_builder","seo_default","ppc_default","search_default","display_default","video_default","social_default","search_scripts","search_script_variables","social_scripts","social_script_variables","display_scripts","display_script_variables","video_scripts","video_script_variables","seo_scripts","seo_script_variables","basicRoutes","setSeo","handleSelect","clientAccountId","addRow","updated","newPoc","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","rows","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","navigator","clipboard","writeText","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","showCreateModal","setShowCreateModal","setDeleteTarget","orgs","org","confirmDelete","Customizations","OrgInfo","OrgLogo","upload","zIndexFirst","setZIndexFirst","show2","setShow2","toggledUsers","setToggledUsers","org_users","owner","unSelectedUsers","setVisibleUsers","newOwnerId","setNewOwnerId","handleClose2","capturedId","toggledUsersList","organization_type","isOwner","isPrimaryOrg","matchedUsers","toggled","handleOwnershipTransfer","handleOrgDelete","OrgPicker","orgPic","isClickable","organizations","god_or_admin","orgName","selected_org","selectedOrg","OrgPickerModal","selfShow","setSelfShow","centered","force_selection","selectedOrgId","Organizations","current_user_is_god","is_primary_org","user_id","Users","filteredInput","setFilteredInput","roles","formSubmitUrl","tempName","tempEmail","tempRole","tempDepartment","tempRoleFormatted","user_org_detail_id","tempDepartmentFormatted","sectionNames","self","m","pageNumber","hideLogo","sectionIndex","MonthlyPpcSection","campaignGroupCase","date_formatted","MonthlyReportIntro","MonthlyReportOutro","MonthlyReportPdf","checkPpcSections","dashboardOrders","obj","defaultMetricsData","dbOrd","unshift","seoDashboardOrder","seoPages","ppcPages","keepingTrack","pageHeight","elementsPerRow","elementHeight","metricIndex","ranking","goalPage","shift","MonthlySeoReport","MonthlySeoSection","landingPageCase","keywordCase","seoGoals","PDFPage","PPCPdfDisplay","goalChartDim","lineChartDim","pieChartDim","goalsPerRow","chartsPerRow","tablesPerRow","kpiBlocksPerRow","metricsPerTable","goalRowHeight","chartRowHeight","tableRowHeight","groupTableRowHeight","kpiBlockRowHeight","pieRowHeight","barRowHeight","mapRowHeight","campaignName","url_origin","generatePdfSection","tempIndex","campaignIndex","copyOfCampaignMetric","duplicateCampaign","allocationIndex","allocationMetrics","campaignGroupIndex","maxPageHeight","generatePdfPage","PPCPdfOverall","PPCPdfSearch","PPCPdfSocial","PPCPdfSummaryDisplay","displayMetrics","getPageNumber","PPCPdfSummaryOverall","searchMetrics","PPCPdfSummarySearch","PPCPdfSummarySocial","socialMetrics","PPCPdfSummaryVideo","videoMetrics","PPCPdfVideo","SEOPdf","keywordRankingRowHeight","pageName","landingPage","landingPageIndex","copyOfLandingPageMetric","duplicateLandingPage","keywordIndex","copyOfKeywordMetric","duplicateKeywordGroup","firstLandingPageIndex","firstKeywordIndex","SEOPdfSummary","PacingContext","PpcPacing","selected_account","ppc_pacing_metrics","submit","overall","metricsData","availableMetrics","available_metrics","default_metrics","pacingOrder","pacing_order","dateRanges","date_ranges","overall_platforms","search_platforms","social_platforms","display_platforms","video_platforms","pacingContext","summary","daily","Overall","DailyView","allPlatforms","redOrGreen","integer","selectedMetrics","setSelectedMetrics","selectedCampaign","setSelectedCampaign","table_view_preference","yoy","setYoy","columnCount","campaignCapitalized","serviceCapitalized","platformArray","platformSet","uniquePlatforms","campCapitalized","updatedList","metricHelper","last_30_days","evenOrOdd","beforeDate","formatDate","number","EPSILON","overallAmount","SummaryView","availableFrequency","selected_frequency","selectedFrequency","setSelectedFrequency","frequencyHelper","dashboardUrl","shop","teamUrl","i18n","enTranslations","fullWidth","sectioned","variation","shopify_install","breadcrumbs","last_updated","UserAccess","userInfo","localeCompare","organization_id","searchString","users_array","permissions","deleteUser","UserAccessTable","UserAccessTableButtons","actionType","showModal","handleHideModal","handleShowModal","handleConfirmAction","UserNewForm","css","clientIcon","employeeIcon","errorClass","errorChecking","CustomAvatar","christmasSpecial","fallSpecial","springSpecial","summerSpecial","winterSpecial","halloweenSpecial","special","CustomDropdown","currentTab","upper","setCurrentSection","currentCampaign","setCurrentCampaign","campaignSetter","goalSetter","performanceSetter","clickOutsideConfig","onClickOutside","CustomFormCheck","inputElement","CustomSwitch","CustomTooltip","DataPullSavePopUp","DayPicker","yyyymmdd","minDate","convertUTCToLocalDate","changeDate","placeholderText","blur","DefaultAvatar","firstLetter","secondLetter","secondInitial","finalModifier","charCodeAt","optionsRatio","chosenIndex","isInteger","firstInitial","chooseColor","alertCounter","xmlnsXlink","dy","textAnchor","dominantBaseline","LeftIndent","Metric","noConvert","finalValue","MonthPicker","showMonthYearPicker","NumberDropdown","ProfileDropdown","logout","orgLogo","hieght","showOrgOptions","setShowOrgOptions","userOrgDetail","user_org_details","getRoleTitle","dropdownArrow","logout_path","quotes","normalQuotes","specialQuotes","random","StateOptions","humanizedRole","to_lower","firstCap","UserSelector","fieldsFor","btnDisabled","big_avatar","unselectUser","decimalPlaces","countDecimals","allRates","valueOf","ppcOrderArray","seoOrderArray","absValue","abs","valueParts","currencyObj","seoMetric","inflated","lockDate","endOf","lessIsGood","canBuild","subGroupSection","alertBox","textContent","passes","newurl","pushState","HOTKEYS","LIST_TYPES","toggleMark","editor","isMarkActive","Editor","isBlockActive","n","marks","Element","attributes","Leaf","leaf","bold","italic","underline","BlockButton","useSlate","Button","onMouseDown","isActive","isList","Transforms","toggleBlock","Icon","MarkButton","initialValue","setValue","renderElement","renderLeaf","useMemo","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":""}