{"version":3,"file":"static/js/application.initial.react~9934723f.bc608cd8.js","mappings":"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","sources":["../webpack/bootstrap","../../../../../../../../external/underscore","../../../../../../../../external/react","../../../../../../../../external/prop-types","../../../../../../../../external/@bingads-webui-react/with-default-styles","../webpack-src:/ui-blocker/index.js","../webpack-src:/ui-blocker/src/ui-blocker.js","../webpack-src:/ui-blocker/src/getStyles.js","../webpack-src:/ui-next-placeholder/index.js","../webpack-src:/ui-next-placeholder/src/page-progressive-loading-block.js","../webpack-src:/ui-next-placeholder/src/summary-bar-placeholder.js","../webpack-src:/ui-next-placeholder/src/main-menu-placeholder.js","../webpack-src:/ui-next-placeholder/src/page-menu-placeholder.js","../../../../../../../../external/classnames","../webpack-src:/unified-notification-queue/index.js","../webpack-src:/unified-notification-queue/src/unified-notification-queue-container.js","../webpack-src:/unified-notification-queue/src/listener.js","../webpack-src:/unified-notification-queue/src/unified-notification-queue-shared.js","../../../../../../../../external/@bingads-webui/notification-service","../webpack-src:/unified-notification-queue/src/unified-notification-queue.js","../../../../../../../../external/@bingads-webui-react/notification-preview-bar","../../../../../../../../external/@bingads-webui-react/notification-queue","../../../../../../../../external/@bingads-webui-react/popover","../webpack-src:/unified-notification-queue/src/trigger.js","../webpack-src:/unified-notification-queue/src/utils.js","../webpack-src:/unified-notification-queue/src/constants.js","../webpack-src:/unified-notification-queue/src/define-resources.js","../webpack-src:/unified-notification-queue/src/whats-new.js","../webpack-src:/unified-notification-queue/src/whats-new-get-content.js","../webpack-src:/unified-notification-queue/src/unified-notification-queue-api.js","../webpack-src:/unified-notification-queue/src/api/logger.js","../webpack-src:/unified-notification-queue/src/api/external-notifications.js","../webpack-src:/unified-notification-queue/src/api/preview-bar.js","../webpack-src:/unified-notification-queue/src/css/ui-next-jss/index.js","../webpack-src:/unified-notification-queue/src/css/ui-next-jss/loading.js","../webpack-src:/unified-notification-queue/src/css/ui-next-jss/notification-queue.js","../webpack-src:/unified-notification-queue/src/css/ui-next-jss/notification-clear-img.js","../webpack-src:/unified-notification-queue/src/css/ui-next-jss/UNQ-index-style.js","../../../../../../../../external/@bingads-webui-react/focus-lock","../../../../../../../../external/@fluentui/react","../../../../../../../../external/bluebird","../../../../../../../../external/jquery","../../../../../../../../external/@bingads-webui/with-state-store","../webpack-src:/use-observable/index.js","../webpack-src:/use-observable/src/use-observable.js","../webpack-src:/user-context/index.js","../webpack-src:/user-context/src/user-context.js","../webpack-src:/user-context/src/with-user-consumer.js","../webpack/universalModuleDefinition","../../../../../../../../external/@bingads-webui-react/i18n-context","../webpack-src:/validation/index.js","../webpack-src:/validation/src/component/with-validation.js","../webpack-src:/validation/src/adapters/default-adapter.js","../webpack-src:/validation/src/adapters/adapter-factory.js","../webpack-src:/validation/src/component/validation-context.js","../webpack-src:/validation/src/component/validation-item.js","../webpack-src:/validation/src/validation-node/item-node.js","../webpack-src:/validation/src/validation-node/base-node.js","../webpack-src:/validation/src/validation-node/field-creator.js","../../../../../../../../external/@bingads-webui/viewmodel-schema","../webpack-src:/validation/src/validation-node/viewmodel-util.js","../webpack-src:/validation/src/validation-node/group-node.js","../webpack-src:/validation/src/component/with-default-i18n.js","../../../../../../../../external/@bingads-webui/build-legacy-i18n","../webpack-src:/validation/src/component/validation-string-map.js","../webpack-src:/validation/src/component/validation-group.js","../webpack-src:/validation/src/component/with-error.js","../webpack-src:/validation/src/component/error-messages.js","../webpack-src:/validation/src/component/with-error-message.js","../webpack-src:/validation/src/helpers/utilities.js","../webpack-src:/validation/src/adapters/checked-adapter.js","../webpack-src:/validation/src/adapters/checked-item-adapter.js","../webpack-src:/validation/src/adapters/generic-adapter.js","../webpack-src:/validation/src/adapters/dropdown-adapter.js","../webpack-src:/validation/src/component/with-custom-validation.js","../webpack-src:/validation/src/validation-node/dummy-node.js","../webpack-src:/validation/src/component/with-server-error.js","../webpack-src:/validation/src/component/server-error-context.js","../../../../../../../../external/@bingads-webui-react/error-mapper","../webpack-src:/validation/src/helpers/server-error-utils.js","../webpack-src:/with-default-styles/index.js","../webpack-src:/with-default-styles/src/with-default-styles.js","../../../../../../../../external/react-jss","../../../../../../../../external/hoist-non-react-statics","../../../../../../../../external/@bingads-webui-react/hoc-utils","../webpack-src:/with-default-styles/src/use-default-styles.js","../../../../../../../../external/@bingads-webui-react/scope-service","../webpack-src:/with-last-url/index.js","../webpack-src:/with-last-url/src/with-last-url.js","../webpack-src:/with-last-url/src/smart-last-url.js","../../../../../../../../external/@bingads-webui-react/with-site-map","../webpack-src:/with-overflow-prop/index.js","../webpack-src:/with-overflow-prop/src/with-overflow-prop.js","../webpack-src:/with-page-ready/index.js","../webpack-src:/with-page-ready/src/with-page-ready.js","../webpack-src:/with-page-ready/src/with-page-ready-async.js","../../../../../../../../external/@bingads-webui/page-ready","../webpack-src:/with-responsive-size/index.js","../webpack-src:/with-responsive-size/src/use-responsive-size.js","../webpack-src:/with-responsive-size/src/responsive-sizes.js","../webpack-src:/with-responsive-size/src/with-responsive-size.js","../../../../../../../../external/react-media","../../../../../../../../external/@bingads-webui-react/hoc-with-permissions","../webpack-src:/with-site-map/index.js","../webpack-src:/with-site-map/src/with-site-map.js","../webpack-src:/with-site-map/src/configs/index.js","../webpack-src:/with-site-map/src/configs/shared.js","../webpack-src:/with-site-map/src/configs/scope.js","../../../../../../../../external/@bingads-webui/multi-agency-utils","../webpack-src:/with-site-map/src/configs/accounts/index.js","../webpack-src:/with-site-map/src/configs/accounts/accounts.js","../webpack-src:/with-site-map/src/configs/accounts/accounts-summary.js","../webpack-src:/with-site-map/src/configs/accounts/overview.js","../webpack-src:/with-site-map/src/configs/accounts/recommendations.js","../webpack-src:/with-site-map/src/configs/accounts/auction-insights.js","../webpack-src:/with-site-map/src/configs/campaign/index.js","../webpack-src:/with-site-map/src/configs/campaign/overview.js","../webpack-src:/with-site-map/src/configs/campaign/recommendations.js","../webpack-src:/with-site-map/src/configs/campaign/campaigns.js","../webpack-src:/with-site-map/src/configs/campaign/adgroups.js","../webpack-src:/with-site-map/src/configs/campaign/products.js","../webpack-src:/with-site-map/src/configs/campaign/ads-and-extensions.js","../webpack-src:/with-site-map/src/configs/campaign/assets.js","../webpack-src:/with-site-map/src/configs/campaign/landing-pages.js","../webpack-src:/with-site-map/src/configs/campaign/dynamic-ad-targets.js","../webpack-src:/with-site-map/src/configs/campaign/feeds-items.js","../webpack-src:/with-site-map/src/configs/campaign/keywords.js","../webpack-src:/with-site-map/src/configs/campaign/product-groups.js","../webpack-src:/with-site-map/src/configs/campaign/hotel-groups.js","../webpack-src:/with-site-map/src/configs/campaign/hotels.js","../webpack-src:/with-site-map/src/configs/campaign/audiences.js","../webpack-src:/with-site-map/src/configs/campaign/demographics.js","../webpack-src:/with-site-map/src/configs/campaign/settings.js","../webpack-src:/with-site-map/src/configs/campaign/locations.js","../webpack-src:/with-site-map/src/configs/campaign/ad-schedule.js","../webpack-src:/with-site-map/src/configs/campaign/devices.js","../webpack-src:/with-site-map/src/configs/campaign/change-history.js","../webpack-src:/with-site-map/src/configs/campaign/competition.js","../webpack-src:/with-site-map/src/configs/campaign/experiments.js","../webpack-src:/with-site-map/src/configs/campaign/smart-campaigns.js","../webpack-src:/with-site-map/src/configs/campaign/query-insights.js","../webpack-src:/with-site-map/src/configs/campaign/asset-groups.js","../webpack-src:/with-site-map/src/configs/campaign/listing-groups.js","../webpack-src:/with-site-map/src/configs/campaign/assets-report.js","../webpack-src:/with-site-map/src/configs/tools/index.js","../webpack-src:/with-site-map/src/configs/tools/planning.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/index.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/audiences-library.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/business-location-feed.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/product-feed.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/labels.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/negative-keyword-lists-library.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/performance-targets.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/site-exclusion-lists-account-level-view-lists.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/site-exclusion-lists-customer-level-create-lists.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/content-exclusion-account-level.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/shared-budgets.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/portfolio-bid-strategy.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/seasonality-adjustment.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/creative-studio-asset-library.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/brand-lists.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/ad-studio.js","../webpack-src:/with-site-map/src/configs/tools/shared-library/lift-measurement.js","../webpack-src:/with-site-map/src/configs/tools/bulk-actions.js","../webpack-src:/with-site-map/src/configs/tools/bulk-edits.js","../webpack-src:/with-site-map/src/configs/tools/rules.js","../webpack-src:/with-site-map/src/configs/tools/scripts-page.js","../webpack-src:/with-site-map/src/configs/tools/bulk-uploads.js","../webpack-src:/with-site-map/src/configs/tools/conversion-tracking/index.js","../webpack-src:/with-site-map/src/configs/tools/conversion-tracking/uet-tags.js","../webpack-src:/with-site-map/src/configs/tools/conversion-tracking/conversion-goals.js","../webpack-src:/with-site-map/src/configs/tools/conversion-tracking/offline-conversions.js","../webpack-src:/with-site-map/src/configs/tools/conversion-tracking/clarity-website.js","../webpack-src:/with-site-map/src/configs/tools/conversion-tracking/modeled-conversions.js","../webpack-src:/with-site-map/src/configs/tools/conversion-tracking/customer-acquisition.js","../webpack-src:/with-site-map/src/configs/tools/setup/index.js","../webpack-src:/with-site-map/src/configs/tools/setup/accounts-billing.js","../webpack-src:/with-site-map/src/configs/tools/setup/account-access.js","../webpack-src:/with-site-map/src/configs/tools/setup/accounts-summary.js","../webpack-src:/with-site-map/src/configs/tools/setup/account-map.js","../webpack-src:/with-site-map/src/configs/tools/setup/billing-payments.js","../webpack-src:/with-site-map/src/configs/client-center/billing-payments.js","../webpack-src:/with-site-map/src/configs/tools/setup/business-data.js","../webpack-src:/with-site-map/src/configs/tools/setup/budget-center.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/index.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/index.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/ad-extension.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/booking-report.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/feed-status.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/feed-upload.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/share-of-voice.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/match-report.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/uploaded-recon-reports.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center/intelligence/processed-recon-reports.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/index.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/feeds/index.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/feeds/landingpage.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/feeds/landingpage-detail.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/feeds/properties.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/feeds/property.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/feeds/pricing-status.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/feeds/pricing-settings.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/reports/index.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/reports/share-of-voice.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/reports/booking-report.js","../webpack-src:/with-site-map/src/configs/tools/setup/hotel-center-v2/reports/recon-report.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/index.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/merchant-shared.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/merchant-center.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/feeds.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/import.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/promotions.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/settings.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/stores.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/summary.js","../webpack-src:/with-site-map/src/configs/tools/setup/merchant-center/products.js","../webpack-src:/with-site-map/src/configs/tools/setup/settings.js","../webpack-src:/with-site-map/src/configs/tools/setup/unified-product/index.js","../webpack-src:/with-site-map/src/configs/tools/setup/unified-product/social-networks.js","../webpack-src:/with-site-map/src/configs/tools/setup/unified-product/term-condition.js","../webpack-src:/with-site-map/src/configs/tools/setup/unified-product/privacy-cookies.js","../webpack-src:/with-site-map/src/configs/tools/setup/unified-product/conversion-tracking.js","../webpack-src:/with-site-map/src/configs/tools/setup/unified-product/clarity.js","../webpack-src:/with-site-map/src/configs/tools/setup/unified-product/change-history.js","../webpack-src:/with-site-map/src/configs/tools/setup/unified-product/mobile-app.js","../webpack-src:/with-site-map/src/configs/tools/app.js","../webpack-src:/with-site-map/src/configs/reports-v4/index.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/index.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/performance.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/common.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/extensions.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/product-ads.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/change-history.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/targeting.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/billing-and-budget.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/advanced-insights.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/dynamic-search.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/labels.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/hotel.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/app.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/assets.js","../webpack-src:/with-site-map/src/configs/reports-v4/default-reports/marketplace-insights.js","../webpack-src:/with-site-map/src/configs/reports-v4/my-reports/customize.js","../webpack-src:/with-site-map/src/configs/reports-v4/my-reports/share.js","../webpack-src:/with-site-map/src/configs/reports-vnext/index.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/index.js","../../../../../../../../external/@bingads-webui-react/router","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/performance.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/common.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/assets-extensions.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/product-ads.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/change-history.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/targeting-placements.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/billing-and-budget.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/advanced-insights.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/dynamic-search-ads.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/labels.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/property-ads.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/app-ads.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/competitive-visibility.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/goals-conversions.js","../webpack-src:/with-site-map/src/configs/reports-vnext/default-reports/vertical-ads.js","../webpack-src:/with-site-map/src/configs/import/index.js","../webpack-src:/with-site-map/src/configs/import/imports.js","../webpack-src:/with-site-map/src/configs/import/import-center.js","../webpack-src:/with-site-map/src/configs/smart/index.js","../webpack-src:/with-site-map/src/configs/adinsight/index.js","../webpack-src:/with-site-map/src/configs/standalone/index.js","../webpack-src:/with-site-map/src/configs/standalone/adgroup-create.js","../webpack-src:/with-site-map/src/configs/standalone/campaign-create.js","../webpack-src:/with-site-map/src/configs/standalone/association-create.js","../webpack-src:/with-site-map/src/configs/standalone/audience-create.js","../webpack-src:/with-site-map/src/configs/standalone/account-create.js","../webpack-src:/with-site-map/src/configs/standalone/account-linking.js","../webpack-src:/with-site-map/src/configs/standalone/accounts-transfer.js","../webpack-src:/with-site-map/src/configs/standalone/accounts-unlinking.js","../webpack-src:/with-site-map/src/configs/standalone/pending-transfer-request.js","../webpack-src:/with-site-map/src/configs/standalone/performance-targets-create.js","../webpack-src:/with-site-map/src/configs/standalone/performance-targets-overview.js","../webpack-src:/with-site-map/src/configs/standalone/report-create.js","../webpack-src:/with-site-map/src/configs/standalone/shared-budget-edit.js","../webpack-src:/with-site-map/src/configs/standalone/portfolio-bid-strategy-details.js","../webpack-src:/with-site-map/src/configs/standalone/conversion-goals-create.js","../webpack-src:/with-site-map/src/configs/standalone/conversion-value-rules-create.js","../webpack-src:/with-site-map/src/configs/standalone/uet-tags-create.js","../webpack-src:/with-site-map/src/configs/standalone/ad-customizer-feeds-items.js","../webpack-src:/with-site-map/src/configs/standalone/dynamic-data-feeds-items.js","../webpack-src:/with-site-map/src/configs/standalone/page-feeds-items.js","../webpack-src:/with-site-map/src/configs/standalone/rule-detail.js","../webpack-src:/with-site-map/src/configs/standalone/bulk-edit-detail.js","../webpack-src:/with-site-map/src/configs/standalone/scripts.js","../webpack-src:/with-site-map/src/configs/standalone/negative-keywords-lists-details.js","../webpack-src:/with-site-map/src/configs/standalone/merchant-center-store-create.js","../webpack-src:/with-site-map/src/configs/standalone/recommendation-history.js","../webpack-src:/with-site-map/src/configs/standalone/bulk-uploads-build-spreadsheet.js","../webpack-src:/with-site-map/src/configs/standalone/opt-out-minors.js","../webpack-src:/with-site-map/src/configs/standalone/recommendation-auto-apply-settings.js","../webpack-src:/with-site-map/src/configs/standalone/recommendation-auto-apply-bulk-upload.js","../webpack-src:/with-site-map/src/configs/standalone/import-credential-id.js","../webpack-src:/with-site-map/src/configs/standalone/query-insights.js","../webpack-src:/with-site-map/src/configs/standalone/pmax-details.js","../webpack-src:/with-site-map/src/configs/standalone/app-ads-details.js","../webpack-src:/with-site-map/src/configs/standalone/budget-center-campaign-budget-tool.js","../webpack-src:/with-site-map/src/configs/standalone/recommendation-demo.js","../webpack-src:/with-site-map/src/configs/standalone/copilot-report.js","../webpack-src:/with-site-map/src/configs/standalone/ad-editor.js","../webpack-src:/with-site-map/src/configs/standalone/unified-app-ads-details.js","../webpack-src:/with-site-map/src/configs/client-center/index.js","../webpack-src:/with-site-map/src/configs/client-center/settings.js","../webpack-src:/with-site-map/src/configs/client-center/account-access.js","../webpack-src:/with-site-map/src/configs/client-center/billing-payments-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/settings-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/account-map-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/account-identity-verification-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/accounts-bulk-update-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/mandate-agreement-required-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/uk-fca-verification-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/channel-partner-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/billing-group-creation-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/fraud-appeal-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/account-identity-verification-appeal-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/trade-screening-transformation-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/unaccessible-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/welcome-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/xandr-account-settings-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/xandr-customer-onboarding-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/customer-access-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/activate-ap-contact-standalone.js","../webpack-src:/with-site-map/src/configs/client-center/signup-payment-setup-standalone.js","../webpack-src:/with-site-map/src/configs/unified-product/index.js","../webpack-src:/with-site-map/src/configs/unified-product/ads-root.js","../webpack-src:/with-site-map/src/configs/unified-product/home-root.js","../webpack-src:/with-site-map/src/configs/unified-product/social-root.js","../webpack-src:/with-site-map/src/configs/unified-product/my-website.js","../webpack-src:/with-site-map/src/configs/bid-strategies/index.js","../webpack-src:/with-site-map/src/configs/bid-strategies/advanced-controls.js","../webpack-src:/with-site-map/src/configs/bid-strategies/portfolio-bid-strategy.js","../webpack-src:/with-site-map/src/configs/ms-ads-sdk/index.js","../webpack-src:/with-site-map/src/configs/ms-ads-sdk/ms-ads-sdk.js","../webpack-src:/with-site-map/src/processors/permission-processor.js","../webpack-src:/with-site-map/src/site-map-prop-type.js","../webpack-src:/with-site-map/src/processors/scope-processor.js","../webpack-src:/with-site-map/src/processors/processor-helpers.js","../webpack-src:/with-site-map/src/processors/filter-map-item.js","../webpack-src:/with-site-map/src/processors/scope-processor-v2.js","../webpack-src:/with-site-map/src/processors/path-processor.js","../webpack-src:/with-site-map/src/site-map-utilities.js","../webpack-src:/with-site-map/src/processors/path-utilities.js","../webpack-src:/with-site-map/src/processors/custom-mapper-processor.js","../webpack-src:/with-site-map/src/processors/root-filter-processor.js","../webpack-src:/with-site-map/src/processors/campaign-ui-context-processor.js","../webpack-src:/with-site-map/src/processors/ccui-context-processor.js","../webpack-src:/with-site-map/src/processors/account-link-permission-processor.js","../webpack-src:/with-site-map/src/site-map-wrapper.js","../webpack-src:/with-site-map/src/configs-v2/index.js","../webpack-src:/with-site-map/src/configs-v2/account-map.js","../webpack-src:/with-site-map/src/configs-v2/advertise.js","../webpack-src:/with-site-map/src/configs-v2/all-accounts.js","../webpack-src:/with-site-map/src/configs-v2/asset-library.js","../webpack-src:/with-site-map/src/configs-v2/audiences.js","../webpack-src:/with-site-map/src/configs-v2/billing.js","../webpack-src:/with-site-map/src/configs-v2/brands.js","../webpack-src:/with-site-map/src/configs-v2/budget-bid.js","../webpack-src:/with-site-map/src/configs-v2/bulk-actions.js","../webpack-src:/with-site-map/src/configs-v2/business-data.js","../webpack-src:/with-site-map/src/configs-v2/business-location.js","../webpack-src:/with-site-map/src/configs-v2/clarity.js","../webpack-src:/with-site-map/src/configs-v2/conversions.js","../webpack-src:/with-site-map/src/configs-v2/create.js","../webpack-src:/with-site-map/src/configs-v2/hotels.js","../webpack-src:/with-site-map/src/configs-v2/imports.js","../webpack-src:/with-site-map/src/configs-v2/keywords.js","../webpack-src:/with-site-map/src/configs-v2/labels.js","../webpack-src:/with-site-map/src/configs-v2/merchant-center.js","../webpack-src:/with-site-map/src/configs-v2/microsoft-store-ads.js","../webpack-src:/with-site-map/src/configs-v2/performance-targets.js","../webpack-src:/with-site-map/src/configs-v2/preview.js","../webpack-src:/with-site-map/src/configs-v2/product-feed.js","../webpack-src:/with-site-map/src/configs-v2/reports.js","../webpack-src:/with-site-map/src/configs-v2/setttings.js","../webpack-src:/with-site-map/src/configs-v2/smart-page.js","../webpack-src:/with-site-map/src/configs-v2/website-exluction-list.js","../webpack-src:/with-site-map/src/configs-v2/brand-safety-controls.js","../webpack-src:/with-site-map/src/configs-v2/brand-lists.js","../webpack-src:/with-site-map/src/configs-v2/lift-measurement.js","../webpack-src:/with-site-map/src/configs-v2/ad-studio.js","../webpack-src:/with-site-map/src/processors/shared-library-processor.js","../../../../../../../../external/react-router-dom","../../../../../../../../external/urijs","../../../../../../../../external/@bingads-webui-universal/primitive-utilities","../../../../../../../../external/@bingads-webui-react/preference-utility","../../../../../../../../external/@bingads-webui-react/settings-context","../../../../../../../../external/@bingads-webui/state-store"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 89);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__10__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7__;","export { UiBlocker } from './src/ui-blocker';\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getStyles } from './getStyles';\r\n\r\nconst UiBlockerUnthemed = (props) => {\r\n const {\r\n blocking,\r\n children,\r\n loadingText,\r\n } = props;\r\n\r\n const classes = blocking ? `${props.classes.reactBlockUi} react-block-ui` : 'react-block-ui-none';\r\n\r\n return (\r\n
\r\n {children}\r\n {blocking &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n {loadingText}\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n};\r\n\r\nUiBlockerUnthemed.propTypes = {\r\n blocking: PropTypes.bool.isRequired,\r\n children: PropTypes.node.isRequired,\r\n loadingText: PropTypes.string.isRequired,\r\n classes: PropTypes.shape({\r\n reactBlockUi: PropTypes.string,\r\n blockUiContainer: PropTypes.string,\r\n blockUiOverlay: PropTypes.string,\r\n blockerIndicator: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\nexport const UiBlocker = withDefaultStyles(UiBlockerUnthemed, getStyles);\r\n","import _ from 'underscore';\r\n\r\nexport const getStyles = ({ blockUi = {} }, { color = {} }) => {\r\n const defaultReactBlockUi = {\r\n position: 'relative',\r\n minHeight: '2em',\r\n };\r\n\r\n const defaultBlockUiContainer = {\r\n position: 'absolute',\r\n backgroundColor: 'rgba(51, 51, 51, 0.15)',\r\n zIndex: 1010,\r\n textAlign: 'center',\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n minHeight: '2em',\r\n cursor: 'wait',\r\n overflow: 'hidden',\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n };\r\n\r\n const defaultBlockUiOverlay = {\r\n width: '100%',\r\n height: '100%',\r\n };\r\n\r\n const defaultBlockerIndicator = {\r\n marginTop: '-55px',\r\n padding: '20px',\r\n top: '45%',\r\n position: 'relative',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n backgroundColor: 'white',\r\n maxWidth: '370px',\r\n minWidth: '140px',\r\n minHeight: '70px',\r\n zIndex: 1011,\r\n '&:hover &:focus': {\r\n border: {\r\n color: _.result(color.light, 'dark30'),\r\n },\r\n },\r\n };\r\n\r\n return {\r\n blockUiContainer: _.extend(defaultBlockUiContainer, blockUi.blockUiContainer),\r\n reactBlockUi: _.extend(defaultReactBlockUi, blockUi.reactBlockUi),\r\n blockUiOverlay: _.extend(defaultBlockUiOverlay, blockUi.blockUiOverlay),\r\n blockerIndicator: _.extend(defaultBlockerIndicator, blockUi.blockerIndicator),\r\n };\r\n};\r\n","export { ProgressiveLoadingBlock } from './src/page-progressive-loading-block';\r\nexport { SummaryBarPlaceholder } from './src/summary-bar-placeholder';\r\nexport { MainMenuPlaceholder } from './src/main-menu-placeholder';\r\nexport { PageMenuPlaceholder } from './src/page-menu-placeholder';\r\n","import React from 'react';\r\n\r\n// TODO: provide more options for different type of pages.\r\nexport function ProgressiveLoadingBlock() {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from 'react';\r\n\r\nexport function SummaryBarPlaceholder() {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from 'react';\r\n\r\nexport function MainMenuPlaceholder() {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\n","import React from 'react';\r\n\r\nexport function PageMenuPlaceholder() {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__11__;","export { UnifiedNotificationQueueContainer, createUnifiedNotificationQueueContainerWithStateStore } from './src/unified-notification-queue-container';\r\nexport { UnifiedNotificationQueueShared, createUnifiedNotificationQueueSharedWithStateStore } from './src/unified-notification-queue-shared';\r\nexport { externalNotificationsApi, previewBarApi } from './src/unified-notification-queue-api';\r\nexport { getUNQIndex } from './src/css/ui-next-jss';\r\n","import React from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { withStateStore } from '@bingads-webui/with-state-store';\r\nimport { Listener } from './listener';\r\nimport { UnifiedNotificationQueueShared } from './unified-notification-queue-shared';\r\nimport { contextPropTypes } from './constants';\r\nimport { getContext, isContextChanged, generateViewAllLinkInOldUI } from './utils';\r\n\r\nexport class UnifiedNotificationQueueContainer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n context: getContext({ parameters: props.context, uid: props.uid }),\r\n };\r\n\r\n this.Listener = new Listener();\r\n this.Listener.onNavigate(this.navigationHandler);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.Listener.unbind();\r\n }\r\n\r\n get contextLogContent() {\r\n const {\r\n context: {\r\n cid, aid, uid, campaignId,\r\n },\r\n } = this.state;\r\n\r\n return `cid=${cid}, aid=${aid}, uid=${uid}, cmpid=${campaignId}`;\r\n }\r\n\r\n logContent = (content = '') => `Context: ${this.contextLogContent}; Content: ${_.isString(content) ? content : JSON.stringify(content)};`;\r\n\r\n navigationHandler = () => {\r\n const newContext = getContext({ uid: this.props.uid });\r\n if (isContextChanged(newContext, this.state.context)) {\r\n this.setState({\r\n context: newContext,\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nUnifiedNotificationQueueContainer.propTypes = {\r\n context: PropTypes.shape({\r\n cid: contextPropTypes,\r\n aid: contextPropTypes,\r\n campaignId: contextPropTypes,\r\n }),\r\n permissions: PropTypes.shape({}),\r\n uid: contextPropTypes.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n campaignDomain: PropTypes.string.isRequired,\r\n ccBaseUrl: PropTypes.string.isRequired,\r\n logger: PropTypes.shape({\r\n mark: PropTypes.func,\r\n startProcess: PropTypes.func,\r\n endProcess: PropTypes.func,\r\n trace: PropTypes.func,\r\n error: PropTypes.func,\r\n }),\r\n notificationStore: PropTypes.shape({\r\n dismissNQAll: PropTypes.func,\r\n state: PropTypes.shape({\r\n nQNotificationList: PropTypes.arrayOf(PropTypes.shape({})),\r\n nQShouldShowPreviewBar: PropTypes.bool,\r\n }),\r\n }),\r\n isUINext: PropTypes.bool,\r\n baseHelpUrl: PropTypes.string,\r\n};\r\n\r\nUnifiedNotificationQueueContainer.defaultProps = {\r\n logger: {\r\n mark: _.noop,\r\n startProcess: _.noop,\r\n endProcess: _.noop,\r\n trace: _.noop,\r\n error: _.noop,\r\n },\r\n permissions: {},\r\n context: {},\r\n notificationStore: {\r\n dismissNQAll: _.noop,\r\n state: {\r\n nQNotificationList: [],\r\n nQShouldShowPreviewBar: null,\r\n },\r\n },\r\n isUINext: false,\r\n baseHelpUrl: '',\r\n};\r\n\r\nexport function createUnifiedNotificationQueueContainerWithStateStore(stateStore) {\r\n return withStateStore(UnifiedNotificationQueueContainer, stateStore, 'notificationStore');\r\n}\r\n","export class Listener {\r\n onNavigate(callback) {\r\n this.navigationHandler = () => {\r\n if (this.lastHash !== window.location.hash) {\r\n this.lastHash = window.location.hash;\r\n callback();\r\n }\r\n };\r\n\r\n // Polyfill for IE 11\r\n window.addEventListener('popstate', this.navigationHandler);\r\n window.addEventListener('hashchange', this.navigationHandler);\r\n }\r\n\r\n unbind() {\r\n window.removeEventListener('popstate', this.navigationHandler);\r\n window.removeEventListener('hashchange', this.navigationHandler);\r\n }\r\n}\r\n","import React from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { withStateStore } from '@bingads-webui/with-state-store';\r\nimport { helpers as urlHelpers } from '@bingads-webui/notification-service';\r\nimport { UnifiedNotificationQueue } from './unified-notification-queue';\r\nimport {\r\n setAPIConfig,\r\n getAllExternalNotifications,\r\n dismissAllExternalNotifications,\r\n onExternalNotificationsChange,\r\n unbindExternalNotifications,\r\n getPreviewBarVisibility,\r\n onPreviewBarVisibilityChange,\r\n unbindPreviewBarVisibility,\r\n} from './unified-notification-queue-api';\r\nimport { contextPropTypes } from './constants';\r\nimport { getContext } from './utils';\r\n\r\nexport class UnifiedNotificationQueueShared extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { notificationStore } = props;\r\n\r\n this.state = {\r\n externalNotifications: getAllExternalNotifications(),\r\n previewBarVisibility: getPreviewBarVisibility(),\r\n dismissAllExternalNotifications: () => {\r\n dismissAllExternalNotifications();\r\n notificationStore.dismissNQAll();\r\n },\r\n };\r\n\r\n this.isOnAccountsSummaryPage = urlHelpers.isOnAccountsSummaryPage();\r\n }\r\n\r\n componentDidMount() {\r\n setAPIConfig({ logger: this.props.logger });\r\n onExternalNotificationsChange(this.externalNotificationsChangeHandler);\r\n onPreviewBarVisibilityChange(this.previewBarVisibilityChangeHandler);\r\n }\r\n\r\n componentWillUnmount() {\r\n unbindExternalNotifications(this.externalNotificationsChangeHandler);\r\n unbindPreviewBarVisibility(this.previewBarVisibilityChangeHandler);\r\n }\r\n\r\n get shouldShowPreviewBar() {\r\n if (this.props.notificationStore.state.nQShouldShowPreviewBar === false) {\r\n return false;\r\n }\r\n return _.isUndefined(this.state.previewBarVisibility) ?\r\n this.props.shouldShowPreviewBar : this.state.previewBarVisibility;\r\n }\r\n\r\n get externalNotifications() {\r\n return _.union(\r\n this.state.externalNotifications,\r\n this.props.notificationStore.state.nQNotificationList\r\n );\r\n }\r\n\r\n externalNotificationsChangeHandler = (externalNotifications) => {\r\n this.setState({ externalNotifications });\r\n };\r\n\r\n previewBarVisibilityChangeHandler = (previewBarVisibility) => {\r\n this.setState({ previewBarVisibility });\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nUnifiedNotificationQueueShared.propTypes = {\r\n PreviewBar: PropTypes.node,\r\n shouldShowPreviewBar: PropTypes.bool,\r\n permissions: PropTypes.shape({}),\r\n context: PropTypes.shape({\r\n cid: contextPropTypes,\r\n aid: contextPropTypes,\r\n uid: contextPropTypes,\r\n campaignId: contextPropTypes,\r\n }),\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n ccBaseUrl: PropTypes.string.isRequired,\r\n isUINext: PropTypes.bool,\r\n logger: PropTypes.shape({\r\n mark: PropTypes.func,\r\n startProcess: PropTypes.func,\r\n endProcess: PropTypes.func,\r\n trace: PropTypes.func,\r\n error: PropTypes.func,\r\n }),\r\n generateViewAllLink: PropTypes.func,\r\n goTargetPage: PropTypes.func,\r\n getPathBySiteMapId: PropTypes.func,\r\n notificationStore: PropTypes.shape({\r\n dismissNQAll: PropTypes.func,\r\n state: PropTypes.shape({\r\n nQNotificationList: PropTypes.arrayOf(PropTypes.shape({})),\r\n nQShouldShowPreviewBar: PropTypes.bool,\r\n }),\r\n }),\r\n baseHelpUrl: PropTypes.string,\r\n helpParams: PropTypes.shape({\r\n project: PropTypes.string,\r\n language: PropTypes.string,\r\n asRow: PropTypes.number,\r\n query: PropTypes.string,\r\n }),\r\n MTNotificationFilter: PropTypes.func,\r\n setIsActive: PropTypes.func,\r\n forNewGlobalMenu: PropTypes.bool,\r\n triggerButtonRole: PropTypes.string,\r\n};\r\n\r\nUnifiedNotificationQueueShared.defaultProps = {\r\n logger: {\r\n mark: _.noop,\r\n startProcess: _.noop,\r\n endProcess: _.noop,\r\n trace: _.noop,\r\n error: _.noop,\r\n },\r\n permissions: {},\r\n PreviewBar: undefined,\r\n shouldShowPreviewBar: true,\r\n isUINext: false,\r\n context: {},\r\n generateViewAllLink: _.noop,\r\n goTargetPage: undefined,\r\n getPathBySiteMapId: undefined,\r\n notificationStore: {\r\n dismissNQAll: _.noop,\r\n state: {\r\n nQNotificationList: [],\r\n nQShouldShowPreviewBar: null,\r\n },\r\n },\r\n baseHelpUrl: '',\r\n helpParams: undefined,\r\n MTNotificationFilter: undefined,\r\n setIsActive: _.noop,\r\n forNewGlobalMenu: false,\r\n triggerButtonRole: '',\r\n};\r\n\r\nexport function createUnifiedNotificationQueueSharedWithStateStore(stateStore) {\r\n return withStateStore(UnifiedNotificationQueueShared, stateStore, 'notificationStore');\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1367__;","/* eslint-disable max-len */\r\n/* eslint react/no-unused-state:0 */\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { PreviewBar as defaultPreviewBar } from '@bingads-webui-react/notification-preview-bar';\r\nimport { NotificationQueue } from '@bingads-webui-react/notification-queue';\r\nimport { Popover } from '@bingads-webui-react/popover';\r\nimport { NotificationResources } from '@bingads-webui/notification-service';\r\nimport { FocusLock } from '@bingads-webui-react/focus-lock';\r\nimport {\r\n Dialog, DialogFooter, DialogType, PrimaryButton, DefaultButton,\r\n} from '@fluentui/react';\r\nimport { Trigger } from './trigger';\r\nimport {\r\n isContextChanged, customKeepOpen,\r\n logError, validateContext, sortNotifications, getPreviewItems,\r\n wrapActionForUINext, getPreviewNotifications,\r\n} from './utils';\r\nimport { defineResources } from './define-resources';\r\nimport {\r\n scenarioNames, notificationLogKeys, severityOrder, requestStates, actionCallbackTypes,\r\n previewBarStates, noCacheResponseRequestHeader, notificationSources, previewBarDismissedValue,\r\n whatsNewId, whatsNewHelpQuery, whatsNewHelpClass, whatsNewSeverity,\r\n} from './constants';\r\nimport { getNews } from './whats-new';\r\n\r\nexport class UnifiedNotificationQueue extends React.Component {\r\n static getDerivedStateFromProps(props, state) {\r\n let newState = {};\r\n if (isContextChanged(props.context, state.context)) {\r\n props.logger.startProcess(scenarioNames.TriggerShow);\r\n props.logger.startProcess(scenarioNames.PreviewBarShow);\r\n props.logger.startProcess(scenarioNames.QueueDisplayShow);\r\n\r\n newState = _.extend({\r\n // Context\r\n context: props.context,\r\n contextChanged: true,\r\n contextValid: validateContext(props.context),\r\n\r\n // trigger\r\n showTrigger: false,\r\n triggerProcessLogged: false,\r\n\r\n // Preview bar\r\n previewBarProcessLogged: false,\r\n\r\n // Queue\r\n queueDisplayProcessLogged: false,\r\n isQueueOpen: false,\r\n\r\n // MT notifications data\r\n MTNotificationsErrLoaded: false,\r\n MTNotificationsLoaded: false,\r\n MTNotifications: [],\r\n MTNotificationsRequestState: requestStates.notStart,\r\n\r\n }, state.previewBarState !== previewBarStates.dismissed && {\r\n previewBarState: previewBarStates.notShown,\r\n });\r\n }\r\n\r\n if (props.externalNotifications.length > 0) {\r\n const dialogProps = _.reduce(props.externalNotifications, (result, item) => {\r\n if (item.id && item.extraOptions && item.extraOptions.dialogProps) {\r\n // eslint-disable-next-line no-param-reassign\r\n result[item.id] = item.extraOptions.dialogProps;\r\n }\r\n return result;\r\n }, {});\r\n\r\n newState = _.extend(newState, {\r\n showTriggerFromExternal: true,\r\n dialogProps,\r\n });\r\n }\r\n\r\n return newState;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n props.logger.startProcess(scenarioNames.TriggerShow);\r\n props.logger.startProcess(scenarioNames.PreviewBarShow);\r\n props.logger.startProcess(scenarioNames.QueueDisplayShow);\r\n\r\n // define notification store resources\r\n defineResources(props.ccBaseUrl);\r\n\r\n this.unmounted = false;\r\n this.headerBasic = {\r\n title: props.i18n.getString(_TL_('Notifications')),\r\n };\r\n this.footer = {\r\n text: props.i18n.getString(_TL_('Dismiss all')),\r\n action: this.dismissAll,\r\n };\r\n this.emptyText = props.i18n.getString(_TL_('Nothing to see here.'));\r\n this.actionCallbackMapping = {\r\n [actionCallbackTypes.closeQueue]: this.closeQueue,\r\n [actionCallbackTypes.closeQueueOnAccountsSummaryPage]: this.closeQueueOnAccountsSummaryPage,\r\n [actionCallbackTypes.openDialog]: this.openDialog,\r\n };\r\n\r\n this.actionCallback = (callbackType, notificationId) => {\r\n if (this.actionCallbackMapping[callbackType]) {\r\n this.actionCallbackMapping[callbackType](notificationId);\r\n }\r\n };\r\n\r\n this.shouldWrapAction = props.isUINext && !!props.getPathBySiteMapId && !!props.goTargetPage;\r\n\r\n this.whatsNewNotification = {\r\n severity: whatsNewSeverity,\r\n id: whatsNewId,\r\n title: props.i18n.getString(_TL_(\"What's new\")),\r\n message: props.i18n.getString(_TL_('We’ve got something shiny and new for you in Microsoft Advertising!')),\r\n actionList: [{\r\n text: props.i18n.getString(_TL_('Learn more')),\r\n extraClassNames: [whatsNewHelpClass],\r\n extraAttrs: { query: props.whatsNewHelpQuery },\r\n callbackType: actionCallbackTypes.closeQueue,\r\n }],\r\n dismissAction: this.dismissWhatsNewNotification,\r\n notificationSource: notificationSources.whatsNew,\r\n };\r\n\r\n this.isPreviewBarFilteringEnabled =\r\n _.result(props.permissions, ['dynamic', 'PreviewBarFiltering'], false);\r\n\r\n this.state = {\r\n // Context\r\n context: props.context,\r\n contextChanged: false,\r\n contextValid: validateContext(props.context),\r\n\r\n // trigger\r\n showTrigger: false,\r\n showTriggerFromExternal: props.externalNotifications.length > 0,\r\n triggerMarked: false,\r\n triggerProcessLogged: false,\r\n\r\n // Preview bar\r\n previewBarProcessLogged: false,\r\n previewBarState: previewBarStates.notShown,\r\n\r\n // Queue\r\n queueDisplayProcessLogged: false,\r\n isQueueOpen: false,\r\n showViewAll: false,\r\n\r\n // MT notifications data\r\n MTNotificationsErrLoaded: false,\r\n MTNotificationsLoaded: false,\r\n MTNotifications: [],\r\n MTNotificationsRequestState: requestStates.notStart,\r\n\r\n // What's new data\r\n whatsNewData: {},\r\n whatsNewNotifications: [],\r\n whatsNewDismissed: false,\r\n whatsNewRequestState: requestStates.notStart,\r\n\r\n // Dialog\r\n dialogProps: {},\r\n notificationId: null,\r\n isDialogOpen: false,\r\n\r\n unavailableNotifications: [],\r\n };\r\n this.focusLockRef = React.createRef();\r\n }\r\n\r\n // auto-load preview bar data\r\n componentDidMount() {\r\n this.fetchPreviewData();\r\n }\r\n\r\n componentDidUpdate() {\r\n if (!this.state.showTrigger) {\r\n this.fetchPreviewData();\r\n }\r\n if (this.state.showTrigger || this.state.showTriggerFromExternal) {\r\n if (!this.state.triggerMarked) {\r\n this.logTriggerMarker();\r\n }\r\n if (!this.state.triggerProcessLogged) {\r\n this.logTriggerFirstRenderedProcess();\r\n }\r\n if (!this.state.previewBarProcessLogged && this.showPreviewBar) {\r\n this.logPreviewBarFirstRenderedProcess();\r\n }\r\n if (!this.state.queueDisplayProcessLogged && this.showQueueDisplay) {\r\n this.logQueueDisplayFirstRenderedProcess();\r\n }\r\n }\r\n this.props.setIsActive(this.totalCount > 0);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.unmounted = true;\r\n }\r\n\r\n get header() {\r\n const viewAllLink = this.props.generateViewAllLink(this.props, this.state);\r\n const header = {\r\n ...this.headerBasic,\r\n // TODO: remove the fallback for string after all updated to object\r\n ..._.isObject(viewAllLink) ? viewAllLink : { href: viewAllLink },\r\n action: this.closeQueueOnAccountsSummaryPage,\r\n text: this.state.showViewAll ? this.props.i18n.getString(_TL_('View all')) : null,\r\n isJumpOut: this.props.isUINext,\r\n };\r\n return this.shouldWrapAction ?\r\n wrapActionForUINext(header, this.props.getPathBySiteMapId, this.props.goTargetPage) :\r\n header;\r\n }\r\n\r\n // cid & aid are needed because sometimes the values in this.props.context\r\n // doesn't match the real ones, log it for further investigation\r\n get contextLogContent() {\r\n const {\r\n context: {\r\n cid, aid, uid, campaignId,\r\n },\r\n } = this.props;\r\n\r\n return `cid=${cid}, aid=${aid}, uid=${uid}, cmpid=${campaignId}`;\r\n }\r\n\r\n get allNotifications() {\r\n return _.union(\r\n this.props.externalNotifications,\r\n this.state.MTNotifications,\r\n this.state.whatsNewNotifications\r\n );\r\n }\r\n\r\n get orderedNotifications() {\r\n return sortNotifications(this.allNotifications.filter(n => !_.contains(this.state.unavailableNotifications, n.id)));\r\n }\r\n\r\n get previewNotifications() {\r\n return this.getPreviewNotifications(this.orderedNotifications);\r\n }\r\n\r\n get totalCount() {\r\n return this.state.MTNotifications.length\r\n + this.state.whatsNewNotifications.length\r\n + this.props.externalNotifications.length;\r\n }\r\n\r\n get showPreviewBar() {\r\n return this.getShowPreviewBar(this.previewNotifications);\r\n }\r\n\r\n get showQueueDisplay() {\r\n return (this.state.MTNotificationsLoaded || this.state.MTNotificationsErrLoaded) &&\r\n (this.popover && this.popover.state.open) &&\r\n this.allNotifications.length > 0;\r\n }\r\n\r\n formatMTNotification = notification => ({\r\n ...notification,\r\n ...this.shouldWrapAction && {\r\n actionList: _.map(\r\n notification.actionList,\r\n action => wrapActionForUINext(\r\n action,\r\n this.props.getPathBySiteMapId,\r\n this.props.goTargetPage\r\n )\r\n ),\r\n },\r\n dismissAction: () => this.dismissMTNotification(notification),\r\n });\r\n\r\n // Generate the log message with context\r\n logContent = (content = '') => `Context: ${this.contextLogContent}; Content: ${_.isString(content) ? content : JSON.stringify(content)};`;\r\n\r\n logNotificationObj = ({\r\n total,\r\n notifications,\r\n }) => ({\r\n total,\r\n notifications: _.map(\r\n notifications,\r\n notification => _.pick(notification, notificationLogKeys)\r\n ),\r\n });\r\n\r\n endProcessWithCount = scenarioName =>\r\n () => this.props.logger.endProcess(scenarioName, this.allNotifications.length.toString());\r\n\r\n logError = (scenarioName, error) => logError({\r\n scenarioName,\r\n error,\r\n logContent: this.logContent,\r\n logger: this.props.logger,\r\n });\r\n\r\n logTriggerMarker = () => {\r\n this.props.logger.mark(this.state.contextChanged ?\r\n scenarioNames.TriggerShowContextChanged : scenarioNames.TriggerShow);\r\n this.setState({ triggerMarked: true });\r\n };\r\n\r\n logTriggerFirstRenderedProcess = () => {\r\n this.props.logger.endProcess(scenarioNames.TriggerShow);\r\n this.setState({ triggerProcessLogged: true });\r\n };\r\n\r\n logPreviewBarFirstRenderedProcess = () => {\r\n const notifications = this.previewNotifications;\r\n this.props.logger.endProcess(scenarioNames.PreviewBarShow);\r\n this.props.logger.trace(scenarioNames.PreviewBarRenderNotifications, this.logContent(this.logNotificationObj({ total: notifications.length, notifications })));\r\n this.setState({ previewBarProcessLogged: true });\r\n };\r\n\r\n logQueueDisplayFirstRenderedProcess = () => {\r\n this.props.logger.endProcess(scenarioNames.QueueDisplayShow);\r\n this.setState({ queueDisplayProcessLogged: true });\r\n };\r\n\r\n fetchPreviewData() {\r\n this.fetchMTNotifications(scenarioNames.PreviewBarLoad);\r\n if (this.props.baseHelpUrl) {\r\n this.fetchWhatsNewNotification();\r\n }\r\n }\r\n\r\n MTNotificationDismissQuery = (dismissNotifications) => {\r\n const notifications = _.isEmpty(dismissNotifications) ?\r\n this.state.MTNotifications : dismissNotifications;\r\n const dismissIds = [];\r\n const uiDeliveryIds = [];\r\n const notificationTypeIds = [];\r\n const opportunityNotifications = [];\r\n const notificationDeliveryIds = [];\r\n const notificationTypeIdsForLog = [];\r\n const addOneNotificationDimissQuery = ({\r\n item,\r\n addIndividualQuery = () => uiDeliveryIds.push(item.uiDeliveryId),\r\n addConsolidatedQuery = () => notificationTypeIds.push(item.notificationTypeId),\r\n }) => {\r\n if (item.uiDeliveryId) { // individual notification\r\n addIndividualQuery();\r\n } else { // consolidated notification\r\n addConsolidatedQuery();\r\n }\r\n };\r\n\r\n _.each(notifications, (item) => {\r\n dismissIds.push(item.id);\r\n switch (item.notificationSource) {\r\n case notificationSources.adInsightOpportunity:\r\n opportunityNotifications.push(_.pick(item.opportunityNotification, 'AccountId', 'CampaignId', 'OpportunityTypeId'));\r\n break;\r\n case notificationSources.recommendation:\r\n addOneNotificationDimissQuery({\r\n item,\r\n addIndividualQuery: () => notificationDeliveryIds.push({\r\n deliveryId: item.uiDeliveryId,\r\n notificationTypeId: item.notificationTypeId,\r\n notificationSource: item.notificationSource,\r\n }),\r\n });\r\n break;\r\n default:\r\n addOneNotificationDimissQuery({ item });\r\n break;\r\n }\r\n notificationTypeIdsForLog.push(item.notificationTypeId);\r\n });\r\n\r\n return {\r\n dismissIds,\r\n uiDeliveryIds,\r\n notificationTypeIds,\r\n notificationDeliveryIds,\r\n opportunityNotifications,\r\n notificationTypeIdsForLog,\r\n };\r\n };\r\n\r\n MTNotificationDismiss = (attr) => {\r\n const { dismissIds } = attr;\r\n const query = _.omit(attr, 'dismissIds', 'notificationTypeIdsForLog');\r\n const { logger } = this.props;\r\n\r\n logger.startProcess(scenarioNames.NotificationDismiss);\r\n NotificationResources.queueNotifications\r\n .updateAll(JSON.stringify(query), this.state.context, noCacheResponseRequestHeader)\r\n .then(() => {\r\n logger.endProcess(scenarioNames.NotificationDismiss, dismissIds.length.toString());\r\n _.each(dismissIds, id => NotificationResources.queueNotifications.eject(id));\r\n })\r\n .catch((err) => {\r\n this.logError(scenarioNames.NotificationDismissError, err);\r\n });\r\n };\r\n\r\n fetchMTNotifications = (loadScenarioName) => {\r\n const { logger } = this.props;\r\n\r\n const isInAutoLoad = loadScenarioName === scenarioNames.PreviewBarLoad;\r\n const loadErrorScenarioName = isInAutoLoad ?\r\n scenarioNames.PreviewBarLoadError : scenarioNames.NotificationLoadError;\r\n const renderScenarioName = isInAutoLoad ?\r\n scenarioNames.PreviewBarRender : scenarioNames.NotificationRender;\r\n\r\n if (!this.state.contextValid) {\r\n logger.trace(scenarioNames.InvalidContext, this.logContent(loadScenarioName));\r\n this.setState(_.extend({\r\n MTNotificationsErrLoaded: true,\r\n }, isInAutoLoad && {\r\n showTrigger: true,\r\n }));\r\n\r\n return;\r\n }\r\n\r\n if (this.state.MTNotificationsRequestState === requestStates.notStart) {\r\n this.setState({\r\n MTNotificationsRequestState: requestStates.inProgress,\r\n MTNotificationsErrLoaded: false,\r\n MTNotificationsLoaded: false,\r\n });\r\n\r\n const { context } = this.state;\r\n const promise = NotificationResources.queueNotifications\r\n .findAll({ ...context, isUINext: this.props.isUINext });\r\n\r\n logger.startProcess(loadScenarioName);\r\n promise\r\n .then(notificationsOrigin => !this.unmounted && this.setState((prevState) => {\r\n if (!isContextChanged(context, prevState.context)) {\r\n const {\r\n totalCount,\r\n raw: { accountNumber, previewBarDismissState, showViewAll } = {},\r\n } = notificationsOrigin;\r\n let notifications = _.map(notificationsOrigin, this.formatMTNotification);\r\n\r\n if (this.props.MTNotificationFilter) {\r\n notifications = this.props.MTNotificationFilter(notifications);\r\n }\r\n\r\n logger.endProcess(loadScenarioName, totalCount.toString());\r\n logger.trace(\r\n loadScenarioName,\r\n this.logContent(this.logNotificationObj({\r\n total: totalCount,\r\n notifications,\r\n }))\r\n );\r\n\r\n logger.startProcess(renderScenarioName);\r\n return _.extend({\r\n showTrigger: true,\r\n MTNotificationsRequestState: requestStates.loaded,\r\n MTNotificationsLoaded: true,\r\n MTNotifications: notifications,\r\n accountNumber,\r\n showViewAll,\r\n }, previewBarDismissState === previewBarDismissedValue && {\r\n previewBarState: previewBarStates.dismissed,\r\n });\r\n }\r\n\r\n return null;\r\n }, this.endProcessWithCount(renderScenarioName)))\r\n .catch((err) => {\r\n this.logError(loadErrorScenarioName, err);\r\n if (!this.unmounted) {\r\n this.setState({\r\n showTrigger: true,\r\n MTNotificationsErrLoaded: true,\r\n MTNotificationsRequestState: requestStates.notStart,\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n fetchWhatsNewNotification = () => {\r\n const {\r\n logger, baseHelpUrl, i18n,\r\n } = this.props;\r\n if (baseHelpUrl && this.state.whatsNewRequestState === requestStates.notStart) {\r\n this.setState({ whatsNewRequestState: requestStates.inProgress });\r\n\r\n const { context } = this.state;\r\n logger.startProcess(scenarioNames.WhatsNewLoad);\r\n const getCurrentStatePromise = NotificationResources.whatsNewDismissState.findAll(context);\r\n getNews({\r\n baseHelpUrl,\r\n locale: _.isFunction(i18n.getLocale) && i18n.getLocale(),\r\n getCurrentStatePromise,\r\n helpParams: this.props.helpParams,\r\n }).then((whatsNewOrigin = {}) =>\r\n !this.unmounted && this.setState((prevState) => {\r\n if (!isContextChanged(context, prevState.context)) {\r\n const hasWhatsNew = whatsNewOrigin.type && whatsNewOrigin.cacheId;\r\n\r\n logger.endProcess(\r\n scenarioNames.WhatsNewLoad,\r\n hasWhatsNew ? '1' : '0'\r\n );\r\n logger.trace(\r\n scenarioNames.WhatsNewLoad,\r\n this.logContent(whatsNewOrigin)\r\n );\r\n\r\n const showWhatsNew = hasWhatsNew && !prevState.whatsNewDismissed;\r\n\r\n return {\r\n showTrigger: true,\r\n whatsNewData: showWhatsNew ? whatsNewOrigin : {},\r\n whatsNewRequestState: requestStates.loaded,\r\n whatsNewNotifications: showWhatsNew ? [this.whatsNewNotification] : [],\r\n };\r\n }\r\n return null;\r\n }));\r\n }\r\n };\r\n\r\n dismissWhatsNewNotification = () => {\r\n const { logger } = this.props;\r\n const { whatsNewData, context } = this.state;\r\n const { type, cacheId } = whatsNewData;\r\n\r\n if (type && cacheId) {\r\n logger.trace(scenarioNames.WhatsNewDismiss, this.logContent(whatsNewData));\r\n NotificationResources.whatsNewDismissState\r\n .updateAll({ cacheId }, context, noCacheResponseRequestHeader);\r\n this.setState({\r\n whatsNewDismissed: true,\r\n whatsNewData: {},\r\n whatsNewNotifications: [],\r\n });\r\n }\r\n };\r\n\r\n hidePreviewBar = () => {\r\n if (this.state.previewBarState < previewBarStates.hidden) {\r\n this.setState({\r\n previewBarState: previewBarStates.hidden,\r\n });\r\n }\r\n };\r\n\r\n openQueue = () => {\r\n if (!this.state.MTNotificationsLoaded && !this.popover.state.open) {\r\n this.fetchMTNotifications(scenarioNames.NotificationLoad);\r\n }\r\n\r\n this.hidePreviewBar();\r\n };\r\n\r\n triggerClick = () => {\r\n if (!this.state.queueDisplayProcessLogged) {\r\n this.props.logger.trace(scenarioNames.TriggerClick, this.logContent());\r\n }\r\n\r\n this.openQueue();\r\n };\r\n\r\n // click view more link in preview bar\r\n viewMore = (e, content) => {\r\n e.stopPropagation();\r\n this.props.logger.trace(scenarioNames.PreviewBarViewMore, this.logContent(content));\r\n this.openQueue();\r\n this.popover.togglePopover(e);\r\n };\r\n\r\n closeQueue = (e) => {\r\n if (this.popover) {\r\n this.popover.dismissPopover(e);\r\n }\r\n };\r\n\r\n closeQueueOnAccountsSummaryPage = (e) => {\r\n if (this.props.isOnAccountsSummaryPage) {\r\n this.closeQueue(e);\r\n }\r\n };\r\n\r\n openDialog = (notificationId) => {\r\n if (this.state.dialogProps[notificationId]) {\r\n this.setState({\r\n notificationId,\r\n isDialogOpen: true,\r\n });\r\n }\r\n };\r\n\r\n closeDialog = () => {\r\n this.setState({\r\n isDialogOpen: false,\r\n });\r\n };\r\n\r\n // these two are callbacks for \r\n popoverCallbackOpenQueue = () => {\r\n if (!this.state.isQueueOpen) {\r\n this.setState({ isQueueOpen: true });\r\n }\r\n };\r\n\r\n popoverCallbackCloseQueue = () => {\r\n if (this.state.isQueueOpen) {\r\n this.setState({ isQueueOpen: false });\r\n }\r\n };\r\n\r\n dismissPreviewBar = (content) => {\r\n this.props.logger.trace(scenarioNames.PreviewBarDismiss, this.logContent(content));\r\n NotificationResources.previewBarDismissState\r\n .updateAll({}, this.state.context, noCacheResponseRequestHeader);\r\n this.setState({ previewBarState: previewBarStates.dismissed });\r\n };\r\n\r\n dismissMTNotification = (notification) => {\r\n const dismissQuery = this.MTNotificationDismissQuery([notification]);\r\n\r\n this.props.logger.trace(\r\n scenarioNames.NotificationDismiss,\r\n this.logContent(dismissQuery)\r\n );\r\n this.MTNotificationDismiss(dismissQuery);\r\n this.setState(prevState => ({\r\n MTNotifications: _.reject(prevState.MTNotifications, ({ id }) => id === notification.id),\r\n }));\r\n };\r\n\r\n // dismiss all notifications\r\n dismissAll = (event) => {\r\n this.focusLockRef.current.focusNextElement(event.target);\r\n // dismiss MT notifications\r\n const dismissQuery = this.MTNotificationDismissQuery();\r\n const { dismissIds } = dismissQuery;\r\n\r\n if (!_.isEmpty(dismissIds)) {\r\n this.props.logger.trace(\r\n scenarioNames.NotificationDismissAll,\r\n this.logContent(dismissQuery)\r\n );\r\n this.MTNotificationDismiss(dismissQuery);\r\n this.setState({ MTNotifications: [] });\r\n }\r\n\r\n // dismiss what's new notification\r\n if (this.props.baseHelpUrl) {\r\n this.dismissWhatsNewNotification();\r\n }\r\n\r\n this.props.dismissAllExternalNotifications();\r\n };\r\n\r\n removeNotification = (notificationId) => {\r\n this.setState({\r\n unavailableNotifications: [...this.state.unavailableNotifications, notificationId],\r\n });\r\n };\r\n\r\n getPreviewNotifications = (orderedNotifications) => {\r\n /*\r\n Per UNQ metrics, critical/warning notifications have a higher action rate and a lower dismiss rate\r\n Opportunity/information notifications have a lower action rate and a higher dismiss rate\r\n We want to keep only critical/warning notifications in the preview bar\r\n With this change, the impression of the opportunity/information notifications from the preview bar is expected to disappear\r\n Since the preview bar click rate and the UNQ action rate are both low for opportunity/information notifications. So the impact seems acceptable\r\n You can find the metrics in the following link: https://lens.msftcloudes.com/#/dashboard/0b3ad1bd-b90a-4bda-9a8c-a6d33e86fe19?temp=0&newDashFromMenu=false&isSample=false&isVersion=0&isHistory=0&_g=(ws:c2f3630b-0431-46a6-9b7e-8386d5a59805)\r\n */\r\n const filteredNotifications = this.isPreviewBarFilteringEnabled\r\n ? _.filter(orderedNotifications, item => item.severity === 'Critical' || item.severity === 'Warning')\r\n : orderedNotifications;\r\n\r\n return getPreviewNotifications(filteredNotifications);\r\n };\r\n\r\n getShowPreviewBar = previewNotifications =>\r\n this.props.shouldShowPreviewBar &&\r\n this.state.previewBarState < previewBarStates.hidden &&\r\n this.state.MTNotificationsRequestState === requestStates.loaded &&\r\n previewNotifications.length > 0;\r\n\r\n render() {\r\n const { totalCount, orderedNotifications } = this;\r\n // Below two lines are for reducing the calculation\r\n const previewNotifications = this.getPreviewNotifications(orderedNotifications);\r\n const showPreviewBar = this.getShowPreviewBar(previewNotifications);\r\n\r\n let previewBarProps;\r\n\r\n if (showPreviewBar) {\r\n const previewNotificationLogData = previewNotifications.map(notification => _.pick(notification, notificationLogKeys));\r\n\r\n previewBarProps = {\r\n items: getPreviewItems(previewNotifications),\r\n notificationCount: totalCount,\r\n viewMoreText: this.props.i18n.getString(_TL_('and more')),\r\n viewMoreAction: e => this.viewMore(e, previewNotificationLogData),\r\n dismissAction: () => this.dismissPreviewBar(previewNotificationLogData),\r\n i18n: this.props.i18n,\r\n };\r\n }\r\n\r\n const {\r\n PreviewBar,\r\n } = this.props;\r\n\r\n const {\r\n cid, aid, uid, campaignId,\r\n } = this.props.context;\r\n const propContextKey = `cid:${cid},aid:${aid},uid:${uid},cmpid:${campaignId}`;\r\n\r\n const trigger = (\r\n 0}\r\n action={this.triggerClick}\r\n isUINext={this.props.isUINext}\r\n text={this.props.i18n.getString(_TL_('Notifications'))}\r\n isQueueOpen={this.state.isQueueOpen}\r\n disableKeyboardNav={this.props.forNewGlobalMenu}\r\n triggerButtonRole={this.props.triggerButtonRole}\r\n />\r\n );\r\n\r\n return (\r\n
\r\n {this.state.showTrigger || this.state.showTriggerFromExternal || this.props.isUINext ? (\r\n
\r\n { this.popover = popover; }}\r\n onOpen={this.popoverCallbackOpenQueue}\r\n onDismiss={this.popoverCallbackCloseQueue}\r\n keepTargetPropagation\r\n >\r\n this.popover.togglePopover({ type: 'click' })}\r\n focusFirstItemOnMount\r\n ref={this.focusLockRef}\r\n >\r\n \r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nUnifiedNotificationQueue.propTypes = {\r\n PreviewBar: PropTypes.node,\r\n shouldShowPreviewBar: PropTypes.bool.isRequired,\r\n isUINext: PropTypes.bool.isRequired,\r\n externalNotifications: PropTypes.arrayOf(PropTypes.shape({\r\n severity: PropTypes.oneOf(_.keys(severityOrder)),\r\n id: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ]),\r\n title: PropTypes.string,\r\n message: PropTypes.string,\r\n actionList: PropTypes.arrayOf(PropTypes.shape({\r\n text: PropTypes.string,\r\n href: PropTypes.string,\r\n action: PropTypes.func,\r\n extraClassNames: PropTypes.arrayOf(PropTypes.string),\r\n extraAttrs: PropTypes.objectOf(PropTypes.string),\r\n callbackType: PropTypes.string,\r\n isJumpout: PropTypes.bool,\r\n })),\r\n dismissAction: PropTypes.func,\r\n })),\r\n dismissAllExternalNotifications: PropTypes.func,\r\n context: PropTypes.shape({\r\n cid: PropTypes.number,\r\n aid: PropTypes.number,\r\n uid: PropTypes.number,\r\n campaignId: PropTypes.number,\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n getLocale: PropTypes.func,\r\n }).isRequired,\r\n ccBaseUrl: PropTypes.string.isRequired,\r\n logger: PropTypes.shape({\r\n mark: PropTypes.func,\r\n startProcess: PropTypes.func,\r\n endProcess: PropTypes.func,\r\n trace: PropTypes.func,\r\n error: PropTypes.func,\r\n }),\r\n generateViewAllLink: PropTypes.func,\r\n goTargetPage: PropTypes.func,\r\n getPathBySiteMapId: PropTypes.func,\r\n isOnAccountsSummaryPage: PropTypes.bool,\r\n baseHelpUrl: PropTypes.string.isRequired,\r\n whatsNewHelpQuery: PropTypes.string,\r\n helpParams: PropTypes.shape({\r\n project: PropTypes.string,\r\n language: PropTypes.string,\r\n asRow: PropTypes.number,\r\n query: PropTypes.string,\r\n }),\r\n MTNotificationFilter: PropTypes.func,\r\n permissions: PropTypes.shape({}),\r\n setIsActive: PropTypes.func,\r\n forNewGlobalMenu: PropTypes.bool,\r\n triggerButtonRole: PropTypes.string,\r\n};\r\n\r\nUnifiedNotificationQueue.defaultProps = {\r\n externalNotifications: [],\r\n dismissAllExternalNotifications: _.noop,\r\n logger: {\r\n mark: _.noop,\r\n startProcess: _.noop,\r\n endProcess: _.noop,\r\n trace: _.noop,\r\n error: _.noop,\r\n },\r\n generateViewAllLink: _.noop,\r\n goTargetPage: undefined,\r\n getPathBySiteMapId: undefined,\r\n isOnAccountsSummaryPage: false,\r\n whatsNewHelpQuery,\r\n helpParams: undefined,\r\n MTNotificationFilter: undefined,\r\n permissions: {},\r\n setIsActive: _.noop,\r\n forNewGlobalMenu: false,\r\n triggerButtonRole: '',\r\n PreviewBar: defaultPreviewBar,\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1369__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1370__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1371__;","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nexport const Trigger = (props) => {\r\n const btnClassNames = props.isQueueOpen ?\r\n classnames('unified-notification-queue-trigger-btn', 'trigger-queue-open', 'btn') :\r\n classnames('unified-notification-queue-trigger-btn', 'trigger-queue-close', 'btn');\r\n const bellClassNames = props.active ?\r\n classnames('alert-icon', 'notification-bell-active') :\r\n classnames('alert-icon', 'notification-bell-inactive');\r\n\r\n return (\r\n
\r\n {props.isUINext ? (\r\n \r\n ) : (\r\n
\r\n );\r\n};\r\n\r\nTrigger.propTypes = {\r\n isQueueOpen: PropTypes.bool,\r\n active: PropTypes.bool.isRequired,\r\n action: PropTypes.func,\r\n isUINext: PropTypes.bool.isRequired,\r\n text: PropTypes.string.isRequired,\r\n id: PropTypes.string,\r\n disableKeyboardNav: PropTypes.bool,\r\n triggerButtonRole: PropTypes.string,\r\n};\r\n\r\nTrigger.defaultProps = {\r\n isQueueOpen: false,\r\n action: _.noop,\r\n id: 'unified-notification-queue-trigger-btn-id', // For popover identifying trigger button\r\n disableKeyboardNav: false,\r\n triggerButtonRole: '',\r\n};\r\n","import _ from 'underscore';\r\nimport { helpers as urlHelpers } from '@bingads-webui/notification-service';\r\nimport {\r\n contextKeys, severityOrder, whatsNewId, whatsNewSeverityOrder,\r\n actionCallbackTypes,\r\n} from './constants';\r\n\r\nexport function isApexDisabled() {\r\n const uri = new URL(window.location.href);\r\n return uri.searchParams.get('apexDisabled') === 'true';\r\n}\r\n\r\nexport const trimEndSlash = s => (_.isString(s) ? s.replace(/\\/*$/, '') : s);\r\n\r\nconst getHelpPanel = () => document.querySelector('#apexHelpContainer');\r\n\r\nconst isTriggerFromHelpPanel = (target) => {\r\n const helpPanel = getHelpPanel();\r\n return helpPanel && helpPanel.contains(target);\r\n};\r\n\r\nexport const customKeepOpen = ({ target }) => target.classList.contains('notification-queue-item-dismiss') ||\r\n (target.parentElement && target.parentElement.classList.contains('notification-queue-footer')) ||\r\n target.classList.contains('notification-queue-item-action-dismiss') ||\r\n isTriggerFromHelpPanel(target);\r\n\r\nexport const isContextChanged = (\r\n {\r\n cid: cid1, aid: aid1, uid: uid1, campaignId: campaignId1, pageEnum: pageEnum1,\r\n } = {},\r\n {\r\n cid: cid2, aid: aid2, uid: uid2, campaignId: campaignId2, pageEnum: pageEnum2,\r\n } = {}\r\n) => (\r\n cid1 !== cid2 ||\r\n aid1 !== aid2 ||\r\n uid1 !== uid2 ||\r\n campaignId1 !== campaignId2 ||\r\n pageEnum1 !== pageEnum2\r\n);\r\n\r\nexport const validateContext = ({ cid, aid, campaignId } = {}) => !!cid && (!campaignId || !!aid);\r\n\r\nexport const generateViewAllLinkInOldUI = campaignDomain => (\r\n { context: { cid, uid }, isOnAccountsSummaryPage },\r\n { accountNumber }\r\n) => {\r\n const prefix = `${trimEndSlash(campaignDomain)}/Campaign/AccountsSummary?cid=${cid}&uid=${uid}`;\r\n const MCCHash = `#customer/${cid}/accounts-summary/notification`;\r\n const MCCHref = `${isOnAccountsSummaryPage ? '' : prefix}${MCCHash}`;\r\n const preFilter = accountNumber ? JSON.stringify([{\r\n Field: 'AccountNumber',\r\n Operator: 2,\r\n Values: accountNumber,\r\n }]) : 'all';\r\n\r\n return { href: `${MCCHref}/${preFilter}` };\r\n};\r\n\r\nexport const getContextByParameters = parameters =>\r\n _.chain(parameters)\r\n .pick(contextKeys) // pick context keys\r\n .omit(val => _.isBoolean(val)) // omit boolean, Number(true) === 1\r\n .mapObject(Number) // convert to Number\r\n .pick((val, key) => val === parseInt(val, 10) && (val > 0 || key === 'pageEnum')) // pick positive integer\r\n .value();\r\n\r\nexport const getContext = ({ parameters, uid } = {}) =>\r\n getContextByParameters({\r\n uid,\r\n ...urlHelpers.getParameters(),\r\n ...(!_.isEmpty(parameters) && parameters),\r\n });\r\n\r\n// log the errors as trace logs for now, needs to investigate what the [Object, Object] log is\r\nexport const logError = ({\r\n scenarioName,\r\n error,\r\n logContent,\r\n logger,\r\n}) => {\r\n let mes = 'Caught unknown error';\r\n\r\n if (error) {\r\n mes = error.toString();\r\n\r\n if (!(error instanceof Error) && _.isObject(error)) {\r\n mes = error.message || JSON.stringify(error);\r\n }\r\n }\r\n\r\n logger.trace(scenarioName, logContent(mes));\r\n};\r\n\r\nexport const sortNotifications = notifications => _.sortBy(notifications, ({ id, severity }) =>\r\n (id === whatsNewId ? whatsNewSeverityOrder : severityOrder[severity]));\r\n\r\nexport const getPreviewNotifications = (orderedNotifications) => {\r\n if (orderedNotifications.length === 0) {\r\n return [];\r\n }\r\n\r\n const previewNotifications = [orderedNotifications[0]];\r\n\r\n if (orderedNotifications.length === 1 ||\r\n severityOrder[orderedNotifications[0].severity] >= severityOrder.Information ||\r\n severityOrder[orderedNotifications[0].severity]\r\n === severityOrder[orderedNotifications[orderedNotifications.length - 1].severity]) {\r\n return previewNotifications;\r\n }\r\n\r\n for (let i = 1; i < orderedNotifications.length; i += 1) {\r\n if (severityOrder[orderedNotifications[i].severity]\r\n > severityOrder[orderedNotifications[0].severity]) {\r\n previewNotifications.push(orderedNotifications[i]);\r\n break;\r\n }\r\n }\r\n\r\n return previewNotifications;\r\n};\r\n\r\nexport const getPreviewItems = previewNotifications => _.map(previewNotifications, ({ severity, title }) => ({ severity, content: title }));\r\n\r\nexport const wrapActionForUINext = (action, getPathBySiteMapId, goTargetPage) => {\r\n const res = action;\r\n const { siteMapId, search } = action;\r\n if (siteMapId) {\r\n const pathname = getPathBySiteMapId(siteMapId);\r\n\r\n if (pathname) {\r\n res.href = `${pathname}${search}`;\r\n res.isJumpOut = false;\r\n res.callbackType = actionCallbackTypes.closeQueue;\r\n res.action = (e) => {\r\n e.preventDefault(); // avoid opening href link during client-side navigation\r\n goTargetPage(siteMapId, search, res.href);\r\n };\r\n }\r\n }\r\n\r\n return res;\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const contextPropTypes = PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n]);\r\n\r\nexport const contextKeys = [\r\n 'cid',\r\n 'aid',\r\n 'uid',\r\n 'campaignId',\r\n 'pageEnum',\r\n];\r\n\r\nconst scenarioNamePrefix = 'UnifiedNotificationQueue';\r\nconst APIScenarioNamePrefix = `${scenarioNamePrefix}API`;\r\nconst generateScenarioName = suffix => `${scenarioNamePrefix}${suffix}`;\r\nconst generateAPIScenarioName = suffix => `${APIScenarioNamePrefix}${suffix}`;\r\n\r\n// Error scenarioName has _Error_ in the middle for not impacting metrics\r\nexport const scenarioNames = {\r\n InvalidContext: generateScenarioName('InvalidContext'),\r\n NotificationLoad: generateScenarioName('NotificationLoad'),\r\n NotificationLoadError: generateScenarioName('_Error_NotificationLoad'),\r\n NotificationDismiss: generateScenarioName('NotificationDismiss'),\r\n NotificationDismissError: generateScenarioName('_Error_NotificationDismiss'),\r\n NotificationDismissAll: generateScenarioName('NotificationDismissAll'),\r\n NotificationCard: generateScenarioName('NotificationCard'),\r\n NotificationSeverity: generateScenarioName('NotificationSeverity'),\r\n NotificationRender: generateScenarioName('NotificationRender'),\r\n PreviewBarLoad: generateScenarioName('PreviewBarLoad'),\r\n PreviewBarLoadError: generateScenarioName('_Error_PreviewBarLoad'),\r\n PreviewBarShow: generateScenarioName('PreviewBarShow'),\r\n PreviewBarViewMore: generateScenarioName('PreviewBarViewMore'),\r\n PreviewBarDismiss: generateScenarioName('PreviewBarDismiss'),\r\n PreviewBarRender: generateScenarioName('PreviewBarRender'),\r\n PreviewBarRenderNotifications: generateScenarioName('PreviewBarRenderNotifications'),\r\n QueueDisplayShow: generateScenarioName('QueueDisplayShow'),\r\n TriggerClick: generateScenarioName('TriggerClick'),\r\n TriggerShow: generateScenarioName('TriggerShow'),\r\n TriggerShowContextChanged: generateScenarioName('TriggerShowContextChanged'),\r\n WhatsNewLoad: generateScenarioName('WhatsNewLoad'),\r\n WhatsNewRender: generateScenarioName('WhatsNewRender'),\r\n WhatsNewDismiss: generateScenarioName('WhatsNewDismiss'),\r\n};\r\n\r\nexport const APIScenarioNames = {\r\n removeExByIds: generateAPIScenarioName('RemoveExByIds'),\r\n removeExByIdsInternal: generateAPIScenarioName('RemoveExByIdsInternal'),\r\n removeAllEx: generateAPIScenarioName('RemoveAllEx'),\r\n removeAllExInternal: generateAPIScenarioName('RemoveAllExInternal'),\r\n removeEx: generateAPIScenarioName('RemoveEx'),\r\n removeExInternal: generateAPIScenarioName('RemoveExInternal'),\r\n showEx: generateAPIScenarioName('ShowEx'),\r\n setPreviewBarVisibility: generateAPIScenarioName('setPreviewBarVisibility'),\r\n};\r\n\r\nexport const notificationLogKeys = [\r\n 'severity',\r\n 'notificationSource',\r\n 'notificationTypeId',\r\n 'uiDeliveryId',\r\n 'opportunityNotification',\r\n];\r\n\r\nexport const APINotificationLogKeys = [\r\n 'id',\r\n 'severity',\r\n 'notificationSource',\r\n 'notificationTypeId',\r\n];\r\n\r\nexport const whatsNewId = 'whats-new';\r\nexport const whatsNewHelpQuery = 'help:app50044';\r\nexport const whatsNewHelpClass = 'HelpTopic';\r\nexport const whatsNewSeverity = 'Information';\r\nexport const whatsNewSeverityOrder = 3.5;\r\n\r\nexport const whatsNewDefaultParams = {\r\n project: 'bing_ads',\r\n language: 'en-US', // default\r\n asRow: -2,\r\n query: whatsNewHelpQuery,\r\n};\r\n\r\nexport const severityOrder = {\r\n Critical: 1,\r\n Warning: 2,\r\n Opportunity: 3,\r\n Information: 4,\r\n};\r\n\r\nexport const requestStates = {\r\n notStart: 1,\r\n inProgress: 2,\r\n loaded: 3,\r\n};\r\n\r\nexport const previewBarStates = {\r\n notShown: 1,\r\n shouldShow: 2,\r\n hidden: 3,\r\n dismissed: 4,\r\n};\r\n\r\nexport const previewBarDismissedValue = 'dismissed';\r\n\r\nexport const noCacheResponseRequestHeader = {\r\n contentType: 'application/json',\r\n dataType: 'json',\r\n cacheResponse: false,\r\n};\r\n\r\nexport const notificationSources = {\r\n messageCenter: 'MessageCenter',\r\n adInsightOpportunity: 'AdInsightOpportunity',\r\n recommendation: 'Recommendation',\r\n whatsNew: 'WhatsNew',\r\n};\r\n\r\nexport const actionCallbackTypes = {\r\n closeQueue: 'closeQueue',\r\n closeQueueOnAccountsSummaryPage: 'closeQueueOnAccountsSummaryPage',\r\n openDialog: 'openDialog',\r\n};\r\n","import { NotificationStore } from '@bingads-webui/notification-service';\r\nimport { trimEndSlash } from './utils';\r\n\r\nexport const defineResources = (ccBaseUrl) => {\r\n NotificationStore.defineRestResource('queueNotifications', {\r\n uriPath: `${trimEndSlash(ccBaseUrl)}/notifications/queueNotifications`,\r\n });\r\n NotificationStore.defineRestResource('previewBarDismissState', {\r\n uriPath: `${trimEndSlash(ccBaseUrl)}/notifications/previewBarDismissState`,\r\n });\r\n NotificationStore.defineRestResource('whatsNewDismissState', {\r\n uriPath: `${trimEndSlash(ccBaseUrl)}/notifications/whatsNewDismissState`,\r\n });\r\n};\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\nimport { getHelpContent } from './whats-new-get-content';\r\nimport { whatsNewDefaultParams } from './constants';\r\n\r\nconst loadContent = (baseHelpUrl, locale, helpParams) => {\r\n const params = _.defaults({}, helpParams, { language: locale }, whatsNewDefaultParams);\r\n return getHelpContent(baseHelpUrl, params).then((result) => {\r\n /* istanbul ignore else */\r\n if (result && result.Content) {\r\n const helpContent = result.Content;\r\n /* istanbul ignore else */\r\n if (helpContent.Content && helpContent.ContentHash) {\r\n return {\r\n content: helpContent.Content,\r\n cacheId: helpContent.ContentHash,\r\n };\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n};\r\n\r\nconst getContent = (baseHelpUrl, locale, getCurrentStatePromise, helpParams) => Promise.all([\r\n getCurrentStatePromise,\r\n loadContent(baseHelpUrl, locale, helpParams),\r\n]).spread((currentState, latest) => {\r\n const current = _.isArray(currentState) ? _.first(currentState) : null;\r\n /* istanbul ignore else */\r\n if (!current || (latest && current.cacheId !== latest.cacheId)) {\r\n return latest;\r\n }\r\n\r\n return null;\r\n}).catch(() => null);\r\n\r\nexport const getNews = ({\r\n baseHelpUrl,\r\n locale,\r\n getCurrentStatePromise,\r\n helpParams,\r\n}) => new Promise((resolve) => {\r\n const content = getContent(baseHelpUrl, locale, getCurrentStatePromise, helpParams);\r\n content.then((news) => {\r\n const whatsnewData = news && news.cacheId ? { type: 'news', cacheId: news.cacheId } : {};\r\n resolve(whatsnewData);\r\n });\r\n});\r\n","/* istanbul ignore file */\r\nimport $ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport { trimEndSlash, isApexDisabled } from './utils';\r\n\r\nexport const getHelpContent = (baseHelpUrl, params) => (isApexDisabled() ? Promise.resolve(null) : $.ajax({\r\n url: `${trimEndSlash(baseHelpUrl)}/api/apexv2api`,\r\n data: params,\r\n dataType: 'json',\r\n}));\r\n","import { setLogger } from './api/logger';\r\nimport { show, removeByIds, removeAll, remove } from './api/external-notifications';\r\nimport { setVisibility } from './api/preview-bar';\r\n\r\nexport const setAPIConfig = (config) => {\r\n setLogger(config);\r\n};\r\nexport {\r\n getAll as getAllExternalNotifications,\r\n dismissAll as dismissAllExternalNotifications,\r\n onChange as onExternalNotificationsChange,\r\n unbind as unbindExternalNotifications,\r\n} from './api/external-notifications';\r\nexport {\r\n getVisibility as getPreviewBarVisibility,\r\n onVisibilityChange as onPreviewBarVisibilityChange,\r\n unbindVisibility as unbindPreviewBarVisibility,\r\n} from './api/preview-bar';\r\nexport const externalNotificationsApi = {\r\n show, removeByIds, removeAll, remove,\r\n};\r\nexport const previewBarApi = { setVisibility };\r\n","let logger;\r\n\r\nexport const setLogger = (config) => {\r\n ({ logger } = config);\r\n};\r\n\r\nexport const logTrace = (scenarioName, content) => {\r\n if (logger && logger.trace) {\r\n logger.trace(scenarioName, content || 'No content to log.');\r\n }\r\n};\r\n","import _ from 'underscore';\r\nimport { logTrace } from './logger';\r\nimport { APIScenarioNames, APINotificationLogKeys } from '../constants';\r\n\r\nlet externalNotificationsMapping = {};\r\nlet onChangeHandler;\r\n\r\nconst logNotifications = (scenarioName, notifications, options) => {\r\n const logContent = JSON.stringify(_.map(\r\n notifications,\r\n notification => _.pick(notification, APINotificationLogKeys)\r\n ));\r\n // trace options in log only when it's defined\r\n const message = _.isObject(options) ?\r\n `Content: ${logContent}; Options: ${JSON.stringify(options)};` : logContent;\r\n logTrace(scenarioName, message);\r\n};\r\n\r\nconst getAll = () => _.values(externalNotificationsMapping);\r\n\r\nconst handleChange = () => onChangeHandler\r\n && onChangeHandler(getAll());\r\n\r\nconst onChange = (handler) => {\r\n onChangeHandler = handler;\r\n};\r\n\r\nconst unbind = (handler) => {\r\n if (onChangeHandler === handler) {\r\n onChangeHandler = undefined;\r\n }\r\n};\r\n\r\n// If the caller is from queue, isInternal should be true;\r\n// for external callers, isInternal is false by default.\r\nconst removeByIds = (ids, isInternal = false) => {\r\n const externalNotifications = getAll();\r\n\r\n externalNotificationsMapping = _.omit(externalNotificationsMapping, ids);\r\n handleChange();\r\n logNotifications(\r\n isInternal ? APIScenarioNames.removeExByIdsInternal : APIScenarioNames.removeExByIds,\r\n _.filter(externalNotifications, ({ id }) => _.contains(ids, id)),\r\n { ids }\r\n );\r\n};\r\n\r\nconst removeAll = (isInternal = false) => {\r\n const externalNotifications = getAll();\r\n\r\n externalNotificationsMapping = {};\r\n handleChange();\r\n logNotifications(\r\n isInternal ? APIScenarioNames.removeAllExInternal : APIScenarioNames.removeAllEx,\r\n externalNotifications,\r\n { removeAll: true }\r\n );\r\n};\r\n\r\n// This function is to remove notifications by giving filter options\r\n// remove all notifications by default if options undefined\r\nconst remove = (options = { removeAll: true }, isInternal = false) => {\r\n const externalNotifications = getAll();\r\n\r\n if (options.removeAll) {\r\n externalNotificationsMapping = {};\r\n } else {\r\n if (options.ids) {\r\n externalNotificationsMapping = _.omit(externalNotificationsMapping, options.ids);\r\n }\r\n if (options.notificationSources) {\r\n externalNotificationsMapping = _.omit(\r\n externalNotificationsMapping,\r\n item => _.contains(options.notificationSources, item.notificationSource)\r\n );\r\n }\r\n if (options.severities) {\r\n externalNotificationsMapping = _.omit(\r\n externalNotificationsMapping,\r\n item => _.contains(options.severities, item.severity)\r\n );\r\n }\r\n }\r\n handleChange();\r\n logNotifications(\r\n isInternal ? APIScenarioNames.removeExInternal : APIScenarioNames.removeEx,\r\n _.filter(\r\n externalNotifications,\r\n ({ id }) => !_.contains(_.keys(externalNotificationsMapping), id)\r\n ),\r\n options\r\n );\r\n};\r\n\r\nconst dismissAll = () => {\r\n const externalNotifications = getAll();\r\n\r\n if (externalNotifications.length > 0) {\r\n removeAll(true);\r\n _.each(externalNotifications, ({ dismissCallback }) => dismissCallback());\r\n }\r\n};\r\n\r\nconst show = (notifications) => {\r\n const notificationsToLog = [];\r\n\r\n externalNotificationsMapping = {\r\n ...externalNotificationsMapping,\r\n ..._.reduce(notifications, (memo, notification) => {\r\n const dismissCallback = notification.dismissAction || _.noop;\r\n\r\n notificationsToLog.push(notification);\r\n\r\n return {\r\n ...memo,\r\n [notification.id]: {\r\n ...notification,\r\n dismissAction: () => {\r\n removeByIds([notification.id], true);\r\n dismissCallback();\r\n },\r\n dismissCallback,\r\n },\r\n };\r\n }, {}),\r\n };\r\n handleChange();\r\n logNotifications(APIScenarioNames.showEx, notificationsToLog);\r\n};\r\n\r\nexport {\r\n // for internal use\r\n getAll, dismissAll, onChange, unbind,\r\n\r\n // for external use\r\n show, removeByIds, removeAll, remove,\r\n};\r\n","import { logTrace } from './logger';\r\nimport { APIScenarioNames } from '../constants';\r\n\r\nlet previewBarVisibility;\r\nlet onVisibilityChangeHandler;\r\n\r\nconst getVisibility = () => previewBarVisibility;\r\n\r\nconst handlePreviewBarVisibilityChange = () => onVisibilityChangeHandler\r\n && onVisibilityChangeHandler(getVisibility());\r\n\r\nconst onVisibilityChange = (handler) => {\r\n onVisibilityChangeHandler = handler;\r\n};\r\n\r\nconst unbindVisibility = (handler) => {\r\n if (onVisibilityChangeHandler === handler) {\r\n onVisibilityChangeHandler = undefined;\r\n }\r\n};\r\n\r\nconst setVisibility = (visibility) => {\r\n previewBarVisibility = visibility;\r\n handlePreviewBarVisibilityChange();\r\n logTrace(APIScenarioNames.setPreviewBarVisibility, String(visibility));\r\n};\r\n\r\nexport {\r\n // for internal use\r\n getVisibility, onVisibilityChange, unbindVisibility,\r\n // for external use\r\n setVisibility\r\n};\r\n","import { loading } from './loading';\r\nimport { notificationQueue } from './notification-queue';\r\nimport { UNQIndexStyle } from './UNQ-index-style';\r\n\r\nexport const getUNQIndex = (_, { palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n UNQIndex: {\r\n '@global':\r\n Object.assign(\r\n UNQIndexStyle(_, { palette, iconFontFamily }),\r\n notificationQueue(_, { palette, iconFontFamily }),\r\n loading(_, { palette, iconFontFamily })\r\n ),\r\n },\r\n});\r\n","/* eslint-disable no-unused-vars */\r\nexport const loading = (_, { palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n\r\n '.blocker-image': {\r\n display: 'inline-block',\r\n width: 26,\r\n height: '26px',\r\n position: 'absolute',\r\n top: 215,\r\n left: 207,\r\n },\r\n\r\n '.blocker-image:after': {\r\n content: '\" \"',\r\n display: 'block',\r\n width: 26,\r\n height: '26px',\r\n margin: '1px',\r\n borderRadius: '50%',\r\n border: '1px solid',\r\n borderRightColor: '#0078D4',\r\n borderLeftColor: '#CDE6F7',\r\n borderTopColor: '#CDE6F7',\r\n borderBottomColor: '#CDE6F7',\r\n animation: 'spinner 1.2s linear infinite',\r\n },\r\n\r\n '@keyframes spinner': {\r\n to: {\r\n transform: 'rotate(360deg)',\r\n },\r\n },\r\n});\r\n\r\n","import { notificationClearImgBase64 } from './notification-clear-img';\r\n/* eslint-disable no-unused-vars */\r\nexport const notificationQueue = (_, { palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n\r\n '.unified-notification-queue': {\r\n\r\n '& .notification-queue': {\r\n position: 'relative',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: 460,\r\n border: 0,\r\n textAlign: 'left',\r\n cursor: 'auto',\r\n lineHeight: 'normal',\r\n\r\n '& .title': {\r\n fontWeight: 'bold',\r\n wordBreak: 'break-word',\r\n },\r\n\r\n '& .notification-queue-dismiss': {\r\n position: 'absolute',\r\n top: 20,\r\n right: 20,\r\n zIndex: 6001,\r\n minWidth: 12,\r\n },\r\n\r\n '& .notification-queue-header': {\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n fontSize: 20,\r\n lineHeight: '27px',\r\n color: '#323130',\r\n\r\n '& .notification-queue-header-content-wrapper': {\r\n padding: 0,\r\n\r\n '& hr': {\r\n display: 'none',\r\n },\r\n },\r\n },\r\n\r\n '& .notification-queue-empty': {\r\n padding: '37px 26px 5px',\r\n backgroundColor: '#FAF9F8',\r\n\r\n '& .empty-content': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: 'auto',\r\n\r\n '& .glasses': {\r\n display: 'block',\r\n margin: '14px 0px 16px 0px',\r\n width: 239,\r\n height: '216px',\r\n backgroundImage: `url(\"data:image/svg+xml;base64, ${notificationClearImgBase64}\")`,\r\n backgroundRepeat: 'no-repeat',\r\n },\r\n\r\n '& .empty-text': {\r\n fontSize: 14,\r\n color: '#605e5c',\r\n fontWeight: 600,\r\n },\r\n },\r\n },\r\n\r\n '& .notification-queue-display': {\r\n fontSize: 14,\r\n height: 'calc(100vh - 60px)',\r\n minHeight: '350px',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n\r\n '& .notification-queue-header': {\r\n left: 0,\r\n right: 0,\r\n padding: '37px 15px 21px',\r\n zIndex: 6000,\r\n backgroundColor: '#FAF9F8',\r\n\r\n '& .notification-queue-header-content-wrapper': {\r\n backgroundColor: '#FAF9F8',\r\n\r\n '& .action-link': {\r\n fontSize: 14,\r\n color: '#005A9E',\r\n position: 'absolute',\r\n right: 15,\r\n top: 40,\r\n height: 22,\r\n fontWeight: 'normal',\r\n lineHeight: '22px',\r\n zIndex: 6001,\r\n\r\n '& .btn-link': {\r\n color: '#0078D4',\r\n height: 22,\r\n padding: '0 4px',\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& .notification-queue-footer': {\r\n fontSize: 14,\r\n width: 460,\r\n backgroundColor: '#FAF9F8',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-end',\r\n\r\n '& .action-link': {\r\n padding: '4px 15px',\r\n color: '#005A9E',\r\n alignSelf: 'flex-end',\r\n },\r\n\r\n '& .hint-message': {\r\n color: '#323130',\r\n backgroundColor: '#eff6fc',\r\n border: 'none',\r\n boxShadow: 'none',\r\n display: 'flex',\r\n fontSize: 12,\r\n height: 'auto',\r\n lineHeight: '16px',\r\n padding: '14px 32px 23px 8px',\r\n\r\n '& .hint-message-image:before': {\r\n fontFamily: iconFontFamily,\r\n fontSize: 16,\r\n lineHeight: '16px',\r\n marginRight: 8,\r\n content: '\"\\\\E946\"',\r\n },\r\n },\r\n },\r\n\r\n '& .notification-queue-content': {\r\n padding: '0px 20px 0px 16px',\r\n flex: 1,\r\n overflow: 'auto',\r\n\r\n '& .notification-severity': {\r\n marginTop: 40,\r\n marginBottom: 0,\r\n\r\n '& .notification-severity-header': {\r\n lineHeight: '22px',\r\n fontWeight: 600,\r\n paddingBottom: 5,\r\n color: '#323130',\r\n },\r\n\r\n '& hr': {\r\n display: 'none',\r\n },\r\n\r\n '& .notification-item': {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginBottom: 12,\r\n marginRight: 5,\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: '0px 0.3px 0.9px rgba(0, 0, 0, 0.108), 0px 1.6px 3.6px rgba(0, 0, 0, 0.132)',\r\n borderRadius: 2,\r\n padding: '21px 18px 9px 18px',\r\n width: 425,\r\n position: 'relative',\r\n\r\n '& .left': {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n width: 20,\r\n position: 'absolute',\r\n },\r\n\r\n '& .center': {\r\n width: '100%',\r\n paddingLeft: 32,\r\n color: '#333333',\r\n\r\n '& .title': {\r\n display: 'block',\r\n lineHeight: '22px',\r\n fontWeight: 600,\r\n paddingBottom: 0,\r\n },\r\n\r\n '& .message': {\r\n display: 'block',\r\n lineHeight: '22px',\r\n fontSize: 12,\r\n paddingBottom: 6,\r\n\r\n '& .insight_icon': {\r\n fontFamily: iconFontFamily,\r\n color: palette.themePrimary,\r\n },\r\n\r\n '& .insight_icon:before': {\r\n content: '\"\\\\E3AF\"',\r\n },\r\n },\r\n\r\n '& .actions': {\r\n display: 'block',\r\n marginLeft: '-30px',\r\n paddingTop: 13,\r\n borderTop: '1px solid #E1DFDD',\r\n\r\n '& .action-link': {\r\n listStyleType: 'none',\r\n marginRight: 18,\r\n fontSize: 14,\r\n height: 22,\r\n lineHeight: '22px',\r\n color: '#0078D4',\r\n\r\n '& .btn-link': {\r\n color: '#0078D4',\r\n height: 22,\r\n padding: '0 4px',\r\n },\r\n },\r\n\r\n '& .action-link:last-child': {\r\n marginRight: 0,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& .notification-severity:first-child': {\r\n marginTop: 0,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n\r\n});\r\n","// original SVG: ../../images/new-glasses.svg\r\nexport const notificationClearImgBase64 = 'PHN2ZyB3aWR0aD0iMjM5IiBoZWlnaHQ9IjIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkwLjg2MiAxNjAuNjM1Yy00LjY3Ni0xLjk0OC0yMS4zMTItMy41ODktMjUuMzA4LTMuNzg5LTQ3LjYxOS0yLjMwOS01OC43NTQtNC44NzEtNjkuOTctLjE0Ny00LjU4MiAxLjkyMS02LjIwNyA2LjQ4NS03LjI4NiA5LjM0MS0yLjY2NCA3LjIxOS0yLjUxNyAxMi43OTctLjIyNiAyMC4yNDMgMS4zMzIgNC4yOTYgNi44ODYgNi45MzkgMTUuNTg0IDcuNzc5IDE3Ljg0OSAxLjczNSAzNS45NjQgMy4xMjMgNTIuNjU0IDMuODQzbDEzLjk4Ni43ODhhMTQuNzE2IDE0LjcxNiAwIDAxNy4yOTkgMi44ODIgMjEuNjA2IDIxLjYwNiAwIDAxNC4zMjkgNS44ODVsNC4xNjkgOC41MTMuNjQtOS43NTRhMTAuNjgyIDEwLjY4MiAwIDAxMy43MTYtNy41MjYgMzguNjY4IDM4LjY2OCAwIDAwMy4yOS0zLjEzNmwuMi0uMTg3YTIxLjk0NiAyMS45NDYgMCAwMDMuNzE2LTMuMDgzYzkuMjMxLTkuMTk0IDQuNjYyLTI2LjgyMS02Ljc5My0zMS42NTJ6IiBmaWxsPSIjRUFFQUYzIi8+PHBhdGggZD0iTTE2OC42NyAxODIuMzcybC02MC44MDUtNC4wMzVhMi41OTggMi41OTggMCAwMC0yLjc2MyAyLjQyNCAyLjYgMi42IDAgMDAyLjQyIDIuNzY5bDYwLjgwNSA0LjAzNWEyLjU5OSAyLjU5OSAwIDAwMi43NjMtMi40MjQgMi42IDIuNiAwIDAwLTIuNDItMi43Njl6TTE3OC42OTEgMTcwLjU3M2wtNzAuMDAzLTQuNjQ2YTIuNTk5IDIuNTk5IDAgMDAtMi43NjMgMi40MjQgMi42MDEgMi42MDEgMCAwMDIuNDIgMi43NjlsNzAuMDAzIDQuNjQ1YTIuNTk5IDIuNTk5IDAgMDAyLjc2My0yLjQyNCAyLjYgMi42IDAgMDAtMi40Mi0yLjc2OHoiIGZpbGw9IiNDM0MzRTEiLz48cGF0aCBkPSJNMTEuNzQ4IDExOC41NDhjNC42NzYtMi40MDIgMjEuMzc5LTQuMDAzIDI1LjMwOC00LjAwMyA0Ny42NTktMS4zMzQgNTUuNDY1LTcuMDk5IDcyLjU5NCA5LjE2N2EzMC4wNiAzMC4wNiAwIDAxNC43NDIgNS44NzJjNS43NTQgOS4zNDEgNi42NiAxNy40NTQuMjEzIDI2LjY4OC0yLjk5NyA0LjI5Ny02LjkgOC44ODctMTUuNjExIDkuNjc0LTIyLjk3NyAyLjA2OS00Ni4zOCAzLjM5LTY2LjcyIDMuMTYzLTMuMTQzLjE4Ny02LjAwNy42MTQtNy40MDUgMS42NTRhMjEuMzYyIDIxLjM2MiAwIDAwLTQuNDIzIDUuODA1bC00LjMwMiA4LjQ0Ny0uNDkzLTkuNzY4YTEwLjc5IDEwLjc5IDAgMDAtMy41ODMtNy41OTMgMzguMTkgMzguMTkgMCAwMS0zLjIzNy0zLjE3NiAyNi41MTYgMjYuNTE2IDAgMDEtMy45MTYtNC40MDNjLTkuMjE3LTEyLjU0My00LjYzNS0zNS42NDIgNi44MzMtNDEuNTI3eiIgZmlsbD0iI0YzRjJGMSIvPjxwYXRoIGQ9Ik03NC43OTggMTQ0LjMyNWwtNTAuNDIgMi41MTRhMi42IDIuNiAwIDAwLTIuNDY1IDIuNzI5IDIuNTk5IDIuNTk5IDAgMDAyLjcyMyAyLjQ2OWw1MC40Mi0yLjUxNGEyLjYgMi42IDAgMDAyLjQ2Ni0yLjcyOSAyLjU5OSAyLjU5OSAwIDAwLTIuNzI0LTIuNDY5ek04Mi4wNjggMTMxLjY2NGwtNTguMjM1IDIuOTE3YTIuNjAzIDIuNjAzIDAgMDAtMi40NjggMi43MzIgMi42MDIgMi42MDIgMCAwMDIuNzI4IDIuNDcybDU4LjIzNC0yLjkxN2EyLjYwNCAyLjYwNCAwIDAwMi40NjgtMi43MzIgMi42MDIgMi42MDIgMCAwMC0yLjcyNy0yLjQ3MnoiIGZpbGw9IiNDOEM2QzQiLz48cGF0aCBkPSJNMjM4LjcyIDk4Ljc0NmMtMS4wNTItOC4xNTMtNS4zMjgtMTEuMzk2LTMxLjU0MS0xMi42NzctMTcuNzAyLS44NjgtMTkuMTAxLTEuMzM1LTYxLjc3OC0yLjE3NS0xMi4zNjEtLjI1NC0xOC4wODktLjUzNC0yMi42NDQgMy44MTYtNy40MDYgNy4xNTMtNy40MTkgMjIuOTEyLS4xMzMgMzAuMDI0IDQuMzY5IDQuMjcgOS4zMjQgMy40MTYgMjYuNzg2IDMuMTc2IDYuNDQ3LS4wOCAzMi4yNzQtLjQ0IDUzLjA2Ny43MDcgMy4zOTYuMTg3IDYuNDA3LjQwMSA5LjA3MS41ODhhOC45NTkgOC45NTkgMCAwMTEuNTk4LjUyIDguMTU3IDguMTU3IDAgMDEzLjk5NiA0LjE5bDMuMTA0IDguODc0IDQuMTgyLTEwLjk0MmE0LjUxMyA0LjUxMyAwIDAxMi40NTEtMi40OTYgMTEuOTc1IDExLjk3NSAwIDAwNi4yNi0zLjA5NmM1LjQ0OC01LjAwNCA2LjQ4Ny0xMy40MjQgNS41ODEtMjAuNTF6IiBmaWxsPSIjRUFFQUYzIi8+PHBhdGggZD0iTTE3Mi4zNzggMTA3LjYxMWwtMjcuNjgzLS42OTNhMi42IDIuNiAwIDAwLTIuNjYyIDIuNTM3IDIuNjAxIDIuNjAxIDAgMDAyLjUzMiAyLjY2NmwyNy42ODQuNjkyYTIuNiAyLjYgMCAwMDIuNjYxLTIuNTM2IDIuNiAyLjYgMCAwMC0yLjUzMi0yLjY2NnpNMjA5LjYwMSA5Ni4xMDhsLTY0LjU5NS0xLjYxNWEyLjYgMi42IDAgMDAtMi42NjEgMi41MzYgMi42IDIuNiAwIDAwMi41MzIgMi42NjZsNjQuNTk1IDEuNjE2YTIuNiAyLjYgMCAwMDIuNjYxLTIuNTM2IDIuNiAyLjYgMCAwMC0yLjUzMi0yLjY2N3oiIGZpbGw9IiNDM0MzRTEiLz48cGF0aCBkPSJNMTY1LjMwMSAxNDAuOTEzbC03Mi4yMDgtMTQuNzcyLTQyLjQ3Ny04LjcxNGMtMS0uMjA1LTEuODc3LS44LTIuNDM5LTEuNjUzYTMuODYzIDMuODYzIDAgMDEtLjU1OC0yLjg5N2wxNy4xMy04My4wNTNhNS4yMzEgNS4yMzEgMCAwMTIuMjMzLTMuMzE4IDUuMjE0IDUuMjE0IDAgMDEzLjkyLS43NjVMMTgyLjc5IDQ4LjYzOWE1LjIyNCA1LjIyNCAwIDAxMy4zMTIgMi4yMzcgNS4yNCA1LjI0IDAgMDEuNzY0IDMuOTI4bC0xNy4wMzcgODMuMTJhMy44MzIgMy44MzIgMCAwMS00LjUyOCAyLjk4OXoiIGZpbGw9IiM3OTc2NzMiLz48cGF0aCBkPSJNMTc4LjA2OSA1NS42M0w3Mi41NjcgMzQuMDUgNTYuOTggMTEwLjUzNWwxMDUuNTAyIDIxLjU4IDE1LjU4OC03Ni40ODV6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTM3LjU3NiA0Ni40NWEyLjE2IDIuMTYgMCAwMDIuMTU4LTIuMTYxIDIuMTYgMi4xNiAwIDAwLTIuMTU4LTIuMTYyIDIuMTYgMi4xNiAwIDAwLTIuMTU4IDIuMTYyIDIuMTYgMi4xNiAwIDAwMi4xNTggMi4xNjF6IiBmaWxsPSIjRTFERkREIi8+PHBhdGggZD0iTTEzNS42NzcuMTczYTQuOTM2IDQuOTM2IDAgMDEtMS42NzggMi4zMzYuMjUzLjI1MyAwIDAwMCAuNCA1Ljk2IDUuOTYgMCAwMTEuNjc4IDIuNTM1LjI2NS4yNjUgMCAwMC41MDYgMGMuMzMyLS45NzYuOTEtMS44NSAxLjY3OS0yLjUzNWEuMjUyLjI1MiAwIDAwLjA5Ny0uMi4yNTIuMjUyIDAgMDAtLjA5Ny0uMiA0LjkyNyA0LjkyNyAwIDAxLTEuNzA1LTIuMzM2LjI1LjI1IDAgMDAtLjA5My0uMTI0LjI1LjI1IDAgMDAtLjI5NSAwIC4yNTMuMjUzIDAgMDAtLjA5Mi4xMjR6TTE5Ni4yODMgNjQuMjM4YTQuODMyIDQuODMyIDAgMDEtMS42NjUgMi4zMzUuMjU5LjI1OSAwIDAwLS4wOTguMi4yNTMuMjUzIDAgMDAuMDk4LjIgNS44NyA1Ljg3IDAgMDExLjY5MiAyLjUzNi4yNjUuMjY1IDAgMDAuNDA5LjEzMy4yNzMuMjczIDAgMDAuMDk3LS4xMzMgNS43MzMgNS43MzMgMCAwMTEuNjc4LTIuNTM1LjI1My4yNTMgMCAwMDAtLjQgNC45MzYgNC45MzYgMCAwMS0xLjY3OC0yLjMzNi4yNjcuMjY3IDAgMTAtLjUzMyAweiIgZmlsbD0iI0ZGRTVCOSIvPjxwYXRoIG9wYWNpdHk9Ii40IiBkPSJNOTUuNTg0IDE1Ni42OTljLTQuNTgyIDEuOTIxLTYuMjA3IDYuNDg1LTcuMjg2IDkuMzQxLS4wOTMuMjUzLS4xODYuNTA3LS4yNjYuNzYgMy42NjMtLjI5MyA3LjMxMi0uNiAxMC45NzUtLjkzNCA4LjcxMi0uNzg3IDEyLjYxNC01LjMzNyAxNS42MTEtOS42NzQuNDkzLS43MDcuOTQ2LTEuNDE1IDEuMzMyLTIuMTA4LTkuNTIzLS4yNTQtMTQuOTQ1LjMzMy0yMC4zNjYgMi42MTV6IiBmaWxsPSIjQURBREM0Ii8+PHBhdGggZD0iTTE2NS4zMTQgMzYuNjNhOC4wNTYgOC4wNTYgMCAwMC01LjgzOC0yLjAyIDguMDQ4IDguMDQ4IDAgMDAtNS41NSAyLjcxM2wtNDMuODkgNDkuNjQtMjEuNzkxLTE5LjMzNmE4LjA2MiA4LjA2MiAwIDAwLTExLjA1IDEuMDA4IDguMDk2IDguMDk2IDAgMDAuMzk0IDExLjEwOWwyNy4wMjYgMjQuMDE5Yy4yMzkuMjcxLjQ5My41MjkuNzU5Ljc3NC4yNjYuMjM3LjU1Mi40NTEuODUzLjY0MWw1LjIyMSA0LjY0MyA0LjkyOS01LjczOC4zMzMtLjMzMyA0OS4yODMtNTUuNzY1YTguMDg0IDguMDg0IDAgMDAtLjY3OS0xMS4zNTZ6IiBmaWxsPSIjNDlDOEYyIi8+PHBhdGggZD0iTTE0OS44NzYgNDEuOWwtNi4wMiA2LjczOSAxOC4yNjEgMy43MzYgMy44OS00LjMzN2E4LjEzNyA4LjEzNyAwIDAwMS41MTgtMi41MzVMMTQ5Ljg3NiA0MS45eiIgZmlsbD0iIzUzQjhEOSIvPjwvc3ZnPg==';\r\n","/* eslint-disable no-unused-vars */\r\nconst minWidth = 89;\r\nconst maxWidth = 110;\r\nconst widthInSmallScreen = 48;\r\nexport const UNQIndexStyle = (_, { palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n\r\n '.unified-notification-queue-container': {\r\n\r\n '@media only screen and (max-width:1023px)': {\r\n '&.unified-notification-queue-container': {\r\n minWidth: `${widthInSmallScreen}px !important`,\r\n\r\n '& .unified-notification-queue': {\r\n minWidth: `${widthInSmallScreen}px !important`,\r\n },\r\n\r\n '& .unified-notification-queue-trigger-btn': {\r\n minWidth: `${widthInSmallScreen}px !important`,\r\n },\r\n\r\n '& .alert-icon': {\r\n minWidth: `${widthInSmallScreen}px !important`,\r\n fontSize: '20px !important',\r\n },\r\n\r\n '& .alert-icon:before': {\r\n position: 'relative !important',\r\n top: '2px !important',\r\n right: '0 !important',\r\n },\r\n\r\n '& .notification-bell-active:after': {\r\n fontSize: '16px !important',\r\n },\r\n\r\n '& .unified-notification-queue-trigger-text': {\r\n display: 'none',\r\n },\r\n },\r\n },\r\n\r\n position: 'relative',\r\n minWidth,\r\n maxWidth,\r\n height: '60px',\r\n\r\n '& .unified-notification-queue': {\r\n minWidth,\r\n maxWidth,\r\n height: '60px',\r\n\r\n '& .unified-notification-queue-trigger-btn': {\r\n minWidth,\r\n maxWidth,\r\n height: '60px',\r\n border: 0,\r\n borderRadius: 0,\r\n padding: 0,\r\n outline: 'none',\r\n backgroundColor: '#2F2F2F',\r\n color: '#FFFFFF',\r\n fontWeight: 'normal',\r\n\r\n '& >div': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n pointerEvents: 'none',\r\n },\r\n\r\n '& .alert-icon': {\r\n minWidth,\r\n maxWidth,\r\n fontFamily: iconFontFamily,\r\n fontSize: 16,\r\n lineHeight: '16px',\r\n paddingBottom: 6,\r\n textAlign: 'center',\r\n position: 'relative',\r\n top: 2,\r\n },\r\n\r\n '& .alert-icon:before': {\r\n content: '\"\\\\EA8F\"',\r\n },\r\n\r\n '& .notification-bell-active:after': {\r\n content: '\"\\\\ECCC\"',\r\n color: '#D83B01',\r\n fontSize: 14,\r\n width: 10,\r\n position: 'absolute',\r\n marginLeft: -12,\r\n marginTop: -6,\r\n height: '10px',\r\n },\r\n\r\n '& .unified-notification-queue-trigger-text': {\r\n minWidth,\r\n maxWidth,\r\n textAlign: 'center',\r\n lineHeight: '14px',\r\n color: '#FFFFFF',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n padding: '0 2px',\r\n },\r\n },\r\n\r\n '& .unified-notification-queue-trigger-btn:hover': {\r\n background: '#106ebe',\r\n color: '#ffffff',\r\n },\r\n\r\n '& .unified-notification-queue-trigger-btn:focus:after': {\r\n border: 'none',\r\n right: '1px',\r\n top: '1px',\r\n },\r\n\r\n '& .unified-notification-queue-trigger-btn:active, & .unified-notification-queue-trigger-btn:focus': {\r\n background: '#ffffff',\r\n color: '#323130',\r\n\r\n '& .unified-notification-queue-trigger-text': {\r\n color: '#323130',\r\n },\r\n },\r\n\r\n '& .bingads-popover': {\r\n position: 'fixed !important',\r\n left: 'auto !important',\r\n right: 0,\r\n top: '60px !important',\r\n width: 460,\r\n height: 'calc(100vh - 60px)',\r\n minHeight: '350px',\r\n boxShadow: '0px 4.8px 14.4px rgba(0, 0, 0, 0.18), 0px 25.6px 57.6px rgba(0, 0, 0, 0.22)',\r\n border: 0,\r\n background: '#FAF9F8',\r\n },\r\n\r\n '& .preview-bar': {\r\n position: 'absolute',\r\n top: 60,\r\n right: 0,\r\n height: '45px',\r\n width: 368,\r\n backgroundColor: '#FAF9F8',\r\n boxShadow: '0px 6px 12px rgba(0, 0, 0, 0.22)',\r\n border: 0,\r\n display: 'flex',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n cursor: 'pointer',\r\n\r\n '& .alert-queue-icon': {\r\n margin: '0px 12px 0px 0px',\r\n },\r\n\r\n '& .alert-queue-icon:first-child': {\r\n margin: '0px 12px 0px 16px',\r\n },\r\n\r\n '& .preview-bar-content': {\r\n fontWeight: 'normal',\r\n marginRight: 12,\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n color: '#333333',\r\n lineHeight: '22px',\r\n height: '22px',\r\n },\r\n\r\n // title of first notification in multi-item preview bar\r\n '& .preview-bar-content-multi-item:nth-child(2)': {\r\n maxWidth: 160,\r\n flexShrink: 0,\r\n },\r\n\r\n '& .preview-bar-view-more': {\r\n padding: 0,\r\n marginRight: 12,\r\n color: '#0078D4',\r\n lineHeight: '22px',\r\n height: '22px',\r\n textAlign: 'left',\r\n flexShrink: 0,\r\n },\r\n\r\n '& .dismiss': {\r\n margin: '0px 15px 0px auto',\r\n minWidth: 12,\r\n right: 0,\r\n },\r\n },\r\n\r\n '& .alert-queue-icon': {\r\n display: 'block',\r\n width: 20,\r\n height: '22px',\r\n fontSize: 20,\r\n fontFamily: iconFontFamily,\r\n lineHeight: '22px',\r\n },\r\n\r\n '& .alert-queue-icon-critical': {\r\n color: '#A80000',\r\n },\r\n\r\n '& .alert-queue-icon-critical:before': {\r\n content: '\"\\\\E783\"',\r\n },\r\n\r\n '& .alert-queue-icon-warning': {\r\n color: '#BE5A00',\r\n },\r\n\r\n '& .alert-queue-icon-warning:before': {\r\n content: '\"\\\\E7BA\"',\r\n },\r\n\r\n '& .alert-queue-icon-opportunity': {\r\n color: '#0078D4',\r\n },\r\n\r\n '& .alert-queue-icon-opportunity:before': {\r\n content: '\"\\\\E3AF\"',\r\n },\r\n\r\n '& .alert-queue-icon-info': {\r\n color: '#605E5C',\r\n },\r\n\r\n '& .alert-queue-icon-info:before': {\r\n content: '\"\\\\E946\"',\r\n },\r\n\r\n '& .dismiss': {\r\n width: 12,\r\n height: '12px',\r\n opacity: 1,\r\n color: '#605E5C',\r\n fontSize: 12,\r\n lineHeight: '12px',\r\n fontFamily: iconFontFamily,\r\n },\r\n\r\n '& .dismiss:before': {\r\n content: '\"\\\\E711\"',\r\n },\r\n\r\n '& .jump-out-icon': {\r\n display: 'inline-block',\r\n fontFamily: iconFontFamily,\r\n '-webkit-font-smoothing': 'antialiased',\r\n '-moz-osx-font-smoothing': 'grayscale',\r\n lineHeight: 1,\r\n position: 'relative',\r\n paddingLeft: 4,\r\n },\r\n\r\n '& .jump-out-icon::before': {\r\n content: '\"\\\\E8A7\"',\r\n },\r\n\r\n '& .notification-queue-loading-panel': {\r\n width: '100%',\r\n justifyContent: 'center',\r\n border: 0,\r\n padding: '37px 26px 5px',\r\n display: 'block',\r\n\r\n // hide unwanted redundant loading icon in CCUI\r\n '& .blocker-indicator': {\r\n position: 'static',\r\n padding: 0,\r\n\r\n '&:before': {\r\n display: 'none',\r\n },\r\n },\r\n\r\n '& .blocker-text': {\r\n position: 'absolute',\r\n top: 246,\r\n left: 184,\r\n color: '#007DAA',\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n textAlign: 'center',\r\n width: 72,\r\n },\r\n },\r\n\r\n '& a:link, a:visited, a:hover, a:active': {\r\n textDecoration: 'none',\r\n outline: 'none',\r\n },\r\n\r\n '& button': {\r\n background: 'transparent',\r\n boxShadow: 'none',\r\n border: 0,\r\n padding: 0,\r\n textDecoration: 'none',\r\n outline: 'none',\r\n },\r\n },\r\n },\r\n});\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__149__;","module.exports = __WEBPACK_EXTERNAL_MODULE__30__;","module.exports = __WEBPACK_EXTERNAL_MODULE__62__;","module.exports = __WEBPACK_EXTERNAL_MODULE__67__;","module.exports = __WEBPACK_EXTERNAL_MODULE__874__;","export { useObservable } from './src/use-observable';\r\n","import { useEffect, useReducer, useRef } from 'react';\r\n\r\nconst PENDING = 'PENDING';\r\nconst READY = 'READY';\r\nconst ERROR = 'ERROR';\r\n\r\nconst initialState = {\r\n data: null,\r\n error: null,\r\n};\r\n\r\nfunction reducer(state, action) {\r\n if (action.type === ERROR) {\r\n return {\r\n ...state,\r\n data: null,\r\n error: action.error,\r\n };\r\n } else if (action.type === READY) {\r\n return {\r\n ...state,\r\n data: action.data,\r\n error: null,\r\n };\r\n }\r\n\r\n return {\r\n ...state,\r\n data: null,\r\n error: null,\r\n };\r\n}\r\n\r\nexport function useObservable(observable) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n // we want to persist the subscription during the lifecycle of the component\r\n const subscription = useRef(null);\r\n\r\n function unsubscribe() {\r\n dispatch({ type: PENDING });\r\n if (subscription.current) {\r\n subscription.current.unsubscribe();\r\n subscription.current = null;\r\n }\r\n }\r\n\r\n function handleData(data) {\r\n dispatch({\r\n type: READY,\r\n data,\r\n });\r\n }\r\n\r\n function handleError(error) {\r\n dispatch({\r\n type: ERROR,\r\n error,\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n // bind to observable\r\n if (observable) {\r\n subscription.current = observable.subscribe({\r\n next: handleData,\r\n error: handleError,\r\n });\r\n } else {\r\n unsubscribe();\r\n }\r\n\r\n return () => {\r\n unsubscribe();\r\n };\r\n }, [observable]);\r\n\r\n return state;\r\n}\r\n\r\n","export { UserContext } from './src/user-context';\r\nexport { withUserConsumer } from './src/with-user-consumer';\r\n","import React from 'react';\r\n\r\nexport const UserContext = React.createContext();\r\n","import React from 'react';\r\nimport { UserContext } from './user-context';\r\n\r\nexport function withUserConsumer(WrappedComponent) {\r\n return props => (\r\n \r\n {(userContext =>\r\n ())}\r\n \r\n );\r\n}\r\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"prop-types\"), require(\"underscore\"), require(\"@bingads-webui-react/i18n-context\"), require(\"@bingads-webui/viewmodel-schema\"), require(\"@bingads-webui/build-legacy-i18n\"), require(\"@bingads-webui-react/error-mapper\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"prop-types\", \"underscore\", \"@bingads-webui-react/i18n-context\", \"@bingads-webui/viewmodel-schema\", \"@bingads-webui/build-legacy-i18n\", \"@bingads-webui-react/error-mapper\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"prop-types\"), require(\"underscore\"), require(\"@bingads-webui-react/i18n-context\"), require(\"@bingads-webui/viewmodel-schema\"), require(\"@bingads-webui/build-legacy-i18n\"), require(\"@bingads-webui-react/error-mapper\")) : factory(root[\"react\"], root[\"prop-types\"], root[\"underscore\"], root[\"@bingads-webui-react/i18n-context\"], root[\"@bingads-webui/viewmodel-schema\"], root[\"@bingads-webui/build-legacy-i18n\"], root[\"@bingads-webui-react/error-mapper\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__5__, __WEBPACK_EXTERNAL_MODULE__6__, __WEBPACK_EXTERNAL_MODULE__22__, __WEBPACK_EXTERNAL_MODULE__43__, __WEBPACK_EXTERNAL_MODULE__47__, __WEBPACK_EXTERNAL_MODULE__62__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__22__;","export { withValidation } from './src/component/with-validation';\r\nexport { ValidationGroup } from './src/component/validation-group';\r\nexport { withError } from './src/component/with-error';\r\nexport { withErrorMessage } from './src/component/with-error-message';\r\nexport { ErrorMessages } from './src/component/error-messages';\r\nexport { DefaultAdapter } from './src/adapters/default-adapter';\r\nexport { CheckedAdapter } from './src/adapters/checked-adapter';\r\nexport { CheckedItemAdapter } from './src/adapters/checked-item-adapter';\r\nexport { AdapterFactory } from './src/adapters/adapter-factory';\r\nexport { GenericAdapter } from './src/adapters/generic-adapter';\r\nexport { DropdownAdapter } from './src/adapters/dropdown-adapter';\r\nexport { withCustomValidation } from './src/component/with-custom-validation';\r\nexport { withServerError, useServerError } from './src/component/with-server-error';\r\nexport { ServerErrorContext, ServerErrorGroup, ServerErrorEntity, ServerErrorEntityContext } from './src/component/server-error-context';\r\nexport * from './src/helpers/server-error-utils';\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DefaultAdapter } from '../adapters/default-adapter';\r\nimport { ValidationContext } from './validation-context';\r\nimport { ValidationItem } from './validation-item';\r\n\r\nexport function withValidationInternal(\r\n Component,\r\n PrimitiveComponent = null,\r\n Adapter = DefaultAdapter\r\n) {\r\n const ContextConsumer = (props) => {\r\n const renderValidationItem = (contextProps) => {\r\n const onValidate = (accessor) => {\r\n if (_.isFunction(props.validationProps.onValidate)) {\r\n props.validationProps.onValidate(accessor);\r\n }\r\n _.result(contextProps, 'notifyDataChange');\r\n };\r\n const validationProps = _.defaults(\r\n { onValidate },\r\n PrimitiveComponent === null ? {} :\r\n { primitiveAdapter: new Adapter(PrimitiveComponent) },\r\n props.validationProps,\r\n contextProps\r\n );\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n { renderValidationItem }\r\n \r\n );\r\n };\r\n\r\n ContextConsumer.propTypes = {\r\n validationProps: PropTypes.shape({\r\n onValidate: PropTypes.func,\r\n }),\r\n };\r\n\r\n ContextConsumer.defaultProps = {\r\n validationProps: {\r\n onValidate: _.noop,\r\n },\r\n };\r\n\r\n return ContextConsumer;\r\n}\r\n\r\nexport const withValidation = _.partial(withValidationInternal, ValidationItem);\r\n","import { AdapterFactory } from './adapter-factory';\r\n\r\nexport const DefaultAdapter = AdapterFactory({ convertEventToValue: event => event.target.value });\r\n\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\n\r\nexport function AdapterFactory({\r\n convertEventToValue = _.identity,\r\n defaultValue = '',\r\n valueToInject = 'value',\r\n functionToInject = 'onChange',\r\n}) {\r\n return class DefaultAdapter {\r\n constructor(PrimitiveComponent) {\r\n this.component = PrimitiveComponent;\r\n }\r\n\r\n getValue(props) {\r\n return props[valueToInject];\r\n }\r\n\r\n onChange = (eventObject, ...args) => {\r\n const value = convertEventToValue(eventObject, args);\r\n this.onChangeParam(value);\r\n if (_.isFunction(this.props.onChange)) {\r\n this.props.onChange(eventObject, args);\r\n }\r\n };\r\n\r\n renderComponent(props, value, onChange) {\r\n const PrimitiveComponent = this.component;\r\n this.onChangeParam = onChange;\r\n this.props = props;\r\n const injectedProps = {\r\n [valueToInject]: value || defaultValue,\r\n [functionToInject]: this.onChange,\r\n };\r\n\r\n // When the value is not set, we set it to '',\r\n // as we always want the input to be controlled\r\n return ();\r\n }\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\n\r\nexport const ValidationContext = React.createContext({\r\n notifyDataChange: _.noop,\r\n});\r\n","/* eslint-disable max-len */\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ItemNode } from '../validation-node/item-node';\r\nimport { GroupNode } from '../validation-node/group-node';\r\nimport { unpack } from '../validation-node/viewmodel-util';\r\nimport { createSchemaField } from '../validation-node/field-creator';\r\nimport { withDefaultI18n, i18nPropType } from './with-default-i18n';\r\n\r\nconst getFieldValue = (convertor, field, data) => {\r\n const fieldData = unpack(data, field);\r\n\r\n return _.isUndefined(fieldData) ? fieldData : convertor.fromModel(fieldData);\r\n};\r\n\r\n// get the string value processed by i18n, may be differnt from original string (e.g. rounding)\r\nconst getProcessedValue = (value, convertor) => convertor.fromModel(convertor.toModel(value));\r\n\r\nconst getNewState = (props, state = {}) => {\r\n const {\r\n schema, i18n, field, data, primitiveAdapter, convertor = {},\r\n } = props.validationProps;\r\n const fieldConvertor = _.defaults(convertor, createSchemaField(schema, i18n, field).conversion);\r\n const fieldValue = getFieldValue(fieldConvertor, field, data);\r\n\r\n if (!_.isUndefined(fieldValue) && fieldValue !== state.source) {\r\n // field prop change detected, update state\r\n return {\r\n value: getProcessedValue(state.value, fieldConvertor) === fieldValue ?\r\n state.value : fieldValue,\r\n source: fieldValue,\r\n };\r\n }\r\n\r\n const propValue = primitiveAdapter.getValue(props);\r\n const processed = _.isUndefined(propValue) ?\r\n propValue : getProcessedValue(propValue, fieldConvertor);\r\n\r\n if (!_.isUndefined(propValue) && processed !== state.source) {\r\n // value prop change detected, update state\r\n return {\r\n value: propValue,\r\n source: processed,\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n\r\nclass ValidationItemInternal extends React.Component {\r\n static propTypes = {\r\n validationProps: PropTypes.shape({\r\n onValidate: PropTypes.func,\r\n i18n: i18nPropType.isRequired,\r\n parent: PropTypes.instanceOf(GroupNode),\r\n schema: PropTypes.shape({\r\n type: PropTypes.string,\r\n }),\r\n field: PropTypes.string,\r\n validator: PropTypes.func,\r\n convertor: PropTypes.shape({\r\n fromJSON: PropTypes.func,\r\n toJSON: PropTypes.func,\r\n }),\r\n errorProcessor: PropTypes.func,\r\n primitiveAdapter: PropTypes.shape({\r\n getValue: PropTypes.func,\r\n renderComponent: PropTypes.func,\r\n }).isRequired,\r\n errorClassName: PropTypes.string,\r\n data: PropTypes.object, // eslint-disable-line\r\n skipValidation: PropTypes.bool,\r\n }),\r\n className: PropTypes.string,\r\n };\r\n\r\n static defaultProps = {\r\n validationProps: {\r\n onValidate: _.noop,\r\n parent: undefined,\r\n schema: undefined,\r\n field: undefined,\r\n validator: undefined,\r\n convertor: undefined,\r\n errorProcessor: undefined,\r\n skipValidation: false,\r\n },\r\n className: undefined,\r\n };\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n return getNewState(nextProps, prevState);\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.itemNode = new ItemNode(props.validationProps);\r\n\r\n this.state = getNewState(props) || { value: this.itemNode.default };\r\n }\r\n\r\n componentDidMount() {\r\n this.itemNode.register();\r\n this.triggerValidate();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const didSkipValidationChanged = this.props.validationProps.skipValidation !== prevProps.validationProps.skipValidation;\r\n if (!_.isEqual(prevState.value, this.state.value) || didSkipValidationChanged) {\r\n if (didSkipValidationChanged) {\r\n this.itemNode.setSkipValidation(this.props.validationProps.skipValidation);\r\n }\r\n this.triggerValidate();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.itemNode.unregister();\r\n _.result(this.props.validationProps, 'notifyDataChange');\r\n }\r\n\r\n setText = (text) => {\r\n this.setState({\r\n value: text,\r\n });\r\n this.itemNode.setDirty();\r\n };\r\n\r\n getClassName() {\r\n const { className, validationProps } = this.props;\r\n const { errorClassName, forceErrorClassName } = _.defaults(validationProps, { errorClassName: 'error' });\r\n const isItemNodeInvalid = !this.itemNode.isValid && this.itemNode.isDirty;\r\n if (!_.isEmpty(errorClassName) && (isItemNodeInvalid || forceErrorClassName)) {\r\n return _.isEmpty(className) ? errorClassName : `${className} ${errorClassName}`;\r\n }\r\n return className;\r\n }\r\n\r\n triggerValidate() {\r\n if (_.isFunction(this.props.validationProps.onValidate)) {\r\n this.props.validationProps.onValidate(this.itemNode.accessor);\r\n }\r\n }\r\n\r\n render() {\r\n const { validationProps: { primitiveAdapter } } = this.props;\r\n const componentProps = _.omit(this.props, 'validationProps');\r\n\r\n this.itemNode.value = this.state.value;\r\n _.extend(componentProps, { className: this.getClassName() });\r\n return primitiveAdapter.renderComponent(componentProps, this.state.value, this.setText);\r\n }\r\n}\r\n\r\nexport const ValidationItem = withDefaultI18n(ValidationItemInternal);\r\n","import _ from 'underscore';\r\nimport { BaseNode } from './base-node';\r\nimport { createSchemaField } from './field-creator';\r\nimport { pack, unpack } from './viewmodel-util';\r\n\r\nconst getConvertor = (custom, node) => _.defaults(custom, node.vmField.conversion);\r\n\r\nconst createDefaultFields = ({ convertor = {}, validator }) => {\r\n const defaultValidator = (value, node) => {\r\n const converted = getConvertor(convertor, node).toModel(value);\r\n return node.vmField.validation.validate(converted);\r\n };\r\n const defaultConvertor = {\r\n fromJSON: (json, node) => {\r\n const jsonField = unpack(json, node.field);\r\n _.extend(node, { value: getConvertor(convertor, node).fromModel(jsonField) });\r\n },\r\n toJSON: (node) => {\r\n const jsonField = getConvertor(convertor, node).toModel(node.value);\r\n return pack(jsonField, node.field);\r\n },\r\n };\r\n\r\n return {\r\n customValidator: _.isFunction(validator) ? validator : null,\r\n validator: defaultValidator,\r\n convertor: defaultConvertor,\r\n };\r\n};\r\n\r\nconst defaultErrorProcessor = errors => _.first(_.values(errors), 1);\r\n\r\nexport class ItemNode extends BaseNode {\r\n constructor(params) {\r\n super(_.defaults(createDefaultFields(params), params));\r\n\r\n this.vmField = createSchemaField(this.schema, params.i18n, this.field);\r\n this.errorProcessor = params.errorProcessor || defaultErrorProcessor;\r\n this.rawValue = {};\r\n }\r\n\r\n validate(changed) {\r\n super.validate(changed);\r\n if (!_.isArray(this.messages)) {\r\n this.messages = this.errorProcessor(this.messages, changed, this.field, this.schema);\r\n }\r\n }\r\n\r\n setSkipValidation(skipValidation) {\r\n super.setSkipValidation(skipValidation);\r\n this.validate(this.rawValue);\r\n }\r\n\r\n set value(newValue) {\r\n if (newValue !== this.rawValue) {\r\n this.rawValue = newValue;\r\n this.validate(newValue);\r\n this.parent.notifyChildChange(this);\r\n }\r\n }\r\n\r\n get value() {\r\n return this.rawValue;\r\n }\r\n\r\n get default() {\r\n this.fromJSON(pack(this.vmField.default, this.field));\r\n return this.value;\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nfunction createAccessor(node) {\r\n return {\r\n get data() {\r\n return node.toJSON();\r\n },\r\n get messages() {\r\n return node.messages;\r\n },\r\n get isValid() {\r\n return node.isValid;\r\n },\r\n get isDirty() {\r\n return node.isDirty;\r\n },\r\n };\r\n}\r\n\r\nexport class BaseNode {\r\n constructor({\r\n parent, schema, field, validator, customValidator, convertor, skipValidation = false,\r\n }) {\r\n this.parent = parent || {\r\n notifyChildChange: _.noop,\r\n registerChild: _.noop,\r\n unregisterChild: _.noop,\r\n setDirty: _.noop,\r\n };\r\n this.schema = schema;\r\n this.field = field;\r\n this.messages = [];\r\n this.validator = validator;\r\n this.customValidator = customValidator;\r\n this.convertor = convertor;\r\n this.isDirty = false;\r\n this.skipValidation = skipValidation;\r\n }\r\n\r\n register() {\r\n this.parent.registerChild(this);\r\n }\r\n\r\n unregister() {\r\n this.parent.unregisterChild(this);\r\n }\r\n\r\n validate(changed) {\r\n this.messages = this.skipValidation ? {} : this.getValidationErrorMessages(changed);\r\n }\r\n\r\n getValidationErrorMessages(changed) {\r\n if (_.isFunction(this.customValidator)) {\r\n return this.customValidator(changed, _.partial(this.validator, _, this));\r\n }\r\n return this.validator(changed, this);\r\n }\r\n\r\n get isValid() {\r\n return _.isEmpty(this.messages);\r\n }\r\n\r\n fromJSON(json) {\r\n this.convertor.fromJSON(json, this);\r\n }\r\n\r\n toJSON() {\r\n return this.convertor.toJSON(this);\r\n }\r\n\r\n setDirty() {\r\n this.isDirty = true;\r\n this.parent.setDirty();\r\n }\r\n\r\n setSkipValidation(skipValidation) {\r\n this.skipValidation = skipValidation;\r\n }\r\n\r\n get accessor() {\r\n return createAccessor(this);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ViewmodelSchema } from '@bingads-webui/viewmodel-schema';\r\nimport { unpack } from './viewmodel-util';\r\n\r\nconst emptyField = {\r\n default: null,\r\n conversion: {\r\n fromModel: value => value,\r\n toModel: value => value,\r\n },\r\n validation: {\r\n validate: () => [],\r\n },\r\n};\r\n\r\nexport function createSchemaField(schema, i18n, field) {\r\n if (_.isEmpty(schema) || _.isEmpty(field)) {\r\n return emptyField;\r\n }\r\n\r\n const vmSchema = new ViewmodelSchema(schema, i18n, [field]);\r\n\r\n const vmField = unpack(vmSchema, field);\r\n\r\n return {\r\n default: vmField.default,\r\n conversion: vmField.conversion,\r\n validation: {\r\n validate: value => _.reduce(vmField.validation, (errors, validator, name) => {\r\n if (!validator.isValid(value)) {\r\n _.extend(errors, { [name]: validator.message });\r\n }\r\n return errors;\r\n }, {}),\r\n },\r\n };\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__43__;","import _ from 'underscore';\r\n\r\nexport function unpack(model, path = '') {\r\n return _.reduce(path.split('/'), (obj, seg) => _.result(obj, seg), model);\r\n}\r\n\r\nexport function pack(field, path = '') {\r\n return _.reduceRight(path.split('/'), (obj, seg) => ({ [seg]: obj }), field);\r\n}\r\n\r\nexport function merge(target, source) {\r\n _.each(_.keys(source), (key) => {\r\n if (_.has(target, key)) {\r\n merge(target[key], source[key]);\r\n } else {\r\n _.extend(target, { [key]: source[key] });\r\n }\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { BaseNode } from './base-node';\r\nimport { merge } from './viewmodel-util';\r\n\r\nconst defaultValidator = (changed, node) =>\r\n _.reduce(node.items, (messages, item) => messages.concat(item.messages), []);\r\n\r\nconst defaultConvertor = {\r\n fromJSON: (json, node) => {\r\n _.each(node.items, (item) => {\r\n item.fromJSON(json);\r\n });\r\n },\r\n toJSON: node =>\r\n _.reduce(node.items, (result, item) => {\r\n merge(result, item.toJSON());\r\n return result;\r\n }, {}),\r\n};\r\n\r\nexport class GroupNode extends BaseNode {\r\n constructor(params) {\r\n super(_.defaults(params, {\r\n validator: defaultValidator,\r\n convertor: defaultConvertor,\r\n }));\r\n this.items = [];\r\n }\r\n\r\n notifyChildChange(field) {\r\n this.validate(field);\r\n this.parent.notifyChildChange(this);\r\n }\r\n\r\n registerChild(newItem) {\r\n this.items.push(newItem);\r\n this.notifyChildChange(newItem);\r\n }\r\n\r\n unregisterChild(item) {\r\n this.items = _.without(this.items, item);\r\n this.notifyChildChange(item);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { buildLegacyI18n } from '@bingads-webui/build-legacy-i18n';\r\nimport { ValidationStringMap } from './validation-string-map';\r\n\r\nexport const i18nPropType = PropTypes.shape({\r\n getString: PropTypes.func,\r\n isValidDecimal: PropTypes.func,\r\n parseDecimal: PropTypes.func,\r\n formatDecimal: PropTypes.func,\r\n});\r\n\r\nconst getValidationProps = (validationProps, i18n) => {\r\n if (_.isEmpty(i18n)) {\r\n return validationProps;\r\n }\r\n const legacyi18n = buildLegacyI18n(i18n, [ValidationStringMap]);\r\n return _.extend(validationProps, { i18n: legacyi18n });\r\n};\r\n\r\nexport function withDefaultI18n(Component) {\r\n const WrappedComponent = ({ validationProps, ...props }) => {\r\n if (_.isEmpty(_.result(validationProps, 'i18n'))) {\r\n return (\r\n \r\n {i18n => (\r\n \r\n )}\r\n \r\n );\r\n }\r\n return ();\r\n };\r\n\r\n WrappedComponent.propTypes = {\r\n validationProps: PropTypes.shape({}),\r\n };\r\n\r\n WrappedComponent.defaultProps = {\r\n validationProps: undefined,\r\n };\r\n\r\n return React.memo(WrappedComponent);\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__47__;","// TODO[new-i18n-issue]: a workaround to use build-in validation string map\r\n// as when serveral features import the same ValidationStringMap\r\n// currently the webpack shared bundle strategy will cause the validation string not generated\r\nexport const ValidationStringMap = {\r\n Validation_Base_Field_Not_Valid: _TL_('Field is not valid'),\r\n Validation_NotEmpty_Required_Field: _TL_('Required field'),\r\n Validation_String_Max_Length: _TL_('Field should not exceed {{maxlength}} characters'),\r\n Validation_String_Min_Length: _TL_('Field should exceed {{minlength}} characters'),\r\n Validation_String_Invalid_Characters: _TL_('Field contains invalid characters'),\r\n Validation_Number_Require_Numeric: _TL_('Field requires numeric value'),\r\n Validation_Number_Max_Length: _TL_('Number should not exceed max length'),\r\n Validation_Number_Range_Min: _TL_('Number should be larger than {{min}}'),\r\n Validation_Number_Range_Max: _TL_('Number should be smaller than {{max}}'),\r\n Validation_Number_Range_Between: _TL_('Number should be between {{min}} and {{max}}'),\r\n Validation_Array_Size_Max: _TL_('List should have at most {{max}} items'),\r\n Validation_Array_Size_Between: _TL_('List should have at least {{min}} and at most {{max}} items'),\r\n Validation_Array_Items_Invalid: _TL_('Some of items in list are invalid'),\r\n Validation_Array_Items_Duplicate: _TL_('List has duplicate items'),\r\n Validation_NegativeKeywords_ListName_Required: _TL_('The list name is required.'),\r\n Validation_NegativeKeywords_Max_Count: _TL_('Maximum of 5,000 negative keywords'),\r\n Validation_NegativeKeywords_Invalid_Keywords: _TL_('Some of the keyword(s) are invalid: {{invalidKeywords}}'),\r\n Validation_NegativeKeywords_Required: _TL_('At least 1 negative keyword is required.'),\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { GroupNode } from '../validation-node/group-node';\r\nimport { ValidationContext } from './validation-context';\r\nimport { withDefaultI18n, i18nPropType } from './with-default-i18n';\r\n\r\nclass ValidationGroupInternal extends React.Component {\r\n static propTypes = {\r\n validationProps: PropTypes.shape({\r\n onValidate: PropTypes.func,\r\n i18n: i18nPropType,\r\n stopPropagation: PropTypes.bool,\r\n parent: PropTypes.instanceOf(GroupNode),\r\n schema: PropTypes.shape({\r\n type: PropTypes.string,\r\n }),\r\n validator: PropTypes.func,\r\n convertor: PropTypes.shape({\r\n fromJSON: PropTypes.func,\r\n toJSON: PropTypes.func,\r\n }),\r\n data: PropTypes.object, // eslint-disable-line\r\n }),\r\n children: PropTypes.node.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n validationProps: {\r\n onValidate: _.noop,\r\n i18n: undefined,\r\n schema: undefined,\r\n parent: undefined,\r\n stopPropagation: false,\r\n validator: undefined,\r\n convertor: undefined,\r\n },\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const {\r\n schema,\r\n parent,\r\n validator,\r\n convertor,\r\n stopPropagation,\r\n } = props.validationProps;\r\n\r\n this.groupNode = new GroupNode({\r\n schema,\r\n parent: stopPropagation ? undefined : parent,\r\n validator,\r\n convertor,\r\n });\r\n\r\n this.parent = parent;\r\n }\r\n\r\n componentDidMount() {\r\n this.groupNode.register();\r\n this.triggerValidate();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.groupNode.unregister();\r\n _.result(this.props.validationProps, 'notifyDataChange');\r\n }\r\n\r\n getGroupOptions(options) {\r\n const {\r\n schema = options.schema,\r\n data = options.data,\r\n parent = options.parent,\r\n i18n = options.i18n,\r\n validator,\r\n convertor,\r\n stopPropagation,\r\n } = this.props.validationProps;\r\n\r\n if (!stopPropagation && !_.isEqual(this.parent, parent)) {\r\n this.parent = parent;\r\n this.groupNode = new GroupNode({\r\n schema,\r\n parent,\r\n validator,\r\n convertor,\r\n });\r\n }\r\n\r\n const notifyDataChange = () => {\r\n this.triggerValidate();\r\n\r\n if (!stopPropagation) {\r\n // Do not notify change to upper level validation context provider\r\n _.result(options, 'notifyDataChange');\r\n }\r\n };\r\n\r\n return {\r\n parent: this.groupNode,\r\n schema,\r\n i18n,\r\n data,\r\n notifyDataChange,\r\n };\r\n }\r\n\r\n triggerValidate() {\r\n if (_.isFunction(this.props.validationProps.onValidate)) {\r\n this.props.validationProps.onValidate(this.groupNode.accessor);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {\r\n options => (\r\n \r\n {this.props.children}\r\n \r\n )\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport const ValidationGroup = withDefaultI18n(ValidationGroupInternal);\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ErrorMessages } from './error-messages';\r\nimport { withErrorMessage } from './with-error-message';\r\n\r\nexport function withError(Component, ErrorComponent = ErrorMessages) {\r\n class ErrorWrapper extends React.PureComponent {\r\n static propTypes = {\r\n validationProps: PropTypes.shape({\r\n onValidate: PropTypes.func,\r\n alwaysShowError: PropTypes.bool,\r\n showErrorOnPassiveMessages: PropTypes.bool,\r\n passiveMessages: PropTypes.arrayOf(PropTypes.string),\r\n showSingleError: PropTypes.bool,\r\n errorFilter: PropTypes.func,\r\n debounce: PropTypes.number,\r\n customErrorRendering: PropTypes.bool,\r\n messages: PropTypes.arrayOf(PropTypes.string),\r\n }),\r\n };\r\n\r\n static defaultProps = {\r\n validationProps: {\r\n onValidate: _.noop,\r\n alwaysShowError: false,\r\n showErrorOnPassiveMessages: false,\r\n passiveMessages: [],\r\n showSingleError: false,\r\n errorFilter: undefined,\r\n debounce: undefined,\r\n customErrorRendering: false,\r\n messages: [],\r\n },\r\n };\r\n\r\n render() {\r\n const {\r\n customErrorRendering, messages,\r\n } = this.props.validationProps;\r\n\r\n const errorComponent = !_.isEmpty(messages) ?\r\n () : null;\r\n\r\n return (\r\n \r\n \r\n {!customErrorRendering && errorComponent }\r\n \r\n );\r\n }\r\n }\r\n\r\n return withErrorMessage(ErrorWrapper);\r\n}\r\n","import React, { memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nexport function ErrorMessagesUnwrapped({\r\n messages,\r\n className,\r\n}) {\r\n if (_.isEmpty(messages) || !_.isArray(messages)) {\r\n return null;\r\n }\r\n return (\r\n
\r\n {_.map(messages, (message, key) => (_.has(message, 'DangerousHtmlMessage')\r\n ? (\r\n \r\n ) : (\r\n
\r\n {message}\r\n
\r\n )))}\r\n
\r\n );\r\n}\r\n\r\nErrorMessagesUnwrapped.displayName = 'ErrorMessages';\r\n\r\nErrorMessagesUnwrapped.propTypes = {\r\n className: PropTypes.string,\r\n messages: PropTypes.arrayOf(PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({\r\n DangerousHtmlMessage: PropTypes.string,\r\n }),\r\n ])),\r\n};\r\n\r\nErrorMessagesUnwrapped.defaultProps = {\r\n className: 'error',\r\n messages: [],\r\n};\r\n\r\nexport const ErrorMessages = memo(ErrorMessagesUnwrapped);\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { callWithDebounce } from '../helpers/utilities';\r\n\r\nexport function withErrorMessage(Component) {\r\n return class ErrorWrapper extends React.Component {\r\n static propTypes = {\r\n validationProps: PropTypes.shape({\r\n onValidate: PropTypes.func,\r\n alwaysShowError: PropTypes.bool,\r\n showErrorOnPassiveMessages: PropTypes.bool,\r\n passiveMessages: PropTypes.arrayOf(PropTypes.string),\r\n showSingleError: PropTypes.bool,\r\n errorFilter: PropTypes.func,\r\n debounce: PropTypes.number,\r\n customErrorRendering: PropTypes.bool,\r\n }),\r\n };\r\n\r\n static defaultProps = {\r\n validationProps: {\r\n onValidate: _.noop,\r\n alwaysShowError: false,\r\n showErrorOnPassiveMessages: false,\r\n passiveMessages: [],\r\n showSingleError: false,\r\n errorFilter: undefined,\r\n debounce: undefined,\r\n customErrorRendering: false,\r\n },\r\n };\r\n\r\n state = {\r\n messages: [],\r\n isDirty: false,\r\n };\r\n\r\n onValidate = (item) => {\r\n if (_.isFunction(this.props.validationProps.onValidate)) {\r\n this.props.validationProps.onValidate(item);\r\n }\r\n this.setErrorStateWithDebounce({\r\n messages: item.messages,\r\n isDirty: item.isDirty,\r\n });\r\n };\r\n\r\n setErrorState = (error) => {\r\n this.setState(error);\r\n };\r\n\r\n setErrorStateWithDebounce = callWithDebounce(this.setErrorState, this.props.validationProps.debounce);\r\n\r\n getErrorMessages = (showSingleError, errorFilter) => {\r\n const errorMessages = _.isFunction(errorFilter) ?\r\n [..._.filter(this.state.messages, errorFilter), ..._.result(this.props.validationProps, 'passiveMessages', [])] :\r\n [...this.state.messages, ..._.result(this.props.validationProps, 'passiveMessages', [])];\r\n return showSingleError ? errorMessages.slice(0, 1) : errorMessages;\r\n };\r\n\r\n render() {\r\n const {\r\n passiveMessages, showErrorOnPassiveMessages, alwaysShowError, showSingleError, errorFilter,\r\n } = this.props.validationProps;\r\n\r\n const shouldRenderError = alwaysShowError ||\r\n this.state.isDirty ||\r\n !_.isEmpty(passiveMessages);\r\n\r\n const messages = shouldRenderError ? this.getErrorMessages(showSingleError, errorFilter) : [];\r\n const validationProps = _.defaults({\r\n onValidate: this.onValidate,\r\n forceErrorClassName: showErrorOnPassiveMessages ? !_.isEmpty(passiveMessages) : undefined,\r\n messages,\r\n }, this.props.validationProps);\r\n\r\n return (\r\n \r\n );\r\n }\r\n };\r\n}\r\n","import { debounce } from 'underscore';\r\n\r\nexport const callWithDebounce = (method, debounceInMs) => (debounceInMs ? debounce(method, debounceInMs) : method);\r\n","import { AdapterFactory } from './adapter-factory';\r\n\r\nexport const CheckedAdapter = AdapterFactory({ valueToInject: 'checked' });\r\n","import { AdapterFactory } from './adapter-factory';\r\n\r\nexport const CheckedItemAdapter = AdapterFactory({ convertEventToValue: event => event.target.checked, defaultValue: false, valueToInject: 'checked' });\r\n","import { AdapterFactory } from './adapter-factory';\r\n\r\nexport const GenericAdapter = AdapterFactory({});\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\n\r\nexport class DropdownAdapter {\r\n constructor(PrimitiveComponent) {\r\n this.component = PrimitiveComponent;\r\n }\r\n\r\n getValue(props) {\r\n return props.selectedOptions;\r\n }\r\n\r\n renderComponent(props, value, onChange) {\r\n const PrimitiveComponent = this.component;\r\n\r\n return ( {\r\n onChange(selectedOptions);\r\n if (_.isFunction(props.onChange)) {\r\n props.onChange(selectedOptions);\r\n }\r\n }}\r\n />);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DummyNode } from '../validation-node/dummy-node';\r\nimport { withValidationInternal } from './with-validation';\r\n\r\nexport function withCustomValidation(Component, methodName = 'updateValidation') {\r\n class ValidationWrapper extends React.PureComponent {\r\n static propTypes = {\r\n validationProps: PropTypes.shape({\r\n onValidate: PropTypes.func,\r\n }),\r\n };\r\n\r\n static defaultProps = {\r\n validationProps: {\r\n onValidate: _.noop,\r\n },\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.itemNode = new DummyNode({ parent: _.result(props.validationProps, 'parent'), initialNodeValue: _.result(props.validationProps, 'initialValue') });\r\n }\r\n\r\n componentDidMount() {\r\n this.itemNode.register();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.itemNode.unregister();\r\n _.result(this.props.validationProps, 'notifyDataChange');\r\n }\r\n\r\n updateValidation = (messages, data = null, shouldDirty = true) => {\r\n if (!_.isEqual(messages, this.itemNode.accessor.messages) ||\r\n (data !== null && !_.isEqual(data, this.itemNode.accessor.data))) {\r\n this.itemNode.trigger(messages, data, shouldDirty);\r\n if (_.isFunction(this.props.validationProps.onValidate)) {\r\n this.props.validationProps.onValidate(this.itemNode.accessor);\r\n }\r\n }\r\n };\r\n\r\n triggerValidate = () => {\r\n if (_.isFunction(this.props.validationProps.onValidate)) {\r\n this.props.validationProps.onValidate(this.itemNode.accessor);\r\n }\r\n };\r\n\r\n injectedProps = { [methodName]: this.updateValidation };\r\n\r\n render() {\r\n return ();\r\n }\r\n }\r\n\r\n return withValidationInternal(ValidationWrapper);\r\n}\r\n","import _ from 'underscore';\r\nimport { BaseNode } from './base-node';\r\n\r\nconst initialValue = {};\r\nconst validator = (changed, node) => node.messages;\r\nconst convertor = {\r\n fromJSON: (data, node) => { _.extend(node, { value: data }); },\r\n toJSON: node => node.value,\r\n};\r\n\r\nexport class DummyNode extends BaseNode {\r\n constructor({ parent, initialNodeValue = initialValue }) {\r\n super({ parent, validator, convertor });\r\n this.value = initialNodeValue;\r\n }\r\n\r\n trigger(messages, value = this.value, shouldDirty = true) {\r\n this.messages = messages;\r\n if (value !== this.value) {\r\n this.value = value;\r\n if (shouldDirty) {\r\n this.setDirty();\r\n }\r\n }\r\n this.parent.notifyChildChange(this);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport React, { useContext, useMemo, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ServerErrorContext, ServerErrorEntityContext } from './server-error-context';\r\nimport { matchesField } from '../helpers/server-error-utils';\r\n\r\nexport const useServerError = (props) => {\r\n const {\r\n serverErrorProps,\r\n passiveMessages = [],\r\n } = props;\r\n const {\r\n clientId,\r\n fieldSelector,\r\n entity: propEntity,\r\n code,\r\n } = serverErrorProps || {};\r\n const { errors } = useContext(ServerErrorContext);\r\n const contextEntity = useContext(ServerErrorEntityContext);\r\n const entity = propEntity || contextEntity || '';\r\n\r\n return useMemo(() => {\r\n let matchedErrors = [];\r\n if (errors && errors[entity]) {\r\n matchedErrors =\r\n _.flatten(_.values(_.pick(errors[entity], (v, k) => matchesField(k, fieldSelector))));\r\n }\r\n if (code) {\r\n matchedErrors = _.filter(matchedErrors, e => matchesField(e.errorCode, code));\r\n }\r\n if (clientId) {\r\n matchedErrors = _.filter(matchedErrors, e => matchesField(e.clientId, clientId));\r\n }\r\n const errorMessages = _.map(matchedErrors, e => e.message);\r\n return [...passiveMessages, ...errorMessages];\r\n }, [clientId, entity, errors, fieldSelector, passiveMessages, code]);\r\n};\r\n\r\nexport const withServerError = (Component) => {\r\n const HOC = React.memo((props) => {\r\n const {\r\n serverErrorProps,\r\n validationProps,\r\n } = props;\r\n const { fieldSelector, entity: propEntity } = serverErrorProps || {};\r\n const { passiveMessages = [], onValidate } = validationProps || {};\r\n const { removeErrors } = useContext(ServerErrorContext);\r\n const contextEntity = useContext(ServerErrorEntityContext);\r\n const entity = propEntity || contextEntity || '';\r\n\r\n\r\n const messages = useServerError({ serverErrorProps, passiveMessages });\r\n\r\n const validate = useCallback((item) => {\r\n if (_.isFunction(onValidate)) {\r\n onValidate(item);\r\n }\r\n removeErrors({ entity, fieldSelector });\r\n }, [entity, fieldSelector, onValidate, removeErrors]);\r\n\r\n const componentProps = {\r\n ..._.omit(props, 'serverErrorProps'),\r\n validationProps: {\r\n ...validationProps,\r\n passiveMessages: messages,\r\n onValidate: validate,\r\n },\r\n };\r\n\r\n return (\r\n \r\n );\r\n });\r\n\r\n\r\n HOC.propTypes = {\r\n serverErrorProps: PropTypes.shape({\r\n fieldSelector: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.object,\r\n ]),\r\n entity: PropTypes.string,\r\n code: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.object,\r\n ]),\r\n }),\r\n validationProps: PropTypes.shape({\r\n onValidate: PropTypes.func,\r\n passiveMessages: PropTypes.arrayOf(PropTypes.string),\r\n }),\r\n };\r\n\r\n HOC.defaultProps = {\r\n validationProps: {},\r\n serverErrorProps: { fieldSelector: '' },\r\n };\r\n\r\n return HOC;\r\n};\r\n","import React, { useState, useCallback, useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { getErrorFromRawFn } from '@bingads-webui-react/error-mapper';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { removeErrorsFromContext, ignoreErrorCode } from '../helpers/server-error-utils';\r\n\r\n/*\r\n Server error entity context\r\n*/\r\nexport const ServerErrorEntityContext = React.createContext();\r\nexport const ServerErrorEntity = React.memo((props) => {\r\n const { entity, children } = props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\nServerErrorEntity.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n entity: PropTypes.string.isRequired,\r\n};\r\n\r\n/*\r\n Server error context\r\n*/\r\nexport const ServerErrorContext = React.createContext({});\r\nexport const ServerErrorGroup = React.memo((props) => {\r\n const {\r\n children,\r\n rawErrorToMessageMapper,\r\n instrumentation,\r\n } = props;\r\n const [errors, setErrors] = useState({});\r\n const i18n = useContext(I18nContext);\r\n const mapErrors = rawErrorToMessageMapper || getErrorFromRawFn(i18n, instrumentation);\r\n\r\n // server error code is not unique for now, so we temporarily depend on server error messages\r\n // when MT fixed this error code issue, we should not use server error message any more\r\n const setServerError = useCallback(({\r\n error, entity = '', field, useServerErrorMessage = false, ignore,\r\n }) => {\r\n setErrors(e => ({\r\n ...e,\r\n [entity]: ignoreErrorCode(mapErrors(error, entity, field, useServerErrorMessage), ignore),\r\n }));\r\n }, [mapErrors]);\r\n\r\n const removeErrors = useCallback(({\r\n entity = '',\r\n fieldSelector = () => true,\r\n clientId = () => true,\r\n code = () => true,\r\n }) => {\r\n setErrors(e => removeErrorsFromContext(e, entity, fieldSelector, clientId, code));\r\n }, []);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n});\r\n\r\n\r\nServerErrorGroup.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n rawErrorToMessageMapper: PropTypes.func,\r\n instrumentation: PropTypes.shape({ logError: PropTypes.func }),\r\n};\r\n\r\nServerErrorGroup.defaultProps = {\r\n rawErrorToMessageMapper: null,\r\n instrumentation: null,\r\n};\r\n\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__62__;","import _ from 'underscore';\r\n\r\nexport const matchesField = (field, fieldSelector) => {\r\n if (_.isArray(fieldSelector)) {\r\n return fieldSelector.includes(field);\r\n } else if (_.isString(fieldSelector)) {\r\n // Handle field name match as well as comma separated set of field names\r\n const values = fieldSelector.split(',');\r\n return _.any(values, v => v.trim() === field);\r\n } else if (_.isObject(fieldSelector) && _.isFunction(fieldSelector.test)) {\r\n // Handle regex match\r\n return fieldSelector.test(field);\r\n } else if (_.isFunction(fieldSelector)) {\r\n return fieldSelector(field);\r\n }\r\n return false;\r\n};\r\n\r\nexport const excludeFields = values => new RegExp(`^(?!(${values.replace(/,/g, '|')})$).*$`);\r\n\r\nexport const removeErrorsFromContext = (context, entity = '', fieldSelector = () => true, clientId = () => true, code = () => true) => ({\r\n ...context,\r\n [entity]: _.mapObject(\r\n context[entity] || {},\r\n (fieldErrors, fieldName) => (matchesField(fieldName, fieldSelector)\r\n ? _.filter(fieldErrors, v =>\r\n !(matchesField(v.clientId, clientId) && matchesField(v.errorCode, code)))\r\n : fieldErrors)\r\n ),\r\n});\r\n\r\nexport const ignoreErrorCode = (mappedErrors, ignore) => {\r\n if (ignore) {\r\n return _.mapObject(\r\n mappedErrors || {},\r\n fieldErrors => _.filter(fieldErrors, v => !matchesField(v.errorCode, ignore))\r\n );\r\n }\r\n return mappedErrors;\r\n};\r\n","export { withDefaultStyles } from './src/with-default-styles';\r\nexport { useDefaultStyles } from './src/use-default-styles';\r\n","import React from 'react';\r\nimport injectSheet, { ThemeProvider } from 'react-jss';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\n\r\nconst emptyTheme = {};\r\n\r\nexport function withDefaultStyles(WrappedComponent, getStyles = () => ({})) {\r\n const StyledComponent = injectSheet(({ components = {}, core = {} }) =>\r\n getStyles(components, core))(WrappedComponent);\r\n\r\n const HOC = props => (\r\n \r\n \r\n \r\n );\r\n\r\n HOC.displayName = `withDefaultStyles(${getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(HOC, WrappedComponent);\r\n\r\n return HOC;\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6__;","import _ from 'underscore';\r\nimport { useMemo, useRef } from 'react';\r\nimport { createUseStyles, useTheme } from 'react-jss';\r\n\r\nconst emptyTheme = {};\r\nconst defaultProps = {};\r\nconst defaultGetStyles = () => ({});\r\n\r\n\r\nfunction useDeepMemo(value) {\r\n const ref = useRef(null);\r\n if (!_.isEqual(value, ref.current)) {\r\n ref.current = value;\r\n }\r\n\r\n return ref.current;\r\n}\r\n\r\nexport function useDefaultStyles(getStyles = defaultGetStyles, props = defaultProps) {\r\n const theme = useTheme();\r\n\r\n const useStyles = useMemo(\r\n () => {\r\n const { components = {}, core = {} } = theme || emptyTheme;\r\n return createUseStyles(getStyles(components, core));\r\n },\r\n [getStyles, theme]\r\n );\r\n\r\n const classes = useStyles(props);\r\n\r\n // useDeepMemo to prevent hooks from re-running if the classes object changes reference\r\n // however the content doesn't change\r\n return useDeepMemo(classes);\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__110__;","export { withLastURL } from './src/with-last-url';\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n processor,\r\n withCampaignSiteMap,\r\n withAccountsSiteMap,\r\n} from '@bingads-webui-react/with-site-map';\r\nimport { withScope, QueryParam } from '@bingads-webui-react/scope-service';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { SmartLastURL } from './smart-last-url';\r\n\r\nconst LastCampaignURL = withCampaignSiteMap(SmartLastURL, [processor.processPath]);\r\nconst LastAccountsURL = withAccountsSiteMap(SmartLastURL, [processor.processPath]);\r\n\r\nexport const withLastURL = (WrappedComponent) => {\r\n class LastUrl extends React.PureComponent {\r\n renderWrappedComponent = (buttonText, lastUrl, lastPath) => {\r\n const {\r\n backButtonUrl,\r\n backButtonText,\r\n i18n,\r\n ...others\r\n } = this.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n scope,\r\n serverContext,\r\n } = this.props;\r\n\r\n if (_.has(scope.values, 'aid')) {\r\n return (\r\n this.renderWrappedComponent('Back to campaigns', lastUrlState.lastUrl, lastUrlState.lastPath)} serverContext={serverContext} />\r\n );\r\n }\r\n\r\n return (\r\n this.renderWrappedComponent('Back to accounts', lastUrlState.lastUrl, lastUrlState.lastPath)} serverContext={serverContext} />\r\n );\r\n }\r\n }\r\n\r\n LastUrl.propTypes = {\r\n backButtonUrl: PropTypes.string,\r\n backButtonText: PropTypes.string,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n i18n: PropTypes.shape({}).isRequired,\r\n serverContext: PropTypes.shape({\r\n }),\r\n };\r\n\r\n LastUrl.defaultProps = {\r\n backButtonUrl: '',\r\n backButtonText: '',\r\n serverContext: {},\r\n };\r\n\r\n return withI18nConsumer(withScope(LastUrl));\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n findSiteMap,\r\n siteMapPropType,\r\n} from '@bingads-webui-react/with-site-map';\r\nimport { QueryParam } from '@bingads-webui-react/scope-service';\r\n\r\nexport const ACCOUNT_MODE = {\r\n DEFAULT: null,\r\n EXPERT: 0,\r\n SMART: 1,\r\n UNIFIED_SMART: 2,\r\n UNIFIED_EXPERT: 3,\r\n};\r\n\r\nexport class SmartLastURL extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n const { CurrentAccount } = props.serverContext || {};\r\n this.state = {\r\n lastUrl: this.formatUrl('', props.scope, false, CurrentAccount && CurrentAccount.AccountMode),\r\n lastPath: null,\r\n };\r\n this.updateLastUrl();\r\n }\r\n\r\n leafCondition = item => item.children.length === 0 && item.selected === true;\r\n\r\n formatUrl = (url, scope, backToSmartCampaign = false, accountMode) => {\r\n if (backToSmartCampaign && scope.values.aid) { // back to smart campaign\r\n return `/campaign/smart?uid=${scope.values.uid}&cid=${scope.values.cid}&aid=${scope.values.aid}`;\r\n }\r\n\r\n if (accountMode === ACCOUNT_MODE.UNIFIED_SMART && scope.values.aid) {\r\n return `/campaign/mca?uid=${scope.values.uid}&cid=${scope.values.cid}&aid=${scope.values.aid}`;\r\n }\r\n // when we have aid, we can fallback to campaign pages and it will go to default landing apge.\r\n if (scope.values.aid) {\r\n return `/campaign/vnext/${url}?uid=${scope.values.uid}&cid=${scope.values.cid}&aid=${scope.values.aid}`;\r\n } else if (url === '') { // If no aid or url (means user directely landed here) we go to account summary pages.\r\n return `/campaign/vnext/accounts?uid=${scope.values.uid}&cid=${scope.values.cid}`;\r\n }\r\n return `/campaign/vnext/${url}?uid=${scope.values.uid}&cid=${scope.values.cid}`; // the last url the user visited, works for both campaign and accounts\r\n }\r\n\r\n updateLastUrl = () => {\r\n const {\r\n siteMap, scope, serverContext,\r\n } = this.props;\r\n const { CurrentAccount } = serverContext;\r\n if (CurrentAccount && CurrentAccount.AccountMode === ACCOUNT_MODE.SMART) {\r\n this.setState({\r\n lastUrl: this.formatUrl('', scope, true),\r\n });\r\n } else {\r\n const selectedChildItem = findSiteMap(siteMap, this.leafCondition);\r\n if (selectedChildItem) {\r\n this.setState({\r\n lastUrl: this.formatUrl(selectedChildItem.route, scope, false, CurrentAccount && CurrentAccount.AccountMode),\r\n lastPath: selectedChildItem,\r\n });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n this.updateLastUrl();\r\n return (\r\n \r\n {this.props.render(this.state)}\r\n \r\n );\r\n }\r\n}\r\n\r\nSmartLastURL.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n render: PropTypes.func.isRequired,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n serverContext: PropTypes.shape({\r\n }).isRequired,\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__413__;","export { withOverflowProp } from './src/with-overflow-prop';\r\n","import React from 'react';\r\n\r\n/* istanbul ignore next */\r\nfunction isIEBrowser() {\r\n const userAgent = window.navigator && window.navigator.userAgent;\r\n const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;\r\n const isEdge = userAgent.indexOf('Edge') > -1;\r\n const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;\r\n\r\n return isIE || isEdge || isIE11;\r\n}\r\n\r\nfunction isTextOverflow(element) {\r\n // this is a workaround to fix the issue with IE scrollWidth\r\n // which the scrollWidth is off by 1px compared to the offsetWidth\r\n /* istanbul ignore next */\r\n const clientWidth = isIEBrowser() ? element.clientWidth + 1 : element.clientWidth;\r\n\r\n return clientWidth < element.scrollWidth;\r\n}\r\n\r\nexport const withOverflowProp\r\n = WrappedComponent => class WithOverflowProp extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n // TODO: React Router still supports React 16.3.2. So we are not able to use\r\n // `forwardRef` right now. The fix will be in version 5 when React Router upgrade\r\n // their dependency to React 16.7+. Check and change to use forwardRef until then.\r\n this.forwardedRef = React.createRef();\r\n\r\n this.state = {\r\n overflow: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.checkOverflow();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.checkOverflow();\r\n }\r\n\r\n checkOverflow = () => {\r\n const element = this.forwardedRef.current;\r\n\r\n const overflow = isTextOverflow(element);\r\n if (overflow !== this.state.overflow) {\r\n this.setState({ overflow });\r\n }\r\n }\r\n\r\n render = () => ()\r\n };\r\n","export { withPageReady } from './src/with-page-ready';\r\nexport { withPageReadyAsync } from './src/with-page-ready-async';\r\n","import { withPageReadyAsync } from './with-page-ready-async';\r\n\r\nexport function withPageReady(Component, FallbackComponent = Component, pageName = '') {\r\n return withPageReadyAsync(() => ({ default: Component }), FallbackComponent, pageName);\r\n}\r\n","import React, { lazy, Suspense } from 'react';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\n\r\nexport function withPageReadyAsync(componentLoader, FallbackComponent = null, pageName = '') {\r\n const pageReadyPromise = PageReady.afterPageReady(pageName);\r\n const WrappedComponent = lazy(() => pageReadyPromise.then(() => componentLoader()));\r\n\r\n return React.memo(props => ((\r\n )}>\r\n \r\n \r\n )));\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1416__;","export { useResponsiveSize } from './src/use-responsive-size';\r\nexport { withResponsiveSize } from './src/with-responsive-size';\r\nexport { ResponsiveSizeBreakpoints } from './src/responsive-sizes';\r\n","import { useEffect, useRef, useState } from 'react';\r\nimport { ResponsiveSizeBreakpoints } from './responsive-sizes';\r\n\r\n/*\r\nThe latest version 2xx has useMedia hook from 'react-meida'\r\nDue to the possible break change between react-media@1.9.2 to react-meida@2.0.0-rc.1, we decide to directly import the useMedia hook from 'react-media'.\r\nOnce we are clear to upgrade, the line 9 to line 88 can be replaced with import { useMedia } from \"react-media\";\r\n*/\r\n\r\nclass MediaQueryListener {\r\n constructor(targetWindow, query, listener) {\r\n this.nativeMediaQueryList = targetWindow.matchMedia(query);\r\n this.active = true;\r\n // Safari doesn't clear up listener with removeListener\r\n // when the listener is already waiting in the event queue.\r\n // Having an active flag to make sure the listener is not called\r\n // after we removeListener.\r\n this.cancellableListener = (...args) => {\r\n this.matches = this.nativeMediaQueryList.matches;\r\n if (this.active) {\r\n listener(...args);\r\n }\r\n };\r\n this.nativeMediaQueryList.addListener(this.cancellableListener);\r\n this.matches = this.nativeMediaQueryList.matches;\r\n }\r\n\r\n cancel() {\r\n this.active = false;\r\n this.nativeMediaQueryList.removeListener(this.cancellableListener);\r\n }\r\n}\r\n\r\nconst useMedia = ({ queries, targetWindow, onChange }) => {\r\n const activeQueries = useRef([]);\r\n const getMatches = () => {\r\n const result = activeQueries.current.reduce(\r\n (acc, { name, mqListener }) => ({ ...acc, [name]: mqListener.matches }),\r\n {}\r\n );\r\n return result;\r\n };\r\n\r\n const updateMatches = () => {\r\n // eslint-disable-next-line no-use-before-define\r\n setMatches(getMatches());\r\n };\r\n\r\n const setUpMQLs = () => {\r\n const activeTargetWindow = targetWindow || window;\r\n\r\n const queryObject = queries;\r\n\r\n activeQueries.current = Object.keys(queryObject).map((name) => {\r\n const currentQuery = queryObject[name];\r\n const qs = currentQuery;\r\n const mqListener = new MediaQueryListener(\r\n activeTargetWindow,\r\n qs,\r\n updateMatches\r\n );\r\n\r\n return { name, mqListener };\r\n });\r\n };\r\n\r\n const [matches, setMatches] = useState(() => {\r\n if (typeof window !== 'object') {\r\n /* if (props.queries) */\r\n return Object.keys(queries).reduce(\r\n (acc, key) => ({ ...acc, [key]: true }),\r\n {}\r\n );\r\n }\r\n setUpMQLs();\r\n return getMatches();\r\n });\r\n\r\n\r\n useEffect(\r\n () => () => activeQueries.current.forEach(({ mqListener }) => mqListener.cancel()),\r\n []\r\n );\r\n\r\n useEffect(\r\n () => {\r\n if (onChange) {\r\n onChange(matches);\r\n }\r\n },\r\n [matches, onChange]\r\n );\r\n return matches;\r\n};\r\n\r\nexport const useResponsiveSize = (sizes = ResponsiveSizeBreakpoints, offset = 0) => {\r\n const sortedSizes = sizes.sort((a, b) => b.minWidth - a.minWidth);\r\n let currentSize = sortedSizes[sortedSizes.length - 1];\r\n\r\n const queries = sizes.reduce((dict, query) => ({ ...dict, [query.name]: `(min-width: ${query.minWidth + offset}px)` }), {});\r\n\r\n const innerMatches = useMedia({ queries, targetWindow: window });\r\n\r\n for (let i = 0; i < sortedSizes.length; i += 1) {\r\n if (innerMatches[sortedSizes[i].name]) {\r\n currentSize = sortedSizes[i];\r\n break;\r\n }\r\n }\r\n\r\n return currentSize.name;\r\n};\r\n","export const ResponsiveSizeBreakpoints = [\r\n {\r\n name: 's',\r\n minWidth: 360,\r\n },\r\n {\r\n name: 'm',\r\n minWidth: 480,\r\n },\r\n {\r\n name: 'l',\r\n minWidth: 640,\r\n },\r\n {\r\n name: 'xl',\r\n minWidth: 1024,\r\n },\r\n {\r\n name: 'xxl',\r\n minWidth: 1366,\r\n },\r\n];\r\n","import React from 'react';\r\nimport Media from 'react-media';\r\nimport PropTypes from 'prop-types';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\n\r\nexport const withResponsiveSize = (WrappedComponent, sizes) => {\r\n class WithResponsiveSize extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {};\r\n\r\n // sort descending by minWidth\r\n const sortedSizes = sizes.sort((a, b) => b.minWidth - a.minWidth);\r\n\r\n // The smallest does not need a query since we can assumed we are in the smallest if\r\n // all other states are false.\r\n this.queries = sortedSizes.slice(0, -1);\r\n this.smallestSizeName = sortedSizes[sortedSizes.length - 1].name;\r\n\r\n for (let i = 0; i < this.queries.length; i += 1) {\r\n this.state[this.queries[i].name] = false;\r\n }\r\n }\r\n\r\n getCurrentSize() {\r\n // Queries are sorted in descending order by minWdith, so take the first one that is true\r\n for (let i = 0; i < this.queries.length; i += 1) {\r\n if (this.state[this.queries[i].name] === true) {\r\n return this.queries[i].name;\r\n }\r\n }\r\n\r\n // If all others are false, that means we are at the smallest size\r\n return this.smallestSizeName;\r\n }\r\n\r\n handleChange(name, match) {\r\n const newState = {};\r\n newState[name] = match;\r\n this.setState(newState);\r\n }\r\n\r\n render() {\r\n const { offset, ...wrappedComponentProps } = this.props;\r\n\r\n return (\r\n \r\n {this.queries.map(query => ( this.handleChange(query.name, matches)}\r\n />))}\r\n\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n WithResponsiveSize.displayName = `withResponsiveSize(${getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(WithResponsiveSize, WrappedComponent);\r\n\r\n WithResponsiveSize.defaultProps = {\r\n offset: 0,\r\n };\r\n\r\n WithResponsiveSize.propTypes = {\r\n offset: PropTypes.number,\r\n };\r\n\r\n return WithResponsiveSize;\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__220__;","module.exports = __WEBPACK_EXTERNAL_MODULE__127__;","export * from './src/with-site-map';\r\nexport { siteMapPropType } from './src/site-map-prop-type';\r\nexport { customMapperStore } from './src/processors/custom-mapper-processor';\r\nexport { getRoutePathById, findSiteMap, findDeepSiteMap, findSelectedNode, findAllSiteMap,\r\n isRouteMatch, filterMapByRootIds, getSiteMapItemRoute, getNewScope } from './src/site-map-utilities';\r\nexport { CampaignType, AdGroupType, Scope, ScopeV2, defaultItem, buildTree, BaseHost, RoutePrefix } from './src/configs/shared';\r\nexport { getCurrentScope, trimScope } from './src/processors/processor-helpers';\r\nexport { updateSelected } from './src/processors/path-processor';\r\nexport { navRefreshPageIds } from './src/configs-v2';\r\n","import _ from 'underscore';\r\nimport * as Configs from './configs/index';\r\nimport { processPermissions } from './processors/permission-processor';\r\nimport { processScope } from './processors/scope-processor';\r\nimport { processScopeV2 } from './processors/scope-processor-v2';\r\nimport { processPath } from './processors/path-processor';\r\nimport { processCustomMapper } from './processors/custom-mapper-processor';\r\nimport { processRootFilter } from './processors/root-filter-processor';\r\nimport { processCampaignUIContext } from './processors/campaign-ui-context-processor';\r\nimport { processCcuiContext } from './processors/ccui-context-processor';\r\nimport { processAccountLinkPermission } from './processors/account-link-permission-processor';\r\nimport { createSiteMapWrapper, defaultPropName } from './site-map-wrapper';\r\nimport { navRefreshSiteMap } from './configs-v2';\r\nimport { processSharedLibrary } from './processors/shared-library-processor';\r\n\r\nconst {\r\n accountsSiteMap, campaignSiteMap, toolsSiteMap, flatToolsSiteMap, importSiteMap,\r\n reportsSiteMap, reportsV4SiteMap, hotelCenterSiteMap, hotelCenterV2SiteMap, standaloneSiteMap, flatSetupSiteMap,\r\n allSiteMap, allClientCenterSiteMap, bidStrategiesSiteMap,\r\n clientCenterSiteMap, clientCenterStandAloneSiteMap,\r\n smartCampaignsSiteMap, unifiedSmartSiteMap, adInsightSiteMap, flatSmartToolsSiteMap,\r\n flatSmartImportSiteMap, customReportsSiteMap,\r\n} = Configs;\r\n\r\nconst processPermissionsCached = _.partial(processPermissions, _, true);\r\nconst processScopeCached = _.partial(processScope, _, _, true);\r\nconst processScopeSkipRootCached = _.partial(processScope, _, _, true, true);\r\nconst processPathCached = _.partial(processPath, _, true);\r\nconst processAccountLinkPermissionCached = _.partial(processAccountLinkPermission, _, true);\r\n\r\nexport const processor = {\r\n processPermissions: processPermissionsCached,\r\n processPermissionsCached,\r\n processScope: processScopeCached,\r\n processScopeCached,\r\n processPath: processPathCached,\r\n processCampaignUIContext,\r\n processPathCached,\r\n processCustomMapper,\r\n processScopeSkipRoot: processScopeSkipRootCached,\r\n processRootFilter,\r\n processScopeV2,\r\n processScopeV2Cached: _.partial(processScopeV2, _, _, true),\r\n processCcuiContext,\r\n processAccountLinkPermission,\r\n processAccountLinkPermissionCached,\r\n processSharedLibrary,\r\n};\r\n\r\nexport const processorSet = {\r\n basic: [processPermissionsCached, processAccountLinkPermissionCached, processPathCached],\r\n default: [processPermissionsCached, processAccountLinkPermissionCached, processScopeCached, processPathCached],\r\n all: [processPermissionsCached, processAccountLinkPermissionCached, processScopeCached, processPathCached, processCustomMapper],\r\n navRefresh: [processPermissionsCached, processAccountLinkPermissionCached, processScopeSkipRootCached, processSharedLibrary, processPathCached, processCustomMapper],\r\n};\r\n\r\nexport function withSiteMap(\r\n Component, processors = processorSet.default,\r\n siteMap = allSiteMap, rootId = null, propName = defaultPropName\r\n) {\r\n const composedProcessor = rootId === null ? _.compose(...processors) :\r\n _.compose(...processors, _.partial(processRootFilter, _, rootId));\r\n\r\n return createSiteMapWrapper(Component, composedProcessor, siteMap, propName);\r\n}\r\n\r\nexport const withAccountsSiteMap = _.partial(withSiteMap, _, _, accountsSiteMap);\r\nexport const withBidStrategiesSiteMap = _.partial(withSiteMap, _, _, bidStrategiesSiteMap);\r\nexport const withCampaignSiteMap = _.partial(withSiteMap, _, _, campaignSiteMap);\r\nexport const withToolsSiteMap = _.partial(withSiteMap, _, _, toolsSiteMap);\r\nexport const withFlatToolsSiteMap = _.partial(withSiteMap, _, _, flatToolsSiteMap);\r\nexport const withFlatSmartToolsSiteMap = _.partial(withSiteMap, _, _, flatSmartToolsSiteMap);\r\nexport const withFlatSetupSiteMap = _.partial(withSiteMap, _, _, flatSetupSiteMap);\r\nexport const withImportSiteMap = _.partial(withSiteMap, _, _, importSiteMap);\r\nexport const withFlatSmartImportSiteMap = _.partial(withSiteMap, _, _, flatSmartImportSiteMap);\r\nexport const withReportsSiteMap = _.partial(withSiteMap, _, _, reportsSiteMap);\r\nexport const withReportsV4SiteMap = _.partial(withSiteMap, _, _, reportsV4SiteMap);\r\nexport const withCustomReportsSiteMap = _.partial(withSiteMap, _, _, customReportsSiteMap);\r\nexport const withHotelCenterSiteMap = _.partial(withSiteMap, _, _, hotelCenterSiteMap);\r\nexport const withHotelCenterV2SiteMap = _.partial(withSiteMap, _, _, hotelCenterV2SiteMap);\r\nexport const withStandaloneSiteMap = _.partial(withSiteMap, _, _, standaloneSiteMap);\r\nexport const withAllClientCenterSiteMap =\r\n _.partial(withSiteMap, _, processorSet.basic, allClientCenterSiteMap);\r\nexport const withClientCenterSiteMap = _.partial(withSiteMap, _, _, clientCenterSiteMap);\r\nexport const withClientCenterStandaloneSiteMap =\r\n _.partial(withSiteMap, _, _, clientCenterStandAloneSiteMap);\r\nexport const withSmartSiteMap =\r\n _.partial(withSiteMap, _, _, smartCampaignsSiteMap);\r\nexport const withUnifiedSmartSiteMap = _.partial(withSiteMap, _, _, unifiedSmartSiteMap);\r\nexport const withAdInsightSiteMap = _.partial(withSiteMap, _, _, adInsightSiteMap);\r\nexport { allSiteMap };\r\nexport { Configs };\r\nexport { navRefreshSiteMap };\r\n","import _ from 'underscore';\r\nimport {\r\n defaultItem,\r\n buildTree,\r\n alwaysDisplayed,\r\n alwaysDisplayedItem,\r\n defaultCCItemProperties,\r\n defaultSmartItemProperties,\r\n defaultUpItemProperties,\r\n adInsightItem,\r\n} from './shared';\r\nimport { accountsPages } from './accounts/index';\r\nimport { campaignPages } from './campaign/index';\r\nimport { toolsPages, flatToolsPages, flatSetupPages, flatSmartToolsPages, } from './tools/index';\r\nimport { reportsV4Pages } from './reports-v4';\r\nimport { customReportsPages } from './reports-vnext';\r\nimport { hotelCenterPages } from './tools/setup/hotel-center';\r\nimport { hotelCenterV2Pages } from './tools/setup/hotel-center-v2';\r\nimport { importPages, flatSmartImportPages } from './import';\r\nimport { smartCampaignPages } from './smart/index';\r\nimport { adInsightPages } from './adinsight/index';\r\nimport { standalonePages } from './standalone';\r\nimport { clientCenterPages as ccPages, clientCenterStandalonePages as ccStandalonePages } from './client-center';\r\nimport { unifiedSmartPages } from './unified-product';\r\nimport { bidStrategiesPages } from './bid-strategies';\r\nimport { sdkPages } from './ms-ads-sdk';\r\n\r\nwindow.performance.siteMapLatency = {\r\n eventName: 'PerfMarker/SiteMapLatency',\r\n eventStartTime: window.performance.now(),\r\n};\r\n\r\nexport const ccAlwaysDisplayedItem = {\r\n ...alwaysDisplayedItem,\r\n ...defaultCCItemProperties,\r\n};\r\n\r\nconst smartItem = {\r\n ...alwaysDisplayedItem,\r\n ...defaultSmartItemProperties,\r\n};\r\n\r\nconst unifiedSmartItem = {\r\n ...alwaysDisplayedItem,\r\n ...defaultUpItemProperties,\r\n};\r\n\r\nconst hiddenItem = _.defaults({\r\n campaignTypes: alwaysDisplayed,\r\n searchable: false,\r\n}, defaultItem);\r\n\r\nconst ccHiddenItem = {\r\n ...hiddenItem,\r\n ...defaultCCItemProperties,\r\n};\r\n\r\nexport const accountsSiteMap = buildTree(accountsPages, alwaysDisplayedItem, true);\r\nexport const bidStrategiesSiteMap = buildTree(bidStrategiesPages, alwaysDisplayedItem, true);\r\nexport const campaignSiteMap = buildTree(campaignPages, defaultItem, true);\r\nexport const toolsSiteMap = buildTree(toolsPages, alwaysDisplayedItem, true);\r\nexport const flatToolsSiteMap = buildTree(flatToolsPages, hiddenItem, true);\r\nexport const flatSmartToolsSiteMap = buildTree(flatSmartToolsPages, hiddenItem, true);\r\nexport const flatSetupSiteMap = buildTree(flatSetupPages, hiddenItem, true);\r\nexport const reportsV4SiteMap = buildTree(reportsV4Pages, alwaysDisplayedItem, true);\r\nexport const customReportsSiteMap = buildTree(customReportsPages, alwaysDisplayedItem, true);\r\nexport const importSiteMap = buildTree(importPages, alwaysDisplayedItem, true);\r\nexport const flatSmartImportSiteMap = buildTree(flatSmartImportPages, alwaysDisplayedItem, true);\r\nexport const standaloneSiteMap = buildTree(standalonePages, hiddenItem, true);\r\nexport const hotelCenterSiteMap = buildTree(hotelCenterPages, hiddenItem, true);\r\nexport const hotelCenterV2SiteMap = buildTree(hotelCenterV2Pages, hiddenItem, true);\r\nexport const clientCenterSiteMap = buildTree(ccPages, ccAlwaysDisplayedItem, true);\r\nexport const clientCenterStandAloneSiteMap = buildTree(ccStandalonePages, ccHiddenItem, true);\r\nexport const unifiedSmartSiteMap = buildTree(unifiedSmartPages, unifiedSmartItem, true);\r\nexport const sdkSiteMap = buildTree(sdkPages, hiddenItem, true);\r\n\r\n// we need to add this smartCampaignsSiteMap to allSiteMap when smart new ui is ready.\r\n// currently we use another smart sitemap in campaign folder when ui-next user click smart campaign\r\n// global filter. we may use this one to replace it later.\r\n// this one has the same search string and id, so we don't add it to allSiteMap for now\r\nexport const smartCampaignsSiteMap = buildTree(smartCampaignPages, smartItem, true);\r\n\r\nexport const adInsightSiteMap = buildTree(adInsightPages, adInsightItem, true);\r\n\r\nexport const allClientCenterSiteMap = _.union(clientCenterSiteMap, clientCenterStandAloneSiteMap);\r\nexport const allSiteMap = _.union(\r\n campaignSiteMap, accountsSiteMap, toolsSiteMap,\r\n standaloneSiteMap, reportsV4SiteMap, customReportsSiteMap, importSiteMap,\r\n clientCenterSiteMap, clientCenterStandAloneSiteMap, adInsightSiteMap,\r\n bidStrategiesSiteMap,\r\n sdkSiteMap\r\n);\r\n\r\nwindow.performance.siteMapLatency.eventEndTime = window.performance.now();\r\n","/* eslint-disable no-bitwise */\r\n/* istanbul ignore file */\r\nimport _ from 'underscore';\r\nimport { ScopeV2 } from './scope';\r\n\r\nexport { AccountLinkPermissionType } from '@bingads-webui/multi-agency-utils';\r\n\r\nexport const CampaignType = {\r\n None: 0,\r\n Default: 1 << 0,\r\n Shopping: 1 << 1,\r\n DynamicSearchAds: 1 << 2,\r\n Audience: 1 << 3,\r\n Smart: 1 << 4,\r\n Hotel: 1 << 5,\r\n PerformanceMax: 1 << 6,\r\n App: 1 << 7,\r\n LinkedIn: 1 << 8,\r\n All: 0xFFFF,\r\n};\r\n\r\nexport const AdGroupType = {\r\n SearchStandard: 'SearchStandard',\r\n SearchDynamic: 'SearchDynamic',\r\n};\r\n\r\nexport const Scope = {\r\n Customer: 0,\r\n Account: 1,\r\n Campaign: 2,\r\n AdGroup: 3,\r\n Ad: 4,\r\n PerformanceTarget: 5,\r\n Store: 6,\r\n MerchantFeed: 7,\r\n};\r\n\r\nScopeV2.add('User', 'uid');\r\nScopeV2.add('Customer', 'cid', ScopeV2.User);\r\nScopeV2.add('Account', 'aid', ScopeV2.Customer);\r\nScopeV2.add('Campaign', 'campaignId', ScopeV2.Account);\r\nScopeV2.add('AdGroup', 'adGroupId', ScopeV2.Campaign);\r\nScopeV2.add('Feed', 'feedId', ScopeV2.Account);\r\n\r\nexport { ScopeV2 };\r\n\r\n// refer to settingContext.Url for bastHost details\r\nexport const BaseHost = {\r\n ClientCenter: 'ClientCenterBaseUrl',\r\n Campaign: 'CampaignBaseUrl',\r\n Smart: 'SmartBaseUrl',\r\n AdInsight: 'AdInsightBaseUrl',\r\n UnifiedProduct: 'UnifiedProductBaseUrl',\r\n};\r\n\r\nexport const RoutePrefix = {\r\n ClientCenter: '/',\r\n Campaign: '/campaign/vnext/',\r\n Smart: '/campaign/smart/',\r\n AdInsight: '/research/vnext/',\r\n UnifiedProduct: '/campaign/mca/',\r\n};\r\n\r\nexport const alwaysDisplayed = [CampaignType.None, CampaignType.All];\r\n\r\nexport const defaultScopes = [\r\n Scope.Account,\r\n Scope.Campaign,\r\n Scope.AdGroup,\r\n];\r\n\r\nexport const accountScopes = [\r\n Scope.Customer,\r\n Scope.Account,\r\n];\r\n\r\nexport const allScopes = [\r\n Scope.Customer,\r\n Scope.Account,\r\n Scope.Campaign,\r\n Scope.AdGroup,\r\n Scope.Ad,\r\n Scope.PerformanceTarget,\r\n Scope.Store,\r\n Scope.MerchantFeed,\r\n];\r\n\r\nexport const defaultItem = {\r\n id: '',\r\n name: '',\r\n route: '',\r\n routePrefix: RoutePrefix.Campaign,\r\n children: [],\r\n scope: defaultScopes,\r\n campaignTypes: [CampaignType.All],\r\n available: true,\r\n selected: false,\r\n checkPermission: () => true,\r\n searchable: true,\r\n baseHost: BaseHost.Campaign,\r\n};\r\n\r\nexport const defaultCCItemProperties = {\r\n baseHost: BaseHost.ClientCenter,\r\n routePrefix: RoutePrefix.ClientCenter,\r\n scope: accountScopes,\r\n available: true,\r\n checkPermission: () => true,\r\n};\r\n\r\nexport const alwaysDisplayedItem = _.defaults({\r\n campaignTypes: alwaysDisplayed,\r\n}, defaultItem);\r\n\r\nconst isNewSmartEnabled\r\n = permissions => permissions.dynamic.SmartNewUI && permissions.IsSmartCampaignPhase2Enabled;\r\nexport const defaultSmartItemProperties = {\r\n baseHost: BaseHost.Smart,\r\n routePrefix: RoutePrefix.Smart,\r\n scope: accountScopes,\r\n isSmartPage: true,\r\n available: true,\r\n checkPermission: isNewSmartEnabled,\r\n};\r\n\r\n// permissions.dynamic.IsSmartPageStandalone is set only by standalone app ui side.\r\n// So it will be undefined in other apps.\r\nexport const isSmartPageStandalone\r\n = permissions => permissions.dynamic.IsSmartPageStandalone;\r\n\r\nexport const isUnifiedProductEnabled\r\n = permissions => permissions.dynamic.UnifiedProductPhase2 && permissions.IsUnifiedSmartMode;\r\n\r\nexport const isUnifiedProductSubscriptionEnabled\r\n = permissions => permissions.dynamic.UnifiedProductSubscription;\r\n\r\nexport const defaultUpItemProperties = {\r\n baseHost: BaseHost.UnifiedProduct,\r\n routePrefix: RoutePrefix.UnifiedProduct,\r\n scope: accountScopes,\r\n searchable: false,\r\n available: true,\r\n checkPermission: isUnifiedProductEnabled,\r\n};\r\n\r\nconst defaultAdInsightItemProperties = {\r\n baseHost: BaseHost.AdInsight,\r\n routePrefix: RoutePrefix.AdInsight,\r\n scope: accountScopes,\r\n available: true,\r\n checkPermission: () => false,\r\n};\r\n\r\nexport const adInsightItem = {\r\n ...alwaysDisplayedItem,\r\n ...defaultAdInsightItemProperties,\r\n};\r\n\r\n// todo [rayduan]: below section is for migration period only (from scope to scope V2)\r\n// Will clean up when we deprecate all current Scope and rename ScopeV2 to Scope\r\nconst scopeMapping = {\r\n [Scope.Customer]: ScopeV2.Customer,\r\n [Scope.Account]: ScopeV2.Account,\r\n [Scope.Campaign]: ScopeV2.Campaign,\r\n [Scope.AdGroup]: ScopeV2.AdGroup,\r\n};\r\n\r\nconst addV2Scopes = (item) => {\r\n if (_.has(item, 'scope') && !_.has(item, 'scopeV2')) {\r\n const scopeV2 = _.compact(_.map(item.scope, scope => _.result(scopeMapping, scope, null)));\r\n _.extend(item, { scopeV2 });\r\n }\r\n};\r\n// end of todo\r\n\r\nexport function buildTree(children, defaults, addParent, parent, clone = false) {\r\n return _.map(children, (item) => {\r\n let withDefaults;\r\n let withParent;\r\n if (clone) {\r\n withDefaults = _.defaults({}, item, defaults);\r\n withParent = _.extend({}, withDefaults, { parent });\r\n } else {\r\n withDefaults = _.defaults(item, defaults);\r\n withParent = _.extend(withDefaults, { parent });\r\n }\r\n withParent.children = buildTree(\r\n withParent.children,\r\n defaults,\r\n addParent,\r\n addParent ? item : null,\r\n clone\r\n );\r\n\r\n addV2Scopes(withParent);\r\n\r\n return withParent;\r\n });\r\n}\r\n","import _ from 'underscore';\r\n\r\nconst aggregateParents = (node, iteratee, memo) => {\r\n let result = memo;\r\n for (let cur = node; cur !== null; cur = cur.parent) {\r\n result = iteratee(result, cur);\r\n }\r\n return result;\r\n};\r\n\r\nclass ScopeNode {\r\n children = [];\r\n\r\n constructor(name, key, parent) {\r\n this.name = name;\r\n this.key = key;\r\n this.parent = parent;\r\n }\r\n\r\n isMatch(key) {\r\n return this.key === key;\r\n }\r\n\r\n isEqual(other) {\r\n return this.name === other.name;\r\n }\r\n\r\n isChildOf(parent) {\r\n return aggregateParents(this, (result, node) =>\r\n result || node.parent === parent, false);\r\n }\r\n\r\n get level() {\r\n return aggregateParents(this.parent, l => l + 1, 0);\r\n }\r\n\r\n get keys() {\r\n return aggregateParents(this, (result, node) => {\r\n if (node.key !== null) {\r\n result.push(node.key);\r\n }\r\n return result;\r\n }, []);\r\n }\r\n}\r\n\r\nclass ScopeContainer {\r\n $root = new ScopeNode('$root', null, null);\r\n\r\n add = (name, key, parent = this.$root) => {\r\n if (_.isEmpty(this.findNode(parent))) {\r\n return null; // invalid parent node\r\n }\r\n\r\n const newNode = new ScopeNode(name, key, parent);\r\n\r\n if (!_.isEmpty(this.findNode(newNode))) {\r\n return null; // node with name already exists\r\n }\r\n\r\n parent.children.push(newNode);\r\n\r\n this[name] = newNode;\r\n return newNode;\r\n };\r\n\r\n find = (condition, current = this.$root) => {\r\n if (_.isEmpty(current)) {\r\n return null;\r\n }\r\n\r\n const nodes = [current];\r\n while (!_.isEmpty(nodes)) {\r\n const node = nodes.pop();\r\n if (condition(node)) {\r\n return node;\r\n }\r\n nodes.unshift(...node.children);\r\n }\r\n return null;\r\n };\r\n\r\n findAll = (condition, current = null) => {\r\n const result = [];\r\n const nodes = current == null ? [...this.$root.children] : [current];\r\n while (!_.isEmpty(nodes)) {\r\n const node = nodes.pop();\r\n if (condition(node)) {\r\n result.push(node);\r\n nodes.unshift(...node.children);\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n findNode = node => this.find(current => current.isEqual(node));\r\n\r\n findByKey = key => this.find(current => current.isMatch(key));\r\n\r\n getCurrentScope = (queryParams) => {\r\n const scopes = this.findAll(node => _.has(queryParams, node.key), this.Customer);\r\n return this.findDeepest(scopes);\r\n };\r\n\r\n findDeepest = scopes =>\r\n _.reduce(scopes, (result, scope) => (result.level > scope.level ? result : scope), this.$root);\r\n\r\n trimToScope = (target, queryParams) => {\r\n const targetScope = _.isArray(target) ? this.findDeepest(target) : target;\r\n const currentScope = this.getCurrentScope(queryParams);\r\n const keysToRemove = _.without(currentScope.keys, ...targetScope.keys);\r\n\r\n return _.omit(queryParams, ...keysToRemove);\r\n };\r\n}\r\n\r\nexport const Scope = new ScopeContainer();\r\nexport const ScopeV2 = Scope; // todo [rayduan]: remove ScopeV2 after finishing scope migration\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1542__;","import { accounts } from './accounts';\r\nimport { accountsSummary } from './accounts-summary';\r\nimport { overview } from './overview';\r\nimport { recommendations } from './recommendations';\r\nimport { auctionInsights } from './auction-insights';\r\n\r\nexport const accountsPages = [\r\n accounts,\r\n overview,\r\n accountsSummary,\r\n recommendations,\r\n auctionInsights,\r\n];\r\n","import { Scope } from '../shared';\r\n\r\nexport const accounts = {\r\n id: 'accounts',\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'accounts',\r\n route: 'accounts',\r\n scope: [Scope.Customer],\r\n available: permissions => permissions.dynamic.WebUIVnext,\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const accountsSummary = {\r\n id: 'accounts-summary',\r\n name: _TL_('Accounts summary'),\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'performance',\r\n name: _TL_('Performance'),\r\n route: 'accounts/performance',\r\n available: permissions => permissions.dynamic.WebUIVnext,\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'management',\r\n name: _TL_('Management'),\r\n route: 'accounts/management',\r\n available: permissions => permissions.dynamic.WebUIVnext,\r\n scope: [Scope.Customer],\r\n }, {\r\n id: 'requests',\r\n name: _TL_('Requests'),\r\n route: 'accounts/requests',\r\n available: /* istanbul ignore next */ permissions => permissions.dynamic.WebUIVnext,\r\n checkPermission: permissions => permissions.IsRequestsTabEnabled,\r\n scope: [Scope.Customer],\r\n }, {\r\n id: 'notifications',\r\n name: _TL_('Notifications'),\r\n route: 'accounts/notifications',\r\n available: permissions => permissions.dynamic.WebUIVnext,\r\n scope: [Scope.Customer],\r\n }, {\r\n id: 'import',\r\n name: _TL_('Import'),\r\n route: 'accounts/import',\r\n available: /* istanbul ignore next */ permissions => permissions.dynamic.WebUIVnext,\r\n checkPermission: permissions => permissions.IsAccountLevelImportStatusGridEnabled,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const overview = {\r\n id: 'accounts-overview',\r\n name: _TL_('Overview'),\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'accounts-overview',\r\n name: _TL_('Overview'),\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'accounts-overview',\r\n name: _TL_('Overview'),\r\n route: 'accounts/overview',\r\n scope: [Scope.Customer],\r\n available: true,\r\n },\r\n {\r\n id: 'accounts-overview-expert',\r\n name: _TL_('Overview'),\r\n route: 'accounts/overview/expert',\r\n scope: [Scope.Customer],\r\n available: permissions => permissions.dynamic.UnifiedProductPhase2,\r\n checkPermission: permissions => permissions.dynamic.UnifiedProductPhase2,\r\n searchable: false,\r\n },\r\n {\r\n id: 'accounts-overview-smart',\r\n name: _TL_('Overview'),\r\n route: 'accounts/overview/smart',\r\n scope: [Scope.Customer],\r\n available: permissions => permissions.dynamic.UnifiedProductPhase2,\r\n checkPermission: permissions => permissions.dynamic.UnifiedProductPhase2,\r\n searchable: false,\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const recommendations = {\r\n id: 'recommendations',\r\n name: _TL_('Recommendations'),\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'All',\r\n name: _TL_('All'),\r\n route: 'accounts/recommendations/All',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'Repairs',\r\n name: _TL_('Repairs'),\r\n route: 'accounts/recommendations/Repairs',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'Bids',\r\n name: _TL_('Bidding & budgets'),\r\n route: 'accounts/recommendations/Bids',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'Keywords',\r\n name: _TL_('Keywords & targeting'),\r\n route: 'accounts/recommendations/Keywords',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'Ads',\r\n name: _TL_('Ads & extensions'),\r\n route: 'accounts/recommendations/Ads',\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { Scope } from '../shared';\r\n\r\nexport const auctionInsights = {\r\n id: 'accounts-auction-insights',\r\n name: _TL_('Auction insights'),\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'accounts-auction-insights',\r\n name: _TL_('Auction insights'),\r\n route: 'accounts/auctioninsights',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.IsMCCAuctionInsightsEnabledInMenu && (!permissions.IsDomesticSimplifiedChineseEnabled || (permissions.IsDomesticSimplifiedChineseEnabled && _.get(permissions, ['dynamic', 'AuctionInsightForCN'], false))),\r\n },\r\n ],\r\n};\r\n","import { overview } from './overview';\r\nimport { recommendations } from './recommendations';\r\nimport { campaigns } from './campaigns';\r\nimport { adGroups } from './adgroups';\r\nimport { products } from './products';\r\nimport { adsAndExtensions } from './ads-and-extensions';\r\nimport { assets } from './assets';\r\nimport { landingPages } from './landing-pages';\r\nimport { dynamicAdTargets } from './dynamic-ad-targets';\r\nimport { feedsItems } from './feeds-items';\r\nimport { keywords } from './keywords';\r\nimport { productGroups } from './product-groups';\r\nimport { hotelGroups, propertyGroups } from './hotel-groups';\r\nimport { hotels, properties } from './hotels';\r\nimport { audiences } from './audiences';\r\nimport { demographics } from './demographics';\r\nimport { settings } from './settings';\r\nimport { locations } from './locations';\r\nimport { adSchedule } from './ad-schedule';\r\nimport { devices } from './devices';\r\nimport { changeHistory } from './change-history';\r\nimport { competition } from './competition';\r\nimport { experiments } from './experiments';\r\nimport { smartCampaigns } from './smart-campaigns';\r\nimport { queryInsights } from './query-insights';\r\nimport { assetGroups, appAdsAssetGroups, unifiedAppAdsAssetGroups } from './asset-groups';\r\nimport { listingGroups } from './listing-groups';\r\nimport { assetsReport } from './assets-report';\r\n\r\nexport const campaignPages = [\r\n overview,\r\n recommendations,\r\n queryInsights,\r\n campaigns,\r\n adGroups,\r\n assetGroups,\r\n appAdsAssetGroups,\r\n unifiedAppAdsAssetGroups,\r\n listingGroups,\r\n products,\r\n adsAndExtensions,\r\n assetsReport,\r\n assets,\r\n landingPages,\r\n keywords,\r\n dynamicAdTargets,\r\n feedsItems,\r\n productGroups,\r\n hotelGroups,\r\n propertyGroups,\r\n hotels,\r\n properties,\r\n audiences,\r\n demographics,\r\n settings,\r\n locations,\r\n adSchedule,\r\n devices,\r\n changeHistory,\r\n competition,\r\n experiments,\r\n smartCampaigns,\r\n];\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const overview = {\r\n id: 'overview',\r\n name: _TL_('Overview'),\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Account, Scope.Campaign],\r\n children: [\r\n {\r\n id: 'overview',\r\n name: _TL_('Overview'),\r\n route: 'overview',\r\n campaignTypes: alwaysDisplayed,\r\n shortcut: 'g+o',\r\n scope: [Scope.Account, Scope.Campaign],\r\n },\r\n ],\r\n};\r\n","import { AdGroupType, CampaignType, alwaysDisplayed } from '../shared';\r\n\r\nconst adGroupTypes = [AdGroupType.SearchStandard, AdGroupType.SearchDynamic];\r\n\r\nexport const recommendations = {\r\n id: 'recommendations',\r\n name: _TL_('Recommendations'),\r\n hotelCampaignScope: [],\r\n campaignTypes: (type, permissions) => {\r\n if (type === CampaignType.LinkedIn) return false;\r\n\r\n if (type === CampaignType.App) {\r\n return permissions.dynamic.UnifiedAppAds;\r\n }\r\n\r\n return true;\r\n },\r\n adGroupTypes,\r\n shortcut: 'g+y',\r\n children: [\r\n {\r\n id: 'All',\r\n name: _TL_('All'),\r\n route: 'recommendations/All',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n {\r\n id: 'Repairs',\r\n name: _TL_('Repairs'),\r\n route: 'recommendations/Repairs',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n {\r\n id: 'Bids',\r\n name: _TL_('Bidding & budgets'),\r\n route: 'recommendations/Bids',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n {\r\n id: 'Keywords',\r\n name: _TL_('Keywords & targeting'),\r\n route: 'recommendations/Keywords',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n {\r\n id: 'Ads',\r\n name: _TL_('Ads & extensions'),\r\n route: 'recommendations/Ads',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n {\r\n id: 'Dismissed',\r\n name: _TL_('Dismissed'),\r\n route: 'recommendations/Dismissed',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const campaigns = {\r\n id: 'campaigns',\r\n name: _TL_('Campaigns'),\r\n scope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'campaigns',\r\n name: _TL_('Campaigns'),\r\n route: 'campaigns',\r\n campaignTypes: alwaysDisplayed,\r\n shortcut: 'g+c',\r\n scope: [Scope.Account],\r\n }, {\r\n id: 'auction-insights',\r\n name: _TL_('Auction insights'),\r\n route: 'campaignsauction',\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n checkPermission: permissions => !permissions.IsHideAuctionInsightsCompetitionUI && (!permissions.IsDomesticSimplifiedChineseEnabled || (permissions.IsDomesticSimplifiedChineseEnabled && _.get(permissions, ['dynamic', 'AuctionInsightForCN'], false))),\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, Scope } from '../shared';\r\n\r\nexport const adGroups = {\r\n id: 'adgroups',\r\n name: _TL_('Ad groups'),\r\n scope: [Scope.Account, Scope.Campaign],\r\n campaignTypes: [\r\n CampaignType.Default,\r\n CampaignType.Shopping,\r\n CampaignType.Audience,\r\n CampaignType.DynamicSearchAds,\r\n CampaignType.Smart,\r\n CampaignType.Hotel,\r\n CampaignType.LinkedIn,\r\n ],\r\n children: [\r\n {\r\n id: 'adgroups',\r\n name: _TL_('Ad groups'),\r\n route: 'adgroups',\r\n scope: [Scope.Account, Scope.Campaign],\r\n shortcut: 'g+j',\r\n }, {\r\n id: 'auction-insights',\r\n name: _TL_('Auction insights'),\r\n route: 'adgroupsauction',\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n scope: [Scope.Account, Scope.Campaign],\r\n checkPermission: permissions => !permissions.IsHideAuctionInsightsCompetitionUI && (!permissions.IsDomesticSimplifiedChineseEnabled || (permissions.IsDomesticSimplifiedChineseEnabled && _.get(permissions, ['dynamic', 'AuctionInsightForCN'], false))),\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, Scope } from '../shared';\r\n\r\nexport const products = {\r\n id: 'products',\r\n name: _TL_('Products'),\r\n campaignTypes: [CampaignType.Shopping, CampaignType.Audience, CampaignType.PerformanceMax],\r\n scope: [Scope.Campaign, Scope.AdGroup],\r\n currentCampaign: campaign => _.isEmpty(campaign) ||\r\n (_.result(CampaignType, campaign.CampaignType) === CampaignType.Shopping) ||\r\n (_.result(CampaignType, campaign.CampaignType) === CampaignType.PerformanceMax) ||\r\n (_.result(CampaignType, campaign.CampaignType) === CampaignType.Audience &&\r\n _.has(_.take(campaign.CampaignSettings), 'ProviderId') &&\r\n campaign.CampaignSubType !== 'AudienceDynamicFeedBased'),\r\n children: [\r\n {\r\n id: 'products',\r\n name: _TL_('Products'),\r\n route: 'products',\r\n scope: [Scope.Campaign, Scope.AdGroup],\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, AdGroupType, Scope } from '../shared';\r\n\r\nconst campaignTypes = [\r\n CampaignType.Default,\r\n CampaignType.Shopping,\r\n];\r\nconst adGroupTypes = [AdGroupType.SearchStandard, AdGroupType.SearchDynamic];\r\n\r\nconst apexViewName = 'extensions';\r\n\r\nconst supportAll = ['action', 'app', 'callout', 'image', 'price', 'review', 'sitelink', 'structuredsnippet', 'promotion', 'filterlink', 'flyer', 'video', 'businessinfo'];\r\nconst supportLevel = {\r\n account: [...supportAll, 'location', 'leadform'],\r\n campaign: [...supportAll, 'location', 'leadform'],\r\n adgroup: supportAll,\r\n};\r\n\r\nconst allowedCampaignTypes = (campaignType, permissions, overrideKeys, adGroupLevel) => {\r\n let keys = overrideKeys || [\r\n CampaignType.Default,\r\n CampaignType.Shopping,\r\n CampaignType.PerformanceMax,\r\n ];\r\n\r\n if (permissions.dynamic.UnifiedAppAds) {\r\n keys.push(CampaignType.App);\r\n }\r\n\r\n if (adGroupLevel) {\r\n keys = _.without(keys, CampaignType.PerformanceMax, CampaignType.App);\r\n }\r\n\r\n const result = _.some(keys, type => (type === campaignType) ||\r\n (type & campaignType)); // eslint-disable-line no-bitwise\r\n return result;\r\n};\r\n\r\nconst automatedExtensionsChildren = [\r\n {\r\n id: 'automated-extensions',\r\n name: _TL_('Automated extensions'),\r\n route: 'extensions/automated',\r\n campaignTypes,\r\n adGroupTypes,\r\n },\r\n {\r\n id: 'image-annoation',\r\n name: _TL_('Image annotation'),\r\n route: 'extensions/imageannotation',\r\n searchAlias: _TL_('Automated extension - Image annotation'),\r\n campaignTypes: [\r\n CampaignType.Default,\r\n CampaignType.DynamicSearchAds,\r\n ],\r\n adGroupTypes,\r\n },\r\n];\r\n\r\nconst extensionChildrens = [\r\n {\r\n id: 'action',\r\n name: _TL_('Action extension'),\r\n route: 'extensions/action',\r\n searchAlias: _TL_('Ad extension - Action'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'app',\r\n name: _TL_('App extension'),\r\n route: 'extensions/app',\r\n searchAlias: _TL_('Ad extension - App'),\r\n campaignTypes: (type, permissions) => allowedCampaignTypes(type, permissions, [\r\n CampaignType.Default,\r\n CampaignType.Shopping,\r\n CampaignType.PerformanceMax,\r\n ]),\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'call',\r\n name: _TL_('Call extension'),\r\n route: 'extensions/call',\r\n searchAlias: _TL_('Ad extension - Call'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'callout',\r\n name: _TL_('Callout extension'),\r\n route: 'extensions/callout',\r\n searchAlias: _TL_('Ad extension - Callout'),\r\n campaignTypes: (type, permissions) => allowedCampaignTypes(type, permissions, [\r\n CampaignType.Default,\r\n CampaignType.Shopping,\r\n CampaignType.Hotel,\r\n CampaignType.PerformanceMax,\r\n ]),\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'image',\r\n name: _TL_('Image extension'),\r\n route: 'extensions/image',\r\n searchAlias: _TL_('Ad extension - Image'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'location',\r\n name: _TL_('Location extension'),\r\n route: 'extensions/location',\r\n searchAlias: _TL_('Ad extension - Location'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'price',\r\n name: _TL_('Price extension'),\r\n route: 'extensions/price',\r\n searchAlias: _TL_('Ad extension - Price'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'review',\r\n name: _TL_('Review extension'),\r\n route: 'extensions/review',\r\n searchAlias: _TL_('Ad extension - Review'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'sitelink',\r\n name: _TL_('Sitelink extension'),\r\n route: 'extensions/sitelink',\r\n searchAlias: _TL_('Ad extension - Sitelink'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n }, {\r\n id: 'structuredsnippet',\r\n name: _TL_('Structured snippet extension'),\r\n route: 'extensions/structuredsnippet',\r\n searchAlias: _TL_('Ad extension - Structured snippet'),\r\n campaignTypes: allowedCampaignTypes,\r\n apexViewName,\r\n }, {\r\n id: 'promotion',\r\n name: _TL_('Promotion extension'),\r\n route: 'extensions/promotion',\r\n searchAlias: _TL_('Ad extension - Promotion'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n },\r\n {\r\n id: 'filterlink',\r\n name: _TL_('Filter link extension'),\r\n route: 'extensions/filterlink',\r\n searchAlias: _TL_('Ad extension - Filter'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n },\r\n {\r\n id: 'flyer',\r\n name: _TL_('Flyer extension'),\r\n route: 'extensions/flyer',\r\n searchAlias: _TL_('Ad extension - Flyer'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n },\r\n {\r\n id: 'video',\r\n name: _TL_('Video extension'),\r\n route: 'extensions/video',\r\n searchAlias: _TL_('Ad extension - Video'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n },\r\n {\r\n id: 'leadform',\r\n name: _TL_('Lead Form extension'),\r\n route: 'extensions/leadform',\r\n searchAlias: _TL_('Ad extension - Lead Form'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n },\r\n {\r\n id: 'businessinfo',\r\n name: _TL_('Business Info extension'),\r\n route: 'extensions/businessinfo',\r\n searchAlias: _TL_('Ad extension - Business Info Form'),\r\n campaignTypes: allowedCampaignTypes,\r\n adGroupTypes,\r\n apexViewName,\r\n },\r\n];\r\n\r\nconst extensionChildrensWithLevels = _.map(extensionChildrens, (child) => {\r\n const withLevel = [];\r\n _.each(supportLevel, (value, key) => {\r\n if (_.contains(value, child.id)) {\r\n let currentCampaignTypes = child.campaignTypes;\r\n\r\n // only for sitelink and callout we need hotel campaigns.\r\n if (key === 'adgroup' && (child.route !== 'extensions/sitelink' || child.route !== 'extensions/callout')) {\r\n currentCampaignTypes = (type, permissions) => allowedCampaignTypes(type, permissions, null, true);\r\n } else if (key === 'adgroup' && (child.route === 'extensions/sitelink' || child.route === 'extensions/callout')) {\r\n currentCampaignTypes = (type, permissions) => allowedCampaignTypes(type, permissions, [\r\n CampaignType.Default,\r\n CampaignType.Shopping,\r\n CampaignType.Hotel,\r\n CampaignType.PerformanceMax,\r\n ], true);\r\n }\r\n\r\n withLevel.push({\r\n id: `${child.id}-${key}`,\r\n name: _TL_(''), // global search duplicate names\r\n route: `${child.route}/association/${key}`,\r\n campaignTypes: currentCampaignTypes,\r\n apexViewName,\r\n });\r\n }\r\n });\r\n\r\n return withLevel;\r\n});\r\n\r\nexport const adsAndExtensions = {\r\n id: 'ads-and-extensions',\r\n name: _TL_('Ads & extensions'),\r\n campaignTypes: (type, permissions) => {\r\n if (type === CampaignType.App && !permissions.dynamic.UnifiedAppAds) {\r\n return false;\r\n }\r\n\r\n return type !== CampaignType.None;\r\n },\r\n children: [\r\n {\r\n id: 'ads',\r\n name: _TL_('Ads'),\r\n route: 'ads',\r\n shortcut: 'g+a',\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping, CampaignType.Audience,\r\n CampaignType.DynamicSearchAds, CampaignType.Smart, CampaignType.Hotel, CampaignType.LinkedIn],\r\n adGroupTypes,\r\n }, {\r\n id: 'assets-report',\r\n name: _TL_('Assets'),\r\n route: 'assets-report',\r\n checkPermission: permissions => !permissions.dynamic.RSAAssetCampaignAdgroupLevel && (permissions.dynamic.RSAAssets || permissions.IsRSAAssetsEnabled),\r\n scope: [Scope.Account],\r\n campaignTypes: [CampaignType.Default],\r\n }, {\r\n id: 'extensions',\r\n name: _TL_('Extensions'),\r\n route: 'extensions/sitelink',\r\n campaignTypes: (type, permissions) => allowedCampaignTypes(type, permissions, [\r\n CampaignType.Default,\r\n CampaignType.Shopping,\r\n CampaignType.Hotel,\r\n CampaignType.PerformanceMax,\r\n ]),\r\n adGroupTypes,\r\n children: _.flatten([extensionChildrens, extensionChildrensWithLevels]),\r\n shortcut: 'g+x',\r\n apexViewName,\r\n }, {\r\n id: 'automated-extensions',\r\n name: _TL_('Automated extensions'),\r\n route: 'extensions/automated',\r\n campaignTypes,\r\n adGroupTypes,\r\n children: automatedExtensionsChildren,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../shared';\r\n\r\n// The actual scope for assets page is ad scope. Correcting them in scopeV2\r\nScopeV2.add('Ad', 'adId', ScopeV2.AdGroup);\r\n\r\nexport const assets = {\r\n id: 'responsive-search-ad',\r\n name: _TL_('Responsive search ad'),\r\n scope: [Scope.AdGroup],\r\n scopeV2: [ScopeV2.AdGroup, ScopeV2.Ad],\r\n children: [\r\n {\r\n id: 'assets',\r\n name: _TL_('Assets'),\r\n route: 'assets',\r\n searchable: false,\r\n scope: [Scope.AdGroup],\r\n scopeV2: [ScopeV2.AdGroup, ScopeV2.Ad],\r\n }, {\r\n id: 'combinations',\r\n name: _TL_('Combinations'),\r\n route: 'combinations',\r\n searchable: false,\r\n scope: [Scope.AdGroup],\r\n scopeV2: [ScopeV2.AdGroup, ScopeV2.Ad],\r\n },\r\n ],\r\n};\r\n","import { CampaignType, AdGroupType } from '../shared';\r\n\r\nconst campaignTypes = [CampaignType.Default, CampaignType.Audience];\r\nconst adGroupTypes = [AdGroupType.SearchStandard, AdGroupType.SearchDynamic];\r\n\r\nexport const landingPages = {\r\n id: 'landing-pages',\r\n name: _TL_('Landing pages'),\r\n route: 'landingpages',\r\n campaignTypes,\r\n adGroupTypes,\r\n children: [\r\n {\r\n id: 'landing-pages',\r\n name: _TL_('Landing pages'),\r\n route: 'landingpages',\r\n campaignTypes,\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, AdGroupType } from '../shared';\r\n\r\nexport const dynamicAdTargets = {\r\n id: 'dsa',\r\n name: _TL_('Dynamic ad targets'),\r\n campaignTypes: (campaignType) => {\r\n const allowedCampaignTypes = [CampaignType.Default];\r\n\r\n const result = _.some(allowedCampaignTypes, type => (type === campaignType) ||\r\n (type & campaignType)); // eslint-disable-line no-bitwise\r\n return result;\r\n },\r\n adGroupTypes: [AdGroupType.SearchDynamic],\r\n currentCampaign: (campaign, permissions) => {\r\n const isDSAMixedModeCampaignEnabled = permissions.IsDSAMixedModeCampaignEnabled;\r\n if (!isDSAMixedModeCampaignEnabled) {\r\n return true;\r\n }\r\n\r\n return _.isEmpty(campaign) ||\r\n // if current campaign is search campaign with DSA settings added,\r\n // the dynamic ad targets pages should be available.\r\n (_.result(CampaignType, campaign.CampaignType) === CampaignType.Default &&\r\n _.some(campaign.CampaignSettings, CampaignSettings => _.has(CampaignSettings, 'DomainName')) && permissions.IsDSAMixedModeCampaignEnabled);\r\n },\r\n mixedModeAdGroup: (adgroup, _item, permissions) => {\r\n if (!permissions.IsDSAMixedModeCampaignEnabled) {\r\n return true;\r\n }\r\n\r\n if (_.isEmpty(adgroup)) {\r\n return true;\r\n }\r\n\r\n return adgroup.AdGroupType === 'SearchDynamic';\r\n },\r\n checkPermission: permissions => permissions.dynamic.DynamicSearchAdsV1 || permissions.IsDynamicSearchAdsV1Enabled,\r\n children: [\r\n {\r\n id: 'dsa',\r\n name: _TL_('Dynamic ad targets'),\r\n route: 'dynamicadtargets/targets',\r\n }, {\r\n id: 'negative-dsa',\r\n name: _TL_('Negative dynamic ad targets'),\r\n children: [\r\n {\r\n id: 'negative-dsa-campaign',\r\n name: _TL_('Negative dynamic ad targets'),\r\n route: 'dynamicadtargets/negative/campaign',\r\n }, {\r\n id: 'negative-dsa-adgroup',\r\n name: _TL_(''), // global search duplicate names\r\n route: 'dynamicadtargets/negative/adgroup',\r\n },\r\n ],\r\n }, {\r\n id: 'dsa-search-terms',\r\n name: _TL_('Search terms'),\r\n route: 'dynamicadtargets/searchterms',\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, Scope } from '../shared';\r\n\r\nexport const feedsItems = {\r\n id: 'feeds-items',\r\n name: _TL_('Feed items'),\r\n scope: [Scope.Campaign],\r\n campaignTypes: [CampaignType.Audience],\r\n currentCampaign:\r\n campaign => _.isEmpty(campaign)\r\n || (_.result(CampaignType, campaign.CampaignType) === CampaignType.Audience\r\n && campaign.CampaignSubType === 'AudienceDynamicFeedBased'\r\n && campaign.CampaignSettings.length > 0\r\n && (_.has(campaign.CampaignSettings[0], 'FeedId') ||\r\n _.has(campaign.CampaignSettings[0], 'ProviderId'))),\r\n children: [\r\n {\r\n id: 'feeds-items',\r\n name: _TL_('Feed items'),\r\n route: 'feeds/feeditems',\r\n checkPermission: permissions => permissions.IsEnabledForDynamicFeedCampaign,\r\n },\r\n ],\r\n};\r\n","import { CampaignType, AdGroupType, Scope } from '../shared';\r\n\r\nexport const keywords = {\r\n id: 'keywords',\r\n name: _TL_('Keywords'),\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n adGroupTypes: [AdGroupType.SearchStandard, AdGroupType.SearchDynamic],\r\n smartShoppingCampaignScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'keywords',\r\n name: _TL_('Keywords'),\r\n route: 'keywords',\r\n campaignTypes: [CampaignType.Default],\r\n shortcut: 'g+k',\r\n }, {\r\n id: 'negative-keywords',\r\n name: _TL_('Negative keywords'),\r\n route: 'negative-keywords',\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n adGroupTypes: [AdGroupType.SearchStandard, AdGroupType.SearchDynamic],\r\n }, {\r\n id: 'negative-keywords-lists',\r\n name: _TL_('Negative keywords lists'),\r\n route: 'negativekeywordslists',\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n adGroupTypes: [AdGroupType.SearchStandard, AdGroupType.SearchDynamic],\r\n }, {\r\n id: 'search-terms',\r\n name: _TL_('Search terms'),\r\n route: 'searchterms',\r\n exact: false,\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n }, {\r\n id: 'auction-insights',\r\n name: _TL_('Auction insights'),\r\n route: 'keywordsauction',\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n checkPermission: permissions => !permissions.IsHideAuctionInsightsCompetitionUI && !permissions.IsDomesticSimplifiedChineseEnabled,\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, Scope } from '../shared';\r\n\r\nexport const productGroups = {\r\n id: 'product-groups',\r\n name: _TL_('Product groups'),\r\n campaignTypes: (campaignType, permissions) =>\r\n // Show product groups for Shopping campaigns, All campaigns, and Audience campaigns if PAAIMConsolidation is enabled.\r\n _.some([CampaignType.Shopping], type => (type === campaignType) || (type & campaignType)) || // eslint-disable-line no-bitwise\r\n !!(_.get(permissions, ['dynamic', 'PAAIMConsolidation'], false) && campaignType === CampaignType.Audience),\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n currentCampaign: (campaign, permissions) => _.isEmpty(campaign) ||\r\n (_.result(CampaignType, campaign.CampaignType) === CampaignType.Shopping &&\r\n (_.get(permissions, ['dynamic', 'ShoppingCampaignsV2'], false) ||\r\n // For Microsoft Store Ads scenario\r\n !_.get(permissions, 'IsDomesticSimplifiedChineseEnabled', false) ||\r\n _.get(permissions, ['dynamic', 'WindowsStoreAdsCNExpansion'], false))) ||\r\n (_.get(permissions, ['dynamic', 'PAAIMConsolidation'], false) &&\r\n _.result(CampaignType, campaign.CampaignType) === CampaignType.Audience &&\r\n campaign.CampaignSubType === 'AudienceFeedBased'),\r\n children: [\r\n {\r\n id: 'product-groups',\r\n name: _TL_('Product groups'),\r\n route: 'productgroups/hierarchy',\r\n children: [\r\n {\r\n id: 'hierarchy',\r\n name: _TL_('Product groups'),\r\n route: 'productgroups/hierarchy',\r\n },\r\n {\r\n id: 'list',\r\n name: _TL_('List View'),\r\n route: 'productgroups/list',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { CampaignType, Scope } from '../shared';\r\n\r\nexport const hotelGroups = {\r\n id: 'hotel-groups',\r\n name: _TL_('Hotel groups'),\r\n campaignTypes: [CampaignType.Hotel],\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n checkPermission: permissions => (permissions.dynamic.HotelCampaign && !permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n children: [\r\n {\r\n id: 'hotel-groups',\r\n name: _TL_('Hotel groups'),\r\n route: 'hotelgroups/hierarchy',\r\n children: [\r\n {\r\n id: 'hierarchy',\r\n name: _TL_('Hotel groups'),\r\n route: 'hotelgroups/hierarchy',\r\n },\r\n {\r\n id: 'list',\r\n name: _TL_('List View'),\r\n route: 'hotelgroups/list',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nexport const propertyGroups = {\r\n id: 'property-groups',\r\n name: _TL_('Property groups'),\r\n campaignTypes: [CampaignType.Hotel],\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n checkPermission: permissions => (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n children: [\r\n {\r\n id: 'property-groups',\r\n name: _TL_('Property groups'),\r\n route: 'propertygroups/hierarchy',\r\n children: [\r\n {\r\n id: 'hierarchy',\r\n name: _TL_('Property groups'),\r\n route: 'propertygroups/hierarchy',\r\n },\r\n {\r\n id: 'list',\r\n name: _TL_('List View'),\r\n route: 'propertygroups/list',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { CampaignType, Scope } from '../shared';\r\n\r\nexport const hotels = {\r\n id: 'hotels',\r\n name: _TL_('Hotels'),\r\n campaignTypes: [CampaignType.Hotel],\r\n scope: [Scope.Campaign, Scope.AdGroup],\r\n checkPermission: permissions => (permissions.dynamic.HotelCampaign && !permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n children: [\r\n {\r\n id: 'hotels',\r\n name: _TL_('Hotels'),\r\n route: 'hotels',\r\n scope: [Scope.Campaign, Scope.AdGroup],\r\n },\r\n ],\r\n};\r\n\r\nexport const properties = {\r\n id: 'properties',\r\n name: _TL_('Properties'),\r\n campaignTypes: [CampaignType.Hotel],\r\n scope: [Scope.Campaign, Scope.AdGroup],\r\n checkPermission: permissions => (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n children: [\r\n {\r\n id: 'properties',\r\n name: _TL_('Properties'),\r\n route: 'properties',\r\n scope: [Scope.Campaign, Scope.AdGroup],\r\n },\r\n ],\r\n};\r\n","import { CampaignType, Scope, AdGroupType } from '../shared';\r\n\r\nconst adGroupTypes = [AdGroupType.SearchStandard, AdGroupType.SearchDynamic];\r\n\r\nexport const audiences = {\r\n id: 'audiences',\r\n name: _TL_('Audiences'),\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping, CampaignType.Audience,\r\n CampaignType.DynamicSearchAds, CampaignType.Smart, CampaignType.Hotel],\r\n adGroupTypes,\r\n smartShoppingCampaignScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'audiences',\r\n name: _TL_('Audiences'),\r\n route: 'audiences',\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, Scope, AdGroupType } from '../shared';\r\n\r\nconst adGroupTypes = [AdGroupType.SearchStandard, AdGroupType.SearchDynamic];\r\nconst shouldServeOnMSAN = campaignSettings => campaignSettings && campaignSettings[0] && campaignSettings[0].ShouldServeOnMSAN;\r\n\r\nconst demographicsChildrens = [\r\n {\r\n id: 'age',\r\n name: _TL_('Age'),\r\n route: 'demographics/age',\r\n }, {\r\n id: 'gender',\r\n name: _TL_('Gender'),\r\n route: 'demographics/gender',\r\n }, {\r\n id: 'company',\r\n name: _TL_('Company'),\r\n route: 'demographics/company',\r\n currentCampaign: campaign => _.isEmpty(campaign) ||\r\n shouldServeOnMSAN(campaign.CampaignSettings) ||\r\n (campaign.CampaignSubType !== 'DisplayAds' && campaign.CampaignSubType !== 'BrandAwarenessVideoAds'),\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n }, {\r\n id: 'industry',\r\n name: _TL_('Industry'),\r\n route: 'demographics/industry',\r\n currentCampaign: campaign => _.isEmpty(campaign) ||\r\n shouldServeOnMSAN(campaign.CampaignSettings) ||\r\n (campaign.CampaignSubType !== 'DisplayAds' && campaign.CampaignSubType !== 'BrandAwarenessVideoAds'),\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n }, {\r\n id: 'job-function',\r\n name: _TL_('Job function'),\r\n route: 'demographics/jobfunction',\r\n currentCampaign: campaign => _.isEmpty(campaign) ||\r\n shouldServeOnMSAN(campaign.CampaignSettings) ||\r\n (campaign.CampaignSubType !== 'DisplayAds' && campaign.CampaignSubType !== 'BrandAwarenessVideoAds'),\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n },\r\n];\r\n\r\nconst demographicsWithLevels = _.map(demographicsChildrens, child => ({\r\n id: child.id,\r\n name: child.name,\r\n currentCampaign: child.currentCampaign,\r\n checkPermission: child.checkPermission,\r\n children: [\r\n child,\r\n {\r\n id: `${child.id}-campaign`,\r\n name: child.name,\r\n route: `${child.route}/campaign`,\r\n apexViewName: child.route,\r\n checkPermission: permissions => permissions.dynamic.LinkedInTargeting,\r\n searchable: false,\r\n }, {\r\n id: `${child.id}-adgroup`,\r\n name: child.name,\r\n route: `${child.route}/adgroup`,\r\n apexViewName: child.route,\r\n searchable: false,\r\n currentCampaign: child.currentCampaign,\r\n },\r\n ],\r\n}));\r\n\r\nexport const demographics = {\r\n id: 'demographics',\r\n name: _TL_('Demographics'),\r\n smartShoppingCampaignScope: [Scope.Account],\r\n hotelCampaignScope: [],\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping, CampaignType.Audience,\r\n CampaignType.DynamicSearchAds, CampaignType.Smart, CampaignType.Hotel],\r\n adGroupTypes,\r\n checkPermission: permissions => permissions.dynamic.AIMCampaign ||\r\n permissions.dynamic.LinkedInTargeting,\r\n currentCampaign: (campaign, permissions) => permissions.dynamic.LinkedInTargeting ||\r\n _.isEmpty(campaign) || _.result(CampaignType, campaign.CampaignType) === CampaignType.Audience,\r\n children: demographicsWithLevels,\r\n};\r\n","import { alwaysDisplayed, Scope } from '../shared';\r\n\r\nexport const settings = {\r\n id: 'settings',\r\n name: _TL_('Settings'),\r\n campaignTypes: alwaysDisplayed,\r\n smartShoppingCampaignScope: [Scope.Account, Scope.Campaign],\r\n children: [\r\n {\r\n id: 'campaign-settings',\r\n name: _TL_('Campaign settings'),\r\n route: 'settings',\r\n scope: [Scope.Campaign],\r\n shortcut: 'g+s',\r\n }, {\r\n id: 'adgroup-settings',\r\n name: _TL_('Ad group settings'),\r\n route: 'settings',\r\n scope: [Scope.AdGroup],\r\n shortcut: 'g+s',\r\n }, {\r\n id: 'settings',\r\n name: _TL_('Campaign settings'),\r\n route: 'settings',\r\n scope: [Scope.Account],\r\n shortcut: 'g+s',\r\n }, {\r\n id: 'account-settings',\r\n name: _TL_('Account level options'),\r\n route: 'accountsettings',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, Scope } from '../shared';\r\n\r\nconst campaignTypes = [CampaignType.Default, CampaignType.Shopping, CampaignType.Audience,\r\n CampaignType.DynamicSearchAds, CampaignType.Smart, CampaignType.Hotel];\r\n\r\nexport const locations = {\r\n id: 'locations',\r\n name: _TL_('Locations'),\r\n campaignTypes: type => (type !== CampaignType.App) && (type !== CampaignType.None) && (type !== CampaignType.LinkedIn),\r\n smartShoppingCampaignScope: [Scope.Account, Scope.Campaign],\r\n hotelCampaignScope: [Scope.Account, Scope.Campaign],\r\n children: [\r\n {\r\n id: 'targeted',\r\n name: _TL_('Targeted'),\r\n children: [\r\n {\r\n id: 'targeted',\r\n name: _TL_('Targeted'),\r\n route: 'locations',\r\n },\r\n {\r\n id: 'targeted-campaign',\r\n name: _TL_('Targeted'),\r\n route: 'locations/campaign',\r\n searchable: false,\r\n },\r\n {\r\n id: 'targeted-adgroup',\r\n name: _TL_('Targeted'),\r\n route: 'locations/adgroup',\r\n searchable: false,\r\n },\r\n ],\r\n }, {\r\n id: 'excluded',\r\n name: _TL_('Excluded'),\r\n currentCampaign: (campaign, permissions) => {\r\n if (_.isEmpty(campaign)) {\r\n return true;\r\n }\r\n\r\n if (campaign.CampaignSubType === 'BrandAwarenessVideoAds' || campaign.CampaignSubType === 'DisplayAds') {\r\n if (!_.result(permissions, ['dynamic', 'XandrNegativeTarget'], false)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n children: [\r\n {\r\n id: 'excluded',\r\n name: _TL_('Excluded'),\r\n route: 'excluded',\r\n },\r\n {\r\n id: 'excluded-campaign',\r\n name: _TL_('Excluded'),\r\n route: 'excluded/campaign',\r\n searchable: false,\r\n },\r\n {\r\n id: 'excluded-adgroup',\r\n name: _TL_('Excluded'),\r\n route: 'excluded/adgroup',\r\n searchable: false,\r\n },\r\n ],\r\n }, {\r\n id: 'geographic-report',\r\n name: _TL_('Geographic report'),\r\n route: 'geographicreport',\r\n campaignTypes,\r\n }, {\r\n id: 'user-location-report',\r\n name: _TL_('User location report'),\r\n route: 'userlocationreport',\r\n campaignTypes,\r\n },\r\n ],\r\n};\r\n","import { CampaignType, AdGroupType, Scope } from '../shared';\r\n\r\nconst campaignTypes = [CampaignType.Default, CampaignType.Shopping, CampaignType.Audience,\r\n CampaignType.DynamicSearchAds, CampaignType.Smart, CampaignType.Hotel];\r\nconst adGroupTypes = [AdGroupType.SearchStandard, AdGroupType.SearchDynamic];\r\n\r\nexport const adSchedule = {\r\n id: 'ad-schedule',\r\n name: _TL_('Ad schedule'),\r\n campaignTypes,\r\n adGroupTypes,\r\n smartShoppingCampaignScope: [Scope.Account, Scope.Campaign],\r\n hotelCampaignScope: [Scope.Account, Scope.Campaign],\r\n children: [\r\n {\r\n id: 'ad-schedule',\r\n name: _TL_('Ad schedule'),\r\n children: [\r\n {\r\n id: 'ad-schedule',\r\n name: _TL_('Ad schedule'),\r\n route: 'adschedule',\r\n },\r\n {\r\n id: 'ad-schedule-campaign',\r\n name: _TL_('Ad schedule'),\r\n route: 'adschedule/campaign',\r\n searchable: false,\r\n },\r\n {\r\n id: 'ad-schedule-adgroup',\r\n name: _TL_('Ad schedule'),\r\n route: 'adschedule/adgroup',\r\n searchable: false,\r\n },\r\n ],\r\n }, {\r\n id: 'adschedule-day',\r\n name: _TL_('Day'),\r\n route: 'adscheduleday',\r\n }, {\r\n id: 'adschedule-hour',\r\n name: _TL_('Hour'),\r\n route: 'adschedulehour',\r\n }, {\r\n id: 'adschedule-date',\r\n name: _TL_('Date'),\r\n route: 'adscheduledate',\r\n }, {\r\n id: 'adschedule-week',\r\n name: _TL_('Week'),\r\n route: 'adscheduleweek',\r\n }, {\r\n id: 'adschedule-month',\r\n name: _TL_('Month'),\r\n route: 'adschedulemonth',\r\n }, {\r\n id: 'adschedule-quarter',\r\n name: _TL_('Quarter'),\r\n route: 'adschedulequarter',\r\n }, {\r\n id: 'adschedule-year',\r\n name: _TL_('Year'),\r\n route: 'adscheduleyear',\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, AdGroupType, Scope } from '../shared';\r\n\r\nconst campaignTypes = [CampaignType.Default, CampaignType.Shopping, CampaignType.Audience,\r\n CampaignType.DynamicSearchAds, CampaignType.Smart, CampaignType.Hotel];\r\nconst adGroupTypes = [AdGroupType.SearchStandard, AdGroupType.SearchDynamic];\r\n\r\nexport const MS_STORE_PROVIDER_ID_MAP = {\r\n SI: [10624440, 5104030, 5353239],\r\n PROD: [182978],\r\n CI: [108],\r\n};\r\n\r\nexport function getMSStoreIdByEnv(url) {\r\n if (url.includes('redmond.corp.microsoft.com')) {\r\n return MS_STORE_PROVIDER_ID_MAP.CI;\r\n }\r\n if (url.includes('ads-int.microsoft.com') || url.includes('si.bingads.microsoft.com')) {\r\n return MS_STORE_PROVIDER_ID_MAP.SI;\r\n }\r\n return MS_STORE_PROVIDER_ID_MAP.PROD;\r\n}\r\n\r\n\r\nexport const devices = {\r\n id: 'devices',\r\n name: _TL_('Devices'),\r\n campaignTypes,\r\n adGroupTypes,\r\n smartShoppingCampaignScope: [Scope.Account],\r\n currentCampaign: (campaign) => {\r\n if (campaign == null) {\r\n return true;\r\n }\r\n\r\n const msStoreIds = getMSStoreIdByEnv(window.location.href);\r\n const providerId = _.chain(campaign).result('CampaignSettings').result('0').result('ProviderId')\r\n .value();\r\n const result = !msStoreIds.some(id => String(id) === String(providerId));\r\n return result;\r\n },\r\n children: [\r\n {\r\n id: 'devices',\r\n name: _TL_('Devices'),\r\n children: [\r\n {\r\n id: 'devices',\r\n name: _TL_('Devices'),\r\n route: 'devices',\r\n },\r\n {\r\n id: 'devices-campaign',\r\n name: _TL_('Devices'),\r\n route: 'devices/campaign',\r\n searchable: false,\r\n },\r\n {\r\n id: 'devices-adgroup',\r\n name: _TL_('Devices'),\r\n route: 'devices/adgroup',\r\n searchable: false,\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { alwaysDisplayed, CampaignType } from '../shared';\r\n\r\nexport const changeHistory = {\r\n id: 'change-history',\r\n name: _TL_('Change history'),\r\n campaignTypes: (type, permissions) => {\r\n if (type === CampaignType.App) {\r\n return permissions.dynamic.UnifiedAppAds;\r\n }\r\n\r\n return true;\r\n },\r\n children: [\r\n {\r\n id: 'change-history',\r\n name: _TL_('Change history'),\r\n route: 'changehistory',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, ScopeV2 } from '../shared';\r\n\r\nScopeV2.add('RecSrc', 'recsrc', ScopeV2.Account);\r\nScopeV2.add('RecSrc', 'recsrc', ScopeV2.Campaign);\r\nScopeV2.add('RecSrc', 'recsrc', ScopeV2.AdGroup);\r\n\r\nconst scopeV2 = [ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup, ScopeV2.RecSrc];\r\n\r\nexport const competition = {\r\n id: 'competition',\r\n name: _TL_('Competition'),\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n checkPermission: permissions => !permissions.IsHideAuctionInsightsCompetitionUI && (!permissions.IsDomesticSimplifiedChineseEnabled || (permissions.IsDomesticSimplifiedChineseEnabled && _.get(permissions, ['dynamic', 'AuctionInsightForCN'], false))),\r\n scopeV2,\r\n children: [\r\n {\r\n id: 'auction-insights',\r\n name: _TL_('Auction insights'),\r\n route: 'competitionauction',\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n scopeV2,\r\n }, {\r\n id: 'competition-recommendations',\r\n name: _TL_('Deeper insights and actions'),\r\n route: 'competitionrecommendations',\r\n campaignTypes: [CampaignType.Default, CampaignType.Shopping],\r\n scopeV2,\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignType, Scope } from '../shared';\r\n\r\nconst isExperiment = campaign => campaign && campaign.ExperimentId > 0;\r\nconst isSearchCampaignWithDSASettings = (campaign, permissions) => {\r\n const isDSAMixedModeCampaignEnabled = _.result(permissions, 'IsDSAMixedModeCampaignEnabled', false);\r\n if (!isDSAMixedModeCampaignEnabled) {\r\n return false;\r\n }\r\n\r\n const domainName = _.chain(campaign)\r\n .result('CampaignSettings')\r\n .result('0')\r\n .result('DomainName')\r\n .value();\r\n\r\n if (domainName) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const experiments = {\r\n id: 'experiments',\r\n name: _TL_('Experiments'),\r\n scope: [Scope.Account, Scope.Campaign],\r\n campaignTypes: [CampaignType.Default],\r\n currentCampaign: (campaign, permissions) =>\r\n (_.isEmpty(campaign) || !isExperiment(campaign)) &&\r\n !isSearchCampaignWithDSASettings(campaign, permissions),\r\n children: [\r\n {\r\n id: 'experiments',\r\n name: _TL_('Experiments'),\r\n route: 'experiments',\r\n scope: [Scope.Account, Scope.Campaign],\r\n },\r\n ],\r\n};\r\n","import { alwaysDisplayed } from '../shared';\r\n\r\nexport const smartCampaigns = {\r\n id: 'smart-campaigns',\r\n name: _TL_('Smart Campaigns'),\r\n campaignTypes: alwaysDisplayed,\r\n isSmartPage: true,\r\n children: [\r\n {\r\n id: 'smart-campaigns',\r\n name: _TL_('Smart Campaigns'),\r\n route: 'smartcampaigns',\r\n campaignTypes: alwaysDisplayed,\r\n isSmartPage: true,\r\n },\r\n ],\r\n};\r\n","import { CampaignType, Scope } from '../shared';\r\n\r\nexport const queryInsights = {\r\n id: 'query-insights',\r\n name: _TL_('Search insights'),\r\n checkPermission: permissions => permissions.IsQueryInsightsEnabled,\r\n campaignTypes: [CampaignType.Default],\r\n scope: [Scope.Account],\r\n showTag: {\r\n text: _TL_('New'),\r\n expDate: new Date('2022/12/31'),\r\n },\r\n children: [\r\n {\r\n id: 'account-optimization',\r\n name: _TL_('Account optimization'),\r\n route: 'accountoptimization',\r\n checkPermission: permissions => permissions.IsQueryInsightsEnabled,\r\n campaignTypes: [CampaignType.Default],\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'new-opportunities',\r\n name: _TL_('New opportunities'),\r\n route: 'newopportunities',\r\n checkPermission: permissions => permissions.IsQueryInsightsEnabled,\r\n campaignTypes: [CampaignType.Default],\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","import { CampaignType, Scope } from '../shared';\r\n\r\nexport const assetGroups = {\r\n id: 'asset-groups',\r\n name: _TL_('Asset groups'),\r\n campaignTypes: [CampaignType.PerformanceMax],\r\n scope: [Scope.Campaign],\r\n checkPermission: permissions => permissions.dynamic.PerformanceMaxCampaigns,\r\n children: [\r\n {\r\n id: 'asset-groups',\r\n name: _TL_('Asset groups'),\r\n route: 'assetgroups',\r\n scope: [Scope.Campaign],\r\n checkPermission: permissions => permissions.dynamic.PerformanceMaxCampaigns,\r\n },\r\n ],\r\n};\r\n\r\nexport const appAdsAssetGroups = {\r\n id: 'appads-asset-groups',\r\n name: _TL_('Asset groups'),\r\n scope: [Scope.Campaign],\r\n campaignTypes: [CampaignType.App],\r\n checkPermission: permissions => permissions.dynamic.AppAdsCampaignPhaseOne || permissions.dynamic.UnifiedAppAds,\r\n children: [\r\n {\r\n id: 'appads-asset-groups',\r\n name: _TL_('Asset groups'),\r\n route: 'appadsassetgroups',\r\n scope: [Scope.Campaign],\r\n checkPermission: permissions => permissions.dynamic.AppAdsCampaignPhaseOne || permissions.dynamic.UnifiedAppAds,\r\n },\r\n ],\r\n};\r\n\r\nexport const unifiedAppAdsAssetGroups = {\r\n id: 'unified-appads-asset-groups',\r\n name: _TL_('Asset groups'),\r\n scope: [Scope.Campaign],\r\n campaignTypes: [CampaignType.App],\r\n checkPermission: permissions => permissions.dynamic.UnifiedAppAds,\r\n children: [\r\n {\r\n id: 'unified-appads-asset-groups',\r\n name: _TL_('Asset groups'),\r\n route: 'unifiedappadsassetgroups',\r\n scope: [Scope.Campaign],\r\n checkPermission: permissions => permissions.dynamic.UnifiedAppAds,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2, CampaignType } from '../shared';\r\n\r\nScopeV2.add('AssetGroup', 'assetGroupId', ScopeV2.Campaign);\r\n\r\nexport const listingGroups = {\r\n id: 'listing-groups',\r\n name: _TL_('Listing groups'),\r\n campaignTypes: [CampaignType.PerformanceMax],\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n checkPermission: permissions => permissions.dynamic.PerformanceMaxCampaigns,\r\n children: [\r\n {\r\n id: 'listing-groups',\r\n name: _TL_('Listing groups'),\r\n route: 'listinggroups/list',\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n children: [\r\n {\r\n id: 'hierarchy',\r\n name: _TL_('Listing groups'),\r\n route: 'listinggroups/hierarchy',\r\n },\r\n {\r\n id: 'list',\r\n name: _TL_('List View'),\r\n route: 'listinggroups/list',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","/* istanbul ignore file */\r\nimport { CampaignType, Scope, AdGroupType } from '../shared';\r\n\r\nexport const assetsReport = {\r\n id: 'assets-report',\r\n name: _TL_('Assets'),\r\n campaignTypes: (type, permissions) => {\r\n if (type === CampaignType.Default) {\r\n return permissions.dynamic.RSAAssetCampaignAdgroupLevel;\r\n } else if (type === CampaignType.Audience) {\r\n return permissions.dynamic.AudienceAssetReport;\r\n } else if (type === CampaignType.PerformanceMax) {\r\n return permissions.dynamic.AssetGridForPmaxCampaign;\r\n } else if (type === CampaignType.All) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n adGroupTypes: [AdGroupType.SearchStandard, AdGroupType.SearchDynamic],\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n checkPermission: permissions => permissions.dynamic.RSAAssetCampaignAdgroupLevel || permissions.dynamic.AudienceAssetReport,\r\n children: [\r\n {\r\n id: 'assets-report',\r\n name: _TL_('Assets'),\r\n route: 'assets-report',\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { Scope } from '../shared';\r\nimport { planning } from './planning';\r\nimport { sharedLibrary } from './shared-library/index';\r\nimport { bulkActions } from './bulk-actions';\r\nimport { conversionTracking } from './conversion-tracking';\r\nimport { setup } from './setup/index';\r\nimport { mobileApp } from './app';\r\n\r\nconst toolsPages = [\r\n planning,\r\n ...sharedLibrary,\r\n bulkActions,\r\n ...conversionTracking,\r\n ...setup,\r\n];\r\n\r\nconst flatSharedLibrary = {\r\n id: 'shared-library',\r\n name: _TL_('Shared Library'),\r\n oldUIScope: [Scope.Account],\r\n};\r\nflatSharedLibrary.children = sharedLibrary;\r\n\r\nconst flatSetup = {\r\n id: 'setup',\r\n name: _TL_('Setup'),\r\n oldUIScope: [Scope.Account],\r\n};\r\nflatSetup.children = _.flatten(_.map(setup, value => value.children[0]));\r\n\r\nconst flatConversionTracking = {\r\n id: 'conversion-tracking',\r\n name: _TL_('Conversion tracking'),\r\n oldUIScope: [Scope.Account],\r\n children: _.flatten(_.map(\r\n conversionTracking,\r\n value => value.children[0]\r\n )),\r\n};\r\n\r\nconst flatToolsPages = [\r\n planning,\r\n flatSharedLibrary,\r\n bulkActions,\r\n flatConversionTracking,\r\n flatSetup,\r\n];\r\n\r\nconst flatSmartToolsPages = [\r\n flatSetup,\r\n mobileApp,\r\n];\r\n\r\nconst flatSetupPages = [\r\n flatSetup,\r\n];\r\n\r\nexport { flatToolsPages, flatSmartToolsPages, toolsPages, flatSetupPages };\r\n","import { Scope } from '../shared';\r\n\r\nexport const audiencePlanner = {\r\n id: 'audience-planner',\r\n name: _TL_('Audience planner'),\r\n route: 'audienceplanner',\r\n checkPermission: permissions => permissions.dynamic.AIMCampaign,\r\n};\r\n\r\nexport const keywordPlanner = {\r\n id: 'keyword-planner',\r\n name: _TL_('Keyword planner'),\r\n route: 'keywordplanner',\r\n showTag: {\r\n text: _TL_('BETA'),\r\n expDate: new Date('2023/03/31'),\r\n },\r\n tagClass: 'blueTag',\r\n};\r\n\r\nexport const adPreview = {\r\n id: 'ad-preview',\r\n name: _TL_('Ad preview & diagnostics'),\r\n route: 'adpreview',\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n};\r\n\r\nexport const planning = {\r\n id: 'planning',\r\n name: _TL_('Planning'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n keywordPlanner, {\r\n id: 'bid-strategies',\r\n name: _TL_('Bid strategies'),\r\n route: 'bidstrategies',\r\n showTag: _TL_('New'),\r\n },\r\n adPreview,\r\n audiencePlanner,\r\n ],\r\n};\r\n","import { audiencesLibraryPages } from './audiences-library';\r\nimport { businessLocationFeedPages } from './business-location-feed';\r\nimport { ProductFeedPage, SponsoredProductsPage, MicrosoftStoreAdsPageGA } from './product-feed';\r\nimport { labelsPage } from './labels';\r\nimport { negativeKeywordListsLibraryPage } from './negative-keyword-lists-library';\r\nimport { performanceTargetsPage } from './performance-targets';\r\nimport { siteExclusionListsAccountLevelViewListsPage } from './site-exclusion-lists-account-level-view-lists';\r\nimport { siteExclusionListsCustomerLevelCreateListsPage } from './site-exclusion-lists-customer-level-create-lists';\r\nimport { contentExclusionAccountLevelPage } from './content-exclusion-account-level';\r\nimport { sharedBudgetsPage } from './shared-budgets';\r\nimport { portfolioBidStrategyPage } from './portfolio-bid-strategy';\r\nimport { seasonalityAdjustmentPage } from './seasonality-adjustment';\r\nimport { creativeStudioAssetLibraryPage } from './creative-studio-asset-library';\r\nimport { brandListsPage } from './brand-lists';\r\nimport { adStudioPage } from './ad-studio';\r\nimport { liftMeasurement } from './lift-measurement';\r\n\r\nexport const sharedLibrary = [\r\n creativeStudioAssetLibraryPage,\r\n ProductFeedPage,\r\n SponsoredProductsPage,\r\n MicrosoftStoreAdsPageGA,\r\n audiencesLibraryPages,\r\n businessLocationFeedPages,\r\n labelsPage,\r\n negativeKeywordListsLibraryPage,\r\n performanceTargetsPage,\r\n siteExclusionListsAccountLevelViewListsPage,\r\n siteExclusionListsCustomerLevelCreateListsPage,\r\n contentExclusionAccountLevelPage,\r\n brandListsPage,\r\n sharedBudgetsPage,\r\n portfolioBidStrategyPage,\r\n seasonalityAdjustmentPage,\r\n adStudioPage,\r\n liftMeasurement,\r\n];\r\n","import { Scope, ScopeV2 } from '../../shared';\r\n\r\nconst scope = [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup];\r\n\r\nconst scopeV2 = [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup];\r\n\r\nexport const audiencesLibraryPages = {\r\n id: 'audiences-library',\r\n name: _TL_('Audience library'),\r\n oldUIScope: [Scope.Customer, Scope.Account],\r\n scope,\r\n scopeV2,\r\n children: [\r\n {\r\n id: 'audiences-library',\r\n name: _TL_('Audience library'),\r\n route: 'audienceslibrary',\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n scopeV2: [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup],\r\n },\r\n {\r\n id: 'audience-signals',\r\n name: _TL_('Audience signals'),\r\n route: 'audiencesignals',\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n scopeV2: [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup],\r\n },\r\n {\r\n id: 'audience-custom-segments',\r\n name: _TL_('Custom segments'),\r\n route: 'audiencecustomsegments',\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n scopeV2: [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup],\r\n checkPermission: permissions => permissions.dynamic.CustomSegmentsEditorialIntegration,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const businessLocationFeed = [\r\n {\r\n id: 'business-location-feed',\r\n name: _TL_('Business location feed'),\r\n route: 'businesslocationfeed',\r\n checkPermission: permissions => permissions.dynamic.GoogleMyBusinessImport ||\r\n permissions.dynamic.LocalInventoryAd,\r\n },\r\n];\r\n\r\nexport const businessLocationFeedPages = {\r\n id: 'business-location-feed',\r\n name: _TL_('Business location feed'),\r\n oldUIScope: [Scope.Account],\r\n children: businessLocationFeed,\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\n\r\nexport const ProductFeedPage = {\r\n id: 'product-feed',\r\n name: _TL_('Product feeds'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'product-feed',\r\n name: _TL_('Product feeds'),\r\n route: 'productfeed',\r\n checkPermission: permissions => permissions.dynamic.CoOpCampaign &&\r\n !permissions.dynamic.SponsoredProductAdsV2,\r\n }, {\r\n id: 'linked-store',\r\n name: _TL_('Linked stores'),\r\n route: 'linkedstore',\r\n checkPermission: permissions => permissions.dynamic.CoOpCampaign &&\r\n !permissions.dynamic.SponsoredProductAdsV2,\r\n },\r\n ],\r\n};\r\n\r\nexport const SponsoredProductsPage = {\r\n id: 'sponsored-products',\r\n name: _TL_('Shopping for brands'),\r\n oldUIScope: [Scope.Account],\r\n route: 'feedsummary',\r\n checkPermission: permissions => permissions.dynamic.SponsoredProductAdsV2,\r\n children: [\r\n {\r\n id: 'feed-summary',\r\n name: _TL_('Overview'),\r\n route: 'feedsummary',\r\n checkPermission: permissions => permissions.dynamic.SponsoredProductAdsV2,\r\n },\r\n ],\r\n};\r\n\r\nexport const MicrosoftStoreAdsPageGA = {\r\n id: 'ms-store-ads',\r\n name: _TL_('Microsoft Store Ads'),\r\n scope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'ms-store-ads-seller-ids',\r\n name: _TL_('Microsoft Store Ads'),\r\n route: 'msstoreads',\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../../shared';\r\n\r\nexport const labelsPage = {\r\n id: 'labels',\r\n name: _TL_('Labels'),\r\n scope: permissions => (permissions.IsAccountLabelsEnabled ?\r\n [Scope.Account, Scope.Customer] : [Scope.Account]),\r\n scopeV2: permissions => (permissions.IsAccountLabelsEnabled ?\r\n [ScopeV2.Account, ScopeV2.Customer] : [ScopeV2.Account]),\r\n children: [\r\n {\r\n id: 'labels',\r\n name: _TL_('Labels'),\r\n route: 'labels',\r\n checkPermission: permissions => !permissions.IsAccountLabelsEnabled,\r\n scope: [Scope.Account],\r\n }, {\r\n id: 'labels',\r\n name: _TL_('Labels'),\r\n route: 'labels',\r\n checkPermission: permissions => permissions.IsAccountLabelsEnabled,\r\n scope: [Scope.Customer, Scope.Account],\r\n },\r\n {\r\n id: 'labels-report',\r\n name: _TL_('Labels report'),\r\n scope: permissions => (permissions.IsAccountLabelsEnabled ?\r\n [Scope.Account, Scope.Customer] : [Scope.Account]),\r\n scopeV2: permissions => (permissions.IsAccountLabelsEnabled ?\r\n [ScopeV2.Account, ScopeV2.Customer] : [ScopeV2.Account]),\r\n children: [\r\n {\r\n id: 'labels-campaigns',\r\n name: _TL_('Campaigns'),\r\n route: 'labelscampaign',\r\n ariaDescription: _TL_('Labels report by campaigns'),\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'labels-ad-groups',\r\n name: _TL_('Ad groups'),\r\n route: 'labelsadgroup',\r\n ariaDescription: _TL_('Labels report by ad groups'),\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'labels-keywords',\r\n name: _TL_('Keywords'),\r\n route: 'labelskeyword',\r\n ariaDescription: _TL_('Labels report by keywords'),\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'labels-ads',\r\n name: _TL_('Ads'),\r\n route: 'labelsad',\r\n ariaDescription: _TL_('Labels report by ads'),\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'labels-account',\r\n name: _TL_('Accounts'),\r\n route: 'labelsaccount',\r\n ariaDescription: _TL_('Labels report by accounts'),\r\n checkPermission: permissions => permissions.IsAccountLabelsEnabled,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const negativeKeyword = {\r\n id: 'negative-keyword-lists-library',\r\n name: _TL_('Negative keyword lists'),\r\n route: 'negativekeywordlistslibrary',\r\n scope: [Scope.Account],\r\n};\r\n\r\nexport const negativeKeywordListsLibraryPage = {\r\n id: 'negative-keyword-lists-library',\r\n name: _TL_('Negative keyword lists'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n negativeKeyword,\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const performanceTargets = {\r\n id: 'performance-targets',\r\n name: _TL_('Performance Targets'),\r\n route: 'performancetargets',\r\n scope: [Scope.Account],\r\n};\r\n\r\nexport const performanceTargetsPage = {\r\n id: 'performance-targets',\r\n name: _TL_('Performance targets'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n performanceTargets,\r\n ],\r\n};\r\n","import { defaultScopes } from '../../shared';\r\n\r\nexport const siteExclusionViewLists = {\r\n id: 'site-exclusion-lists-entrypoint',\r\n name: _TL_('Website exclusion lists'),\r\n scope: defaultScopes,\r\n route: 'siteexclusionlists/viewlists',\r\n checkPermission: permissions => permissions.dynamic && permissions.dynamic.ManagerAccountSharedWebsiteExclusions && !(permissions.dynamic.BrandSafety || permissions.dynamic.BrandSafetyWithUnscored),\r\n searchAlias: _TL_('View website exclusion lists'),\r\n};\r\n\r\nexport const siteExclusionViewListsBrandSafety = {\r\n id: 'site-exclusion-lists-entrypoint',\r\n name: _TL_('Content suitability'),\r\n scope: defaultScopes,\r\n route: 'siteexclusionlists/viewlists',\r\n checkPermission: permissions => permissions.dynamic && permissions.dynamic.ManagerAccountSharedWebsiteExclusions && (permissions.dynamic.BrandSafety || permissions.dynamic.BrandSafetyWithUnscored),\r\n searchAlias: _TL_('View website exclusion lists'),\r\n};\r\n\r\nexport const siteExclusionListsAccountLevelViewListsPage = {\r\n id: 'site-exclusion-lists-entrypoint',\r\n name: _TL_('Website exclusion lists'),\r\n // Allows entry to account-level SEL view lists page from tools menu unless if at customer scope\r\n scope: defaultScopes,\r\n children: [\r\n siteExclusionViewLists,\r\n siteExclusionViewListsBrandSafety,\r\n {\r\n id: 'site-exclusion-list-account-level-exclusions',\r\n name: _TL_('Website exclusion lists'),\r\n scope: defaultScopes,\r\n route: 'siteexclusionlists/viewexclusions',\r\n checkPermission: permissions => permissions.dynamic.ManagerAccountSharedWebsiteExclusions,\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const siteExclusionListCreate = {\r\n id: 'site-exclusion-lists-entrypoint',\r\n name: _TL_('Website exclusion lists'),\r\n scope: [Scope.Customer],\r\n route: 'siteexclusionlists/create',\r\n // CustomerHierarchy is needed for the multi-account-selector used in this page.\r\n checkPermission: permissions => permissions.dynamic && permissions.dynamic.ManagerAccountSharedWebsiteExclusions && !(permissions.dynamic.BrandSafety || permissions.dynamic.BrandSafetyWithUnscored),\r\n searchAlias: _TL_('Create website exclusion lists'),\r\n};\r\n\r\nexport const siteExclusionListCreateBrandSafety = {\r\n id: 'site-exclusion-lists-entrypoint',\r\n name: _TL_('Content suitability'),\r\n scope: [Scope.Customer],\r\n route: 'siteexclusionlists/create',\r\n // CustomerHierarchy is needed for the multi-account-selector used in this page.\r\n checkPermission: permissions => permissions.dynamic && permissions.dynamic.ManagerAccountSharedWebsiteExclusions && (permissions.dynamic.BrandSafety || permissions.dynamic.BrandSafetyWithUnscored),\r\n searchAlias: _TL_('Create website exclusion lists'),\r\n};\r\n\r\nexport const siteExclusionListsCustomerLevelCreateListsPage = {\r\n id: 'site-exclusion-lists-entrypoint',\r\n name: _TL_('Website exclusion lists'),\r\n // Enforce customer-level scope when routing to customer-level SiteExclusionLists pages\r\n scope: [Scope.Customer],\r\n children: [\r\n siteExclusionListCreate,\r\n siteExclusionListCreateBrandSafety,\r\n {\r\n id: 'site-exclusion-list-customer-edit',\r\n name: _TL_('Website exclusion lists'),\r\n scope: [Scope.Customer],\r\n route: 'siteexclusionlists/edit',\r\n // CustomerHierarchy is needed for the multi-account-selector used in this page.\r\n checkPermission: permissions => permissions.dynamic.ManagerAccountSharedWebsiteExclusions,\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { defaultScopes } from '../../shared';\r\n\r\nconst contentExclusion = {\r\n id: 'content-exclusion-entrypoint',\r\n name: _TL_('Content suitability'),\r\n scope: defaultScopes,\r\n route: 'contentexclusion/brandsafety',\r\n checkPermission: permissions => permissions.dynamic && (permissions.dynamic.BrandSafety || permissions.dynamic.BrandSafetyWithUnscored),\r\n searchAlias: _TL_('content exclusion'),\r\n};\r\n\r\nexport const contentExclusionAccountLevelPage = {\r\n id: 'content-exclusion-entrypoint',\r\n name: _TL_('Content exclusions'),\r\n scope: defaultScopes,\r\n checkPermission: permissions => permissions.dynamic && (permissions.dynamic.BrandSafety || permissions.dynamic.BrandSafetyWithUnscored),\r\n children: [\r\n contentExclusion,\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const sharedBudgetsPage = {\r\n id: 'shared-budgets',\r\n name: _TL_('Shared budgets'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'shared-budgets',\r\n name: _TL_('Shared budgets'),\r\n route: 'sharedbudgets',\r\n },\r\n ],\r\n};\r\n","\r\nexport const portfolioBid = {\r\n id: 'portfolio-bid-strategy',\r\n name: _TL_('Portfolio bid strategies'), // Show in summary bar and page title\r\n route: 'portfoliobidstrategy',\r\n checkPermission: permissions =>\r\n permissions.dynamic.PortfolioBidStrategy\r\n // `false`, because DataExclusion feature is already GAed, this page has been moved to another place\r\n && false,\r\n};\r\n\r\nexport const portfolioBidStrategyPage = {\r\n id: 'portfolio-bid-strategy',\r\n name: _TL_('Portfolio bid strategies'), // Show in tools menu\r\n children: [\r\n portfolioBid,\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const seasonalityAdjustment = {\r\n id: 'seasonality-adjustment',\r\n name: _TL_('Seasonality adjustment'),\r\n route: 'seasonalityadjustment',\r\n checkPermission: permissions =>\r\n permissions.dynamic.SeasonalityAdjustment\r\n // `false`, because DataExclusion feature is already GAed, this page has been moved to another place\r\n && false,\r\n};\r\n\r\nexport const seasonalityAdjustmentPage = {\r\n id: 'seasonality-adjustment',\r\n name: _TL_('Seasonality adjustment'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n seasonalityAdjustment,\r\n ],\r\n};\r\n\r\n","import { Scope } from '../../shared';\r\n\r\n\r\nexport const assetsPage = {\r\n id: 'creative-studio-asset-library',\r\n name: _TL_('Assets'),\r\n route: 'assetlibrary',\r\n scope: [Scope.Account],\r\n};\r\n\r\nexport const performancePage = {\r\n id: 'creative-studio-asset-library-performance',\r\n name: _TL_('Performance'),\r\n route: 'assetlibrary/performance',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.AssetLibraryV4,\r\n};\r\n\r\nexport const creativeStudioAssetLibraryPage = {\r\n id: 'creative-studio-asset-library',\r\n name: _TL_('Asset Library'),\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Account],\r\n route: 'assetlibrary',\r\n children: [\r\n // images\r\n assetsPage,\r\n {\r\n id: 'creative-studio-asset-library-image-add-folder',\r\n name: _TL_('Add images folder'),\r\n route: 'assetlibrary/image/addfolder',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n checkPermission: permissions => !(permissions.dynamic.AssetLibraryV3EnableVideoUpload),\r\n },\r\n {\r\n id: 'creative-studio-asset-library-image-add',\r\n name: _TL_('Add images'),\r\n route: 'assetlibrary/image/add',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n },\r\n {\r\n id: 'creative-studio-asset-library-image-aigc',\r\n name: _TL_('AIGC'),\r\n route: 'assetlibrary/image/aigenerate',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.AssetLibraryAIGCMVP,\r\n },\r\n {\r\n id: 'creative-studio-asset-library-image-details',\r\n name: _TL_('Asset library images'),\r\n route: 'assetlibrary/image/:imageId',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n },\r\n {\r\n id: 'creative-studio-asset-library-image-edit',\r\n name: _TL_('Edit image'),\r\n route: 'assetlibrary/image/:imageId/edit',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n },\r\n // videos\r\n {\r\n id: 'creative-studio-asset-library-video-add',\r\n name: _TL_('Add videos'),\r\n route: 'assetlibrary/video/add',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n checkPermission: permissions => permissions.dynamic.AssetLibraryV3EnableVideoUpload,\r\n searchable: false,\r\n },\r\n {\r\n id: 'creative-studio-asset-library-video-details',\r\n name: _TL_('Asset library videos'),\r\n route: 'assetlibrary/video/:videoId',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n },\r\n // mix assets\r\n {\r\n id: 'creative-studio-asset-library-add-folder',\r\n name: _TL_('Add assets folder'),\r\n route: 'assetlibrary/addfolder',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.AssetLibraryV3EnableVideoUpload,\r\n },\r\n {\r\n id: 'creative-studio-asset-library-add',\r\n name: _TL_('Add assets'),\r\n route: 'assetlibrary/add',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.AssetLibraryV3EnableVideoUpload,\r\n },\r\n // performance\r\n performancePage,\r\n // performance -> image deails\r\n {\r\n id: 'creative-studio-asset-library-performance-image-details',\r\n name: _TL_('Performance'),\r\n route: 'assetlibrary/performance/image/:imageId',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.AssetLibraryV4,\r\n },\r\n // performance -> edit image\r\n {\r\n id: 'creative-studio-asset-library-performance-image-edit',\r\n name: _TL_('Edit image'),\r\n route: 'assetlibrary/performance/image/:imageId/edit',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.AssetLibraryV4,\r\n },\r\n // task progress\r\n {\r\n id: 'creative-studio-asset-library-task-progress',\r\n name: _TL_('Asset library'),\r\n route: 'assetlibrary/taskprogress',\r\n scope: [Scope.Account],\r\n apexViewName: 'assetlibrary',\r\n searchable: false,\r\n },\r\n ],\r\n checkPermission: permissions => !permissions.dynamic.AdsStudioMVP,\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const brandListsPage = {\r\n id: 'brand-lists',\r\n name: _TL_('Brand lists'),\r\n scope: [Scope.Account],\r\n checkPermission: permissions => (permissions.dynamic.BroadOnly && !permissions.dynamic.PredictiveMatching) || permissions.dynamic.BrandExclusion || (permissions.dynamic.PredictiveMatching && permissions.dynamic.PredictiveMatchingPhase2),\r\n children: [\r\n {\r\n id: 'brand-lists',\r\n name: _TL_('Brand lists'),\r\n scope: [Scope.Account],\r\n route: 'brandlists',\r\n showTag: {\r\n text: _TL_('New'),\r\n expDate: new Date('2024/12/31'),\r\n },\r\n checkPermission: permissions => (permissions.dynamic.BroadOnly && !permissions.dynamic.PredictiveMatching) || permissions.dynamic.BrandExclusion || (permissions.dynamic.PredictiveMatching && permissions.dynamic.PredictiveMatchingPhase2),\r\n searchAlias: _TL_('View brand lists'),\r\n },\r\n {\r\n id: 'brand-lists-details',\r\n name: _TL_('Brand lists details'),\r\n scope: [Scope.Account],\r\n route: 'brandlists/details',\r\n checkPermission: permissions => (permissions.dynamic.BroadOnly && !permissions.dynamic.PredictiveMatching) || permissions.dynamic.BrandExclusion || (permissions.dynamic.PredictiveMatching && permissions.dynamic.PredictiveMatchingPhase2),\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const landingPage = {\r\n id: 'ad-studio-landing-page',\r\n name: _TL_('Ads Studio'),\r\n route: 'adstudio',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n};\r\n\r\nexport const homePage = {\r\n id: 'ad-studio-home-page',\r\n name: _TL_('Home'),\r\n route: 'adstudio/home',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n searchAlias: _TL_('Asset Library'),\r\n};\r\n\r\nexport const generateImagePage = {\r\n id: 'ad-studio-generate-image-page',\r\n name: _TL_('Generate Image'),\r\n route: 'adstudio/generateimage',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n};\r\n\r\nexport const homeSearchPage = {\r\n id: 'ad-studio-home-search-page',\r\n name: _TL_('Images'),\r\n route: 'adstudio/home/search',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: false,\r\n};\r\n\r\nexport const imagesPage = {\r\n id: 'ad-studio-images-page',\r\n name: _TL_('Images'),\r\n route: 'adstudio/images',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n};\r\n\r\nexport const editImagePage = {\r\n id: 'ad-studio-edit-image-page',\r\n name: _TL_('Edit Image'),\r\n route: 'adstudio/images/:imageId/edit',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: false,\r\n};\r\n\r\nexport const displayTemplatePage = {\r\n id: 'ad-studio-display-template-page',\r\n name: _TL_('Display templates'),\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n copilotFeature: true,\r\n children: [\r\n {\r\n id: 'ad-studio-display-template-page',\r\n name: _TL_('Display templates'),\r\n route: 'adstudio/displaytemplates',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n },\r\n {\r\n id: 'ad-studio-display-template-create-page',\r\n name: _TL_('Create display template'),\r\n route: 'adstudio/displaytemplates/create',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: false,\r\n },\r\n {\r\n id: 'ad-studio-display-template-edit-page',\r\n name: _TL_('Edit display template'),\r\n route: 'adstudio/displaytemplates/:displayTemplateId/edit',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: false,\r\n },\r\n ],\r\n checkPermission: permissions => permissions.dynamic.BrandKitUI,\r\n};\r\n\r\nexport const videoTemplatePage = {\r\n id: 'ad-studio-video-template-page',\r\n name: _TL_('Create a video'),\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: false,\r\n children: [\r\n {\r\n id: 'ad-studio-video-template-page',\r\n name: _TL_('Create a video'),\r\n route: 'adstudio/videotemplates',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: false,\r\n },\r\n {\r\n id: 'ad-studio-video-create-page',\r\n name: _TL_('Create video'),\r\n route: 'adstudio/video/create',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: false,\r\n },\r\n {\r\n id: 'ad-studio-video-edit-page',\r\n name: _TL_('Edit video'),\r\n route: 'adstudio/video/:videoId/edit',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: false,\r\n },\r\n ],\r\n checkPermission: permissions => permissions.dynamic.VideoTemplateUI,\r\n};\r\n\r\nexport const videosPage = {\r\n id: 'ad-studio-videos-page',\r\n name: _TL_('Videos'),\r\n route: 'adstudio/videos',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n};\r\n\r\nexport const performancePage = {\r\n id: 'ad-studio-performance-page',\r\n name: _TL_('Performance'),\r\n route: 'adstudio/performance',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n};\r\n\r\nexport const brandKitPage = {\r\n id: 'ad-studio-brand-kit-page',\r\n name: _TL_('Brand Kit'),\r\n route: 'adstudio/brandkit',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n copilotFeature: true,\r\n checkPermission: permissions => permissions.dynamic.BrandKitUI,\r\n};\r\n\r\nexport const libraryPage = {\r\n id: 'ad-studio-library-page',\r\n name: _TL_('Library'),\r\n route: 'adstudio/library',\r\n scope: [Scope.Account],\r\n apexViewName: 'adstudio',\r\n searchable: true,\r\n};\r\n\r\nexport const adStudioPage = {\r\n id: 'ad-studio-app-entry',\r\n name: _TL_('Ads Studio'),\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Account],\r\n checkPermission: permissions => permissions.dynamic.AdsStudioMVP,\r\n children: [\r\n landingPage,\r\n homePage,\r\n homeSearchPage,\r\n imagesPage,\r\n displayTemplatePage,\r\n videoTemplatePage,\r\n videosPage,\r\n performancePage,\r\n brandKitPage,\r\n libraryPage,\r\n generateImagePage,\r\n editImagePage,\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const liftMeasurement = {\r\n id: 'lift-measurement',\r\n name: _TL_('Lift measurement'),\r\n scope: [Scope.Account],\r\n checkPermission: permissions => !!permissions.IsInternalUser && permissions.dynamic.LiftMeasurement,\r\n children: [\r\n {\r\n id: 'lift-measurement-landing-page',\r\n name: _TL_('Lift measurement'),\r\n scope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'lift-measurement-landing-page',\r\n name: _TL_('Lift measurement'),\r\n route: 'liftmeasurement',\r\n scope: [Scope.Account],\r\n searchable: true,\r\n },\r\n {\r\n id: 'lift-measurement-creation',\r\n name: _TL_('Create lift measurement'),\r\n route: 'liftmeasurement/create',\r\n scope: [Scope.Account],\r\n searchable: false,\r\n },\r\n {\r\n id: 'lift-measurement-edit',\r\n name: _TL_('Lift measurement settings'),\r\n route: 'liftmeasurement/edit',\r\n scope: [Scope.Account],\r\n searchable: false,\r\n },\r\n {\r\n id: 'lift-measurement-results',\r\n name: _TL_('Lift measurement results'),\r\n route: 'liftmeasurement/results',\r\n scope: [Scope.Account],\r\n searchable: false,\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed, isSmartPageStandalone } from '../shared';\r\nimport { bulkEdit } from './bulk-edits';\r\nimport { automatedRule } from './rules';\r\nimport { scriptsPage } from './scripts-page';\r\nimport { bulkUploads } from './bulk-uploads';\r\n\r\nexport const bulkActionsPages = [\r\n bulkEdit,\r\n automatedRule,\r\n scriptsPage,\r\n bulkUploads,\r\n {\r\n id: 'mcm-campaign-control',\r\n name: _TL_('MCM Campaign Control'),\r\n route: 'mcmcampaigncontrol',\r\n scope: [Scope.Customer, Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.IsInternalUser,\r\n },\r\n];\r\n\r\nexport const advertisingEditor = {\r\n id: 'advertising-editor',\r\n name: _TL_('Microsoft Advertising Editor'),\r\n description: _TL_('Manage accounts and campaigns in bulk and offline with this powerful desktop tool.'),\r\n route: 'advertisingeditor',\r\n externalLink: 'http://go.microsoft.com/fwlink/?LinkID=193932',\r\n};\r\n\r\nexport const advertisingMobile = {\r\n id: 'advertising-mobile',\r\n name: _TL_('Microsoft Advertising mobile app'),\r\n description: _TL_('Manage and monitor your campaigns on the go with Android or iOS.'),\r\n route: 'advertisingmobile',\r\n externalLink: 'https://go.microsoft.com/fwlink/?linkid=2173918',\r\n};\r\n\r\nexport const smartPage = {\r\n id: 'expert-my-website',\r\n name: _TL_('Smart Pages'),\r\n route: 'smartpage',\r\n externalLink: `${window.location.origin}/campaign/sp/landing${window.location.search}`,\r\n scope: [Scope.Account],\r\n checkPermission: permissions => permissions.dynamic.PMaxLite && !isSmartPageStandalone(permissions)\r\n && !permissions.IsUnifiedSmartMode && !permissions.IsSmartMode,\r\n};\r\n\r\nexport const bulkActions = {\r\n id: 'bulk-actions',\r\n name: _TL_('Bulk actions & apps'),\r\n scope: [Scope.Customer, Scope.Account],\r\n children: [...bulkActionsPages, advertisingEditor, advertisingMobile, smartPage],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const bulkEdit = {\r\n id: 'bulk-edits',\r\n name: _TL_('Bulk edits'),\r\n scope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'bulk-edits',\r\n name: _TL_('Bulk edits'),\r\n route: 'bulkeditoperation',\r\n scope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const automatedRule = {\r\n id: 'rules',\r\n name: _TL_('Automated rules'),\r\n scope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'automated-rules',\r\n name: _TL_('Automated rules'),\r\n route: 'automatedruleoperation',\r\n scope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n }, {\r\n id: 'rule-history',\r\n name: _TL_('Logs'),\r\n route: 'automatedrulehistory',\r\n scope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n ],\r\n};\r\n\r\n","import { Scope } from '../shared';\r\n\r\nexport const scriptsPage = {\r\n id: 'scripts',\r\n name: _TL_('Scripts'),\r\n scope: [Scope.Customer, Scope.Account],\r\n children: [\r\n {\r\n id: 'scripts-page',\r\n name: _TL_('Scripts'),\r\n route: 'scripts',\r\n scope: [Scope.Customer, Scope.Account],\r\n }, {\r\n id: 'scripts-history',\r\n name: _TL_('Scripts History'),\r\n route: 'scriptshistory',\r\n scope: [Scope.Customer, Scope.Account],\r\n },\r\n ],\r\n};\r\n\r\n","import { Scope } from '../shared';\r\n\r\nexport const bulkUploads = {\r\n id: 'bulk-uploads',\r\n name: _TL_('Bulk uploads'),\r\n checkPermission: permissions => permissions.IsCampaignBAMEnabled,\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'bulk-download-history',\r\n name: _TL_('Download history'),\r\n route: 'bulkuploads/downloadhistory',\r\n checkPermission: permissions => permissions.IsCampaignBAMEnabled,\r\n scope: [Scope.Customer],\r\n }, {\r\n id: 'bulk-scheduled-downloads',\r\n name: _TL_('Scheduled downloads'),\r\n route: 'bulkuploads/scheduleddownloads',\r\n checkPermission: permissions => permissions.IsCampaignBAMEnabled,\r\n scope: [Scope.Customer],\r\n }, {\r\n id: 'bulk-uploads',\r\n name: _TL_('Uploads'),\r\n route: 'bulkuploads/uploads',\r\n checkPermission: permissions => permissions.IsCampaignBAMEnabled,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { uetTags } from './uet-tags';\r\nimport { conversionGoals } from './conversion-goals';\r\nimport { offlineConversions } from './offline-conversions';\r\nimport { clarityWebsite } from './clarity-website';\r\nimport { modeledConversions } from './modeled-conversions';\r\nimport { customerAcquisition } from './customer-acquisition';\r\n\r\nexport { offlineConversions, uetTags, conversionGoals, customerAcquisition, };\r\n\r\nexport const conversionTracking = [\r\n uetTags,\r\n conversionGoals,\r\n offlineConversions,\r\n clarityWebsite,\r\n modeledConversions,\r\n customerAcquisition,\r\n];\r\n","import { Scope, ScopeV2 } from '../../shared';\r\n\r\nconst scope = [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup];\r\n\r\nconst scopeV2 = [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup];\r\n\r\nexport const uetTags = {\r\n id: 'uet-tag',\r\n name: _TL_('UET tag'),\r\n oldUIScope: [Scope.Customer, Scope.Account],\r\n scope,\r\n scopeV2,\r\n route: 'uettag',\r\n children: [{\r\n id: 'uet-tag',\r\n name: _TL_('UET tag'),\r\n route: 'uettag',\r\n showTag: _TL_('New'),\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n scopeV2: [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup],\r\n }, {\r\n id: 'uet-tag-test',\r\n name: _TL_('Test your tag'),\r\n route: 'uettagtest',\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n scopeV2: [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup],\r\n available: permissions => permissions.dynamic.UETDashboardPhase2,\r\n checkPermission: permissions => permissions.dynamic.UETDashboardPhase2,\r\n }, {\r\n id: 'uet-tag-insights',\r\n name: _TL_('Insights'),\r\n route: 'uettaginsights',\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n scopeV2: [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup],\r\n available: permissions => permissions.dynamic.UETTagInsights,\r\n checkPermission: permissions => permissions.dynamic.UETTagInsights,\r\n }],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const conversionGoals = {\r\n id: 'conversion-goals',\r\n name: _TL_('Conversion goals'),\r\n oldUIScope: [Scope.Account],\r\n children: [{\r\n id: 'conversion-goals',\r\n name: _TL_('Conversion goals'),\r\n route: 'conversiongoals',\r\n }, {\r\n id: 'conversion-value-rules',\r\n name: _TL_('Conversion value rules'),\r\n route: 'conversionvaluerules',\r\n checkPermission: permissions => permissions.dynamic.ConvValueRules,\r\n }],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const offlineConversionItem = {\r\n id: 'offline-conversions',\r\n name: _TL_('Offline conversions'),\r\n route: 'offlineconversions',\r\n scope: [Scope.Account],\r\n};\r\n\r\nexport const offlineConversions = {\r\n id: 'offline-conversions',\r\n name: _TL_('Offline conversions'),\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Account],\r\n children: [offlineConversionItem, {\r\n id: 'offline-conversions-schedule',\r\n name: _TL_('Offline conversion schedules'),\r\n route: 'offlineconversionsschedule',\r\n scope: [Scope.Account],\r\n checkPermission: permissions => permissions.IsScheduledOfflineConversionUploadAllowed,\r\n },\r\n ],\r\n};\r\n","export const clarityWebsite = {\r\n id: 'clarity-website',\r\n name: _TL_('Microsoft Clarity'),\r\n children: [{\r\n id: 'clarity-website',\r\n name: _TL_('Microsoft Clarity'),\r\n route: 'claritywebsite',\r\n externalLink: 'https://clarity.microsoft.com',\r\n }],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const modeledConversions = {\r\n id: 'modeled-conversions',\r\n name: _TL_('Modeled conversions​'),\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'modeled-conversions',\r\n name: _TL_('Conversion uplift from consent mode'),\r\n route: 'conversionupliftfromconsentmode',\r\n scope: [Scope.Account],\r\n checkPermission: permissions => permissions.dynamic.AllowModeledConversions,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../../shared';\r\n\r\nexport const customerAcquisition = {\r\n id: 'customer-acquisition',\r\n name: _TL_('Customer acquisition'),\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Account],\r\n children: [{\r\n id: 'customer-acquisition',\r\n name: _TL_('Customer acquisition'),\r\n route: 'customeracquisition',\r\n checkPermission: permissions => permissions.dynamic.NewCustomerAcquisition,\r\n }],\r\n};\r\n","import { accountsBilling } from './accounts-billing';\r\nimport { accountAccess } from './account-access';\r\nimport { accountsSummary } from './accounts-summary';\r\nimport { accountMap } from './account-map';\r\nimport { billingPayments } from './billing-payments';\r\nimport { businessData } from './business-data';\r\nimport { budgetCenter } from './budget-center';\r\nimport { hotelCenter } from './hotel-center';\r\nimport { hotelCenterV2 } from './hotel-center-v2';\r\nimport { merchantCenter } from './merchant-center';\r\nimport { settings } from './settings';\r\nimport {\r\n socialNetworks,\r\n upTermCondition,\r\n upPrivacyCookies,\r\n upConversionTracking,\r\n upClarity,\r\n upChangeHistory,\r\n upMobileApp,\r\n} from './unified-product';\r\n\r\nexport const setup = [\r\n accountsSummary,\r\n accountsBilling,\r\n businessData,\r\n billingPayments,\r\n upChangeHistory,\r\n accountAccess,\r\n accountMap,\r\n settings,\r\n merchantCenter,\r\n hotelCenter,\r\n hotelCenterV2,\r\n socialNetworks,\r\n upConversionTracking,\r\n upClarity,\r\n upMobileApp,\r\n upPrivacyCookies,\r\n upTermCondition,\r\n budgetCenter,\r\n];\r\n","import { Scope, defaultCCItemProperties, isSmartPageStandalone } from '../../shared';\r\n\r\nexport const accountsBilling = {\r\n id: 'billing-payments',\r\n name: _TL_('Accounts & Billing'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n ...defaultCCItemProperties,\r\n id: 'billing-payments',\r\n name: _TL_('Accounts & Billing'),\r\n route: 'billing-payments',\r\n checkPermission: permission =>\r\n !permission.IsManagementDashboardEnabled && !isSmartPageStandalone(permission),\r\n },\r\n ],\r\n};\r\n","import { Scope, defaultCCItemProperties } from '../../shared';\r\n\r\nexport const accountAccess = {\r\n id: 'account-access',\r\n name: _TL_('Account access'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n ...defaultCCItemProperties,\r\n id: 'account-access',\r\n name: _TL_('Account access'),\r\n route: 'Users',\r\n checkPermission: permission => permission.IsManagementDashboardEnabled,\r\n },\r\n ],\r\n};\r\n","import { Scope, isUnifiedProductSubscriptionEnabled } from '../../shared';\r\n\r\nexport const accountsSummary = {\r\n id: 'setup-accounts',\r\n name: _TL_('Accounts'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'setup-accounts',\r\n name: _TL_('Accounts'),\r\n route: 'accounts',\r\n scope: [Scope.Customer],\r\n checkPermission: permission =>\r\n permission.IsManagementDashboardEnabled && !isUnifiedProductSubscriptionEnabled(permission),\r\n },\r\n ],\r\n};\r\n","import { Scope, defaultCCItemProperties, isUnifiedProductSubscriptionEnabled } from '../../shared';\r\n\r\nexport const accountMap = {\r\n id: 'account-map',\r\n name: _TL_('Account map'),\r\n oldUIScope: [Scope.Account],\r\n ...defaultCCItemProperties,\r\n children: [\r\n {\r\n ...defaultCCItemProperties,\r\n id: 'account-map',\r\n name: _TL_('Account map'),\r\n route: 'AccountMap',\r\n checkPermission: permission =>\r\n permission.dynamic.CCUIAccountMap && !isUnifiedProductSubscriptionEnabled(permission),\r\n },\r\n ],\r\n};\r\n","import { Scope, defaultCCItemProperties } from '../../shared';\r\nimport { billingAccountLinkPermissions } from '../../client-center/billing-payments';\r\n\r\nexport const billingPayments = {\r\n id: 'billing-payments',\r\n name: _TL_('Billing & Payments'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n ...defaultCCItemProperties,\r\n id: 'billing-payments',\r\n name: _TL_('Billing & Payments'),\r\n route: 'billing',\r\n checkPermission: permission => permission.IsManagementDashboardEnabled,\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n },\r\n ],\r\n};\r\n","import { Scope, AccountLinkPermissionType } from '../shared';\r\n\r\nexport const billingAccountLinkPermissions = [\r\n AccountLinkPermissionType.Standard,\r\n AccountLinkPermissionType.Billing,\r\n];\r\n\r\nexport const billingSummary = {\r\n id: 'billing',\r\n name: _TL_('Billing summary'),\r\n route: 'billing',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n};\r\n\r\nexport const transactions = {\r\n id: 'transactions',\r\n name: _TL_('Transactions'),\r\n route: 'Transactions/BillingDocuments',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n children: [\r\n {\r\n id: 'transactionBillingDocuments',\r\n name: _TL_('Billing documents'),\r\n route: 'Transactions/BillingDocuments',\r\n },\r\n {\r\n id: 'transactionHistory',\r\n name: _TL_('Transaction history'),\r\n route: 'Transactions/TransactionHistory',\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n\r\nexport const paymentMethods = {\r\n id: 'paymentMethods',\r\n name: _TL_('Payment methods'),\r\n route: 'PaymentMethods',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n};\r\n\r\nexport const xandrBaf = {\r\n id: 'xandrBaf',\r\n name: _TL_('BAF Management'),\r\n route: 'XandrBaf',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => !!permissions.IsInternalUser && !!permissions.dynamic.XandrBaf && !!permissions.IsCustomerMappedToXandrParentAccount,\r\n ccuiOnlyPage: true,\r\n children: [\r\n {\r\n id: 'xandrBaf',\r\n name: _TL_('BAF Management'),\r\n route: 'XandrBaf',\r\n },\r\n {\r\n id: 'xandrBafCreate',\r\n name: _TL_('Create BAF'),\r\n route: 'XandrBaf/Create',\r\n searchable: false,\r\n },\r\n {\r\n id: 'xandrBafEdit',\r\n name: _TL_('Edit BAF'),\r\n route: 'XandrBaf/Edit',\r\n searchable: false,\r\n },\r\n {\r\n id: 'xandrBafProfile',\r\n name: _TL_('BAF Profile'),\r\n route: 'XandrBaf/Profile',\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n\r\nexport const adjustments = {\r\n id: 'adjustments',\r\n name: _TL_('Adjustments'),\r\n route: 'Adjustments',\r\n scope: [Scope.Account],\r\n checkPermission: permissions => !!permissions.IsInternalUser,\r\n};\r\n\r\nexport const balance = {\r\n id: 'balance',\r\n name: _TL_('Balance'),\r\n route: 'Balance',\r\n scope: [Scope.Account],\r\n checkPermission: permissions => !!permissions.IsInternalUser,\r\n};\r\n\r\nexport const insertionOrders = {\r\n id: 'insertionOrder',\r\n name: _TL_('Insertion orders'),\r\n route: 'InsertionOrder',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n};\r\n\r\nexport const billingSettings = {\r\n id: 'billingSettings',\r\n name: _TL_('Billing settings'),\r\n route: 'BillingSettings',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n ccuiOnlyPage: true,\r\n children: [\r\n {\r\n id: 'billingSettings',\r\n name: _TL_('Billing settings'),\r\n route: 'BillingSettings',\r\n },\r\n {\r\n id: 'consolidatedBilling',\r\n name: _TL_('Consolidated billing'),\r\n route: 'BillingSettings/ConsolidatedBilling',\r\n checkPermission: permissions => permissions.dynamic.ConsolidatedBillingV2,\r\n },\r\n {\r\n id: 'sapIdInformation',\r\n name: _TL_('SAP ID information'),\r\n route: 'BillingSettings/SapIdInformation',\r\n checkPermission: permissions => permissions.dynamic.ConsolidatedBillingV2,\r\n },\r\n ],\r\n};\r\n\r\nexport const billingPayments = {\r\n id: 'billingHistory',\r\n name: _TL_('Billing & Payments'),\r\n route: 'Billing/History',\r\n fixedRoute: 'Billing/History',\r\n children: [\r\n billingSummary,\r\n paymentMethods,\r\n insertionOrders,\r\n billingSettings,\r\n adjustments,\r\n balance,\r\n transactions,\r\n xandrBaf,\r\n ],\r\n};\r\n","import { Scope, isSmartPageStandalone } from '../../shared';\r\n\r\nexport const businessDataPages = [\r\n {\r\n id: 'ad-customizer-feeds',\r\n name: _TL_('Ad customizer feeds'),\r\n route: 'feeds/adcustomizer',\r\n checkPermission: permission => !permission.IsSmartMode && !permission.IsUnifiedSmartMode,\r\n children: [\r\n {\r\n id: 'ad-customizer-feeds',\r\n name: _TL_('Ad customizer feeds'),\r\n route: 'feeds/adcustomizer',\r\n checkPermission: permission =>\r\n !permission.IsSmartMode && !permission.IsUnifiedSmartMode,\r\n },\r\n {\r\n id: 'upload-history',\r\n name: _TL_('Upload history'),\r\n route: 'feeds/adcustomizer/uploadhistory',\r\n },\r\n ],\r\n },\r\n {\r\n id: 'dynamic-data-feeds',\r\n name: _TL_('Dynamic data feeds'),\r\n route: 'feeds/dynamicdata',\r\n checkPermission: permissions => permissions.dynamic.DynamicData\r\n || permissions.IsEnabledForDynamicFeedCampaign,\r\n children: [\r\n {\r\n id: 'dynamic-data-feeds',\r\n name: _TL_('Dynamic data feeds'),\r\n route: 'feeds/dynamicdata',\r\n },\r\n {\r\n id: 'upload-history',\r\n name: _TL_('Upload history'),\r\n route: 'feeds/dynamicdata/uploadhistory',\r\n },\r\n ],\r\n },\r\n {\r\n id: 'page-feeds',\r\n name: _TL_('Page feeds'),\r\n route: 'feeds/page',\r\n checkPermission: permissions => permissions.dynamic.DynamicSearchAdsV1,\r\n children: [\r\n {\r\n id: 'page-feeds',\r\n name: _TL_('Page feeds'),\r\n route: 'feeds/page',\r\n },\r\n {\r\n id: 'upload-history',\r\n name: _TL_('Upload history'),\r\n route: 'feeds/page/uploadhistory',\r\n },\r\n ],\r\n },\r\n {\r\n id: 'customizer-attributes',\r\n name: _TL_('Ad customizer attributes'),\r\n route: 'feeds/attribute',\r\n children: [\r\n {\r\n id: 'customizer-attributes',\r\n name: _TL_('Ad customizer attributes'),\r\n route: 'feeds/attribute',\r\n },\r\n {\r\n id: 'customizer-attributes-history',\r\n name: _TL_('Upload history'),\r\n route: 'feeds/attribute/uploadhistory',\r\n },\r\n {\r\n id: 'customizer-attributes-schedules',\r\n name: _TL_('Schedules'),\r\n route: 'feeds/attribute/schedules',\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport const businessData = {\r\n id: 'business-data',\r\n name: _TL_('Business Data'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'business-data',\r\n name: _TL_('Business data'),\r\n route: 'feeds/attribute',\r\n checkPermission: permission =>\r\n !permission.IsSmartMode && !permission.IsUnifiedSmartMode\r\n && !isSmartPageStandalone(permission),\r\n children: businessDataPages,\r\n },\r\n ],\r\n};\r\n","import { Scope, isSmartPageStandalone } from '../../shared';\r\n\r\nexport const budgetCenter = {\r\n id: 'budget-center',\r\n name: _TL_('Budget center'),\r\n scope: [Scope.Account, Scope.Campaign],\r\n children: [\r\n {\r\n id: 'budget-center',\r\n name: _TL_('Budget center'),\r\n route: 'budgetcenter',\r\n scope: [Scope.Account, Scope.Campaign],\r\n showTag: {\r\n text: _TL_('New'),\r\n expDate: new Date('2023/12/31'),\r\n },\r\n checkPermission: permissions => !isSmartPageStandalone(permissions) && !permissions.IsUnifiedSmartMode && !permissions.IsSmartMode,\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\nimport { defaultScopes } from '../../../shared';\r\nimport { intelligencePages } from './intelligence';\r\n\r\nexport const overviewPages = {\r\n id: 'hotel-center-overview',\r\n name: _TL_('Overview'),\r\n route: 'hotelcenter/overview',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n children: [\r\n {\r\n id: 'hotel-center-overview',\r\n name: _TL_('Overview'),\r\n route: 'hotelcenter',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n searchable: false,\r\n },\r\n {\r\n id: 'hotel-center',\r\n name: _TL_('Overview'),\r\n route: 'hotelcenter/overview',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n searchable: false,\r\n },\r\n {\r\n id: 'hotel-center-overview-hotelsubaccountgrid',\r\n name: _TL_('Subacount'),\r\n route: 'hotelcenter/overview/hotelsubaccountgrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds && !permissions.dynamic.HotelCenterDeprecation,\r\n },\r\n {\r\n id: 'hotel-center-overview-hotelidgrid',\r\n name: _TL_('Hotel'),\r\n route: 'hotelcenter/overview/hotelidgrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-hotelgroupgrid',\r\n name: _TL_('Hotel group'),\r\n route: 'hotelcenter/overview/hotelgroupgrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-advancedbookinggrid',\r\n name: _TL_('Advanced booking window'),\r\n route: 'hotelcenter/overview/advancedbookinggrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-checkindaygrid',\r\n name: _TL_('Check in day'),\r\n route: 'hotelcenter/overview/checkindaygrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-hoteldategrid',\r\n name: _TL_('Date'),\r\n route: 'hotelcenter/overview/hoteldategrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-datetypegrid',\r\n name: _TL_('Date type'),\r\n route: 'hotelcenter/overview/datetypegrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-hoteldevicetypegrid',\r\n name: _TL_('Device type'),\r\n route: 'hotelcenter/overview/hoteldevicetypegrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-hotelcountrygrid',\r\n name: _TL_('Hotel country/region'),\r\n route: 'hotelcenter/overview/hotelcountrygrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-hotellengthofstaygrid',\r\n name: _TL_('Length of stay'),\r\n route: 'hotelcenter/overview/hotellengthofstaygrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-sitetypegrid',\r\n name: _TL_('Site type'),\r\n route: 'hotelcenter/overview/sitetypegrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-hotelslottypegrid',\r\n name: _TL_('Slot type'),\r\n route: 'hotelcenter/overview/hotelslottypegrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n },\r\n {\r\n id: 'hotel-center-overview-hotelusercountrygrid',\r\n name: _TL_('User country/region'),\r\n route: 'hotelcenter/overview/hotelusercountrygrid',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n }],\r\n};\r\n\r\nconst setupPage = {\r\n id: 'hotel-center-setup',\r\n name: _TL_('Setup'),\r\n route: 'hotelcenter/setup',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n searchable: false,\r\n};\r\n\r\nconst assignmentPage = {\r\n id: 'hotel-center-assignment',\r\n name: _TL_('Assignment'),\r\n route: 'hotelcenter/assignment',\r\n checkPermission: permissions => permissions.dynamic.HotelAds && !permissions.dynamic.HotelCenterDeprecation,\r\n};\r\n\r\nexport const hotelCenterPages = [\r\n overviewPages,\r\n assignmentPage,\r\n intelligencePages,\r\n setupPage,\r\n];\r\n\r\nexport const flatHotelCenterPages = [\r\n overviewPages,\r\n assignmentPage,\r\n ...intelligencePages.children,\r\n setupPage,\r\n];\r\n\r\nconst hotelCenterScope = {\r\n scope: defaultScopes,\r\n};\r\n\r\nfunction addScope(items) {\r\n _.each(items, (item) => {\r\n _.defaults(item, hotelCenterScope);\r\n if (item.children) {\r\n addScope(item.children);\r\n }\r\n });\r\n}\r\n\r\naddScope(hotelCenterPages);\r\naddScope(flatHotelCenterPages);\r\n\r\nexport const hotelCenter = {\r\n id: 'hotel-center',\r\n name: _TL_('Hotel Center'),\r\n route: 'hotelcenter/overview',\r\n scope: defaultScopes,\r\n checkPermission: permissions => permissions.dynamic.HotelAds && !permissions.dynamic.HotelCenterRemoval,\r\n children: [{\r\n id: 'hotel-center',\r\n name: _TL_('Hotel center'),\r\n route: 'hotelcenter/overview',\r\n children: hotelCenterPages,\r\n checkPermission: permissions => permissions.dynamic.HotelAds && !permissions.dynamic.HotelCenterRemoval,\r\n }],\r\n};\r\n","import { adExtensionPage } from './ad-extension';\r\nimport { bookingReportPage } from './booking-report';\r\nimport { feedStatusPage } from './feed-status';\r\nimport { feedUploadPage } from './feed-upload';\r\nimport { shareOfVoicePage } from './share-of-voice';\r\nimport { matchReportPage } from './match-report';\r\nimport { UploadedReconReportsPage } from './uploaded-recon-reports';\r\nimport { ProcessedReconReportsPage } from './processed-recon-reports';\r\n\r\nconst reportPages = [matchReportPage, feedStatusPage, shareOfVoicePage, bookingReportPage];\r\nconst reconcilliationReportPages = [UploadedReconReportsPage, ProcessedReconReportsPage];\r\n\r\nexport const intelligencePages = {\r\n id: 'hotel-center-intelligence',\r\n name: _TL_('Intelligence'),\r\n route: 'hotelcenter/feedupload',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n children: [\r\n feedUploadPage,\r\n {\r\n id: 'report',\r\n name: _TL_('Reports'),\r\n route: 'hotelcenter/matchreport',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n children: reportPages,\r\n },\r\n adExtensionPage,\r\n {\r\n id: 'reconciliationreport',\r\n name: _TL_('Reconciliation Report'),\r\n route: 'hotelcenter/reconciliationreport',\r\n checkPermission: /* istanbul ignore next */ (permissions) => {\r\n const {\r\n ReconciliationReport, PayPerStay, HotelAds,\r\n } = permissions.dynamic;\r\n return ReconciliationReport && PayPerStay && HotelAds;\r\n },\r\n children: reconcilliationReportPages,\r\n },\r\n ],\r\n};\r\n","export const adExtensionPage = {\r\n id: 'adExtensions',\r\n name: _TL_('Ad Extensions'),\r\n route: 'hotelcenter/calloutextensions',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n};\r\n","export const bookingReportPage = {\r\n id: 'bookingreport',\r\n name: _TL_('Bookings'),\r\n route: 'hotelcenter/bookingreport',\r\n checkPermission: permissions => permissions.dynamic.HotelAds &&\r\n permissions.dynamic.HotelAdsConversion,\r\n};\r\n","export const feedStatusPage = {\r\n id: 'feedstatus',\r\n name: _TL_('Price feed status'),\r\n route: 'hotelcenter/feedstatus',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n};\r\n","export const feedUploadPage = {\r\n id: 'feedupload',\r\n name: _TL_('Feeds'),\r\n route: 'hotelcenter/feedupload',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n};\r\n","export const shareOfVoicePage = {\r\n id: 'sharedofvoice',\r\n name: _TL_('Share of Voice'),\r\n route: 'hotelcenter/sharedofvoice',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n};\r\n","export const matchReportPage = {\r\n id: 'matchreport',\r\n name: _TL_('Matching'),\r\n route: 'hotelcenter/matchreport',\r\n checkPermission: permissions => permissions.dynamic.HotelAds,\r\n};\r\n","/* istanbul ignore file */\r\nexport const UploadedReconReportsPage = {\r\n id: 'uploadedreconreports',\r\n name: _TL_('Uploaded Reconciliation Reports'),\r\n route: 'hotelcenter/uploadedreconreports',\r\n checkPermission: /* istanbul ignore next */ (permissions) => {\r\n const {\r\n ReconciliationReport, PayPerStay, HotelAds,\r\n } = permissions.dynamic;\r\n return ReconciliationReport && PayPerStay && HotelAds;\r\n },\r\n};\r\n","/* istanbul ignore file */\r\nexport const ProcessedReconReportsPage = {\r\n id: 'processedreconreports',\r\n name: _TL_('Processed Reconciliation Reports'),\r\n route: 'hotelcenter/processedreconreports',\r\n checkPermission: /* istanbul ignore next */ (permissions) => {\r\n const {\r\n ReconciliationReport, PayPerStay, HotelAds,\r\n } = permissions.dynamic;\r\n return ReconciliationReport && PayPerStay && HotelAds;\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport { defaultScopes } from '../../../shared';\r\nimport { feedsPages } from './feeds';\r\nimport { reportPages } from './reports';\r\n\r\n\r\nconst overview = {\r\n id: 'property-center-overview',\r\n name: _TL_('Overview'),\r\n route: 'propertycenter/overview',\r\n searchAlias: _TL_('Property center'),\r\n};\r\nconst logos = {\r\n id: 'property-center-logos',\r\n name: _TL_('Logos'),\r\n route: 'propertycenter/logos',\r\n};\r\nconst setup = {\r\n id: 'property-center-setup',\r\n name: _TL_('Setup'),\r\n route: 'propertycenter/setup',\r\n searchable: false,\r\n};\r\n\r\nexport const hotelCenterV2Pages = [\r\n overview,\r\n feedsPages,\r\n // comment out the following route for API not ready now\r\n // {\r\n // id: 'property-center-matching',\r\n // name: _TL_('Matching'),\r\n // route: 'propertycenter/matching',\r\n // },\r\n logos,\r\n setup,\r\n reportPages,\r\n];\r\n\r\nexport const flatHotelCenterV2Pages = [\r\n overview,\r\n ...feedsPages.children,\r\n // comment out the following route for API not ready now\r\n // {\r\n // id: 'hotel-center-v2-matching',\r\n // name: _TL_('Matching'),\r\n // route: 'propertycenter/matching',\r\n // },\r\n logos,\r\n setup,\r\n reportPages,\r\n];\r\n\r\nconst hotelCenterScope = {\r\n scope: defaultScopes,\r\n checkPermission: permissions => permissions.dynamic.HotelCenterV2,\r\n};\r\n\r\nfunction addScopeAndPermission(items) {\r\n _.each(items, (item) => {\r\n _.defaults(item, hotelCenterScope);\r\n if (item.children) {\r\n addScopeAndPermission(item.children);\r\n }\r\n });\r\n}\r\n\r\naddScopeAndPermission(hotelCenterV2Pages);\r\n\r\nexport const hotelCenterV2 = {\r\n id: 'property-center',\r\n name: _TL_('Property center'),\r\n route: 'propertycenter/overview',\r\n scope: defaultScopes,\r\n checkPermission: permissions => permissions.dynamic.HotelCenterV2,\r\n children: [{\r\n id: 'property-center',\r\n name: _TL_('Property center'),\r\n route: 'propertycenter/overview',\r\n children: hotelCenterV2Pages,\r\n showTag: {\r\n text: _TL_('New'),\r\n expDate: new Date('2024/12/31'),\r\n },\r\n checkPermission: permissions => permissions.dynamic.HotelCenterV2,\r\n }],\r\n};\r\n","import { landingPage } from './landingpage';\r\nimport { landingPageDetail } from './landingpage-detail';\r\nimport { propertiesPage } from './properties';\r\nimport { propertyPage } from './property';\r\nimport { pricingStatusPage } from './pricing-status';\r\nimport { pricingSettingPage } from './pricing-settings';\r\n\r\nconst propertiesPages = [propertiesPage, propertyPage];\r\nconst pricingPages = [pricingStatusPage, pricingSettingPage];\r\nconst landingPages = [landingPage, landingPageDetail];\r\n\r\nexport const feedsPages = {\r\n id: 'property-center-feeds',\r\n name: _TL_('Feeds'),\r\n route: 'propertycenter/feeds',\r\n children: [\r\n {\r\n id: 'property-center-properties',\r\n name: _TL_('Properties'),\r\n route: 'propertycenter/properties',\r\n children: propertiesPages,\r\n },\r\n {\r\n id: 'property-center-pricing',\r\n name: _TL_('Pricing'),\r\n route: 'propertycenter/pricing-status',\r\n children: pricingPages,\r\n },\r\n {\r\n id: 'property-center-landing',\r\n name: _TL_('Landing page'),\r\n route: 'propertycenter/landingpage',\r\n children: landingPages,\r\n },\r\n ],\r\n};\r\n","export const landingPage = {\r\n id: 'property-center-landingpage',\r\n name: _TL_('Landing page'),\r\n route: 'propertycenter/landingpage',\r\n};\r\n","export const landingPageDetail = {\r\n id: 'property-center-landingpage-detail',\r\n name: _TL_('Landing page'),\r\n route: 'propertycenter/landingpage-detail',\r\n searchable: false,\r\n};\r\n","export const propertiesPage = {\r\n id: 'property-center-properties-list',\r\n name: _TL_('Properties'),\r\n route: 'propertycenter/properties',\r\n};\r\n\r\n","export const propertyPage = {\r\n id: 'property-center-properties-detail',\r\n name: _TL_('Property'),\r\n route: 'propertycenter/property',\r\n searchable: false,\r\n};\r\n","export const pricingStatusPage = {\r\n id: 'property-center-pricing-status',\r\n name: _TL_('Status'),\r\n route: 'propertycenter/pricing-status',\r\n};\r\n","export const pricingSettingPage = {\r\n id: 'property-center-pricing-setting',\r\n name: _TL_('Settings'),\r\n route: 'propertycenter/pricing-setting',\r\n};\r\n","import { shareOfVoicePage } from './share-of-voice.js';\r\nimport { bookingReportPage } from './booking-report.js';\r\nimport { reconReportPage } from './recon-report.js'\r\n\r\nconst reportsPages = [shareOfVoicePage, bookingReportPage, reconReportPage];\r\n\r\nexport const reportPages = {\r\n id: 'property-center-reports',\r\n name: _TL_('Reports'),\r\n route: 'propertycenter/sharedofvoice',\r\n children: reportsPages,\r\n};\r\n","export const shareOfVoicePage = {\r\n id: 'property-center-shareofvoice',\r\n name: _TL_('Share of voice'),\r\n route: 'propertycenter/shareofvoice',\r\n};\r\n","export const bookingReportPage = {\r\n id: 'property-center-bookingreport',\r\n name: _TL_('Bookings'),\r\n route: 'propertycenter/bookingreport',\r\n};\r\n","export const uploadedReconReportsPage = {\r\n id: 'property-center-uploadedreconreports',\r\n name: _TL_('Uploaded Reconciliation Reports'),\r\n route: 'propertycenter/uploadedreconreports',\r\n checkPermission: (permissions) => {\r\n const {\r\n ReconciliationReport, PayPerStay, HotelCenterRemoval,\r\n } = permissions.dynamic;\r\n return ReconciliationReport && PayPerStay && HotelCenterRemoval;\r\n },\r\n};\r\n\r\nexport const processedReconReportsPage = {\r\n id: 'property-center-processedreconreports',\r\n name: _TL_('Processed Reconciliation Reports'),\r\n route: 'propertycenter/processedreconreports',\r\n checkPermission: (permissions) => {\r\n const {\r\n ReconciliationReport, PayPerStay, HotelCenterRemoval,\r\n } = permissions.dynamic;\r\n return ReconciliationReport && PayPerStay && HotelCenterRemoval;\r\n },\r\n};\r\n\r\nconst reconcilliationReportPages = [uploadedReconReportsPage, processedReconReportsPage];\r\n\r\nexport const reconReportPage = {\r\n id: 'property-center-reconciliationreport',\r\n name: _TL_('Reconciliation Report'),\r\n route: 'propertycenter/reconciliationreport',\r\n checkPermission: (permissions) => {\r\n const {\r\n ReconciliationReport, PayPerStay, HotelCenterRemoval,\r\n } = permissions.dynamic;\r\n return ReconciliationReport && PayPerStay && HotelCenterRemoval;\r\n },\r\n children: reconcilliationReportPages,\r\n};\r\n\r\n","import { defaultScope, defaultScopeV2 } from './merchant-shared';\r\nimport { homePage } from './merchant-center';\r\nimport { feeds } from './feeds';\r\nimport { importFeed } from './import';\r\nimport { promotions } from './promotions';\r\nimport { settings } from './settings';\r\nimport { stores } from './stores';\r\nimport { storeSummary } from './summary';\r\nimport { products } from './products';\r\n\r\nexport const merchantCenterPages = [\r\n homePage,\r\n stores,\r\n storeSummary,\r\n feeds,\r\n importFeed,\r\n promotions,\r\n settings,\r\n products,\r\n];\r\n\r\nexport const merchantCenter = {\r\n id: 'merchant-center',\r\n name: _TL_('Merchant Center'),\r\n scope: defaultScope,\r\n scopeV2: defaultScopeV2,\r\n children: merchantCenterPages,\r\n};\r\n","import { Scope, ScopeV2 } from '../../../shared';\r\n\r\nScopeV2.add('Store', 'storeId', ScopeV2.Account);\r\nScopeV2.add('MerchantFeed', 'feedId', ScopeV2.Store);\r\n\r\nexport const defaultScope = [\r\n Scope.Account,\r\n Scope.Store,\r\n Scope.MerchantFeed,\r\n];\r\n\r\nexport const defaultScopeV2 = [\r\n ScopeV2.Account,\r\n ScopeV2.Store,\r\n ScopeV2.MerchantFeed,\r\n];\r\n","import { Scope, isSmartPageStandalone } from '../../../shared';\r\n\r\nexport const homePage = {\r\n id: 'mmc-home',\r\n name: _TL_('Merchant center'),\r\n scope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'mmc-home',\r\n name: _TL_('Merchant Center'),\r\n route: 'merchantcenter',\r\n scope: [Scope.Account],\r\n checkPermission: permission =>\r\n !isSmartPageStandalone(permission) && !permission.IsUnifiedSmartMode && !permission.IsSmartMode,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../../../shared';\r\n\r\nexport const feeds = {\r\n id: 'mmc-feeds',\r\n name: _TL_('Merchant center'),\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Store, Scope.MerchantFeed],\r\n scopeV2: [ScopeV2.Store, ScopeV2.MerchantFeed],\r\n children: [\r\n {\r\n id: 'mmc-feeds',\r\n name: _TL_('Feeds'),\r\n route: 'merchantcenter/feeds',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-feed-details',\r\n name: _TL_('Feed details'),\r\n route: 'merchantcenter/feed-details',\r\n scope: [Scope.MerchantFeed],\r\n scopeV2: [ScopeV2.MerchantFeed],\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../../../shared';\r\n\r\nexport const importFeed = {\r\n id: 'mmc-import',\r\n name: _TL_('Merchant center'),\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n children: [\r\n {\r\n id: 'mmc-import',\r\n name: _TL_('Import'),\r\n route: 'merchantcenter/import',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n children: [\r\n {\r\n id: 'mmc-import',\r\n name: _TL_('Import'),\r\n route: 'merchantcenter/import',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-import-feed-label',\r\n name: _TL_('Feed label management'),\r\n route: 'merchantcenter/import-feed-label',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.FeedLabel && !permissions.dynamic.FeedLabelBlockList,\r\n },\r\n ],\r\n },\r\n {\r\n id: 'mmc-import-steps',\r\n name: _TL_('Import steps'),\r\n route: 'merchantcenter/import-steps',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-import-result',\r\n name: _TL_('Import result'),\r\n route: 'merchantcenter/import-result',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../../../shared';\r\n\r\nexport const promotions = {\r\n id: 'mmc-promotions',\r\n name: _TL_('Merchant center'),\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n children: [\r\n {\r\n id: 'mmc-promotions',\r\n name: _TL_('Promotions'),\r\n route: 'merchantcenter/promotions',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../../../shared';\r\n\r\nexport const settings = {\r\n id: 'mmc-settings',\r\n name: _TL_('Merchant center'),\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n children: [\r\n {\r\n id: 'mmc-settings',\r\n name: _TL_('Settings'),\r\n route: 'merchantcenter/settings',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n children: [\r\n {\r\n id: 'mmc-ftp',\r\n name: _TL_('FTP/SFTP'),\r\n route: 'merchantcenter/settings/ftp',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-shipping',\r\n name: _TL_('Shipping (US only)'),\r\n route: 'merchantcenter/settings/shipping',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-automatic-item-updates',\r\n name: _TL_('Automatic updates'),\r\n route: 'merchantcenter/settings/autoupdates',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-product-listings',\r\n name: _TL_('Product listings'),\r\n route: 'merchantcenter/settings/productlistings',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n },\r\n {\r\n id: 'mmc-aggregators',\r\n name: _TL_('Aggregators'),\r\n route: 'merchantcenter/settings/aggregators',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../../../shared';\r\n\r\nexport const stores = {\r\n id: 'mmc-stores',\r\n name: _TL_('Merchant center'),\r\n scope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'mmc-stores',\r\n name: _TL_('Stores'),\r\n route: 'merchantcenter/stores',\r\n scope: [Scope.Account],\r\n exact: false,\r\n },\r\n {\r\n id: 'mmc-create-store',\r\n name: _TL_('Create store'),\r\n route: 'merchantcenter/create-store',\r\n scope: [Scope.Account],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc_placeholder_stores',\r\n name: _TL_('Placeholder Stores'),\r\n route: 'merchantcenter/placeholderStores',\r\n scope: [Scope.Account],\r\n exact: false,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../../../shared';\r\n\r\nexport const storeSummary = {\r\n id: 'mmc-store-summary',\r\n name: _TL_('Merchant center'),\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n children: [\r\n {\r\n id: 'mmc-store-summary',\r\n name: _TL_('Summary'),\r\n searchAlias: _TL_('Store summary'),\r\n route: 'merchantcenter/store-summary',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n children: [\r\n {\r\n id: 'mmc-store-summary-productissues',\r\n name: _TL_('Product issues'),\r\n route: 'merchantcenter/store-summary/productissues',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-store-summary-feedissues',\r\n name: _TL_('Feed issues'),\r\n route: 'merchantcenter/store-summary/feedissues',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-store-summary-storeissues',\r\n name: _TL_('Store issues'),\r\n route: 'merchantcenter/store-summary/storeissues',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-store-summary-productperf',\r\n name: _TL_('Product performance'),\r\n route: 'merchantcenter/store-summary/productperf',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-store-summary-diagnostics',\r\n name: _TL_('Diagnostics'),\r\n route: 'merchantcenter/store-summary/diagnostics',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.MMCDynamicTab,\r\n },\r\n ],\r\n },\r\n {\r\n id: 'mmc-store-summary-productissuedetails',\r\n name: _TL_('Product issue details'),\r\n searchAlias: _TL_('Product issue details'),\r\n route: 'merchantcenter/store-summary/productissuedetails',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-store-summary-policyviolationdetails',\r\n name: _TL_('Policy violation details'),\r\n searchAlias: _TL_('Policy violation details'),\r\n route: 'merchantcenter/store-summary/policyviolationdetails',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n {\r\n id: 'mmc-store-summary-reviewrejections',\r\n name: _TL_('Review rejections'),\r\n searchAlias: _TL_('Review rejections'),\r\n route: 'merchantcenter/store-summary/reviewrejections',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../../../shared';\r\n\r\nexport const products = {\r\n id: 'mmc-products',\r\n name: _TL_('Merchant center'),\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n checkPermission: permissions => permissions.dynamic.MMCDynamicTab,\r\n children: [\r\n {\r\n id: 'mmc-products',\r\n name: _TL_('Product Explorer'),\r\n route: 'merchantcenter/products',\r\n scope: [Scope.Store],\r\n scopeV2: [ScopeV2.Store],\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.MMCDynamicTab,\r\n },\r\n ],\r\n};\r\n","import { Scope, defaultCCItemProperties, CampaignType } from '../../shared';\r\n\r\nexport const settings = {\r\n id: 'my-settings',\r\n name: _TL_('Preferences'),\r\n oldUIScope: [Scope.Account],\r\n campaignTypes: [CampaignType.None],\r\n children: [\r\n {\r\n ...defaultCCItemProperties,\r\n id: 'my-settings',\r\n name: _TL_('Preferences'),\r\n route: 'Settings',\r\n checkPermission: permission => permission.IsManagementDashboardEnabled,\r\n campaignTypes: [CampaignType.None],\r\n },\r\n ],\r\n};\r\n","export { socialNetworks } from './social-networks';\r\nexport { upTermCondition } from './term-condition';\r\nexport { upPrivacyCookies } from './privacy-cookies';\r\nexport { upConversionTracking } from './conversion-tracking';\r\nexport { upClarity } from './clarity';\r\nexport { upChangeHistory } from './change-history';\r\nexport { upMobileApp } from './mobile-app';\r\n","import { defaultUpItemProperties, isUnifiedProductEnabled, isSmartPageStandalone } from '../../../shared';\r\n\r\nexport const socialNetworks = {\r\n id: 'up-social-networks',\r\n name: _TL_('Social networks'),\r\n children: [\r\n {\r\n ...defaultUpItemProperties,\r\n id: 'up-social-networks',\r\n name: _TL_('Social networks'),\r\n route: 'settings/social-networks',\r\n isUnifiedProductPage: true,\r\n // Currently Smart Page signup user have UP pilots flag, which makes this link display\r\n // so combines with smart page flag to hide it.\r\n checkPermission: p => isUnifiedProductEnabled(p) && !isSmartPageStandalone(p)\r\n && !p.dynamic.SCv2,\r\n },\r\n ],\r\n};\r\n","import { defaultUpItemProperties, isUnifiedProductEnabled, isSmartPageStandalone } from '../../../shared';\r\n\r\nconst upTermsAndConditionLink = 'https://about.ads.microsoft.com/en-us/resources/policies/microsoft-advertising-agreement';\r\n\r\nexport const upTermCondition = {\r\n id: 'up-term-condition',\r\n name: _TL_('Terms and conditions'),\r\n children: [\r\n {\r\n ...defaultUpItemProperties,\r\n id: 'up-term-condition',\r\n name: _TL_('Terms and conditions'),\r\n externalLink: upTermsAndConditionLink,\r\n checkPermission: p => isUnifiedProductEnabled(p) || isSmartPageStandalone(p),\r\n },\r\n ],\r\n};\r\n","import { defaultUpItemProperties, isUnifiedProductEnabled, isSmartPageStandalone } from '../../../shared';\r\n\r\nconst privacyAndCookiesLink = 'https://privacy.microsoft.com/en-us/PrivacyStatement';\r\n\r\nexport const upPrivacyCookies = {\r\n id: 'up-privacy-cookies',\r\n name: _TL_('Privacy and cookies'),\r\n children: [\r\n {\r\n ...defaultUpItemProperties,\r\n id: 'up-privacy-cookies',\r\n name: _TL_('Privacy and cookies'),\r\n externalLink: privacyAndCookiesLink,\r\n checkPermission: p => isUnifiedProductEnabled(p) || isSmartPageStandalone(p),\r\n },\r\n ],\r\n};\r\n","import { defaultUpItemProperties, isUnifiedProductEnabled, isSmartPageStandalone } from '../../../shared';\r\n\r\nexport const upConversionTracking = {\r\n id: 'up-conversion-goals',\r\n name: _TL_('Conversion tracking'),\r\n children: [\r\n {\r\n ...defaultUpItemProperties,\r\n id: 'up-conversion-goals',\r\n name: _TL_('Conversion tracking'),\r\n route: 'ads/conversion-goals',\r\n isUnifiedProductPage: true,\r\n checkPermission: p => isUnifiedProductEnabled(p) && !isSmartPageStandalone(p)\r\n && !p.dynamic.SCv2,\r\n },\r\n ],\r\n};\r\n","import { defaultUpItemProperties, isUnifiedProductEnabled, isSmartPageStandalone } from '../../../shared';\r\n\r\nexport const upClarity = {\r\n id: 'up-clarity',\r\n name: _TL_('Microsoft Clarity'),\r\n children: [\r\n {\r\n ...defaultUpItemProperties,\r\n id: 'up-clarity',\r\n name: _TL_('Microsoft Clarity'),\r\n externalLink: 'https://clarity.microsoft.com',\r\n isUnifiedProductPage: true,\r\n checkPermission: p => isUnifiedProductEnabled(p) && !isSmartPageStandalone(p)\r\n && !p.dynamic.SCv2 && p.IsESCClarityEnabled,\r\n },\r\n ],\r\n};\r\n","import { defaultUpItemProperties, isUnifiedProductEnabled } from '../../../shared';\r\n\r\nexport const upChangeHistory = {\r\n id: 'esc-change-history',\r\n name: _TL_('Change history'),\r\n children: [\r\n {\r\n ...defaultUpItemProperties,\r\n id: 'esc-change-history',\r\n name: _TL_('Change history'),\r\n route: 'ads/change-history',\r\n isUnifiedProductPage: true,\r\n checkPermission: p => isUnifiedProductEnabled(p) && p.dynamic.IsESCChangeHistoryEnabled && p.IsInternalUser,\r\n },\r\n ],\r\n};\r\n","import { defaultUpItemProperties, isUnifiedProductEnabled, isSmartPageStandalone, isUnifiedProductSubscriptionEnabled } from '../../../shared';\r\n\r\nconst mobileAppLink = 'https://go.microsoft.com/fwlink/?linkid=2173918';\r\n\r\nexport const upMobileApp = {\r\n id: 'up-mobile-app',\r\n name: _TL_('Microsoft Advertising mobile app'),\r\n children: [\r\n {\r\n ...defaultUpItemProperties,\r\n id: 'up-mobile-app',\r\n name: _TL_('Microsoft Advertising mobile app'),\r\n externalLink: mobileAppLink,\r\n checkPermission: p => isUnifiedProductEnabled(p) && !isSmartPageStandalone(p) && !isUnifiedProductSubscriptionEnabled(p),\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const mobileApp = {\r\n id: 'app',\r\n name: _TL_('App'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'mobile-app',\r\n name: _TL_('Microsoft Advertising mobile app'),\r\n route: 'advertisingmobile',\r\n externalLink: 'https://go.microsoft.com/fwlink/?linkid=2173918',\r\n },\r\n ],\r\n};\r\n","import { allScopes, alwaysDisplayed } from '../shared';\r\nimport { defaultReports } from './default-reports';\r\nimport { customized } from './my-reports/customize';\r\nimport { shared } from './my-reports/share';\r\nimport { billingAccountLinkPermissions } from '../client-center/billing-payments';\r\n\r\nexport const defaultReportsPage = {\r\n id: 'reports-v4-default-reports',\r\n name: _TL_('Default reports'),\r\n route: 'reports-v4/default-reports',\r\n fixedRoute: 'reports-v4/default-reports',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n children: defaultReports,\r\n checkPermission: permissions => !permissions.dynamic.CustomReportBuilder,\r\n};\r\n\r\nexport const myReportsPage = {\r\n id: 'reports-v4-my-reports',\r\n name: _TL_('Saved customized reports'),\r\n title: _TL_('View reports that you have customized and saved'),\r\n fixedRoute: 'reports-v4/my-reports',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n children: [customized, shared],\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n checkPermission: permissions => !permissions.dynamic.CustomReportBuilder,\r\n};\r\n\r\nexport const editReportPage = {\r\n id: 'reports-v4-edit-report',\r\n name: _TL_('Edit report'),\r\n title: _TL_('View and edit a report'),\r\n route: 'reports-v4/edit/:TaskItemId',\r\n scope: allScopes,\r\n apexViewName: 'reports-v4_edit',\r\n campaignTypes: alwaysDisplayed,\r\n searchable: false,\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n checkPermission: permissions => !permissions.dynamic.CustomReportBuilder,\r\n};\r\n\r\nexport const reportsV4Pages = [\r\n {\r\n id: 'reports-v4',\r\n name: _TL_('Reports'),\r\n route: 'reports-v4',\r\n fixedRoute: 'reports-v4',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => !permissions.dynamic.CustomReportBuilder,\r\n children: [\r\n {\r\n id: 'reports-v4-all-reports',\r\n name: _TL_('All Reports'),\r\n scope: allScopes,\r\n searchable: false,\r\n },\r\n defaultReportsPage,\r\n myReportsPage,\r\n editReportPage,\r\n ],\r\n },\r\n];\r\n","import { performance } from './performance';\r\nimport { extensions } from './extensions';\r\nimport { productAds } from './product-ads';\r\nimport { changeHistory } from './change-history';\r\nimport { targeting } from './targeting';\r\nimport { billingAndBudget } from './billing-and-budget';\r\nimport { advancedInsights } from './advanced-insights';\r\nimport { dynamicSearch } from './dynamic-search';\r\nimport { labels } from './labels';\r\nimport { hotel, property } from './hotel';\r\nimport { appAds } from './app';\r\nimport { assets } from './assets';\r\nimport { marketplaceInsights } from './marketplace-insights';\r\n\r\nexport const defaultReports = [\r\n performance,\r\n extensions,\r\n productAds,\r\n appAds,\r\n assets,\r\n marketplaceInsights,\r\n changeHistory,\r\n targeting,\r\n billingAndBudget,\r\n advancedInsights,\r\n dynamicSearch,\r\n hotel,\r\n property,\r\n labels,\r\n];\r\n","import { available, scope } from './common';\r\nimport { Scope } from '../../shared';\r\n\r\nconst accountLevelScopes = scope.filter(_scope => _scope !== Scope.Customer);\r\n\r\nexport const performance = {\r\n id: 'reports-v4-category-performance',\r\n name: _TL_('Performance'),\r\n title: _TL_('Performance reports give you a closer look at how your campaigns are performing, including details like CTR and impressions.'),\r\n fixedRoute: 'reports-v4/category/performance',\r\n route: 'reports-v4/category/performance',\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reports-v4-accountreport',\r\n name: _TL_('Account'),\r\n title: _TL_('Understand account performance and identify trends.'),\r\n fixedRoute: 'reports-v4/create/accountreport',\r\n route: 'reports-v4/create/accountreport',\r\n searchAlias: _TL_('Account report'),\r\n scope,\r\n available,\r\n apiKey: 'AccountPerformanceReport',\r\n description: _TL_('To observe long-term account performance and trends.'),\r\n }, {\r\n id: 'reports-v4-campaignreport',\r\n name: _TL_('Campaign'),\r\n title: _TL_('See a snapshot of your account, and if there\\'s anything to flag.'),\r\n fixedRoute: 'reports-v4/create/campaignreport',\r\n route: 'reports-v4/create/campaignreport',\r\n searchAlias: _TL_('Campaign report'),\r\n scope,\r\n available,\r\n apiKey: 'CampaignPerformanceReport',\r\n description: _TL_('To view high-level performance statistics and quality attributes for each campaign or account. This is also a quick way to flag any major campaign or account problems.'),\r\n }, {\r\n id: 'reports-v4-adgroupreport',\r\n name: _TL_('Ad group'),\r\n title: _TL_('See if your ad group is meeting your preset goals.'),\r\n fixedRoute: 'reports-v4/create/adgroupreport',\r\n route: 'reports-v4/create/adgroupreport',\r\n searchAlias: _TL_('Ad group report'),\r\n scope,\r\n available,\r\n apiKey: 'AdGroupPerformanceReport',\r\n description: _TL_('To more broadly compare delivery performance statistics by ad group, campaign, or account attributes rather than at the keyword level.'),\r\n }, {\r\n id: 'reports-v4-adreport',\r\n name: _TL_('Ad'),\r\n title: _TL_('See which ads are leading to clicks and conversions.'),\r\n fixedRoute: 'reports-v4/create/adreport',\r\n route: 'reports-v4/create/adreport',\r\n searchAlias: _TL_('Ad report'),\r\n scope,\r\n available,\r\n apiKey: 'AdPerformanceReport',\r\n description: _TL_('To help you determine which ads lead to clicks and conversions, and which are not performing. Having underperforming ads in your account can pull down the quality of your campaigns.'),\r\n }, {\r\n id: 'reports-v4-keywordreport',\r\n name: _TL_('Keyword'),\r\n title: _TL_('See which keywords are leading to clicks.'),\r\n fixedRoute: 'reports-v4/create/keywordreport',\r\n route: 'reports-v4/create/keywordreport',\r\n searchAlias: _TL_('Keyword report'),\r\n scope,\r\n available,\r\n apiKey: 'KeywordPerformanceReport',\r\n description: _TL_('To find out which keywords are triggering your ads and getting clicks. You can also identify keywords that aren\\'t performing well to determine if you want to delete them.'),\r\n }, {\r\n id: 'reports-v4-negativekeywordconflictreport',\r\n name: _TL_('Negative keyword conflicts'),\r\n title: _TL_('See a set of keyword and negative keyword pairs that are blocking your bids from participating in the auction.'),\r\n fixedRoute: 'reports-v4/create/negativekeywordconflictreport',\r\n route: 'reports-v4/create/negativekeywordconflictreport',\r\n searchAlias: _TL_('Negative keyword conflicts report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'NegativeKeywordConflictReport',\r\n description: _TL_('This report tells you which keywords and negative keywords are in conflict, and whether the conflict is at the campaign or ad group level. Use this list to figure out which negative keywords to delete.'),\r\n }, {\r\n id: 'reports-v4-searchtermreport',\r\n name: _TL_('Search term'),\r\n // Duplicate\r\n title: _TL_('See which search terms are causing your ads to display.'),\r\n fixedRoute: 'reports-v4/create/searchtermreport',\r\n route: 'reports-v4/create/searchtermreport',\r\n searchAlias: _TL_('Search term report'),\r\n scope,\r\n available,\r\n apiKey: 'SearchQueryPerformanceReport',\r\n description: _TL_('To see what your audience is searching for when your ads are shown. You can use this information to make informed additions, removals, or edits to both your keyword and negative keyword lists.'),\r\n }, {\r\n id: 'reports-v4-shareofvoicereport',\r\n name: _TL_('Share of voice'),\r\n title: _TL_('See estimated impressions you might be losing.'),\r\n fixedRoute: 'reports-v4/create/shareofvoicereport',\r\n route: 'reports-v4/create/shareofvoicereport',\r\n searchAlias: _TL_('Share of voice report'),\r\n scope,\r\n available,\r\n apiKey: 'ShareOfVoiceReport',\r\n description: _TL_('To view the percentage of impression share (%) you have in the marketplace, find out if you are missing opportunities based on your current campaign settings, and make changes to improve impression share. '),\r\n }, {\r\n id: 'reports-v4-desturlreport',\r\n name: _TL_('Destination URL'),\r\n title: _TL_('See how your landing pages are performing.'),\r\n fixedRoute: 'reports-v4/create/desturlreport',\r\n route: 'reports-v4/create/desturlreport',\r\n searchAlias: _TL_('Destination URL report'),\r\n scope,\r\n available,\r\n apiKey: 'DestinationURLPerformanceReport',\r\n description: _TL_('To identify landing pages that met audience expectations, resulting in high click or conversion ratios.'),\r\n }, {\r\n id: 'reports-v4-weburlreport',\r\n name: _TL_('Website URL (publisher)'),\r\n // Duplicate\r\n title: _TL_('See performance data for both search and content websites where your ads appear.'),\r\n fixedRoute: 'reports-v4/create/weburlreport',\r\n route: 'reports-v4/create/weburlreport',\r\n searchAlias: _TL_('Website URL (publisher) report'),\r\n scope,\r\n available,\r\n apiKey: 'PublisherUsagePerformanceReport',\r\n description: _TL_('To see if any website URLs aren\\'t performing well enough for your campaign or ad group target settings. For example, if ad impressions at those URLs yield a low click-through-rate, then you might decide to exclude those websites from your campaign.'),\r\n }, {\r\n id: 'reports-v4-addynamictextreport',\r\n name: _TL_('Ad dynamic text'),\r\n title: _TL_('See which ad text strings are doing well.'),\r\n fixedRoute: 'reports-v4/create/addynamictextreport',\r\n route: 'reports-v4/create/addynamictextreport',\r\n searchAlias: _TL_('Ad dynamic text report'),\r\n scope,\r\n available,\r\n apiKey: 'AdDynamicTextPerformanceReport',\r\n description: _TL_('To identify which dynamic text strings are performing well and which strings you should consider changing.'),\r\n }, {\r\n id: 'reports-v4-audiencesreport',\r\n name: _TL_('Audiences'),\r\n title: _TL_('See how the ad groups that are associated with remarketing lists are performing.'),\r\n fixedRoute: 'reports-v4/create/audiencesreport',\r\n route: 'reports-v4/create/audiencesreport',\r\n searchAlias: _TL_('Audiences report'),\r\n scope,\r\n available,\r\n apiKey: 'AudiencePerformanceReport',\r\n description: _TL_('To evaluate performance of remarketing campaigns.'),\r\n }, {\r\n id: 'reports-v4-goalsreport',\r\n name: _TL_('Goals'),\r\n title: _TL_('See data on how people behave on your website.'),\r\n fixedRoute: 'reports-v4/create/goalsreport',\r\n route: 'reports-v4/create/goalsreport',\r\n searchAlias: _TL_('Goals report'),\r\n scope,\r\n available,\r\n apiKey: 'GoalsAndFunnelsReport',\r\n description: _TL_('To understand which campaigns and keywords are leading users to complete a specific type of conversion action. Note: these reports only show data for text ads and do not include shopping, dynamic search ads and audience campaigns conversion data.'),\r\n }, {\r\n id: 'reports-v4-conversionsreport',\r\n name: _TL_('Conversions'),\r\n title: _TL_('See conversion data for your campaigns during a specific time period.'),\r\n fixedRoute: 'reports-v4/create/conversionsreport',\r\n route: 'reports-v4/create/conversionsreport',\r\n searchAlias: _TL_('Conversions report'),\r\n scope,\r\n available,\r\n apiKey: 'ConversionPerformanceReport',\r\n description: _TL_('To understand which campaigns and keywords are leading customers to complete conversion actions. Note: these reports only show data for text ads and do not include shopping, dynamic search ads and audience campaigns conversion data.'),\r\n }, {\r\n id: 'reports-v4-feeditemreport',\r\n name: _TL_('Feed item'),\r\n title: _TL_('See performance on feed item level.'),\r\n fixedRoute: 'reports-v4/create/feeditemreport',\r\n route: 'reports-v4/create/feeditemreport',\r\n searchAlias: _TL_('Feed item report'),\r\n scope,\r\n available,\r\n apiKey: 'FeedItemPerformanceReport',\r\n description: _TL_('To view detailed performance statistics for each individual item from the Vertical ads inventory including the deleted and inactive Dynamic Data Feed items.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.ReportingUpliftFeedItemReport,\r\n }, {\r\n id: 'reports-v4-conversionmodelcomparereport',\r\n name: _TL_('Conversion model compare'),\r\n title: _TL_('See influence of conversion attribution models.'),\r\n fixedRoute: 'reports-v4/create/conversionmodelcomparereport',\r\n route: 'reports-v4/create/conversionmodelcomparereport',\r\n searchAlias: _TL_('Conversion model compare report'),\r\n scope,\r\n available,\r\n apiKey: 'ConversionModelCompareReport',\r\n description: _TL_('To discover how different conversion attribution models impact the valuation of your campaigns.'),\r\n }, {\r\n id: 'reports-v4-msxaccountperformancereport',\r\n name: _TL_('MSX account performance'),\r\n title: _TL_('Access and review daily revenue trends.'),\r\n fixedRoute: 'reports-v4/create/msxaccountperformancereport',\r\n route: 'reports-v4/create/msxaccountperformancereport',\r\n searchAlias: _TL_('MSX account performance report'),\r\n scope,\r\n available,\r\n apiKey: 'MSXAccountPerformanceReport',\r\n description: _TL_('To access and review daily revenue trends.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.IsMSXAccountPerformanceReportEnabled,\r\n }, {\r\n id: 'reports-v4-SearchInsightPerformanceReport',\r\n name: _TL_('Search terms insights'),\r\n // Duplicate\r\n title: _TL_('See which search insight are causing your ads to display.'),\r\n fixedRoute: 'reports-v4/create/SearchInsightPerformanceReport',\r\n route: 'reports-v4/create/SearchInsightPerformanceReport',\r\n searchAlias: _TL_('Search terms insights report'),\r\n scope: accountLevelScopes,\r\n available,\r\n apiKey: 'SearchInsightPerformanceReport',\r\n description: _TL_('To gain valuable insights into how your customers search for your business. These insights analyze the specific search terms that triggered your ads during a selected time frame. The terms are then grouped into relevant search categories, providing key performance metrics for each category. Only Performance Max campaigns are supported at this time.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.SearchInsightPerformanceReport,\r\n }, {\r\n id: 'reports-v4-CombinationPerformanceReport',\r\n name: _TL_('Combination performance'),\r\n title: _TL_('Identify the most frequently occurring asset combinations and provide a view of your combination performance.'),\r\n fixedRoute: 'reports-v4/create/CombinationPerformanceReport',\r\n route: 'reports-v4/create/CombinationPerformanceReport',\r\n searchAlias: _TL_('Combination performance report'),\r\n scope,\r\n available,\r\n apiKey: 'CombinationPerformanceReport',\r\n description: _TL_('To identify the most frequently occurring asset combinations and provide a view of your combination performance.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.CombinationReport,\r\n },\r\n ],\r\n};\r\n","import { allScopes } from '../../shared';\r\n\r\nexport const available = true;\r\nexport const scope = allScopes;\r\n","import { available, scope } from './common';\r\n\r\nexport const extensions = {\r\n id: 'reports-v4-category-extensions',\r\n name: _TL_('Ad extensions'),\r\n title: _TL_('Ad extension reports give you a closer look at how each ad extension is performing based on click type for ads and keywords and ad extension properties for ad groups.'),\r\n fixedRoute: 'reports-v4/category/extensions',\r\n route: 'reports-v4/category/extensions',\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reports-v4-extensionkeywordreport',\r\n name: _TL_('Ad extension by keyword'),\r\n title: _TL_('See how your extensions perform for your keywords.'),\r\n fixedRoute: 'reports-v4/create/extensionkeywordreport',\r\n route: 'reports-v4/create/extensionkeywordreport',\r\n searchAlias: _TL_('Ad extension by keyword report'),\r\n scope,\r\n available,\r\n apiKey: 'AdExtensionByKeywordReport',\r\n description: _TL_('To understand how different click types are performing for each keyword when different ad extensions are shown in the ad.'),\r\n }, {\r\n id: 'reports-v4-extensionadreport',\r\n name: _TL_('Ad extension by ad'),\r\n title: _TL_('See how your extensions perform for your ads.'),\r\n fixedRoute: 'reports-v4/create/extensionadreport',\r\n route: 'reports-v4/create/extensionadreport',\r\n searchAlias: _TL_('Ad extension by ad report'),\r\n scope,\r\n available,\r\n apiKey: 'AdExtensionByAdReport',\r\n description: _TL_('To understand how different click types are performing for each ad when the ad is served with different ad extensions.'),\r\n }, {\r\n id: 'reports-v4-adextensiondetailreport',\r\n name: _TL_('Ad extension details'),\r\n title: _TL_('See how engaging your ad extension items are.'),\r\n fixedRoute: 'reports-v4/create/adextensiondetailreport',\r\n route: 'reports-v4/create/adextensiondetailreport',\r\n searchAlias: _TL_('Ad extension details report'),\r\n scope,\r\n available,\r\n apiKey: 'AdExtensionDetailReport',\r\n description: _TL_('To understand how different ad extension properties are performing when different ad extensions are shown in the ad.'),\r\n }, {\r\n title: _TL_('See duration and phone spend details for each forwarded call.'),\r\n id: 'reports-v4-callforwarddetailreport',\r\n // Duplicate\r\n name: _TL_('Call forwarding detail'),\r\n fixedRoute: 'reports-v4/create/callforwarddetailreport',\r\n route: 'reports-v4/create/callforwarddetailreport',\r\n searchAlias: _TL_('Call forwarding detail report'),\r\n scope,\r\n available,\r\n apiKey: 'CallDetailReport',\r\n description: _TL_('To understand how the accounts, campaigns, or ad groups are performing with call extensions.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.CallMetering,\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const productAds = {\r\n id: 'reports-v4-category-productads',\r\n name: _TL_('Product ads'),\r\n title: _TL_('Product ad reports give you a closer look at how your Bing Shopping campaigns are performing based on product partition and product offer data.'),\r\n fixedRoute: 'reports-v4/category/productads',\r\n route: 'reports-v4/category/productads',\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reports-v4-productpartitionreport',\r\n name: _TL_('Product partition'),\r\n title: _TL_('See the performance of your Product Groups in Shopping campaigns '),\r\n fixedRoute: 'reports-v4/create/productpartitionreport',\r\n route: 'reports-v4/create/productpartitionreport',\r\n searchAlias: _TL_('Product partition report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductPartitionPerformanceReport',\r\n description: _TL_('To see the performance data for the product groups in your Shopping campaigns and to optimize your campaigns accordingly .'),\r\n }, {\r\n id: 'reports-v4-productpartitionunitreport',\r\n name: _TL_('Product partition unit'),\r\n title: _TL_('See product partition unit data of your Product Groups in Shopping campaigns'),\r\n fixedRoute: 'reports-v4/create/productpartitionunitreport',\r\n route: 'reports-v4/create/productpartitionunitreport',\r\n searchAlias: _TL_('Product partition unit report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductPartitionUnitPerformanceReport',\r\n description: _TL_('To see product partition unit data of your Product Groups in Shopping campaigns.'),\r\n }, {\r\n id: 'reports-v4-productdimensionreport',\r\n name: _TL_('Product dimension'),\r\n title: _TL_('See the performance of your Products in Shopping campaigns '),\r\n fixedRoute: 'reports-v4/create/productdimensionreport',\r\n route: 'reports-v4/create/productdimensionreport',\r\n searchAlias: _TL_('Product dimension report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductDimensionPerformanceReport',\r\n description: _TL_('To figure out which of your products are triggering ads and getting most clicks and optimize the ones not performing so well. '),\r\n }, {\r\n id: 'reports-v4-productsearchtermreport',\r\n name: _TL_('Product search term'),\r\n title: _TL_('See which search terms are causing your ads to display.'),\r\n fixedRoute: 'reports-v4/create/productsearchtermreport',\r\n route: 'reports-v4/create/productsearchtermreport',\r\n searchAlias: _TL_('Product search term report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductSearchQueryPerformanceReport',\r\n description: _TL_('To see what your audience is searching for when your Product ads are shown.'),\r\n }, {\r\n id: 'reports-v4-productmatchcountreport',\r\n name: _TL_('Product match count'),\r\n title: _TL_('See how products are distributed acrocss given product tree.'),\r\n fixedRoute: 'reports-v4/create/productmatchcountreport',\r\n route: 'reports-v4/create/productmatchcountreport',\r\n searchAlias: _TL_('Product match count report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductMatchCountReport',\r\n description: _TL_('To see if you are covering and bidding across your Microsoft Shopping campaigns inventory. Note that this only provides the matched data for your current product group within active campaigns, and you cannot obtain historical views.'),\r\n }, {\r\n id: 'reports-v4-productnegativekeywordreport',\r\n name: _TL_('Product negative keyword conflicts'),\r\n title: _TL_('See a set of negative keyword pairs that are blocking your products from participating in the auction.'),\r\n fixedRoute: 'reports-v4/create/productnegativekeywordreport',\r\n route: 'reports-v4/create/productnegativekeywordreport',\r\n searchAlias: _TL_('Product negative keyword conflicts report'),\r\n scope,\r\n available,\r\n apiKey: 'ProductNegativeKeywordConflictReport',\r\n description: _TL_('This report tells you which products and negative keywords are in conflict, and whether the conflict is at the campaign or ad group level. Use this list to figure out which negative keywords to delete.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const changeHistory = {\r\n id: 'reports-v4-category-changehistory',\r\n name: _TL_('Change history'),\r\n title: _TL_('See the changes that have been made to your campaigns and users within an account, over a period you specify.'),\r\n fixedRoute: 'reports-v4/category/changehistory',\r\n route: 'reports-v4/category/changehistory',\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reports-v4-changehistoryreport',\r\n name: _TL_('Change history'),\r\n title: _TL_('See a list of changes that have been made to your campaigns.'),\r\n fixedRoute: 'reports-v4/create/changehistoryreport',\r\n route: 'reports-v4/create/changehistoryreport',\r\n searchAlias: _TL_('Change history report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'SearchCampaignChangeHistoryReport',\r\n description: _TL_('To discover when changes to an account were made, as well as which user made the changes.'),\r\n }, {\r\n id: 'reports-v4-userrolechangehistoryreport',\r\n name: _TL_('User role change history'),\r\n title: _TL_('See what changes have been made to individual user profiles in your accounts.'),\r\n fixedRoute: 'reports-v4/create/userrolechangehistoryreport',\r\n route: 'reports-v4/create/userrolechangehistoryreport',\r\n searchAlias: _TL_('User role change history report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'UserRoleChangeHistoryReport',\r\n description: _TL_('See what changes have been made to individual user profiles in your accounts.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reports-v4-fraudchangehistoryreport',\r\n name: _TL_('Fraud change history by user'),\r\n title: _TL_('See a list of changes, filtered by user, that shows potentially fraudulent activity.'),\r\n fixedRoute: 'reports-v4/create/fraudchangehistoryreport',\r\n route: 'reports-v4/create/fraudchangehistoryreport',\r\n searchAlias: _TL_('Fraud change history by user report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'FraudChangeHistoryReport',\r\n description: _TL_('See a list of changes, filtered by user, that shows potentially fraudulent activity.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\nimport { Scope } from '../../shared';\r\n\r\nconst accountLevelScopes = scope.filter(_scope => _scope !== Scope.Customer);\r\n\r\nexport const targeting = {\r\n id: 'reports-v4-category-targeting',\r\n name: _TL_('Targeting'),\r\n title: _TL_('See how your campaigns are doing among the people and places who are seeing your ads.'),\r\n fixedRoute: 'reports-v4/category/targeting',\r\n route: 'reports-v4/category/targeting',\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reports-v4-ageandgenderreport',\r\n name: _TL_('Age and gender'),\r\n // Duplicate\r\n title: _TL_('See total impressions and clicks for each campaign or ad group, organized by gender and age group.'),\r\n fixedRoute: 'reports-v4/create/ageandgenderreport',\r\n route: 'reports-v4/create/ageandgenderreport',\r\n searchAlias: _TL_('Age and gender report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AgeGenderAudienceReport',\r\n description: _TL_('To discover how your campaigns and ad groups are resonating with different age groups and genders.'),\r\n }, {\r\n id: 'reports-v4-genrereport',\r\n name: _TL_('Genre'),\r\n // Duplicate\r\n title: _TL_('Genre.'),\r\n fixedRoute: 'reports-v4/create/dealgenrereport',\r\n route: 'reports-v4/create/dealgenrereport',\r\n searchAlias: _TL_('Genre report'),\r\n scope: accountLevelScopes,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'GenrePerformanceReport',\r\n description: _TL_('To find out which genre targets have the best ad performance. You can then validate whether your genre targeting is successful and identify opportunities for improvements.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.AIMCampaign && permissions.dynamic.XandrVideoCampaigns && permissions.dynamic.GenreTargets,\r\n }, {\r\n id: 'reports-v4-professionaldemographicsreport',\r\n name: _TL_('Professional demographics'),\r\n title: _TL_('See total impressions and clicks for each campaign or ad group, organized by company, industry, and job function.'),\r\n fixedRoute: 'reports-v4/create/professionaldemographicsreport',\r\n route: 'reports-v4/create/professionaldemographicsreport',\r\n searchAlias: _TL_('Professional demographics report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProfessionalDemographicsAudienceReport',\r\n description: _TL_('To discover how your campaigns and ad groups are resonating with different companies, industries, and job functions.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.LinkedInTargeting || !!permissions.dynamic.AIMCampaign,\r\n }, {\r\n id: 'reports-v4-userlocationreport',\r\n name: _TL_('User location'),\r\n // Duplicate\r\n title: _TL_('See total impressions and clicks for each ad group, organized by the locations where your ads were shown.'),\r\n fixedRoute: 'reports-v4/create/userlocationreport',\r\n route: 'reports-v4/create/userlocationreport',\r\n searchAlias: _TL_('User location report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'UserLocationPerformanceReport',\r\n description: _TL_('To see where your traffic is coming from broken out by the physical location and the location people are searching for. You can then validate whether your location targeting strategy is successful, and identify opportunities to improve.'),\r\n }, {\r\n id: 'reports-v4-geographicreport',\r\n name: _TL_('Geographic'),\r\n // Duplicate\r\n title: _TL_('See total impressions and clicks for each ad group, organized by the locations where your ads were shown.'),\r\n fixedRoute: 'reports-v4/create/geographicreport',\r\n route: 'reports-v4/create/geographicreport',\r\n searchAlias: _TL_('Geographic report'),\r\n scope,\r\n available,\r\n apiKey: 'GeographicPerformanceReport',\r\n description: _TL_('To see where your traffic is coming from: the physical location of the people searching for your ad or the locations people are searching for. You can then validate whether your location targeting strategy is successful and identify opportunities to improve.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\nimport { billingAccountLinkPermissions } from '../../client-center/billing-payments';\r\n\r\nexport const billingAndBudget = {\r\n id: 'reports-v4-category-billingandbudget',\r\n name: _TL_('Billing and budget'),\r\n title: _TL_('See how you are spending your budget, and your most recent billing statement.'),\r\n fixedRoute: 'reports-v4/category/billingandbudget',\r\n route: 'reports-v4/category/billingandbudget',\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reports-v4-budgetreport',\r\n name: _TL_('Budget'),\r\n title: _TL_('See how you’ve spent your budget over a specific date range.'),\r\n fixedRoute: 'reports-v4/create/budgetreport',\r\n route: 'reports-v4/create/budgetreport',\r\n searchAlias: _TL_('Budget report'),\r\n scope,\r\n available,\r\n apiKey: 'BudgetSummaryReport',\r\n description: _TL_('To help control and manage your advertising spend for a particular month.'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n }, {\r\n id: 'reports-v4-customerinvoicereport',\r\n name: _TL_('Manager account invoice billing'),\r\n title: _TL_('See your detailed billing history.'),\r\n fixedRoute: 'reports-v4/create/customerinvoicereport',\r\n route: 'reports-v4/create/customerinvoicereport',\r\n searchAlias: _TL_('Manager account invoice billing report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'CustomerInvoiceReport',\r\n description: _TL_('See your detailed billing history.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reports-v4-billingstatementreport',\r\n name: _TL_('Billing statement'),\r\n title: _TL_('See your most recent billing statement.'),\r\n fixedRoute: 'reports-v4/create/billingstatementreport',\r\n route: 'reports-v4/create/billingstatementreport',\r\n searchAlias: _TL_('Billing statement report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'BillingStatementReport',\r\n description: _TL_('To view an overall summary of your billing information.'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n }, {\r\n id: 'reports-v4-insertionorderreport',\r\n name: _TL_('Insertion order (IO)'),\r\n title: _TL_('A summary of your IO expenditures over a specified timeframe.'),\r\n fixedRoute: 'reports-v4/create/insertionorderreport',\r\n route: 'reports-v4/create/insertionorderreport',\r\n searchAlias: _TL_('Insertion order report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'InsertionOrderReport',\r\n description: _TL_('To view your budget changes over time and your IO expenditures for reconciliation purposes.'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n checkPermission: /* istanbul ignore next */ permissions => !!permissions.dynamic.InsertionOrderReport,\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const advancedInsights = {\r\n id: 'reports-v4-category-advancedinsights',\r\n name: _TL_('Advanced insights'),\r\n title: _TL_('Find advanced insights into how your advertisers are performing'),\r\n fixedRoute: 'reports-v4/category/advancedinsights',\r\n route: 'reports-v4/category/advancedinsights',\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n children: [\r\n {\r\n id: 'reports-v4-sixweekaccountactivityreport',\r\n name: _TL_('Account - 6 weeks'),\r\n title: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n fixedRoute: 'reports-v4/create/sixweekaccountactivityreport',\r\n route: 'reports-v4/create/sixweekaccountactivityreport',\r\n searchAlias: _TL_('Account - 6 weeks report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AccountPerformanceReport-SixWeeks',\r\n description: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reports-v4-twomonthaccountactivityreport',\r\n name: _TL_('Account - 2 months (MoM)'),\r\n title: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n fixedRoute: 'reports-v4/create/twomonthaccountactivityreport',\r\n route: 'reports-v4/create/twomonthaccountactivityreport',\r\n searchAlias: _TL_('Account - 2 months (MoM) report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AccountPerformanceReport-TwoMonths',\r\n description: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reports-v4-twoyearaccountactivityreport',\r\n name: _TL_('Account - 2 years (YoY)'),\r\n title: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n fixedRoute: 'reports-v4/create/twoyearaccountactivityreport',\r\n route: 'reports-v4/create/twoyearaccountactivityreport',\r\n searchAlias: _TL_('Account - 2 years (YoY) report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AccountPerformanceReport-TwoYears',\r\n description: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reports-v4-advancedinsightsshareofvoicereport',\r\n name: _TL_('Account - Share of voice'),\r\n title: _TL_('See estimated impressions you might be losing.'),\r\n fixedRoute: 'reports-v4/create/advancedinsightsshareofvoicereport',\r\n route: 'reports-v4/create/advancedinsightsshareofvoicereport',\r\n searchAlias: _TL_('Account - Share of voice report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AccountPerformanceReport-ShareOfVoice',\r\n description: _TL_('To view impression share (%) of successful bids for each keyword, and identify opportunities to increase impression share.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const dynamicSearch = {\r\n id: 'reports-v4-category-dynamicsearch',\r\n name: _TL_('Dynamic search ads'),\r\n title: _TL_('Dynamic Search ads reports allow you to see a holistic view of your campaigns’ dynamic ad target, category, and search term performance.'),\r\n fixedRoute: 'reports-v4/category/dynamicsearch',\r\n route: 'reports-v4/category/dynamicsearch',\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.DynamicSearchAdsV1,\r\n children: [\r\n {\r\n id: 'reports-v4-dsadautotargetreport',\r\n name: _TL_('Dynamic search ad auto target'),\r\n title: _TL_('See the clicks, impressions, and other performance metrics of each of your dynamic ad targets.'),\r\n fixedRoute: 'reports-v4/create/dsadautotargetreport',\r\n route: 'reports-v4/create/dsadautotargetreport',\r\n searchAlias: _TL_('Dynamic search ad auto target'),\r\n scope,\r\n available,\r\n apiKey: 'DSAAutoTargetPerformanceReport',\r\n description: _TL_('To understand how your dynamic ad targets are performing and where bid adjustments may be useful.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.DynamicSearchAdsV1,\r\n }, {\r\n id: 'reports-v4-dsadcategoryreport',\r\n name: _TL_('Dynamic search ad category'),\r\n title: _TL_('See the clicks, impressions, and other performance generated from your website.'),\r\n fixedRoute: 'reports-v4/create/dsadcategoryreport',\r\n route: 'reports-v4/create/dsadcategoryreport',\r\n searchAlias: _TL_('Dynamic search ad category report'),\r\n scope,\r\n available,\r\n apiKey: 'DSACategoryPerformanceReport',\r\n description: _TL_('To check the performance of your existing category targets or to find new categories worth targeting. '),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.DynamicSearchAdsV1,\r\n }, {\r\n id: 'reports-v4-dsadsearchtermreport',\r\n name: _TL_('Dynamic search ad search term'),\r\n title: _TL_('See search terms that triggered your dynamic search ads and their corresponding headlines, final URLs, and associated performance metrics.'),\r\n fixedRoute: 'reports-v4/create/dsadsearchtermreport',\r\n route: 'reports-v4/create/dsadsearchtermreport',\r\n searchAlias: _TL_('Dynamic search ad search term report'),\r\n scope,\r\n available,\r\n apiKey: 'DSASearchQueryPerformanceReport',\r\n description: _TL_(\"To see how your ads perform against search terms. The data can help you find negative keywords (so that you're not spending money targeting the wrong customer), as well as the right keywords that create conversions. \"),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.DynamicSearchAdsV1,\r\n },\r\n ],\r\n};\r\n","import { allScopes, Scope } from '../../shared';\r\n\r\nconst accountLevelScopes = allScopes.filter(scope => scope !== Scope.Customer);\r\n\r\n\r\nexport const labels = {\r\n id: 'reports-v4-labels',\r\n name: _TL_('Labels'),\r\n dropdown: 'right',\r\n scope: allScopes,\r\n route: 'reports-v4/category/labels',\r\n children: [\r\n {\r\n id: 'reports-v4-report-labels-keyword',\r\n name: _TL_('Labels - Keyword'),\r\n searchAlias: _TL_('Labels - Keyword report'),\r\n route: 'reports-v4/create/labelskeywordreport',\r\n scope: accountLevelScopes,\r\n apiKey: 'LabelKeywordReport',\r\n description: _TL_('See performance data based on keyword labels and see if there are any patterns of performance based on labels.'),\r\n },\r\n {\r\n id: 'reports-v4-report-labels-ad',\r\n name: _TL_('Labels - Ad'),\r\n searchAlias: _TL_('Labels - Ad report'),\r\n route: 'reports-v4/create/labelsadreport',\r\n scope: accountLevelScopes,\r\n apiKey: 'LabelAdReport',\r\n description: _TL_('See performance data based on ad labels and see if there are any patterns of performance based on labels.'),\r\n },\r\n {\r\n id: 'reports-v4-report-labels-ad-group',\r\n name: _TL_('Labels - Ad group'),\r\n searchAlias: _TL_('Labels - Ad group report'),\r\n route: 'reports-v4/create/labelsadgroupreport',\r\n scope: accountLevelScopes,\r\n apiKey: 'LabelAdGroupReport',\r\n description: _TL_('See performance data based on ad group labels and see if there are any patterns of performance based on labels.'),\r\n },\r\n {\r\n id: 'reports-v4-report-labels-campaign',\r\n name: _TL_('Labels - Campaign'),\r\n searchAlias: _TL_('Labels - Campaign report'),\r\n route: 'reports-v4/create/labelscampaignreport',\r\n scope: accountLevelScopes,\r\n apiKey: 'LabelCampaignReport',\r\n description: _TL_('See performance data based on campaign labels and see if there are any patterns of performance based on labels.'),\r\n },\r\n {\r\n id: 'report-v4-labels-account',\r\n name: _TL_('Labels - Account'),\r\n searchAlias: _TL_('Labels - Account report'),\r\n route: 'reports-v4/create/labelsaccountreport',\r\n scope: [Scope.Customer],\r\n apiKey: 'LabelAccountReport',\r\n description: _TL_('See performance data based on account labels and see if there are any patterns of performance based on labels.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const hotel = {\r\n id: 'reports-v4-category-hotel',\r\n name: _TL_('Hotel'),\r\n title: _TL_('Hotel'),\r\n fixedRoute: 'reports-v4/category/hotel',\r\n route: 'reports-v4/category/hotel',\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && !permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n children: [\r\n {\r\n id: 'reports-v4-hoteldimensionreport',\r\n name: _TL_('Hotel dimension'),\r\n title: _TL_('Hotel dimension'),\r\n fixedRoute: 'reports-v4/create/hoteldimensionreport',\r\n route: 'reports-v4/create/hoteldimensionreport',\r\n searchAlias: _TL_('Hotel dimension report'),\r\n scope,\r\n available,\r\n apiKey: 'HotelDimensionPerformanceReport',\r\n description: _TL_('To figure out which of your hotels are triggering ads and getting most clicks and optimize the ones not performing so well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.HotelCampaign,\r\n },\r\n {\r\n id: 'reports-v4-hotelgroupreport',\r\n name: _TL_('Hotel group'),\r\n title: _TL_('Hotel group'),\r\n fixedRoute: 'reports-v4/create/hotelgroupperformancereport',\r\n route: 'reports-v4/create/hotelgroupperformancereport',\r\n searchAlias: _TL_('Hotel group report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'HotelGroupPerformanceReport',\r\n description: _TL_('To figure out which of your hotels are triggering ads and getting most clicks and optimize the ones not performing so well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.HotelCampaign,\r\n },\r\n {\r\n id: 'reports-v4-matchingreport',\r\n name: _TL_('Matching'),\r\n title: _TL_('Matching'),\r\n fixedRoute: 'reports-v4/create/matchingreport',\r\n route: 'reports-v4/create/matchingreport',\r\n searchAlias: _TL_('Matching report'),\r\n scope,\r\n scopeFilterLevel: ['Account', 'Campaign'],\r\n available,\r\n apiKey: 'UIMatchingReport',\r\n description: _TL_('To see issues which may be preventing your hotels from serving. '),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.HotelCampaign,\r\n },\r\n {\r\n id: 'reports-v4-pricefeedstatusreport',\r\n name: _TL_('Price feed status'),\r\n title: _TL_('Price feed status'),\r\n fixedRoute: 'reports-v4/create/pricefeedstatusreport',\r\n route: 'reports-v4/create/pricefeedstatusreport',\r\n searchAlias: _TL_('Price feed status report'),\r\n scope,\r\n scopeFilterLevel: ['Account', 'Campaign'],\r\n available,\r\n apiKey: 'UIPriceFeedStatusReport',\r\n description: _TL_('To track the status of your pricing updates (transactions).'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.HotelCampaign,\r\n },\r\n ],\r\n};\r\n\r\nexport const property = {\r\n id: 'reports-v4-category-property',\r\n name: _TL_('Property'),\r\n title: _TL_('Property'),\r\n fixedRoute: 'reports-v4/category/property',\r\n route: 'reports-v4/category/property',\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n children: [\r\n {\r\n id: 'reports-v4-propertydimensionreport',\r\n name: _TL_('Property dimension'),\r\n title: _TL_('Property dimension'),\r\n fixedRoute: 'reports-v4/create/propertydimensionreport',\r\n route: 'reports-v4/create/propertydimensionreport',\r\n searchAlias: _TL_('Property dimension report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'HotelDimensionPerformanceReport',\r\n description: _TL_('To figure out which of your properties are triggering ads and getting most clicks and optimize the ones not performing so well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n },\r\n {\r\n id: 'reports-v4-propertygroupreport',\r\n name: _TL_('Property group'),\r\n title: _TL_('Property group'),\r\n fixedRoute: 'reports-v4/create/propertygroupperformancereport',\r\n route: 'reports-v4/create/propertygroupperformancereport',\r\n searchAlias: _TL_('Property group report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'HotelGroupPerformanceReport',\r\n description: _TL_('To figure out which of your properties are triggering ads and getting most clicks and optimize the ones not performing so well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n },\r\n {\r\n id: 'reports-v4-matchingreport',\r\n name: _TL_('Matching'),\r\n title: _TL_('Matching'),\r\n fixedRoute: 'reports-v4/create/matchingreport',\r\n route: 'reports-v4/create/matchingreport',\r\n searchAlias: _TL_('Matching report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n scopeFilterLevel: ['Account', 'Campaign'],\r\n available,\r\n apiKey: 'UIMatchingReport',\r\n description: _TL_('To see issues which may be preventing your hotels from serving. '),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n },\r\n {\r\n id: 'reports-v4-pricefeedstatusreport',\r\n name: _TL_('Price feed status'),\r\n title: _TL_('Price feed status'),\r\n fixedRoute: 'reports-v4/create/pricefeedstatusreport',\r\n route: 'reports-v4/create/pricefeedstatusreport',\r\n searchAlias: _TL_('Price feed status report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n scopeFilterLevel: ['Account', 'Campaign'],\r\n available,\r\n apiKey: 'UIPriceFeedStatusReport',\r\n description: _TL_('To track the status of your pricing updates (transactions).'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const appAds = {\r\n id: 'reports-v4-category-app',\r\n name: _TL_('App ads'),\r\n title: _TL_('App ads'),\r\n fixedRoute: 'reports-v4/category/appads',\r\n route: 'reports-v4/category/appads',\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.AppAdsCampaignPhaseOne || permissions.dynamic.UnifiedAppAds,\r\n children: [\r\n {\r\n id: 'reports-v4-appsperformancereport',\r\n name: _TL_('App performance'),\r\n title: _TL_('See the performance of your app campaigns.'),\r\n fixedRoute: 'reports-v4/create/appperformancereport',\r\n route: 'reports-v4/create/appperformancereport',\r\n searchAlias: _TL_('App performance report'),\r\n scope,\r\n available,\r\n apiKey: 'AppsPerformanceReport',\r\n description: _TL_('To see the performance of your app campaigns.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const assets = {\r\n id: 'reports-v4-category-assets',\r\n name: _TL_('Assets'),\r\n title: _TL_('Assets'),\r\n fixedRoute: 'reports-v4/category/assets',\r\n route: 'reports-v4/category/assets',\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.DefaultAssetReport,\r\n children: [\r\n {\r\n id: 'reports-v4-assetperformancereport',\r\n name: _TL_('Asset performance'),\r\n title: _TL_('View the performance of your search and Performance Max assets for each account, campaign, or ad group.'),\r\n fixedRoute: 'reports-v4/create/assetperformancereport',\r\n route: 'reports-v4/create/assetperformancereport',\r\n searchAlias: _TL_('Asset performance report'),\r\n scope,\r\n available,\r\n apiKey: 'AssetPerformanceReport',\r\n description: _TL_('To view the performance of your search and Performance Max assets for each account, campaign, or ad group.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const marketplaceInsights = {\r\n id: 'reports-v4-category-marketplaceinsights',\r\n name: _TL_('Marketplace Insights'),\r\n title: _TL_('Marketplace Insights'),\r\n fixedRoute: 'reports-v4/category/marketplaceinsights',\r\n route: 'reports-v4/category/marketplaceinsights',\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.DefaultCustomReport,\r\n children: [\r\n {\r\n id: 'reports-v4-searchverticalcategoryinsightsreport',\r\n name: _TL_('Category insights'),\r\n title: _TL_('To view the performance of industry categories on the Bing marketplace. This includes search and syndicated traffic.'),\r\n fixedRoute: 'reports-v4/create/searchverticalcategoryinsightsreport',\r\n route: 'reports-v4/create/searchverticalcategoryinsightsreport',\r\n searchAlias: _TL_('Search vertical category insights report'),\r\n scope,\r\n available,\r\n apiKey: 'SearchVerticalCategoryInsightsReport',\r\n description: _TL_('To view the performance of industry categories on the Bing marketplace. This includes search and syndicated traffic.'),\r\n },\r\n {\r\n id: 'reports-v4-searchverticalcategoryclicksharereport',\r\n name: _TL_('Category click coverage'),\r\n title: _TL_('To view the share of marketplace demand your account(s) have gained in a specific industry category.'),\r\n fixedRoute: 'reports-v4/create/searchverticalcategoryclicksharereport',\r\n route: 'reports-v4/create/searchverticalcategoryclicksharereport',\r\n searchAlias: _TL_('Category Click Coverage Report'),\r\n scope,\r\n available,\r\n apiKey: 'SearchVerticalCategoryClickShareReport',\r\n description: _TL_('To view the share of marketplace demand your account(s) have gained in a specific industry category.'),\r\n },\r\n ],\r\n};\r\n","import { allScopes, alwaysDisplayed } from '../../shared';\r\n\r\nexport const customized = {\r\n id: 'reports-v4-my-reports-customized',\r\n name: _TL_('Saved customized reports'),\r\n title: _TL_('View reports that you have customized and saved'),\r\n route: 'reports-v4/my-reports/customized',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n};\r\n","import { allScopes, alwaysDisplayed } from '../../shared';\r\n\r\nexport const shared = {\r\n id: 'reports-v4-my-reports-shared',\r\n name: _TL_('Reports shared with me'),\r\n title: _TL_('View reports that shared with me'),\r\n route: 'reports-v4/my-reports/shared',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n};\r\n","import { allScopes, alwaysDisplayed } from '../shared';\r\nimport { billingAccountLinkPermissions } from '../client-center/billing-payments';\r\nimport { defaultReports } from './default-reports';\r\n\r\nexport const myCustomReportsPage = {\r\n id: 'reporting-my-reports',\r\n name: _TL_('Home'),\r\n fixedRoute: 'reporting/home',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n checkPermission: permissions => permissions.dynamic.CustomReports,\r\n};\r\n\r\nexport const reportTemplatePage = {\r\n id: 'reporting-template-reports',\r\n name: _TL_('Templates'),\r\n route: 'reporting/templates',\r\n fixedRoute: 'reporting/templates',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.CustomReports,\r\n children: defaultReports,\r\n};\r\n\r\n\r\nexport const customReportsPages = [\r\n {\r\n id: 'reporting',\r\n name: _TL_('Reports'),\r\n route: 'reporting',\r\n fixedRoute: 'reporting',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.CustomReports,\r\n children: [\r\n myCustomReportsPage,\r\n reportTemplatePage,\r\n ],\r\n },\r\n];\r\n","import { performance } from './performance';\r\nimport { assetsExtensions } from './assets-extensions';\r\nimport { productAds } from './product-ads';\r\nimport { changeHistory } from './change-history';\r\nimport { targetingPlacements } from './targeting-placements';\r\nimport { billingAndBudget } from './billing-and-budget';\r\nimport { advancedInsights } from './advanced-insights';\r\nimport { dynamicSearch } from './dynamic-search-ads';\r\nimport { labels } from './labels';\r\nimport { hotel, property } from './property-ads';\r\nimport { appAds } from './app-ads';\r\nimport { competitiveVisibility } from './competitive-visibility';\r\nimport { goalsConversions } from './goals-conversions';\r\nimport { verticalAds } from './vertical-ads';\r\n\r\nexport const defaultReports = [\r\n performance,\r\n competitiveVisibility,\r\n goalsConversions,\r\n assetsExtensions,\r\n targetingPlacements,\r\n productAds,\r\n dynamicSearch,\r\n hotel,\r\n property,\r\n verticalAds,\r\n appAds,\r\n advancedInsights,\r\n billingAndBudget,\r\n changeHistory,\r\n labels,\r\n];\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__168__;","import { available, scope } from './common';\r\nimport { Scope } from '../../shared';\r\n\r\nconst accountLevelScopes = scope.filter(_scope => _scope !== Scope.Customer);\r\n\r\nexport const performance = {\r\n id: 'reporting-category-performance',\r\n name: _TL_('Performance'),\r\n title: _TL_('Performance reports give you a closer look at how your campaigns are performing, including details like CTR and impressions.'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-accountreport',\r\n name: _TL_('Account'),\r\n title: _TL_('Understand account performance and identify trends.'),\r\n fixedRoute: 'reporting/create/accountreport',\r\n route: 'reporting/create/accountreport',\r\n searchAlias: _TL_('Account report'),\r\n scope,\r\n available,\r\n apiKey: 'AccountPerformanceReport',\r\n description: _TL_('Get an overview of your account performance.'),\r\n }, {\r\n id: 'reporting-campaignreport',\r\n name: _TL_('Campaign'),\r\n title: _TL_('See a snapshot of your account, and if there\\'s anything to flag.'),\r\n fixedRoute: 'reporting/create/campaignreport',\r\n route: 'reporting/create/campaignreport',\r\n searchAlias: _TL_('Campaign report'),\r\n scope,\r\n available,\r\n apiKey: 'CampaignPerformanceReport',\r\n description: _TL_('Get an overview of your campaign performance.'),\r\n }, {\r\n id: 'reporting-adgroupreport',\r\n name: _TL_('Ad group'),\r\n title: _TL_('See if your ad group is meeting your preset goals.'),\r\n fixedRoute: 'reporting/create/adgroupreport',\r\n route: 'reporting/create/adgroupreport',\r\n searchAlias: _TL_('Ad group report'),\r\n scope,\r\n available,\r\n apiKey: 'AdGroupPerformanceReport',\r\n description: _TL_('Review your performance by ad group.'),\r\n }, {\r\n id: 'reporting-adreport',\r\n name: _TL_('Ad'),\r\n title: _TL_('See which ads are leading to clicks and conversions.'),\r\n fixedRoute: 'reporting/create/adreport',\r\n route: 'reporting/create/adreport',\r\n searchAlias: _TL_('Ad report'),\r\n scope,\r\n available,\r\n apiKey: 'AdPerformanceReport',\r\n description: _TL_('Identify which ads lead to clicks and conversions, and which are not performing. Underperforming ads can pull down the quality of your campaigns.'),\r\n }, {\r\n id: 'reporting-keywordreport',\r\n name: _TL_('Keyword'),\r\n title: _TL_('See which keywords are leading to clicks.'),\r\n fixedRoute: 'reporting/create/keywordreport',\r\n route: 'reporting/create/keywordreport',\r\n searchAlias: _TL_('Keyword report'),\r\n scope,\r\n available,\r\n apiKey: 'KeywordPerformanceReport',\r\n description: _TL_('Identify the keywords that trigger your ads and get clicks, and those that are underperforming.'),\r\n }, {\r\n id: 'reporting-negativekeywordconflictreport',\r\n name: _TL_('Negative keyword conflicts'),\r\n title: _TL_('See a set of keyword and negative keyword pairs that are blocking your bids from participating in the auction.'),\r\n fixedRoute: 'reporting/create/negativekeywordconflictreport',\r\n route: 'reporting/create/negativekeywordconflictreport',\r\n searchAlias: _TL_('Negative keyword conflicts report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'NegativeKeywordConflictReport',\r\n description: _TL_('Identify which keywords and negative keywords are in conflict, and whether this conflict is at the campaign or ad group level. Use this list to determine which negative keywords to delete.'),\r\n }, {\r\n id: 'reporting-searchtermreport',\r\n name: _TL_('Search term'),\r\n // Duplicate\r\n title: _TL_('See which search terms are causing your ads to display.'),\r\n fixedRoute: 'reporting/create/searchtermreport',\r\n route: 'reporting/create/searchtermreport',\r\n searchAlias: _TL_('Search term report'),\r\n scope,\r\n available,\r\n apiKey: 'SearchQueryPerformanceReport',\r\n description: _TL_('Get insight into what your audience is searching for when your ads are shown, so that you can make informed additions, removals, or edits to both your keyword and negative keyword lists.'),\r\n }, {\r\n id: 'reporting-msxaccountperformancereport',\r\n name: _TL_('MSX account performance'),\r\n title: _TL_('Access and review daily revenue trends.'),\r\n fixedRoute: 'reporting/create/msxaccountperformancereport',\r\n route: 'reporting/create/msxaccountperformancereport',\r\n searchAlias: _TL_('MSX account performance report'),\r\n scope,\r\n available,\r\n apiKey: 'MSXAccountPerformanceReport',\r\n description: _TL_('Access and review daily revenue trends.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.IsMSXAccountPerformanceReportEnabled,\r\n }, {\r\n id: 'reporting-SearchInsightPerformanceReport',\r\n name: _TL_('Search terms insights'),\r\n // Duplicate\r\n title: _TL_('See which search insight are causing your ads to display.'),\r\n fixedRoute: 'reporting/create/SearchInsightPerformanceReport',\r\n route: 'reporting/create/SearchInsightPerformanceReport',\r\n searchAlias: _TL_('Search terms insights report'),\r\n scope: accountLevelScopes,\r\n available,\r\n apiKey: 'SearchInsightPerformanceReport',\r\n description: _TL_('Gain valuable insights into how your customers search for your business. These insights analyze the specific search terms that triggered your ads during a selected time frame. We’ve grouped the terms into relevant search categories, that provide key performance metrics for each category. Please note that only Performance Max campaigns are supported at this time.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.SearchInsightPerformanceReport,\r\n }, {\r\n id: 'reporting-CombinationPerformanceReport',\r\n name: _TL_('Combination performance'),\r\n title: _TL_('Identify the most frequently occurring asset combinations and provide a view of your combination performance.'),\r\n fixedRoute: 'reporting/create/CombinationPerformanceReport',\r\n route: 'reporting/create/CombinationPerformanceReport',\r\n searchAlias: _TL_('Combination performance report'),\r\n scope,\r\n available,\r\n apiKey: 'CombinationPerformanceReport',\r\n description: _TL_('Identify which asset combinations are performing well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.CombinationReport,\r\n },\r\n ],\r\n};\r\n","import { allScopes } from '../../shared';\r\n\r\nexport const available = true;\r\nexport const scope = allScopes;\r\n","import { available, scope } from './common';\r\n\r\nexport const assetsExtensions = {\r\n id: 'reporting-category-extensions',\r\n name: _TL_('Assets and Extensions'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-extensionkeywordreport',\r\n name: _TL_('Ad extension by keyword'),\r\n title: _TL_('See how your extensions perform for your keywords.'),\r\n fixedRoute: 'reporting/create/extensionkeywordreport',\r\n route: 'reporting/create/extensionkeywordreport',\r\n searchAlias: _TL_('Ad extension by keyword report'),\r\n scope,\r\n available,\r\n apiKey: 'AdExtensionByKeywordReport',\r\n description: _TL_('Review the performance of various click types for each keyword based on the ad extensions shown.'),\r\n }, {\r\n id: 'reporting-extensionadreport',\r\n name: _TL_('Ad extension by ad'),\r\n title: _TL_('See how your extensions perform for your ads.'),\r\n fixedRoute: 'reporting/create/extensionadreport',\r\n route: 'reporting/create/extensionadreport',\r\n searchAlias: _TL_('Ad extension by ad report'),\r\n scope,\r\n available,\r\n apiKey: 'AdExtensionByAdReport',\r\n description: _TL_('Review the performance of your ads’ ad extensions.'),\r\n }, {\r\n id: 'reporting-adextensiondetailreport',\r\n name: _TL_('Ad extension details'),\r\n title: _TL_('See how engaging your ad extension items are.'),\r\n fixedRoute: 'reporting/create/adextensiondetailreport',\r\n route: 'reporting/create/adextensiondetailreport',\r\n searchAlias: _TL_('Ad extension details report'),\r\n scope,\r\n available,\r\n apiKey: 'AdExtensionDetailReport',\r\n description: _TL_('Evaluate the performance of each ad extension item, including the links within a sitelink extension.'),\r\n }, {\r\n title: _TL_('See duration and phone spend details for each forwarded call.'),\r\n id: 'reporting-callforwarddetailreport',\r\n // Duplicate\r\n name: _TL_('Call forwarding detail'),\r\n fixedRoute: 'reporting/create/callforwarddetailreport',\r\n route: 'reporting/create/callforwarddetailreport',\r\n searchAlias: _TL_('Call forwarding detail report'),\r\n scope,\r\n available,\r\n apiKey: 'CallDetailReport',\r\n description: _TL_('Review which accounts, campaigns, or ad groups are performing with call extensions.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.CallMetering,\r\n }, {\r\n id: 'reporting-assetperformancereport',\r\n name: _TL_('Asset performance'),\r\n title: _TL_('View the performance of your search and Performance Max assets for each account, campaign, or ad group.'),\r\n fixedRoute: 'reporting/create/assetperformancereport',\r\n route: 'reporting/create/assetperformancereport',\r\n searchAlias: _TL_('Asset performance report'),\r\n scope,\r\n available,\r\n apiKey: 'AssetPerformanceReport',\r\n description: _TL_('Review the performance of your Search, Audience and Performance Max assets for each account, campaign, or ad group.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.DefaultAssetReport,\r\n }, {\r\n id: 'reporting-addynamictextreport',\r\n name: _TL_('Dynamic text ad'),\r\n title: _TL_('See which ad text strings are doing well.'),\r\n fixedRoute: 'reporting/create/addynamictextreport',\r\n route: 'reporting/create/addynamictextreport',\r\n searchAlias: _TL_('Ad dynamic text report'),\r\n scope,\r\n available,\r\n apiKey: 'AdDynamicTextPerformanceReport',\r\n description: _TL_('Identify which dynamic text strings perform well and which may need adjustments.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const productAds = {\r\n id: 'reporting-category-productads',\r\n name: _TL_('Product ads'),\r\n title: _TL_('Product ad reports give you a closer look at how your Bing Shopping Campaigns are performing based on product partition and product offer data.'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-productpartitionreport',\r\n name: _TL_('Product partition'),\r\n title: _TL_('See the performance of your Product Groups in Shopping Campaigns '),\r\n fixedRoute: 'reporting/create/productpartitionreport',\r\n route: 'reporting/create/productpartitionreport',\r\n searchAlias: _TL_('Product partition report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductPartitionPerformanceReport',\r\n description: _TL_('Review product group performance data to optimize your Shopping campaigns.'),\r\n }, {\r\n id: 'reporting-productpartitionunitreport',\r\n name: _TL_('Product partition unit'),\r\n title: _TL_('See product partition unit data of your Product Groups in Shopping Campaigns'),\r\n fixedRoute: 'reporting/create/productpartitionunitreport',\r\n route: 'reporting/create/productpartitionunitreport',\r\n searchAlias: _TL_('Product partition unit report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductPartitionUnitPerformanceReport',\r\n description: _TL_('Review the product partition unit data of your Product groups from your Shopping campaigns.'),\r\n }, {\r\n id: 'reporting-productdimensionreport',\r\n name: _TL_('Product dimension'),\r\n title: _TL_('See the performance of your Products in Shopping Campaigns '),\r\n fixedRoute: 'reporting/create/productdimensionreport',\r\n route: 'reporting/create/productdimensionreport',\r\n searchAlias: _TL_('Product dimension report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductDimensionPerformanceReport',\r\n description: _TL_('Review which of your products are getting the most clicks.'),\r\n }, {\r\n id: 'reporting-productsearchtermreport',\r\n name: _TL_('Product search term'),\r\n title: _TL_('See which search terms are causing your ads to display.'),\r\n fixedRoute: 'reporting/create/productsearchtermreport',\r\n route: 'reporting/create/productsearchtermreport',\r\n searchAlias: _TL_('Product search term report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductSearchQueryPerformanceReport',\r\n description: _TL_('Discover what your audience searches for when your Product ads appear. Use this data to update your keyword and negative keyword lists effectively.'),\r\n }, {\r\n id: 'reporting-productmatchcountreport',\r\n name: _TL_('Product match count'),\r\n title: _TL_('See how products are distributed acrocss given product tree.'),\r\n fixedRoute: 'reporting/create/productmatchcountreport',\r\n route: 'reporting/create/productmatchcountreport',\r\n searchAlias: _TL_('Product match count report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProductMatchCountReport',\r\n description: _TL_('Ensure comprehensive bidding coverage across the Microsoft Shopping campaigns inventory.'),\r\n }, {\r\n id: 'reporting-productnegativekeywordreport',\r\n name: _TL_('Product negative keyword conflicts'),\r\n title: _TL_('See a set of negative keyword pairs that are blocking your products from participating in the auction.'),\r\n fixedRoute: 'reporting/create/productnegativekeywordreport',\r\n route: 'reporting/create/productnegativekeywordreport',\r\n searchAlias: _TL_('Product negative keyword conflicts report'),\r\n scope,\r\n available,\r\n apiKey: 'ProductNegativeKeywordConflictReport',\r\n description: _TL_('Identify which products and negative keywords are in conflict, and determine which negative keywords to delete.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const changeHistory = {\r\n id: 'reporting-category-changehistory',\r\n name: _TL_('Change history'),\r\n title: _TL_('See the changes that have been made to your campaigns and users within an account, over a period you specify.'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-changehistoryreport',\r\n name: _TL_('Change history'),\r\n title: _TL_('See a list of changes that have been made to your campaigns.'),\r\n fixedRoute: 'reporting/create/changehistoryreport',\r\n route: 'reporting/create/changehistoryreport',\r\n searchAlias: _TL_('Change history report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'SearchCampaignChangeHistoryReport',\r\n description: _TL_('Review account changes to see who made them and when.'),\r\n }, {\r\n id: 'reporting-userrolechangehistoryreport',\r\n name: _TL_('User role change history'),\r\n title: _TL_('See what changes have been made to individual user profiles in your accounts.'),\r\n fixedRoute: 'reporting/create/userrolechangehistoryreport',\r\n route: 'reporting/create/userrolechangehistoryreport',\r\n searchAlias: _TL_('User role change history report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'UserRoleChangeHistoryReport',\r\n description: _TL_('Review the changes to individual user profiles in your account.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reporting-fraudchangehistoryreport',\r\n name: _TL_('Fraud change history by user'),\r\n title: _TL_('See a list of changes, filtered by user, that shows potentially fraudulent activity.'),\r\n fixedRoute: 'reporting/create/fraudchangehistoryreport',\r\n route: 'reporting/create/fraudchangehistoryreport',\r\n searchAlias: _TL_('Fraud change history by user report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'FraudChangeHistoryReport',\r\n description: _TL_('Get a list of changes, filtered by user, that shows potentially fraudulent activity.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\nimport { Scope } from '../../shared';\r\n\r\nconst accountLevelScopes = scope.filter(_scope => _scope !== Scope.Customer);\r\n\r\nexport const targetingPlacements = {\r\n id: 'reporting-category-targeting-placements',\r\n name: _TL_('Targeting and Placements'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-weburlreport',\r\n name: _TL_('Website URL (publisher)'),\r\n // Duplicate\r\n title: _TL_('See performance data for both search and content websites where your ads appear.'),\r\n fixedRoute: 'reporting/create/weburlreport',\r\n route: 'reporting/create/weburlreport',\r\n searchAlias: _TL_('Website URL (publisher) report'),\r\n scope,\r\n available,\r\n apiKey: 'PublisherUsagePerformanceReport',\r\n description: _TL_('Identify which website URLs perform well for your campaign or ad group target settings, and decide if you need to exclude low-performing websites.'),\r\n }, {\r\n id: 'reporting-audiencesreport',\r\n name: _TL_('Audiences'),\r\n title: _TL_('See how the ad groups that are associated with remarketing lists are performing.'),\r\n fixedRoute: 'reporting/create/audiencesreport',\r\n route: 'reporting/create/audiencesreport',\r\n searchAlias: _TL_('Audiences report'),\r\n scope,\r\n available,\r\n apiKey: 'AudiencePerformanceReport',\r\n description: _TL_('Review performance of your campaigns and ad groups across various Audience segments.'),\r\n }, {\r\n id: 'reporting-ageandgenderreport',\r\n name: _TL_('Age and gender'),\r\n // Duplicate\r\n title: _TL_('See total impressions and clicks for each campaign or ad group, organized by gender and age group.'),\r\n fixedRoute: 'reporting/create/ageandgenderreport',\r\n route: 'reporting/create/ageandgenderreport',\r\n searchAlias: _TL_('Age and gender report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AgeGenderAudienceReport',\r\n description: _TL_('Review the performance of your campaigns and ad groups across different age groups and genders.'),\r\n }, {\r\n id: 'reporting-genrereport',\r\n name: _TL_('Genre'),\r\n // Duplicate\r\n title: _TL_('Genre.'),\r\n fixedRoute: 'reporting/create/dealgenrereport',\r\n route: 'reporting/create/dealgenrereport',\r\n searchAlias: _TL_('Genre report'),\r\n scope: accountLevelScopes,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'GenrePerformanceReport',\r\n description: _TL_('Evaluate the performance of the genres targeted in your Premium Streaming campaign to identify which have the best ad results.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.AIMCampaign && permissions.dynamic.XandrVideoCampaigns && permissions.dynamic.GenreTargets,\r\n }, {\r\n id: 'reporting-professionaldemographicsreport',\r\n name: _TL_('Professional demographics'),\r\n title: _TL_('See total impressions and clicks for each campaign or ad group, organized by company, industry, and job function.'),\r\n fixedRoute: 'reporting/create/professionaldemographicsreport',\r\n route: 'reporting/create/professionaldemographicsreport',\r\n searchAlias: _TL_('Professional demographics report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'ProfessionalDemographicsAudienceReport',\r\n description: _TL_('Evaluate how your campaigns and ad groups resonate with different companies, industries, and job functions.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.LinkedInTargeting || !!permissions.dynamic.AIMCampaign,\r\n }, {\r\n id: 'reporting-userlocationreport',\r\n name: _TL_('User location'),\r\n // Duplicate\r\n title: _TL_('See total impressions and clicks for each ad group, organized by the locations where your ads were shown.'),\r\n fixedRoute: 'reporting/create/userlocationreport',\r\n route: 'reporting/create/userlocationreport',\r\n searchAlias: _TL_('User location report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'UserLocationPerformanceReport',\r\n description: _TL_('Identify the locations your traffic is coming from, and the locations they’re searching for.'),\r\n }, {\r\n id: 'reporting-geographicreport',\r\n name: _TL_('Geographic location'),\r\n // Duplicate\r\n title: _TL_('See total impressions and clicks for each ad group, organized by the locations where your ads were shown.'),\r\n fixedRoute: 'reporting/create/geographicreport',\r\n route: 'reporting/create/geographicreport',\r\n searchAlias: _TL_('Geographic report'),\r\n scope,\r\n available,\r\n apiKey: 'GeographicPerformanceReport',\r\n description: _TL_('Identify the locations your traffic is coming from.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\nimport { billingAccountLinkPermissions } from '../../client-center/billing-payments';\r\n\r\nexport const billingAndBudget = {\r\n id: 'reporting-category-billingandbudget',\r\n name: _TL_('Billing and budget'),\r\n title: _TL_('See how you are spending your budget, and your most recent billing statement.'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-budgetreport',\r\n name: _TL_('Budget'),\r\n title: _TL_('See how you’ve spent your budget over a specific date range.'),\r\n fixedRoute: 'reporting/create/budgetreport',\r\n route: 'reporting/create/budgetreport',\r\n searchAlias: _TL_('Budget report'),\r\n scope,\r\n available,\r\n apiKey: 'BudgetSummaryReport',\r\n description: _TL_('Review your advertising spend by month.'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n }, {\r\n id: 'reporting-customerinvoicereport',\r\n name: _TL_('Manager account invoice billing'),\r\n title: _TL_('See your detailed billing history.'),\r\n fixedRoute: 'reporting/create/customerinvoicereport',\r\n route: 'reporting/create/customerinvoicereport',\r\n searchAlias: _TL_('Manager account invoice billing report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'CustomerInvoiceReport',\r\n description: _TL_('Review your detailed billing history.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reporting-billingstatementreport',\r\n name: _TL_('Billing statement'),\r\n title: _TL_('See your most recent billing statement.'),\r\n fixedRoute: 'reporting/create/billingstatementreport',\r\n route: 'reporting/create/billingstatementreport',\r\n searchAlias: _TL_('Billing statement report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'BillingStatementReport',\r\n description: _TL_('Review the overall summary of your billing information.'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n }, {\r\n id: 'reporting-insertionorderreport',\r\n name: _TL_('Insertion order (IO)'),\r\n title: _TL_('A summary of your IO expenditures over a specified timeframe.'),\r\n fixedRoute: 'reporting/create/insertionorderreport',\r\n route: 'reporting/create/insertionorderreport',\r\n searchAlias: _TL_('Insertion order report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'InsertionOrderReport',\r\n description: _TL_('Evaluate your budget changes over time and your IO expenditures for reconciliation purposes.'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n checkPermission: /* istanbul ignore next */ permissions => !!permissions.dynamic.InsertionOrderReport,\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const advancedInsights = {\r\n id: 'reporting-category-advancedinsights',\r\n name: _TL_('Advanced insights'),\r\n title: _TL_('Find advanced insights into how your advertisers are performing'),\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n children: [\r\n {\r\n id: 'reporting-sixweekaccountactivityreport',\r\n name: _TL_('Account - 6 weeks'),\r\n title: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n fixedRoute: 'reporting/create/sixweekaccountactivityreport',\r\n route: 'reporting/create/sixweekaccountactivityreport',\r\n searchAlias: _TL_('Account - 6 weeks report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AccountPerformanceReport-SixWeeks',\r\n description: _TL_('Review your Microsoft Advertising account performance and trends over a six-week period.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reporting-twomonthaccountactivityreport',\r\n name: _TL_('Account - 2 months (MoM)'),\r\n title: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n fixedRoute: 'reporting/create/twomonthaccountactivityreport',\r\n route: 'reporting/create/twomonthaccountactivityreport',\r\n searchAlias: _TL_('Account - 2 months (MoM) report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AccountPerformanceReport-TwoMonths',\r\n description: _TL_('View the month-over-month performance for individual accounts'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reporting-twoyearaccountactivityreport',\r\n name: _TL_('Account - 2 years (YoY)'),\r\n title: _TL_('See how individual accounts are performing with excel charts and graphs'),\r\n fixedRoute: 'reporting/create/twoyearaccountactivityreport',\r\n route: 'reporting/create/twoyearaccountactivityreport',\r\n searchAlias: _TL_('Account - 2 years (YoY) report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AccountPerformanceReport-TwoYears',\r\n description: _TL_('View the year-over-year performance for individual accounts'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n }, {\r\n id: 'reporting-advancedinsightsshareofvoicereport',\r\n name: _TL_('Account - Share of voice'),\r\n title: _TL_('See estimated impressions you might be losing.'),\r\n fixedRoute: 'reporting/create/advancedinsightsshareofvoicereport',\r\n route: 'reporting/create/advancedinsightsshareofvoicereport',\r\n searchAlias: _TL_('Account - Share of voice report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'AccountPerformanceReport-ShareOfVoice',\r\n description: _TL_('Review the impression share (%) of successful bids for each keyword and identify potential opportunities.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.IsInternalUser,\r\n },\r\n {\r\n id: 'reporting-searchverticalcategoryinsightsreport',\r\n name: _TL_('Category insights'),\r\n title: _TL_('To view the performance of industry categories on the Bing marketplace. This includes search and syndicated traffic.'),\r\n fixedRoute: 'reporting/create/searchverticalcategoryinsightsreport',\r\n route: 'reporting/create/searchverticalcategoryinsightsreport',\r\n searchAlias: _TL_('Search vertical category insights report'),\r\n scope,\r\n available,\r\n apiKey: 'SearchVerticalCategoryInsightsReport',\r\n description: _TL_('Review the performance of industry categories on the Bing marketplace, including Search and syndicated traffic.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.DefaultCustomReport,\r\n },\r\n {\r\n id: 'reporting-searchverticalcategoryclicksharereport',\r\n name: _TL_('Category click coverage'),\r\n title: _TL_('To view the share of marketplace demand your account(s) have gained in a specific industry category.'),\r\n fixedRoute: 'reporting/create/searchverticalcategoryclicksharereport',\r\n route: 'reporting/create/searchverticalcategoryclicksharereport',\r\n searchAlias: _TL_('Category Click Coverage Report'),\r\n scope,\r\n available,\r\n apiKey: 'SearchVerticalCategoryClickShareReport',\r\n description: _TL_('Review your account(s) click coverage in a specific industry category.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.DefaultCustomReport,\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const dynamicSearch = {\r\n id: 'reporting-category-dynamicsearch',\r\n name: _TL_('Ad Type: Dynamic search ads'),\r\n title: _TL_('Dynamic search ads reports allow you to see a holistic view of your campaigns’ dynamic ad target, category, and search term performance.'),\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.DynamicSearchAdsV1,\r\n children: [\r\n {\r\n id: 'reporting-dsadautotargetreport',\r\n name: _TL_('Dynamic Search ads auto target'),\r\n title: _TL_('See the clicks, impressions, and other performance metrics of each of your dynamic ad targets.'),\r\n fixedRoute: 'reporting/create/dsadautotargetreport',\r\n route: 'reporting/create/dsadautotargetreport',\r\n searchAlias: _TL_('Dynamic search ad auto target'),\r\n scope,\r\n available,\r\n apiKey: 'DSAAutoTargetPerformanceReport',\r\n description: _TL_('Get a detailed analysis of clicks, impressions, and other performance metrics for each dynamic ad target, helping you identify opportunities for bid adjustments to optimize your ad campaigns.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.DynamicSearchAdsV1,\r\n }, {\r\n id: 'reporting-dsadcategoryreport',\r\n name: _TL_('Dynamic Search ad category'),\r\n title: _TL_('See the clicks, impressions, and other performance generated from your website.'),\r\n fixedRoute: 'reporting/create/dsadcategoryreport',\r\n route: 'reporting/create/dsadcategoryreport',\r\n searchAlias: _TL_('Dynamic search ad category report'),\r\n scope,\r\n available,\r\n apiKey: 'DSACategoryPerformanceReport',\r\n description: _TL_('Evaluate the performance of your existing category targets or identify new categories to target.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.DynamicSearchAdsV1,\r\n }, {\r\n id: 'reporting-dsadsearchtermreport',\r\n name: _TL_('Dynamic Search ad search term'),\r\n title: _TL_('See search terms that triggered your dynamic search ads and their corresponding headlines, final URLs, and associated performance metrics.'),\r\n fixedRoute: 'reporting/create/dsadsearchtermreport',\r\n route: 'reporting/create/dsadsearchtermreport',\r\n searchAlias: _TL_('Dynamic search ad search term report'),\r\n scope,\r\n available,\r\n apiKey: 'DSASearchQueryPerformanceReport',\r\n description: _TL_('Evaluate how your ads perform against search terms, identify negative keywords, and find the right keywords that create conversions.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n !!permissions.dynamic.DynamicSearchAdsV1,\r\n },\r\n ],\r\n};\r\n","import { allScopes, Scope } from '../../shared';\r\n\r\nconst accountLevelScopes = allScopes.filter(scope => scope !== Scope.Customer);\r\n\r\n\r\nexport const labels = {\r\n id: 'reporting-labels',\r\n name: _TL_('Labels'),\r\n dropdown: 'right',\r\n scope: allScopes,\r\n children: [\r\n {\r\n id: 'reporting-report-labels-keyword',\r\n name: _TL_('Labels - Keyword'),\r\n searchAlias: _TL_('Labels - Keyword report'),\r\n route: 'reporting/create/labelskeywordreport',\r\n scope: accountLevelScopes,\r\n apiKey: 'LabelKeywordReport',\r\n description: _TL_('Get performance data based on keyword labels to identify patterns of performance associated with those labels.'),\r\n },\r\n {\r\n id: 'reporting-report-labels-ad',\r\n name: _TL_('Labels - Ad'),\r\n searchAlias: _TL_('Labels - Ad report'),\r\n route: 'reporting/create/labelsadreport',\r\n scope: accountLevelScopes,\r\n apiKey: 'LabelAdReport',\r\n description: _TL_('Get performance data based on ad labels to identify patterns of performance associated with those labels.'),\r\n },\r\n {\r\n id: 'reporting-report-labels-ad-group',\r\n name: _TL_('Labels - Ad group'),\r\n searchAlias: _TL_('Labels - Ad group report'),\r\n route: 'reporting/create/labelsadgroupreport',\r\n scope: accountLevelScopes,\r\n apiKey: 'LabelAdGroupReport',\r\n description: _TL_('Get performance data based on ad group labels to identify their patterns of performance associated with those labels.'),\r\n },\r\n {\r\n id: 'reporting-report-labels-campaign',\r\n name: _TL_('Labels - Campaign'),\r\n searchAlias: _TL_('Labels - Campaign report'),\r\n route: 'reporting/create/labelscampaignreport',\r\n scope: accountLevelScopes,\r\n apiKey: 'LabelCampaignReport',\r\n description: _TL_('Get performance data based on campaign to identify their patterns of performance associated with those labels.'),\r\n },\r\n {\r\n id: 'reporting-labels-account',\r\n name: _TL_('Labels - Account'),\r\n searchAlias: _TL_('Labels - Account report'),\r\n route: 'reporting/create/labelsaccountreport',\r\n scope: [Scope.Customer],\r\n apiKey: 'LabelAccountReport',\r\n description: _TL_('Get performance data based on account to identify their patterns of performance associated with those labels.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const hotel = {\r\n id: 'reporting-category-hotel',\r\n name: _TL_('Hotel'),\r\n title: _TL_('Hotel'),\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && !permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n children: [\r\n {\r\n id: 'reporting-hoteldimensionreport',\r\n name: _TL_('Hotel dimension'),\r\n title: _TL_('Hotel dimension'),\r\n fixedRoute: 'reporting/create/hoteldimensionreport',\r\n route: 'reporting/create/hoteldimensionreport',\r\n searchAlias: _TL_('Hotel dimension report'),\r\n scope,\r\n available,\r\n apiKey: 'HotelDimensionPerformanceReport',\r\n description: _TL_('To figure out which of your hotels are triggering ads and getting most clicks and optimize the ones not performing so well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.HotelCampaign,\r\n },\r\n {\r\n id: 'reporting-hotelgroupreport',\r\n name: _TL_('Hotel group'),\r\n title: _TL_('Hotel group'),\r\n fixedRoute: 'reporting/create/hotelgroupperformancereport',\r\n route: 'reporting/create/hotelgroupperformancereport',\r\n searchAlias: _TL_('Hotel group report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'HotelGroupPerformanceReport',\r\n description: _TL_('To figure out which of your hotels are triggering ads and getting most clicks and optimize the ones not performing so well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.HotelCampaign,\r\n },\r\n {\r\n id: 'reporting-matchingreport',\r\n name: _TL_('Matching'),\r\n title: _TL_('Matching'),\r\n fixedRoute: 'reporting/create/matchingreport',\r\n route: 'reporting/create/matchingreport',\r\n searchAlias: _TL_('Matching report'),\r\n scope,\r\n scopeFilterLevel: ['Account', 'Campaign'],\r\n available,\r\n apiKey: 'UIMatchingReport',\r\n description: _TL_('To see issues which may be preventing your hotels from serving. '),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.HotelCampaign,\r\n },\r\n {\r\n id: 'reporting-pricefeedstatusreport',\r\n name: _TL_('Price feed status'),\r\n title: _TL_('Price feed status'),\r\n fixedRoute: 'reporting/create/pricefeedstatusreport',\r\n route: 'reporting/create/pricefeedstatusreport',\r\n searchAlias: _TL_('Price feed status report'),\r\n scope,\r\n scopeFilterLevel: ['Account', 'Campaign'],\r\n available,\r\n apiKey: 'UIPriceFeedStatusReport',\r\n description: _TL_('To track the status of your pricing updates (transactions).'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.HotelCampaign,\r\n },\r\n ],\r\n};\r\n\r\nexport const property = {\r\n id: 'reporting-category-property',\r\n name: _TL_('Ad Type: Property ads'),\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n children: [\r\n {\r\n id: 'reporting-propertydimensionreport',\r\n name: _TL_('Property dimension'),\r\n title: _TL_('Property dimension'),\r\n fixedRoute: 'reporting/create/propertydimensionreport',\r\n route: 'reporting/create/propertydimensionreport',\r\n searchAlias: _TL_('Property dimension report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'HotelDimensionPerformanceReport',\r\n description: _TL_('Identify which properties generate the most ad clicks so you can improve the ones that are not performing well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n },\r\n {\r\n id: 'reporting-propertygroupreport',\r\n name: _TL_('Property group'),\r\n title: _TL_('Property group'),\r\n fixedRoute: 'reporting/create/propertygroupperformancereport',\r\n route: 'reporting/create/propertygroupperformancereport',\r\n searchAlias: _TL_('Property group report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n available,\r\n apiKey: 'HotelGroupPerformanceReport',\r\n description: _TL_('Identify which property groups generate the most ad clicks so you can improve the ones that are not performing well.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n },\r\n {\r\n id: 'reporting-matchingreport',\r\n name: _TL_('Matching'),\r\n title: _TL_('Matching'),\r\n fixedRoute: 'reporting/create/matchingreport',\r\n route: 'reporting/create/matchingreport',\r\n searchAlias: _TL_('Matching report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n scopeFilterLevel: ['Account', 'Campaign'],\r\n available,\r\n apiKey: 'UIMatchingReport',\r\n description: _TL_('Review possible issues that can prevent your hotel ads from serving.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n },\r\n {\r\n id: 'reporting-pricefeedstatusreport',\r\n name: _TL_('Price feed status'),\r\n title: _TL_('Price feed status'),\r\n fixedRoute: 'reporting/create/pricefeedstatusreport',\r\n route: 'reporting/create/pricefeedstatusreport',\r\n searchAlias: _TL_('Price feed status report'),\r\n scope,\r\n apexViewName: 'reports-v4_create',\r\n scopeFilterLevel: ['Account', 'Campaign'],\r\n available,\r\n apiKey: 'UIPriceFeedStatusReport',\r\n description: _TL_('Track the status of your pricing updates (transactions).'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const appAds = {\r\n id: 'reporting-category-app',\r\n name: _TL_('App ads'),\r\n title: _TL_('App ads'),\r\n scope,\r\n available,\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.AppAdsCampaignPhaseOne || permissions.dynamic.UnifiedAppAds,\r\n children: [\r\n {\r\n id: 'reporting-appsperformancereport',\r\n name: _TL_('App performance'),\r\n title: _TL_('See the performance of your app campaigns.'),\r\n fixedRoute: 'reporting/create/appperformancereport',\r\n route: 'reporting/create/appperformancereport',\r\n searchAlias: _TL_('App performance report'),\r\n scope,\r\n available,\r\n apiKey: 'AppsPerformanceReport',\r\n description: _TL_('Review the performance of your App campaigns.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const competitiveVisibility = {\r\n id: 'reporting-category-competitive-visibility',\r\n name: _TL_('Competitive Visibility'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-shareofvoicereport',\r\n name: _TL_('Share of voice'),\r\n title: _TL_('See estimated impressions you might be losing.'),\r\n fixedRoute: 'reporting/create/shareofvoicereport',\r\n route: 'reporting/create/shareofvoicereport',\r\n searchAlias: _TL_('Share of voice report'),\r\n scope,\r\n available,\r\n apiKey: 'ShareOfVoiceReport',\r\n description: _TL_('Check the percentage of your impression share (%) in the marketplace to determine if you are missing opportunities based on your current campaign settings. This information can help you make adjustments to improve your impression share.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\n\r\nexport const goalsConversions = {\r\n id: 'reporting-category-goals-conversions',\r\n name: _TL_('Goals and Conversions'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-desturlreport',\r\n name: _TL_('Destination URL'),\r\n title: _TL_('See how your landing pages are performing.'),\r\n fixedRoute: 'reporting/create/desturlreport',\r\n route: 'reporting/create/desturlreport',\r\n searchAlias: _TL_('Destination URL report'),\r\n scope,\r\n available,\r\n apiKey: 'DestinationURLPerformanceReport',\r\n description: _TL_('To identify landing pages that met audience expectations, resulting in high click or conversion ratios.'),\r\n }, {\r\n id: 'reporting-goalsreport',\r\n name: _TL_('Goals'),\r\n title: _TL_('See data on how people behave on your website.'),\r\n fixedRoute: 'reporting/create/goalsreport',\r\n route: 'reporting/create/goalsreport',\r\n searchAlias: _TL_('Goals report'),\r\n scope,\r\n available,\r\n apiKey: 'GoalsAndFunnelsReport',\r\n description: _TL_('To understand which campaigns and keywords are leading users to complete a specific type of conversion action. Note: these reports only show data for text ads and do not include shopping, dynamic search ads and audience campaigns conversion data.'),\r\n }, {\r\n id: 'reporting-conversionsreport',\r\n name: _TL_('Conversions'),\r\n title: _TL_('See conversion data for your campaigns during a specific time period.'),\r\n fixedRoute: 'reporting/create/conversionsreport',\r\n route: 'reporting/create/conversionsreport',\r\n searchAlias: _TL_('Conversions report'),\r\n scope,\r\n available,\r\n apiKey: 'ConversionPerformanceReport',\r\n description: _TL_('To understand which campaigns and keywords are leading customers to complete conversion actions. Note: these reports only show data for text ads and do not include shopping, dynamic search ads and audience campaigns conversion data.'),\r\n }, {\r\n id: 'reporting-conversionmodelcomparereport',\r\n name: _TL_('Conversion model compare'),\r\n title: _TL_('See influence of conversion attribution models.'),\r\n fixedRoute: 'reporting/create/conversionmodelcomparereport',\r\n route: 'reporting/create/conversionmodelcomparereport',\r\n searchAlias: _TL_('Conversion model compare report'),\r\n scope,\r\n available,\r\n apiKey: 'ConversionModelCompareReport',\r\n description: _TL_('To discover how different conversion attribution models impact the valuation of your campaigns.'),\r\n },\r\n ],\r\n};\r\n","import { available, scope } from './common';\r\nimport { Scope } from '../../shared';\r\n\r\nconst accountLevelScopes = scope.filter(_scope => _scope !== Scope.Customer);\r\n\r\nexport const verticalAds = {\r\n id: 'reporting-category-vertical-ads',\r\n name: _TL_('Ad Type: Vertical Ads'),\r\n scope,\r\n available,\r\n children: [\r\n {\r\n id: 'reporting-feeditemreport',\r\n name: _TL_('Feed item'),\r\n title: _TL_('See performance on feed item level.'),\r\n fixedRoute: 'reporting/create/feeditemreport',\r\n route: 'reporting/create/feeditemreport',\r\n searchAlias: _TL_('Feed item report'),\r\n scope,\r\n available,\r\n apiKey: 'FeedItemPerformanceReport',\r\n description: _TL_('Get detailed performance statistics for each individual item from the Vertical ads inventory including the deleted and inactive Dynamic Data Feed items.'),\r\n checkPermission: /* istanbul ignore next */ permissions =>\r\n permissions.dynamic.ReportingUpliftFeedItemReport,\r\n },\r\n ],\r\n};\r\n","export { importPages, flatSmartImportPages } from './imports';\r\n","import { alwaysDisplayed, allScopes, defaultScopes, ScopeV2 } from '../shared';\r\nimport { importCenter } from './import-center';\r\n\r\nScopeV2.add('TaskItemId', 'taskItemId', ScopeV2.Account);\r\nScopeV2.add('TaskItemId', 'taskItemId', ScopeV2.Customer);\r\nScopeV2.add('ImportId', 'importId', ScopeV2.Account);\r\nScopeV2.add('ImportId', 'importId', ScopeV2.Customer);\r\nScopeV2.add('ImportStep', 'importStep', ScopeV2.TaskItemId);\r\nScopeV2.add('OpportunityId', 'opportunityId', ScopeV2.Account);\r\nScopeV2.add('OpportunityId', 'opportunityId', ScopeV2.Customer);\r\nScopeV2.add('OpportunityType', 'opportunityType', ScopeV2.OpportunityId);\r\nScopeV2.add('Source', 'source', ScopeV2.OpportunityType);\r\nScopeV2.add('ImportType', 'importType', ScopeV2.Account);\r\nScopeV2.add('ImportScheduleRecSrc', 'recsrc', ScopeV2.ImportType);\r\nScopeV2.add('DidSwitchToExpertFromImport', 'didSwitchToExpertFromImport', ScopeV2.Account);\r\n\r\nconst scopeV2 = [ScopeV2.Customer, ScopeV2.Account, ScopeV2.TaskItemId,\r\n ScopeV2.ImportId, ScopeV2.ImportStep, ScopeV2.DidSwitchToExpertFromImport];\r\n\r\nconst importScheduleScopeV2 = [ScopeV2.Customer, ScopeV2.Account,\r\n ScopeV2.ImportType, ScopeV2.ImportScheduleRecSrc];\r\n\r\nexport const googleImport = {\r\n id: 'import-google',\r\n name: _TL_('Import from Google Ads'),\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n route: 'googleimport',\r\n scope: allScopes,\r\n scopeV2,\r\n};\r\n\r\nexport const facebookImport = {\r\n id: 'import-facebook',\r\n name: _TL_('Import from Meta Ads'),\r\n checkPermission: permissions => permissions.dynamic.FacebookImport && !permissions.IsDomesticSimplifiedChineseEnabled,\r\n route: 'facebookimport',\r\n campaignTypes: alwaysDisplayed,\r\n scope: defaultScopes,\r\n scopeV2,\r\n};\r\n\r\nexport const amazonImport = {\r\n id: 'import-amazon',\r\n name: _TL_('Import from Amazon Ads'),\r\n checkPermission: permissions => (permissions.IsAmazonImportEnabled ||\r\n permissions.dynamic.AmazonImport) && !permissions.IsDomesticSimplifiedChineseEnabled,\r\n route: 'amazonimport',\r\n campaignTypes: alwaysDisplayed,\r\n scope: defaultScopes,\r\n scopeV2,\r\n showTag: {\r\n text: 'New',\r\n expDate: new Date('2024/12/31'),\r\n },\r\n};\r\n\r\nexport const pinterestImport = {\r\n id: 'import-pinterest',\r\n name: _TL_('Import from Pinterest Ads'),\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n route: 'pinterestimport',\r\n campaignTypes: alwaysDisplayed,\r\n scope: defaultScopes,\r\n scopeV2,\r\n showTag: {\r\n text: 'New',\r\n expDate: new Date('2023/12/31'),\r\n },\r\n};\r\n\r\nexport const fileImport = {\r\n id: 'import-file',\r\n name: _TL_('Import from file'),\r\n route: 'fileimport',\r\n scope: defaultScopes,\r\n scopeV2,\r\n};\r\n\r\nexport const importSchedule = {\r\n id: 'import-schedule',\r\n name: _TL_('Import schedule & history'),\r\n route: 'importschedule',\r\n campaignTypes: alwaysDisplayed,\r\n scope: allScopes,\r\n scopeV2: importScheduleScopeV2,\r\n};\r\n\r\nexport const importPages = [\r\n googleImport,\r\n facebookImport,\r\n amazonImport,\r\n pinterestImport,\r\n fileImport,\r\n importSchedule,\r\n importCenter,\r\n];\r\n\r\nexport const flatSmartImportPages = [\r\n googleImport,\r\n importSchedule,\r\n importCenter,\r\n];\r\n","import { allScopes, defaultScopes } from '../shared';\r\n\r\nexport const importCenter = {\r\n id: 'import-center',\r\n name: _TL_('Import Management'),\r\n scope: allScopes,\r\n smartAccountEnabled: true,\r\n children: [\r\n {\r\n id: 'import-center',\r\n name: _TL_('Import Management'),\r\n route: 'importcenter/all',\r\n scope: allScopes,\r\n smartAccountEnabled: true,\r\n checkPermission: permissions => permissions.dynamic.ImportCenterPrototype,\r\n children: [\r\n {\r\n id: 'all-imports',\r\n name: _TL_('All Imports'),\r\n route: 'importcenter/all',\r\n scope: allScopes,\r\n smartAccountEnabled: true,\r\n children: [\r\n {\r\n id: 'dashboard',\r\n name: _TL_('Dashboard'),\r\n route: 'importcenter/all/dashboard',\r\n smartAccountEnabled: true,\r\n scope: allScopes,\r\n },\r\n {\r\n id: 'recommendations',\r\n name: _TL_('Recommendations'),\r\n route: 'importcenter/all/recommendations',\r\n smartAccountEnabled: true,\r\n scope: allScopes,\r\n },\r\n ],\r\n },\r\n {\r\n id: 'google-imports',\r\n name: _TL_('Google Imports'),\r\n route: 'importcenter/google/import',\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n scope: allScopes,\r\n smartAccountEnabled: true,\r\n children: [\r\n {\r\n id: 'google-import',\r\n name: _TL_('Import'),\r\n route: 'importcenter/google/import',\r\n smartAccountEnabled: true,\r\n scope: allScopes,\r\n }, {\r\n id: 'google-schedule',\r\n name: _TL_('Schedule'),\r\n route: 'importcenter/google/schedule',\r\n smartAccountEnabled: true,\r\n scope: allScopes,\r\n }, {\r\n id: 'google-History',\r\n name: _TL_('History'),\r\n route: 'importcenter/google/history',\r\n smartAccountEnabled: true,\r\n scope: allScopes,\r\n },\r\n ],\r\n },\r\n {\r\n id: 'facebook-imports',\r\n name: _TL_('Meta Imports'),\r\n route: 'importcenter/facebook/import',\r\n checkPermission: permissions => permissions.dynamic.FacebookImport && !permissions.IsDomesticSimplifiedChineseEnabled,\r\n scope: defaultScopes,\r\n smartAccountEnabled: false,\r\n children: [\r\n {\r\n id: 'facebook-import',\r\n name: _TL_('Import'),\r\n route: 'importcenter/facebook/import',\r\n scope: defaultScopes,\r\n }, {\r\n id: 'facebook-schedule',\r\n name: _TL_('Schedule'),\r\n route: 'importcenter/facebook/schedule',\r\n scope: defaultScopes,\r\n }, {\r\n id: 'facebook-History',\r\n name: _TL_('History'),\r\n route: 'importcenter/facebook/history',\r\n scope: defaultScopes,\r\n },\r\n ],\r\n },\r\n {\r\n id: 'amazon-imports',\r\n name: _TL_('Amazon Imports'),\r\n route: 'importcenter/amazon/import',\r\n checkPermission: permissions => (permissions.IsAmazonImportEnabled ||\r\n permissions.dynamic.AmazonImport) && !permissions.IsDomesticSimplifiedChineseEnabled,\r\n scope: defaultScopes,\r\n smartAccountEnabled: false,\r\n children: [\r\n {\r\n id: 'amazon-import',\r\n name: _TL_('Import'),\r\n route: 'importcenter/amazon/import',\r\n scope: defaultScopes,\r\n }, {\r\n id: 'amazon-schedule',\r\n name: _TL_('Schedule'),\r\n route: 'importcenter/amazon/schedule',\r\n scope: defaultScopes,\r\n }, {\r\n id: 'amazon-History',\r\n name: _TL_('History'),\r\n route: 'importcenter/amazon/history',\r\n scope: defaultScopes,\r\n },\r\n ],\r\n },\r\n {\r\n id: 'pinterest-imports',\r\n name: _TL_('Pinterest Imports'),\r\n route: 'importcenter/pinterest/import',\r\n checkPermission: permissions => !permissions.IsDomesticSimplifiedChineseEnabled,\r\n scope: defaultScopes,\r\n smartAccountEnabled: false,\r\n children: [\r\n {\r\n id: 'pinterest-import',\r\n name: _TL_('Import'),\r\n route: 'importcenter/pinterest/import',\r\n scope: defaultScopes,\r\n }, {\r\n id: 'pinterest-schedule',\r\n name: _TL_('Schedule'),\r\n route: 'importcenter/pinterest/schedule',\r\n scope: defaultScopes,\r\n }, {\r\n id: 'pinterest-History',\r\n name: _TL_('History'),\r\n route: 'importcenter/pinterest/history',\r\n scope: defaultScopes,\r\n },\r\n ],\r\n },\r\n {\r\n id: 'file-imports',\r\n name: _TL_('File Imports'),\r\n route: 'importcenter/file/import',\r\n scope: defaultScopes,\r\n smartAccountEnabled: false,\r\n children: [\r\n {\r\n id: 'file-import',\r\n name: _TL_('Import'),\r\n route: 'importcenter/file/import',\r\n scope: defaultScopes,\r\n }, {\r\n id: 'file-History',\r\n name: _TL_('History'),\r\n route: 'importcenter/file/history',\r\n scope: defaultScopes,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n ],\r\n};\r\n","import { alwaysDisplayed } from '../shared';\r\n\r\nexport const smartCampaignPages = [{\r\n id: 'smart-campaigns',\r\n name: _TL_('Smart Campaigns'),\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'smart-campaigns',\r\n name: _TL_('Smart Campaigns'),\r\n route: '',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n ],\r\n}];\r\n","import { alwaysDisplayed, Scope } from '../shared';\r\n\r\nconst keywordPlanner =\r\n{\r\n id: 'adinsight-keyword-planner',\r\n name: _TL_('Keyword planner'),\r\n route: 'keywordplanner',\r\n};\r\n\r\nconst adPreview = {\r\n id: 'adinsight-ad-preview',\r\n name: _TL_('Ad preview & diagnostics'),\r\n route: 'adpreview',\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n};\r\n\r\nexport const adInsightPages = [{\r\n id: 'adinsight',\r\n name: _TL_('Planning'),\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n keywordPlanner,\r\n adPreview,\r\n ],\r\n}];\r\n","import { adgroupCreate } from './adgroup-create';\r\nimport { campaignCreate } from './campaign-create';\r\nimport { associationCreate } from './association-create';\r\nimport { audienceCreate, audienceEdit } from './audience-create';\r\nimport { accountCreate } from './account-create';\r\nimport { accountLinking } from './account-linking';\r\nimport { accountsTransfer } from './accounts-transfer';\r\nimport { accountsUnlinking } from './accounts-unlinking';\r\nimport { pendingTransferRequest } from './pending-transfer-request';\r\nimport { performanceTargetsCreate } from './performance-targets-create';\r\nimport { performanceTargetsOverview } from './performance-targets-overview';\r\nimport { buildCustomReportsPage, editCustomReportPage } from './report-create';\r\nimport { sharedBudgetsEditPage } from './shared-budget-edit';\r\nimport { portfolioBidStrategyDetails } from './portfolio-bid-strategy-details';\r\nimport { conversionGoalsCreate, conversionGoalsAutoCreate, conversionGoalsEdit } from './conversion-goals-create';\r\nimport { conversionValueRulesCreate, conversionValueRulesEdit } from './conversion-value-rules-create';\r\nimport { uetTagsCreate, uetTagsEdit, upUetTagCreate, upUetTagEdit } from './uet-tags-create';\r\nimport { adCustomizerFeedsItems } from './ad-customizer-feeds-items';\r\nimport { dynamicDataFeedsItems } from './dynamic-data-feeds-items';\r\nimport { pageFeedsItems } from './page-feeds-items';\r\nimport { ruleDetail } from './rule-detail';\r\nimport { bulkEditDetail } from './bulk-edit-detail';\r\nimport { scriptsDetail } from './scripts';\r\nimport { negativeKeywordsListsDetail } from './negative-keywords-lists-details';\r\nimport { merchanteCenterStoreCreate } from './merchant-center-store-create';\r\nimport { recommendationHistory } from './recommendation-history';\r\nimport { bulkUploadsBuildSpreadsheet } from './bulk-uploads-build-spreadsheet';\r\nimport { optOutForMinors } from './opt-out-minors';\r\nimport { recommendationAutoApplySettings } from './recommendation-auto-apply-settings';\r\nimport { recommendationAutoApplyBulkUpload } from './recommendation-auto-apply-bulk-upload';\r\nimport { importCredentialIdPages } from './import-credential-id';\r\nimport { queryInsights } from './query-insights';\r\nimport { pmaxDetails, assetGroupCreate, assetGroupEdit } from './pmax-details';\r\nimport { appAdsAssetGroups, appAdsAssetGroupsCreation, appAdsAssetGroupsEdit } from './app-ads-details';\r\nimport { budgetCenterCampaignBudgetTool } from './budget-center-campaign-budget-tool';\r\nimport { recommendationDemo } from './recommendation-demo';\r\nimport { copilotReport } from './copilot-report';\r\nimport { adEditor } from './ad-editor';\r\nimport { unifiedAppAdsAssetGroups, unifiedAppAdsAssetGroupDetails, unifiedAppAdsAssetGroupsCreation, unifiedAppAdsAssetGroupsEdit } from './unified-app-ads-details';\r\n\r\nexport const standalonePages = [\r\n campaignCreate,\r\n adEditor,\r\n adgroupCreate,\r\n associationCreate,\r\n audienceCreate,\r\n performanceTargetsCreate,\r\n performanceTargetsOverview,\r\n sharedBudgetsEditPage,\r\n portfolioBidStrategyDetails,\r\n audienceEdit,\r\n accountCreate,\r\n accountLinking,\r\n accountsUnlinking,\r\n accountsTransfer,\r\n appAdsAssetGroups,\r\n unifiedAppAdsAssetGroups,\r\n unifiedAppAdsAssetGroupsCreation,\r\n unifiedAppAdsAssetGroupsEdit,\r\n appAdsAssetGroupsCreation,\r\n appAdsAssetGroupsEdit,\r\n pendingTransferRequest,\r\n conversionGoalsCreate,\r\n conversionGoalsAutoCreate,\r\n conversionGoalsEdit,\r\n uetTagsCreate,\r\n uetTagsEdit,\r\n upUetTagCreate,\r\n upUetTagEdit,\r\n conversionValueRulesCreate,\r\n conversionValueRulesEdit,\r\n adCustomizerFeedsItems,\r\n pageFeedsItems,\r\n dynamicDataFeedsItems,\r\n ruleDetail,\r\n bulkEditDetail,\r\n scriptsDetail,\r\n negativeKeywordsListsDetail,\r\n merchanteCenterStoreCreate,\r\n recommendationHistory,\r\n bulkUploadsBuildSpreadsheet,\r\n optOutForMinors,\r\n recommendationAutoApplySettings,\r\n recommendationAutoApplyBulkUpload,\r\n importCredentialIdPages,\r\n queryInsights,\r\n pmaxDetails,\r\n assetGroupCreate,\r\n assetGroupEdit,\r\n budgetCenterCampaignBudgetTool,\r\n recommendationDemo,\r\n copilotReport,\r\n buildCustomReportsPage,\r\n editCustomReportPage,\r\n unifiedAppAdsAssetGroupDetails,\r\n];\r\n","export const adgroupCreate = {\r\n id: 'adgroup-create',\r\n name: _TL_('New ad group'),\r\n children: [\r\n {\r\n id: 'adgroup-create',\r\n name: _TL_('Create an ad group'),\r\n route: 'createadgroup',\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const campaignCreate = {\r\n id: 'campaign-create',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/objective',\r\n scope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'campaign-create-objective',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/objective',\r\n campaignTypes: alwaysDisplayed,\r\n searchable: true,\r\n }, {\r\n id: 'campaign-create-search',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/search',\r\n campaignTypes: alwaysDisplayed,\r\n }, {\r\n id: 'campaign-create-search-v2',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/searchv2',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.SearchCampaignCreationRevamp,\r\n }, {\r\n id: 'campaign-create-audience',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/audience',\r\n campaignTypes: alwaysDisplayed,\r\n }, {\r\n id: 'campaign-create-audience-simplified',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/newaudience',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.IsNewStaticAudienceCampaignCreationEnabled,\r\n }, {\r\n id: 'campaign-create-shopping',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/searchshopping',\r\n campaignTypes: alwaysDisplayed,\r\n }, {\r\n id: 'campaign-create-shoppingaudience',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/audienceshopping',\r\n campaignTypes: alwaysDisplayed,\r\n }, {\r\n id: 'campaign-create-videoaudience',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/audiencevideo',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.IsVideoAdsForCampaignEnabled && !permissions.dynamic.XandrVideoCampaigns,\r\n },\r\n {\r\n id: 'campaign-create-xandr-video',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/awareness',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.XandrVideoCampaigns,\r\n },\r\n {\r\n id: 'campaign-create-xandr-display-ads',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/displayads',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.XandrDisplayAdsCampaigns,\r\n },\r\n {\r\n id: 'campaign-create-xandr-mediapackage',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/mediapackage',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.IsDealEnabledForMsAds,\r\n },\r\n {\r\n id: 'campaign-create-xandr-mediadeal',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/awarenessmediadeal',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.IsDealEnabledForMsAds,\r\n },\r\n {\r\n id: 'campaign-create-display-plus',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/displayplus',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.DisplayPlusCampaigns,\r\n },\r\n {\r\n id: 'campaign-create-display-plus-display',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/displayplusdisplay',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.DisplayPlusCampaigns,\r\n },\r\n {\r\n id: 'campaign-create-app-ads',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/appads',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.AppAdsCampaignPhaseOne,\r\n },\r\n {\r\n id: 'campaign-create-unified-app-ads',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/unifiedappads',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.UnifiedAppAds,\r\n },\r\n {\r\n id: 'campaign-create-smart-shopping',\r\n name: _TL_('New Campaign'),\r\n route: 'createcampaign/smartshopping',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions =>\r\n ((permissions.dynamic.SmartShoppingCampaign || permissions.IsSmartShoppingCampaignEnabled) && !permissions.dynamic.SSCDeprecation),\r\n }, {\r\n id: 'campaign-create-hotel',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/hotel',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => (permissions.dynamic.HotelCampaign && !permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n }, {\r\n id: 'campaign-create-lodging',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/lodging',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => (permissions.dynamic.HotelCampaign && permissions.dynamic.IsRenameHotelToLodgingEnabled),\r\n }, {\r\n id: 'campaign-create-pmax',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/performancemax',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.PerformanceMaxCampaigns,\r\n }, {\r\n id: 'campaign-create-pmax-v2',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/performancemaxv2',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.PMaxWizardRefresh,\r\n }, {\r\n id: 'campaign-create-ms-store-ads',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/msstoreads',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => (!permissions.IsDomesticSimplifiedChineseEnabled && permissions.IsEnhancedShoppingCampaignAllowed) || (permissions.IsDomesticSimplifiedChineseEnabled && permissions.dynamic.WindowsStoreAdsCNExpansion),\r\n }, {\r\n id: 'campaign-create-shopping-spa',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/mran',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.IsSPAv2Enabled && !permissions.dynamic.MranDeprecation,\r\n }, {\r\n id: 'campaign-create-shopping-spb',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/sponsoredpromotion',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.IsSPAv2Enabled && permissions.dynamic.SponsoredPromotionsByBrands,\r\n },\r\n {\r\n id: 'campaign-create-linkedin',\r\n name: _TL_('New campaign'),\r\n route: 'createcampaign/linkedin',\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.LinkedInCampaigns,\r\n },\r\n ],\r\n};\r\n","export const associationCreate = {\r\n id: 'association-create',\r\n name: _TL_('Create association'),\r\n children: [\r\n {\r\n id: 'association-create',\r\n name: _TL_('Create association'),\r\n route: 'createassociation',\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2, alwaysDisplayed } from '../shared';\r\n\r\nconst scope = [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup];\r\n\r\nconst scopeV2 = [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup];\r\n\r\nexport const audienceCreate = {\r\n id: 'audience-create',\r\n name: _TL_('Create audience'),\r\n scope,\r\n scopeV2,\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'audience-create',\r\n name: _TL_('Create audience'),\r\n route: 'audience/create',\r\n },\r\n ],\r\n};\r\n\r\nexport const audienceEdit = {\r\n id: 'audience-edit',\r\n name: _TL_('Edit audience'),\r\n scope,\r\n scopeV2,\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'audience-edit',\r\n name: _TL_('Edit audience'),\r\n route: 'audience/edit',\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const accountCreate = {\r\n id: 'account-create',\r\n name: _TL_('New account'),\r\n scope: [Scope.Customer],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'account-create',\r\n name: _TL_('Create a new account'),\r\n route: 'accounts/create',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const accountLinking = {\r\n id: 'account-linking',\r\n name: _TL_('Account linking'),\r\n scope: [Scope.Customer],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'account-linking',\r\n name: _TL_('Link to an existing account'),\r\n route: 'accounts/sendlinkrequest',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'account-linking-resend',\r\n name: _TL_('Link to an existing account'),\r\n route: 'accounts/resendlinkrequest',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const accountsTransfer = {\r\n id: 'accounts-transfer',\r\n name: _TL_('Accounts Transfer'),\r\n scope: [Scope.Customer],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'accounts-transfer',\r\n name: _TL_('Transfer accounts'),\r\n route: 'accounts/bulktransferaccounts',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const accountsUnlinking = {\r\n id: 'accounts-unlinking',\r\n name: _TL_('Account unlinking'),\r\n scope: [Scope.Customer],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'accounts-unlinking',\r\n name: _TL_('Bulk unlink accounts'),\r\n route: 'accounts/bulkunlinkaccounts',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const pendingTransferRequest = {\r\n id: 'pending-transfer-request',\r\n name: _TL_('View pending transfer request'),\r\n scope: [Scope.Customer],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'pending-transfer-request',\r\n name: _TL_('View pending transfer request'),\r\n route: 'accounts/pendingtransferrequest',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const performanceTargetsCreate = {\r\n id: 'performance-targets-create',\r\n name: _TL_('Create Performance Targets'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'performance-targets-create',\r\n name: _TL_('Create Performance Targets'),\r\n route: 'performancetargets/create',\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../shared';\r\n\r\nScopeV2.add('PerformanceTarget', 'ptId', ScopeV2.Account);\r\n\r\nexport const performanceTargetsOverview = {\r\n id: 'performance-targets-overview',\r\n name: _TL_('Performance Targets Overview'),\r\n scope: [Scope.Account, Scope.PerformanceTarget],\r\n scopeV2: [ScopeV2.Account, ScopeV2.PerformanceTarget],\r\n children: [\r\n {\r\n id: 'performance-targets-overview',\r\n name: _TL_('Target details'),\r\n scope: [Scope.Account, Scope.PerformanceTarget],\r\n scopeV2: [ScopeV2.Account, ScopeV2.PerformanceTarget],\r\n oldUIScope: [Scope.Account, Scope.PerformanceTarget],\r\n route: 'performancetargets/overview',\r\n },\r\n {\r\n id: 'performance-targets-history',\r\n name: _TL_('Target history'),\r\n scope: [Scope.Account, Scope.PerformanceTarget],\r\n scopeV2: [ScopeV2.Account, ScopeV2.PerformanceTarget],\r\n oldUIScope: [Scope.Account, Scope.PerformanceTarget],\r\n route: 'performancetargets/history',\r\n },\r\n {\r\n id: 'performance-targets-edit',\r\n name: _TL_('Settings'),\r\n scope: [Scope.Account, Scope.PerformanceTarget],\r\n scopeV2: [ScopeV2.Account, ScopeV2.PerformanceTarget],\r\n oldUIScope: [Scope.Account, Scope.PerformanceTarget],\r\n route: 'performancetargets/edit',\r\n },\r\n ],\r\n};\r\n","\r\nimport { allScopes, alwaysDisplayed } from '../shared';\r\nimport { billingAccountLinkPermissions } from '../client-center/billing-payments';\r\n\r\n\r\nexport const buildCustomReportsPage = {\r\n id: 'reporting-build-custom-report',\r\n name: _TL_('New Report'),\r\n route: 'reporting/create',\r\n fixedRoute: 'reporting/create',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.CustomReportBuilder,\r\n};\r\n\r\nexport const editCustomReportPage = {\r\n id: 'reporting-edit-report',\r\n name: _TL_('Edit report'),\r\n title: _TL_('View and edit a report'),\r\n route: 'reporting/edit/:TaskItemId',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n searchable: false,\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n checkPermission: permissions => permissions.dynamic.CustomReportBuilder,\r\n};\r\n","import { Scope, ScopeV2, alwaysDisplayed } from '../shared';\r\n\r\nScopeV2.add('Budget', 'budgetId', ScopeV2.Account);\r\n\r\nexport const sharedBudgetsEditPage = {\r\n id: 'shared-budgets-edit',\r\n name: _TL_('Edit shared budget'),\r\n scopeV2: [ScopeV2.Account, ScopeV2.Budget],\r\n oldUIScope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'shared-budgets-edit',\r\n name: _TL_('Edit shared budget'),\r\n scopeV2: [ScopeV2.Account, ScopeV2.Budget],\r\n route: 'sharedbudgets/edit',\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n ],\r\n};\r\n","import { ScopeV2 } from '../shared';\r\n\r\nScopeV2.add('PortfolioBidStrategy', 'portfolioId', ScopeV2.Account);\r\n\r\nexport const portfolioBidStrategyDetails = {\r\n id: 'portfolio-bid-strategy-details',\r\n name: _TL_('Portfolio bid strategy details'),\r\n scopeV2: [ScopeV2.PortfolioBidStrategy],\r\n children: [\r\n {\r\n id: 'portfolio-bid-strategy-performance',\r\n name: _TL_('Performance'),\r\n route: 'portfoliobidstrategy/performance',\r\n checkPermission: permissions => permissions.dynamic.PortfolioBidStrategy,\r\n scopeV2: [ScopeV2.PortfolioBidStrategy],\r\n },\r\n {\r\n id: 'portfolio-bid-strategy-settings',\r\n name: _TL_('Settings'),\r\n route: 'portfoliobidstrategy/settings',\r\n checkPermission: permissions => permissions.dynamic.PortfolioBidStrategy,\r\n scopeV2: [ScopeV2.PortfolioBidStrategy],\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../shared';\r\n\r\nexport const conversionGoalsCreate = {\r\n id: 'conversion-goals-create',\r\n name: _TL_('Conversion goals create'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'conversion-goals-create',\r\n name: _TL_('Conversion goals create'),\r\n route: 'conversiongoals/create',\r\n },\r\n ],\r\n};\r\n\r\nScopeV2.add('EnterFlow', 'inflow', ScopeV2.Account);\r\n\r\nexport const conversionGoalsAutoCreate = {\r\n id: 'conversion-goals-autocreate',\r\n name: _TL_('Conversion goals auto create'),\r\n scopeV2: [ScopeV2.Account, ScopeV2.EnterFlow],\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'conversion-goals-auto-create',\r\n name: _TL_('Conversion auto goals create'),\r\n route: 'conversiongoals/autocreate',\r\n checkPermission: permissions => permissions.dynamic.AllowAutoGoalWizard,\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n\r\nScopeV2.add('Goal', 'goalId', ScopeV2.Account);\r\n\r\nexport const conversionGoalsEdit = {\r\n id: 'conversion-goals-edit',\r\n name: _TL_('Conversion goals edit'),\r\n scopeV2: [ScopeV2.Account, ScopeV2.Goal],\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'conversion-goals-edit',\r\n name: _TL_('Conversion goals edit'),\r\n route: 'conversiongoals/edit',\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../shared';\r\n\r\nexport const conversionValueRulesCreate = {\r\n id: 'conversion-value-rules-create',\r\n name: _TL_('Conversion value rules create'),\r\n oldUIScope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'conversion-value-rules-create',\r\n name: _TL_('Conversion value rules create'),\r\n route: 'conversionvaluerules/create',\r\n checkPermission: permissions => permissions.dynamic.ConvValueRules,\r\n },\r\n ],\r\n};\r\n\r\nScopeV2.add('CVRL', 'cvrlId', ScopeV2.Customer);\r\n\r\nexport const conversionValueRulesEdit = {\r\n id: 'conversion-value-rules-edit',\r\n name: _TL_('Conversion value rules edit'),\r\n scopeV2: [Scope.Customer, Scope.CVRL],\r\n oldUIScope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'conversion-value-rules-edit',\r\n name: _TL_('Conversion value rules edit'),\r\n route: 'conversionvaluerules/edit',\r\n checkPermission: permissions => permissions.dynamic.ConvValueRules,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2 } from '../shared';\r\n\r\nconst scope = [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup];\r\n\r\nconst scopeV2 = [ScopeV2.Customer, ScopeV2.Account, ScopeV2.Campaign, ScopeV2.AdGroup];\r\n\r\nexport const uetTagsCreate = {\r\n id: 'uet-tags-create',\r\n name: _TL_('Uet tags create'),\r\n scope,\r\n scopeV2,\r\n children: [\r\n {\r\n id: 'uet-tags-create',\r\n name: _TL_('Uet tags create'),\r\n route: 'uettags/create',\r\n },\r\n ],\r\n};\r\n\r\nScopeV2.add('UetTag', 'uetTagId', ScopeV2.Account);\r\nScopeV2.add('UetTag', 'uetTagId', ScopeV2.Customer);\r\n\r\nexport const uetTagsEdit = {\r\n id: 'uet-tags-edit',\r\n name: _TL_('Uet tags edit'),\r\n scope,\r\n scopeV2: scopeV2.concat(ScopeV2.UetTag),\r\n children: [\r\n {\r\n id: 'uet-tags-edit',\r\n name: _TL_('Uet tags edit'),\r\n route: 'uettags/edit',\r\n },\r\n ],\r\n};\r\n\r\nexport const upUetTagCreate = {\r\n id: 'up-uet-tag-create',\r\n name: _TL_('Universal Pixel UET tag create'),\r\n route: 'upuettag/create',\r\n scope: scope.filter(s => s !== Scope.Customer),\r\n scopeV2: scopeV2.filter(s => s !== ScopeV2.Customer),\r\n checkPermission: permissions => permissions.dynamic.XandrIntegrationEnabled,\r\n};\r\n\r\nexport const upUetTagEdit = {\r\n id: 'up-uet-tag-edit',\r\n name: _TL_('Universal Pixel UET tag edit'),\r\n route: 'upuettag/edit',\r\n scope,\r\n scopeV2: scopeV2.concat(ScopeV2.UetTag),\r\n checkPermission: permissions => permissions.dynamic.XandrIntegrationEnabled,\r\n};\r\n","import { ScopeV2 } from '../shared';\r\n\r\nexport const adCustomizerFeedsItems = {\r\n id: 'ad-customizer-feeds-items',\r\n name: _TL_('Ad customizer feed items'),\r\n scopeV2: [ScopeV2.Feed],\r\n children: [\r\n {\r\n id: 'ad-customizer-feeds-items',\r\n name: _TL_('Ad customizer feed items'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/adcustomizeritems',\r\n },\r\n {\r\n id: 'schedules',\r\n name: _TL_('Schedules'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/adcustomizeritems/schedules',\r\n },\r\n {\r\n id: 'upload-history',\r\n name: _TL_('Upload history'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/adcustomizeritems/uploadhistory',\r\n },\r\n ],\r\n};\r\n","import { ScopeV2 } from '../shared';\r\n\r\nexport const dynamicDataFeedsItems = {\r\n id: 'dynamic-data-feeds-items',\r\n name: _TL_('Dynamic data feed items'),\r\n scopeV2: [ScopeV2.Feed],\r\n children: [\r\n {\r\n id: 'dynamic-data-feeds-items',\r\n name: _TL_('Dynamic data feed items'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/dynamicdataitems',\r\n checkPermission: permissions => permissions.dynamic.DynamicData\r\n || permissions.IsEnabledForDynamicFeedCampaign,\r\n },\r\n {\r\n id: 'schedules',\r\n name: _TL_('Schedules'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/dynamicdataitems/schedules',\r\n checkPermission: permissions => permissions.dynamic.DynamicData\r\n || permissions.IsEnabledForDynamicFeedCampaign,\r\n },\r\n {\r\n id: 'upload-history',\r\n name: _TL_('Upload history'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/dynamicdataitems/uploadhistory',\r\n checkPermission: permissions => permissions.dynamic.DynamicData\r\n || permissions.IsEnabledForDynamicFeedCampaign,\r\n },\r\n ],\r\n};\r\n","import { ScopeV2 } from '../shared';\r\n\r\nexport const pageFeedsItems = {\r\n id: 'page-feed-item',\r\n name: _TL_('Page feed items'),\r\n scopeV2: [ScopeV2.Feed],\r\n children: [\r\n {\r\n id: 'page-feeds-items',\r\n name: _TL_('Page feed items'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/pageitems',\r\n checkPermission: permissions => permissions.dynamic.DynamicSearchAdsV1,\r\n },\r\n {\r\n id: 'schedules',\r\n name: _TL_('Schedules'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/pageitems/schedules',\r\n checkPermission: permissions => permissions.dynamic.DynamicSearchAdsV1,\r\n },\r\n {\r\n id: 'upload-history',\r\n name: _TL_('Upload history'),\r\n scopeV2: [ScopeV2.Feed],\r\n route: 'feeds/pageitems/uploadhistory',\r\n checkPermission: permissions => permissions.dynamic.DynamicSearchAdsV1,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2, alwaysDisplayed } from '../shared';\r\n\r\nScopeV2.add('RuleDetail', 'executionId', ScopeV2.Account);\r\n\r\nexport const ruleDetail = {\r\n id: 'rule-detail',\r\n name: _TL_('Details'),\r\n scope: [Scope.Account],\r\n scopeV2: [ScopeV2.Account, ScopeV2.RuleDetail],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'rule-detail',\r\n name: _TL_('Details'),\r\n route: 'automatedruledetail',\r\n scope: [Scope.Account],\r\n scopeV2: [ScopeV2.Account, ScopeV2.RuleDetail],\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2, alwaysDisplayed } from '../shared';\r\n\r\nScopeV2.add('BulkEditDetail', 'bulkEditSessionId', ScopeV2.Account);\r\n\r\nexport const bulkEditDetail = {\r\n id: 'bulk-edits-detail',\r\n name: _TL_('Create association'),\r\n scope: [Scope.Account],\r\n scopeV2: [ScopeV2.Account, ScopeV2.BulkEditDetail],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'bulk-edits-detail-page',\r\n name: _TL_('Detail'),\r\n route: 'bulkeditdetail',\r\n scope: [Scope.Account],\r\n scopeV2: [ScopeV2.Account, ScopeV2.BulkEditDetail],\r\n campaignTypes: alwaysDisplayed,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2, alwaysDisplayed } from './../shared';\r\n\r\nScopeV2.add('MccScript', 'scriptId', ScopeV2.Customer);\r\nScopeV2.add('Script', 'scriptId', ScopeV2.Account);\r\n\r\nScopeV2.add('MccScriptLog', 'logId', ScopeV2.Customer);\r\nScopeV2.add('ScriptLog', 'logId', ScopeV2.Account);\r\n\r\nexport const scriptsDetail = {\r\n id: 'scripts-detail',\r\n name: '',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer, Scope.Account],\r\n children: [\r\n {\r\n id: 'scripts-create',\r\n name: _TL_('Create script'),\r\n route: 'scriptscreate',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer, Scope.Account],\r\n },\r\n {\r\n id: 'scripts-edit',\r\n name: _TL_('Edit script'),\r\n route: 'scriptsedit',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer, Scope.Account],\r\n scopeV2: [Scope.Customer, ScopeV2.MccScript, ScopeV2.Account, ScopeV2.Script],\r\n },\r\n {\r\n id: 'scripts-logs',\r\n name: _TL_('Logs Details'),\r\n route: 'scriptslogs',\r\n campaignTypes: alwaysDisplayed,\r\n scope: [Scope.Customer, Scope.Account],\r\n scopeV2: [Scope.Customer, ScopeV2.MccScriptLog, ScopeV2.Account, ScopeV2.ScriptLog],\r\n },\r\n ],\r\n};\r\n","export const negativeKeywordsListsDetail = {\r\n id: 'negative-keywords-lists-detail',\r\n name: _TL_('Negative Keywords Lists Detail'),\r\n children: [\r\n {\r\n id: 'negative-keywords-lists-negative-keywords',\r\n name: _TL_('Negative Keywords'),\r\n route: 'negativekeywordslistsdetails/negativekeywords',\r\n },\r\n {\r\n id: 'negative-keywords-lists-details-campaigns',\r\n name: _TL_('Campaigns in this list'),\r\n route: 'negativekeywordslistsdetails/campaignassociation',\r\n },\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayed } from '../shared';\r\n\r\nexport const merchanteCenterStoreCreate = {\r\n id: 'mmc-create-store',\r\n name: _TL_('Create store'),\r\n scope: [Scope.Account],\r\n campaignTypes: alwaysDisplayed,\r\n children: [\r\n {\r\n id: 'mmc-create-store',\r\n name: _TL_('Create store'),\r\n route: 'merchantcenter/create-store',\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n\r\n","import { Scope } from '../shared';\r\n\r\nexport const recommendationHistory = {\r\n id: 'recommendation-history',\r\n name: _TL_('Bulk Apply History'),\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n children: [\r\n {\r\n id: 'baa-recommendation-history',\r\n name: _TL_('My applied recommendations history'),\r\n route: 'recommendations/history',\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n },\r\n {\r\n id: 'mcc-recommendation-history',\r\n name: _TL_('My applied recommendations history'),\r\n route: 'accounts/recommendations/history',\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const bulkUploadsBuildSpreadsheet = {\r\n id: 'bulk-uploads-build-spreadsheet',\r\n name: '',\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'build-spreadsheet',\r\n name: _TL_('Build spreadsheet'),\r\n route: 'bulkuploads/buildspreadsheet',\r\n checkPermission: permissions => permissions.IsCampaignBAMEnabled,\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'build-spreadsheet-account-numbers',\r\n name: '', // Not to display this item\r\n route: 'bulkuploads/buildspreadsheet/:account_numbers',\r\n checkPermission: permissions => permissions.IsCampaignBAMEnabled,\r\n scope: [Scope.Customer],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const optOutForMinors = {\r\n id: 'optout-for-minors',\r\n name: _TL_('Opt out for minors'),\r\n scope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'optout-for-minors',\r\n name: _TL_('Opt out for minors'),\r\n route: 'optoutforminors',\r\n scope: [Scope.Account],\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const recommendationAutoApplySettings = {\r\n id: 'recommendation-auto-apply-settings',\r\n name: _TL_('Auto Apply Settings'),\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n children: [{\r\n id: 'recommendation-auto-apply-settings',\r\n name: _TL_('Auto Apply Settings'),\r\n route: 'recommendations/AutoApplySettings',\r\n scope: [Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n }],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const recommendationAutoApplyBulkUpload = {\r\n id: 'recommendation-auto-apply-bulk-upload',\r\n name: _TL_('AAR Bulk Update Tool'),\r\n scope: [Scope.Customer],\r\n children: [{\r\n id: 'recommendation-auto-apply-bulk-upload',\r\n name: _TL_('AAR Bulk Update Tool'),\r\n route: 'accounts/recommendations/AutoApplyBulkUpload',\r\n scope: [Scope.Customer],\r\n }],\r\n};\r\n","import { defaultScopes, alwaysDisplayed, ScopeV2 } from '../shared';\r\n\r\nScopeV2.add('ShareWithUserIds', 'shareWithUserIds', ScopeV2.Account);\r\n\r\nconst scopeV2 = [ScopeV2.Customer, ScopeV2.Account, ScopeV2.ShareWithUserIds];\r\n\r\nexport const importCredentialIdPages = {\r\n id: 'import-credential-id',\r\n name: _TL_('Import credential ID'),\r\n checkPermission: permissions => permissions.dynamic.GoogleImportAsService,\r\n route: 'importcredentialid',\r\n campaignTypes: alwaysDisplayed,\r\n scope: defaultScopes,\r\n searchable: true,\r\n scopeV2,\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const queryInsights = {\r\n id: 'query-insights-details',\r\n name: _TL_('Search insights details'),\r\n children: [\r\n {\r\n id: 'account-optimization-details',\r\n name: _TL_('Account optimization details'),\r\n route: 'accountoptimization/details',\r\n searchable: false,\r\n checkPermission: permissions => permissions.IsQueryInsightsEnabled,\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'new-opportunities-details',\r\n name: _TL_('New opportunities details'),\r\n route: 'newopportunities/details',\r\n searchable: false,\r\n checkPermission: permissions => permissions.IsQueryInsightsEnabled,\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2, CampaignType } from '../shared';\r\n\r\nScopeV2.add('AssetGroup', 'assetGroupId', ScopeV2.Campaign);\r\n\r\nexport const pmaxDetails = {\r\n id: 'pmax-asset-details',\r\n name: _TL_('Asset details'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.PerformanceMax],\r\n children: [\r\n {\r\n id: 'pmax-assets',\r\n name: _TL_('Assets'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.PerformanceMax],\r\n route: 'assetgroups/assets',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.PerformanceMaxCampaigns,\r\n },\r\n {\r\n id: 'pmax-combinations',\r\n name: _TL_('Combinations'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.PerformanceMax],\r\n route: 'assetgroups/combinations',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.PerformanceMaxCampaigns,\r\n },\r\n ],\r\n};\r\n\r\n\r\nexport const assetGroupCreate = {\r\n id: 'asset-group-create',\r\n name: _TL_('Create asset group'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.Campaign],\r\n campaignTypes: [CampaignType.PerformanceMax],\r\n children: [\r\n {\r\n id: 'asset-group-create',\r\n name: _TL_('Create asset group'),\r\n route: 'assetgroups/create',\r\n checkPermission: permissions => permissions.dynamic.PerformanceMaxCampaigns,\r\n },\r\n ],\r\n};\r\n\r\nexport const assetGroupEdit = {\r\n id: 'asset-group-edit',\r\n name: _TL_('Edit asset group'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.PerformanceMax],\r\n children: [\r\n {\r\n id: 'asset-group-edit',\r\n name: _TL_('Edit asset group'),\r\n route: 'assetgroups/edit',\r\n checkPermission: permissions => permissions.dynamic.PerformanceMaxCampaigns,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2, CampaignType } from '../shared';\r\n\r\nScopeV2.add('AssetGroup', 'assetGroupId', ScopeV2.Campaign);\r\n\r\nexport const appAdsAssetGroups = {\r\n id: 'appads-asset-group',\r\n name: _TL_('Asset groups'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.App],\r\n children: [\r\n {\r\n id: 'appads-asset-group',\r\n name: _TL_('Asset groups'),\r\n route: 'appadsassetgroups',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.AppAdsCampaignPhaseOne,\r\n },\r\n ],\r\n};\r\n\r\n\r\nexport const appAdsAssetGroupsCreation = {\r\n id: 'appads-asset-group-create',\r\n name: _TL_('Create asset group'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.Campaign],\r\n campaignTypes: [CampaignType.App],\r\n children: [\r\n {\r\n id: 'appads-asset-group-create',\r\n name: _TL_('Create asset group'),\r\n route: 'appadsassetgroups/create',\r\n checkPermission: permissions => permissions.dynamic.AppAdsCampaignPhaseOne,\r\n },\r\n ],\r\n};\r\n\r\nexport const appAdsAssetGroupsEdit = {\r\n id: 'appads-asset-group-edit',\r\n name: _TL_('Edit asset group'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.App],\r\n children: [\r\n {\r\n id: 'appads-asset-group-edit',\r\n name: _TL_('Edit asset group'),\r\n route: 'appadsassetgroups/edit',\r\n checkPermission: permissions => permissions.dynamic.AppAdsCampaignPhaseOne,\r\n },\r\n ],\r\n};\r\n","import { Scope, isSmartPageStandalone } from '../shared';\r\n\r\nexport const budgetCenterCampaignBudgetTool = {\r\n id: 'budget-center-campaign-budget-tool',\r\n name: _TL_('Campaign budget tool'),\r\n scope: [Scope.Customer],\r\n children: [\r\n {\r\n id: 'budget-center-campaign-budget-tool',\r\n name: _TL_('Campaign budget tool'),\r\n route: 'campaignbudgettool',\r\n scope: [Scope.Customer],\r\n searchable: true,\r\n checkPermission: permissions => !isSmartPageStandalone(permissions) && !permissions.IsUnifiedSmartMode && !permissions.IsSmartMode,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const recommendationDemo = {\r\n id: 'recommendation-demo',\r\n name: _TL_('Demo only'),\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n children: [{\r\n id: 'recommendation-demo',\r\n name: _TL_('Demo only'),\r\n route: 'recommendations/demo',\r\n scope: [Scope.Customer, Scope.Account, Scope.Campaign, Scope.AdGroup],\r\n checkPermission: permissions => permissions.IsRecommendationDemoEnabled,\r\n }],\r\n};\r\n","export const copilotReport = {\r\n id: 'copilot-report',\r\n name: _TL_('Copilot report summary'),\r\n children: [\r\n {\r\n id: 'copilot-report',\r\n name: _TL_('Copilot report summary'),\r\n route: 'copilotreport',\r\n checkPermission: permissions => permissions.dynamic.AdsCopilotReportingInsights,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const adEditor = {\r\n id: 'ad-editor',\r\n name: _TL_('Create ad'),\r\n scope: [Scope.AdGroup],\r\n children: [\r\n {\r\n id: 'ad-editor',\r\n name: _TL_('Create ad'),\r\n route: 'ad',\r\n scope: [Scope.AdGroup],\r\n checkPermission: permissions => permissions.dynamic.LinkedInCampaigns,\r\n },\r\n ],\r\n};\r\n","import { Scope, ScopeV2, CampaignType } from '../shared';\r\n\r\nScopeV2.add('AssetGroup', 'assetGroupId', ScopeV2.Campaign);\r\n\r\nexport const unifiedAppAdsAssetGroupDetails = {\r\n id: 'unified-app-ads-asset-details',\r\n name: _TL_('Asset details'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.App],\r\n children: [\r\n {\r\n id: 'unified-app-ads-assets',\r\n name: _TL_('Assets'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.App],\r\n route: 'unifiedappads/assets',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.UnifiedAppAds,\r\n },\r\n ],\r\n};\r\n\r\nexport const unifiedAppAdsAssetGroups = {\r\n id: 'unified-appads-asset-group',\r\n name: _TL_('Asset groups'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.App],\r\n children: [\r\n {\r\n id: 'unified-appads-asset-group',\r\n name: _TL_('Asset groups'),\r\n route: 'unifiedappadsassetgroups',\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.UnifiedAppAds,\r\n },\r\n ],\r\n};\r\n\r\n\r\nexport const unifiedAppAdsAssetGroupsCreation = {\r\n id: 'unified-appads-asset-group-create',\r\n name: _TL_('Create asset group'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.Campaign],\r\n campaignTypes: [CampaignType.App],\r\n children: [\r\n {\r\n id: 'unified-appads-asset-group-create',\r\n name: _TL_('Create asset group'),\r\n route: 'unifiedappadsassetgroups/create',\r\n checkPermission: permissions => permissions.dynamic.UnifiedAppAds,\r\n },\r\n ],\r\n};\r\n\r\nexport const unifiedAppAdsAssetGroupsEdit = {\r\n id: 'unified-appads-asset-group-edit',\r\n name: _TL_('Edit asset group'),\r\n scope: [Scope.Campaign],\r\n scopeV2: [ScopeV2.AssetGroup],\r\n campaignTypes: [CampaignType.App],\r\n children: [\r\n {\r\n id: 'unified-appads-asset-group-edit',\r\n name: _TL_('Edit asset group'),\r\n route: 'unifiedappadsassetgroups/edit',\r\n checkPermission: permissions => permissions.dynamic.UnifiedAppAds,\r\n },\r\n ],\r\n};\r\n","import { billingPayments } from './billing-payments';\r\nimport { settings } from './settings';\r\nimport { accountAccess } from './account-access';\r\n\r\nimport {\r\n account,\r\n billing,\r\n insertionOrder,\r\n payment,\r\n rebill,\r\n xandrBankAssociation,\r\n deprecateInactiveSAPId,\r\n} from './billing-payments-standalone';\r\nimport {\r\n advancedSettings,\r\n} from './settings-standalone';\r\nimport { accountMap } from './account-map-standalone';\r\nimport { accountIdentityVerification } from './account-identity-verification-standalone';\r\nimport { accountsBulkUpdate } from './accounts-bulk-update-standalone';\r\nimport { mandateAgreementRequired } from './mandate-agreement-required-standalone';\r\nimport { UKFCAVerification } from './uk-fca-verification-standalone';\r\nimport { channelPartner } from './channel-partner-standalone';\r\nimport { billingGroupCreation } from './billing-group-creation-standalone';\r\nimport { fraudAppeal } from './fraud-appeal-standalone';\r\nimport { accountIdentityVerificationAppeal } from './account-identity-verification-appeal-standalone';\r\nimport { tradeScreeningTransformation } from './trade-screening-transformation-standalone';\r\nimport { unaccessible } from './unaccessible-standalone';\r\nimport { welcomeStandalone } from './welcome-standalone';\r\nimport { XandrAccountSettings } from './xandr-account-settings-standalone';\r\nimport { XandrCustomerOnboarding } from './xandr-customer-onboarding-standalone';\r\nimport { customerAccess } from './customer-access-standalone';\r\nimport { activateAPContact } from './activate-ap-contact-standalone';\r\nimport { signupPaymentSetup } from './signup-payment-setup-standalone';\r\n\r\nexport const clientCenterPages = [\r\n billingPayments,\r\n settings,\r\n accountAccess,\r\n];\r\n\r\nexport const clientCenterStandalonePages = [\r\n account,\r\n accountsBulkUpdate,\r\n billing,\r\n insertionOrder,\r\n payment,\r\n rebill,\r\n advancedSettings,\r\n accountMap,\r\n accountIdentityVerification,\r\n deprecateInactiveSAPId,\r\n mandateAgreementRequired,\r\n UKFCAVerification,\r\n channelPartner,\r\n billingGroupCreation,\r\n fraudAppeal,\r\n accountIdentityVerificationAppeal,\r\n tradeScreeningTransformation,\r\n unaccessible,\r\n welcomeStandalone,\r\n XandrAccountSettings,\r\n xandrBankAssociation,\r\n XandrCustomerOnboarding,\r\n customerAccess,\r\n activateAPContact,\r\n signupPaymentSetup,\r\n];\r\n","import { isNavigationRefreshOn } from '@bingads-webui-react/preference-utility';\r\nimport { Scope } from '../shared';\r\n\r\nexport const accountSettings = {\r\n id: 'accountSettings',\r\n name: _TL_('Account settings'),\r\n route: 'Settings/Account',\r\n scope: [Scope.Account],\r\n searchable: false,\r\n children: [\r\n {\r\n id: 'accountSettingsView',\r\n name: _TL_('Account settings'),\r\n route: 'Settings/Account',\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'accountSettingsEdit',\r\n name: _TL_('Account settings edit'),\r\n route: 'Settings/Account/Edit',\r\n scope: [Scope.Account],\r\n searchable: false,\r\n },\r\n ],\r\n};\r\nexport const emailSettings = {\r\n id: 'emailSettings',\r\n name: _TL_('Email preferences'),\r\n route: 'Settings/EmailPreferences',\r\n};\r\nexport const managerAccountSettings = {\r\n id: 'managerAccountSettings',\r\n name: _TL_('Manager account settings'),\r\n route: 'Settings/ManagerAccount',\r\n searchable: false,\r\n children: [\r\n {\r\n id: 'managerAccountSettingsView',\r\n name: _TL_('Manager account settings'),\r\n route: 'Settings/ManagerAccount',\r\n },\r\n {\r\n searchable: false,\r\n id: 'managerAccountSettingsEdit',\r\n name: _TL_('Manager account settings edit'),\r\n route: 'Settings/ManagerAccount/Edit',\r\n },\r\n ],\r\n};\r\nexport const mySettings = {\r\n id: 'mySettings',\r\n name: _TL_('My settings'),\r\n route: 'Settings/MySettings',\r\n};\r\nexport const advancedSettings = {\r\n id: 'advancedSettings',\r\n name: _TL_('Advanced settings'),\r\n route: 'Settings/AdvancedSettings',\r\n searchable: false,\r\n ccuiOnlyPage: true,\r\n children: [\r\n {\r\n id: 'advancedSettingsView',\r\n name: _TL_('Advanced settings'),\r\n route: 'Settings/AdvancedSettings',\r\n searchable: false,\r\n },\r\n {\r\n id: 'advancedSettingsEdit',\r\n name: _TL_('Advanced settings edit'),\r\n route: 'Settings/AdvancedSettings/Edit',\r\n searchable: false,\r\n },\r\n ],\r\n};\r\nexport const verificationHub = {\r\n id: 'verificationHub',\r\n name: _TL_('Account verifications'),\r\n route: 'Settings/VerificationHub',\r\n scope: [Scope.Account],\r\n};\r\nexport const viewDefaults = {\r\n id: 'viewDefaults',\r\n name: _TL_('Customize view'),\r\n route: 'Settings/ViewDefaults',\r\n checkPermission: permissions => isNavigationRefreshOn(permissions),\r\n};\r\nexport const devSettings = {\r\n id: 'devSettings',\r\n name: _TL_('Developer settings'),\r\n route: 'Settings/DevSettings',\r\n checkPermission: permissions => permissions.dynamic.DevCenterMigration && !permissions.IsInternalUser,\r\n};\r\nexport const settings = {\r\n id: 'defaultSettings',\r\n name: _TL_('Preferences'),\r\n route: 'Settings',\r\n fixedRoute: 'Settings',\r\n children: [\r\n accountSettings,\r\n emailSettings,\r\n managerAccountSettings,\r\n mySettings,\r\n advancedSettings,\r\n verificationHub,\r\n viewDefaults,\r\n devSettings,\r\n ],\r\n};\r\n","export const userManagement = {\r\n id: 'users',\r\n name: _TL_('User management'),\r\n route: 'Users',\r\n};\r\n\r\nexport const directManager = {\r\n id: 'managers',\r\n name: _TL_('Direct managers'),\r\n route: 'Managers',\r\n};\r\n\r\nexport const accountAccess = {\r\n id: 'accountAccess',\r\n name: _TL_('Account access'),\r\n route: 'Users',\r\n fixedRoute: 'Users',\r\n children: [\r\n directManager,\r\n userManagement,\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\nimport { billingAccountLinkPermissions } from './billing-payments';\r\n\r\nexport const account = {\r\n id: 'accountStandalone',\r\n name: _TL_('Account'),\r\n children: [\r\n {\r\n id: 'linkAccounts',\r\n name: _TL_('Link Accounts'),\r\n route: 'Agency/SendInvite',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'pendingBillingChange',\r\n name: _TL_('Pending Billing Change'),\r\n route: 'Account/PendingBillingChange',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n },\r\n {\r\n id: 'switchPaymentSetting',\r\n name: _TL_('Change How You Pay'),\r\n route: 'Account/SwitchPaymentSetting',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n },\r\n {\r\n id: 'takeOverBilling',\r\n name: _TL_('Change Who Pays'),\r\n route: 'Account/TakeOverBilling',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n },\r\n ],\r\n};\r\n\r\nconst coupon = {\r\n id: 'coupon',\r\n name: _TL_('Coupon'),\r\n route: 'Billing/CouponDetails',\r\n searchable: true,\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n};\r\n\r\nexport const couponDetails = {\r\n ...coupon,\r\n scope: [Scope.Account],\r\n};\r\n\r\nexport const couponDetailsCustomer = {\r\n ...coupon,\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.CustomerLevelCouponDetails,\r\n};\r\n\r\nexport const billing = {\r\n id: 'billingStandalone',\r\n name: _TL_('Billing'),\r\n children: [\r\n couponDetails,\r\n couponDetailsCustomer,\r\n {\r\n id: 'payNow',\r\n name: _TL_('Pay Now'),\r\n route: 'Billing/PayNow',\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n },\r\n ],\r\n};\r\n\r\nexport const insertionOrder = {\r\n id: 'insertionOrderStandalone',\r\n name: _TL_('Insertion orders'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n children: [\r\n {\r\n id: 'ioImport',\r\n name: _TL_('Bulk import insertions orders'),\r\n route: 'InsertionOrder/BulkImport',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'ioImportHistory',\r\n name: _TL_('Import history insertions orders'),\r\n route: 'InsertionOrder/IOImportHistoryList',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'ioPreApprove',\r\n name: _TL_('Pre-approve insertions orders'),\r\n route: 'InsertionOrder/PreApprove',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'ioViewHistory',\r\n name: _TL_('View history insertions orders'),\r\n route: 'InsertionOrder/ViewChangeHistory',\r\n },\r\n ],\r\n};\r\n\r\nexport const payment = {\r\n id: 'paymentStandalone',\r\n name: _TL_('Payment'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n children: [\r\n {\r\n id: 'addFunds',\r\n name: _TL_('Add funds'),\r\n route: 'Payment/Prepay',\r\n },\r\n {\r\n id: 'autoRecharge',\r\n name: _TL_('Auto recharge'),\r\n route: 'Payment/AutoPayment',\r\n },\r\n {\r\n id: 'paymentSlipRegisteredBoleto',\r\n name: _TL_('Payment Slip Registered Boleto'),\r\n route: 'Boleto/PaymentSlipRegisteredBoleto',\r\n },\r\n {\r\n id: 'sapOnboarding',\r\n name: _TL_('SAP Onboarding'),\r\n route: 'SAPOnboarding',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'creditHold',\r\n name: _TL_('Credit hold'),\r\n children: [\r\n {\r\n id: 'creditHoldDashboard',\r\n name: _TL_('Credit hold dashboard'),\r\n route: 'CreditHold/Dashboard',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n },\r\n {\r\n id: 'creditHoldResolveOptions',\r\n name: _TL_('Credit hold resolve options'),\r\n route: 'CreditHold/ResolveOptions',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n },\r\n {\r\n id: 'creditHoldPaymentDetails',\r\n name: _TL_('Credit hold payment details'),\r\n route: 'CreditHold/PaymentDetails',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n },\r\n {\r\n id: 'creditHoldReviewBalance',\r\n name: _TL_('Credit hold review balance'),\r\n route: 'CreditHold/ReviewBalance',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n },\r\n {\r\n id: 'creditHoldSummary',\r\n name: _TL_('Credit hold summary'),\r\n route: 'CreditHold/Summary',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n\r\nexport const rebill = {\r\n id: 'rebillStandalone',\r\n name: _TL_('Rebill'),\r\n scope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'rebill',\r\n name: _TL_('Rebill'),\r\n route: 'Rebill',\r\n checkPermission: permissions => !!permissions.IsInternalUser,\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'rebillDetails',\r\n name: _TL_('Rebill details'),\r\n route: 'Rebill/Details',\r\n checkPermission: permissions => !!permissions.IsInternalUser,\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n\r\nexport const xandrBankAssociation = {\r\n id: 'xandrBankAssociation',\r\n name: _TL_('Xandr seller side bank association'),\r\n route: 'Xandr/BankAssociation',\r\n scope: [Scope.Customer],\r\n searchable: false,\r\n checkPermission: permissions => !permissions.IsInternalUser,\r\n};\r\n\r\nexport const deprecateInactiveSAPId = {\r\n id: 'deprecateInactiveSAPId',\r\n name: _TL_('Deprecate inactive SAP ID'),\r\n route: 'deprecateInactiveSAPId',\r\n scope: [Scope.Customer],\r\n searchable: false,\r\n checkPermission: permissions => permissions.dynamic.DeprecateInactiveSAPId,\r\n};\r\n","\r\nexport const advancedSettings = {\r\n id: 'advancedSettingsStandalone',\r\n name: _TL_('Preferences'),\r\n children: [\r\n {\r\n id: 'accountAdvancedSettings',\r\n name: _TL_('Advanced settings'),\r\n route: 'Account/AdvancedSettings',\r\n },\r\n ],\r\n};\r\n","export const accountMap = {\r\n id: 'accountMap',\r\n name: _TL_('Account map'),\r\n route: 'AccountMap',\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const accountIdentityVerification = {\r\n id: 'aivStandalone',\r\n name: _TL_('Advertiser identity verification'),\r\n children: [\r\n {\r\n id: 'accountIdentityVerification',\r\n name: _TL_('Advertiser identity verification'),\r\n route: 'account/IdentityVerification',\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'aivWelcome',\r\n name: _TL_('Advertiser identity verification welcome'),\r\n route: 'account/IdentityVerificationWelcome',\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const accountsBulkUpdate = {\r\n id: 'accountsBulkUpdate',\r\n name: _TL_('Accounts bulk update'),\r\n children: [\r\n {\r\n id: 'accountsUpdateLocationsAndTaxes',\r\n name: _TL_('Bulk account update'),\r\n route: 'accounts/update',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n },\r\n {\r\n id: 'accountsUpdatePrimaryContact',\r\n name: _TL_('Update primary contact'),\r\n route: 'accounts/UpdatePrimaryContact',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const mandateAgreementRequired = {\r\n id: 'mandateAgreementRequired',\r\n name: _TL_('Mandate Agreement Required'),\r\n route: 'MandateAgreementRequired',\r\n checkPermission: permissions => permissions.dynamic.MandateAgreementRequired,\r\n scope: [Scope.Customer],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const UKFCAVerification = {\r\n id: 'UKFCAVerification',\r\n name: _TL_('UK FCA verification'),\r\n children: [\r\n {\r\n id: 'UKFCAWorkflow',\r\n name: _TL_('UK FCA verification workflow'),\r\n route: 'UKFCA/Workflow',\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'UKFCAUpdateDomains',\r\n name: _TL_('UK FCA verification update domains'),\r\n route: 'UKFCA/UpdateDomains',\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const channelPartner = {\r\n id: 'channelPartnerStandalone',\r\n name: _TL_('Channel Partner'),\r\n children: [\r\n {\r\n id: 'channelPartnerAddPayment',\r\n name: _TL_('Channel partner add payment'),\r\n route: 'channelPartner/AddPayment',\r\n scope: [Scope.Account],\r\n checkPermission: permissions => permissions.dynamic.ChannelPartnerAddPI,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\nimport { billingAccountLinkPermissions } from './billing-payments';\r\n\r\nexport const billingGroupCreation = {\r\n id: 'billingGroupCreationStandalone',\r\n name: _TL_('Billing group creation'),\r\n accountLinkPermissions: billingAccountLinkPermissions,\r\n children: [\r\n {\r\n id: 'billingGroupCreation',\r\n name: _TL_('Billing group creation'),\r\n route: 'billingGroupCreation',\r\n scope: [Scope.Customer],\r\n checkPermission: permissions => permissions.dynamic.ConsolidatedBillingV2,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const fraudAppeal = {\r\n id: 'fraudAppealStandalone',\r\n name: _TL_('Fraud appeal'),\r\n children: [\r\n {\r\n id: 'fraudAppeal',\r\n name: _TL_('Fraud appeal'),\r\n route: 'FraudAppeal',\r\n scope: [Scope.Customer],\r\n },\r\n {\r\n id: 'fraudAppealAIV',\r\n name: _TL_('Fraud appeal - Account verification'),\r\n route: 'FraudAppeal/AccountIdentityVerification',\r\n scope: [Scope.Account],\r\n },\r\n {\r\n id: 'fraudAppealAIVWelcome',\r\n name: _TL_('Fraud appeal - Account verification welcome'),\r\n route: 'FraudAppeal/AccountIdentityVerificationWelcome',\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const accountIdentityVerificationAppeal = {\r\n id: 'accountIdentityVerificationAppealStandalone',\r\n name: _TL_('Account identity verification appeal'),\r\n children: [\r\n {\r\n id: 'accountIdentityVerificationAppeal',\r\n name: _TL_('Account identity verification appeal'),\r\n route: 'account/IdentityVerificationAppeal',\r\n scope: [Scope.Account],\r\n },\r\n ],\r\n};\r\n","export const tradeScreeningTransformation = {\r\n id: 'masterDataManagementPortal',\r\n name: _TL_('Management portal'),\r\n route: 'MasterData/ManagementPortal',\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n};\r\n","import { AccountLinkPermissionType, isMultiAgencyBillingEnabled } from '@bingads-webui/multi-agency-utils';\r\n\r\nimport { allScopes } from '../shared';\r\n\r\nexport const unaccessible = {\r\n id: 'unaccessibleStandalone',\r\n name: _TL_('Unaccessible'),\r\n scope: allScopes,\r\n children: [\r\n {\r\n id: 'unaccessible',\r\n name: _TL_('Unaccessible'),\r\n route: 'Unaccessible',\r\n scope: allScopes,\r\n accountLinkPermissions: [AccountLinkPermissionType.Billing],\r\n checkPermission: permissions => isMultiAgencyBillingEnabled(permissions) && !permissions.IsInternalUser,\r\n },\r\n ],\r\n};\r\n","export const welcomeStandalone = {\r\n id: 'welcomeStandalone',\r\n name: _TL_('Welcome'),\r\n route: 'Welcome',\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const XandrAccountSettings = {\r\n id: 'XandrAccountSettingsStandalone',\r\n name: _TL_('Xandr Account Settings'),\r\n children: [\r\n {\r\n id: 'XandrAccountSettings',\r\n name: _TL_('Xandr Account Settings'),\r\n route: 'Xandr/AccountSettings',\r\n scope: [Scope.Account],\r\n checkPermission: permissions => permissions.dynamic.XandrAccountSettings,\r\n },\r\n ],\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const XandrCustomerOnboarding = {\r\n id: 'XandrCustomerOnboardingStandalone',\r\n name: _TL_('Xandr Customer Onboarding'),\r\n children: [\r\n {\r\n id: 'XandrCustomerOnboarding',\r\n name: _TL_('Xandr Customer Onboarding'),\r\n route: 'Xandr/CustomerOnboarding',\r\n scope: [Scope.Account],\r\n checkPermission: permissions => permissions.dynamic.XandrCustomerOnboarding,\r\n },\r\n ],\r\n};\r\n","export const customerAccess = {\r\n id: 'customerAccess',\r\n name: _TL_('Customer access'),\r\n children: [{\r\n id: 'customersSelection',\r\n name: _TL_('Customers selection'),\r\n route: 'customers/selection',\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n }, {\r\n id: 'customersManagement',\r\n name: _TL_('Customers management'),\r\n route: 'customers/management',\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n }, {\r\n id: 'addCustomerAccess',\r\n name: _TL_('Add customer access'),\r\n route: 'customers/addcustomeraccess',\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n }, {\r\n id: 'createCustomer',\r\n name: _TL_('Create customer'),\r\n route: 'customers/createcustomer',\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n }],\r\n};\r\n","export const activateAPContact = {\r\n id: 'activateAPContact',\r\n name: _TL_('Activate AP contact'),\r\n route: 'ActivateAPContact',\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const signupPaymentSetup = {\r\n id: 'signupPaymentSetupStandalone',\r\n name: _TL_('Signup payment setup'),\r\n children: [{\r\n id: 'signupPaymentSetup',\r\n name: _TL_('Signup payment setup'),\r\n route: 'signup/paymentSetup',\r\n scope: [Scope.Account],\r\n checkPermission: permissions => permissions.dynamic.WebpackifyPhase2Customer,\r\n }],\r\n};\r\n","import { adsRoot } from './ads-root';\r\nimport { homeRoot } from './home-root';\r\nimport { socialRoot } from './social-root';\r\nimport { myWebsite } from './my-website';\r\n\r\nexport const unifiedSmartPages = [adsRoot, homeRoot, socialRoot, myWebsite];\r\n","import { Scope } from '../shared';\r\n\r\nexport const adsRoot = {\r\n id: 'ads-root',\r\n route: 'ads',\r\n default: true,\r\n scope: [Scope.Account],\r\n metadata: {\r\n title: _TL_('Ads'),\r\n },\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const homeRoot = {\r\n id: 'home-root',\r\n route: 'home',\r\n default: true,\r\n scope: [Scope.Account],\r\n metadata: {\r\n title: _TL_('Home'),\r\n },\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const socialRoot = {\r\n id: 'social-root',\r\n route: 'social/inbox',\r\n default: true,\r\n scope: [Scope.Account],\r\n metadata: {\r\n title: _TL_('Social'),\r\n },\r\n};\r\n","import { Scope } from '../shared';\r\n\r\nexport const myWebsite = {\r\n id: 'my-website',\r\n route: 'smartpage',\r\n default: true,\r\n isUnifiedProductPage: true,\r\n scope: [Scope.Account],\r\n name: _TL_('Smart Pages'),\r\n checkPermission: permissions => permissions.dynamic.SmartPageUPIntegration,\r\n metadata: {\r\n title: _TL_('Smart Pages'),\r\n },\r\n};\r\n","import { advancedControlsPage } from './advanced-controls';\r\nimport { portfolioBidStrategyPage } from './portfolio-bid-strategy';\r\n\r\nexport const bidStrategiesPages = [\r\n advancedControlsPage,\r\n portfolioBidStrategyPage,\r\n];\r\n","import { Scope } from '../shared';\r\n\r\nexport const advancedControlsPage = {\r\n id: 'advanced-controls',\r\n name: _TL_('Advanced controls'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n {\r\n id: 'seasonality-adjustment',\r\n name: _TL_('Seasonality adjustments'),\r\n route: 'bidstrategies/seasonalityadjustment',\r\n checkPermission: permissions =>\r\n permissions.dynamic.SeasonalityAdjustment,\r\n },\r\n {\r\n id: 'data-exclusions',\r\n name: _TL_('Data exclusions'),\r\n route: 'bidstrategies/dataexclusions',\r\n },\r\n ],\r\n};\r\n","\r\nimport { Scope } from '../shared';\r\n\r\nexport const bidStrategiesPortfolio = {\r\n id: 'portfolio-bid-strategy',\r\n name: _TL_('Portfolio bid strategies'),\r\n route: 'bidstrategies/portfoliobidstrategy',\r\n checkPermission: permissions =>\r\n permissions.dynamic.PortfolioBidStrategy,\r\n};\r\n\r\nexport const portfolioBidStrategyPage = {\r\n id: 'portfolio-bid-strategy',\r\n name: _TL_('Portfolio bid strategies'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n bidStrategiesPortfolio,\r\n ],\r\n};\r\n","import { sdkCampaignOverview, sdkCampaignCreation, sdkCampaignSettings } from './ms-ads-sdk';\r\n\r\nexport const sdkPages = [\r\n sdkCampaignOverview,\r\n sdkCampaignSettings,\r\n sdkCampaignCreation,\r\n];\r\n","import { Scope } from '../shared';\r\n\r\nexport const sdkCampaignOverview = {\r\n id: 'sdk-campaign-overview',\r\n scope: [Scope.Campaign],\r\n available: permissions => permissions.dynamic.WebUIVnext,\r\n children: [\r\n {\r\n id: 'sdk-campaign-overview',\r\n name: _TL_('Campaign Overview'),\r\n route: 'sdkcampaignoverview',\r\n },\r\n ],\r\n};\r\n\r\nexport const sdkCampaignSettings = {\r\n id: 'sdk-campaign-settings',\r\n scope: [Scope.Campaign],\r\n available: permissions => permissions.dynamic.WebUIVnext,\r\n children: [\r\n {\r\n id: 'sdk-budget-settings',\r\n name: _TL_('Edit budget'),\r\n route: 'sdkbudgetsettings',\r\n },\r\n {\r\n id: 'sdk-target-settings',\r\n name: _TL_('Edit targets'),\r\n route: 'sdktargetsettings',\r\n },\r\n {\r\n id: 'sdk-assets-settings',\r\n name: _TL_('Edit assets'),\r\n route: 'sdkassetssettings',\r\n },\r\n ],\r\n};\r\n\r\nexport const sdkCampaignCreation = {\r\n id: 'sdk-campaign-creation',\r\n name: _TL_('Create campaign'),\r\n scope: [Scope.Account, Scope.Campaign],\r\n available: permissions => permissions.dynamic.WebUIVnext,\r\n route: 'sdkcampaigncreation',\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { memoize } from '@bingads-webui-universal/primitive-utilities';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\n\r\nconst getScope = (item, permissions) =>\r\n (_.isFunction(item.scope) ? item.scope(permissions) : item.scope);\r\n// todo: [rayduan] merge scope with V2 when we finish migration\r\nconst getScopeV2 = (item, permissions) =>\r\n (_.isFunction(item.scopeV2) ? item.scopeV2(permissions) : item.scopeV2);\r\nconst getTag = (item, permissions) =>\r\n (_.isFunction(item.showTag) ? item.showTag(permissions) : item.showTag);\r\n\r\nfunction filterByPermissions(siteMap, permissions) {\r\n return _.reduce(siteMap, (result, item) => {\r\n if (item.checkPermission(permissions)) {\r\n if (!_.isEmpty(item.children)) {\r\n const children = filterByPermissions(item.children, permissions);\r\n if (!_.isEmpty(children)) {\r\n const route = item.route || _.result(_.first(children), 'route');\r\n const available = _.some(children, child => child.available);\r\n const showTag = getTag(item, permissions);\r\n const scope = getScope(item, permissions);\r\n const scopeV2 = getScopeV2(item, permissions);\r\n result.push(_.defaults({\r\n children, available, route, showTag, scope, scopeV2,\r\n }, item));\r\n }\r\n } else {\r\n const available = _.isFunction(item.available) ?\r\n item.available(permissions) === true : item.available;\r\n const showTag = getTag(item, permissions);\r\n const scope = getScope(item, permissions);\r\n const scopeV2 = getScopeV2(item, permissions);\r\n result.push(_.defaults({\r\n available, showTag, scope, scopeV2,\r\n }, item));\r\n }\r\n }\r\n return result;\r\n }, []);\r\n}\r\n\r\nconst filterByPermissionsCached = memoize(filterByPermissions);\r\n\r\nexport function processPermissions(Component, useCache = false) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const permissions = _.defaults(props.permissions, { dynamic: {} });\r\n const processorFunc = useCache ? filterByPermissionsCached : filterByPermissions;\r\n const processedSiteMap = processorFunc(siteMap, permissions);\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n permissions: PropTypes.objectOf(PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.objectOf(PropTypes.bool),\r\n PropTypes.number,\r\n ])).isRequired,\r\n };\r\n\r\n return withPermissions(Wrapper);\r\n}\r\n","import PropTypes from 'prop-types';\r\n\r\nconst itemPropType = PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n title: PropTypes.string,\r\n route: PropTypes.string.isRequired,\r\n checkPermission: PropTypes.func.isRequired,\r\n accountLinkPermissions: PropTypes.arrayOf(PropTypes.number),\r\n scope: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.func]),\r\n campaignTypes: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.func]),\r\n available: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\r\n selected: PropTypes.bool,\r\n showTag: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object]),\r\n tagClass: PropTypes.string,\r\n});\r\n\r\nconst siteMapPropType = PropTypes.arrayOf(itemPropType);\r\n\r\nitemPropType.children = PropTypes.arrayOf(siteMapPropType);\r\n\r\nexport { siteMapPropType };\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withScope, QueryParam } from '@bingads-webui-react/scope-service';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { memoize } from '@bingads-webui-universal/primitive-utilities';\r\nimport { getCurrentScope } from './processor-helpers';\r\nimport { filterMapItem } from './filter-map-item';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\n\r\nconst processSitemapWithScope = (siteMap, scope, permissions) => {\r\n const scopeFilter = item => (_.isFunction(item.scope)\r\n ? _.contains(item.scope(permissions), scope)\r\n : _.contains(item.scope, scope));\r\n return filterMapItem(siteMap, scopeFilter);\r\n};\r\n\r\nconst processSitemapWithScopeCached = memoize(processSitemapWithScope);\r\n\r\nexport function processScope(Component, scope = null, useCache = false, skipRoot = false) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const {\r\n scope: {\r\n values: {\r\n aid,\r\n campaignId,\r\n adGroupId,\r\n storeId,\r\n feedId,\r\n },\r\n },\r\n permissions,\r\n } = props;\r\n const currentScope = getCurrentScope(campaignId, adGroupId, aid, storeId, feedId);\r\n const permissionsWithDynamic = _.defaults(permissions, { dynamic: {} });\r\n const scopeToCheck = scope === null ? currentScope : scope;\r\n\r\n const processorFunc = useCache ? processSitemapWithScopeCached : processSitemapWithScope;\r\n let processedSiteMap;\r\n\r\n if (skipRoot) {\r\n processedSiteMap = _.map(siteMap, item =>\r\n (item.processChildScope ? ({ ...item, children: processorFunc(item.children, scopeToCheck, permissionsWithDynamic) })\r\n : item));\r\n } else {\r\n processedSiteMap = processorFunc(siteMap, scopeToCheck, permissionsWithDynamic);\r\n }\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n permissions: PropTypes.objectOf(PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.objectOf(PropTypes.bool),\r\n PropTypes.number,\r\n ])).isRequired,\r\n };\r\n\r\n return withPermissions(withScope(Wrapper));\r\n}\r\n","/* istanbul ignore file */\r\nimport _ from 'underscore';\r\nimport urijs from 'urijs';\r\nimport { Scope } from '../configs/shared';\r\n\r\nexport const getCurrentScope = (\r\n currentCampaignId,\r\n currentAdGroupId,\r\n currentAccountId,\r\n currentStoreId,\r\n currentFeedId\r\n) => {\r\n if (currentStoreId && currentFeedId) {\r\n return Scope.MerchantFeed;\r\n }\r\n\r\n if (currentStoreId) {\r\n return Scope.Store;\r\n }\r\n\r\n if (currentAdGroupId) {\r\n return Scope.AdGroup;\r\n }\r\n\r\n if (currentCampaignId) {\r\n return Scope.Campaign;\r\n }\r\n\r\n if (currentAccountId) {\r\n return Scope.Account;\r\n }\r\n\r\n return Scope.Customer;\r\n};\r\n\r\n// todo: [rayduan] refactor below methods so that they are not coupled to features\r\nconst SCOPE_TO_KEY = {\r\n [Scope.Account]: 'aid',\r\n [Scope.Campaign]: 'campaignId',\r\n [Scope.AdGroup]: 'adGroupId',\r\n [Scope.Store]: 'storeId',\r\n [Scope.MerchantFeed]: 'feedId',\r\n};\r\n\r\nfunction trimScopeInternal({\r\n urlQuery,\r\n currentScope,\r\n leastSupportedScope,\r\n}) {\r\n // i.e. currentScope = 1 = account scope\r\n // leastSupportedScope = 0 = customer scope\r\n if (currentScope > leastSupportedScope) {\r\n const queryToRemove = _.range(leastSupportedScope + 1, currentScope + 1)\r\n .map(scopeNumber => SCOPE_TO_KEY[scopeNumber]);\r\n\r\n return urijs(urlQuery).removeQuery(queryToRemove).toString();\r\n }\r\n\r\n // No need to trim scope, return url query as it is\r\n return urlQuery;\r\n}\r\n\r\nexport function trimScope(supportedScopes, scopeService, siteMapId) {\r\n /* eslint-disable object-curly-newline */\r\n const {\r\n history,\r\n values: {\r\n uid,\r\n cid,\r\n aid,\r\n campaignId,\r\n adGroupId,\r\n storeId,\r\n feedId,\r\n },\r\n } = scopeService;\r\n if (siteMapId === 'import-google' || siteMapId === 'import-file') {\r\n return scopeService.stringify(_.omit({\r\n uid,\r\n cid,\r\n aid,\r\n }, value => !value));\r\n }\r\n\r\n const currentScope = getCurrentScope(campaignId, adGroupId, aid, storeId, feedId);\r\n const leastSupportedScope = _.isEmpty(supportedScopes) ? Scope.Account : _.max(supportedScopes);\r\n\r\n return trimScopeInternal({\r\n urlQuery: history.location.search, currentScope, leastSupportedScope,\r\n });\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport function filterMapItem(siteMap, predicate) {\r\n return _.reduce(siteMap, (result, item) => {\r\n if (predicate(item)) {\r\n const children = filterMapItem(item.children, predicate);\r\n result.push(_.defaults({ children }, item));\r\n }\r\n return result;\r\n }, []);\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withScope, QueryParam } from '@bingads-webui-react/scope-service';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { memoize } from '@bingads-webui-universal/primitive-utilities';\r\nimport { filterMapItem } from './filter-map-item';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\nimport { Scope } from '../configs/scope';\r\n\r\nconst processSitemapWithScope = (siteMap, scope, permissions) => {\r\n const scopeFilter = item => (_.isFunction(item.scopeV2)\r\n ? _.contains(item.scopeV2(permissions), scope)\r\n : _.contains(item.scopeV2, scope));\r\n return filterMapItem(siteMap, scopeFilter);\r\n};\r\n\r\nconst processSitemapWithScopeCached = memoize(processSitemapWithScope);\r\n\r\nexport function processScopeV2(Component, scope = null, useCache = false) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const { scope: { values }, permissions } = props;\r\n const currentScope = Scope.getCurrentScope(values);\r\n const permissionsWithDynamic = _.defaults(permissions, { dynamic: {} });\r\n const scopeToCheck = scope === null ? currentScope : scope;\r\n\r\n const processorFunc = useCache ? processSitemapWithScopeCached : processSitemapWithScope;\r\n const processedSiteMap = processorFunc(siteMap, scopeToCheck, permissionsWithDynamic);\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n permissions: PropTypes.objectOf(PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.objectOf(PropTypes.bool),\r\n PropTypes.number,\r\n ])).isRequired,\r\n };\r\n\r\n return withPermissions(withScope(Wrapper));\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Uri from 'urijs';\r\nimport { withRouter } from '@bingads-webui-react/router';\r\nimport { withSettingsConsumer } from '@bingads-webui-react/settings-context';\r\nimport { memoize } from '@bingads-webui-universal/primitive-utilities';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\nimport { isRouteMatch } from '../site-map-utilities';\r\nimport { updateBaseHost } from './path-utilities';\r\n\r\nexport const updateSelected = (pathname, siteMap) => _.map(siteMap, (item) => {\r\n const children = updateSelected(pathname, item.children);\r\n const exact = _.result(item, 'exact', true);\r\n let route;\r\n if (item.fixedRoute) {\r\n route = item.fixedRoute;\r\n } else {\r\n route = _.findWhere(children, { route: item.route }) ?\r\n item.route : _.result(_.first(children), 'route', item.route);\r\n }\r\n const selected = isRouteMatch(pathname, item.routePrefix, route, exact) ||\r\n !!_.findWhere(children, { selected: true });\r\n return _.extend(item, { selected, children, route });\r\n});\r\n\r\nexport const updateSitemapBaseHost = (siteMap, pathname, settingsContext) =>\r\n updateBaseHost(\r\n updateSelected(pathname, siteMap),\r\n (new Uri()).normalize(),\r\n settingsContext\r\n );\r\n\r\nconst updateSitemapBaseHostCached = memoize(updateSitemapBaseHost);\r\n\r\nexport function processPath(Component, useCache = false) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const { location: { pathname }, settingsContext } = props;\r\n const processorFunc = useCache ? updateSitemapBaseHostCached : updateSitemapBaseHost;\r\n const processedSiteMap = processorFunc(siteMap, pathname, settingsContext);\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n location: PropTypes.shape({\r\n pathname: PropTypes.string,\r\n }).isRequired,\r\n settingsContext: PropTypes.shape({\r\n Urls: PropTypes.object.isRequired,\r\n }),\r\n };\r\n\r\n Wrapper.defaultProps = {\r\n settingsContext: {\r\n Urls: {},\r\n },\r\n };\r\n\r\n return withSettingsConsumer(withRouter(Wrapper));\r\n}\r\n","import _ from 'underscore';\r\nimport { matchPath } from 'react-router-dom';\r\nimport Uri from 'urijs';\r\n\r\nimport { Scope, ScopeV2 } from './configs/shared';\r\n\r\nexport function isRouteMatch(pathname, routePrefix, route, exact) {\r\n const extractPattern = new RegExp(`${routePrefix}(.+)$`, 'i');\r\n const currentLocation = _.last(pathname.match(extractPattern));\r\n if (_.isEmpty(currentLocation)) {\r\n return false;\r\n }\r\n return route\r\n ? !!matchPath(currentLocation, {\r\n path: route,\r\n exact,\r\n })\r\n : false;\r\n}\r\n\r\nexport function getRoutePathById(siteMap, id, getAbsoluteIfExists = false) {\r\n if (_.isEmpty(siteMap)) {\r\n return false;\r\n }\r\n const site = _.findWhere(siteMap, { id });\r\n if (site) {\r\n if (getAbsoluteIfExists && site.absoluteRoute) {\r\n return site.absoluteRoute;\r\n }\r\n return (new Uri(site.route)).is('absolute') ? site.route :\r\n `${site.routePrefix}${site.route}`;\r\n }\r\n return getRoutePathById(_.chain(siteMap)\r\n .pluck('children')\r\n .flatten()\r\n .value(), id, getAbsoluteIfExists);\r\n}\r\n\r\nexport function findSiteMap(siteMap, condition) {\r\n for (let i = 0; i < siteMap.length; i += 1) {\r\n const item = siteMap[i];\r\n const result = condition(item) ? item : findSiteMap(item.children, condition);\r\n if (!_.isEmpty(result)) {\r\n return result;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function findAllSiteMap(siteMap, condition) {\r\n let result = [];\r\n for (let i = 0; i < siteMap.length; i += 1) {\r\n const item = siteMap[i];\r\n if (condition(item)) {\r\n result.push(item);\r\n }\r\n if (item.children.length > 0) {\r\n result = result.concat(findAllSiteMap(item.children, condition));\r\n }\r\n }\r\n return _.compact(result);\r\n}\r\n\r\n/**\r\n * findDeepSiteMap(map)\r\n * Will return deepest node who's parents and itself\r\n * satisfy the given condition\r\n * @param {map} map a site map\r\n * @param {function} condition truth test\r\n * @returns {object} node || undefinded if not found\r\n */\r\nexport function findDeepSiteMap(map, condition) {\r\n const currentNode = _.find(map, condition);\r\n let selectedChild;\r\n if (currentNode && currentNode.children) {\r\n selectedChild = findDeepSiteMap(currentNode.children, condition);\r\n }\r\n\r\n return selectedChild || currentNode;\r\n}\r\n\r\n/**\r\n * findSelectedNode(map)\r\n * Will return deepest node who's parents and itself\r\n * have selected property set true\r\n * @param {map} map a site map\r\n * @param {function} condition truth test\r\n * @returns {object} node || undefinded if not found\r\n */\r\nexport const findSelectedNode = _.partial(findDeepSiteMap, _, node => _.result(node, 'selected', false));\r\n\r\nfunction filterMapByIdSegments(siteMap, segments) {\r\n const id = _.last(segments);\r\n if (id === '*') {\r\n return siteMap;\r\n }\r\n for (let i = 0; i < siteMap.length; i += 1) {\r\n const item = siteMap[i];\r\n if (_.result(item, 'id') === id) {\r\n segments.pop();\r\n return _.isEmpty(segments) ? [item] :\r\n filterMapByIdSegments(item.children, segments);\r\n }\r\n const result = filterMapByIdSegments(item.children, segments);\r\n if (!_.isEmpty(result)) {\r\n return result;\r\n }\r\n }\r\n return [];\r\n}\r\n\r\n/**\r\n * filterMapByRootIds(siteMap, rootIds)\r\n * Will return a new siteMap that unions all matching rootdIds\r\n * Refer to root-filter-processor-unit-test for more examples\r\n * @param {array} siteMap a site map\r\n * @param {array} rootIds ids to match child items, supports ['id', 'parent/child', 'parent/*']\r\n * @returns {array} new siteMap that unions all rootIds matches\r\n */\r\nexport const filterMapByRootIds = (siteMap, rootIds = null) => {\r\n if (rootIds == null) {\r\n return siteMap;\r\n }\r\n const rootIdArray = _.isArray(rootIds) ? rootIds : [rootIds];\r\n return _.chain(rootIdArray)\r\n .map((id) => {\r\n const segments = id.split('/').reverse();\r\n return filterMapByIdSegments(siteMap, segments);\r\n })\r\n .flatten(true)\r\n .compact()\r\n .value();\r\n};\r\n\r\nexport const getNewScope = (currentScope, expectedScope, context) => {\r\n if (_.isArray(expectedScope)) {\r\n if (currentScope.aid) {\r\n if (currentScope.adGroupId && expectedScope.indexOf(Scope.AdGroup) >= 0) {\r\n return ScopeV2.trimToScope(ScopeV2.AdGroup, currentScope);\r\n }\r\n if (currentScope.campaignId && expectedScope.indexOf(Scope.Campaign) >= 0) {\r\n return ScopeV2.trimToScope(ScopeV2.Campaign, currentScope);\r\n }\r\n if (expectedScope.indexOf(Scope.Account) >= 0) {\r\n // we are under account scope, and page supports it\r\n return ScopeV2.trimToScope(ScopeV2.Account, currentScope);\r\n }\r\n if (expectedScope.indexOf(Scope.MerchantFeed) >= 0) {\r\n return ScopeV2.trimToScope(ScopeV2.MerchantFeed, currentScope);\r\n }\r\n if (expectedScope.indexOf(Scope.Store) >= 0) {\r\n return ScopeV2.trimToScope(ScopeV2.Store, currentScope);\r\n }\r\n } else if (expectedScope.indexOf(Scope.Customer) < 0) {\r\n // page doesn't support customer level, try to add back aid from context if available\r\n const aidFromContext = _.result(context.CurrentAccount, 'Id');\r\n if (aidFromContext) {\r\n const scopeWithoutAid = ScopeV2.trimToScope(ScopeV2.Customer, currentScope);\r\n return _.extend(scopeWithoutAid, { aid: aidFromContext });\r\n }\r\n }\r\n }\r\n // page stays on customer level or fallback to customer level from account level\r\n return ScopeV2.trimToScope(ScopeV2.Customer, currentScope);\r\n};\r\n\r\nconst isAbsoluteRoute = route => new Uri(route).is('absolute');\r\n\r\nconst routeWithPrefix = (route, prefix) => `${prefix}${route}`;\r\n\r\nexport const buildSitemapItemRoute = (item) => {\r\n if (item.route) {\r\n return isAbsoluteRoute(item.route) ? item.route : routeWithPrefix(item.route, item.routePrefix);\r\n }\r\n\r\n if (item.children && item.children[0]) {\r\n return buildSitemapItemRoute(item.children[0]);\r\n }\r\n\r\n return '';\r\n};\r\n\r\nexport const getSiteMapItemRoute = (params) => {\r\n const {\r\n item, scope, userContext,\r\n } = params;\r\n\r\n if (_.isEmpty(item)) {\r\n return null;\r\n }\r\n\r\n if (item.externalLink) {\r\n return {\r\n isExternal: true,\r\n pathName: item.externalLink,\r\n search: '',\r\n href: item.externalLink,\r\n };\r\n }\r\n\r\n const pathName = buildSitemapItemRoute(item);\r\n const search = scope.stringify(getNewScope(scope.values, item.scope, userContext));\r\n const href = Uri(pathName).search(search).toString();\r\n\r\n return {\r\n isExternal: false,\r\n pathName,\r\n search,\r\n href,\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport Uri from 'urijs';\r\n\r\nconst getBaseHost = (item, settings = {}) => {\r\n const baseUrl = _.result(settings.Urls, item.baseHost, null);\r\n return _.isEmpty(baseUrl) ? null : (new Uri(baseUrl)).normalize();\r\n};\r\n\r\nconst isAbsoluteRouteRequired = (baseHost, currentUrl) => {\r\n if (_.isEmpty(baseHost)) {\r\n return false;\r\n }\r\n\r\n if (currentUrl.host() !== baseHost.host()) {\r\n return true; // if host name is different, we need absolute route\r\n }\r\n\r\n const basePath = baseHost.path().toLowerCase();\r\n const currentPath = currentUrl.path().toLowerCase();\r\n\r\n // if basePath is not a sub-path of current path, we need absolute route\r\n return Uri.commonPath(basePath, currentPath) !== basePath;\r\n};\r\n\r\nexport const getRouteWithBaseHost = (route, baseHost, currentUrl, forceAbsolute = false) =>\r\n (\r\n (forceAbsolute || isAbsoluteRouteRequired(baseHost, currentUrl)) &&\r\n !_.isEmpty(baseHost) &&\r\n !(new Uri(route)).is('absolute')\r\n ? baseHost + route\r\n : route);\r\n\r\nexport const updateBaseHost = (siteMap, currentUrl, settings) =>\r\n _.map(siteMap, item => _.defaults({\r\n children: updateBaseHost(item.children, currentUrl, settings),\r\n route: getRouteWithBaseHost(item.route, getBaseHost(item, settings), currentUrl),\r\n absoluteRoute: getRouteWithBaseHost(item.route, getBaseHost(item, settings), currentUrl, true),\r\n }, item));\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { StateStore } from '@bingads-webui/state-store';\r\nimport { withStateStore } from '@bingads-webui/with-state-store';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\nimport { filterMapItem } from './filter-map-item';\r\n\r\nexport const customMapperStore = new StateStore({});\r\n\r\nconst cloneMap = _.partial(filterMapItem, _, () => true);\r\n\r\nexport function processCustomMapper(Component) {\r\n const Wrapper = ({ siteMap, store, ...props }) => {\r\n const customProcessors = _.isEmpty(store.state) ? _.identity :\r\n _.compose(..._.toArray(store.state), cloneMap);\r\n const processedSiteMap = customProcessors(siteMap);\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n store: PropTypes.instanceOf(StateStore).isRequired,\r\n };\r\n\r\n return withStateStore(Wrapper, customMapperStore);\r\n}\r\n","import React from 'react';\r\nimport { memoize } from '@bingads-webui-universal/primitive-utilities';\r\nimport { filterMapByRootIds } from '../site-map-utilities';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\n\r\nconst filterMapByRootIdsCached = memoize(filterMapByRootIds);\r\n\r\nexport function processRootFilter(Component, rootIds = null, useCache = false) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const processorFunc = useCache ? filterMapByRootIdsCached : filterMapByRootIds;\r\n const processedSiteMap = processorFunc(siteMap, rootIds);\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n };\r\n\r\n return Wrapper;\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport { memoize } from '@bingads-webui-universal/primitive-utilities';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\nimport { CampaignType } from '../configs/shared';\r\nimport { filterMapItem } from './filter-map-item';\r\n\r\nconst filterMapItemBase = (siteMap) => {\r\n const filter = (mapItem) => {\r\n if ((!_.isEmpty(mapItem.campaignTypes) && !_.contains(mapItem.campaignTypes, CampaignType.All)) ||\r\n _.isFunction(mapItem.campaignTypes)\r\n ) {\r\n return false;\r\n }\r\n\r\n if (mapItem.copilotFeature) {\r\n return false;\r\n }\r\n\r\n if (_.isFunction(mapItem.currentCampaign)) {\r\n return false;\r\n }\r\n\r\n if (!_.isEmpty(mapItem.adGroupTypes)) {\r\n return false;\r\n }\r\n\r\n if (!_.isEmpty(mapItem.hotelCampaignScope)) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n return filterMapItem(siteMap, filter);\r\n};\r\n\r\nconst filterMapItemCached = memoize(filterMapItemBase);\r\n\r\nexport function processCampaignUIContext(Component) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const processed = filterMapItemCached(siteMap);\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n };\r\n\r\n return Wrapper;\r\n}\r\n","import React from 'react';\r\nimport { memoize } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\nimport { filterMapItem } from './filter-map-item';\r\n\r\nconst filterMapItemBase = (siteMap) => {\r\n const filter = (mapItem) => {\r\n if (mapItem.ccuiOnlyPage) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n return filterMapItem(siteMap, filter);\r\n};\r\n\r\nconst filterMapItemCached = memoize(filterMapItemBase);\r\n\r\nexport function processCcuiContext(Component) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const processed = filterMapItemCached(siteMap);\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n };\r\n\r\n return Wrapper;\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withSettingsConsumer } from '@bingads-webui-react/settings-context';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { memoize } from '@bingads-webui-universal/primitive-utilities';\r\nimport {\r\n AccountLinkPermissionType as AccountLinkPermissionTypeEnum,\r\n isMultiAgencyBillingEnabled,\r\n isValidLinkPermission,\r\n} from '@bingads-webui/multi-agency-utils';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\n\r\nconst filterByAccountLinkPermission = (siteMap, settingsContext) => {\r\n const { AccountLinkPermissionType } = settingsContext;\r\n\r\n if (isValidLinkPermission(settingsContext)) {\r\n return _.reduce(siteMap, (result, item) => {\r\n if (_.isEmpty(item.accountLinkPermissions)) {\r\n if (_.isEmpty(item.children)) {\r\n if (AccountLinkPermissionType === AccountLinkPermissionTypeEnum.Standard) {\r\n result.push(item);\r\n }\r\n } else {\r\n const children = filterByAccountLinkPermission(item.children, settingsContext);\r\n if (!_.isEmpty(children)) {\r\n result.push(_.defaults({ children }, item));\r\n }\r\n }\r\n } else if (_.isArray(item.accountLinkPermissions) && item.accountLinkPermissions.includes(AccountLinkPermissionType)) {\r\n result.push(item);\r\n }\r\n return result;\r\n }, []);\r\n }\r\n\r\n return siteMap;\r\n};\r\n\r\nconst filterByAccountLinkPermissionCached = memoize(filterByAccountLinkPermission);\r\n\r\nexport function processAccountLinkPermission(Component, useCache = false) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const { settingsContext, permissions } = props;\r\n\r\n if (!isMultiAgencyBillingEnabled(permissions) || permissions.IsInternalUser) {\r\n return ();\r\n }\r\n\r\n const processorFunc = useCache ? filterByAccountLinkPermissionCached : filterByAccountLinkPermission;\r\n const processedSiteMap = processorFunc(siteMap, settingsContext);\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n settingsContext: PropTypes.shape({\r\n AccountLinkPermissionType: PropTypes.number,\r\n }),\r\n permissions: PropTypes.objectOf(PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.objectOf(PropTypes.bool),\r\n PropTypes.number,\r\n ])).isRequired,\r\n };\r\n\r\n Wrapper.defaultProps = {\r\n settingsContext: {},\r\n };\r\n\r\n return withPermissions(withSettingsConsumer(Wrapper));\r\n}\r\n","import React from 'react';\r\nimport { siteMapPropType } from './site-map-prop-type';\r\n\r\nexport const defaultPropName = 'siteMap';\r\n\r\nexport function createSiteMapWrapper(\r\n Component,\r\n composedProcessor,\r\n newSiteMap,\r\n propName = defaultPropName\r\n) {\r\n if (propName === defaultPropName) {\r\n const WrappedComponent = composedProcessor(Component);\r\n return props => ();\r\n }\r\n\r\n let siteMapBackup = null;\r\n\r\n const processPropName = (WrappedComponent) => {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const siteMapProp = { [propName]: siteMap };\r\n\r\n if (siteMapBackup) {\r\n siteMapProp.siteMap = siteMapBackup;\r\n }\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n };\r\n\r\n return Wrapper;\r\n };\r\n\r\n const backupOriginalSiteMap = ({ siteMap, ...rest }) => {\r\n siteMapBackup = siteMap;\r\n return rest;\r\n };\r\n\r\n const WrappedComponent = composedProcessor(processPropName(Component));\r\n return props => ();\r\n}\r\n","import { buildTree, alwaysDisplayedItem } from '../configs/shared';\r\nimport { accountMap } from './account-map';\r\nimport { advertise } from './advertise';\r\nimport { allAccounts } from './all-accounts';\r\nimport { assetLibrary } from './asset-library';\r\nimport { audiences } from './audiences';\r\nimport { billing } from './billing';\r\nimport { brands } from './brands';\r\nimport { budgetAndBid } from './budget-bid';\r\nimport { bulkActions, advertisingEditor, advertisingMobile } from './bulk-actions';\r\nimport { businessData } from './business-data';\r\nimport { businessLocation } from './business-location';\r\nimport { clarity } from './clarity';\r\nimport { conversions } from './conversions';\r\nimport { create } from './create';\r\nimport { hotel, hotelV2 } from './hotels';\r\nimport { imports } from './imports';\r\nimport { keywords } from './keywords';\r\nimport { labels } from './labels';\r\nimport { merchantCenter } from './merchant-center';\r\nimport { microsoftStoreAds } from './microsoft-store-ads';\r\nimport { performanceTargets } from './performance-targets';\r\nimport { preview } from './preview';\r\nimport { productFeed } from './product-feed';\r\nimport { reports, customReports } from './reports';\r\nimport { settings } from './setttings';\r\nimport { smartPage } from './smart-page';\r\nimport { websiteExclusion } from './website-exluction-list';\r\nimport { brandSafetyControls } from './brand-safety-controls';\r\nimport { brandLists } from './brand-lists';\r\nimport { liftMeasurement } from './lift-measurement';\r\nimport { adStudio } from './ad-studio';\r\n\r\nconst pages = {\r\n create,\r\n advertise,\r\n audiences,\r\n conversions,\r\n keywords,\r\n assetLibrary,\r\n imports,\r\n businessData,\r\n smartPage,\r\n merchantCenter,\r\n brands,\r\n productFeed,\r\n hotel,\r\n hotelV2,\r\n businessLocation,\r\n microsoftStoreAds,\r\n brandLists,\r\n budgetAndBid,\r\n bulkActions,\r\n advertisingEditor,\r\n advertisingMobile,\r\n labels,\r\n preview,\r\n performanceTargets,\r\n websiteExclusion,\r\n brandSafetyControls,\r\n accountMap,\r\n reports,\r\n customReports,\r\n liftMeasurement,\r\n clarity,\r\n allAccounts,\r\n billing,\r\n settings,\r\n adStudio,\r\n};\r\n\r\nconst navRefreshPages = Object.values(pages);\r\n\r\nconst navRefreshPageIds = {};\r\nObject.keys(pages).forEach((key) => {\r\n navRefreshPageIds[key] = pages[key].id;\r\n});\r\n\r\nexport { navRefreshPageIds };\r\n\r\nexport const navRefreshSiteMap = buildTree(navRefreshPages, alwaysDisplayedItem, true, undefined, true);\r\n","import { accountMap as accountMapV1 } from '../configs/tools/setup/account-map';\r\nimport { ccAlwaysDisplayedItem } from '../configs';\r\n\r\nexport const accountMap = {\r\n ...ccAlwaysDisplayedItem,\r\n ...accountMapV1,\r\n description: _TL_('View a full visual picture of your account structure.'),\r\n route: 'AccountMap',\r\n};\r\n","import {\r\n Scope,\r\n alwaysDisplayed,\r\n buildTree,\r\n defaultItem,\r\n} from '../configs/shared';\r\nimport { overview } from '../configs/campaign/overview';\r\nimport { recommendations } from '../configs/campaign/recommendations';\r\nimport { campaigns } from '../configs/campaign/campaigns';\r\nimport { adGroups } from '../configs/campaign/adgroups';\r\nimport { products } from '../configs/campaign/products';\r\nimport { adsAndExtensions } from '../configs/campaign/ads-and-extensions';\r\nimport { landingPages } from '../configs/campaign/landing-pages';\r\nimport { dynamicAdTargets } from '../configs/campaign/dynamic-ad-targets';\r\nimport { feedsItems } from '../configs/campaign/feeds-items';\r\nimport { keywords } from '../configs/campaign/keywords';\r\nimport { productGroups } from '../configs/campaign/product-groups';\r\nimport { hotelGroups, propertyGroups } from '../configs/campaign/hotel-groups';\r\nimport { hotels, properties } from '../configs/campaign/hotels';\r\nimport { audiences } from '../configs/campaign/audiences';\r\nimport { demographics } from '../configs/campaign/demographics';\r\nimport { settings } from '../configs/campaign/settings';\r\nimport { locations } from '../configs/campaign/locations';\r\nimport { adSchedule } from '../configs/campaign/ad-schedule';\r\nimport { devices } from '../configs/campaign/devices';\r\nimport { changeHistory } from '../configs/campaign/change-history';\r\nimport { competition } from '../configs/campaign/competition';\r\nimport { experiments } from '../configs/campaign/experiments';\r\nimport { queryInsights } from '../configs/campaign/query-insights';\r\nimport { appAdsAssetGroups, assetGroups } from '../configs/campaign/asset-groups';\r\nimport { listingGroups } from '../configs/campaign/listing-groups';\r\nimport { assetsReport } from '../configs/campaign/assets-report';\r\n\r\nexport const advertise = {\r\n id: 'advertise',\r\n name: _TL_('Campaigns'),\r\n description: _TL_('View performance, account information, recommendations, and more.'),\r\n scope: [Scope.Account, Scope.Campaign],\r\n campaignTypes: alwaysDisplayed,\r\n processChildScope: true,\r\n fixed: true,\r\n route: 'overview',\r\n children: buildTree([\r\n overview,\r\n recommendations,\r\n queryInsights,\r\n campaigns,\r\n adGroups,\r\n assetGroups,\r\n appAdsAssetGroups,\r\n listingGroups,\r\n products,\r\n adsAndExtensions,\r\n assetsReport,\r\n landingPages,\r\n keywords,\r\n dynamicAdTargets,\r\n feedsItems,\r\n productGroups,\r\n hotelGroups,\r\n propertyGroups,\r\n hotels,\r\n properties,\r\n audiences,\r\n demographics,\r\n settings,\r\n locations,\r\n adSchedule,\r\n devices,\r\n changeHistory,\r\n competition,\r\n experiments,\r\n ], defaultItem, true, undefined, true),\r\n};\r\n","import { accountsSummary } from '../configs/accounts/accounts-summary';\r\nimport { overview as accountsOverview } from '../configs/accounts/overview';\r\nimport { recommendations as accountsRecommendations } from '../configs/accounts/recommendations';\r\nimport { auctionInsights } from '../configs/accounts/auction-insights';\r\nimport { Scope } from '../configs/shared';\r\n\r\nexport const allAccounts = {\r\n id: 'all-accounts',\r\n name: _TL_('All accounts'),\r\n description: _TL_('Manage your account-level settings.'),\r\n oldUIScope: [Scope.Customer],\r\n scope: [Scope.Customer],\r\n route: 'accounts',\r\n children: [\r\n accountsOverview,\r\n accountsSummary,\r\n accountsRecommendations,\r\n auctionInsights,\r\n ],\r\n};\r\n","import { assetsPage, performancePage } from '../configs/tools/shared-library/creative-studio-asset-library';\r\nimport { Scope } from '../configs/shared';\r\n\r\nexport const assetLibrary = {\r\n id: 'asset-library',\r\n name: _TL_('Asset Library'),\r\n description: _TL_('Manage all of your creative assets in one place.'),\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Account],\r\n route: 'assetlibrary',\r\n children: [\r\n assetsPage,\r\n {\r\n ...performancePage,\r\n searchable: true,\r\n },\r\n ],\r\n checkPermission: permissions => !permissions.dynamic.AdsStudioMVP,\r\n};\r\n","import { audiencePlanner } from '../configs/tools/planning';\r\nimport { audiencesLibraryPages } from '../configs/tools/shared-library/audiences-library';\r\n\r\nexport const audiences = {\r\n id: 'audience-planner',\r\n name: _TL_('Audiences'),\r\n description: _TL_('Manage and plan audience targeting.'),\r\n children: [\r\n audiencesLibraryPages,\r\n audiencePlanner,\r\n ],\r\n};\r\n","import { buildTree } from '../configs/shared';\r\nimport { ccAlwaysDisplayedItem } from '../configs';\r\nimport {\r\n billingSummary,\r\n transactions,\r\n paymentMethods,\r\n adjustments,\r\n balance,\r\n insertionOrders,\r\n billingSettings,\r\n xandrBaf,\r\n} from '../configs/client-center/billing-payments';\r\nimport { couponDetails, couponDetailsCustomer } from '../configs/client-center/billing-payments-standalone';\r\n\r\n// children are dynamically generated. So we hide them from nav menus\r\nconst billingSettingsProcessed = {\r\n ...billingSettings,\r\n children: billingSettings.children.map(child => ({\r\n ...child,\r\n searchable: false,\r\n })),\r\n};\r\n\r\nconst billing = {\r\n id: 'billing',\r\n name: _TL_('Billing'),\r\n description: _TL_('Manage your billing and payments.'),\r\n route: 'billing',\r\n fixed: true,\r\n tail: true,\r\n processChildScope: true,\r\n children: [\r\n billingSummary,\r\n transactions,\r\n paymentMethods,\r\n adjustments,\r\n xandrBaf,\r\n balance,\r\n insertionOrders,\r\n billingSettingsProcessed,\r\n couponDetails,\r\n couponDetailsCustomer,\r\n ],\r\n};\r\n\r\nconst tree = buildTree([billing], ccAlwaysDisplayedItem, true, undefined, true)[0];\r\n\r\nexport { tree as billing };\r\n","import { SponsoredProductsPage } from '../configs/tools/shared-library/product-feed';\r\n\r\nexport const brands = {\r\n ...SponsoredProductsPage,\r\n description: _TL_('Partner with retailers selling your products.'),\r\n children: [],\r\n};\r\n","import { Scope } from '../configs/shared';\r\nimport { advancedControlsPage } from '../configs/bid-strategies/advanced-controls';\r\nimport { bidStrategiesPortfolio } from '../configs/bid-strategies/portfolio-bid-strategy';\r\nimport { sharedBudgetsPage } from '../configs/tools/shared-library/shared-budgets';\r\nimport { budgetCenter } from '../configs/tools/setup/budget-center';\r\nimport { portfolioBid } from '../configs/tools/shared-library/portfolio-bid-strategy';\r\nimport { seasonalityAdjustment } from '../configs/tools/shared-library/seasonality-adjustment';\r\n\r\nexport const budgetAndBid = {\r\n id: 'budget-and-bid',\r\n name: _TL_('Bids & budgets'),\r\n description: _TL_('Optimize your campaigns with bids and budgets.'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n sharedBudgetsPage,\r\n budgetCenter,\r\n advancedControlsPage,\r\n bidStrategiesPortfolio,\r\n portfolioBid,\r\n seasonalityAdjustment,\r\n ],\r\n};\r\n","import { bulkActionsPages, advertisingEditor, advertisingMobile } from '../configs/tools/bulk-actions';\r\n\r\nexport const bulkActions = {\r\n id: 'bulk-actions',\r\n name: _TL_('Bulk actions'),\r\n description: _TL_('Make bulk edits by using automated rules, bulk upload, and/or scripts.'),\r\n scope: bulkActionsPages[0].scope,\r\n children: bulkActionsPages,\r\n};\r\n\r\nexport { advertisingEditor, advertisingMobile };\r\n","import { businessDataPages } from '../configs/tools/setup/business-data';\r\n\r\nexport const businessData = {\r\n id: 'business-data',\r\n name: _TL_('Business data'),\r\n description: _TL_('Upload and manage your business data feeds.'),\r\n route: 'feeds/attribute',\r\n children: businessDataPages,\r\n};\r\n","import { Scope } from '../configs/shared';\r\nimport { businessLocationFeed } from '../configs/tools/shared-library/business-location-feed';\r\n\r\nexport const businessLocation = {\r\n id: 'business-location',\r\n name: _TL_('Business locations'),\r\n description: _TL_('Sync location data from Google My Business or Bing Places.'),\r\n oldUIScope: [Scope.Account],\r\n children: businessLocationFeed,\r\n};\r\n","import { clarityWebsite } from '../configs/tools/conversion-tracking/clarity-website';\r\n\r\nexport const clarity = {\r\n ...clarityWebsite,\r\n description: _TL_('Set up Clarity to see how customers interact with your site.'),\r\n externalLink: 'https://clarity.microsoft.com',\r\n};\r\n","import { offlineConversions, uetTags, conversionGoals, customerAcquisition } from '../configs/tools/conversion-tracking';\r\nimport { alwaysDisplayedItem, buildTree } from '../configs/shared';\r\nimport { modeledConversions } from '../configs/tools/conversion-tracking/modeled-conversions';\r\n\r\nconst conversions = {\r\n id: 'conversions',\r\n name: _TL_('Conversions'),\r\n description: _TL_('Get behavioral insights for conversion tracking.'),\r\n children: [\r\n {\r\n ...uetTags,\r\n children: [{\r\n id: 'uet-tags-pages',\r\n children: uetTags.children,\r\n }],\r\n },\r\n conversionGoals,\r\n {\r\n ...offlineConversions,\r\n children: [{\r\n id: 'offline-conversions-pages',\r\n children: offlineConversions.children,\r\n }],\r\n },\r\n {\r\n ...modeledConversions,\r\n children: [{\r\n id: 'modeled-conversions-pages',\r\n children: modeledConversions.children,\r\n }],\r\n },\r\n customerAcquisition,\r\n ],\r\n};\r\n\r\nconst tree = buildTree([conversions], alwaysDisplayedItem, true, undefined, true)[0];\r\n\r\nexport { tree as conversions };\r\n","import { Scope } from '../configs/shared';\r\n\r\nexport const create = {\r\n id: 'create',\r\n name: _TL_('Create'),\r\n description: _TL_(''),\r\n route: 'createcampaign/objective',\r\n fixed: true,\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Account],\r\n};\r\n","import { flatHotelCenterPages } from '../configs/tools/setup/hotel-center';\r\nimport { flatHotelCenterV2Pages } from '../configs/tools/setup/hotel-center-v2';\r\nimport {\r\n defaultScopes,\r\n} from '../configs/shared';\r\n\r\nexport const hotel = {\r\n id: 'hotel-center',\r\n name: _TL_('Hotel Center'),\r\n description: _TL_('Manage ads and campaigns for your hotels and rental properties.'),\r\n scope: defaultScopes,\r\n children: [\r\n ...flatHotelCenterPages,\r\n ],\r\n checkPermission: permissions => permissions.dynamic.HotelAds && !permissions.dynamic.HotelCenterRemoval,\r\n};\r\n\r\nexport const hotelV2 = {\r\n id: 'property-center',\r\n name: _TL_('Property Center'),\r\n description: _TL_('Manage ads and campaigns for your hotels and rental properties.'),\r\n scope: defaultScopes,\r\n children: [\r\n ...flatHotelCenterV2Pages,\r\n ],\r\n checkPermission: permissions => permissions.dynamic.HotelCenterV2,\r\n};\r\n","import {\r\n importSchedule,\r\n googleImport,\r\n facebookImport,\r\n amazonImport,\r\n pinterestImport,\r\n fileImport,\r\n} from '../configs/import/imports';\r\nimport { importCenter } from '../configs/import/import-center';\r\n\r\nexport const imports = {\r\n id: 'import',\r\n name: _TL_('Import'),\r\n description: _TL_('Import your campaigns and data from Google Ads, Meta Ads, and/or Pinterest Ads.'),\r\n scope: importSchedule.scope,\r\n children: [\r\n importSchedule,\r\n googleImport,\r\n facebookImport,\r\n amazonImport,\r\n pinterestImport,\r\n fileImport,\r\n importCenter,\r\n ],\r\n};\r\n","import { keywordPlanner } from '../configs/tools/planning';\r\nimport { negativeKeyword } from '../configs/tools/shared-library/negative-keyword-lists-library';\r\n\r\nexport const keywords = {\r\n id: 'keywords-planning',\r\n name: _TL_('Keywords'),\r\n description: _TL_('Manage keyword and negative keyword lists.'),\r\n children: [\r\n keywordPlanner,\r\n negativeKeyword,\r\n ],\r\n};\r\n","import { Scope, alwaysDisplayedItem, buildTree } from '../configs/shared';\r\nimport { labelsPage } from '../configs/tools/shared-library/labels';\r\n\r\nconst labels = {\r\n id: 'labels',\r\n name: _TL_('Labels'),\r\n description: _TL_('Organize your campaigns, ad groups, and more with labels.'),\r\n route: 'labels',\r\n oldUIScope: [Scope.Account, Scope.Customer],\r\n scope: [Scope.Account, Scope.Customer],\r\n children: [\r\n {\r\n id: 'labels-pages',\r\n ...labelsPage,\r\n }],\r\n};\r\n\r\nconst tree = buildTree([labels], alwaysDisplayedItem, true, undefined, true)[0];\r\n\r\nexport { tree as labels };\r\n","import { defaultScope, defaultScopeV2 } from '../configs/tools/setup/merchant-center/merchant-shared';\r\n\r\nimport { feeds } from '../configs/tools/setup/merchant-center/feeds';\r\nimport { importFeed } from '../configs/tools/setup/merchant-center/import';\r\nimport { promotions } from '../configs/tools/setup/merchant-center/promotions';\r\nimport { settings } from '../configs/tools/setup/merchant-center/settings';\r\nimport { storeSummary } from '../configs/tools/setup/merchant-center/summary';\r\nimport { stores } from '../configs/tools/setup/merchant-center/stores';\r\nimport { products } from '../configs/tools/setup/merchant-center/products';\r\n\r\n// those are not shown in the L2 menu. But add them to sitemap so that L1 item is highlighted\r\nconst storesRoute = stores.children.map(store => ({\r\n ...store,\r\n searchable: false,\r\n}));\r\n\r\nexport const merchantCenter = {\r\n id: 'merchant-center',\r\n name: _TL_('Merchant Center'),\r\n description: _TL_('Manage your product catalogs to run shopping campaigns.'),\r\n scope: defaultScope,\r\n scopeV2: defaultScopeV2,\r\n route: 'merchantcenter',\r\n processChildScope: true,\r\n children: [\r\n {\r\n ...storeSummary,\r\n name: _TL_('Summary'),\r\n },\r\n {\r\n ...feeds,\r\n name: _TL_('Feeds'),\r\n },\r\n {\r\n ...importFeed,\r\n name: _TL_('Import'),\r\n },\r\n {\r\n ...promotions,\r\n name: _TL_('Promotions'),\r\n },\r\n {\r\n ...settings,\r\n name: _TL_('Settings'),\r\n },\r\n {\r\n ...products,\r\n name: _TL_('Product Explorer'),\r\n },\r\n ...storesRoute,\r\n ],\r\n};\r\n","import { MicrosoftStoreAdsPageGA } from '../configs/tools/shared-library/product-feed';\r\n\r\nexport const microsoftStoreAds = {\r\n ...MicrosoftStoreAdsPageGA,\r\n name: _TL_('Microsoft Store Ads'),\r\n description: _TL_('Create and manage ads targeted towards customers browsing the Microsoft Store.'),\r\n};\r\n","import { Scope } from '../configs/shared';\r\nimport { performanceTargets as page } from '../configs/tools/shared-library/performance-targets';\r\nimport { performanceTargetsCreate } from '../configs/standalone/performance-targets-create';\r\nimport { performanceTargetsOverview } from '../configs/standalone/performance-targets-overview';\r\n\r\n\r\n// those are not shown in the L2 menu. But add them to sitemap so that L1 item is highlighted\r\nconst createRoutes = performanceTargetsCreate.children.map(child => ({\r\n ...child,\r\n searchable: false,\r\n}));\r\n\r\nconst overviewRoutes = performanceTargetsOverview.children.map(child => ({\r\n ...child,\r\n searchable: false,\r\n}));\r\n\r\nexport const performanceTargets = {\r\n id: 'performance-targets',\r\n name: _TL_('Performance targets'),\r\n description: _TL_('Set targets and review performance for groups of campaigns.'),\r\n oldUIScope: [Scope.Account],\r\n children: [\r\n page,\r\n ...createRoutes,\r\n ...overviewRoutes,\r\n ],\r\n};\r\n","import { alwaysDisplayed } from '../configs/shared';\r\nimport { adPreview } from '../configs/tools/planning';\r\n\r\nexport const preview = {\r\n ...adPreview,\r\n id: 'preview',\r\n name: _TL_('Ad preview'),\r\n description: _TL_('Preview your ad location in Microsoft Bing search results.'),\r\n campaignTypes: alwaysDisplayed,\r\n};\r\n","// product feed is missing from all tools.\r\n\r\nimport { ProductFeedPage } from '../configs/tools/shared-library/product-feed';\r\n\r\nexport const productFeed = {\r\n ...ProductFeedPage,\r\n description: _TL_('Partner with retailers selling your products.'),\r\n};\r\n","import {\r\n defaultReportsPage,\r\n myReportsPage,\r\n editReportPage,\r\n} from '../configs/reports-v4';\r\nimport {\r\n myCustomReportsPage,\r\n reportTemplatePage,\r\n} from '../configs/reports-vnext';\r\nimport { allScopes, alwaysDisplayed, alwaysDisplayedItem, buildTree } from '../configs/shared';\r\n\r\n\r\nconst reports = {\r\n id: 'reports-v4',\r\n name: _TL_('Reporting'),\r\n description: _TL_('View performance data with instant reports or by creating custom reports.'),\r\n route: 'reports-v4',\r\n fixedRoute: 'reports-v4',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => !permissions.dynamic.CustomReports,\r\n children: [\r\n defaultReportsPage,\r\n myReportsPage,\r\n {\r\n ...editReportPage,\r\n searchable: false,\r\n },\r\n ],\r\n};\r\n\r\nconst customReports = {\r\n id: 'reports-v4',\r\n name: _TL_('Reporting'),\r\n description: _TL_('View performance data with instant reports or by creating custom reports.'),\r\n route: 'reporting',\r\n fixedRoute: 'reporting',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n checkPermission: permissions => permissions.dynamic.CustomReports,\r\n children: [\r\n myCustomReportsPage,\r\n reportTemplatePage,\r\n ],\r\n};\r\n\r\nexport const tree = buildTree([reports], alwaysDisplayedItem, true, undefined, true)[0];\r\nexport const customReportTree = buildTree([customReports], alwaysDisplayedItem, true, undefined, true)[0];\r\n\r\n\r\nexport { tree as reports };\r\nexport { customReportTree as customReports };\r\n","import { buildTree, allScopes, alwaysDisplayed } from '../configs/shared';\r\nimport { ccAlwaysDisplayedItem } from '../configs';\r\n\r\nimport {\r\n accountSettings,\r\n emailSettings,\r\n managerAccountSettings,\r\n mySettings,\r\n advancedSettings,\r\n verificationHub,\r\n viewDefaults,\r\n devSettings,\r\n} from '../configs/client-center/settings';\r\n\r\nimport { directManager, userManagement } from '../configs/client-center/account-access';\r\n\r\n// hide children them from nav menus, while keeping the parent visible\r\nconst accountSettingsProcessed = {\r\n ...accountSettings,\r\n searchable: true,\r\n children: accountSettings.children.map(child => ({\r\n ...child,\r\n searchable: false,\r\n })),\r\n};\r\nconst managerAccountSettingsProcessed = {\r\n ...managerAccountSettings,\r\n searchable: true,\r\n children: managerAccountSettings.children.map(child => ({\r\n ...child,\r\n searchable: false,\r\n })),\r\n};\r\nconst advancedSettingsProcessed = {\r\n ...advancedSettings,\r\n searchable: true,\r\n children: advancedSettings.children.map(child => ({\r\n ...child,\r\n searchable: false,\r\n })),\r\n};\r\n\r\nconst settings = {\r\n id: 'settings',\r\n name: _TL_('Settings'),\r\n route: 'Settings/ViewDefaults',\r\n scope: allScopes,\r\n campaignTypes: alwaysDisplayed,\r\n processChildScope: true,\r\n fixed: true,\r\n tail: true,\r\n children: [\r\n viewDefaults,\r\n accountSettingsProcessed,\r\n emailSettings,\r\n managerAccountSettingsProcessed,\r\n mySettings,\r\n advancedSettingsProcessed,\r\n verificationHub,\r\n userManagement,\r\n directManager,\r\n devSettings,\r\n ],\r\n};\r\n\r\nconst tree = buildTree([settings], ccAlwaysDisplayedItem, true, undefined, true)[0];\r\n\r\nexport { tree as settings };\r\n","import { Scope, isSmartPageStandalone } from '../configs/shared';\r\n\r\nexport const smartPage = {\r\n id: 'smart-page',\r\n name: _TL_('Smart Page'),\r\n description: _TL_('Create a free website for your business.'),\r\n scope: [Scope.Account],\r\n externalLink: `${window.location.origin}/campaign/sp/landing${window.location.search}`,\r\n checkPermission: permissions => permissions.dynamic.PMaxLite && !isSmartPageStandalone(permissions)\r\n && !permissions.IsUnifiedSmartMode && !permissions.IsSmartMode,\r\n};\r\n","import { siteExclusionListsAccountLevelViewListsPage } from '../configs/tools/shared-library/site-exclusion-lists-account-level-view-lists';\r\nimport { siteExclusionListsCustomerLevelCreateListsPage } from '../configs/tools/shared-library/site-exclusion-lists-customer-level-create-lists';\r\nimport { alwaysDisplayedItem, buildTree, Scope, defaultScopes } from '../configs/shared';\r\n\r\nconst websiteExclusion = {\r\n id: 'website-exclusion',\r\n name: _TL_('Website exclusions'),\r\n description: _TL_('Keep ads from showing on specific websites using account level website exclusion lists.'),\r\n scope: [Scope.Customer, ...defaultScopes],\r\n checkPermission: permissions => !(permissions.dynamic.BrandSafety || permissions.dynamic.BrandSafetyWithUnscored),\r\n children: [\r\n siteExclusionListsAccountLevelViewListsPage,\r\n siteExclusionListsCustomerLevelCreateListsPage,\r\n ],\r\n};\r\n\r\nconst tree = buildTree([websiteExclusion], alwaysDisplayedItem, true, undefined, true)[0];\r\n\r\nexport { tree as websiteExclusion };\r\n","import { siteExclusionListsAccountLevelViewListsPage } from '../configs/tools/shared-library/site-exclusion-lists-account-level-view-lists';\r\nimport { siteExclusionListsCustomerLevelCreateListsPage } from '../configs/tools/shared-library/site-exclusion-lists-customer-level-create-lists';\r\nimport { contentExclusionAccountLevelPage } from '../configs/tools/shared-library/content-exclusion-account-level';\r\nimport { alwaysDisplayedItem, buildTree, Scope, defaultScopes } from '../configs/shared';\r\n\r\nconst brandSafetyControls = {\r\n id: 'brand-safety-controls',\r\n name: _TL_('Content suitability'),\r\n description: _TL_('Safeguard your brand image by blocking your ads from appearing with specific websites and types of content.'),\r\n scope: [Scope.Customer, ...defaultScopes],\r\n checkPermission: permissions => permissions.dynamic && (permissions.dynamic.BrandSafety || permissions.dynamic.BrandSafetyWithUnscored),\r\n children: [\r\n siteExclusionListsAccountLevelViewListsPage,\r\n siteExclusionListsCustomerLevelCreateListsPage,\r\n contentExclusionAccountLevelPage,\r\n ],\r\n};\r\n\r\nconst tree = buildTree([brandSafetyControls], alwaysDisplayedItem, true, undefined, true)[0];\r\n\r\nexport { tree as brandSafetyControls };\r\n","import { brandListsPage } from '../configs/tools/shared-library/brand-lists';\r\n\r\nexport const brandLists = {\r\n ...brandListsPage,\r\n name: _TL_('Brand lists'),\r\n description: _TL_('Manage your brand lists for brand protection and brand exclusion.'),\r\n};\r\n","import { liftMeasurement as liftMeasurementPage } from '../configs/tools/shared-library/lift-measurement';\r\n\r\nexport const liftMeasurement = {\r\n ...liftMeasurementPage,\r\n description: _TL_('Lift measurement helps you understand how much more likely consumers are to search for your brand, visit your website, and make purchases after seeing your Audience ads.'),\r\n};\r\n","import { Scope } from '../configs/shared';\r\nimport {\r\n brandKitPage,\r\n displayTemplatePage,\r\n homePage,\r\n imagesPage,\r\n libraryPage,\r\n performancePage,\r\n videosPage,\r\n videoTemplatePage,\r\n} from '../configs/tools/shared-library/ad-studio';\r\n\r\nexport const adStudio = {\r\n id: 'asset-library',\r\n name: _TL_('Ads Studio'),\r\n description: _TL_('Manage all of your creative assets in one place.'),\r\n oldUIScope: [Scope.Account],\r\n scope: [Scope.Account],\r\n route: 'adstudio',\r\n children: [\r\n homePage,\r\n imagesPage,\r\n displayTemplatePage,\r\n videosPage,\r\n videoTemplatePage,\r\n performancePage,\r\n brandKitPage,\r\n libraryPage,\r\n ],\r\n checkPermission: permissions => permissions.dynamic.AdsStudioMVP,\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withScope, QueryParam } from '@bingads-webui-react/scope-service';\r\nimport { getCurrentScope } from './processor-helpers';\r\nimport { siteMapPropType } from '../site-map-prop-type';\r\n\r\nconst idToMatch = 'site-exclusion-lists-entrypoint';\r\nconst sharedLibraryId = 'shared-library';\r\nconst siteExclusionId = 'website-exclusion';\r\nconst brandSafetyControls = 'brand-safety-controls';\r\n\r\nexport function processSharedLibrary(Component) {\r\n const Wrapper = ({ siteMap, ...props }) => {\r\n const {\r\n scope: {\r\n values: {\r\n aid, campaignId, adGroupId,\r\n },\r\n },\r\n } = props;\r\n\r\n const currentScope = getCurrentScope(campaignId, adGroupId, aid);\r\n\r\n const updatedSiteMap = _.map(siteMap, (item) => {\r\n if (item.id === sharedLibraryId || item.id === siteExclusionId || item.id === brandSafetyControls) {\r\n const children = _.reject(\r\n _.map(\r\n item.children,\r\n child => ({ ...child.children[0], name: child.name })\r\n ),\r\n i => i.id === idToMatch && !_.contains(i.scope, currentScope)\r\n );\r\n return _.defaults({ children }, item);\r\n }\r\n return item;\r\n });\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n };\r\n\r\n return withScope(Wrapper);\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__216__;","module.exports = __WEBPACK_EXTERNAL_MODULE__353__;","module.exports = __WEBPACK_EXTERNAL_MODULE__42__;","module.exports = __WEBPACK_EXTERNAL_MODULE__630__;","module.exports = __WEBPACK_EXTERNAL_MODULE__642__;","module.exports = __WEBPACK_EXTERNAL_MODULE__947__;"],"names":["installedModules","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_EXTERNAL_MODULE__10__","__WEBPACK_EXTERNAL_MODULE__3__","__WEBPACK_EXTERNAL_MODULE__4__","__WEBPACK_EXTERNAL_MODULE__7__","UiBlockerUnthemed","props","blocking","children","loadingText","classes","reactBlockUi","className","blockUiContainer","blockUiOverlay","blockerIndicator","role","propTypes","PropTypes","bool","isRequired","node","string","shape","UiBlocker","withDefaultStyles","getStyles","blockUi","color","defaultBlockerIndicator","marginTop","padding","top","position","display","alignItems","backgroundColor","maxWidth","minWidth","minHeight","zIndex","border","_","result","light","extend","textAlign","right","bottom","left","width","height","cursor","overflow","outline","Fragment","style","margin","float","paddingTop","borderBottom","borderTop","borderRight","flexDirection","Height","flexGrow","__WEBPACK_EXTERNAL_MODULE__11__","stateStore","withStateStore","UnifiedNotificationQueueContainer","React","Component","constructor","super","content","this","contextLogContent","isString","JSON","stringify","newContext","getContext","uid","isContextChanged","state","context","setState","parameters","Listener","onNavigate","navigationHandler","componentWillUnmount","unbind","cid","aid","campaignId","render","UnifiedNotificationQueueShared","i18n","permissions","ccBaseUrl","logger","notificationStore","isUINext","generateViewAllLink","generateViewAllLinkInOldUI","campaignDomain","baseHelpUrl","contextPropTypes","getString","func","mark","startProcess","endProcess","trace","error","dismissNQAll","nQNotificationList","arrayOf","nQShouldShowPreviewBar","defaultProps","noop","callback","lastHash","window","location","hash","addEventListener","removeEventListener","externalNotifications","previewBarVisibility","getAllExternalNotifications","getPreviewBarVisibility","dismissAllExternalNotifications","isOnAccountsSummaryPage","urlHelpers","componentDidMount","setAPIConfig","onExternalNotificationsChange","externalNotificationsChangeHandler","onPreviewBarVisibilityChange","previewBarVisibilityChangeHandler","unbindExternalNotifications","unbindPreviewBarVisibility","shouldShowPreviewBar","isUndefined","union","UnifiedNotificationQueue","PreviewBar","goTargetPage","getPathBySiteMapId","whatsNewHelpQuery","helpParams","query","MTNotificationFilter","setIsActive","forNewGlobalMenu","triggerButtonRole","project","language","asRow","number","undefined","__WEBPACK_EXTERNAL_MODULE__1367__","getDerivedStateFromProps","newState","scenarioNames","TriggerShow","PreviewBarShow","QueueDisplayShow","contextChanged","contextValid","validateContext","showTrigger","triggerProcessLogged","previewBarProcessLogged","queueDisplayProcessLogged","isQueueOpen","MTNotificationsErrLoaded","MTNotificationsLoaded","MTNotifications","MTNotificationsRequestState","requestStates","notStart","previewBarState","previewBarStates","dismissed","notShown","length","dialogProps","reduce","item","id","extraOptions","showTriggerFromExternal","notification","shouldWrapAction","actionList","map","action","wrapActionForUINext","dismissAction","dismissMTNotification","total","notifications","pick","notificationLogKeys","scenarioName","allNotifications","toString","logError","logContent","TriggerShowContextChanged","triggerMarked","previewNotifications","PreviewBarRenderNotifications","logNotificationObj","dismissNotifications","isEmpty","dismissIds","uiDeliveryIds","notificationTypeIds","opportunityNotifications","notificationDeliveryIds","notificationTypeIdsForLog","addOneNotificationDimissQuery","addIndividualQuery","push","uiDeliveryId","addConsolidatedQuery","notificationTypeId","each","notificationSource","notificationSources","adInsightOpportunity","opportunityNotification","recommendation","deliveryId","attr","omit","NotificationDismiss","NotificationResources","queueNotifications","updateAll","noCacheResponseRequestHeader","then","eject","catch","err","NotificationDismissError","loadScenarioName","isInAutoLoad","PreviewBarLoad","loadErrorScenarioName","PreviewBarLoadError","NotificationLoadError","renderScenarioName","PreviewBarRender","NotificationRender","InvalidContext","inProgress","promise","findAll","notificationsOrigin","unmounted","prevState","totalCount","raw","accountNumber","previewBarDismissState","showViewAll","formatMTNotification","loaded","previewBarDismissedValue","endProcessWithCount","whatsNewRequestState","WhatsNewLoad","getCurrentStatePromise","whatsNewDismissState","getNews","locale","isFunction","getLocale","whatsNewOrigin","hasWhatsNew","type","cacheId","showWhatsNew","whatsNewDismissed","whatsNewData","whatsNewNotifications","whatsNewNotification","WhatsNewDismiss","hidden","popover","open","fetchMTNotifications","NotificationLoad","hidePreviewBar","TriggerClick","openQueue","e","stopPropagation","PreviewBarViewMore","togglePopover","dismissPopover","closeQueue","notificationId","isDialogOpen","PreviewBarDismiss","dismissQuery","MTNotificationDismissQuery","MTNotificationDismiss","reject","event","focusLockRef","current","focusNextElement","target","NotificationDismissAll","dismissWhatsNewNotification","unavailableNotifications","orderedNotifications","filteredNotifications","isPreviewBarFilteringEnabled","filter","severity","getPreviewNotifications","defineResources","headerBasic","title","_TL_","footer","text","dismissAll","emptyText","actionCallbackMapping","actionCallbackTypes","closeQueueOnAccountsSummaryPage","openDialog","actionCallback","callbackType","whatsNewSeverity","whatsNewId","message","extraClassNames","whatsNewHelpClass","extraAttrs","whatsNew","createRef","fetchPreviewData","componentDidUpdate","logTriggerMarker","logTriggerFirstRenderedProcess","showPreviewBar","logPreviewBarFirstRenderedProcess","showQueueDisplay","logQueueDisplayFirstRenderedProcess","header","viewAllLink","isObject","href","isJumpOut","sortNotifications","contains","getShowPreviewBar","fetchWhatsNewNotification","previewBarProps","previewNotificationLogData","items","getPreviewItems","notificationCount","viewMoreText","viewMoreAction","viewMore","dismissPreviewBar","propContextKey","trigger","Trigger","active","triggerClick","disableKeyboardNav","Popover","placement","customKeepOpen","ref","onOpen","popoverCallbackOpenQueue","onDismiss","popoverCallbackCloseQueue","keepTargetPropagation","FocusLock","onExit","focusFirstItemOnMount","NotificationQueue","showLoading","Dialog","closeDialog","dialogContentProps","DialogType","normal","showCloseButton","subText","modalProps","isBlocking","DialogFooter","PrimaryButton","autoFocus","onClick","dialogAction","removeNotification","DefaultButton","oneOf","keys","severityOrder","oneOfType","objectOf","isJumpout","defaultPreviewBar","__WEBPACK_EXTERNAL_MODULE__1369__","__WEBPACK_EXTERNAL_MODULE__1370__","__WEBPACK_EXTERNAL_MODULE__1371__","btnClassNames","bellClassNames","tabIndex","URL","searchParams","trimEndSlash","replace","isTriggerFromHelpPanel","helpPanel","document","querySelector","classList","parentElement","cid1","aid1","uid1","campaignId1","pageEnum","pageEnum1","cid2","aid2","uid2","campaignId2","pageEnum2","prefix","Field","Operator","Values","getContextByParameters","chain","contextKeys","val","isBoolean","mapObject","Number","parseInt","getParameters","mes","Error","sortBy","whatsNewSeverityOrder","Information","res","siteMapId","search","pathname","preventDefault","scenarioNamePrefix","APIScenarioNamePrefix","generateScenarioName","suffix","generateAPIScenarioName","NotificationCard","NotificationSeverity","WhatsNewRender","APIScenarioNames","removeExByIds","removeExByIdsInternal","removeAllEx","removeAllExInternal","removeEx","removeExInternal","showEx","setPreviewBarVisibility","whatsNewDefaultParams","Critical","Warning","Opportunity","shouldShow","contentType","dataType","cacheResponse","messageCenter","NotificationStore","defineRestResource","uriPath","loadContent","params","defaults","getHelpContent","Content","helpContent","ContentHash","Promise","resolve","all","spread","currentState","latest","isArray","first","getContent","news","whatsnewData","isApexDisabled","$","ajax","url","data","config","setLogger","externalNotificationsApi","show","removeByIds","removeAll","remove","previewBarApi","setVisibility","onChangeHandler","externalNotificationsMapping","logNotifications","options","APINotificationLogKeys","logTrace","getAll","values","handleChange","handler","ids","isInternal","severities","dismissCallback","notificationsToLog","memo","onVisibilityChangeHandler","getVisibility","visibility","String","palette","iconFontFamily","UNQIndex","assign","UNQIndexStyle","notificationQueue","loading","borderRadius","borderRightColor","borderLeftColor","borderTopColor","borderBottomColor","animation","to","transform","lineHeight","fontWeight","wordBreak","fontStyle","fontSize","justifyContent","backgroundImage","notificationClearImgBase64","backgroundRepeat","alignSelf","boxShadow","fontFamily","marginRight","flex","marginBottom","paddingBottom","paddingLeft","themePrimary","marginLeft","listStyleType","pointerEvents","textOverflow","whiteSpace","background","flexShrink","opacity","textDecoration","__WEBPACK_EXTERNAL_MODULE__149__","__WEBPACK_EXTERNAL_MODULE__30__","__WEBPACK_EXTERNAL_MODULE__62__","__WEBPACK_EXTERNAL_MODULE__67__","__WEBPACK_EXTERNAL_MODULE__874__","observable","useReducer","reducer","initialState","dispatch","subscription","useRef","unsubscribe","PENDING","handleData","READY","handleError","ERROR","useEffect","subscribe","next","UserContext","createContext","WrappedComponent","Consumer","userContext","factory","self","__WEBPACK_EXTERNAL_MODULE__5__","__WEBPACK_EXTERNAL_MODULE__6__","__WEBPACK_EXTERNAL_MODULE__22__","__WEBPACK_EXTERNAL_MODULE__43__","__WEBPACK_EXTERNAL_MODULE__47__","withValidationInternal","PrimitiveComponent","Adapter","DefaultAdapter","ContextConsumer","ValidationContext","contextProps","validationProps","onValidate","accessor","primitiveAdapter","withValidation","partial","ValidationItem","AdapterFactory","convertEventToValue","identity","defaultValue","valueToInject","functionToInject","eventObject","args","onChangeParam","onChange","component","getValue","renderComponent","injectedProps","notifyDataChange","getProcessedValue","convertor","fromModel","toModel","getNewState","schema","field","fieldConvertor","createSchemaField","conversion","fieldValue","fieldData","unpack","getFieldValue","source","propValue","processed","ValidationItemInternal","nextProps","itemNode","setDirty","ItemNode","default","register","triggerValidate","prevProps","didSkipValidationChanged","skipValidation","isEqual","setSkipValidation","unregister","getClassName","errorClassName","forceErrorClassName","isItemNodeInvalid","isValid","isDirty","componentProps","setText","i18nPropType","parent","instanceOf","GroupNode","validator","fromJSON","toJSON","errorProcessor","withDefaultI18n","getConvertor","custom","vmField","defaultErrorProcessor","errors","BaseNode","defaultConvertor","json","jsonField","pack","customValidator","converted","validation","validate","createDefaultFields","rawValue","changed","messages","newValue","notifyChildChange","registerChild","unregisterChild","getValidationErrorMessages","emptyField","vmSchema","ViewmodelSchema","model","path","split","obj","seg","reduceRight","merge","has","defaultValidator","concat","newItem","without","I18nContext","getValidationProps","isValidDecimal","parseDecimal","formatDecimal","legacyi18n","buildLegacyI18n","ValidationStringMap","Validation_Base_Field_Not_Valid","Validation_NotEmpty_Required_Field","Validation_String_Max_Length","Validation_String_Min_Length","Validation_String_Invalid_Characters","Validation_Number_Require_Numeric","Validation_Number_Max_Length","Validation_Number_Range_Min","Validation_Number_Range_Max","Validation_Number_Range_Between","Validation_Array_Size_Max","Validation_Array_Size_Between","Validation_Array_Items_Invalid","Validation_Array_Items_Duplicate","Validation_NegativeKeywords_ListName_Required","Validation_NegativeKeywords_Max_Count","Validation_NegativeKeywords_Invalid_Keywords","Validation_NegativeKeywords_Required","ValidationGroupInternal","groupNode","getGroupOptions","Provider","ValidationGroup","ErrorComponent","ErrorMessages","ErrorWrapper","PureComponent","customErrorRendering","errorComponent","renderError","alwaysShowError","showErrorOnPassiveMessages","passiveMessages","showSingleError","errorFilter","debounce","withErrorMessage","ErrorMessagesUnwrapped","dangerouslySetInnerHTML","__html","DangerousHtmlMessage","displayName","setErrorStateWithDebounce","callWithDebounce","setErrorState","errorMessages","slice","getErrorMessages","method","debounceInMs","CheckedAdapter","CheckedItemAdapter","checked","GenericAdapter","selectedOptions","onOptionSelect","methodName","ValidationWrapper","shouldDirty","updateValidation","DummyNode","initialNodeValue","initialValue","useServerError","serverErrorProps","clientId","fieldSelector","propEntity","entity","code","useContext","ServerErrorContext","contextEntity","ServerErrorEntityContext","useMemo","matchedErrors","flatten","v","k","matchesField","errorCode","HOC","removeErrors","useCallback","ServerErrorEntity","ServerErrorGroup","rawErrorToMessageMapper","instrumentation","useState","setErrors","mapErrors","getErrorFromRawFn","setServerError","useServerErrorMessage","ignore","ignoreErrorCode","removeErrorsFromContext","includes","any","trim","test","RegExp","fieldErrors","fieldName","mappedErrors","StyledComponent","components","core","ThemeProvider","theme","emptyTheme","getDisplayName","defaultGetStyles","useTheme","useStyles","createUseStyles","useDeepMemo","__WEBPACK_EXTERNAL_MODULE__110__","LastCampaignURL","withCampaignSiteMap","SmartLastURL","processor","processPath","LastAccountsURL","withAccountsSiteMap","LastUrl","buttonText","lastUrl","lastPath","backButtonUrl","backButtonText","others","backButtonPath","scope","serverContext","lastUrlState","renderWrappedComponent","QueryParam","withI18nConsumer","withScope","ACCOUNT_MODE","DEFAULT","EXPERT","SMART","UNIFIED_SMART","UNIFIED_EXPERT","selected","backToSmartCampaign","accountMode","siteMap","CurrentAccount","AccountMode","formatUrl","selectedChildItem","findSiteMap","leafCondition","route","updateLastUrl","siteMapPropType","__WEBPACK_EXTERNAL_MODULE__413__","isTextOverflow","element","userAgent","navigator","isIE","indexOf","isEdge","isIE11","isIEBrowser","clientWidth","scrollWidth","forwardedRef","checkOverflow","FallbackComponent","pageName","withPageReadyAsync","componentLoader","pageReadyPromise","PageReady","afterPageReady","lazy","Suspense","fallback","pageReady","__WEBPACK_EXTERNAL_MODULE__1416__","MediaQueryListener","targetWindow","listener","nativeMediaQueryList","matchMedia","cancellableListener","matches","addListener","cancel","removeListener","useMedia","queries","activeQueries","getMatches","acc","mqListener","updateMatches","setMatches","activeTargetWindow","queryObject","currentQuery","setUpMQLs","forEach","sizes","ResponsiveSizeBreakpoints","offset","sortedSizes","sort","a","b","currentSize","dict","innerMatches","WithResponsiveSize","smallestSizeName","getCurrentSize","match","wrappedComponentProps","responsiveSize","__WEBPACK_EXTERNAL_MODULE__220__","__WEBPACK_EXTERNAL_MODULE__127__","accountsSiteMap","campaignSiteMap","toolsSiteMap","flatToolsSiteMap","importSiteMap","reportsSiteMap","reportsV4SiteMap","hotelCenterSiteMap","hotelCenterV2SiteMap","standaloneSiteMap","flatSetupSiteMap","allSiteMap","allClientCenterSiteMap","bidStrategiesSiteMap","clientCenterSiteMap","clientCenterStandAloneSiteMap","smartCampaignsSiteMap","unifiedSmartSiteMap","adInsightSiteMap","flatSmartToolsSiteMap","flatSmartImportSiteMap","customReportsSiteMap","Configs","processPermissionsCached","processPermissions","processScopeCached","processScope","processScopeSkipRootCached","processPathCached","processAccountLinkPermissionCached","processAccountLinkPermission","processCampaignUIContext","processCustomMapper","processScopeSkipRoot","processRootFilter","processScopeV2","processScopeV2Cached","processCcuiContext","processSharedLibrary","processorSet","basic","navRefresh","withSiteMap","processors","rootId","propName","defaultPropName","composedProcessor","compose","createSiteMapWrapper","withBidStrategiesSiteMap","withToolsSiteMap","withFlatToolsSiteMap","withFlatSmartToolsSiteMap","withFlatSetupSiteMap","withImportSiteMap","withFlatSmartImportSiteMap","withReportsSiteMap","withReportsV4SiteMap","withCustomReportsSiteMap","withHotelCenterSiteMap","withHotelCenterV2SiteMap","withStandaloneSiteMap","withAllClientCenterSiteMap","withClientCenterSiteMap","withClientCenterStandaloneSiteMap","withSmartSiteMap","withUnifiedSmartSiteMap","withAdInsightSiteMap","performance","siteMapLatency","eventName","eventStartTime","now","ccAlwaysDisplayedItem","alwaysDisplayedItem","defaultCCItemProperties","smartItem","defaultSmartItemProperties","unifiedSmartItem","defaultUpItemProperties","hiddenItem","campaignTypes","alwaysDisplayed","searchable","defaultItem","ccHiddenItem","buildTree","accountsPages","bidStrategiesPages","campaignPages","toolsPages","flatToolsPages","flatSmartToolsPages","flatSetupPages","reportsV4Pages","customReportsPages","importPages","flatSmartImportPages","standalonePages","hotelCenterPages","hotelCenterV2Pages","ccPages","ccStandalonePages","unifiedSmartPages","sdkSiteMap","sdkPages","smartCampaignPages","adInsightPages","adInsightItem","eventEndTime","addParent","clone","withDefaults","withParent","addV2Scopes","CampaignType","None","Default","Shopping","DynamicSearchAds","Audience","Smart","Hotel","PerformanceMax","App","LinkedIn","All","SearchStandard","SearchDynamic","Scope","Customer","Account","Campaign","AdGroup","Ad","PerformanceTarget","Store","MerchantFeed","ScopeV2","add","User","BaseHost","ClientCenter","AdInsight","UnifiedProduct","RoutePrefix","defaultScopes","accountScopes","allScopes","routePrefix","available","checkPermission","baseHost","isSmartPage","dynamic","SmartNewUI","IsSmartCampaignPhase2Enabled","IsSmartPageStandalone","isUnifiedProductEnabled","UnifiedProductPhase2","IsUnifiedSmartMode","UnifiedProductSubscription","scopeMapping","scopeV2","compact","aggregateParents","iteratee","cur","ScopeNode","isMatch","other","isChildOf","level","$root","findNode","newNode","condition","nodes","pop","unshift","find","queryParams","scopes","findDeepest","targetScope","currentScope","getCurrentScope","keysToRemove","__WEBPACK_EXTERNAL_MODULE__1542__","accounts","overview","accountsSummary","recommendations","auctionInsights","WebUIVnext","IsRequestsTabEnabled","IsAccountLevelImportStatusGridEnabled","IsMCCAuctionInsightsEnabledInMenu","IsDomesticSimplifiedChineseEnabled","queryInsights","campaigns","adGroups","assetGroups","appAdsAssetGroups","unifiedAppAdsAssetGroups","listingGroups","products","adsAndExtensions","assetsReport","assets","landingPages","keywords","dynamicAdTargets","feedsItems","productGroups","hotelGroups","propertyGroups","hotels","properties","audiences","demographics","settings","locations","adSchedule","devices","changeHistory","competition","experiments","smartCampaigns","shortcut","hotelCampaignScope","UnifiedAppAds","adGroupTypes","AdGroupType","IsHideAuctionInsightsCompetitionUI","currentCampaign","campaign","take","CampaignSettings","CampaignSubType","apexViewName","supportAll","supportLevel","account","adgroup","allowedCampaignTypes","campaignType","overrideKeys","adGroupLevel","some","automatedExtensionsChildren","searchAlias","extensionChildrens","extensionChildrensWithLevels","child","withLevel","currentCampaignTypes","RSAAssetCampaignAdgroupLevel","RSAAssets","IsRSAAssetsEnabled","IsDSAMixedModeCampaignEnabled","mixedModeAdGroup","_item","DynamicSearchAdsV1","IsDynamicSearchAdsV1Enabled","IsEnabledForDynamicFeedCampaign","smartShoppingCampaignScope","exact","HotelCampaign","IsRenameHotelToLodgingEnabled","shouldServeOnMSAN","campaignSettings","ShouldServeOnMSAN","demographicsChildrens","demographicsWithLevels","LinkedInTargeting","AIMCampaign","MS_STORE_PROVIDER_ID_MAP","SI","PROD","CI","getMSStoreIdByEnv","msStoreIds","providerId","RecSrc","ExperimentId","isExperiment","isSearchCampaignWithDSASettings","IsQueryInsightsEnabled","showTag","expDate","Date","PerformanceMaxCampaigns","AppAdsCampaignPhaseOne","AssetGroup","AudienceAssetReport","AssetGridForPmaxCampaign","planning","sharedLibrary","bulkActions","conversionTracking","setup","flatSharedLibrary","oldUIScope","flatSetup","flatConversionTracking","mobileApp","audiencePlanner","keywordPlanner","tagClass","adPreview","creativeStudioAssetLibraryPage","ProductFeedPage","SponsoredProductsPage","MicrosoftStoreAdsPageGA","audiencesLibraryPages","businessLocationFeedPages","labelsPage","negativeKeywordListsLibraryPage","performanceTargetsPage","siteExclusionListsAccountLevelViewListsPage","siteExclusionListsCustomerLevelCreateListsPage","contentExclusionAccountLevelPage","brandListsPage","sharedBudgetsPage","portfolioBidStrategyPage","seasonalityAdjustmentPage","adStudioPage","liftMeasurement","CustomSegmentsEditorialIntegration","businessLocationFeed","GoogleMyBusinessImport","LocalInventoryAd","CoOpCampaign","SponsoredProductAdsV2","IsAccountLabelsEnabled","ariaDescription","negativeKeyword","performanceTargets","siteExclusionViewLists","ManagerAccountSharedWebsiteExclusions","BrandSafety","BrandSafetyWithUnscored","siteExclusionViewListsBrandSafety","siteExclusionListCreate","siteExclusionListCreateBrandSafety","contentExclusion","portfolioBid","PortfolioBidStrategy","seasonalityAdjustment","SeasonalityAdjustment","assetsPage","performancePage","AssetLibraryV4","AssetLibraryV3EnableVideoUpload","AssetLibraryAIGCMVP","AdsStudioMVP","BroadOnly","PredictiveMatching","BrandExclusion","PredictiveMatchingPhase2","landingPage","homePage","generateImagePage","homeSearchPage","imagesPage","editImagePage","displayTemplatePage","copilotFeature","BrandKitUI","videoTemplatePage","VideoTemplateUI","videosPage","brandKitPage","libraryPage","IsInternalUser","LiftMeasurement","bulkActionsPages","bulkEdit","automatedRule","scriptsPage","bulkUploads","advertisingEditor","description","externalLink","advertisingMobile","smartPage","origin","PMaxLite","isSmartPageStandalone","IsSmartMode","IsCampaignBAMEnabled","uetTags","conversionGoals","offlineConversions","clarityWebsite","modeledConversions","customerAcquisition","UETDashboardPhase2","UETTagInsights","ConvValueRules","offlineConversionItem","IsScheduledOfflineConversionUploadAllowed","AllowModeledConversions","NewCustomerAcquisition","accountsBilling","businessData","billingPayments","upChangeHistory","accountAccess","accountMap","merchantCenter","hotelCenter","hotelCenterV2","socialNetworks","upConversionTracking","upClarity","upMobileApp","upPrivacyCookies","upTermCondition","budgetCenter","permission","IsManagementDashboardEnabled","isUnifiedProductSubscriptionEnabled","CCUIAccountMap","accountLinkPermissions","billingAccountLinkPermissions","AccountLinkPermissionType","Standard","Billing","billingSummary","transactions","paymentMethods","xandrBaf","XandrBaf","IsCustomerMappedToXandrParentAccount","ccuiOnlyPage","adjustments","balance","insertionOrders","billingSettings","ConsolidatedBillingV2","fixedRoute","businessDataPages","DynamicData","overviewPages","HotelAds","HotelCenterDeprecation","setupPage","assignmentPage","intelligencePages","flatHotelCenterPages","hotelCenterScope","addScope","HotelCenterRemoval","reportPages","matchReportPage","feedStatusPage","shareOfVoicePage","bookingReportPage","reconcilliationReportPages","UploadedReconReportsPage","ProcessedReconReportsPage","feedUploadPage","adExtensionPage","ReconciliationReport","PayPerStay","HotelAdsConversion","logos","feedsPages","flatHotelCenterV2Pages","HotelCenterV2","addScopeAndPermission","propertiesPage","propertyPage","pricingStatusPage","pricingSettingPage","landingPageDetail","reconReportPage","uploadedReconReportsPage","processedReconReportsPage","merchantCenterPages","stores","storeSummary","feeds","importFeed","promotions","defaultScope","defaultScopeV2","FeedLabel","FeedLabelBlockList","MMCDynamicTab","isUnifiedProductPage","SCv2","IsESCClarityEnabled","IsESCChangeHistoryEnabled","defaultReportsPage","defaultReports","CustomReportBuilder","myReportsPage","customized","shared","editReportPage","extensions","productAds","appAds","marketplaceInsights","targeting","billingAndBudget","advancedInsights","dynamicSearch","hotel","labels","accountLevelScopes","_scope","apiKey","ReportingUpliftFeedItemReport","IsMSXAccountPerformanceReportEnabled","SearchInsightPerformanceReport","CombinationReport","CallMetering","XandrVideoCampaigns","GenreTargets","InsertionOrderReport","dropdown","scopeFilterLevel","DefaultAssetReport","DefaultCustomReport","myCustomReportsPage","CustomReports","reportTemplatePage","competitiveVisibility","goalsConversions","assetsExtensions","targetingPlacements","verticalAds","__WEBPACK_EXTERNAL_MODULE__168__","TaskItemId","OpportunityId","OpportunityType","ImportType","ImportId","ImportStep","DidSwitchToExpertFromImport","importScheduleScopeV2","ImportScheduleRecSrc","googleImport","facebookImport","FacebookImport","amazonImport","IsAmazonImportEnabled","AmazonImport","pinterestImport","fileImport","importSchedule","importCenter","smartAccountEnabled","ImportCenterPrototype","campaignCreate","adEditor","adgroupCreate","associationCreate","audienceCreate","performanceTargetsCreate","performanceTargetsOverview","sharedBudgetsEditPage","portfolioBidStrategyDetails","audienceEdit","accountCreate","accountLinking","accountsUnlinking","accountsTransfer","unifiedAppAdsAssetGroupsCreation","unifiedAppAdsAssetGroupsEdit","appAdsAssetGroupsCreation","appAdsAssetGroupsEdit","pendingTransferRequest","conversionGoalsCreate","conversionGoalsAutoCreate","conversionGoalsEdit","uetTagsCreate","uetTagsEdit","upUetTagCreate","upUetTagEdit","conversionValueRulesCreate","conversionValueRulesEdit","adCustomizerFeedsItems","pageFeedsItems","dynamicDataFeedsItems","ruleDetail","bulkEditDetail","scriptsDetail","negativeKeywordsListsDetail","merchanteCenterStoreCreate","recommendationHistory","bulkUploadsBuildSpreadsheet","optOutForMinors","recommendationAutoApplySettings","recommendationAutoApplyBulkUpload","importCredentialIdPages","pmaxDetails","assetGroupCreate","assetGroupEdit","budgetCenterCampaignBudgetTool","recommendationDemo","copilotReport","buildCustomReportsPage","editCustomReportPage","unifiedAppAdsAssetGroupDetails","SearchCampaignCreationRevamp","IsNewStaticAudienceCampaignCreationEnabled","IsVideoAdsForCampaignEnabled","XandrDisplayAdsCampaigns","IsDealEnabledForMsAds","DisplayPlusCampaigns","SmartShoppingCampaign","IsSmartShoppingCampaignEnabled","SSCDeprecation","PMaxWizardRefresh","IsEnhancedShoppingCampaignAllowed","WindowsStoreAdsCNExpansion","IsSPAv2Enabled","MranDeprecation","SponsoredPromotionsByBrands","LinkedInCampaigns","Budget","EnterFlow","AllowAutoGoalWizard","Goal","CVRL","UetTag","XandrIntegrationEnabled","Feed","RuleDetail","BulkEditDetail","MccScript","Script","MccScriptLog","ScriptLog","ShareWithUserIds","GoogleImportAsService","IsRecommendationDemoEnabled","AdsCopilotReportingInsights","clientCenterPages","clientCenterStandalonePages","accountsBulkUpdate","billing","insertionOrder","payment","rebill","advancedSettings","accountIdentityVerification","deprecateInactiveSAPId","mandateAgreementRequired","UKFCAVerification","channelPartner","billingGroupCreation","fraudAppeal","accountIdentityVerificationAppeal","tradeScreeningTransformation","unaccessible","welcomeStandalone","XandrAccountSettings","xandrBankAssociation","XandrCustomerOnboarding","customerAccess","activateAPContact","signupPaymentSetup","accountSettings","emailSettings","managerAccountSettings","mySettings","verificationHub","viewDefaults","isNavigationRefreshOn","devSettings","DevCenterMigration","userManagement","directManager","coupon","couponDetails","couponDetailsCustomer","CustomerLevelCouponDetails","WebpackifyPhase2Customer","DeprecateInactiveSAPId","MandateAgreementRequired","ChannelPartnerAddPI","isMultiAgencyBillingEnabled","adsRoot","homeRoot","socialRoot","myWebsite","metadata","SmartPageUPIntegration","advancedControlsPage","bidStrategiesPortfolio","sdkCampaignOverview","sdkCampaignSettings","sdkCampaignCreation","useCache","Wrapper","processedSiteMap","filterByPermissionsCached","filterByPermissions","withPermissions","getScope","getScopeV2","getTag","memoize","itemPropType","skipRoot","adGroupId","storeId","feedId","permissionsWithDynamic","scopeToCheck","processorFunc","processSitemapWithScopeCached","processSitemapWithScope","processChildScope","filterMapItem","supportedScopes","scopeService","history","leastSupportedScope","max","urlQuery","queryToRemove","range","scopeNumber","SCOPE_TO_KEY","removeQuery","trimScopeInternal","currentCampaignId","currentAdGroupId","currentAccountId","currentStoreId","currentFeedId","predicate","settingsContext","updateSitemapBaseHostCached","updateSitemapBaseHost","Urls","withSettingsConsumer","withRouter","updateSelected","findWhere","isRouteMatch","updateBaseHost","Uri","normalize","extractPattern","currentLocation","last","matchPath","getRoutePathById","getAbsoluteIfExists","site","absoluteRoute","is","pluck","findAllSiteMap","findDeepSiteMap","currentNode","selectedChild","findSelectedNode","filterMapByIdSegments","segments","rootIds","rootIdArray","reverse","getNewScope","expectedScope","trimToScope","aidFromContext","scopeWithoutAid","buildSitemapItemRoute","routeWithPrefix","isExternal","pathName","getBaseHost","baseUrl","getRouteWithBaseHost","currentUrl","forceAbsolute","host","basePath","toLowerCase","currentPath","commonPath","isAbsoluteRouteRequired","store","toArray","cloneMap","StateStore","customMapperStore","filterMapByRootIdsCached","filterMapByRootIds","filterMapItemCached","mapItem","filterByAccountLinkPermissionCached","filterByAccountLinkPermission","isValidLinkPermission","AccountLinkPermissionTypeEnum","newSiteMap","siteMapBackup","siteMapProp","processPropName","rest","backupOriginalSiteMap","pages","advertise","conversions","assetLibrary","imports","brands","productFeed","hotelV2","businessLocation","microsoftStoreAds","brandLists","budgetAndBid","preview","websiteExclusion","brandSafetyControls","reports","customReports","clarity","allAccounts","adStudio","navRefreshPages","navRefreshPageIds","navRefreshSiteMap","accountMapV1","fixed","accountsOverview","accountsRecommendations","billingSettingsProcessed","tail","tree","storesRoute","createRoutes","overviewRoutes","page","customReportTree","accountSettingsProcessed","managerAccountSettingsProcessed","advancedSettingsProcessed","liftMeasurementPage","updatedSiteMap","sharedLibraryId","siteExclusionId","idToMatch","__WEBPACK_EXTERNAL_MODULE__216__","__WEBPACK_EXTERNAL_MODULE__353__","__WEBPACK_EXTERNAL_MODULE__42__","__WEBPACK_EXTERNAL_MODULE__630__","__WEBPACK_EXTERNAL_MODULE__642__","__WEBPACK_EXTERNAL_MODULE__947__"],"sourceRoot":""}