{"version":3,"file":"js/982-a302ee3c4ebb19e7d6ed.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/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/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/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/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/getCurrencyDetails.js","webpack://dp-zoom/./app/javascript/components/utils/getGoalLocked.js","webpack://dp-zoom/./app/javascript/components/utils/getNegative.js","webpack://dp-zoom/./app/javascript/components/utils/jsDig.js","webpack://dp-zoom/./app/javascript/components/utils/metricCanBeBuilt.js","webpack://dp-zoom/./app/javascript/components/utils/testCampaignGroupFilters.js","webpack://dp-zoom/./app/javascript/components/utils/updateParams.js","webpack://dp-zoom/./app/javascript/components/write_mail/RichTextEditor.jsx","webpack://dp-zoom/./app/javascript/components/write_mail/WriteMail.jsx","webpack://dp-zoom/./app/javascript/components/write_mail/components.js"],"sourcesContent":["var map = {\n\t\"./CampaignGroupList\": 19065,\n\t\"./CampaignGroupList.jsx\": 19065,\n\t\"./List\": 18238,\n\t\"./List.jsx\": 18238,\n\t\"./ListItem\": 4121,\n\t\"./ListItem.jsx\": 4121,\n\t\"./MetricTable\": 37266,\n\t\"./MetricTable.jsx\": 37266,\n\t\"./MetricTableOld\": 41675,\n\t\"./MetricTableOld.jsx\": 41675,\n\t\"./MetricTablePdf\": 5156,\n\t\"./MetricTablePdf.jsx\": 5156,\n\t\"./MetricTableRow\": 51020,\n\t\"./MetricTableRow.jsx\": 51020,\n\t\"./MetricTableRowOld\": 83540,\n\t\"./MetricTableRowOld.jsx\": 83540,\n\t\"./MetricTableRowPdf\": 43351,\n\t\"./MetricTableRowPdf.jsx\": 43351,\n\t\"./TopFlyout\": 33784,\n\t\"./TopFlyout.jsx\": 33784,\n\t\"./ZoomRedirectPopup\": 69635,\n\t\"./ZoomRedirectPopup.jsx\": 69635,\n\t\"./about/AboutDatapulse\": 18773,\n\t\"./about/AboutDatapulse.jsx\": 18773,\n\t\"./activity/Activity\": 16030,\n\t\"./activity/Activity.jsx\": 16030,\n\t\"./admin/Admin\": 33193,\n\t\"./admin/Admin.jsx\": 33193,\n\t\"./admin/mailing_lists/MailingList\": 47016,\n\t\"./admin/mailing_lists/MailingList.jsx\": 47016,\n\t\"./admin/mailing_lists/MailingLists\": 42821,\n\t\"./admin/mailing_lists/MailingLists.jsx\": 42821,\n\t\"./alert_subscriptions/AlertSubscriptions\": 75301,\n\t\"./alert_subscriptions/AlertSubscriptions.jsx\": 75301,\n\t\"./alert_subscriptions/ManageSubsByClient\": 60513,\n\t\"./alert_subscriptions/ManageSubsByClient.jsx\": 60513,\n\t\"./alert_subscriptions/ManageSubsByUser\": 41322,\n\t\"./alert_subscriptions/ManageSubsByUser.jsx\": 41322,\n\t\"./alert_subscriptions/ManageSubsClientConfig\": 18713,\n\t\"./alert_subscriptions/ManageSubsClientConfig.jsx\": 18713,\n\t\"./alert_subscriptions/SubsByClient\": 88384,\n\t\"./alert_subscriptions/SubsByClient.jsx\": 88384,\n\t\"./alert_subscriptions/SubsByUser\": 16446,\n\t\"./alert_subscriptions/SubsByUser.jsx\": 16446,\n\t\"./alert_subscriptions/SubscribeUsersModal\": 78467,\n\t\"./alert_subscriptions/SubscribeUsersModal.jsx\": 78467,\n\t\"./alerts/AlertSnoozeModal\": 32107,\n\t\"./alerts/AlertSnoozeModal.jsx\": 32107,\n\t\"./alerts/Alerts\": 96101,\n\t\"./alerts/Alerts.jsx\": 96101,\n\t\"./alerts/account_alerts/AccountAlerts\": 60415,\n\t\"./alerts/account_alerts/AccountAlerts.jsx\": 60415,\n\t\"./alerts/account_alerts/Alert\": 6621,\n\t\"./alerts/account_alerts/Alert.jsx\": 6621,\n\t\"./alerts/account_alerts/AlertList\": 26947,\n\t\"./alerts/account_alerts/AlertList.jsx\": 26947,\n\t\"./alerts/alert_summary/Alert\": 15828,\n\t\"./alerts/alert_summary/Alert.jsx\": 15828,\n\t\"./alerts/alert_summary/AlertContainer\": 67173,\n\t\"./alerts/alert_summary/AlertContainer.jsx\": 67173,\n\t\"./alerts/alert_summary/AlertList\": 5173,\n\t\"./alerts/alert_summary/AlertList.jsx\": 5173,\n\t\"./alerts/alert_summary/AlertSummary\": 54943,\n\t\"./alerts/alert_summary/AlertSummary.jsx\": 54943,\n\t\"./api_access/ApiAccess\": 86818,\n\t\"./api_access/ApiAccess.jsx\": 86818,\n\t\"./api_access/PlatformSpecific\": 71324,\n\t\"./api_access/PlatformSpecific.jsx\": 71324,\n\t\"./api_access/SaveChanges\": 64426,\n\t\"./api_access/SaveChanges.jsx\": 64426,\n\t\"./campaign_builder/CampaignBuilder\": 92125,\n\t\"./campaign_builder/CampaignBuilder.jsx\": 92125,\n\t\"./charts/ChartBar\": 31537,\n\t\"./charts/ChartBar.jsx\": 31537,\n\t\"./charts/ChartGoal\": 31529,\n\t\"./charts/ChartGoal.jsx\": 31529,\n\t\"./charts/ChartLine\": 9447,\n\t\"./charts/ChartLine.jsx\": 9447,\n\t\"./charts/ChartLocation\": 41008,\n\t\"./charts/ChartLocation.jsx\": 41008,\n\t\"./charts/ChartPie\": 63835,\n\t\"./charts/ChartPie.jsx\": 63835,\n\t\"./charts/ResizeableStage\": 28269,\n\t\"./charts/ResizeableStage.jsx\": 28269,\n\t\"./charts/ResizeableStageLine\": 32010,\n\t\"./charts/ResizeableStageLine.jsx\": 32010,\n\t\"./client_config/AlertsGroup\": 81864,\n\t\"./client_config/AlertsGroup.jsx\": 81864,\n\t\"./client_config/ConfigTabs\": 82717,\n\t\"./client_config/ConfigTabs.jsx\": 82717,\n\t\"./client_config/ConfigureGoalsModal\": 18333,\n\t\"./client_config/ConfigureGoalsModal.jsx\": 18333,\n\t\"./client_config/CurrencySelector\": 41684,\n\t\"./client_config/CurrencySelector.jsx\": 41684,\n\t\"./client_config/DashboardBuilder\": 53313,\n\t\"./client_config/DashboardBuilder.jsx\": 53313,\n\t\"./client_config/DashboardBuilderSection\": 76322,\n\t\"./client_config/DashboardBuilderSection.jsx\": 76322,\n\t\"./client_config/GoalsTable\": 12730,\n\t\"./client_config/GoalsTable.jsx\": 12730,\n\t\"./client_config/ManualDataPull\": 3646,\n\t\"./client_config/ManualDataPull.jsx\": 3646,\n\t\"./client_config/SaveChanges\": 60569,\n\t\"./client_config/SaveChanges.jsx\": 60569,\n\t\"./client_config/account_config/AccountConfig\": 2161,\n\t\"./client_config/account_config/AccountConfig.jsx\": 2161,\n\t\"./client_config/account_config/basic_info_cu/Basic\": 30478,\n\t\"./client_config/account_config/basic_info_cu/Basic.jsx\": 30478,\n\t\"./client_config/account_config/basic_info_cu/ClientUsers\": 9754,\n\t\"./client_config/account_config/basic_info_cu/ClientUsers.jsx\": 9754,\n\t\"./client_config/account_config/basic_info_cu/CreateNewUser\": 88626,\n\t\"./client_config/account_config/basic_info_cu/CreateNewUser.jsx\": 88626,\n\t\"./client_config/account_config/basic_info_cu/InvoiceRecipients\": 37678,\n\t\"./client_config/account_config/basic_info_cu/InvoiceRecipients.jsx\": 37678,\n\t\"./client_config/account_config/services_agreement/PointsOfContact\": 89085,\n\t\"./client_config/account_config/services_agreement/PointsOfContact.jsx\": 89085,\n\t\"./client_config/account_config/services_agreement/Services\": 4029,\n\t\"./client_config/account_config/services_agreement/Services.jsx\": 4029,\n\t\"./client_config/account_config/services_agreement/ppc/PpcAgreement\": 69291,\n\t\"./client_config/account_config/services_agreement/ppc/PpcAgreement.jsx\": 69291,\n\t\"./client_config/account_config/services_agreement/ppc/PpcServices\": 48659,\n\t\"./client_config/account_config/services_agreement/ppc/PpcServices.jsx\": 48659,\n\t\"./client_config/account_config/services_agreement/ppc/PpcSupportingRoles\": 70342,\n\t\"./client_config/account_config/services_agreement/ppc/PpcSupportingRoles.jsx\": 70342,\n\t\"./client_config/account_config/services_agreement/seo/SEO\": 14649,\n\t\"./client_config/account_config/services_agreement/seo/SEO.jsx\": 14649,\n\t\"./client_config/account_config/services_agreement/seo/SideBox\": 45944,\n\t\"./client_config/account_config/services_agreement/seo/SideBox.jsx\": 45944,\n\t\"./client_config/account_config/team_access/Team\": 55053,\n\t\"./client_config/account_config/team_access/Team.jsx\": 55053,\n\t\"./client_config/account_config/team_access/TeamBox\": 66358,\n\t\"./client_config/account_config/team_access/TeamBox.jsx\": 66358,\n\t\"./client_config/account_config/website_permissions/Details\": 54891,\n\t\"./client_config/account_config/website_permissions/Details.jsx\": 54891,\n\t\"./client_config/account_config/website_permissions/Permissions\": 99525,\n\t\"./client_config/account_config/website_permissions/Permissions.jsx\": 99525,\n\t\"./client_config/account_config/website_permissions/Website\": 43935,\n\t\"./client_config/account_config/website_permissions/Website.jsx\": 43935,\n\t\"./client_config/lite/Access\": 99353,\n\t\"./client_config/lite/Access.jsx\": 99353,\n\t\"./client_config/lite/AccountIds\": 92892,\n\t\"./client_config/lite/AccountIds.jsx\": 92892,\n\t\"./client_config/lite/AccountSettingsButton\": 8200,\n\t\"./client_config/lite/AccountSettingsButton.jsx\": 8200,\n\t\"./client_config/lite/AccountSettingsModal\": 87167,\n\t\"./client_config/lite/AccountSettingsModal.jsx\": 87167,\n\t\"./client_config/lite/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/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/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/getCurrencyDetails\": 46769,\n\t\"./utils/getCurrencyDetails.js\": 46769,\n\t\"./utils/getGoalLocked\": 43227,\n\t\"./utils/getGoalLocked.js\": 43227,\n\t\"./utils/getNegative\": 32503,\n\t\"./utils/getNegative.js\": 32503,\n\t\"./utils/jsDig\": 9766,\n\t\"./utils/jsDig.js\": 9766,\n\t\"./utils/metricCanBeBuilt\": 86953,\n\t\"./utils/metricCanBeBuilt.js\": 86953,\n\t\"./utils/testCampaignGroupFilters\": 43279,\n\t\"./utils/testCampaignGroupFilters.js\": 43279,\n\t\"./utils/updateParams\": 15204,\n\t\"./utils/updateParams.js\": 15204,\n\t\"./write_mail/RichTextEditor\": 66273,\n\t\"./write_mail/RichTextEditor.jsx\": 66273,\n\t\"./write_mail/WriteMail\": 96706,\n\t\"./write_mail/WriteMail.jsx\": 96706,\n\t\"./write_mail/components\": 36366,\n\t\"./write_mail/components.js\": 36366\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 982;","import React from \"react\";\nclass CampaignGroupList extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n items: this.props.items,\n };\n }\n // New Events\n handleNewBucket() {\n let items = [...this.state.items];\n items.push({ name: \"\", filter_string: \"\", filter_type: \"contains\", conditions: [] });\n this.setState({ items: items });\n }\n\n handleNewContainsCondition(oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.push({ filter_type: \"contains\", filter_string: \"\", filter_condition: \"or\" });\n this.setState({ items: items });\n }\n\n handleNewNotContainsCondition(oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.push({ filter_type: \"notContains\", filter_string: \"\", filter_condition: \"and\" });\n this.setState({ items: items });\n }\n\n // Change Events\n\n handleItemNameChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.name = event.target.value;\n this.setState({ items: items });\n }\n\n handleItemFilterTypeChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.filter_type = event.target.value;\n this.setState({ items: items });\n }\n\n handleItemInputChange(event, oldItem) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.filter_string = event.target.value;\n this.setState({ items: items });\n }\n\n handleConditionInputChange(event, oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n let condition = item.conditions[conditionIndex];\n condition.filter_string = event.target.value;\n this.setState({ items: items });\n }\n\n handleConditionAndOrChange(event, oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n let condition = item.conditions[conditionIndex];\n condition.filter_condition = event.target.value;\n this.setState({ items: items });\n }\n\n // Remove Events\n\n removeItem(itemIndex) {\n let items = [...this.state.items];\n items.splice(itemIndex, 1);\n this.setState({ items: items });\n }\n\n removeCondition(oldItem, conditionIndex) {\n let items = [...this.state.items];\n let item = items.find((x) => x == oldItem);\n item.conditions.splice(conditionIndex, 1);\n this.setState({ items: items });\n }\n\n render() {\n const itemList = this.state.items.map((item, index) => {\n let containsList = item.conditions.map((condition, conditionIndex) => {\n if (condition.filter_type == \"contains\") {\n return (\n \n \n \n this.handleConditionAndOrChange(e, item, conditionIndex)}>\n \n \n \n \n \n \n \n \n \n this.handleConditionInputChange(e, item, conditionIndex)}\n />\n \n \n \n \n \n \n \n );\n }\n });\n\n let notContainsList = item.conditions.map((condition, conditionIndex) => {\n if (condition.filter_type == \"notContains\") {\n return (\n \n \n \n this.handleConditionAndOrChange(e, item, conditionIndex)}>\n \n \n \n \n \n \n \n \n \n this.handleConditionInputChange(e, item, conditionIndex)}\n />\n \n \n \n \n \n \n \n );\n }\n });\n\n return (\n \n
\n Name: \n this.handleItemNameChange(e, item)}\n />\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n this.handleItemFilterTypeChange(e, item)}\n style={{ width: \"auto\" }}>\n \n \n \n
\n this.handleItemInputChange(e, item)}\n />\n
\n
\n
\n \n \n \n \n \n {containsList}\n \n \n \n \n
Contains:
\n Add Condition \n this.handleNewContainsCondition(item)}>\n
\n
\n
\n \n \n \n \n \n {notContainsList}\n \n \n \n \n
Does Not Contain:
\n Add Condition \n this.handleNewNotContainsCondition(item)}>\n
\n
\n
\n
\n );\n });\n\n return (\n
\n {itemList}\n Add Bucket \n this.handleNewBucket()}>\n
\n );\n }\n}\nexport default CampaignGroupList;\n","import React from 'react';\nimport ListItem from 'ListItem'\n\nclass List extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n items: this.props.items,\n defaultPropertyValues: [],\n currentItemProperties: [],\n propertyNames: this.props.propertyNames\n };\n this.state.propertyNames.forEach((element, index) => {\n this.state.defaultPropertyValues[index] = \"\";\n });\n this.state.currentItemProperties = this.state.defaultPropertyValues;\n\n this.removeListItem = this.removeListItem.bind(this);\n this.updateListItem = this.updateListItem.bind(this);\n this.addListItem = this.addListItem.bind(this);\n this.handleNewItemChange = this.handleNewItemChange.bind(this);\n }\n\n removeListItem(id) {\n $.ajax({\n type: \"DELETE\",\n url: this.props.url + id,\n async: false,\n success: (response) => {\n let items = [...this.state.items];\n items.splice(items.findIndex((e) => { return e.id == id }), 1);\n this.setState({ items: items })\n }\n })\n }\n\n addListItem(properties) {\n let additionalFields = {};\n switch(this.props.listType) {\n case \"CampaignBucket\":\n additionalFields.name = properties[0];\n additionalFields.filter_string = properties[1];\n break;\n case \"ConversionAction\":\n additionalFields.name = properties[0];\n additionalFields.conversion_id = properties[1];\n additionalFields.conversion_type = this.props.conversionType;\n break;\n default:\n // Just send all the passed in properties to the server as additional fields\n for (let i = 0; i < properties.length; i++) {\n additionalFields['additional_field_' + i] = properties[i];\n }\n }\n\n $.ajax({\n type: \"POST\",\n url: this.props.url,\n async: false,\n data: {\n properties: {\n section_type: this.props.sectionType,\n section_id: this.props.sectionId,\n additional_fields: additionalFields\n }\n },\n success: (response) => {\n let items = [...this.state.items];\n items.push(response)\n this.setState({ items: items })\n this.setState({ currentItemProperties: this.state.defaultPropertyValues })\n }\n })\n }\n\n updateListItem(id, properties) {\n let additionalFields = {};\n switch(this.props.listType) {\n case \"CampaignBucket\":\n additionalFields.name = properties[0];\n additionalFields.filter_string = properties[1];\n break;\n case \"ConversionAction\":\n additionalFields.name = properties[0];\n additionalFields.conversion_id = properties[1];\n additionalFields.conversion_type = this.props.conversionType;\n break;\n default:\n // Just send all the passed in properties to the server as additional fields\n for (let i = 0; i < properties.length; i++) {\n additionalFields['additional_field_' + i] = properties[i];\n }\n }\n\n $.ajax({\n type: \"PATCH\",\n url: this.props.url + id,\n async: false,\n data: {\n properties: {\n section_type: this.props.sectionType,\n section_id: this.props.sectionId,\n additional_fields: additionalFields\n }\n }\n })\n }\n\n handleNewItemChange(event) {\n let properties = [];\n let inputs = event.target.parentElement.children\n for (let i = 0; i < inputs.length; i++) {\n let input = inputs[i];\n if (input.tagName == \"INPUT\") {\n properties.push(input.value);\n }\n }\n\n this.setState({\n currentItemProperties: properties\n });\n }\n\n render() {\n const newItemRow = this.state.currentItemProperties.map((property, index) => {\n return (\n \n );\n });\n const itemList = this.state.items.map((item) => {\n return (\n \n );\n });\n return (\n
\n {newItemRow}\n \n \n
\n );\n }\n}\n\nexport default List;\n","import React from 'react';\n\nclass ListItem extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n propertyNames: this.props.propertyNames,\n properties: [],\n checkStyle: \"none\"\n }\n\n this.state.propertyNames.forEach((element, index) => {\n this.state.properties[index] = \"\";\n });\n\n let item = this.props.item;\n\n switch(this.props.listType) {\n case \"CampaignBucket\":\n this.state.properties[0] = item.name;\n this.state.properties[1] = item.filter_string;\n break;\n case \"ConversionAction\":\n this.state.properties[0] = item.name;\n this.state.properties[1] = item.conversion_id;\n break;\n default:\n // Just map whatever the object passes in\n // Be very careful with this. It's only an emergency catching mechanism. The order cannot be ensured so saving will get fricked up\n let counter = 0;\n for (let prop in item) {\n if (Object.prototype.hasOwnProperty.call(item, prop) && prop != \"id\" && prop != \"section_id\" && prop != \"section_type\" && prop != \"created_at\" && prop != \"updated_at\") {\n this.state.properties[counter] = item[prop];\n counter += 1;\n }\n }\n }\n\n this.handleInputChange = this.handleInputChange.bind(this);\n }\n\n handleInputChange(event) {\n let properties = [];\n let inputs = event.target.parentElement.children\n for (let i = 0; i < inputs.length; i++) {\n let input = inputs[i];\n if (input.tagName == \"INPUT\") {\n properties.push(input.value);\n }\n }\n\n this.setState({\n properties: properties,\n checkStyle: \"inline-block\"\n });\n }\n\n render() {\n const itemRow = this.state.properties.map((property, index) => {\n return (\n \n );\n });\n return (\n
  • \n {itemRow}\n \n \n
  • \n );\n }\n}\n\nexport default ListItem;\n","import React from \"react\";\nimport MetricTableRow from \"MetricTableRow\";\nimport Table from \"react-bootstrap/Table\";\nimport { startCase, camelCase, cloneDeep } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { Stack, Lock, Unlock } from \"react-bootstrap-icons\";\n\nclass MetricTable extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n table: props.table,\n date: moment(props.date),\n headerOrder: this.props.headerOrder,\n compactView: this.props.userDefaultView && this.props.userDefaultView == \"compact_table_view\" ? true : false,\n width: window.innerWidth,\n lockColumns: {},\n selectedPlatform: this.props.selectedPlatform\n };\n }\n componentDidUpdate(prevProps) {\n if (prevProps.table !== this.props.table) {\n this.setState({\n table: this.props.table,\n });\n }\n }\n\n\n updateWidth = () => {\n this.setState({ width: window.innerWidth });\n };\n updateLock = (lockMetric, metricName) => {\n this.setState(\n (prevState) => ({ lockColumns: { ...prevState.lockColumns, [lockMetric]: !prevState.lockColumns[lockMetric] } }),\n () => {\n this.setState((prevState) => ({\n headerOrder: Object.values(prevState.lockColumns).includes(true)\n ? prevState.headerOrder.sort(function (x, y) {\n let metricTitleX = _.startCase(_.camelCase(x));\n if (metricTitleX.includes(\"Roas\")) {\n metricTitleX = metricTitleX.slice(0, -4) + metricTitleX.slice(-4).toUpperCase();\n }\n if (metricTitleX.includes(\"Aov\")) {\n metricTitleX = metricTitleX.slice(0, -3) + metricTitleX.slice(-3).toUpperCase();\n }\n\n if (metricTitleX.includes(\"Cpa\")) {\n metricTitleX = metricTitleX.slice(0, -3) + metricTitleX.slice(-3).toUpperCase();\n }\n if (metricTitleX.includes(\"Cvr\")) {\n metricTitleX = \"Conv. Rate\";\n }\n if (metricTitleX === \"Traffic\") {\n metricTitleX = \"Organic Traffic\";\n }\n let metricTitleY = _.startCase(_.camelCase(y));\n if (metricTitleY.includes(\"Roas\")) {\n metricTitleY = metricTitleY.slice(0, -4) + metricTitleY.slice(-4).toUpperCase();\n }\n if (metricTitleY.includes(\"Aov\")) {\n metricTitleY = metricTitleY.slice(0, -3) + metricTitleY.slice(-3).toUpperCase();\n }\n\n if (metricTitleY.includes(\"Cpa\")) {\n metricTitleY = metricTitleY.slice(0, -3) + metricTitleY.slice(-3).toUpperCase();\n }\n if (metricTitleY.includes(\"Cvr\")) {\n metricTitleY = \"Conv. Rate\";\n }\n if (metricTitleY === \"Traffic\") {\n metricTitleY = \"Organic Traffic\";\n }\n return prevState.lockColumns[`${metricTitleX}`] ? -1 : prevState.lockColumns[`${metricTitleY}`] ? 1 : 0;\n })\n : cloneDeep(this.props.headerOrder),\n }));\n }\n );\n };\n componentDidMount() {\n window.addEventListener(\"resize\", this.updateWidth);\n this.state.headerOrder.map((metricName, index) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n\n this.setState((prevState) => ({ lockColumns: { ...prevState.lockColumns, [metricTitle]: false } }));\n });\n }\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWidth);\n }\n render() {\n if (!this.props.table) return
    No Data To Display Yet!
    ;\n let months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n let mobileMonths = [\"Jan.\", \"Feb.\", \"Mar.\", \"Apr.\", \"May\", \"Jun.\", \"Jul.\", \"Aug.\", \"Sep.\", \"Oct.\", \"Nov.\", \"Dec.\"];\n const headerClass = this.props.ppc ? \"ppc-table-row-header\" : \" seo-table-row-header\";\n const renderHeader = this.state.headerOrder.map((metricName, index) => {\n let metricTitle = _.startCase(_.camelCase(metricName));\n\n if (metricTitle.includes(\"Roas\")) {\n metricTitle = metricTitle.slice(0, -4) + metricTitle.slice(-4).toUpperCase();\n }\n if (metricTitle.includes(\"Aov\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n\n if (metricTitle.includes(\"Cpa\")) {\n metricTitle = metricTitle.slice(0, -3) + metricTitle.slice(-3).toUpperCase();\n }\n if (metricTitle.includes(\"Cvr\")) {\n metricTitle = \"Conv. Rate\";\n }\n if (metricTitle === \"Traffic\") {\n metricTitle = \"Organic Traffic\";\n }\n return (\n \n {this.state.lockColumns[`${metricTitle}`] == true ? (\n <>\n \n
    \n

    {metricTitle}

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

    {metricTitle}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

      \n {personalInfo.job_title}:

      {personalInfo.name}
      \n

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

    ${props.company_name}

    \n

    \n

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

    \n
    \n

    ${info[0]}

    \n

    Tel: ${info[1].phone_number}

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

    ${props.company_name}

    \n

    \n

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

    \n
    \n

    ${info[0]}

    \n

    Tel: ${info[1].phone_number}

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

    ${props.company_name}

    \n

    Additional Users

    \n

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

    N/A

    :

    {department}

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

    {access}

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

    {access}

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

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

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

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

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

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

    PPC

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

    SEO

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

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

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

    Custom:

    \n

    Hover for details

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

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

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

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

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

    You can still login using your old Zoom credentials.

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

    Login to DataPulse

    \n

    Privacy Policy

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

    DataPulse

    \n

    Real-time metrics reporting

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

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

    \n
    \n

    Anytime, anywhere.

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

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

    support@digitalposition.com

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

    DataPulse Change History

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

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

      \n

      Read more

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

    Admin Settings

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

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

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

    Alert Subscriptions

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

    Subscriptions By Client

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

    {client.company_name}

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

    Subscriptions By User

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

    {selectedUser.name}

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

    {client.company_name}

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

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

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

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

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

    All set for now!

    \n
    \n

    \"{quote.text}\"

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

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

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

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

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

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

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

    Alert Summary

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

    All set for now!

    \n
    \n

    \"{quote.text}\"

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

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

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

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

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

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

    \n \n
    \n
    \n
    \n \n )}\n \n );\n }\n}\n\nexport default AlertSummary;\n","import React, { useState, useEffect } 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
    \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\" : \"\"}\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';\n\nexport default function Access() {\n\n const props = useContext(SettingsContext);\n\n let teamAccess = require(\"images/lite/icons/teamAccess.png\");\n teamAccess = (\n \"teamAccess\"\n );\n\n let handshake = require(\"images/lite/icons/handshake.png\");\n handshake = (\n \"handshake\"\n );\n\n\n const [clientUsers, setClientUsers] = useState(props.users ? props.users.clients : {})\n const [teamUsers, setTeamUsers] = useState(props.users ? props.users.employees : {})\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 );\n}\n","import React, { useContext, useState } from 'react';\nimport { SettingsContext } from './AccountSettingsButton';\nimport jsDig from 'utils/jsDig.js';\n\nexport default function AccountIds() {\n const props = useContext(SettingsContext);\n\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 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.svg\");\n amazonAdsIcon = ;\n\n let googleAdsId = jsDig([\"client_account\", \"platform_ids\", \"google_ads\"], props);\n let microsoftId = jsDig([\"client_account\", \"platform_ids\", \"microsoft\"], props);\n let metaId = jsDig([\"client_account\", \"platform_ids\", \"meta\"], props);\n let tiktokId = jsDig([\"client_account\", \"platform_ids\", \"tiktok\"], props);\n let googleAnalyticsId = jsDig([\"client_account\", \"platform_ids\", \"google_analytics\"], props);\n let semrushId = jsDig([\"client_account\", \"platform_ids\", \"semrush\"], props);\n let shopifyUrl = jsDig([\"client_account\", \"platform_ids\", \"shopify\"], props);\n let amazonAdsId = jsDig([\"client_account\", \"platform_ids\", \"amazon_ads\"], props);\n\n const [selectedOption, setSelectedOption] = useState(jsDig([\"ppc_section\", \"shopify_revenue_type\"], props));\n const [conversionObjective, setConversionObjective] = useState(jsDig([\"social_section\", \"conversion_objective\"], props));\n const [tiktokConversionObjective, setTiktokConversionObjective] = useState(jsDig([\"social_section\", \"tiktok_conversion_objective\"], props));\n\n const handleRadioChange = (value) => {\n setSelectedOption(value);\n };\n\n return (\n
    \n
    \n
    \n
    \n {GoogleAnalytics}

    Google Analytics

    \n
    \n
    \n

    Google Analytics ID

    \n \n
    \n
    \n
    \n
    \n {googleAds}

    Google Ads

    \n
    \n
    \n

    Google Ads ID

    \n \n
    \n
    \n
    \n
    \n {microsoftAds}

    Microsoft Ads

    \n
    \n
    \n

    Microsoft Ads ID

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

    Meta Ads

    \n
    \n
    \n

    Meta Ads ID

    \n \n
    \n
    \n

    Facebook Objective

    \n
    \n setConversionObjective(e.target.value)}>\n {Object.keys(props.facebook_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.facebook_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n
    \n
    \n
    \n
    \n
    \n {tiktokAds}

    TikTok Ads

    \n
    \n
    \n

    TikTok Ads ID

    \n \n
    \n
    \n

    TikTok Objective

    \n
    \n setTiktokConversionObjective(e.target.value)}>\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 {semrush}

    SEMRush

    \n
    \n
    \n

    SEMRush Target Location:

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

    SEMRush ID

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

    Shopify

    \n
    \n
    \n

    Shopify URL

    \n \n
    \n
    \n

    Shopify revenue type

    \n
    \n handleRadioChange(e.target.value)}\n />\n \n
    \n
    \n handleRadioChange(e.target.value)}\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
    \n {amazonAdsIcon}

    Amazon Ads

    \n
    \n
    \n

    Amazon Ads ID

    \n
    \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\n let cog = require(\"images/lite/icons/settings.png\");\n cog = (\n \"Settings\"\n );\n \n const [isModalOpen, setModalOpen] = useState(false);\n const toggleModal = () => setModalOpen(!isModalOpen);\n const [excludeNbInShoppingKeywords, setExcludeNbInShoppingKeywords] = useState(jsDig([\"client_account\", \"scripts\", \"exclude_nb_in_shopping\", \"keyword\"], props) || {});\n const [newUsers, setNewUsers] = useState([])\n\n const contextValue = {\n isModalOpen,\n newUsers,\n setNewUsers,\n toggleModal,\n excludeNbInShoppingKeywords,\n setExcludeNbInShoppingKeywords,\n ...props\n };\n\n return (\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';\n\nfunction AccountSettingsModal() {\n const modalRef = useRef();\n const { isModalOpen, toggleModal, client_logo, company_name, client_account, search_section, newUsers, excludeNbInShoppingKeywords, setExcludeNbInShoppingKeywords } = useContext(SettingsContext);\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n const [activeTab, setActiveTab] = useState('basicInfo');\n const [formSubmitted, setFormSubmitted] = useState(false);\n const [inflation, setInflation] = useState(search_section.daily_yields);\n\n const logo = \"Client;\n\n const handleFormSubmit = async (event) => {\n event.preventDefault();\n\n console.log(event)\n\n const formData = new FormData();\n formData.append('company_name', event.target.company_name.value);\n formData.append('client_website', event.target['websites[primary]'].value);\n formData.append('dashboard_objective', event.target.dashboard_objective.value);\n formData.append('base_currency', event.target.base_currency.value);\n formData.append('display_currency', event.target.display_currency.value);\n formData.append('client_account_id', client_account.id);\n formData.append('client_logo', event.target.client_logo.files[0]);\n formData.append('google_ads_id', event.target.google_ads_id.value);\n formData.append('microsoft_id', event.target.microsoft_id.value);\n formData.append('meta_id', event.target.meta_id.value);\n formData.append('tiktok_id', event.target.tiktok_id.value);\n formData.append('google_analytics_id', event.target.google_analytics_id.value);\n formData.append('shopify_url', event.target.shopify_url.value);\n formData.append('shopify_revenue_type', event.target.shopify_revenue_type.value);\n formData.append('facebook_conversion_objective', event.target.facebook_conversion_objective.value);\n formData.append('tiktok_conversion_objective', event.target.tiktok_conversion_objective.value);\n formData.append('semrush_target_location', event.target.semrush_target_location.value);\n formData.append('semrush_id', event.target.semrush_id.value);\n formData.append('shopify_country_filter', event.target.shopify_country_filter.value);\n formData.append('amazon_ads_id', event.target.amazon_ads_id.value);\n // Append script data\n formData.append('scripts[text_converting_query_mining_script]', event.target['scripts[text_converting_query_mining_script]'].checked ? '1' : '0');\n formData.append('scripts[em_bm_negative_overlap_script]', event.target['scripts[em_bm_negative_overlap_script]'].checked ? '1' : '0');\n formData.append('scripts[negative_dsa_sync_script]', event.target['scripts[negative_dsa_sync_script]'].checked ? '1' : '0');\n formData.append('scripts[keyword_cannibalization_script]', event.target['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]', event.target['scripts[exclude_nb_in_shopping][enabled]'].checked ? '1' : '0');\n // formData.append('scripts[exclude_nb_in_shopping][keyword]', event.target['scripts[exclude_nb_in_shopping][keyword]'].value);\n Object.keys(excludeNbInShoppingKeywords).forEach(key => {\n formData.append(`scripts[exclude_nb_in_shopping][keyword][${key}]`, excludeNbInShoppingKeywords[key]);\n });\n\n // For youtube_channel_excluder\n formData.append('scripts[youtube_channel_excluder][enabled]', event.target['scripts[youtube_channel_excluder][enabled]'].checked ? '1' : '0');\n formData.append('scripts[youtube_channel_excluder][google_sheet]', event.target['scripts[youtube_channel_excluder][google_sheet]'].value);\n formData.append('scripts[youtube_channel_excluder][allowed_countries]', event.target['scripts[youtube_channel_excluder][allowed_countries]'].value);\n formData.append('scripts[youtube_channel_excluder][impressions_time_range]', event.target['scripts[youtube_channel_excluder][impressions_time_range]'].value);\n formData.append('scripts[youtube_channel_excluder][impressions_threshold]', event.target['scripts[youtube_channel_excluder][impressions_threshold]'].value);\n\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 // Append new user data\nnewUsers.forEach((user, index) => {\n formData.append(`new_users[${index}][email]`, user.email);\n formData.append(`new_users[${index}][first_name]`, user.firstName);\n formData.append(`new_users[${index}][last_name]`, user.lastName);\n\n // Assuming accountAccessIds is an array of IDs\n user.accountAccessIds.forEach((id, idx) => {\n formData.append(`new_users[${index}][account_access_ids][${idx}]`, id);\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 console.log('Configuration saved successfully, but no data returned');\n } else {\n console.error('Failed to save configuration', await response.text());\n }\n } catch (error) {\n console.error('Network error:', 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 (formSubmitted) {\n // location.reload();\n }\n }, [formSubmitted]);\n\n return isModalOpen ? (\n
    \n
    \n
    e.stopPropagation()}>\n \n
    \n
    \n

    Account Configuration

    \n
    \n {logo}\n

    {company_name}

    \n
    \n
    \n
    \n
    \n setActiveTab('basicInfo')}\n >\n Basic Info & Settings\n \n setActiveTab('accountIds')}\n >\n Account IDs\n \n setActiveTab('access')}\n >\n Access\n \n setActiveTab('inflation')}\n >\n Inflation\n \n setActiveTab('scripts')}\n >\n Scripts\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n ) : null;\n }\n \n export default AccountSettingsModal;\n ","import React, { useState, useContext, useRef } from 'react';\nimport LiteCurrencySelector from './LiteCurrencySelector'; \nimport { SettingsContext } from './AccountSettingsButton'\nimport jsDig from 'utils/jsDig.js';\n\nexport default function Basic() {\n\n const props = useContext(SettingsContext);\n\n const [baseCurrency, setBaseCurrency] = useState(jsDig([\"client_account\", \"base_currency\"], props));\n const [displayCurrency, setDisplayCurrency] = useState(jsDig([\"client_account\", \"display_currency\"], props));\n const [dashboardObjective, setDashboardObjective] = useState(jsDig([\"client_account\", \"dashboard_objective\"], props));\n const [companyName, setCompanyName] = useState(jsDig([\"company_name\"], props));\n const [primarySite, setPrimarySite] = useState(jsDig([\"client_account\", \"websites\", \"primary\"], props));\n const [isPrimarySiteValid, setPrimarySiteValid] = useState(true);\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 const handlePrimarySiteChange = (event) => {\n const url = event.target.value;\n setPrimarySite(url);\n setPrimarySiteValid(validatePrimarySite(url));\n };\n \n\n let 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 [imageURL, setImageURL] = useState(props.client_logo ? props.client_logo : `/datapulse${defaultLogo}`);\n let companyLogo = ;\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 setDashboardObjective(e.target.value)}>\n \n \n \n
    \n
    \n

    In the majority of cases:

    \n
      \n
    • \"Sales\" will be most helpful for ecommerce.
    • \n
    • \"Conversions\" will be most helpful for lead gen.
    • \n
    \n
    \n
    \n
    \n
    \n

    Base Currency

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

    Display Currency

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

    Client Logo

    \n
    \n
    {companyLogo}
    \n
    \n {\n if (e.target.files[0].size > 10000000) {\n alert(\"Image must be less than 10MB. Consider use another image or compress this one.\");\n }\n console.log(e.target.files[0])\n setImageURL(URL.createObjectURL(e.target.files[0]));\n }}\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 LiteCurrencySelector from './LiteCurrencySelector'; \nimport { SettingsContext } from './AccountSettingsButton'\nimport CreateNewUser1 from './CreateNewUser1'\nimport jsDig from 'utils/jsDig.js';\n\n\nexport default function ClientUsers1(props) {\n\n const context = useContext(SettingsContext);\n\n let xIcon = require(\"images/lite/icons/x-close.png\");\n xIcon = (\n \"remove\"\n );\n\n\n\n return (\n
    \n
    \n {props.clientUsers.map((user, index) => (\n \n
    \n \n
    \n
    \n
    \n {xIcon}\n
    \n
    \n {user.active ? \"Active\" : \"Invited\"}\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 {findDOMNode} from 'react-dom'\n\nclass CreateNewUser1 extends React.Component {\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 }\n }\n\n\n clientButtonClick(event) {\n $('.client-button').addClass('selected');\n $('.employee-button').removeClass('selected');\n $('.employee-only-fields').hide();\n this.setState({ employeeType: \"client\" });\n }\n\n employeeButtonClick(event) {\n $('.employee-button').addClass('selected');\n $('.client-button').removeClass('selected');\n $('.employee-only-fields').show();\n this.setState({ employeeType: \"employee\" });\n }\n\n toggleAccess(event) {\n }\n\n accessAll(event) {\n let checkAll = event.target.checked;\n $('.client-list input[type=checkbox]').each((index, el) => {\n $(el).prop(\"checked\", checkAll)\n })\n }\n\n nextPage() {\n $(\".page-1\").hide();\n $(\".page-2\").show();\n }\n\n backPage() {\n $(\".page-2\").hide();\n $(\".page-1\").show();\n }\n\n searchClients(event) {\n let filter = event.target.value.toLowerCase().trim();\n let visibleClients = [];\n this.props.clients.forEach((client) => {\n let clientName = client.company_name.toLowerCase();\n if (clientName.includes(filter)) {\n visibleClients.push(client);\n }\n })\n this.setState({clients: visibleClients})\n }\n\n //=========================== FORM VALIDATION START ===================================\n handleSubmit = e => {\n e.preventDefault()\n const err = this.errorCheck()\n if (!err) {\n this.nextPage()\n }\n else {\n return\n }\n }\n\n errorCheck = () => {\n let isError = false\n const errors = {\n fNameError: \"\",\n lNameError: \"\",\n emailError: \"\"\n }\n\n if (this.state.first_name.length < 1) {\n isError = true\n errors.fNameError=\"First name cannot be empty\"\n }\n\n if (this.state.last_name.length < 1) {\n isError = true\n errors.lNameError= \"Last name cannot be empty\"\n }\n\n\n if (this.state.email.indexOf(\"@\") === -1 ) {\n isError = true\n errors.emailError = \"Valid email must contain @ symbol\"\n\n }\n if (isError){\n this.setState({\n ...this.state,\n ...errors\n })\n }\n return isError\n }\n\n change = e => {\n this.setState({\n [e.target.name]: e.target.value\n })\n }\n\n//=========================== FORM VALIDATION END ===================================\n\n\n render() {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n return (\n <>\n \n this.setState({show: false})}>\n
    \n \n
    \n \n Add New User - Basic Info\n \n \n {this.props.userType ? (\n \n \n

    Adding a {this.props.userType} employee

    \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 \n \n Employee Level:\n \n \n \n \n \n \n \n \n Employee Department:\n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n
    \n
    \n \n Add New User - Account Access\n \n \n

    Back to Basic Info

    \n
    \n
    \n \n this.searchClients(e)} placeholder=\"Search accounts...\" />\n
    \n
    \n
    \n {this.accessAll(e)}} className=\"custom-control-input\" id='toggle-all-access' />\n \n
    \n
    \n
    \n \n \n
      \n {\n this.state.clients.map((client) => {\n return (\n
    • \n \n
      \n {this.toggleAccess(e)}} name={`account_access_ids[${client.id}]`} className=\"custom-control-input\" id={`account-access-id-${client.id}`} />\n \n
      \n
      \n
    • \n )\n })\n }\n
    \n \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default CreateNewUser1;\n","import React, { useState, useRef, useContext } from \"react\";\nimport { SettingsContext } from './AccountSettingsButton';\nimport { Tooltip, OverlayTrigger, Row, Col, Button, Table, Form } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig.js\";\n\nexport default function Inflation() {\n const props = useContext(SettingsContext);\n const section = \"search\";\n const platforms = [\"Google\", \"Microsoft\"]\n const csvUploadRef = useRef();\n const lodashClonedeep = require(\"lodash/cloneDeep\");\n\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.search_section.daily_yields);\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 };\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(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 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","import React, { useState, useContext } from \"react\";\nimport { Col, Form } from \"react-bootstrap\";\nimport { SettingsContext } from './AccountSettingsButton'\nimport jsDig from \"utils/jsDig.js\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport default function ScriptBoxes(props) {\n\n const context = useContext(SettingsContext);\n \n\n const [youtubeChannelExcluderData, setYoutubeChannelExcluderData] = useState(jsDig([\"client_account\", \"scripts\", \"youtube_channel_excluder\"], props) || {});\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 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 const handleLocalChange = (key, value) => {\n setLocalKeywords(prevKeywords => ({\n ...prevKeywords,\n [key]: value\n }));\n};\n\nconst handleBlur = () => {\n context.setExcludeNbInShoppingKeywords(localKeywords);\n};\n\n return (\n <>\n {props.scripts.map((script) => {\n console.log(`[scripts][${script.name}]`)\n return (\n \n {script.name == \"exclude_nb_in_shopping\" ? (\n \n
    \n
    \n
    \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 \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 handleScriptPropertyInput(e, \"google_sheet\", youtubeChannelExcluderData, setYoutubeChannelExcluderData)}\n placeholder=\"https://docs.google.com/spreadsheets/...\"\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 handleScriptPropertyInput(e, \"allowed_countries\", youtubeChannelExcluderData, setYoutubeChannelExcluderData)}\n placeholder=\"^US$\"\n />\n
    \n \n Impressions Time Range\n

    Select a predefined time range.

    \n
    \n handleScriptPropertyInput(e, \"impressions_time_range\", youtubeChannelExcluderData, setYoutubeChannelExcluderData)}\n placeholder=\"LAST_7_DAYS\"\n >\n \n \n \n \n \n
    \n
    \n \n Impressions Threshold\n

    Minimum number of impressions to consider a channel for exclusion.

    \n handleScriptPropertyInput(e, \"impressions_threshold\", youtubeChannelExcluderData, setYoutubeChannelExcluderData)}\n placeholder=\"Default: 10\"\n />\n
    \n
    \n
    \n \n ) : (\n \n
    \n
    \n
    \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

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

    Client Management

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

    \n Collapse Section \n

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

    What is the name of the company for this account?

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

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

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

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

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

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

    {this.props.sectionTitle}

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

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

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

    Select view:

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

    \n {this.props.sectionTitle}\n

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

    Collapse Section 

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

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

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

    Your data pull has completed but data is recalculating

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

    {capitalize(platform)}:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {campaignGroup.name}

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

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

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

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

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

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

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

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

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

    No spend data.

    ;\n }\n default:\n return

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

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

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

    \n ) : (\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {metricKey} was not found in cc_data

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

    {metricName} not defined in metricData.json

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

    {capitalize(channel)}

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

    {metricName} not defined in metricData.json

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

    There is no data for {channel}

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

    {campaignGroup.name}

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

    {metricName} not defined in metricData.json

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

    {metricKey} was not found in cc_data

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

    {metricName} not defined in metricData.json

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

    No spend data.

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

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

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

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

    \n ) : (\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {campaignGroup.name}

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

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

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

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

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

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

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

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

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

    No spend data.

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

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

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

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

    \n ) : (\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {campaignGroup.name}

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

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

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

    {metricName} not defined in metricData.json

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

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

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

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

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

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

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

    No spend data.

    ;\n }\n default:\n return

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

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

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

    \n ) : (\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {campaignGroup.name}

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

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

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

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

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

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

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

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

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

    No spend data.

    ;\n }\n default:\n return

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

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

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

    \n ) : (\n

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

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

    Client Type:

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

    Client Type:

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

    Client Type:

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

    Client Type:

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

    Client Type:

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

    {props.metricName} (Y/Y)

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

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

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

    Your data pull has completed but data is recalculating

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

    {capitalize(platform)}:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {landingPageGroup.name}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    \n ) : (\n

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

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

    Client Type:

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

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

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

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

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

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

    \n\n
    \n
    \n
    \n
    \n )\n }\n }\n\n}\n\nexport default ServiceDisabled;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Button, Col, Row, Form, Container } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { capitalize } from \"lodash-es\";\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\", \"Total\", \"YTD\"];\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 return (\n <>\n
    \n
    \n \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n
    \n

    Creative Links

    \n
    \n
    \n

    Amazon Dashboard

    \n
    \n
    \n

    LOGO

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

    Total Revenue L60D

    \n \n
    \n
    \n

    Total ROAS L60D

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

    Ad Spend L60D

    \n \n
    \n
    \n

    Ad Revenue 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
    \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 \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 from 'react';\nimport {\n Chart as ChartJS,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend,\n} from 'chart.js';\nimport { Line } from 'react-chartjs-2';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend\n);\n\nimport jsDig from 'utils/jsDig';\n\nexport default function LiteLineChart(props) {\n console.log(props)\n const options = {\n responsive: true,\n plugins: {\n legend: {\n position: 'bottom',\n labels: { \n padding: 20,\n font: {size: 16, family: 'nunito-regular'}\n }\n },\n title: {\n display: false,\n },\n },\n scales: {\n x: {\n ticks: {\n maxTicksLimit: 5,\n maxRotation: 0,\n autoSkip: true,\n font: {size: 14, family: 'nunito-regular'},\n },\n grid: {\n display: true,\n },\n },\n y: {\n ticks: {\n font: {size: 16, family: 'nunito-regular'}\n },\n grid: {\n drawBorder: false,\n },\n },\n },\n };\n \n const labels = props.labels\n \n let data = {\n labels,\n datasets: [],\n };\n\n props.datasetNames && props.datasetNames.forEach((name, index) => {\n let color = \"\";\n if (index == 0) {\n color = \"rgba(33,35,72,1)\";\n } else if (index == 1 && props.datasetNames.length == 2) {\n color = \"rgba(140,140,140,1)\";\n } else if (index == 1 && props.datasetNames.length > 2) {\n color = \"rgba(50,145,193,1)\";\n } else if (index == 2) {\n color = \"#F0F3BD\";\n } else if (index == 3) {\n color = \"#F2CD5D\";\n } else if (index == 4) {\n color = \"#AEF3E7\";\n } else if (index == 5) {\n color = \"#69EBD0\";\n } else if (index == 6) {\n color = \"#FFD23F\";\n } else {\n color = \"rgba(140,140,140,1)\";\n }\n data.datasets.push({\n label: name,\n data: labels.map((day, index) => jsDig([name, index], props.data)),\n borderColor: color,\n backgroundColor: color,\n });\n });\n\n return (\n
    \n \n
    \n )\n}","import React, { useState } from \"react\";\nimport { startCase, toLower } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\nimport { Button, Menu, MenuItem } from \"@material-ui/core\";\n\nexport default function LiteMetricTable(props) {\n console.log(props)\n const [showDropdown, setShowDropdown] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState(props.groups && props.groups.length > 0 ? props.groups[0] : null);\n\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 renderTableHeader = () => {\n return (\n <>\n \n {props.groups && props.groups.length > 0 ? renderGroupSelector() : null}\n {props.headerOrder.map((metric, index) => {\n return {getColumnName(metric)};\n })}\n \n \n \n {props.headerOrder.map((metric) => {\n return props.subHeaderOrder.map((subHeader, index) => {\n return {subHeader};\n })\n })}\n \n \n )\n };\n\n // Function to render table rows\n const renderTableRows = () => {\n return props.dimensions.map((dim) => {\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 return (\n \n {metricValue ? \n formatCells(metricValue, metricName) : \n <>\n {props.skipPrev ? \n <>\n  \n  \n : \n <>\n  \n  \n  \n }\n \n }\n \n );\n })}\n \n );\n })\n };\n\n // Helper function to format individual metric\n const formatCells = (metric, metricName) => {\n return (\n <>\n {props.skipPrev ? <> : {formatMetric(metricName, metric['previous'], false)}}\n {formatMetric(metricName, metric['current'], false)}\n {formatMetric(metricName, metric['comparison'], true)}\n \n );\n };\n\n const formatMetric = (metric, value, isComparison = false) => {\n const monetaryMetrics0Precision = [\"spend\", \"revenue\"]\n const monetaryMetrics2Precision = [\"roas\", \"cpa\", \"mer\"]\n const standardMetrics2Precision = [\"frequency\"]\n const percentageMetrics2Precision = [\"conversion_rate\", \"open_rate\", \"ctr\", \"bounce_rate\", \"email_list_growth\"]\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 (isComparison) {\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 (monetaryMetrics0Precision.includes(metric)) {\n prefix = \"$\";\n }\n if (monetaryMetrics2Precision.includes(metric)) {\n precision = 2;\n prefix = \"$\";\n }\n }\n\n function addCommasToNumber(input) {\n return input.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '$&,') + (value.length == 2 ? '.' + value[1] : '')\n }\n\n value = parseFloat(value);\n\n value = value.toFixed(precision);\n value = value.toString().split('.')\n value = addCommasToNumber(value[0])\n\n value = Number.isFinite(parseFloat(value)) ? value.toString() : \"\"\n\n let finalValue = `${prefix}${value}${suffix}`\n finalValue = finalValue.replace('$-', '-$')\n\n return finalValue;\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 return (\n \n \n \n \n \n {renderTableHeader()}\n \n {renderTableRows()}\n
    \n {props.tableName}\n
    \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport ProgressBar from 'dashboards/lite/ProgressBar';\n\nconst LiteRefresh = ({ currentDashboard, accountId }) => {\n const [showMenu, setShowMenu] = useState(false);\n const [loading, setLoading] = useState(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(null);\n const [dataPullComplete, setDataPullComplete] = useState(false);\n const [pullOnlyShopify, setPullOnlyShopify] = useState(false);\n \n useEffect(() => {\n const intervalId = loading ? setInterval(() => {\n fetchRefreshStatus(totalQueries);\n }, 10000) : 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 && (\n
    \n
    Refreshing data...
    \n
    Total Jobs: {totalQueries}
    \n \n
    \n )}\n {dataPullComplete && (\n // Show a message and a juicy green check mark\n
    Data pull complete!
    \n )}\n
    \n setShowMenu(!showMenu)}\n disabled={loading}\n >\n {loading ? (\n \"Buffering\"\n ) : (\n // Assuming you're using Font Awesome for icons\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, { useState, useEffect, useRef } from \"react\";\nimport { Button, Col, Row, Form, Container } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport LiteKeywordTable from \"dashboards/lite/LiteKeywordTable\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { capitalize } from \"lodash-es\";\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\", \"Total\", \"YTD\"];\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 return (\n <>\n
    \n
    \n \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n
    \n

    Creative Links

    \n
    \n
    \n

    Organic Search Dashboard

    \n
    \n
    \n

    LOGO

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

    Organic Traffic L60D

    \n \n
    \n
    \n

    Organic Revenue L60D

    \n \n
    \n
    \n\n
    \n
    \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","import React, { useState, useEffect, useRef } from \"react\";\nimport { Button, Col, Row, Form, Container } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { capitalize } from \"lodash-es\";\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\", \"Total\", \"YTD\"];\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 return (\n <>\n
    \n
    \n \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n
    \n

    Creative Links

    \n
    \n
    \n

    Organic Social Dashboard

    \n
    \n
    \n

    LOGO

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

    Organic Social Traffic L60D

    \n \n
    \n
    \n

    Organic Social Revenue L60D

    \n \n
    \n
    \n

    Organic Social Traffic By Source L60D

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

    Followers (vs. last week)

    \n
    \n
    \n

    Facebook

    \n 0\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n

    Total Followers 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 \n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Button, Col, Row, Form, Container } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { capitalize } from \"lodash-es\";\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\", \"Total\", \"YTD\"];\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 return (\n <>\n
    \n
    \n \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n
    \n

    Creative Links

    \n
    \n
    \n

    Other Dashboard

    \n
    \n
    \n

    LOGO

    \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 \n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Button, Col, Row, Form, Container } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { capitalize } from \"lodash-es\";\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\", \"Total\", \"YTD\"];\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 return (\n <>\n
    \n
    \n \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n
    \n

    Creative Links

    \n
    \n
    \n

    Overview Dashboard

    \n
    \n
    \n

    LOGO

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

    Ad Spend L60D

    \n \n
    \n
    \n

    Revenue

    \n \n
    \n
    \n

    MER L60D

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

    Website Traffic L60D

    \n \n
    \n
    \n

    CVR L60D

    \n \n
    \n
    \n

    AOV L60D

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

    Marketing Spend Funnel Allocation

    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n );\n}\n","import React from 'react';\n\nconst ProgressBar = ({ progress }) => {\n const fillerStyles = {\n height: '100%',\n width: `${progress}%`,\n backgroundColor: '#42ba96', // Choose a juicy color!\n borderRadius: 'inherit',\n textAlign: 'right',\n transition: 'width 1s ease-in-out', // Smooth transition for the \"juicy\" feel\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n paddingRight: 5, // Padding to ensure the label does not touch the edges\n };\n\n const labelStyles = {\n padding: 5,\n color: 'white',\n fontWeight: 'bold',\n fontSize: '10px'\n };\n\n return (\n
    \n
    \n {`${progress}%`}\n
    \n
    \n );\n};\n\nexport default ProgressBar;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { Button, Col, Row, Form, Container } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { capitalize } from \"lodash-es\";\n\nexport default function SearchDashboard(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\", \"Total\", \"YTD\"];\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 return (\n <>\n
    \n
    \n \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n
    \n

    Creative Links

    \n
    \n
    \n

    Paid Search Dashboard

    \n
    \n
    \n

    LOGO

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

    Search Spend L60D (infl.)

    \n \n
    \n
    \n

    Search Revenue L60D (infl.)

    \n \n
    \n
    \n

    Search ROAS 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 \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\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { capitalize } from \"lodash-es\";\n\nexport default function SocialDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"Total\", \"YTD\"];\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 return (\n <>\n
    \n
    \n \n
    \n
    \n Last refresh: {props.last_data_pull ? lastDataPull : \"Never\"}\n
    \n
    \n
    \n

    Creative Links

    \n
    \n
    \n

    Paid Social Dashboard

    \n
    \n
    \n

    LOGO

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

    Social Spend L60D

    \n \n
    \n
    \n

    Social Revenue L60D

    \n \n
    \n
    \n

    Social ROAS 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 \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 !== \"owner\" ? user.role.toLowerCase().replace(\"_\", \" \") : user.role\n const tempDepartment = !user.department ? \"no_department\" : user.department.toLowerCase().replace(\"_\", \" \")\n if (tempName.includes(filteredInput.toLowerCase()) || tempEmail.includes(filteredInput.toLowerCase()) || tempDepartment.includes(filteredInput.toLowerCase()) || tempRole.includes(filteredInput.toLowerCase()) || filteredInput === \"\")\n return (\n \n \n \n \n \n \n \n { props.isOwner && }\n \n )})\n } \n \n
    ID #NameEmailRoleDepartment
    {user.id}{user.name}{user.email}\n {\n user.role === \"owner\" ?\n <>\n

    Owner

    \n \n\n \n :\n\n \n {\n roles.map((el) => {\n //This is formatting items such as DP_Employee and Client_Employee to remove underscores and mention of DP\n let tempRole = el.replace(\"dp_\", \"\").replace(\"_\", \" \")\n let tempRoleFormatted = []\n for (let i = 0; i < tempRole.length; i++) {\n if (i === 0) {\n tempRoleFormatted.push(tempRole[i].toUpperCase())\n }\n else if (tempRole[i - 1] === \" \") {\n tempRoleFormatted.push(tempRole[i].toUpperCase())\n }\n else {\n tempRoleFormatted.push(tempRole[i])\n }\n }\n return (\n \n )\n })} \n \n }\n
    \n \n \n { \n departments.map((el) => {\n let tempDepartment = el.replace(\"_\", \" \")\n let tempDepartmentFormatted = []\n for (let i = 0; i < tempDepartment.length; i++) {\n if (i === 0) {\n tempDepartmentFormatted.push(tempDepartment[i].toUpperCase())\n }\n else if (tempDepartment[i - 1] === \" \") {\n tempDepartmentFormatted.push(tempDepartment[i].toUpperCase())\n }\n else {\n tempDepartmentFormatted.push(tempDepartment[i])\n }\n }\n return (\n \n )\n })\n }\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n );\n}\n","import React from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport MonthlyPpcSection from \"./MonthlyPpcSection\";\n\nfunction MonthlyPpcReport(props) {\n const page = props.page;\n const dashboard = props.dashboard;\n if (page) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"]\n .map((metric) => metric)\n .filter((value, index, self) => self.findIndex((el) => el.section == value.section && el.service == value.service) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section, index) => {\n sections.push({\n name: section.section,\n service: section.service,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section.section && m[\"service\"] == section.service)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n return (\n \n {sections.map((section, index) => {\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n } else {\n return (\n <>\n )\n }\n}\nexport default MonthlyPpcReport;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\nconst allMetricData = allMetrics();\nexport default function MonthlyPpcSection(props) {\n const section = props.section;\n let cc_data = props[`${props.section.service}_section`].cc_data;\n const baseCurrency = jsDig([`${props.section.service}_section`, 'base_currency'], props)\n const displayCurrency = jsDig([`${props.section.service}_section`, 'display_currency'], props)\n const dashboard = props.dashboard;\n const metricData = allMetricData[\"metricData\"];\n const goalChartDim = \"120x120\";\n const lineChartDim = \"350x250\";\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const tablesPerRow = 1;\n\n let date = props.date ? moment(props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = props[`${props.section.service}_section`].goals;\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n KPI's vs Goals{\" \"}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n \n
    \n {section.service == \"ppc\" ? \"All PPC\" : section.service == \"seo\" ? \"SEO\" : capitalize(section.service)}\n
    \n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n let Formatter = GetFormatter({ metricName: metricKey });\n\n return (\n \n {jsDig([dashboard, metricKey, \"raw\"], cc_data) != null && section.metrics_data[metricName] == \"1\" ? (\n \n ) : (\n

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

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

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

    \n );\n }\n })}\n
    \n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n PPC Performance: {props.section.service == \"ppc\" ? \"All PPC\" : capitalize(props.section.service)}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n {props.sectionIndex == 1 && props.section.service == \"ppc\" &&

    PPC Performance: All PPC

    }\n

    Primary KPI's (charts)

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n PPC Performance: {props.section.service == \"ppc\" ? \"All PPC\" : capitalize(props.section.service)}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (tables)

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n\n default:\n return (\n <>\n

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

    \n \n );\n }\n }\n}\n","import React from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nexport default function MonthlyReportIntro(props) {\n const datapulseLogo = require(\"images/logos/datapulse-logo-blue.png\");\n const ppcEnabled = jsDig([\"search_section\", \"enabled\"], props) || jsDig([\"social_section\", \"enabled\"], props) || jsDig([\"display_section\", \"enabled\"], props) || jsDig([\"video_section\", \"enabled\"], props)\n const seoEnabled = jsDig([\"seo_section\", \"enabled\"], props)\n\n return (\n \n

    \n \n

    \n

    {props.client_name}

    \n
    Performance Snapshot for
    \n

    {props.date_formatted}

    \n
    \n

    In this reivew, we'll walk through {props.date_formatted}'s performance in regard to:

    \n {ppcEnabled && (\n <>\n
    PPC Performance
    \n
      \n
    • KPI's vs. Goals
    • \n
    • Overview of all PPC performance
    • \n
    • Overview of PPC sub-services
    • \n
    \n \n )}\n {seoEnabled && (\n <>\n
    SEO Performance
    \n
      \n
    • Overview of all SEO performance
    • \n
    \n \n )}\n
    \n
    \n );\n}\n","import React from \"react\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nexport default function MonthlyReportOutro(props) {\n return (\n \n
    \n

    Any questions about your monthly report? Ask your account leads.

    \n

    More detailed data can be found by logging into DataPulse

    \n
      \n
    • Campaign groups
    • \n
    • Spend allocation
    • \n
    • & more!
    • \n
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport MonthlyPpcReport from \"./MonthlyPpcReport\";\nimport MonthlySeoReport from \"./MonthlySeoReport\";\nimport MonthlyReportIntro from \"./MonthlyReportIntro\";\nimport MonthlyReportOutro from \"./MonthlyReportOutro\";\n\nconst allMetricData = allMetrics();\n\nexport default function MonthlyReportPdf(props) {\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const kpiBlocksPerRow = 4;\n const metricsPerTable = 4;\n const goalRowHeight = 119;\n const chartRowHeight = 300;\n const tableRowHeight = 315;\n const kpiBlockRowHeight = 200;\n const keywordRankingRowHeight = 25;\n const checkPpcSections = (name) => {\n return props.ppc_section[name] || props.search_section[name] || props.social_section[name] || props.display_section[name] || props.video_section[name];\n };\n const dashboard = props.dashboard;\n const seo_cc_data = props.seo_section.cc_data;\n const allServices = [\"ppc\", \"search\", \"social\", \"display\", \"video\", \"seo\"];\n let dashboardOrders = [];\n allServices.forEach((service) => {\n const defaultMetrics = jsDig([\"metricsByDashboard\", service, \"defaults\", props.client_type], allMetricData);\n if (jsDig([`${service}_section`, \"dashboard_order\", dashboard], props) && jsDig([`${service}_section`, \"dashboard_order\", dashboard], props).length > 0) {\n dashboardOrders.push(\n cloneDeep(jsDig([`${service}_section`, \"dashboard_order\", dashboard], props)).map((obj) => {\n obj[\"service\"] = service;\n return obj;\n })\n )\n } else {\n const sectionList = jsDig([\"metricsByDashboard\", service, \"sections\"], allMetricData);\n dashboardOrders.push(\n Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n service: service,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n })\n );\n }\n });\n\n // Rearrange goal sections and put them all on the first dashboardOrder\n let goalsAndProjections = [];\n dashboardOrders.forEach((dbOrd, index) => {\n dbOrd.forEach((section, sectionIndex) => {\n if (section.name == \"goalsAndProjections\") {\n goalsAndProjections.push(section)\n dashboardOrders[index].splice(sectionIndex, 1)\n }\n })\n });\n dashboardOrders.unshift(goalsAndProjections)\n \n // Removing irrelevant sections\n dashboardOrders = dashboardOrders.map((dashboardOrder) => {\n return (dashboardOrder.filter((item) => {\n return (\n (item.name !== \"allKpisVsPreviousYear\") &&\n (item.name !== \"performanceByChannel\") &&\n (item.name !== \"campaignGroups\") &&\n (item.name !== \"spendAllocation\") &&\n (item.name !== \"keywordGroups\") &&\n (item.name !== \"keywordSummary\") &&\n (item.name !== \"landingPageBreakdown\")\n )\n }))\n });\n \n // Separate ppc & seo dashboard orders for processing\n let seoDashboardOrder = dashboardOrders[dashboardOrders.length - 1];\n dashboardOrders.pop();\n\n // Removing irrelevant sections\n seoDashboardOrder = seoDashboardOrder.filter((item) => {\n return ((item.name !== \"allKpisVsPreviousYear\") && (item.name !== \"keywordGroups\") && (item.name !== \"keywordSummary\") && (item.name !== \"goalsAndProjections\") && (item.name !== \"landingPageBreakdown\"))\n });\n \n // PDFs can't be processed section props.keyword_sort section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let seoPages = [];\n let ppcPages = [];\n let keepingTrack = [];\n let currentPage = 0;\n\n // Process PPC dashboard order\n dashboardOrders.forEach((dashboardOrder) => {\n for (const [index, section] of dashboardOrder.entries()) {\n console.log(section, \"section\")\n if (jsDig([`${section.service}_section`, \"enabled\"], props) || (section.service == \"ppc\" && checkPpcSections(\"enabled\"))) {\n if (section.enabled) {\n if (section.metrics_data) {\n keepingTrack.push(section);\n if (\n section.name != \"goalsAndProjections\" &&\n jsDig([keepingTrack.length - 2, \"name\"], keepingTrack) != \"goalsAndProjections\" &&\n keepingTrack.length > 1 &&\n jsDig([keepingTrack.length - 2, \"service\"], keepingTrack) != jsDig([keepingTrack.length - 1, \"service\"], keepingTrack)\n ) {\n console.log(\"Service has changed\")\n //initialize new page\n currentPage += 1;\n if (!ppcPages[currentPage]) {\n console.log(\"Initialized new page\");\n ppcPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = goalsPerRow;\n elementHeight = goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = chartsPerRow;\n elementHeight = chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = metricsPerTable;\n elementHeight = tableRowHeight;\n } else {\n return section.name;\n }\n\n // Create pages array\n let metricNames = Object.keys(section.metrics_data ? section.metrics_data : {});\n metricNames.forEach((metricName, metricIndex) => {\n if (!ppcPages[currentPage]) {\n ppcPages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n ppcPages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0) {\n let maxPageHeight = 971;\n if (\n (elementHeight + ppcPages[currentPage][\"pageHeight\"] > maxPageHeight) || \n (section.name !== \"goalsAndProjections\" && jsDig([keepingTrack.length - 2, \"name\"], keepingTrack) == \"goalsAndProjections\")\n ) {\n //initialize new page\n currentPage += 1;\n if (!ppcPages[currentPage]) {\n console.log(\"Initialized new page\");\n ppcPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n ppcPages[currentPage][\"pageHeight\"] += elementHeight;\n }\n ppcPages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n service: section.service,\n });\n console.log(metricName, \"metric\", cloneDeep(ppcPages))\n });\n }\n }\n }\n }\n });\n\n // Process SEO dashboard order\n currentPage = 0;\n for (const [index, section] of seoDashboardOrder.entries()) {\n console.log(section, \"section\")\n if (jsDig([\"seo_section\", \"enabled\"], props)) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = chartsPerRow;\n elementHeight = chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = metricsPerTable;\n elementHeight = tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = kpiBlocksPerRow;\n elementHeight = kpiBlockRowHeight;\n } else if (section.name == \"backlinks\") {\n elementsPerRow = kpiBlocksPerRow;\n elementHeight = kpiBlockRowHeight;\n } else if (section.name == \"keywordRankings\") {\n elementsPerRow = 1;\n elementHeight = keywordRankingRowHeight;\n } else {\n return section.name;\n }\n\n if (section.name == \"keywordRankings\") {\n metricNames = jsDig([dashboard, \"keyword_rankings\"], seo_cc_data).map((ranking) => ranking[\"keyword\"]);\n }\n\n metricNames.forEach((metricName, metricIndex) => {\n if (!seoPages[currentPage]) {\n seoPages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n seoPages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0) {\n let maxPageHeight = 971;\n if (elementHeight + seoPages[currentPage][\"pageHeight\"] > maxPageHeight) {\n currentPage += 1;\n if (!seoPages[currentPage]) {\n console.log(\"Initialized new page\");\n seoPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n if (section.name == \"keywordRankings\") {\n //for table head\n seoPages[currentPage][\"pageHeight\"] += 25;\n }\n }\n\n seoPages[currentPage][\"pageHeight\"] += elementHeight;\n }\n seoPages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n console.log(metricName, \"metric\")\n });\n }\n }\n }\n }\n\n // Separate goals page from ppc pages\n let goalPage = ppcPages.length > 0 ? [ppcPages.shift()] : []\n\n console.log(seoPages, \"seoPages\")\n console.log(ppcPages, \"ppcPages\")\n console.log(goalPage, \"goalPage\")\n\n // Pages start at 1 to account for intro page\n let pageNumber = 1;\n return (\n <>\n \n {goalPage.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n }\n\n {checkPpcSections(\"enabled\") && jsDig([dashboard, \"date\"], props.ppc_section.cc_data) && (\n ppcPages.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n )}\n\n {props.seo_section.enabled && jsDig([dashboard, \"date\"], seo_cc_data) && (\n seoPages.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n )}\n \n \n );\n}\n","import React from \"react\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport MonthlySeoSection from \"./MonthlySeoSection\";\n\nexport default function MonthlySeoReport(props) {\n const page = props.page;\n const seo_cc_data = props.seo_cc_data;\n const dashboard = props.dashboard;\n\n if (page) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n return (\n \n {sections.map((section, index) => {\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n } else {\n return (\n <>\n )\n }\n}\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport PdfKPIMetricBlock from \"dashboards/PdfKPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport PdfKeywordTable from \"dashboards/PdfKeywordTable\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\nconst allMetricData = allMetrics();\n\nexport default function MonthlySeoSection(props) {\n const goalChartDim = \"135x135\";\n const lineChartDim = \"350x250\";\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const tablesPerRow = 1;\n const section = props.section;\n const cc_data = props.cc_data;\n const dashboard = props.dashboard;\n const metricData = allMetricData[\"metricData\"];\n let date = props.date ? moment(props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n function categorize(string) {\n if (string.includes(\"landingPageGroups\")) {\n landingPageCase = string;\n }\n if (string.includes(\"keywordGroups\")) {\n keywordCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"seo\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let seoGoals = props.seo_section.goals;\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], seoGoals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (charts)

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (tables)

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"backlinks\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Backlinks

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"keywordRankings\":\n let sortedKeywords = jsDig([dashboard, \"keyword_rankings\"], cc_data);\n switch (props.keyword_sort) {\n case \"keyword\":\n sortedKeywords.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n break;\n case \"prevpos\":\n sortedKeywords.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n break;\n case \"currentpos\":\n sortedKeywords.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n break;\n case \"diff\":\n sortedKeywords.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n break;\n case \"cpc\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n break;\n case \"volume\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n break;\n case \"difficulty\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n break;\n }\n if (!props.seo_section.keyword_sort_order_asc) {\n sortedKeywords.reverse();\n }\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Keyword Listings

    \n el.name == \"keywordRankings\")}\n keyword_sort_order_asc={props.seo_section.keyword_sort_order_asc}\n keyword_sort={props.seo_section.keyword_sort}\n pdf={true}\n />\n \n );\n default:\n return

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

    ;\n }\n }\n}\n","import React from \"react\";\n\nclass PDFPage extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n componentDidMount() {}\n\n render() {\n const logo = require(\"images/logos/dp-logo-small.png\");\n return (\n
    \n
    {this.props.children}
    \n
    \n {/* {this.props.hideLogo ? (\n \n ) : (\n <>\n \n \n )} */}\n\n

    {this.props.pageNumber}

    \n
    \n
    \n );\n }\n}\n\nexport default PDFPage;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfDisplay extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

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

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

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

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

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

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

    By Device

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

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

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

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

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

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

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Display Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"display\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"display\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfDisplay;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { cloneDeep, capitalize, camelCase } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"../utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfOverall extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

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

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

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

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

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"performanceByChannel\":\n const channels = renderArray.map((channel) => {\n if (section.metrics_data[`${channel}`] == \"1\") return channel;\n });\n\n return (\n
    \n

    Performance By Channels

    \n {[\"search\", \"social\", \"display\", \"video\"].map((channel, index) => {\n let metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"total_conversions\", \"total_roas\"]\n : [\"spend\", \"clicks\", \"total_conversions\", \"cpa\"];\n if (channel == \"search\") {\n metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"click_conversions\", \"click_roas\"]\n : [\"spend\", \"clicks\", \"click_conversions\", \"cpa\"];\n }\n\n if (channels.includes(channel)) {\n let tempMetricNames = [];\n return (\n
    \n \n

    {capitalize(channel)}

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

    {metricName} not defined in metricData.json

    ;\n }\n\n tempMetricNames.push(metricName);\n })}\n\n \n \n \n
    \n
    \n );\n }\n })}\n
    \n );\n case campaignGroupCase:\n const sections = renderArray.map((channel) => {\n if (section.metrics_data[`${channel}`] == \"1\") return channel;\n });\n\n return (\n <>\n

    Campaign Groups

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

    {campaignGroup.name}

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

    {metricName} not defined in metricData.json

    ;\n }\n\n tempMetricNames.push(metricName);\n })}\n\n {[...Array(Math.ceil(metricNames.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n
    \n );\n }\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

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

    By Device

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

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

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

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

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

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

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} PPC Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return <>{this.generatePdfSection(section, cc_data, dashboard)};\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = this.props.dashboard;\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"ppc\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"ppc\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"performanceByChannel\") {\n elementsPerRow = 1;\n elementHeight = this.groupTableRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = 1;\n elementHeight = this.groupTableRowHeight;\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n let metricNames = Object.keys(section.metrics_data);\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.search_section.enabled || this.props.social_section.enabled || this.props.display_section.enabled || this.props.video_section.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return ;\n }\n }\n}\n\nexport default PPCPdfOverall;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfSearch extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

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

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

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

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

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

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

    By Device

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

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

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

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

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

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

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Search Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"search\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"search\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n console.log(\"Pages:\");\n console.log(pages);\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfSearch;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfSocial extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

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

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

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

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

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

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

    By Device

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

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

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

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

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

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

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Social Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"social\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"social\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfSocial;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummaryDisplay extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.display_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.display_metrics);\n const firstKey = clients[0];\n const displayMetrics = Object.keys(this.props.display_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n displayMetrics.map((metricName) => {\n let mValue = this.props.display_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Display

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryDisplay;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nclass PPCPdfSummaryOverall extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.search_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.search_metrics);\n const firstKey = clients[0];\n const searchMetrics = Object.keys(this.props.search_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n searchMetrics.map((metricName) => {\n let mValue = this.props.search_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Search

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryOverall;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummarySearch extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.search_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.search_metrics);\n const firstKey = clients[0];\n const searchMetrics = Object.keys(this.props.search_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n searchMetrics.map((metricName) => {\n let mValue = this.props.search_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Search

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummarySearch;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummarySocial extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.social_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.social_metrics);\n const firstKey = clients[0];\n const socialMetrics = Object.keys(this.props.social_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n socialMetrics.map((metricName) => {\n let mValue = this.props.social_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Social

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummarySocial;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummaryVideo extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.video_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.video_metrics);\n const firstKey = clients[0];\n const videoMetrics = Object.keys(this.props.video_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n videoMetrics.map((metricName) => {\n let mValue = this.props.video_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Video

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryVideo;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfVideo extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

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

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

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

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

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

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

    By Device

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

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

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

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

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

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

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Video Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"video\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"video\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to video and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfVideo;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport KeywordBlock from \"dashboards/KeywordBlock\";\nimport KeywordImprovedDeclinedBlock from \"dashboards/KeywordImprovedDeclinedBlock\";\nimport KeywordTable from \"dashboards/KeywordTable\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\n\nclass SEOPdf extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.keywordRankingRowHeight = 25;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let landingPageCase;\n let keywordCase;\n // console.log(section, \"looking for keyword\");\n function categorize(string) {\n if (string.includes(\"landingPageGroups\")) {\n landingPageCase = string;\n }\n if (string.includes(\"keywordGroups\")) {\n keywordCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"seo\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n

    Primary Kpi Tables

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case landingPageCase:\n const pageName = landingPageCase.replace(\"landingPageGroups\", \"\");\n const landingPage = this.props.landing_page_groups.find((el) => el.name == pageName);\n return (\n <>\n {[landingPage.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {landingPage.name}

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

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

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

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

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"backlinks\":\n return (\n <>\n

    Backlinks

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

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case keywordCase:\n const keywordName = keywordCase.replace(\"keywordGroups\", \"\");\n const keywordGroup = this.props.keyword_groups.find((el) => el.name == keywordName);\n return (\n <>\n {[keywordGroup].map((group, index) => {\n console.log(group);\n console.log(section);\n const keywordGroup = group;\n const group_id = group.id;\n let metricTitle = this.props.keyword_groups.map((group) => group.name)[index];\n let metricTitles = [];\n metricTitles.push(metricTitle);\n return (\n
    \n \n

    Keyword: {keywordGroup.name}

    \n\n \n \n \n
    \n
    \n );\n })}\n \n );\n case \"keywordSummary\":\n return (\n <>\n

    Keyword Summary

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricName == \"Improved\") {\n if (section.metrics_data[metricName] == \"1\") {\n return (\n \n \n \n );\n }\n } else if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n return (\n \n \n \n );\n }\n } else {\n return (\n

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

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

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

    \n );\n }\n })}\n
    \n \n );\n case \"keywordRankings\":\n let sortedKeywords = jsDig([dashboard, \"keyword_rankings\"], cc_data);\n switch (this.props.keyword_sort) {\n case \"keyword\":\n sortedKeywords.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n break;\n case \"prevpos\":\n sortedKeywords.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n break;\n case \"currentpos\":\n sortedKeywords.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n break;\n case \"diff\":\n sortedKeywords.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n break;\n case \"cpc\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n break;\n case \"volume\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n break;\n case \"difficulty\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n break;\n }\n if (!this.props.keyword_sort_order_asc) {\n sortedKeywords.reverse();\n }\n return (\n <>\n

    Keyword Rankings

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

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

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections, sections.includes(\"landingPageGroups\"));\n\n return (\n \n {index == 0 && (\n
    \n

    {this.props.client_name} SEO Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n \n {this.generatePdfSection(section, cc_data, dashboard)}\n \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = this.props.dashboard;\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"seo\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"seo\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n let landingPageIndex = dashboardOrder.findIndex((el) => el.name == \"landingPageBreakdown\");\n const copyOfLandingPageMetric = cloneDeep(dashboardOrder[landingPageIndex]);\n dashboardOrder.splice(landingPageIndex, 1);\n this.props.landing_page_groups.forEach((group) => {\n let duplicateLandingPage = copyOfLandingPageMetric;\n duplicateLandingPage[\"name\"] = `landingPageGroups${group.name}`;\n dashboardOrder.splice(landingPageIndex, 0, cloneDeep(duplicateLandingPage));\n landingPageIndex += 1;\n });\n\n let keywordIndex = dashboardOrder.findIndex((el) => el.name == \"keywordGroups\");\n const copyOfKeywordMetric = cloneDeep(dashboardOrder[keywordIndex]);\n dashboardOrder.splice(keywordIndex, 1);\n this.props.keyword_groups.forEach((group) => {\n let duplicateKeywordGroup = copyOfKeywordMetric;\n duplicateKeywordGroup[\"name\"] = `keywordGroups${group.name}`;\n dashboardOrder.splice(keywordIndex, 0, cloneDeep(duplicateKeywordGroup));\n keywordIndex += 1;\n });\n // PDFs can't be processed section this.props.keyword_sort section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n console.log(dashboardOrder, \"entries\");\n let firstLandingPageIndex = dashboardOrder.findIndex((el) => el.name.includes(\"landingPageGroups\"));\n let firstKeywordIndex = dashboardOrder.findIndex((el) => el.name.includes(\"keywordGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n console.log(index, firstLandingPageIndex, section, \"section\", !((index - firstLandingPageIndex) % 2 == 0));\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n if (section.name == \"keywordGroups\") {\n metricNames = this.props.keyword_groups.map((el) => el.name);\n }\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"landingPageGroups\") || section.name.includes(\"keywordGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (\n ((dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0)) ||\n (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"keywordGroups\") && !((index - firstKeywordIndex) % 2 == 0))) &&\n metricNames.length < 3\n ) {\n elementHeight = 0;\n console.log(\"group table height\", 0);\n } else {\n console.log(\"group table height\", this.groupTableRowHeight);\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"backlinks\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"keywordSummary\") {\n elementsPerRow = 2;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"keywordRankings\") {\n elementsPerRow = 1;\n elementHeight = this.keywordRankingRowHeight;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"keywordSummary\") {\n metricNames = [\"topThreeKeywords\", \"topTenKeywords\", \"topTwentyKeywords\", \"Improved\"];\n }\n\n if (section.name == \"keywordRankings\") {\n metricNames = jsDig([dashboard, \"keyword_rankings\"], cc_data).map((ranking) => ranking[\"keyword\"]);\n }\n\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n if (\n ((dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0)) ||\n (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"keywordGroups\") && !((index - firstKeywordIndex) % 2 == 0))) &&\n metricNames.length < 3\n ) {\n pages[currentPage][\"pageHeight\"] += 0;\n } else {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n }\n\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n if (section.name == \"keywordRankings\") {\n //for table head\n pages[currentPage][\"pageHeight\"] += 25;\n }\n }\n if (metricIndex == 0) {\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0) && metricNames.length < 3) {\n pages[currentPage][\"pageHeight\"] += 0;\n } else {\n pages[currentPage][\"pageHeight\"] += 40;\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default SEOPdf;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass SEOPdfSummary extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n }\n console.log(this.props)\n }\n\n\n getPageNumber(current) {\n return (current + 1);\n }\n\n render() {\n let pageNumber = 0;\n let clientsPerPage = 35;\n let clients = Object.keys(this.props.metrics);\n\n let totals = {}\n\n clients.map((client) => {[\"revenue_mtd\", \"revenue_mtd_last_year\",\"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => { \n let value = this.props.metrics[client][metricName];\n totals[metricName] ? totals[metricName] += value : totals[metricName] = value\n })})\n\n totals[\"revenue_mtd_yy\"] = (totals[\"revenue_mtd\"] - totals[\"revenue_mtd_last_year\"]) / totals[\"revenue_mtd_last_year\"] * 100\n totals[\"revenue_this_month_yy\"] = (totals[\"revenue_this_month_projected\"] - totals[\"revenue_this_month_last_year\"]) / totals[\"revenue_this_month_last_year\"] * 100\n totals[\"traffic_mtd_yy\"] = (totals[\"traffic_mtd\"] - totals[\"traffic_mtd_last_year\"]) / totals[\"traffic_mtd_last_year\"] * 100\n totals[\"traffic_this_month_yy\"] = (totals[\"traffic_this_month_projected\"] - totals[\"traffic_this_month_last_year\"]) / totals[\"traffic_this_month_last_year\"] * 100\n\n return (\n
    \n {\n [...Array(Math.ceil(clients.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    SEO Summary

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n {\n [1,2,3,4].map((index) => {\n return (\n \n \n \n \n \n )\n })\n }\n \n \n \n {\n clients.map((clientName) => {\n return (\n \n \n {\n [\"revenue_mtd\", \"revenue_mtd_last_year\", \"revenue_mtd_yy\", \"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"revenue_this_month_yy\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_mtd_yy\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => {\n let className = \"\";\n let value = this.props.metrics[clientName][metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\"\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n }\n return (\n \n )\n })\n }\n \n )\n })\n }\n \n \n {\n [\"revenue_mtd\", \"revenue_mtd_last_year\", \"revenue_mtd_yy\", \"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"revenue_this_month_yy\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_mtd_yy\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => {\n let className = \"\";\n let value = totals[metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\"\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n }\n return (\n \n )\n })\n }\n \n \n
    Client
    Revenue {this.props.this_month} MTD
    Revenue {this.props.this_month} Y/Y
    Organic Traffic {this.props.this_month} MTD
    Organic Traffic {this.props.this_month} Projected Y/Y
    {this.props.date.substring(0, 4)}{parseInt(this.props.date.substring(0, 4)) - 1}Y/Y
    {clientName}\n {\n value != 0 ?\n metricName.includes(\"yy\") ?\n \n : \n : <>\n }\n
    TOTALS\n {\n value != 0 ?\n metricName.includes(\"yy\") ?\n \n : \n : <>\n }\n
    \n
    \n
    \n )\n })\n }\n
    \n )\n }\n}\n\nexport default SEOPdfSummary;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Tab, Nav, Container, Form } from \"react-bootstrap\";\nimport SaveChanges from \"./SaveChanges\";\nimport updateParams from \"utils/updateParams.js\";\nimport OverallPPC from \"./services/OverallPPC\";\nimport Search from \"./services/Search\";\nimport Display from \"./services/Display\";\nimport Social from \"./services/Social\";\nimport Video from \"./services/Video\";\n\nexport const PacingContext = React.createContext();\n\nexport default function PpcPacing(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [tabLocation, setTabLocation] = useState(\"overallPPC\");\n\n const servicePicker = (searchParams) => {\n if (searchParams.toString().includes(\"paidSearch\")) {\n return \"paidSearch\";\n }\n if (searchParams.toString().includes(\"daily\")) {\n return \"daily\";\n }\n if (searchParams.toString().includes(\"display\")) {\n return \"social\";\n }\n if (searchParams.toString().includes(\"display\")) {\n return \"video\";\n }\n };\n\n const submitForm = () => {\n document.getElementById(\"ppc-pacing-data\").submit();\n };\n\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"overallPPC\";\n }\n if (page === \"paidSearch\") {\n setTabLocation(page);\n updateParams(\"page\", page);\n // updateParams(\"sub_page\", servicePicker(searchParams));\n } else {\n setTabLocation(page);\n updateParams(\"page\", page);\n }\n }, []);\n\n const selectTab = (key) => {\n if (key === \"services\") {\n setTabLocation(key);\n updateParams(\"page\", key);\n // updateParams(\"sub_page\", servicePicker(searchParams));\n } else {\n setTabLocation(key);\n updateParams(\"page\", key);\n }\n };\n\n return (\n
    \n
    \n \n \n

    PPC Pacing

    \n {props.ppc_pacing_metrics ? (\n <>\n selectTab(k)}>\n \n \n \n \n {props.enabled_services.ppc == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.overall).length != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any PPC data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have PPC enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.search == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.search) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Search data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Search enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.social == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.social) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Social data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Social enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.display == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.display) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Display data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Display enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.video == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.video) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Video data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Video enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n \n ) : (\n <>\n
    \n
    This client doesn't have any PPC Data calculated yet.
    \n
    \n \n )}\n
    \n
    \n );\n}\n","import React, { useContext } from \"react\";\nimport { Button, Col, Row } from \"react-bootstrap\";\nimport { PacingContext } from \"./PpcPacing\";\n\n\nexport default function SaveChanges(props) {\n const pacingContext = useContext(PacingContext);\n return (\n \n {pacingContext.submitForm(); props.setShowBox(false)}}\n as=\"input\"\n type=\"submit\"\n value=\"Save\"\n variant=\"success\"\n id=\"ppc-pacing-save-btn\"\n />\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Display(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.display}\n defaultMetrics={defaultMetrics.summary.display}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.display}\n platforms={props.platforms}\n metricsData={props.metricsData}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Overall(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.overall}\n defaultMetrics={defaultMetrics.summary.overall}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.overall}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Search(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.search}\n defaultMetrics={defaultMetrics.summary.search}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.search}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Social(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.social}\n defaultMetrics={defaultMetrics.summary.social}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.social}\n defaultMetrics={defaultMetrics.daily.social}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Video(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.video}\n defaultMetrics={defaultMetrics.summary.video}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.video}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Table, Button, Modal, Form, Row, Col } from \"react-bootstrap\";\nimport SaveChanges from \"../SaveChanges\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { Stack, Lock, Unlock } from \"react-bootstrap-icons\";\nimport { PacingContext } from \"../PpcPacing\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function DailyView(props) {\n const pacingContext = useContext(PacingContext);\n const allPlatforms = Object.keys(jsDig([\"metricsData\"], props));\n const platformCount = allPlatforms.length - 1;\n\n const platformSelector = () => {\n const newItem = allPlatforms.filter((item) => item !== \"all\");\n if (platformCount >= 2) {\n return \"all\";\n } else {\n return newItem[0];\n }\n };\n\n const redOrGreen = (integer, metric) => {\n metric = metric.toLowerCase();\n if (integer === \"\") {\n return \"grey-text\";\n }\n if (metric.includes(\"cpa\") || metric.includes(\"cpc\")) {\n if (integer < 0) {\n return \"green-text\";\n } else {\n return \"red-text\";\n }\n } else if (integer < 0) {\n return \"red-text\";\n } else {\n return \"green-text\";\n }\n };\n\n const [availableMetrics, setAvailableMetrics] = useState(props.availableMetrics ? props.availableMetrics : []);\n const [selectedMetrics, setSelectedMetrics] = useState(props.pacingOrder);\n const [selectedPlatform, setSelectedPlatform] = useState(platformSelector());\n const [selectedCampaign, setSelectedCampaign] = useState(\"overall\");\n const [compactView, setCompactView] = useState(pacingContext.user.table_view_preference === \"compact_table_view\" ? true : false);\n const [showBox, setShowBox] = useState(false);\n const [yoy, setYoy] = useState(true);\n\n let columnCount = Math.ceil(availableMetrics.length / 5);\n if (columnCount >= 4) {\n columnCount = 4;\n }\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n const metricHelper = (e) => {\n const index = selectedMetrics.indexOf(e.target.name);\n let updatedList = [...selectedMetrics];\n if (index > -1) {\n updatedList.splice(selectedMetrics.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedMetrics, e.target.name];\n }\n setSelectedMetrics(updatedList);\n };\n\n const formatDate = (date) => {\n let newDate = \"\";\n if (date.charAt(4) === \"0\") {\n newDate = newDate + date.charAt(5) + \"/\";\n }\n if (date.charAt(4) !== \"0\") {\n newDate = newDate + date.charAt(4) + date.charAt(5) + \"/\";\n }\n if (date.charAt(6) === \"0\") {\n newDate = newDate + date.charAt(7) + \"/\";\n }\n if (date.charAt(6) !== \"0\") {\n newDate = newDate + date.charAt(6) + date.charAt(7) + \"/\";\n }\n return newDate + date.charAt(2) + date.charAt(3);\n };\n\n const numberWithCommas = (x) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n };\n\n const campaignCapitalized = selectedCampaign.charAt(0).toUpperCase() + selectedCampaign.slice(1);\n const serviceCapitalized = props.service.charAt(0).toUpperCase() + props.service.slice(1);\n\n let platformArray = [];\n if (props.service !== \"overall\") {\n props.platforms.forEach((platform) => props.metricsData[platform] && platformArray.push(Object.keys(props.metricsData[platform])));\n }\n const platformSet = new Set(...platformArray);\n const uniquePlatforms = props.service !== \"overall\" ? Array.from(platformSet) : [];\n\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n const MetricFormatter = (name, number, views) => {\n let metric = name.toLowerCase();\n let formatted;\n if (metric.includes(\"revenue\") || metric.includes(\"spend\")) {\n formatted = `$${numberWithCommas(Math.round(number))}`;\n } else if (metric.includes(\"cpa\") || metric.includes(\"roas\") || metric.includes(\"cpc\") || metric.includes(\"aov\")) {\n formatted = `$${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}`;\n } else if (metric.includes(\"video cvr\") && views === 0) {\n formatted = `0%`;\n } else if (metric.includes(\"cvr\") || metric.includes(\"ctr\")) {\n formatted = `${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}%`;\n } else {\n formatted = `${numberWithCommas(Math.round(number))}`;\n }\n return formatted;\n };\n\n return (\n
    \n {selectedMetrics.map((metric, idx) => {\n return ;\n })}\n {props.service !== \"overall\" && (\n
    \n
    \n \n\n
      \n {selectedPlatform === \"all\"\n ? uniquePlatforms.map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`a${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })\n : Object.keys(props.metricsData[selectedPlatform]).map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })}\n
    \n
    \n
    \n \n
      \n {Object.keys(props.metricsData)\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\" ? googleIcon : platform === \"microsoft\" ? microsoftIcon : platform === \"facebook\" ? facebookIcon : platform === \"tiktok\" ? tiktokIcon : allIcon;\n return (\n setSelectedPlatform(platform)}\n className={selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${platform + index + props.platform + props.service}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n )}\n
    \n setShowBox(false)}>\n \n Customize Table\n \n \n \n \n

    Show these parameters when available:

    \n \n
    \n \n \n
    Metric:
    \n \n
    \n \n \n
      \n {availableMetrics.map((el, i) => {\n return (\n
    • \n metricHelper(e)}\n checked={selectedMetrics.includes(el)}\n id={`custom-check${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n
    \n \n \n \n \n \n\n \n \n \n
    \n
    \n \n
    \n \n {\n setYoy(!yoy);\n }}\n />\n }\n label=\"Show Y/Y Metrics\"\n />\n \n
    \n {/*
    \n \n \n {\n setCompactView(!compactView);\n }}\n />\n }\n label={compactView ? \"Compact View\" : \"Full View\"}\n />\n \n
    */}\n
    \n
    \n \n \n \n \n {selectedMetrics.map((metricName, i) => {\n return (\n \n );\n })}\n \n \n \n {props.dateRanges.last_30_days.map((date, i) => {\n const evenOrOdd = i % 2 === 0 ? \"even\" : \"odd\";\n let beforeDate =\n i === 0\n ? \"Yesterday \"\n : i === 6\n ? \"1 week ago \"\n : i === 13\n ? \"2 weeks ago \"\n : i === 20\n ? \"3 weeks ago \"\n : i === 27\n ? \"4 week ago \"\n : `${i + 1} days ago `;\n return (\n \n \n {selectedMetrics.map((metricName, i) => {\n const number =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"this_year\", date], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"this_year\", date], props);\n const views =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", \"Views\", \"daily\", \"running_31\", \"this_year\", date], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, \"Views\", \"daily\", \"running_31\", \"this_year\", date], props);\n const currentValue = MetricFormatter(metricName, number, views);\n let overallAmount =\n jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"yoy\", date], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (Math.round((jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"yoy\", date], props) + Number.EPSILON) * 100) / 100).toFixed(0)\n );\n\n let amount =\n jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"yoy\", date], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (\n Math.round(\n (jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"yoy\", date], props) + Number.EPSILON) * 100\n ) / 100\n ).toFixed(0)\n );\n\n return props.service === \"overall\" ? (\n overallAmount == \"\" ? (\n \n ) : (\n \n )\n ) : amount === \"\" ? (\n \n ) : (\n \n );\n })}\n \n );\n })}\n \n
    \n \n \n {metricName}\n
    \n

    {`${beforeDate} (${formatDate(date)})`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n {`${overallAmount}%`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n

    {`${amount}%`}

    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { Table, Button, Modal, Row, Col } from \"react-bootstrap\";\nimport SaveChanges from \"../SaveChanges\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { PacingContext } from \"../PpcPacing\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function SummaryView(props) {\n const pacingContext = useContext(PacingContext);\n const allPlatforms = Object.keys(jsDig([\"metricsData\"], props));\n const platformCount = allPlatforms.length - 1;\n\n const platformSelector = () => {\n const newItem = allPlatforms.filter((item) => item !== \"all\");\n if (platformCount >= 2) {\n return \"all\";\n } else {\n return newItem[0];\n }\n };\n\n const redOrGreen = (integer, metric) => {\n metric = metric.toLowerCase();\n if (integer === \"\") {\n return \"grey-text\";\n }\n if (metric.includes(\"cpa\") || metric.includes(\"cpc\")) {\n if (integer < 0) {\n return \"green-text\";\n } else {\n return \"red-text\";\n }\n } else if (integer < 0) {\n return \"red-text\";\n } else {\n return \"green-text\";\n }\n };\n\n const [availableMetrics, setAvailableMetrics] = useState(props.availableMetrics ? props.availableMetrics : []);\n const [selectedMetrics, setSelectedMetrics] = useState(props.pacingOrder);\n const [availableFrequency, setAvailableFrequency] = useState([\n \"MTD\",\n \"Last 7 days\",\n \"2 weeks ago\",\n \"Last 14 days\",\n \"Last 30 days\",\n \"Last month\",\n \"2 months ago\",\n \"Projected\",\n ]);\n const [selectedFrequency, setSelectedFrequency] = useState(\n props.frequency.selected_frequency ? props.frequency.selected_frequency[props.service] : availableFrequency\n );\n const [selectedPlatform, setSelectedPlatform] = useState(platformSelector());\n const [selectedCampaign, setSelectedCampaign] = useState(\"overall\");\n const [compactView, setCompactView] = useState(pacingContext.user.table_view_preference === \"compact_table_view\" ? true : false);\n const [yoy, setYoy] = useState(true);\n const [showBox, setShowBox] = useState(false);\n\n let columnCount = Math.ceil(availableMetrics.length / 5);\n if (columnCount >= 4) {\n columnCount = 4;\n }\n\n const metricHelper = (e) => {\n const index = selectedMetrics.indexOf(e.target.name);\n let updatedList = [...selectedMetrics];\n if (index > -1) {\n updatedList.splice(selectedMetrics.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedMetrics, e.target.name];\n }\n setSelectedMetrics(updatedList);\n };\n const frequencyHelper = (e) => {\n const index = selectedFrequency.indexOf(e.target.name);\n let updatedList = [...selectedFrequency];\n if (index > -1) {\n updatedList.splice(selectedFrequency.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedFrequency, e.target.name];\n }\n setSelectedFrequency(updatedList);\n };\n\n const numberWithCommas = (x) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n };\n\n const campaignCapitalized = selectedCampaign.charAt(0).toUpperCase() + selectedCampaign.slice(1);\n const serviceCapitalized = props.service.charAt(0).toUpperCase() + props.service.slice(1);\n\n let platformArray = [];\n if (props.service !== \"overall\") {\n props.platforms.forEach((platform) => props.metricsData[platform] && platformArray.push(Object.keys(props.metricsData[platform])));\n }\n const platformSet = new Set(...platformArray);\n const uniquePlatforms = props.service !== \"overall\" ? Array.from(platformSet) : [];\n\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n const MetricFormatter = (name, number, views) => {\n let metric = name.toLowerCase();\n let formatted;\n if (metric.includes(\"revenue\") || metric.includes(\"spend\")) {\n formatted = `$${numberWithCommas(Math.round(number))}`;\n } else if (metric.includes(\"cpa\") || metric.includes(\"roas\") || metric.includes(\"cpc\") || metric.includes(\"aov\")) {\n formatted = `$${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}`;\n } else if (metric.includes(\"video cvr\") && views === 0) {\n formatted = `0%`;\n } else if (metric.includes(\"cvr\") || metric.includes(\"ctr\")) {\n formatted = `${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}%`;\n } else {\n formatted = `${numberWithCommas(Math.round(number))}`;\n }\n return formatted;\n };\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n return (\n
    \n {selectedMetrics.map((metric, idx) => {\n return ;\n })}\n {selectedFrequency.map((frequency, idx) => {\n return ;\n })}\n {props.service !== \"overall\" && (\n
    \n
    \n \n\n
      \n {selectedPlatform === \"all\"\n ? uniquePlatforms.map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`a${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })\n : Object.keys(props.metricsData[selectedPlatform]).map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })}\n
    \n
    \n
    \n \n
      \n {Object.keys(props.metricsData)\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n setSelectedPlatform(platform)}\n className={selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${platform + index + props.platform + props.service}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n )}\n
    \n setShowBox(false)}>\n \n Customize Table\n \n \n \n \n

    Show these parameters when available:

    \n \n
    \n \n \n
    Metric:
    \n \n
    \n \n \n
      \n {availableMetrics.map((el, i) => {\n return (\n
    • \n metricHelper(e)}\n checked={selectedMetrics.includes(el)}\n id={`custom-check${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n \n \n
    Frequency:
    \n \n
    \n \n \n
      \n {availableFrequency.map((el, i) => {\n return (\n
    • \n frequencyHelper(e)}\n checked={selectedFrequency.includes(el)}\n id={`custom-check-frequency${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n
    \n \n \n \n {\n setSelectedMetrics(props.defaultMetrics);\n setSelectedFrequency([\"2 months ago\", \"Last month\", \"MTD\", \"Last 7 days\", \"2 weeks ago\", \"Last 14 days\", \"Last 30 days\", \"Projected\"]);\n }}\n className=\"text-center defaults-btn\">\n Use defaults\n \n \n\n \n \n \n
    \n
    \n \n
    \n \n {\n setYoy(!yoy);\n }}\n />\n }\n label=\"Show Y/Y Metrics\"\n />\n \n
    \n {/*
    \n \n \n {\n setCompactView(!compactView);\n }}\n />\n }\n label={compactView ? \"Compact View\" : \"Full View\"}\n />\n \n
    */}\n
    \n
    \n \n \n \n \n {selectedFrequency.map((frequency, i) => {\n return (\n \n );\n })}\n \n \n \n {selectedMetrics.map((metricName, i) => {\n const evenOrOdd = i % 2 === 0 ? \"even\" : \"odd\";\n return (\n \n \n {selectedFrequency.map((frequency, i) => {\n const number =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", metricName, \"summary\", \"this_year\", frequency], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"this_year\", frequency], props);\n const views =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", \"Views\", \"summary\", \"this_year\", frequency], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, \"Views\", \"summary\", \"this_year\", frequency], props);\n const currentValue = MetricFormatter(metricName, number, views);\n let overallAmount =\n jsDig([\"metricsData\", metricName, \"summary\", \"yoy\", frequency], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (Math.round((jsDig([\"metricsData\", metricName, \"summary\", \"yoy\", frequency], props) + Number.EPSILON) * 100) / 100).toFixed(0)\n );\n\n let amount =\n jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"yoy\", frequency], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (\n Math.round(\n (jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"yoy\", frequency], props) + Number.EPSILON) *\n 100\n ) / 100\n ).toFixed(0)\n );\n\n return props.service === \"overall\" ? (\n overallAmount == \"\" ? (\n \n ) : (\n \n )\n ) : amount === \"\" ? (\n \n ) : (\n \n );\n })}\n \n );\n })}\n \n
    \n \n \n {frequency}\n
    \n

    {metricName}

    \n

    \n Y/Y (%)\n

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n {`${overallAmount}%`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n

    {`${amount}%`}

    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function App(props) {\r\n const dashboardUrl = `/datapulse/shopify/app/dashboard?shop=${props.shop}`\r\n const teamUrl = `/datapulse/shopify/app/team?shop=${props.shop}`\r\n\r\n return (\r\n \r\n \r\n \r\n

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

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

    DataPulse Bridge is successfully Connected to your store.

    \r\n

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

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

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

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

    See your team members and get in touch.

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

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

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

    Your performance for the current month is:

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

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

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

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

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

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

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

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

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

    User Access

    \n \n
    \n
    \n \n
    \n
    \n Search Users\n {\n this.searchUsers(e);\n }}\n />\n \n u.role == \"client\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Clients\" />\n u.role == \"employee\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Restricted Access\" />\n u.role == \"specialist\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Standard Access\" />\n u.role == \"manager\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Full Access\" />\n u.role == \"admin\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Admin Access\" />\n
    \n
    \n \n );\n }\n}\n\nexport default UserAccess;\n","import React from 'react'\n\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport Table from 'react-bootstrap/Table';\nimport Form from 'react-bootstrap/Form';\nimport Button from 'react-bootstrap/Button';\nimport UserAccessTableButtons from 'user_access/UserAccessTableButtons'\nimport UserRole from 'utils/UserRole'\nimport UserDepartment from 'utils/UserDepartment'\n\nclass UserAccessTable extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n <>\n
    \n
    \n
    {this.props.tableName}
    \n
    \n
    \n

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

    \n
    \n
    0 ? \" show\" : \"\")}>\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.props.users.map((user) => {\n return (\n \n \n \n \n \n \n \n \n )\n })\n }\n \n
    ID#NameEmailRoleDepartment
    {user.id}{user.name}{user.email}\n
    \n {\n this.props.permissions.includes(user.role) && (\n \n )\n }\n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default UserAccessTable;\n","import React from 'react'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport Table from 'react-bootstrap/Table';\nimport Button from 'react-bootstrap/Button';\nimport Overlay from 'react-bootstrap/Overlay';\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\nimport Tooltip from 'react-bootstrap/Tooltip';\n\nclass UserAccessTableButtons extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n confirmDelete: false,\n confirmRemove: false\n }\n }\n\n render() {\n return (\n \n \n\n {this.props.current_user_is_god &&\n \n This will permanently delete user from database\n \n }\n >\n \n \n }\n\n \n {this.props.current_user_is_god &&\n \n }\n \n This will remove user from the selected Organization only\n \n }\n >\n \n \n \n \n );\n }\n}\n\nexport default UserAccessTableButtons;\n","import React from 'react'\nimport { Row, Col, Form, Modal, Button, FormControl, Alert } from 'react-bootstrap'\nimport {findDOMNode} from 'react-dom'\n\nclass UserNewForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n show: false,\n employeeType: \"client\",\n clients: this.props.clients?this.props.clients:[],\n first_name: \"\",\n fNameError: \"\",\n last_name: \"\",\n lNameError: \"\",\n email: \"\" ,\n emailError: \"\"\n }\n }\n\n\n clientButtonClick(event) {\n $('.client-button').addClass('selected');\n $('.employee-button').removeClass('selected');\n $('.employee-only-fields').hide();\n this.setState({ employeeType: \"client\" });\n }\n\n employeeButtonClick(event) {\n $('.employee-button').addClass('selected');\n $('.client-button').removeClass('selected');\n $('.employee-only-fields').show();\n this.setState({ employeeType: \"employee\" });\n }\n\n toggleAccess(event) {\n }\n\n accessAll(event) {\n let checkAll = event.target.checked;\n $('.client-list input[type=checkbox]').each((index, el) => {\n $(el).prop(\"checked\", checkAll)\n })\n }\n\n nextPage() {\n $(\".page-1\").hide();\n $(\".page-2\").show();\n }\n\n backPage() {\n $(\".page-2\").hide();\n $(\".page-1\").show();\n }\n\n searchClients(event) {\n let filter = event.target.value.toLowerCase().trim();\n let visibleClients = [];\n this.props.clients.forEach((client) => {\n let clientName = client.company_name.toLowerCase();\n if (clientName.includes(filter)) {\n visibleClients.push(client);\n }\n })\n this.setState({clients: visibleClients})\n }\n\n //=========================== FORM VALIDATION START ===================================\n handleSubmit = e => {\n e.preventDefault()\n const err = this.errorCheck()\n if (!err) {\n this.nextPage()\n }\n else {\n return\n }\n }\n\n errorCheck = () => {\n let isError = false\n const errors = {\n fNameError: \"\",\n lNameError: \"\",\n emailError: \"\"\n }\n\n if (this.state.first_name.length < 1) {\n isError = true\n errors.fNameError=\"First name cannot be empty\"\n }\n\n if (this.state.last_name.length < 1) {\n isError = true\n errors.lNameError= \"Last name cannot be empty\"\n }\n\n\n if (this.state.email.indexOf(\"@\") === -1 ) {\n isError = true\n errors.emailError = \"Valid email must contain @ symbol\"\n\n }\n if (isError){\n this.setState({\n ...this.state,\n ...errors\n })\n }\n return isError\n }\n\n change = e => {\n this.setState({\n [e.target.name]: e.target.value\n })\n }\n\n//=========================== FORM VALIDATION END ===================================\n\n\n render() {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n return (\n <>\n \n this.setState({show: false})}>\n
    \n \n
    \n \n Add New User - Basic Info\n \n \n \n \n

    I want to add a new:

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

    Client

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

    Employee

    \n
    \n \n \n
    \n \n \n \n this.change(e)} type=\"text\" name=\"first_name\" placeholder=\"First Name (required)\" />\n {this.state.fNameError ? (\n {this.state.fNameError}\n ) : null}\n\n \n \n this.change(e)} type=\"text\" name=\"last_name\" placeholder=\"Last Name (required)\" />\n {this.state.lNameError ? (\n {this.state.lNameError}\n ) : null}\n \n \n this.change(e)} type=\"email\" name=\"email\" placeholder=\"Email (required)\" />\n {this.state.emailError ? (\n {this.state.emailError}\n ) : null}\n \n \n \n \n Employee Level:\n \n \n \n \n \n \n \n \n Employee Department:\n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n
    \n
    \n \n Add New User - Account Access\n \n \n

    Back to Basic Info

    \n
    \n
    \n \n this.searchClients(e)} placeholder=\"Search accounts...\" />\n
    \n
    \n
    \n {this.accessAll(e)}} className=\"custom-control-input\" id='toggle-all-access' />\n \n
    \n
    \n
    \n \n \n
      \n {\n this.state.clients.map((client) => {\n return (\n
    • \n \n
      \n {this.toggleAccess(e)}} name={`account_access_ids[${client.id}]`} className=\"custom-control-input\" id={`account-access-id-${client.id}`} />\n \n
      \n
      \n
    • \n )\n })\n }\n
    \n \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default UserNewForm;\n","import React from \"react\";\n\nconst ConditionalWrapper = ({ condition, wrapper, children }) =>\n\tcondition ? wrapper(children) : children;\n\nexport default ConditionalWrapper;\n","import React, { useState } from \"react\";\nimport { Button } from \"react-bootstrap\";\n\nfunction Counter(props) {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t-\n\t\t\t\t\n\t\t\t\t{props.count}\n\t\t\t\t\n\t\t\t\t\t+\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n\nexport default Counter;\n","import React from 'react'\n\nclass CustomAvatar extends React.Component {\n render() {\n let christmasSpecial = require(\"images/special/Christmas.svg\");\n let fallSpecial = require(\"images/special/FirstDayFall.svg\")\n let springSpecial = require(\"images/special/FirstDaySpring.svg\")\n let summerSpecial = require(\"images/special/FirstDaySummer.svg\")\n let winterSpecial = require(\"images/special/FirstDayWinter.svg\")\n let halloweenSpecial = require(\"images/special/Halloween.svg\")\n return (\n <>\n \n {this.props.special == \"christmas\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"fall\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"spring\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"summer\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"winter\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"halloween\" &&\n <>\n
    \n \n
    \n \n }\n \n );\n }\n}\n\nexport default CustomAvatar;\n","import React, { useState } from \"react\";\nimport onClickOutside from \"react-onclickoutside\";\n\n\nfunction CustomDropdown(props) {\n const campaignGroups = props.dashboards;\n let currentTab = props.tabLocation === \"paidSearch\" ? \"search\" : props.tabLocation === \"paidSocial\" ? \"social\" : props.tabLocation === \"paidDisplay\" ? \"display\" : props.tabLocation === \"paidVideo\" ? \"video\" : undefined\n\n let upper = currentTab\n if (upper !== undefined) {\n\n upper = upper[0].toUpperCase() + upper.slice(1)\n }\n const [open, setOpen] = useState(false);\n const [currentSection, setCurrentSection] = useState(\n props.platformName === \"all\" ? \"Search\" : props.platformName\n );\n const [currentCampaign, setCurrentCampaign] = useState(props.section !== \"Performance\" ? campaignGroups[0].name : 0);\n\n CustomDropdown[`handleClickOutside_` + props.platformName + props.section] = () =>\n setOpen(false);\n\n const campaignSetter = (campaign, section) => {\n setCurrentCampaign(campaign.name);\n setCurrentSection(section);\n props.setSelectedDashboard(campaign.name)\n props.setSelectedDashboardId(campaign.id)\n setTimeout(() => setOpen(false), 200)\n };\n\n const goalSetter = (campaign, section) => {\n setCurrentCampaign(campaign.name);\n setCurrentSection(section);\n props.setSelectedDashboardId(campaign.id)\n props.setSelectedDashboard(campaign.name)\n\n setTimeout(() => setOpen(false), 200)\n };\n const performanceSetter = (campaign, section) => {\n console.log(campaign, section)\n setCurrentCampaign(props.seo ? campaign.id : currentTab);\n setCurrentSection(section);\n props.setSelectedDashboard(campaign.id)\n setTimeout(() => setOpen(false), 200)\n };\n\n const platform = props.platformName ? props.platformName.charAt(0).toUpperCase() + props.platformName.slice(1) : undefined\n\n const toggle = () => setOpen(!open);\n\n return (\n
    \n
    \n
    toggle(!open)}>\n {\n props.section === \"Performance\" ?\n props.seo === undefined ?\n //PPC Performance main input text\n

    \n {upper}: {(currentTab !== undefined) && (props[`${currentTab}`].filter((el) => el.id === props.selectedDashboard)[0] !== undefined) ? props[`${currentTab}`].length > 0 ? props[`${currentTab}`].filter((el) => el.id === props.selectedDashboard)[0].name : \"Overall\" : \"Overall\"}\n {open ? (\n \n ) : (\n \n )}\n

    \n :\n //SEO Performance main input text\n

    \n SEO: {props.dashboards.filter((el) => el.id === currentCampaign) && currentCampaign !== 0 ? props.dashboards.filter((el) => el.id === currentCampaign)[0].name : \"Overall\"}\n {open ? (\n \n ) : (\n \n )}\n

    \n :\n props.configure === true ?\n props.dashboardId === 0 ? (\n //configure goals for overall\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n {open ? (\n \n ) : (\n \n )}\n

    \n ) : (\n\n //configure goals for remaining\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}\n {\": \"}\n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n\n :\n props.selectedDashboardId === 0 ? (\n //Dashboard and main goals for overall\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n {open ? (\n \n ) : (\n \n )}\n

    \n ) :\n props.seo === undefined ?\n (\n //Dashboard and main goals for remaining\n

    \n {currentSection === \"Seo\" ? \"SEO\" : currentSection}\n {\": \"}\n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n :\n (\n //Dashboard and main goals SEO for remaining\n

    \n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n }\n
    \n
    \n
    \n
    \n {props.section === \"Goals\" ? (\n //non-clickable display goals/configure goals\n <>\n
    \n \n

    \n {platform === \"Seo\" ? \"SEO\" : platform} Goals\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n //name displayed in list goals/configure GOALS Overall\n return idx === 0 ? (\n
    \n \n goalSetter(dash, platform)\n\n }\n >\n \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n
    \n
    \n ) : (\n //name displayed in list goals/configure Goals remaining\n
    \n \n goalSetter(dash, platform)\n }\n >\n \n \n {platform === \"Seo\" ? \"SEO\" : platform}: {dash.name}\n \n
    \n
    \n );\n })}\n \n ) : props.section === \"Performance\" ?\n props.seo === undefined ?\n (\n <>\n
    \n \n

    \n {upper} Performance\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n performanceSetter(dash, platform)\n\n }\n >\n \n {upper}: Overall\n
    \n
    \n ) : (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n \n {upper}: {dash.name}\n \n
    \n
    \n );\n })}\n \n ) :\n (\n <>\n
    \n \n

    \n SEO Performance\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n SEO: Overall\n
    \n \n ) : (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n \n SEO: {dash.name}\n \n
    \n \n );\n })}\n \n ) :\n (\n <>\n
    \n \n

    \n {props.platformName} Overall\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n campaignSetter(dash, props.platformName)\n\n }\n >\n \n {props.platformName}: Overall\n
    \n \n ) : (\n
    \n \n campaignSetter(dash, props.platformName)\n }\n >\n \n \n {props.platformName}: {dash.name}\n \n
    \n \n );\n })}\n \n )}\n \n \n \n \n );\n}\n\nconst clickOutsideConfig = {\n handleClickOutside: ({ props }) =>\n CustomDropdown[`handleClickOutside_` + props.platformName + props.section],\n};\n\nexport default onClickOutside(CustomDropdown, clickOutsideConfig);\n","import React, { useState } from \"react\";\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\n// React Form.Check elements have default styling and don't allow changing colors. We already addressed this so we will use this custom form check with custom classes\nconst CustomFormCheck = React.forwardRef((props,ref) => {\n let inputElement;\n if (props.dynamic) {\n let checked = props.checked ? props.checked : false;\n const [isChecked, setIsChecked] = useState(checked);\n const handleChange = props.onChange\n ? () => {\n props.onChange();\n setIsChecked(!isChecked);\n }\n : () => {\n setIsChecked(!isChecked);\n };\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && !isChecked && }\n \n \n );\n } else if (props.static && window.location.href.includes(\"ppc-config?page=ppc&subpage=ids_data\") && props.label == \"Pull Shopify data on save\") {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && }\n {}\n \n \n );\n } else if (props.static) {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && }\n \n \n );\n } else {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && !props.checked && }\n {\n false;\n }\n }\n value=\"1\"\n style={{ zIndex: \"1\" }}\n required={props.required}\n readOnly={props.readOnly}\n />\n \n );\n }\n\n return (\n <>\n
    \n {inputElement}\n {props.hoverText ? (\n \n
    {props.hoverText}
    \n \n }>\n \n \n ) : (\n \n )}\n
    \n \n );\n})\nexport default CustomFormCheck","import React, { useState } from \"react\";\n\nexport default function CustomSwitch(props) {\n const [isChecked, setIsChecked] = useState(props.checked || props.isEnabled ? true : false);\n return (\n <>\n
    \n
    \n {props.isEnabled !== undefined ? (\n {\n props.setIsEnabled(!props.isEnabled);\n setIsChecked(!isChecked);\n }}\n type=\"checkbox\"\n className=\"custom-control-input\"\n id={props.id}\n name={props.name ? props.name : null}\n disabled={props.disabled}\n />\n ) : (\n setIsChecked(!isChecked)}\n type=\"checkbox\"\n className=\"custom-control-input\"\n id={props.id}\n name={props.name ? props.name : null}\n disabled={props.disabled}\n />\n )}\n \n \n
    \n
    \n
    \n {props.isEnabled !== undefined ? (\n props.isEnabled ? (\n

    {props.text} is currently enabled

    \n ) : (\n

    {props.text} is currently disabled

    \n )\n ) : isChecked ? (\n

    \n {\" \"}\n {props.text} is currently enabled\n

    \n ) : (\n

    \n {\" \"}\n {props.text} is currently disabled\n

    \n )}\n
    \n \n );\n}\n","import React from \"react\";\nimport { Tooltip, OverlayTrigger } from \"react-bootstrap\";\n\nexport default function CustomTooltip(props) {\n\tconst renderTooltip = (refs) => (\n\t\t\n\t\t\t
    \n\t\t\t\t{props.message}\n\t\t\t\t
    \n\t\t
    \n\t);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t{props.label}\n\t\t\t\n\t\t
    \n\t);\n}\n","import * as React from \"react\";\nimport { Button } from \"react-bootstrap\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport { Row } from \"react-bootstrap\";\nimport { ExclamationCircle } from \"react-bootstrap-icons\";\nexport default function DataPullSavePopUp(props) {\n return (\n
    \n props.handleClose()} aria-labelledby=\"alert-dialog-title\">\n \n   Important: Initiating Data Pull\n \n
    setOpen(false)} style={{ position: \"absolute\", right: \"5px\", cursor: \"pointer\" }}>\n \n \n \n
    \n \n

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

    \n

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

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

    Organization

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

    Change Organization

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

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

    \n \n
    \n \n \n

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

    \n \n
    \n \n
    \n \n \n \n
    \n {\n (getRoleTitle(jsDig([\"role\"], userOrgDetail)) === \"Admin\" || props.current_user_is_god) &&\n \n \n Organization Settings\n \n \n }\n \n
    \n \n )}\n \n \n Edit My Profile

    \n My Team

    \n {/* {logout}Logout

    */}\n {logout}Logout\n \n
    \n {(props.organizations && props.organizations.length > 0) && (\n \n )}\n
    \n );\n}\n\n","function RandomQuoteGenerator(props) {\n console.log(props)\n const quotes = [\n {text: \"No job is complete until a selfie is posted.\", author: \"Ashok Kallarakkal\"},\n {text: \"The best way to predict the future is to create it.\", author: \"Abraham Lincoln\"},\n {text: \"If opportunity doesn't knock, build a door.\", author: \"Milton Berle\"},\n {text: \"The world is your \\u{1F9AA}; it's up to you to find the pearls.\", author: \"Chris Gardner\"},\n {text: \"It's what you do right now that makes a difference.\", author: \"Mark Bowden\"},\n {text: \"You don't need to take all the steps, only the next one.\", author: \"Unknown\"},\n {text: \"Boi?\", author: \"Jordan Lagan\"},\n {text: \"Obtain the grain.\", author: \"Kaylee Price\"},\n {text: \"We're no strangers to love. You know the rules and so do I.\", author: \"Rick Astley\"},\n {text: \"Fail fast and cheap.\", author: \"Roger Parent\"},\n {text: \"With increased revenue, comes increased heart rate.\", author: \"Tim Pelletier\"},\n {text: \"Ignore it for now.\", author: \"John Zhang\"},\n {text: \"Do or do not. There is no try.\", author: \"Yoda\"},\n {text: \"I like turtles\", author: \"Jonathan The Zombie\"},\n {text: \"If you're going through hell, keep going\", author: \"Winston Churchill\"},\n {text: \"Walking the dogs, brb!\", author: \"Mike Harrison\"},\n {text: \"All we have to decide is what to do with the time that is given us.\", author: \"Gandalf the Grey\"},\n {text: \"When you arise in the morning, think of what a precious privilege it is to be alive - to breathe, to think, to enjoy, to love.\", author: \"Marcus Aurelius\"},\n {text: \"Just keep swimming.\", author: \"Dory\"}\n ];\n\n const normalQuotes= [\n\n {text: \"The best way to predict the future is to create it.\", author: \"Abraham Lincoln\"},\n {text: \"If opportunity doesn't knock, build a door.\", author: \"Milton Berle\"},\n {text: \"The world is your oyster; it's up to you to find the pearls.\", author: \"Chris Gardner\"},\n {text: \"It's what you do right now that makes a difference.\", author: \"Mark Bowden\"},\n {text: \"You don't need to take all the steps, only the next one.\", author: \"Unknown\"},\n {text: \"I attribute my success to this: I never gave or took any excuse.\", author: \"Florence Nightingale\"},\n {text: \"Today’s accomplishments were yesterday’s impossibilities.\", author: \"Robert H. Schuller\"},\n {text: \"Things may come to those who wait, but only the things left by those who hustle.\", author: \"Unknown\"},\n {text: \"When you arise in the morning, think of what a precious privilege it is to be alive - to breathe, to think, to enjoy, to love.\", author: \"Marcus Aurelius\"}\n ];\n\n const specialQuotes = [\n {text: \"oooooOOHH! It's Mista SooFLAY\", author: \"Jöel Begér\", className: \"rainbow\"}\n ]\n\n let roll = Math.random() * 100;\n let quote = {};\n if (roll < 1) {\n quote = specialQuotes[Math.floor(Math.random() * specialQuotes.length)];\n } else {\n quote = quotes[Math.floor(Math.random() * quotes.length)];\n }\n if (props.organization.name !== \"Digital Position\") {\n quote = normalQuotes[Math.floor(Math.random() * normalQuotes.length)];\n }\n\n return quote\n}\n\nexport default RandomQuoteGenerator;\n","import React, { useState, useEffect } from \"react\";\n\nexport default function StateOptions(props) {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react';\n\nfunction UserDepartment(props) {\n let humanizedDepartment =
    ;\n if (props.department == null || props.department == \"no_department\")\n {\n humanizedDepartment =
    NONE
    \n }\n else\n {\n humanizedDepartment =
    {props.department.split(\"_\")[0].toUpperCase()}
    \n }\n return humanizedDepartment;\n}\n\nexport default UserDepartment;\n","import React from 'react';\n\nfunction UserRole(props) {\n let humanizedRole =
    ;\n if (props.role == \"client\")\n {\n humanizedRole =
    Client
    \n }\n else\n {\n let to_lower = props.role.replace(\"dp_\", \"\")\n let firstCap = to_lower.charAt(0).toUpperCase() + to_lower.slice(1);\n humanizedRole =
    {firstCap}
    \n }\n return humanizedRole;\n}\n\nexport default UserRole;","// This component takes a list of relevant users to choose from and an array of\n// html form namespaces so that the params sent to the server can be structured\n// as needed via hidden inputs.\nimport React, { useState, useEffect } from \"react\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport { Row, Col, Form, Modal, Button, OverlayTrigger, Tooltip } from \"react-bootstrap\";\n\nexport default function UserSelector(props) {\n const [show, setShow] = useState(false);\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const fieldsFor = props.fieldsForArray.map((field) => `[${field}]`).join(\"\") + \"[]\";\n const [selectedUsers, setSelectedUsers] = useState(Array.isArray(props.defaultValue) ? props.defaultValue : []);\n const [toggledUsers, setToggledUsers] = useState([]);\n const unSelectedUsers = Object.keys(props.users).filter((userEmail) => !selectedUsers.includes(userEmail));\n const [visibleUsers, setVisibleUsers] = useState([...unSelectedUsers]);\n // Update the list of users you can select from to be only unselected ones\n useEffect(() => {\n setVisibleUsers([...Object.keys(props.users).filter((userEmail) => !selectedUsers.includes(userEmail))]);\n }, [selectedUsers]);\n\n // Update the list of selected users\n useEffect(() => {\n setSelectedUsers(Array.isArray(props.defaultValue) ? props.defaultValue : []);\n }, [props.defaultValue]);\n\n const toggleUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...toggledUsers];\n if (selection.includes(userEmail)) {\n selection.splice(selection.indexOf(userEmail), 1);\n } else {\n selection.push(userEmail);\n }\n setToggledUsers(selection);\n };\n\n const selectUsers = () => {\n props.setServiceAccount && props.setServiceAccount([...selectedUsers, ...toggledUsers]);\n setSelectedUsers([...selectedUsers, ...toggledUsers]);\n setToggledUsers([]);\n handleClose();\n };\n\n const unselectUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...selectedUsers];\n selection.splice(selection.indexOf(userEmail), 1);\n props.setServiceAccount && props.setServiceAccount(selection);\n setSelectedUsers(selection);\n props.validator()\n };\n\n const handleCancel = () => {\n setToggledUsers([]);\n handleClose();\n };\n\n const searchUsers = (e) => {\n let filter = e.target.value.toLowerCase();\n let matchedUsers = [];\n Object.keys(props.users).forEach((userEmail) => {\n let user = props.users[userEmail];\n // If the user is not subscribed already && their name or email matches input\n if (!selectedUsers.includes(userEmail) && (user.name.toLowerCase().includes(filter) || userEmail.toLowerCase().includes(filter))) {\n matchedUsers.push(userEmail);\n }\n });\n setVisibleUsers(matchedUsers);\n };\n\n const toggledUsersList = toggledUsers.map((userEmail) => {\n let user = props.users[userEmail];\n return (\n toggleUser(e)}>\n {user.name}\n \n \n );\n });\n const btnDisabled = props.isEnabled !== undefined ? !props.isEnabled : false;\n return (\n <>\n
    \n {selectedUsers.map((userEmail, index) => {\n let user = props.users[userEmail];\n if (user) {\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n return (\n {user.name}}>\n
    unselectUser(e)} className=\"d-inline-block cont mr-2 mb-1\">\n {avatar}\n
    \n \n
    \n \n
    \n
    \n );\n }\n })}\n \n +\n \n \n
    \n \n {props.modalHeader}\n \n \n \n \n
    \n \n searchUsers(e)} placeholder=\"Enter a name or email address...\" />\n
    \n \n
    \n \n \n
      \n {visibleUsers.map((userEmail) => {\n let user = props.users[userEmail];\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n let toggled = toggledUsers.includes(userEmail) ? \"toggled\" : undefined;\n return (\n \n
    • toggleUser(e)} data-email={userEmail} className={toggled}>\n
      \n
      \n
      \n {avatar}\n
      \n \n
      \n
      \n  {user.name}\n  {userEmail}\n
      \n
      \n
    • \n
      \n );\n })}\n
    \n \n
    \n
    \n \n
    \n

    \n To be selected:\n

    \n {toggledUsersList}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n );\n}\n","import jsDig from 'utils/jsDig';\n\nexport default (value, baseCurrency, selectedCurrency) => {\n const decimalPlaces = countDecimals(value);\n const allRates = require(\"data/currencyRates.json\");\n const conversionRate = jsDig([baseCurrency, selectedCurrency], allRates);\n const newValue = (value * conversionRate).toFixed(decimalPlaces);\n return newValue;\n}\n\nconst countDecimals = function (value) {\n if (!value) return 0;\n if (Math.floor(value.valueOf()) === value.valueOf()) return 0;\n return value.toString().split(\".\")[1].length || 0; \n}","const ppcOrderArray = [\n \"spend\",\n \"impressions\",\n \"impressionsTopRate\",\n \"impressionsAbsTopRate\",\n \"searchImpressionsShare\",\n \"views\",\n \"viewableImpressions\",\n \"clicks\",\n \"phoneCalls\",\n \"inStoreVisits\",\n \"cpsv\",\n \"earnedSubscribers\",\n \"earnedLikes\",\n \"earnedShares\",\n \"cpc\",\n \"cpv\",\n \"viewCtr\",\n \"ctr\",\n \"clickConversions\",\n \"viewConversions\",\n \"totalConversions\",\n \"cvr\",\n \"videoCvr\",\n \"clickRevenue\",\n \"viewRevenue\",\n \"shopifyRevenue\",\n \"totalRevenue\",\n \"clickCpa\",\n \"totalCpa\",\n \"clickRoas\",\n \"shopifyRoas\",\n \"totalRoas\",\n \"clickAov\",\n \"totalAov\",\n];\n\nconst seoOrderArray = [\n \"traffic\",\n \"searchVisibility\",\n \"topThreeKeywords\",\n \"topThreeKeywordsPercentage\",\n \"topTenKeywords\",\n \"topTenKeywordsPercentage\",\n \"topTwentyKeywords\",\n \"topTwentyKeywordsPercentage\",\n \"averagePosition\",\n \"bounceRate\",\n \"conversions\",\n \"cvr\",\n \"revenue\",\n \"aov\",\n];\nexport default (service, array) => {\n if (service == \"ppc\") {\n array.sort((a, b) => ppcOrderArray.indexOf(a) - ppcOrderArray.indexOf(b));\n return array;\n } else if (service == \"seo\") {\n array.sort((a, b) => seoOrderArray.indexOf(a) - seoOrderArray.indexOf(b));\n return array;\n }\n};\n","export default (id, section) => {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/dismiss-errors\",\n data: {\n section_id: id,\n section_name: section\n },\n });\n};\n","export default (currency) => {\n let currencyObj = {\n prefix: \"\",\n suffix: \"\",\n symbol: \"\"\n }\n if (currency == \"USD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"EUR\") {\n currencyObj.prefix = \"€\"\n currencyObj.symbol = \"€\"\n } else if (currency == \"JPY\") {\n currencyObj.prefix = \"JP¥\"\n currencyObj.symbol = \"¥\"\n } else if (currency == \"GBP\") {\n currencyObj.prefix = \"£\"\n currencyObj.symbol = \"£\"\n } else if (currency == \"AUD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"CAD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"CHF\") {\n currencyObj.prefix = \"fr.\"\n currencyObj.symbol = \"fr.\"\n } else if (currency == \"CNY\") {\n currencyObj.prefix = \"¥\"\n currencyObj.symbol = \"¥\"\n } else if (currency == \"HKD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"NZD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"AED\") {\n currencyObj.prefix = \"د.إ\"\n currencyObj.symbol = \"د.إ\"\n } else if (currency == \"INR\") {\n currencyObj.prefix = \"₹\"\n currencyObj.symbol = \"₹\"\n } else if (currency == \"SGD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"KRW\") {\n currencyObj.prefix = \"₩\"\n currencyObj.symbol = \"₩\"\n }\n\n return currencyObj;\n}","export default (date, metricKey, seoMetric = false) => {\n const metric = metricKey.toLowerCase();\n let inflated = false;\n if (!seoMetric) {\n if (metric.includes(\"roas\")) {\n inflated = true;\n } else if (metric.includes(\"cpa\")) {\n inflated = true;\n } else if (metric.includes(\"revenue\")) {\n inflated = true;\n } else if (metric.includes(\"conversions\")) {\n inflated = true;\n }\n }\n \n const today = moment();\n let lockDate = moment(date);\n if (inflated) {\n lockDate.endOf(\"month\").add(30, \"days\")\n } else {\n lockDate.endOf(\"month\").add(1, \"days\")\n }\n\n return today >= lockDate;\n};\n","export default (sectionName, metricKey, diff) => {\n let lessIsGood = false;\n const metric = metricKey.toLowerCase();\n if (metric.includes(\"cpc\")) {\n lessIsGood = true;\n } else if (metric.includes(\"cpa\")) {\n lessIsGood = true;\n } else if (metric.includes(\"spend\") && sectionName == \"goalsAndProjections\") {\n lessIsGood = true;\n } else if (metric.includes(\"bounce_rate\")) {\n lessIsGood = true;\n } else if (metric.includes(\"cpv\")) {\n lessIsGood = true;\n }\n \n const negative = lessIsGood ? diff >= 0 : diff < 0;\n\n return negative;\n};\n","export default (p, o) => {\r\n return p.reduce((xs, x) => (xs && (xs[x] || xs[x] == 0)) ? xs[x] : null, o);\r\n}\r\n","import jsDig from \"utils/jsDig.js\";\r\n\r\nexport default (service, section, metric, dashboards, enabledServices) => {\r\n // This could be expanded if we ever need more customized metrics\r\n if (service == \"ppc\") {\r\n const services = [\"search\", \"social\", \"display\", \"video\"].filter((serviceName) => enabledServices[serviceName] == true);\r\n let canBuild = false;\r\n\r\n if (metric.includes(\"shopify\")) {\r\n canBuild = true;\r\n }\r\n\r\n if (section == \"campaignGroups\" || section == \"performanceByChannel\") {\r\n canBuild = true;\r\n }\r\n\r\n if (section == \"goalsAndProjections\" || section == \"allKpisVsPreviousYear\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"goalsAndProjections\" || s[\"name\"] == \"allKpisVsPreviousYear\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"primaryKpiCharts\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"primaryKpiCharts\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"primaryKpiTables\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"primaryKpiTables\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"spendAllocation\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"spendAllocation\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n return canBuild;\r\n } else {\r\n return true;\r\n }\r\n}\r\n","export default (conditions, name) => {\r\n const containsOr = conditions[\"contains\"][\"or\"]\r\n const containsAnd = conditions[\"contains\"][\"and\"]\r\n const notContainsOr = conditions[\"notContains\"][\"or\"]\r\n const notContainsAnd = conditions[\"notContains\"][\"and\"]\r\n let passes = true;\r\n if (name && name != \"\") {\r\n if (containsOr && containsOr.length > 0) {\r\n const nameContains = containsOr.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (!nameContains.includes(true)) {\r\n passes = false\r\n }\r\n }\r\n if (containsAnd && containsAnd.length > 0) {\r\n const nameContains = containsAnd.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (nameContains.includes(false)) {\r\n passes = false\r\n }\r\n }\r\n if (notContainsOr && notContainsOr.length > 0) {\r\n const nameNotContains = notContainsOr.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (!nameNotContains.includes(false)) {\r\n passes = false\r\n }\r\n }\r\n if (notContainsAnd && notContainsAnd.length > 0) {\r\n const nameNotContains = notContainsAnd.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (nameNotContains.includes(true)) {\r\n passes = false\r\n }\r\n }\r\n } else {\r\n passes = false;\r\n }\r\n\r\n return passes\r\n};\r\n","export default (key, value, page) => {\r\n let searchParams = new URL(location.href).searchParams;\r\n if (key === undefined && page === \"services\") {\r\n key = \"sub_page\";\r\n if (searchParams.toString().includes(\"seo\")) {\r\n value = \"ppc\";\r\n } else {\r\n value = \"seo\";\r\n }\r\n }\r\n searchParams.set(key, value);\r\n searchParams = \"?\" + searchParams.toString();\r\n var newurl = `${window.location.origin}${window.location.pathname}${searchParams}`;\r\n window.history.pushState({ path: newurl }, \"\", newurl);\r\n};\r\n","import React, { useCallback, useMemo, useState } from \"react\";\nimport isHotkey from \"is-hotkey\";\nimport { Editable, withReact, useSlate, Slate } from \"slate-react\";\nimport { Editor, Transforms, createEditor } from \"slate\";\nimport { withHistory } from \"slate-history\";\n\nimport { Button, Icon, Toolbar } from \"./components\";\n\nconst HOTKEYS = {\n \"mod+b\": \"bold\",\n \"mod+i\": \"italic\",\n \"mod+u\": \"underline\",\n \"mod+`\": \"code\"\n};\n\nconst LIST_TYPES = [\"numbered-list\", \"bulleted-list\"];\n\nconst RichTextEditor = (props) => {\n const [value, setValue] = useState(initialValue);\n const renderElement = useCallback(props => , []);\n const renderLeaf = useCallback(props => , []);\n const editor = useMemo(() => withHistory(withReact(createEditor())), []);\n\n return (\n <>\n
    \n {\n setValue(value)\n props.setEmailBody(value)\n const isAstChange = editor.operations.some(\n op => 'set_selection' !== op.type\n )\n if (isAstChange) {\n // Save the value to Local Storage.\n const content = JSON.stringify(value)\n }\n }}>\n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n {\n for (const hotkey in HOTKEYS) {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n const mark = HOTKEYS[hotkey];\n toggleMark(editor, mark);\n }\n }\n }}\n />\n \n
    \n \n );\n};\n\nconst toggleBlock = (editor, format) => {\n const isActive = isBlockActive(editor, format);\n const isList = LIST_TYPES.includes(format);\n\n Transforms.unwrapNodes(editor, {\n match: n => LIST_TYPES.includes(n.type),\n split: true\n });\n\n Transforms.setNodes(editor, {\n type: isActive ? \"paragraph\" : isList ? \"list-item\" : format\n });\n\n if (!isActive && isList) {\n const block = { type: format, children: [] };\n Transforms.wrapNodes(editor, block);\n }\n};\n\nconst toggleMark = (editor, format) => {\n const isActive = isMarkActive(editor, format);\n\n if (isActive) {\n Editor.removeMark(editor, format);\n } else {\n Editor.addMark(editor, format, true);\n }\n};\n\nconst isBlockActive = (editor, format) => {\n const [match] = Editor.nodes(editor, {\n match: n => n.type === format\n });\n\n return !!match;\n};\n\nconst isMarkActive = (editor, format) => {\n const marks = Editor.marks(editor);\n return marks ? marks[format] === true : false;\n};\n\nconst Element = ({ attributes, children, element }) => {\n switch (element.type) {\n case \"block-quote\":\n return
    {children}
    ;\n case \"bulleted-list\":\n return
      {children}
    ;\n case \"heading-one\":\n return

    {children}

    ;\n case \"heading-two\":\n return

    {children}

    ;\n case \"list-item\":\n return
  • {children}
  • ;\n case \"numbered-list\":\n return
      {children}
    ;\n default:\n return

    {children}

    ;\n }\n};\n\nconst Leaf = ({ attributes, children, leaf }) => {\n if (leaf.bold) {\n children = {children};\n }\n\n if (leaf.code) {\n children = {children};\n }\n\n if (leaf.italic) {\n children = {children};\n }\n\n if (leaf.underline) {\n children = {children};\n }\n\n return {children};\n};\n\nconst BlockButton = ({ format, icon }) => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n toggleBlock(editor, format);\n }}\n >\n {icon}\n \n );\n};\n\nconst MarkButton = ({ format, icon }) => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n toggleMark(editor, format);\n }}\n >\n {icon}\n \n );\n};\n\nconst initialValue = [\n {\n type: \"paragraph\",\n children: [\n { text: \"\" }\n ]\n }\n];\n\nexport default RichTextEditor;\n","import React, { useState } from \"react\";\nimport { Table, Form, Button, } from \"react-bootstrap\";\nimport RichTextEditor from './RichTextEditor'\nimport escapeHtml from 'escape-html'\nimport { Text } from 'slate'\n\nexport default function WriteMail(props) {\n const emails = [\n \"support@digitalposition.com\",\n \"datapulse@digitalposition.com\"\n ]\n\n const handleSubmit = (e) => {\n e.preventDefault()\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/admin/send-email\",\n\t\t\tdata: {\n\t\t\t\temailBody: emailBody.map((node) => serialize(node)).join(''),\n\t\t\t\temailFrom: emailFrom,\n emailTo: emailTo.split(\",\").map(email => email.trim()),\n 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","employees","AccountIds","googleAds","microsoftAds","metaAds","tiktokAds","GoogleAnalytics","semrush","amazonAdsIcon","googleAdsId","microsoftId","metaId","tiktokId","googleAnalyticsId","semrushId","amazonAdsId","selectedOption","setSelectedOption","conversionObjective","setConversionObjective","tiktokConversionObjective","setTiktokConversionObjective","handleRadioChange","facebook_conversion_objectives","objectiveName","objectiveInt","c","tiktok_conversion_objectives","ppc_section","shopify_country_filter","amazon_profile_ids","createContext","AccountSettingsButton","cog","isModalOpen","setModalOpen","toggleModal","excludeNbInShoppingKeywords","setExcludeNbInShoppingKeywords","contextValue","Provider","modalRef","activeTab","setActiveTab","formSubmitted","setFormSubmitted","daily_yields","inflation","handleFormSubmit","formData","FormData","append","dashboard_objective","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","amazon_ads_id","day","fetch","headers","body","ok","TabContent","stopPropagation","setBaseCurrency","setDisplayCurrency","dashboardObjective","setDashboardObjective","isPrimarySiteValid","setPrimarySiteValid","uploadIcon","RegExp","validatePrimarySite","ClientUsers1","xIcon","gap","alignItems","active","userType","settings","CreateNewUser1","clientButtonClick","employeeButtonClick","default","Inflation","csvUploadRef","lodashClonedeep","transfer","paste","calendarBolt","setSelectedPlatform","yieldMetrics","setInflation","accept","fileInput","yieldTable","reader","FileReader","extension","pop","processCsv","file","yields","tableColumns","first","currentRow","currentColumn","newInflation","readAsText","onload","uploadCsv","refs","copyInflationArray","visability","tableIndex","blank","LiteCurrencySelector","ScriptBoxes","youtubeChannelExcluderData","setYoutubeChannelExcluderData","localKeywords","setLocalKeywords","handleScriptPropertyInput","currentData","updateMethod","handleBlur","script","classname","for","columnGap","kwNum","prevKeywords","onBlur","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","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","setCustomConversions","errorText","setErrorText","onFocus","replaceAll","cg","conversionActionsLabels","toArray","conversionActionsIds","customConversionsLabels","customConversionsIds","errorsPresent","ConversionActionIds","targetIndex","newActions","newAction","v4","conversionAction","EditCampaignGroup","edit","notContainsAnd","notContainsOr","PPCConfig","ppcPulling","searchPulling","socialPulling","displayPulling","videoPulling","ppcRecalculating","searchRecalculating","socialRecalculating","displayRecalculating","videoRecalculating","showPpcErrors","showSearchErrors","showSocialErrors","showDisplayErrors","showVideoErrors","pullInProgress","recalcInProgress","current_user","displayErrors","errorCounts","uniq","errorMessage","dismissDataPullErrors","closest","fadeOut","user_is_admin","selectedPage","newScripts","setScripts","checkValidation","All","Dashboard","dashboard_order","ppcDashboard","searchEnabled","socialEnabled","videoEnabled","displayEnabled","setPpcDashboard","Goals","metrics","goalChangePercent","setGoalChangePercent","allOrBlank","setAllOrBlank","dashboardsInitial","setSelectedYear","ppc_cc_data","selectedId","percentChange","allCcData","datum","dashIndex","ccData","newDate","newMonth","newyear","goalShortcutMetrics","metricCheckbox","metricCamel","metricSnake","historical","newValue","round","handlePullMetric","check","newCheckedMetrics","dbIndex","yearIndex","visible","IdsData","data_pull_enabled","Display","platform_data","show_scripts","displayScripts","displayScriptsVar","setDisplayScripts","setScriptsVar","setDisplayScriptsVar","script_variables","subs","initialDashboards","displayDashboard","dash","setDisplayDashboard","display_cc_data","Search","searchScripts","searchScriptsVar","setSearchScripts","setSearchScriptsVar","searchDashboard","setSearchDashboard","search_cc_data","Social","socialScripts","socialScriptsVar","setSocialScripts","setSocialScriptsVar","socialDashboard","setSocialDashboard","social_cc_data","CustomConversions","newConversions","pull_campaign_name_only","Video","videoScripts","videoScriptsVar","setVideoScripts","setVideoScriptsVar","videoDashboard","setVideoDashboard","video_cc_data","SEOConfig","seoPulling","seoRecalculating","showErrors","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","projectIdImg","newRow","KeywordBox","kgGroupId","setConditions","handleAddCondition","newCondition","newKeywordGroups","setKeywordGroups","handleDelete","justifyItems","alignItem","newConditions","KeywordGroups","keywords","frontID","keywordGroupsOrder","keywordId","removeKeyword","newGroup","direction","keyword","LandingPage","lpGroup","lpGroups","lpGroupId","newLpGroups","newSectionOrder","setLpGroups","conditionsLength","conditionHtml","LandingPages","lpGroupOrder","originalGroupIds","setLandingPageGroups","newGroups","ClientAccountStatus","activeClients","deactivatedClients","confettiTrigger","newActiveClients","newDeactivatedClients","deleteClient","client_company_id","successMsg","failureMsg","activateMsg","sortClients","failure","changeActiveStatus","created_at","current_user_is_admin","confirmDeleteClient","spread","startVelocity","elementCount","dragFriction","duration","stagger","perspective","BlueIndentedSection","btn","ppcDash","borderBottom","MetricFormatter","GreenIndentedSection","KPIMetricBlock","goodOrBadText","goodOrBadBg","KeywordBlock","yyText","KeywordImprovedDeclinedBlock","improved","declined","KeywordTable","sortBy","keyword_sort","sortOrderAsc","keyword_sort_order_asc","sortedKeywords","by","initial","kwCopy","tempSortOrder","start_date_ranking","parseFloat","end_date_ranking","ranking_difference","cpc","volume","difficulty","sortKeywords","sortUpHtml","sortDownHtml","pdf","user_is_employee","diffBackground","serp_features","serp_feature","tag","string","ranking_page","getTickProps","oldValue","roundTo","decimal","YY","YY0","Sessions","Impressions","PhoneCalls","SearchVisibility","OrganicTraffic","Clicks","Revenue","BounceRate","ROAS","AOV","CPA","CPC","CVR","CTR","Conversions","Backlinks","DefaultTick","tickProps","MonetaryTick","convertedValue","currencyConverter","CalculatedTick","CalculatedMonetaryTick","NoData","indentClass","PPCDashboard","p","shared","configUrl","exportButton","changeSection","dispatchEvent","Event","searchDashboards","socialDashboards","displayDashboards","videoDashboards","platformCount","allPpcEnabled","ageKeyOrder","dayKeyOrder","hourKeyOrder","PPCDashboardDisplay","cc_data","renderArray","dashboardTableOrder","metricShortened","getNegative","getGoalLocked","metricTitles","groupOrder","group_id","svgList","google","microsoft","transform","bing","facebook","rx","tiktok","all","clipRule","allIcon","googleIcon","microsoftIcon","facebookIcon","allPlatformIcon","tiktokIcon","client_type","dashboardsEnable","sum","capitalized","iconGraphic","handlePlatform","dashboardSection","generateDashboardSection","userIsEmployee","PPCDashboardOverall","channels","channel","metricNames","tempMetricNames","channelName","PPCDashboardSearch","PPCDashboardSocial","PPCDashboardVideo","PPCSummary","client_list","metric_list","overall_metrics","search_metrics","social_metrics","display_metrics","video_metrics","PPCSummaryDisplay","activeTable","firstKey","leadgenList","leadgenClients","ecommerceList","ecommerceClients","totals","leadgen","ecommerce","mValue","changeTable","display_name","programmatic_name","Infinity","PPCSummaryOverall","PPCSummarySearch","PPCSummarySocial","PPCSummaryVideo","PdfKPIMetricBlock","PdfKeywordRow","PdfKeywordTable","setSortBy","setSortOrderAsc","setSortedKeywords","SEODashboard","landingPageGroup","keywordGroupOrder","keyword_groups_order","keywordGroup","new","lost","organizationName","organization_name","SEOSummary","this_month","borderTop","ServiceDisabled","topText","leftBullets","rightBullets","btnClass","bullet","AmazonDashboard","metricTableDimensions","table_data","lastDataPull","toLocaleString","hour","minute","hour12","last_data_pull","datasetNames","chart_data","labels","subHeaderOrder","tableName","dimensions","groups","LiteKeywordTable","LiteLineChart","datasets","plugins","legend","family","scales","ticks","maxTicksLimit","maxRotation","autoSkip","grid","drawBorder","ChartJS","CategoryScale","LinearScale","PointElement","LineElement","Title","Tooltip","Legend","LiteMetricTable","showDropdown","setShowDropdown","selectedGroup","setSelectedGroup","toggleDropdown","baseUrl","renderGroupSelector","selectGroup","formatCells","skipPrev","formatMetric","isComparison","monetaryMetrics0Precision","monetaryMetrics2Precision","standardMetrics2Precision","percentageMetrics2Precision","addCommasToNumber","finalValue","getColumnName","subHeader","containsUrl","rel","toLower","showMenu","setShowMenu","loading","setLoading","progress","setProgress","loadingGif","totalQueries","setTotalQueries","dataPullComplete","setDataPullComplete","pullOnlyShopify","setPullOnlyShopify","intervalId","setInterval","fetchRefreshStatus","clearInterval","totalQueriesCurrent","params","URLSearchParams","json","updateProgress","remainingQueries","total_jobs","innerText","completedQueries","handleRefresh","timePeriod","OrganicSearchDashboard","client_account_website","OrganicSocialDashboard","OtherDashboard","OverviewDashboard","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","setCompanyName","CompanyType","eCommerce","leadGen","lead","setEcommerce","setLead","changeOption","setAccountType","Complete","setConfettiTrigger","small","medium","large","ppcEnabled","DatapulseAccess","setFirstAlert","setLastAlert","showUsers","addNewPerson","removePerson","changePerson","box","pattern","dpAccessBox","AllPPCGoals","validationInit","setValidatation","isEmpty","DisplayGoals","dashboardsInit","SEOGoals","SearchGoals","SocialGoals","VideoGoals","GoogleAnalyticsGoalTracking","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","account_access_ids","is_primary_point_of_contact","showUser","selection","newPeople","personIndex","newShowUsers","newShowUsersIndex","newSelectedUsers","newSelectedUsersIndex","phoneChange","permissionHandler","setGoogleAdsIds","setSeoFeeStructure","onboardingProgress","ppcServices","setSearch","setSocial","setVideo","setDisplay","exact","path","component","routeProps","PPCConfigurationIntro","PPCDashboardCustomization","showBoxes","setShowBoxes","PPCDashboardCustomizationAll","PPCServiceAgreements","searchValidation","setSearchValidation","socialValidation","setSocialValidation","displayValidation","setDisplayValidation","videoValidation","setVideoValidation","setValidation","removeRow","selector","PersonBox","DataPull","ppcPullboxes","pullUpdateHelper","exist","ProgressBar","leftBar","midBar","rightBar","allComplete","setAllComplete","generalComplete","setGeneralComplete","teamAccessComplete","setTeamAccessComplete","serviceComplete","setServiceComplete","ppcConfigComplete","setPpcConfigComplete","seoConfigComplete","setSeoConfigComplete","generalUrls","teamUrls","serviceUrls","ppcUrls","seoUrls","serviceArray","setServiceArray","seoArray","setSeoArray","ppcArray","setPpcArray","generalArray","teamArray","isUndefined","tempServiceArray","tempPpcArray","tempSeoArray","temp","every","SEMRushSetup","accessChecked","addNewRow","SEOConfigurationIntro","SEOServiceAgreements","seoFeeArray","exclaimTriangleMobile","amount1","amount2","resetScripts","ScrollToTop","withRouter","SeoAlerts","SeoDataPull","seoPullboxes","ServiceAgreementsIntro","seoA","seoI","ppcA","ppcI","searchI","searchA","displayA","displayI","socialI","socialA","videoI","videoA","subServices","setPpc","services","pages","pageNames","incompletePageNames","incompletePageFunc","SkipButton","remainingPages","SocialConversions","DataFeedWatchInstall","FacebookAdsAccess","userGrantAccess","setUserGrantAccess","frontId","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","innerHTML","TrackSpecificACtionIds","lengh","searchActive","setSearchActive","displayActive","setDisplayActive","videoActive","setVideoActive","displayHelper","conversionActionBox","sectionKey","setRows","changeRow","unresolvedPages","currentIndex","DeleteOrgModal","showDeleteModal","setShowDeleteModal","deleteTarget","setDeleteLocked","deleteLocked","deleteOrg","OrgStatus","showCreateModal","setShowCreateModal","setDeleteTarget","orgs","org","confirmDelete","Customizations","OrgInfo","OrgLogo","upload","zIndexFirst","setZIndexFirst","show2","setShow2","toggledUsers","setToggledUsers","org_users","owner","unSelectedUsers","setVisibleUsers","newOwnerId","setNewOwnerId","handleClose2","capturedId","toggledUsersList","organization_type","isOwner","isPrimaryOrg","matchedUsers","toggled","handleOwnershipTransfer","handleOrgDelete","OrgPicker","orgPic","dpLogo","isClickable","organizations","god_or_admin","orgName","selected_org","selectedOrg","OrgPickerModal","selfShow","setSelfShow","centered","force_selection","selectedOrgId","Organizations","current_user_is_god","is_primary_org","user_id","Users","filteredInput","setFilteredInput","roles","formSubmitUrl","tempName","tempEmail","tempRole","tempDepartment","tempRoleFormatted","user_org_detail_id","tempDepartmentFormatted","sectionNames","self","m","pageNumber","hideLogo","sectionIndex","MonthlyPpcSection","campaignGroupCase","date_formatted","MonthlyReportIntro","MonthlyReportOutro","MonthlyReportPdf","checkPpcSections","dashboardOrders","obj","defaultMetricsData","dbOrd","unshift","seoDashboardOrder","seoPages","ppcPages","keepingTrack","pageHeight","elementsPerRow","elementHeight","metricIndex","ranking","goalPage","shift","MonthlySeoReport","MonthlySeoSection","landingPageCase","keywordCase","seoGoals","PDFPage","PPCPdfDisplay","goalChartDim","lineChartDim","pieChartDim","goalsPerRow","chartsPerRow","tablesPerRow","kpiBlocksPerRow","metricsPerTable","goalRowHeight","chartRowHeight","tableRowHeight","groupTableRowHeight","kpiBlockRowHeight","pieRowHeight","barRowHeight","mapRowHeight","campaignName","url_origin","generatePdfSection","tempIndex","campaignIndex","copyOfCampaignMetric","duplicateCampaign","allocationIndex","allocationMetrics","campaignGroupIndex","maxPageHeight","generatePdfPage","PPCPdfOverall","PPCPdfSearch","PPCPdfSocial","PPCPdfSummaryDisplay","displayMetrics","getPageNumber","PPCPdfSummaryOverall","searchMetrics","PPCPdfSummarySearch","PPCPdfSummarySocial","socialMetrics","PPCPdfSummaryVideo","videoMetrics","PPCPdfVideo","SEOPdf","keywordRankingRowHeight","pageName","landingPage","landingPageIndex","copyOfLandingPageMetric","duplicateLandingPage","keywordIndex","copyOfKeywordMetric","duplicateKeywordGroup","firstLandingPageIndex","firstKeywordIndex","SEOPdfSummary","PacingContext","PpcPacing","selected_account","ppc_pacing_metrics","submit","overall","metricsData","availableMetrics","available_metrics","default_metrics","pacingOrder","pacing_order","dateRanges","date_ranges","overall_platforms","search_platforms","social_platforms","display_platforms","video_platforms","pacingContext","summary","daily","Overall","DailyView","allPlatforms","redOrGreen","integer","selectedMetrics","setSelectedMetrics","selectedCampaign","setSelectedCampaign","table_view_preference","yoy","setYoy","columnCount","campaignCapitalized","serviceCapitalized","platformArray","platformSet","uniquePlatforms","campCapitalized","updatedList","metricHelper","last_30_days","evenOrOdd","beforeDate","formatDate","number","EPSILON","overallAmount","SummaryView","availableFrequency","selected_frequency","selectedFrequency","setSelectedFrequency","frequencyHelper","dashboardUrl","shop","teamUrl","i18n","enTranslations","fullWidth","sectioned","variation","shopify_install","breadcrumbs","last_updated","UserAccess","userInfo","localeCompare","organization_id","searchString","users_array","u","permissions","deleteUser","UserAccessTable","UserAccessTableButtons","confirmRemove","UserNewForm","CustomAvatar","christmasSpecial","fallSpecial","springSpecial","summerSpecial","winterSpecial","halloweenSpecial","special","CustomDropdown","currentTab","upper","setCurrentSection","currentCampaign","setCurrentCampaign","campaignSetter","goalSetter","performanceSetter","clickOutsideConfig","handleClickOutside","onClickOutside","CustomFormCheck","inputElement","CustomSwitch","CustomTooltip","DataPullSavePopUp","DayPicker","yyyymmdd","minDate","convertUTCToLocalDate","changeDate","placeholderText","blur","DefaultAvatar","firstLetter","secondLetter","secondInitial","finalModifier","charCodeAt","optionsRatio","chosenIndex","isInteger","String","firstInitial","chooseColor","alertCounter","xmlnsXlink","dy","textAnchor","dominantBaseline","LeftIndent","Metric","noConvert","MonthPicker","showMonthYearPicker","NumberDropdown","ProfileDropdown","logout","orgLogo","hieght","userOrgDetail","user_org_details","getRoleTitle","logout_path","quotes","normalQuotes","specialQuotes","random","StateOptions","humanizedRole","to_lower","firstCap","UserSelector","fieldsFor","btnDisabled","big_avatar","unselectUser","decimalPlaces","countDecimals","allRates","valueOf","ppcOrderArray","seoOrderArray","currencyObj","seoMetric","inflated","lockDate","endOf","lessIsGood","canBuild","subGroupSection","passes","newurl","pushState","HOTKEYS","LIST_TYPES","toggleMark","editor","isMarkActive","Editor","isBlockActive","n","marks","Element","attributes","Leaf","leaf","bold","italic","underline","BlockButton","useSlate","Button","onMouseDown","isActive","isList","Transforms","toggleBlock","Icon","MarkButton","initialValue","setValue","renderElement","useCallback","renderLeaf","useMemo","withHistory","withReact","createEditor","setEmailBody","operations","op","Toolbar","spellCheck","onKeyDown","hotkey","isHotkey","WriteMail","emailBody","emailFrom","setEmailFrom","emailTo","setEmailTo","emailCC","setEmailCC","emailBCC","setEmailBCC","subject","setSubject","showCC","setShowCC","showBCC","setShowBCC","node","escapeHtml","emailCc","emailBcc","reversed","cx","css","EditorValue","textLines","nodes","Instruction","Menu","Portal","ReactDOM"],"sourceRoot":""}