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

    {metricTitle}

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

    {metricTitle}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

    ${props.organization.name}

    \n

    \n

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

    \n
    \n

    ${email}

    \n

    Tel: ${personalInfo.phone_number}

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

      \n {personalInfo.job_title}:

      {personalInfo.name}
      \n

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

    ${props.company_name}

    \n

    \n

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

    \n
    \n

    ${info[0]}

    \n

    Tel: ${info[1].phone_number}

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

    ${props.company_name}

    \n

    \n

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

    \n
    \n

    ${info[0]}

    \n

    Tel: ${info[1].phone_number}

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

    ${props.company_name}

    \n

    Additional Users

    \n

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

    N/A

    :

    {department}

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

    {access}

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

    {access}

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

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

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

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

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

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

    PPC

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

    SEO

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

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

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

    Custom:

    \n

    Hover for details

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

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

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

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

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

    You can still login using your old Zoom credentials.

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

    Login to DataPulse

    \n

    Privacy Policy

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

    DataPulse

    \n

    Real-time metrics reporting

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

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

    \n
    \n

    Anytime, anywhere.

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

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

    support@digitalposition.com

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

    DataPulse Change History

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

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

      \n

      Read more

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

    Admin Settings

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

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

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

    Alert Subscriptions

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

    Subscriptions By Client

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

    {client.company_name}

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

    Subscriptions By User

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

    {selectedUser.name}

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

    {client.company_name}

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

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

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

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

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

    All set for now!

    \n
    \n

    \"{quote.text}\"

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

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

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

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

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

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

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

    Alert Summary

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

    All set for now!

    \n
    \n

    \"{quote.text}\"

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

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

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

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

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

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

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

    Alerts

    \n
    \n
    \n

    \n Search:\n

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

    No alerts

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

    Alerts for {selectedClient.company_name}

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

    {alert.text}

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

    Type: {alert.alert_type}

    \n

    Created At: {alertCreatedAt}

    \n {alert.secondary_text && (\n
    \n )}\n
    \n
    \n \n )\n })}\n
    \n \n \n \n
    \n )}\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Button, Col, Row, Container } from \"react-bootstrap\";\nimport { capitalize } from \"lodash-es\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport PlatformSpecific from \"./PlatformSpecific\";\n\nfunction ApiAccess(props) {\n // Simplified platform state handling\n const [platforms, setPlatforms] = useState(props.api_platforms);\n const [mccId, setMccId] = useState(props.organization.google_ads_mcc_id);\n const [showAlert, setShowAlert] = useState(false);\n\n useEffect(() => {\n const googleAds = platforms.google_ads;\n const showAlertCondition = googleAds.authenticated && (!mccId || mccId.length !== 10);\n setShowAlert(showAlertCondition);\n }, [platforms.google_ads, mccId]);\n\n\n const openAuthPage = (authUrl) => {\n window.open(authUrl, \"_blank\");\n };\n\n const renderAuthButton = (platformKey) => {\n const platform = platforms[platformKey];\n const isGoogleService = platform.title.toLowerCase().includes(\"google\");\n \n if (platform.authenticated) {\n return (\n <>\n \n \n );\n } else if (isGoogleService) {\n const googleBtn = require(\"images/google/btn_google_signin_light_normal_web.png\");\n return (\n
    openAuthPage(platform.auth_url)}>\n \"Google\n
    \n );\n } else {\n return (\n <>\n \n \n );\n }\n };\n\n return (\n <>\n \n \n \n
    \n
    Authenticate with the services you need to pull for your clients.
    \n

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

    \n
    \n \n {Object.keys(platforms).map((platformKey, index) => {\n const platform = platforms[platformKey];\n const apiTitle = platformKey === \"google_webmasters\" ? \"Google Search Console\" : platform.title;\n return (\n \n

    {apiTitle}

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

    Campaign Builder

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

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

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

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

      \n

      Pre-existing campaigns will not be modified.

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

    {props.platform.platformName}

    \n ) : (\n

    {props.platform.platformName}

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

    Metrics to set goals for:

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

    Display configuration

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

    * Will populate only under day of week chart

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

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

    \n
    \n

    {`${month}.`}

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

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

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

    Capabilities

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

    Website Permissions

    \n
    \n \n \n

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

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

    Global permissions

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

    Custom permissions/exceptions

    \n \n setIsEnabled(!isEnabled)}\n id=\"websitepermissionenable\"\n name=\"custom_website_permissions_enabled\"\n checked={isEnabled}\n />\n
    Enable
    \n
    \n {customPermissions.map((item, idx) => {\n let website = item.website;\n\n return isEnabled ? (\n \n \n \n \n \n \n \n
    \n \n {\" \"}\n
    Set to:
    {\" \"}\n
    \n \n
    \n \n \n
    \n \n
    \n \n \n {\n const newPermissions = customPermissions.filter((el) => item.id !== el.id);\n setCustomPermissions([...newPermissions]);\n }}>\n \n \n
    \n ) : null;\n })}\n \n \n permissionHandler([...customPermissions, { id: uuidv4(), website: \"\", permission: 4 }])}>\n + Add field\n \n \n \n \n
    \n\n \n
    \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Container } from \"react-bootstrap\";\nimport Details from \"./Details\";\nimport Permissions from \"./Permissions\";\n\nexport default function Website(props) {\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\n\t\t\n\t);\n}\n","import React, { useState, useContext, useRef } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport jsDig from \"utils/jsDig.js\";\nimport AccountUsers from \"client_config/lite/AccountUsers\";\n\nexport default function Access() {\n const context = useContext(SettingsContext);\n\n let teamAccess = require(\"images/lite/icons/teamAccess.png\");\n teamAccess = \"teamAccess\";\n\n let handshake = require(\"images/lite/icons/handshake.png\");\n handshake = \"handshake\";\n\n return (\n
    \n
    \n
    \n {handshake}

    Client Access

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

    Team Access

    \n
    \n \n
    \n
    \n );\n}\n","import React, { useState } from 'react';\n\n\nexport default function AccountHome(props) {\n\n let dpLogo = require(\"images/logos/datapulse-logo-blue-small.png\");\n dpLogo = \n\n let chat= require(\"images/lite/icons/chat.png\");\n chat = \n\n return (\n
    \n
    \n

    Welcome to {dpLogo}

    \n

    Looks like you don't have access yet!

    \n
    \n
    \n
    {chat}
    \n

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

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

    Google Analytics

    \n
    \n \n
    \n
    \n

    Google Analytics ID

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

    Google Ads

    \n
    \n \n
    \n
    \n

    Google Ads ID

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

    Microsoft Ads

    \n
    \n \n
    \n
    \n

    \n Microsoft Ads ID\n

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

    Meta Ads

    \n
    \n \n
    \n
    \n

    Meta Ads ID

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

    TikTok Ads

    \n
    \n \n
    \n
    \n

    TikTok Ads ID

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

    SEMRush

    \n
    \n \n
    \n
    \n

    SEMRush ID

    \n \n \n
    \n
    \n

    SEMRush Target Location:

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

    Shopify

    \n
    \n \n
    \n
    \n

    \n Shopify URL\n

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

    Shopify revenue type

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

    Shopify Country Filter

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

    Shopify URL required to authenticate

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

    Google Sheets

    \n
    \n \n
    \n
    \n

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

    \n

    Template link

    \n

    Spreadsheet URL:

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

    Amazon Ads

    \n
    \n \n
    \n
    \n

    Amazon Ads ID

    \n

    Please select an account from the list below

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

    Amazon Seller Central

    \n
    \n \n
    \n
    \n

    Select the country you would like to authenticate with:

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

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

    \n
    \n
    \n
    \n

    \n Current Authentications:\n

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

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

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

    None

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

    Mailchimp

    \n
    \n \n
    \n
    \n

    \n Server prefix:\n

    \n \n \n
    \n

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

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

    Klaviyo

    \n
    \n \n
    \n
    \n

    \n Klaviyo Private API KEY\n

    \n \n \n
    \n
    \n
    \n Klaviyo Conversion Objective\n \n
    \n {context.klaviyo_metrics && Object.keys(context.klaviyo_metrics).length > 0 ? (\n
    \n \n
    \n ) : (\n <>\n Save an API key and refresh to select a metric.\n \n \n )}\n
    \n
    \n
    0 ? \"data-pull-error-bg\" : \"\"}`}>\n
    \n
    \n {pinterestIcon}

    Pinterest

    \n
    \n \n
    \n
    \n

    Pinterest Account ID

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

    Account Configuration

    \n
    \n {logo}\n

    {context.company_name}

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

    {capitalize(activeString)}

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

    Add a new {props.userType}

    \n
    \n
    \n \n

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

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

    Company display name

    \n \n
    \n
    \n

    Company Website

    \n \n {!isPrimarySiteValid &&

    Must use valid URL which includes http or https

    }\n
    \n
    \n
    \n
    \n

    Default Dashboard Objective

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

    Total Website Conversions & Revenue Source

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

    Base Currency

    \n \n
    \n
    \n

    Display Currency

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

    Client Logo

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

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

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

    {script.desc}

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

    {option.desc}

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

    {script.desc}

    \n
    \n \n\n {script.name == \"exclude_nb_in_shopping\" ? ( // EXCLUDE NON-BRAND IN SHOPPING SCRIPT\n <>\n
    \n

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

    \n

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

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

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

    \n

    Edit access must be granted to support@digitalposition.com

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

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

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

    Select a predefined time range.

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

    Minimum number of impressions to consider a channel for exclusion.

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

    {option.desc}

    \n )}\n {\n handleScriptVariableChange(e, script.name, option.name);\n }}\n >\n
    \n )\n })}\n
    \n \n
    \n )}\n \n )}\n
    \n \n
    \n );\n })}\n \n )\n}\n","import React, { useState, useRef, useContext } from \"react\";\nimport { SettingsContext } from './AccountSettingsButton';\nimport { Tooltip, OverlayTrigger, Row, Col, Button, Table, Form } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig.js\";\n\nexport default function Inflation() {\n const props = useContext(SettingsContext);\n const section = \"search\";\n const platforms = [\"Google\", \"Microsoft\"]\n const csvUploadRef = useRef();\n const lodashClonedeep = require(\"lodash/cloneDeep\");\n\n let document = require(\"images/lite/icons/document.png\");\n document = (\n \"document\"\n );\n\n let transfer = require(\"images/lite/icons/transfer.png\");\n transfer = (\n \"transfer\"\n );\n\n let paste = require(\"images/lite/icons/paste.png\");\n paste = (\n \"paste\"\n );\n\n let calendarBolt = require(\"images/lite/icons/calendarBolt.png\");\n calendarBolt = (\n \"calendarBolt\"\n );\n \n\n const [selectedPlatform, setSelectedPlatform] = useState(platforms[0]);\n let yieldMetrics = [\"Revenue\", \"Conversions\"];\n const [inflation, setInflation] = useState(props.inflation);\n const copyInflation = () => {\n let copyInflationArray = { ...inflation };\n if (selectedPlatform === platforms[0]) {\n // using deep copy to avoid the object referencing another object but actually just copying the values\n copyInflationArray[`${selectedPlatform.toLowerCase()}`] = lodashClonedeep(inflation[`${platforms[1].toLowerCase()}`]);\n } else if (selectedPlatform === platforms[1]) {\n copyInflationArray[`${selectedPlatform.toLowerCase()}`] = lodashClonedeep(inflation[`${platforms[0].toLowerCase()}`]);\n }\n setInflation({ ...copyInflationArray });\n props.setInflation({ ...copyInflationArray });\n };\n\n const uploadCsv = (e) => {\n let fileInput = $(e.target).get(0);\n let yieldTable = $(`.${props.section}-${selectedPlatform.toLowerCase()}-yield-table`);\n let reader = new FileReader();\n var extension = fileInput.files[0].name.split('.').pop().toLowerCase() // file extension from input file\n var fileTypes = ['csv'];\n var isSuccess = fileTypes.indexOf(extension) > -1;\n if (isSuccess) {\n reader.readAsText(fileInput.files[0]);\n\n function processCsv(file, yieldTable) {\n let yields = file.replace(/[\\r]+/g, \"\").split(\"\\n\");\n let tableColumns = yieldTable.find(\"tbody tr\").first().children().length - 1;\n let currentRow = 0;\n let currentColumn = 0;\n let newInflation = { ...inflation };\n yieldTable.find(\"input\").each(function (index) {\n if (typeof yields[currentRow] == \"string\") {\n let cellValue = yields[currentRow].split(\",\")[currentColumn];\n $(this).val(cellValue); \n if (!newInflation[selectedPlatform.toLowerCase()]) {\n newInflation[selectedPlatform.toLowerCase()] = {};\n }\n if (!newInflation[selectedPlatform.toLowerCase()][yieldMetrics[currentColumn].toLowerCase()]) {\n newInflation[selectedPlatform.toLowerCase()][yieldMetrics[currentColumn].toLowerCase()] = {};\n }\n newInflation[selectedPlatform.toLowerCase()][yieldMetrics[currentColumn].toLowerCase()][currentRow + 1] = cellValue;\n }\n if ((index + 1) % tableColumns == 0) {\n currentRow++;\n currentColumn = 0;\n } else {\n currentColumn++;\n }\n });\n setInflation(newInflation);\n }\n \n\n reader.onload = function () {\n processCsv(reader.result, yieldTable);\n };\n }\n };\n\n const ComingSoonTooltip = () => {\n const renderTooltip = (refs) => (\n \n
    This feature is coming soon.
    \n
    \n );\n\n return (\n
    \n \n \n \n
    \n );\n };\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, { useContext, useState } from \"react\";\nimport { SettingsContext } from './AccountSettingsButton';\nimport jsDig from \"utils/jsDig.js\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport { Modal } from 'react-bootstrap';\nimport showAlert from \"utils/showAlert\";\n\nexport default function LastDataPullStatus(props) {\n const context = useContext(SettingsContext);\n const [showModal, setShowModal] = useState(false);\n\n const toggleModal = () => setShowModal(!showModal);\n\n let errorIcon = require(\"images/lite/icons/alert-circle.svg\");\n errorIcon = ;\n let successIcon = require(\"images/lite/icons/check.svg\");\n successIcon = ;\n\n const errors = context.data_pull_errors ? context.data_pull_errors.filter((error) => error.platform == props.platform) : [];\n const active = context.active_datasources.includes(props.platform);\n\n const formatErrorDate = (dateString) => {\n const date = new Date(dateString);\n\n // Format the date into a readable format in the user's local timezone\n const formattedDate = date.toLocaleString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: '2-digit',\n hour12: true // Use 12-hour time with AM/PM\n });\n\n return formattedDate;\n }\n\n const fourDaysAgo = new Date();\n fourDaysAgo.setDate(fourDaysAgo.getDate() - 4);\n \n const uniqueMessages = new Set();\n \n const filteredErrors = errors\n .filter(error => new Date(error.created_at) >= fourDaysAgo) // Remove errors older than 4 days\n .sort((a, b) => new Date(b.created_at) - new Date(a.created_at)) // Sort by most recent created_at\n .filter(error => {\n const messageWithoutId = error.message.replace(/\\(\\s*fbtrace_id:\\s*[A-Za-z0-9_-]+\\s*\\)/, '').trim();\n if (uniqueMessages.has(messageWithoutId)) {\n return false;\n } else {\n uniqueMessages.add(messageWithoutId);\n return true;\n }\n });\n\n \n \n return (\n
    \n {errors.length > 0 ? (\n \n ) : (\n active ? (\n successIcon\n ) : (\n \n )\n )}\n\n \n \n \n

    Data Pull Errors

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

    No errors.

    \n )}\n
    \n \n \n \n
    \n
    \n );\n}\n","import React from \"react\";\nimport getCurrencyDetails from \"utils/getCurrencyDetails\";\n\nexport default function LiteCurrencySelector({ selectedCurrency, setSelectedCurrency, nameAttribute }) {\n const currencies = [\n \"USD\", \"EUR\", \"JPY\", \"GBP\", \"AUD\", \"CAD\", \n \"CHF\", \"CNY\", \"HKD\", \"NZD\", \"AED\", \"INR\", \n \"SGD\", \"KRW\"\n ];\n\n return (\n
    \n setSelectedCurrency(e)}\n >\n {currencies.map((currency) => {\n const currencyDetails = getCurrencyDetails(currency);\n return (\n \n );\n })}\n \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { SettingsContext } from \"./AccountSettingsButton\";\nimport jsDig from \"utils/jsDig.js\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function MetaAdsCustomConversions() {\n const context = useContext(SettingsContext);\n const [customConversions, setCustomConversions] = useState(context.social_section.custom_conversions || []);\n\n const addCustomConversion = () => {\n setCustomConversions([...customConversions, {id: new Date().valueOf(), name: \"\", conversion_id: \"\" }]);\n context.setMetaAdsCustomConversions([...customConversions, {id: new Date().valueOf(), name: \"\", conversion_id: \"\" }]);\n };\n\n const deleteCustomConversion = (index) => {\n const newCustomConversions = customConversions.filter((_, i) => i !== index);\n setCustomConversions(newCustomConversions);\n context.setMetaAdsCustomConversions(newCustomConversions);\n };\n\n const handleCustomConversionChange = (index, field, value) => {\n const newCustomConversions = customConversions.map((customConversion, i) => {\n if (i === index) {\n return { ...customConversion, [field]: value };\n }\n return customConversion;\n });\n setCustomConversions(newCustomConversions);\n context.setMetaAdsCustomConversions(newCustomConversions);\n };\n\n return (\n
    \n
    \n {customConversions.map((customConversion, index) => (\n
    \n handleCustomConversionChange(index, \"name\", e.target.value)} />\n handleCustomConversionChange(index, \"conversion_id\", e.target.value)} />\n \n
    \n ))}\n \n
    \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { Tab, Nav, Container, Row, Col, Button, Form } from \"react-bootstrap\";\nimport GoogleAdsScripts from \"./GoogleAdsScripts\";\nimport DataPulseScripts from \"./DataPulseScripts\";\nimport { SettingsContext } from './AccountSettingsButton'\n\nexport default function Scripts() {\n\tlet exclaimTriangle = require(\"images/icons/exclaim-triangle.png\");\n\texclaimTriangle = ;\n\n const props = useContext(SettingsContext);\n\n const googleAdsScripts = [\n {\n name: \"text_converting_query_mining_script\",\n title: \"Text converting query mining script\",\n desc: \"Goes through all search queries that converted on an account during the previous two months and creates ad groups based on the converted query text.\",\n },\n {\n name: \"pmax_converting_query_mining_script\",\n title: \"PMAX converting query mining script\",\n desc: \"Goes through all search queries that converted on PMAX campaigns and creates ad groups based on the converted query text.\",\n options: [\n {\n name: \"days_to_query\",\n title: \"Number of days to query:\",\n placeholder: \"Default 30\",\n },\n {\n name: \"conversions_threshold\",\n title: \"Conversions threshold:\",\n placeholder: \"Default 3\",\n },\n {\n name: \"impressions_threshold\",\n title: \"Impressions threshold:\",\n placeholder: \"Default 15\",\n },\n ]\n },\n {\n name: \"em_bm_negative_overlap_script\",\n title: \"EM/BM negative overlap script\",\n desc: \"Syncs negative keyword lists throughout the account to prevent overlap.\",\n },\n {\n name: \"negative_dsa_sync_script\",\n title: \"Negative DSA sync script\",\n desc: \"Syncs enabled account keywords as negatives in the '[DSA]' ad group to prevent bidding on pre_targeted queries.\",\n },\n {\n name: \"exclude_nb_in_shopping\",\n title: \"Exclude Non-Brand in Shopping\",\n desc: \"When you split Shopping campaigns on branded and non-branded search terms, you often still get non-branded search terms in your branded Shopping campaign(s). This script automatically excludes these terms.\",\n },\n {\n name: \"keyword_cannibalization_script\",\n title: \"Keyword Cannibalization Script\",\n desc: \"For every ad group in the entire account, adds all keywords NOT in that ad group to be an exact match negative version to that ad group.\",\n },\n {\n name: \"youtube_channel_excluder\",\n title: \"Exclude Foreign Language YouTube Channels\",\n desc: \"For display and video campaigns, Google is not quite so particular about targeting individual languages and video ads are often played in foreign language channels. This script identifies YouTube channels in undesired countries on which the video campaign(s) was/are played and automatically excludes them from the respective campaign.\",\n },\n ];\n\n const dataPulseScripts = [\n {\n name: \"impressions_emergency_detector\",\n title: \"Impressions emergency detector\",\n desc: \"Creates an alert and sends an email if impressions drop to 0. Platforms: Google ads, Meta, Microsoft.\",\n },\n {\n name: \"disapproved_ads_detector\",\n title: \"Disapproved ads detector\",\n desc: \"Creates an alert with a list of disapproved ads on Google ads & Microsoft.\",\n },\n {\n name: \"keyword_bleeder_detector\",\n title: \"Keyword bleeder detector\",\n desc: \"Emails the PPC team if a Google Ads or Microsoft keyword has spent over a specified threshold with no conversions in the past 14 days.\",\n options: [\n {\n name: \"threshold\",\n title: \"Spend threshold:\",\n placeholder: \"Default $350\",\n },\n ],\n },\n {\n name: \"url_issue_detector\",\n title: \"URL issue detector\",\n desc: \"Goes through all ads on Google Ads account and makes an alert of pages that produce unacceptable response codes.\",\n },\n {\n name: \"new_invite_detector\",\n title: \"New Invite Detector\",\n desc: \"Creates an alert & sends an email if a new user has been invited to a Google Ads account.\",\n },\n ]\n\n\treturn (\n\t\t<>\n
    \n
    \n
    \n
    DataPulse Scripts
    \n

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

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

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

    \n
    \n
    {exclaimTriangle}
    \n

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

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\t\t\n\t);\n}\n","import React, { useState } from \"react\";\nimport { Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig.js\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport { Row, Col } from \"react-bootstrap\";\n\nexport default function AccountIdBox(props) {\n\tconst [platformEnabled, setPlatformEnabled] = useState(\n\t\tjsDig([\"enabled\"], props.platformData)\n\t\t\t? jsDig([\"enabled\"], props.platformData)\n\t\t\t: false\n\t);\n\n\tconst accountids = jsDig([\"account_ids\"], props.platformData)?jsDig([\"account_ids\"], props.platformData) : [\"\"]\n\n\tconst tooltipMessage =
    Note: Microsoft Ads account IDs must now be taken from the URL. Select the account from the initial list of accounts, then check the url for the \"aid\" parameter. The account id directly follows the = symbol. {props.example}
    \n\t\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetPlatformEnabled(!platformEnabled);\n\t\t\t\t\t}}\n\t\t\t\t\t/>\t\t\n\t\t\t\t\t{props.example &&\n \t \n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t \n\t\t\t\t\n\t\t\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    ID number

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

    \n {platformType}: {groupName}\n

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

    Contains:

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

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

    \n ) : (\n

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

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

    \n Campaign Groups:\n

    \n

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

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

    Name:

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

    Contains:

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

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

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

    You must include a term!

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

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

    Does not contain:

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

    You must include a term!

    \n ) : (\n <>\n

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

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

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

    \n \"Contains\" modifier:\n

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

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

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

    Output preview:

    \n \n
    \n \n \n

    Contains:

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

    \n Does not contain:\n

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

    \n Test a campaign name:\n

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

    Instructions:

    \n

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

    \n

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

    \n

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

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

    Facebook Objective

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

    Tiktok Objective

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

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

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

    {error}

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

    Label

    {\" \"}\n
    \n

    ID

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

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

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

    Configure Campaign Groups

    */}\n \n \n

    Name:

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

    Contains:

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

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

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

    You must include a term!

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

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

    Does not contain:

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

    You must include a term!

    \n ) : (\n <>\n

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

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

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

    \n \"Contains\" modifier:\n

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

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

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

    Output preview:

    \n \n
    \n \n \n

    Contains:

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

    \n Does not contain:\n

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

    \n Test a campaign name:\n

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

    Instructions:

    \n

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

    \n

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

    \n

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

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

    Facebook Objective

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

    Tiktok Objective

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

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

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

    {error}

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

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

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

    Your data pull has completed but data is recalculating

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

    {capitalize(platform)}:

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

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

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

    \n {script.desc}\n

    \n
    \n
    \n

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

    \n

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

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

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

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

    {script.desc}

    \n
    \n
    \n

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

    \n

    Edit access must be granted to support@digitalposition.com

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

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

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

    Select a predefined time range.

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

    Minimum number of impressions to consider a channel for exclusion.

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

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

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

    {script.desc}

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

    Dashboard modules:

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

    Goals:

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

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

    \n

    \n (Negative numbers are also supported)\n

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

    Metrics to fill in:

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

    Goals to replace:

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

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

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

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

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

    What's this?

    \n
    \n
    \n

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

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

    Shopify URL

    \n \n
    \n
    \n

    Shopify revenue type

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

    Alerts:

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

    Dashboard modules:

    \n

    Select View:

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

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

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

    Goals:

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

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

    \n

    \n (Negative numbers are also supported)\n

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

    Metrics to fill in:

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

    Goals to replace:

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

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

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

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

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

    What's this?

    \n
    \n
    \n

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

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

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

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

    Scripts:

    \n
    {exclaimTriangle}
    \n

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

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

    Alerts:

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

    Dashboard modules:

    \n

    Select View:

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

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

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

    Goals:

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

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

    \n

    \n (Negative numbers are also supported)\n

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

    Metrics to fill in:

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

    Goals to replace:

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

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

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

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

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

    What's this?

    \n
    \n
    \n

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

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

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

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

    Scripts:

    \n
    {exclaimTriangle}
    \n

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

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

    Alerts:

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

    Dashboard modules:

    \n

    Select View:

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

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

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

    Goals:

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

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

    \n

    \n (Negative numbers are also supported)\n

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

    Metrics to fill in:

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

    Goals to replace:

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

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

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

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

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

    What's this?

    \n
    \n
    \n

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

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

    Account IDs

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

    Facebook Objective

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

    Tiktok Objective

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

    Alerts:

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

    Dashboard modules:

    \n

    Select View:

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

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

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

    Goals:

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

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

    \n

    \n (Negative numbers are also supported)\n

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

    Metrics to fill in:

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

    Goals to replace:

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

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

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

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

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

    What's this?

    \n
    \n
    \n

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

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

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

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

    Scripts:

    \n
    {exclaimTriangle}
    \n

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

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

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

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

    Your data pull has completed but data is recalculating

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

    {capitalize(platform)}:

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

    Alerts:

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

    Dashboard modules:

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

    Select View:

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

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

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

    Goals:

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

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

    \n

    \n (Negative numbers are also supported)\n

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

    Metrics to fill in:

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

    Goals to replace:

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

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

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

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

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

    Select Label/ID:

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

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

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

    \n

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

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

    \n

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

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

    \n

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

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

    \n SEMRush target Location:\n

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

    \n

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

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

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

    Label

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

    Conditions

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

    Keyword Groups

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

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

    \n \n
    \n \n

    \n Setting Up Keyword Groups\n

    \n
    \n \n

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

    \n
    \n \n

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

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

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

    \n
    \n \n

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

    \n
    \n \n \n \n

    Scenario #1:

    \n

    Good

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

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

    \n

    \n

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

    \n

    \n

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

    \n

    \n

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

    \n

    \n

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

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

    Scenario #2:

    \n

    Good

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

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

    \n

    \n

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

    \n
    \n \n \n \n

    Scenario #3:

    \n

    Not Good

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

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

    \n

    \n

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

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

    Landing Page Tracking

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

    Client Management

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

    \n Collapse Section \n

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

    What is the name of the company?

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

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

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

    \n \n
    \n \n \n
    \n \n \n \n \n \n Next\n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n \n \n \n

    Delete Client

    \n
    \n
    \n \n
    \n

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

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

    {this.props.sectionTitle}

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

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

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

    Select view:

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

    \n {this.props.sectionTitle}\n

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

    Collapse Section 

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

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

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

    Your data pull has completed but data is recalculating

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

    {capitalize(platform)}:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {campaignGroup.name}

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

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

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

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

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

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

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

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

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

    No spend data.

    ;\n }\n default:\n return

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

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

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

    \n ) : (\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {metricKey} was not found in cc_data

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

    {metricName} not defined in metricData.json

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

    {capitalize(channel)}

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

    {metricName} not defined in metricData.json

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

    There is no data for {channel}

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

    {campaignGroup.name}

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

    {metricName} not defined in metricData.json

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

    {metricKey} was not found in cc_data

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

    {metricName} not defined in metricData.json

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

    No spend data.

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

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

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

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

    \n ) : (\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {campaignGroup.name}

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

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

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

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

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

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

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

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

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

    No spend data.

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

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

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

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

    \n ) : (\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {campaignGroup.name}

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

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

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

    {metricName} not defined in metricData.json

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

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

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

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

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

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

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

    No spend data.

    ;\n }\n default:\n return

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

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

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

    \n ) : (\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {campaignGroup.name}

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

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

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

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

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

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

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

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

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

    By Platform

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

    By Device

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

    By Gender

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

    By Age

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

    By Day-of-the-Week

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

    By Time-of-Day

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

    By Location

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

    No spend data.

    ;\n }\n default:\n return

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

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

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

    \n ) : (\n

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

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

    Client Type:

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

    Client Type:

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

    Client Type:

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

    Client Type:

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

    Client Type:

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

    {props.metricName} (Y/Y)

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

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

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

    Your data pull has completed but data is recalculating

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

    {capitalize(platform)}:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    {landingPageGroup.name}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    \n ) : (\n

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

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

    Client Type:

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

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

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

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

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

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

    \n\n
    \n
    \n
    \n
    \n )\n }\n }\n\n}\n\nexport default ServiceDisabled;\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"./ObjectivePicker\";\nimport DashboardOptions from \"./DashboardOptions\";\nimport { capitalize } from \"lodash\";\n\nexport default function AmazonDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/amazon.svg\");\n mainIcon =
    \n let disabledIcon = require(\"images/lite/icons/coming-soon.png\");\n disabledIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"amazon\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Amazon Dashboard

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

    Total {capitalize(revenueOrConversions)} L60D

    \n \n
    \n
    \n

    Total {roasOrCpa.toUpperCase()} L60D

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

    Ad Spend L60D

    \n \n
    \n
    \n

    Ad {capitalize(revenueOrConversions)} L60D

    \n \n
    \n
    \n

    Conversion Rate L60D

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

    Paid Sessions L60D

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

    Products losing buy box coming soon!

    }\n />\n
    \n
    \n

    Organic Sessions L60D

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

    {startCase(props.dashboardType)} Dashboard Options

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

    {modifier.desc}

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

    {option.desc}

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

    E-mail Dashboard

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

    E-mail Traffic L60D

    \n \n
    \n
    \n

    {capitalize(revenueOrConversions)}

    \n \n
    \n
    \n

    Bounce Rate L60D

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

    Open Rate L60D

    \n \n
    \n
    \n

    CTR L60D

    \n \n
    \n
    \n

    Conversion Rate L60D

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

    E-mail List Growth L90D

    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \", data: jsDig([\"overall\", \"l7\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n
    \n \n );\n}\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\n\n// All possible metrics to use: [\"keywordName\", \"keywordPreviousPosition\", \"keywordCurrentPosition\", \"keywordSearchVolume\", \"keywordDifficulty\", \"keywordUrl\", \"keywordSerpFeatures\", \"keywordLabel\", \"keywordCostPerConversion\", \"keywordDifference\"]\n\nclass LiteKeywordTable extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n sortBy: props.keyword_sort,\n sortOrderAsc: props.keyword_sort_order_asc,\n sortedKeywords: [],\n };\n }\n\n sortKeywords(by, initial = false) {\n let kwCopy = this.props.keywords === null ? [...this.state.sortedKeywords] : initial ? this.props.keywords : [...this.state.sortedKeywords];\n let tempSortOrder = this.state.sortOrderAsc;\n if (by == this.state.sortBy && !initial) {\n tempSortOrder = !tempSortOrder;\n kwCopy.reverse();\n } else {\n tempSortOrder = initial ? this.state.sortOrderAsc : true;\n if (by == \"keyword\") {\n kwCopy.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n } else if (by == \"prevpos\") {\n kwCopy.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n } else if (by == \"currentpos\") {\n kwCopy.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n } else if (by == \"diff\") {\n kwCopy.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n } else if (by == \"cpc\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n } else if (by == \"volume\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n } else if (by == \"difficulty\") {\n kwCopy.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n }\n if (!tempSortOrder) {\n kwCopy.reverse();\n }\n }\n\n this.setState({ sortBy: by, sortOrderAsc: tempSortOrder, sortedKeywords: kwCopy });\n }\n componentDidMount() {\n this.setState({ sortedKeywords: this.props.keywords });\n this.sortKeywords(this.state.sortBy, true);\n }\n render() {\n const sortUpHtml = ;\n const sortDownHtml = ;\n return (\n
    \n
    \n
    \n KEYWORD RANKING\n
    \n \n \n \n {this.props.metrics.includes(\"keywordName\") && (\n \n )}\n {this.props.metrics.includes(\"keywordSerpFeatures\") && }\n {this.props.metrics.includes(\"keywordPreviousPosition\") && (\n \n )}\n {this.props.metrics.includes(\"keywordCurrentPosition\") && (\n \n )}\n {this.props.metrics.includes(\"keywordDifference\") && (\n \n )}\n {this.props.metrics.includes(\"keywordCostPerConversion\") && (\n \n )}\n {this.props.metrics.includes(\"keywordSearchVolume\") && (\n \n )}\n\n {this.props.metrics.includes(\"keywordDifficulty\") && (\n \n )}\n\n {this.props.metrics.includes(\"keywordLabel\") && }\n {this.props.metrics.includes(\"keywordUrl\") && }\n \n \n \n {this.state.sortedKeywords.map((keyword, i) => {\n let diffBackground = \"\";\n if (keyword.ranking_difference > 0) diffBackground = \"bg-success text-white\";\n else if (keyword.ranking_difference < 0) diffBackground = \"bg-danger text-white\";\n return (\n \n {this.props.metrics.includes(\"keywordName\") && (\n \n )}\n {this.props.metrics.includes(\"keywordSerpFeatures\") && (\n \n )}\n {this.props.metrics.includes(\"keywordPreviousPosition\") && (\n \n )}\n {this.props.metrics.includes(\"keywordCurrentPosition\") && (\n \n )}\n {this.props.metrics.includes(\"keywordDifference\") && (\n \n )}\n {this.props.metrics.includes(\"keywordCostPerConversion\") && (\n \n )}\n {this.props.metrics.includes(\"keywordSearchVolume\") && (\n \n )}\n {this.props.metrics.includes(\"keywordDifficulty\") && (\n \n )}\n {this.props.metrics.includes(\"keywordLabel\") && (\n \n )}\n {this.props.metrics.includes(\"keywordUrl\") && (\n \n )}\n \n );\n })}\n \n
    this.sortKeywords(\"keyword\")}>\n Keyword \n {this.state.sortBy == \"keyword\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n SERP Features this.sortKeywords(\"prevpos\")}>\n Prev. Pos \n {this.state.sortBy == \"prevpos\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"currentpos\")}>\n Current Pos \n {this.state.sortBy == \"currentpos\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"diff\")}>\n Diff \n {this.state.sortBy == \"diff\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"cpc\")}>\n CPC \n {this.state.sortBy == \"cpc\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"volume\")}>\n Volume \n {this.state.sortBy == \"volume\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n this.sortKeywords(\"difficulty\")}>\n Difficulty \n {this.state.sortBy == \"difficulty\" ? this.state.sortOrderAsc ? sortUpHtml : sortDownHtml : <>}\n LabelRanking Page
    \n
    {keyword.keyword}
    \n
    \n
    \n {keyword.serp_features.map((serp_feature) => {\n if (serp_feature == \"rel\") return ;\n if (serp_feature == \"rev\") return ;\n if (serp_feature == \"fsn\") return ;\n if (serp_feature == \"shp\") return ;\n if (serp_feature == \"stl\") return ;\n if (serp_feature == \"adt\") return ;\n if (serp_feature == \"adb\") return ;\n if (serp_feature == \"vid\") return ;\n if (serp_feature == \"img\") return ;\n if (serp_feature == \"geo\") return ;\n if (serp_feature == \"vib\") return ;\n if (serp_feature == \"new\") return ;\n if (serp_feature == \"twt\") return ;\n if (serp_feature == \"knw\") return ;\n if (serp_feature == \"kng\") return ;\n })}\n
    \n
    \n
    \n {keyword.start_date_ranking == 0 ? \"100+\" : }\n
    \n
    \n
    \n {keyword.end_date_ranking == 0 ? \"100+\" : }\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n {keyword.tag &&\n keyword.tag.map((el, index) => {\n let string = el;\n if (index < keyword.tag.length - 1) string += \", \";\n return string;\n })}\n
    \n
    \n
    \n {\n keyword.ranking_page &&\n \n }\n {keyword.ranking_page}
    \n
    \n
    \n
    \n );\n }\n}\n\nexport default LiteKeywordTable;\n","import React, { useState, useEffect, useRef } from 'react';\nimport {\n Chart as ChartJS,\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend,\n Filler\n} from 'chart.js';\nimport { Line } from 'react-chartjs-2';\nimport formatMetric from \"utils/formatMetric\";\nimport chartTrendline from \"chartjs-plugin-trendline\";\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Title,\n Tooltip,\n Legend,\n Filler,\n chartTrendline\n);\n\nimport jsDig from 'utils/jsDig';\n\nexport default function LiteLineChart(props) {\n console.log(props)\n const themeToggleRef = useRef(null);\n\n // Need to get the theme from the DOM\n const [darkMode, setDarkMode] = useState(document.body.getAttribute('data-theme') === 'dark');\n const spendFunnelAllocationChart = props.metric == \"stacked\" && props.datasetNames.includes(\"Top of Funnel\")\n const prospectingVsRemarketingChart = props.metric == \"stacked\" && props.datasetNames.includes(\"Pros. Spend\")\n const brandedVsNonBrandedChart = props.metric == \"stacked\" && props.datasetNames.includes(\"Branded\")\n\n useEffect(() => {\n themeToggleRef.current = document.getElementById('theme-toggle');\n const handleThemeChange = () => {\n setDarkMode(themeToggleRef.current.checked);\n };\n\n if (themeToggleRef.current) {\n themeToggleRef.current.addEventListener('change', handleThemeChange);\n }\n\n // Check initial state\n if (themeToggleRef.current) {\n setDarkMode(themeToggleRef.current.checked);\n }\n\n return () => {\n if (themeToggleRef.current) {\n themeToggleRef.current.removeEventListener('change', handleThemeChange);\n }\n };\n }, []);\n\n const getChartOptions = (darkMode) => {\n let xScalesConfig = {\n ticks: {\n maxTicksLimit: 5,\n maxRotation: 0,\n autoSkip: true,\n color: darkMode ? '#eae6e1' : '#434248',\n font: {\n size: 12, \n family: '\"DM Mono\", arial, sans-serif',\n },\n },\n grid: {\n display: true,\n },\n }\n\n let yScalesConfig = {\n beginAtZero: props.metric == \"stacked\",\n stacked: props.metric == \"stacked\",\n ticks: {\n color: darkMode ? '#eae6e1' : '#434248',\n font: {\n size: 12, \n family: '\"DM Mono\", arial, sans-serif',\n },\n callback: function(value, index, values) {\n return ` ${formatMetric(props.metric, value, \"tick\")}`;\n },\n },\n grid: {\n drawBorder: false,\n },\n }\n if (props.metric == \"stacked\") {\n yScalesConfig[\"min\"] = 0;\n yScalesConfig[\"max\"] = 100;\n yScalesConfig[\"ticks\"][\"stepSize\"] = 20;\n }\n\n return {\n responsive: true,\n maintainAspectRatio: false,\n interaction: {\n mode: 'index',\n intersect: false,\n },\n plugins: {\n legend: {\n position: 'bottom',\n labels: { \n padding: 20,\n color: darkMode ? '#eae6e1' : '#434248',\n font: {\n size: 16, \n family: '\"DM Mono\", arial, sans-serif',\n },\n generateLabels: (chart) => {\n const datasets = chart.data.datasets;\n return datasets.map((dataset, i) => ({\n text: dataset.label,\n fillStyle: getLineColor(i, dataset.label, darkMode),\n strokeStyle: dataset.borderColor,\n lineWidth: 2,\n hidden: !chart.isDatasetVisible(i),\n datasetIndex: i,\n fontColor: darkMode ? '#eae6e1' : '#434248',\n }));\n },\n },\n reverse: (spendFunnelAllocationChart || prospectingVsRemarketingChart || brandedVsNonBrandedChart) ? true : false,\n },\n title: {\n display: false,\n },\n tooltip: {\n titleFont: {\n size: 16,\n family: '\"DM Mono\", arial, sans-serif',\n },\n bodyFont: {\n size: 16,\n family: '\"DM Mono\", arial, sans-serif',\n },\n callbacks: {\n label: function(context) {\n let label = context.dataset.label || '';\n \n if (label) {\n label += ': ';\n }\n\n if (props.metric == \"stacked\" && props.tooltipData) {\n // Show the actual metric which is passed in through props.tooltipData\n label += formatMetric(props.tooltipMetric, props.tooltipData[context.dataset.label][context.dataIndex], \"\");\n } else if (context.parsed.y !== null) {\n label += formatMetric(props.metric, context.parsed.y, \"\");\n }\n return label;\n }\n }\n },\n },\n scales: {\n x: xScalesConfig,\n y: yScalesConfig,\n },\n }\n };\n \n const labels = props.labels;\n let orderedDatasetNames = props.datasetNames;\n if (spendFunnelAllocationChart) { // Stacked charts draw from bottom to top so we have to reverse the order so that Top of funnel appears on top\n const order = [\"Uncategorized\", \"Lower Funnel\", \"Mid Funnel\", \"Top of Funnel\"]\n orderedDatasetNames = order.filter(name => props.datasetNames.includes(name));\n }\n if (prospectingVsRemarketingChart) { // Stacked charts draw from bottom to top so we have to reverse the order so that Prospecting appears on top\n const order = [\"Uncategorized\", \"Rem. Spend\", \"Pros. Spend\"]\n orderedDatasetNames = order.filter(name => props.datasetNames.includes(name));\n }\n if (brandedVsNonBrandedChart) { // Stacked charts draw from bottom to top so we have to reverse the order so that Branded appears on top\n const order = [\"Non-Branded\", \"Branded\"]\n orderedDatasetNames = order.filter(name => props.datasetNames.includes(name));\n }\n let data = {\n labels,\n datasets: orderedDatasetNames.map((name, index) => {\n let fillStyle = false;\n if (props.metric == \"stacked\") {\n fillStyle = index == 0 ? \"origin\" : \"-1\";\n }\n let trendlineLinear = null;\n if (labels.map((day, index) => jsDig([name, index], props.data)).filter(x => x).length > 1 && props.metric != \"stacked\") { // Only show trendline if there are more than 1 data points and not stacked\n trendlineLinear = {\n lineStyle: \"dotted\",\n width: 2,\n color: getLineColor(index, name, darkMode),\n }\n }\n\n return ({\n label: name,\n fill: fillStyle,\n pointRadius: props.metric == \"stacked\" ? 0 : 3,\n data: labels.map((day, index) => jsDig([name, index], props.data)),\n borderColor: getLineColor(index, name, darkMode),\n backgroundColor: props.metric == \"stacked\" ? hexToRGBA(getLineColor(index, name, darkMode), 0.5) : getLineColor(index, name, darkMode),\n borderJoinStyle: \"round\",\n trendlineLinear: trendlineLinear,\n })\n }),\n };\n\n return (\n <>\n {/*
    */}\n
    \n \n
    \n {props.disabledMsg && (\n
    \n {props.disabledMsg}\n
    \n )}\n \n )\n}\n\nfunction hexToRGBA(hex, alpha) {\n let r = parseInt(hex.slice(1, 3), 16),\n g = parseInt(hex.slice(3, 5), 16),\n b = parseInt(hex.slice(5, 7), 16);\n return `rgba(${r},${g},${b},${alpha})`;\n}\n\nfunction getLineColor(index, label, darkMode) {\n // TODO: Colors aren't finalized yet but we can modify these to make it easier to understand which traffic is from which brand\n const newLabel = String(label).toLowerCase();\n const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n if (String(thisYear) == newLabel) {\n return \"#1E9C77\";\n }\n if (String(lastYear) == newLabel) {\n return \"#7E7D7E\";\n }\n if (newLabel == \"top of funnel\") {\n return \"#1E9C77\";\n }\n if (newLabel == \"mid funnel\") {\n return \"#2488BB\";\n }\n if (newLabel == \"lower funnel\") {\n return \"#BF9E40\";\n }\n if (newLabel == \"pros. spend\") {\n return \"#1E9C77\";\n }\n if (newLabel == \"rem. spend\") {\n return \"#2488BB\";\n }\n if (newLabel == \"other\" || newLabel == \"uncategorized\") {\n return \"#7E7D7E\";\n }\n if (newLabel == \"snapchat\") {\n return \"#BF9E40\";\n }\n if (newLabel == \"facebook\") {\n return \"#2488BB\";\n }\n if (newLabel == \"instagram\") {\n return \"#EE884F\";\n }\n if (newLabel == \"youtube\") {\n return \"#C75B5B\";\n }\n if (newLabel == \"twitter\") {\n return \"#22BEBE\";\n }\n if (newLabel == \"tiktok\") {\n return \"#CB55B1\";\n }\n if (newLabel == \"linkedin\") {\n return \"#1E9C77\";\n }\n \n const lightColors = [\"#1E9C77\", \"#2488BB\", \"#BF9E40\", \"#6746EA\", \"#22BEBE\", \"#CB55B1\", \"#FFD23F\", \"#7E7D7E\", \"#C75B5B\"];;\n const darkColors = [\"#1E9C77\", \"#2488BB\", \"#BF9E40\", \"#6746EA\", \"#22BEBE\", \"#CB55B1\", \"#FFD23F\", \"#7E7D7E\", \"#C75B5B\"];;\n return darkMode ? darkColors[index % darkColors.length] : lightColors[index % lightColors.length];\n}","import React, { useState, useRef, useEffect } from \"react\";\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { last, startCase, toLower } from \"lodash\";\nimport jsDig from \"utils/jsDig\";\nimport formatMetric from \"utils/formatMetric\";\n\nexport default function LiteMetricTable(props) {\n console.log(props)\n let shopifyIcon = require(\"images/lite/icons/shopify.png\");\n shopifyIcon = ;\n let googleAds = require(\"images/lite/icons/google-ads.png\");\n googleAds = ;\n let microsoftAds = require(\"images/lite/icons/microsoft-ads.png\");\n microsoftAds = ;\n let searchIcon = require(\"images/lite/icons/search-icon.png\");\n searchIcon = ;\n let socialIcon = require(\"images/lite/icons/social-icon.png\"); \n let pinterest = require(\"images/lite/icons/pinterest.png\");\n pinterest = ;\n let youtube = require(\"images/lite/icons/youtube.png\");\n youtube = ;\n socialIcon = ;\n let metaAds = require(\"images/lite/icons/meta.png\");\n metaAds = ;\n let tiktokAds = require(\"images/lite/icons/tiktok.png\");\n tiktokAds = ;\n let GoogleAnalytics = require(\"images/lite/icons/google-analytics.png\");\n GoogleAnalytics = ;\n let semrush = require(\"images/lite/icons/semrush.png\");\n semrush = ;\n let amazonAdsIcon = require(\"images/lite/icons/amazon-icon.png\");\n amazonAdsIcon = ;\n let facebook = require(\"images/lite/icons/facebook.png\");\n facebook = ;\n let amazon = require(\"images/lite/icons/amazon-icon.png\");\n amazon = ;\n let chevronDown = require(\"images/lite/icons/chevron-down.png\");\n chevronDown = ;\n let chevronUp = require(\"images/lite/icons/chevron-down.png\");\n chevronUp = ;\n\n\n const [showDropdown, setShowDropdown] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState(props.groups && props.groups.length > 0 ? props.groups[0] : null);\n const [isCollapsed, setIsCollapsed] = useState(props.collapsed || false);\n const dropdownRef = useRef(null);\n const tableContainerRef = useRef(null);\n const collapsible = props.collapsed == true || props.collapsed == false ? true : false;\n \n useEffect(() => {\n const handleClickOutside = (event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {\n setShowDropdown(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n \n useEffect(() => {\n // Adjust max-height based on the collapsed state and the content of the table\n const maxHeight = isCollapsed ? \"0px\" : `${tableContainerRef.current.scrollHeight}px`;\n tableContainerRef.current.style.maxHeight = maxHeight;\n }, [isCollapsed]);\n \n const toggleCollapse = () => setIsCollapsed(!isCollapsed);\n const toggleDropdown = () => setShowDropdown(!showDropdown);\n const selectGroup = (group) => {\n setSelectedGroup(group);\n setShowDropdown(false);\n };\n\n const baseUrl = props.baseUrl ? props.baseUrl.replace(/\\/$/, \"\") : null;\n\n const renderGroupSelector = () => {\n if (!props.groups || props.groups.length === 0) {\n return null;\n }\n\n return (\n
    \n \n {showDropdown && (\n
    \n {props.groups.map((group) => (\n
    selectGroup(group)}>\n {group}\n
    \n ))}\n
    \n )}\n
    \n );\n };\n\n const renderTopSummaryRow = () => {\n if (props.topSummaryRow) {\n const dim = jsDig([\"dimension\"], props.topSummaryRow);\n const topSummaryData = jsDig([\"data\"], props.topSummaryRow);\n return (\n <>\n \n {dim}\n {props.headerOrder.map((metric, index) => {\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName, \"total\"], topSummaryData) : jsDig([metricName, \"total\"], topSummaryData);\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, false, false, false) : \n renderBlankRow(false)\n }\n \n );\n })}\n \n \n )\n }\n }\n\n const renderTableHeader = () => {\n const columnWidth = 100 / (props.headerOrder.length + 1);\n return (\n <>\n \n \n {props.headerOrder.map((metric, index) => {\n const last = props.headerOrder.length - 1 == index ? true : false\n return {getColumnName(metric)};\n })}\n \n \n \n {props.headerOrder.map((metric, index) => {\n const last = props.headerOrder.length - 1 == index ? true : false\n return props.subHeaderOrder.map((subHeader, index) => {\n return {subHeader};\n })\n })}\n \n \n )\n };\n\n const renderTableRows = () => {\n return props.dimensions.map((dim) => {\n const borderClass = dim.toLowerCase() === \"ytd\" ? \"lite-border-top\" : false;\n // Get the name of the current month\n const monthName = new Date().toLocaleString('en', { month: 'long' });\n let showProjection = false;\n if (dim.toLowerCase() == monthName.toLowerCase()) { showProjection = true; }\n if (dim.toLowerCase() == \"ytd\") { showProjection = true; }\n if (dim.toLowerCase() == \"total\") { showProjection = true; }\n return (\n \n \n {dim}\n {(props.containsUrl && baseUrl && (dim != \"(not set)\")) && (\n \n \n \n )}\n \n {props.headerOrder.map((metric, index) => {\n const metricName = toLower(metric);\n const metricValue = selectedGroup ? jsDig([toLower(selectedGroup), metricName, dim], props.data) : jsDig([metricName, dim], props.data);\n const last = props.headerOrder.length - 1 == index ? true : false\n return (\n \n {metricValue ? \n formatCells(metricValue, metricName, borderClass, last, showProjection) : \n renderBlankRow(borderClass)\n }\n \n );\n })}\n \n );\n })\n };\n\n const renderBlankRow = (borderClass) => {\n return (\n <>\n {\n props.subHeaderOrder.map((subHeader, index) => {\n return (\n \n
     
    \n \n )\n })\n }\n \n )\n }\n\n // Helper function to format individual metric\n const formatCells = (metric, metricName, borderClass, last, showProjection) => {\n return (\n <>\n {props.subHeaderOrder.map((subHeader, index) => {\n const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n let metricValue = null;\n if (subHeader == lastYear) {\n metricValue = metric[\"previous\"];\n } else if (subHeader == thisYear) {\n if (showProjection) {\n metricValue = metric[\"projection\"];\n } else {\n metricValue = metric[\"current\"];\n }\n } else if (subHeader == \"Diff\") {\n metricValue = metric[\"difference\"];\n } else if (subHeader == \"Y/Y\") {\n if (showProjection) {\n metricValue = metric[\"projection_comparison\"];\n } else {\n metricValue = metric[\"comparison\"];\n }\n } else {\n metricValue = metric; // If the subheader doesn't match any expected values, assume it's a flat dataset with no groupings\n }\n\n {/* = 75 && metric['comparison'] < 95) ? \"percent-warn\" : metric['comparison'] >= 105 ? \"percent-good\" : \"\"}>{formatMetric(metricName, metric['comparison'], true)} */}\n return (\n \n
    \n {formatMetric(metricName, metricValue, subHeader)}\n
    \n \n )\n })}\n \n )\n };\n\n const getColumnName = (metric) => {\n switch (metric) {\n case \"spend\":\n return \"Spend\";\n case \"clicks\":\n return \"Clicks\";\n case \"conversions\":\n return \"Conversions\";\n case \"revenue\":\n return \"Revenue\";\n case \"roas\":\n return \"ROAS\";\n case \"cpa\":\n return \"CPA\";\n case \"mer\":\n return \"MER\";\n case \"frequency\":\n return \"Frequency\";\n case \"conversion_rate\":\n return \"Conversion Rate\";\n case \"sessions\":\n return \"Sessions\";\n case \"paid_sessions\":\n return \"Paid Sessions\";\n case \"organic_sessions\":\n return \"Organic Sessions\";\n case \"impressions\":\n return \"Impressions\";\n case \"reach\":\n return \"Reach\";\n case \"new_customers\":\n return \"New Customers\";\n case \"aov\":\n return \"AOV\";\n case \"open_rate\":\n return \"Open Rate\";\n case \"ctr\":\n return \"CTR\";\n case \"bounce_rate\":\n return \"Bounce Rate\";\n case \"email_list_growth\":\n return \"Email List Growth\";\n case \"affiliates\":\n return \"Affiliate\";\n case \"direct\":\n return \"Direct\";\n case \"referral\":\n return \"Referral\";\n case \"audio\":\n return \"Audio\";\n case \"mobile_push_notifications\":\n return \"Mobile Push Notifications\";\n case \"sms\":\n return \"SMS\";\n default:\n return startCase(metric);\n }\n }\n\n const renderTableName = (tableName, selectedGroup = \"\") => {\n if (selectedGroup != \"\") {\n selectedGroup = \"- \" + selectedGroup\n }\n let tableIcon = \"\"\n if (tableName.toLowerCase().includes(\"search\")) {\n if (selectedGroup.toLowerCase().includes(\"google ads\")) {\n tableIcon = googleAds\n } else if (selectedGroup.toLowerCase().includes(\"microsoft ads\")) {\n tableIcon = microsoftAds\n }\n else tableIcon = searchIcon\n } else if (tableName.toLowerCase().includes(\"social\")) {\n if (selectedGroup.toLowerCase().includes(\"facebook\")) {\n tableIcon = facebook\n } else if (selectedGroup.toLowerCase().includes(\"tiktok\")) {\n tableIcon = tiktokAds\n }\n else tableIcon = socialIcon\n } else if (tableName.toLowerCase().includes(\"facebook\") && tableName.toLowerCase().includes(\"instagram\")) {\n tableIcon = metaAds\n } else if (tableName.toLowerCase().includes(\"tiktok\")) {\n tableIcon = tiktokAds\n } else if (tableName.toLowerCase().includes(\"youtube\")) {\n tableIcon = youtube\n } else if (tableName.toLowerCase().includes(\"pinterest\")) {\n tableIcon = pinterest\n } else if (tableName.toLowerCase().includes(\"amazon\")) {\n tableIcon = amazon\n }\n\n else tableIcon = \"\"\n return(\n
    \n
    \n {tableIcon}\n
    \n
    \n {tableName} {selectedGroup}\n
    \n
    \n )\n }\n\n return (\n <>\n
    \n
    \n
    {renderGroupSelector()}
    \n
    {renderTableName(props.tableName, selectedGroup ? selectedGroup : \"\")}
    \n
    \n
    \n {isCollapsed ? <>{chevronDown} : <>{chevronUp}}\n
    \n
    \n
    \n
    \n \n \n {renderTableHeader()}\n \n \n {renderTopSummaryRow()}\n {renderTableRows()}\n \n
    \n
    \n
    \n {props.disabledMsg && (\n
    \n {props.disabledMsg}\n
    \n )}\n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport ProgressBar from 'dashboards/lite/ProgressBar';\nimport showAlert from \"utils/showAlert\";\n\nconst LiteRefresh = ({ currentDashboard, accountId, alreadyPulling, refreshPreference, icon, companyName, modalButtonRef, setShowModalMenu, showModalMenu, modalMenuRef }) => {\n const [showMenu, setShowMenu] = useState(false);\n const [loading, setLoading] = useState(alreadyPulling > 0 || false);\n const [progress, setProgress] = useState(0);\n const loadingGif = require(\"images/generate-spinner.gif\");\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [totalQueries, setTotalQueries] = useState(alreadyPulling);\n const [dataPullComplete, setDataPullComplete] = useState(false);\n const [autoRefresh, setAutoRefresh] = useState(refreshPreference ? refreshPreference : false);\n\n let dotsHorizontal = require(\"images/lite/icons/dots-horizontal.png\");\n dotsHorizontal = ;\n let refreshIcon = require(\"images/icons/refresh-icon.png\");\n refreshIcon = ;\n\n const menuRef = useRef(null); // Ref for the menu\n const buttonRef = useRef(null); // Ref for the button\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target) &&\n buttonRef.current && !buttonRef.current.contains(event.target)) {\n setShowMenu(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n \n useEffect(() => {\n const intervalId = loading ? setInterval(() => {\n fetchRefreshStatus(totalQueries);\n }, 7000) : null;\n\n return () => {\n if (intervalId) {\n clearInterval(intervalId);\n }\n };\n }, [loading, totalQueries]); // Depend on `loading` to start or stop the interval\n\n useEffect(() => {\n if (dataPullComplete && autoRefresh) {\n window.location.reload();\n }\n }, [dataPullComplete, autoRefresh]); // Reacts to changes in dataPullComplete and autoRefresh\n\n const fetchRefreshStatus = async (totalQueriesCurrent) => {\n const params = new URLSearchParams({\n dashboard: currentDashboard,\n accountId\n });\n \n try {\n const response = await fetch(`/datapulse/lite/refresh-status?${params.toString()}`, {\n method: 'POST', // Assuming GET is the method to fetch status\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n });\n\n if (response.ok) {\n const data = await response.json();\n console.log('Refresh status fetched successfully', data);\n updateProgress(data, totalQueriesCurrent);\n } else {\n console.error('Failed to fetch refresh status');\n }\n } catch (error) {\n console.error('Network error:', error);\n }\n\n };\n\n const updateRefreshPreference = async (autoRefresh) => {\n const params = new URLSearchParams({\n default_refresh: autoRefresh == true ? 1 : 0\n });\n try {\n const response = await fetch(`/datapulse/update-default-refresh?${params.toString()}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n });\n\n if (response.ok) {\n const data = await response.json();\n console.log('Refresh preference updated successfully', data);\n } else {\n console.error('Failed to update refresh preference');\n }\n } catch (error) {\n console.error('Network error:', error);\n }\n\n }\n\n const updateProgress = (data, totalQueriesCurrent) => {\n const remainingQueries = data.total_jobs; // total_jobs updates with each fetch\n if (remainingQueries === 0) {\n setLoading(false);\n setDataPullComplete(true);\n document.querySelector(\"#most-recent-refresh\").innerText = `Last refresh: ${new Date().toLocaleString(\"en-US\", { hour: \"numeric\", minute: \"numeric\", hour12: true, month: \"numeric\", day: \"numeric\", year: \"numeric\" })}`;\n }\n const completedQueries = totalQueriesCurrent - remainingQueries;\n console.log(\"totalQueries\", totalQueriesCurrent, \"remainingQueries\", remainingQueries, \"completedQueries\", completedQueries, \"data\", data)\n setProgress((completedQueries / ((totalQueries && (totalQueries > 0)) ? totalQueries : 1)) * 100);\n };\n\n\n const handleRefresh = async (timePeriod) => {\n setLoading(true);\n setShowMenu(false);\n setDataPullComplete(false);\n setProgress(0);\n try {\n const params = new URLSearchParams({\n dashboard: currentDashboard,\n accountId: accountId, \n timePeriod: timePeriod,\n });\n \n // Goes to LiteController#refresh\n const response = await fetch(`/datapulse/lite/refresh?${params.toString()}`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken,\n },\n });\n\n if (response.ok) {\n const data = await response.json();\n if (data.success == true) {\n setTotalQueries(data.total_jobs);\n console.log('Dashboard refresh initiated successfully', `Total jobs: ${data.total_jobs}`);\n } else {\n // Handle errors\n showAlert(`Dashboard refresh failed - ${data.error}`, 'alert-danger');\n console.error(`Dashboard refresh failed - ${data.error}`);\n setLoading(false);\n }\n } else {\n // Handle errors\n showAlert('Dashboard refresh failed - Server Error', 'alert-danger');\n console.error('Dashboard refresh failed - Server Error');\n setLoading(false);\n }\n } catch (error) {\n // Handle network errors\n showAlert('Dashboard refresh failed - Network Error', 'alert-danger');\n console.error('Network error:', error);\n } finally {\n // No\n }\n };\n\n return (\n <>\n {(loading || dataPullComplete) && (\n
    \n
    \n {dataPullComplete ? (\n <>\n
    \n

    Data refreshed!

    \n \n
    \n
    \n

    Reload the page to see your new data

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

    Refreshing data...

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

    You can continue browsing DataPulse

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

    Refresh data

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

    Organic Search Dashboard

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

    Organic Traffic L60D

    \n \n
    \n
    \n

    Organic {capitalize(revenueOrConversions)} L60D

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

    Organic Shopping Traffic L60D

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

    Organic Social Dashboard

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

    Organic Social Traffic L60D

    \n \n
    \n
    \n

    Organic Social {capitalize(revenueOrConversions)} L60D

    \n \n
    \n
    \n

    Total Followers L60D

    \n {disabledIcon}

    Metric coming soon!

    }\n />\n
    \n
    \n\n
    \n
    \n
    \n {followerIcon}

    Followers (vs. last week)

    \n
    \n
    \n {\n followerCards.map((card, index) => {\n return(\n
    \n
    \n {card.icon}

    {card.platform}

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

    Engagement metrics coming soon!

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

    Organic Social Traffic By Source L60D

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

    Views L60D

    \n {disabledIcon}

    Metric coming soon!

    }\n />\n
    \n
    \n

    Likes L60D

    \n {disabledIcon}

    Metric coming soon!

    }\n />\n
    \n
    \n

    Comments L60D

    \n {disabledIcon}

    Metric coming soon!

    }\n />\n
    \n
    \n

    Save/Favorite/Share L60D

    \n {disabledIcon}

    Metric coming soon!

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

    Other Dashboard

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

    Affiliate Traffic L60D

    \n \n
    \n
    \n

    Direct Traffic L60D

    \n \n
    \n
    \n

    Referral Traffic L60D

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

    Audio Traffic L60D

    \n \n
    \n
    \n

    Mobile Push Notification Traffic L60D

    \n \n
    \n
    \n

    SMS Traffic L60D

    \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \", data: jsDig([\"overall\", \"l7\", \"sessions\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"./ObjectivePicker\";\nimport DashboardOptions from \"./DashboardOptions\";\nimport { capitalize } from \"lodash\";\n\nexport default function OverviewDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/overview.svg\");\n mainIcon =
    \n let disabledIcon = require(\"images/lite/icons/coming-soon.png\");\n disabledIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(jsDig([\"client_account\", \"dashboard_objective\"], props) ? jsDig([\"client_account\", \"dashboard_objective\"], props) : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let merOrCpa = dashboardObjective == \"sales\" ? \"mer\" : \"cpa\";\n\n const dashboardType = \"overview\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Overview Dashboard

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

    Ad Spend L60D

    \n \n
    \n
    \n

    {revenueOrConversions == \"revenue\" ? `${capitalize(revenueOrConversions)} Weekly` : capitalize(revenueOrConversions)}

    \n \n
    \n
    \n

    {merOrCpa.toUpperCase()} L60D

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

    Website Traffic L60D

    \n \n
    \n
    \n

    CVR L60D

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

    AOV L60D

    \n \n
    \n
    \n

    New Customer Acquisition Cost

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

    Marketing Spend Funnel Allocation

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

    Paid Search Dashboard

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

    Search Spend L60D (infl.)

    \n \n
    \n
    \n

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

    \n \n
    \n
    \n

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

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

    Branded vs. Non-Branded L60D

    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {jsDig([dashboardType, \"show_branded_and_non_branded_l7d_tables\", \"enabled\"], dashboardOptions) && (\n
    \n
    \n \", data: jsDig([\"overall\", \"l7_branded\"], props.table_data)}}\n />\n
    \n
    \n \", data: jsDig([\"overall\", \"l7_nonbranded\"], props.table_data)}}\n />\n
    \n
    \n )}\n
    \n
    \n \", data: jsDig([\"overall\", \"l7\"], props.table_data)}}\n collapsed={true}\n />\n
    \n
    \n
    \n\n
    \n \n );\n}\n","import React, { useState } from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport LiteMetricTable from \"dashboards/lite/LiteMetricTable\";\nimport LiteLineChart from \"dashboards/lite/LiteLineChart\";\nimport LiteRefresh from \"dashboards/lite/LiteRefresh\";\nimport ObjectivePicker from \"./ObjectivePicker\";\nimport DashboardOptions from \"./DashboardOptions\";\nimport { capitalize } from \"lodash\";\n\nexport default function SocialDashboard(props) {\n console.log(props)\n const metricTableDimensions = jsDig([\"overall\", \"total\", \"spend\"], props.table_data) ? Object.keys(jsDig([\"overall\", \"total\", \"spend\"], props.table_data)) : [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", \"YTD\", \"Total\"];\n // Convert utc date to local time in this format 12:30 PM, 12/31/2021\n const lastDataPull = new Date(jsDig([\"last_data_pull\"], props)).toLocaleString(\"en-US\", {\n hour: \"numeric\",\n minute: \"numeric\",\n hour12: true,\n month: \"numeric\",\n day: \"numeric\",\n year: \"numeric\",\n });\n\n const thisYear = new Date().getFullYear();\n const lastYear = thisYear - 1;\n\n let mainIcon = require(\"images/lite/icons/social.svg\");\n mainIcon =
    \n let disabledIcon = require(\"images/lite/icons/coming-soon.png\");\n disabledIcon =
    \n\n const [dashboardObjective, setDashboardObjective] = useState(props.client_account.dashboard_objective ? props.client_account.dashboard_objective : \"sales\");\n let revenueOrConversions = dashboardObjective == \"sales\" ? \"revenue\" : \"conversions\";\n let roasOrCpa = dashboardObjective == \"sales\" ? \"roas\" : \"cpa\";\n\n const dashboardType = \"paid_social\"\n const [dashboardOptions, setDashboardOptions] = useState(props.client_account.dashboard_options ? props.client_account.dashboard_options : {});\n\n return (\n <>\n
    \n
    \n
    \n {mainIcon}\n

    Paid Social Dashboard

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

    Social Spend L60D

    \n \n
    \n
    \n

    Social {capitalize(revenueOrConversions)} L60D

    \n \n
    \n
    \n

    Social {roasOrCpa.toUpperCase()} L60D

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

    Prospecting vs. Remarketing L60D

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

    Pinterest ads coming soon!

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

    First Up: Account Configuration

    \n
    \n
    \n

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

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

    {props.platform.platformName}

    \n ) : (\n

    {props.platform.platformName}

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

    Company Logo

    \n
    \n
    \n

    Upload the brand logo here.

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

    {fileName}

    \n
    \n
    \n

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

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

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

    Campaign Groups

    \n
    \n
    \n

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

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

    Search is not currently enabled

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

    Social is not currently enabled

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

    Display is not currently enabled

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

    Company Legal Information

    \n \n
    \n \n \n

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

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

    Legal Company Name:

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

    Legal Company Address

    \n \n
    \n \n \n

    Street Address

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

    Unit, building, or apt #

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

    What is the name of the company for this account?

    \n \n
    \n \n \n

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

    of your company name is ideal.\n

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

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

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

    What type of company is this?

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

    \n Ecommerce clients are those that are

    tracking revenue and measuring return on

    ad spend.\n

    \n
    \n
    \n

    \n Lead generation clients are those that are

    NOT tracking revenue and are measuring

    leads & cost per acquisition.\n

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

    Victory belongs to the most persevering.

    \n
    \n
    \n

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

    \n

    Well Done!

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

    This email already has access to DataPulse

    \n
    \n }\n \n \n

    Add person

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

    First Name (required)

    \n \n \n

    Last Name (required)

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

    Email (required)

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

    Phone

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

    Job Title

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

    DataPulse Access

    \n \n
    \n \n \n

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

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

    PPC: Overall Goals

    \n
    \n
    \n

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

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

    PPC: Display Goals

    \n
    \n
    \n

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

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

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

    \n

    \n (Negative numbers are also supported)\n

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

    Metrics to fill in:

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

    Goals to replace:

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

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

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

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

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

    What's this?

    \n
    \n
    \n

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

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

    SEO Goals

    \n
    \n
    \n

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

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

    PPC: Search Goals

    \n
    \n
    \n

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

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

    PPC: Social Goals

    \n
    \n
    \n

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

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

    PPC: Video Goals

    \n
    \n
    \n

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

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

    Google Analytics Goal Tracking

    \n
    \n
    \n

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

    \n

    \n {infoText()}\n

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

    Provide the information below:

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

    Select label/ID

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

    Inflation

    \n
    \n
    \n

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

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

    Search is not currently enabled

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

    Display is not currently enabled

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

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

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

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

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

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

    \n

    \n

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

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

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

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

    Invoice Recipients

    \n
    \n
    \n

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

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

    Add email

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

    Keyword Groups

    \n
    \n
    \n

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

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

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

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

    Landing Pages

    \n
    \n
    \n

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

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

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

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

    \n through\n

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

    {props.invalidText}

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

    \n Onboarding is not yet completed\n

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

    \n Onboarding is not yet completed\n

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

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



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

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

    Next Up: PPC Configuration

    \n
    \n
    \n

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

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

    PPC Dashboard Customization - Services

    \n
    \n
    \n

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

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

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

    \n

    \n

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

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

    Search is not currently enabled

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

    Display is not currently enabled

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

    Social is not currently enabled

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

    PPC Dashboard Customization - All

    \n
    \n
    \n

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

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

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

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

    PPC Service Agreements

    \n
    \n
    \n

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

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

    To complete:

    \n

    \n

    Step 1: Choose which services should be enabled

    \n

    Step 2: Choose a start date for each service

    \n

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

    \n

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

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

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

    Agreement

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

    Select and set shared fee structure

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

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

    \n
    \n
    \n

    Over ad spend

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

    charge

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

    Active PPC Fees

    \n

    \n View full history\n

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

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

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

    Configure PPC subservices

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

    Over ad spend

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

    charge

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

    Capabilities and Permissions

    \n
    \n
    \n

    What does the company's development team look like?

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

    What does the company's creative team look like?

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

    Website Permissions

    \n \n
    \n \n \n

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

    \n

    \n

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

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

    Global permissions

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

    Free to make changes, no notification necessary

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

    Free to make changes with follow-up email summary

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

    All changes require prior approval

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

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

    exceptions only{\" \"}\n

    \n \n
    \n \n \n

    \n Custom permissions\n

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

    Set to:

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

    \n {firstName} {lastName}\n

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

    {email}

    \n \n
    \n \n \n

    {phone}

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

    PPC Alerts

    \n
    \n
    \n

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

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

    Search is not currently enabled

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

    Social is not currently enabled

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

    Display is not currently enabled

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

    Video is not currently enabled

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

    Pull PPC Data

    \n
    \n
    \n

    Would you like to pull data from your accounts now?

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

    For which accounts?

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

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

    \n \n
    \n
    \n \n \n
    \n \n \n {\n showBoxes ? setOpen(true) : props.submitForm(nextPage.url);\n // props.manualDataPull();\n }}\n // onClick={() => setOpen(true)}\n />\n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Container, Row, Col } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport SaveChanges from \"../client_config/SaveChanges\";\n\nexport default function ProgressBar({\n submitForm,\n percent,\n setPercent,\n onboardingProgress,\n onboardingComplete,\n setOnboardingComplete,\n manualDataPull,\n}) {\n let leftBar = require(\"images/onboarding/left-bar.png\");\n leftBar = ;\n let midBar = require(\"images/onboarding/mid-bar.png\");\n midBar = ;\n let rightBar = require(\"images/onboarding/right-bar.png\");\n rightBar = ;\n\n const [allComplete, setAllComplete] = useState(false);\n //In below lines for state we are checking if useState([Is section completed? , Is section in progress?])\n const [generalComplete, setGeneralComplete] = useState([false, false]);\n const [teamAccessComplete, setTeamAccessComplete] = useState([false, false]);\n const [serviceComplete, setServiceComplete] = useState([false, false]);\n const [ppcConfigComplete, setPpcConfigComplete] = useState([false, false]);\n const [seoConfigComplete, setSeoConfigComplete] = useState([false, false]);\n\n let generalUrls = onboardingProgress.filter((item) => item.section === \"general\").map((el) => el.url);\n let teamUrls = onboardingProgress.filter((item) => item.section === \"team\").map((el) => el.url);\n let serviceUrls = onboardingProgress.filter((item) => item.section === \"service\").map((el) => el.url);\n let ppcUrls = onboardingProgress.filter((item) => item.section === \"ppc\").map((el) => el.url);\n let seoUrls = onboardingProgress.filter((item) => item.section === \"seo\").map((el) => el.url);\n const [serviceArray, setServiceArray] = useState([]);\n const [seoArray, setSeoArray] = useState([]);\n const [ppcArray, setPpcArray] = useState([]);\n let generalArray = [];\n let teamArray = [];\n\n const isUndefined = (value) => value === undefined;\n\n\n\n useEffect(() => {\n let tempGeneralArray = [];\n let tempTeamArray = [];\n let tempServiceArray = [];\n let tempPpcArray = [];\n let tempSeoArray = [];\n\n for (let i = 0; i < onboardingProgress.length; i++) {\n if (i <= 8) {\n generalArray.push(onboardingProgress[i].completed);\n //we are checking if the onboarding item is completed and required. If we see completed === true and required === false, we know this item was skipped\n //and our map below does not look for this condition so it will return undefined so this particular value will not be included in evaluating the section progress.\n // setGeneralArray(tempGeneralArray)\n }\n if (i >= 9 && i <= 20) {\n teamArray.push(onboardingProgress[i].completed);\n }\n if (i >= 21 && i <= 23) {\n tempServiceArray.push([onboardingProgress[i].completed, onboardingProgress[i].required]);\n let temp = tempServiceArray.map((el) => {\n if (el[0] === false && el[1] === true) {\n return false;\n }\n if (el[0] === true && el[1] === true) {\n return true;\n }\n });\n setServiceArray(temp);\n }\n if (i >= 24 && i <= 39) {\n tempPpcArray.push([onboardingProgress[i].completed, onboardingProgress[i].required]);\n let temp = tempPpcArray.map((el) => {\n if (el[0] === false && el[1] === true) {\n return false;\n }\n if (el[0] === true && el[1] === true) {\n return true;\n }\n });\n setPpcArray(temp);\n }\n if (i >= 40 && i <= 48) {\n tempSeoArray.push([onboardingProgress[i].completed, onboardingProgress[i].required]);\n let temp = tempSeoArray.map((el) => {\n if (el[0] === false && el[1] === true) {\n return false;\n }\n if (el[0] === true && el[1] === true) {\n return true;\n }\n });\n setSeoArray(temp);\n }\n if (!generalArray.includes(false)) {\n setGeneralComplete([true, false]);\n }\n if (generalArray.includes(false) && generalArray.includes(true)) {\n setGeneralComplete([false, true]);\n }\n if (!generalArray.includes(true)) {\n setGeneralComplete([false, false]);\n }\n if (!teamArray.includes(false)) {\n setTeamAccessComplete([true, false]);\n }\n if (teamArray.includes(false) && teamArray.includes(true)) {\n setTeamAccessComplete([false, true]);\n }\n if (!teamArray.includes(true)) {\n setTeamAccessComplete([false, false]);\n }\n if (!serviceArray.includes(false)) {\n setServiceComplete([true, false]);\n }\n if (serviceArray.includes(false) && serviceArray.includes(true)) {\n setServiceComplete([false, true]);\n }\n if (!serviceArray.includes(true)) {\n setServiceComplete([false, false]);\n }\n if (!ppcArray.includes(false)) {\n setPpcConfigComplete([true, false]);\n }\n if (ppcArray.includes(false) && ppcArray.includes(true)) {\n setPpcConfigComplete([false, true]);\n }\n if (!ppcArray.includes(true)) {\n setPpcConfigComplete([false, false]);\n }\n if (!seoArray.includes(false)) {\n setSeoConfigComplete([true, false]);\n }\n if (seoArray.includes(false) && seoArray.includes(true)) {\n setSeoConfigComplete([false, true]);\n }\n if (!seoArray.includes(true)) {\n setSeoConfigComplete([false, false]);\n }\n if (\n generalComplete[0] === true &&\n teamAccessComplete[0] === true &&\n serviceComplete[0] === true &&\n (ppcConfigComplete[0] === true || ppcArray.every(isUndefined)) &&\n (seoConfigComplete[0] === true || seoArray.every(isUndefined)) === true\n ) {\n setAllComplete((prev) => true);\n } else {\n setAllComplete((prev) => false);\n }\n }\n }, [onboardingProgress, generalComplete[0], teamAccessComplete[0], serviceComplete[0], ppcConfigComplete[0], seoConfigComplete[0]]);\n\n useEffect(() => {\n if (allComplete === true) {\n setOnboardingComplete((prev) => true);\n }\n }, [allComplete, generalComplete[0], teamAccessComplete[0], serviceComplete[0], ppcConfigComplete[0], seoConfigComplete[0]]);\n return (\n \n \n \n {\n if (window.location.pathname == \"/datapulse/onboarding/ppc_data_pull\" || \"/datapulse/onboarding/seo_data_pull\") manualDataPull();\n submitForm(window.location.pathname);\n }}\n />\n \n \n
    \n
    \n
    \n \n {percent.percent()}%\n \n
    \n
    \n \n \n \n setPercent((prevState) => ({ ...prevState, currentPage: 0 }))}\n className=\"bar-box\">\n General Info\n
    \n \n \n \n \n \n Team Access\n
    \n \n \n \n \n \n Service Agreements\n \n \n \n 0 ? \"disabled \" : undefined}>\n event.preventDefault() : undefined}>\n \n PPC Configuration\n \n \n \n 0 ? \"disabled\" : undefined}>\n event.preventDefault() : undefined}>\n \n SEO Configuration\n \n \n \n \n \n Complete!\n \n \n
    \n {leftBar}\n {midBar}\n {rightBar}\n \n \n \n

    Onboarding Progress

    \n \n
    \n \n \n \n \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function SEMRushSetup(props) {\n props.pageLocator();\n const route = useContext(RouterContext);\n const nextPage = getNextPage(props.onboarding_progress);\n const [showBoxes, setShowBoxes] = useState(false);\n const [validated, setValidation] = useState(false);\n const checkValidation = () => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidation(true);\n } else {\n setValidation(false);\n }\n };\n\n let projectIdImg = require(\"images/semrush-project-id.jpg\");\n projectIdImg = ;\n const tooltipMessage =
    The ID can change if a new target location has been selected. To make sure the ID is correct, open the project in SEMRush, and in the 'Position Tracking' tile, select 'View full report'. Copy the ID from the URL.

    {projectIdImg}
    \n\n const addNewRow = () => {\n //create an object with all of the state fields\n let newRow = {};\n newRow.id = \"\";\n newRow.label = \"\";\n newRow.website = props.website;\n // setValidation(true);\n let accessChecked = props.teamAccess;\n accessChecked[\"SEMRush\"][\"Completed setup\"] = \"1\";\n props.setTeamAccess({ ...accessChecked });\n props.setSemRushIds([...props.semRushIds, newRow]);\n };\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const removeRow = (el) => {\n if (props.semRushIds.length == 1) {\n setValidation(false);\n let accessChecked = props.teamAccess;\n accessChecked[\"SEMRush\"][\"Completed setup\"] = \"0\";\n props.setTeamAccess({ ...accessChecked });\n }\n props.setSemRushIds(props.semRushIds.filter((row, idx) => idx != el));\n };\n useEffect(() => {\n if (props.teamAccess[\"SEMRush\"][\"Completed setup\"] !== \"1\" && showBoxes && props.semRushIds.length == 0) {\n setValidation(false);\n }\n });\n\n const setupBox = (el, idx) => {\n return (\n
    \n \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    ID:

    \n
    \n {\n let newArray = props.semRushIds;\n newArray[idx].id = e.target.value;\n props.setSemRushIds([...newArray]);\n checkValidation();\n }}\n id={`ob-analytics-id`}\n />\n
    \n

    Label:

    \n
    \n {\n let newArray = props.semRushIds;\n newArray[idx].label = e.target.value;\n props.setSemRushIds([...newArray]);\n }}\n id={`ob-semrush-label`}\n />\n
    \n
    \n \n {idx >= 0 && removeRow(idx)} className=\"fas fa-minus-circle color-danger\">}\n
    \n
    \n );\n };\n return (\n <>\n \n \n
    \n

    SEMRush Setup

    \n
    \n
    \n

    \n Now we will need to set up the client in SEMRush. Follow along with the tutorial video to set up the client in SEMRush under the {route.organization.name}\n account, and then add the project ID's in the field below. You can use the 'Label' field to name them for your own reference (this will not affect\n the data in any way).\n

    \n
    \n \n
    \n \n \n
    \n

    Do we need to set up SEMRush for this client?

    \n
    \n \n
    \n \n \n
    \n {\n setShowBoxes(true);\n setValidation(true);\n let accessChecked = props.teamAccess;\n accessChecked[\"SEMRush\"][\"Exist\"] = \"1\";\n\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n let accessChecked = props.teamAccess;\n accessChecked[\"SEMRush\"][\"Exist\"] = \"0\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n \n
    \n \n \n

    \n Provide the information below:\n

    \n \n \n
    \n \n \n addNewRow()}\n value=\"+ Add Project\"\n variant=\"success\"\n />\n \n \n \n \n
    \n
    \n {props.semRushIds.map((row, idx) => {\n return
    {setupBox(row, idx)}
    ;\n })}\n
    \n
    \n \n
    \n {(!props.savedSemrushKey || props.savedSemrushKey == \"\") &&\n \n \n

    SEMRush API Key:

    \n 4}\n onChange={(e) => {props.setSemrushApiKey(e.target.value); checkValidation()}}\n name=\"semrush_api_key\"\n />\n \n
    \n }\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button } from \"react-bootstrap\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function SEOConfigurationIntro(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n return (\n <>\n \n \n
    \n

    Next up: SEO Configuration

    \n
    \n
    \n

    \n Now we will configure the SEO service. You will be able to set up branded keywords, landing pages, and also manage your SEO goals.\n

    \n
    \n \n
    \n \n \n \n
    \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Container, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport Dashboard from \"../client_config/seo_config/dashboard/Dashboard\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function PPCDashboardCustomization(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const [showBoxes, setShowBoxes] = useState(false);\n const [validated, setValidatation] = useState(false);\n\n return (\n \n \n \n
    \n

    SEO Dashboard Customization

    \n
    \n
    \n

    Would you like to customize your SEO dashboards now or use the default settings?

    \n
    \n \n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(false);\n setValidatation(true);\n props.setSeoDefault(true)\n }}\n />\n {\n setShowBoxes(true);\n setValidatation(true);\n props.setSeoDefault(false)\n }}\n />\n
    \n \n \n

    \n Check the boxes to enable/disable sections, and then click and drag dashboard boxes to reorder how they will appear in your performance\n dashboards:\n

    \n \n
    \n\n
    \n {showBoxes === false &&
    }\n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Button, Table, Form, Row, Col, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomSwitch from \"utils/CustomSwitch\";\nimport PointsofContact from \"../client_config/account_config/services_agreement/PointsOfContact\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function SEOServiceAgreements(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const isChecked = props.seoEnabled;\n const seoFeeArray = props.seoFees.map((el, idx) => (el.enabled === \"0\" ? false : true));\n\n const [innerCheckDisabled, setInnerCheckDisabled] = useState(seoFeeArray);\n const [validated, setValidatation] = useState(true);\n const removeRow = (id, selector) => {\n if (selector == \"1\") {\n const newArray = props.seoFeeStructure.filter((el) => el.id !== id);\n\n props.setSeoFeeStructure([...newArray]);\n }\n if (selector == \"2\") {\n const newArray = props.seoFees.filter((el) => el.id !== id);\n props.setSeoFees([...newArray]);\n }\n };\n const seoStartDate = new Date(props.seoStartDate);\n\n useEffect(() => {\n if (\n !props.seoEnabled ||\n (props.seoFeeStructure.length > 0 &&\n props.seoStartDate !== undefined &&\n props.seoAccountLeads.length > 0 &&\n props.seoAccountSupports.length > 0 &&\n props.seoPointsOfContact.length > 0 &&\n seoStartDate.getFullYear() > 2000)\n ) {\n setValidatation(true);\n } else {\n setValidatation(false);\n }\n });\n return (\n <>\n \n \n
    \n

    SEO Service Agreements

    \n
    \n
    \n

    \n Please configure the SEO service agreement below. If you checked SEO at the beginning of onboarding, we have enabled it here for you. If not, now\n is the opportunity to change it if need be.\n

    \n
    \n \n
    \n \n \n

    To complete:

    \n

    \n

    Step 1: Choose a start date

    \n

    Step 2: Fill in invoicing information (add fees if applicable)

    \n

    Step 3: Assign points of contact, leads and supports

    \n \n
    \n \n
    \n \n \n \n \n \n\n
    \n
    \n
    \n \n SEO\n

    \n }\n setIsEnabled={() => props.setSeoEnabled(!props.seoEnabled)}\n />\n
    \n \n \n

    Agreement

    \n
    \n
    \n \n \n \n \n \n \n \n \n \n {props.seoFeeStructure.map((el, index) => {\n const flatFeeEnabled = el[\"flat_fee_enabled\"] == \"1\";\n const percentageEnabled = el[\"percentage_fee_enabled\"] == \"1\";\n const greyout1 = flatFeeEnabled ? null : { opacity: \"0.6\" };\n const greyout2 = percentageEnabled ? null : { opacity: \"0.6\" };\n return (\n \n \n \n \n \n );\n })}\n \n
    \n

    Select and set shared fee structure

    \n \n
    \n 0 ? undefined : \"none\" }}\n className=\"f12 pl-3 nunito-regular light-primary\">\n Fixed amount\n

    \n
    \n 0 ? undefined : \"none\" }}\n className=\"f12 pl-3 nunito-regular light-primary\">\n Revenue (total or above)\n

    \n
    \n
    \n

    Over revenue

    \n\n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"over_ad_spend\"] = e.target.value;\n props.setSeoFeeStructure([...newArray]);\n }}\n />\n\n $\n
    \n

    charge

    \n
    \n
    \n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"flat_fee_enabled\"] = flatFeeEnabled ? \"0\" : \"1\";\n props.setSeoFeeStructure([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"flat_fee\"] = e.target.value;\n props.setSeoFeeStructure([...newArray]);\n }}\n size=\"sm\"\n className=\"cw2\"\n placeholder=\"0\"\n />\n \n $\n \n
    \n
    \n
    \n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"percentage_fee_enabled\"] = percentageEnabled ? \"0\" : \"1\";\n props.setSeoFeeStructure([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"percentage_fee_total_over\"] = e.target.value;\n props.setSeoFeeStructure([...newArray]);\n }}>\n \n \n \n
    \n
    \n {\n let newArray = props.seoFeeStructure;\n newArray[index][\"percentage_fee\"] = e.target.value;\n props.setSeoFeeStructure([...newArray]);\n }}\n />\n \n %\n \n
    \n {index >= 0 && removeRow(el.id, \"1\")} className=\"fas fa-minus-circle \">}\n
    \n
    \n
    \n \n props.setSeoFeeStructure([\n ...props.seoFeeStructure,\n {\n id: uuidv4(),\n flat_fee: \"0\",\n over_ad_spend: \"0\",\n percentage_fee: \"0\",\n flat_fee_enabled: \"0\",\n percentage_fee_enabled: \"0\",\n percentage_fee_total_over: \"total\",\n },\n ])\n }>\n + Add Condition\n \n
    \n
    \n

    Active SEO Fees

    \n

    \n View full history\n

    \n
    \n \n \n \n \n 0 ? undefined : \"none\" }}\n className=\"pl-3 f12 nunito-regular light-primary\">\n Frequency\n \n 0 ? undefined : \"none\" }}\n className=\"pl-3 f12 nunito-regular light-primary\">\n Label\n \n 0 ? undefined : \"none\" }}\n className=\"pl-3 f12 nunito-regular light-primary\">\n Amount\n \n \n \n \n \n {props.seoFees.map((el, index) => {\n const greyout = el[\"enabled\"] == \"1\" ? null : \"0.6\";\n return (\n \n \n \n \n \n \n \n );\n })}\n \n
    \n Status\n
    \n
    \n {\n let newArray = props.seoFees;\n newArray[index][\"enabled\"] = el[\"enabled\"] == \"1\" ? \"0\" : \"1\";\n props.setSeoFees([...newArray]);\n }}\n />\n
    \n
    \n {\n let newArray = props.seoFees;\n newArray[index][\"frequency\"] = e.target.value;\n props.setSeoFees([...newArray]);\n }}>\n \n \n \n \n {\n let newArray = props.seoFees;\n newArray[index][\"label\"] = e.target.value;\n props.setSeoFees([...newArray]);\n }}\n />\n \n
    \n
    \n {\n let newArray = props.seoFees;\n newArray[index][\"amount\"] = e.target.value;\n props.setSeoFees([...newArray]);\n }}\n />\n \n $\n \n
    \n
    \n removeRow(el.id, \"2\")} className=\"fas fa-minus-circle\">\n
    \n
    \n
    \n

    \n {index === 0 && \"Recurring\"}\n {index === 1 && \"Ready to be fulfilled in billing\"}\n {index === 2 && \"Currently disabled, will not show in billing\"}\n

    \n
    \n
    \n \n props.setSeoFees([\n ...props.seoFees,\n {\n id: uuidv4(),\n label: \"\",\n amount: \"0\",\n status: \"0\",\n enabled: \"0\",\n status: \"Recurring\",\n frequency: \"Monthly\",\n },\n ])\n }>\n + Add fee\n \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport ScriptBoxes from \"components/client_config/ppc_config/ScriptBoxes\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function Scripts(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n let exclaimTriangle = require(\"images/icons/exclaim-triangle.png\");\n exclaimTriangle = ;\n let exclaimTriangleMobile = require(\"images/icons/exclaim-triangle.png\");\n exclaimTriangleMobile = ;\n const [validated, setValidation] = useState(false);\n\n const removeScripts = () => {\n let newScripts = props.scripts;\n\n let resetScripts = {};\n Object.entries(newScripts).forEach(([key, value]) => {\n if (typeof resetScripts[key] === \"object\") {\n resetScripts[key][\"enabled\"] = \"0\";\n } else {\n resetScripts[key] = \"0\"\n }\n });\n\n setIsChecked(resetScripts);\n props.setScripts(resetScripts);\n };\n\n const [isChecked, setIsChecked] = useState(props.scripts);\n const checkValidation = () => {\n const amount1 = Object.values(props.scripts).filter((el) => el === \"1\").length;\n const amount2 = jsDig([\"scripts\",\"exclude_nb_in_shopping\",\"enabled\"], props) == \"1\" ? 1 : 0;\n const amount = amount1 + amount2;\n\n if (amount > 0) {\n setValidation(true);\n } else {\n setValidation(false);\n }\n };\n\n const scripts = [\n {\n name: \"text_converting_query_mining_script\",\n title: \"Text converting query mining script\",\n desc: \"Monthly iterates through all text campaign converted queries on an account for the previous two months and creates ad groups based on the converted query text.\",\n },\n {\n name: \"em_bm_negative_overlap_script\",\n title: \"EM/BM negative overlap script\",\n desc: \"Syncs negative keyword lists throughout the account to prevent overlap.\",\n },\n {\n name: \"negative_dsa_sync_script\",\n title: \"Negative DSA sync script\",\n desc: \"Syncs enabled account keywords as negatives in the '[DSA]' ad group to prevent bidding on pre_targeted queries.\",\n },\n {\n name: \"exclude_nb_in_shopping\",\n title: \"Exclude Non-Brand in Shopping\",\n desc: \"When you split Shopping campaigns on branded and non-branded search terms, you often still get non-branded search terms in your branded Shopping campaign(s). This script automatically excludes these terms.\",\n },\n {\n name: \"keyword_cannibalization_script\",\n title: \"Keyword Cannibalization Script\",\n desc: \"For every ad group in the entire account, adds all keywords NOT in that ad group to be an exact match negative version to that ad group.\",\n },\n {\n name: \"youtube_channel_excluder\",\n title: \"Exclude Foreign Language YouTube Channels\",\n desc: \"For display and video campaigns, Google is not quite so particular about targeting individual languages and video ads are often played in foreign language channels. This script identifies YouTube channels in undesired countries on which the video campaign(s) was/are played and automatically excludes them from the respective campaign.\",\n },\n ];\n\n const [showBoxes, setShowBoxes] = useState(false);\n\n return (\n <>\n \n \n
    \n

    Scripts

    \n
    \n
    \n

    Would you like to activate any PPC scripts at this time?

    \n
    \n \n
    \n\n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(true);\n setValidation(false);\n checkValidation();\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n removeScripts();\n }}\n />\n
    \n \n
    \n \n \n
    \n
    \n {exclaimTriangle}\n
    \n
    \n {exclaimTriangleMobile}\n
    \n

    \n Enabling/disabling these scripts without a thorough understanding of the function may have unintended consequences. Please proceed with caution.\n

    \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\n\nclass ScrollToTop extends React.Component {\n componentDidUpdate(prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n window.scrollTo(0, 0);\n }\n }\n\n render() {\n return null;\n }\n}\n\nexport default withRouter(ScrollToTop);\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button, Container } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport Alerts from \"../client_config/seo_config/alerts/Alerts\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function SeoAlerts(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n return (\n \n \n \n
    \n

    SEO Alerts

    \n
    \n\n
    \n

    \n We need to make sure SEO alerts are configured correctly. By default, we have automatically subscribed team\n support/leads accordingly based on how they were assigned in the Service Agreement, but if you need to make any changes or customizations, you can\n do so below.\n

    \n
    \n \n
    \n \n \n \n \n \n \n \n
    \n \n \n \n
    \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Container, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\nimport jsDig from \"utils/jsDig\";\nimport DataPullSavePopUp from \"../utils/DataPullSavePopUp\";\n\nexport default function SeoDataPull(props) {\n const route = useContext(RouterContext);\n const [validated, setValidation] = useState(false);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n\n const seoPullboxes = props.pullBoxes.slice(2, 5);\n\n const pullResetter = () => {\n return props.pullBoxes\n .filter(\n (platform, idx) =>\n platform[0] == \"Google: SEO\" ||\n platform[0] == \"Google Search Console\" ||\n platform[0] == \"SEMRush\" ||\n (platform[0] == \"Shopify\" && jsDig([\"website_platform\"], props.client_account) != \"0\")\n )\n .map((newItem) => {\n newItem[2] = false;\n return newItem;\n });\n };\n\n const pullUpdateHelper = (idx, newValue) => {\n let newArray = props.pullBoxes;\n newArray[idx][2] = newValue;\n props.setPullBoxes((prevState) => [...newArray]);\n };\n const [showBoxes, setShowBoxes] = useState(false);\n const [open, setOpen] = useState(false);\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n \n \n \n \n \n
    \n

    Pull SEO Data

    \n
    \n
    \n

    Would you like to pull data from your accounts now?

    \n
    \n \n
    \n \n \n \n
    \n {\" \"}\n What does this mean?\n
    \n
    \n {\n setShowBoxes(true), setValidation(false);\n }}\n />\n {\n setShowBoxes(false), setValidation(true), pullResetter();\n }}\n />\n
    \n \n
    \n \n
    \n
    \n \n \n

    For which accounts?

    \n
    \n {props.pullBoxes.map((platform, idx) => {\n let show = false;\n if (\n (platform[0] == \"Google: SEO\" && Object.values(jsDig([\"Google Analytics\"], props.client_account.team_access)).includes(\"1\")) ||\n (platform[0] == \"Google Search Console\" && Object.values(jsDig([\"Google Search Console\"], props.client_account.team_access)).includes(\"1\")) ||\n (platform[0] == \"SEMRush\" && Object.values(jsDig([\"SEMRush\"], props.client_account.team_access)).includes(\"1\"))\n ) {\n show = true;\n }\n const visible = show ? \"flex \" : \"none\";\n return (\n
    \n {\n pullUpdateHelper(idx, !platform[2]);\n if (show) {\n let exist = seoPullboxes.find((el) => el.includes(true));\n if (exist == undefined) setValidation(false);\n else setValidation(true);\n }\n }}\n />\n
    \n );\n })}\n
    \n

    Clicking next will initiate a large data pull which could take several hours to complete.

    \n \n
    \n
    \n \n \n
    \n \n \n {\n showBoxes ? setOpen(true) : props.submitForm(nextPage.url);\n // props.manualDataPull();\n // props.submitForm(nextPage.url);\n }}\n />\n props.submitForm(nextPage.url)}\n open={open}\n handleClose={handleClose}\n />\n
    \n \n
    \n
    \n );\n}\n","import React, {useEffect, useContext} from \"react\";\nimport { Row, Col, Button } from \"react-bootstrap\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function ServiceAgreementsIntro(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n let chat = require(\"images/onboarding/chaticon.png\");\n chat = ;\n\n return (\n <>\n \n \n
    \n

    Next Up: Service Agreements

    \n
    \n
    \n

    \n Congrats on making it through the basic setup and access! The client can take a deep breath, they are done for now!

    \n

    On the next two pages, we need to configure the service agreements for the services and sub-services that you selected in the beginning.\n We will set up the agreement information, and also create the makeup of the company's marketing team by providing leads, support, and points of\n contact for each specific service. We have already enabled/disabled services for you based on your answers from earlier, but if you need to make\n changes to the services being provided you can do so here as well.\n

    \n
    \n \n
    \n \n \n \n \n {chat}\n \n

    \n \n The remainder of onboarding for this account is to be completed by the team member only. If you are still on the onboarding meeting or call,\n this section can be completed after that has been concluded.\n \n

    \n \n
    \n \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Container, Row, Col, Button } from \"react-bootstrap\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function Services({\n pageLocator,\n searchEnabled,\n displayEnabled,\n socialEnabled,\n videoEnabled,\n setSearchEnabled,\n setDisplayEnabled,\n setSocialEnabled,\n setVideoEnabled,\n seo,\n setSeo,\n submitForm,\n onboarding_progress,\n client_account,\n}) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n let seoA = require(\"images/onboarding/seochart-active.png\");\n seoA = ;\n let seoI = require(\"images/onboarding/seochart-inactive.png\");\n seoI = ;\n let ppcA = require(\"images/onboarding/ppcchart-active.png\");\n ppcA = ;\n let ppcI = require(\"images/onboarding/ppcchart-inactive.png\");\n ppcI = ;\n let searchI = require(\"images/onboarding/magnify-inactive.png\");\n searchI = ;\n let searchA = require(\"images/onboarding/magnify-active.png\");\n searchA = ;\n let displayA = require(\"images/onboarding/display-active.png\");\n displayA = ;\n let displayI = require(\"images/onboarding/display-inactive.png\");\n displayI = ;\n let socialI = require(\"images/onboarding/social-inactive.png\");\n socialI = ;\n let socialA = require(\"images/onboarding/social-active.png\");\n socialA = ;\n let videoI = require(\"images/onboarding/video-inactive.png\");\n videoI = ;\n let videoA = require(\"images/onboarding/video-active.png\");\n videoA = ;\n\n pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (seo) {\n if (!ppc) {\n setValidated(true);\n }\n if (ppc) {\n if (searchEnabled || displayEnabled || socialEnabled || videoEnabled) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n } else {\n setValidated(true);\n }\n } else if (!seo) {\n if (searchEnabled || displayEnabled || socialEnabled || videoEnabled) {\n setValidated(true);\n } else setValidated(false);\n }\n });\n\n const subServices = [searchEnabled, displayEnabled, socialEnabled, videoEnabled].filter((el) => el === true);\n const [ppc, setPpc] = useState(subServices.length > 0 ? true : false);\n\n const setPpcHelper = () => {\n if (ppc === true) {\n setSearchEnabled(false);\n setDisplayEnabled(false);\n setSocialEnabled(false);\n setVideoEnabled(false);\n }\n setPpc(!ppc);\n };\n\n const services = [\n [\"Search\", searchEnabled, searchA, searchI, setSearchEnabled],\n [\"Display\", displayEnabled, displayA, displayI, setDisplayEnabled],\n [\"Social\", socialEnabled, socialA, socialI, setSocialEnabled],\n [\"Video\", videoEnabled, videoA, videoI, setVideoEnabled],\n ];\n\n // Need to complete pages in progress tracker that do not need to be set up\n const completePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/complete_pages\";\n let paramsObject = {\n client_account_id: client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Completed pages: \" + JSON.stringify(pages));\n },\n });\n };\n const incompletePageFunc = (pages) => {\n const submitUrl = \"/datapulse/onboarding/incomplete_pages\";\n let paramsObject = {\n client_account_id: client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Incompleted pages: \" + JSON.stringify(pages));\n },\n });\n };\n\n return (\n \n \n \n

    What services will be provided?

    \n \n
    \n\n \n \n {\n setPpcHelper();\n }}\n className={ppc ? \"active-box ppc\" : \"choose-box ppc\"}>\n
    {ppc ? ppcA : ppcI}
    \n
    \n

    PPC

    \n
    \n \n\n {\n setSeo(!seo);\n }}\n className={seo ? \"seo-active\" : \"choose-box seo\"}>\n
    {seo ? seoA : seoI}
    \n\n
    \n

    SEO

    \n
    \n \n \n
    \n
    \n \n \n

    Select PPC sub-services

    \n \n
    \n \n \n \n
    \n {services.map((service, idx) => {\n return (\n {\n service[4](!service[1]);\n }}\n className={service[1] ? \"active-box-small \" : \"choose-box-small\"}>\n {service[1] ? service[2] : service[3]}\n\n
    \n

    {service[0]}

    \n
    \n \n );\n })}\n
    \n \n
    \n
    \n\n \n \n
    \n \n \n {\n // Some pages won't be necessary to fill out\n let pageNames = [];\n let incompletePageNames = [];\n if (!searchEnabled) {\n pageNames.push(\"search_goals\");\n } else {\n incompletePageNames.push(\"search_goals\");\n }\n if (!socialEnabled) {\n pageNames.push(\"social_goals\");\n pageNames.push(\"social_conversions\");\n } else {\n incompletePageNames.push(\"social_goals\");\n incompletePageNames.push(\"social_conversions\");\n }\n if (!displayEnabled) {\n pageNames.push(\"display_goals\");\n } else {\n incompletePageNames.push(\"display_goals\");\n }\n if (!videoEnabled) {\n pageNames.push(\"video_goals\");\n } else {\n incompletePageNames.push(\"video_goals\");\n }\n if (!searchEnabled && !displayEnabled && !videoEnabled) {\n pageNames.push(\"scripts\");\n } else {\n incompletePageNames.push(\"scripts\");\n }\n if (client_account.account_type === \"leadgen\") {\n pageNames.push(\"inflation\");\n if (!searchEnabled && !socialEnabled && !displayEnabled && !videoEnabled) {\n pageNames.push(\"ppc_service_agreements\");\n pageNames.push(\"ppc_configuration_intro\");\n pageNames.push(\"track_specific_action_ids\");\n pageNames.push(\"campaign_groups\");\n pageNames.push(\"ppc_data_pull\");\n pageNames.push(\"all_ppc_goals\");\n pageNames.push(\"ppc_dashboard_customization\");\n pageNames.push(\"ppc_dashboard_customization_all\");\n pageNames.push(\"ppc_alerts\");\n pageNames.push(\"datafeedwatch_install\");\n } else {\n incompletePageNames.push(\"ppc_service_agreements\");\n incompletePageNames.push(\"ppc_configuration_intro\");\n incompletePageNames.push(\"track_specific_action_ids\");\n incompletePageNames.push(\"campaign_groups\");\n incompletePageNames.push(\"ppc_data_pull\");\n incompletePageNames.push(\"all_ppc_goals\");\n incompletePageNames.push(\"ppc_dashboard_customization_all\");\n incompletePageNames.push(\"ppc_alerts\");\n incompletePageNames.push(\"datafeedwatch_install\");\n }\n }\n if (client_account.account_type === \"ecommerce\") {\n if (!searchEnabled && !socialEnabled && !displayEnabled && !videoEnabled) {\n pageNames.push(\"ppc_service_agreements\");\n pageNames.push(\"ppc_configuration_intro\");\n pageNames.push(\"track_specific_action_ids\");\n pageNames.push(\"inflation\");\n pageNames.push(\"campaign_groups\");\n pageNames.push(\"ppc_data_pull\");\n pageNames.push(\"all_ppc_goals\");\n pageNames.push(\"ppc_dashboard_customization\");\n pageNames.push(\"ppc_dashboard_customization_all\");\n pageNames.push(\"ppc_alerts\");\n pageNames.push(\"datafeedwatch_install\");\n } else {\n incompletePageNames.push(\"ppc_service_agreements\");\n incompletePageNames.push(\"ppc_configuration_intro\");\n incompletePageNames.push(\"track_specific_action_ids\");\n incompletePageNames.push(\"campaign_groups\");\n incompletePageNames.push(\"ppc_data_pull\");\n incompletePageNames.push(\"all_ppc_goals\");\n incompletePageNames.push(\"ppc_dashboard_customization\");\n incompletePageNames.push(\"ppc_dashboard_customization_all\");\n incompletePageNames.push(\"ppc_alerts\");\n incompletePageNames.push(\"datafeedwatch_install\");\n incompletePageNames.push(\"inflation\");\n }\n }\n if (!seo) {\n pageNames.push(\"seo_service_agreements\");\n pageNames.push(\"seo_configuration_intro\");\n pageNames.push(\"keyword_groups\");\n pageNames.push(\"landing_pages\");\n pageNames.push(\"semrush_setup\");\n pageNames.push(\"google_analytics_goal_tracking\");\n pageNames.push(\"seo_data_pull\");\n pageNames.push(\"google_my_business_access\");\n pageNames.push(\"seo_goals\");\n pageNames.push(\"seo_dashboard_customization\");\n pageNames.push(\"seo_alerts\");\n } else {\n incompletePageNames.push(\"seo_service_agreements\");\n incompletePageNames.push(\"seo_configuration_intro\");\n incompletePageNames.push(\"keyword_groups\");\n incompletePageNames.push(\"landing_pages\");\n incompletePageNames.push(\"semrush_setup\");\n incompletePageNames.push(\"google_analytics_goal_tracking\");\n incompletePageNames.push(\"seo_data_pull\");\n incompletePageNames.push(\"seo_goals\");\n incompletePageNames.push(\"seo_dashboard_customization\");\n incompletePageNames.push(\"seo_alerts\");\n }\n completePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n incompletePageFunc(incompletePageNames.map((page) => `/datapulse/onboarding/${page}`));\n }}\n />\n
    \n \n
    \n
    \n );\n}\n","import React, {useContext} from \"react\";\nimport { Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport {RouterContext} from \"./Onboarding\"\n\nexport default function SkipButton(props) {\n const route = useContext(RouterContext)\n let onboardingProgress = route.onboardingProgress\n const remainingPages = onboardingProgress.map((page) => page.completed).filter((completed) => completed === false).length\n\n\n\n return (\n <>\n {\n remainingPages !== 1 ?\n \n route.set((prev) => [...prev, window.location.pathname])}\n style={{\n backgroundColor: \"#888888\",\n paddingLeft: \"60px\",\n paddingRight: \"60px\",\n }}\n className=\"py-1 f16 skip-button nunito-regular\"\n size=\"md\"\n >\n {props.btnText}\n \n \n :\n \n

    You cannot skip the last page

    \n \n }>\n \n {props.btnText}\n \n \n }\n \n );\n}\n\n\n\n\n\n\n\n\n\n\n","import React, { useState, useEffect } from \"react\";\nimport { Table, Row, Col, Button, Form } from \"react-bootstrap\";\n\nexport default function CustomConversions(props) {\n const [customConversions, setCustomConversions] = useState(props.customConversions && props.customConversions.length > 0 ? props.customConversions : [{label: \"\", id: \"\"}]);\n const handleChange = (index, property, value) => {\n let newConversions = customConversions;\n newConversions[index][property] = value;\n setCustomConversions([...newConversions])\n props.setCustomConversions && props.setCustomConversions([...newConversions])\n }\n\n const handleDelete = (targetIndex) => {\n let newConversions = customConversions\n newConversions.splice(targetIndex, 1);\n setCustomConversions([...newConversions])\n props.setCustomConversions && props.setCustomConversions([...newConversions])\n }\n\n const handleAdd = () => {\n setCustomConversions([...customConversions, {label: \"\", id: \"\"}])\n props.setCustomConversions && props.setCustomConversions([...customConversions, {label: \"\", id: \"\"}])\n }\n\n return (\n <>\n \n \n \n \n \n\n \n \n \n \n {customConversions.map((conversion, index) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    LabelID
    \n handleChange(index, \"label\", e.target.value)}\n />\n \n handleChange(index, \"id\", e.target.value)}\n />\n \n {index >= 1 && (\n handleDelete(index)}>\n )}\n
    \n \n + Add custom conversion\n \n \n )\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomConversions from \"./CustomConversions\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport {RouterContext} from \"../Onboarding\"\n\nexport default function SocialConversions(props) {\n const route = useContext(RouterContext)\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\n \"routerHistory\",\n JSON.stringify([...route.get])\n );\n }, [route.get]);\n props.pageLocator();\n const [validated, setValidatation] = useState(false);\n \n return (\n <>\n \n \n
    \n

    Social Conversions

    \n
    \n
    \n

    Choose the account-level conversion objectives for Facebook & Tiktok.

    \n
    \n \n
    \n \n \n
    \n

    Facebook Objective

    \n \n {\n props.setFacebookConversionObjective(e.target.value);\n setValidatation(true);\n }}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {}\n \n {Object.keys(props.facebook_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.facebook_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n {props.facebookConversionObjective == \"custom_conversions\" && (\n \n )}\n
    \n \n
    \n \n \n
    \n

    Tiktok Objective

    \n \n {\n props.setTiktokConversionObjective(e.target.value);\n setValidatation(true);\n }}\n style={{ width: \"256px\", paddingLeft: \"20px\", marginLeft: \"3px\" }}>\n {}\n \n {Object.keys(props.tiktok_conversion_objectives).map((objectiveName) => {\n const objectiveInt = props.tiktok_conversion_objectives[objectiveName];\n return (\n \n );\n })}\n \n
    \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\n\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function DataFeedWatchInstall(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [showBoxes, setShowBoxes] = useState(false);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidation] = useState(false);\n useEffect(() => {\n if (props.teamAccess[\"DataFeedWatch\"][\"Completed setup\"] !== \"1\" && showBoxes) {\n setValidation(false);\n }\n });\n\n return (\n <>\n \n \n
    \n

    DataFeedWatch Install

    \n
    \n
    \n

    \n On this page you will install DataFeedWatch.{\" \"}\n \n Please click here\n {\" \"}\n to open a new tab with detailed instructions on how to set up properly, and then check the box to indicate that setup is done and the custom feed\n is configured.\n

    \n
    \n \n
    \n \n \n
    \n

    Do we need to set up DataFeedWatch for this client?

    \n
    \n \n
    \n \n \n
    \n {\n setShowBoxes(true);\n setValidation(true);\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n }}\n />\n
    \n \n
    \n\n \n \n
    \n
    \n \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"DataFeedWatch\"][\"Completed setup\"] = props.teamAccess[\"DataFeedWatch\"][\"Completed setup\"] == \"1\" ? \"0\" : \"1\";\n accessChecked[\"DataFeedWatch\"][\"Completed setup\"] == \"1\" && setValidation(true);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function FacebookAdsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Facebook Ads\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Facebook Ads\"][\"Full\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Facebook Ads\"][\"Full\"] == \"1\") || props.teamAccess[\"Facebook Ads\"][\"Restricted\"] == \"1\") ) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n useEffect(() => {\n if (props.facebookAdsIds.length > 0) return null;\n let newRow = {};\n newRow.frontId = uuidv4();\n newRow.label = \"\";\n newRow.id = \"\";\n props.setFacebookAdsIds((rows) => [...rows, newRow]);\n }, []);\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Facebook Ads Access

    \n
    \n
    \n

    \n On this page you will grant access to Facebook Ads. Please {/*watch the video for the detailed instruction on how to grant access properly, and then*/}\n check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and will\n not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Facebook:

    \n \n
    \n \n \n
    \n
    \n
    \n {authButton(props.api_platforms[\"facebook_ads\"])}\n

    {props.api_platforms[\"facebook_ads\"][\"authenticated\"] ?\n \"You have already authenticated with Facebook Ads. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Facebook Ads!\"\n }\n

    \n
    \n
    \n
    \n \n \n
    \n
    \n

    Facebook Ads ID

    \n \n \n {props.facebookAdsIds.map((el, idx) => {\n return (\n \n \n \n );\n })}\n \n
    \n {\n let newFacebookAdsIds = props.facebookAdsIds;\n newFacebookAdsIds[idx][\"id\"] = e.target.value;\n props.setFacebookAdsIds([...newFacebookAdsIds]);\n }}\n id={`ob-facebook-ads-id${idx}`}\n required\n type=\"text\"\n />\n
    \n
    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n setUserGrantAccess(!userGrantAccess);\n }}\n />\n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Facebook Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Facebook Ads\"][\"Full\"] = props.teamAccess[\"Facebook Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Facebook Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Facebook Ads\"][\"Restricted\"] = props.teamAccess[\"Facebook Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n\n
    \n

    \n Note: Facebook Ads requires it's own specific process to grant access. Make sure to double-check with the client that all necessary steps have\n been taken, all necessary access is granted, and then check the box to confirm.\n

    \n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleAdsAccess(props) {\n const route = useContext(RouterContext);\n const [idProvided, setIdProvided] = useState(false);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (\n form.checkValidity() === true &&\n (jsDig([\"Google Ads\", \"Full\"], props.teamAccess) == \"1\" || jsDig([\"Google Ads\", \"Restricted\"], props.teamAccess) == \"1\")\n ) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [accessGranted, setAccessGranted] = useState(\n jsDig([\"Google Ads\", \"Full\"], props.teamAccess) == \"1\" || jsDig([\"Google Ads\", \"Restricted\"], props.teamAccess) == \"1\"\n );\n\n const addDashes = (id) => {\n if (id.length < 12) {\n const cleanId = id ? id.split(\"-\").join(\"\") : id;\n let finalVal = id ? cleanId.match(/.{1,3}/g).join(\"-\") : id;\n return finalVal;\n }\n return id;\n };\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n return (\n <>\n \n \n \n
    \n

    Grant Google Ads Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Ads. First, you can provide your account ID's below. This will be used in DataPulse and will\n additionally give {route.organization.name} the means to request access to your account. Once access is requested, the client can log into their Google Ads\n account and approve.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Google:

    \n \n
    \n \n \n
    \n {authButton(props.api_platforms[\"google_ads\"])}\n

    {props.api_platforms[\"google_ads\"][\"authenticated\"] ?\n \"You have already authenticated with Google Ads. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Google Ads!\"\n }\n

    \n
    \n \n \n

    Google Ads MCC ID (No '-'s):

    \n {props.setMccId(e.target.value); checkValidation()}}\n disabled={props.savedMccId.length > 4}\n name=\"google_ads_mcc_id\"\n style={{maxWidth: \"200px\"}}\n />\n

    {props.mccId && props.mccId != \"\" ?\n \"MCC ID has already been set. If the value above is incorrect go to API Access to change it.\"\n : \"MCC ID must be set to pull data from Google Ads.\"\n }\n

    \n \n
    \n \n \n

    Provide your account information below:

    \n \n
    \n \n \n props.setSameId(!props.sameId)}\n />\n \n \n \n {props.sameId ? (\n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n ID\n
    \n {\n let newGoogleAdsIds = props.allGoogleAdsIds;\n if (!newGoogleAdsIds[0]) {\n newGoogleAdsIds[0] = {};\n }\n newGoogleAdsIds[0][\"id\"] = addDashes(e.target.value);\n props.setAllGoogleAdsIds([...newGoogleAdsIds]);\n }}\n id={`ob-google-ads-id`}\n required\n type=\"text\"\n />\n
    \n
    \n \n
    \n ) : (\n <>\n {[\"Search\", \"Display\", \"Video\"].map((section, idx) => {\n return (\n \n \n \n \n

    {section}

    \n \n
    \n
    \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n ID\n
    \n {\n if (section === \"Search\") {\n let newGoogleAdsIds1 = props.searchGoogleAdsIds;\n if (!newGoogleAdsIds1[0]) {\n newGoogleAdsIds1[0] = {};\n }\n newGoogleAdsIds1[0][\"id\"] = addDashes(e.target.value);\n props.setSearchGoogleAdsIds([...newGoogleAdsIds1]);\n } else if (section === \"Display\") {\n let newGoogleAdsIds2 = props.displayGoogleAdsIds;\n if (!newGoogleAdsIds2[0]) {\n newGoogleAdsIds2[0] = {};\n }\n newGoogleAdsIds2[0][\"id\"] = addDashes(e.target.value);\n props.setDisplayGoogleAdsIds([...newGoogleAdsIds2]);\n } else if (section === \"Video\") {\n let newGoogleAdsIds3 = props.videoGoogleAdsIds;\n if (!newGoogleAdsIds3[0]) {\n newGoogleAdsIds3[0] = {};\n }\n newGoogleAdsIds3[0][\"id\"] = addDashes(e.target.value);\n props.setVideoGoogleAdsIds([...newGoogleAdsIds3]);\n }\n }}\n id={`ob-google-ads-id-${section}`}\n required\n type=\"text\"\n />\n
    \n
    \n \n \n );\n })}\n \n )}\n
    \n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

    \n \n
    */}\n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n setIdProvided(!idProvided);\n }}\n dynamic\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Ads\"][\"Requested\"] = props.teamAccess[\"Google Ads\"][\"Requested\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n setAccessGranted(!accessGranted);\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Ads\"][\"Restricted\"] = 0;\n accessChecked[\"Google Ads\"][\"Full\"] = 0;\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Ads\"][\"Full\"] = props.teamAccess[\"Google Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Google Ads\"][\"Restricted\"] = props.teamAccess[\"Google Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover, Tooltip } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function GoogleAnalyticsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n let segmentImg = require(\"images/analytics-segment.png\");\n segmentImg = ;\n const tooltipMessage =
    In Analytics, apply the segment you wish to use and check the URL for the parameter '_.useg'. The segment ID is everything that follows the 'user' string. For pulling a built-in segment, take the number after 'builtin' and add a hyphen '-' before.

    {segmentImg}
    \n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n props.googleAnalyticsIds.map((googleAnalyticsId, index) => {\n handleIdChange(index, \"custom_segment\", \"\");\n });\n }, [route.get]);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Analytics\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Analytics\"][\"Restricted\"] == \"1\"\n );\n const handleIdDelete = (targetIndex) => {\n let newIds = props.googleAnalyticsIds.filter((id) => {\n return targetIndex != id.frontId;\n });\n props.setGoogleAnalyticsIds(newIds);\n };\n\n const handleIdChange = (targetIndex, property, value) => {\n let newIds = props.googleAnalyticsIds.map((id, index) => {\n let newId = id;\n if (index == targetIndex) {\n newId[property] = value;\n }\n return newId;\n });\n props.setGoogleAnalyticsIds(newIds);\n };\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && (props.googleAnalyticsIds.length > 0) && ((props.teamAccess[\"Google Analytics\"][\"Full\"] == \"1\") || props.teamAccess[\"Google Analytics\"][\"Restricted\"] == \"1\")) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n let firstImg = require(\"images/analytics-screenshot-1.png\");\n let secondImg = require(\"images/analytics-screenshot-2.png\");\n firstImg = ;\n secondImg = ;\n const idTooltipMessage = () => {\n return (\n <>\n
    \n There are 2 types of Google Analytics properties, GA4 and UA.\n

    \n

    \n For UA, the ID to use in DataPulse is the view ID. That can be extracted from the URL after you select the relevant view:\n {firstImg}\n

    \n The view ID is the number that comes after the 'p' in the URL.\n

    \n

    \n For GA4, the ID to use is the profile ID. That can also be extracted from the URL after you select the relevant property:\n {secondImg}\n

    \n The property ID is the number that comes after the 'p' in the URL.\n
    \n \n )\n }\n\n return (\n <>\n \n \n
    \n

    Grant Google Analytics Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Analytics. Provide your Account ID's below, and use the 'Label' fields to name elements for your own\n reference (this will not affect data in any way). You can then check the access level that you have granted your team. It's important to note that\n checking the access level boxes are solely for reference, and will not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Google:

    \n \n
    \n \n \n
    \n
    \n {authButton(props.api_platforms[\"google_analytics\"])}\n

    {props.api_platforms[\"google_analytics\"][\"authenticated\"] ?\n \"You have already authenticated with Google Analytics. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Google Analytics!\"\n }\n

    \n
    \n
    \n \n
    \n \n \n

    Provide your account information below:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n {props.googleAnalyticsIds.map((googleAnalyticsId, index) => {\n return (\n \n \n \n \n \n \n );\n })}\n \n
    \n Label\n Label is mainly for handling multiple google analytics ids, if you do not know what to put, you can just put main

    }\n />\n
    \n ID\n \n \n \n \n \n Add custom segment ID\n \n \n \n \n
    \n handleIdChange(index, \"label\", e.target.value)}\n value={jsDig([\"label\"], googleAnalyticsId) ? jsDig([\"label\"], googleAnalyticsId) : \"\"}\n id={`ob-analytics-label${index}`}\n />\n \n handleIdChange(index, \"id\", e.target.value)}\n id={`ob-analytics-id${index}`}\n required\n type=\"text\"\n />\n \n
    \n handleIdChange(index, \"custom_segment_enabled\", e.target.checked ? \"1\" : \"0\")}\n sendUncheckedValue\n id={`ob-google-analytics-id-${index}-custom-segment-enabled`}\n checked={jsDig([\"custom_segment_enabled\"], googleAnalyticsId) == \"1\" ? true : false}\n />\n
    \n handleIdChange(index, \"custom_segment\", e.target.value)}\n style={{ display: \"inline-block\", width: \"80%\" }}\n />\n\n
    \n handleIdDelete(googleAnalyticsId.frontId)} className=\" pl-2 fas fa-minus-circle\">\n
    \n
    \n {\n props.setGoogleAnalyticsIds((prevState) => [...prevState, { frontId: uuidv4() }]);\n }}\n value=\"+ Add Google Analytics ID\"\n variant=\"success\"\n />\n \n
    \n \n
    \n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

    \n \n
    */}\n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n setUserGrantAccess(!userGrantAccess)}\n />\n
    \n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Analytics\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Analytics\"][\"Full\"] = props.teamAccess[\"Google Analytics\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Analytics\"][\"Full\"] = \"0\";\n accessChecked[\"Google Analytics\"][\"Restricted\"] = props.teamAccess[\"Google Analytics\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleMerchantAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n if (props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\") {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant Google Merchant Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Merchant. Please {/*watch the video for the detailed instruction on how to grant access properly, and\n then */}check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and\n will not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n\n \n \n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

    \n \n
    */}\n\n \n \n
    \n {\n setUserGrantAccess(!userGrantAccess);\n }}\n />\n
    \n
    \n

    Access level granted:

    \n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Merchant\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Merchant\"][\"Full\"] = props.teamAccess[\"Google Merchant\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Merchant\"][\"Full\"] = \"0\";\n accessChecked[\"Google Merchant\"][\"Restricted\"] = props.teamAccess[\"Google Merchant\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleMyBusinessAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Business\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Business\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Google Business\"][\"Restricted\"] === \"1\") || (props.teamAccess[\"Google Business\"][\"Full\"] === \"1\"))) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant Google Business Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Business. Please check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and\n will not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Business\"][\"Restricted\"] = props.teamAccess[\"Google Business\"][\"Restricted\"] == \"0\" ? \"0\" : \"1\";\n setUserGrantAccess(!userGrantAccess);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Access level granted:

    \n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Business\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Business\"][\"Full\"] = props.teamAccess[\"Google Business\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Business\"][\"Full\"] = \"0\";\n accessChecked[\"Google Business\"][\"Restricted\"] = props.teamAccess[\"Google Business\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    \n Note: Google Business requires it's own specific process to grant access. Make sure to double-check with the client and other team members\n that all necessary steps have been taken, all necessary access are granted, and then check the box to confirm.\n

    \n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function GoogleSearchConsoleAccess(props) {\n const route = useContext(RouterContext);\n\n let tipImage = require(\"images/onboarding/domain.png\");\n tipImage = ;\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Google Search Console\"][\"Full\"] == \"1\" || props.teamAccess[\"Google Search Console\"][\"Restricted\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Google Search Console\"][\"Restricted\"] === \"1\") || (props.teamAccess[\"Google Search Console\"][\"Full\"] === \"1\")) && props.domainProperty !== undefined) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Google Search Console Access

    \n
    \n
    \n

    \n On this page you will grant access to Google Search Console. Please check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference,\n and will not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Google:

    \n \n
    \n \n \n
    \n
    \n {authButton(props.api_platforms[\"google_webmasters\"])}\n

    {props.api_platforms[\"google_webmasters\"][\"authenticated\"] ?\n \"You have already authenticated with Google Search Console. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Google Search Console!\"\n }\n

    \n
    \n
    \n \n
    \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Full\"] = \"0\";\n setUserGrantAccess(!userGrantAccess);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Restricted\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Full\"] = props.teamAccess[\"Google Search Console\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Google Search Console\"][\"Full\"] = \"0\";\n accessChecked[\"Google Search Console\"][\"Restricted\"] = props.teamAccess[\"Google Search Console\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n Property is a domain property? \n
    \n
    \n {\n let domainChecked\n if (props.domainProperty === undefined)\n {\n domainChecked = true\n }\n if (props.domainProperty === true)\n {\n domainChecked = undefined\n }\n if (props.domainProperty === false)\n {\n domainChecked = true\n }\n props.setDomainProperty(domainChecked);\n }}\n />\n
    \n
    \n {\n let domainChecked\n if (props.domainProperty === undefined)\n {\n domainChecked = false\n }\n if (props.domainProperty === true)\n {\n domainChecked = false\n }\n if (props.domainProperty === false)\n {\n domainChecked = undefined\n }\n props.setDomainProperty(domainChecked);\n }}\n />\n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Form, Table, Button } from \"react-bootstrap\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\nimport CustomTooltip from \"utils/CustomTooltip\";\n\nexport default function MicrosoftAdsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n const [idProvided, setIdProvided] = useState(false);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const [accessGranted, setAccessGranted] = useState(\n props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\"\n );\n let example = require(\"images/onboarding/microsoft-example.png\");\n example = ;\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true && (props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\" || props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\")) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n // useEffect(() => {\n // if (props.microsoftAdsIds.length > 0) return null;\n // let newRow = {};\n // props.setMicrosoftAdsIds((rows) => [...rows, newRow]);\n // }, []);\n\n props.pageLocator();\n\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Microsoft Ads Access

    \n
    \n
    \n

    \n On this page you will grant access to Microsoft Ads. First, provide your account ID below. This will be used in DataPulse and will additionally\n give {route.organization.name} the means to request access to your account. Once access is requested, the client can log into their Microsoft Ads account\n and approve.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Microsoft:

    \n \n
    \n \n \n
    \n
    \n {authButton(props.api_platforms[\"microsoft_ads\"])}\n

    {props.api_platforms[\"microsoft_ads\"][\"authenticated\"] ?\n \"You have already authenticated with Microsoft Ads. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Microsoft Ads!\"\n }\n

    \n
    \n
    \n \n
    \n \n \n

    Provide your account information below:

    \n \n
    \n \n \n
    \n
    \n \n \n \n \n\n \n \n \n \n \n \n \n \n
    \n ID\n
    \n {\n props.setMicrosoftAdsIds([{ \"id\": e.target.value }]);\n }}\n id={`ob-microsoft-ads-id`}\n />\n
    \n
    \n
    \n \n
    \n\n {/* \n \n

    Email to grant access to:

    \n

    support@digitalposition.com

    \n \n
    */}\n \n \n
    \n
    {example}
    \n
    \n

    \n Note: Microsoft Ads account IDs must now be taken from the URL. Select the account from the initial list of accounts, then check the url for\n the \"aid\" parameter. The account id directly follows the = symbol.\n

    \n
    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n setIdProvided(!idProvided)}\n dynamic\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Requested\"] = props.teamAccess[\"Microsoft Ads\"][\"Requested\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n setAccessGranted(!accessGranted);\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Exist\"] = \"1\";\n\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    Please indicate access granted

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Microsoft Ads\"][\"Full\"] = props.teamAccess[\"Microsoft Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Microsoft Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Microsoft Ads\"][\"Restricted\"] = props.teamAccess[\"Microsoft Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function ShopifyAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n const [radio, setRadio] = useState(false)\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && (radio === true)) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [accessGranted, setAccessGranted] = useState(\n jsDig([\"Shopify\", \"Restricted\"], props.teamAccess) == \"1\" || jsDig([\"Shopify\", \"Full\"], props.teamAccess) == \"1\"\n );\n const [urlProvided, setUrlProvided] = useState(false);\n\n let shopifyIcon = require(\"images/logos/shopify-icon.png\");\n shopifyIcon = ;\n\n return (\n <>\n \n \n
    \n

    Grant Shopify Access

    \n
    \n
    \n

    \n On this page you will grant access to Shopify, which requires a unique process to grant access. There are three steps below that include providing\n the client store URL, having access requested, and then the client granting said access.\n

    \n
    \n \n
    \n \n \n \n \n

    First, enter your Shopify store URL:

    \n \n
    \n\n \n \n props.setShopifyUrl(e.target.value)}\n required\n type=\"text\"\n />\n

    \n .myshopify.com\n

    \n \n
    \n \n \n
    \n

    \n Next you will need to grant {route.organization.name} access to the account. Check the boxes below to confirm they've been completed.\n

    \n
    \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n setUrlProvided(!urlProvided)}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Shopify\"][\"Requested\"] = props.teamAccess[\"Shopify\"][\"Requested\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Shopify\"][\"Full\"] = \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n\n \n
    \n
    \n

    \n Will Shopify data be pulled utilizing all sales channels or only the online store?\n

    \n
    \n
    \n {props.setShopifyChannel(\"online_store\");\n setRadio(true)}}\n />\n {props.setShopifyChannel(\"overall\");\n setRadio(true)}}\n />\n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function ShopifyAuthenticate(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const [urlProvided, setUrlProvided] = useState(false);\n\n const [urlCopied, setUrlCopied] = useState(false);\n\n const getFullShopifyUrl = (url) => {\n if (url && url != \"\") {\n if (url.includes(\".myshopify.com\")) {\n return url;\n } else {\n return url + \".myshopify.com\";\n }\n } else {\n return false;\n }\n };\n\n const copyAuthUrl = () => {\n let authUrl = \"\";\n if (getFullShopifyUrl(props.shopifyUrl) == false) {\n return false;\n }\n const paramsObject = {\n shopify_url: getFullShopifyUrl(props.shopifyUrl),\n };\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/shopify-authenticate\",\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n authUrl = data.permission_url;\n },\n });\n\n /* Copy the text inside the text field */\n navigator.clipboard.writeText(authUrl);\n setUrlCopied(true);\n };\n\n const authenticateFunction = () => {\n if (getFullShopifyUrl(props.shopifyUrl) == false) {\n return false;\n }\n const paramsObject = {\n shopify_url: getFullShopifyUrl(props.shopifyUrl),\n };\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/shopify-authenticate\",\n dataType: \"json\",\n async: false,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n window.open(data.permission_url, \"_blank\");\n },\n });\n };\n\n let shopifyIcon = require(\"images/logos/shopify-icon.png\");\n shopifyIcon = ;\n const authenticateButton = (\n \n Authenticate\n {shopifyIcon}\n \n );\n\n const copyButton = (\n \n Copy install link  \n {urlCopied ? : }\n \n );\n\n return (\n <>\n \n \n \n
    \n

    Grant DataPulse Access to Shopify

    \n
    \n
    \n

    \n Now you will install the DataPulse Bridge to the client's Shopify store. This will allow DataPulse to connect and pull metrics and display them in the dashboards.\n

    \n
    \n
    \n

    {getFullShopifyUrl(props.shopifyUrl)}

    \n
    \n \n
    \n \n \n \n \n
    \n

    \n Authenticate your account with one of the two methods below. The green authenticate button will attempt to authenticate automatically,\n or click the blue button to copy the URL (then paste in your browser) to authenticate manually.\n

    \n
    \n
    \n {authenticateButton}\n {copyButton}\n
    \n \n
    \n \n
    \n\n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function TeamAccessIntro(props) {\n const route = useContext(RouterContext);\n let nextUrl;\n if (props.client_account.website_platform == 0) {\n nextUrl = \"/datapulse/onboarding/shopify_access\";\n } else {\n nextUrl =\n props.teamAccessChoices && props.teamAccessChoices[0] && props.teamAccessChoices[0] !== \"datafeedwatch_install\"\n ? `/datapulse/onboarding/${props.teamAccessChoices[0]}`\n : `/datapulse/onboarding/service_agreements_intro`;\n }\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n const completePages = Object.keys(props.teamAccess).filter((platform) => parseInt(props.teamAccess[platform][\"Exist\"]) == \"1\");\n if (completePages.length > 0) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n const platforms =\n\n props.enabled_services.ppc === true && props.enabled_services.seo === true\n ? [\"Google Analytics\", \"Google Ads\", \"Microsoft Ads\", \"Google Merchant\", \"Facebook Ads\", \"Tiktok Ads\", \"Youtube\", \"Google Search Console\", \"Google Business\"]\n : props.enabled_services.ppc === true && props.enabled_services.seo !== true\n ? [\"Google Analytics\", \"Google Ads\", \"Microsoft Ads\", \"Google Merchant\", \"Facebook Ads\", \"Tiktok Ads\", \"Youtube\"]\n : [\"Google Analytics\", \"Google Search Console\", \"Google Business\"];\n\n useEffect(() => {\n window.localStorage.setItem(\n \"teamChoices\",\n JSON.stringify(\n Object.entries(props.teamAccess)\n .filter((el) => el[0] !== \"SEMRush\")\n .filter((el) => el[1][\"Exist\"] === \"1\")\n .map((el) =>\n el[0] === \"DataFeedWatch\" ? el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n )\n .sort()\n )\n );\n props.setTeamAccessChoices(\n Object.entries(props.teamAccess)\n .filter((el) => el[0] !== \"SEMRush\")\n .filter((el) => el[1][\"Exist\"] === \"1\")\n .map((el) => (el[0] === \"DataFeedWatch\" ? el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : el[0].toLowerCase().replaceAll(\" \", \"_\") + \"_access\"))\n .sort()\n );\n }, [props.teamAccess]);\n\n // Need to complete pages in progress tracker that do not need to be set up\n const completePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/complete_pages\";\n let paramsObject = {\n client_account_id: props.client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Completed pages: \" + JSON.stringify(pages));\n },\n });\n };\n const incompletePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/incomplete_pages\";\n let paramsObject = {\n client_account_id: props.client_account.id,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Incompleted pages: \" + JSON.stringify(pages));\n },\n });\n };\n console.log(\n Object.keys(props.teamAccess).filter(\n (platform) => parseInt(props.teamAccess[platform][\"Exist\"]) !== 1 && (platform != \"SEMRush\") & (platform != \"DataFeedWatch\")\n )\n );\n return (\n <>\n \n \n
    \n

    Next Up: Team Access

    \n
    \n
    \n

    \n On this page we'll need to select all of the platforms that the company has accounts with. Then we will go through each of these one at a time on\n the next few pages and provide information and ID's so that the marketing team can do what they do best. Now would be a good opportunity to pause\n and get in touch with anyone who may have this information handy, like company IT specialists and account managers.{\" \"}\n \n You can skip and come back to any of the upcoming sections, but we must stress that this may be detrimental to your teams work, and failing to\n provide this information could potentially impede progress and optimal results.\n \n

    \n
    \n \n
    \n \n \n

    \n Please select the platforms that the company will be utilizing that we either need to set-up OR be given access to:\n

    \n \n \n
    \n {platforms.map((platform, idx) => {\n return (\n
    \n {\n let accessChecked = props.teamAccess;\n const currentValue = accessChecked[platform][\"Exist\"] == \"1\";\n accessChecked[platform][\"Exist\"] = currentValue == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n );\n })}\n
    \n \n
    \n \n
    \n \n \n \n
    \n \n {\n let completePagesNames = Object.keys(props.teamAccess).filter(\n (platform) => parseInt(props.teamAccess[platform][\"Exist\"]) !== 1 && (platform != \"SEMRush\") & (platform != \"DataFeedWatch\")\n );\n\n !props.seo_section.enabled && completePagesNames.push(\"SEMRush\");\n let incompletePagesNames = Object.keys(props.teamAccess).filter((platform) => parseInt(props.teamAccess[platform][\"Exist\"]) == 1);\n let pageNames = completePagesNames.map((page) =>\n page == \"DataFeedWatch\" ? page.toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : page.toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n );\n let inCompletepageNames = incompletePagesNames.map((page) =>\n page == \"DataFeedWatch\" ? page.toLowerCase().replaceAll(\" \", \"_\") + \"_install\" : page.toLowerCase().replaceAll(\" \", \"_\") + \"_access\"\n );\n\n completePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n incompletePages(inCompletepageNames.map((page) => `/datapulse/onboarding/${page}`));\n\n if (props.webPlatform !== 0) {\n completePages([`shopify_access`, `shopify_authenticate`].map((page) => `/datapulse/onboarding/${page}`));\n } else {\n incompletePages([`shopify_access`, `shopify_authenticate`].map((page) => `/datapulse/onboarding/${page}`));\n }\n }}\n />\n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, Table, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function TiktokAdsAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n const [userGrantAccess, setUserGrantAccess] = useState(\n props.teamAccess[\"Tiktok Ads\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Tiktok Ads\"][\"Full\"] == \"1\"\n );\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if ((form.checkValidity() === true) && ((props.teamAccess[\"Tiktok Ads\"][\"Full\"] == \"1\") || props.teamAccess[\"Tiktok Ads\"][\"Restricted\"] == \"1\") ) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n useEffect(() => {\n if (props.tiktokAdsIds.length > 0) return null;\n let newRow = {};\n newRow.frontId = uuidv4();\n newRow.label = \"\";\n newRow.id = \"\";\n props.setTiktokAdsIds((rows) => [...rows, newRow]);\n }, []);\n\n const authenticateFunction = (platform) => {\n window.open(platform[\"auth_url\"], '_blank');\n };\n\n const deauthorizeFunction = (platform) => {\n window.open(platform[\"deauth_url\"], '_blank');\n };\n\n const resetMessage = (platformName) => {\n return (`Resetting ${capitalize(platformName)} token will require you to authenticate again`)\n }\n\n const authButton = (platform) => {\n if (platform.authenticated) {\n return (\n <>\n \n \n )\n } else {\n return (\n <>\n \n \n )\n }\n }\n\n return (\n <>\n \n \n
    \n

    Grant Tiktok Ads Access

    \n
    \n
    \n

    \n On this page you will grant access to Tiktok Ads. Please {/*watch the video for the detailed instruction on how to grant access properly, and then*/}\n check the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and will\n not perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n \n \n

    Authenticate with Tiktok:

    \n \n
    \n \n \n
    \n
    \n
    \n {authButton(props.api_platforms[\"tiktok_ads\"])}\n

    {props.api_platforms[\"tiktok_ads\"][\"authenticated\"] ?\n \"You have already authenticated with Tiktok Ads. If you need access to clients on a different account, reset your token and reauthenticate.\"\n : \"You must go through the authentication process before you can pull data from Tiktok Ads!\"\n }\n

    \n
    \n
    \n
    \n \n \n
    \n
    \n

    Tiktok Ads ID

    \n \n \n {props.tiktokAdsIds.map((el, idx) => {\n return (\n \n \n \n );\n })}\n \n
    \n {\n let newTiktokAdsIds = props.tiktokAdsIds;\n newTiktokAdsIds[idx][\"id\"] = e.target.value;\n props.setTiktokAdsIds([...newTiktokAdsIds]);\n }}\n id={`ob-tiktok-ads-id${idx}`}\n required\n type=\"text\"\n />\n
    \n
    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n setUserGrantAccess(!userGrantAccess);\n }}\n />\n
    \n

    Please indicate access granted.

    \n
    \n\n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Tiktok Ads\"][\"Restricted\"] = \"0\";\n accessChecked[\"Tiktok Ads\"][\"Full\"] = props.teamAccess[\"Tiktok Ads\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Tiktok Ads\"][\"Full\"] = \"0\";\n accessChecked[\"Tiktok Ads\"][\"Restricted\"] = props.teamAccess[\"Tiktok Ads\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n\n
    \n

    \n Note: Tiktok Ads requires it's own specific process to grant access. Make sure to double-check with the client that all necessary steps have\n been taken, all necessary access is granted, and then check the box to confirm.\n

    \n
    \n
    \n \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport BackButton from \"../BackButton\";\nimport NextButton from \"../NextButton\";\nimport SkipButton from \"../SkipButton\";\nimport getNextPage from \"../getNextPage\";\nimport { RouterContext } from \"../Onboarding\";\n\nexport default function YoutubeAccess(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n\n const [accessGranted, setAccessGranted] = useState(props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\" || props.teamAccess[\"Youtube\"][\"Full\"] == \"1\");\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n props.pageLocator();\n\n const [validated, setValidated] = useState(false);\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true && (props.teamAccess[\"Youtube\"][\"Full\"] == \"1\" || props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\")) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n return (\n <>\n \n \n
    \n

    Grant YouTube Access

    \n
    \n
    \n

    \n On this page you will grant access to YouTube. Please check\n the box to indicate the access level granted. It's important to note that checking the access level boxes are solely for reference, and will not\n perform any actions in regards to granting access to your account.\n

    \n
    \n \n
    \n \n \n
    \n

    Complete as many of the below steps as possible, and check to confirm.

    \n
    \n
    \n
    \n \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Standard\"] = props.teamAccess[\"Youtube\"][\"Standard\"] == \"1\" ? \"0\" : \"1\";\n setAccessGranted(!accessGranted);\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Restricted\"] = \"0\";\n accessChecked[\"Youtube\"][\"Full\"] = props.teamAccess[\"Youtube\"][\"Full\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n {\n let accessChecked = props.teamAccess;\n accessChecked[\"Youtube\"][\"Full\"] = \"0\";\n accessChecked[\"Youtube\"][\"Restricted\"] = props.teamAccess[\"Youtube\"][\"Restricted\"] == \"1\" ? \"0\" : \"1\";\n props.setTeamAccess({ ...accessChecked });\n }}\n />\n
    \n
    \n

    \n Note: YouTube requires it's own specific process to grant access. Make sure to double-check with the client that all necessary steps have been\n taken, all necessary access are granted, and then check the box to confirm.\n

    \n
    \n
    \n \n {/* \n \n */}\n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","const text = ['

    Virtual + In-Store Appointments. Book Today.

    ', '

    Free Domestic Shipping + Shop Our Sale.

    ', '

    Shop our Cluster Rings + Classic Bands

    ', '

    Read our Customer Reviews

    ', 'Free 2-day shipping for domestic orders valued over $500.'];\nlet counter = 0;\nconst elem = document.getElementById(\"top-bar\");\nconst inst = setInterval(change, 5000);\n\nfunction change() {\n elem.innerHTML = text[counter];\n counter++;\n if (counter >= text.length) {\n counter = 0;\n\n }\n}","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form } from \"react-bootstrap\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\nimport { capitalize } from \"lodash\";\nexport default function TrackSpecificACtionIds(props) {\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(props.onboarding_progress);\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n props.pageLocator();\n const sectionName = [\"Search\", \"Display\", \"Video\"];\n const sectionName2 = [\"Search\", \"Display\", \"Video\"];\n\n console.log(props.conversionActions.search.length)\n const [searchActive, setSearchActive] = useState(props.conversionActions.search.lengh > 0 ? false : true);\n const [displayActive, setDisplayActive] = useState(props.conversionActions.display.lengh > 0 ? false : true);\n const [videoActive, setVideoActive] = useState(props.conversionActions.video.lengh > 0 ? false : true)\n const [showBoxes, setShowBoxes] = useState(searchActive ? true : displayActive ? true : videoActive ? true : false);\n const [validated, setValidation] = useState(false);\nconsole.log(searchActive)\n const displayHelper = (section) => {\n section = section.toLowerCase();\n\n if (section === \"search\") {\n return searchActive;\n }\n if (section === \"display\") {\n return displayActive;\n }\n if (section === \"video\") {\n return videoActive;\n }\n };\n useEffect(() => {\n if (!(searchActive || displayActive || videoActive) && showBoxes) {\n setValidation(false);\n }\n });\n const conversionActionBox = (section) => {\n const sectionKey = section.toLowerCase();\n\n const conversionActions = props.conversionActions[sectionKey] ? props.conversionActions[sectionKey] : [];\n\n const [rows, setRows] = useState(conversionActions);\n\n const addNewRow = () => {\n let newActions = { ...props.conversionActions };\n let newRow = {\n conversion_type: \"exclusive\",\n conversion_id: \"\",\n name: \"\",\n };\n newActions[sectionKey].push(newRow);\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n const removeRow = (index) => {\n let newActions = { ...props.conversionActions };\n newActions[sectionKey].splice(index, 1);\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n const changeRow = (index, name, value) => {\n let newActions = { ...props.conversionActions };\n newActions[sectionKey][index][name] = value;\n setRows([...newActions[sectionKey]]);\n props.setConversionActions({ ...newActions });\n };\n\n return (\n \n \n \n \n \n

    {section}

    \n \n
    \n
    \n {rows.map((conversionAction, idx) => {\n return (\n \n \n changeRow(idx, \"conversion_type\", e.target.value)}>\n \n \n \n \n \n changeRow(idx, \"name\", e.target.value)}\n />\n \n \n changeRow(idx, \"conversion_id\", e.target.value)}\n />\n \n \n removeRow(idx)} className=\"fas pb-1 fa-minus-circle\" style={{width: \"30px\"}}>\n \n \n );\n })}\n
    \n \n \n addNewRow()}>\n + Add\n \n \n \n \n \n );\n };\n\n return (\n <>\n \n \n
    \n

    Conversion Action ID Tracking

    \n
    \n
    \n

    Do you have any specific conversion action ID's to include or exclude for any PPC sub-services?

    \n
    \n \n
    \n\n \n \n
    \n \n

    \n Sometimes, clients have multiple conversion actions for their campaigns and we only need to focus on one. As a result, sometimes we need to\n specify which conversions to use for the \"conversions\" column in DataPulse. If you need to utilize a specific conversion action ID to track as\n the success metric for a sub-service, you may enter it in here.

    \n

    To get a Conversion Action ID, go to Google Ads and open the Tools & Settings menu from the top right of the navbar. In the\n Measurement column, select Conversions. Next, select the conversion action from the list that appears. Once you have selected a conversion\n action, check the final URL of the page and look for the 'ctId' parameter. This will be equal to the Conversion Action's ID`\n

    \n \"Conversion\n
    \n }\n inline={true}\n />{\" \"}\n What does this mean?\n \n
    \n {\n setShowBoxes(true);\n setValidation(true);\n }}\n />\n {\n setShowBoxes(false);\n setValidation(true);\n setDisplayActive(false)\n setSearchActive(false)\n setVideoActive(false)\n }}\n />\n
    \n \n
    \n
    \n \n \n

    For which sub-services?

    \n \n \n
    \n {sectionName.map((section, idx) => {\n section = section.toLowerCase();\n\n return (\n
    \n {section === \"search\" ? (\n {\n setValidation(true);\n setSearchActive(!searchActive);\n }}\n />\n ) : section === \"display\" ? (\n {\n setDisplayActive(!displayActive);\n setValidation(true);\n }}\n />\n ) : section === \"video\" ? (\n {\n setVideoActive(!videoActive);\n setValidation(true);\n }}\n />\n ) : undefined}\n
    \n );\n })}\n
    \n \n
    \n \n
    \n \n \n \n {sectionName2.map((section, idx) => {\n return (\n \n {conversionActionBox(section)}\n \n );\n })}\n \n \n \n
    \n \n \n
    \n \n \n \n
    \n \n
    \n \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Row, Col, Button, Form, OverlayTrigger, Popover } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport BackButton from \"./BackButton\";\nimport NextButton from \"./NextButton\";\nimport SkipButton from \"./SkipButton\";\nimport getNextPage from \"./getNextPage\";\nimport { RouterContext } from \"./Onboarding\";\n\nexport default function Website({\n pageLocator,\n primarySite,\n setPrimarySite,\n additionalWebs,\n handleOnChange,\n handleDelete,\n addRow,\n handleSelect,\n webPlatform,\n clientAccountId,\n submitForm,\n onboarding_progress,\n}) {\n pageLocator();\n const route = useContext(RouterContext);\n\n const nextPage = getNextPage(onboarding_progress);\n\n useEffect(() => {\n window.localStorage.setItem(\"routerHistory\", JSON.stringify([...route.get]));\n }, [route.get]);\n\n const [validated, setValidated] = useState(false);\n\n useEffect(() => {\n const form = document.getElementById(\"onboarding-form\");\n if (form.checkValidity() === true) {\n setValidated(true);\n } else {\n setValidated(false);\n }\n });\n\n const regex = \"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)\"\n\n // Need to complete pages in progress tracker that do not need to be set up\n const completePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/complete_pages\";\n let paramsObject = {\n client_account_id: clientAccountId,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Completed pages: \" + JSON.stringify(pages));\n },\n });\n };\n const incompletePages = (pages) => {\n const submitUrl = \"/datapulse/onboarding/incomplete_pages\";\n let paramsObject = {\n client_account_id: clientAccountId,\n pages: pages,\n };\n $.ajax({\n type: \"POST\",\n url: submitUrl,\n dataType: \"json\",\n async: true,\n contentType: \"application/json\",\n data: JSON.stringify(paramsObject),\n success: (data, success, xhr) => {\n console.log(\"Incompleted pages: \" + JSON.stringify(pages));\n },\n });\n };\n\n return (\n <>\n \n \n

    Website

    \n \n
    \n \n \n \n \n

    Website/Domain Details

    \n \n
    \n \n \n

    \n Navigate to your website in a browser, and copy and paste the URL directly from the address bar into the field below. To add\n additional websites or subdomains (ie. if your primary website is \"example.com\" and you need to add \"shop.example.com\"), click the 'Add\n subdomain' button to create a new field and follow the same process in the new field with every entry.\n

    \n \n
    \n \n \n \n \n \n \n

    Primary Website

    \n
    \n \n
    \n \n \n setPrimarySite(e.target.value)}\n type=\"url\"\n pattern=\"https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)\"\n required\n />\n \n \n \n
    \n \n \n

    Additional websites/subdomains

    \n
    \n\n {additionalWebs.map((website, index) => {\n return (\n \n handleOnChange(e, index)}\n />\n\n \n \n );\n })}\n\n \n \n \n
    \n \n
    \n \n \n

    Website platform

    \n \n
    \n \n \n

    What platform is being used?

    \n \n
    \n \n \n \n handleSelect(e.target.value)}\n defaultValue={webPlatform}\n required>\n \n \n \n \n \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n {\n // Some pages won't be necessary to fill out\n let pageNames = [\"shopify_access\", \"shopify_authenticate\"];\n if (webPlatform != \"0\") {\n completePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n }\n else {\n incompletePages(pageNames.map((page) => `/datapulse/onboarding/${page}`));\n }\n }}\n />\n \n \n \n \n \n );\n}\n","export default (onboarding_progress) => {\r\n let nextPage = {};\r\n if (onboarding_progress && onboarding_progress.length > 0) {\r\n const unresolvedPages = onboarding_progress.filter((page) => page.completed == false);\r\n const currentIndex = onboarding_progress.findIndex((page) => page.url == window.location.pathname);\r\n\r\n nextPage.url = \"/datapulse/onboarding/complete\";\r\n // Find next unresolved page starting from current index\r\n for (let i = currentIndex + 1; i < onboarding_progress.length; i++) {\r\n if (onboarding_progress[i].completed == false) {\r\n nextPage = onboarding_progress[i];\r\n // Break out of loop\r\n i = onboarding_progress.length;\r\n }\r\n }\r\n\r\n // Override last page if not actually complete\r\n if (nextPage.url == \"/datapulse/onboarding/complete\") {\r\n // Greater than 2 because counting current page & /datapulse/onboarding/complete is also a page\r\n if (unresolvedPages.length >= 2) {\r\n nextPage.url = \"/datapulse/onboarding/not_complete\";\r\n }\r\n }\r\n } else {\r\n // If onboarding_progress is nil or an empty array then this client hasn't even started onboarding yet and they requested the url directly. Next page should be intro\r\n nextPage.url = \"/datapulse/onboarding/company_type\";\r\n }\r\n return nextPage;\r\n};\r\n","import React from \"react\";\nimport {Row, Container, Col, Form, Button, Modal, Table } from \"react-bootstrap\";\n\n\nexport default function DeleteOrgModal(props) {\n return (\n props.setShowDeleteModal(false)} style={{ textAlign: \"center\" }}>\n
    \n \n {\" \"}\n \n \n

    Are you sure you want to delete?

    \n \n
    \n
    \n \n \n \n

    \n WARNING!\n

    \n

    \n Be absolutely sure that this is what you are intending to do. If you delete this organization, every client company within this org will be deleted as well. There is no way to restore this data once it is deleted.\n

    \n \n
    \n \n \n
    \n \n \n

    \n If you are absolutely sure you want to proceed, type '{ props.deleteTarget.name }' below and click delete.\n

    \n \n
    \n \n \n {\n props.setDeleteLocked(e.target.value != props.deleteTarget.name)\n }} \n />\n \n \n \n \n props.setShowDeleteModal(false)}\n >\n Cancel\n \n props.deleteOrg(props.deleteTarget)}\n >\n Delete { props.deleteTarget.name }\n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n )\n}","import React, { useState, useEffect, useRef } from \"react\";\nimport {Row, Container, Col, Form, Button, Modal, Table } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport DeleteOrgModal from \"./DeleteOrgModal\";\n\n\nexport default function OrgStatus(props) {\n const createNewOrgUrl = \"/datapulse/org-management/new-org\"\n const [showCreateModal, setShowCreateModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [deleteTarget, setDeleteTarget] = useState({});\n const [deleteLocked, setDeleteLocked] = useState(true);\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n const confirmDelete = (org) => {\n setDeleteTarget(org)\n setShowCreateModal(false)\n setShowDeleteModal(true)\n }\n\n const deleteOrg = (org) => {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/org-management/remove-org/\" + org.id,\n });\n }\n\n return (\n <>\n

    Organization Management

    \n \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n {props.orgs.map((org) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    NameCreation Date
    {org.name}{new Date(Date.parse(org.created_at)).toLocaleDateString()}\n \n View\n \n \n
    \n
    \n
    \n
    \n setShowCreateModal(false)} style={{ textAlign: \"center\" }}>\n
    \n \n {\" \"}\n \n \n

    What is the name of the organization?

    \n \n
    \n
    \n \n \n \n

    \n This is how your name will be displayed in DataPulse.\n

    \n \n
    \n \n \n
    \n \n \n \n \n \n Next\n \n \n \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n );\n}\n\n","import React, { useState, useEffect } from \"react\";\nimport {Row, Container, Col, Form } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\n\n\n\nexport default function Customizations(props) {\n\n return (\n \n \n \n \n

    CUSTOMIZATIONS PAGE

    \n \n
    \n
    \n
    \n );\n}\n\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {Row, Container, Col, Form, Button, Modal } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport CustomTooltip from \"utils/CustomTooltip\";\nimport SaveChanges from \"./SaveChanges\";\nimport DeleteOrgModal from \"organization_management/DeleteOrgModal\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function OrgInfo(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const formSubmitUrl = `/datapulse/organization`;\n let defaultLogo = require(\"images/organizations/orgLogo.png\");\n const [fileName, setFileName] = useState(\"No File Chosen\");\n const inputRef = useRef();\n const [imageURL, setImageURL] = useState(props.logo ? props.logo : `/datapulse${defaultLogo}`);\n let OrgLogo = ;\n let upload = require(\"images/organizations/upload.png\");\n upload = ;\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [deleteTarget, setDeleteTarget] = useState({});\n const [deleteLocked, setDeleteLocked] = useState(true);\n const [zIndexFirst, setZIndexFirst] = useState (2500)\n const [show, setShow] = useState(false);\n const [show2, setShow2] = useState(false);\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const [toggledUsers, setToggledUsers] = useState([]);\n const [selectedUsers, setSelectedUsers] = useState(Object.entries(props.org_users).length > 0 ? Object.entries(props.org_users).map((el) => el[1]).filter(item => item.id === props.owner.id)[0].email: [])\n const unSelectedUsers = Object.entries(props.org_users).map((el) => el[1]).filter(item => item.role === \"admin\").map((user) => user.email)\n const [visibleUsers, setVisibleUsers] = useState([...unSelectedUsers]);\n const [newOwnerId, setNewOwnerId] = useState()\n\n let caution = require(\"images/icons/exclaim-triangle.png\");\n caution = \n \n\n const handleShow2 = () => {\n setShow2(true);\n setZIndexFirst(1000)\n }\n\n const handleClose2 = () => {\n setShow2(false)\n setZIndexFirst(3001)\n }\n\n // Update the list of users you can select from to be only unselected ones\n useEffect(() => {\n setVisibleUsers(Object.entries(props.org_users).map((el) => el[1]).filter(item => item.role === \"admin\" && item.id !== props.owner.id).map((user) => user.email));\n }, [selectedUsers]);\n \n // Update who the new owner should be whenever a new selection is toggled\n useEffect(() => {\n const capturedId = Object.entries(props.org_users).map((el) => el[1]).filter(item => item.email === toggledUsers[0]).map((user) => user.id)[0]\n setNewOwnerId(capturedId)\n }, [toggledUsers]);\n \n const toggleUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...toggledUsers];\n if (selection.includes(userEmail)) {\n selection.splice(selection.indexOf(userEmail), 1);\n } \n else {\n selection.pop()\n selection.push(userEmail);\n }\n setToggledUsers(selection);\n };\n \n const selectUsers = () => {\n props.setServiceAccount && props.setServiceAccount([...selectedUsers, ...toggledUsers]);\n setSelectedUsers([...selectedUsers, ...toggledUsers]);\n setToggledUsers([]);\n handleClose();\n };\n \n const handleCancel = () => {\n setToggledUsers([]);\n handleClose();\n };\n \n const searchUsers = (e) => {\n let filter = e.target.value.toLowerCase();\n let matchedUsers = [];\n unSelectedUsers.forEach((userEmail) => {\n let user = props.org_users[userEmail];\n // If the user is not subscribed already && their name or email matches input\n if (!selectedUsers.includes(userEmail) && (user.name.toLowerCase().includes(filter) || userEmail.toLowerCase().includes(filter))) {\n matchedUsers.push(userEmail);\n }\n });\n setVisibleUsers(matchedUsers);\n };\n \n const toggledUsersList = toggledUsers.map((userEmail) => {\n let user = props.org_users[userEmail];\n return (\n toggleUser(e)}>\n {user.name}\n \n \n );\n });\n\n \n\n const confirmDelete = (org) => {\n setDeleteTarget(org)\n setShowDeleteModal(true)\n }\n\n const deleteOrg = (org) => {\n props.handleOrgDelete()\n }\n\n\n return (\n <>\n
    \n \n \n \n {/* */}\n \n \n \n

    Organization Information

    \n \n
    \n \n \n
    \n

    Organization Logo

    \n
    \n
    \n {OrgLogo}\n
    \n

    inputRef.current.click()} className=\"plus-sign\">+

    \n
    \n
    \n
    \n {\n if (e.target.files[0].size > 8000000) {\n alert(\"Image must be less than 8MB. Consider use another image or compress this one.\");\n }\n setImageURL(URL.createObjectURL(e.target.files[0]));\n setFileName(e.target.files[0].name);\n }}\n />\n \n
    \n
    \n
    {fileName}
    \n
    \n
    \n

    \n Accepted file types: JPG, PNG, SVG \n
    \n Minimum file dimensions: 100x100px\n
    \n Ideal ratio 1:1\n
    \n Maximum file size: 8 MB\n

    \n
    \n \n \n

    Basic Info

    \n \n \n
    \n Organization Name\n
    \n \n
    \n \n \n \n \n \n \n \n
    \n Location\n
    \n \n
    \n \n \n \n \n \n \n \n
    \n Type{\" \"}\n
    \n \n \n \n \n \n \n
    \n {props.isOwner &&\n
    \n \n \n

    Owner Actions:

    \n \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n }\n \n \n

    Description

    \n \n \n \n \n \n \n
    \n \n
    \n \n Select new organization owner\n \n \n \n \n
    \n \n searchUsers(e)} placeholder=\"Enter a name or email address...\" />\n
    \n \n
    \n \n \n
      \n {visibleUsers.map((userEmail) => {\n let user = props.org_users[userEmail];\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n let toggled = toggledUsers.includes(userEmail) ? \"toggled\" : undefined;\n return (\n \n
    • toggleUser(e)} data-email={userEmail} className={toggled}>\n
      \n
      \n
      \n {avatar}\n
      \n \n
      \n
      \n  {user.name}\n  {userEmail}\n
      \n
      \n
    • \n
      \n );\n })}\n
    \n \n
    \n
    \n \n
    \n

    \n Transfer ownership to:\n

    \n {toggledUsersList}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n {caution}{\" \"}ARE YOU SURE?\n \n
    \n \n \n \n

    By relinquishing ownership you will lose access to ownership features

    \n \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n {/*
    */}\n \n \n \n );\n}\n\n","import React, { useState } from \"react\";\nimport { Row, Col, Form, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\nimport OrgPickerModal from \"organizations/OrgPickerModal\"\n\nexport default function OrgPicker(props) {\n let orgPic = ;\n let dpLogo = require(\"images/logos/dp-logo-white.png\");\n dpLogo = ;\n const [show, setShow] = useState(false);\n const handleShow = () => setShow(true);\n const isClickable = (props.organizations && (props.organizations.length > 1)) || props.god_or_admin\n let orgName = props.selected_org.name\n if (orgName.length > 20) {\n orgName = orgName.slice(0,20) + \"...\"\n }\n\n return (\n \n {(props.organizations && props.organizations.length > 0) && (\n \n )}\n \n
    \n \n \n \n {props.logo ? orgPic : dpLogo} {orgName}\n \n {isClickable ?\n \n\n\n \n\n \n : <>\n }\n \n \n {isClickable ?\n
    \n {props.organizations.length > 1 &&\n

    \n Change Organization\n

    \n }\n {\n props.god_or_admin &&\n\n \n Organization Settings\n \n }\n
    \n : <>\n }\n
    \n \n
    \n );\n}\n","import React, { useState } from \"react\";\nimport { Row, Col, Modal, Form, Button } from \"react-bootstrap\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function OrgPickerModal(props) {\n const [selfShow, setSelfShow] = useState(true)\n const changeOrg = () => {\n const selectedOrgId = $(\"#org-picker\").val();\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/organization/select-organization/\",\n data: {\n org_id: selectedOrgId,\n },\n });\n };\n\n return (\n {} : () => props.setShow(false)}>\n \n Change Organization\n \n \n \n \n

    Select organization to view:

    \n \n \n {props.organizations.map((org) => {\n return (\n \n \n \n );\n })}\n \n \n
    \n \n {props.force_selection != true && (\n \n \n \n )}\n \n {\n if (props.force_selection) {\n setSelfShow(false)\n } else {\n props.setShow(false)\n }\n changeOrg();\n }}\n variant=\"success\">\n Change Organization\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav, Container, Form } from \"react-bootstrap\";\nimport SaveChanges from \"./SaveChanges\";\nimport updateParams from \"utils/updateParams.js\";\nimport Users from \"./Users\"\nimport Customizations from \"./Customizations\"\nimport OrgInfo from \"./OrgInfo\"\n\nexport default function Organizations(props) {\n const [tabLocation, setTabLocation] = useState(\"orgInfo\");\n const [isOwner, setIsOwner] = useState((props.current_user.id === props.owner.id) || props.current_user_is_god)\n\n const servicePicker = (searchParams) => {\n if (searchParams.toString().includes(\"customizations\")) {\n return \"customizations\"\n }\n if (searchParams.toString().includes(\"users\")) {\n return \"users\"\n }\n }\n\n const handleOwnershipTransfer = (user_id) => {\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/transfer-ownership/\",\n\t\t\tdata: {\n\t\t\t\torg_id: props.org.id,\n user_id: user_id\n\t\t\t},\n\t\t});\n }\n\n const handleOrgDelete = () => {\n // Nothing on this url yet, just psuedocode\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/delete/\",\n\t\t\tdata: {\n\t\t\t\torg_id: props.org.id\n\t\t\t},\n\t\t});\n }\n \n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"orgInfo\";\n }\n if (page === \"customizations\") {\n setTabLocation(page);\n updateParams(\"page\", page);\n updateParams(\"sub_page\", servicePicker(searchParams));\n }\n else {\n setTabLocation(page);\n updateParams(\"page\", page);\n }\n }, []);\n\n const selectTab = (key) => {\n if (key === \"services\") {\n setTabLocation(key);\n updateParams(\"page\", key);\n updateParams(\"sub_page\", servicePicker(searchParams));\n }\n else {\n\n setTabLocation(key);\n updateParams(\"page\", key);\n }\n };\n\n return (\n
    \n \n selectTab(k)}>\n {/* */}\n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n {/* */}\n
    \n );\n}\n","import React, { useRef, useState, useEffect } from \"react\";\nimport { Button, Col, Row } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\n\n\n\nexport default function SaveChanges(props) {\n return (\n \n \n \n \n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport {Row, Container, Col, Form, Table, Button } from \"react-bootstrap\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport SaveChanges from \"./SaveChanges\";\n\n\n\nexport default function Users(props) {\nconst authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [filteredInput, setFilteredInput] = useState(\"\")\n const departments = [\"no_department\", \"seo_department\", \"ppc_department\", \"both_departments\", \"dev_department\"]\n const roles = [\"nobody\", \"client\", \"employee\", \"specialist\", \"manager\", \"admin\"]\n const formSubmitUrl = `/datapulse/organization/${props.org.id}/user-detail`;\n\n\n return (\n
    \n \n \n \n \n \n \n

    User Management

    \n \n
    \n \n \n
    \n Filter:\n setFilteredInput(e.target.value) } value={filteredInput} />\n
    \n \n
    \n \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n { props.isOwner && }\n \n \n \n {\n Object.entries(props.org_users).map((el) => el[1]).sort((a,b) => a.id -b.id).map((user, idx) => {\n const tempName = user.name.toLowerCase()\n const tempEmail = user.email.toLowerCase()\n console.log(user.role)\n const tempRole = user.role && user.role !== \"owner\" ? user.role.toLowerCase().replace(\"_\", \" \") : user.role ? user.role : \"none\"\n const tempDepartment = !user.department ? \"no_department\" : user.department.toLowerCase().replace(\"_\", \" \")\n if (tempName.includes(filteredInput.toLowerCase()) || tempEmail.includes(filteredInput.toLowerCase()) || tempDepartment.includes(filteredInput.toLowerCase()) || tempRole.includes(filteredInput.toLowerCase()) || filteredInput === \"\")\n return (\n \n \n \n \n \n \n \n { props.isOwner && }\n \n )})\n } \n \n
    ID #NameEmailRoleDepartment
    {user.id}{user.name}{user.email}\n {\n user.role === \"owner\" ?\n <>\n

    Owner

    \n \n\n \n :\n\n \n {\n roles.map((el) => {\n //This is formatting items such as DP_Employee and Client_Employee to remove underscores and mention of DP\n let tempRole = el.replace(\"dp_\", \"\").replace(\"_\", \" \")\n let tempRoleFormatted = []\n for (let i = 0; i < tempRole.length; i++) {\n if (i === 0) {\n tempRoleFormatted.push(tempRole[i].toUpperCase())\n }\n else if (tempRole[i - 1] === \" \") {\n tempRoleFormatted.push(tempRole[i].toUpperCase())\n }\n else {\n tempRoleFormatted.push(tempRole[i])\n }\n }\n return (\n \n )\n })} \n \n }\n
    \n \n \n { \n departments.map((el) => {\n let tempDepartment = el.replace(\"_\", \" \")\n let tempDepartmentFormatted = []\n for (let i = 0; i < tempDepartment.length; i++) {\n if (i === 0) {\n tempDepartmentFormatted.push(tempDepartment[i].toUpperCase())\n }\n else if (tempDepartment[i - 1] === \" \") {\n tempDepartmentFormatted.push(tempDepartment[i].toUpperCase())\n }\n else {\n tempDepartmentFormatted.push(tempDepartment[i])\n }\n }\n return (\n \n )\n })\n }\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n );\n}\n","import React from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport MonthlyPpcSection from \"./MonthlyPpcSection\";\n\nfunction MonthlyPpcReport(props) {\n const page = props.page;\n const dashboard = props.dashboard;\n if (page) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"]\n .map((metric) => metric)\n .filter((value, index, self) => self.findIndex((el) => el.section == value.section && el.service == value.service) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section, index) => {\n sections.push({\n name: section.section,\n service: section.service,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section.section && m[\"service\"] == section.service)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n return (\n \n {sections.map((section, index) => {\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n } else {\n return (\n <>\n )\n }\n}\nexport default MonthlyPpcReport;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\nconst allMetricData = allMetrics();\nexport default function MonthlyPpcSection(props) {\n const section = props.section;\n let cc_data = props[`${props.section.service}_section`].cc_data;\n const baseCurrency = jsDig([`${props.section.service}_section`, 'base_currency'], props)\n const displayCurrency = jsDig([`${props.section.service}_section`, 'display_currency'], props)\n const dashboard = props.dashboard;\n const metricData = allMetricData[\"metricData\"];\n const goalChartDim = \"120x120\";\n const lineChartDim = \"350x250\";\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const tablesPerRow = 1;\n\n let date = props.date ? moment(props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = props[`${props.section.service}_section`].goals;\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n KPI's vs Goals{\" \"}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n \n
    \n {section.service == \"ppc\" ? \"All PPC\" : section.service == \"seo\" ? \"SEO\" : capitalize(section.service)}\n
    \n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n let Formatter = GetFormatter({ metricName: metricKey });\n\n return (\n \n {jsDig([dashboard, metricKey, \"raw\"], cc_data) != null && section.metrics_data[metricName] == \"1\" ? (\n \n ) : (\n

    \n {metricKey} was not found in cc_data\n

    \n )}\n \n );\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n PPC Performance: {props.section.service == \"ppc\" ? \"All PPC\" : capitalize(props.section.service)}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n {props.sectionIndex == 1 && props.section.service == \"ppc\" &&

    PPC Performance: All PPC

    }\n

    Primary KPI's (charts)

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n PPC Performance: {props.section.service == \"ppc\" ? \"All PPC\" : capitalize(props.section.service)}\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (tables)

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n}\n","import React from \"react\";\nimport jsDig from \"utils/jsDig\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nexport default function MonthlyReportIntro(props) {\n const datapulseLogo = require(\"images/logos/datapulse-logo-blue.png\");\n const ppcEnabled = jsDig([\"search_section\", \"enabled\"], props) || jsDig([\"social_section\", \"enabled\"], props) || jsDig([\"display_section\", \"enabled\"], props) || jsDig([\"video_section\", \"enabled\"], props)\n const seoEnabled = jsDig([\"seo_section\", \"enabled\"], props)\n\n return (\n \n

    \n \n

    \n

    {props.client_name}

    \n
    Performance Snapshot for
    \n

    {props.date_formatted}

    \n
    \n

    In this reivew, we'll walk through {props.date_formatted}'s performance in regard to:

    \n {ppcEnabled && (\n <>\n
    PPC Performance
    \n
      \n
    • KPI's vs. Goals
    • \n
    • Overview of all PPC performance
    • \n
    • Overview of PPC sub-services
    • \n
    \n \n )}\n {seoEnabled && (\n <>\n
    SEO Performance
    \n
      \n
    • Overview of all SEO performance
    • \n
    \n \n )}\n
    \n
    \n );\n}\n","import React from \"react\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nexport default function MonthlyReportOutro(props) {\n return (\n \n
    \n

    Any questions about your monthly report? Ask your account leads.

    \n

    More detailed data can be found by logging into DataPulse

    \n
      \n
    • Campaign groups
    • \n
    • Spend allocation
    • \n
    • & more!
    • \n
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport MonthlyPpcReport from \"./MonthlyPpcReport\";\nimport MonthlySeoReport from \"./MonthlySeoReport\";\nimport MonthlyReportIntro from \"./MonthlyReportIntro\";\nimport MonthlyReportOutro from \"./MonthlyReportOutro\";\n\nconst allMetricData = allMetrics();\n\nexport default function MonthlyReportPdf(props) {\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const kpiBlocksPerRow = 4;\n const metricsPerTable = 4;\n const goalRowHeight = 119;\n const chartRowHeight = 300;\n const tableRowHeight = 315;\n const kpiBlockRowHeight = 200;\n const keywordRankingRowHeight = 25;\n const checkPpcSections = (name) => {\n return props.ppc_section[name] || props.search_section[name] || props.social_section[name] || props.display_section[name] || props.video_section[name];\n };\n const dashboard = props.dashboard;\n const seo_cc_data = props.seo_section.cc_data;\n const allServices = [\"ppc\", \"search\", \"social\", \"display\", \"video\", \"seo\"];\n let dashboardOrders = [];\n allServices.forEach((service) => {\n const defaultMetrics = jsDig([\"metricsByDashboard\", service, \"defaults\", props.client_type], allMetricData);\n if (jsDig([`${service}_section`, \"dashboard_order\", dashboard], props) && jsDig([`${service}_section`, \"dashboard_order\", dashboard], props).length > 0) {\n dashboardOrders.push(\n cloneDeep(jsDig([`${service}_section`, \"dashboard_order\", dashboard], props)).map((obj) => {\n obj[\"service\"] = service;\n return obj;\n })\n )\n } else {\n const sectionList = jsDig([\"metricsByDashboard\", service, \"sections\"], allMetricData);\n dashboardOrders.push(\n Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n service: service,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n })\n );\n }\n });\n\n // Rearrange goal sections and put them all on the first dashboardOrder\n let goalsAndProjections = [];\n dashboardOrders.forEach((dbOrd, index) => {\n dbOrd.forEach((section, sectionIndex) => {\n if (section.name == \"goalsAndProjections\") {\n goalsAndProjections.push(section)\n dashboardOrders[index].splice(sectionIndex, 1)\n }\n })\n });\n dashboardOrders.unshift(goalsAndProjections)\n \n // Removing irrelevant sections\n dashboardOrders = dashboardOrders.map((dashboardOrder) => {\n return (dashboardOrder.filter((item) => {\n return (\n (item.name !== \"allKpisVsPreviousYear\") &&\n (item.name !== \"performanceByChannel\") &&\n (item.name !== \"campaignGroups\") &&\n (item.name !== \"spendAllocation\") &&\n (item.name !== \"keywordGroups\") &&\n (item.name !== \"keywordSummary\") &&\n (item.name !== \"landingPageBreakdown\")\n )\n }))\n });\n \n // Separate ppc & seo dashboard orders for processing\n let seoDashboardOrder = dashboardOrders[dashboardOrders.length - 1];\n dashboardOrders.pop();\n\n // Removing irrelevant sections\n seoDashboardOrder = seoDashboardOrder.filter((item) => {\n return ((item.name !== \"allKpisVsPreviousYear\") && (item.name !== \"keywordGroups\") && (item.name !== \"keywordSummary\") && (item.name !== \"goalsAndProjections\") && (item.name !== \"landingPageBreakdown\"))\n });\n \n // PDFs can't be processed section props.keyword_sort section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let seoPages = [];\n let ppcPages = [];\n let keepingTrack = [];\n let currentPage = 0;\n\n // Process PPC dashboard order\n dashboardOrders.forEach((dashboardOrder) => {\n for (const [index, section] of dashboardOrder.entries()) {\n console.log(section, \"section\")\n if (jsDig([`${section.service}_section`, \"enabled\"], props) || (section.service == \"ppc\" && checkPpcSections(\"enabled\"))) {\n if (section.enabled) {\n if (section.metrics_data) {\n keepingTrack.push(section);\n if (\n section.name != \"goalsAndProjections\" &&\n jsDig([keepingTrack.length - 2, \"name\"], keepingTrack) != \"goalsAndProjections\" &&\n keepingTrack.length > 1 &&\n jsDig([keepingTrack.length - 2, \"service\"], keepingTrack) != jsDig([keepingTrack.length - 1, \"service\"], keepingTrack)\n ) {\n console.log(\"Service has changed\")\n //initialize new page\n currentPage += 1;\n if (!ppcPages[currentPage]) {\n console.log(\"Initialized new page\");\n ppcPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = goalsPerRow;\n elementHeight = goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = chartsPerRow;\n elementHeight = chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = metricsPerTable;\n elementHeight = tableRowHeight;\n } else {\n return section.name;\n }\n\n // Create pages array\n let metricNames = Object.keys(section.metrics_data ? section.metrics_data : {});\n metricNames.forEach((metricName, metricIndex) => {\n if (!ppcPages[currentPage]) {\n ppcPages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n ppcPages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0) {\n let maxPageHeight = 971;\n if (\n (elementHeight + ppcPages[currentPage][\"pageHeight\"] > maxPageHeight) || \n (section.name !== \"goalsAndProjections\" && jsDig([keepingTrack.length - 2, \"name\"], keepingTrack) == \"goalsAndProjections\")\n ) {\n //initialize new page\n currentPage += 1;\n if (!ppcPages[currentPage]) {\n console.log(\"Initialized new page\");\n ppcPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n ppcPages[currentPage][\"pageHeight\"] += elementHeight;\n }\n ppcPages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n service: section.service,\n });\n console.log(metricName, \"metric\", cloneDeep(ppcPages))\n });\n }\n }\n }\n }\n });\n\n // Process SEO dashboard order\n currentPage = 0;\n for (const [index, section] of seoDashboardOrder.entries()) {\n console.log(section, \"section\")\n if (jsDig([\"seo_section\", \"enabled\"], props)) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = chartsPerRow;\n elementHeight = chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = metricsPerTable;\n elementHeight = tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = kpiBlocksPerRow;\n elementHeight = kpiBlockRowHeight;\n } else if (section.name == \"backlinks\") {\n elementsPerRow = kpiBlocksPerRow;\n elementHeight = kpiBlockRowHeight;\n } else if (section.name == \"keywordRankings\") {\n elementsPerRow = 1;\n elementHeight = keywordRankingRowHeight;\n } else {\n return section.name;\n }\n\n if (section.name == \"keywordRankings\") {\n metricNames = jsDig([dashboard, \"keyword_rankings\"], seo_cc_data).map((ranking) => ranking[\"keyword\"]);\n }\n\n metricNames.forEach((metricName, metricIndex) => {\n if (!seoPages[currentPage]) {\n seoPages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n seoPages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0) {\n let maxPageHeight = 971;\n if (elementHeight + seoPages[currentPage][\"pageHeight\"] > maxPageHeight) {\n currentPage += 1;\n if (!seoPages[currentPage]) {\n console.log(\"Initialized new page\");\n seoPages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n if (section.name == \"keywordRankings\") {\n //for table head\n seoPages[currentPage][\"pageHeight\"] += 25;\n }\n }\n\n seoPages[currentPage][\"pageHeight\"] += elementHeight;\n }\n seoPages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n console.log(metricName, \"metric\")\n });\n }\n }\n }\n }\n\n // Separate goals page from ppc pages\n let goalPage = ppcPages.length > 0 ? [ppcPages.shift()] : []\n\n console.log(seoPages, \"seoPages\")\n console.log(ppcPages, \"ppcPages\")\n console.log(goalPage, \"goalPage\")\n\n // Pages start at 1 to account for intro page\n let pageNumber = 1;\n return (\n <>\n \n {goalPage.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n }\n\n {checkPpcSections(\"enabled\") && jsDig([dashboard, \"date\"], props.ppc_section.cc_data) && (\n ppcPages.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n )}\n\n {props.seo_section.enabled && jsDig([dashboard, \"date\"], seo_cc_data) && (\n seoPages.map((page, index) => {\n pageNumber += 1;\n return (\n
    \n \n
    \n );\n })\n )}\n \n \n );\n}\n","import React from \"react\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport MonthlySeoSection from \"./MonthlySeoSection\";\n\nexport default function MonthlySeoReport(props) {\n const page = props.page;\n const seo_cc_data = props.seo_cc_data;\n const dashboard = props.dashboard;\n\n if (page) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n return (\n \n {sections.map((section, index) => {\n return (\n
    \n \n
    \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n } else {\n return (\n <>\n )\n }\n}\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport PdfKPIMetricBlock from \"dashboards/PdfKPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport PdfKeywordTable from \"dashboards/PdfKeywordTable\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\nconst allMetricData = allMetrics();\n\nexport default function MonthlySeoSection(props) {\n const goalChartDim = \"135x135\";\n const lineChartDim = \"350x250\";\n const goalsPerRow = 5;\n const chartsPerRow = 2;\n const tablesPerRow = 1;\n const section = props.section;\n const cc_data = props.cc_data;\n const dashboard = props.dashboard;\n const metricData = allMetricData[\"metricData\"];\n let date = props.date ? moment(props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n function categorize(string) {\n if (string.includes(\"landingPageGroups\")) {\n landingPageCase = string;\n }\n if (string.includes(\"keywordGroups\")) {\n keywordCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"seo\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let seoGoals = props.seo_section.goals;\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], seoGoals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (charts)

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Primary KPI's (tables)

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"backlinks\":\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Backlinks

    \n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"keywordRankings\":\n let sortedKeywords = jsDig([dashboard, \"keyword_rankings\"], cc_data);\n switch (props.keyword_sort) {\n case \"keyword\":\n sortedKeywords.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n break;\n case \"prevpos\":\n sortedKeywords.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n break;\n case \"currentpos\":\n sortedKeywords.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n break;\n case \"diff\":\n sortedKeywords.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n break;\n case \"cpc\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n break;\n case \"volume\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n break;\n case \"difficulty\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n break;\n }\n if (!props.seo_section.keyword_sort_order_asc) {\n sortedKeywords.reverse();\n }\n return (\n <>\n {props.sectionIndex == 0 && (\n
    \n

    \n SEO Performance\n

    \n
      \n
    • {props.client_name}
    • \n
    • {props.date_formatted}
    • \n
    \n
    \n )}\n

    Keyword Listings

    \n el.name == \"keywordRankings\")}\n keyword_sort_order_asc={props.seo_section.keyword_sort_order_asc}\n keyword_sort={props.seo_section.keyword_sort}\n pdf={true}\n />\n \n );\n default:\n return

    {section.name} is not a valid section name for this dashboard

    ;\n }\n }\n}\n","import React from \"react\";\n\nclass PDFPage extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n componentDidMount() {}\n\n render() {\n const logo = require(\"images/logos/dp-logo-small.png\");\n return (\n
    \n
    {this.props.children}
    \n
    \n {/* {this.props.hideLogo ? (\n \n ) : (\n <>\n \n \n )} */}\n\n

    {this.props.pageNumber}

    \n
    \n
    \n );\n }\n}\n\nexport default PDFPage;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfDisplay extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Display Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"display\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"display\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfDisplay;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { cloneDeep, capitalize, camelCase } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"../utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfOverall extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"performanceByChannel\":\n const channels = renderArray.map((channel) => {\n if (section.metrics_data[`${channel}`] == \"1\") return channel;\n });\n\n return (\n
    \n

    Performance By Channels

    \n {[\"search\", \"social\", \"display\", \"video\"].map((channel, index) => {\n let metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"total_conversions\", \"total_roas\"]\n : [\"spend\", \"clicks\", \"total_conversions\", \"cpa\"];\n if (channel == \"search\") {\n metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"click_conversions\", \"click_roas\"]\n : [\"spend\", \"clicks\", \"click_conversions\", \"cpa\"];\n }\n\n if (channels.includes(channel)) {\n let tempMetricNames = [];\n return (\n
    \n \n

    {capitalize(channel)}

    \n {metricNames.map((metricName, index) => {\n if (metricName) {\n if (jsDig([`${channel}_section`, \"cc_data\", 0, \"metrics_2_years\", metricName], this.props) == null) {\n console.log(`${metricName} was not found.`);\n return <>;\n }\n } else {\n return

    {metricName} not defined in metricData.json

    ;\n }\n\n tempMetricNames.push(metricName);\n })}\n\n \n \n \n
    \n
    \n );\n }\n })}\n
    \n );\n case campaignGroupCase:\n const sections = renderArray.map((channel) => {\n if (section.metrics_data[`${channel}`] == \"1\") return channel;\n });\n\n return (\n <>\n

    Campaign Groups

    \n {[\"search\", \"social\", \"display\", \"video\"].map((channel, index) => {\n const channelName = `${channel}_section`;\n const groupOrder = this.props[channelName].campaign_group_order ? this.props[channelName].campaign_group_order : [];\n\n return (\n
    \n {groupOrder.map((group_id, index) => {\n let metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"total_conversions\", \"total_roas\"]\n : [\"spend\", \"clicks\", \"total_conversions\", \"cpa\"];\n if (channel == \"search\") {\n metricNames =\n this.props.client_type == \"ecommerce\"\n ? [\"spend\", \"clicks\", \"click_conversions\", \"click_roas\"]\n : [\"spend\", \"clicks\", \"click_conversions\", \"cpa\"];\n }\n const campaignGroup = this.props[channelName].campaign_groups.find(\n (group) => group.id == group_id && sections.includes(camelCase(group.name))\n );\n\n if (campaignGroup) {\n let tempMetricNames = [];\n return (\n
    \n \n

    {campaignGroup.name}

    \n {metricNames.map((metricName, index) => {\n if (metricName) {\n if (jsDig([group_id, \"metrics_2_years\", metricName], this.props[channelName].cc_data) == null) {\n console.log(`${metricName} was not found in metrics_2_years in cc_data for campaign group ${group_id}`);\n return <>;\n }\n } else {\n return

    {metricName} not defined in metricData.json

    ;\n }\n\n tempMetricNames.push(metricName);\n })}\n\n {[...Array(Math.ceil(metricNames.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n
    \n );\n }\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} PPC Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return <>{this.generatePdfSection(section, cc_data, dashboard)};\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = this.props.dashboard;\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"ppc\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"ppc\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? jsDig([dashboard], this.props.dashboard_order)\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"performanceByChannel\") {\n elementsPerRow = 1;\n elementHeight = this.groupTableRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = 1;\n elementHeight = this.groupTableRowHeight;\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n let metricNames = Object.keys(section.metrics_data);\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n\n if (metricIndex % elementsPerRow == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.search_section.enabled || this.props.social_section.enabled || this.props.display_section.enabled || this.props.video_section.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return ;\n }\n }\n}\n\nexport default PPCPdfOverall;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfSearch extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Search Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"search\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"search\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n console.log(\"Pages:\");\n console.log(pages);\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfSearch;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfSocial extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Social Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"social\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"social\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfSocial;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummaryDisplay extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.display_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.display_metrics);\n const firstKey = clients[0];\n const displayMetrics = Object.keys(this.props.display_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n displayMetrics.map((metricName) => {\n let mValue = this.props.display_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Display

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryDisplay;\n","import React from \"react\";\nimport Table from \"react-bootstrap/Table\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport PDFPage from \"pdfs/PDFPage\";\n\nclass PPCPdfSummaryOverall extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.search_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.search_metrics);\n const firstKey = clients[0];\n const searchMetrics = Object.keys(this.props.search_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n searchMetrics.map((metricName) => {\n let mValue = this.props.search_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Search

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryOverall;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummarySearch extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.search_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.search_metrics);\n const firstKey = clients[0];\n const searchMetrics = Object.keys(this.props.search_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n searchMetrics.map((metricName) => {\n let mValue = this.props.search_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Search

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummarySearch;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummarySocial extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.social_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.social_metrics);\n const firstKey = clients[0];\n const socialMetrics = Object.keys(this.props.social_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n socialMetrics.map((metricName) => {\n let mValue = this.props.social_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Social

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummarySocial;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass PPCPdfSummaryVideo extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {};\n }\n\n getPageNumber(current) {\n return current + 1;\n }\n\n render() {\n let metrics = this.props.video_metrics;\n let pageNumber = 0;\n let clientsPerPage = 35;\n\n const clients = Object.keys(this.props.video_metrics);\n const firstKey = clients[0];\n const videoMetrics = Object.keys(this.props.video_metrics[firstKey]).filter((el) => !el.includes(\"yy\"));\n\n let totals = {};\n\n clients.map((client) => {\n videoMetrics.map((metricName) => {\n let mValue = this.props.video_metrics[client][metricName];\n totals[metricName] ? (totals[metricName] += mValue) : (totals[metricName] = mValue);\n });\n });\n\n totals[\"rev_or_conv_yy\"] = ((totals[\"rev_or_conv\"] - totals[\"rev_or_conv_ly\"]) / totals[\"rev_or_conv_ly\"]) * 100;\n totals[\"rev_or_conv_lm_yy\"] = ((totals[\"rev_or_conv_lm\"] - totals[\"rev_or_conv_lmly\"]) / totals[\"rev_or_conv_lmly\"]) * 100;\n\n return (\n
    \n {[...Array(Math.ceil(this.props.client_list.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    PPC Summary Video

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n {this.props.metric_list.map((metric) => {\n return ;\n })}\n \n \n \n {this.props.client_list.splice(0, 35).map((client) => {\n return (\n \n \n {this.props.metric_list.map((metric) => {\n let value = metrics[client.client_name][metric.programmatic_name];\n let className = \"\";\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.Revenue : MetricFormatter.Conversions;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = client.account_type == \"ecommerce\" ? MetricFormatter.ROAS : MetricFormatter.CPA;\n className =\n client.account_type == \"ecommerce\" ? (value > 0 ? \"bg-success\" : \"bg-danger\") : value > 0 ? \"bg-danger\" : \"bg-success\";\n }\n\n if (metric.programmatic_name.includes(\"yy\")) {\n Formatter = MetricFormatter.YY;\n className = value > 0 ? \"bg-success\" : \"bg-danger\";\n }\n\n return (\n \n );\n })}\n \n );\n })}\n \n \n {this.props.metric_list.map((metric) => {\n let value = totals[metric.programmatic_name];\n let prefix = \"\";\n let suffix = \"\";\n let precision = 0;\n let commas = true;\n let className = false;\n\n let Formatter;\n\n if (metric.programmatic_name == \"budget\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_budget\") {\n Formatter = MetricFormatter.Revenue;\n className = value > 0 ? \"bg-danger\" : \"bg-success\";\n } else if (metric.programmatic_name == \"rev_or_conv\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n } else if (metric.programmatic_name == \"proj_to_kpi_goal\") {\n Formatter = MetricFormatter.Revenue;\n }\n\n return metric.programmatic_name.includes(\"or\") || metric.programmatic_name.includes(\"kpi\") ? (\n \n ) : (\n \n );\n })}\n \n \n
    Client{metric.display_name}
    \n {client.client_name}\n \n \n
    \n TOTALS\n \n \n
    \n
    \n
    \n );\n })}\n
    \n );\n }\n}\n\nexport default PPCPdfSummaryVideo;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport ChartPie from \"charts/ChartPie\";\nimport ChartBar from \"charts/ChartBar\";\nimport ChartLocation from \"charts/ChartLocation\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\nconst ageKeyOrder = [\"18-24\", \"25-34\", \"35-44\", \"45-54\", \"55-64\", \"65+\", \"unknown\"];\nconst dayKeyOrder = [\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"];\nconst hourKeyOrder = [\n \"00\",\n \"01\",\n \"02\",\n \"03\",\n \"04\",\n \"05\",\n \"06\",\n \"07\",\n \"08\",\n \"09\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\",\n \"20\",\n \"21\",\n \"22\",\n \"23\",\n];\n\nclass PPCPdfVideo extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.pieRowHeight = 240;\n this.barRowHeight = 340;\n this.mapRowHeight = 600;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let campaignGroupCase;\n function categorize(string) {\n if (string.includes(\"campaignGroups\")) {\n campaignGroupCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"ppc\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case campaignGroupCase:\n const campaignName = campaignGroupCase.replace(\"campaignGroups\", \"\");\n const campaignGroup = this.props.campaign_groups.find((el) => el.name == campaignName);\n\n return (\n <>\n {[campaignGroup.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {campaignGroup.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for campaign group {group_id}\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"spendAllocationPies\":\n return (\n <>\n

    Spend Allocation

    \n \n \n
    \n

    By Platform

    \n \n
    \n \n \n
    \n

    By Device

    \n \n
    \n \n \n
    \n

    By Gender

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars1\":\n return (\n <>\n \n \n
    \n

    By Age

    \n \n
    \n \n \n
    \n

    By Day-of-the-Week

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationBars2\":\n return (\n <>\n \n \n
    \n

    By Time-of-Day

    \n \n
    \n \n
    \n \n );\n case \"spendAllocationMap\":\n return (\n <>\n \n \n
    \n

    By Location

    \n \n
    \n \n
    \n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections);\n\n return (\n <>\n \n {index == 0 && (\n
    \n

    {this.props.client_name} Video Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n
    \n {this.generatePdfSection(section, cc_data, dashboard)}\n
    \n );\n })}\n
    \n \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = parseInt(this.props.dashboard);\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"video\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"video\", \"defaults\", this.props.client_type], allMetricData);\n\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n if (dashboard > 0) {\n const tempIndex = this.props.campaign_groups.findIndex((el) => el.id == dashboard);\n dashboardOrder = this.props.campaign_groups[tempIndex].dashboard_order;\n }\n let campaignIndex = dashboardOrder.findIndex((el) => el.name == \"campaignGroups\");\n const copyOfCampaignMetric = campaignIndex == -1 && dashboard > 0 ? cloneDeep(dashboardOrder[dashboard]) : cloneDeep(dashboardOrder[campaignIndex]);\n dashboard == 0 && dashboardOrder.splice(campaignIndex, 1);\n this.props.campaign_groups.forEach((group) => {\n let duplicateCampaign = copyOfCampaignMetric;\n duplicateCampaign[\"name\"] = `campaignGroups${group.name}`;\n dashboardOrder.splice(campaignIndex, 0, cloneDeep(duplicateCampaign));\n campaignIndex += 1;\n });\n\n // Break up spend allocation into 4 sections\n let allocationIndex = dashboardOrder.findIndex((el) => el.name == \"spendAllocation\");\n const allocationMetrics = cloneDeep(dashboardOrder[allocationIndex]);\n dashboardOrder.splice(allocationIndex, 1);\n [...Array(4)].forEach((x, index) => {\n let allocationSection = allocationMetrics;\n let sectionName;\n if (index == 0) {\n sectionName = \"Pies\";\n } else if (index == 1) {\n sectionName = \"Bars1\";\n } else if (index == 2) {\n sectionName = \"Bars2\";\n } else if (index == 3) {\n sectionName = \"Map\";\n }\n allocationSection[\"name\"] = `spendAllocation${sectionName}`;\n dashboardOrder.splice(allocationIndex, 0, cloneDeep(allocationMetrics));\n allocationIndex += 1;\n });\n\n // PDFs can't be processed section by section, we need to get every metric / chart that needs to video and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n let campaignGroupIndex = dashboardOrder.findIndex((el) => el.name.includes(\"campaignGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n if (section.enabled) {\n if (section.metrics_data) {\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"campaignGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"campaignGroups\") && !((index - campaignGroupIndex) % 2 == 0) && metricNames.length < 3) {\n elementHeight = 0;\n } else {\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"spendAllocationPies\") {\n elementHeight = this.pieRowHeight;\n elementsPerRow = 3;\n } else if (section.name == \"spendAllocationBars1\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 2;\n } else if (section.name == \"spendAllocationBars2\") {\n elementHeight = this.barRowHeight;\n elementsPerRow = 1;\n } else if (section.name == \"spendAllocationMap\") {\n elementHeight = this.mapRowHeight;\n elementsPerRow = 1;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"spendAllocationPies\") {\n metricNames = [\"platform\", \"device\", \"gender\"];\n }\n if (section.name == \"spendAllocationBars1\") {\n metricNames = [\"age\", \"day\"];\n }\n if (section.name == \"spendAllocationBars2\") {\n metricNames = [\"hour\"];\n }\n if (section.name == \"spendAllocationMap\") {\n metricNames = [\"state\"];\n }\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n if (metricIndex == 0) {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n }\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default PPCPdfVideo;\n","import React from \"react\";\nimport ChartGoal from \"charts/ChartGoal\";\nimport ChartLine from \"charts/ChartLine\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport KPIMetricBlock from \"dashboards/KPIMetricBlock\";\nimport MetricFormatter from \"dashboards/MetricFormatter\";\nimport KeywordBlock from \"dashboards/KeywordBlock\";\nimport KeywordImprovedDeclinedBlock from \"dashboards/KeywordImprovedDeclinedBlock\";\nimport KeywordTable from \"dashboards/KeywordTable\";\nimport MetricTablePdf from \"MetricTablePdf\";\nimport ServiceDisabled from \"dashboards/ServiceDisabled\";\nimport GetFormatter from \"dashboards/GetFormatter\";\nimport NoData from \"dashboards/NoData\";\nimport jsDig from \"utils/jsDig\";\nimport allMetrics from \"data/allMetrics.js\";\nimport PDFPage from \"pdfs/PDFPage\";\nimport { camelCase, cloneDeep } from \"lodash-es\";\nimport getNegative from \"../utils/getNegative\";\nimport getGoalLocked from \"utils/getGoalLocked\";\nimport dashboardTableOrder from \"../utils/dashboardTableOrder\";\n\nconst allMetricData = allMetrics();\n\nclass SEOPdf extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n\n this.goalChartDim = \"135x135\";\n this.lineChartDim = \"350x250\";\n this.pieChartDim = \"175x175\";\n\n this.goalsPerRow = 5;\n this.chartsPerRow = 2;\n this.tablesPerRow = 1;\n this.kpiBlocksPerRow = 3;\n this.metricsPerTable = 4;\n\n this.goalRowHeight = 144;\n this.chartRowHeight = 300;\n this.tableRowHeight = 315;\n this.groupTableRowHeight = 355;\n this.kpiBlockRowHeight = 200;\n this.keywordRankingRowHeight = 25;\n }\n\n generatePdfSection(section, cc_data, dashboard) {\n const metricData = allMetricData[\"metricData\"];\n let date = this.props.date ? moment(this.props.date) : moment();\n let month = date.format(\"MMM\");\n let year = date.year();\n let landingPageCase;\n let keywordCase;\n // console.log(section, \"looking for keyword\");\n function categorize(string) {\n if (string.includes(\"landingPageGroups\")) {\n landingPageCase = string;\n }\n if (string.includes(\"keywordGroups\")) {\n keywordCase = string;\n }\n return string;\n }\n if (section.metrics_data) {\n const renderArray = dashboardTableOrder(\"seo\", Object.keys(section.metrics_data));\n switch (categorize(section.name)) {\n case \"goalsAndProjections\":\n let goals = this.props.goals;\n return (\n <>\n

    Goals & Projections

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n const current = jsDig([dashboard, metricKey, \"raw\"], cc_data);\n const goal = parseFloat(jsDig([dashboard, year, month, camelCase(metricKey)], goals));\n const projected = jsDig([dashboard, metricKey, \"projected\"], cc_data);\n const negative = getNegative(section.name, metricKey, projected - goal, cc_data);\n const goalLocked = getGoalLocked(date, metricKey);\n if (metricKey) {\n if (jsDig([dashboard, metricKey, \"raw\"], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiCharts\":\n return (\n <>\n

    Primary KPI's

    \n\n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, \"metrics_by_months\", metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey, tick: true });\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in metrics_by_month in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"primaryKpiTables\":\n let metricTitles = [];\n return (\n <>\n

    Primary Kpi Tables

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([dashboard, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n \n );\n case \"allKpisVsPreviousYear\":\n return (\n <>\n

    KPI's vs Previous Year

    \n\n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case landingPageCase:\n const pageName = landingPageCase.replace(\"landingPageGroups\", \"\");\n const landingPage = this.props.landing_page_groups.find((el) => el.name == pageName);\n return (\n <>\n {[landingPage.id].map((group_id, index) => {\n let metricTitles = [];\n return (\n \n

    {landingPage.name}

    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n if (metricKey) {\n metricTitles.push(metricKey);\n if (jsDig([group_id, \"metrics_2_years\", metricKey], cc_data) == null) {\n return (\n

    \n {metricKey} was not found in metrics_2_years in cc_data for landing page group {group_id}\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n\n {[...Array(Math.ceil(metricTitles.length / 4))].map((x, index) => {\n return (\n \n \n \n );\n })}\n
    \n );\n })}\n \n );\n case \"backlinks\":\n return (\n <>\n

    Backlinks

    \n
    \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n let Formatter = GetFormatter({ metricName: metricKey });\n const negative = getNegative(section.name, metricKey, jsDig([dashboard, metricKey, \"projected_yy\"], cc_data));\n return (\n }\n yy={}\n negative={negative}\n key={index}\n />\n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case keywordCase:\n const keywordName = keywordCase.replace(\"keywordGroups\", \"\");\n const keywordGroup = this.props.keyword_groups.find((el) => el.name == keywordName);\n return (\n <>\n {[keywordGroup].map((group, index) => {\n console.log(group);\n console.log(section);\n const keywordGroup = group;\n const group_id = group.id;\n let metricTitle = this.props.keyword_groups.map((group) => group.name)[index];\n let metricTitles = [];\n metricTitles.push(metricTitle);\n return (\n
    \n \n

    Keyword: {keywordGroup.name}

    \n\n \n \n \n
    \n
    \n );\n })}\n \n );\n case \"keywordSummary\":\n return (\n <>\n

    Keyword Summary

    \n \n {renderArray.map((metricName, index) => {\n const metricKey = jsDig([metricName, \"name\", \"snakeCase\"], metricData);\n const metricShortened = jsDig([metricName, \"name\", \"shortened\"], metricData);\n if (metricName == \"Improved\") {\n if (section.metrics_data[metricName] == \"1\") {\n return (\n \n \n \n );\n }\n } else if (metricKey) {\n if (jsDig([dashboard, metricKey], cc_data) != null) {\n if (section.metrics_data[metricName] == \"1\") {\n return (\n \n \n \n );\n }\n } else {\n return (\n

    \n {metricKey} was not found in cc_data\n

    \n );\n }\n } else {\n return (\n

    \n {metricName} not defined in metricData.json\n

    \n );\n }\n })}\n
    \n \n );\n case \"keywordRankings\":\n let sortedKeywords = jsDig([dashboard, \"keyword_rankings\"], cc_data);\n switch (this.props.keyword_sort) {\n case \"keyword\":\n sortedKeywords.sort((a, b) => {\n if (a.keyword.toLowerCase() < b.keyword.toLowerCase()) return -1;\n if (a.keyword.toLowerCase() > b.keyword.toLowerCase()) return 1;\n return 0;\n });\n break;\n case \"prevpos\":\n sortedKeywords.sort((a, b) => {\n if (typeof a.start_date_ranking == \"string\") a.start_date_ranking = parseFloat(a.start_date_ranking);\n if (typeof b.start_date_ranking == \"string\") b.start_date_ranking = parseFloat(b.start_date_ranking);\n\n if (a.start_date_ranking == 0) return 1;\n if (b.start_date_ranking == 0) return -1;\n if (a.start_date_ranking < b.start_date_ranking) return -1;\n if (a.start_date_ranking > b.start_date_ranking) return 1;\n return 0;\n });\n break;\n case \"currentpos\":\n sortedKeywords.sort((a, b) => {\n if (a.end_date_ranking == 0) return 1;\n if (b.end_date_ranking == 0) return -1;\n if (a.end_date_ranking < b.end_date_ranking) return -1;\n if (a.end_date_ranking > b.end_date_ranking) return 1;\n return 0;\n });\n break;\n case \"diff\":\n sortedKeywords.sort((a, b) => {\n if (a.ranking_difference < b.ranking_difference) return -1;\n if (a.ranking_difference > b.ranking_difference) return 1;\n return 0;\n });\n break;\n case \"cpc\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.cpc))) return -1;\n if (isNaN(parseFloat(b.cpc))) return 1;\n if (parseFloat(a.cpc) < parseFloat(b.cpc)) return -1;\n if (parseFloat(a.cpc) > parseFloat(b.cpc)) return 1;\n return 0;\n });\n break;\n case \"volume\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.volume))) return -1;\n if (isNaN(parseFloat(b.volume))) return 1;\n if (parseFloat(a.volume) < parseFloat(b.volume)) return -1;\n if (parseFloat(a.volume) > parseFloat(b.volume)) return 1;\n return 0;\n });\n break;\n case \"difficulty\":\n sortedKeywords.sort((a, b) => {\n if (isNaN(parseFloat(a.difficulty))) return -1;\n if (isNaN(parseFloat(b.difficulty))) return 1;\n if (parseFloat(a.difficulty) < parseFloat(b.difficulty)) return -1;\n if (parseFloat(a.difficulty) > parseFloat(b.difficulty)) return 1;\n return 0;\n });\n break;\n }\n if (!this.props.keyword_sort_order_asc) {\n sortedKeywords.reverse();\n }\n return (\n <>\n

    Keyword Rankings

    \n el.name == \"keywordRankings\")}\n keyword_sort_order_asc={this.props.keyword_sort_order_asc}\n keyword_sort={this.props.keyword_sort}\n pdf={true}\n />\n \n );\n default:\n return (\n <>\n

    {section.name} is not a valid section name for this dashboard

    \n \n );\n }\n }\n }\n\n generatePdfPage(page, cc_data, dashboard, index) {\n if (page[\"metricNames\"]) {\n let sectionNames = page[\"metricNames\"].map((metric) => metric[\"section\"]).filter((value, index, self) => self.indexOf(value) === index);\n let sections = [];\n // Create sections object and format how the dashboard generation loop expects\n sectionNames.forEach((section) => {\n sections.push({\n name: section,\n metrics_data: page[\"metricNames\"]\n .filter((m) => m[\"section\"] == section)\n .reduce((sum, item) => {\n sum[item[\"name\"]] = \"1\";\n return sum;\n }, {}),\n });\n });\n\n console.log(\"Sections:\");\n console.log(sections, sections.includes(\"landingPageGroups\"));\n\n return (\n \n {index == 0 && (\n
    \n

    {this.props.client_name} SEO Dashboard

    \n
    {this.props.date_formatted}
    \n
    \n )}\n {sections.map((section) => {\n return (\n \n {this.generatePdfSection(section, cc_data, dashboard)}\n \n );\n })}\n
    \n );\n } else {\n return (\n <>\n

    no metricsData in page

    \n \n );\n }\n }\n\n render() {\n const dashboard = this.props.dashboard;\n const cc_data = this.props.cc_data;\n const sectionList = jsDig([\"metricsByDashboard\", \"seo\", \"sections\"], allMetricData);\n const defaultMetrics = jsDig([\"metricsByDashboard\", \"seo\", \"defaults\", this.props.client_type], allMetricData);\n let dashboardOrder =\n jsDig([dashboard], this.props.dashboard_order) && jsDig([dashboard], this.props.dashboard_order).length > 0\n ? cloneDeep(jsDig([dashboard], this.props.dashboard_order))\n : Object.keys(sectionList).map((sectionName) => {\n let defaultMetricsData = defaultMetrics[sectionName] ? Object.keys(defaultMetrics[sectionName]) : [];\n return {\n name: sectionName,\n enabled: true,\n metrics_data: defaultMetricsData.reduce((sum, item) => {\n sum[item] = \"1\";\n return sum;\n }, {}),\n };\n });\n\n let landingPageIndex = dashboardOrder.findIndex((el) => el.name == \"landingPageBreakdown\");\n const copyOfLandingPageMetric = cloneDeep(dashboardOrder[landingPageIndex]);\n dashboardOrder.splice(landingPageIndex, 1);\n this.props.landing_page_groups.forEach((group) => {\n let duplicateLandingPage = copyOfLandingPageMetric;\n duplicateLandingPage[\"name\"] = `landingPageGroups${group.name}`;\n dashboardOrder.splice(landingPageIndex, 0, cloneDeep(duplicateLandingPage));\n landingPageIndex += 1;\n });\n\n let keywordIndex = dashboardOrder.findIndex((el) => el.name == \"keywordGroups\");\n const copyOfKeywordMetric = cloneDeep(dashboardOrder[keywordIndex]);\n dashboardOrder.splice(keywordIndex, 1);\n this.props.keyword_groups.forEach((group) => {\n let duplicateKeywordGroup = copyOfKeywordMetric;\n duplicateKeywordGroup[\"name\"] = `keywordGroups${group.name}`;\n dashboardOrder.splice(keywordIndex, 0, cloneDeep(duplicateKeywordGroup));\n keywordIndex += 1;\n });\n // PDFs can't be processed section this.props.keyword_sort section, we need to get every metric / chart that needs to display and process them sequentially to figure out how much can fit on each page\n let pages = [];\n let currentPage = 0;\n console.log(dashboardOrder, \"entries\");\n let firstLandingPageIndex = dashboardOrder.findIndex((el) => el.name.includes(\"landingPageGroups\"));\n let firstKeywordIndex = dashboardOrder.findIndex((el) => el.name.includes(\"keywordGroups\"));\n for (const [index, section] of dashboardOrder.entries()) {\n console.log(index, firstLandingPageIndex, section, \"section\", !((index - firstLandingPageIndex) % 2 == 0));\n let metricNames = section.metrics_data && Object.keys(section.metrics_data);\n if (section.name == \"keywordGroups\") {\n metricNames = this.props.keyword_groups.map((el) => el.name);\n }\n if (section.enabled) {\n if (section.metrics_data) {\n let elementsPerRow = 0;\n let elementHeight = 0;\n if (section.name == \"goalsAndProjections\") {\n elementsPerRow = this.goalsPerRow;\n elementHeight = this.goalRowHeight;\n } else if (section.name == \"primaryKpiCharts\") {\n elementsPerRow = this.chartsPerRow;\n elementHeight = this.chartRowHeight;\n } else if (section.name == \"primaryKpiTables\") {\n elementsPerRow = this.metricsPerTable;\n elementHeight = this.tableRowHeight;\n } else if (section.name == \"allKpisVsPreviousYear\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name.includes(\"landingPageGroups\") || section.name.includes(\"keywordGroups\")) {\n elementsPerRow = this.metricsPerTable;\n if (\n ((dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0)) ||\n (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"keywordGroups\") && !((index - firstKeywordIndex) % 2 == 0))) &&\n metricNames.length < 3\n ) {\n elementHeight = 0;\n console.log(\"group table height\", 0);\n } else {\n console.log(\"group table height\", this.groupTableRowHeight);\n elementHeight = this.groupTableRowHeight;\n }\n } else if (section.name == \"backlinks\") {\n elementsPerRow = this.kpiBlocksPerRow;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"keywordSummary\") {\n elementsPerRow = 2;\n elementHeight = this.kpiBlockRowHeight;\n } else if (section.name == \"keywordRankings\") {\n elementsPerRow = 1;\n elementHeight = this.keywordRankingRowHeight;\n } else {\n return section.name;\n }\n\n // Create pages array\n if (section.name == \"keywordSummary\") {\n metricNames = [\"topThreeKeywords\", \"topTenKeywords\", \"topTwentyKeywords\", \"Improved\"];\n }\n\n if (section.name == \"keywordRankings\") {\n metricNames = jsDig([dashboard, \"keyword_rankings\"], cc_data).map((ranking) => ranking[\"keyword\"]);\n }\n\n metricNames.forEach((metricName, metricIndex) => {\n if (!pages[currentPage]) {\n pages[currentPage] = { metricNames: [], pageHeight: 0 };\n }\n\n if (metricIndex == 0) {\n if (\n ((dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0)) ||\n (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"keywordGroups\") && !((index - firstKeywordIndex) % 2 == 0))) &&\n metricNames.length < 3\n ) {\n pages[currentPage][\"pageHeight\"] += 0;\n } else {\n console.log(\"Add 40 pixels for header\");\n pages[currentPage][\"pageHeight\"] += 40;\n }\n }\n\n if (metricIndex % elementsPerRow == 0 || metricIndex == 0) {\n // 1065px page height - (74px + 10px if header) - 10px bottom padding\n let maxPageHeight = currentPage == 0 ? 971 : 1055;\n if (elementHeight + pages[currentPage][\"pageHeight\"] > maxPageHeight) {\n console.log(`${elementHeight + pages[currentPage][\"pageHeight\"]}px Would overflow PDF ${maxPageHeight}px, need to create new page`);\n currentPage += 1;\n if (!pages[currentPage]) {\n console.log(\"Initialized new page\");\n pages[currentPage] = { metricNames: [], pageHeight: 40 };\n }\n if (section.name == \"keywordRankings\") {\n //for table head\n pages[currentPage][\"pageHeight\"] += 25;\n }\n }\n if (metricIndex == 0) {\n if (dashboardOrder[index - 1] && dashboardOrder[index - 1].name.includes(\"landingPageGroups\") && !((index - firstLandingPageIndex) % 2 == 0) && metricNames.length < 3) {\n pages[currentPage][\"pageHeight\"] += 0;\n } else {\n pages[currentPage][\"pageHeight\"] += 40;\n }\n }\n\n pages[currentPage][\"pageHeight\"] += elementHeight;\n }\n\n pages[currentPage][\"metricNames\"].push({\n name: metricName,\n section: section.name,\n });\n\n console.log(\n \"section: \" +\n section.name +\n \" page: \" +\n currentPage +\n \", EPR: \" +\n elementsPerRow +\n \", name: \" +\n metricName +\n \", index: \" +\n metricIndex +\n \", page height:\" +\n pages[currentPage][\"pageHeight\"]\n );\n });\n }\n }\n }\n\n console.log(\"Pages:\");\n console.log(pages);\n\n if (this.props.enabled) {\n if (jsDig([dashboard, \"date\"], cc_data)) {\n return (\n <>\n {pages.map((page, index) => {\n return this.generatePdfPage(page, cc_data, dashboard, index);\n })}\n \n );\n } else {\n return (\n <>\n ;\n \n );\n }\n } else {\n return (\n <>\n ;\n \n );\n }\n }\n}\n\nexport default SEOPdf;\n","import React from 'react';\nimport Table from 'react-bootstrap/Table'\nimport MetricFormatter from 'dashboards/MetricFormatter'\nimport PDFPage from 'pdfs/PDFPage'\n\nclass SEOPdfSummary extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n }\n console.log(this.props)\n }\n\n\n getPageNumber(current) {\n return (current + 1);\n }\n\n render() {\n let pageNumber = 0;\n let clientsPerPage = 35;\n let clients = Object.keys(this.props.metrics);\n\n let totals = {}\n\n clients.map((client) => {[\"revenue_mtd\", \"revenue_mtd_last_year\",\"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => { \n let value = this.props.metrics[client][metricName];\n totals[metricName] ? totals[metricName] += value : totals[metricName] = value\n })})\n\n totals[\"revenue_mtd_yy\"] = (totals[\"revenue_mtd\"] - totals[\"revenue_mtd_last_year\"]) / totals[\"revenue_mtd_last_year\"] * 100\n totals[\"revenue_this_month_yy\"] = (totals[\"revenue_this_month_projected\"] - totals[\"revenue_this_month_last_year\"]) / totals[\"revenue_this_month_last_year\"] * 100\n totals[\"traffic_mtd_yy\"] = (totals[\"traffic_mtd\"] - totals[\"traffic_mtd_last_year\"]) / totals[\"traffic_mtd_last_year\"] * 100\n totals[\"traffic_this_month_yy\"] = (totals[\"traffic_this_month_projected\"] - totals[\"traffic_this_month_last_year\"]) / totals[\"traffic_this_month_last_year\"] * 100\n\n return (\n
    \n {\n [...Array(Math.ceil(clients.length / clientsPerPage))].map((x, index) => {\n return (\n \n
    \n

    SEO Summary

    \n
    {this.props.date_formatted}
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n {\n [1,2,3,4].map((index) => {\n return (\n \n \n \n \n \n )\n })\n }\n \n \n \n {\n clients.map((clientName) => {\n return (\n \n \n {\n [\"revenue_mtd\", \"revenue_mtd_last_year\", \"revenue_mtd_yy\", \"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"revenue_this_month_yy\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_mtd_yy\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => {\n let className = \"\";\n let value = this.props.metrics[clientName][metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\"\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n }\n return (\n \n )\n })\n }\n \n )\n })\n }\n \n \n {\n [\"revenue_mtd\", \"revenue_mtd_last_year\", \"revenue_mtd_yy\", \"revenue_this_month_projected\", \"revenue_this_month_last_year\", \"revenue_this_month_yy\", \"traffic_mtd\", \"traffic_mtd_last_year\", \"traffic_mtd_yy\", \"traffic_this_month_projected\", \"traffic_this_month_last_year\", \"traffic_this_month_yy\"].map((metricName) => {\n let className = \"\";\n let value = totals[metricName];\n if (metricName.includes(\"yy\")) {\n if (value > 0) {\n className = \"bg-success text-white font-weight-bold\"\n } else if (value < 0) {\n className = \"bg-danger text-white font-weight-bold\";\n }\n }\n return (\n \n )\n })\n }\n \n \n
    Client
    Revenue {this.props.this_month} MTD
    Revenue {this.props.this_month} Y/Y
    Organic Traffic {this.props.this_month} MTD
    Organic Traffic {this.props.this_month} Projected Y/Y
    {this.props.date.substring(0, 4)}{parseInt(this.props.date.substring(0, 4)) - 1}Y/Y
    {clientName}\n {\n value != 0 ?\n metricName.includes(\"yy\") ?\n \n : \n : <>\n }\n
    TOTALS\n {\n value != 0 ?\n metricName.includes(\"yy\") ?\n \n : \n : <>\n }\n
    \n
    \n
    \n )\n })\n }\n
    \n )\n }\n}\n\nexport default SEOPdfSummary;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Tab, Nav, Container, Form } from \"react-bootstrap\";\nimport SaveChanges from \"./SaveChanges\";\nimport updateParams from \"utils/updateParams.js\";\nimport OverallPPC from \"./services/OverallPPC\";\nimport Search from \"./services/Search\";\nimport Display from \"./services/Display\";\nimport Social from \"./services/Social\";\nimport Video from \"./services/Video\";\n\nexport const PacingContext = React.createContext();\n\nexport default function PpcPacing(props) {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n const [tabLocation, setTabLocation] = useState(\"overallPPC\");\n\n const servicePicker = (searchParams) => {\n if (searchParams.toString().includes(\"paidSearch\")) {\n return \"paidSearch\";\n }\n if (searchParams.toString().includes(\"daily\")) {\n return \"daily\";\n }\n if (searchParams.toString().includes(\"display\")) {\n return \"social\";\n }\n if (searchParams.toString().includes(\"display\")) {\n return \"video\";\n }\n };\n\n const submitForm = () => {\n document.getElementById(\"ppc-pacing-data\").submit();\n };\n\n useEffect(() => {\n let searchParams = new URL(location.href).searchParams;\n let page = searchParams.get(\"page\");\n if (!page || page == \"\") {\n page = \"overallPPC\";\n }\n if (page === \"paidSearch\") {\n setTabLocation(page);\n updateParams(\"page\", page);\n // updateParams(\"sub_page\", servicePicker(searchParams));\n } else {\n setTabLocation(page);\n updateParams(\"page\", page);\n }\n }, []);\n\n const selectTab = (key) => {\n if (key === \"services\") {\n setTabLocation(key);\n updateParams(\"page\", key);\n // updateParams(\"sub_page\", servicePicker(searchParams));\n } else {\n setTabLocation(key);\n updateParams(\"page\", key);\n }\n };\n\n return (\n
    \n
    \n \n \n

    PPC Pacing

    \n {props.ppc_pacing_metrics ? (\n <>\n selectTab(k)}>\n \n \n \n \n {props.enabled_services.ppc == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.overall).length != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any PPC data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have PPC enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.search == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.search) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Search data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Search enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.social == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.social) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Social data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Social enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.display == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.display) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Display data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Display enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n \n {props.enabled_services.video == true ? (\n <>\n {Object.keys(props.ppc_pacing_metrics.video) != 0 ? (\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have any Video data.
    \n
    \n
    \n
    \n
    \n )}\n \n ) : (\n
    \n
    \n
    \n
    \n
    This client doesn't have Video enabled.
    \n
    \n
    \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n \n ) : (\n <>\n
    \n
    This client doesn't have any PPC Data calculated yet.
    \n
    \n \n )}\n
    \n
    \n );\n}\n","import React, { useContext } from \"react\";\nimport { Button, Col, Row } from \"react-bootstrap\";\nimport { PacingContext } from \"./PpcPacing\";\n\n\nexport default function SaveChanges(props) {\n const pacingContext = useContext(PacingContext);\n return (\n \n {pacingContext.submitForm(); props.setShowBox(false)}}\n as=\"input\"\n type=\"submit\"\n value=\"Save\"\n variant=\"success\"\n id=\"ppc-pacing-save-btn\"\n />\n \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Display(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.display}\n defaultMetrics={defaultMetrics.summary.display}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.display}\n platforms={props.platforms}\n metricsData={props.metricsData}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Overall(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.overall}\n defaultMetrics={defaultMetrics.summary.overall}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.overall}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Search(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.search}\n defaultMetrics={defaultMetrics.summary.search}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.search}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Social(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.social}\n defaultMetrics={defaultMetrics.summary.social}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.social}\n defaultMetrics={defaultMetrics.daily.social}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { Tab, Nav } from \"react-bootstrap\";\nimport updateParams from \"utils/updateParams.js\";\nimport DailyView from \"../views/DailyView\";\nimport SummaryView from \"../views/SummaryView\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function Video(props) {\n const [tabLocation, setTabLocation] = useState(\"\");\n\n useEffect(() => {\n setTabLocation(\"summary\");\n updateParams(\"sub_page\", tabLocation);\n }, []);\n\n const selectTab = (key) => {\n setTabLocation(key);\n updateParams(\"sub_page\", key);\n };\n\n const defaultMetrics = props.defaultMetrics\n\n return (\n
    \n
    \n \n selectTab(k)}>\n \n \n \n 0 ? props.pacingOrder.summary : defaultMetrics.summary.video}\n defaultMetrics={defaultMetrics.summary.video}\n dateRanges={props.dateRanges}\n platforms={props.platforms}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n frequency={props.frequency}\n />\n \n \n 0 ? props.pacingOrder.daily : defaultMetrics.daily.video}\n metricsData={props.metricsData}\n availableMetrics={props.availableMetrics}\n service={props.service}\n />\n \n \n \n
    \n
    \n );\n}\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Table, Button, Modal, Form, Row, Col } from \"react-bootstrap\";\nimport SaveChanges from \"../SaveChanges\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { Stack, Lock, Unlock } from \"react-bootstrap-icons\";\nimport { PacingContext } from \"../PpcPacing\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function DailyView(props) {\n const pacingContext = useContext(PacingContext);\n const allPlatforms = Object.keys(jsDig([\"metricsData\"], props));\n const platformCount = allPlatforms.length - 1;\n\n const platformSelector = () => {\n const newItem = allPlatforms.filter((item) => item !== \"all\");\n if (platformCount >= 2) {\n return \"all\";\n } else {\n return newItem[0];\n }\n };\n\n const redOrGreen = (integer, metric) => {\n metric = metric.toLowerCase();\n if (integer === \"\") {\n return \"grey-text\";\n }\n if (metric.includes(\"cpa\") || metric.includes(\"cpc\")) {\n if (integer < 0) {\n return \"green-text\";\n } else {\n return \"red-text\";\n }\n } else if (integer < 0) {\n return \"red-text\";\n } else {\n return \"green-text\";\n }\n };\n\n const [availableMetrics, setAvailableMetrics] = useState(props.availableMetrics ? props.availableMetrics : []);\n const [selectedMetrics, setSelectedMetrics] = useState(props.pacingOrder);\n const [selectedPlatform, setSelectedPlatform] = useState(platformSelector());\n const [selectedCampaign, setSelectedCampaign] = useState(\"overall\");\n const [compactView, setCompactView] = useState(pacingContext.user.table_view_preference === \"compact_table_view\" ? true : false);\n const [showBox, setShowBox] = useState(false);\n const [yoy, setYoy] = useState(true);\n\n let columnCount = Math.ceil(availableMetrics.length / 5);\n if (columnCount >= 4) {\n columnCount = 4;\n }\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n const metricHelper = (e) => {\n const index = selectedMetrics.indexOf(e.target.name);\n let updatedList = [...selectedMetrics];\n if (index > -1) {\n updatedList.splice(selectedMetrics.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedMetrics, e.target.name];\n }\n setSelectedMetrics(updatedList);\n };\n\n const formatDate = (date) => {\n let newDate = \"\";\n if (date.charAt(4) === \"0\") {\n newDate = newDate + date.charAt(5) + \"/\";\n }\n if (date.charAt(4) !== \"0\") {\n newDate = newDate + date.charAt(4) + date.charAt(5) + \"/\";\n }\n if (date.charAt(6) === \"0\") {\n newDate = newDate + date.charAt(7) + \"/\";\n }\n if (date.charAt(6) !== \"0\") {\n newDate = newDate + date.charAt(6) + date.charAt(7) + \"/\";\n }\n return newDate + date.charAt(2) + date.charAt(3);\n };\n\n const numberWithCommas = (x) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n };\n\n const campaignCapitalized = selectedCampaign.charAt(0).toUpperCase() + selectedCampaign.slice(1);\n const serviceCapitalized = props.service.charAt(0).toUpperCase() + props.service.slice(1);\n\n let platformArray = [];\n if (props.service !== \"overall\") {\n props.platforms.forEach((platform) => props.metricsData[platform] && platformArray.push(Object.keys(props.metricsData[platform])));\n }\n const platformSet = new Set(...platformArray);\n const uniquePlatforms = props.service !== \"overall\" ? Array.from(platformSet) : [];\n\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n const MetricFormatter = (name, number, views) => {\n let metric = name.toLowerCase();\n let formatted;\n if (metric.includes(\"revenue\") || metric.includes(\"spend\")) {\n formatted = `$${numberWithCommas(Math.round(number))}`;\n } else if (metric.includes(\"cpa\") || metric.includes(\"roas\") || metric.includes(\"cpc\") || metric.includes(\"aov\")) {\n formatted = `$${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}`;\n } else if (metric.includes(\"video cvr\") && views === 0) {\n formatted = `0%`;\n } else if (metric.includes(\"cvr\") || metric.includes(\"ctr\")) {\n formatted = `${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}%`;\n } else {\n formatted = `${numberWithCommas(Math.round(number))}`;\n }\n return formatted;\n };\n\n return (\n
    \n {selectedMetrics.map((metric, idx) => {\n return ;\n })}\n {props.service !== \"overall\" && (\n
    \n
    \n \n\n
      \n {selectedPlatform === \"all\"\n ? uniquePlatforms.map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`a${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })\n : Object.keys(props.metricsData[selectedPlatform]).map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })}\n
    \n
    \n
    \n \n
      \n {Object.keys(props.metricsData)\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\" ? googleIcon : platform === \"microsoft\" ? microsoftIcon : platform === \"facebook\" ? facebookIcon : platform === \"tiktok\" ? tiktokIcon : allIcon;\n return (\n setSelectedPlatform(platform)}\n className={selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${platform + index + props.platform + props.service}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n )}\n
    \n setShowBox(false)}>\n \n Customize Table\n \n \n \n \n

    Show these parameters when available:

    \n \n
    \n \n \n
    Metric:
    \n \n
    \n \n \n
      \n {availableMetrics.map((el, i) => {\n return (\n
    • \n metricHelper(e)}\n checked={selectedMetrics.includes(el)}\n id={`custom-check${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n
    \n \n \n \n \n \n\n \n \n \n
    \n
    \n \n
    \n \n {\n setYoy(!yoy);\n }}\n />\n }\n label=\"Show Y/Y Metrics\"\n />\n \n
    \n {/*
    \n \n \n {\n setCompactView(!compactView);\n }}\n />\n }\n label={compactView ? \"Compact View\" : \"Full View\"}\n />\n \n
    */}\n
    \n
    \n \n \n \n \n {selectedMetrics.map((metricName, i) => {\n return (\n \n );\n })}\n \n \n \n {props.dateRanges.last_30_days.map((date, i) => {\n const evenOrOdd = i % 2 === 0 ? \"even\" : \"odd\";\n let beforeDate =\n i === 0\n ? \"Yesterday \"\n : i === 6\n ? \"1 week ago \"\n : i === 13\n ? \"2 weeks ago \"\n : i === 20\n ? \"3 weeks ago \"\n : i === 27\n ? \"4 week ago \"\n : `${i + 1} days ago `;\n return (\n \n \n {selectedMetrics.map((metricName, i) => {\n const number =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"this_year\", date], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"this_year\", date], props);\n const views =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", \"Views\", \"daily\", \"running_31\", \"this_year\", date], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, \"Views\", \"daily\", \"running_31\", \"this_year\", date], props);\n const currentValue = MetricFormatter(metricName, number, views);\n let overallAmount =\n jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"yoy\", date], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (Math.round((jsDig([\"metricsData\", metricName, \"daily\", \"running_31\", \"yoy\", date], props) + Number.EPSILON) * 100) / 100).toFixed(0)\n );\n\n let amount =\n jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"yoy\", date], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (\n Math.round(\n (jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"daily\", \"running_31\", \"yoy\", date], props) + Number.EPSILON) * 100\n ) / 100\n ).toFixed(0)\n );\n\n return props.service === \"overall\" ? (\n overallAmount == \"\" ? (\n \n ) : (\n \n )\n ) : amount === \"\" ? (\n \n ) : (\n \n );\n })}\n \n );\n })}\n \n
    \n \n \n {metricName}\n
    \n

    {`${beforeDate} (${formatDate(date)})`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n {`${overallAmount}%`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n

    {`${amount}%`}

    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useContext } from \"react\";\nimport { Table, Button, Modal, Row, Col } from \"react-bootstrap\";\nimport SaveChanges from \"../SaveChanges\";\nimport { Switch, FormGroup, FormControlLabel } from \"@material-ui/core\";\nimport { PacingContext } from \"../PpcPacing\";\nimport CustomFormCheck from \"utils/CustomFormCheck\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function SummaryView(props) {\n const pacingContext = useContext(PacingContext);\n const allPlatforms = Object.keys(jsDig([\"metricsData\"], props));\n const platformCount = allPlatforms.length - 1;\n\n const platformSelector = () => {\n const newItem = allPlatforms.filter((item) => item !== \"all\");\n if (platformCount >= 2) {\n return \"all\";\n } else {\n return newItem[0];\n }\n };\n\n const redOrGreen = (integer, metric) => {\n metric = metric.toLowerCase();\n if (integer === \"\") {\n return \"grey-text\";\n }\n if (metric.includes(\"cpa\") || metric.includes(\"cpc\")) {\n if (integer < 0) {\n return \"green-text\";\n } else {\n return \"red-text\";\n }\n } else if (integer < 0) {\n return \"red-text\";\n } else {\n return \"green-text\";\n }\n };\n\n const [availableMetrics, setAvailableMetrics] = useState(props.availableMetrics ? props.availableMetrics : []);\n const [selectedMetrics, setSelectedMetrics] = useState(props.pacingOrder);\n const [availableFrequency, setAvailableFrequency] = useState([\n \"MTD\",\n \"Last 7 days\",\n \"2 weeks ago\",\n \"Last 14 days\",\n \"Last 30 days\",\n \"Last month\",\n \"2 months ago\",\n \"Projected\",\n ]);\n const [selectedFrequency, setSelectedFrequency] = useState(\n props.frequency.selected_frequency ? props.frequency.selected_frequency[props.service] : availableFrequency\n );\n const [selectedPlatform, setSelectedPlatform] = useState(platformSelector());\n const [selectedCampaign, setSelectedCampaign] = useState(\"overall\");\n const [compactView, setCompactView] = useState(pacingContext.user.table_view_preference === \"compact_table_view\" ? true : false);\n const [yoy, setYoy] = useState(true);\n const [showBox, setShowBox] = useState(false);\n\n let columnCount = Math.ceil(availableMetrics.length / 5);\n if (columnCount >= 4) {\n columnCount = 4;\n }\n\n const metricHelper = (e) => {\n const index = selectedMetrics.indexOf(e.target.name);\n let updatedList = [...selectedMetrics];\n if (index > -1) {\n updatedList.splice(selectedMetrics.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedMetrics, e.target.name];\n }\n setSelectedMetrics(updatedList);\n };\n const frequencyHelper = (e) => {\n const index = selectedFrequency.indexOf(e.target.name);\n let updatedList = [...selectedFrequency];\n if (index > -1) {\n updatedList.splice(selectedFrequency.indexOf(e.target.name), 1);\n } else {\n updatedList = [...selectedFrequency, e.target.name];\n }\n setSelectedFrequency(updatedList);\n };\n\n const numberWithCommas = (x) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n };\n\n const campaignCapitalized = selectedCampaign.charAt(0).toUpperCase() + selectedCampaign.slice(1);\n const serviceCapitalized = props.service.charAt(0).toUpperCase() + props.service.slice(1);\n\n let platformArray = [];\n if (props.service !== \"overall\") {\n props.platforms.forEach((platform) => props.metricsData[platform] && platformArray.push(Object.keys(props.metricsData[platform])));\n }\n const platformSet = new Set(...platformArray);\n const uniquePlatforms = props.service !== \"overall\" ? Array.from(platformSet) : [];\n\n const svgList = {\n google: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Google only : Google}\n \n \n \n
    \n ),\n microsoft: (\n
    \n \n \n \n \n \n \n {platformCount >= 2 ? Microsoft only : Microsoft}\n \n \n \n
    \n ),\n facebook: (\n
    \n \n \n \n \n {platformCount >= 2 ? Facebook only : Facebook}\n \n \n \n
    \n ),\n tiktok: (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n TikTok Only\n \n \n \n
    \n ),\n all: (\n
    \n \n \n \n \n All platforms\n \n \n \n
    \n ),\n };\n\n const MetricFormatter = (name, number, views) => {\n let metric = name.toLowerCase();\n let formatted;\n if (metric.includes(\"revenue\") || metric.includes(\"spend\")) {\n formatted = `$${numberWithCommas(Math.round(number))}`;\n } else if (metric.includes(\"cpa\") || metric.includes(\"roas\") || metric.includes(\"cpc\") || metric.includes(\"aov\")) {\n formatted = `$${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}`;\n } else if (metric.includes(\"video cvr\") && views === 0) {\n formatted = `0%`;\n } else if (metric.includes(\"cvr\") || metric.includes(\"ctr\")) {\n formatted = `${numberWithCommas((Math.round((number + Number.EPSILON) * 100) / 100).toFixed(2))}%`;\n } else {\n formatted = `${numberWithCommas(Math.round(number))}`;\n }\n return formatted;\n };\n\n let allIcon = require(\"images/pacing/all-platforms.svg\");\n allIcon = ;\n let googleIcon = require(\"images/pacing/icons-google.svg\");\n googleIcon = ;\n let microsoftIcon = require(\"images/pacing/icons-microsoft.svg\");\n microsoftIcon = ;\n let facebookIcon = require(\"images/pacing/facebook-logo.svg\");\n facebookIcon = ;\n let allPlatformIcon = require(\"images/pacing/all-platforms.svg\");\n allPlatformIcon = ;\n let tiktokIcon = require(\"images/pacing/tiktok-logo.svg\");\n tiktokIcon = ;\n\n return (\n
    \n {selectedMetrics.map((metric, idx) => {\n return ;\n })}\n {selectedFrequency.map((frequency, idx) => {\n return ;\n })}\n {props.service !== \"overall\" && (\n
    \n
    \n \n\n
      \n {selectedPlatform === \"all\"\n ? uniquePlatforms.map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`a${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })\n : Object.keys(props.metricsData[selectedPlatform]).map((campaign, index) => {\n const campCapitalized = campaign.charAt(0).toUpperCase() + campaign.slice(1);\n return (\n setSelectedCampaign(campaign)}\n className={selectedCampaign == campaign ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${campaign + index + props.platform + props.service}`}>\n
      \n {serviceCapitalized}: {campCapitalized}{\" \"}\n
      \n \n );\n })}\n
    \n
    \n
    \n \n
      \n {Object.keys(props.metricsData)\n .sort((a, b) => (b === \"all\") - (a === \"all\"))\n .filter((el) => (platformCount < 2 ? el !== \"all\" : el))\n .map((platform, index) => {\n let capitalized = platform.charAt(0).toUpperCase() + platform.slice(1);\n const iconGraphic =\n platform == \"google\"\n ? googleIcon\n : platform === \"microsoft\"\n ? microsoftIcon\n : platform === \"facebook\"\n ? facebookIcon\n : platform === \"tiktok\"\n ? tiktokIcon\n : allIcon;\n return (\n setSelectedPlatform(platform)}\n className={selectedPlatform == platform ? \"icon-selected icon-li\" : \"icon-li\"}\n key={`b${platform + index + props.platform + props.service}`}>\n {iconGraphic} {capitalized} {platform === \"all\" ? \"platforms\" : platform !== \"all\" && platformCount >= 2 ? \"only\" : \"\"}\n \n );\n })}\n
    \n
    \n
    \n )}\n
    \n setShowBox(false)}>\n \n Customize Table\n \n \n \n \n

    Show these parameters when available:

    \n \n
    \n \n \n
    Metric:
    \n \n
    \n \n \n
      \n {availableMetrics.map((el, i) => {\n return (\n
    • \n metricHelper(e)}\n checked={selectedMetrics.includes(el)}\n id={`custom-check${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n \n \n
    Frequency:
    \n \n
    \n \n \n
      \n {availableFrequency.map((el, i) => {\n return (\n
    • \n frequencyHelper(e)}\n checked={selectedFrequency.includes(el)}\n id={`custom-check-frequency${i}`}\n name={el}\n label={el}\n />\n
    • \n );\n })}\n
    \n \n
    \n
    \n \n \n \n {\n setSelectedMetrics(props.defaultMetrics);\n setSelectedFrequency([\"2 months ago\", \"Last month\", \"MTD\", \"Last 7 days\", \"2 weeks ago\", \"Last 14 days\", \"Last 30 days\", \"Projected\"]);\n }}\n className=\"text-center defaults-btn\">\n Use defaults\n \n \n\n \n \n \n
    \n
    \n \n
    \n \n {\n setYoy(!yoy);\n }}\n />\n }\n label=\"Show Y/Y Metrics\"\n />\n \n
    \n {/*
    \n \n \n {\n setCompactView(!compactView);\n }}\n />\n }\n label={compactView ? \"Compact View\" : \"Full View\"}\n />\n \n
    */}\n
    \n
    \n \n \n \n \n {selectedFrequency.map((frequency, i) => {\n return (\n \n );\n })}\n \n \n \n {selectedMetrics.map((metricName, i) => {\n const evenOrOdd = i % 2 === 0 ? \"even\" : \"odd\";\n return (\n \n \n {selectedFrequency.map((frequency, i) => {\n const number =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", metricName, \"summary\", \"this_year\", frequency], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"this_year\", frequency], props);\n const views =\n props.service === \"overall\"\n ? jsDig([\"metricsData\", \"Views\", \"summary\", \"this_year\", frequency], props)\n : jsDig([\"metricsData\", selectedPlatform, selectedCampaign, \"Views\", \"summary\", \"this_year\", frequency], props);\n const currentValue = MetricFormatter(metricName, number, views);\n let overallAmount =\n jsDig([\"metricsData\", metricName, \"summary\", \"yoy\", frequency], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (Math.round((jsDig([\"metricsData\", metricName, \"summary\", \"yoy\", frequency], props) + Number.EPSILON) * 100) / 100).toFixed(0)\n );\n\n let amount =\n jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"yoy\", frequency], props) === \"\"\n ? \"\"\n : numberWithCommas(\n (\n Math.round(\n (jsDig([\"metricsData\", selectedPlatform, selectedCampaign, metricName, \"summary\", \"yoy\", frequency], props) + Number.EPSILON) *\n 100\n ) / 100\n ).toFixed(0)\n );\n\n return props.service === \"overall\" ? (\n overallAmount == \"\" ? (\n \n ) : (\n \n )\n ) : amount === \"\" ? (\n \n ) : (\n \n );\n })}\n \n );\n })}\n \n
    \n \n \n {frequency}\n
    \n

    {metricName}

    \n

    \n Y/Y (%)\n

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n {`${overallAmount}%`}

    \n
    \n

    {currentValue}

    \n

    {`No data`}

    \n
    \n

    {currentValue}

    \n

    {`${amount}%`}

    \n
    \n
    \n
    \n );\n}\n","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function App(props) {\r\n const dashboardUrl = `/datapulse/shopify/app/dashboard?shop=${props.shop}`\r\n const teamUrl = `/datapulse/shopify/app/team?shop=${props.shop}`\r\n\r\n return (\r\n \r\n \r\n \r\n

    With this app installed on your shopify store, Digital Position will be able to pull your performance data and display it in your metrics dashboards on DataPulse.

    \r\n
    \r\n \r\n \r\n

    DataPulse Bridge is successfully Connected to your store.

    \r\n

    It was installed on \r\n { props.shopify_install.updated_at.split(\"T\")[0] }\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n

    To see the metrics we have pulled from your store click the button below.

    \r\n \r\n
    \r\n
    \r\n \r\n \r\n

    See your team members and get in touch.

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function Dashboard(props) {\r\n const indexUrl = `/datapulse/shopify/app?shop=${props.shop}`\r\n const breadcrumbs = [{content: 'DataPulse Bridge by Digital Position', url: indexUrl}];\r\n\r\n return (\r\n \r\n \r\n \r\n {props.client_account ? (\r\n <>\r\n \r\n

    Your data was last pulled successfully on: \r\n { props.last_updated ? props.last_updated.split(\"T\")[0] : \"Never\" }\r\n

    \r\n
    \r\n \r\n

    Your performance for the current month is:

    \r\n
    \r\n \r\n \r\n Shopify Revenue: ${ jsDig([\"revenue\"], props).toFixed(2) }\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n

    Even though you have successfully installed the DataPulse Bridge shopify app, it looks like your store ({props.shop}) hasn't been configured in DataPulse yet. DataPulse is where your real dashboards live, but you may see the data we are pulling from Shopify on this page once we have finished configuring your account. Reach out to your Digital Position representative to address this issue.

    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Tab, Nav, Container } from \"react-bootstrap\";\r\nimport jsDig from \"utils/jsDig\";\r\nimport enTranslations from '@shopify/polaris/locales/en.json';\r\nimport {AppProvider, Page, Card, Button, Badge, List, TextContainer, TextStyle} from '@shopify/polaris';\r\n\r\nexport default function Team(props) {\r\n const indexUrl = `/datapulse/shopify/app?shop=${props.shop}`\r\n const breadcrumbs = [{content: 'DataPulse Bridge by Digital Position', url: indexUrl}];\r\n\r\n return (\r\n \r\n \r\n \r\n {props.client_account ? (\r\n <>\r\n \r\n Your users:\r\n {(props.team_members && props.team_members.length > 0) ? (\r\n <>\r\n \r\n {props.team_members.map((user) => {\r\n return (\r\n <>\r\n \r\n Name: {`${user.first_name} ${user.last_name}`}, \r\n Role: {(user.job_title && user.job_title != \"\") ? user.job_title : \"Not set\"}\r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n ) : (\r\n <>\r\n

    After your account is configured, account leads & contact information will appear here.

    \r\n \r\n )}\r\n
    \r\n \r\n ) : (\r\n <>\r\n \r\n

    Even though you have successfully installed the DataPulse Bridge shopify app, it looks like your store ({props.shop}) hasn't been configured in DataPulse yet. You can see complete data about the Digital Position employees who are assisting your marketing efforts by going to DataPulse, but you may see basic contact information about them on this page once we have finished configuring your account. Reach out to your Digital Position representative to address this issue.

    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React from \"react\";\nimport UserAccessTable from \"user_access/UserAccessTable\";\nimport UserNewForm from \"user_access/UserNewForm\";\nimport LeftIndent from \"utils/LeftIndent\";\nimport Form from \"react-bootstrap/Form\";\n\nclass UserAccess extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n users: [],\n };\n }\n\n \n componentDidMount() {\n const users = this.props.users\n const userInfo = Object.values(users)\n this.setState({\n users: userInfo.sort((a, b) => a.name.localeCompare(b.name)),\n });\n $(\".collapser\").on(\"click\", function () {\n $(this).next(\".collapse\").collapse(\"toggle\");\n var icon = $(this).find(\".fas\");\n if (icon.hasClass(\"fa-sort-up\")) {\n icon.removeClass(\"fa-sort-up\").addClass(\"fa-sort-down\");\n } else {\n icon.removeClass(\"fa-sort-down\").addClass(\"fa-sort-up\");\n }\n });\n }\n\n deleteUser(user) {\n $.ajax({\n url: \"/datapulse/users/\" + user.id,\n type: \"delete\",\n });\n }\n\n removeUser(user, org_id) {\n console.log(user, org_id)\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/organization/remove-user/\",\n\t\t\tdata: {\n\t\t\t\torganization_id: org_id,\n user_id: user.id\n\t\t\t},\n\t\t});\n }\n\n\n searchUsers(e) {\n let searchString = e.target.value.toLowerCase();\n let newUsers = [];\n this.props.users_array.forEach((u) => {\n if ((u.first_name + \" \" + u.last_name).toLowerCase().includes(searchString) || u.email.toLowerCase().includes(searchString)) {\n newUsers.push(u);\n }\n });\n\n this.setState({\n users: newUsers,\n });\n }\n\n render() {\n return (\n <>\n
    \n

    User Access

    \n
    \n
    \n

    Search:

    \n {this.searchUsers(e);}} />\n
    \n \n
    \n u.role == \"client\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Clients\" />\n u.role == \"employee\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Restricted Access\" />\n u.role == \"specialist\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Standard Access\" />\n u.role == \"manager\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Full Access\" />\n u.role == \"admin\")} deleteUser={this.deleteUser} removeUser={this.removeUser} tableName=\"Employees - Admin Access\" />\n
    \n \n );\n }\n}\n\nexport default UserAccess;\n","import React from 'react'\n\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport Table from 'react-bootstrap/Table';\nimport Form from 'react-bootstrap/Form';\nimport Button from 'react-bootstrap/Button';\nimport UserAccessTableButtons from 'user_access/UserAccessTableButtons'\nimport UserRole from 'utils/UserRole'\nimport UserDepartment from 'utils/UserDepartment'\n\nclass UserAccessTable extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n <>\n
    \n
    \n
    {this.props.tableName}
    \n
    \n
    \n

    Collapse Section  0 ? \" fa-sort-up\" : \" fa-sort-down\")}>

    \n
    \n
    0 ? \" show\" : \"\")}>\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n {\n this.props.users.map((user) => {\n return (\n \n \n \n \n \n \n \n \n )\n })\n }\n \n
    ID#NameEmailRoleDepartment
    {user.id}{user.name}{user.email}\n
    \n {\n this.props.permissions.includes(user.role) && (\n \n )\n }\n
    \n
    \n
    \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default UserAccessTable;\n","import React from 'react';\nimport Modal from 'react-bootstrap/Modal';\n\nclass UserAccessTableButtons extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showModal: false,\n actionType: null // 'delete' or 'remove'\n };\n }\n\n handleShowModal = (actionType) => {\n this.setState({ showModal: true, actionType });\n }\n\n handleHideModal = () => {\n this.setState({ showModal: false, actionType: null });\n }\n\n handleConfirmAction = () => {\n if (this.state.actionType === 'delete') {\n this.props.deleteUser(this.props.user);\n } else if (this.state.actionType === 'remove') {\n this.props.removeUser(this.props.user, this.props.org_id);\n }\n this.handleHideModal();\n }\n\n render() {\n const { showModal, actionType } = this.state;\n\n return (\n \n \n {this.props.current_user_is_god &&\n \n }\n \n\n \n \n \n

    Confirm Action

    \n
    \n
    \n \n
    \n

    \n {actionType === 'delete' ? 'Are you sure you want to permanently delete this user from the database?' :\n 'Are you sure you want to remove this user from the selected organization?'}\n

    \n \n \n
    \n
    \n
    \n
    \n );\n }\n}\n\nexport default UserAccessTableButtons;\n","import React from 'react'\nimport { Row, Col, Form, Modal, Button, FormControl, Alert } from 'react-bootstrap'\nimport {findDOMNode} from 'react-dom'\n\nclass UserNewForm extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n show: false,\n employeeType: \"client\",\n clients: this.props.clients?this.props.clients:[],\n first_name: \"\",\n last_name: \"\",\n email: \"\" ,\n errors: {}\n }\n }\n\n clientButtonClick(event) {\n $('.client-button').addClass('selected');\n $('.employee-button').removeClass('selected');\n $('.employee-only-fields').hide();\n this.setState({ employeeType: \"client\" });\n }\n\n employeeButtonClick(event) {\n $('.employee-button').addClass('selected');\n $('.client-button').removeClass('selected');\n // $('.employee-only-fields').show();\n $('.employee-only-fields').css('display', 'flex');\n this.setState({ employeeType: \"employee\" });\n }\n\n toggleAccess(event) {\n }\n\n accessAll(event) {\n let checkAll = event.target.checked;\n $('.client-list input[type=checkbox]').each((index, el) => {\n $(el).prop(\"checked\", checkAll)\n })\n }\n\n nextPage() {\n $(\".page-1\").hide();\n $(\".page-2\").show();\n }\n\n backPage() {\n $(\".page-2\").hide();\n $(\".page-1\").show();\n }\n\n searchClients(event) {\n let filter = event.target.value.toLowerCase().trim();\n let visibleClients = [];\n this.props.clients.forEach((client) => {\n let clientName = client.company_name.toLowerCase();\n if (clientName.includes(filter)) {\n visibleClients.push(client);\n }\n })\n this.setState({clients: visibleClients})\n }\n\n //=========================== FORM VALIDATION START ===================================\n errorChecking = (e) => {\n e.preventDefault();\n const { first_name, last_name, email } = this.state;\n let errors = {};\n\n if (!first_name.trim()) errors.first_name = true;\n if (!last_name.trim()) errors.last_name = true;\n // if (!email.includes('@')) errors.email = true;\n const emailRegex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (!emailRegex.test(email)) {\n errors.email = true;\n }\n\n if (Object.keys(errors).length) {\n this.setState({ errors });\n } else {\n // Proceed with form submission logic here\n console.log('Form is ready to be submitted');\n this.nextPage();\n }\n };\n\n handleChange = (e) => {\n this.setState({ [e.target.name]: e.target.value, errors: { ...this.state.errors, [e.target.name]: false } });\n };\n\n//=========================== FORM VALIDATION END ===================================\n\n\n render() {\n const authenticityToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n let clientIcon = require(\"images/lite/icons/handshake.svg\");\n clientIcon = ;\n let employeeIcon = require(\"images/lite/icons/user-two.svg\");\n employeeIcon = ;\n const errorClass = \"lite-invalid-input\";\n console.log(this.state.errors)\n\n return (\n <>\n \n this.setState({show: false})}>\n
    \n \n
    \n \n \n

    \n Add New User - Basic Info\n

    \n
    \n
    \n \n

    I want to add a new:

    \n\n
    \n
    {this.clientButtonClick(e)}}>\n {clientIcon}\n

    Client

    \n
    \n \n\n
    {this.employeeButtonClick(e)}}>\n {employeeIcon}\n

    Employee

    \n
    \n \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n \n

    Add New User - Account Access

    \n
    \n \n

    Back to Basic Info

    \n
    \n
    \n \n this.searchClients(e)} placeholder=\"Search accounts...\" />\n
    \n
    \n
    \n {this.accessAll(e)}} className=\"custom-control-input\" id='toggle-all-access' />\n \n
    \n
    \n
    \n \n \n
      \n {\n this.state.clients.map((client) => {\n return (\n
    • \n \n
      \n {this.toggleAccess(e)}} name={`account_access_ids[${client.id}]`} className=\"custom-control-input\" id={`account-access-id-${client.id}`} />\n \n
      \n
      \n
    • \n )\n })\n }\n
    \n \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n \n );\n }\n}\n\nexport default UserNewForm;\n","import React from \"react\";\n\nconst ConditionalWrapper = ({ condition, wrapper, children }) =>\n\tcondition ? wrapper(children) : children;\n\nexport default ConditionalWrapper;\n","import React, { useState } from \"react\";\nimport { Button } from \"react-bootstrap\";\n\nfunction Counter(props) {\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t-\n\t\t\t\t\n\t\t\t\t{props.count}\n\t\t\t\t\n\t\t\t\t\t+\n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n\nexport default Counter;\n","import React from 'react'\n\nclass CustomAvatar extends React.Component {\n render() {\n let christmasSpecial = require(\"images/special/Christmas.svg\");\n let fallSpecial = require(\"images/special/FirstDayFall.svg\")\n let springSpecial = require(\"images/special/FirstDaySpring.svg\")\n let summerSpecial = require(\"images/special/FirstDaySummer.svg\")\n let winterSpecial = require(\"images/special/FirstDayWinter.svg\")\n let halloweenSpecial = require(\"images/special/Halloween.svg\")\n return (\n <>\n \n {this.props.special == \"christmas\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"fall\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"spring\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"summer\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"winter\" &&\n <>\n
    \n \n
    \n \n }\n {this.props.special == \"halloween\" &&\n <>\n
    \n \n
    \n \n }\n \n );\n }\n}\n\nexport default CustomAvatar;\n","import React, { useState } from \"react\";\nimport onClickOutside from \"react-onclickoutside\";\n\n\nfunction CustomDropdown(props) {\n const campaignGroups = props.dashboards;\n let currentTab = props.tabLocation === \"paidSearch\" ? \"search\" : props.tabLocation === \"paidSocial\" ? \"social\" : props.tabLocation === \"paidDisplay\" ? \"display\" : props.tabLocation === \"paidVideo\" ? \"video\" : undefined\n\n let upper = currentTab\n if (upper !== undefined) {\n\n upper = upper[0].toUpperCase() + upper.slice(1)\n }\n const [open, setOpen] = useState(false);\n const [currentSection, setCurrentSection] = useState(\n props.platformName === \"all\" ? \"Search\" : props.platformName\n );\n const [currentCampaign, setCurrentCampaign] = useState(props.section !== \"Performance\" ? campaignGroups[0].name : 0);\n\n CustomDropdown[`handleClickOutside_` + props.platformName + props.section] = () =>\n setOpen(false);\n\n const campaignSetter = (campaign, section) => {\n setCurrentCampaign(campaign.name);\n setCurrentSection(section);\n props.setSelectedDashboard(campaign.name)\n props.setSelectedDashboardId(campaign.id)\n setTimeout(() => setOpen(false), 200)\n };\n\n const goalSetter = (campaign, section) => {\n setCurrentCampaign(campaign.name);\n setCurrentSection(section);\n props.setSelectedDashboardId(campaign.id)\n props.setSelectedDashboard(campaign.name)\n\n setTimeout(() => setOpen(false), 200)\n };\n const performanceSetter = (campaign, section) => {\n console.log(campaign, section)\n setCurrentCampaign(props.seo ? campaign.id : currentTab);\n setCurrentSection(section);\n props.setSelectedDashboard(campaign.id)\n setTimeout(() => setOpen(false), 200)\n };\n\n const platform = props.platformName ? props.platformName.charAt(0).toUpperCase() + props.platformName.slice(1) : undefined\n\n const toggle = () => setOpen(!open);\n\n return (\n
    \n
    \n
    toggle(!open)}>\n {\n props.section === \"Performance\" ?\n props.seo === undefined ?\n //PPC Performance main input text\n

    \n {upper}: {(currentTab !== undefined) && (props[`${currentTab}`].filter((el) => el.id === props.selectedDashboard)[0] !== undefined) ? props[`${currentTab}`].length > 0 ? props[`${currentTab}`].filter((el) => el.id === props.selectedDashboard)[0].name : \"Overall\" : \"Overall\"}\n {open ? (\n \n ) : (\n \n )}\n

    \n :\n //SEO Performance main input text\n

    \n SEO: {props.dashboards.filter((el) => el.id === currentCampaign) && currentCampaign !== 0 ? props.dashboards.filter((el) => el.id === currentCampaign)[0].name : \"Overall\"}\n {open ? (\n \n ) : (\n \n )}\n

    \n :\n props.configure === true ?\n props.dashboardId === 0 ? (\n //configure goals for overall\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n {open ? (\n \n ) : (\n \n )}\n

    \n ) : (\n\n //configure goals for remaining\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}\n {\": \"}\n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n\n :\n props.selectedDashboardId === 0 ? (\n //Dashboard and main goals for overall\n

    \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n {open ? (\n \n ) : (\n \n )}\n

    \n ) :\n props.seo === undefined ?\n (\n //Dashboard and main goals for remaining\n

    \n {currentSection === \"Seo\" ? \"SEO\" : currentSection}\n {\": \"}\n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n :\n (\n //Dashboard and main goals SEO for remaining\n

    \n {props.selectedDashboard}{\" \"}\n {open ? (\n \n ) : (\n \n )}\n

    \n )\n }\n
    \n
    \n
    \n
    \n {props.section === \"Goals\" ? (\n //non-clickable display goals/configure goals\n <>\n
    \n \n

    \n {platform === \"Seo\" ? \"SEO\" : platform} Goals\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n //name displayed in list goals/configure GOALS Overall\n return idx === 0 ? (\n
    \n \n goalSetter(dash, platform)\n\n }\n >\n \n {platform === \"Seo\" ? \"SEO\" : platform}: Overall\n
    \n
    \n ) : (\n //name displayed in list goals/configure Goals remaining\n
    \n \n goalSetter(dash, platform)\n }\n >\n \n \n {platform === \"Seo\" ? \"SEO\" : platform}: {dash.name}\n \n
    \n
    \n );\n })}\n \n ) : props.section === \"Performance\" ?\n props.seo === undefined ?\n (\n <>\n
    \n \n

    \n {upper} Performance\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n performanceSetter(dash, platform)\n\n }\n >\n \n {upper}: Overall\n
    \n
    \n ) : (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n \n {upper}: {dash.name}\n \n
    \n
    \n );\n })}\n \n ) :\n (\n <>\n
    \n \n

    \n SEO Performance\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n SEO: Overall\n
    \n \n ) : (\n
    \n \n performanceSetter(dash, platform)\n }\n >\n \n \n SEO: {dash.name}\n \n
    \n \n );\n })}\n \n ) :\n (\n <>\n
    \n \n

    \n {props.platformName} Overall\n

    \n
    \n {campaignGroups.map((dash, idx) => {\n return idx === 0 ? (\n
    \n \n campaignSetter(dash, props.platformName)\n\n }\n >\n \n {props.platformName}: Overall\n
    \n \n ) : (\n
    \n \n campaignSetter(dash, props.platformName)\n }\n >\n \n \n {props.platformName}: {dash.name}\n \n
    \n \n );\n })}\n \n )}\n \n \n \n \n );\n}\n\nconst clickOutsideConfig = {\n handleClickOutside: ({ props }) =>\n CustomDropdown[`handleClickOutside_` + props.platformName + props.section],\n};\n\nexport default onClickOutside(CustomDropdown, clickOutsideConfig);\n","import React, { useState } from \"react\";\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\n// React Form.Check elements have default styling and don't allow changing colors. We already addressed this so we will use this custom form check with custom classes\nconst CustomFormCheck = React.forwardRef((props,ref) => {\n let inputElement;\n if (props.dynamic) {\n let checked = props.checked ? props.checked : false;\n const [isChecked, setIsChecked] = useState(checked);\n const handleChange = props.onChange\n ? () => {\n props.onChange();\n setIsChecked(!isChecked);\n }\n : () => {\n setIsChecked(!isChecked);\n };\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && !isChecked && }\n \n \n );\n } else if (props.static && window.location.href.includes(\"ppc-config?page=ppc&subpage=ids_data\") && props.label == \"Pull Shopify data on save\") {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && }\n {}\n \n \n );\n } else if (props.static) {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && }\n \n \n );\n } else {\n inputElement = (\n <>\n {props.sendUncheckedValue && props.name && !props.checked && }\n {\n false;\n }\n }\n value=\"1\"\n style={{ zIndex: \"1\" }}\n required={props.required}\n readOnly={props.readOnly}\n />\n \n );\n }\n\n return (\n <>\n
    \n {inputElement}\n {props.hoverText ? (\n \n
    {props.hoverText}
    \n \n }>\n \n \n ) : (\n \n )}\n
    \n \n );\n})\nexport default CustomFormCheck","import React, { useState } from \"react\";\n\nexport default function CustomSwitch(props) {\n const [isChecked, setIsChecked] = useState(props.checked || props.isEnabled ? true : false);\n return (\n <>\n
    \n
    \n {props.isEnabled !== undefined ? (\n {\n props.setIsEnabled(!props.isEnabled);\n setIsChecked(!isChecked);\n }}\n type=\"checkbox\"\n className=\"custom-control-input\"\n id={props.id}\n name={props.name ? props.name : null}\n disabled={props.disabled}\n />\n ) : (\n setIsChecked(!isChecked)}\n type=\"checkbox\"\n className=\"custom-control-input\"\n id={props.id}\n name={props.name ? props.name : null}\n disabled={props.disabled}\n />\n )}\n \n \n
    \n
    \n
    \n {props.isEnabled !== undefined ? (\n props.isEnabled ? (\n

    {props.text} is currently enabled

    \n ) : (\n

    {props.text} is currently disabled

    \n )\n ) : isChecked ? (\n

    \n {\" \"}\n {props.text} is currently enabled\n

    \n ) : (\n

    \n {\" \"}\n {props.text} is currently disabled\n

    \n )}\n
    \n \n );\n}\n","import React from \"react\";\nimport { Tooltip, OverlayTrigger } from \"react-bootstrap\";\n\nexport default function CustomTooltip(props) {\n\tconst renderTooltip = (refs) => (\n\t\t\n\t\t\t
    \n\t\t\t\t{props.message}\n\t\t\t\t
    \n\t\t
    \n\t);\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{props.img ? (\n\t\t\t\t\t{props.img}{props.label}\n\t\t\t\t) : (\n\t\t\t\t\t{props.label}\n\t\t\t\t)}\n\t\t\t\n\t\t
    \n\t);\n}\n","import * as React from \"react\";\nimport { Button } from \"react-bootstrap\";\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport { Row } from \"react-bootstrap\";\nimport { ExclamationCircle } from \"react-bootstrap-icons\";\nexport default function DataPullSavePopUp(props) {\n return (\n
    \n props.handleClose()} aria-labelledby=\"alert-dialog-title\">\n \n   Important: Initiating Data Pull\n \n
    setOpen(false)} style={{ position: \"absolute\", right: \"5px\", cursor: \"pointer\" }}>\n \n \n \n
    \n \n

    \n You have requested to initiate a data pull, or changes made on this page would require a data pull to proceed.\n

    \n

    \n A data pull can take up to several hours and you will not be able to access or make changes to this account's associated configuration pages until\n the pull is finished. Please proceed with full certainty!\n

    \n
    \n
    \n props.handleClose()}\n style={{\n backgroundColor: \"#3291c1\",\n paddingTop: \"8px\",\n paddingBottom: \"8px\",\n paddingLeft: \"22px\",\n paddingRight: \"22px\",\n }}>\n Hold on, go back\n \n {\n props.manualDataPull();\n if (props.onboarding == true) {\n setTimeout(() => props.submitForm(props.nextPage), 1000);\n }\n else {\n props.submitForm();\n }\n }}\n style={{\n backgroundColor: \"#42ba96\",\n paddingTop: \"8px\",\n paddingBottom: \"8px\",\n paddingLeft: \"22px\",\n paddingRight: \"22px\",\n }}\n autoFocus>\n Save changes and initiate data pull\n \n
    \n
    \n
    \n );\n}\n","import React from \"react\";\nimport Datepicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nclass DayPicker extends React.Component {\n changeDate(value) {\n let date = new Date(value).yyyymmdd();\n const url = window.location.origin + window.location.pathname + \"?date_selection=\" + date;\n window.location = url;\n }\n render() {\n let startDate = Date.parse(new Date(this.props.startDate).yyyymmdd());\n let minDate = Date.parse(new Date(\"2019-01-01\").yyyymmdd());\n return (\n <>\n
    \n \n
    \n \n );\n }\n}\n\nexport default DayPicker;\n","import React from \"react\";\n\nclass DefaultAvatar extends React.Component {\n chooseColor(firstLetter, secondLetter) {\n // Need to use something to generate colors since some users don't have full names\n let firstInitial = firstLetter != \"\" ? firstLetter : \"a\";\n let secondInitial = secondLetter != \"\" ? secondLetter : \"a\";\n const colors = [\n { text: \"#2f6051\", bg: \"#47bb98\" },\n { text: \"#55403b\", bg: \"#d97358\" },\n { text: \"#c7f7f7\", bg: \"#2e93c6\" },\n { text: \"#bcdff2\", bg: \"#604bc6\" },\n { text: \"#f2cfbc\", bg: \"#ac3d4d\" },\n { text: \"#bbb5ad\", bg: \"#474857\" },\n { text: \"#7fa7b5\", bg: \"#1a4a77\" },\n { text: \"#6f5d2b\", bg: \"#dbb13b\" },\n { text: \"#4ecac3\", bg: \"#2e6661\" },\n { text: \"#608ac1\", bg: \"#481f6c\" },\n ];\n // Get first letters distance from 'a'\n let firstModifier = firstInitial.charCodeAt(0) - 97;\n // Invert the second modifier to get a more 'random' result\n let secondModifier = (secondInitial.charCodeAt(0) - 97) * -1 + 25;\n let finalModifier = (firstModifier + secondModifier) / 2;\n let optionsRatio = colors.length / 26; // 0.38461538461538464\n let chosenIndex = Math.round(finalModifier * optionsRatio) - 1;\n if (chosenIndex < 0) chosenIndex = 2;\n return colors[chosenIndex];\n }\n\n render() {\n let width = this.props.dim.split(\"x\")[0];\n let height = this.props.dim.split(\"x\")[1];\n let firstName = Number.isInteger(this.props.name) ? String(this.props.name)[0] : this.props.name.split(\" \")[0];\n let lastName = Number.isInteger(this.props.name) ? String(this.props.name % 10) : this.props.name.split(\" \")[1];\n let firstInitial = firstName ? firstName.charAt(0).toLowerCase() : \"\";\n let secondInitial = lastName ? lastName.charAt(0).toLowerCase() : \"\";\n let color = this.chooseColor(firstInitial, secondInitial);\n\n if (this.props.alertCounter) {\n if (Number.isInteger(this.props.name) && this.props.name >= 10) {\n firstInitial = \"9\";\n secondInitial = \"+\";\n } else {\n secondInitial = \"\";\n }\n }\n return (\n \n \n \n {firstInitial.toUpperCase() + secondInitial.toUpperCase()}\n \n \n );\n }\n}\n\nexport default DefaultAvatar;\n","import React from 'react'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\n\nclass LeftIndent extends React.Component {\n render() {\n return (\n \n \n {this.props.children}\n \n \n );\n }\n}\n\nexport default LeftIndent;\n","\nimport React from 'react';\nimport ChartGoal from 'charts/ChartGoal'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\nimport currencyConverter from 'utils/currencyConverter'\n\nclass Metric extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n\n function addCommasToNumber(input) {\n return input.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '$&,') + (value.length == 2 ? '.' + value[1] : '')\n }\n\n const conversion = (typeof (this.props.baseCurrency) != \"undefined\") && (this.props.baseCurrency != this.props.displayCurrency)\n let value = this.props.value ? this.props.value : 0;\n\n if (conversion == true && !this.props.noConvert) {\n value = currencyConverter(value, this.props.baseCurrency, this.props.displayCurrency)\n }\n\n\n if (typeof value == 'string')\n value = parseFloat(value)\n\n if (this.props.precision != null && this.props.precision != undefined) {\n value = value.toFixed(this.props.precision);\n }\n\n if (this.props.commas) {\n value = value.toString().split('.')\n value = addCommasToNumber(value[0])\n }\n\n value = Number.isFinite(parseFloat(value)) ? value.toString() : \"\"\n\n let prefix = this.props.prefix ? this.props.prefix : '';\n let suffix = this.props.suffix ? this.props.suffix : '';\n if (this.props.client == \"IWA Wine\") {\n prefix = \"\"\n suffix = \"x\"\n }\n\n\n let finalValue = `${prefix}${value}${suffix}`\n finalValue = finalValue.replace('$-', '-$')\n\n return (\n <>\n {\n `${finalValue}`\n }\n \n )\n }\n\n}\n\nexport default Metric;\n","import React from \"react\";\nimport Datepicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nclass MonthPicker extends React.Component {\n changeDate(value) {\n let date = new Date(value).yyyymmdd();\n let searchParams = new URL(location.href).searchParams;\n const url = this.props.section === \"SEO\" ? `${window.location.origin + window.location.pathname + \"?date_selection=\" + date}` : `${window.location.origin + window.location.pathname + `?page=${searchParams.get(\"page\")}` + \"&date_selection=\" + date}`\n window.location = url;\n }\n render() {\n let startDate = Date.parse(new Date(this.props.startDate).yyyymmdd());\n let minDate = Date.parse(new Date(\"2019-01-01\").yyyymmdd());\n return (\n <>\n
    \n \n
    \n \n );\n }\n}\n\nexport default MonthPicker;\n","import React, { useState } from \"react\";\nimport onClickOutside from \"react-onclickoutside\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nfunction NumberDropdown(props) {\n const sections = [\n [\"1\", \"button-1\"],\n [\"2\", \"button-2\"],\n [\"3\", \"button-3\"],\n [\"4\", \"button-4\"],\n ];\n const index = props.permission ? props.permission : 1;\n const [open, setOpen] = useState(false);\n const [currentSection, setCurrentSection] = useState(sections[index - 1]);\n NumberDropdown[`handleClickOutside_` + props.item] = () => setOpen(false);\n\n const handleChange = (section) => {\n setCurrentSection([section[0], section[1]]);\n if (props.customPermissions && props.setCustomPermissions) {\n let newRecipients = [...props.customPermissions];\n newRecipients[props.idx].permission = section[0];\n props.setCustomPermissions(newRecipients);\n }\n };\n\n const toggle = () => setOpen(!open);\n return (\n
    \n
    \n
    toggle(!open)}>\n
    \n {currentSection[0]}\n {open ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n
    \n {sections.map((section) => {\n return (\n
    handleChange(section)} className=\"d-flex pointer\" key={uuidv4()}>\n
    \n {section[0] === \"1\" ? (\n 1\n ) : section[0] === \"2\" ? (\n 2\n ) : section[0] === \"3\" ? (\n 3\n ) : section[0] === \"4\" ? (\n 4\n ) : undefined}\n
    \n
    \n );\n })}\n \n
    \n
    \n
    \n
    \n );\n}\n\nconst clickOutsideConfig = {\n handleClickOutside: ({ props }) => NumberDropdown[\"handleClickOutside_\" + props.item],\n};\n\nexport default onClickOutside(NumberDropdown, clickOutsideConfig);\n","import React, { useState } from \"react\";\nimport { Row, Col, Modal, Form, Button } from \"react-bootstrap\";\nimport OrgPickerModal from \"organizations/OrgPickerModal\";\nimport jsDig from \"utils/jsDig\";\n\nexport default function ProfileDropdown(props) {\n let logout = require(\"images/lite/icons/logout.png\");\n logout = ;\n let dpLogo = require(\"images/logos/dp-logo-white.png\");\n dpLogo = ;\n let orgLogo = props.logo ? props.logo : \"\";\n orgLogo = ;\n\n const [show, setShow] = useState(false);\n const handleShow = () => setShow(true);\n\n const [showOrgOptions, setShowOrgOptions] = useState(false);\n const toggleOrgOptions = () => setShowOrgOptions(!showOrgOptions);\n const userOrgDetail = props.user_org_details.find((el) => el.organization_id == jsDig([\"selected_org\", \"id\"], props));\n const getRoleTitle = (role) => {\n switch (role) {\n case \"admin\":\n return \"Admin\";\n case \"manager\":\n return \"Full\";\n case \"specialist\":\n return \"Standard\";\n case \"employee\":\n return \"Restricted\";\n case \"client\":\n return \"Client\";\n default:\n return \"Nobody\";\n }\n };\n let dropdownArrow = require(\"images/lite/icons/chevron-down.png\");\n dropdownArrow = ;\n\n return (\n
    \n {(props.organizations && props.organizations.length) > 0 && props.current_user_is_god && (\n <>\n

    {e.stopPropagation(); toggleOrgOptions()}}>\n Organization: {props.selected_org ? props.selected_org.name : \"None\"}\n \n {dropdownArrow}\n \n

    \n \n \n \n \n \n {props.logo ? orgLogo : dpLogo}\n \n \n \n

    \n {props.selected_org ? props.selected_org.name : \"None\"}\n

    \n \n
    \n \n \n

    {getRoleTitle(jsDig([\"role\"], userOrgDetail))}

    \n \n
    \n \n
    \n \n \n
    \n {props.organizations.length > 1 && (\n

    \n Change Organization\n

    \n )}\n {(getRoleTitle(jsDig([\"role\"], userOrgDetail)) === \"Admin\" || props.current_user_is_god) && (\n \n Organization Settings\n \n )}\n \n
    \n \n )}\n \n \n

    \n {props.current_user.first_name} {props.current_user.last_name}\n

    \n \n My Profile\n \n

    \n {([\"Standard\", \"Full\", \"Admin\"].includes(getRoleTitle(jsDig([\"role\"], userOrgDetail)))) && (\n <>\n \n Alerts\n \n \n )}\n
    \n {(getRoleTitle(jsDig([\"role\"], userOrgDetail)) == \"Admin\" || props.current_user_is_god) && (\n <>\n

    Admin

    \n \n User Access\n \n

    \n \n Client Management\n \n

    \n \n API Access\n \n

    \n
    \n \n )}\n \n {logout}Logout\n \n \n
    \n {props.organizations && props.organizations.length > 0 && (\n \n )}\n
    \n );\n}\n","function RandomQuoteGenerator(props) {\n console.log(props)\n const quotes = [\n {text: \"No job is complete until a selfie is posted.\", author: \"Ashok Kallarakkal\"},\n {text: \"The best way to predict the future is to create it.\", author: \"Abraham Lincoln\"},\n {text: \"If opportunity doesn't knock, build a door.\", author: \"Milton Berle\"},\n {text: \"The world is your \\u{1F9AA}; it's up to you to find the pearls.\", author: \"Chris Gardner\"},\n {text: \"It's what you do right now that makes a difference.\", author: \"Mark Bowden\"},\n {text: \"You don't need to take all the steps, only the next one.\", author: \"Unknown\"},\n {text: \"Boi?\", author: \"Jordan Lagan\"},\n {text: \"Obtain the grain.\", author: \"Kaylee Price\"},\n {text: \"We're no strangers to love. You know the rules and so do I.\", author: \"Rick Astley\"},\n {text: \"Fail fast and cheap.\", author: \"Roger Parent\"},\n {text: \"With increased revenue, comes increased heart rate.\", author: \"Tim Pelletier\"},\n {text: \"Ignore it for now.\", author: \"John Zhang\"},\n {text: \"Do or do not. There is no try.\", author: \"Yoda\"},\n {text: \"I like turtles\", author: \"Jonathan The Zombie\"},\n {text: \"If you're going through hell, keep going\", author: \"Winston Churchill\"},\n {text: \"Walking the dogs, brb!\", author: \"Mike Harrison\"},\n {text: \"All we have to decide is what to do with the time that is given us.\", author: \"Gandalf the Grey\"},\n {text: \"When you arise in the morning, think of what a precious privilege it is to be alive - to breathe, to think, to enjoy, to love.\", author: \"Marcus Aurelius\"},\n {text: \"Just keep swimming.\", author: \"Dory\"}\n ];\n\n const normalQuotes= [\n\n {text: \"The best way to predict the future is to create it.\", author: \"Abraham Lincoln\"},\n {text: \"If opportunity doesn't knock, build a door.\", author: \"Milton Berle\"},\n {text: \"The world is your oyster; it's up to you to find the pearls.\", author: \"Chris Gardner\"},\n {text: \"It's what you do right now that makes a difference.\", author: \"Mark Bowden\"},\n {text: \"You don't need to take all the steps, only the next one.\", author: \"Unknown\"},\n {text: \"I attribute my success to this: I never gave or took any excuse.\", author: \"Florence Nightingale\"},\n {text: \"Today’s accomplishments were yesterday’s impossibilities.\", author: \"Robert H. Schuller\"},\n {text: \"Things may come to those who wait, but only the things left by those who hustle.\", author: \"Unknown\"},\n {text: \"When you arise in the morning, think of what a precious privilege it is to be alive - to breathe, to think, to enjoy, to love.\", author: \"Marcus Aurelius\"}\n ];\n\n const specialQuotes = [\n {text: \"oooooOOHH! It's Mista SooFLAY\", author: \"Jöel Begér\", className: \"rainbow\"}\n ]\n\n let roll = Math.random() * 100;\n let quote = {};\n if (roll < 1) {\n quote = specialQuotes[Math.floor(Math.random() * specialQuotes.length)];\n } else {\n quote = quotes[Math.floor(Math.random() * quotes.length)];\n }\n if (props.organization.name !== \"Digital Position\") {\n quote = normalQuotes[Math.floor(Math.random() * normalQuotes.length)];\n }\n\n return quote\n}\n\nexport default RandomQuoteGenerator;\n","import React, { useState, useEffect } from \"react\";\n\nexport default function StateOptions(props) {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react';\n\nfunction UserDepartment(props) {\n let humanizedDepartment =
    ;\n if (props.department == null || props.department == \"no_department\")\n {\n humanizedDepartment =
    NONE
    \n }\n else\n {\n humanizedDepartment =
    {props.department.split(\"_\")[0].toUpperCase()}
    \n }\n return humanizedDepartment;\n}\n\nexport default UserDepartment;\n","import React from 'react';\n\nfunction UserRole(props) {\n let humanizedRole =
    ;\n if (props.role == \"client\")\n {\n humanizedRole =
    Client
    \n }\n else\n {\n let to_lower = props.role.replace(\"dp_\", \"\")\n let firstCap = to_lower.charAt(0).toUpperCase() + to_lower.slice(1);\n humanizedRole =
    {firstCap}
    \n }\n return humanizedRole;\n}\n\nexport default UserRole;","// This component takes a list of relevant users to choose from and an array of\n// html form namespaces so that the params sent to the server can be structured\n// as needed via hidden inputs.\nimport React, { useState, useEffect } from \"react\";\nimport DefaultAvatar from \"utils/DefaultAvatar\";\nimport CustomAvatar from \"utils/CustomAvatar\";\nimport { Row, Col, Form, Modal, Button, OverlayTrigger, Tooltip } from \"react-bootstrap\";\n\nexport default function UserSelector(props) {\n const [show, setShow] = useState(false);\n const handleClose = () => setShow(false);\n const handleShow = () => setShow(true);\n const fieldsFor = props.fieldsForArray.map((field) => `[${field}]`).join(\"\") + \"[]\";\n const [selectedUsers, setSelectedUsers] = useState(Array.isArray(props.defaultValue) ? props.defaultValue : []);\n const [toggledUsers, setToggledUsers] = useState([]);\n const unSelectedUsers = Object.keys(props.users).filter((userEmail) => !selectedUsers.includes(userEmail));\n const [visibleUsers, setVisibleUsers] = useState([...unSelectedUsers]);\n // Update the list of users you can select from to be only unselected ones\n useEffect(() => {\n setVisibleUsers([...Object.keys(props.users).filter((userEmail) => !selectedUsers.includes(userEmail))]);\n }, [selectedUsers]);\n\n // Update the list of selected users\n useEffect(() => {\n setSelectedUsers(Array.isArray(props.defaultValue) ? props.defaultValue : []);\n }, [props.defaultValue]);\n\n const toggleUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...toggledUsers];\n if (selection.includes(userEmail)) {\n selection.splice(selection.indexOf(userEmail), 1);\n } else {\n selection.push(userEmail);\n }\n setToggledUsers(selection);\n };\n\n const selectUsers = () => {\n props.setServiceAccount && props.setServiceAccount([...selectedUsers, ...toggledUsers]);\n setSelectedUsers([...selectedUsers, ...toggledUsers]);\n setToggledUsers([]);\n handleClose();\n };\n\n const unselectUser = (e) => {\n let userEmail = e.target.getAttribute(\"data-email\");\n let selection = [...selectedUsers];\n selection.splice(selection.indexOf(userEmail), 1);\n props.setServiceAccount && props.setServiceAccount(selection);\n setSelectedUsers(selection);\n props.validator()\n };\n\n const handleCancel = () => {\n setToggledUsers([]);\n handleClose();\n };\n\n const searchUsers = (e) => {\n let filter = e.target.value.toLowerCase();\n let matchedUsers = [];\n Object.keys(props.users).forEach((userEmail) => {\n let user = props.users[userEmail];\n // If the user is not subscribed already && their name or email matches input\n if (!selectedUsers.includes(userEmail) && (user.name.toLowerCase().includes(filter) || userEmail.toLowerCase().includes(filter))) {\n matchedUsers.push(userEmail);\n }\n });\n setVisibleUsers(matchedUsers);\n };\n\n const toggledUsersList = toggledUsers.map((userEmail) => {\n let user = props.users[userEmail];\n return (\n toggleUser(e)}>\n {user.name}\n \n \n );\n });\n const btnDisabled = props.isEnabled !== undefined ? !props.isEnabled : false;\n return (\n <>\n
    \n {selectedUsers.map((userEmail, index) => {\n let user = props.users[userEmail];\n if (user) {\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n return (\n {user.name}}>\n
    unselectUser(e)} className=\"d-inline-block cont mr-2 mb-1\">\n {avatar}\n
    \n \n
    \n \n
    \n
    \n );\n }\n })}\n \n +\n \n \n
    \n \n {props.modalHeader}\n \n \n \n \n
    \n \n searchUsers(e)} placeholder=\"Enter a name or email address...\" />\n
    \n \n
    \n \n \n
      \n {visibleUsers.map((userEmail) => {\n let user = props.users[userEmail];\n let avatar = ;\n if (user.avatar) {\n avatar = ;\n }\n let toggled = toggledUsers.includes(userEmail) ? \"toggled\" : undefined;\n return (\n \n
    • toggleUser(e)} data-email={userEmail} className={toggled}>\n
      \n
      \n
      \n {avatar}\n
      \n \n
      \n
      \n  {user.name}\n  {userEmail}\n
      \n
      \n
    • \n
      \n );\n })}\n
    \n \n
    \n
    \n \n
    \n

    \n To be selected:\n

    \n {toggledUsersList}\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n );\n}\n","import jsDig from 'utils/jsDig';\n\nexport default (value, baseCurrency, selectedCurrency) => {\n const decimalPlaces = countDecimals(value);\n const allRates = require(\"data/currencyRates.json\");\n const conversionRate = jsDig([baseCurrency, selectedCurrency], allRates);\n const newValue = (value * conversionRate).toFixed(decimalPlaces);\n return newValue;\n}\n\nconst countDecimals = function (value) {\n if (!value) return 0;\n if (Math.floor(value.valueOf()) === value.valueOf()) return 0;\n return value.toString().split(\".\")[1].length || 0; \n}","const ppcOrderArray = [\n \"spend\",\n \"impressions\",\n \"impressionsTopRate\",\n \"impressionsAbsTopRate\",\n \"searchImpressionsShare\",\n \"views\",\n \"viewableImpressions\",\n \"clicks\",\n \"phoneCalls\",\n \"inStoreVisits\",\n \"cpsv\",\n \"earnedSubscribers\",\n \"earnedLikes\",\n \"earnedShares\",\n \"cpc\",\n \"cpv\",\n \"viewCtr\",\n \"ctr\",\n \"clickConversions\",\n \"viewConversions\",\n \"totalConversions\",\n \"cvr\",\n \"videoCvr\",\n \"clickRevenue\",\n \"viewRevenue\",\n \"shopifyRevenue\",\n \"totalRevenue\",\n \"clickCpa\",\n \"totalCpa\",\n \"clickRoas\",\n \"shopifyRoas\",\n \"totalRoas\",\n \"clickAov\",\n \"totalAov\",\n];\n\nconst seoOrderArray = [\n \"traffic\",\n \"searchVisibility\",\n \"topThreeKeywords\",\n \"topThreeKeywordsPercentage\",\n \"topTenKeywords\",\n \"topTenKeywordsPercentage\",\n \"topTwentyKeywords\",\n \"topTwentyKeywordsPercentage\",\n \"averagePosition\",\n \"bounceRate\",\n \"conversions\",\n \"cvr\",\n \"revenue\",\n \"aov\",\n];\nexport default (service, array) => {\n if (service == \"ppc\") {\n array.sort((a, b) => ppcOrderArray.indexOf(a) - ppcOrderArray.indexOf(b));\n return array;\n } else if (service == \"seo\") {\n array.sort((a, b) => seoOrderArray.indexOf(a) - seoOrderArray.indexOf(b));\n return array;\n }\n};\n","export default (id, section) => {\n $.ajax({\n type: \"POST\",\n url: \"/datapulse/dismiss-errors\",\n data: {\n section_id: id,\n section_name: section\n },\n });\n};\n","import React from \"react\";\n\nexport default (metric, value, subHeader) => {\n // This function is used by both LiteLineChart and LiteMetricTable\n // subHeader is only used by LiteMetricTable\n const monetaryMetrics0Precision = [\"spend\", \"revenue\", \"customer_acquisition_cost\"]\n const monetaryMetrics2Precision = [\"roas\", \"cpa\", \"mer\", \"aov\"]\n const standardMetrics2Precision = [\"frequency\"]\n const percentageMetrics2Precision = [\"conversion_rate\", \"open_rate\", \"ctr\", \"bounce_rate\", \"open_rate\"]\n const percentageMetrics0Precision = [\"stacked\"]\n // 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 let multiplier = 1;\n if (subHeader == \"Y/Y\") {\n suffix = \"%\";\n } else {\n if (standardMetrics2Precision.includes(metric)) {\n precision = 2;\n }\n if (percentageMetrics2Precision.includes(metric)) {\n precision = 2;\n suffix = \"%\";\n multiplier = 100;\n }\n if (percentageMetrics0Precision.includes(metric)) {\n suffix = \"%\";\n }\n if (monetaryMetrics0Precision.includes(metric)) {\n prefix = \"$\";\n }\n if (monetaryMetrics2Precision.includes(metric)) {\n precision = 2;\n prefix = \"$\";\n }\n }\n if (subHeader == \"Diff\") {\n if (value > 0) {\n prefix = \"+\" + prefix;\n }\n }\n\n value = parseFloat(value) * multiplier;\n\n // Conditional formatting for large numbers on ticks\n if (subHeader === \"tick\") {\n const absValue = Math.abs(value);\n if (absValue >= 1e9) {\n value = (value / 1e9).toFixed(absValue % 1e9 < 1e8 ? 0 : 1).replace(/\\.0+$/, '') + 'b';\n } else if (absValue >= 1e6) {\n value = (value / 1e6).toFixed(absValue % 1e6 < 1e5 ? 0 : 1).replace(/\\.0+$/, '') + 'm';\n } else if (absValue >= 1e3) {\n value = (value / 1e3).toFixed(absValue % 1e3 < 100 ? 0 : 1).replace(/\\.0+$/, '') + 'k';\n } else {\n // For values < 1000, round to variable precision and remove trailing zeros\n value = value.toFixed(precision).replace(/\\.00$/, '').replace(/(\\.\\d)0$/, '$1');\n }\n } else {\n value = value.toFixed(precision);\n let valueParts = value.toString().split('.');\n value = valueParts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + (valueParts.length === 2 ? '.' + valueParts[1] : '');\n }\n\n let finalValue = `${prefix}${value}${suffix}`\n finalValue = finalValue.replace('$-', '-$')\n\n return finalValue\n};\n","export default (currency) => {\n let currencyObj = {\n prefix: \"\",\n suffix: \"\",\n symbol: \"\"\n }\n if (currency == \"USD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"EUR\") {\n currencyObj.prefix = \"€\"\n currencyObj.symbol = \"€\"\n } else if (currency == \"JPY\") {\n currencyObj.prefix = \"JP¥\"\n currencyObj.symbol = \"¥\"\n } else if (currency == \"GBP\") {\n currencyObj.prefix = \"£\"\n currencyObj.symbol = \"£\"\n } else if (currency == \"AUD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"CAD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"CHF\") {\n currencyObj.prefix = \"fr.\"\n currencyObj.symbol = \"fr.\"\n } else if (currency == \"CNY\") {\n currencyObj.prefix = \"¥\"\n currencyObj.symbol = \"¥\"\n } else if (currency == \"HKD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"NZD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"AED\") {\n currencyObj.prefix = \"د.إ\"\n currencyObj.symbol = \"د.إ\"\n } else if (currency == \"INR\") {\n currencyObj.prefix = \"₹\"\n currencyObj.symbol = \"₹\"\n } else if (currency == \"SGD\") {\n currencyObj.prefix = \"$\"\n currencyObj.symbol = \"$\"\n } else if (currency == \"KRW\") {\n currencyObj.prefix = \"₩\"\n currencyObj.symbol = \"₩\"\n }\n\n return currencyObj;\n}","export default (date, metricKey, seoMetric = false) => {\n const metric = metricKey.toLowerCase();\n let inflated = false;\n if (!seoMetric) {\n if (metric.includes(\"roas\")) {\n inflated = true;\n } else if (metric.includes(\"cpa\")) {\n inflated = true;\n } else if (metric.includes(\"revenue\")) {\n inflated = true;\n } else if (metric.includes(\"conversions\")) {\n inflated = true;\n }\n }\n \n const today = moment();\n let lockDate = moment(date);\n if (inflated) {\n lockDate.endOf(\"month\").add(30, \"days\")\n } else {\n lockDate.endOf(\"month\").add(1, \"days\")\n }\n\n return today >= lockDate;\n};\n","export default (sectionName, metricKey, diff) => {\n let lessIsGood = false;\n const metric = metricKey.toLowerCase();\n if (metric.includes(\"cpc\")) {\n lessIsGood = true;\n } else if (metric.includes(\"cpa\")) {\n lessIsGood = true;\n } else if (metric.includes(\"spend\") && sectionName == \"goalsAndProjections\") {\n lessIsGood = true;\n } else if (metric.includes(\"bounce_rate\")) {\n lessIsGood = true;\n } else if (metric.includes(\"cpv\")) {\n lessIsGood = true;\n }\n \n const negative = lessIsGood ? diff >= 0 : diff < 0;\n\n return negative;\n};\n","export default (p, o) => {\r\n return p.reduce((xs, x) => (xs && (xs[x] || xs[x] == 0)) ? xs[x] : null, o);\r\n}\r\n","import jsDig from \"utils/jsDig.js\";\r\n\r\nexport default (service, section, metric, dashboards, enabledServices) => {\r\n // This could be expanded if we ever need more customized metrics\r\n if (service == \"ppc\") {\r\n const services = [\"search\", \"social\", \"display\", \"video\"].filter((serviceName) => enabledServices[serviceName] == true);\r\n let canBuild = false;\r\n\r\n if (metric.includes(\"shopify\")) {\r\n canBuild = true;\r\n }\r\n\r\n if (section == \"campaignGroups\" || section == \"performanceByChannel\") {\r\n canBuild = true;\r\n }\r\n\r\n if (section == \"goalsAndProjections\" || section == \"allKpisVsPreviousYear\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"goalsAndProjections\" || s[\"name\"] == \"allKpisVsPreviousYear\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"primaryKpiCharts\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"primaryKpiCharts\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"primaryKpiTables\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"primaryKpiTables\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n if (section == \"spendAllocation\") {\r\n services.forEach((serviceName) => {\r\n const dbOrd = jsDig([serviceName], dashboards);\r\n const subGroupSections = dbOrd.filter((s) => (s[\"enabled\"] == true) && s[\"name\"] == \"spendAllocation\");\r\n subGroupSections.forEach((subGroupSection) => {\r\n if (jsDig([\"metrics_data\", metric], subGroupSection) == \"1\") {\r\n canBuild = true;\r\n }\r\n })\r\n })\r\n }\r\n\r\n return canBuild;\r\n } else {\r\n return true;\r\n }\r\n}\r\n","export default (message, extraClass = false) => {\n const alertBox = document.querySelector(\"#lite-alert\");\n if (alertBox) {\n alertBox.textContent = message;\n if (extraClass) {\n alertBox.classList.add(extraClass);\n }\n alertBox.style.display = \"block\";\n void alertBox.offsetWidth;\n alertBox.style.opacity = 1;\n setTimeout(() => {\n alertBox.style.opacity = 0;\n setTimeout(() => {\n alertBox.style.display = \"none\";\n }, 500);\n }\n , 6000);\n } else {\n console.log(\"Alert box not found\")\n }\n}","export default (conditions, name) => {\r\n const containsOr = conditions[\"contains\"][\"or\"]\r\n const containsAnd = conditions[\"contains\"][\"and\"]\r\n const notContainsOr = conditions[\"notContains\"][\"or\"]\r\n const notContainsAnd = conditions[\"notContains\"][\"and\"]\r\n let passes = true;\r\n if (name && name != \"\") {\r\n if (containsOr && containsOr.length > 0) {\r\n const nameContains = containsOr.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (!nameContains.includes(true)) {\r\n passes = false\r\n }\r\n }\r\n if (containsAnd && containsAnd.length > 0) {\r\n const nameContains = containsAnd.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (nameContains.includes(false)) {\r\n passes = false\r\n }\r\n }\r\n if (notContainsOr && notContainsOr.length > 0) {\r\n const nameNotContains = notContainsOr.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (!nameNotContains.includes(false)) {\r\n passes = false\r\n }\r\n }\r\n if (notContainsAnd && notContainsAnd.length > 0) {\r\n const nameNotContains = notContainsAnd.map((keyword) => name.toLowerCase().includes(keyword.toLowerCase()))\r\n if (nameNotContains.includes(true)) {\r\n passes = false\r\n }\r\n }\r\n } else {\r\n passes = false;\r\n }\r\n\r\n return passes\r\n};\r\n","export default (key, value, page) => {\r\n let searchParams = new URL(location.href).searchParams;\r\n if (key === undefined && page === \"services\") {\r\n key = \"sub_page\";\r\n if (searchParams.toString().includes(\"seo\")) {\r\n value = \"ppc\";\r\n } else {\r\n value = \"seo\";\r\n }\r\n }\r\n searchParams.set(key, value);\r\n searchParams = \"?\" + searchParams.toString();\r\n var newurl = `${window.location.origin}${window.location.pathname}${searchParams}`;\r\n window.history.pushState({ path: newurl }, \"\", newurl);\r\n};\r\n","import React, { useCallback, useMemo, useState } from \"react\";\nimport isHotkey from \"is-hotkey\";\nimport { Editable, withReact, useSlate, Slate } from \"slate-react\";\nimport { Editor, Transforms, createEditor } from \"slate\";\nimport { withHistory } from \"slate-history\";\n\nimport { Button, Icon, Toolbar } from \"./components\";\n\nconst HOTKEYS = {\n \"mod+b\": \"bold\",\n \"mod+i\": \"italic\",\n \"mod+u\": \"underline\",\n \"mod+`\": \"code\"\n};\n\nconst LIST_TYPES = [\"numbered-list\", \"bulleted-list\"];\n\nconst RichTextEditor = (props) => {\n const [value, setValue] = useState(initialValue);\n const renderElement = useCallback(props => , []);\n const renderLeaf = useCallback(props => , []);\n const editor = useMemo(() => withHistory(withReact(createEditor())), []);\n\n return (\n <>\n
    \n {\n setValue(value)\n props.setEmailBody(value)\n const isAstChange = editor.operations.some(\n op => 'set_selection' !== op.type\n )\n if (isAstChange) {\n // Save the value to Local Storage.\n const content = JSON.stringify(value)\n }\n }}>\n \n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n {\n for (const hotkey in HOTKEYS) {\n if (isHotkey(hotkey, event)) {\n event.preventDefault();\n const mark = HOTKEYS[hotkey];\n toggleMark(editor, mark);\n }\n }\n }}\n />\n \n
    \n \n );\n};\n\nconst toggleBlock = (editor, format) => {\n const isActive = isBlockActive(editor, format);\n const isList = LIST_TYPES.includes(format);\n\n Transforms.unwrapNodes(editor, {\n match: n => LIST_TYPES.includes(n.type),\n split: true\n });\n\n Transforms.setNodes(editor, {\n type: isActive ? \"paragraph\" : isList ? \"list-item\" : format\n });\n\n if (!isActive && isList) {\n const block = { type: format, children: [] };\n Transforms.wrapNodes(editor, block);\n }\n};\n\nconst toggleMark = (editor, format) => {\n const isActive = isMarkActive(editor, format);\n\n if (isActive) {\n Editor.removeMark(editor, format);\n } else {\n Editor.addMark(editor, format, true);\n }\n};\n\nconst isBlockActive = (editor, format) => {\n const [match] = Editor.nodes(editor, {\n match: n => n.type === format\n });\n\n return !!match;\n};\n\nconst isMarkActive = (editor, format) => {\n const marks = Editor.marks(editor);\n return marks ? marks[format] === true : false;\n};\n\nconst Element = ({ attributes, children, element }) => {\n switch (element.type) {\n case \"block-quote\":\n return
    {children}
    ;\n case \"bulleted-list\":\n return
      {children}
    ;\n case \"heading-one\":\n return

    {children}

    ;\n case \"heading-two\":\n return

    {children}

    ;\n case \"list-item\":\n return
  • {children}
  • ;\n case \"numbered-list\":\n return
      {children}
    ;\n default:\n return

    {children}

    ;\n }\n};\n\nconst Leaf = ({ attributes, children, leaf }) => {\n if (leaf.bold) {\n children = {children};\n }\n\n if (leaf.code) {\n children = {children};\n }\n\n if (leaf.italic) {\n children = {children};\n }\n\n if (leaf.underline) {\n children = {children};\n }\n\n return {children};\n};\n\nconst BlockButton = ({ format, icon }) => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n toggleBlock(editor, format);\n }}\n >\n {icon}\n \n );\n};\n\nconst MarkButton = ({ format, icon }) => {\n const editor = useSlate();\n return (\n {\n event.preventDefault();\n toggleMark(editor, format);\n }}\n >\n {icon}\n \n );\n};\n\nconst initialValue = [\n {\n type: \"paragraph\",\n children: [\n { text: \"\" }\n ]\n }\n];\n\nexport default RichTextEditor;\n","import React, { useState } from \"react\";\nimport { Table, Form, Button, } from \"react-bootstrap\";\nimport RichTextEditor from './RichTextEditor'\nimport escapeHtml from 'escape-html'\nimport { Text } from 'slate'\n\nexport default function WriteMail(props) {\n const emails = [\n \"support@digitalposition.com\",\n \"datapulse@digitalposition.com\"\n ]\n\n const handleSubmit = (e) => {\n e.preventDefault()\n $.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: \"/datapulse/admin/send-email\",\n\t\t\tdata: {\n\t\t\t\temailBody: emailBody.map((node) => serialize(node)).join(''),\n\t\t\t\temailFrom: emailFrom,\n emailTo: emailTo.split(\",\").map(email => email.trim()),\n emailCc: showCC ? emailCC.split(\",\").map(email => email.trim()) : [],\n emailBcc: showBCC ? emailBCC.split(\",\").map(email => email.trim()) : [],\n subject: subject\n\t\t\t},\n\t\t});\n location.reload()\n }\n\n const [emailBody, setEmailBody] = useState([])\n const [emailFrom, setEmailFrom] = useState(\"support@digitalposition.com\")\n const [emailTo, setEmailTo] = useState(\"\")\n const [emailCC, setEmailCC] = useState(\"\");\n const [emailBCC, setEmailBCC] = useState(\"\");\n const [subject, setSubject] = useState(\"\")\n const [showCC, setShowCC] = useState(false);\n const [showBCC, setShowBCC] = useState(false);\n\n const toggleCC = () => setShowCC(!showCC);\n const toggleBCC = () => setShowBCC(!showBCC);\n\n const serialize = node => {\n if (Text.isText(node)) {\n let string = escapeHtml(node.text)\n if (node.bold) {\n string = `${string}`\n }\n if (node.italic) {\n string = `${string}`\n }\n if (node.underline) {\n string = `${string}`\n }\n if (node.code) {\n string = `${string}`\n }\n return string\n }\n \n const children = node.children.map(n => serialize(n)).join('')\n \n switch (node.type) {\n case 'heading-one':\n return `

    ${children}

    `\n case 'heading-two':\n return `

    ${children}

    `\n case 'numbered-list':\n return `
      ${children}
    `\n case 'bulleted-list':\n return `
      ${children}
    `\n case 'list-item':\n return `
  • ${children}
  • `\n case 'quote':\n return `

    ${children}

    `\n case 'paragraph':\n return `

    ${children}

    `\n case 'link':\n return `${children}`\n default:\n return children\n }\n }\n\n return(\n <>\n
    \n

    Send E-Mail from DataPulse

    \n
    \n
    \n From:\n setEmailFrom(e.target.value)}\n style={{}}>\n {emails.map((email, index) => {\n return (\n \n );\n })}\n \n
    \n
    \n To:\n setEmailTo(e.target.value)}\n value={emailTo}\n style={{}}/>\n
    \n
    \n\n \n \n {showCC && (\n setEmailCC(e.target.value)}\n value={emailCC}\n />\n )}\n \n\n \n \n {showBCC && (\n setEmailBCC(e.target.value)}\n value={emailBCC}\n />\n )}\n \n\n Subject:\n setSubject(e.target.value)}\n value={subject}\n style={{}}/>\n\n \n\n
    \n \n
    \n \n \n )\n}","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { css, cx } from '@emotion/css';\n\nexport const Button = React.forwardRef(\n ({ className, active, reversed, ...props }, ref) => (\n \n )\n);\n\nexport const EditorValue = React.forwardRef(\n ({ className, value, ...props }, ref) => {\n const textLines = value.document.nodes\n .map(node => node.text)\n .toArray()\n .join(\"\\n\");\n return (\n \n \n Slate's value as text\n \n \n {textLines}\n \n \n );\n }\n);\n\nexport const Icon = React.forwardRef(({ className, ...props }, ref) => (\n \n));\n\nexport const Instruction = React.forwardRef(({ className, ...props }, ref) => (\n \n));\n\nexport const Menu = React.forwardRef(({ className, ...props }, ref) => (\n * {\n display: inline-block;\n }\n\n & > * + * {\n margin-left: 15px;\n }\n `\n )}\n />\n));\n\nexport const Portal = ({ children }) => {\n return ReactDOM.createPortal(children, document.body);\n};\n\nexport const Toolbar = React.forwardRef(({ className, ...props }, ref) => (\n \n));\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","CampaignGroupList","props","state","items","this","push","name","filter_string","filter_type","conditions","setState","oldItem","find","x","filter_condition","event","target","value","conditionIndex","itemIndex","splice","itemList","item","index","containsList","condition","key","parentForm","onChange","handleConditionAndOrChange","className","style","height","type","handleConditionInputChange","onClick","removeCondition","background","notContainsList","handleItemNameChange","removeItem","handleItemFilterTypeChange","width","placeholder","propertyName","handleItemInputChange","float","colSpan","handleNewContainsCondition","handleNewNotContainsCondition","handleNewBucket","React","List","defaultPropertyValues","currentItemProperties","propertyNames","forEach","element","removeListItem","bind","updateListItem","addListItem","handleNewItemChange","$","ajax","url","async","success","response","findIndex","properties","additionalFields","listType","conversion_id","conversion_type","conversionType","i","length","data","section_type","sectionType","section_id","sectionId","additional_fields","inputs","parentElement","children","input","tagName","newItemRow","property","listStyle","ListItem","checkStyle","counter","prop","prototype","hasOwnProperty","call","handleInputChange","itemRow","display","MetricTable","window","innerWidth","lockMetric","metricName","prevState","lockColumns","headerOrder","values","includes","sort","y","metricTitleX","_","startCase","camelCase","slice","toUpperCase","metricTitleY","cloneDeep","table","date","moment","compactView","userDefaultView","selectedPlatform","prevProps","addEventListener","updateWidth","metricTitle","removeEventListener","months","mobileMonths","headerClass","ppc","renderHeader","scope","left","indexOf","padding","updateLock","marginBlock","flexDirection","fill","labelPlacement","control","color","checked","label","responsive","border","backgroundColor","parseInt","substring","year","num","client","rowNumber","thisYearValue","jsDig","toString","lastYearValue","baseCurrency","displayCurrency","bottomRow","MetricTableOld","scrollMesage","scrollMessage","margin","MetricTablePdf","formatted_metric","opts","isNull","lastYearNull","thisYear","toLowerCase","currencyDetails","getCurrencyDetails","prefix","commas","precision","suffix","MetricTableRow","current","last_year","month","Date","getMonth","isThisYearNull","isLastYearNull","shouldRenderBottomBorder","yy","firstValueClass","secondValueClass","thirdValueClass","Number","isFinite","isNaN","textAlign","minWidth","toFixed","lastYear","numberWithCommas","replace","MetricTableRowOld","MetricTableRowPdf","minHeight","websitePlatforms","backgroundColors","sections","permissionsLabel","TopFlyout","showOrNot","shopLogo","require","src","bcLogo","useState","collapse","setCollapse","teamSupports","teamLeads","section","account_leads","account_supports","toggleCollapse","next","chevronLeft","chevronRight","chevronTop","chevronDown","barShow","departments","arrayOfUsers","entries","users","avatarTeamLead","personal","info","email","personalInfo","department","personalInfoToolTip","organization","job_title","phone_number","legendColor","title","avatar","borderStyle","borderWidth","borderColor","dim","arrayOfTeamSupport","user","avatarTeamSupport","placement","overlay","listStyleType","clientUsers","client_account","client_users","clientUsersOverage","filter","el","idx","Array","arrayOfClients","renderAvatarClients","Math","ceil","company_name","arr","lastInfo","join","bg","renderDepartmentsLegends","split","size","accessLegends","accessNames","team_access","accessLevels","access","Full","Restricted","websitePlatformLogo","renderAccessesList","accessColor","renderAccessesLegends","permissionsExplainations","comfortLevel","zIndex","maxWidth","xs","global_website_permissions","flexGrow","fontSize","position","top","marginTop","custom_website_permissions","web","marginBottom","fontWeight","website","permission","clientWebsite","website_platform","transition","client_logo","maxHeight","paddingBottom","search_section","enabled","display_section","video_section","social_section","href","undefined","seo_section","role","custom_website_permissions_enabled","delay","show","hide","variant","custom","paddingRight","paddingLeft","visibility","login_type","ZoomRedirectPopup","datapulsePreview","datapulseLogo","onHide","closeButton","sm","lineHeight","App","logo","icon","tabletImg","fluid","Activity","logs","renderLogs","setRenderLogs","startDate","dateParam","date_param","paddingTop","log","userEmail","clients","time","updated_at","format","userName","createOrUpdate","version","fieldNames","log_data","valuesChange","console","hasClass","removeClass","addClass","marginLeft","wordBreak","field","detailsChange","JSON","stringify","landing_page_id","landing_page_groups","campaign","campaign_groups","campaign_id","campaign_groups_social","campaign_social_id","alert","min","scrollTo","behavior","bottom","right","Admin","tabLocation","hashLoc","location","hash","defaultActiveKey","activeKey","onSelect","k","selectTab","eventKey","mailingLists","MailingList","description","emails","emailInputValue","isEditingName","isEditingDescription","descriptionInputValue","nameInputValue","mailingList","test","DP_FLASH","message","newEmails","mailing_list","dataType","error","desc","defaultValue","updateName","as","updateDescription","noGutters","md","addEmail","block","removeEmail","deleteMailingList","MailingLists","list_id","newMailingLists","l","createMailingList","AlertSubscriptions","sectionName","returnedData","section_name","removalSuccessful","clientRow","getAttribute","addUser","removeUser","searchClients","defaultUser","default_user","ManageSubsByClient","subscribedUsers","subscribed_users","addUserCallback","pointerEvents","wrapper","clientName","client_name","ManageSubsByUser","selectedUser","disabled","SubscribeToAlertsClientConfig","searchUsers","userSearchList","text","val","trim","contentType","match","SubsByClient","document","getElementsByClassName","striped","rowSpan","search_subs","search_section_id","social_subs","social_section_id","display_subs","display_section_id","video_subs","video_section_id","seo_subs","seo_section_id","SubsByUser","searchVisible","arrow","querySelector","classList","contains","remove","add","filteredUsers","count","usersList","changeUser","bigAvatar","avatar_big","toggleSearch","SubscribeUsersModal","newSubs","unsubscribedUsers","sectionTitle","visibleUsers","toggleUser","verticalAlign","selected","subscribeUsers","setShow","setCount","snoozed","setSnooze","handleClose","snoozeSrc","scriptName","script_name","a","charAt","showBtnText","increment","prevCount","decrement","snoozeAlert","Alerts","alertId","daysToSnooze","days_to_snooze","resolved","resolved_by","ids","refresh","redirectUrl","alert_ids","redirect_url","AlertView","view","AccountAlerts","AlertSummary","resolveAlert","resolveAll","allAlerts","alerts","todaysAlerts","yesterdaysAlerts","otherAlerts","today","yesterday","getFullYear","getDate","twoDaysAgo","quote","RandomQuoteGenerator","allResolved","resolvedView","author","toLocaleDateString","userSubscriptions","Alert","showDetails","capitalize","alert_type","emergency","secondary_text","toggleDetails","toggleResolved","dangerouslySetInnerHTML","__html","AlertList","shouldRender","showSeo","showSearch","showSocial","showDisplay","showVideo","alertTemp","AlertContainer","companyName","companyLogo","logos","alertList","reload","refreshPage","LiteAlerts","authenticityToken","content","searchTerm","setSearchTerm","setClients","selectedClient","setSelectedClient","showModal","setShowModal","filteredClients","handleToggleDetails","alertItem","currentTarget","closest","slideToggle","toggleClass","class","handleViewAlerts","clientId","fetch","method","headers","body","client_account_id","then","json","showAlert","prevClients","prevClient","alertCreatedAt","created_at","toLocaleString","hour","minute","hour12","day","alert_id","api_platforms","platforms","google_ads_mcc_id","mccId","setMccId","setShowAlert","useEffect","showAlertCondition","google_ads","authenticated","openAuthPage","authUrl","open","platformKey","platform","apiTitle","isGoogleService","deauth_url","faClass","inline","googleBtn","auth_url","alt","renderAuthButton","PlatformSpecific","semrush_api_key","semrushApiKey","setSemrushApiKey","justifyContent","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","paddingBot","AccountConfig","setTabLocation","isPpcEnabled","setIsPpcEnabled","isSeoEnabled","servicePicker","enabled_services","encType","Basic","defaultLogo","fileName","setFileName","imageURL","setImageURL","maxLength","client_company","lg","account_type","legal_company_name","street_address","unit_building_number","city","xl","state_province","postal_code","country","files","createObjectURL","ClientUsers","selectedUsers","setSelectedUsers","setClientUsers","newUsers","setNewUsers","hiddenFields","firstName","lastName","accountAccessIds","addNewUser","newClientUsers","selectedAccountId","modalHeader","fieldsForArray","bigAvatars","CreateNewUser","errorCheck","nextPage","first_name","last_name","employeeType","fNameError","lNameError","emailError","isError","errors","checkAll","visibleClients","onSubmit","handleSubmit","createUserPath","pathMethod","change","handleNext","backPage","accessAll","htmlFor","toggleAccess","InvoiceRecipients","billing_config","invoice_recipients","invoiceRecipients","setInvoiceRecipients","invoiceRecipient","uuidv4","newInvoices","PointsOfContact","initialDate","group","ppc_start_date","seo_start_date","labelCheck","white_label_service","checkLabel","setCheckLabel","utcOffset","setPpcWhiteLabelService","setSeoWhiteLabelService","seo_points_of_contact","ppc_points_of_contact","setServiceAccount","setSeoPointsOfContact","setPpcPointsOfContact","setSeoAccountLeads","setSeoAccountSupports","seodot","ppcdot","disableddot","Services","setIsSeoEnabled","Agreement","ppcFeeStructure","ppcFees","flat_fee","over_ad_spend","percentage_fee","flat_fee_enabled","percentage_fee_enabled","percentage_fee_total_over","ppcFeesStructure","setPPCFeesStructureDetail","amount","status","ppcFeesDetail","setPPCFeesDetail","handleChange","newArray","customClass","detail","flatFeeEnabled","percentageEnabled","greyout1","greyout2","marginRight","remain","fee","ppcFeeEnabled","greyout","enable","newSEOFeeEnabled","handleFeeChangeEnable","frequency","billingConfig","setBillingConfig","uniqueFee","setUniqueFee","feeDetail","serviceEnabled","setServiceEnabled","newOverallSpend","newFlatFeeEnabled","newPercentageFeeEnabled","newFields","handleDeleteFee","arrayForChange","PpcSupportingRoles","serviceName","accountLeads","accountSupports","validator","setServiceAccountLeads","setServiceAccountSupports","SEO","seoFeeStructure","seoFees","seoFeesStructure","setSEOFeesStructureDetail","seoFeesDetail","setSEOFeesDetail","seoFeeEnabled","SideBox","Team","teamAccess","TeamBox","thumbnail","Youtube","Shopify","SEMRush","adminAccessCheck","standardAccessCheck","semAccessCheck","dataFeedAccessCheck","checkMain","collaborateAccessCheck","editAccessCheck","readAndAnalyzeAccessCheck","manageUsersCheck","semSetupCheck","setSemSetupCheck","mainCheck","setMainCheck","check1","setCheck1","check2","setCheck2","controlid","Details","additionalWebsites","primarySite","setPrimarySite","additionalWebs","setAdditionalWebs","setPlatform","shopify_url","shopifyUrl","setShopifyUrl","shopifyIcon","authenticateButton","paramsObject","xhr","permission_url","setShopifyButton","resetButton","myObject","shopifyButton","renderAdditionalWebs","handleOnChange","newitem","development_capabilities","creative_capabilities","Permissions","customPermissions","setCustomPermissions","required","webName","newPermissions","Website","Access","useContext","SettingsContext","handshake","userType","AccountHome","dpLogo","chat","AccountIds","googleAds","microsoftAds","metaAds","tiktokAds","GoogleAnalytics","semrush","amazonAdsIcon","amazonSellerIcon","googleSheetsIcon","mailchimpIcon","pinterestIcon","klaviyoIcon","microsoftExample","microsoftMessage","pinterestExample","pinterestMessage","klaviyoMessage","projectIdImg","semrushExample","facebookObjective","setFacebookObjective","tiktokObjective","setTiktokObjective","semrushTargetLocation","setSemrushTargetLocation","shopifyRevenueType","setShopifyRevenueType","shopifyCountryFilter","setShopifyCountryFilter","googleAdsId","setGoogleAdsId","microsoftId","setMicrosoftId","metaId","setMetaId","tiktokId","setTiktokId","googleAnalyticsId","setGoogleAnalyticsId","semrushId","setSemrushId","amazonAdsId","setAmazonAdsId","amazonSellerCountry","setAmazonSellerCountry","googleSheetsUrl","setGoogleSheetsUrl","mailchimpServerPrefix","setMailchimpServerPrefix","pinterestAdsId","setPinterestAdsId","klaviyoApiKey","setKlaviyoApiKey","klaviyoConversionMetric","setKlaviyoConversionMetric","handleShopifyRevenueTypeChange","phoneNumberAutoFormat","phoneNumber","endsWithHyphen","endsWith","number","authenticateShopifyFunction","button","innerHTML","removeAttribute","onclick","resetShopifyToken","deauthorizeAmazonSeller","credential_id","ok","pullGoogleSheetsData","deleteGoogleSheetsData","authorizeMailchimp","deauthorizeMailchimp","googleAnalyticsErrors","data_pull_errors","googleAdsErrors","microsoftAdsErrors","metaAdsErrors","tiktokAdsErrors","semrushErrors","shopifyErrors","googleSheetsErrors","amazonAdsErrors","amazonSellerErrors","mailchimpErrors","pinterestErrors","klaviyoErrors","formattedId","facebook_conversion_objectives","objectiveName","objectiveInt","c","tiktok_conversion_objectives","amazon_profile_ids","amazon_seller_credentials","cred","mailchimp_credentials","klaviyo_metrics","metricId","createContext","AccountSettingsButton","cog","isModalOpen","setModalOpen","toggleModal","employees","teamUsers","setTeamUsers","setCompanyName","setBaseCurrency","setDisplayCurrency","defaultObjective","setDefaultObjective","overviewDatasource","setOverviewDatasource","setWebsite","clientLogo","setClientLogo","clientLogoUrl","setClientLogoUrl","googleAdsCustomConversionsEnabled","setGoogleAdsCustomConversionsEnabled","googleAdsCustomConversions","setGoogleAdsCustomConversions","metaAdsCustomConversions","setMetaAdsCustomConversions","googleAdsScripts","setGoogleAdsScripts","dataPulseScripts","setDataPulseScripts","setScriptVariables","daily_yields","inflation","setInflation","contextValue","Provider","modalRef","download","activeTab","setActiveTab","xIcon","showModalMenu","setShowModalMenu","modalMenuRef","modalButtonRef","handleClickOutside","handleFormSubmit","configForm","formData","FormData","append","dashboard_objective","overview_datasource","base_currency","display_currency","google_ads_id","microsoft_id","meta_id","tiktok_id","google_analytics_id","shopify_revenue_type","facebook_conversion_objective","tiktok_conversion_objective","semrush_target_location","semrush_id","shopify_country_filter","amazon_ads_id","amazon_seller_country","google_sheets_url","mailchimp_server_prefix","pinterest_ads_id","klaviyo_api_key","klaviyo_conversion_metric","onScroll","scrollHeight","scrollTop","clientHeight","stopPropagation","refreshPreference","default_refresh_preference","accountId","alreadyPulling","current_data_pulls","AccountUsers","setUsers","handleRemoveUser","prevUsers","activeString","active","AddUser","isModalVisible","setIsModalVisible","foundUsers","setFoundUsers","newUser","setNewUser","debouncedSearch","useCallback","debounce","URLSearchParams","cancel","hideModal","handleNewUserChange","alignSelf","bordered","hover","u","handleAddUser","gap","level","default","hasError","userToAdd","getElementById","isValidEmail","createNewUser","isPrimarySiteValid","setPrimarySiteValid","validatePrimarySite","RegExp","onBlur","newObjective","newOverviewDatasource","newBaseCurrency","newDisplayCurrency","file","fileUrl","DataPulseScripts","script","handleCheckbox","optionName","handleScriptVariableChange","GoogleAdsCustomConversions","customConversionsEnabled","setCustomConversionsEnabled","customConversions","setCustomConversions","handleCustomConversionChange","newCustomConversions","customConversion","deleteCustomConversion","ScriptBoxes","brandedKeywords","scriptBoxClass","columnGap","kwNum","newKeywords","handleBrandedKeywordChange","newBrandedKeywords","exclude_nb_in_shopping","branded_keywords","deleteBrandedKeyword","newKey","addBrandedKeyword","textDecoration","Inflation","csvUploadRef","lodashClonedeep","transfer","paste","calendarBolt","setSelectedPlatform","yieldMetrics","accept","fileInput","yieldTable","reader","FileReader","extension","pop","processCsv","yields","tableColumns","first","currentRow","currentColumn","newInflation","cellValue","readAsText","onload","uploadCsv","refs","copyInflationArray","visability","tableIndex","blank","LastDataPullStatus","errorIcon","successIcon","active_datasources","fourDaysAgo","setDate","uniqueMessages","filteredErrors","messageWithoutId","has","img","dateString","LiteCurrencySelector","MetaAdsCustomConversions","custom_conversions","valueOf","Scripts","exclaimTriangle","AccountIdBox","platformData","platformEnabled","setPlatformEnabled","accountids","tooltipMessage","example","platformId","fieldName","triangle","invisTriangle","boxGrip","CampaignGroup","object","and","or","not_contains","noAnd","noOr","containsAnd","containsOr","platformType","groupName","overflowX","conversion_objective","conversion_actions_enabled","blueTriangle","CampaignGroups","campaignGroupsInitial","conversion_actions","setCampaignGroups","containsPreviewModifier","setContainsPreviewModifier","notContainsPreviewModifier","setNotContainsPreviewModifier","showAlert1","setShowAlert1","showAlert2","setShowAlert2","containsInput","setContainsInput","notContainsInput","setNotContainsInput","containsTerms","setContainsTerms","notContainsTerms","setNotContainsTerms","addContains","addNotContains","addItem","tempValue","tempContainsTerms","tempNotContainsTerms","names","campaignGroupsNames","setCampaignGroupsNames","currentSection","campaignGroupsOrder","handleEditBox","itemId","newName","term","conversionEnabled","conversionActions","conversionObjective","tiktokConversionObjective","groupContainsModifier","groupNotContainsModifier","newCampaignGroups","newContainsTerms","newNotContainsTerms","newItem","allCampaignGroups","handleDeleteBox","deleteState","groupId","handleAddBox","conversionActionsEnabled","newItemId","containsWords","notContainsWords","isArray","words","conversion","getIndex","col","flexWrap","ConfigureCampaignGroup","showBox","setShowBox","clearFields","testString","setTestString","testStringMatches","testCampaignGroupFilters","notContains","setConversionActionsEnabled","setConversionActions","setConversionObjective","setTiktokConversionObjective","errorText","setErrorText","onFocus","replaceAll","cg","conversionActionsLabels","toArray","conversionActionsIds","customConversionsLabels","customConversionsIds","errorsPresent","ConversionActionIds","targetIndex","newActions","newAction","v4","conversionAction","EditCampaignGroup","edit","notContainsAnd","notContainsOr","PPCConfig","ppcPulling","ppc_section","searchPulling","socialPulling","displayPulling","videoPulling","ppcRecalculating","searchRecalculating","socialRecalculating","displayRecalculating","videoRecalculating","showPpcErrors","showSearchErrors","showSocialErrors","showDisplayErrors","showVideoErrors","pullInProgress","recalcInProgress","current_user","displayErrors","errorCounts","uniq","errorMessage","dismissDataPullErrors","fadeOut","user_is_admin","selectedPage","excludeNbInShoppingKeywords","setExcludeNbInShoppingKeywords","youtubeChannelExcluderData","setYoutubeChannelExcluderData","handleScriptPropertyInput","currentData","updateMethod","newScripts","setScripts","checkValidation","remainingKeywords","deleteKeyword","handleAddKeyword","controlId","All","Dashboard","dashboard_order","ppcDashboard","searchEnabled","socialEnabled","videoEnabled","displayEnabled","setPpcDashboard","Goals","metrics","goalChangePercent","setGoalChangePercent","allOrBlank","setAllOrBlank","dashboardsInitial","setSelectedYear","ppc_cc_data","alignItems","selectedId","percentChange","allCcData","datum","dashIndex","ccData","newDate","newMonth","newyear","goalShortcutMetrics","metricCheckbox","metricCamel","metricSnake","historical","newValue","round","handlePullMetric","check","newCheckedMetrics","dbIndex","yearIndex","visible","IdsData","data_pull_enabled","Display","platform_data","show_scripts","displayScripts","displayScriptsVar","setDisplayScripts","setScriptsVar","setDisplayScriptsVar","script_variables","subs","initialDashboards","displayDashboard","dash","setDisplayDashboard","display_cc_data","Search","searchScripts","searchScriptsVar","setSearchScripts","setSearchScriptsVar","searchDashboard","setSearchDashboard","search_cc_data","Social","socialScripts","socialScriptsVar","setSocialScripts","setSocialScriptsVar","socialDashboard","setSocialDashboard","social_cc_data","CustomConversions","newConversions","pull_campaign_name_only","Video","videoScripts","videoScriptsVar","setVideoScripts","setVideoScriptsVar","videoDashboard","setVideoDashboard","video_cc_data","SEOConfig","seoPulling","seoRecalculating","showErrors","keywordGroups","keyword_groups","seoScripts","seoScriptsVar","setSeoScripts","setSeoScriptsVar","seoDashboard","setSeoDashboard","seo_cc_data","GoogleAnalyticsGoals","customGoals","setCustomGoals","customGoalsEnabled","setCustomGoalsEnabled","accountLabels","analyticsAccounts","selectedAccount","setSelectedAccount","targetKey","newData","word","goalData","goalNumber","GoogleAnalyticsIds","googleAnalyticsIds","setGoogleAnalyticsIds","googleAnalyticsEnabled","setGoogleAnalyticsEnabled","ga4Date","handleIdChange","newIds","newId","firstImg","secondImg","segmentImg","IDs","customAnalyticsGoals","custom_analytics_goals","customAnalyticsGoalsEnabled","custom_analytics_goals_enabled","checkRef","ga4_date","websites","dynamic","domain_property","RootDomains","rootDomains","setRootDomains","rootDomain","SemrushIds","semrushIds","setSemrushIds","semrushEnabled","setSemrushEnabled","newRow","KeywordBox","kgGroupId","setConditions","handleAddCondition","newCondition","newKeywordGroups","setKeywordGroups","handleDelete","justifyItems","alignItem","newConditions","KeywordGroups","keywords","frontID","keywordGroupsOrder","keywordId","removeKeyword","newGroup","direction","keyword","LandingPage","lpGroup","lpGroups","lpGroupId","newLpGroups","newSectionOrder","setLpGroups","conditionsLength","conditionHtml","LandingPages","lpGroupOrder","originalGroupIds","setLandingPageGroups","newGroups","ClientAccountStatus","showDeleteModal","clientToDelete","client_company_id","sortClients","activeClients","deactivatedClients","confettiTrigger","newActiveClients","newDeactivatedClients","successMsg","failureMsg","failure","changeActiveStatus","current_user_is_admin","handleShowDeleteModal","spread","startVelocity","elementCount","dragFriction","duration","stagger","perspective","handleHideDeleteModal","confirmDeleteClient","BlueIndentedSection","btn","ppcDash","borderBottom","MetricFormatter","GreenIndentedSection","KPIMetricBlock","goodOrBadText","goodOrBadBg","KeywordBlock","yyText","KeywordImprovedDeclinedBlock","improved","declined","KeywordTable","sortBy","keyword_sort","sortOrderAsc","keyword_sort_order_asc","sortedKeywords","by","initial","kwCopy","tempSortOrder","start_date_ranking","parseFloat","end_date_ranking","ranking_difference","cpc","volume","difficulty","sortKeywords","sortUpHtml","sortDownHtml","pdf","user_is_employee","diffBackground","serp_features","serp_feature","tag","string","ranking_page","getTickProps","oldValue","roundTo","decimal","YY","YY0","Sessions","Impressions","PhoneCalls","SearchVisibility","OrganicTraffic","Clicks","Revenue","BounceRate","ROAS","AOV","CPA","CPC","CVR","CTR","Conversions","Backlinks","DefaultTick","tickProps","MonetaryTick","convertedValue","currencyConverter","CalculatedTick","CalculatedMonetaryTick","NoData","indentClass","PPCDashboard","p","shared","configUrl","exportButton","changeSection","dispatchEvent","Event","searchDashboards","socialDashboards","displayDashboards","videoDashboards","platformCount","allPpcEnabled","ageKeyOrder","dayKeyOrder","hourKeyOrder","PPCDashboardDisplay","cc_data","renderArray","dashboardTableOrder","metricShortened","getNegative","getGoalLocked","metricTitles","groupOrder","group_id","svgList","google","microsoft","transform","bing","facebook","rx","tiktok","all","clipRule","allIcon","googleIcon","microsoftIcon","facebookIcon","allPlatformIcon","tiktokIcon","client_type","dashboardsEnable","sum","capitalized","iconGraphic","handlePlatform","dashboardSection","generateDashboardSection","userIsEmployee","PPCDashboardOverall","channels","channel","metricNames","tempMetricNames","channelName","PPCDashboardSearch","PPCDashboardSocial","PPCDashboardVideo","PPCSummary","client_list","metric_list","overall_metrics","search_metrics","social_metrics","display_metrics","video_metrics","PPCSummaryDisplay","activeTable","firstKey","leadgenList","leadgenClients","ecommerceList","ecommerceClients","totals","leadgen","ecommerce","mValue","changeTable","display_name","programmatic_name","Infinity","PPCSummaryOverall","PPCSummarySearch","PPCSummarySocial","PPCSummaryVideo","PdfKPIMetricBlock","PdfKeywordRow","PdfKeywordTable","setSortBy","setSortOrderAsc","setSortedKeywords","SEODashboard","landingPageGroup","keywordGroupOrder","keyword_groups_order","keywordGroup","new","lost","organizationName","organization_name","SEOSummary","this_month","borderTop","ServiceDisabled","topText","leftBullets","rightBullets","btnClass","bullet","AmazonDashboard","metricTableDimensions","table_data","lastDataPull","mainIcon","disabledIcon","dashboardObjective","setDashboardObjective","revenueOrConversions","roasOrCpa","dashboard_options","dashboardOptions","setDashboardOptions","last_data_pull","dashboardType","datasetNames","chart_data","labels","subHeaderOrder","tableName","dimensions","disabledMsg","topSummaryRow","dimension","collapsed","DashboardOptions","currentModifiers","saveDashboardOptions","modifier","newDashboardOptions","modifierName","handleModifierConfigChange","EmailDashboard","skipPrev","campaign_dimensions","LiteKeywordTable","LiteLineChart","themeToggleRef","darkMode","setDarkMode","spendFunnelAllocationChart","prospectingVsRemarketingChart","brandedVsNonBrandedChart","handleThemeChange","orderedDatasetNames","datasets","alpha","trendlineLinear","lineStyle","getLineColor","borderJoinStyle","fixedHeight","xScalesConfig","ticks","maxTicksLimit","maxRotation","autoSkip","family","grid","yScalesConfig","beginAtZero","stacked","callback","formatMetric","drawBorder","maintainAspectRatio","interaction","mode","intersect","plugins","legend","generateLabels","chart","dataset","strokeStyle","lineWidth","isDatasetVisible","datasetIndex","fontColor","titleFont","bodyFont","callbacks","tooltipData","tooltipMetric","dataIndex","parsed","scales","getChartOptions","newLabel","String","lightColors","darkColors","ChartJS","CategoryScale","LinearScale","PointElement","LineElement","Title","Tooltip","Legend","Filler","chartTrendline","LiteMetricTable","searchIcon","socialIcon","pinterest","youtube","amazon","chevronUp","showDropdown","setShowDropdown","groups","selectedGroup","setSelectedGroup","isCollapsed","setIsCollapsed","dropdownRef","tableContainerRef","collapsible","columnWidth","toggleDropdown","baseUrl","renderBlankRow","borderClass","subHeader","last","formatCells","showProjection","getColumnName","selectGroup","tableIcon","renderTableName","overflow","topSummaryData","toLower","renderTopSummaryRow","monthName","containsUrl","rel","showMenu","setShowMenu","loading","setLoading","progress","setProgress","totalQueries","setTotalQueries","dataPullComplete","setDataPullComplete","autoRefresh","setAutoRefresh","dotsHorizontal","refreshIcon","menuRef","buttonRef","intervalId","setInterval","fetchRefreshStatus","clearInterval","totalQueriesCurrent","params","updateProgress","updateRefreshPreference","default_refresh","remainingQueries","total_jobs","innerText","completedQueries","handleRefresh","timePeriod","ObjectivePicker","OrganicSearchDashboard","landingPageIncreasesDimensions","landingPageDecreasesDimensions","OrganicSocialDashboard","followerIcon","instagramIcon","youtubeIcon","twitterIcon","linkedinIcon","snapchatIcon","otherIcon","formatNumber","followerCards","followers","followersChange","card","OtherDashboard","OverviewDashboard","merOrCpa","fillerStyles","borderRadius","SearchDashboard","l7metricTableDimensions","SocialDashboard","primaryKpiCharts","primaryKpiTables","allKpisVsPreviousYear","landingPageBreakdown","backlinks","keywordSummary","keywordRankings","traffic","conversions","revenue","cvr","aov","gscClicks","gscImpressions","searchVisibility","topThreeKeywords","topThreeKeywordsPercentage","topTenKeywords","topTenKeywordsPercentage","topTwentyKeywords","topTwentyKeywordsPercentage","bounceRate","engagedSessions","averagePosition","totalBacklinks","referringIps","referringDomains","authorityScore","keywordsImproved","keywordsDeclined","keywordName","keywordSerpFeatures","keywordPreviousPosition","keywordCurrentPosition","keywordDifference","keywordCostPerConversion","keywordSearchVolume","keywordLabel","keywordDifficulty","keywordUrl","mandatory","spendAllocation","shopifyRevenue","shopifyRoas","shopifySubtotalRevenue","shopifySubtotalRoas","spend","impressions","viewableImpressions","views","cpv","viewRate","viewCtr","viewableCtr","clicks","ctr","phoneCalls","inStoreVisits","clickConversions","viewConversions","totalConversions","clickCpa","totalCpa","clickRevenue","viewRevenue","totalRevenue","clickRoas","totalRoas","totalAov","impressionsTopRate","impressionsAbsTopRate","searchImpressionsShare","clickAov","addToCarts","impressionToCartRate","checkoutsStarted","cartToConversionRate","socialViewRate","cpsv","videoCvr","AccountConfigurationIntro","route","RouterContext","getNextPage","onboarding_progress","localStorage","setItem","pageLocator","smaller","validated","btnText","invalidText","newObj","BackButton","history","useHistory","tempRoute","navigateTo","BrandLogo","setValidated","setBase64Img","base64Img","onloadend","readAsDataURL","AllCampaignGroups","displayCampaignGroups","searchCampaignGroups","socialCampaignGroups","videoCampaignGroups","CompanyLegalInformation","checkValidity","legalInfo","legalChange","CompanyName","CompanyType","eCommerce","leadGen","lead","setEcommerce","setLead","changeOption","setAccountType","Complete","setConfettiTrigger","small","medium","large","ppcEnabled","DatapulseAccess","setFirstAlert","setLastAlert","showUsers","addNewPerson","removePerson","changePerson","box","pattern","dpAccessBox","AllPPCGoals","validationInit","setValidatation","isEmpty","DisplayGoals","dashboardsInit","SEOGoals","SearchGoals","SocialGoals","VideoGoals","GoogleAnalyticsGoalTracking","selectedLabel","setSelectedLabel","setupBox","newObject","customAnalyticGoals","setCustomAnalyticaGoals","customAnalyticGoalsEnabled","setCustomAnalyticaGoalsEnabled","row","routes","validatedInit","array","validation","InflationForm","Intro1","welcome","ipad","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","TrackSpecificACtionIds","lengh","searchActive","setSearchActive","displayActive","setDisplayActive","videoActive","setVideoActive","displayHelper","conversionActionBox","sectionKey","setRows","changeRow","unresolvedPages","currentIndex","DeleteOrgModal","setShowDeleteModal","deleteTarget","setDeleteLocked","deleteLocked","deleteOrg","OrgStatus","showCreateModal","setShowCreateModal","setDeleteTarget","orgs","org","confirmDelete","Customizations","OrgInfo","OrgLogo","upload","zIndexFirst","setZIndexFirst","show2","setShow2","toggledUsers","setToggledUsers","org_users","owner","unSelectedUsers","setVisibleUsers","newOwnerId","setNewOwnerId","handleClose2","capturedId","toggledUsersList","organization_type","isOwner","isPrimaryOrg","matchedUsers","toggled","handleOwnershipTransfer","handleOrgDelete","OrgPicker","orgPic","isClickable","organizations","god_or_admin","orgName","selected_org","selectedOrg","OrgPickerModal","selfShow","setSelfShow","centered","force_selection","selectedOrgId","Organizations","current_user_is_god","is_primary_org","user_id","Users","filteredInput","setFilteredInput","roles","formSubmitUrl","tempName","tempEmail","tempRole","tempDepartment","tempRoleFormatted","user_org_detail_id","tempDepartmentFormatted","sectionNames","self","m","pageNumber","hideLogo","sectionIndex","MonthlyPpcSection","campaignGroupCase","date_formatted","MonthlyReportIntro","MonthlyReportOutro","MonthlyReportPdf","checkPpcSections","dashboardOrders","obj","defaultMetricsData","dbOrd","unshift","seoDashboardOrder","seoPages","ppcPages","keepingTrack","pageHeight","elementsPerRow","elementHeight","metricIndex","ranking","goalPage","shift","MonthlySeoReport","MonthlySeoSection","landingPageCase","keywordCase","seoGoals","PDFPage","PPCPdfDisplay","goalChartDim","lineChartDim","pieChartDim","goalsPerRow","chartsPerRow","tablesPerRow","kpiBlocksPerRow","metricsPerTable","goalRowHeight","chartRowHeight","tableRowHeight","groupTableRowHeight","kpiBlockRowHeight","pieRowHeight","barRowHeight","mapRowHeight","campaignName","url_origin","generatePdfSection","tempIndex","campaignIndex","copyOfCampaignMetric","duplicateCampaign","allocationIndex","allocationMetrics","campaignGroupIndex","maxPageHeight","generatePdfPage","PPCPdfOverall","PPCPdfSearch","PPCPdfSocial","PPCPdfSummaryDisplay","displayMetrics","getPageNumber","PPCPdfSummaryOverall","searchMetrics","PPCPdfSummarySearch","PPCPdfSummarySocial","socialMetrics","PPCPdfSummaryVideo","videoMetrics","PPCPdfVideo","SEOPdf","keywordRankingRowHeight","pageName","landingPage","landingPageIndex","copyOfLandingPageMetric","duplicateLandingPage","keywordIndex","copyOfKeywordMetric","duplicateKeywordGroup","firstLandingPageIndex","firstKeywordIndex","SEOPdfSummary","PacingContext","PpcPacing","selected_account","ppc_pacing_metrics","submit","overall","metricsData","availableMetrics","available_metrics","default_metrics","pacingOrder","pacing_order","dateRanges","date_ranges","overall_platforms","search_platforms","social_platforms","display_platforms","video_platforms","pacingContext","summary","daily","Overall","DailyView","allPlatforms","redOrGreen","integer","selectedMetrics","setSelectedMetrics","selectedCampaign","setSelectedCampaign","table_view_preference","yoy","setYoy","columnCount","campaignCapitalized","serviceCapitalized","platformArray","platformSet","uniquePlatforms","campCapitalized","updatedList","metricHelper","last_30_days","evenOrOdd","beforeDate","formatDate","EPSILON","overallAmount","SummaryView","availableFrequency","selected_frequency","selectedFrequency","setSelectedFrequency","frequencyHelper","dashboardUrl","shop","teamUrl","i18n","enTranslations","fullWidth","sectioned","variation","shopify_install","breadcrumbs","last_updated","team_members","UserAccess","userInfo","localeCompare","organization_id","searchString","users_array","permissions","deleteUser","UserAccessTable","UserAccessTableButtons","actionType","handleHideModal","handleShowModal","handleConfirmAction","UserNewForm","css","clientIcon","employeeIcon","errorClass","clientButtonClick","employeeButtonClick","errorChecking","CustomAvatar","christmasSpecial","fallSpecial","springSpecial","summerSpecial","winterSpecial","halloweenSpecial","special","CustomDropdown","currentTab","upper","setCurrentSection","currentCampaign","setCurrentCampaign","campaignSetter","goalSetter","performanceSetter","clickOutsideConfig","onClickOutside","CustomFormCheck","inputElement","CustomSwitch","CustomTooltip","DataPullSavePopUp","DayPicker","yyyymmdd","minDate","convertUTCToLocalDate","changeDate","placeholderText","blur","DefaultAvatar","firstLetter","secondLetter","secondInitial","finalModifier","charCodeAt","optionsRatio","chosenIndex","isInteger","firstInitial","chooseColor","alertCounter","xmlnsXlink","dy","textAnchor","dominantBaseline","LeftIndent","Metric","noConvert","finalValue","MonthPicker","showMonthYearPicker","NumberDropdown","ProfileDropdown","logout","orgLogo","hieght","showOrgOptions","setShowOrgOptions","userOrgDetail","user_org_details","getRoleTitle","dropdownArrow","logout_path","quotes","normalQuotes","specialQuotes","random","StateOptions","humanizedRole","to_lower","firstCap","UserSelector","fieldsFor","btnDisabled","big_avatar","unselectUser","decimalPlaces","countDecimals","allRates","ppcOrderArray","seoOrderArray","multiplier","absValue","abs","valueParts","currencyObj","seoMetric","inflated","lockDate","endOf","lessIsGood","canBuild","subGroupSection","extraClass","alertBox","textContent","passes","newurl","pushState","HOTKEYS","LIST_TYPES","toggleMark","editor","isMarkActive","Editor","isBlockActive","n","marks","Element","attributes","Leaf","leaf","bold","italic","underline","BlockButton","useSlate","Button","onMouseDown","isActive","isList","Transforms","toggleBlock","Icon","MarkButton","initialValue","setValue","renderElement","renderLeaf","useMemo","withHistory","withReact","createEditor","setEmailBody","operations","op","Toolbar","spellCheck","onKeyDown","hotkey","isHotkey","WriteMail","emailBody","emailFrom","setEmailFrom","emailTo","setEmailTo","emailCC","setEmailCC","emailBCC","setEmailBCC","subject","setSubject","showCC","setShowCC","showBCC","setShowBCC","node","escapeHtml","emailCc","emailBcc","reversed","cx","EditorValue","textLines","nodes","Instruction","Menu","Portal","ReactDOM"],"sourceRoot":""}