{"version":3,"file":"static/js/application.initial~d91a9049.8e0fb614.js","mappings":"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","sources":["components/accounts-page/accounts-page.js","components/new-feature-badge/selectors.js","components/new-feature-badge/index.js","contexts/with-bing-map.js","legacy-dep-bootstrap/legacy-context.js","data-fetch/with-dfm.js","components/feature-loaders.js","components/preexecute/with-page-name.js","components/preexecute/with-preexecute.js","components/campaign-onboarding-shell.js","components/website-exclusion-lists-shell.js","components/withClipchampPlayer.js","components/app-content.js","components/campaign-type-filter-updater.js","components/redirects.js","components/redirect-reporting-url.js","components/fallback-updater.js","data-fetch/with-top-two-campaigns.js","components/scope-provider.js","components/scope-switching-reloader.js","components/new-version-reloader.js","global-init/init-odata-cache.js","components/layout-switch.js","app.js","test-context-side-effect.js","bootstrap.js","components/ads-copilot/teaching-bubble.js","components/ads-copilot/use-copilot-toggle-event-listener.js","components/ads-copilot/loader.js","components/ads-copilot/use-get-is-pilot-enabled.js","components/route-change-logger.js","components/newui-preference-dialog/newui-preference-dialog.js","components/import-status-checker.js","components/page-title-updater.js","components/navigation-refresh-logger.js","components/navigation-refresh-dialog/navigation-refresh-dialog.js","components/consent-mode-dialog/use-styles.js","components/consent-mode-dialog/email.js","components/consent-mode-dialog/config.js","components/consent-mode-dialog/index.js","components/consent-mode-dialog/data-repository.js","components/after-page-ready.js","components/delayed-notifications-bar.js","components/draft-error-page.js","components/dynamic-routes.js","components/global-menu-wrapper.js","components/new-global-menu-wrapper.js","components/preexecute/preexecute-container.js","components/preexecute/style.js","components/teaching-bubble/custom-churn-model-coupon-teaching-bubble-config.js","components/teaching-bubble/custom-uet-teaching-bubble-governance-config.js","components/teaching-bubble/teaching-bubble-config.js","components/teaching-bubble/teaching-bubble-renderer.js","components/utils.js","contexts/app-perfmarker-context.js","contexts/with-cc-js-data-context-provider.js","contexts/with-page-perf-marker.js","data-fetch/data-fetch-manager.js","data-fetch/fetch-accounts-overview-page-data-webpack.js","data-fetch/fetch-adgroups-page-data.js","data-fetch/fetch-ads-page-data.js","data-fetch/fetch-budget-center-page-data.js","data-fetch/fetch-campaigns-page-data-webpack.js","data-fetch/fetch-customer-overview-page-data-webpack.js","data-fetch/fetch-fluent-overview-page-data-webpack.js","data-fetch/fetch-overview-page-data-webpack.js","data-fetch/fetch-performance-page-data-webpack.js","data-fetch/fetch-pmax-overview-page-data-webpack.js","data-fetch/fetch-positive-keywords-page-data.js","data-fetch/is-dfm-enabled-for-path.js","global-init/constants.js","global-init/global-init.js","global-init/omniture.js","global-init/init-cc-js-data.js","global-init/init-settings-context.js","legacy-dep-bootstrap/shim/legacy-schema.js","legacy-dep-bootstrap/bootstrap.config.js","global-init/query-param-checker.js","index.js","legacy-dep-bootstrap/legacy-accessibility-shim-layer.js","legacy-dep-bootstrap/shim/jquery.widget.flyoutMenu.js","legacy-dep-bootstrap/shim/jquery-migrate-patch.js","legacy-dep-bootstrap/shim/jquery.smartbanner.js","legacy-dep-bootstrap/shim/jquery.ui.widget.js","legacy-dep-bootstrap/shim/jquery.validate.js","legacy-dep-bootstrap/advertiser.common.vnext.js","legacy-dep-bootstrap/countdown.js","legacy-dep-bootstrap/override-legacy-jquery.js","legacy-dep-bootstrap/init-legacy-components.js","legacy-dep-bootstrap/kendo-bootstrap.js","legacy-dep-bootstrap/osd-bootstrap.js","legacy-dep-bootstrap/shim/jquery.tmpl.js","public-path.js","sdk/dynamic-routes.js","sdk/sdk-bootstrap.js","themes-config.js","webpack-helper-files/cards-config.js","webpack-helper-files/cards-imports/common-imports.js","webpack-helper-files/cards-imports/device-card-imports.js","webpack-helper-files/cards-imports/grid-card-imports.js","webpack-helper-files/cards-imports/performance-card-imports.js","webpack-helper-files/cards-imports/top-locations-card-import.js","webpack-helper-files/welcome-card-config.js"],"sourcesContent":["import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { QueryParam, withScope } from '@bingads-webui-react/scope-service';\r\nimport { getPathName } from '@bingads-webui-campaign-react/page-menu';\r\nimport {\r\n withSiteMap,\r\n processor,\r\n} from '@bingads-webui-campaign-react/with-site-map';\r\nimport { withDefaultLandingPage } from '@bingads-webui-campaign-react/with-default-landing-page';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\n\r\nclass AccountsPage extends React.PureComponent {\r\n componentDidMount() {\r\n this.navigate();\r\n }\r\n\r\n gotoPage = (page) => {\r\n const pageItem = _.findWhere(this.props.siteMap, { id: page });\r\n if (!_.isEmpty(pageItem)) {\r\n const { scope: { history } } = this.props;\r\n history.replace({\r\n pathname: getPathName(pageItem),\r\n search: history.location.search,\r\n });\r\n }\r\n }\r\n\r\n navigate() {\r\n const { defaultLandingPage } = this.props;\r\n\r\n this.gotoPage(defaultLandingPage);\r\n }\r\n\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nAccountsPage.propTypes = {\r\n preferenceService: PropTypes.shape({\r\n setAtUserLevel: PropTypes.func,\r\n findByNameAtUserLevel: PropTypes.func,\r\n }).isRequired,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n defaultLandingPage: PropTypes.string.isRequired,\r\n siteMap: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string,\r\n })).isRequired,\r\n};\r\n\r\nexport const AccountsPageNavigation = withSiteMap(withScope(withDefaultLandingPage(withPreference(AccountsPage))), [processor.processPath]);\r\n","import _ from 'underscore';\r\n\r\nconst newTagForAdScheduleTimezoneSettings = [\r\n];\r\n\r\nexport const selectors = _.flatten([\r\n newTagForAdScheduleTimezoneSettings,\r\n]);\r\n","import _ from 'underscore';\r\nimport { selectors } from './selectors';\r\n\r\n\r\nconst regexPseudo = /::(after|before)$/;\r\nconst style = {\r\n position: 'relative',\r\n top: '-15px',\r\n left: '-14px',\r\n color: '#ffffff',\r\n border: '1px solid #ffffff',\r\n height: '20px',\r\n padding: '1px 9px',\r\n 'font-size': '12px',\r\n 'box-shadow': '0 2px 5px #a19f9d',\r\n 'font-weight': 'normal',\r\n 'line-height': '16px',\r\n 'border-radius': '12px',\r\n 'background-color': '#D83B01',\r\n};\r\n\r\nexport function addBadgeForNewFeatures(text) {\r\n const pseudoElements = _.map(selectors, sel => (sel.match(regexPseudo) ? sel : `${sel}::after`));\r\n const styleText = _.map(style, (value, key) => `${key}: ${value}`).join('; ');\r\n const css = `${pseudoElements.join(', ')} {${styleText}; content: \"${text}\";}`;\r\n const styleElement = document.createElement('style');\r\n\r\n styleElement.appendChild(document.createTextNode(css));\r\n document.head.appendChild(styleElement);\r\n}\r\n","import React from 'react';\r\nimport { notificationApi } from '@bingads-webui-react/notification-center';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\n// eslint-disable-next-line\r\nimport { loadMap } from '@bingads-webui-campaign-legacy/dashboard-page/service/load-map';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\n\r\nconst BING_MAP_ERR_MSG = _TL_('We\\'ve encountered an error while loading Bing Map SDK and cannot continue. Please check your network connection and try again, or contact Support for assistance.');\r\n\r\nexport const withBingMap = (WrappedComponent) => {\r\n const ComponentWithBingMap = React.lazy(() => loadMap()\r\n .then(() => ({\r\n default: WrappedComponent,\r\n })).catch((e) => {\r\n const scenario = instrumentation.loadBingMapScenario.create();\r\n const activity = scenario.loadBingMapError.create();\r\n activity.error(`Failed to load bing map SDK, exception: ${e}`);\r\n return {\r\n default: withI18nConsumer((props) => {\r\n notificationApi.showWarning(props.i18n.getString(BING_MAP_ERR_MSG));\r\n return ;\r\n }),\r\n };\r\n }));\r\n\r\n return props => ;\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withSiteMap, processor, siteMapPropType } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { withScope, QueryParam } from '@bingads-webui-react/scope-service';\r\nimport * as legacyRouterDep from '@bingads-webui-campaign-react/legacy-router-dep';\r\nimport {\r\n convertStringToEnumForCampaign,\r\n convertStringToEnumForAdGroup,\r\n withCurrentExpandedScope\r\n} from '@bingads-webui-campaign-react/use-current-scope-entity';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\n\r\n/* eslint-disable import/no-unresolved,import/extensions */\r\nimport legacyRouterImport from '@bingads-webui-component-legacy/legacy-router/index';\r\nimport componentStateImport from '@bingads-webui-component-legacy/state/index';\r\nimport componentConfigImport from '@bingads-webui-component-legacy/config/index';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\n/* eslint-enable */\r\n\r\n// FIXME: rayduan please fix this\r\nimport { withCampaign } from '@bingads-webui-campaign-react/with-campaign-legacy';\r\n\r\n\r\nfunction initAlertCenter() {\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/notification-center')\r\n .then(({ oldAlertCenterAdapter }) => {\r\n window.App.views = {\r\n alertCenter: oldAlertCenterAdapter,\r\n };\r\n });\r\n}\r\n\r\nPageReady.afterPageReady().then(() => {\r\n // No alerts are shown during page load. Moving init alert center to after page ready.\r\n // If a feature requires old alert center during page load then it would be a good idea to import it directly instead of using window.app\r\n initAlertCenter();\r\n});\r\n\r\nwindow.App.views = {\r\n alertCenter: {},\r\n};\r\n\r\nfunction mapODataContextToPageContext({\r\n currentCampaign, currentAdGroup, campaignId, adGroupId,\r\n}) {\r\n let CurrentCampaign = null;\r\n let CurrentAdGroup = null;\r\n\r\n if (!_.isEmpty(currentCampaign) && campaignId) {\r\n CurrentCampaign = convertStringToEnumForCampaign(currentCampaign);\r\n }\r\n if (!_.isEmpty(currentAdGroup) && adGroupId) {\r\n CurrentAdGroup = convertStringToEnumForAdGroup(currentAdGroup);\r\n }\r\n\r\n return {\r\n CurrentCampaign, CurrentAdGroup,\r\n };\r\n}\r\n\r\nfunction capitalize(str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\n\r\nfunction mapScopeToPageContext(scope) {\r\n let tabId = null;\r\n const pathname = scope.location && scope.location.pathname;\r\n if (pathname) {\r\n // Skip level in url\r\n const matchLastSlash = /\\/([^/]+)(\\/account|\\/adgroup|\\/campaign)?$/.exec(pathname);\r\n const siteName = matchLastSlash && matchLastSlash[1];\r\n if (siteName) {\r\n tabId = capitalize(siteName);\r\n }\r\n }\r\n\r\n return {\r\n CurrentTabId: tabId,\r\n };\r\n}\r\n\r\nconst pageContext = PageContext;\r\nconst state = componentStateImport;\r\nconst config = componentConfigImport;\r\nconst { getRouterDep } = legacyRouterDep;\r\nlet legacyRouter = legacyRouterImport;\r\n\r\n// This HoC only updates legacy component that is changable. Constant contexts are initialized in init-legacy-component\r\nexport const withLegacyContext = (Component, withCustomScope = withCurrentExpandedScope) => {\r\n const WrappedComponent = (props) => {\r\n const {\r\n siteMap, scope, currentCampaign, currentAdGroup,\r\n } = props;\r\n\r\n if (getRouterDep && siteMap && scope) {\r\n if (legacyRouter) {\r\n legacyRouter.legacyRouter = getRouterDep(scope, siteMap);\r\n } else {\r\n legacyRouter = { legacyRouter: getRouterDep(scope, siteMap) };\r\n }\r\n }\r\n\r\n const { CurrentTabId } = mapScopeToPageContext(scope);\r\n Object.assign(pageContext, { CurrentTabId });\r\n\r\n const {\r\n values: {\r\n uid,\r\n cid,\r\n aid,\r\n campaignId,\r\n adGroupId,\r\n },\r\n } = scope;\r\n\r\n const { CurrentCampaign, CurrentAdGroup } = mapODataContextToPageContext({\r\n currentCampaign,\r\n currentAdGroup,\r\n campaignId,\r\n adGroupId,\r\n });\r\n\r\n Object.assign(pageContext, { CurrentCampaign, CurrentAdGroup });\r\n config.set({\r\n CurrentCampaign,\r\n CurrentAdGroup,\r\n });\r\n\r\n state.set({\r\n user_id: uid,\r\n customer_id: cid,\r\n account_id: aid,\r\n campaign_id: campaignId,\r\n adgroup_id: adGroupId,\r\n });\r\n\r\n return ();\r\n };\r\n\r\n WrappedComponent.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n currentCampaign: PropTypes.shape({ Id: PropTypes.number }),\r\n currentAdGroup: PropTypes.shape({ Id: PropTypes.number }),\r\n };\r\n\r\n WrappedComponent.defaultProps = {\r\n currentCampaign: null,\r\n currentAdGroup: null,\r\n };\r\n\r\n return withCustomScope(withScope(withSiteMap(React.memo(WrappedComponent), [\r\n processor.processPermissions,\r\n processor.processScope,\r\n processor.processPath])));\r\n};\r\n\r\nexport const withCampaignLegacyContext = Component => withLegacyContext(Component, withCampaign);\r\n","/* eslint-disable react/no-multi-comp */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Promise from 'bluebird';\r\nimport queryString from 'query-string';\r\nimport { withRouter } from '@bingads-webui-campaign-react/router';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { PreferenceService } from '@bingads-webui/preference-service';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { getCampaignType } from '@bingads-webui-campaign-react/with-campaign-type';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { withAppPerfMarker } from '../contexts/app-perfmarker-context';\r\nimport { isDFMEnabledForPath } from './is-dfm-enabled-for-path';\r\n\r\nconst DFMQueryKeys = [\r\n 'uid',\r\n 'cid',\r\n 'aid',\r\n 'campaignId',\r\n 'adGroupId',\r\n 'adId',\r\n 'filterAlias',\r\n 'filterArguments',\r\n 'filterExpressions',\r\n];\r\n\r\nconst getDFMQueryId = ({ pathname, search }) => {\r\n const queryValues = queryString.parse(search);\r\n const queryKey = DFMQueryKeys.map(key => `${key}:${queryValues[key]}`).join(',');\r\n return `${pathname}?${queryKey}`;\r\n};\r\n\r\nexport const DFMContext = React.createContext();\r\n\r\nexport function withDFMProvider(Component) {\r\n class DFMProvider extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dfmPromise: Promise.resolve(),\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n history, serverContext, appPerfMarker,\r\n } = this.props;\r\n\r\n const dfmPerfMarker = appPerfMarker.createChild('Data_Fetch_Manager_V2');\r\n\r\n let { pathname: prePathname, search: preSearch } = history.location;\r\n // the history change event is always triggered before the react-router navigation logic and page mount logic\r\n // so it's the best place for DFM call\r\n history.listen((location) => {\r\n const { pathname, search } = location;\r\n // If the route and query keys which dfm depends has not changed, do not update dfmPromise\r\n const preDFMQueryId = getDFMQueryId({ pathname: prePathname, search: preSearch });\r\n const curDFMQueryId = getDFMQueryId({ pathname, search });\r\n if (preDFMQueryId === curDFMQueryId) {\r\n return;\r\n }\r\n prePathname = pathname;\r\n preSearch = search;\r\n\r\n const params = new URLSearchParams(preSearch);\r\n const campaignType = getCampaignType(Number(params.get('campaignId')));\r\n\r\n // if not a allowed pathname, skip dfm fetch\r\n if (!isDFMEnabledForPath(pathname, serverContext, campaignType)) {\r\n const dfmPromise = Promise.resolve();\r\n dfmPromise.id = curDFMQueryId;\r\n this.setState({\r\n dfmPromise,\r\n });\r\n return;\r\n }\r\n\r\n if (state && state.set) {\r\n // reset page number before loading DFM.\r\n state.set('pgridPageNumber', {});\r\n }\r\n\r\n const dfmPromise = import(/* webpackMode: 'eager' */'./data-fetch-manager')\r\n .then(({ fetchData }) => fetchData({\r\n serverContext,\r\n preferenceService: PreferenceService,\r\n loadingPath: pathname,\r\n dfmPerfMarker,\r\n campaignType,\r\n }));\r\n dfmPromise.id = curDFMQueryId;\r\n this.setState({\r\n dfmPromise,\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\n }\r\n\r\n DFMProvider.propTypes = {\r\n history: PropTypes.shape({\r\n listen: PropTypes.func.isRequired,\r\n }).isRequired,\r\n serverContext: PropTypes.shape({\r\n PageTrackingId: PropTypes.string.isRequired,\r\n CurrentLocale: PropTypes.string.isRequired,\r\n CurrentAccount: PropTypes.shape({\r\n AccountNumber: PropTypes.string,\r\n }),\r\n ServicesEndpoints: PropTypes.shape({\r\n ClientCenterUIAPI: PropTypes.string.isRequired,\r\n }),\r\n }).isRequired,\r\n appPerfMarker: perfMarkerPropTypes.isRequired,\r\n permissions: PropTypes.shape({\r\n IsDataFetchManagerV2Enabled: PropTypes.bool.isRequired,\r\n }).isRequired,\r\n };\r\n\r\n return withPermissions(withAppPerfMarker(withServerContext(withRouter(DFMProvider))));\r\n}\r\n\r\n/**\r\n * Use Context.Consumer instead of Class.contextType\r\n * Because there are some PureComponents between DFMProvider and DFMReady\r\n * React will not trigger DFMReady rendering if we use Class.contextType\r\n * @param {React.Component} Component component\r\n * @returns {React.Component} component with dfmPromise props\r\n */\r\nfunction withDFMConsumer(Component) {\r\n const DFMConsumer = props => (\r\n \r\n {dfmPromise => }\r\n \r\n );\r\n return DFMConsumer;\r\n}\r\n\r\nexport function withDFMReady(Component) {\r\n class DFMReady extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.dfmTriggered = false;\r\n this.preDFMPromise = null;\r\n }\r\n\r\n updateDFMTriggered() {\r\n const { dfmPromise, location } = this.props;\r\n const expectedDFMQueryId = getDFMQueryId(location);\r\n const isFirstRender = !dfmPromise.id;\r\n const isNewDFMPromise = dfmPromise !== this.preDFMPromise;\r\n const isExpectedDFMPromise = dfmPromise.id === expectedDFMQueryId;\r\n if (isNewDFMPromise && (isFirstRender || isExpectedDFMPromise)) {\r\n this.dfmTriggered = false;\r\n this.preDFMPromise = dfmPromise;\r\n dfmPromise.finally(() => {\r\n this.dfmTriggered = true;\r\n this.forceUpdate();\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n /**\r\n * Update this.dfmTriggered before each rendering instead of in componentDidMount\r\n * Because updating the search without updating pathname also requires triggering remount\r\n */\r\n this.updateDFMTriggered();\r\n return this.dfmTriggered ? : null;\r\n }\r\n }\r\n\r\n DFMReady.propTypes = {\r\n dfmPromise: PropTypes.shape({\r\n id: PropTypes.string,\r\n then: PropTypes.func.isRequired,\r\n catch: PropTypes.func.isRequired,\r\n finally: PropTypes.func.isRequired,\r\n }).isRequired,\r\n };\r\n\r\n return withPermissions(withDFMConsumer(DFMReady));\r\n}\r\n","import React from 'react';\r\nimport _ from 'underscore';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withFooter } from '@bingads-webui-campaign-react/content-footer-hoc';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { withCampaignType } from '@bingads-webui-campaign-react/with-campaign-type';\r\nimport { withScope } from '@bingads-webui-react/scope-service';\r\nimport { lazyLoad, withContexts, importAfterPreLoad, importAfterPreLoadHighCharts, getDefaultExport } from './utils';\r\nimport { withDFMReady } from '../data-fetch/with-dfm';\r\n\r\nconst OverviewPageNoRjsShell = () => importAfterPreLoadHighCharts(() => import(/* webpackChunkName: \"overview-page\" */'../feature-bootstrap/overview-page').then(getDefaultExport));\r\nconst NewOverviewPageNoRjsShell = () => importAfterPreLoadHighCharts(() => import(/* webpackChunkName: \"new-overview-page\" */'../feature-bootstrap/new-overview-page').then(getDefaultExport));\r\nconst NewOverviewPagePhase2NoRjsShell = () => importAfterPreLoadHighCharts(() => import(/* webpackChunkName: \"new-overview-page-phase-2\" */'../feature-bootstrap/new-overview-page-phase-2').then(getDefaultExport));\r\nconst CampaignsPageNoRjsShell = () => importAfterPreLoadHighCharts(() => import(/* webpackChunkName: \"campaigns-page\" */'../feature-bootstrap/campaigns-page').then(getDefaultExport));\r\nconst PerformancePageNoRjsShell = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"performance-page\" */'../feature-bootstrap/performance-page').then(getDefaultExport), true, true);\r\nconst AdExtensionsShellNoRjs = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"ad-extensions-page\" */'../feature-bootstrap/ad-extensions-page').then(getDefaultExport), false, true);\r\n\r\nconst importAdExtensionsFeatures = () => import(/* webpackChunkName: \"ad-extensions-page\" */ '../feature-bootstrap/ad-extensions-dynamic');\r\n\r\nconst AdExtensionShellWrapper = React.memo((props) => {\r\n const Loader = lazyLoad(\r\n AdExtensionsShellNoRjs,\r\n c => importAdExtensionsFeatures().then(({ withDynamicFeatures }) => withInstrumentation(withContexts(withServerContext(withDynamicFeatures(c)))))\r\n );\r\n\r\n return ();\r\n});\r\n\r\nconst OverviewShellWrapper = withCampaignType(withServerContext((props) => {\r\n const { serverContext, campaignType, scope } = props;\r\n const aid = _.get(scope, ['values', 'aid']);\r\n const isAccountIdAvailable = !!aid;\r\n const {\r\n OverviewPageFluentV2,\r\n OverviewPageFluent2,\r\n AppAdsCampaignPhaseOne,\r\n LinkedInCampaigns,\r\n PMaxLiteOverviewFluent,\r\n PMaxCampaignOverviewFluent,\r\n CustomerLevelOverviewFluent,\r\n UnifiedAppAds,\r\n } = serverContext.DynamicPermissions;\r\n\r\n const isLinkedInCampaign = campaignType === 'LinkedIn' && LinkedInCampaigns;\r\n const overviewFluentV2 = OverviewPageFluentV2 || OverviewPageFluent2;\r\n const pmaxCampaignNewFluent = overviewFluentV2 && (PMaxLiteOverviewFluent || PMaxCampaignOverviewFluent);\r\n\r\n const showNewOverview = (\r\n (overviewFluentV2 || isLinkedInCampaign || AppAdsCampaignPhaseOne || pmaxCampaignNewFluent || UnifiedAppAds) && isAccountIdAvailable\r\n ) || CustomerLevelOverviewFluent;\r\n\r\n const OverviewPageNoRjsShellToUse = showNewOverview ? NewOverviewPagePhase2NoRjsShell : OverviewPageNoRjsShell;\r\n\r\n const Loader = lazyLoad(\r\n campaignType === 'PerformanceMax' && !pmaxCampaignNewFluent\r\n ? NewOverviewPageNoRjsShell\r\n : OverviewPageNoRjsShellToUse,\r\n c => withFooter(withContexts(c))\r\n );\r\n\r\n\r\n return ();\r\n}));\r\n\r\nconst CampaignsShellWrapper = React.memo((props) => {\r\n const Loader = lazyLoad(CampaignsPageNoRjsShell, c => withContexts(withServerContext(c)));\r\n\r\n return ();\r\n});\r\n\r\nconst PerformanceShellWrapper = (props) => {\r\n const Loader = lazyLoad(PerformancePageNoRjsShell, c => withContexts(withServerContext(c)));\r\n\r\n return ();\r\n};\r\n\r\nexport const adExtensionsLoader = withPermissions(AdExtensionShellWrapper);\r\nexport const overviewPageLoader = withDFMReady(withPermissions(withScope(OverviewShellWrapper)));\r\nexport const campaignsPageLoader = withPermissions(CampaignsShellWrapper);\r\nexport const performancePageLoader = withDFMReady(withPermissions(PerformanceShellWrapper));\r\n","import { extend } from 'underscore';\r\nimport React from 'react';\r\n\r\nexport function withPageName(Component, pageName) {\r\n const ComponentWithPageName = props => (\r\n \r\n );\r\n\r\n extend(ComponentWithPageName, { pageName });\r\n\r\n return ComponentWithPageName;\r\n}\r\n","/* eslint-disable react/prop-types */\r\nimport React from 'react';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\nimport { withPageReadyAsync } from '@bingads-webui-react/with-page-ready';\r\n\r\nconst DelayedPreexecuteContainer = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'./preexecute-container')\r\n .then(({ StyledPreexecuteContainer }) => ({\r\n default: StyledPreexecuteContainer,\r\n })), null);\r\n\r\nexport const withPreexecute = (Component, PreexecuteComponents) => (props) => {\r\n const pageReadyPromise = PageReady.afterPageReady();\r\n\r\n if (!pageReadyPromise.isFulfilled()) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return ;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport {\r\n withFullScreenLayoutNavRefresh,\r\n} from '@bingads-webui-react/app-layout-container';\r\nimport { withGlobalErrorView } from '@bingads-webui-campaign-react/global-error-options';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withFooter } from '@bingads-webui-campaign-react/content-footer-hoc';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withStateStore } from '@bingads-webui/with-state-store';\r\nimport { isNewOnboardingVisibleStore } from '@bingads-webui-campaign-react/onboarding-toggle';\r\nimport {\r\n withCampaignSiteMap,\r\n} from '@bingads-webui-campaign-react/with-site-map';\r\n\r\nimport { lazyLoad, withContexts } from './utils';\r\nimport { withPagePerfMarker } from '../contexts/with-page-perf-marker';\r\nimport { withCcJsDataContextProvider } from '../contexts/with-cc-js-data-context-provider';\r\nimport { routes as r } from './dynamic-routes';\r\n\r\nconst ChooseObjectiveWithLegacyConfig = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.ChooseObjectiveWithLegacyConfig, c => withFooter(withContexts(withServerContext(c)))), 'Route_ChooseObjective_VNext'))));\r\nconst CampaignOnboardingV2 = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.CampaignOnboardingV2, c => withFooter(withContexts(withServerContext(c)))), 'Route_ChooseObjectiveV2'))));\r\n\r\nconst CampaignOnboardingShellInternal = ({ permissions }) => {\r\n if (permissions.dynamic.DisplayPlusCampaigns) {\r\n return ;\r\n }\r\n\r\n return ;\r\n};\r\n\r\nCampaignOnboardingShellInternal.propTypes = {\r\n permissions: PropTypes.shape({\r\n dynamic: PropTypes.shape({\r\n DisplayPlusCampaigns: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n};\r\n\r\nexport const CampaignOnboardingShell = withCampaignSiteMap(withStateStore(\r\n withPreference(withPermissions(CampaignOnboardingShellInternal)),\r\n isNewOnboardingVisibleStore,\r\n store => ({\r\n isNewOnboardingVisible: store.state.isNewOnboardingVisible,\r\n })\r\n));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { withFullScreenWithSummaryBarNavRefresh } from '@bingads-webui-react/app-layout-container';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withGlobalErrorView } from '@bingads-webui-campaign-react/global-error-options';\r\n\r\nimport { withCcJsDataContextProvider } from '../contexts/with-cc-js-data-context-provider';\r\nimport { withLegacyContext } from '../legacy-dep-bootstrap/legacy-context';\r\nimport { lazyLoad, withContexts } from './utils';\r\nimport { withPagePerfMarker } from '../contexts/with-page-perf-marker';\r\nimport { routes } from './dynamic-routes';\r\n\r\nconst StyledSiteExclusionListsCreate = withCcJsDataContextProvider(withLegacyContext(withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(routes.SiteExclusionListCustomerCreationShell, c => withContexts(withServerContext(c))), 'Route_SiteExclusionList_CustomerCreation_VNext')))));\r\nconst StyledWebsiteExclusionListsCreateV2 = withFullScreenWithSummaryBarNavRefresh(withPagePerfMarker(lazyLoad(routes.WebsiteExclusionListsPage), 'Route_SiteExclusionList_CustomerCreation_VNext'));\r\n\r\nconst StyledSiteExclusionListsEdit = withCcJsDataContextProvider(withLegacyContext(withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(routes.SiteExclusionListCustomerEditPage, c => withContexts(withServerContext(c))), 'Route_SiteExclusionList_CustomerEdit_VNext')))));\r\nconst StyledWebsiteExclusionListsEditV2 = withFullScreenWithSummaryBarNavRefresh(withPagePerfMarker(lazyLoad(routes.WebsiteExclusionListsCustomerEditPage), 'Route_SiteExclusionList_CustomerEdit_VNext'));\r\n\r\nconst StyledSiteExclusionListsViewLists = withCcJsDataContextProvider(withLegacyContext(withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(routes.SiteExclusionListAccountLevelListPage, c => withContexts(withServerContext(c))), 'Route_SiteExclusionList_AccountLevel_ListPage_VNext')))));\r\nconst StyledWebsiteExclusionListsViewListsV2 = withFullScreenWithSummaryBarNavRefresh(withPagePerfMarker(\r\n lazyLoad(routes.WebsiteExclusionListsAccountLevelListPage),\r\n 'Route_SiteExclusionList_AccountLevel_ListPage_VNext'\r\n));\r\n\r\nconst StyledSiteExclusionListsViewExclusions = withCcJsDataContextProvider(withLegacyContext(withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(routes.SiteExclusionListAccountLevelExclusionsPage, c => withContexts(withServerContext(c))), 'Route_SiteExclusionList_AccountLevel_ExclusionsPage_VNext')))));\r\nconst StyledWebsiteExclusionListsViewExclusionsV2 = withFullScreenWithSummaryBarNavRefresh(withPagePerfMarker(lazyLoad(routes.WebsiteExclusionListsAccountLevelExclusionsPage), 'Route_SiteExclusionList_AccountLevel_ExclusionsPage_VNext'));\r\n\r\n// Generic higher-order component for conditional rendering\r\nconst websiteExclusionListsPermissions = (ComponentV1, ComponentV2) => {\r\n const WebsiteExclusionListsConditional = ({ permissions }) => {\r\n const {\r\n dynamic: { WebsiteExclusionLists },\r\n } = permissions;\r\n\r\n return WebsiteExclusionLists ? : ;\r\n };\r\n\r\n WebsiteExclusionListsConditional.propTypes = {\r\n permissions: PropTypes.shape({\r\n dynamic: PropTypes.shape({\r\n WebsiteExclusionLists: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n };\r\n\r\n return withPermissions(WebsiteExclusionListsConditional);\r\n};\r\n\r\nconst WebsiteExclusionListsCreateShell = websiteExclusionListsPermissions(StyledSiteExclusionListsCreate, StyledWebsiteExclusionListsCreateV2);\r\nconst WebsiteExclusionListsEditShell = websiteExclusionListsPermissions(StyledSiteExclusionListsEdit, StyledWebsiteExclusionListsEditV2);\r\nconst WebsiteExclusionListsViewListsShell = websiteExclusionListsPermissions(StyledSiteExclusionListsViewLists, StyledWebsiteExclusionListsViewListsV2);\r\nconst WebsiteExclusionListsViewExclusionsShell = websiteExclusionListsPermissions(StyledSiteExclusionListsViewExclusions, StyledWebsiteExclusionListsViewExclusionsV2);\r\n\r\nexport { WebsiteExclusionListsCreateShell, WebsiteExclusionListsEditShell, WebsiteExclusionListsViewListsShell, WebsiteExclusionListsViewExclusionsShell };\r\n","import React from 'react';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\n\r\nexport const withClipchampPlayer = (WrappedComponent) => {\r\n const Wrapper = (props) => {\r\n const loadClipchampPlayer = async () => {\r\n const [\r\n { createAssetResolver },\r\n {\r\n Player,\r\n usePlayPause,\r\n usePlayerControls,\r\n usePlayerTime,\r\n useFormattedTimeAndDuration,\r\n },\r\n { UrlAssetFetchHandler },\r\n { createHubbleAssetFetchHandler },\r\n { populateSystemAssets },\r\n ] = await Promise.all([\r\n import('@clipchamp/asset-resolution'),\r\n import('@clipchamp/superfill-react'),\r\n import('@clipchamp/asset-resolution/providers/url'),\r\n import('@clipchamp/asset-resolution/providers/hubble'),\r\n import('@clipchamp/asset-resolution/unsafe_system-assets'),\r\n ]);\r\n\r\n return {\r\n createAssetResolver,\r\n Player,\r\n UrlAssetFetchHandler,\r\n createHubbleAssetFetchHandler,\r\n populateSystemAssets,\r\n usePlayPause,\r\n usePlayerControls,\r\n usePlayerTime,\r\n useFormattedTimeAndDuration,\r\n };\r\n };\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n Wrapper.displayName = `withClipchampPlayer(${getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(Wrapper, WrappedComponent);\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\n\r\nimport { Route, Switch } from '@bingads-webui-campaign-react/router';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { withScope } from '@bingads-webui-react/scope-service';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withFooter } from '@bingads-webui-campaign-react/content-footer-hoc';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport {\r\n withAccountsSiteMap,\r\n withCampaignSiteMap,\r\n} from '@bingads-webui-campaign-react/with-site-map';\r\nimport {\r\n withLayout,\r\n withFullScreenLayout,\r\n withFullScreenWithSummaryBar,\r\n withDefaultLayout,\r\n withMenuOnlyLayout,\r\n withoutMenuLayout,\r\n withSingleTabLayout,\r\n layoutConfigs,\r\n withLayoutNavRefresh,\r\n withFullScreenLayoutNavRefresh,\r\n withSummaryBarAndTabNoDateLayoutNavRefresh,\r\n withSummaryBarAndTabAndSubTabLayoutNavRefresh,\r\n withFullScreenWithSummaryBarNavRefresh,\r\n withFullScreenWithSummaryBarAndTabLayoutNavRefresh,\r\n withFullScreenWithSummaryBarNavRefreshNoMenu,\r\n withLayoutNavRefreshWithTab,\r\n withLayoutNavRefreshNoMenu,\r\n} from '@bingads-webui-react/app-layout-container';\r\nimport { AppContentContainer } from '@bingads-webui-react/app-content-container';\r\nimport { ProgressiveLoadingBlock } from '@bingads-webui-campaign-react/shell-ui-common';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\nimport { PerfMarkerFactory } from '@bingads-webui/performance-marker';\r\nimport { DefaultGlobalErrorView, withChunkErrorActionGlobalErrorView as withGlobalErrorView } from '@bingads-webui-campaign-react/global-error-options';\r\nimport { withOpportunityId } from '@bingads-webui-campaign-react/with-opportunity-id';\r\nimport { AccountsPageNavigation } from './accounts-page/accounts-page';\r\nimport { routes as r } from './dynamic-routes';\r\nimport { lazyLoad, isLandingPage, withContexts, withProps } from './utils';\r\nimport { withPagePerfMarker, withOverviewPerfMarker } from '../contexts/with-page-perf-marker';\r\nimport { addBadgeForNewFeatures } from './new-feature-badge';\r\nimport { withBingMap } from '../contexts/with-bing-map';\r\nimport { withLegacyContext, withCampaignLegacyContext } from '../legacy-dep-bootstrap/legacy-context';\r\nimport { adExtensionsLoader, overviewPageLoader, campaignsPageLoader, performancePageLoader } from './feature-loaders';\r\nimport { withPageName } from './preexecute/with-page-name';\r\nimport { withPreexecute } from './preexecute/with-preexecute';\r\nimport { withAppPerfMarker } from '../contexts/app-perfmarker-context';\r\nimport { withDFMReady } from '../data-fetch/with-dfm';\r\nimport { withCcJsDataContextProvider } from '../contexts/with-cc-js-data-context-provider';\r\nimport { CampaignOnboardingShell } from './campaign-onboarding-shell';\r\nimport { WebsiteExclusionListsCreateShell, WebsiteExclusionListsEditShell, WebsiteExclusionListsViewListsShell, WebsiteExclusionListsViewExclusionsShell } from './website-exclusion-lists-shell';\r\nimport { withClipchampPlayer } from './withClipchampPlayer';\r\n\r\n// Using perf marker factory is the best option here during module import and initial execution. For other places we should continue to use appPerfMarker.\r\nconst appRoutesInitPerfMarker = PerfMarkerFactory.createMarker('ShellPage_WebUI.App_Routes_Init');\r\nappRoutesInitPerfMarker.willInit();\r\n\r\nconst withContextsNoFallback = _.compose(withI18nConsumer, withPermissions, withPreference, withScope);\r\nconst reporting = withLegacyContext(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.Reports, c => withContextsNoFallback(withServerContext(c))), 'Route_Reports_VNext')));\r\nconst ReportsV4 = withLegacyContext(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.ReportsV4, c => withContextsNoFallback(withServerContext(c))), 'Route_Reports_V4')));\r\nconst Fallback = () => ();\r\nconst pageReadyTimeout = 15000;\r\n\r\nlet isPageReadyResolved = false;\r\n\r\nlet firstRoute = '';\r\n\r\n// We need to cache the shell of Product Group Page in this instance. Or every time the router changes, the shell will be rebuilt.\r\n// todo: when we change all pages to use router render method, merge all page with dynamic-route\r\nconst BidStrategiesShell = withLegacyContext(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.BidStrategiesShell, c => withContexts(withServerContext(c))), 'Route_BidStrategies')));\r\nconst StyledChangeHistory = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledChangeHistory, c => withContexts(withServerContext(c))), 'Route_ChangeHistory_VNext'))));\r\nconst HotelGroupsShell = withLegacyContext(withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.HotelGroupsShell, c => withContexts(withServerContext(c))), 'Route_HotelGroups'))));\r\nconst PropertyGroupsShell = withLegacyContext(withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.PropertyGroupsShell, c => withContexts(withServerContext(c))), 'Route_PropertyGroups'))));\r\nconst ProductGroupsShell = withLegacyContext(withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.ProductGroupsShell, c => withContexts(withServerContext(c))), 'Route_ProductGroups_VNext'))));\r\nconst PerformanceTargetsShell = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.PerformanceTargetsShell, c => withContexts(withServerContext(c))), 'Route_PerformanceTargets_VNext')), { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withoutNav, ...layoutConfigs.withoutDate }));\r\nconst StyledCampaigns = withCcJsDataContextProvider(withDFMReady(withPageName(withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(campaignsPageLoader, 'Route_Campaigns_VNext')))), 'campaigns')));\r\nconst StyledCampaignsPreexecution = withCcJsDataContextProvider(withPageName(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(campaignsPageLoader, 'Page_Preexecute_campaigns'))), 'campaigns'));\r\nconst StyledCampaignCreationHotel = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.HotelCampaignCreation, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_HotelCampaignCreation'))));\r\nconst StyledCampaignCreationSearch = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationSearch, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_AdvancedCampaignCreationWizard_VNext'))));\r\nconst StyledCampaignCreationSearchV2 = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationSearchV2, c => withBingMap(withContexts(withServerContext(c)))), 'Route_SearchCampaignCreationWizardV2_VNext'))));\r\nconst StyledCampaignCreationAudience = withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationAudience, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_AudienceCampaignCreationWizard_VNext')));\r\nconst StyledCampaignCreationAudienceSimplified = withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationAudienceSimplified, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_AudienceCampaignCreationSimplifiedWizard_VNext')));\r\nconst StyledCampaignCreationAudienceVideo = withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationAudienceVideo, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_AudienceCampaignCreationWizard_VNext')));\r\nconst StyledCampaignCreationSearchShopping = withCcJsDataContextProvider(withDFMReady(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationSearchShopping, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_AdvancedCampaignShoppingCreationWizard_VNext')))));\r\nconst StyledCampaignCreationSearchShoppingWizard = withCcJsDataContextProvider(withDFMReady(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationSearchShoppingWizard, c => withBingMap(withContexts(withServerContext(c)))), 'Route_AdvancedCampaignNewShoppingCreationWizard_VNext')))));\r\nconst StyledCampaignCreationAudienceShoppingWizard = withCcJsDataContextProvider(withDFMReady(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationAudienceShoppingWizard, c => withBingMap(withContexts(withServerContext(c)))), 'Route_AdvancedCampaignNewShoppingCreationAudienceWizard_VNext')))));\r\nconst StyledSponsoredCampaignCreation = withDFMReady(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.SponsoredCampaignCreationPage, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_SpaSpbCampaignCreation_VNext'))));\r\nconst StyledCampaignCreationMSStoreAds = withCcJsDataContextProvider(withDFMReady(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationMSStoreAds, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_MSStoreAdsCampaignCreationWizard_VNext')))));\r\nconst StyledCampaignCreationAudienceShopping = withDFMReady(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationAudienceShopping, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_AudienceCampaignShoppingCreationWizard_VNext'))));\r\nconst PerfMaxCampaignCreationPage = withCcJsDataContextProvider(withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.PerfMaxCampaignCreationPage, c => withBingMap(withContexts(withServerContext(c)))), 'Route_PerfMaxCampaignCreationPage_VNext')))));\r\nconst LinkedInCampaignCreationPage = withFullScreenWithSummaryBar(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.LinkedInCampaignCreationPage, c => withBingMap(withContexts(withServerContext(c)))), 'Route_LinkedInCampaignCreationPage_VNext'))));\r\nconst LinkedInAdEditorPage = withFullScreenWithSummaryBar(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.LinkedInAdEditorPage, c => withBingMap(withContexts(withServerContext(c)))), 'Route_LinkedInAdEditorPage_VNext'))));\r\n// const LinkedInAdEditorPage = withFullScreenWithSummaryBar(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.LinkedInAdEditorPage, c => withContexts(withServerContext(c))), 'Route_LinkedInAdEditorPage_VNext'))));\r\nconst PerfMaxNorthStarCampaignCreationPage = withCcJsDataContextProvider(withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.PerfMaxNorthStarWizard, c => withBingMap(withContexts(withServerContext(c)))), 'Route_PerfMaxCampaignCreationPage_NorthStar')))));\r\nconst StyledXandrVideoCampaignCreationPage = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledXandrVideoCampaignCreationPage, c => withBingMap(withContexts(withServerContext(c))))), 'Route_XandrVideoCampaignCreationPage_VNext')));\r\nconst StyledXandrDisplayAdsCampaignCreationPage = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledXandrDisplayAdsCampaignCreationPage, c => withBingMap(withContexts(withServerContext(c))))), 'Route_XandrDisplayAdsCampaignCreationPage_VNext')));\r\nconst StyledDisplayPlusCampaignsPage = withClipchampPlayer(withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledDisplayPlusCampaignsPage, c => withBingMap(withContexts(withServerContext(c)))), 'Route_DisplayPlusCampaigns')))));\r\nconst StyledDisplayPlusCampaignsDisplayAdsPage = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledDisplayPlusCampaignsPage, c => withBingMap(withContexts(withServerContext(withProps(c, { adsType: 'Display' }))))), 'Route_DisplayPlusCampaigns'))));\r\nconst StyledAppAdsCampaignsPage = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledAppAdsCampaignsPage, c => withBingMap(withContexts(withServerContext(c)))), 'Route_AppAdsCampaigns'))));\r\nconst StyledAppAdsAssetGroupCreation = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledAppAdsAssetGroupCreation, c => withBingMap(withContexts(withServerContext(c)))), 'Route_AppAdsAssetGroupCreatio'))));\r\nconst AdGroupCreationWithCampaign = withCampaignLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.AdGroupCreationWithCampaign, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_AdGroup_Creation_VNext'))));\r\nconst StyledAdGroups = withDFMReady(withPageName(withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAdGroups, c => withContexts(withServerContext(c))), 'Route_AdGroup_VNext')))), 'adgroups'));\r\nconst StyledAdGroupsPreexecution = withPageName(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAdGroups, c => withContexts(withServerContext(c))), 'Page_Preexecute_adgroups'))), 'adgroups');\r\nconst StyledAds = withOpportunityId(withDFMReady(withPageName(withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAds, c => withContexts(withServerContext(c))), 'Route_Ads_VNext')))), 'ads')));\r\nconst StyledAdsPreexecution = withPageName(withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAds, c => withContexts(withServerContext(c))), 'Page_Preexecute_ads')))), 'ads');\r\nconst StyledPositiveKeywords = withOpportunityId(withDFMReady(withPageName(withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledPositiveKeywords, c => withContexts(withServerContext(c))), 'Route_Keywords_VNext')))), 'keywords')));\r\nconst StyledPositiveKeywordsPreexecution = withPageName(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledPositiveKeywords, c => withContexts(withServerContext(c))), 'Page_Preexecute_keywords'))), 'keywords');\r\nconst StyledNegativeKeywords = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledNegativeKeywords, c => withContexts(withServerContext(c))), 'Route_Negative_Keywords_VNext'))));\r\nconst StyledSearchTerms = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledSearchterm, c => withContexts(withServerContext(c))), 'Route_Searchterms_VNext'))));\r\nconst StyledBulkEdits = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledBulkEdits, c => withContexts(withServerContext(c))), 'Route_BulkEdits_VNext')), layoutConfigs.accountSummaryWithoutDate));\r\nconst StyledBulkEditsDetail = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledBulkEditsDetail, c => withContexts(withServerContext(c))), 'Route_BulkEditsDetail_VNext')), {\r\n ...layoutConfigs.fullScreenWithSummaryBar,\r\n ...layoutConfigs.withoutDate,\r\n}));\r\nconst MCMCampaignControl = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.MCMCampaignControl, c => withContexts(withServerContext(c))), 'Route_MCMCampaignControl_VNext')), layoutConfigs.withCollapsedMenuOnly));\r\n\r\nconst StyledAudiencePlanner = withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudienceNetworkPlanner, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_AudiencePlanner_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledCampaignCreationSmartShoppingPage = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCampaignCreationSmartShopping, c => withFooter(withBingMap(withContexts(withServerContext(c))))), 'Route_CampaignCreationSmartShopping_VNext')))));\r\nconst recommendations = lazyLoad(r.RecommendationsShell, c => withContexts(withServerContext(c)));\r\nconst recommendationsWithPerfMarker = withGlobalErrorView(withPagePerfMarker(recommendations, 'Route_Recommendations_VNext'));\r\nconst mccRecommendationsWithPerfMarker = withGlobalErrorView(withPagePerfMarker(recommendations, 'Route_MCC_Recommendations_VNext'));\r\nconst StyledRecommendations = withCcJsDataContextProvider(withLayoutNavRefresh(recommendationsWithPerfMarker, layoutConfigs.withoutDate));\r\nconst StyledMCCRecommendations = withCcJsDataContextProvider(withLayoutNavRefresh(mccRecommendationsWithPerfMarker, {\r\n ...layoutConfigs.accountSummary,\r\n ...layoutConfigs.withHistoryButton,\r\n}));\r\nconst StyledRecommendationsWithHistoryButton = withCcJsDataContextProvider(withDFMReady(withLayoutNavRefresh(recommendationsWithPerfMarker, layoutConfigs.withHistoryButton)));\r\nconst StyledRecommendationsHistoryPage = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(recommendationsWithPerfMarker));\r\nconst StyledMCCRecommendationsHistoryPage = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(mccRecommendationsWithPerfMarker));\r\nconst StyledRecommendationRSAAsset = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(recommendations));\r\nconst StyledRecommendationImageAsset = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(recommendations));\r\nconst StyledRecommendationDemo = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(recommendations));\r\nconst StyledRecommendationAutoApplySettinsPage = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(recommendationsWithPerfMarker));\r\nconst StyledRecommendationAutoApplyBulkUploadPage = withCcJsDataContextProvider(withFullScreenLayoutNavRefresh(mccRecommendationsWithPerfMarker));\r\nconst StyledFeeds = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledFeeds, c => withContextsNoFallback(withServerContext(c))), 'Route_Feeds_VNext')), layoutConfigs.withoutNav));\r\nconst StyledImportCenter = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledImportCenter, c => withContexts(withServerContext(c))), 'Route_ImportCenter_VNext')), { ...layoutConfigs.withoutMenu, ...layoutConfigs.withoutDate })));\r\nconst StyledAuctionInsightPage = withCcJsDataContextProvider(withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCompetitionAuctionInsight, c => withContexts(withServerContext(c))), 'Route_CompetitionAuctionInsight_VNext')))));\r\nconst StyledAudienceAssociationPage = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudienceAssociationPage, c => withContexts(withServerContext(c))), 'Route_Audiences_VNext'))));\r\nconst StyledAudiencesLibrary = withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudiencesLibrary, c => withContexts(withServerContext(c))), 'Route_AudienceSharedLibrary_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledAudiencesLibraryV2 = withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudiencesLibrary, c => withContexts(withServerContext(c))), 'Route_AudienceSharedLibrary_VNext'))));\r\nconst StyledAudienceSignalManagement = withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudienceSignalManagement, c => withContexts(withServerContext(withPermissions(c))), 'Route_AudienceSignalManagement_VNext'))));\r\nconst StyledAudienceCustomSegments = withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudienceCustomSegmentsPage, c => withContexts(withServerContext(withPermissions(c))), 'Route_AudienceCustomSegments_VNext'))));\r\nconst StyledAudienceAssociationCreation = withLegacyContext(withFullScreenLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudienceAssociationCreation, c => withFooter(withContexts(withServerContext(c)))), 'Route_AudienceAssociationCreation_VNext'))));\r\nconst StyledAudienceCreation = withLegacyContext(withFullScreenLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudienceCreation, c => withFooter(withContexts(withServerContext(c)))), 'Route_AudienceCreation_VNext'))));\r\nconst StyledAudienceEdit = withFullScreenLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAudienceEdit, c => withFooter(withContexts(withServerContext(c)))), 'Route_AudienceEdit_VNext')));\r\nconst StyledConversionGoalsAutoCreate = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledConversionGoalsAutoCreate, c => withFooter(withContexts(withServerContext(c)))), 'Route_ConversionGoalsAutoCreate_VNext')))));\r\nconst StyledConversionGoalsCreate = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledConversionGoalsCreate, c => withFooter(withContexts(withServerContext(c)))), 'Route_ConversionGoalsCreate_VNext')))));\r\nconst StyledConversionGoalsEdit = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledConversionGoalsEdit, c => withFooter(withContexts(withServerContext(c)))), 'Route_ConversionGoalsEdit_VNext')))));\r\nconst StyledConversionValueRulesCreate = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledConversionValueRulesCreate, c => withFooter(withContexts(withServerContext(c)))), 'Route_ConversionValueRulesCreate_VNext')))));\r\nconst StyledConversionValueRulesEdit = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledConversionValueRulesCreate, c => withFooter(withContexts(withServerContext(c)))), 'Route_ConversionValueRulesEdit_VNext')))));\r\nconst StyledOverviewPage = withPageName(withLegacyContext(withDefaultLayout(withGlobalErrorView(withOverviewPerfMarker(overviewPageLoader)))), 'overview');\r\nconst StyledUetTags = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUetTags, c => withContexts(withServerContext(c))), 'Route_UetTags_VNext')), layoutConfigs.fullScreenWithSummaryBar)));\r\nconst StyledUetAllTagsDashboard = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUetTags, c => withContexts(withServerContext(c))), 'Route_UetTags_Dashboard_VNext')), {\r\n ...layoutConfigs.accountSummaryWithoutDate,\r\n tab: { mode: 'hidden' },\r\n})));\r\nconst StyledUetTagsDashboard = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUetTags, c => withContexts(withServerContext(c))), 'Route_UetTags_Dashboard_VNext')), {\r\n ...layoutConfigs.accountSummaryWithoutDate,\r\n ...layoutConfigs.withDisabledDate,\r\n})));\r\nconst StyledUetDashboard = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUetTags, c => withContexts(withServerContext(c))), 'Route_UetTags_Dashboard_VNext')), { ...layoutConfigs.accountSummaryWithoutDate, ...layoutConfigs.dateWithoutCompare })));\r\nconst StyledUetWebInsights = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUetWebInsights, c => withContexts(withServerContext(c))), 'Route_StyledUetWebInsights_VNext')), { ...layoutConfigs.accountSummaryWithoutDate, ...layoutConfigs.dateWithoutCompare }));\r\nconst StyledUetTestPage = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUetTestPage, c => withContexts(withServerContext(c))), 'Route_StyledUetTestPage_VNext')), layoutConfigs.accountSummaryWithoutDate));\r\nconst StyledUetTagsCreate = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUetTagsCreate, c => withFooter(withContexts(withServerContext(c))), 'Route_UetTagsCreate_VNext'))))));\r\nconst StyledUetTagsEdit = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUetTagsEdit, c => withFooter(withContexts(withServerContext(c))), 'Route_UetTagsEdit_VNext'))))));\r\nconst StyledOfflineConversions = withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledOfflineConversions, c => withFooter(withContexts(withServerContext(c)))), 'Route_OfflineConversions_VNext')), { ...layoutConfigs.fullScreenWithSummaryBar }));\r\nconst StyledModeledConversions = withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledModeledConversions, c => withFooter(withContexts(withServerContext(c)))), 'Route_ModeledConversions_VNext')), { ...layoutConfigs.fullScreenWithSummaryBar }));\r\nconst StyledConversionGoals = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledConversionGoals, c => withContexts(withServerContext(c))), 'Route_ConversionGoals_VNext')), { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.dateWithoutCompare })));\r\nconst StyledConversionValueRules = withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledConversionValueRules, c => withContexts(withServerContext(c))), 'Route_ConversionValueRules_VNext')))); const StyledSharedBudgetEdit = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledSharedBudgetEdit, c => withContexts(withServerContext(c))), 'Route_SharedBudgetEdit_VNext')), { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.dateWithoutCompare }));\r\nconst StyledCustomerAcquisition = withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCustomerAcquisition, c => withContexts(withServerContext(c))), 'Route_CustomerAcquisition_VNext'))));\r\nconst StyledHotelCenter = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledHotelCenter, c => withContexts(withServerContext(c))), 'Route_HotelCenter_VNext')), { ...layoutConfigs.accountSummary, ...layoutConfigs.dateWithoutCompare }));\r\nconst StyledHotelCenterV2 = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledHotelCenterV2, c => withFooter(withContexts(withServerContext(c)))), 'Route_HotelCenterV2_VNext')), { ...layoutConfigs.fullScreenWithSummaryBar }));\r\nconst StyledSharedBudgetSummary = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledSharedBudgetSummary, c => withContexts(withServerContext(c))), 'Route_SharedBudgetSummary_VNext')), { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.dateWithoutCompare }));\r\nconst StyledSeasonalityAdjustment = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledSeasonalityAdjustment, c => withContexts(withServerContext(c))), 'Route_SeasonalityAdjustment_VNext')), { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withoutDate }));\r\nconst StyledPortfolioBidStrategy = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledPortfolioBidStrategy, c => withContexts(withServerContext(c))), 'Route_PortfolioBidStrategy_VNext')), {\r\n ...layoutConfigs.fullScreenWithSummaryBarAndTab,\r\n tab: {}, // Do not specify mode: 'collapsed' or 'expanded', let date picker make the decision based on whether compared date range is enabled.\r\n}));\r\nconst StyledExtensions = withDFMReady(withLegacyContext(withPermissions(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(adExtensionsLoader, 'Route_AdExtensions_VNext'))))));\r\nconst StyledExperiments = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledExperiments, c => withContexts(withServerContext(c))), 'Route_Experiments_VNext')), layoutConfigs.withoutDate));\r\nconst StyledProductFeeds = withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(\r\n r.StyledProductFeedPage,\r\n c => withContexts(withServerContext(c))\r\n), 'Route_ProductFeed_VNext'))));\r\nconst StyledLinkedStorePage = withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(\r\n r.StyledLinkedStorePage,\r\n c => withContexts(withServerContext(c))\r\n), 'Route_LinkedStore_VNext'))));\r\nconst StyledBusinessLocationFeed = withCcJsDataContextProvider(withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledGmbImport, c => withContexts(withServerContext(c))), 'Route_GMBImport_VNext')))));\r\nconst StyledHotelsPage = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledHotels, c => withContexts(withServerContext(c))), 'Route_Hotels'))));\r\nconst StyledPropertiesPage = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledProperties, c => withContexts(withServerContext(c))), 'Route_Properties'))));\r\nconst StyledProductsPage = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(\r\n r.StyledProducts,\r\n c => withContexts(withServerContext(c))\r\n), 'Route_Products_VNext')), layoutConfigs.withoutDate));\r\nconst StyledFeedsSummaryPage = withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(\r\n r.StyledFeedSummaryPage,\r\n c => withContexts(withServerContext(c))\r\n), 'Route_FeedSummary_VNext')), { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withoutDate });\r\nconst StyledMSStoreAdsSellerIdsPage = withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(\r\n r.StyledMSStoreAdsSellerIdsPage,\r\n c => withContexts(withServerContext(c))\r\n), 'Route_MSStoreAdsSellerIds_VNext')), { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withoutDate });\r\nconst StyledDemographicsPage = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.DemographicsShell, c => withContexts(withServerContext(c))), 'Route_Demographics_VNext'))));\r\nconst StyledTargetedLocationsPage = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledTargetedLocations, c => withBingMap(withContexts(withServerContext(c)))), 'Route_Locations_VNext'))));\r\nconst StyledExcludedLocationsPage = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(\r\n r.StyledExcludedLocations,\r\n c => withBingMap(withContexts(withServerContext(c)))\r\n), 'Route_ExcludedLocations_VNext')), layoutConfigs.withoutDate));\r\nconst StyledAdSchedulePage = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAdSchedule, c => withContexts(withServerContext(c))), 'Route_AdSchedule_VNext'))));\r\nconst StyledDevicesPage = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledDevices, c => withContexts(withServerContext(c))), 'Route_Devices_VNext'))));\r\nconst StyledBrandPage = withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(\r\n r.StyledBrandPage,\r\n c => withContexts(withServerContext(c))\r\n), 'Route_Brand_VNext'))));\r\nconst StyledCompetitionRecommendation = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(lazyLoad(r.StyledCompetitionRecommendations, c => withBingMap(withContexts(withServerContext(c))))), layoutConfigs.withoutDate)));\r\nconst StyledDynamicAdTarget = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledDynamicAdTarget, c => withContexts(withServerContext(c))), 'Route_DynamicAdTarget_VNext'))));\r\nconst DynamicExclusionShell = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.DynamicExclusionShell, c => withContexts(withServerContext(c))), 'Route_DynamicExclusion_VNext'))));\r\nconst StyledDynamicSearchTerm = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledDynamicSearchTerm, c => withContexts(withServerContext(c))), 'Route_DynamicSearchTerm_VNext'))));\r\nconst StyledGoogleImport = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledGoogleImport, c => withFooter(withContexts(withServerContext(c)))), 'Route_GoogleImport_VNext'))));\r\nconst StyledMultiAccountGoogleImport = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledMultiAccountGoogleImport, c => withFooter(withContexts(withServerContext(c)))), 'Route_MultiAccountGoogleImport_VNext'))));\r\nconst StyledFileImport = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledFileImport, c => withFooter(withContexts(withServerContext(c)))), 'Route_FileImport_VNext'))));\r\nconst StyledImportSchedule = withCcJsDataContextProvider(withLegacyContext(withFullScreenWithSummaryBarNavRefreshNoMenu(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledImportSchedule, c => withFooter(withContexts(withServerContext(c)))), 'Route_ImportSchedule_VNext')))));\r\nconst StyledImportCredentialId = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledImportCredentialId, c => withFooter(withContexts(withServerContext(c)))), 'Route_ImportCredentialId_VNext', false))));\r\nconst StyledAccountSettingsPage = withCcJsDataContextProvider(withLegacyContext(withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAccountSettingsPage, c => withContexts(withServerContext(c))), 'Route_AccountSettings_VNext')), layoutConfigs.withoutDate)));\r\nconst MerchantCenterShell = withCcJsDataContextProvider(withLegacyContext(withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.MerchantCenterShell, c => withContexts(withServerContext(c))), 'Route_MerchantCenter_VNext')), layoutConfigs.withoutDate)));\r\nconst ReportingFullScreen = withFullScreenWithSummaryBarNavRefresh(reporting);\r\nconst ReportingWithNav = withMenuOnlyLayout(reporting);\r\n// const ReportsV4FullScreen = withFullScreenWithSummaryBar(ReportsV4);\r\nconst ReportsV4WithNav = withCcJsDataContextProvider(withDFMReady(withLayoutNavRefreshNoMenu(ReportsV4, {\r\n ...layoutConfigs.withoutMenu,\r\n status: { mode: 'hidden' },\r\n tab: { mode: 'hidden' },\r\n subTab: { mode: 'hidden' },\r\n})));\r\nconst StyledCustomReportingPage = withCcJsDataContextProvider(withLayoutNavRefreshNoMenu(withGlobalErrorView(withInstrumentation(withDFMReady(withPagePerfMarker(lazyLoad(r.StyledCustomReportingPage, c => withContexts(withServerContext(c))), 'Route_New_Reporting_UI')))), {\r\n ...layoutConfigs.withoutMenu,\r\n status: { mode: 'hidden' },\r\n tab: { mode: 'hidden' },\r\n subTab: { mode: 'hidden' },\r\n}));\r\nconst StyledBrandSafetyPage = withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.BrandSafetyPage, c => withContexts(withServerContext(c))), 'Route_BrandSafety_VNext')));\r\nconst StyledBrandListsPage = withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledBrandListsPage, c => withFooter(withContexts(withServerContext(c)))), 'Route_BrandLists_VNext')));\r\nconst StyledBrandListsDetailsPage = withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledBrandListsDetailsPage, c => withFooter(withContexts(withServerContext(c)))), 'Route_BrandListDetails_VNext')));\r\n\r\nconst StyledAccountLevelImportTab = withCcJsDataContextProvider(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAccountLevelImportTab, c => withContexts(withServerContext(c))), 'Route_AccountsSummaryImport_VNext')), layoutConfigs.accountSummaryWithoutDate));\r\nconst StyledDimensionsShell = withLegacyContext(withSingleTabLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.DimensionsShell, c => withContexts(withServerContext(c))), 'Route_Dimensions_VNext'))));\r\nconst StyledDimensionsCampaignShell = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.CampaignDimensionShell, c => withContexts(withServerContext(c))), 'Route_AdSchedule_Hour_VNext'))));\r\nconst styledDimensionsCampaignShellWithSubTab = withLegacyContext(withSummaryBarAndTabAndSubTabLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.CampaignDimensionShell, c => withContexts(withServerContext(c))), 'Route_Dimensions_WithSubTab_VNext'))));\r\nconst NegativeKeywordsLists = withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.NegativeKeywordsLists, c => withContexts(withServerContext(c))), 'Route_NegativeKeywordsLists_VNext')), layoutConfigs.withoutDate);\r\nconst NegativeKeywordListsLibrary = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(\r\n r.NegativeKeywordListsLibrary,\r\n c => withContexts(withServerContext(c))\r\n), 'Route_NegativeKeywordListsLibrary_VNext')), { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withoutDate }));\r\nconst StyledAccountsOverview = withPageName(withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withOverviewPerfMarker(overviewPageLoader, 'Route_AccountsOverview_VNext')), layoutConfigs.accountSummary)), 'accounts-overview');\r\nconst StyledAccountsPerformance = withCcJsDataContextProvider(withPageName(withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(performancePageLoader, 'Route_AccountsPerformance_VNext')), layoutConfigs.accountSummary)), 'accounts-summary'));\r\nconst StyledAccountsPerformancePreexecution = withCcJsDataContextProvider(withPageName(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(performancePageLoader, 'Page_Preexecute_accounts-summary')), layoutConfigs.accountSummary), 'accounts-summary'));\r\nconst StyledAccountsManagement = withCcJsDataContextProvider(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledManagement, c => withContexts(withServerContext(c))), 'Route_AccountsManagement_VNext')), layoutConfigs.accountSummaryWithoutDate));\r\nconst StyledAccountsNotifications = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledNotifications, c => withContexts(withServerContext(c))), 'Route_AccountsNotifications_VNext')), layoutConfigs.accountSummaryWithoutDate)));\r\nconst StyledAccountsRequests = withCcJsDataContextProvider(withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledRequests, c => withContexts(withServerContext(c))), 'Route_AccountsRequests_VNext')), layoutConfigs.accountSummaryWithoutDate)));\r\nconst StyledAccountsAuctionInsight = withPageName(withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCompetitionAuctionInsight, c => withContexts(withServerContext(c))), 'Route_AccountsAuctionInsight_VNext')), layoutConfigs.accountSummary)), 'accounts-auction');\r\nconst StyledAccountsCreate = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.AccountCreation, c => withFooter(withContexts(withServerContext(c)))), 'Route_AccountsCreate_VNext'))));\r\nconst StyledBulkTransferAccounts = withCcJsDataContextProvider(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.AccountsTransfer, c => withContexts(withServerContext(c))), 'Route_BulkTransferAccounts_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledPendingTransferRequest = withCcJsDataContextProvider(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.PendingTransferRequest, c => withContexts(withServerContext(c))), 'Route_PendingTransferRequest_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledSendLinkRequest = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.AccountLinking, c => withFooter(withContexts(withServerContext(c)))), 'Route_SendLinkRequest_VNext'))));\r\nconst StyledResendLinkRequest = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.AccountLinking, c => withFooter(withContexts(withServerContext(c)))), 'Route_ResendLinkRequest_VNext'))));\r\nconst StyledBulkUnlinkAccounts = withCcJsDataContextProvider(withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.AccountsUnlinking, c => withFooter(withContexts(withServerContext(c)))), 'Route_BulkUnlinkAccounts_VNext'))));\r\nconst StyledAutomatedRuleOperation = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAutomatedRuleOperation, c => withContexts(withServerContext(c))), 'Route_AutomatedRules_VNext')), layoutConfigs.accountSummaryWithoutDate));\r\nconst StyledAutomatedRuleHistory = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAutomatedRuleHistory, c => withContexts(withServerContext(c))), 'Route_AutomatedRules_VNext')), layoutConfigs.accountSummaryWithoutDate));\r\nconst StyledAutomatedRuleDetail = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAutomatedRuleDetail, c => withContexts(withServerContext(c))), 'Route_AutomatedRules_VNext')), {\r\n ...layoutConfigs.fullScreenWithSummaryBar,\r\n ...layoutConfigs.withoutDate,\r\n}));\r\nconst StyledSettingsForm = withCcJsDataContextProvider(withLegacyContext(withLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledSettingsForm, c => withBingMap(withContexts(withServerContext(c)))), 'Route_Settings_Form_VNext'))), layoutConfigs.withoutDate)));\r\nconst StyledNegativeKeywordsListsDetailsShell = withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.NegativeKeywordListsDetailsPage, c => withContexts(withServerContext(c))), 'Route_NegativeKeywordsListsDetails_Grid_VNext')), layoutConfigs.withoutDate));\r\nconst StyledLabels = withLegacyContext(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledLabels, c => withContexts(withServerContext(c))), 'Route_Labels_VNext'))));\r\nconst StyledCombinations = withLegacyContext(withFullScreenWithSummaryBarAndTabLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledCombinations, c => withContexts(withServerContext(c))), 'Route_Combinations_VNext'))));\r\nconst StyledAssets = withFullScreenWithSummaryBarAndTabLayoutNavRefresh(withLegacyContext(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAssets, c => withContexts(withServerContext(c))), 'Route_Assets_VNext'))));\r\nconst StyledAssetsReport = withLegacyContext(withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAssetsReport, c => withContexts(withServerContext(c))), 'Route_RSA_Assets_VNext'))));\r\nconst StyledScripts = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledScripts, c => withContexts(withServerContext(c))), 'Route_ScriptsPage_VNext')), layoutConfigs.accountSummaryWithoutDate));\r\nconst StyledScriptsEdit = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledScriptsEdit, c => withContexts(withServerContext(c))), 'Route_ScriptsEditPage_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledScriptsHistory = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledScriptsHistory, c => withContexts(withServerContext(c))), 'Route_ScriptsHistoryPage_VNext')), layoutConfigs.accountSummaryWithoutDate));\r\nconst StyledScriptsLogs = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledScriptsLogs, c => withContexts(withServerContext(c))), 'Route_ScriptsLogsPage_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst BulkUploadsShell = withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.BulkUploadsShell, c => withContexts(withServerContext(c))), 'Route_BulkUploads_VNext')), layoutConfigs.accountSummaryWithoutDate);\r\nconst StyledSmartGoogleImportShell = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledSmartGoogleImport, c => withFooter(withContexts(withServerContext(c)))), 'Route_Smart_Google_Import_VNext'))));\r\nconst StyledAmazonImport = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAmazonImport, c => withFooter(withContexts(withServerContext(c)))), 'Route_Amazon_Import_VNext'))));\r\nconst StyledSmartFacebookImportShell = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledSmartFacebookImport, c => withFooter(withContexts(withServerContext(c)))), 'Route_Smart_Facebook_Import_VNext'))));\r\nconst StyledPinterestImport = withCcJsDataContextProvider(withFullScreenWithSummaryBar(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledPinterestImport, c => withFooter(withContexts(withServerContext(c)))), 'Route_Pinterest_Import_VNext'))));\r\nconst StyledOptOutOfMinorsPage = withLayoutNavRefresh(withScope(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledOptOutOfMinorsPage, c => withFooter(withContexts(withServerContext(c)))), 'optOutOfMinors_VNext'))), layoutConfigs.fullScreenWithSummaryBar);\r\nconst StyledAccountOptimizationOverviewPage = withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledQueryInsightsOverviewPage, c => withFooter(withContexts(withServerContext(withProps(c, { insightType: 'AccountOptimization' }))))), 'Route_QueryInsights_Overview_VNext')), layoutConfigs.withoutDate);\r\nconst StyledAccountOptimizationDetailsPage = withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledQueryInsightsDetailsPage, c => withFooter(withContexts(withServerContext(withProps(c, { insightType: 'AccountOptimization' }))))), 'Route_QueryInsights_Details_VNext')));\r\nconst StyledNewOpportunitiesOverviewPage = withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledQueryInsightsOverviewPage, c => withFooter(withContexts(withServerContext(withProps(c, { insightType: 'NewOpportunities' }))))), 'Route_QueryInsights_Overview_VNext')), layoutConfigs.withoutDate);\r\nconst StyledNewOpportunitiesDetailsPage = withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledQueryInsightsDetailsPage, c => withFooter(withContexts(withServerContext(withProps(c, { insightType: 'NewOpportunities' }))))), 'Route_QueryInsights_Details_VNext')));\r\nconst StyledKeywordPlannerPage = withLegacyContext(withLayoutNavRefreshWithTab(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledKeywordPlanner, c => withFooter(withContexts(withServerContext(c)))), 'Route_Campaign_KeywordPlanner_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledAdPreviewPage = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAdPreview, c => withFooter(withContexts(withServerContext(c)))), 'Route_AdPreview_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledAdInsightKeywordPlannerPage = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAdInsightKeywordPlanner, c => withFooter(withContexts(withServerContext(c)))), 'Route_Research_KeywordPlanner_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledAdInsightAdPreviewPage = withLegacyContext(withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAdInsightAdPreview, c => withFooter(withContexts(withServerContext(c)))), 'Route_AdInsightAdPreview_VNext')), layoutConfigs.fullScreenWithSummaryBar));\r\nconst StyledAppAdsAssetGroupsPage = withLegacyContext(withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAppAdsAssetGroupsPage, c => withContexts(withServerContext(c))), 'Route_AppAds_Asset_Group_VNext')), layoutConfigs.withoutDate));\r\nconst StyledUnifiedppAdsAssetGroupsCreationPage = withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUnifiedppAdsAssetGroupsCreationPage, c => withContexts(withServerContext(c))), 'Route_Unified_AppAds_Asset_Group_VNext')), layoutConfigs.withoutDate));\r\nconst StyledAssetGroupsWithPerfPage = withLegacyContext(withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledAssetGroupsPage, c => withContexts(withServerContext(c))), 'Route_Asset_Group_VNext')), layoutConfigs.dateWithoutCompare));\r\nconst StyledAssetGroupEditPage = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledAssetGroupEditPage, c => withContexts(withServerContext(c))), 'Route_AssetGroupEditPage_VNext'))))));\r\nconst StyledAssetGroupCreationPage = withCcJsDataContextProvider(withLegacyContext(withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledAssetGroupCreationPage, c => withContexts(withServerContext(c))), 'Route_AssetGroupCreationPage_VNext'))))));\r\nconst StyledPmaxNorthStarAssetGroupEditPage = withLegacyContext(withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledPmaxNorthStarAssetGroupEditPage, c => withContexts(withServerContext(c))), 'Route_Pmax_NS_Asset_Group_VNext')), layoutConfigs.withoutDate));\r\nconst ListingGroupsShell = withCcJsDataContextProvider(withLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.ListingGroupsShell, c => withContexts(withServerContext(c))), 'Route_Listing_Group_VNext'))));\r\nconst StyledPmaxAssetsPage = withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledPmaxAssetsPage, c => withContexts(withServerContext(c))), 'Route_Assets_Grid_VNext')));\r\nconst StyledPmaxCombinationsPage = withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledPmaxCombinationsPage, c => withContexts(withServerContext(c))), 'Route_Combinations_Grid_VNext')));\r\nconst DefaultLayoutPage = withDefaultLayout(withGlobalErrorView(withPagePerfMarker(Fallback, 'DefaultGlobalErrorView')));\r\nconst SmartCampaignDefaultLayoutPage = withoutMenuLayout(withGlobalErrorView(Fallback));\r\n\r\nconst AccountsOverviewPagePreexecuteContainer = withPermissions(withAccountsSiteMap(withAppPerfMarker(withPreexecute(StyledAccountsOverview, [\r\n StyledAccountsPerformancePreexecution,\r\n]))));\r\nconst OverviewPagePreexecuteContainer = withPermissions(withCampaignSiteMap(withAppPerfMarker(withPreexecute(StyledOverviewPage, [\r\n StyledCampaignsPreexecution, StyledAdGroupsPreexecution, StyledPositiveKeywordsPreexecution, StyledAdsPreexecution,\r\n]))));\r\nconst CampaignsPagePreexecuteContainer = withPermissions(withCampaignSiteMap(withAppPerfMarker(withPreexecute(StyledCampaigns, [\r\n StyledAdGroupsPreexecution, StyledPositiveKeywordsPreexecution, StyledAdsPreexecution,\r\n]))));\r\n\r\nconst StyledLiftMeasurementPage = withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledLiftMeasurementPage, c => withFooter(withContexts(withServerContext(c))), 'Route_LiftMeasurement_VNext'))), {\r\n ...layoutConfigs.fullScreen,\r\n ...layoutConfigs.withoutDate,\r\n});\r\n\r\nconst StyledLiftMeasurementCreatePage = withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledLiftMeasurementCreatePage, c => withFooter(withContexts(withServerContext(c))), 'Route_LiftMeasurementCreate_VNext'))), {\r\n ...layoutConfigs.fullScreen,\r\n ...layoutConfigs.withoutDate,\r\n});\r\n\r\nconst StyledLiftMeasurementEditPage = withFullScreenLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledLiftMeasurementEditPage, c => withFooter(withContexts(withServerContext(c))), 'Route_LiftMeasurementEdit_VNext'))), {\r\n ...layoutConfigs.fullScreen,\r\n ...layoutConfigs.withoutDate,\r\n});\r\n\r\nconst StyledLiftMeasurementResultsPage = withLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledLiftMeasurementResultsPage, c => withFooter(withContexts(withServerContext(c))), 'Route_LiftMeasurementResults_VNext'))), {\r\n ...layoutConfigs.fullScreen,\r\n ...layoutConfigs.withoutDate,\r\n});\r\n\r\n// Asset Library page\r\nconst CreativeStudioAssetLibraryPageWithMenu = withLayoutNavRefresh(\r\n withGlobalErrorView(withPagePerfMarker(\r\n lazyLoad(r.CreativeStudioAssetLibraryPage, c => withFooter(withContexts(withServerContext(c)))),\r\n 'Route_CreativeStudioAssetLibrary_VNext'\r\n )),\r\n layoutConfigs.withMenuOnly\r\n);\r\n\r\n// Ads Studio page\r\nconst AdsStudioPageWithMenu = withClipchampPlayer(withLayoutNavRefreshNoMenu(\r\n withGlobalErrorView(withPagePerfMarker(\r\n lazyLoad(r.AdsStudioPage, c => withFooter(withContexts(withServerContext(c)))),\r\n 'Route_AdsStudio_VNext'\r\n )),\r\n layoutConfigs.fullScreenWithSummaryBar\r\n));\r\n\r\nconst CampaignBudgetToolPage = withCcJsDataContextProvider(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(\r\n lazyLoad(r.CampaignBudgetToolPage, c => withFooter(withContexts(withServerContext(c)))),\r\n 'Route_CampaignBudgetToolPage_VNext',\r\n false\r\n))));\r\n\r\nconst BudgetCenterPage = withCcJsDataContextProvider(withFullScreenWithSummaryBarNavRefresh(withGlobalErrorView(withPagePerfMarker(\r\n lazyLoad(r.BudgetCenterPage, c => withFooter(withContexts(withServerContext(c))), true),\r\n 'Route_BudgetCenterPage_VNext',\r\n false\r\n))));\r\n\r\nconst BudgetCenterPageWithMenuBar = withCcJsDataContextProvider(withSummaryBarAndTabNoDateLayoutNavRefresh(withGlobalErrorView(withPagePerfMarker(\r\n lazyLoad(r.BudgetCenterPage, c => withFooter(withContexts(withServerContext(c))), true),\r\n 'Route_BudgetCenterPage_VNext',\r\n false\r\n))));\r\n\r\nconst StyledUnifiedAppAdsCampaignsPage = withFullScreenLayout(withGlobalErrorView(withInstrumentation(withPagePerfMarker(lazyLoad(r.StyledUnifiedAppAdsCampaignPage, c => withBingMap(withContexts(withServerContext(c)))), 'Route_UnifieddAppCampaignPage'))));\r\nconst StyledUnifiedAppAdsAssetsPage = withDefaultLayout(withGlobalErrorView(withPagePerfMarker(lazyLoad(r.StyledUnifiedAppAdsAssetsPage, c => withBingMap(withContexts(withServerContext(c)))), 'Route_UnifieddAppAdsAssetsPage')));\r\n\r\nappRoutesInitPerfMarker.done();\r\n\r\nconst AppContent = (props) => {\r\n const currentRoute = window.location.pathname.toLowerCase();\r\n if (currentRoute !== '/campaign/vnext' &&\r\n currentRoute !== '/campaign/vnext/accounts' &&\r\n (!props.permissions.dynamic.UnifiedProductPhase2 || currentRoute !== '/campaign/vnext/accounts/overview') &&\r\n firstRoute === '') {\r\n firstRoute = currentRoute;\r\n }\r\n\r\n // As of now, page ready would be resolved by Overview and Campaign pages only, for other routes resolve page ready.\r\n if (!isPageReadyResolved && firstRoute !== '') {\r\n if (firstRoute !== currentRoute || !isLandingPage()) {\r\n PageReady.pageIsReady();\r\n isPageReadyResolved = true;\r\n } else {\r\n _.delay(() => {\r\n PageReady.pageIsReady();\r\n isPageReadyResolved = true;\r\n }, pageReadyTimeout);\r\n }\r\n }\r\n\r\n const chooseGoogleImportRoute = () => {\r\n if (props.scope.values.aid) {\r\n return props.permissions.IsSmartImportEnabled ? StyledSmartGoogleImportShell : StyledGoogleImport;\r\n }\r\n return props.permissions.IsSmartImportEnabled && props.permissions.IsSmartImportV2Enabled ? StyledSmartGoogleImportShell : StyledMultiAccountGoogleImport;\r\n };\r\n\r\n const uetTagDashboardFeature = () => {\r\n if (props.scope.values.tagId) {\r\n if (props.permissions.dynamic.UETDashboard) {\r\n return props.permissions.dynamic.UETDashboardPhase2 ? StyledUetDashboard : StyledUetTagsDashboard;\r\n }\r\n return StyledUetTags;\r\n }\r\n return props.permissions.dynamic.UETDashboard ? StyledUetAllTagsDashboard : StyledUetTags;\r\n };\r\n\r\n addBadgeForNewFeatures(props.i18n.getString(_TL_('New')));\r\n\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 \r\n {props.permissions.IsVideoAdsForCampaignEnabled && }\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 \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 \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 \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 \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 \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 \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 \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 \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 \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nAppContent.propTypes = {\r\n classes: PropTypes.shape({\r\n container: PropTypes.string,\r\n flexContainer: PropTypes.string,\r\n }),\r\n scope: PropTypes.shape({\r\n values: PropTypes.shape({\r\n aid: PropTypes.number,\r\n campaignId: PropTypes.number,\r\n tagId: PropTypes.number,\r\n }).isRequired,\r\n }).isRequired,\r\n permissions: PropTypes.shape({\r\n IsBAARecommendationsAsyncApplyEnabled: PropTypes.bool,\r\n IsSmartImportEnabled: PropTypes.bool,\r\n IsSmartImportV2Enabled: PropTypes.bool,\r\n IsVideoAdsForCampaignEnabled: PropTypes.bool,\r\n dynamic: PropTypes.shape({\r\n UnifiedProductPhase2: PropTypes.bool,\r\n UETDashboard: PropTypes.bool,\r\n NavigationRefresh: PropTypes.bool,\r\n NavigationRefreshBudgetCenter: PropTypes.bool,\r\n PerformanceMaxAudienceSignalManagementPage: PropTypes.bool,\r\n UETDashboardPhase2: PropTypes.bool,\r\n AdsCopilotChatPhase1: PropTypes.bool,\r\n PAAIMConsolidation: PropTypes.bool,\r\n CTVAndDealToDisplayPlus: PropTypes.bool,\r\n SearchShoppingWizard: PropTypes.bool,\r\n PmaxNorthStarAssetGroupSetting: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nAppContent.defaultProps = {\r\n classes: {},\r\n};\r\n\r\nexport default withScope(withI18nConsumer(withPermissions(React.memo(AppContent))));\r\n","import { useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { WaterfallFilterType } from '@bingads-webui-campaign/filter-storage';\r\nimport { withGlobalFilter } from '@bingads-webui-campaign-react/global-filter-context';\r\nimport {\r\n getFilteredCampaignTypeFromRawFilter,\r\n convertFilteredCampaignTypeToFilter,\r\n CampaignType,\r\n CampaignTypeToStringMap\r\n} from '@bingads-webui-campaign-react/shell-ui-common';\r\nimport { withCurrentExpandedScopeNoFallback } from '@bingads-webui-campaign-react/use-current-scope-entity';\r\n\r\n\r\nconst CampaignTypeUpdater = (props) => {\r\n const { currentCampaign, updateWaterfallFilter, [WaterfallFilterType.CampaignType]: campaignTypeFilter } = props;\r\n const selectedCampaignTypeFilter = useMemo(() => getFilteredCampaignTypeFromRawFilter(campaignTypeFilter), [\r\n campaignTypeFilter,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (selectedCampaignTypeFilter !== CampaignType.All\r\n && currentCampaign && currentCampaign.CampaignType\r\n && CampaignTypeToStringMap[selectedCampaignTypeFilter] !== currentCampaign.CampaignType) {\r\n updateWaterfallFilter({\r\n filterType: WaterfallFilterType.CampaignType,\r\n filter: convertFilteredCampaignTypeToFilter(CampaignType.All),\r\n });\r\n }\r\n }, [currentCampaign, selectedCampaignTypeFilter, updateWaterfallFilter]);\r\n\r\n return null;\r\n};\r\n\r\nCampaignTypeUpdater.defaultProps = {\r\n currentCampaign: null,\r\n};\r\n\r\nCampaignTypeUpdater.propTypes = {\r\n currentCampaign: PropTypes.shape({\r\n CampaignType: PropTypes.string.isRequired,\r\n }),\r\n updateWaterfallFilter: PropTypes.func.isRequired,\r\n};\r\n\r\nconst Component = withGlobalFilter(withCurrentExpandedScopeNoFallback(CampaignTypeUpdater));\r\nexport { Component as CampaignTypeUpdater };\r\n","export const redirectMap = {\r\n 201: 'campaigns',\r\n 202: 'campaign-create-objective',\r\n 203: 'audiences',\r\n 204: 'uet-tag',\r\n 205: 'structuredsnippet',\r\n 206: 'callout',\r\n 207: 'image',\r\n 208: 'review',\r\n 209: 'location',\r\n 210: 'app',\r\n 211: 'call',\r\n 212: 'audiences-library',\r\n 213: 'shared-budgets',\r\n};\r\n","/* istanbul ignore file */\r\n\r\nfunction getNewPath(pathname) {\r\n if (pathname.startsWith('/campaign/vnext/reports/create/')) {\r\n return pathname.replace('/campaign/vnext/reports/create/', '/campaign/vnext/reports-v4/create/');\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/category/')) {\r\n return '/campaign/vnext/reports-v4/default-reports';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/customreports')) {\r\n return '/campaign/vnext/reports-v4/my-reports/customized';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/v2/pollreport/')) {\r\n return '/campaign/vnext/reports-v4/my-reports/customized';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/history')) {\r\n return '/campaign/vnext/reports-v4/my-reports/customized';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/createfromexecuted/')) {\r\n return '/campaign/vnext/reports-v4/my-reports/customized';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/updatetemplate/')) {\r\n return pathname.replace('/campaign/vnext/reports/updatetemplate/', '/campaign/vnext/reports-v4/edit/');\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/createfromtemplate/')) {\r\n return pathname.replace('/campaign/vnext/reports/createfromtemplate/', '/campaign/vnext/reports-v4/edit/');\r\n }\r\n return '/campaign/vnext/reports-v4/default-reports';\r\n}\r\n\r\nfunction getNewReportingUIPath(pathname) {\r\n if (pathname.startsWith('/campaign/vnext/reports/create/')) {\r\n return pathname.replace('/campaign/vnext/reports/create/', '/campaign/vnext/reports-v4/create/');\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/category/')) {\r\n return '/campaign/vnext/reporting/templates';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/customreports')) {\r\n return '/campaign/vnext/reporting/home';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/v2/pollreport/')) {\r\n return '/campaign/vnext/reporting/home';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/history')) {\r\n return '/campaign/vnext/reporting/home';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/createfromexecuted/')) {\r\n return '/campaign/vnext/reporting/home';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/updatetemplate/')) {\r\n return pathname.replace('/campaign/vnext/reports/updatetemplate/', '/campaign/vnext/reports-v4/edit/');\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports/createfromtemplate/')) {\r\n return pathname.replace('/campaign/vnext/reports/createfromtemplate/', '/campaign/vnext/reports-v4/edit/');\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports-v4/default-reports')) {\r\n return '/campaign/vnext/reporting/templates';\r\n }\r\n if (pathname.startsWith('/campaign/vnext/reports-v4/my-reports/customized')) {\r\n return '/campaign/vnext/reporting/home';\r\n }\r\n return '/campaign/vnext/reporting/home';\r\n}\r\n\r\nexport function isLegacyReportingUrl(pathname, isNewReportingUI) {\r\n if (isNewReportingUI) {\r\n return pathname.startsWith('/campaign/vnext/reports') ||\r\n pathname.startsWith('/campaign/vnext/reports-v4/default-reports') ||\r\n pathname.startsWith('/campaign/vnext/reports-v4/my-reports/customized');\r\n }\r\n return pathname.startsWith('/campaign/vnext/reports') && !pathname.startsWith('/campaign/vnext/reports-v4');\r\n}\r\n\r\nexport function redirectReportingUrl(pathname, history, isNewReportingUI) {\r\n history.replace({\r\n pathname: isNewReportingUI ? getNewReportingUIPath(pathname) : getNewPath(pathname),\r\n search: history.location.search,\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport Uri from 'urijs';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { QueryParam, withScope } from '@bingads-webui-react/scope-service';\r\nimport { getPathName } from '@bingads-webui-campaign-react/page-menu';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withSettingsConsumer } from '@bingads-webui-react/settings-context';\r\nimport { withDefaultLandingPage } from '@bingads-webui-campaign-react/with-default-landing-page';\r\nimport { withCurrentExpandedScopeNoFallback } from '@bingads-webui-campaign-react/use-current-scope-entity';\r\nimport {\r\n withSiteMap,\r\n processorSet,\r\n findSiteMap,\r\n Scope,\r\n getCurrentScope,\r\n} from '@bingads-webui-campaign-react/with-site-map';\r\nimport { isBillingLinkPermission } from '@bingads-webui/multi-agency-utils';\r\nimport { redirectMap } from './redirects';\r\nimport { isLegacyReportingUrl, redirectReportingUrl } from './redirect-reporting-url';\r\nimport { withTopTwoCampaigns } from '../data-fetch/with-top-two-campaigns';\r\n\r\nclass FallbackUpdater extends React.PureComponent {\r\n static getDerivedStateFromProps({ siteMap }) {\r\n return { siteMap };\r\n }\r\n\r\n state = {\r\n siteMap: [],\r\n };\r\n\r\n componentDidMount() {\r\n this.checkFallback();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.checkFallback();\r\n }\r\n\r\n getDefaultRedirectPageId = () => {\r\n const { defaultLandingPage, scope } = this.props;\r\n const {\r\n values: {\r\n tabredirectid: tabRedirectId,\r\n },\r\n } = scope;\r\n\r\n // if tabredirectid is provide, get default landing page with redirects maps\r\n // redirects maps should be consist /StaticResources/Advertiser/StaticResourcesWeb/Application/Scripts/module/app/router/redirects\r\n return tabRedirectId && _.has(redirectMap, tabRedirectId) ? redirectMap[tabRedirectId] : defaultLandingPage;\r\n };\r\n\r\n findPageById = id => findSiteMap(this.state.siteMap, node => node.id === id);\r\n\r\n gotoPage = (pageItem) => {\r\n if (!_.isEmpty(pageItem)) {\r\n const { scope: { history } } = this.props;\r\n const uri = new Uri(pageItem.route);\r\n history.replace({\r\n pathname: uri.is('absolute') ? pageItem.route : getPathName(pageItem),\r\n search: history.location.search,\r\n });\r\n }\r\n };\r\n\r\n gotoPageById = _.compose(this.gotoPage, this.findPageById);\r\n\r\n fallbackToDefaultPage() {\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 location: {\r\n pathname,\r\n },\r\n history,\r\n },\r\n currentCampaign,\r\n currentAdGroup,\r\n permissions,\r\n settingsContext,\r\n } = this.props;\r\n const currentScope = getCurrentScope(campaignId, adGroupId, aid, storeId, feedId);\r\n const isNewReportingUI = _.get(permissions, ['dynamic', 'CustomReports']);\r\n\r\n if (!_.get(permissions, 'IsInternalUser') && isBillingLinkPermission(settingsContext)) {\r\n this.gotoPageById('unaccessible');\r\n // For smart-campaigns, it will be the only option, so always fallback to it\r\n } else if (_.findWhere(this.state.siteMap, { id: 'smart-campaigns' })\r\n // budget center can be accessed by smart campaign\r\n && !pathname.toLowerCase().startsWith('/campaign/vnext/budgetcenter')) {\r\n this.gotoPageById('smart-campaigns');\r\n } else if (pathname.startsWith('/campaign/vnext/merchantcenter')) {\r\n let validSiteMapItem;\r\n if (Scope.Store === currentScope) {\r\n validSiteMapItem = this.findPageById('mmc-store-summary-productissues');\r\n } else {\r\n validSiteMapItem = this.findPageById('merchant-center');\r\n }\r\n this.gotoPage(validSiteMapItem);\r\n } else /* istanbul ignore next */ if (isLegacyReportingUrl(pathname, isNewReportingUI)) {\r\n redirectReportingUrl(pathname, history, isNewReportingUI);\r\n } else if (pathname.startsWith('/campaign/vnext/extensions')) {\r\n const extenionsPage = this.findPageById('extensions');\r\n if (extenionsPage) {\r\n this.gotoPage(extenionsPage);\r\n } else {\r\n this.gotoPageById(this.getDefaultRedirectPageId());\r\n }\r\n } else if (Scope.AdGroup === currentScope) {\r\n const { CampaignType } = currentCampaign;\r\n if (CampaignType === 'Shopping') {\r\n const productGroupsPageItem = this.findPageById('product-groups');\r\n this.gotoPage(productGroupsPageItem);\r\n } else if (CampaignType === 'Hotel') {\r\n let hotelGroupsPageItem = this.findPageById('hotel-groups');\r\n const IsRenameHotelToLodgingEnabled = _.get(permissions, ['dynamic', 'IsRenameHotelToLodgingEnabled']);\r\n if (IsRenameHotelToLodgingEnabled) {\r\n hotelGroupsPageItem = this.findPageById('property-groups');\r\n }\r\n this.gotoPage(hotelGroupsPageItem);\r\n } else if (CampaignType === 'PerformanceMax') {\r\n const assetGroupsPageItem = this.findPageById('asset-groups');\r\n this.gotoPage(assetGroupsPageItem);\r\n } else if (_.result(currentAdGroup, 'AdGroupType') === 'SearchDynamic') {\r\n this.gotoPageById('dsa');\r\n } else {\r\n const keywordPageItem = this.findPageById('keywords');\r\n if (keywordPageItem) {\r\n this.gotoPage(keywordPageItem);\r\n } else {\r\n this.gotoPageById('ads-and-extensions');\r\n }\r\n }\r\n } else if (Scope.Campaign === currentScope) {\r\n this.gotoPageById('overview'); // Campaign Overview\r\n } else if (Scope.Account === currentScope) {\r\n this.gotoPageById(this.getDefaultRedirectPageId());\r\n } else {\r\n this.gotoPageById('accounts');\r\n }\r\n }\r\n\r\n checkScopeIds({ currentCampaign, currentAdGroup, scope }) {\r\n let scopeChanged = false;\r\n if (scope.values && scope.values.campaignId && !currentCampaign) {\r\n scope.remove('campaignId');\r\n scopeChanged = true;\r\n }\r\n if (scope.values && scope.values.adGroupId && !currentAdGroup) {\r\n scope.remove('adGroupId');\r\n scopeChanged = true;\r\n }\r\n if (scopeChanged) {\r\n scope.history.replace({\r\n pathname: scope.location.pathname,\r\n search: scope.stringify(),\r\n });\r\n }\r\n }\r\n\r\n checkFallback() {\r\n if (!_.findWhere(this.state.siteMap, { selected: true })) {\r\n this.fallbackToDefaultPage();\r\n return;\r\n }\r\n const { scope, topTwoCampaigns } = this.props;\r\n const topTwoCampaignsValue = _.get(topTwoCampaigns, 'value', []);\r\n // Redirect from all campaigns overview to single campaign overview if PMaxLite pilot is enabled and only one campaign\r\n if (!_.get(scope, ['values', 'campaignId'], false)\r\n && _.size(topTwoCampaignsValue) === 1\r\n && _.get(_.first(topTwoCampaignsValue), 'CampaignType') === 'PerformanceMax'\r\n && _.findWhere(this.state.siteMap, { selected: true, route: 'overview' })) {\r\n scope.set({ ...scope.values, campaignId: _.get(_.first(topTwoCampaignsValue), 'Id') });\r\n scope.history.replace({\r\n pathname: scope.location.pathname,\r\n search: scope.stringify(),\r\n });\r\n return;\r\n }\r\n\r\n this.checkScopeIds(this.props);\r\n }\r\n\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nFallbackUpdater.defaultProps = {\r\n defaultLandingPage: null,\r\n currentCampaign: null,\r\n currentAdGroup: null,\r\n};\r\n\r\nFallbackUpdater.propTypes = {\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n defaultLandingPage: PropTypes.string,\r\n currentCampaign: PropTypes.shape({\r\n CampaignType: PropTypes.string.isRequired,\r\n }),\r\n currentAdGroup: PropTypes.shape({}),\r\n topTwoCampaigns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n permissions: PropTypes.shape({}).isRequired,\r\n settingsContext: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport const FallbackUpdaterWithDefaultLandingPage = _.compose(\r\n withPermissions,\r\n withSettingsConsumer,\r\n withCurrentExpandedScopeNoFallback,\r\n WrappedComponent => withSiteMap(WrappedComponent, processorSet.all),\r\n withScope,\r\n withTopTwoCampaigns,\r\n withDefaultLandingPage\r\n)(FallbackUpdater);\r\n","import _ from 'underscore';\r\nimport React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\nimport { getEntityFromScope } from '@bingads-webui/edm-campaign';\r\nimport { isBillingLinkPermission } from '@bingads-webui/multi-agency-utils';\r\n\r\nexport const withTopTwoCampaigns = (WrappedComponent) => {\r\n const Wrapper = (props) => {\r\n const { permissions, scope = {}, settingsContext } = props;\r\n const [topTwoCampaigns, setTopTwoCampaigns] = useState();\r\n useEffect(() => {\r\n if (!_.get(permissions, 'IsInternalUser') && isBillingLinkPermission(settingsContext)) {\r\n setTopTwoCampaigns([]);\r\n } else {\r\n const { currentAccount } = getEntityFromScope(scope);\r\n if (_.isFunction(_.get(currentAccount, ['Campaigns', 'get']))) {\r\n currentAccount.Campaigns\r\n .get({ top: 2, skip: 0, select: ['Id', 'CampaignType'] })\r\n .subscribe({\r\n next: c => setTopTwoCampaigns(c),\r\n error: setTopTwoCampaigns([]),\r\n });\r\n }\r\n }\r\n }, [scope, permissions, settingsContext]);\r\n\r\n return ();\r\n };\r\n\r\n Wrapper.propTypes = {\r\n scope: PropTypes.shape({}).isRequired,\r\n permissions: PropTypes.shape({}).isRequired,\r\n settingsContext: PropTypes.shape({}).isRequired,\r\n };\r\n Wrapper.displayName = `withCurrentCampaign(\r\n ${getDisplayName(WrappedComponent)}\r\n )`;\r\n\r\n hoistNonReactStatics(Wrapper, WrappedComponent);\r\n return Wrapper;\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withSiteMap, processor, findSiteMap, siteMapPropType } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { DefaultScopeProvider } from '@bingads-webui-react/scope-service';\r\nimport { Scope } from '@bingads-webui-campaign-react/shell-ui-common';\r\n\r\nconst ScopeProviderInternal = (props) => {\r\n const {\r\n defaultScope, siteMap, permissions, ...others\r\n } = props;\r\n\r\n // if current page supports customer scope, no need to auto-fill aid\r\n const customerScopedItem = findSiteMap(siteMap, (mapItem) => {\r\n if (mapItem.selected) {\r\n const itemScope = _.isFunction(mapItem.scope) ? mapItem.scope(permissions) : mapItem.scope;\r\n return itemScope.indexOf(Scope.Customer) > -1;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n const scope = _.isEmpty(customerScopedItem) ? defaultScope : _.omit(defaultScope, 'aid');\r\n\r\n return ();\r\n};\r\n\r\nScopeProviderInternal.propTypes = {\r\n defaultScope: PropTypes.objectOf(PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ])),\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\nScopeProviderInternal.defaultProps = {\r\n defaultScope: {},\r\n};\r\n\r\nexport const ScopeProvider = withPermissions(withSiteMap(React.memo(ScopeProviderInternal), [processor.processPath]));\r\n","import { useContext, useRef, useEffect, useState } from 'react';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\n\r\nimport URI from 'urijs';\r\n\r\n/**\r\n * A simple hook to store a vairable's value for compare use\r\n * TODO: move this hook to a shared place\r\n * @param {any} value the value to get its previous version\r\n * @returns {any} previous value\r\n */\r\nconst usePrevious = (value) => {\r\n const ref = useRef();\r\n\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]);\r\n\r\n return ref.current;\r\n};\r\n\r\n/**\r\n * A wrapper to detect scope changes that requires full page refresh to solve the context mismatch issue\r\n * TODO: Move this logic to Router level or Remove after context could dynamically update\r\n * @param {Props} Props only children\r\n * @returns {ReactNode} rendered result\r\n */\r\nexport const ScopeSwitchingReloader = ({ children }) => {\r\n const { scope } = useContext(ScopeContext);\r\n\r\n // As the DOM update and full page refresh are run in parallel\r\n // If we decide to do FPR, disable children content update to make the transition smoother\r\n const [passing, setPassing] = useState(true);\r\n\r\n const {\r\n values: { cid, aid } = {},\r\n } = scope;\r\n\r\n const prevCid = usePrevious(cid);\r\n const prevAid = usePrevious(aid);\r\n\r\n\r\n useEffect(() => {\r\n // when the page is loaded in browser, all values from usePrevious hook will be undefined\r\n const isFirstLoaded = !prevAid && !prevCid;\r\n if (\r\n !isFirstLoaded &&\r\n (prevCid !== cid || prevAid !== aid)\r\n ) {\r\n setPassing(false);\r\n window.location.replace(new URI(scope.location.pathname).search(scope.stringify()).toString());\r\n }\r\n }, [aid, cid, prevAid, prevCid, scope]);\r\n\r\n return passing ? children : null;\r\n};\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from '@bingads-webui-campaign-react/router';\r\n\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\n\r\n// component help refresh the page on route change and we have a new version deployed.\r\nclass NewVersionReloaderInternal extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n shouldReload: false,\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n eventDispatcher.on('new-version-available', () => {\r\n this.setState({\r\n shouldReload: true,\r\n });\r\n });\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if ((this.props.location.pathname !== prevProps.location.pathname) && this.state.shouldReload) {\r\n this.fullPageRefresh();\r\n }\r\n };\r\n\r\n fullPageRefresh = () => {\r\n window.location.reload();\r\n\r\n this.setState({\r\n shouldReload: false,\r\n });\r\n }\r\n\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\n\r\nNewVersionReloaderInternal.propTypes = {\r\n location: PropTypes.shape({\r\n pathname: PropTypes.string,\r\n }).isRequired,\r\n};\r\n\r\n\r\nexport const NewVersionReloader = withRouter(NewVersionReloaderInternal);\r\n\r\n","import _ from 'underscore';\r\nimport { getEntityFromScope } from '@bingads-webui/edm-campaign';\r\nimport { setCampaignTypes } from '@bingads-webui-campaign-react/with-campaign-type';\r\n\r\nconst initCampaignTypes = ({ currentAccount }, { campaignTypes }) => {\r\n if (!_.isEmpty(currentAccount) && !_.isEmpty(campaignTypes)) {\r\n currentAccount['Default.CampaignTypes'].$makeCall({\r\n hardResetData: {\r\n value: campaignTypes.split(','),\r\n },\r\n });\r\n }\r\n};\r\n\r\nconst initSingleCampaign = ({ currentCampaign }, campaign) => {\r\n if (!_.isEmpty(currentCampaign) && !_.isEmpty(campaign)) {\r\n currentCampaign.get({}, campaign);\r\n }\r\n};\r\n\r\nconst initTopTwoCampaigns = ({ currentAccount }, campaigns) => {\r\n if (!_.isEmpty(currentAccount) && !_.isEmpty(campaigns)) {\r\n currentAccount.Campaigns.get({ top: 2, skip: 0, select: ['Id', 'CampaignType'] }, { value: campaigns });\r\n }\r\n};\r\n\r\nexport const initOdataCache = (serverContext) => {\r\n const {\r\n CurrentCustomer: { Id: cid },\r\n CurrentAccount: { Id: aid },\r\n ODataPrefetchResult,\r\n } = serverContext;\r\n let campaigns = [];\r\n if (_.get(serverContext, ['ODataPrefetchResult', 'topTwoCampaigns'], false)) {\r\n campaigns = _.isEmpty(serverContext.ODataPrefetchResult.topTwoCampaigns) ? [] : JSON.parse(serverContext.ODataPrefetchResult.topTwoCampaigns);\r\n setCampaignTypes(campaigns);\r\n }\r\n let campaignId;\r\n if (_.size(campaigns) === 1) {\r\n campaignId = _.get(_.first(campaigns), 'Id');\r\n }\r\n\r\n const entities = getEntityFromScope({ values: { cid, aid, campaignId } });\r\n\r\n initCampaignTypes(entities, ODataPrefetchResult);\r\n initTopTwoCampaigns(entities, campaigns);\r\n\r\n const campaignString = _.get(serverContext, ['ODataPrefetchResult', 'campaign'], '');\r\n const campaign = _.isEmpty(campaignString) ? null : JSON.parse(campaignString);\r\n if (!_.isEmpty(campaign) && _.get(campaign, 'Id')) {\r\n initSingleCampaign(getEntityFromScope({ values: { cid, aid, campaignId: campaign.Id } }), campaign);\r\n }\r\n\r\n if (campaignId && campaignId !== _.get(campaign, 'Id')) {\r\n initSingleCampaign(entities, _.first(campaigns));\r\n }\r\n};\r\n","import _ from 'underscore';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { LayoutContext, layoutConfigs, withLayout } from '@bingads-webui-react/app-layout-container';\r\nimport { useEffect, useContext } from 'react';\r\n\r\n\r\nconst LayoutSwitchInner = () => {\r\n const location = useLocation();\r\n const params = new URLSearchParams(location.search);\r\n const layout = params.get('layout');\r\n const { change } = useContext(LayoutContext);\r\n useEffect(() => {\r\n if (layout && layoutConfigs[layout]) {\r\n change(layoutConfigs[layout], undefined, undefined, _.noop, true);\r\n }\r\n }, [layout, change]);\r\n\r\n return null;\r\n};\r\n\r\nexport const LayoutSwitch = withLayout(LayoutSwitchInner);\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { jss } from 'react-jss';\r\nimport { App } from '@bingads-webui-react/app';\r\nimport { Router, withRouter } from '@bingads-webui-campaign-react/router';\r\nimport { PermissionsContext } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { LayoutContainer, Layout, OverlayComponent } from '@bingads-webui-react/app-layout-container';\r\nimport { UserContext } from '@bingads-webui-react/user-context';\r\nimport { SettingsContext } from '@bingads-webui-react/settings-context';\r\nimport { PopupContextProvider } from '@bingads-webui-react/popup-manager';\r\nimport { MultiStepTeachingBubbleContextProvider } from '@bingads-webui-campaign-react/multi-step-teaching-bubble';\r\nimport { Observable } from '@bingads-webui-universal/observable';\r\nimport { GlobalFilterContextProvider } from '@bingads-webui-campaign-react/global-filter-context';\r\nimport { GlobalContextReceiver } from '@bingads-webui-campaign/global-context-store';\r\nimport { withSiteMap, processor, navRefreshSiteMap } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { processorSet } from '@bingads-webui-react/with-site-map';\r\nimport { withPageReadyAsync } from '@bingads-webui-react/with-page-ready';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\nimport { createGenerateId } from '@bingads-webui-campaign-react/custom-jss-config';\r\nimport {\r\n CampaignMainMenuPlaceholder,\r\n CampaignPageMenuPlaceholder,\r\n SummaryBarPlaceholder,\r\n GlobalMenueWrapperPlaceholder,\r\n NewGlobalMenueWrapperPlaceholder,\r\n PrimaryNavigationPlaceholder,\r\n SecondaryNavigationPlaceholder,\r\n ScopePanelPlaceholder,\r\n} from '@bingads-webui-campaign-react/shell-ui-common';\r\nimport { isSDK } from '@bingads-webui-campaign-react/sdk-utils';\r\nimport { getDisplayMode, DisplayMode } from '@bingads-webui-campaign-react/display-mode';\r\nimport { WebViewContextProvider } from '@bingads-webui-campaign-react/webview-context';\r\nimport { ServerContext, withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { I18nModel } from '@bingads-webui-universal/i18n-model';\r\nimport { getGlobalErrorOptions, withComponentErrorLogging } from '@bingads-webui-campaign-react/global-error-options';\r\nimport { isNavigationRefreshOn } from '@bingads-webui-react/preference-utility';\r\nimport { AdsCopilotContextProvider } from '@bingads-webui-react/msa-copilot-common';\r\nimport { ToastProvider } from '@bingads-webui-fluent-component/toast-provider';\r\n\r\nimport AppContent from './components/app-content';\r\nimport { CampaignTypeUpdater } from './components/campaign-type-filter-updater';\r\nimport { FallbackUpdaterWithDefaultLandingPage } from './components/fallback-updater';\r\nimport { AppPerfMarker, withAppPerfMarker } from './contexts/app-perfmarker-context';\r\nimport { ScopeProvider } from './components/scope-provider';\r\nimport { ScopeSwitchingReloader } from './components/scope-switching-reloader';\r\nimport { NewVersionReloader } from './components/new-version-reloader';\r\nimport { initOdataCache } from './global-init/init-odata-cache';\r\nimport { initSettingsContext } from './global-init/init-settings-context';\r\nimport i18n from './main.l10n';\r\nimport { withDFMProvider } from './data-fetch/with-dfm';\r\nimport { themes } from './themes-config';\r\nimport { configs as teachingBubbleConfigs } from './components/teaching-bubble/teaching-bubble-config';\r\nimport { LazySDKAppWrapper } from './sdk/dynamic-routes';\r\nimport { setTestContext } from './test-context-side-effect';\r\nimport { LayoutSwitch } from './components/layout-switch';\r\n\r\nrequire.context('@bingads-webui/theme-2018/dist/static/media');\r\nrequire.context('@bingads-webui-react/feature-adoption-coupon/dist/static/media');\r\nrequire.context('@bingads-webui-react/rich-text-editor/dist/static/media');\r\n\r\nconst isSDKView = isSDK();\r\nconst displayMode = getDisplayMode();\r\nconst appName = new URLSearchParams(document.location.search).get('applicationName');\r\nconst shouldShowFallbackUpdater = appName ? !appName.includes('BingAdsEditor') : true;\r\nconst LayoutContainerWithRouter = withDFMProvider(withRouter(LayoutContainer));\r\nconst WrappedGlobalContextReceiver = withSiteMap(withServerContext(GlobalContextReceiver), [processor.processPermissions, processor.processPath]);\r\nconst navRefreshProcessorSet = [\r\n processor.processImportCenterMode,\r\n processor.processMixedModeAdGroup,\r\n processor.processGlobalFilter,\r\n processor.processCampaignType,\r\n processor.processCampaignId,\r\n processor.processSmartCampaign,\r\n processor.processSmartShoppingCampaign,\r\n processor.processHotelCampaign,\r\n processor.processPmaxCampaignPageMenu,\r\n processor.processPmaxRetailCampaignPageMenu,\r\n processor.processCcuiContext,\r\n processor.processMMCMenu,\r\n processor.processCopilotRegionRestriction,\r\n ...processorSet.navRefresh,\r\n];\r\n\r\nconst DRAFT_ACCOUNT_STATUS = 30;\r\n\r\nconst getDelayedTopBannerComponent = ({\r\n getTopBannerLayout,\r\n getStoreInstance,\r\n DisapprovedEntities,\r\n ImportStatus,\r\n NoEntityNotifications,\r\n PredefinedNotifications,\r\n UETNotifications,\r\n CCNotifications,\r\n ImportNotification,\r\n DraftStoreNotification,\r\n PmaxCampaignUpgradeNotification,\r\n LocationIntentUpdateNotifications,\r\n HotelCenterMigrationNotification,\r\n HotelCenterMigrationPhase2Notification,\r\n HotelCenterMigrationPhase3Notification,\r\n BroadOnlyNotification,\r\n GMCTokenExpiredNotification,\r\n DeprecateSyndicationSearchOnlyNotification,\r\n}) => {\r\n const getNotifications = context => [\r\n new PredefinedNotifications(context).getPredefinedAlerts(),\r\n new DisapprovedEntities(context).getDisapprovedEntityNotifications(),\r\n new ImportStatus(context).getImportStatusNotifications(),\r\n new NoEntityNotifications(context).getNoEligibleEntityNotifications(),\r\n new UETNotifications(context).getUETNotifications(),\r\n new CCNotifications(context).getCCNotifications(),\r\n new ImportNotification(context).getImportNotifications(),\r\n new DraftStoreNotification(context).getDraftStoreNotifications(),\r\n new PmaxCampaignUpgradeNotification(context).getPmaxCampaignUpgradeNotifications(),\r\n new LocationIntentUpdateNotifications(context).getLocationIntentUpdateNotifications(),\r\n new HotelCenterMigrationPhase3Notification(context).getHotelCenterMigrationPhase3Notifications(),\r\n new HotelCenterMigrationPhase2Notification(context).getHotelCenterMigrationPhase2Notifications(),\r\n new HotelCenterMigrationNotification(context).getHotelCenterMigrationNotifications(),\r\n new BroadOnlyNotification(context).getBroadOnlyNotifications(),\r\n new GMCTokenExpiredNotification(context).getAlerts(),\r\n new DeprecateSyndicationSearchOnlyNotification(context).getDeprecateSyndicationSearchOnlyNotifications(),\r\n ];\r\n\r\n const store = getStoreInstance({ getNotifications });\r\n store.refresh();\r\n\r\n return {\r\n default: getTopBannerLayout(store),\r\n };\r\n};\r\n\r\nconst DelayedTopBanner = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/notification-center')\r\n .then(getDelayedTopBannerComponent));\r\n\r\nconst DelayedMainMenu = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/main-menu-container')\r\n .then(({ MainMenuContainer }) => ({\r\n default: MainMenuContainer,\r\n })), CampaignMainMenuPlaceholder);\r\n\r\nconst DelayedAfterPageReady = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'./components/after-page-ready')\r\n .then(({ AfterPageReady }) => ({\r\n default: AfterPageReady,\r\n })));\r\n\r\nconst DelayedSummaryBarContainer = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/summary-bar-container')\r\n .then(({ SummaryBarContainer }) => ({\r\n default: SummaryBarContainer,\r\n })), SummaryBarPlaceholder);\r\n\r\nconst DelayedPageMenuContainer = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/page-menu-container')\r\n .then(({ PageMenuContainer }) => ({\r\n default: PageMenuContainer,\r\n })), CampaignPageMenuPlaceholder);\r\n\r\nconst DelayedSubTabContainer = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/sub-tab-container')\r\n .then(({ SubTabContainer }) => ({\r\n default: SubTabContainer,\r\n })), null);\r\n\r\nconst DelayedSubpageMenuContainer = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/sub-page-menu-container')\r\n .then(({ SubpageMenuContainer }) => ({\r\n default: withPreference(withServerContext(SubpageMenuContainer)),\r\n })), null);\r\n\r\nconst LazyDraft = React.lazy(() =>\r\n import(/* webpackMode: 'eager' */'./components/draft-error-page')\r\n .then(({ DraftAccountPageWraper }) => ({\r\n default: DraftAccountPageWraper,\r\n })));\r\n\r\nconst DelayedDraftAccountPage = props => (\r\n \r\n \r\n \r\n);\r\n\r\nconst DelayedNewGlobalMenuWrapper = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'./components/new-global-menu-wrapper')\r\n .then(({ NewGlobalMenuWrapper }) => ({\r\n default: withComponentErrorLogging(NewGlobalMenuWrapper, 'NavigationRefreshGlobalMenu'),\r\n })), NewGlobalMenueWrapperPlaceholder);\r\n\r\nconst DelayedMSAdsCopilotLoader = withPageReadyAsync(() => import(/* webpackMode: 'eager' */ './components/ads-copilot/loader'));\r\n\r\nconst DelayedTeachingBubbleRenderer = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'./components/teaching-bubble/teaching-bubble-renderer')\r\n .then(({ TeachingBubbleRenderer }) => ({\r\n default: TeachingBubbleRenderer,\r\n })));\r\n\r\njss.setup({\r\n createGenerateId,\r\n});\r\n\r\nclass AppRoot extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n const { serverContext, instrumentation, appPerfMarker } = props;\r\n\r\n // the real user context should only contains the user information\r\n this.userContext = {\r\n CurrentUser: serverContext.CurrentUser,\r\n CurrentCustomer: serverContext.CurrentCustomer,\r\n CurrentAccount: serverContext.CurrentAccount,\r\n };\r\n this.isAccountDraft = serverContext.CurrentAccount && serverContext.CurrentAccount.Status === DRAFT_ACCOUNT_STATUS;\r\n\r\n this.globalErrorOptions = getGlobalErrorOptions({\r\n instrumentation,\r\n });\r\n\r\n this.defaultScope = {\r\n uid: serverContext.CurrentUser.Id,\r\n cid: serverContext.CurrentCustomer.Id,\r\n aid: serverContext.CurrentAccount.Id,\r\n };\r\n\r\n this.permissions = {\r\n ...serverContext.Permissions,\r\n dynamic: serverContext.DynamicPermissions || {},\r\n };\r\n\r\n this.settingsContext = initSettingsContext(serverContext, this.permissions);\r\n\r\n // TODO - Temporary marking it done here to verify perf markers and instrumentation in New UI.\r\n const perfLatencies = window.performance ? { SchemaNewLatency: window.performance.SchemaNewLatency, siteMapLatency: window.performance.siteMapLatency } : null;\r\n appPerfMarker.done(perfLatencies);\r\n this.isProdEnv = serverContext.IsProdEnv;\r\n\r\n // warm up client side odata cache with server prefetched odata response\r\n initOdataCache(serverContext);\r\n let onToggleMainMenu = () => { };\r\n this.toggleMainMenuObservable = new Observable((observer) => {\r\n onToggleMainMenu = () => observer.next();\r\n });\r\n this.onHamburgerClicked = () => { onToggleMainMenu(); };\r\n\r\n // logger for popup management\r\n this.logger = instrumentation.popupManagement.create().popupManager.create();\r\n this.teachingBubbleLogger = instrumentation.popupManagement.create().multiStepTeachingBubble.create();\r\n }\r\n\r\n setupI18n() {\r\n const { serverContext } = this.props;\r\n\r\n const defaultFailFast = this.isProdEnv ? 'SAFE' : i18n.failFast;\r\n\r\n i18n.failFast = defaultFailFast;\r\n I18nModel.setDefaultFailFast(defaultFailFast);\r\n\r\n i18n.currency = serverContext.CurrentAccount.CurrencyCode;\r\n\r\n // This is used for private\\ui-next\\packages\\ui-next\\src\\legacy-dep-bootstrap\\require.config.js\r\n window.globalLegacyI18n.main = i18n;\r\n }\r\n\r\n render() {\r\n // Because the messy of dependency graph and side effect, we could not simply introduce the test related side effect at the very first of this bootstrap.js.\r\n // For now, it have to be imported after './legacy-dep-bootstrap/init-legacy-components', to wait for instrumentation setup\r\n // And, we have to set test context everytime when rendering, rather than only setting it once. Because after switching account, window.xxx seems\r\n // to be cleared\r\n // if (window.location.search && window.location.search.includes('E2ETestInjectContext')) {\r\n setTestContext();\r\n // }\r\n\r\n this.setupI18n();\r\n\r\n const DraftAccountPage = this.isAccountDraft ? DelayedDraftAccountPage : React.Fragment;\r\n\r\n const DelayedGlobalMenuWrapper = this.props.serverContext.DynamicPermissions.DelayGlobalMenu\r\n ? withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'./components/global-menu-wrapper')\r\n .then(({ GlobalMenuWrapper }) => ({\r\n default: GlobalMenuWrapper,\r\n })), GlobalMenueWrapperPlaceholder)\r\n : React.lazy(() => import(/* webpackMode: 'eager' */ './components/global-menu-wrapper')\r\n .then(({ GlobalMenuWrapper }) => ({\r\n default: GlobalMenuWrapper,\r\n })));\r\n\r\n const isNavRefresh = isNavigationRefreshOn(this.permissions);\r\n\r\n const DelayedPrimaryNavigation = isNavRefresh && withPageReadyAsync(\r\n () => import(/* webpackMode: 'eager' */'@bingads-webui-react/primary-navigation')\r\n .then(({ PrimaryNavigation }) => ({\r\n default: withComponentErrorLogging(withSiteMap(PrimaryNavigation, navRefreshProcessorSet, navRefreshSiteMap), 'NavigationRefreshPrimaryNavigation'),\r\n })),\r\n PrimaryNavigationPlaceholder\r\n );\r\n\r\n const DelayedSecondaryNavigation = isNavRefresh && withPageReadyAsync(\r\n () => import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/secondary-navigation')\r\n .then(({ SecondaryNavigation }) => ({\r\n default: withComponentErrorLogging(withSiteMap(SecondaryNavigation, navRefreshProcessorSet, navRefreshSiteMap), 'NavigationRefreshSecondaryNavigation'),\r\n })),\r\n SecondaryNavigationPlaceholder\r\n );\r\n\r\n const DelayedScopePanel = isNavRefresh && withPageReadyAsync(\r\n () => import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/scope-panel')\r\n .then(({ ScopePanel }) => ({\r\n default: withComponentErrorLogging(ScopePanel, 'NavigationRefreshScopePanel'),\r\n })),\r\n ScopePanelPlaceholder\r\n );\r\n\r\n const isCouponTeachingBubbleEnabled = _.result(this.props.serverContext, ['DynamicPermissions', 'CouponTeachingBubble'], false);\r\n\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 {isSDKView && (\r\n \r\n \r\n \r\n )}\r\n {!isSDKView && (\r\n \r\n {displayMode === DisplayMode.Shellless && (\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 {displayMode === DisplayMode.Default && (\r\n \r\n \r\n \r\n \r\n {!isNavRefresh && }\r\n {isNavRefresh && }\r\n {/* There is a race condition between the payment banner showing and the TablePageContainer loading.\r\n If the grid loads before the payment banner, the vertical scrollbar will be off by ~36 pixels.\r\n To address this, we recalculate the scrollbar position after the payment banner is shown. */}\r\n \r\n {!isNavRefresh && }\r\n {isNavRefresh && }\r\n {isNavRefresh && }\r\n \r\n {!isNavRefresh && }\r\n {isNavRefresh && }\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 {shouldShowFallbackUpdater && }\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 }\r\n}\r\n\r\nAppRoot.propTypes = {\r\n serverContext: PropTypes.shape({\r\n PageTrackingId: PropTypes.string.isRequired,\r\n CurrentLocale: PropTypes.string.isRequired,\r\n CurrentAccount: PropTypes.shape({\r\n AccountNumber: PropTypes.string,\r\n }),\r\n ServicesEndpoints: PropTypes.shape({\r\n ClientCenterUIAPI: PropTypes.string.isRequired,\r\n }),\r\n }).isRequired,\r\n instrumentation: PropTypes.shape().isRequired,\r\n appPerfMarker: perfMarkerPropTypes.isRequired,\r\n preferenceService: PropTypes.shape().isRequired,\r\n curTheme: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default AppRoot;\r\n","/* eslint-disable no-underscore-dangle */ // we use __ to indicate a private global variable\r\n\r\n// Bundler(webpack, for now) introduces some subtle challenge\r\n// Like every package could only be accessed by webpack itself.\r\n// Seems reasonable, but this means, the tests(run in node) could not use any packages in browser though import statement or expression.\r\n// For example, if you are using playwright:\r\n/**\r\n * const status = await page.evaluate(async () => {\r\n * const somepackage = await import('somePackage');\r\n * // 'somePackage' is used in your application\r\n * // but this will throw an error, because 'somePackage' was taken over by webpack\r\n * });\r\n */\r\n\r\n// So, this introduce a context, which just give a global context under window, so the test could access it directly\r\n// TODO: It's not a best solution, it makes tree shaking workless! Should be removed in future if we have resource to do it.\r\n\r\nimport edmImport from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport jsDataCampaignImport from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport exRepoImport from '@bingads-webui-campaign-legacy/advanced-settings/util/exclusion-repository';\r\nimport * as azurePayloadImport from '@bingads-webui/azure-upload';\r\nimport * as EDMCampaign from '@bingads-webui/edm-campaign';\r\nimport componentStateImport from '@bingads-webui-component-legacy/state/index';\r\nimport legacyOdataImport from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport hotelCenterJsDataImport from '@bingads-webui-campaign-legacy/hotel-center-js-data/index';\r\nimport hotelCenterEDMImport from '@bingads-webui-campaign-legacy/hotel-center-edm/index';\r\nimport legacyPreferenceImport from '@bingads-webui-component-legacy/preference/service/index';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\nimport OdataAdapter from '@bingads-webui-component-legacy/js-data-odata/index';\r\n\r\nexport function setTestContext() {\r\n if (window.__integration_test_packages_escape_hatch__) {\r\n return;\r\n }\r\n\r\n window.__integration_test_packages_escape_hatch__ = {};\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-component-legacy/edm-campaign/index'] = edmImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-component-legacy/js-data-campaign/index'] = jsDataCampaignImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-campaign-legacy/advanced-settings/util/exclusion-repository'] = exRepoImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui/azure-upload'] = azurePayloadImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui/edm-campaign'] = EDMCampaign;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-component-legacy/state/index'] = componentStateImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-component-legacy/http/channel/odata'] = legacyOdataImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-campaign-legacy/hotel-center-js-data/index'] = hotelCenterJsDataImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-campaign-legacy/hotel-center-edm/index'] = hotelCenterEDMImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-component-legacy/preference/service/index'] = legacyPreferenceImport;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-static-legacy/page-context'] = PageContext;\r\n window.__integration_test_packages_escape_hatch__['@bingads-webui-component-legacy/js-data-odata/index'] = OdataAdapter;\r\n}\r\n","/* eslint-disable import/first */\r\nimport './public-path'; // Don't try to re-order this, it needs to be imported before any other modules\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { getInstrumentation, InstrumentationSchema } from '@bingads-webui-campaign/instrumentation-setup';\r\nimport {\r\n OdataErrorMapper,\r\n CampaignApiErrorMapper,\r\n UrlErrorMapper,\r\n odataErrorCodes,\r\n campaignApiErrorCodes,\r\n invalidDomains,\r\n} from '@bingads-webui-campaign/instrumentation';\r\nimport { setCampaignType } from '@bingads-webui-campaign-react/with-campaign-type';\r\nimport { PerfMarkerFactory } from '@bingads-webui/performance-marker';\r\nimport { PreferenceService } from '@bingads-webui/preference-service';\r\nimport { getCldrLocale, setupI18nModel } from '@bingads-webui/i18n-model-setup';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\n\r\nBackbone.$ = $;\r\n\r\nimport { updateDateRange } from '@bingads-webui-campaign-react/update-date-range';\r\nimport { initGlobalService } from './global-init/global-init';\r\nimport { isDFMEnabledForPath } from './data-fetch/is-dfm-enabled-for-path';\r\n\r\nconst landingPagePreference = 'OverviewAsDefaultTab';\r\nconst accountsLandingPagePreference = 'AccountsOverviewAsDefaultTab';\r\n\r\n// This marker would be used to track the pre app start latency.\r\n// Any regression in this latency would impact all landing pages.\r\nwindow.performance.preAppStartMarker = {\r\n eventName: 'ActivityMarker/AppStart.BeforeLoad',\r\n eventStartTime: window.performance.now(),\r\n activeTimeBeforeEventStart: window.performance.activeTime(),\r\n};\r\n\r\n// import registerServiceWorker from './register-service-worker';\r\n\r\n// window.serverContext is specified by the server side through responded HTML.\r\n// To avoid any code depends on window.serverContext directly,\r\n// remove it after passing it to the \r\nconst { serverContext, campaignODataConfigs } = window;\r\n\r\nObject.assign(campaignODataConfigs, {\r\n AdvertiserCustomerID: serverContext.CurrentAccount.AdvertiserCustomerID,\r\n AccountID: serverContext.CurrentAccount.Id,\r\n});\r\ndelete window.serverContext;\r\n\r\n// window.devConfig only exists on local development mode\r\nconst devConfig = window.devConfig || {\r\n isInDevelopmentMode: false,\r\n};\r\n\r\n_.templateSettings = {\r\n interpolate: /\\{\\{(.+?)\\}\\}/g,\r\n};\r\n\r\nconst errorMappers = {\r\n odataErrorMapper: new OdataErrorMapper(odataErrorCodes),\r\n campaignApiErrorMapper: new CampaignApiErrorMapper(campaignApiErrorCodes),\r\n urlErrorMapper: new UrlErrorMapper(invalidDomains),\r\n};\r\n\r\nconst userContext = {\r\n CurrentUser: serverContext.CurrentUser,\r\n CurrentCustomer: serverContext.CurrentCustomer,\r\n CurrentAccount: serverContext.CurrentAccount,\r\n};\r\n\r\nconst appName = new URLSearchParams(document.location.search).get('applicationName');\r\nconst featureName = new URLSearchParams(document.location.search).get('featurename');\r\n\r\nconst instrumentation = getInstrumentation({\r\n pageTrackingId: serverContext.PageTrackingId,\r\n errorMappers,\r\n isInDevelopmentMode: devConfig.isInDevelopmentMode,\r\n userContext,\r\n applicationName: {\r\n systemName: 'campaign',\r\n subSystemName: 'webui',\r\n },\r\n serverContext,\r\n ajaxStubOptions: {\r\n applicationName: appName !== null ? appName : undefined,\r\n featureName: featureName !== null ? featureName : undefined,\r\n },\r\n});\r\n\r\ninstrumentation.addScenario(InstrumentationSchema);\r\nconst appActivity = instrumentation.appScenario.create().appActivity.create();\r\n\r\nif (window.performance.preAppStartMarker) {\r\n appActivity.perf(window.performance.preAppStartMarker);\r\n delete window.performance.preAppStartMarker;\r\n}\r\n\r\nif (window.performance.preAppStartLogs) {\r\n const activity = instrumentation.preInstrumentationInitializeScenario.create().perfActivity.create();\r\n window.performance.preAppStartLogs.forEach(({ message, type }) => activity[type](message));\r\n delete window.performance.preAppStartLogs;\r\n}\r\n\r\ndocument.addEventListener('visibilitychange', () => {\r\n appActivity.trace(`Document visibility state changed to:${document.visibilityState}`, 'document-visibility-state');\r\n});\r\n\r\ntry {\r\n const message = JSON.stringify({\r\n devicePixelRatio: window.devicePixelRatio,\r\n clientWidth: document.documentElement.clientWidth,\r\n clientHeight: document.documentElement.clientHeight,\r\n innerWidth: window.innerWidth,\r\n innerHeight: window.innerHeight,\r\n outerWidth: window.outerWidth,\r\n outerHeight: window.outerHeight,\r\n screenWidth: screen.width,\r\n screenHeight: screen.height,\r\n screenAvailWidth: screen.availWidth,\r\n screenAvailHeight: screen.availHeight,\r\n });\r\n\r\n appActivity.trace(message, 'screen-resolution-new-ui');\r\n\r\n // check the proportion of the AuthType\r\n appActivity.trace(`IsAADUser: ${serverContext.IsAADUser}, IsInternalUser: ${(serverContext.CurrentUser && serverContext.CurrentUser.IsInternal)}`, 'AuthType');\r\n} catch (e) {\r\n // Do nothing, this logging is not critical.\r\n}\r\n\r\n\r\nconst appPerfMarker = PerfMarkerFactory.createMarker('ShellPage_WebUI');\r\n\r\nappPerfMarker.willInit();\r\n\r\nconst preferencePerfMarker = appPerfMarker.createChild('Preference_Service_Init');\r\npreferencePerfMarker.willInit();\r\n\r\nPreferenceService.initSync({\r\n initialUserPreferences: serverContext.UserPreferences,\r\n currentUser: serverContext.CurrentUser,\r\n currentCustomer: serverContext.CurrentCustomer,\r\n currentAccount: serverContext.CurrentAccount,\r\n apiHost: serverContext.ServicesEndpoints.CampaignAPI,\r\n apiPath: 'Advertiser/V2',\r\n authToken: serverContext.Token,\r\n});\r\n\r\npreferencePerfMarker.done();\r\n\r\nconst locale = serverContext.CurrentLocale || document.documentElement.lang;\r\nconst cldrLocale = getCldrLocale(locale);\r\n\r\nfunction isDarkTheme(preferenceService) {\r\n if (serverContext.Permissions.IsDarkThemeEnabled) {\r\n const isSystemDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n const themePref = preferenceService.findByName('themePreference');\r\n const themeObj = {\r\n Name: 'themePreference',\r\n Data: '',\r\n };\r\n if (!themePref || !themePref.Data) {\r\n themeObj.Data = 'system';\r\n preferenceService.setAtUserLevel(themeObj);\r\n } else {\r\n themeObj.Data = themePref.Data;\r\n }\r\n return themeObj.Data === 'dark' || (themeObj.Data === 'system' && isSystemDark);\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getTheme(preferenceService) {\r\n if (isDarkTheme(preferenceService)) {\r\n import(/* webpackChunkName: \"index-dark.less\" */ './index-dark.less');\r\n return 'dark';\r\n }\r\n import(/* webpackMode: \"eager\" */ './index.less');\r\n return 'light';\r\n}\r\n\r\nconst curTheme = getTheme(PreferenceService);\r\n\r\nfunction getLandingPath(preferenceService) {\r\n let loadingPath = window.location.pathname.toLowerCase();\r\n\r\n if (loadingPath === '/campaign/vnext') {\r\n const preferenceData = preferenceService.findByName(landingPagePreference);\r\n\r\n if (preferenceData && !preferenceData.Data) {\r\n loadingPath = '/campaign/vnext/campaigns';\r\n } else {\r\n loadingPath = '/campaign/vnext/overview';\r\n }\r\n } else if (loadingPath === '/campaign/vnext/accounts') {\r\n const preferenceData = preferenceService.findByName(accountsLandingPagePreference);\r\n\r\n if ((preferenceData && !preferenceData.Data)) {\r\n loadingPath = '/campaign/vnext/accounts/performance';\r\n } else {\r\n loadingPath = '/campaign/vnext/accounts/overview';\r\n }\r\n }\r\n\r\n return loadingPath;\r\n}\r\n\r\nfunction skipRequireJSLoad() {\r\n const isSkipRequireJsLoadEnabled = serverContext.Permissions.IsSkipRequireJsLoadEnabled;\r\n\r\n if (isSkipRequireJsLoadEnabled === true) {\r\n return import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/cache-manager/index');\r\n }\r\n\r\n return import(/* webpackChunkName: \"vendor.async.legacy-requirejs\" */'./legacy-dep-bootstrap/require.config').then(() => {\r\n import(/* webpackChunkName: \"vendor.async.legacy-requirejs\" */'./legacy-dep-bootstrap/shim/requirejs-shim');\r\n });\r\n}\r\n\r\nconst es6TestScript = `\r\nclass Foo { }\r\nconst foo = new Foo();\r\nfunction defaultParameter(p = '123') { }\r\ndefaultParameter();\r\nfunction restParameters(...parameter) { }\r\nrestParameters(...[1, 2, 3]);\r\n`;\r\n\r\ntry {\r\n // eslint-disable-next-line no-eval\r\n eval(es6TestScript);\r\n} catch (error) {\r\n instrumentation.logError('ES6_syntax', error.toString());\r\n}\r\n\r\nfunction appBootstrap() {\r\n // eslint-disable-next-line global-require\r\n const AppRoot = require('./app').default;\r\n ReactDOM.render(, document.getElementById('root'));\r\n\r\n initGlobalService(serverContext, appActivity);\r\n\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/cache-bridge').then(({ initCacheBridge }) => initCacheBridge());\r\n}\r\n\r\nconst params = new URLSearchParams(document.location.search);\r\nconst campaignId = params.get('campaignId');\r\nconst campaignString = _.get(serverContext, ['ODataPrefetchResult', 'campaign'], '');\r\nconst campaign = _.isEmpty(campaignString) ? null : JSON.parse(campaignString);\r\nif (campaignId) {\r\n setCampaignType(Number(campaignId), _.get(campaign, 'CampaignType'));\r\n}\r\n\r\nskipRequireJSLoad()\r\n .then(() => {\r\n import(/* webpackChunkName: \"cldr-[request]\" */`@bingads-webui-universal/i18n-cldr-data-modern/locales-simplified/${cldrLocale}.json`)\r\n .then(setupI18nModel(locale))\r\n .then(() => {\r\n updateDateRange(PreferenceService, serverContext, appActivity);\r\n\r\n const landingPagePath = getLandingPath(PreferenceService);\r\n const isDFMEnabled = isDFMEnabledForPath(landingPagePath, serverContext, _.get(campaign, 'CampaignType'));\r\n\r\n if (isDFMEnabled === true) {\r\n const dfmPerfMarker = appPerfMarker.createChild('Data_Fetch_Manager');\r\n dfmPerfMarker.willFetchFile();\r\n\r\n Promise.all([\r\n import(/* webpackMode: 'eager' */'./data-fetch/data-fetch-manager'),\r\n import(/* webpackMode: 'eager' */'./legacy-dep-bootstrap/init-legacy-components'),\r\n ]).then(([\r\n { fetchData },\r\n { initLegacyComponentsWithServerContext },\r\n ]) => {\r\n initLegacyComponentsWithServerContext(serverContext, PreferenceService, curTheme);\r\n fetchData({\r\n serverContext,\r\n dfmPerfMarker,\r\n preferenceService: PreferenceService,\r\n loadingPath: landingPagePath,\r\n campaignType: _.get(campaign, 'CampaignType'),\r\n }).then((msg) => {\r\n dfmPerfMarker.done(msg);\r\n }).finally(() => {\r\n appBootstrap();\r\n });\r\n });\r\n } else {\r\n import(/* webpackMode: 'eager' */'./legacy-dep-bootstrap/init-legacy-components')\r\n .then(({ initLegacyComponentsWithServerContext }) => {\r\n initLegacyComponentsWithServerContext(serverContext, PreferenceService, curTheme);\r\n appBootstrap();\r\n });\r\n }\r\n });\r\n });\r\n// registerServiceWorker();\r\n","import React, { useCallback, useState, useMemo, useContext, useEffect } from 'react';\r\nimport _ from 'underscore';\r\nimport { TeachingBubble } from '@bingads-webui-campaign-react/popup-components';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { MSACopilotDisclaimer, onToggleCopilot, toggleCopilotWithMSASignInPopup, useIsProdEnvironment } from '@bingads-webui-react/msa-copilot-common';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { DirectionalHint } from '@fluentui/react/lib/common/DirectionalHint';\r\nimport { CopilotIcon } from '@bingads-webui-theme-2018/embeded-svgs';\r\nimport { ActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\nimport { isNavigationRefreshOn } from '@bingads-webui-react/preference-utility';\r\n\r\nconst styles = () => ({\r\n disclaimer: {\r\n fontSize: 12,\r\n '& a': {\r\n color: '#fff !important',\r\n textDecoration: 'underline',\r\n },\r\n '& .disclaimer-link.feedback': {\r\n color: '#fff !important',\r\n textDecoration: 'underline',\r\n },\r\n },\r\n title: {\r\n '& svg': {\r\n width: 32,\r\n height: 32,\r\n },\r\n },\r\n});\r\n\r\nexport const CopilotTeachingBubble = withPermissions(withServerContext(withDefaultStyles(withI18nConsumer(({\r\n i18n, classes, changeLayout, serverContext, permissions,\r\n}) => {\r\n const logger = useContext(ActivityContext);\r\n const isPROD = useIsProdEnvironment();\r\n const [visible, setVisible] = useState(false);\r\n const closeBubble = useCallback(() => {\r\n setVisible(false);\r\n }, []);\r\n const username = _.get(serverContext, ['CurrentUser', 'Name']);\r\n const localeId = _.get(serverContext, ['CurrentUser', 'LocaleID']);\r\n const isAADUser = _.get(serverContext, ['IsAADUser']);\r\n const isAppBasedAuthEnabled = _.get(permissions, ['dynamic', 'AdsCopilotAppBasedAuth']);\r\n const isNavRefresh = isNavigationRefreshOn(permissions);\r\n\r\n const toggleCopilot = useMemo(() => toggleCopilotWithMSASignInPopup({\r\n userName: username,\r\n localeId,\r\n isAADUser,\r\n isAppBasedAuthEnabled,\r\n toggleCopilot: (mode) => {\r\n onToggleCopilot({ changeLayout, mode, logger });\r\n },\r\n logger,\r\n }), [changeLayout, isAADUser, localeId, username, isAppBasedAuthEnabled, logger]);\r\n\r\n const startChatting = useCallback(() => {\r\n toggleCopilot('expanded');\r\n closeBubble();\r\n }, [closeBubble, toggleCopilot]);\r\n\r\n const targetElement = useMemo(() => (\r\n isNavRefresh\r\n ? '.new-global-menu button[aria-label=\"Copilot\"]'\r\n : '.global-menu-copilot-dropdown-toggle'\r\n ), [isNavRefresh]);\r\n\r\n useEffect(() => {\r\n setVisible((isPROD || window.location.href.includes('isCopilotTeachingBubbleEnabled=true')) && !window.location.href.includes('isCopilotTeachingBubbleEnabled=false'));\r\n }, [isPROD]);\r\n\r\n return visible ? (\r\n
{i18n.getString(_TL_('Need help? Just ask!'))}
}\r\n content={(\r\n <>\r\n

\r\n {i18n.getString(_TL_('Start chatting with Microsoft Advertising Copilot to receive quick assistance and learn more about Microsoft Advertising. '))}\r\n

\r\n

\r\n \r\n

\r\n \r\n )}\r\n primaryButtonText={i18n.getString(_TL_('Start chatting'))}\r\n secondaryButtonText={i18n.getString(_TL_('Maybe later'))}\r\n onDone={startChatting}\r\n onDismiss={closeBubble}\r\n onClose={closeBubble}\r\n targetElement={targetElement}\r\n directionalHint={DirectionalHint.bottomRightEdge}\r\n rightOffset={12}\r\n doNotLayer\r\n />\r\n ) : null;\r\n}), styles)));\r\n","import _ from 'underscore';\r\nimport { useCallback, useEffect } from 'react';\r\n\r\nimport { onToggleCopilot, toggleCopilotWithMSASignInPopup } from '@bingads-webui-react/msa-copilot-common';\r\n\r\nexport const useCopilotToggleEventListener = ({\r\n userName,\r\n localeId,\r\n isAADUser,\r\n isAppBasedAuthEnabled,\r\n changeLayout,\r\n logger,\r\n}) => {\r\n const handler = useCallback(({ detail: customizedEvent }) => {\r\n const openCopilot = toggleCopilotWithMSASignInPopup({\r\n userName,\r\n localeId,\r\n isAADUser,\r\n isAppBasedAuthEnabled,\r\n logger,\r\n toggleCopilot: () => {\r\n logger.trace(`[Copilot] Copilot opened via copilotToggleEvent. eventType=${_.get(customizedEvent, 'eventType')}, eventSource=${_.get(customizedEvent, 'eventSource')}`);\r\n onToggleCopilot({\r\n changeLayout,\r\n mode: 'expanded',\r\n logger,\r\n customizedEvent,\r\n });\r\n },\r\n });\r\n\r\n openCopilot();\r\n }, [isAADUser, isAppBasedAuthEnabled, changeLayout, localeId, logger, userName]);\r\n\r\n useEffect(() => {\r\n document.addEventListener('copilotToggleEvent', handler);\r\n\r\n return () => {\r\n document.removeEventListener('copilotToggleEvent', handler);\r\n };\r\n }, [handler]);\r\n};\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport classNames from 'classnames';\r\nimport React, { Suspense, useCallback, useMemo, useContext, useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { PreferenceContext } from '@bingads-webui-react/preference-context';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Scenario, Activity, ActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\nimport {\r\n COPILOT_WIDTH,\r\n onToggleCopilot,\r\n useTokenExchange,\r\n useMSAConversationRestorationWithCookie,\r\n getDirectLineEndpoint,\r\n usePerfMarker,\r\n MSAGlobalErrorView,\r\n MSAGlobalLoadingView,\r\n fetchAppBasedChannelToken,\r\n getLwiContexts,\r\n MSACopilotErrorView,\r\n} from '@bingads-webui-react/msa-copilot-common';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { isNavigationRefreshOn } from '@bingads-webui-react/preference-utility';\r\nimport { notificationApi } from '@bingads-webui-react/notification-center';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { siteMapPropType } from '@bingads-webui-react/with-site-map';\r\nimport { withSiteMap, processor } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { LayoutContext, Mode } from '@bingads-webui-react/app-layout-container';\r\nimport { InsightsPanelLoader } from '@bingads-webui/copilot-insights';\r\nimport {\r\n WaterfallFilterStorage,\r\n WaterfallFilterType,\r\n waterfallDateFilterProcessor\r\n} from '@bingads-webui-campaign/filter-storage';\r\nimport { fetchCampaignsData } from '@bingads-webui-react/copilot-troubleshooting-data';\r\nimport { fromLegacyTimeZone, toIANATimeZone } from '@bingads-webui-universal/time-zone-converter';\r\nimport { withGlobalErrorView } from '@bingads-webui-campaign-react/global-error-options';\r\nimport { isCopilotRegionRestricted } from '@bingads-webui-react/copilot-utils';\r\n\r\nimport { withAppPerfMarker } from '../../contexts/app-perfmarker-context';\r\nimport { CopilotTeachingBubble } from './teaching-bubble';\r\nimport { useGetIsPilotEnabled } from './use-get-is-pilot-enabled';\r\nimport { useCopilotToggleEventListener } from './use-copilot-toggle-event-listener';\r\n\r\nconst LazyMSAdsCopilot = React.lazy(() => import(/* webpackChunkName: \"ads-copilot\" */'@bingads-webui-react/msa-copilot'));\r\nconst POPUP_ERROR_MESSAGE = 'Oops! It seems your popup blocker is active. Please disable it and try again for the full copilot experience.';\r\nconst CopilotLastReaction = 'CopilotLastReaction';\r\nconst CopilotLastConversationId = 'CopilotLastConversationId';\r\n\r\nconst styles = () => ({\r\n root: {\r\n right: 0,\r\n position: 'absolute',\r\n top: 0,\r\n bottom: 0,\r\n minWidth: COPILOT_WIDTH,\r\n display: 'block',\r\n flex: 1,\r\n zIndex: 1,\r\n height: '100%',\r\n },\r\n rootNavRefresh: {\r\n position: 'relative',\r\n },\r\n '@global': {\r\n '.app-shell-copilot': {\r\n 'pointer-events': 'auto !important',\r\n '& .teaching-bubble-content': {\r\n width: '364px',\r\n },\r\n },\r\n '.ads-copilot-preparing-view': {\r\n 'pointer-events': 'auto',\r\n },\r\n },\r\n});\r\n\r\nexport const UnstyledMSAdsCopilotLoader = React.memo((props) => {\r\n const {\r\n mode, classes, serverContext, appPerfMarker, permissions, siteMap, changeLayout,\r\n } = props;\r\n const activity = useContext(ActivityContext);\r\n const preferenceService = useContext(PreferenceContext);\r\n const [cachedPath, setCachedPath] = useState(null);\r\n const firstName = _.get(serverContext, ['CurrentUser', 'FirstName']);\r\n const lastName = _.get(serverContext, ['CurrentUser', 'LastName']);\r\n const userid = useMemo(() => `${_.get(serverContext, ['CurrentUser', 'Id'])}`, [serverContext]);\r\n const username = useMemo(() => _.get(serverContext, ['CurrentUser', 'Name']), [serverContext]);\r\n const customerId = useMemo(() => `${_.get(serverContext, ['CurrentCustomer', 'Id'])}`, [serverContext]);\r\n const accountId = useMemo(() => `${_.get(serverContext, ['CurrentAccount', 'Id'])}`, [serverContext]);\r\n const ccSmallToken = useMemo(() => `CCMTSmallToken ${_.get(serverContext, ['Token'])}`, [serverContext]);\r\n const localeId = _.get(serverContext, ['CurrentUser', 'LocaleID']);\r\n const isAADUser = _.get(serverContext, ['IsAADUser']);\r\n const currentLocale = _.get(serverContext, ['CurrentLocale']);\r\n const dateFormat = _.get(serverContext, ['CurrentUser', 'CultureDateTimeFormat', 'ShortDatePattern']);\r\n const TimeZone = _.get(serverContext, ['CurrentAccount', 'TimeZone']);\r\n const ianaTimeZone = useMemo(() => toIANATimeZone(fromLegacyTimeZone(TimeZone)), [TimeZone]);\r\n const isAppBasedAuthEnabled = _.get(permissions, ['dynamic', 'AdsCopilotAppBasedAuth']);\r\n const isDegradedModeEnabled = _.get(permissions, ['dynamic', 'AdsCopilotDegradedMode']);\r\n const perfMarker = appPerfMarker.createChild('AdsCopilot');\r\n const isNavRefresh = isNavigationRefreshOn(permissions);\r\n const isAdsCopilotLiveChatGlobalizationEnabled = _.get(permissions, ['dynamic', 'AdsCopilotLiveChatGlobalizationEnabled']) || false;\r\n const isAdsCopilotUxImprovementsEnabled = _.get(permissions, ['dynamic', 'AdsCopilotUxImprovements']) || false;\r\n const getIsPilotEnabled = useGetIsPilotEnabled({ permissions });\r\n const location = useLocation();\r\n const { config: layoutConfig } = useContext(LayoutContext);\r\n const { copilot: copilotLayoutConfig } = layoutConfig;\r\n const { hasCustomizedEvent } = copilotLayoutConfig;\r\n const waterfallFilterStorage = new WaterfallFilterStorage({\r\n preferenceService,\r\n });\r\n const dateRange = waterfallDateFilterProcessor(\r\n waterfallFilterStorage.getFilters([WaterfallFilterType.DateFilter]),\r\n serverContext\r\n );\r\n\r\n useCopilotToggleEventListener({\r\n userName: username,\r\n localeId,\r\n isAADUser,\r\n isAppBasedAuthEnabled,\r\n changeLayout,\r\n logger: activity,\r\n });\r\n\r\n const lwicontexts = getLwiContexts(serverContext);\r\n const liveAgentChatConfig = {\r\n isAADUser,\r\n surveyContext: {\r\n firstName,\r\n lastName,\r\n localeId: currentLocale,\r\n },\r\n lwicontexts,\r\n };\r\n\r\n const pilots = {\r\n isCopilotLiveChatGlobalizationEnabled: isAdsCopilotLiveChatGlobalizationEnabled,\r\n };\r\n\r\n const onAuthPopupError = useCallback(() => {\r\n notificationApi.showWarning(POPUP_ERROR_MESSAGE);\r\n }, []);\r\n\r\n const tokenExchangeFn = useTokenExchange({\r\n userName: username,\r\n localeId,\r\n isAADUser,\r\n logger: activity,\r\n onAuthPopupError,\r\n shouldRetry: !!isDegradedModeEnabled,\r\n });\r\n\r\n const onCopilotModeChange = useCallback(({ mode: newMode }) => {\r\n onToggleCopilot({ mode: newMode, changeLayout, logger: activity });\r\n }, [activity, changeLayout]);\r\n\r\n const onSendCustomizedEvent = useCallback(() => {\r\n const newConfig = {\r\n copilot: {\r\n ...copilotLayoutConfig,\r\n hasCustomizedEvent: false,\r\n },\r\n };\r\n changeLayout(newConfig);\r\n }, [copilotLayoutConfig, changeLayout]);\r\n\r\n const onFeedbackReaction = useCallback((data) => {\r\n preferenceService.setAtUserLevel({\r\n Name: CopilotLastReaction,\r\n Data: data,\r\n });\r\n }, [preferenceService]);\r\n\r\n const onChangeConversationId = useCallback((conversationId) => {\r\n preferenceService.setAtUserLevel({\r\n Name: CopilotLastConversationId,\r\n Data: conversationId,\r\n });\r\n }, [preferenceService]);\r\n\r\n const onCopilotClose = useCallback(() => {\r\n onCopilotModeChange({ mode: 'collapsed' });\r\n $('.global-menu-copilot-dropdown-toggle').trigger('focus');\r\n }, [onCopilotModeChange]);\r\n\r\n const botServiceConfig = useMemo(() => {\r\n const config = {\r\n tokenApi: '/api/token',\r\n endpoint: getDirectLineEndpoint(),\r\n authToken: '',\r\n userid,\r\n username,\r\n customerId,\r\n accountId,\r\n ccSmallToken,\r\n productName: 'webui_expert_mode',\r\n fetchOAuthToken: tokenExchangeFn,\r\n ianaTimeZone,\r\n legacyTimeZone: fromLegacyTimeZone(TimeZone),\r\n };\r\n\r\n if (isAppBasedAuthEnabled) {\r\n // OAuth token is not needed for app-based auth, return empty value\r\n config.fetchOAuthToken = () => Promise.resolve({ token: '' });\r\n\r\n // fetch app-based channel token directly from CCUI\r\n config.fetchToken = fetchAppBasedChannelToken;\r\n\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const copilotOneBoxToken = urlParams.get('copilotOneBoxToken');\r\n\r\n if (copilotOneBoxToken) {\r\n config.fetchOAuthToken = () => Promise.resolve({ token: copilotOneBoxToken });\r\n config.fetchToken = undefined;\r\n }\r\n }\r\n\r\n return config;\r\n }, [\r\n accountId,\r\n ccSmallToken,\r\n customerId,\r\n ianaTimeZone,\r\n isAppBasedAuthEnabled,\r\n tokenExchangeFn,\r\n userid,\r\n username,\r\n TimeZone,\r\n ]);\r\n\r\n const getCampaigns = useCallback(() => fetchCampaignsData({ accountId, customerId, ccToken: ccSmallToken }).then((result) => {\r\n const value = _.get(result, ['data', 'value']);\r\n if (_.isArray(value)) {\r\n const campaigns = _.map(value, c => ({ id: c.Id, name: c.Name }));\r\n return campaigns;\r\n }\r\n return activity.error(`[Copilot Reporting Insights] no campaigns returned: ${result.status} ${result.statusText} ${JSON.stringify(result)}`);\r\n }), [accountId, activity, ccSmallToken, customerId]);\r\n\r\n const {\r\n token, error, forceRefreshToken, onConnectionStatusChange, onInitDirectLine,\r\n } = useMSAConversationRestorationWithCookie({\r\n botServiceConfig,\r\n mode,\r\n logger: activity,\r\n onCopilotModeChange,\r\n preferenceService,\r\n });\r\n\r\n const { onMount, onConnectionStatusChange: finalOnConnectionStatusChange } = usePerfMarker({\r\n perfMarker,\r\n token,\r\n mode,\r\n onConnectionStatusChange,\r\n });\r\n\r\n const i18n = useContext(I18nContext);\r\n const className = classNames(classes.root, isNavRefresh && classes.rootNavRefresh);\r\n\r\n const onFullInsightsClick = useCallback((event, replyToId, options) => {\r\n const {\r\n onFeedbackButtonClick,\r\n } = options;\r\n\r\n // NOTE: contentProps will get shallow copied, so any objects with methods (e.g. i18n) will lose its methods\r\n changeLayout({\r\n overlay: {\r\n mode: Mode.Expanded,\r\n content: InsightsPanelLoader,\r\n contentProps: {\r\n dateFormat,\r\n dateRange,\r\n i18nProviderProps: {\r\n locale: currentLocale,\r\n },\r\n logger: activity,\r\n onFeedbackButtonClick,\r\n replyToId,\r\n TimeZone,\r\n },\r\n },\r\n });\r\n }, [\r\n activity,\r\n changeLayout,\r\n currentLocale,\r\n dateFormat,\r\n dateRange,\r\n TimeZone,\r\n ]);\r\n\r\n const loadingView = useMemo(() => (\r\n \r\n ), [className, i18n, onCopilotClose, preferenceService, isAdsCopilotUxImprovementsEnabled]);\r\n\r\n useEffect(() => {\r\n const path = _.get(location, 'pathname');\r\n if (cachedPath !== path) {\r\n setCachedPath(path);\r\n activity.trace(`[Copilot] current page path: ${path})}`);\r\n }\r\n }, [activity, cachedPath, location]);\r\n\r\n const [isAdsCopilotRegionRestricted, setIsAdsCopilotRegionRestricted] = useState();\r\n useEffect(() => {\r\n isCopilotRegionRestricted({\r\n feature: 'Chat',\r\n permissions: props.permissions,\r\n serverContext: props.serverContext,\r\n }).then(setIsAdsCopilotRegionRestricted);\r\n }, [props.permissions, props.serverContext]);\r\n\r\n const isCopilotReady = !_.isEmpty(token) && isAdsCopilotRegionRestricted != null;\r\n\r\n if (mode === 'expanded' && error != null && !isDegradedModeEnabled) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n if (mode === 'expanded' && !isCopilotReady) {\r\n return loadingView;\r\n }\r\n\r\n return mode === 'collapsed' || (!isCopilotReady && !isDegradedModeEnabled) ? null : (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n});\r\n\r\nUnstyledMSAdsCopilotLoader.propTypes = {\r\n classes: PropTypes.shape({\r\n root: PropTypes.string.isRequired,\r\n rootNavRefresh: PropTypes.string.isRequired,\r\n }).isRequired,\r\n changeLayout: PropTypes.func.isRequired,\r\n serverContext: PropTypes.shape({\r\n\r\n }).isRequired,\r\n mode: PropTypes.string.isRequired,\r\n appPerfMarker: PropTypes.shape({\r\n done: PropTypes.func,\r\n willInit: PropTypes.func,\r\n willRender: PropTypes.func,\r\n createChild: PropTypes.func,\r\n }).isRequired,\r\n permissions: PropTypes.shape({\r\n dynamic: PropTypes.shape({\r\n NavigationRefresh: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n siteMap: siteMapPropType.isRequired,\r\n};\r\n\r\nconst CopilotErrorView = React.memo((props) => {\r\n const activity = useContext(ActivityContext);\r\n return (\r\n );\r\n});\r\n\r\nCopilotErrorView.propTypes = {\r\n error: PropTypes.instanceOf(Error),\r\n info: PropTypes.instanceOf(Object),\r\n errorViewProps: PropTypes.instanceOf(Object),\r\n};\r\n\r\nCopilotErrorView.defaultProps = {\r\n error: null,\r\n info: null,\r\n errorViewProps: {},\r\n};\r\n\r\nexport const MSAdsCopilotLoader = withServerContext(withDefaultStyles(withGlobalErrorView(\r\n withAppPerfMarker(withSiteMap(UnstyledMSAdsCopilotLoader, [\r\n processor.processPermissions,\r\n processor.processGlobalFilter,\r\n processor.processCampaignType,\r\n processor.processPath,\r\n ])),\r\n {\r\n renderErrorView: props => ,\r\n }\r\n), styles));\r\n\r\nconst MSAdsCopilotLoaderWithPermission = withPermissions(props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n));\r\n\r\nMSAdsCopilotLoaderWithPermission.propTypes = {\r\n permissions: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport default MSAdsCopilotLoaderWithPermission;\r\n","import _ from 'underscore';\r\nimport { useCallback } from 'react';\r\n\r\nexport function useGetIsPilotEnabled({ permissions }) {\r\n return useCallback(pilotName => _.get(permissions, ['dynamic', pilotName]), [permissions]);\r\n}\r\n","import React from 'react';\r\nimport { withRouter } from '@bingads-webui-campaign-react/router';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\n\r\nlet previousRoute = '';\r\nlet previousSearch = '';\r\nlet urlChangeScenario;\r\nlet routeChangeLogger;\r\nlet paramChangeLogger;\r\n\r\nconst getUrlChangeScenario = (instrumentation) => {\r\n if (urlChangeScenario) {\r\n return urlChangeScenario;\r\n }\r\n\r\n urlChangeScenario = instrumentation.urlChange.create();\r\n return urlChangeScenario;\r\n};\r\n\r\nconst getRouteChangeLogger = (instrumentation) => {\r\n if (routeChangeLogger) {\r\n return routeChangeLogger;\r\n }\r\n routeChangeLogger = getUrlChangeScenario(instrumentation).routeChange.create();\r\n return routeChangeLogger;\r\n};\r\n\r\nconst getParamChangeLogger = (instrumentation) => {\r\n if (paramChangeLogger) {\r\n return paramChangeLogger;\r\n }\r\n paramChangeLogger = getUrlChangeScenario(instrumentation).paramChange.create();\r\n return paramChangeLogger;\r\n};\r\n\r\nconst RouteChangeLoggerInternal = (props) => {\r\n const currentRoute = window.location.pathname.toLowerCase();\r\n const currentSearch = window.location.search.toLowerCase();\r\n\r\n\r\n if (previousRoute) {\r\n if (previousRoute !== currentRoute) {\r\n getRouteChangeLogger(props.instrumentation).trace(`${previousRoute} -> ${currentRoute}`);\r\n }\r\n } else {\r\n getRouteChangeLogger(props.instrumentation).trace(`initial route: ${currentRoute}`);\r\n }\r\n\r\n if (previousSearch) {\r\n if (previousSearch !== currentSearch) {\r\n getParamChangeLogger(props.instrumentation).trace(`${previousSearch} -> ${currentSearch}`);\r\n }\r\n } else {\r\n getParamChangeLogger(props.instrumentation).trace(`initial param: ${currentSearch}`);\r\n }\r\n\r\n previousRoute = currentRoute;\r\n previousSearch = currentSearch;\r\n return null;\r\n};\r\n\r\nRouteChangeLoggerInternal.propTypes = {\r\n};\r\n\r\nexport const RouteChangeLogger = withRouter(withInstrumentation(React.memo(RouteChangeLoggerInternal)));\r\n","/* eslint-disable no-param-reassign */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { compose, result } from 'underscore';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Dialog, DialogType, DialogFooter } from '@bingads-webui-react/fabric-control';\r\nimport { openOldUI, getFallbackPath } from '@bingads-webui-react/fallback-feature';\r\nimport { withScope, QueryParam } from '@bingads-webui-react/scope-service';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { Scenario, Activity } from '@bingads-webui-react/hoc-with-signal';\r\nimport { PrimaryButton, DefaultButton } from '@bingads-webui-react/fabric-with-signal';\r\nimport { getNewUiWelcomeStyles } from '@bingads-webui-campaign/ui-next-style';\r\nimport { isTestEnvironment } from '@bingads-webui-campaign/global-app-init';\r\n\r\nconst NewUINavigationPreferenceKey = 'WebApp.Next.LandingPage';\r\n\r\n// a blocking non-draggable fabric dialog to set newUI preference\r\nclass NewUIPreferenceDialogRaw extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n const {\r\n permissions,\r\n preferenceService,\r\n instrumentation,\r\n } = props;\r\n\r\n const isTestEnv = isTestEnvironment(document.domain);\r\n\r\n if (result(permissions.dynamic, 'LegacyUIDeprecation', false) || isTestEnv) {\r\n this.state = {\r\n showDialog: false,\r\n };\r\n\r\n return;\r\n }\r\n\r\n this.preferenceSetLogger = instrumentation.newUINavigation.create().preferenceSet.create();\r\n // explicit start and stop signal\r\n this.preferenceSetLogger.startSignal();\r\n\r\n this.preferenceService = preferenceService;\r\n const newUIPreference = preferenceService.findByNameAtUserLevel(NewUINavigationPreferenceKey);\r\n const isLandOnNewUIEnabledPilot = permissions.IsLandOnNewUIEnabled;\r\n const showOnlyOKButton = isLandOnNewUIEnabledPilot && (!newUIPreference || newUIPreference.Data !== 'NewUI');\r\n\r\n const phase2PilotEnabled = permissions.dynamic.NewWebUI;\r\n\r\n this.state = {\r\n showDialog: showOnlyOKButton || ((phase2PilotEnabled === true) && (newUIPreference === undefined)),\r\n showOnlyOKButton,\r\n };\r\n\r\n // silently set the preference to NewUI if the preference is already set and it's not NewUI\r\n // so server would serve new UI next time when user logs in\r\n // because newUIPreference is not undefined, there would be no dialog for user to set preference\r\n if (newUIPreference && newUIPreference.Data !== 'NewUI') {\r\n this.setPreferenceAndLog('NewUI');\r\n }\r\n }\r\n\r\n setPreferenceAndLog = (preference) => {\r\n if (preference) {\r\n this.preferenceService.setAtUserLevel({\r\n Name: NewUINavigationPreferenceKey,\r\n Data: preference,\r\n });\r\n }\r\n\r\n this.preferenceSetLogger.trace({\r\n preference: preference || 'decide later',\r\n });\r\n };\r\n\r\n selectNewUI = () => {\r\n this.setPreferenceAndLog('NewUI');\r\n this.dismissDialog('NewUI');\r\n }\r\n\r\n selectOldUI = () => {\r\n this.setPreferenceAndLog('OldUI');\r\n this.dismissDialog('OldUI');\r\n\r\n const returnPath = getFallbackPath(this.props.scope, null, null);\r\n openOldUI(this.props.scope, returnPath);\r\n }\r\n\r\n decideLater = () => {\r\n this.setPreferenceAndLog();\r\n this.dismissDialog();\r\n }\r\n\r\n learnMore = () => {\r\n this.setPreferenceAndLog('NewUI');\r\n this.dismissDialog('NewUI');\r\n\r\n if (this.helpTopicSpan) {\r\n this.helpTopicSpan.click();\r\n }\r\n }\r\n\r\n dismissDialog = (userSelection) => {\r\n this.setState({\r\n showDialog: false,\r\n });\r\n\r\n // in the case user clicks x button to dismiss the dialog\r\n // userSelection is an event object from base-button which needs special handling\r\n if (typeof userSelection !== 'string') {\r\n if (this.state.showOnlyOKButton) {\r\n this.setPreferenceAndLog('NewUI');\r\n userSelection = 'dismiss by x button with pilot NewUIAsDefault enabled';\r\n } else {\r\n userSelection = 'decide later by x button';\r\n }\r\n } else if (!userSelection) {\r\n userSelection = 'decide later';\r\n }\r\n\r\n this.preferenceSetLogger.stopSignal(userSelection);\r\n }\r\n\r\n render() {\r\n const {\r\n i18n,\r\n classes,\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nNewUIPreferenceDialogRaw.propTypes = {\r\n permissions: PropTypes.shape({}).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n preferenceService: PropTypes.shape({}).isRequired,\r\n classes: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n instrumentation: PropTypes.object.isRequired,\r\n};\r\n\r\nexport const NewUIPreferenceDialog = compose(\r\n WrappedComponent => withDefaultStyles(WrappedComponent, getNewUiWelcomeStyles),\r\n withInstrumentation,\r\n withScope,\r\n withI18nConsumer,\r\n withPreference,\r\n withPermissions\r\n)(NewUIPreferenceDialogRaw);\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { notificationApi } from '@bingads-webui-campaign/notification-center';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport { Scenario, Activity, ActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\n\r\nconst PREFERENCE_NAME_GOOGLE = 'Import.GoogleImport.SignupWithSmartGoogleImport';\r\nconst PREFERENCE_NAME_FACEBOOK = 'Import.FacebookImport.SignupWithSmartFacebookImport';\r\n\r\nconst getImportScheduleAndHistoryLink = (serverContext, preferenceType) => {\r\n const url = `${serverContext.ServicesEndpoints.CampaignUIAPI}vnext/importschedule`;\r\n let queryParams = '';\r\n const {\r\n CurrentAccount, CurrentCustomer, CurrentUser,\r\n } = serverContext || {};\r\n if (CurrentAccount && CurrentCustomer && CurrentUser) {\r\n const importType = {\r\n [PREFERENCE_NAME_GOOGLE]: 'googleimport',\r\n [PREFERENCE_NAME_FACEBOOK]: 'facebookimport',\r\n }[preferenceType] || '';\r\n if (importType) {\r\n queryParams = `?aid=${CurrentAccount.Id}&cid=${CurrentCustomer.Id}&uid=${CurrentUser.Id}&importType=${importType}`;\r\n } else {\r\n queryParams = `?aid=${CurrentAccount.Id}&cid=${CurrentCustomer.Id}&uid=${CurrentUser.Id}`;\r\n }\r\n }\r\n return `${url}${queryParams}`;\r\n};\r\n\r\nconst getNavigationLinkMsg = (serverContext, i18n, preferenceType) => {\r\n const url = getImportScheduleAndHistoryLink(serverContext, preferenceType);\r\n const linkMsg = i18n.getString(\r\n _TL_('You can review your {{link}} at any time.'),\r\n { link: `${i18n.getString(_TL_('Import schedule & history'))}` }\r\n );\r\n return linkMsg;\r\n};\r\n\r\nconst showGoogleImportNotificationMsg = (status, serverContext, i18n) => {\r\n const { inProgress, importedCampaignsCount } = status || {};\r\n const linkMsg = getNavigationLinkMsg(serverContext, i18n, PREFERENCE_NAME_GOOGLE);\r\n if (inProgress) {\r\n const msg = i18n.getString(_TL_('We’re currently importing your campaigns from Google Ads.'));\r\n notificationApi.showInfo(`${msg} ${linkMsg}`);\r\n } else if (importedCampaignsCount > 0) {\r\n const msg = i18n.getString(_TL_('Your import from Google Ads has successfully completed.'));\r\n notificationApi.showInfo(`${msg} ${linkMsg}`);\r\n } else {\r\n const msg = i18n.getString(_TL_('We were unable to import any campaigns from your Google Ads account.'));\r\n notificationApi.showWarning(`${msg} ${linkMsg}`);\r\n }\r\n};\r\n\r\nconst showFacebookImportNotificationMsg = (status, serverContext, i18n) => {\r\n const { inProgress, importedCampaignsCount } = status || {};\r\n const linkMsg = getNavigationLinkMsg(serverContext, i18n, PREFERENCE_NAME_FACEBOOK);\r\n if (inProgress) {\r\n const msg = i18n.getString(_TL_('We\\'re currently importing your campaigns from Meta Ads.'));\r\n notificationApi.showInfo(`${msg} ${linkMsg}`);\r\n } else if (importedCampaignsCount > 0) {\r\n const msg = i18n.getString(_TL_('Your import from Meta Ads has successfully completed.'));\r\n notificationApi.showInfo(`${msg} ${linkMsg}`);\r\n } else {\r\n const msg = i18n.getString(_TL_('We were unable to import any campaigns from your Meta Ads account.'));\r\n notificationApi.showWarning(`${msg} ${linkMsg}`);\r\n }\r\n};\r\n\r\nconst getImportedCampaignsCount = (entityStatistics) => {\r\n const { Keys, Values } = entityStatistics || {};\r\n const campaignEntityIndex = Keys && Keys.indexOf('Campaign');\r\n if (campaignEntityIndex >= 0) {\r\n const { Total } = Values[campaignEntityIndex] || {};\r\n if (_.isNumber(Total)) {\r\n return Total;\r\n }\r\n }\r\n return 0;\r\n};\r\n\r\nconst getImportTaskStatus = (taskItemExecutionId) => {\r\n const url = `/Customers()/Accounts()/TaskItemExecutions(${taskItemExecutionId})`;\r\n return new Promise((resolve, reject) => {\r\n odata.get(url).then((data) => {\r\n // eslint-disable-next-line object-curly-newline\r\n const { ImportStatus, Status, ErrorCode, EntityStatistics } = data || {};\r\n const importedCampaignsCount = getImportedCampaignsCount(EntityStatistics);\r\n if (ImportStatus === 'Complete') {\r\n resolve({ importedCampaignsCount, inProgress: false });\r\n } else if (ImportStatus === 'Failed' || Status === 'Failed' || ErrorCode || ImportStatus === 'Cancelled') {\r\n reject(new Error());\r\n } else { // ongoing\r\n resolve({ inProgress: true });\r\n }\r\n }).catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n};\r\n\r\nexport const ImportStatusCheckerInternal = ({\r\n i18n, serverContext, preferenceService,\r\n}) => {\r\n const [isShown, setIsShown] = useState(false);\r\n const activity = useContext(ActivityContext);\r\n\r\n useEffect(() => {\r\n if (!isShown && preferenceService && _.isFunction(preferenceService.findByNameAtAccountLevel)) {\r\n setIsShown(true);\r\n _.forEach([\r\n { preferenceName: PREFERENCE_NAME_GOOGLE, showNotificationMsg: showGoogleImportNotificationMsg },\r\n { preferenceName: PREFERENCE_NAME_FACEBOOK, showNotificationMsg: showFacebookImportNotificationMsg },\r\n ], ({ preferenceName, showNotificationMsg }) => {\r\n const { Id: id, Data: data } = preferenceService.findByNameAtAccountLevel(preferenceName) || {};\r\n if (id) {\r\n const taskItemExecutionId = data && data.importStatus && data.importStatus.taskItemExecutionId;\r\n if (taskItemExecutionId) {\r\n // get import task execution status\r\n getImportTaskStatus(taskItemExecutionId).then((status) => {\r\n activity.trace(`got import task status, show notification. status: ${JSON.stringify(status)}`);\r\n showNotificationMsg(status, serverContext, i18n);\r\n }).catch((err) => {\r\n activity.trace(`failed to get import task status, error: ${JSON.stringify(err)}`);\r\n showNotificationMsg(null, serverContext, i18n);\r\n });\r\n } else {\r\n activity.trace(`no taskItemExecutionId in preference, id: ${id}, pref: ${JSON.stringify(data)}`);\r\n }\r\n // remove preference\r\n preferenceService.del(id);\r\n } else {\r\n activity.trace('cannot find import status from preference service.');\r\n }\r\n });\r\n }\r\n }, [activity, i18n, isShown, preferenceService, serverContext]);\r\n\r\n return null;\r\n};\r\n\r\nImportStatusCheckerInternal.propTypes = {\r\n serverContext: PropTypes.shape({}).isRequired,\r\n preferenceService: PropTypes.shape({}).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nexport const ImportStatusChecker = props => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import PropTypes from 'prop-types';\r\nimport { withSiteMap, siteMapPropType, findSelectedNode } from '@bingads-webui-campaign-react/with-site-map';\r\n\r\nconst PageTitleUpdater = ({ siteMap, i18n }) => {\r\n const selectedNode = findSelectedNode(siteMap);\r\n let newTitle = 'Microsoft Advertising';\r\n\r\n if (selectedNode) {\r\n newTitle = `${i18n.getString(selectedNode.name)} | Microsoft Advertising`;\r\n }\r\n\r\n document.title = newTitle;\r\n\r\n return null;\r\n};\r\n\r\nPageTitleUpdater.propTypes = {\r\n siteMap: siteMapPropType.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nconst wrapped = withSiteMap(PageTitleUpdater);\r\n\r\nexport { wrapped as PageTitleUpdater };\r\n","import { useMemo, useContext } from 'react';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { PermissionsContext } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { isNavigationRefreshOn } from '@bingads-webui-react/preference-utility';\r\n\r\nconst SCENARIO = 'NavigationRefresh';\r\nconst ACTIVITY = 'NavigationRefresh';\r\n\r\nexport const NavigationRefreshLogger = () => {\r\n const instrumentation = useContext(InstrumentationContext);\r\n const permissions = useContext(PermissionsContext);\r\n\r\n const activity = useMemo(() => {\r\n const scenario = instrumentation.createScenario({\r\n scenarioName: SCENARIO,\r\n });\r\n return scenario.createActivity(ACTIVITY);\r\n }, [instrumentation]);\r\n\r\n if (activity && isNavigationRefreshOn(permissions)) {\r\n activity.trace('Navigation refresh');\r\n }\r\n\r\n return null;\r\n};\r\n","import React, { useCallback, useContext, useEffect, useMemo } from 'react';\r\nimport { result } from 'underscore';\r\nimport {\r\n Dialog,\r\n DialogTrigger,\r\n DialogSurface,\r\n DialogTitle,\r\n DialogContent,\r\n DialogBody,\r\n DialogActions,\r\n Button,\r\n makeStyles,\r\n mergeClasses,\r\n tokens,\r\n} from '@fluentui/react-components';\r\nimport { PreferenceContext } from '@bingads-webui-react/preference-context';\r\nimport { PermissionsContext } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { SWITCH_BACK_NAV_REFRESH_KEY } from '@bingads-webui-react/preference-utility';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { UiBlocker } from '@bingads-webui-react/ui-blocker';\r\nimport { setClarityTag } from '@bingads-webui-universal/clarity';\r\nimport navRefreshImage from './navrefresh.jpg';\r\n\r\nconst MillisecondsInADay = 86400000;\r\nconst LastDayToSwitchBack = new Date(2024, 7, 1); // August 1, 2024\r\nconst NavigationRefreshDialogPreference = 'NavigationRefreshDialogPreference';\r\nconst OneWeek = 'OneWeek';\r\nconst OneMonth = 'OneMonth';\r\nconst Further = 'Further';\r\nconst Past = 'Past';\r\n\r\nconst getTimePeriod = () => {\r\n const now = new Date();\r\n\r\n if (now > LastDayToSwitchBack) {\r\n return Past;\r\n }\r\n\r\n if (LastDayToSwitchBack - now < MillisecondsInADay * 7) {\r\n return OneWeek;\r\n }\r\n\r\n if (LastDayToSwitchBack - now < MillisecondsInADay * 30) {\r\n return OneMonth;\r\n }\r\n\r\n return Further;\r\n};\r\n\r\nconst useDialogStyles = makeStyles({\r\n navRefreshImage: {\r\n backgroundImage: `url(${navRefreshImage})`,\r\n height: '271px',\r\n marginBottom: tokens.spacingVerticalXXL,\r\n },\r\n button: {\r\n whiteSpace: 'nowrap',\r\n },\r\n footer: {\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n },\r\n singleButtonFooter: {\r\n justifyContent: 'flex-end',\r\n },\r\n});\r\n\r\nexport const NavigationRefreshDialog = () => {\r\n const classes = useDialogStyles();\r\n const i18n = useContext(I18nContext);\r\n const preferenceService = useContext(PreferenceContext);\r\n const [open, setOpen] = React.useState(false);\r\n const [disableButtons, setDisableButtons] = React.useState(false);\r\n const instrumentation = useContext(InstrumentationContext);\r\n const permissions = useContext(PermissionsContext);\r\n const logger = instrumentation.createScenarioAndActivity({\r\n scenarioName: 'navigationRefreshDialog',\r\n activityName: 'navigationRefreshDialog',\r\n }).activity;\r\n const switchBackNavRefreshPreference = preferenceService.findByNameAtUserLevel(SWITCH_BACK_NAV_REFRESH_KEY);\r\n const switchBackNavRefresh = result(switchBackNavRefreshPreference, 'Data', false);\r\n const dialogPreference = preferenceService.findByNameAtUserLevel(NavigationRefreshDialogPreference) || {};\r\n const dismissDialog = result(dialogPreference, 'Data', {});\r\n const timePeriod = useMemo(() => getTimePeriod(), []);\r\n const isPastCutOff = timePeriod === Past;\r\n const messageTemplate =\r\n i18n.getString(_TL_('Start by browsing the navigation menu on the left, which provides a cleaner look and feel. If you can\\'t find something, select {{b}}Tools{{/b}}. {{a}}Learn more about how to get around.{{/a}}'));\r\n\r\n const updatePreference = useCallback(() => {\r\n const newDismissDialog = {\r\n ...dismissDialog,\r\n [timePeriod]: true,\r\n };\r\n\r\n preferenceService.setAtUserLevel({\r\n Name: NavigationRefreshDialogPreference,\r\n Data: newDismissDialog,\r\n }).then(({ Id }) => {\r\n preferenceService.onRemoteSyncDone(Id).then(() => {\r\n logger.trace({\r\n preference: `${NavigationRefreshDialogPreference} updated to ${JSON.stringify(newDismissDialog)}`,\r\n });\r\n });\r\n });\r\n }, [dismissDialog, logger, preferenceService, timePeriod]);\r\n\r\n useEffect(() => {\r\n if (switchBackNavRefresh && permissions.dynamic.NavigationRefresh) {\r\n if (timePeriod === Past ||\r\n (timePeriod === OneWeek && !dismissDialog[OneWeek]) ||\r\n (timePeriod === OneMonth && !dismissDialog[OneMonth]) ||\r\n (timePeriod === Further && !dismissDialog[Further])) {\r\n setOpen(true);\r\n logger.trace(`NavigationRefreshDialog: dialog opened for time period ${timePeriod}`);\r\n setClarityTag({ NavigationRefreshDialog: 'true' });\r\n }\r\n }\r\n }, [dismissDialog, logger, permissions.dynamic.NavigationRefresh, preferenceService, switchBackNavRefresh, timePeriod]);\r\n\r\n const onStay = useCallback(() => {\r\n updatePreference();\r\n setOpen(false);\r\n }, [updatePreference]);\r\n\r\n const onTry = useCallback((e) => {\r\n setDisableButtons(true);\r\n e.preventDefault();\r\n if (dialogPreference && dialogPreference.Id) {\r\n preferenceService.delAtUserLevel(dialogPreference.Id);\r\n }\r\n\r\n if (!switchBackNavRefresh) {\r\n window.location.reload();\r\n return;\r\n }\r\n\r\n preferenceService.setAtUserLevel({\r\n Name: SWITCH_BACK_NAV_REFRESH_KEY,\r\n Data: false,\r\n }).then(({ Id }) => {\r\n preferenceService.onRemoteSyncDone(Id).then(() => {\r\n logger.trace({\r\n preference: `${SWITCH_BACK_NAV_REFRESH_KEY} set to false from navigation refresh dialog with NavigationRefresh enabled`,\r\n });\r\n setClarityTag({ [SWITCH_BACK_NAV_REFRESH_KEY]: 'false' });\r\n\r\n if (timePeriod !== Past) {\r\n window.location.reload();\r\n } else {\r\n setOpen(false);\r\n }\r\n });\r\n });\r\n }, [dialogPreference, logger, preferenceService, switchBackNavRefresh, timePeriod]);\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {isPastCutOff ?\r\n i18n.getString(_TL_('Welcome to the new Microsoft Advertising navigation experience')) :\r\n i18n.getString(_TL_('Switch to the new Microsoft Advertising navigation experience today'))\r\n }\r\n \r\n \r\n {\r\n isPastCutOff ?\r\n

\r\n {i18n.getString(_TL_('We\\'ve updated the Microsoft Advertising navigation experience to help you maximize your efficiency while you\\'re managing your account. We think you\\'ll like how intuitive and customizable this new experience is. '))}\r\n {content},\r\n a: content => {content},\r\n }}\r\n template={messageTemplate}\r\n />\r\n

:\r\n <>\r\n

\r\n { i18n.getString(_TL_('We\\'re delighted to provide you with a new Microsoft Advertising navigation experience designed to maximize your efficiency. We think you\\'ll like how user-friendly and customizable it is. Give it a try!')) }\r\n

\r\n

\r\n { i18n.getString(_TL_('You can switch back to the old navigation experience until August 1st, at which time, everyone will be locked into the new navigation experience.')) }\r\n

\r\n \r\n }\r\n
\r\n \r\n \r\n {!isPastCutOff &&\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 {\r\n makeStyles,\r\n shorthands,\r\n} from '@fluentui/react-components';\r\n\r\nexport const useStyles = makeStyles({\r\n dialogSurface: {\r\n maxWidth: '600px',\r\n minWidth: '500px',\r\n },\r\n dialogContent: {\r\n ...shorthands.padding('10px', '0', '20px', '0'),\r\n },\r\n description: {\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n marginBottom: '20px',\r\n },\r\n radioGroup: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '12px',\r\n\r\n '& .fui-Radio label': {\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n },\r\n },\r\n radioButton: {\r\n fontSize: '14px',\r\n },\r\n buttonSpacing: {\r\n marginLeft: '8px',\r\n },\r\n emailContainer: {\r\n width: '90%',\r\n paddingLeft: '36px',\r\n\r\n '& input': {\r\n border: 'none',\r\n },\r\n\r\n '& input:hover': {\r\n border: 'none',\r\n },\r\n\r\n '& input:focus': {\r\n border: 'none',\r\n },\r\n\r\n\r\n '& label': {\r\n fontSize: '14px',\r\n fontWeight: 400,\r\n },\r\n },\r\n serverErrorMessage: {\r\n paddingLeft: '12px',\r\n marginTop: '8px',\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Field, Input } from '@fluentui/react-components';\r\n\r\nconst isValidEmailAddress = (address) => {\r\n const re = /^(([^<>()[\\]\\\\.,;:\\s@']+(\\.[^<>()[\\]\\\\.,;:\\s@']+)*)|('.+'))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(String(address).toLowerCase());\r\n};\r\n\r\nconst validateEmails = (emailString) => {\r\n if (!emailString) {\r\n return { valid: false, message: _TL_('Please enter at least one email address') };\r\n }\r\n\r\n const emails = emailString.split(';').map(email => email.trim()).filter(email => email);\r\n\r\n if (emails.length === 0) {\r\n return { valid: false, message: _TL_('Please enter at least one email address') };\r\n }\r\n\r\n const invalidEmails = emails.filter(email => !isValidEmailAddress(email));\r\n\r\n if (invalidEmails.length > 0) {\r\n return {\r\n valid: false,\r\n message: _TL_('Invalid email addresses: ') + invalidEmails.join(', '),\r\n };\r\n }\r\n\r\n return { valid: true, message: '' };\r\n};\r\n\r\nexport const EmailInput = ({\r\n className,\r\n label,\r\n placeholder,\r\n hint,\r\n value,\r\n onChange,\r\n}) => {\r\n const [validationState, setValidationState] = useState({ valid: true, message: '' });\r\n\r\n const handleChange = useCallback((e, data) => {\r\n const newValue = data.value;\r\n const validation = validateEmails(newValue);\r\n\r\n setValidationState(validation);\r\n onChange(newValue, validation);\r\n }, [onChange]);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nEmailInput.propTypes = {\r\n className: PropTypes.string,\r\n label: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n hint: PropTypes.string,\r\n value: PropTypes.string,\r\n onChange: PropTypes.func,\r\n};\r\n\r\nEmailInput.defaultProps = {\r\n className: '',\r\n label: '',\r\n placeholder: '',\r\n hint: '',\r\n value: '',\r\n onChange: _.noop,\r\n};\r\n","import React from 'react';\r\nimport { Link } from '@fluentui/react-components';\r\n\r\nexport const STEPS = {\r\n OPTIONS_STEP: 'OPTIONS_STEP',\r\n AGREE_STEP: 'AGREE_STEP',\r\n DISAGREE_STEP: 'DISAGREE_STEP',\r\n DONE_STEP: 'DONE_STEP',\r\n};\r\n\r\nexport const DECISIONS = {\r\n CONTACT_AGENT: 'ContactAgent',\r\n RECEIVE_EMAIL: 'ReceiveEmail',\r\n ACK_CHANGE: 'AckChange',\r\n DENY_CHANGE: 'DenyChange',\r\n};\r\n\r\nexport const STEPS_CONFIG = {\r\n [STEPS.OPTIONS_STEP]: {\r\n title: _TL_('Adopt Consent Mode for UET by May 5, 2025'),\r\n description: _TL_('Ensure proper consent transmission for users visiting from the European Economic Area (EEA), the United Kingdom, and Switzerland by implementing {{a}}Consent Mode{{/a}} with your UET tags to avoid any negative impact on conversion attribution and remarketing segments by May 5, 2025. Learn more: {{b}}FAQ: UET and user consent{{/b}}.'),\r\n radioList: [\r\n { value: 'agree', label: _TL_('We will enable Consent Mode by May 5, 2025') },\r\n { value: 'disagree', label: _TL_('We will not enable Consent Mode by May 5, 2025') },\r\n ],\r\n templateModel: {\r\n a: text => {text},\r\n b: text => {text},\r\n },\r\n },\r\n [STEPS.AGREE_STEP]: {\r\n title: _TL_('Get Assistance to set up Consent Mode'),\r\n description: _TL_('Please select your preferred method for setting up Consent Mode and implement it by May 5 to continue using conversion-based bid strategies. If Consent Mode isn\\'t implemented, Microsoft Advertising may adjust your bid strategy. '),\r\n radioList: [\r\n { value: 'agent', label: _TL_('Connect with an agent for setup assistance') },\r\n { value: 'email', label: _TL_('Receive setup instructions via email') },\r\n ],\r\n },\r\n [STEPS.DISAGREE_STEP]: {\r\n title: _TL_('Ensure Consent Mode compliance'),\r\n description: _TL_('After May 5, if you use UET without Consent Mode or TCF, Microsoft Advertising will stop tracking conversions and populating remarketing lists. This will affect campaign performance and UET-based features. To ensure your campaigns continue to perform effectively, please comply with Consent Mode requirements by May 5.'),\r\n radioList: [\r\n { value: 'accept', label: _TL_('Microsoft Advertising may update my bid strategy for affected campaigns') },\r\n { value: 'reject', label: _TL_('Microsoft Advertising won\\'t change my bid strategy. I understand this can affect my campaign performance') },\r\n ],\r\n },\r\n [STEPS.DONE_STEP]: {\r\n title: _TL_('Thank you for confirming your choice'),\r\n description: {\r\n [DECISIONS.CONTACT_AGENT]: _TL_('A support member will be in touch with you shortly via Copilot chat. If you need to change your selection, please contact {{a}}Microsoft Advertising support{{/a}}. '),\r\n [DECISIONS.RECEIVE_EMAIL]: _TL_('We\\'ve sent the instructions to your email. Please check your inbox for the details. If you need to change your selection, please contact {{a}}Microsoft Advertising support{{/a}}. '),\r\n [DECISIONS.ACK_CHANGE]: _TL_('Microsoft Advertising may update your bid strategy by May 5. We will send an email with details before making any changes. If you need to change your selection, please contact {{a}}Microsoft Advertising support{{/a}}.'),\r\n [DECISIONS.DENY_CHANGE]: _TL_('Microsoft Advertising won\\'t update your bid strategy. If you need to change your selection, please contact {{a}}Microsoft Advertising support{{/a}}.'),\r\n },\r\n templateModel: {\r\n a: text => {text},\r\n },\r\n },\r\n};\r\n\r\nexport const OPTIONS_DECISIONS_MAP = {\r\n email: DECISIONS.RECEIVE_EMAIL,\r\n agent: DECISIONS.CONTACT_AGENT,\r\n accept: DECISIONS.ACK_CHANGE,\r\n reject: DECISIONS.DENY_CHANGE,\r\n};\r\n\r\n\r\nexport const instrumentationSchema = {\r\n scenario: [\r\n {\r\n name: 'consentModeEnforcementDialog',\r\n value: 'ConsentModeEnforcementDialog',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'dialogActivity',\r\n value: 'DialogActivity',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Dialog,\r\n DialogSurface,\r\n DialogBody,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n Radio,\r\n RadioGroup,\r\n Button,\r\n} from '@fluentui/react-components';\r\nimport { MessageBar, MessageBarBody } from '@fluentui/react-message-bar';\r\nimport { CopilotToggleCustomEvent, LiveAgentQueue } from '@bingads-webui-react/msa-copilot-common';\r\nimport { UiBlocker } from '@bingads-webui-react/ui-blocker';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { compose, get, noop } from 'underscore';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withScope } from '@bingads-webui-react/scope-service';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\n\r\nimport { useStyles } from './use-styles';\r\nimport { EmailInput } from './email';\r\nimport { STEPS, STEPS_CONFIG, OPTIONS_DECISIONS_MAP, DECISIONS, instrumentationSchema } from './config';\r\nimport { getConsentModeDialogStatus, updateConsentModeDecision } from './data-repository';\r\n\r\nconst RadioOptions = React.memo(({\r\n classes,\r\n i18n,\r\n radioList,\r\n value,\r\n onChange,\r\n}) => (\r\n \r\n {\r\n radioList.map(radio => (\r\n \r\n ))\r\n }\r\n \r\n));\r\n\r\nRadioOptions.propTypes = {\r\n classes: PropTypes.shape({\r\n radioGroup: PropTypes.string,\r\n radioButton: PropTypes.string,\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n radioList: PropTypes.arrayOf(PropTypes.shape({\r\n value: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n })).isRequired,\r\n value: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nconst ConsentModeDialogInternl = ({\r\n i18n,\r\n permissions,\r\n serverContext,\r\n instrumentation,\r\n}) => {\r\n const isConsentModeEnformentEnabled = get(permissions, ['dynamic', 'ConsentModeEnforcement'], false);\r\n\r\n const classes = useStyles();\r\n const { CurrentAccount: { AdvertiserCustomerID: cid } } = serverContext;\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [shouldShowDialog, setShouldShowDialog] = useState(false);\r\n const [currentStep, setCurrentStep] = useState(STEPS.OPTIONS_STEP);\r\n const [agreeStatus, setAgreeStatus] = useState('agree');\r\n const [setupMethod, setSetupMethod] = useState('agent');\r\n const [acknowledgeStatus, setAcknowledgeStatus] = useState('accept');\r\n const [decision, setDecision] = useState(null);\r\n const [emails, setEmails] = useState('');\r\n const [validateResult, setValidationResult] = useState({ valid: false, message: '' });\r\n const [serverError, setServerError] = useState('');\r\n\r\n const logger = useMemo(() => {\r\n if (instrumentation && !instrumentation.ConsentModeEnforcementDialog) {\r\n instrumentation.addScenario(instrumentationSchema);\r\n }\r\n\r\n const backupLogger = {\r\n trace: noop,\r\n error: noop,\r\n };\r\n\r\n return get(instrumentation, 'ConsentModeEnforcementDialog')\r\n ? instrumentation.consentModeEnforcementDialog.create().dialogActivity.create()\r\n : backupLogger;\r\n }, [instrumentation]);\r\n\r\n const {\r\n title,\r\n description,\r\n radioList,\r\n templateModel = {},\r\n } = useMemo(() => STEPS_CONFIG[currentStep] || {}, [currentStep]);\r\n\r\n const triggerCopilotChat = useCallback(() => {\r\n const customEvent = new CopilotToggleCustomEvent({\r\n detail: {\r\n eventType: 'action',\r\n eventSource: 'consentModeEnforcement',\r\n eventData: {\r\n ActionId: 'liveAgentSupport',\r\n liveAgentParameters: {\r\n queue: LiveAgentQueue.ShoppingAndUET,\r\n problemDescription: i18n.getString(_TL_('Consent mode Setup')),\r\n },\r\n },\r\n },\r\n });\r\n document.dispatchEvent(customEvent);\r\n }, [i18n]);\r\n\r\n const onChangeEmail = useCallback((newValue, validation) => {\r\n setEmails(newValue);\r\n setValidationResult(validation);\r\n }, []);\r\n\r\n const makeDecision = useCallback(() => {\r\n const payload = {\r\n ConsentModeDecision: decision,\r\n EmailAddresses: emails,\r\n };\r\n\r\n logger.trace(`Consent mode decision: ${decision}, emails: ${emails}`);\r\n\r\n setIsLoading(true);\r\n\r\n return updateConsentModeDecision(cid, payload).then(res => res)\r\n .catch(err => Promise.reject(err))\r\n .finally(() => {\r\n setIsLoading(false);\r\n });\r\n }, [decision, emails, logger, cid]);\r\n\r\n const onConfirmDecision = useCallback(() => {\r\n makeDecision().then(() => {\r\n setCurrentStep(STEPS.DONE_STEP);\r\n }).catch((err) => {\r\n logger.error(`Get consent mode status failed: ${err}`);\r\n setServerError(err);\r\n });\r\n }, [makeDecision, logger]);\r\n\r\n const renderDescription = useCallback(() => {\r\n let finalizedDescription = description;\r\n if (currentStep === STEPS.DONE_STEP && typeof description === 'object') {\r\n finalizedDescription = description[decision];\r\n }\r\n\r\n return (\r\n \r\n );\r\n }, [currentStep, decision, description, i18n, templateModel]);\r\n\r\n const renderOptions = () => {\r\n if (currentStep === STEPS.OPTIONS_STEP) {\r\n return (\r\n setAgreeStatus(data.value)}\r\n />\r\n );\r\n } else if (currentStep === STEPS.AGREE_STEP) {\r\n const onChangeOption = (_, data) => {\r\n setSetupMethod(data.value);\r\n setDecision(OPTIONS_DECISIONS_MAP[data.value]);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {\r\n setupMethod === 'email' && (\r\n \r\n )\r\n }\r\n \r\n );\r\n } else if (currentStep === STEPS.DISAGREE_STEP) {\r\n const onChangeOption = (_, data) => {\r\n setAcknowledgeStatus(data.value);\r\n setDecision(OPTIONS_DECISIONS_MAP[data.value]);\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const renderBottomBtns = () => {\r\n if (currentStep === STEPS.OPTIONS_STEP) {\r\n const onNext = () => {\r\n if (agreeStatus === 'agree') {\r\n setCurrentStep(STEPS.AGREE_STEP);\r\n } else {\r\n setCurrentStep(STEPS.DISAGREE_STEP);\r\n }\r\n };\r\n\r\n return (\r\n \r\n );\r\n } else if (currentStep === STEPS.AGREE_STEP) {\r\n return (\r\n <>\r\n \r\n setCurrentStep(STEPS.OPTIONS_STEP)}\r\n className={classes.buttonSpacing}\r\n >\r\n {i18n.getString(_TL_('Back'))}\r\n \r\n \r\n );\r\n } else if (currentStep === STEPS.DISAGREE_STEP) {\r\n return (\r\n <>\r\n \r\n setCurrentStep(STEPS.OPTIONS_STEP)}\r\n className={classes.buttonSpacing}\r\n >\r\n {i18n.getString(_TL_('Back'))}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n {\r\n if (decision === DECISIONS.CONTACT_AGENT) {\r\n triggerCopilotChat();\r\n }\r\n\r\n setShouldShowDialog(false);\r\n }}\r\n >\r\n {i18n.getString(_TL_('Done'))}\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n getConsentModeDialogStatus(cid).then((res = {}) => {\r\n logger.trace(`Get consent mode status succeed: ${res}`);\r\n\r\n const { NeedShowPopUp } = res;\r\n setShouldShowDialog(!!NeedShowPopUp);\r\n\r\n if (NeedShowPopUp) {\r\n logger.trace('Show consent mode dialog');\r\n }\r\n }).catch((err) => {\r\n logger.error(`Get consent mode status failed: ${err}`);\r\n });\r\n }, [cid, logger]);\r\n\r\n // Update decision when get into decision step first time\r\n useEffect(() => {\r\n if (currentStep === STEPS.AGREE_STEP && !decision) {\r\n setDecision(OPTIONS_DECISIONS_MAP.agent);\r\n } else if (currentStep === STEPS.DISAGREE_STEP && !decision) {\r\n setDecision(OPTIONS_DECISIONS_MAP.accept);\r\n }\r\n }, [currentStep, decision]);\r\n\r\n\r\n if (!isConsentModeEnformentEnabled) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {i18n.getString(title)}\r\n \r\n
\r\n {renderDescription()}\r\n
\r\n {renderOptions()}\r\n {\r\n (currentStep === STEPS.AGREE_STEP || currentStep === STEPS.DISAGREE_STEP) && serverError\r\n && (\r\n \r\n \r\n {serverError}\r\n \r\n \r\n )\r\n }\r\n
\r\n \r\n {renderBottomBtns()}\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nConsentModeDialogInternl.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n permissions: PropTypes.shape({}).isRequired,\r\n serverContext: PropTypes.shape({\r\n CurrentAccount: PropTypes.shape({\r\n AdvertiserCustomerID: PropTypes.number,\r\n }).isRequired,\r\n }).isRequired,\r\n instrumentation: PropTypes.shape({\r\n addScenario: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nexport const ConsentModeDialog = compose(\r\n withInstrumentation,\r\n withScope,\r\n withI18nConsumer,\r\n withPreference,\r\n withPermissions\r\n)(ConsentModeDialogInternl);\r\n","import { edmCampaign } from '@bingads-webui/edm-campaign';\r\n\r\nexport const getConsentModeDialogStatus = cid => edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts['Default.UETConsentModeStatus']\r\n .get().toPromise().then(response => response).catch(error => Promise.reject(error));\r\n\r\nexport const updateConsentModeDecision = (cid, payload) => edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts['Default.UpdateConsentModeDecision']\r\n .$makeCall({\r\n payload,\r\n }).toPromise().then(response => response).catch(error => Promise.reject(error));\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { isSDK } from '@bingads-webui-campaign-react/sdk-utils';\r\nimport { getDisplayMode, DisplayMode } from '@bingads-webui-campaign-react/display-mode';\r\nimport { keyVault, withPopupContext } from '@bingads-webui-react/popup-manager';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { HotKeyDialogWithI18n, HotKeyNavigator } from '@bingads-webui-react/hot-keys';\r\nimport { CampaignHistoryRecorder } from '@bingads-webui-campaign-react/campaign-entity-search';\r\nimport { URLFilter } from '@bingads-webui-campaign/url-filter';\r\nimport { LightBoxDialog } from '@bingads-webui-campaign-react/lightbox';\r\nimport { SmartCampaignsPopup } from '@bingads-webui-campaign-react/smart-campaigns-popup';\r\nimport { SupportModals } from '@bingads-webui-react/support-modals';\r\nimport { WrappedFloatingBannerContainer } from '@bingads-webui-campaign/notification-center';\r\nimport { CalloutView } from '@bingads-webui-campaign-react/callout-service';\r\nimport { renderApexHelpSuggestions, renderSearchInputIcon } from '@bingads-webui-campaign-react/apex-help-dropdown-customized';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { isCopilotRegionRestricted } from '@bingads-webui-react/copilot-utils';\r\n\r\nimport { ApexUpdater } from './apex-updater';\r\nimport { WalkMeWithScopeAndContext } from './walk-me';\r\nimport { NewUIPreferenceDialog } from './newui-preference-dialog/newui-preference-dialog';\r\nimport { RouteChangeLogger } from './route-change-logger';\r\nimport { ImportStatusChecker } from './import-status-checker';\r\nimport { withCcJsDataContextProvider } from '../contexts/with-cc-js-data-context-provider';\r\nimport { PageTitleUpdater } from './page-title-updater';\r\nimport { NavigationRefreshLogger } from './navigation-refresh-logger';\r\nimport { NavigationRefreshDialog } from './navigation-refresh-dialog/navigation-refresh-dialog';\r\nimport { ConsentModeDialog } from './consent-mode-dialog';\r\n\r\nconst apexHelpContentKey = _.uniqueId(`${keyVault.apexHelpContent}-`);\r\nconst helpPopupKey = _.uniqueId(`${keyVault.helpPopup}-`);\r\n\r\nconst onHelpRailViewOpen = (popupManager) => {\r\n popupManager.forceAcquireLock(apexHelpContentKey);\r\n};\r\n\r\nconst onHelpRailViewClose = (popupManager, opener) => {\r\n popupManager.releaseLock(apexHelpContentKey);\r\n const $opener = $(opener);\r\n if (!$opener.is(':visible')) {\r\n const globalMenuHelpButton = $('.bingads-campaign-react-global-menu #help');\r\n globalMenuHelpButton.trigger('focus');\r\n }\r\n};\r\n\r\n// A patch to fix a11y bug\r\nconst replacePopupTitleTagWithH2 = (rootEle) => {\r\n const $titleEle = $(rootEle).find('h1#apex_h1_tag');\r\n if ($titleEle.length > 0) {\r\n const newTitleHtml = $titleEle.prop('outerHTML').replace('h1', 'h2');\r\n const $newTitle = $(newTitleHtml).css({\r\n color: '#323130',\r\n fontSize: '20px',\r\n marginBottom: '10px',\r\n });\r\n $titleEle.replaceWith($newTitle);\r\n }\r\n};\r\n\r\nconst onHelpPopupOpen = (popupManager, popupRootEle) => {\r\n replacePopupTitleTagWithH2(popupRootEle);\r\n popupManager.forceAcquireLock(helpPopupKey);\r\n};\r\n\r\nconst onHelpPopupClose = (popupManager) => {\r\n popupManager.releaseLock(helpPopupKey);\r\n};\r\n\r\nconst AfterPageReadyInternal = React.memo((props) => {\r\n useEffect(() => {\r\n // this is a temporary logic for the teaching bubble flight\r\n // we suspect the impression drop of the teaching bubble is caused by the API latency\r\n // the P95 of the import popup API call is 3 seconds\r\n // so we delay the priority comparison with 3.5 seconds for 10% of users to run the experiment\r\n setTimeout(() => {\r\n // clear gate when page is ready\r\n props.popupManager.clearGate();\r\n }, 3500);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const [isAdsCopilotRegionRestricted, setIsAdsCopilotRegionRestricted] = useState();\r\n const isAdsCopilotFraudRestrictionEnabled = _.get(props.permissions, ['dynamic', 'AdsCopilotFraudRestriction'], false);\r\n const isConsentModeEnformentEnabled = _.get(props.permissions, ['dynamic', 'ConsentModeEnforcement'], false);\r\n\r\n useEffect(() => {\r\n isCopilotRegionRestricted({\r\n feature: 'Chat',\r\n permissions: props.permissions,\r\n serverContext: props.serverContext,\r\n }).then(setIsAdsCopilotRegionRestricted);\r\n }, [props.permissions, props.serverContext]);\r\n\r\n const helpSearchBoxCopilotScenario = props.instrumentation.helpSearchBoxCopilotScenario.create();\r\n const logger = helpSearchBoxCopilotScenario.searchActivity.create();\r\n const isExpertMode = !_.get(props.serverContext, ['isSmartMode']) && !_.get(props.serverContext, ['isUpSmartMode']);\r\n const isNewLogo = _.get(props, ['permissions', 'dynamic', 'AdsCopilotUxImprovements']);\r\n\r\n const renderApexHelpSuggestionsWithi18n = useCallback((suggestionData, suggestionContainer, renderSuggestionToHtml, hideSuggestionBox) =>\r\n renderApexHelpSuggestions(suggestionData, suggestionContainer, renderSuggestionToHtml, hideSuggestionBox, props.i18n, logger, isNewLogo), [props.i18n, logger, isNewLogo]);\r\n\r\n const renderSearchInputIconWithi18n = useCallback(container => renderSearchInputIcon(container, props.i18n, isNewLogo), [props.i18n, isNewLogo]);\r\n const displayMode = getDisplayMode();\r\n\r\n const supportModalsProps = useMemo(() => {\r\n if (isAdsCopilotRegionRestricted === null || isAdsCopilotRegionRestricted === undefined) {\r\n // do not initialize apex until copilot region restriction check has finished\r\n return undefined;\r\n }\r\n\r\n const ret = {\r\n userContext: _.pick(props.serverContext, ['CurrentAccount', 'CurrentCustomer', 'CurrentUser']),\r\n supportOptions: props.serverContext.SupportOptions,\r\n permissions: _.extend({}, props.serverContext.Permissions, props.serverContext.DynamicPermissions),\r\n helpModel: props.serverContext.HelpModel,\r\n currentLocale: props.serverContext.CurrentLocale,\r\n i18n: props.i18n,\r\n resourcePath: props.serverContext.Urls && props.serverContext.Urls.VirtualAgentUrl,\r\n\r\n // apex help container\r\n onRailViewOpen: _.partial(onHelpRailViewOpen, props.popupManager),\r\n onRailViewClose: _.partial(onHelpRailViewClose, props.popupManager),\r\n\r\n // help popup\r\n onPopupOpen: _.partial(onHelpPopupOpen, props.popupManager),\r\n onPopupClose: _.partial(onHelpPopupClose, props.popupManager),\r\n };\r\n\r\n const isSDKMode = isSDK();\r\n\r\n if (isSDKMode) {\r\n _.extend(ret, {\r\n flowId: _.get(props.serverContext.SupportOptions, ['customSupportOptions', 'flowId']) || 'EXP-main-campaign',\r\n renderApexHelpSuggestions: isAdsCopilotRegionRestricted ? undefined : renderApexHelpSuggestionsWithi18n,\r\n });\r\n } else {\r\n const isShellless = displayMode === DisplayMode.Shellless;\r\n _.extend(ret, {\r\n flowId: 'EXP-main-campaign',\r\n renderApexHelpSuggestions: (isShellless || isAdsCopilotRegionRestricted) ? undefined : renderApexHelpSuggestionsWithi18n,\r\n renderSearchInputIcon: !isShellless && !isAdsCopilotRegionRestricted ? renderSearchInputIconWithi18n : _.noop,\r\n isCopilotEnabled: !isShellless && isExpertMode && (!isAdsCopilotRegionRestricted || isAdsCopilotFraudRestrictionEnabled),\r\n });\r\n }\r\n\r\n return ret;\r\n }, [\r\n isAdsCopilotFraudRestrictionEnabled,\r\n isAdsCopilotRegionRestricted,\r\n isExpertMode,\r\n displayMode,\r\n props.i18n,\r\n props.popupManager,\r\n props.serverContext,\r\n renderApexHelpSuggestionsWithi18n,\r\n renderSearchInputIconWithi18n,\r\n ]);\r\n\r\n return isSDK() ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {supportModalsProps && }\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 {isConsentModeEnformentEnabled && }\r\n \r\n \r\n {supportModalsProps && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nAfterPageReadyInternal.propTypes = {\r\n serverContext: PropTypes.shape({\r\n CurrentCustomer: PropTypes.shape({\r\n Id: PropTypes.number,\r\n }),\r\n CurrentUser: PropTypes.shape({\r\n Id: PropTypes.number,\r\n }),\r\n Permissions: PropTypes.shape({}),\r\n DynamicPermissions: PropTypes.shape({}),\r\n SupportOptions: PropTypes.shape({}),\r\n HelpModel: PropTypes.shape({}),\r\n CurrentLocale: PropTypes.string,\r\n Urls: PropTypes.shape({\r\n VirtualAgentUrl: PropTypes.string,\r\n }),\r\n }).isRequired,\r\n permissions: PropTypes.shape({\r\n dynamic: PropTypes.shape({\r\n AdsCopilotFraudRestriction: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n preferenceService: PropTypes.shape({}).isRequired,\r\n popupManager: PropTypes.shape({\r\n clearGate: PropTypes.func,\r\n }).isRequired,\r\n instrumentation: PropTypes.shape({ helpSearchBoxCopilotScenario: PropTypes.shape({ create: PropTypes.func }) }).isRequired,\r\n};\r\n\r\nexport const AfterPageReady =\r\n _.compose(\r\n withPopupContext,\r\n withCcJsDataContextProvider,\r\n withServerContext,\r\n withPreference,\r\n withI18nConsumer,\r\n withPermissions,\r\n withInstrumentation\r\n )(AfterPageReadyInternal);\r\n","import { withPageReadyAsync } from '@bingads-webui-react/with-page-ready';\r\n\r\nexport const DelayedNotificationsBar = withPageReadyAsync(() =>\r\n Promise.all([\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/notification-bar'),\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/notification-center'),\r\n ]).then(([\r\n { getNotificationsBar },\r\n {\r\n getStoreInstance,\r\n DisapprovedEntities,\r\n ImportStatus,\r\n NoEntityNotifications,\r\n PredefinedNotifications,\r\n UETNotifications,\r\n CCNotifications,\r\n ImportNotification,\r\n DraftStoreNotification,\r\n PmaxCampaignUpgradeNotification,\r\n LocationIntentUpdateNotifications,\r\n HotelCenterMigrationNotification,\r\n HotelCenterMigrationPhase2Notification,\r\n HotelCenterMigrationPhase3Notification,\r\n BroadOnlyNotification,\r\n GMCTokenExpiredNotification,\r\n DeprecateSyndicationSearchOnlyNotification,\r\n },\r\n ]) => {\r\n const getNotifications = context => [\r\n new PredefinedNotifications(context).getPredefinedAlerts(),\r\n new DisapprovedEntities(context).getDisapprovedEntityNotifications(),\r\n new ImportStatus(context).getImportStatusNotifications(),\r\n new NoEntityNotifications(context).getNoEligibleEntityNotifications(),\r\n new UETNotifications(context).getUETNotifications(),\r\n new CCNotifications(context).getCCNotifications(),\r\n new ImportNotification(context).getImportNotifications(),\r\n new DraftStoreNotification(context).DraftStoreNotifications(),\r\n new PmaxCampaignUpgradeNotification(context).getPmaxCampaignUpgradeNotifications(),\r\n new LocationIntentUpdateNotifications(context).getLocationIntentUpdateNotifications(),\r\n new HotelCenterMigrationPhase2Notification(context).getHotelCenterMigrationPhase2Notifications(),\r\n new HotelCenterMigrationPhase3Notification(context).getHotelCenterMigrationPhase3Notifications(),\r\n new HotelCenterMigrationNotification(context).getHotelCenterMigrationNotifications(),\r\n new BroadOnlyNotification(context).getBroadOnlyNotifications(),\r\n new GMCTokenExpiredNotification(context).getAlerts(),\r\n new DeprecateSyndicationSearchOnlyNotification(context).getDeprecateSyndicationSearchOnlyNotifications(),\r\n ];\r\n\r\n const store = getStoreInstance({\r\n getNotifications,\r\n });\r\n\r\n return {\r\n default: getNotificationsBar(store),\r\n };\r\n }), null);\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { DraftAccountPage } from '@bingads-webui-campaign-react/draft-error-page';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\n\r\nconst DraftAccountPageWraperInternal = React.memo((props) => {\r\n const appActivity = useMemo(() => {\r\n const appScenario = props.instrumentation.appScenario.create();\r\n return appScenario.appActivity.create();\r\n }, [props.instrumentation]);\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n});\r\n\r\nDraftAccountPageWraperInternal.propTypes = {\r\n serverContext: PropTypes.shape({\r\n CurrentCustomer: PropTypes.shape({\r\n Id: PropTypes.number,\r\n }),\r\n CurrentUser: PropTypes.shape({\r\n Id: PropTypes.number,\r\n }),\r\n Permissions: PropTypes.shape({}),\r\n DynamicPermissions: PropTypes.shape({}),\r\n }).isRequired,\r\n instrumentation: PropTypes.shape({\r\n appScenario: PropTypes.any,\r\n }).isRequired,\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nexport const DraftAccountPageWraper = withServerContext(withInstrumentation(DraftAccountPageWraperInternal));\r\n","/* eslint-disable max-len */\r\nimport { pickManyImports, getDefaultExport, pickManyImportsWithLazyInit, importAfterPreLoad } from './utils';\r\n\r\nconst resourceMapping = window.routerBundleMapping;\r\n\r\nconst bundles = {\r\n StyledAccounts: resourceMapping['/campaign/vnext/accounts'],\r\n StyledBulkEdits: resourceMapping['/campaign/vnext/bulk-edits'],\r\n StyledBulkEditsDetail: resourceMapping['/campaign/vnext/bulkeditdetail'],\r\n MCMCampaignControl: resourceMapping['/campaign/vnext/mcmcampaigncontrol'],\r\n StyledCompetitionAuctionInsight: resourceMapping['/campaign/vnext/competitionauction'],\r\n StyledAdGroups: resourceMapping['/campaign/vnext/adgroups'],\r\n StyledSettingsForm: resourceMapping['/campaign/vnext/settingsform'],\r\n StyledSettingsSummary: resourceMapping['/campaign/vnext/settingssummary'],\r\n StyledDevices: resourceMapping['/campaign/vnext/settingscriterion'],\r\n StyledChangeHistory: resourceMapping['/campaign/vnext/changehistory'],\r\n StyledKeywordPlanner: resourceMapping['/campaign/vnext/keywordplanner'],\r\n StyledAdPreview: resourceMapping['/campaign/vnext/adpreview'],\r\n StyledAdInsightKeywordPlanner: resourceMapping['/research/vnext/keywordplanner'],\r\n StyledAdInsightAdPreview: resourceMapping['/research/vnext/adpreview'],\r\n StyledCompetitionRecommendations: resourceMapping['/campaign/vnext/competitionrecommendations'],\r\n StyledGMBImport: resourceMapping['/campaign/vnext/businesslocationfeed'],\r\n StyledFeeds: resourceMapping['/campaign/vnext/feeds'],\r\n StyledProductFeedPage: resourceMapping['/campaign/vnext/productfeed'],\r\n StyledLinkedStorePage: resourceMapping['/campaign/vnext/productfeed'],\r\n StyledBrandPage: resourceMapping['/campaign/vnext/productfeed'],\r\n StyledFeedSummaryPage: resourceMapping['/campaign/vnext/productfeed'],\r\n StyledTargetedLocations: resourceMapping['/campaign/vnext/settingscriterion'],\r\n StyledExcludedLocations: resourceMapping['/campaign/vnext/settingscriterion'],\r\n StyledAds: resourceMapping['/campaign/vnext/ads'],\r\n StyledAssets: resourceMapping['/campaign/vnext/assets'],\r\n StyledAssetsReport: resourceMapping['/campaign/vnext/assets-report'],\r\n StyledCombinations: resourceMapping['/campaign/vnext/combinations'],\r\n StyledLabels: resourceMapping['/campaign/vnext/labels'],\r\n StyledProducts: resourceMapping['/campaign/vnext/products'],\r\n ProductGroupsShell: resourceMapping['/campaign/vnext/productgroups'],\r\n StyledHotels: resourceMapping['/campaign/vnext/hotels'],\r\n StyleProperties: resourceMapping['/campaign/vnext/properties'],\r\n HotelGroupsShell: resourceMapping['/campaign/vnext/hotelgroups'],\r\n PropertyGroupsShell: resourceMapping['/campaign/vnext/propertygroups'],\r\n ListingGroupsShell: resourceMapping['/campaign/vnext/listinggroups'],\r\n BidStrategiesShell: resourceMapping['/campaign/vnext/bidstrategies'],\r\n PerformanceTargetsShell: resourceMapping['/campaign/vnext/performancetargets'],\r\n StyledAudienceAssociationPage: 'audience-associations/loader-ui-next',\r\n StyledPositiveKeywords: 'keywords/loader-ui-next',\r\n StyledNegativeKeywords: resourceMapping['/campaign/vnext/negative-keywords'],\r\n StyledAudienceAssociationCreation: 'audience/association/view/loader-ui-next',\r\n StyledAdSchedule: resourceMapping['/campaign/vnext/settingscriterion'],\r\n StyledOverview: resourceMapping['/campaign/vnext/overview'],\r\n StyledCampaignCreationSearch: 'campaign-create-advanced/loader-ui-next',\r\n StyledCampaignCreationSmartShopping: resourceMapping['/campaign/vnext/createcampaign/smartshopping'],\r\n StyledSearchterm: resourceMapping['/campaign/vnext/searchterms'],\r\n StyledAudiencesLibrary: resourceMapping['/campaign/vnext/audienceslibrary'],\r\n StyledAudienceCreation: resourceMapping['/campaign/vnext/audience/create'],\r\n StyledAudienceEdit: resourceMapping['/campaign/vnext/audience/create'],\r\n StyledConversionGoalsAutoCreate: resourceMapping['/campaign/vnext/conversiongoals/autocreate'],\r\n StyledConversionGoalsCreate: resourceMapping['/campaign/vnext/conversiongoals/create'],\r\n StyledConversionGoalsEdit: resourceMapping['/campaign/vnext/conversiongoals/create'],\r\n StyledUetTags: resourceMapping['/campaign/vnext/uettag'],\r\n StyledUetTestPage: resourceMapping['/campaign/vnext/uettagtest'],\r\n StyledUetWebInsights: resourceMapping['/campaign/vnext/uettaginsights'],\r\n StyledUetTagsCreate: resourceMapping['/campaign/vnext/uettags/create'],\r\n StyledUetTagsEdit: resourceMapping['/campaign/vnext/uettags/edit'],\r\n StyledOfflineConversions: resourceMapping['/campaign/vnext/offlineconversions'],\r\n StyledModeledConversions: resourceMapping['/campaign/vnext/modeled-conversions'],\r\n StyledConversionGoals: resourceMapping['/campaign/vnext/conversiongoals'],\r\n StyledConversionValueRules: resourceMapping['/campaign/vnext/conversionvaluerules'],\r\n StyledConversionValueRulesCreate: resourceMapping['/campaign/vnext/conversionvaluerules/create'],\r\n StyledConversionValueRulesEdit: resourceMapping['/campaign/vnext/conversionvaluerules/edit'],\r\n StyledHotelCenter: resourceMapping['/campaign/vnext/hotelcenter'],\r\n StyledHotelCenterV2: resourceMapping['/campaign/vnext/propertycenter'],\r\n DemographicsShell: resourceMapping['/campaign/vnext/demographics'],\r\n DynamicAdTargets: resourceMapping['/campaign/vnext/dynamicadtargets'],\r\n StyledExperiments: resourceMapping['/campaign/vnext/experiments'],\r\n DimensionsShell: resourceMapping['/campaign/vnext/dimensions'],\r\n NegativeKeywordsListsShell: resourceMapping['/campaign/vnext/negativekeywordslists'],\r\n NegativeKeywordListsLibraryShell: resourceMapping['/campaign/vnext/negativekeywordslists'],\r\n NegativeKeywordsListsDetailsShell: resourceMapping['/campaign/vnext/negativekeywordslistsdetails'],\r\n StyledImportCenter: resourceMapping['/campaign/vnext/importcenter'],\r\n StyledLiftMeasurement: resourceMapping['/campaign/vnext/liftmeasurement'],\r\n StyledLiftMeasurementCreate: resourceMapping['/campaign/vnext/liftmeasurement/create'],\r\n StyledLiftMeasurementEdit: resourceMapping['/campaign/vnext/liftmeasurement/edit'],\r\n StyledLiftMeasurementResults: resourceMapping['/campaign/vnext/liftmeasurement/results'],\r\n};\r\n\r\n// TODO: this is a temporary solution to import highcharts if a page uses it.\r\n// Consider two ways to get rid of this mapping and related logic:\r\n// 1. Let HighchartReactWrapper to import accessibility module. (Highly recommended)\r\n// 2. Find a way that webpack can shim highcharts when loading it.\r\nexport const bundlesUseHighcharts = {\r\n [resourceMapping['/campaign/vnext/accounts']]: true,\r\n [resourceMapping['/campaign/vnext/competitionauction']]: true,\r\n [resourceMapping['/campaign/vnext/campaigns']]: true,\r\n [resourceMapping['/campaign/vnext/adgroups']]: true,\r\n [resourceMapping['/campaign/vnext/settingscriterion']]: true,\r\n [resourceMapping['/campaign/vnext/changehistory']]: true,\r\n 'recommendation/loader-ui-next': true,\r\n [resourceMapping['/campaign/vnext/keywordplanner']]: true,\r\n [resourceMapping['/campaign/vnext/competitionrecommendations']]: true,\r\n [resourceMapping['/campaign/vnext/productfeed']]: true,\r\n [resourceMapping['/campaign/vnext/ads']]: true,\r\n [resourceMapping['/campaign/vnext/products']]: true,\r\n [resourceMapping['/campaign/vnext/productgroups']]: true,\r\n [resourceMapping['/campaign/vnext/hotelgroups']]: true,\r\n [resourceMapping['/campaign/vnext/propertygroups']]: true,\r\n [resourceMapping['/campaign/vnext/performancetargets']]: true,\r\n 'audience-associations/loader-ui-next': true,\r\n 'keywords/loader-ui-next': true,\r\n [resourceMapping['/campaign/vnext/searchterms']]: true,\r\n [resourceMapping['/campaign/vnext/overview']]: true,\r\n [resourceMapping['/campaign/vnext/demographics']]: true,\r\n [resourceMapping['/campaign/vnext/dynamicadtargets']]: true,\r\n [resourceMapping['/campaign/vnext/merchantcenter']]: true,\r\n [resourceMapping['/campaign/vnext/overview']]: true,\r\n};\r\n\r\nconst HotelCampaignCreation = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"hotel-campaign-creation-page\" */'../feature-bootstrap/hotel-campaign-creation-page').then(getDefaultExport), false, true);\r\nconst StyledCompetitionAuctionInsight = () => importAfterPreLoad(bundles.StyledCompetitionAuctionInsight, () => import(/* webpackChunkName: \"competition-auction-insight-page\" */'../feature-bootstrap/competition-auction-insight-page').then(getDefaultExport), false, true);\r\nconst StyledSharedBudgetSummary = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"shared-budget-all-page\" */'../feature-bootstrap/shared-budget-summary-page').then(getDefaultExport), false, true);\r\nconst StyledSharedBudgetEdit = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"shared-budget-all-page\" */'../feature-bootstrap/shared-budget-edit-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledPortfolioBidStrategy = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"portfolio-bid-strategy-page\" */'../feature-bootstrap/portfolio-bid-strategy-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledSeasonalityAdjustment = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"seasonality-adjustment-page\" */'../feature-bootstrap/seasonality-adjustment-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledBulkEdits = () => importAfterPreLoad(bundles.StyledBulkEdits, () => import(/* webpackChunkName: \"bulk-edits-page\" */'../feature-bootstrap/bulk-edits-page').then(getDefaultExport), false, true);\r\nconst StyledBulkEditsDetail = () => importAfterPreLoad(bundles.StyledBulkEditsDetail, () => import(/* webpackChunkName: \"bulk-edits-page\" */'../feature-bootstrap/bulk-edits-detail-page').then(getDefaultExport), false, true);\r\nconst MCMCampaignControl = () => importAfterPreLoad(bundles.MCMCampaignControl, () => import(/* webpackChunkName: \"mcm-campaign-control-page\" */'../feature-bootstrap/mcm-campaign-control-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledImportSchedule = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"import-schedule-page\" */'../feature-bootstrap/import-schedule-page').then(getDefaultExport), false, true);\r\n\r\nconst importScriptsCommon = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"scripts-common\" */'../feature-bootstrap/scripts-common'), false, true);\r\n\r\nconst StyledScripts = () => importScriptsCommon().then(getDefaultExport).then(defaultExport => defaultExport.ScriptsPage);\r\nconst StyledScriptsHistory = () => importScriptsCommon().then(getDefaultExport).then(defaultExport => defaultExport.ScriptHistoryPage);\r\nconst StyledScriptsLogs = () => importScriptsCommon().then(getDefaultExport).then(defaultExport => defaultExport.ScriptLogsPage);\r\nconst StyledScriptsEdit = () => importScriptsCommon().then(getDefaultExport).then(defaultExport => defaultExport.ScriptsEditPage);\r\n\r\nconst BulkUploadsShell = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"bulk-uploads-page\" */'../feature-bootstrap/bulk-uploads-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAdGroups = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"ad-groups-page\" */'../feature-bootstrap/ad-groups-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledSettingsForm = () => importAfterPreLoad(bundles.StyledSettingsForm, () => import(/* webpackChunkName: \"settings-form-page\" */'../feature-bootstrap/settings-form-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledDevices = () => importAfterPreLoad(bundles.StyledDevices, () => import(/* webpackChunkName: \"devices-page\" */'../feature-bootstrap/devices-page').then(getDefaultExport), true, true);\r\n\r\nconst RecommendationsShell = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"recommendations-page\" */'../feature-bootstrap/recommendations-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledChangeHistory = () => importAfterPreLoad(bundles.StyledChangeHistory, () => import(/* webpackChunkName: \"change-history-page\" */'../feature-bootstrap/change-history-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledCompetitionRecommendations = () => importAfterPreLoad(bundles.StyledCompetitionRecommendations, () => import(/* webpackChunkName: \"competition-recommendations-page\" */'../feature-bootstrap/competition-recommendations-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledGmbImport = () => importAfterPreLoad(bundles.StyledGMBImport, () => import(/* webpackChunkName: \"gmb-import-page\" */'../feature-bootstrap/gmb-import-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledFeeds = () => importAfterPreLoad(bundles.StyledFeeds, () => import(/* webpackChunkName: \"feeds-page\" */'../feature-bootstrap/feeds-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledProductFeedPage = () => importAfterPreLoad(bundles.StyledProductFeedPage, () => import(/* webpackChunkName: \"product-feed-page\" */'../feature-bootstrap/product-feed-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledLinkedStorePage = () => importAfterPreLoad(bundles.StyledLinkedStorePage, () => import(/* webpackChunkName: \"linked-store-page\" */'../feature-bootstrap/linked-store-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledBrandPage = () => importAfterPreLoad(bundles.StyledBrandPage, () => import(/* webpackChunkName: \"brand-page\" */'../feature-bootstrap/brand-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledFeedSummaryPage = () => importAfterPreLoad(bundles.StyledFeedSummaryPage, () => import(/* webpackChunkName: \"feed-summary-page\" */'../feature-bootstrap/feed-summary-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledTargetedLocations = () => importAfterPreLoad(bundles.StyledTargetedLocations, () => import(/* webpackChunkName: \"targeted-locations-page\" */'../feature-bootstrap/targeted-locations-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledExcludedLocations = () => importAfterPreLoad(bundles.StyledExcludedLocations, () => import(/* webpackChunkName: \"excluded-locations-page\" */'../feature-bootstrap/excluded-locations-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAds = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"ad-page\" */'../feature-bootstrap/ads-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledAssets = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"assets-page\" */'../feature-bootstrap/assets-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledAssetsReport = () => importAfterPreLoad(bundles.StyledAssetsReport, () => import(/* webpackChunkName: \"assets-report-page\" */'../feature-bootstrap/assets-report-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledCombinations = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"combinations-page\" */'../feature-bootstrap/combinations-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledLabels = () => importAfterPreLoad(bundles.StyledLabels, () => import(/* webpackChunkName: \"labels-page\" */'../feature-bootstrap/labels-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledProducts = () => importAfterPreLoad(bundles.StyledProducts, () => import(/* webpackChunkName: \"products-page\" */'../feature-bootstrap/products-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledHotels = () => importAfterPreLoad(bundles.StyledHotels, () => import(/* webpackChunkName: \"hotels-page\" */'../feature-bootstrap/hotels-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledProperties = () => importAfterPreLoad(bundles.StyledProperties, () => import(/* webpackChunkName: \"properties-page\" */'../feature-bootstrap/hotels-page').then(getDefaultExport), false, true);\r\n\r\nconst HotelGroupsShell = () => importAfterPreLoad(bundles.HotelGroupsShell, () => import(/* webpackChunkName: \"hotel-groups-page\" */'../feature-bootstrap/hotel-groups-page').then(getDefaultExport), false, true);\r\n\r\nconst PropertyGroupsShell = () => importAfterPreLoad(bundles.PropertyGroupsShell, () => import(/* webpackChunkName: \"property-groups-page\" */'../feature-bootstrap/hotel-groups-page').then(getDefaultExport), false, true);\r\n\r\nconst BidStrategiesShell = () => importAfterPreLoad(bundles.BidStrategiesShell, () => import(/* webpackChunkName: \"bid-strategies-page\" */'../feature-bootstrap/bid-strategies-page').then(getDefaultExport), false, true);\r\n\r\nconst ProductGroupsShell = () => importAfterPreLoad(bundles.ProductGroupsShell, () => import(/* webpackChunkName: \"products-page\" */'../feature-bootstrap/product-groups-page').then(getDefaultExport), false, true);\r\n\r\nconst PerformanceTargetsShell = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"performance-targets-page\" */'../feature-bootstrap/performance-targets-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledAudienceAssociationPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"audiences-page\" */'../feature-bootstrap/audiences-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledPositiveKeywords = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"positive-keywords-page\" */'../feature-bootstrap/positive-keywords-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledNegativeKeywords = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"negative-keywords-page\" */'../feature-bootstrap/negative-keywords-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAudienceAssociationCreation = () => importAfterPreLoad(bundles.StyledAudienceAssociationCreation, () => import(/* webpackChunkName: \"audience-association-creation\" */'../feature-bootstrap/audience-association-creation').then(getDefaultExport), false, true);\r\n\r\nconst StyledAdSchedule = () => importAfterPreLoad(bundles.StyledAdSchedule, () => import(/* webpackChunkName: \"ad-schedule-page\" */'../feature-bootstrap/ad-schedule-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAudienceNetworkPlanner = () => importAfterPreLoad([], () => import(/* webpackChunkName: \"audience-network-planner-page\" */'../feature-bootstrap/audience-network-planner-page').then(getDefaultExport), true, true);\r\n\r\nconst StyledAudiencesLibrary = () => importAfterPreLoad(bundles.StyledAudiencesLibrary, () => import(/* webpackChunkName: \"audiences-library\" */'../feature-bootstrap/audiences-library').then(getDefaultExport), false, true);\r\n\r\nconst StyledAudienceSignalManagement = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"audience-signal-management-grid\" */'../feature-bootstrap/audience-signal-management-grid').then(getDefaultExport), false, true);\r\n\r\nconst StyledAudienceCustomSegmentsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"audience-custom-segments-page\" */'../feature-bootstrap/audience-custom-segments-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAudienceCreation = () => importAfterPreLoad(bundles.StyledAudiencesLibrary, () => import(/* webpackChunkName: \"audiences-library\" */'../feature-bootstrap/audience-creation').then(getDefaultExport), false, true);\r\n\r\nconst StyledAudienceEdit = () => importAfterPreLoad(bundles.StyledAudiencesLibrary, () => import(/* webpackChunkName: \"audiences-library\" */'../feature-bootstrap/audience-creation').then(getDefaultExport), false, true);\r\n\r\nconst StyledUetTags = () => importAfterPreLoad(bundles.StyledUetTags, () => import(/* webpackChunkName: \"uet-tags\" */'../feature-bootstrap/uet-tags').then(getDefaultExport), false, true);\r\n\r\nconst StyledUetTestPage = () => importAfterPreLoad(bundles.StyledUetTestPage, () => import(/* webpackChunkName: \"uet-tags\" */'../feature-bootstrap/uet-tags-test').then(getDefaultExport), false, true);\r\n\r\nconst StyledUetWebInsights = () => importAfterPreLoad(bundles.StyledUetWebInsights, () => import(/* webpackChunkName: \"uet-tags\" */'../feature-bootstrap/uet-web-insights').then(getDefaultExport), false, true);\r\n\r\nconst StyledUetTagsCreate = () => importAfterPreLoad(bundles.StyledUetTags, () => import(/* webpackChunkName: \"uet-tags\" */'../feature-bootstrap/uet-tags-create').then(getDefaultExport), false, true);\r\n\r\nconst StyledUetTagsEdit = () => importAfterPreLoad(bundles.StyledUetTags, () => import(/* webpackChunkName: \"uet-tags\" */'../feature-bootstrap/uet-tags-create').then(getDefaultExport), false, true);\r\n\r\nconst DemographicsShell = () => importAfterPreLoad(bundles.DemographicsShell, () => import(/* webpackChunkName: \"demographics-page\" */'../feature-bootstrap/demographics-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledManagement = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"management-page\" */'../feature-bootstrap/management-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledRequests = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"requests-page\" */'../feature-bootstrap/requests-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledNotifications = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"notifications-page\" */'../feature-bootstrap/notifications-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAccountLevelImportTab = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"account-import-page\" */'../feature-bootstrap/account-import-page').then(getDefaultExport), false, true);\r\n\r\nconst AccountCreation = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"account-creation\" */'../feature-bootstrap/account-creation').then(getDefaultExport), false, true);\r\n\r\nconst AccountLinking = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"account-linking\" */'../feature-bootstrap/account-linking').then(getDefaultExport), false, true);\r\n\r\nconst AccountsTransfer = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"accounts-transfer\" */'../feature-bootstrap/accounts-transfer').then(getDefaultExport), false, true);\r\n\r\nconst PendingTransferRequest = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"pending-transfer-request\" */'../feature-bootstrap/pending-transfer-request').then(getDefaultExport), false, true);\r\n\r\nconst AccountsUnlinking = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"accounts-unlinking\" */'../feature-bootstrap/accounts-unlinking').then(getDefaultExport), false, true);\r\n\r\nconst Reports = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"reports\" */'../feature-bootstrap/reports-requirejs').then(getDefaultExport), false, true);\r\n\r\nconst ReportsV4 = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"reports-v4-page\" */'../feature-bootstrap/reports-v4-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledCustomReportingPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"custom-reports-page\" */'../feature-bootstrap/custom-reports-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledExperiments = () => importAfterPreLoad(bundles.StyledExperiments, () => import(/* webpackChunkName: \"experiments-page\" */'../feature-bootstrap/experiments-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledSearchterm = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"search-term-page\" */'../feature-bootstrap/search-term-page').then(getDefaultExport), true, true);\r\n\r\nconst DimensionsShell = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"dimensions-page\" */'../feature-bootstrap/dimensions-page').then(getDefaultExport), false, true);\r\n\r\nconst CampaignDimensionShell = () => importAfterPreLoad(bundles.DimensionsShell, () => import(/* webpackChunkName: \"common-dimension-page\" */'../feature-bootstrap/campaign-dimension-page').then(getDefaultExport), false, true);\r\n\r\nconst SiteExclusionListCustomerCreationShell = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"site-exclusion-list-all-pages\" */'../feature-bootstrap/site-exclusion-list-customer-creation-shell').then(getDefaultExport), false, true);\r\n\r\nconst SiteExclusionListCustomerEditPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"site-exclusion-list-all-pages\" */'../feature-bootstrap/site-exclusion-list-customer-edit-page').then(getDefaultExport), false, true);\r\n\r\nconst SiteExclusionListAccountLevelListPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"site-exclusion-list-all-pages\" */'../feature-bootstrap/site-exclusion-list-account-level-list-page').then(getDefaultExport), false, true);\r\n\r\nconst SiteExclusionListAccountLevelExclusionsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"site-exclusion-list-all-pages\" */'../feature-bootstrap/site-exclusion-list-account-level-exclusions-page').then(getDefaultExport), false, true);\r\n\r\nconst WebsiteExclusionListsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"site-exclusion-list-all-pages\" */'../feature-bootstrap/website-exclusion-lists-page').then(getDefaultExport), false, false);\r\n\r\nconst WebsiteExclusionListsCustomerEditPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"site-exclusion-list-all-pages\" */'../feature-bootstrap/website-exclusion-lists-customer-edit-page').then(getDefaultExport), false, false);\r\n\r\nconst WebsiteExclusionListsAccountLevelListPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"site-exclusion-list-all-pages\" */'../feature-bootstrap/website-exclusion-lists-account-level-list-page').then(getDefaultExport), false, false);\r\n\r\nconst WebsiteExclusionListsAccountLevelExclusionsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"site-exclusion-list-all-pages\" */'../feature-bootstrap/website-exclusion-lists-account-level-exclusions-page').then(getDefaultExport), false, false);\r\n\r\nconst BrandSafetyPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"brand-safety-all-pages\" */'../feature-bootstrap/brand-safety-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledConversionGoals = () => importAfterPreLoad(bundles.StyledConversionGoals, () => import(/* webpackChunkName: \"conversion-goals\" */'../feature-bootstrap/conversion-goals').then(getDefaultExport), false, true);\r\n\r\nconst StyledConversionValueRules = () => importAfterPreLoad(bundles.StyledConversionValueRules, () => import(/* webpackChunkName: \"conversion-value-rules\" */'../feature-bootstrap/conversion-value-rules').then(getDefaultExport));\r\n\r\nconst StyledConversionValueRulesCreate = () => importAfterPreLoad(bundles.StyledConversionValueRulesCreate, () => import(/* webpackChunkName: \"conversion-value-rules-create\" */'../feature-bootstrap/conversion-value-rules-create').then(getDefaultExport));\r\n\r\nconst StyledConversionValueRulesEdit = () => importAfterPreLoad(bundles.StyledConversionValueRulesCreate, () => import(/* webpackChunkName: \"conversion-value-rules-create\" */'../feature-bootstrap/conversion-value-rules-create').then(getDefaultExport));\r\n\r\nconst StyledConversionGoalsAutoCreate = () => importAfterPreLoad(bundles.StyledConversionAutoGoals, () => import(/* webpackChunkName: \"conversion-goals-auto-create\" */'../feature-bootstrap/conversion-goals-auto-create').then(getDefaultExport));\r\n\r\nconst StyledConversionGoalsCreate = () => importAfterPreLoad(bundles.StyledConversionGoals, () => import(/* webpackChunkName: \"conversion-goals\" */'../feature-bootstrap/conversion-goals-create').then(getDefaultExport));\r\n\r\nconst StyledConversionGoalsEdit = () => importAfterPreLoad(bundles.StyledConversionGoals, () => import(/* webpackChunkName: \"conversion-goals\" */'../feature-bootstrap/conversion-goals-create').then(getDefaultExport), false, true);\r\n\r\nconst StyledHotelCenter = () => importAfterPreLoad(bundles.StyledHotelCenter, () => import(/* webpackChunkName: \"hotel-center-page\" */'../feature-bootstrap/hotel-center-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledHotelCenterV2 = () => importAfterPreLoad(bundles.StyledHotelCenterV2, () => import(/* webpackChunkName: \"hotel-center-v2-page\" */'../feature-bootstrap/hotel-center-v2-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledOfflineConversions = () => importAfterPreLoad(bundles.StyledOfflineConversions, () => import(/* webpackChunkName: \"offline-conversions\" */'../feature-bootstrap/offline-conversions').then(getDefaultExport), false, true);\r\n\r\nconst StyledCustomerAcquisition = () => importAfterPreLoad(bundles.StyledCustomerAcquisition, () => import(/* webpackChunkName: \"customer-acquisition\" */'../feature-bootstrap/customer-acquisition').then(getDefaultExport), false, true);\r\n\r\nconst StyledModeledConversions = () => importAfterPreLoad(bundles.StyledModeledConversions, () => import(/* webpackChunkName: \"modeled-conversions\" */'../feature-bootstrap/modeled-conversions').then(getDefaultExport), false, true);\r\n\r\nconst StyledKeywordPlanner = () => importAfterPreLoad(bundles.StyledKeywordPlanner, () => import(/* webpackChunkName: \"keyword-planner\" */'../feature-bootstrap/keyword-planner').then(getDefaultExport), false, true);\r\n\r\nconst StyledAdPreview = () => importAfterPreLoad(bundles.StyledAdPreview, () => import(/* webpackChunkName: \"ad-preview\" */'../feature-bootstrap/ad-preview').then(getDefaultExport), false, true);\r\n\r\nconst StyledAdInsightKeywordPlanner = () => importAfterPreLoad(bundles.StyledAdInsightKeywordPlanner, () => import(/* webpackChunkName: \"keyword-planner\" */'../feature-bootstrap/keyword-planner').then(getDefaultExport), false, true);\r\n\r\nconst StyledAdInsightAdPreview = () => importAfterPreLoad(bundles.StyledAdInsightAdPreview, () => import(/* webpackChunkName: \"ad-preview\" */'../feature-bootstrap/ad-preview').then(getDefaultExport), false, true);\r\n\r\nconst MerchantCenterShell = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"merchant-center-page\" */'../feature-bootstrap/merchant-center-page').then(getDefaultExport), true, true);\r\n\r\nconst NegativeKeywordsLists = () => importAfterPreLoad(bundles.NegativeKeywordsListsShell, () => import(/* webpackChunkName: \"negative-keywords-lists-page\" */'../feature-bootstrap/negative-keywords-lists-page').then(getDefaultExport), false, true);\r\n\r\nconst NegativeKeywordListsLibrary = () => importAfterPreLoad(bundles.NegativeKeywordListsLibraryShell, () => import(/* webpackChunkName: \"negative-keyword-lists-library-page\" */'../feature-bootstrap/negative-keyword-lists-library-page').then(getDefaultExport), false, true);\r\n\r\nconst NegativeKeywordListsDetailsPage = () => importAfterPreLoad(bundles.NegativeKeywordsListsDetailsShell, () => import(/* webpackChunkName: \"negative-keywords-lists-details-page\" */'../feature-bootstrap/negative-keywords-lists-details-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledImportCenter = () => importAfterPreLoad(bundles.StyledImportCenter, () => import(/* webpackChunkName: \"import-center-page\" */'../feature-bootstrap/import-center-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAutomatedRuleOperation = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"automated-rule-operation-page\" */'../feature-bootstrap/automated-rule-operation-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAutomatedRuleDetail = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"automated-rule-operation-page\" */'../feature-bootstrap/automated-rule-detail-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAutomatedRuleHistory = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"automated-rule-operation-page\" */'../feature-bootstrap/automated-rule-history-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAccountSettingsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"account-settings-page\" */'../feature-bootstrap/account-settings-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledCampaignCreationSmartShopping = () => importAfterPreLoad(bundles.StyledCampaignCreationSmartShopping, () => import(/* webpackChunkName: \"smart-shopping-campaign-creation-page\" */'../feature-bootstrap/smart-shopping-campaign-creation-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledOptOutOfMinorsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"optout-of-minors-page\" */'../feature-bootstrap/optout-of-minors-page').then(getDefaultExport), false, true);\r\n\r\nconst {\r\n StyledDynamicAdTarget,\r\n DynamicExclusionShell,\r\n StyledDynamicSearchTerm,\r\n} = pickManyImports(\r\n ['StyledDynamicAdTarget',\r\n 'DynamicExclusionShell',\r\n 'StyledDynamicSearchTerm',\r\n ],\r\n () => importAfterPreLoad(bundles.DynamicAdTargets, () => import(/* webpackChunkName: \"dynamicadtargets-page\" */'../feature-bootstrap/dynamic-ad-target-page').then(getDefaultExport))\r\n);\r\n\r\nconst ChooseObjectiveWithLegacyConfig = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"choose-objective-page\" */'../feature-bootstrap/choose-objective-page').then(getDefaultExport), false, true);\r\n\r\nconst CampaignOnboardingV2 = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"campaign-onboarding-v2-page\" */'../feature-bootstrap/campaign-onboarding-v2-page').then(getDefaultExport), false, false);\r\n\r\nconst {\r\n StyledCampaignCreationSearch,\r\n StyledCampaignCreationAudience,\r\n StyledCampaignCreationAudienceVideo,\r\n StyledCampaignCreationSearchShopping,\r\n StyledCampaignCreationAudienceShopping,\r\n AdGroupCreationWithCampaign,\r\n StyledCampaignCreationAudienceSimplified,\r\n StyledCampaignCreationMSStoreAds,\r\n StyledCampaignCreationSearchShoppingWizard,\r\n StyledCampaignCreationAudienceShoppingWizard,\r\n StyledCampaignCreationSearchV2,\r\n} = pickManyImportsWithLazyInit(\r\n ['StyledCampaignCreationSearch',\r\n 'ChooseObjectiveWithLegacyConfig',\r\n 'StyledCampaignCreationAudience',\r\n 'StyledCampaignCreationAudienceVideo',\r\n 'StyledCampaignCreationSearchShopping',\r\n 'StyledCampaignCreationAudienceShopping',\r\n 'AdGroupCreationWithCampaign',\r\n 'StyledCampaignCreationAudienceSimplified',\r\n 'StyledCampaignCreationMSStoreAds',\r\n 'StyledCampaignCreationSearchShoppingWizard',\r\n 'StyledCampaignCreationAudienceShoppingWizard',\r\n 'StyledCampaignCreationSearchV2',\r\n ],\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"campaign-adgroup-creation\" */'../feature-bootstrap/campaign-adgroup-creation').then(getDefaultExport), true, true)\r\n);\r\n\r\nconst {\r\n PerfMaxCampaignCreationPage,\r\n} = pickManyImportsWithLazyInit(\r\n ['PerfMaxCampaignCreationPage'],\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"perf-max-campaign-creation\" */'../feature-bootstrap/perf-max-campaign-creation').then(getDefaultExport), true, true)\r\n);\r\n\r\nconst {\r\n PerfMaxNorthStarWizard,\r\n} = pickManyImportsWithLazyInit(\r\n ['PerfMaxNorthStarWizard'],\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"perf-max-north-star-campaign-creation\" */'../feature-bootstrap/perf-max-north-star-campaign-creation').then(getDefaultExport), true, true)\r\n);\r\n\r\nconst LinkedInCampaignCreationPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"linkedin-campain-creation\" */'../feature-bootstrap/linkedin-campaign-creation').then(getDefaultExport), false, true);\r\nconst LinkedInAdEditorPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"linkedin-ad-editor\" */'../feature-bootstrap/linkedin-ad-editor').then(getDefaultExport), false, true);\r\n\r\nconst StyledMSStoreAdsSellerIdsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"ms-store-ads\" */'../feature-bootstrap/ms-store-ads-seller-ids-page').then(getDefaultExport), false, true);\r\n\r\nconst {\r\n StyledFacebookImport,\r\n StyledGoogleImport,\r\n StyledFileImport,\r\n StyledMultiAccountGoogleImport,\r\n StyledImportCredentialId,\r\n} = pickManyImports(\r\n [\r\n 'StyledFacebookImport',\r\n 'StyledGoogleImport',\r\n 'StyledFileImport',\r\n 'StyledMultiAccountGoogleImport',\r\n 'StyledImportCredentialId',\r\n ],\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"imports-shell\" */'../feature-bootstrap/imports').then(getDefaultExport), false, true)\r\n);\r\n\r\nconst StyledSmartGoogleImport = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"smart-imports-shell\" */'../feature-bootstrap/smart-google-import-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAmazonImport = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"smart-imports-shell\" */'../feature-bootstrap/amazon-import-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledSmartFacebookImport = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"smart-imports-shell\" */'../feature-bootstrap/smart-facebook-import-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledPinterestImport = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"smart-imports-shell\" */'../feature-bootstrap/pinterest-import-page').then(getDefaultExport), false, true);\r\n\r\nconst {\r\n StyledQueryInsightsOverviewPage,\r\n StyledQueryInsightsDetailsPage,\r\n} = pickManyImports(\r\n [\r\n 'StyledQueryInsightsOverviewPage',\r\n 'StyledQueryInsightsDetailsPage',\r\n ],\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"query-insights\" */'../feature-bootstrap/query-insights-page').then(getDefaultExport), true, true)\r\n);\r\n\r\nconst CreativeStudioAssetLibraryPage = () => importAfterPreLoad(\r\n null,\r\n () => import(/* webpackChunkName: \"creative-studio-asset-library\" */'../feature-bootstrap/creative-studio-asset-library').then(getDefaultExport)\r\n);\r\n\r\nconst AdsStudioPage = () => importAfterPreLoad(\r\n null,\r\n () => import(/* webpackChunkName: \"asset-studio\" */'../feature-bootstrap/ads-studio').then(getDefaultExport),\r\n true\r\n);\r\n\r\nconst StyledAppAdsAssetGroupsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"appads-asset-groups-page\" */'../feature-bootstrap/appads-asset-groups-page').then(getDefaultExport), false, true);\r\n\r\n\r\nconst StyledAssetGroupsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"asset-groups-page\" */'../feature-bootstrap/asset-groups-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAssetGroupEditPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"asset-group-edit-page\" */'../feature-bootstrap/asset-group-edit-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledAssetGroupCreationPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"asset-group-create-page\" */'../feature-bootstrap/asset-group-create-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledUnifiedppAdsAssetGroupsCreationPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"unified-app-ads-asset-groups-creation-page\" */'../feature-bootstrap/unified-app-ads-asset-groups-creation').then(getDefaultExport), false, true);\r\n\r\nconst ListingGroupsShell = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"listing-groups-page\" */'../feature-bootstrap/listing-groups-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledPmaxAssetsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"pmax-assets-page\" */'../feature-bootstrap/pmax-assets-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledPmaxCombinationsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"pmax-combinations-page\" */'../feature-bootstrap/pmax-combinations-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledPmaxNorthStarAssetGroupEditPage =\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"perf-max-north-star-asset-group-setting-edit-page\" */'../feature-bootstrap/perf-max-north-star-asset-group-setting-edit-page').then(getDefaultExport), false, true);\r\n\r\nconst StyledXandrVideoCampaignCreationPage =\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"xandr-video-campaign-creation\" */'../feature-bootstrap/xandr-video-campaign-creation').then(getDefaultExport), false, true);\r\n\r\nconst StyledXandrDisplayAdsCampaignCreationPage =\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"xandr-display-ads-campaign-creation\" */'../feature-bootstrap/xandr-display-ads-campaign-creation').then(getDefaultExport), false, true);\r\n\r\nconst StyledDisplayPlusCampaignsPage =\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"display-plus-campaigns-page\" */'../feature-bootstrap/display-plus-campaigns').then(getDefaultExport));\r\n\r\nconst StyledAppAdsCampaignsPage =\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"app-ads-campaigns-page\" */'../feature-bootstrap/app-ads-campaigns').then(getDefaultExport));\r\n\r\nconst StyledAppAdsAssetGroupCreation =\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"appads-asset-groups-creation\" */'../feature-bootstrap/appads-asset-groups-creation').then(getDefaultExport));\r\n\r\nconst CampaignBudgetToolPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"campaign-budget-tool-page\" */'../feature-bootstrap/campaign-budget-tool-page').then(getDefaultExport));\r\n\r\nconst BudgetCenterPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"budget-center-page\" */'../feature-bootstrap/budget-center-page').then(getDefaultExport), true, true);\r\n\r\nconst SponsoredCampaignCreationPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"sponsored-campaign-creation-page\" */'../feature-bootstrap/sponsored-campaign-creation-page').then(getDefaultExport));\r\n\r\nconst StyledBrandListsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"brand-lists-page\" */'../feature-bootstrap/brand-lists-page').then(getDefaultExport));\r\n\r\nconst StyledBrandListsDetailsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"brand-lists-details-page\" */'../feature-bootstrap/brand-lists-details-page').then(getDefaultExport));\r\n\r\nconst StyledLiftMeasurementPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"lift-measurement-page\" */'../feature-bootstrap/lift-measurement-page').then(getDefaultExport));\r\n\r\nconst StyledLiftMeasurementCreatePage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"lift-measurement-create-page\" */'../feature-bootstrap/lift-measurement-create-page').then(getDefaultExport));\r\n\r\nconst StyledLiftMeasurementEditPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"lift-measurement-edit-page\" */'../feature-bootstrap/lift-measurement-edit-page').then(getDefaultExport));\r\n\r\nconst StyledLiftMeasurementResultsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"lift-measurement-results-page\" */'../feature-bootstrap/lift-measurement-results-page').then(getDefaultExport));\r\n\r\nconst StyledUnifiedAppAdsCampaignPage =\r\n () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"unified-app-ads-campaigns-page\" */'../feature-bootstrap/unified-app-ads-campaigns').then(getDefaultExport));\r\n\r\nconst StyledUnifiedAppAdsAssetsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"unified-app-ads-assets-page\" */'../feature-bootstrap/unified-app-ads-assets-page').then(getDefaultExport), false, true);\r\n\r\nexport const routes = {\r\n StyledSharedBudgetSummary,\r\n StyledSharedBudgetEdit,\r\n StyledPortfolioBidStrategy,\r\n StyledSeasonalityAdjustment,\r\n StyledCompetitionAuctionInsight,\r\n StyledBulkEdits,\r\n StyledBulkEditsDetail,\r\n MCMCampaignControl,\r\n StyledAdGroups,\r\n StyledSettingsForm,\r\n StyledDevices,\r\n RecommendationsShell,\r\n StyledChangeHistory,\r\n StyledCompetitionRecommendations,\r\n StyledGmbImport,\r\n StyledFeeds,\r\n StyledImportCenter,\r\n StyledProductFeedPage,\r\n StyledLinkedStorePage,\r\n StyledBrandPage,\r\n StyledFeedSummaryPage,\r\n StyledTargetedLocations,\r\n StyledExcludedLocations,\r\n StyledAds,\r\n StyledAssets,\r\n StyledAssetsReport,\r\n StyledCombinations,\r\n StyledLabels,\r\n StyledProducts,\r\n StyledHotels,\r\n StyledProperties,\r\n HotelGroupsShell,\r\n PropertyGroupsShell,\r\n ProductGroupsShell,\r\n PerformanceTargetsShell,\r\n StyledAudienceAssociationPage,\r\n StyledAudienceAssociationCreation,\r\n StyledPositiveKeywords,\r\n StyledNegativeKeywords,\r\n StyledAdSchedule,\r\n HotelCampaignCreation,\r\n StyledCampaignCreationSearch,\r\n StyledCampaignCreationSearchV2,\r\n ChooseObjectiveWithLegacyConfig,\r\n CampaignOnboardingV2,\r\n StyledCampaignCreationAudience,\r\n StyledCampaignCreationAudienceSimplified,\r\n StyledCampaignCreationAudienceVideo,\r\n StyledCampaignCreationSearchShopping,\r\n StyledCampaignCreationAudienceShopping,\r\n StyledCampaignCreationSearchShoppingWizard,\r\n StyledCampaignCreationAudienceShoppingWizard,\r\n AdGroupCreationWithCampaign,\r\n StyledCampaignCreationSmartShopping,\r\n PerfMaxCampaignCreationPage,\r\n PerfMaxNorthStarWizard,\r\n LinkedInCampaignCreationPage,\r\n LinkedInAdEditorPage,\r\n StyledXandrVideoCampaignCreationPage,\r\n StyledXandrDisplayAdsCampaignCreationPage,\r\n StyledDisplayPlusCampaignsPage,\r\n StyledAppAdsCampaignsPage,\r\n StyledAppAdsAssetGroupCreation,\r\n StyledUnifiedppAdsAssetGroupsCreationPage,\r\n StyledAudienceNetworkPlanner,\r\n StyledAudiencesLibrary,\r\n StyledAudienceSignalManagement,\r\n StyledAudienceCustomSegmentsPage,\r\n StyledAudienceCreation,\r\n StyledAudienceEdit,\r\n StyledManagement,\r\n StyledRequests,\r\n StyledNotifications,\r\n StyledAccountLevelImportTab,\r\n AccountCreation,\r\n AccountLinking,\r\n AccountsTransfer,\r\n PendingTransferRequest,\r\n AccountsUnlinking,\r\n StyledSearchterm,\r\n DemographicsShell,\r\n StyledDynamicAdTarget,\r\n DynamicExclusionShell,\r\n StyledDynamicSearchTerm,\r\n Reports,\r\n ReportsV4,\r\n StyledCustomReportingPage,\r\n DimensionsShell,\r\n StyledExperiments,\r\n CampaignDimensionShell,\r\n SiteExclusionListCustomerCreationShell,\r\n StyledImportSchedule,\r\n StyledScripts,\r\n StyledScriptsHistory,\r\n StyledScriptsEdit,\r\n StyledScriptsLogs,\r\n BulkUploadsShell,\r\n BidStrategiesShell,\r\n SiteExclusionListCustomerEditPage,\r\n WebsiteExclusionListsPage,\r\n WebsiteExclusionListsCustomerEditPage,\r\n WebsiteExclusionListsAccountLevelListPage,\r\n WebsiteExclusionListsAccountLevelExclusionsPage,\r\n StyledFacebookImport,\r\n StyledGoogleImport,\r\n StyledFileImport,\r\n StyledMultiAccountGoogleImport,\r\n StyledImportCredentialId,\r\n StyledUetTags,\r\n StyledUetWebInsights,\r\n StyledUetTestPage,\r\n StyledUetTagsCreate,\r\n StyledUetTagsEdit,\r\n StyledConversionGoals,\r\n StyledConversionValueRules,\r\n StyledConversionValueRulesCreate,\r\n StyledConversionValueRulesEdit,\r\n StyledConversionGoalsAutoCreate,\r\n StyledConversionGoalsCreate,\r\n StyledConversionGoalsEdit,\r\n StyledModeledConversions,\r\n StyledHotelCenter,\r\n StyledHotelCenterV2,\r\n StyledOfflineConversions,\r\n StyledCustomerAcquisition,\r\n StyledKeywordPlanner,\r\n StyledAdPreview,\r\n StyledAdInsightKeywordPlanner,\r\n StyledAdInsightAdPreview,\r\n MerchantCenterShell,\r\n StyledAutomatedRuleOperation,\r\n StyledAutomatedRuleHistory,\r\n SiteExclusionListAccountLevelListPage,\r\n StyledAutomatedRuleDetail,\r\n NegativeKeywordsLists,\r\n NegativeKeywordListsLibrary,\r\n SiteExclusionListAccountLevelExclusionsPage,\r\n BrandSafetyPage,\r\n StyledAccountSettingsPage,\r\n NegativeKeywordListsDetailsPage,\r\n StyledSmartGoogleImport,\r\n StyledOptOutOfMinorsPage,\r\n StyledAmazonImport,\r\n StyledSmartFacebookImport,\r\n StyledPinterestImport,\r\n StyledQueryInsightsOverviewPage,\r\n StyledQueryInsightsDetailsPage,\r\n CreativeStudioAssetLibraryPage,\r\n AdsStudioPage,\r\n StyledAssetGroupsPage,\r\n StyledAssetGroupEditPage,\r\n StyledAssetGroupCreationPage,\r\n ListingGroupsShell,\r\n StyledPmaxAssetsPage,\r\n StyledPmaxCombinationsPage,\r\n StyledMSStoreAdsSellerIdsPage,\r\n StyledCampaignCreationMSStoreAds,\r\n CampaignBudgetToolPage,\r\n BudgetCenterPage,\r\n SponsoredCampaignCreationPage,\r\n StyledBrandListsPage,\r\n StyledBrandListsDetailsPage,\r\n StyledAppAdsAssetGroupsPage,\r\n StyledLiftMeasurementPage,\r\n StyledLiftMeasurementCreatePage,\r\n StyledLiftMeasurementEditPage,\r\n StyledLiftMeasurementResultsPage,\r\n StyledUnifiedAppAdsCampaignPage,\r\n StyledUnifiedAppAdsAssetsPage,\r\n StyledPmaxNorthStarAssetGroupEditPage,\r\n};\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { withScope, QueryParam, $current } from '@bingads-webui-react/scope-service';\r\nimport { GlobalMenuBase } from '@bingads-webui-react/global-menu';\r\nimport { MeControlBase, CustomMenuBase } from '@bingads-webui-react/me-control';\r\nimport { withSmartConfig, withUPConfig } from '@bingads-webui-react/global-smart-menu';\r\nimport { WaterfallFilterType } from '@bingads-webui/filter-commons';\r\nimport { withGlobalFilter } from '@bingads-webui-react/global-filter-context';\r\nimport { withSettingsConsumer } from '@bingads-webui-react/settings-context';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { renderPageSearch } from '@bingads-webui-react/global-search';\r\nimport { renderHelpLibrarySearch } from '@bingads-webui-react/global-search-help-library';\r\nimport { renderCampaignSearch } from '@bingads-webui-campaign-react/campaign-entity-search';\r\nimport { renderCopilotSearchWithCopilot } from '@bingads-webui/global-search-copilot';\r\nimport { DummyCustomerAccountSelector } from '@bingads-webui-react/customer-account-selector';\r\nimport { DummyCustomerSelector } from '@bingads-webui-react/customer-selector';\r\nimport { ACCOUNT_MODE } from '@bingads-webui-campaign/campaign-ui-common';\r\nimport { withLayoutContext } from '@bingads-webui-react/app-layout-container';\r\nimport {\r\n convertFilteredCampaignTypeToFilter\r\n} from '@bingads-webui-campaign-react/shell-ui-common';\r\nimport {\r\n withSiteMap,\r\n processorSet,\r\n processor,\r\n CampaignType,\r\n withCampaignSiteMap,\r\n siteMapPropType,\r\n} from '@bingads-webui-campaign-react/with-site-map';\r\nimport { GlobalMenuEntityBar } from '@bingads-webui-campaign-react/summary-bar';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withHotKeys, ShortcutType } from '@bingads-webui-react/hot-keys';\r\nimport { withPageReadyAsync } from '@bingads-webui-react/with-page-ready';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\nimport { isHamburgerVisibleStore } from '@bingads-webui-campaign-react/main-menu-container';\r\nimport { withStateStore } from '@bingads-webui/with-state-store';\r\nimport { onToggleCopilot, toggleCopilotWithMSASignInPopup } from '@bingads-webui-react/msa-copilot-common';\r\nimport { setClarityTag } from '@bingads-webui-universal/clarity';\r\nimport { getHeaderHide, isBillingLinkPermission } from '@bingads-webui/multi-agency-utils';\r\nimport { isCopilotRegionRestricted } from '@bingads-webui-react/copilot-utils';\r\n\r\nimport { DelayedNotificationsBar } from './delayed-notifications-bar';\r\n\r\nconst DelayedReportsV4Bar = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/reports-v4-bar/index-uinext')\r\n .then(({ ReportsV4DropDown }) => ({ default: ReportsV4DropDown })));\r\n\r\nclass GlobalMenuWrapperInternal extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.perfMarker = this.props.appPerfMarker.createChild('global-menu-perf', { autoEnd: true });\r\n this.perfMarker.willInit();\r\n this.globalHelpRef = React.createRef();\r\n\r\n const {\r\n permissions, serverContext, scope, settingsContext,\r\n } = props;\r\n let wrappedGlobalMenu = withSmartConfig(GlobalMenuBase);\r\n const accountMode = _.get(serverContext, ['CurrentAccount', 'AccountMode']);\r\n const aid = _.get(scope, ['values', 'aid']);\r\n const isUnifiedSmartMode = _.get(permissions, 'IsUnifiedSmartMode');\r\n if (isUnifiedSmartMode || (!!aid && accountMode === ACCOUNT_MODE.UNIFIED_SMART)) {\r\n // Check at both customer level and account level\r\n // Customer level: all account are UnifiedSmart\r\n // Account level: current account is UnifiedSmart\r\n wrappedGlobalMenu = withUPConfig(GlobalMenuBase);\r\n }\r\n\r\n this.GlobalMenuEmbeded = withSettingsConsumer(withSiteMap(wrappedGlobalMenu, [processor.processPath, ...processorSet.basic]));\r\n\r\n // To save performance by only loading the real CustomerAccountSelector component after page is ready\r\n this.DelayedAccountSelector = withPageReadyAsync(() =>\r\n Promise.all([\r\n import(/* webpackMode: 'eager' */'@bingads-webui-react/customer-account-selector'),\r\n import(/* webpackMode: 'eager' */'@bingads-webui-react/hierarcy-tree-view-with-rcid-storage'),\r\n ]).then(([\r\n { CustomerAccountSelectorTreeView },\r\n { TreeViewWithRCIDStorage },\r\n ]) => ({\r\n default: TreeViewWithRCIDStorage(CustomerAccountSelectorTreeView),\r\n })), DummyCustomerAccountSelector);\r\n\r\n this.DelayedCustomerSelector = withPageReadyAsync(() =>\r\n import(/* webpackMode: 'eager' */'@bingads-webui-react/customer-selector')\r\n .then(({ CustomerSelector }) => ({ default: CustomerSelector })), DummyCustomerSelector);\r\n const adsCopilotScenario = props.instrumentation.createScenario({\r\n scenarioName: 'AdsCopilot',\r\n });\r\n this.adsCopilotLogger = adsCopilotScenario.createActivity('UserAction');\r\n this.isCampaignPageAccessible = _.get(permissions, 'IsInternalUser') || !isBillingLinkPermission(settingsContext);\r\n\r\n this.state = { isAdsCopilotRegionRestricted: false };\r\n }\r\n\r\n componentDidMount() {\r\n isCopilotRegionRestricted({\r\n feature: 'Chat',\r\n logger: this.adsCopilotLogger,\r\n permissions: this.props.permissions,\r\n serverContext: this.props.serverContext,\r\n }).then((isRestricted) => {\r\n this.setState({ isAdsCopilotRegionRestricted: isRestricted });\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.hotKey === 'shift+h' && prevProps.count !== this.props.count) {\r\n if ($('#apexHelpContainer').is(':visible')) {\r\n $('#apexHelpContainer .close_button').click();\r\n } else {\r\n this.globalHelpRef.current.click();\r\n }\r\n }\r\n }\r\n\r\n onLogoClick = () => {\r\n const {\r\n scope, updateWaterfallFilter,\r\n } = this.props;\r\n if (_.isFunction(updateWaterfallFilter)) {\r\n updateWaterfallFilter({\r\n filterType: WaterfallFilterType.CampaignType,\r\n filter: convertFilteredCampaignTypeToFilter(CampaignType.All),\r\n });\r\n }\r\n\r\n scope.set({\r\n cid: $current,\r\n aid: $current,\r\n uid: $current,\r\n });\r\n\r\n // Don't specify a page, this should make page menu use the default landing page\r\n scope.save('/campaign/vnext');\r\n };\r\n\r\n onCopilotClick = ({ customizedEvent, forceOpen } = {}) => {\r\n const { permissions, serverContext } = this.props;\r\n const username = _.get(serverContext, ['CurrentUser', 'Name']);\r\n const localeId = _.get(serverContext, ['CurrentUser', 'LocaleID']);\r\n const isAADUser = _.get(serverContext, ['IsAADUser']);\r\n const isAppBasedAuthEnabled = _.get(permissions, ['dynamic', 'AdsCopilotAppBasedAuth']);\r\n const isNewLogo = permissions?.dynamic?.AdsCopilotUxImprovements;\r\n\r\n const toggleCopilot = toggleCopilotWithMSASignInPopup({\r\n userName: username,\r\n localeId,\r\n isAADUser,\r\n isAppBasedAuthEnabled,\r\n toggleCopilot: (mode) => {\r\n this.adsCopilotLogger.trace(`[Copilot] Toggle copilot via Copilot button on header, mode: ${mode} isNewLogo:${isNewLogo}`);\r\n onToggleCopilot({\r\n changeLayout: this.props.changeLayout,\r\n mode,\r\n logger: this.adsCopilotLogger,\r\n customizedEvent,\r\n });\r\n },\r\n logger: this.adsCopilotLogger,\r\n });\r\n const copilotMode = _.chain(this.props.layoutConfig).result('copilot').result('mode', 'hidden').value();\r\n const nextMode = (forceOpen || copilotMode === 'collapsed') ? 'expanded' : 'collapsed';\r\n toggleCopilot(nextMode);\r\n };\r\n\r\n render() {\r\n const {\r\n appPerfMarker,\r\n serverContext,\r\n permissions,\r\n scope,\r\n instrumentation,\r\n onHamburgerClicked,\r\n siteMap: campaignSiteMap,\r\n settingsContext,\r\n } = this.props;\r\n const {\r\n CurrentAccount,\r\n Urls,\r\n CurrentUser,\r\n Omniture,\r\n PageTrackingId,\r\n IsProdEnv,\r\n } = serverContext;\r\n const globalMenuScenario = instrumentation.globalMenuScenario.create();\r\n const globalMenuActivity = globalMenuScenario.globalMenuActivity.create();\r\n const feedbackScenario = instrumentation.feedbackScenario.create();\r\n const logger = feedbackScenario.feedbackActivity.create();\r\n const feedbackLogger = {\r\n log: (info) => {\r\n logger.trace(info);\r\n },\r\n };\r\n const { Email } = CurrentUser;\r\n const { SessionId } = Omniture;\r\n const feedbackProps = {\r\n isTestEnv: !IsProdEnv,\r\n feedbackLogger,\r\n email: Email,\r\n pageId: PageTrackingId,\r\n sessionId: SessionId,\r\n hideFeedback: permissions.IsReadOnlyUser,\r\n };\r\n const {\r\n Id, Name, AccountNumber, AdvertiserCustomerID,\r\n } = CurrentAccount;\r\n const account = {\r\n Id,\r\n Name,\r\n AccountNumber,\r\n ParentCustomerId: AdvertiserCustomerID,\r\n };\r\n const supportUrl = Urls.RootUIUrl.replace(/^https:\\/\\//, 'https://internal.');\r\n const campaignSearchEnabled = permissions && permissions.dynamic && permissions.dynamic.CampaignSearch;\r\n const accountIdEnabled = scope.values && scope.values.aid;\r\n const renderSearchResults = [];\r\n if (!this.state.isAdsCopilotRegionRestricted) {\r\n const isNewLogo = permissions?.dynamic?.AdsCopilotUxImprovements;\r\n renderSearchResults.push(renderCopilotSearchWithCopilot(this.onCopilotClick, isNewLogo));\r\n }\r\n renderSearchResults.push(renderPageSearch);\r\n renderSearchResults.push(renderHelpLibrarySearch);\r\n if (campaignSearchEnabled && accountIdEnabled && this.isCampaignPageAccessible) {\r\n renderSearchResults.push(renderCampaignSearch);\r\n }\r\n\r\n const renderHelpPanel = () => (\r\n
\r\n \r\n
\r\n );\r\n\r\n const hide = {\r\n mmc: false,\r\n assetLibrary: !_.result(permissions.dynamic, 'AssetLibraryGlobalMenu', false),\r\n copilot: this.state.isAdsCopilotRegionRestricted,\r\n ...(!_.get(permissions, 'IsInternalUser') && getHeaderHide(settingsContext)),\r\n };\r\n\r\n setClarityTag({ NavigationRefresh: 'false' });\r\n\r\n return (\r\n \r\n \r\n {renderHelpPanel()}\r\n \r\n );\r\n }\r\n}\r\n\r\nGlobalMenuWrapperInternal.propTypes = {\r\n serverContext: PropTypes.shape({\r\n CurrentAccount: PropTypes.shape({}),\r\n Urls: PropTypes.shape({}),\r\n }).isRequired,\r\n instrumentation: PropTypes.shape({}).isRequired,\r\n permissions: PropTypes.shape({\r\n dynamic: PropTypes.shape({}),\r\n }).isRequired,\r\n settingsContext: PropTypes.shape({}).isRequired,\r\n scope: PropTypes.instanceOf(QueryParam).isRequired,\r\n updateWaterfallFilter: PropTypes.func.isRequired,\r\n hotKey: PropTypes.string.isRequired,\r\n count: PropTypes.number.isRequired,\r\n appPerfMarker: perfMarkerPropTypes.isRequired,\r\n onHamburgerClicked: PropTypes.func,\r\n isHamburgerVisible: PropTypes.bool.isRequired,\r\n isPanelMode: PropTypes.bool.isRequired,\r\n siteMap: siteMapPropType.isRequired,\r\n changeLayout: PropTypes.func.isRequired,\r\n layoutConfig: PropTypes.shape({\r\n nav: PropTypes.shape({\r\n mode: PropTypes.string,\r\n }),\r\n }).isRequired,\r\n};\r\n\r\nGlobalMenuWrapperInternal.defaultProps = {\r\n onHamburgerClicked: null,\r\n};\r\n\r\nexport const GlobalMenuWrapper =\r\n withSettingsConsumer(withCampaignSiteMap(withStateStore(withPermissions(withInstrumentation(withHotKeys(withServerContext(withScope(withGlobalFilter(withLayoutContext(GlobalMenuWrapperInternal)))), ShortcutType.ShowHideHelp))), isHamburgerVisibleStore, store => ({\r\n isHamburgerVisible: store.state.isHamburgerVisible,\r\n isPanelMode: store.state.isPanelMode,\r\n }))));\r\n","import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\r\nimport _ from 'underscore';\r\nimport { GlobalMenu } from '@bingads-webui-react/new-global-menu';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { ScopeContext, $current } from '@bingads-webui-react/scope-service';\r\nimport { SettingsContext } from '@bingads-webui-react/settings-context';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { PermissionsContext } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { convertFilteredCampaignTypeToFilter } from '@bingads-webui-campaign-react/shell-ui-common';\r\nimport { onToggleCopilot, toggleCopilotWithMSASignInPopup } from '@bingads-webui-react/msa-copilot-common';\r\nimport { GlobalFilterContext } from '@bingads-webui-react/global-filter-context';\r\nimport { WaterfallFilterType } from '@bingads-webui/filter-commons';\r\nimport { LayoutContext } from '@bingads-webui-react/app-layout-container';\r\nimport { renderPageSearch } from '@bingads-webui-react/global-search';\r\nimport { renderHelpLibrarySearch } from '@bingads-webui-react/global-search-help-library';\r\nimport { renderCampaignSearch } from '@bingads-webui-campaign-react/campaign-entity-search';\r\nimport { renderCopilotSearchWithCopilot } from '@bingads-webui/global-search-copilot';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\nimport {\r\n withSiteMap,\r\n processorSet,\r\n processor,\r\n CampaignType,\r\n} from '@bingads-webui-campaign-react/with-site-map';\r\nimport { setClarityTag } from '@bingads-webui-universal/clarity';\r\nimport { getHeaderHide, isBillingLinkPermission } from '@bingads-webui/multi-agency-utils';\r\nimport { isCopilotRegionRestricted } from '@bingads-webui-react/copilot-utils';\r\n\r\nimport { DelayedNotificationsBar } from './delayed-notifications-bar';\r\n\r\nexport const NewGlobalMenuWrapper = (props) => {\r\n const serverContext = useContext(ServerContext);\r\n const settingsContext = useContext(SettingsContext);\r\n const instrumentation = useContext(InstrumentationContext);\r\n const permissions = useContext(PermissionsContext);\r\n const { scope } = useContext(ScopeContext);\r\n const { updateWaterfallFilter } = useContext(GlobalFilterContext);\r\n const { change: changeLayout, config: layoutConfig } = useContext(LayoutContext);\r\n const perfMarker = useMemo(\r\n () => props.appPerfMarker.createChild('new-global-menu-perf', { autoEnd: true }),\r\n [props.appPerfMarker]\r\n );\r\n const GlobalMenuEmbedded = withSiteMap(GlobalMenu, [processor.processPath, processor.processCopilotRegionRestriction, ...processorSet.basic]);\r\n\r\n useEffect(() => {\r\n perfMarker.willInit();\r\n }, [perfMarker]);\r\n\r\n const {\r\n CurrentAccount,\r\n Urls,\r\n CurrentUser,\r\n Omniture,\r\n PageTrackingId,\r\n IsProdEnv,\r\n } = serverContext;\r\n const { Email } = CurrentUser;\r\n const { SessionId } = Omniture;\r\n const supportUrl = Urls.RootUIUrl.replace(/^https:\\/\\//, 'https://internal.');\r\n const {\r\n Id, Name, AccountNumber, AdvertiserCustomerID,\r\n } = CurrentAccount;\r\n const account = {\r\n Id,\r\n Name,\r\n AccountNumber,\r\n ParentCustomerId: AdvertiserCustomerID,\r\n };\r\n const feedbackScenario = instrumentation.feedbackScenario.create();\r\n const logger = feedbackScenario.feedbackActivity.create();\r\n const feedbackLogger = {\r\n log: (info) => {\r\n logger.trace(info);\r\n },\r\n };\r\n const adsCopilotScenario = instrumentation.createScenario({\r\n scenarioName: 'AdsCopilot',\r\n });\r\n const adsCopilotLogger = adsCopilotScenario.createActivity('UserAction');\r\n\r\n const onLogoClick = useCallback(() => {\r\n if (_.isFunction(updateWaterfallFilter)) {\r\n updateWaterfallFilter({\r\n filterType: WaterfallFilterType.CampaignType,\r\n filter: convertFilteredCampaignTypeToFilter(CampaignType.All),\r\n });\r\n }\r\n\r\n scope.set({\r\n cid: $current,\r\n aid: $current,\r\n uid: $current,\r\n });\r\n\r\n // Don't specify a page, this should make page menu use the default landing page\r\n scope.save('/campaign/vnext');\r\n }, [scope, updateWaterfallFilter]);\r\n\r\n const onCopilotClick = useCallback(({ customizedEvent, forceOpen } = {}) => {\r\n const username = _.get(serverContext, ['CurrentUser', 'Name']);\r\n const localeId = _.get(serverContext, ['CurrentUser', 'LocaleID']);\r\n const isAADUser = _.get(serverContext, ['IsAADUser']);\r\n const isAppBasedAuthEnabled = _.get(permissions, ['dynamic', 'AdsCopilotAppBasedAuth']);\r\n const isNewLogo = _.get(permissions, ['dynamic', 'AdsCopilotUxImprovements']);\r\n\r\n const toggleCopilot = toggleCopilotWithMSASignInPopup({\r\n userName: username,\r\n localeId,\r\n isAADUser,\r\n isAppBasedAuthEnabled,\r\n toggleCopilot: (mode) => {\r\n adsCopilotLogger.trace(`[Copilot] Toggle copilot via Copilot button on header, mode: ${mode} isNewLogo: ${isNewLogo}`);\r\n onToggleCopilot({\r\n changeLayout,\r\n mode,\r\n logger: adsCopilotLogger,\r\n customizedEvent,\r\n });\r\n },\r\n logger: adsCopilotLogger,\r\n });\r\n const copilotMode = _.chain(layoutConfig).result('copilot').result('mode', 'hidden').value();\r\n const nextMode = (forceOpen || copilotMode === 'collapsed') ? 'expanded' : 'collapsed';\r\n toggleCopilot(nextMode);\r\n }, [serverContext, layoutConfig, adsCopilotLogger, changeLayout, permissions]);\r\n\r\n\r\n const campaignSearchEnabled = permissions && permissions.dynamic && permissions.dynamic.CampaignSearch;\r\n\r\n const [isAdsCopilotRegionRestricted, setIsAdsCopilotRegionRestricted] = useState();\r\n useEffect(() => {\r\n isCopilotRegionRestricted({\r\n feature: 'Chat',\r\n permissions,\r\n serverContext,\r\n }).then(setIsAdsCopilotRegionRestricted);\r\n }, [permissions, serverContext]);\r\n\r\n const accountIdEnabled = scope.values && scope.values.aid;\r\n const isCampaignPageAccessible = _.get(permissions, 'IsInternalUser') || !isBillingLinkPermission(settingsContext);\r\n const renderSearchResults = [];\r\n if (!isAdsCopilotRegionRestricted) {\r\n const isNewLogo = _.get(permissions, ['dynamic', 'AdsCopilotUxImprovements']);\r\n renderSearchResults.push(renderCopilotSearchWithCopilot(onCopilotClick, isNewLogo));\r\n }\r\n renderSearchResults.push(renderPageSearch);\r\n renderSearchResults.push(renderHelpLibrarySearch);\r\n if (campaignSearchEnabled && accountIdEnabled && isCampaignPageAccessible) {\r\n renderSearchResults.push(renderCampaignSearch);\r\n }\r\n\r\n const feedbackProps = {\r\n isTestEnv: !IsProdEnv,\r\n feedbackLogger,\r\n email: Email,\r\n pageId: PageTrackingId,\r\n sessionId: SessionId,\r\n hideFeedback: permissions.IsReadOnlyUser,\r\n };\r\n\r\n const hide = {\r\n copilot: isAdsCopilotRegionRestricted,\r\n ...(!_.get(permissions, 'IsInternalUser') && getHeaderHide(settingsContext)),\r\n };\r\n\r\n setClarityTag({ NavigationRefresh: 'true' });\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nNewGlobalMenuWrapper.displayName = 'NewGlobalMenuWrapper';\r\nNewGlobalMenuWrapper.propTypes = {\r\n appPerfMarker: perfMarkerPropTypes.isRequired,\r\n};\r\n","import { map, filter } from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { findSiteMap, siteMapPropType } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { withPageReady } from '@bingads-webui-react/with-page-ready';\r\n\r\nimport { getStyle } from './style';\r\n\r\nconst PreexecuteContainer = ({\r\n classes,\r\n pageName,\r\n PreexecuteComponents,\r\n siteMap,\r\n appPerfMarker,\r\n ...componentProps\r\n}) => {\r\n const availableComponents = filter(PreexecuteComponents, (component) => {\r\n const page = findSiteMap(siteMap, item => item.id === component.pageName);\r\n return page && page.available;\r\n });\r\n\r\n if (availableComponents.length === 0) {\r\n return null;\r\n }\r\n\r\n const PagePreexecute = withPageReady(\r\n (ready) => {\r\n if (ready) {\r\n const preexecutePerfMarker = appPerfMarker.createChild(`Page_Preexecute_By_${pageName\r\n || window.location.pathname.split('/').pop()}`, { autoEnd: false });\r\n preexecutePerfMarker.willInit();\r\n\r\n let count = availableComponents.length;\r\n let prevPageName = pageName;\r\n\r\n return (\r\n
\r\n {\r\n map(availableComponents, (NextComponent) => {\r\n const Preexecution = withPageReady(\r\n () => {\r\n count -= 1;\r\n if (count === 0) {\r\n preexecutePerfMarker.done();\r\n }\r\n return null;\r\n },\r\n withPageReady(\r\n (pageReady) => {\r\n if (pageReady) {\r\n const childPerfMarker = preexecutePerfMarker.createChild(`Page_Preexecute_${NextComponent.pageName}`, { autoEnd: true });\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n },\r\n null,\r\n prevPageName\r\n ),\r\n NextComponent.pageName\r\n );\r\n prevPageName = NextComponent.pageName;\r\n return ;\r\n })\r\n }\r\n
\r\n );\r\n }\r\n return null;\r\n },\r\n null,\r\n pageName\r\n );\r\n\r\n return ;\r\n};\r\n\r\nPreexecuteContainer.propTypes = {\r\n classes: PropTypes.shape({\r\n preexecuteContainer: PropTypes.string.isRequired,\r\n }).isRequired,\r\n pageName: PropTypes.string.isRequired,\r\n PreexecuteComponents: PropTypes.arrayOf(PropTypes.elementType).isRequired,\r\n siteMap: siteMapPropType.isRequired,\r\n appPerfMarker: perfMarkerPropTypes.isRequired,\r\n};\r\n\r\nexport const StyledPreexecuteContainer = withDefaultStyles(PreexecuteContainer, getStyle);\r\n","export const getStyle = () => ({\r\n preexecuteContainer: {\r\n display: 'flex',\r\n flex: '1 0 auto',\r\n flexDirection: 'column',\r\n position: 'absolute',\r\n top: -9999,\r\n left: -9999,\r\n height: '100%',\r\n width: '100%',\r\n visibility: 'hidden',\r\n },\r\n});\r\n","import React, { useContext } from 'react';\r\nimport { DirectionalHint, Link } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { defaultUserGovernanceConfig } from '@bingads-webui-campaign-react/multi-step-teaching-bubble';\r\n\r\nconst getStyle = () => ({\r\n link: {\r\n color: 'rgb(255, 255, 255)',\r\n fontWeight: 600,\r\n '&:hover': {\r\n color: 'rgb(255, 255, 255)',\r\n textDecoration: 'underline',\r\n },\r\n '&:focus': {\r\n color: 'rgb(255, 255, 255)',\r\n textDecoration: 'underline',\r\n },\r\n },\r\n});\r\n\r\nconst ChurnModelNotificationContent = () => {\r\n const i18n = useContext(I18nContext);\r\n const clarityTextTemplate = i18n.getString(_TL_('Join one of our experienced Microsoft Advertising Experts for a FREE consultation by scheduling an appointment below or calling us at {{phoneNumber}}877-635-3561{{/phoneNumber}}.'));\r\n const classes = useDefaultStyles(getStyle);\r\n\r\n const content1 = (\r\n (\r\n \r\n {text}\r\n \r\n ),\r\n }}\r\n template={clarityTextTemplate}\r\n />\r\n );\r\n return (\r\n
\r\n

{content1}

\r\n

\r\n {i18n.getString(_TL_('Optimize your campaign during the consultation and we will issue you a $250 USD ad credit.'))}\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport const churnModelCouponNotificationFeatureName = 'churn-model-coupon-notification-teaching-bubble';\r\nexport const ChurnModelCouponNotificationTeachingBubbleUIConfig =\r\n{\r\n featureName: churnModelCouponNotificationFeatureName,\r\n userGovernanceConfig: defaultUserGovernanceConfig,\r\n steps: [\r\n {\r\n title: _TL_('Your ad credit awaits!'),\r\n content: (),\r\n primaryButtonText: _TL_('Schedule now'),\r\n // first condition from coupon, the second condition ensured selector billing if no overflow\r\n targetElement: 'div#billing>button.side-navigation-item-button,div[data-overflow-item][data-overflow-group]:not([data-overflowing]) button#billing, button.side-navigation-more-button',\r\n directionalHint: DirectionalHint.rightCenter,\r\n onNext: () => {\r\n window.open('https://outlook.office365.com/book/MicrosoftAdvertisingNorthAmericaEnglish@bookings.microsoft.com/s/oGpRHHqz5EKtN3pF_Dfn9w2', '_blank');\r\n },\r\n className: 'churn-target-notification-teaching-bubble',\r\n },\r\n ],\r\n};\r\n","import { PreferenceState } from '@bingads-webui-campaign-react/popup-components';\r\n\r\nexport const uetTeachingBubbleUserGovernanceConfig = {\r\n // If the expiration date is set and it is in the past, do not show the component\r\n // set the value with the format: new Date('2023/12/31')\r\n expirationDate: null,\r\n [PreferenceState.INIT]: {\r\n // cooldownDays is the number of days after the user can see the component again\r\n cooldownDays: 0,\r\n // secondaryButtonText is the text that will be displayed on the secondary button\r\n secondaryButtonText: _TL_(''),\r\n // stateMachine is the state machine that will be used to transition between states\r\n stateMachine: {\r\n // onDone is the state that will be set when the user clicks on the primary button\r\n onDone: PreferenceState.STOP_SHOWN,\r\n // onDismiss is the state that will be set when the user clicks on the secondary button\r\n onDismiss: PreferenceState.FIRST_DISMISS,\r\n // onClose is the state that will be set when the user clicks on the close button\r\n onClose: PreferenceState.FIRST_DISMISS,\r\n },\r\n },\r\n [PreferenceState.FIRST_DISMISS]: {\r\n cooldownDays: 1,\r\n secondaryButtonText: _TL_(''),\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.SECOND_DISMISS,\r\n onClose: PreferenceState.SECOND_DISMISS,\r\n },\r\n },\r\n [PreferenceState.SECOND_DISMISS]: {\r\n cooldownDays: 1,\r\n secondaryButtonText: _TL_(''),\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.STOP_SHOWN,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n [PreferenceState.STOP_SHOWN]: {\r\n cooldownDays: Infinity,\r\n secondaryButtonText: _TL_(''),\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.STOP_SHOWN,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n};\r\n","import { get } from 'underscore';\r\nimport { DirectionalHint } from '@fluentui/react';\r\nimport { TeachingBubbleConfigs as NavigationRefreshTeachingBubbleConfig } from '@bingads-webui-campaign-react/navigation-refresh-teaching-bubble-config';\r\nimport { couponTeachingBubbleConfig, couponTeachingBubbleOldUIConfig } from '@bingads-webui-cc-react/coupon-teachingbubble-loader';\r\nimport { defaultUserGovernanceConfig } from '@bingads-webui-campaign-react/multi-step-teaching-bubble';\r\nimport { PreferenceState } from '@bingads-webui-campaign-react/popup-components';\r\nimport { TeachingBubbleConfigs as InsertionOrderReportTeachingBubbleConfig } from '@bingads-webui-campaign-react/reports-v4-insertion-order-teaching-bubble-config';\r\nimport { CustomReportBuilderTeachingBubbleConfig, ReportHomePageTeachingBubbleConfig } from '@bingads-webui-campaign-react/custom-reports-page-teaching-bubble-config';\r\nimport { ReportingInsightsTeachingBubbleConfig } from '@bingads-webui-campaign-react/reporting-insights-components';\r\nimport { getRoutePathById } from '@bingads-webui-react/with-site-map';\r\nimport { setClarityTag } from '@bingads-webui-universal/clarity';\r\n\r\nimport {\r\n uetTeachingBubbleUserGovernanceConfig\r\n} from './custom-uet-teaching-bubble-governance-config';\r\nimport { ChurnModelCouponNotificationTeachingBubbleUIConfig } from './custom-churn-model-coupon-teaching-bubble-config';\r\n\r\nconst escMigrationGovernanceConfig = {\r\n ...defaultUserGovernanceConfig,\r\n [PreferenceState.INIT]: {\r\n ...defaultUserGovernanceConfig[PreferenceState.INIT],\r\n stateMachine: {\r\n ...defaultUserGovernanceConfig[PreferenceState.INIT].stateMachine,\r\n onDismiss: PreferenceState.STOP_SHOWN,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n};\r\nexport const escMigrationTeachingBubbleFeatureName = 'smb-migration-welcome';\r\nexport const EscMigrationTeachingBubbleConfig = {\r\n featureName: escMigrationTeachingBubbleFeatureName,\r\n userGovernanceConfig: escMigrationGovernanceConfig,\r\n steps: [\r\n {\r\n title: _TL_('Welcome to a new and improved Microsoft Advertising experience'),\r\n content: _TL_('We’ve migrated your Microsoft Advertising accounts and campaigns to this new and improved experience.'),\r\n primaryButtonText: _TL_('Next'),\r\n secondaryButtonText: _TL_(''),\r\n targetElement: '#advertise',\r\n directionalHint: DirectionalHint.rightTopEdge,\r\n },\r\n {\r\n title: _TL_('Manage your campaigns'),\r\n content: _TL_('Manage all of your campaigns and assets in Campaigns. You can edit your budget by going to Campaign settings.'),\r\n primaryButtonText: _TL_('Next'),\r\n secondaryButtonText: _TL_(''),\r\n targetElement: '#advertise',\r\n directionalHint: DirectionalHint.rightTopEdge,\r\n },\r\n {\r\n title: _TL_('Create new campaigns'),\r\n content: _TL_('Create new campaigns by selecting Create.'),\r\n primaryButtonText: _TL_('Next'),\r\n secondaryButtonText: _TL_(''),\r\n targetElement: '#create',\r\n directionalHint: DirectionalHint.rightTopEdge,\r\n },\r\n {\r\n title: _TL_('Access reports'),\r\n content: _TL_('Don’t worry - you can still access your previous performance data. It just may take up to few hours to view. Note: Pre-migration data tied to conversion goals won’t be available.'),\r\n primaryButtonText: _TL_('Next'),\r\n secondaryButtonText: _TL_(''),\r\n targetElement: '#reports-v4',\r\n directionalHint: DirectionalHint.rightCenter,\r\n },\r\n {\r\n title: _TL_('Conversion goals'),\r\n content: _TL_('Review and manage your conversion goals by clicking on Tools and pinning Conversions to the menu.'),\r\n primaryButtonText: _TL_('Got it'),\r\n secondaryButtonText: _TL_(''),\r\n targetElement: '#allTools',\r\n directionalHint: DirectionalHint.rightCenter,\r\n },\r\n ],\r\n};\r\n\r\nexport const uetConsentNotificationFeatureName = 'uet-consent-notification-teaching-bubble';\r\nconst UetConsentNotificationTeachingBubbleUIConfig =\r\n{\r\n featureName: uetConsentNotificationFeatureName,\r\n userGovernanceConfig: uetTeachingBubbleUserGovernanceConfig,\r\n steps: [\r\n {\r\n title: _TL_('Action Required: Ensure proper implementation of consent signals'),\r\n content: _TL_('You may not have properly instrumented consent signals on your website. To avoid negative impacts on conversion attribution and remarketing for European Economic Area (EEA)-targeted campaigns, implement Consent Mode or the Transparency and Consent Framework (TCF) with your UET tags.'),\r\n primaryButtonText: _TL_('Set up now'),\r\n isSecondaryButtonHidden: true,\r\n targetElement: 'button.notifications-item',\r\n directionalHint: DirectionalHint.bottomAutoEdge,\r\n onNext: (_scope, _siteMap, serverContext) => {\r\n const languageCode = get(serverContext, ['CurrentLocale'], 'en-us').toLowerCase().split('-')[0];\r\n window.open(`https://help.ads.microsoft.com/apex/index/3/${languageCode}/60119`, '_blank');\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const adsStudioTeachingBubbleFeatureName = 'ads-studio-teaching-bubble';\r\nconst AdsStudioTeachingBubbleConfig =\r\n{\r\n featureName: adsStudioTeachingBubbleFeatureName,\r\n userGovernanceConfig: defaultUserGovernanceConfig,\r\n steps: [\r\n {\r\n title: _TL_('Asset library upgraded to Ads Studio'),\r\n content: _TL_('We\\'ve upgraded Asset library to the new Ads Studio experience, providing additional tools and features to help enhance your media. With Ads Studio, you can easily add, create, edit, and manage all your assets across campaigns. Get started with Ads Studio to curate compelling assets for your ads.'),\r\n primaryButtonText: _TL_('Get started'),\r\n // first condition ensured ads studio selector if no overflow\r\n targetElement: 'div[data-overflow-item][data-overflow-group]:not([data-overflowing]) button#asset-library, button#allTools',\r\n directionalHint: DirectionalHint.rightCenter,\r\n onNext: (_scope, _siteMap) => {\r\n setClarityTag({ ClickAdsStudioTeachingBubblePrimaryButton: true });\r\n _scope.save(getRoutePathById(_siteMap, 'ad-studio-home-page'));\r\n },\r\n },\r\n ],\r\n};\r\n\r\nexport const configs = [\r\n EscMigrationTeachingBubbleConfig,\r\n NavigationRefreshTeachingBubbleConfig,\r\n couponTeachingBubbleConfig,\r\n couponTeachingBubbleOldUIConfig,\r\n InsertionOrderReportTeachingBubbleConfig,\r\n ReportingInsightsTeachingBubbleConfig,\r\n CustomReportBuilderTeachingBubbleConfig,\r\n ReportHomePageTeachingBubbleConfig,\r\n UetConsentNotificationTeachingBubbleUIConfig,\r\n ChurnModelCouponNotificationTeachingBubbleUIConfig,\r\n AdsStudioTeachingBubbleConfig,\r\n];\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { get } from 'underscore';\r\nimport { CouponTeachingBubbleRenderer } from '@bingads-webui-cc-react/coupon-teachingbubble-loader';\r\nimport { useReportingInsightsTeachingBubble } from '@bingads-webui-campaign-react/reporting-insights-components';\r\nimport {\r\n triggerMultiStepTeachingBubbleWithLock,\r\n MultiStepTeachingBubbleContext,\r\n} from '@bingads-webui-campaign-react/multi-step-teaching-bubble';\r\nimport { edmCampaign } from '@bingads-webui/edm-campaign';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\nimport { getParameter } from '@bingads-webui/url-util';\r\n\r\nimport {\r\n escMigrationTeachingBubbleFeatureName,\r\n uetConsentNotificationFeatureName,\r\n adsStudioTeachingBubbleFeatureName,\r\n} from './teaching-bubble-config';\r\nimport { withCcJsDataContextProvider } from '../../contexts/with-cc-js-data-context-provider';\r\nimport { churnModelCouponNotificationFeatureName } from './custom-churn-model-coupon-teaching-bubble-config';\r\n\r\nexport const TeachingBubbleRendererBase = ({\r\n aid,\r\n cid,\r\n permissions,\r\n isCouponEnabled,\r\n}) => {\r\n const bubbleContext = useContext(MultiStepTeachingBubbleContext);\r\n\r\n // Esc Migration bubble\r\n const [hasReadMigrationFlag, setHasReadMigrationFlag] = useState(false);\r\n const [isMigrationUser, setIsMigrationUser] = useState('false');\r\n useEffect(() => {\r\n if (!hasReadMigrationFlag && aid && cid) {\r\n setHasReadMigrationFlag(true);\r\n edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts.$withKey(aid)\r\n .get()\r\n .toPromise()\r\n .then((account) => {\r\n setIsMigrationUser(account && account.MigratedFromESC);\r\n });\r\n }\r\n }, [hasReadMigrationFlag, aid, cid]);\r\n\r\n useEffect(() => {\r\n if (isMigrationUser === 'true') {\r\n triggerMultiStepTeachingBubbleWithLock({\r\n ...bubbleContext,\r\n featureName: escMigrationTeachingBubbleFeatureName,\r\n });\r\n }\r\n }, [bubbleContext, isMigrationUser]);\r\n\r\n\r\n // UET Consent notification\r\n // Please DO NOT follow this example to trigger teaching callout, timeout logic is specially in place\r\n // to handle the re-construct of global header when page layout changes. E.G. Redline Banner shows up.\r\n useEffect(() => {\r\n PageReady.afterPageReady().then(() => {\r\n setTimeout(() => {\r\n const isUETConsentNotificationEnabled = get(permissions, ['dynamic', 'UETConsentNotification'], false);\r\n if (isUETConsentNotificationEnabled) {\r\n triggerMultiStepTeachingBubbleWithLock({\r\n ...bubbleContext,\r\n featureName: uetConsentNotificationFeatureName,\r\n });\r\n }\r\n }, 10000);\r\n });\r\n }, [bubbleContext, permissions]);\r\n\r\n useReportingInsightsTeachingBubble(permissions);\r\n\r\n useEffect(() => {\r\n const isChurnModelCouponNotificationEnabled = get(permissions, ['dynamic', 'ChurnModelCouponNotification'], false);\r\n if (isChurnModelCouponNotificationEnabled) {\r\n triggerMultiStepTeachingBubbleWithLock({\r\n ...bubbleContext,\r\n featureName: churnModelCouponNotificationFeatureName,\r\n });\r\n }\r\n }, [bubbleContext, permissions]);\r\n\r\n useEffect(() => {\r\n const isAdsStudioMVPEnabled = get(permissions, ['dynamic', 'AdsStudioMVP'], false);\r\n const ise2etest = getParameter('ise2etest') === 'true';\r\n const isselenium = getParameter('isselenium') === 'true'; // For some C# tests\r\n const showForTest = getParameter('showAdsStudioTeachingBubble') === 'true';\r\n if (isAdsStudioMVPEnabled && ((!ise2etest && !isselenium) || showForTest)) {\r\n triggerMultiStepTeachingBubbleWithLock({\r\n ...bubbleContext,\r\n featureName: adsStudioTeachingBubbleFeatureName,\r\n });\r\n }\r\n }, [bubbleContext, permissions]);\r\n\r\n if (isCouponEnabled) {\r\n return ;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nTeachingBubbleRendererBase.propTypes = {\r\n aid: PropTypes.number.isRequired,\r\n cid: PropTypes.number.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 isCouponEnabled: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const TeachingBubbleRenderer = withCcJsDataContextProvider(TeachingBubbleRendererBase);\r\n","\r\nimport React, { lazy } from 'react';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withFallbackPage } from '@bingads-webui-campaign-react/fallback-page';\r\nimport { withPermissions } from '@bingads-webui-react/hoc-with-permissions';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { withScope } from '@bingads-webui-react/scope-service';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\nimport { bundlesUseHighcharts } from './dynamic-routes';\r\n\r\nconst getLandingPaths = () => [\r\n '/campaign/vnext',\r\n '/campaign/vnext/ads',\r\n '/campaign/vnext/adgroups',\r\n '/campaign/vnext/campaigns',\r\n '/campaign/vnext/keywords',\r\n // TODO: enable DFM for campaign scope\r\n window.location.search.indexOf('campaignId') > -1 ? '' : '/campaign/vnext/overview',\r\n '/campaign/vnext/accounts',\r\n '/campaign/vnext/accounts/overview',\r\n '/campaign/vnext/accounts/overview/expert',\r\n '/campaign/vnext/accounts/overview/smart',\r\n '/campaign/vnext/accounts/performance',\r\n];\r\n\r\nlet isLegacyDefineLoaded = false;\r\n\r\nfunction pickImport(name, moduleExport) {\r\n return () => moduleExport().then(c => (c[name]));\r\n}\r\n\r\nfunction pickImportWithLazyInit(name, moduleExport) {\r\n return () => moduleExport().then(c => (c[name]()));\r\n}\r\n\r\nfunction triggerWillInit(WrappedComponent) {\r\n const WillInitWrapper = (props) => {\r\n const { perfMarker } = props;\r\n _.result(perfMarker, 'willInit');\r\n\r\n return ();\r\n };\r\n\r\n WillInitWrapper.propTypes = {\r\n perfMarker: perfMarkerPropTypes.isRequired,\r\n };\r\n\r\n return React.memo(WillInitWrapper);\r\n}\r\n\r\nfunction importHighcharts() {\r\n return Promise.all([\r\n import(/* webpackMode: 'eager' */'highcharts'),\r\n import(/* webpackMode: 'eager' */'highcharts/highcharts-more'),\r\n import(/* webpackMode: 'eager' */'highcharts/modules/accessibility'),\r\n import(/* webpackMode: 'eager' */'highcharts/modules/pattern-fill'),\r\n ]).then(([Highcharts, highchartsMore, accessibilityModule, patternFillModule]) => {\r\n highchartsMore.default(Highcharts);\r\n accessibilityModule.default(Highcharts);\r\n patternFillModule.default(Highcharts);\r\n return Highcharts;\r\n });\r\n}\r\n\r\nexport function pickManyImports(names, moduleExport) {\r\n return _.mapObject(_.object(names, names), ((_v, name) => pickImport(name, moduleExport)));\r\n}\r\n\r\nexport function pickManyImportsWithLazyInit(names, moduleExport) {\r\n return _.mapObject(_.object(names, names), ((_v, name) => pickImportWithLazyInit(name, moduleExport)));\r\n}\r\n\r\nexport const getDefaultExport = e => e.default;\r\n\r\nexport function lazyLoad(componentFactory, applyWrappers = _.identity, skipWillInitTrigger = false) {\r\n if (!componentFactory) {\r\n throw new Error('Dynamic route does not exist!');\r\n }\r\n\r\n const wrapperFn = skipWillInitTrigger ? applyWrappers : _.compose(applyWrappers, triggerWillInit);\r\n\r\n const loadComponent = () => componentFactory().then(c => wrapperFn(c)).then(feature => ({ default: feature }));\r\n\r\n return lazy(loadComponent);\r\n}\r\n\r\nexport function importLegacyDeps() {\r\n if (isLegacyDefineLoaded) {\r\n return Promise.resolve();\r\n }\r\n\r\n return import(/* webpackChunkName: \"vendor.async.legacy-requirejs\" */'../legacy-dep-bootstrap/require.config').then(() => {\r\n import(/* webpackChunkName: \"vendor.async.legacy-requirejs\" */'../legacy-dep-bootstrap/shim/requirejs-shim').then(() => {\r\n isLegacyDefineLoaded = true;\r\n });\r\n });\r\n}\r\n\r\nexport function importAfterPreLoad(modulePath, moduleExport, needHighcharts = false, needLegacyDeps = false) {\r\n const loadHighChart = needHighcharts || bundlesUseHighcharts[modulePath];\r\n\r\n if (needLegacyDeps && loadHighChart) {\r\n return Promise.resolve().then(importLegacyDeps).then(importHighcharts).then(moduleExport);\r\n }\r\n\r\n if (needLegacyDeps) {\r\n return Promise.resolve().then(importLegacyDeps).then(moduleExport);\r\n }\r\n\r\n if (loadHighChart) {\r\n return Promise.resolve().then(importHighcharts).then(moduleExport);\r\n }\r\n\r\n return Promise.resolve().then(moduleExport);\r\n}\r\n\r\nexport function importAfterPreLoadHighCharts(moduleExport) {\r\n return importHighcharts().then(moduleExport);\r\n}\r\n\r\nexport function isLandingPage() {\r\n const currentPath = window.location.pathname;\r\n\r\n return getLandingPaths().indexOf(currentPath.toLowerCase()) > -1;\r\n}\r\n\r\nexport const withContexts = _.compose(withI18nConsumer, withFallbackPage, withPermissions, withPreference, withScope);\r\n\r\n\r\nexport const withProps = (WrappedComponent, extraProps) => {\r\n const HoC = props => (\r\n \r\n );\r\n\r\n HoC.displayName = `WithProps(${getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(HoC, WrappedComponent);\r\n\r\n return HoC;\r\n};\r\n\r\nexport function withPrefetch(WrappedComponent, prefetchChunks = _.noop) {\r\n // Using webpack will cause the browser to load chunks when the page is initialized\r\n const deferPrefetchChunks = () => _.defer(prefetchChunks);\r\n const HoC = props => (\r\n \r\n );\r\n\r\n HoC.displayName = `WithPrefetch(${getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(HoC, WrappedComponent);\r\n\r\n return HoC;\r\n}\r\n","import React from 'react';\r\n\r\nexport const AppPerfMarker = React.createContext();\r\n\r\nexport const withAppPerfMarker = WrappedComponent => (\r\n props => (\r\n \r\n {(appPerfMarker =>\r\n ())}\r\n \r\n )\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CcJsDataContextProvider } from '@bingads-webui-cc-react/js-data-rest';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { initCcJsData } from '../global-init/init-cc-js-data';\r\n\r\nexport const withCcJsDataContextProvider = (WrappedComponent) => {\r\n const HOC = (props) => {\r\n const { serverContext } = props;\r\n const { jsDataCcRest } = initCcJsData({ serverContext });\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n HOC.propTypes = {\r\n serverContext: PropTypes.shape({\r\n CurrentUser: PropTypes.shape({ Id: PropTypes.number }).isRequired,\r\n CurrentCustomer: PropTypes.shape({ Id: PropTypes.number }).isRequired,\r\n ServicesEndpoints: PropTypes.shape({\r\n ClientCenterUIAPI: PropTypes.string.isRequired,\r\n }),\r\n }).isRequired,\r\n };\r\n\r\n return withServerContext(HOC);\r\n};\r\n","import React, { useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport PropTypes from 'prop-types';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\nimport { withCampaignType } from '@bingads-webui-campaign-react/with-campaign-type';\r\nimport { withServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { withAppPerfMarker } from '../contexts/app-perfmarker-context';\r\n\r\nconst dateRangePreferenceName = 'WebApp.CampaignUI.dateFilter';\r\n\r\nexport const withPagePerfMarker = (WrappedComponent, perfMarkerName, autoEnd = true) => {\r\n const getNewState = (appPerfMarker, { pathname }, preferenceService) => {\r\n const dateRangePreference = preferenceService.findByNameAtUserLevel(dateRangePreferenceName);\r\n const childPerfMarker = appPerfMarker.createChild(perfMarkerName, { autoEnd, data: { DateRange: dateRangePreference.Data } });\r\n childPerfMarker.willFetchFile();\r\n\r\n return {\r\n childPerfMarker,\r\n pathname,\r\n };\r\n };\r\n\r\n const PerfMarkerWrapper = ({\r\n appPerfMarker,\r\n preferenceService,\r\n ...others\r\n }) => {\r\n const location = useLocation();\r\n const [state, setState] = useState(getNewState(appPerfMarker, location, preferenceService));\r\n\r\n if (state.pathname !== location.pathname) {\r\n setState(getNewState(appPerfMarker, location, preferenceService));\r\n }\r\n\r\n return ();\r\n };\r\n\r\n PerfMarkerWrapper.propTypes = {\r\n appPerfMarker: perfMarkerPropTypes.isRequired,\r\n preferenceService: PropTypes.shape({}).isRequired,\r\n };\r\n\r\n return withAppPerfMarker(withPreference(React.memo(PerfMarkerWrapper)));\r\n};\r\n\r\nexport const withOverviewPerfMarker = (WrappedComponent, markerName) => {\r\n const Wrapper = (props) => {\r\n const {\r\n campaignType,\r\n serverContext,\r\n } = props;\r\n let perfMarkerName = markerName || 'Route_Overview_VNext';\r\n const isLinkedInCampaign = campaignType === 'LinkedIn' && serverContext.DynamicPermissions.LinkedInCampaigns;\r\n if (perfMarkerName === 'Route_AccountsOverview_VNext') {\r\n if (serverContext.DynamicPermissions.CustomerLevelOverviewFluent) {\r\n perfMarkerName = 'Route_AccountsOverview_Fluent2_VNext';\r\n }\r\n } else if (campaignType === 'PerformanceMax' && (serverContext.DynamicPermissions.PMaxLite)) {\r\n perfMarkerName = 'Route_Overview_PMaxLite_VNext';\r\n } else if (serverContext.DynamicPermissions.OverviewPageFluentV2 || serverContext.DynamicPermissions.OverviewPageFluent2 || serverContext.DynamicPermissions.AppAdsCampaignPhaseOne || serverContext.DynamicPermissions.UnifiedAppAds || isLinkedInCampaign) {\r\n perfMarkerName = 'Route_Overview_Fluent2_VNext';\r\n }\r\n\r\n // Auto end is marked as false for the Old Overview because once first two cards are rendered, parent marker autoends while other cards are still being imported.\r\n const autoEndForParentMarker = perfMarkerName !== 'Route_Overview_VNext';\r\n\r\n const Component = withPagePerfMarker(WrappedComponent, perfMarkerName, autoEndForParentMarker);\r\n return ();\r\n };\r\n Wrapper.propTypes = {\r\n campaignType: PropTypes.string,\r\n serverContext: PropTypes.shape({\r\n DynamicPermissions: PropTypes.shape({\r\n PMaxLite: PropTypes.bool,\r\n OverviewPageFluentV2: PropTypes.bool,\r\n OverviewPageFluent2: PropTypes.bool,\r\n }).isRequired,\r\n }).isRequired,\r\n };\r\n Wrapper.defaultProps = {\r\n campaignType: undefined,\r\n };\r\n return withCampaignType(withServerContext(Wrapper));\r\n};\r\n","/* eslint-disable no-unused-expressions */\r\nimport Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport { QueryParam } from '@bingads-webui-react/scope-service';\r\nimport { withDFMCache, setDFMCache } from '@bingads-webui/dfm-cache';\r\nimport { get } from '@bingads-webui-universal/primitive-utilities';\r\nimport { isMultiAgencyBillingEnabled, isBillingLinkPermission } from '@bingads-webui/multi-agency-utils';\r\nimport { getAccountLinkPermissionType } from '../global-init/init-settings-context';\r\n\r\nexport function fetchData({\r\n serverContext,\r\n dfmPerfMarker,\r\n preferenceService,\r\n loadingPath,\r\n campaignType,\r\n}) {\r\n return new Promise((resolve, reject) => {\r\n const queryParam = new QueryParam(window.location);\r\n // The below condition is to check if the agency user is limited by the agency billing link type.\r\n // If the user is limited, then the user is only allowed to see Budget & Billing statement reporting pages and other reporting related pages in CMUI.\r\n // In this case, we should not prefetch the data for unaccessible pages where 401 logout will be triggered.\r\n const isLimitedByBillingLink = isMultiAgencyBillingEnabled({ dynamic: serverContext.DynamicPermissions || {} })\r\n && !_.get(serverContext.Permissions, 'IsInternalUser')\r\n && isBillingLinkPermission({ AccountLinkPermissionType: getAccountLinkPermissionType(serverContext) });\r\n const isOdataGetProductScopeEnabled = _.get(serverContext, ['DynamicPermissions', 'OdataGetProductScope'], false);\r\n const isPAAIMConsolidationEnabled = _.get(serverContext, ['DynamicPermissions', 'PAAIMConsolidation'], false);\r\n\r\n if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/overview'\r\n && serverContext.Permissions.IsDataPreFetchForOverviewPageEnabledInVnext) {\r\n if (campaignType === 'PerformanceMax' && serverContext.DynamicPermissions.PMaxLite) {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"pmax-overview-page-dfm\" */'./fetch-pmax-overview-page-data-webpack').then(({ fetchDataForPmaxOverview }) => {\r\n dfmPerfMarker.willInit();\r\n fetchDataForPmaxOverview({\r\n preferenceService,\r\n serverContext,\r\n resolve,\r\n reject,\r\n });\r\n });\r\n } else if (serverContext.DynamicPermissions.OverviewPageFluentV2\r\n || serverContext.DynamicPermissions.OverviewPageFluent2\r\n || serverContext.DynamicPermissions.AppAdsCampaignPhaseOne\r\n || serverContext.DynamicPermissions.UnifiedAppAds\r\n || (serverContext.DynamicPermissions.LinkedInCampaigns && campaignType === 'LinkedIn')\r\n ) {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"fluent-overview-page-dfm\" */'./fetch-fluent-overview-page-data-webpack').then(({ fetchDataForFluentOverview }) => {\r\n dfmPerfMarker.willInit();\r\n fetchDataForFluentOverview({\r\n serverContext,\r\n preferenceService,\r\n resolve,\r\n reject,\r\n queryParam,\r\n });\r\n });\r\n } else {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"overview-page-dfm\" */'./fetch-overview-page-data-webpack').then(({ fetchDataForOverview }) => {\r\n dfmPerfMarker.willInit();\r\n fetchDataForOverview(serverContext, preferenceService, resolve, reject);\r\n });\r\n }\r\n } else if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/campaigns'\r\n && serverContext.Permissions.IsDataPreFetchForCampaignsPageEnabledInVnext) {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"campaigns-page-dfm\" */'./fetch-campaigns-page-data-webpack').then(({ fetchDataForCampaigns }) => {\r\n dfmPerfMarker.willInit();\r\n const campaignDfm = fetchDataForCampaigns({\r\n serverContext,\r\n resolve,\r\n preferenceService,\r\n // Seems this i18n isn't used anyways\r\n newI18n: { getString: () => '' },\r\n });\r\n\r\n const { dataSource, p$dfm } = campaignDfm;\r\n dataSource.query = withDFMCache(dataSource.query, 'campaignDFM', dataSource);\r\n setDFMCache('campaignDFM', p$dfm);\r\n });\r\n } else if (!isLimitedByBillingLink && (loadingPath === '/campaign/vnext/accounts/overview' ||\r\n loadingPath === '/campaign/vnext/accounts/overview/smart' ||\r\n loadingPath === '/campaign/vnext/accounts/overview/expert') && serverContext.DynamicPermissions.CustomerLevelOverviewFluent) {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"customer-overview-page-dfm\" */'./fetch-customer-overview-page-data-webpack').then(({ fetchDataForAccountsOverview }) => {\r\n dfmPerfMarker.willInit();\r\n fetchDataForAccountsOverview({ serverContext, resolve, reject });\r\n });\r\n } else if (!isLimitedByBillingLink && (loadingPath === '/campaign/vnext/accounts/overview' ||\r\n loadingPath === '/campaign/vnext/accounts/overview/smart' ||\r\n loadingPath === '/campaign/vnext/accounts/overview/expert')) {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"overview-page-dfm\" */'./fetch-accounts-overview-page-data-webpack').then(({ fetchDataForAccountsOverview }) => {\r\n dfmPerfMarker.willInit();\r\n fetchDataForAccountsOverview(serverContext, resolve, preferenceService, loadingPath);\r\n });\r\n } else if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/accounts/performance' &&\r\n serverContext.Permissions.IsDataPreFetchForPerformancePageEnabledInVnext) {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"performance-page-dfm\" */'./fetch-performance-page-data-webpack').then(({ fetchDataForPerformance }) => {\r\n dfmPerfMarker.willInit();\r\n fetchDataForPerformance(serverContext, resolve, preferenceService, loadingPath);\r\n });\r\n } else if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/createcampaign/objective' &&\r\n serverContext.Permissions.IsDataPreFetchForPerformancePageEnabledInVnext) {\r\n if (isOdataGetProductScopeEnabled) {\r\n import(/* webpackChunkName: \"campaign-creation-objective-page-dfm\" */ './fetch-search-shopping-product-scope-data')\r\n .then(({ fetchSearchShoppingProductScopeData }) => {\r\n const p$dfm = fetchSearchShoppingProductScopeData(resolve, serverContext);\r\n setDFMCache('getProductScopeDFM', p$dfm);\r\n setDFMCache('getPmaxProductScopeDFM', p$dfm);\r\n });\r\n import(/* webpackChunkName: \"campaign-creation-objective-page-dfm\" */ './fetch-audience-shopping-product-scope-data')\r\n .then(({ fetchAudienceShoppingProductScopeData }) => {\r\n const ap$dfm = fetchAudienceShoppingProductScopeData(resolve, serverContext);\r\n setDFMCache('getAudienceProductScopeDFM', ap$dfm);\r\n });\r\n } else {\r\n import(/* webpackChunkName: \"campaign-creation-objective-page-dfm\" */'./fetch-shopping-campaign-creation-page-data')\r\n .then(({ fetchDataForShoppingCampaignCreationPage }) => {\r\n const isMranSimplificationV2Enabled = serverContext.DynamicPermissions.MranSimplificationV2;\r\n const p$dfm = fetchDataForShoppingCampaignCreationPage(resolve, isMranSimplificationV2Enabled);\r\n setDFMCache('getProductScopeDFM', p$dfm);\r\n });\r\n import(/* webpackChunkName: \"campaign-creation-objective-page-dfm\" */'./fetch-audience-shopping-campaing-creation-page-data')\r\n .then(({ fetchProductDataForAudienceShoppingCampaignCreationPage }) => {\r\n const ap$dfm = fetchProductDataForAudienceShoppingCampaignCreationPage(serverContext);\r\n setDFMCache('getAudienceProductScopeDFM', ap$dfm);\r\n resolve();\r\n });\r\n }\r\n import(/* webpackChunkName: \"campaign-creation-objective-page-dfm\" */'./fetch-has-conversion-goal-data')\r\n .then(({ fetchHasConversionGoalData }) => {\r\n const p$dfm = fetchHasConversionGoalData();\r\n setDFMCache('getHasConversionGoalDFM', p$dfm);\r\n resolve();\r\n });\r\n } else if (!isLimitedByBillingLink && (loadingPath === '/campaign/vnext/create-campaign/msstoreads') &&\r\n serverContext.Permissions.IsDataPreFetchForPerformancePageEnabledInVnext) {\r\n if (isOdataGetProductScopeEnabled) {\r\n import(/* webpackChunkName: \"shopping-campaign-creation-page-dfm\" */ './fetch-search-shopping-product-scope-data')\r\n .then(({ fetchSearchShoppingProductScopeData }) => {\r\n const p$dfm = fetchSearchShoppingProductScopeData(resolve, serverContext);\r\n setDFMCache('getProductScopeDFM', p$dfm);\r\n });\r\n } else {\r\n import(/* webpackChunkName: \"shopping-campaign-creation-page-dfm\" */'./fetch-shopping-campaign-creation-page-data')\r\n .then(({ fetchDataForShoppingCampaignCreationPage }) => {\r\n const p$dfm = fetchDataForShoppingCampaignCreationPage(resolve);\r\n setDFMCache('getProductScopeDFM', p$dfm);\r\n });\r\n }\r\n } else if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/createcampaign/audienceshopping' && !isPAAIMConsolidationEnabled) {\r\n if (isOdataGetProductScopeEnabled) {\r\n import(/* webpackChunkName: \"audience-shopping-campaign-creation-page-dfm\" */ './fetch-audience-shopping-product-scope-data')\r\n .then(({ fetchAudienceShoppingProductScopeData }) => {\r\n const ap$dfm = fetchAudienceShoppingProductScopeData(resolve, serverContext);\r\n setDFMCache('getAudienceProductScopeDFM', ap$dfm);\r\n });\r\n } else {\r\n import(/* webpackChunkName: \"audience-shopping-campaign-creation-page-dfm\" */'./fetch-audience-shopping-campaing-creation-page-data')\r\n .then(({ fetchProductDataForAudienceShoppingCampaignCreationPage }) => {\r\n const ap$dfm = fetchProductDataForAudienceShoppingCampaignCreationPage(serverContext);\r\n setDFMCache('getAudienceProductScopeDFM', ap$dfm);\r\n resolve();\r\n });\r\n }\r\n import(/* webpackChunkName: \"audience-shopping-campaign-creation-page-dfm\" */'./fetch-audience-shopping-campaing-creation-page-data')\r\n .then(({ fetchFeedDataForAudienceShoppingCampaignCreationPage }) => {\r\n let f$dfm;\r\n if (serverContext.Permissions.IsEnabledForDynamicFeedCampaign) {\r\n f$dfm = fetchFeedDataForAudienceShoppingCampaignCreationPage(serverContext);\r\n setDFMCache('getFeedScopeDFM', f$dfm);\r\n }\r\n resolve();\r\n });\r\n } else if (!isLimitedByBillingLink && (loadingPath.includes('vnext/recommendations')\r\n || (loadingPath.includes('vnext/accounts/recommendations') && queryParam.values.recommendationType === undefined))) {\r\n import(/* webpackChunkName: \"recommendation-page-dfm\" */'./fetch-recommendation-page-data')\r\n .then(({ fetchSummaryDataForRecommendationPage }) => {\r\n const previousRoute = history.state.state\r\n && history.state.state.previousRoute;\r\n if (!previousRoute\r\n || (previousRoute && !previousRoute.includes('/recommendations/'))) {\r\n const p$dfm = fetchSummaryDataForRecommendationPage(serverContext, preferenceService, queryParam, loadingPath);\r\n setDFMCache('getSummaryDFM', p$dfm);\r\n }\r\n resolve();\r\n });\r\n } else if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/ads' && serverContext.DynamicPermissions.AdsPageDFMV2) {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"ads-page-dfm\" */'./fetch-ads-page-data')\r\n .then(({ fetchDataForAds }) => {\r\n dfmPerfMarker.willInit();\r\n const adsDfm = fetchDataForAds({\r\n resolve,\r\n queryParam,\r\n serverContext,\r\n preferenceService,\r\n });\r\n const { dataSource, p$dfm } = adsDfm;\r\n dataSource.query = withDFMCache(dataSource.query, 'adsDFM', dataSource);\r\n setDFMCache('adsDFM', p$dfm);\r\n });\r\n } else if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/keywords') {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"keywords-page-dfm\" */'./fetch-positive-keywords-page-data')\r\n .then(({ fetchDataForKeywords }) => {\r\n dfmPerfMarker.willInit();\r\n const keywordsDfm = fetchDataForKeywords({\r\n resolve,\r\n queryParam,\r\n serverContext,\r\n preferenceService,\r\n });\r\n const { dataSource, p$dfm } = keywordsDfm;\r\n dataSource.query = withDFMCache(dataSource.query, 'keywordsDFM', dataSource);\r\n setDFMCache('keywordsDFM', p$dfm);\r\n });\r\n } else if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/adgroups' && serverContext.DynamicPermissions.AdGroupsPageDFMV2) {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"adgroups-page-dfm\" */'./fetch-adgroups-page-data')\r\n .then(({ fetchDataForAdGroups }) => {\r\n dfmPerfMarker.willInit();\r\n const adGroupsDfm = fetchDataForAdGroups({\r\n resolve,\r\n queryParam,\r\n serverContext,\r\n preferenceService,\r\n });\r\n const { dataSource, p$dfm } = adGroupsDfm;\r\n dataSource.query = withDFMCache(dataSource.query, 'adGroupsDFM', dataSource);\r\n setDFMCache('adGroupsDFM', p$dfm);\r\n });\r\n } else if (!isLimitedByBillingLink && loadingPath.includes('/campaign/vnext/extensions') && loadingPath !== '/campaign/vnext/extensions/automated' && serverContext.DynamicPermissions.AdExtensionsPageDFMV2) {\r\n import(/* webpackChunkName: \"adextensions-page-dfm\" */'./fetch-adextensions-page-data')\r\n .then(({ fetchDataForAdExtensions }) => {\r\n dfmPerfMarker.willInit();\r\n const adExtensionsDfm = fetchDataForAdExtensions({\r\n loadingPath,\r\n resolve,\r\n queryParam,\r\n serverContext,\r\n preferenceService,\r\n });\r\n const { dataSource, p$dfm } = adExtensionsDfm;\r\n dataSource.query = withDFMCache(dataSource.query, 'adExtensionsDFM', dataSource);\r\n setDFMCache('adExtensionsDFM', p$dfm);\r\n });\r\n } else if (!isLimitedByBillingLink && loadingPath === '/campaign/vnext/budgetcenter') {\r\n import(/* webpackMode: 'eager' *//* webpackChunkName: \"budget-center-page-dfm\" */'./fetch-budget-center-page-data')\r\n .then(({ fetchDataForBudgetCenter }) => {\r\n dfmPerfMarker.willInit();\r\n fetchDataForBudgetCenter({\r\n serverContext,\r\n queryParam,\r\n });\r\n resolve();\r\n });\r\n } else if (loadingPath === '/campaign/vnext/reports-v4/default-reports') {\r\n import(/* webpackChunkName: \"reports-v4-page-dfm\" */'./fetch-reports-v4-page-data')\r\n .then(({ fetchDataForDefaultReportsPage }) => {\r\n const p$dfm = fetchDataForDefaultReportsPage(serverContext, queryParam);\r\n setDFMCache('getDefaultReportsDFM', p$dfm);\r\n resolve();\r\n });\r\n } else if (loadingPath === '/campaign/vnext/reports-v4/my-reports/customized') {\r\n import(/* webpackChunkName: \"reports-v4-page-dfm\" */'./fetch-reports-v4-page-data')\r\n .then(({ fetchDataForMyReportsPage }) => {\r\n const type = 'Saved';\r\n const p$dfm = fetchDataForMyReportsPage(serverContext, queryParam, type);\r\n setDFMCache(`get${type}ReportsDFM`, p$dfm);\r\n resolve();\r\n });\r\n } else if (loadingPath === '/campaign/vnext/reports-v4/my-reports/shared') {\r\n import(/* webpackChunkName: \"reports-v4-page-dfm\" */'./fetch-reports-v4-page-data')\r\n .then(({ fetchDataForMyReportsPage }) => {\r\n const type = 'Shared';\r\n const p$dfm = fetchDataForMyReportsPage(serverContext, queryParam, type);\r\n setDFMCache(`get${type}ReportsDFM`, p$dfm);\r\n resolve();\r\n });\r\n } else if (loadingPath.includes('/campaign/vnext/reports-v4/create')) {\r\n import(/* webpackChunkName: \"reports-v4-page-dfm\" */'./fetch-reports-v4-page-data')\r\n .then(({ fetchDataForRecentReportsPage }) => {\r\n const [, reportAction, reportType] = location.pathname.match(/\\/(edit|create)\\/(.*)/);\r\n if (!(reportType === 'matchingreport' || reportType === 'pricefeedstatusreport')) { // these reports from hotel center, recent reports not supported\r\n const p$dfm = fetchDataForRecentReportsPage(serverContext, queryParam);\r\n setDFMCache(`getRecentReports${reportAction}${reportType}DFM`, p$dfm);\r\n }\r\n resolve();\r\n });\r\n } else if (loadingPath.includes('/campaign/vnext/reports-v4/edit')) {\r\n let fetchTaskItemCall;\r\n let fetchDataForRecentReportsPageCall;\r\n let fetchInsertionOrdersCall;\r\n const isInternalUser = serverContext.CurrentUser.IsInternal;\r\n const isInsertionOrderReportEnabled = serverContext.DynamicPermissions.InsertionOrderReport;\r\n import(/* webpackChunkName: \"reports-v4-page-dfm\" */'./fetch-reports-v4-page-data')\r\n .then(({ fetchTaskItem, fetchDataForRecentReportsPage, fetchInsertionOrders }) => {\r\n fetchTaskItemCall = fetchTaskItem;\r\n fetchDataForRecentReportsPageCall = fetchDataForRecentReportsPage;\r\n fetchInsertionOrdersCall = fetchInsertionOrders;\r\n const taskItem = isInternalUser ?\r\n fetchTaskItemCall(serverContext, queryParam, true) :\r\n fetchTaskItemCall(serverContext, queryParam)\r\n .catch((err) => { // eslint-disable-line consistent-return\r\n if (err.status === 400) {\r\n const body = err.responseJSON;\r\n if (get(body, 'value[0].Code') === 'InvalidId') {\r\n // retry with user's parent cid\r\n return fetchTaskItemCall(serverContext, queryParam, true);\r\n }\r\n }\r\n });\r\n return taskItem;\r\n })\r\n .catch(() => {\r\n // reject the promise\r\n reject();\r\n })\r\n .then((taskItem) => {\r\n if (taskItem) {\r\n const [, reportAction, reportId] = location.pathname.match(/\\/(edit|create)\\/(.*)/);\r\n const p$dfm = fetchDataForRecentReportsPageCall(serverContext, queryParam, taskItem);\r\n setDFMCache(`getRecentReports${reportAction}${reportId}DFM`, p$dfm);\r\n if (isInsertionOrderReportEnabled && taskItem.ReportType === 'InsertionOrderReport') {\r\n fetchInsertionOrdersCall(serverContext, queryParam);\r\n }\r\n }\r\n resolve();\r\n });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n}\r\n","import { WaterfallFilterStorage,\r\n WaterfallFilterType,\r\n waterfallDateFilterProcessor } from '@bingads-webui-campaign/filter-storage';\r\n\r\n/* eslint-disable import/extensions */\r\n\r\n/* eslint-disable import/no-unresolved */\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\nimport preferences from '@bingads-webui-component-legacy/preference/service/index';\r\nimport _ from 'underscore';\r\nimport instrumentationSettings from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport { fetchMCCOverviewRecommendations } from '@bingads-webui-campaign-legacy/dashboard-cards/tips-card/data-fetch';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport { getViewportCardCount, CardState } from '@bingads-webui-campaign/overview-panel';\r\nimport { fetchMCCOverview, AccountsMode } from '@bingads-webui-campaign/overview-cards-common';\r\n\r\nconst cardsConfig = import(/* webpackMode: \"eager\" */'../webpack-helper-files/cards-config');\r\n\r\nexport function fetchDataForAccountsOverview(serverContext, resolve, preferenceService, loadingPath) {\r\n const permissions = {\r\n ...serverContext.Permissions,\r\n dynamic: serverContext.DynamicPermissions || {},\r\n };\r\n\r\n const waterfallFilterStorage = new WaterfallFilterStorage({\r\n preferenceService,\r\n });\r\n let accountsMode = AccountsMode.Expert;\r\n\r\n if (permissions.dynamic.UnifiedProductPhase2) {\r\n if (loadingPath === '/campaign/vnext/accounts/overview/smart') {\r\n accountsMode = AccountsMode.Smart;\r\n } else if (loadingPath === '/campaign/vnext/accounts/overview') {\r\n const preferenceData = preferenceService.findByNameAtUserLevel('AccountsOverviewAccountMode');\r\n\r\n if ((preferenceData && preferenceData.Data === 'smart') || serverContext.CurrentCustomer.HasExpertAccount === false) {\r\n accountsMode = AccountsMode.Smart;\r\n }\r\n }\r\n }\r\n\r\n Promise.all([cardsConfig]).then((modules) => {\r\n const cardState = new CardState({\r\n navigationLevel: 'customer',\r\n preferences,\r\n edm,\r\n instrumentationSettings,\r\n instrumentation,\r\n constants,\r\n permissions,\r\n accountsMode,\r\n newCardsConfig: modules[0].getCardsConfig,\r\n });\r\n\r\n cardState.fetch().then(() => {\r\n fetchMCCOverview({\r\n entitySet: edm.currentCustomer.Accounts,\r\n dateRange: waterfallDateFilterProcessor(\r\n waterfallFilterStorage.getFilters([WaterfallFilterType.DateFilter]),\r\n serverContext\r\n ),\r\n jsdata,\r\n dateUtil,\r\n getCardsConfig: () => cardState.cards,\r\n instrumentation,\r\n constants,\r\n AccountsOverviewPrefetchQuery: serverContext.AccountsOverviewPrefetchQuery,\r\n isPreFetch: true,\r\n permissions,\r\n accountsMode,\r\n });\r\n const viewportCardCount = getViewportCardCount({\r\n config: cardState.config,\r\n cards: cardState.cards,\r\n instrumentation,\r\n constants,\r\n isMccLevel: true,\r\n });\r\n const viewPortCards = _.first(cardState.cards, viewportCardCount);\r\n const needsTipsAndOpportunitiesData = _.findIndex(viewPortCards, card => card.id === 'CardType-Tips') !== -1;\r\n\r\n if (needsTipsAndOpportunitiesData) {\r\n fetchMCCOverviewRecommendations({\r\n entitySet: edm.currentCustomer.Accounts,\r\n });\r\n }\r\n\r\n resolve({ Page: 'AccountsOverview' });\r\n });\r\n });\r\n}\r\n","import * as instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { getDataSource } from '@bingads-webui-campaign/ad-groups-data';\r\n\r\nexport function fetchDataForAdGroups({\r\n resolve,\r\n queryParam,\r\n preferenceService,\r\n}) {\r\n const {\r\n uid, cid, aid, campaignId,\r\n } = queryParam.values;\r\n const scope = {\r\n values: {\r\n uid, cid, aid, campaignId,\r\n },\r\n };\r\n\r\n instrumentation.default.addScenario({\r\n scenario: [\r\n {\r\n name: 'adGroupsGridDataPrefetch',\r\n value: 'AdGroupsGridDataPrefetch',\r\n activity: [\r\n {\r\n name: 'dataQueryBuilder',\r\n value: 'DataQueryBuilder',\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n const logActivity = instrumentation\r\n .default\r\n .adGroupsGridDataPrefetch\r\n .create()\r\n .dataQueryBuilder\r\n .create();\r\n\r\n const tempDataSource = getDataSource({\r\n scope,\r\n logActivity,\r\n preferenceService,\r\n });\r\n\r\n const { dataSource } = tempDataSource;\r\n\r\n const p$dfm = dataSource.query({}, {}, resolve, true);\r\n\r\n return { dataSource, p$dfm };\r\n}\r\n","import * as instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { getDataSource } from '@bingads-webui-campaign/ads-data';\r\n\r\nexport function fetchDataForAds({\r\n resolve,\r\n queryParam,\r\n preferenceService,\r\n}) {\r\n const {\r\n uid, cid, aid, campaignId, adGroupId,\r\n } = queryParam.values;\r\n const scope = {\r\n values: {\r\n uid, cid, aid, campaignId, adGroupId,\r\n },\r\n };\r\n\r\n instrumentation.default.addScenario({\r\n scenario: [\r\n {\r\n name: 'adGridDataPrefetch',\r\n value: 'AdGridDataPrefetch',\r\n activity: [\r\n {\r\n name: 'dataQueryBuilder',\r\n value: 'DataQueryBuilder',\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n const logActivity = instrumentation\r\n .default\r\n .adGridDataPrefetch\r\n .create()\r\n .dataQueryBuilder\r\n .create();\r\n\r\n const tempDataSource = getDataSource({\r\n scope,\r\n logActivity,\r\n preferenceService,\r\n });\r\n\r\n const { dataSource } = tempDataSource;\r\n\r\n const p$dfm = dataSource.query({}, {}, resolve, true);\r\n\r\n return { dataSource, p$dfm };\r\n}\r\n","import { getAccountPermission } from '@bingads-webui-clientcenter/repository-utils';\r\nimport jsData from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport { AccountUtils, Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { fromLegacyTimeZone, toIANATimeZone } from '@bingads-webui-universal/time-zone-converter';\r\nimport { initCcJsData } from '../global-init/init-cc-js-data';\r\n\r\nconst { SecurityAction, PaymentOption, AccountMode } = Constants;\r\nconst { extendAccount } = AccountUtils;\r\nconst securityActions = [\r\n SecurityAction.CampaignManagementFullControl,\r\n SecurityAction.ForceBilling,\r\n SecurityAction.AccountUpdate,\r\n];\r\nconst CAMPAIGN_PAGE_SIZE = 10000;\r\nconst defaultCampaignBudgetSummaryGridPageSize = 10;\r\nconst defaultCampaignBudgetSummaryGridPageNumber = 1;\r\n\r\nexport function fetchDataForBudgetCenter({\r\n serverContext,\r\n queryParam,\r\n}) {\r\n const { jsDataCcRest: ccJsData } = initCcJsData({ serverContext });\r\n const { cid: cidString, aid: aidString, campaignId: campaignIdString } = queryParam.values;\r\n const cid = Number(cidString);\r\n const aid = Number(aidString);\r\n const campaignId = Number(campaignIdString);\r\n const account = extendAccount({\r\n ...serverContext.CurrentAccount,\r\n CurrencyType: serverContext.CurrentAccount.CurrencyCode, // match CCUI AccountSerializationProxy\r\n });\r\n const isValidAccountId = aid > 0 && account.hasPaymentOption() && (account.AccountMode === AccountMode.Legacy || account.AccountMode === AccountMode.Expert);\r\n\r\n if (!isValidAccountId) {\r\n return;\r\n }\r\n\r\n const isAccountScope = (aid > 0) && !(campaignId > 0);\r\n const budgetInsightsAndAlertsId = `AID${aid}_CampaignID${campaignId || ''}`;\r\n const ioAuthzId = `CID${cid}_AID${aid}`;\r\n\r\n getAccountPermission(ccJsData, { accountId: aid, securityActions });\r\n ccJsData.BudgetInsightsAndAlerts.find(budgetInsightsAndAlertsId, { params: { aid, campaignId } });\r\n jsData.Campaign.findAll({\r\n query: {\r\n $select: 'Id, Name, DeliveryStatus',\r\n $skip: 0,\r\n $top: CAMPAIGN_PAGE_SIZE,\r\n $orderby: 'Name asc',\r\n },\r\n });\r\n\r\n if (account.hasOneOfPaymentOptions([PaymentOption.Invoice])) {\r\n ccJsData.InsertionOrderPermission.find(ioAuthzId, { params: { cid, aid } });\r\n }\r\n\r\n if (account.TimeZone) {\r\n const timeZone = toIANATimeZone(fromLegacyTimeZone(account.TimeZone));\r\n const formatter = new Intl.DateTimeFormat( // StandardDateFormat M/d/yyyy\r\n 'en-US',\r\n {\r\n timeZone,\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: 'numeric',\r\n }\r\n );\r\n const monthKeyString = formatter.format(new Date());\r\n const accountInfoDataId = `AID${aid}_MonthKey${monthKeyString}`;\r\n const campaignInfoDataId = `AID${aid}_CampaignID${campaignId}_MonthKey${monthKeyString}`;\r\n\r\n if (monthKeyString) {\r\n if (isAccountScope) {\r\n ccJsData.AccountBudgetCenterInformation.find(accountInfoDataId, { params: { aid, monthKey: monthKeyString } });\r\n ccJsData.CampaignBudgetSummaryGrid.findAll({\r\n aid,\r\n monthKey: monthKeyString,\r\n limit: defaultCampaignBudgetSummaryGridPageSize,\r\n offset: (defaultCampaignBudgetSummaryGridPageNumber - 1) * defaultCampaignBudgetSummaryGridPageSize,\r\n });\r\n } else {\r\n ccJsData.CampaignBudgetCenterInformation.find(campaignInfoDataId, { params: { aid, campaignId, monthKey: monthKeyString } });\r\n }\r\n }\r\n }\r\n}\r\n","import { getDataSourceWithInjection } from '@bingads-webui-campaign/campaigns-data';\r\nimport _ from 'underscore';\r\n/* eslint-disable import/extensions */\r\n\r\n/* eslint-disable import/no-unresolved */\r\nimport legacyPreferenceService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { getColumnsMap, getBaseColumnsByType } from '@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/columns-config-base';\r\nimport jsData from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport * as ColumnChooserPreference from '@bingads-webui-component-legacy/bingads-grid/service/column-chooser-preferences';\r\nimport * as customColumnPreference from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\nimport * as SegmentationPreference from '@bingads-webui-component-legacy/bingads-grid/service/segmentation-preferences';\r\nimport * as fetchPagination from '@bingads-webui-component-legacy/bingads-grid/service/fetch-pagination';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { fetchSortInfo } from '@bingads-webui-component-legacy/bingads-grid/service/fetch-sortinfo';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport sessionStore from '@bingads-webui-component-legacy/js-data-storage/session-storage';\r\nimport { getFilters } from '@bingads-webui-component-legacy/bingads-grid/service/filter-preferences';\r\nimport cacheService from '@bingads-webui-static-legacy/cache-service';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\nexport function fetchDataForCampaigns({\r\n serverContext,\r\n preferenceService,\r\n newI18n,\r\n resolve,\r\n}) {\r\n const scope = {\r\n values: {\r\n uid: serverContext.CurrentUser.Id,\r\n cid: serverContext.CurrentCustomer.Id,\r\n aid: serverContext.CurrentAccount.Id,\r\n },\r\n };\r\n\r\n instrumentation.addScenario({\r\n scenario: [\r\n {\r\n name: 'campaignGridDataPrefetch',\r\n value: 'CampaignGridDataPrefetch',\r\n activity: [\r\n {\r\n name: 'dataQueryBuilder',\r\n value: 'DataQueryBuilder',\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n const logActivity = instrumentation.campaignGridDataPrefetch\r\n .create()\r\n .dataQueryBuilder\r\n .create();\r\n\r\n // Seems this i18n isn't used anyways\r\n const stub = () => '';\r\n const stubI18n = {\r\n parseInt: stub,\r\n get: stub,\r\n getString: stub,\r\n type: stub,\r\n property: stub,\r\n value: stub,\r\n enum: stub,\r\n // deprecated\r\n enumMappedString: stub,\r\n valueDescription: stub,\r\n enumDescription: stub,\r\n };\r\n\r\n if (serverContext.Permissions.IsOptimizationScoreInCampaignsGridEnabled === true) {\r\n legacyPreferenceService.initialize();\r\n let optimizationScoreInCampaignsGridDefaultOn = legacyPreferenceService.findByName('OptimizationScoreInCampaignsGridDefaultOn');\r\n if (!optimizationScoreInCampaignsGridDefaultOn || !optimizationScoreInCampaignsGridDefaultOn.Data || !optimizationScoreInCampaignsGridDefaultOn.Data.appended2Column) {\r\n optimizationScoreInCampaignsGridDefaultOn = {\r\n Name: 'OptimizationScoreInCampaignsGridDefaultOn',\r\n Data: { appended2Column: true },\r\n };\r\n preferenceService.setAtAccountLevel(optimizationScoreInCampaignsGridDefaultOn);\r\n const campaignsGridCustomColumn = legacyPreferenceService.findByName('WebApp.CampaignUI.Columns.summary_tab_campaign.Custom');\r\n if (campaignsGridCustomColumn && _.indexOf(campaignsGridCustomColumn.Data, 'OptimizationScore') === -1) {\r\n let index = _.indexOf(campaignsGridCustomColumn.Data, 'DeliveryStatus');\r\n if (index === -1) index = _.indexOf(campaignsGridCustomColumn.Data, 'Budget');\r\n if (index === -1) index = _.indexOf(campaignsGridCustomColumn.Data, 'Name');\r\n if (index !== -1) {\r\n campaignsGridCustomColumn.Data.splice(index + 1, 0, 'OptimizationScore');\r\n legacyPreferenceService.setAtAccountLevel(campaignsGridCustomColumn);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const dataSourceWithInjection = getDataSourceWithInjection({\r\n gridName: null,\r\n logActivity,\r\n preferenceService,\r\n newI18n,\r\n serverContext,\r\n jsData,\r\n edm,\r\n ColumnChooserPreference,\r\n customColumnPreference,\r\n SegmentationPreference,\r\n fetchPagination,\r\n dateUtil,\r\n state,\r\n fetchSortInfo,\r\n getColumnsMap,\r\n getBaseColumnsByType,\r\n logger,\r\n appConfig,\r\n i18n: stubI18n,\r\n sessionStore,\r\n preferenceStoreFactory: getFilters,\r\n legacyGlobalI18n: stubI18n,\r\n schemaI18nCampaign: stubI18n,\r\n cacheService,\r\n dataContextManager,\r\n scope,\r\n });\r\n\r\n const { CampaignFilterImprovementEnabled } = serverContext.DynamicPermissions;\r\n const dataSource = CampaignFilterImprovementEnabled ? dataSourceWithInjection.dataSource : dataSourceWithInjection;\r\n const p$dfm = dataSource.query({}, {}, resolve, true);\r\n\r\n return { dataSource, p$dfm };\r\n}\r\n","import edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\nimport _ from 'underscore';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport { cardPerformanceId, cardRecommendationsId, cardDeviceId, cardTopAccountsId, cardTopChangesAccountId } from '@bingads-webui-campaign/fluent-page-consts';\r\n\r\nexport function fetchDataForAccountsOverview({\r\n serverContext,\r\n resolve,\r\n reject,\r\n}) {\r\n Promise.all([\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign/overview-panel'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign/fluent-page-data'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign/overview-cards-common'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign-legacy/dashboard-cards/tips-card/data-fetch'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-component-legacy/preference/service/index'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-static-legacy/instrumentation/index'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-component-legacy/js-data-campaign/index'),\r\n ])\r\n .then(([\r\n { DateFilterState },\r\n {\r\n getFluentCardsConfigs, getInitSelectedCardsConfig, getViewPortCardsCount, isInViewPort, getCardPreferenceOptionsForDfm,\r\n },\r\n { fetchAggregatedData },\r\n { fetchMCCOverviewRecommendations },\r\n { default: preference },\r\n { instrumentation },\r\n { default: jsdata },\r\n ]) => {\r\n preference\r\n .initialize()\r\n .then(() => {\r\n const permissions = {\r\n ...serverContext.Permissions || {},\r\n dynamic: serverContext.DynamicPermissions || {},\r\n };\r\n\r\n const p$DateRange = new DateFilterState({ state }).p$State;\r\n const cardsConfigs = getFluentCardsConfigs({ permissions });\r\n\r\n const selectedCardsConfig = getInitSelectedCardsConfig({\r\n preference,\r\n cardsConfigs,\r\n navigationLevel: 'customer',\r\n serverContext,\r\n isSDK: false,\r\n });\r\n\r\n const cardIds = _.map(selectedCardsConfig, 'typeId');\r\n const viewPortCardSize = getViewPortCardsCount(selectedCardsConfig);\r\n\r\n const getCardsConfig = () =>\r\n selectedCardsConfig.map(config =>\r\n getCardPreferenceOptionsForDfm({\r\n config,\r\n navigationLevel: 'customer',\r\n preference,\r\n permissions,\r\n }));\r\n\r\n window.FluentOverviewPageDataFetchManagerCardsConfigObject = {\r\n config: getCardsConfig(),\r\n viewPortCardSize,\r\n innerHeight: window.innerHeight,\r\n innerWidth: window.innerWidth,\r\n };\r\n\r\n const isPerformanceInViewPort = isInViewPort(cardIds, cardPerformanceId, viewPortCardSize);\r\n const isRecommendationInViewPort = isInViewPort(cardIds, cardRecommendationsId, viewPortCardSize);\r\n const isDeviceInViewPort = isInViewPort(cardIds, cardDeviceId, viewPortCardSize);\r\n const isTopAccountsInViewPort = isInViewPort(cardIds, cardTopAccountsId, viewPortCardSize);\r\n const isTopChangesAccountInViewPort = isInViewPort(cardIds, cardTopChangesAccountId, viewPortCardSize);\r\n\r\n // If no cards are in viewport, resolve and return\r\n if (!(isPerformanceInViewPort || isRecommendationInViewPort || isDeviceInViewPort || isTopAccountsInViewPort || isTopChangesAccountInViewPort)) {\r\n resolve();\r\n return;\r\n }\r\n\r\n edm.customerIdType.useAdvertiserCustomerId = false;\r\n const entitySet = edm.currentCustomer.Accounts;\r\n\r\n p$DateRange\r\n .then((dateRange) => {\r\n if (isPerformanceInViewPort || isDeviceInViewPort || isTopAccountsInViewPort || isTopChangesAccountInViewPort) {\r\n fetchAggregatedData({\r\n entitySet,\r\n navigationLevel: 'customer',\r\n dateRange,\r\n jsdata,\r\n dateUtil,\r\n getCardsConfig,\r\n instrumentation,\r\n constants,\r\n permissions,\r\n });\r\n }\r\n\r\n if (isRecommendationInViewPort) {\r\n fetchMCCOverviewRecommendations({\r\n entitySet: edm.currentCustomer.Accounts,\r\n });\r\n }\r\n\r\n resolve();\r\n })\r\n .catch((error) => {\r\n console.error('Error fetching date range:', error);\r\n reject(error);\r\n });\r\n }).catch((error) => {\r\n console.error('Error initializing preference service:', error);\r\n reject(error);\r\n });\r\n })\r\n .catch((error) => {\r\n console.error('Error loading modules:', error);\r\n reject(error);\r\n });\r\n}\r\n","export function fetchDataForFluentOverview({\r\n serverContext,\r\n preferenceService,\r\n resolve,\r\n reject,\r\n queryParam,\r\n}) {\r\n if (\r\n serverContext.WelcomeStatus &&\r\n serverContext.WelcomeStatus.ShowWelcomeTips\r\n ) {\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign-legacy/dashboard-page/dashboard/data-fetch-welcome')\r\n .then(({ fetchWelcomeTipData }) => {\r\n fetchWelcomeTipData();\r\n resolve();\r\n });\r\n } else {\r\n Promise.all([\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign/filter-storage'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign-react/shell-ui-common'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign/overview-panel'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign/fluent-page-data'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-component-legacy/preference/service/index'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-component-legacy/config/index'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign-legacy/instrumentation/index'),\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-component-legacy/js-data-campaign/index'),\r\n ])\r\n .then(([\r\n { WaterfallFilterStorage, WaterfallFilterType },\r\n { getFilteredCampaignTypeFromWaterfallFilter },\r\n { DateFilterState },\r\n { fetchFluentOverviewTilesData },\r\n { default: preference },\r\n { default: legacyConfig },\r\n { default: featureInstrumentation },\r\n { default: jsdata },\r\n ]) => {\r\n const waterfallFilterStorage = new WaterfallFilterStorage({\r\n preferenceService,\r\n });\r\n\r\n const filter = waterfallFilterStorage.getFilters([\r\n WaterfallFilterType.CampaignType,\r\n WaterfallFilterType.CampaignStatus,\r\n WaterfallFilterType.AdGroupStatus,\r\n ]);\r\n\r\n const campaignType = getFilteredCampaignTypeFromWaterfallFilter(filter);\r\n\r\n preference\r\n .initialize()\r\n .then(() => {\r\n const permissions = {\r\n ...serverContext.Permissions,\r\n dynamic: serverContext.DynamicPermissions,\r\n };\r\n\r\n fetchFluentOverviewTilesData({\r\n serverContext,\r\n filter,\r\n campaignType,\r\n resolve,\r\n reject,\r\n DateFilterState,\r\n preference,\r\n queryParam,\r\n jsdata,\r\n permissions,\r\n legacyConfig,\r\n featureInstrumentation,\r\n });\r\n })\r\n .catch((error) => {\r\n console.error('Error initializing preference service:', error);\r\n reject(error);\r\n });\r\n })\r\n .catch((error) => {\r\n console.error('Error loading modules:', error);\r\n reject(error);\r\n });\r\n }\r\n}\r\n","const getCardsConfigs = () => {\r\n const cardsConfig = import(/* webpackMode: \"eager\" */'../webpack-helper-files/cards-config');\r\n return cardsConfig;\r\n};\r\n\r\nconst getWelcomeCardsConfig = () => {\r\n const cardsConfig = import(/* webpackMode: \"eager\" */'../webpack-helper-files/welcome-card-config');\r\n return cardsConfig;\r\n};\r\n\r\nexport function fetchDataForOverview(serverContext, preferenceService, resolve, reject) {\r\n if (serverContext.WelcomeStatus && serverContext.WelcomeStatus.ShowWelcomeTips) {\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/dashboard-page/dashboard/data-fetch-welcome').then(({ fetchWelcomeTipData }) => {\r\n fetchWelcomeTipData();\r\n resolve();\r\n });\r\n } else {\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/dashboard-page/dashboard/data-fetch-manager').then(({ fetchOverviewTilesData }) => {\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/filter-storage').then(({ WaterfallFilterStorage, WaterfallFilterType }) => {\r\n const waterfallFilterStorage = new WaterfallFilterStorage({\r\n preferenceService,\r\n });\r\n const filter = waterfallFilterStorage.getFilters([\r\n WaterfallFilterType.CampaignType,\r\n WaterfallFilterType.CampaignStatus,\r\n WaterfallFilterType.AdGroupStatus,\r\n ]);\r\n\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/shell-ui-common').then(({ getFilteredCampaignTypeFromWaterfallFilter }) => {\r\n const campaignType = getFilteredCampaignTypeFromWaterfallFilter(filter);\r\n\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/overview-panel').then(({ getViewportCardCount, DateFilterState, CardState }) => {\r\n Promise.all([getCardsConfigs(), getWelcomeCardsConfig()]).then((modules) => {\r\n fetchOverviewTilesData({\r\n filter,\r\n campaignType,\r\n resolve,\r\n reject,\r\n getViewportCardCount,\r\n DateFilterState,\r\n CardState,\r\n newCardsConfig: modules[0].getCardsConfig,\r\n welcomeCardsConfig: modules[1].welcomeCardConfig,\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","import { DataSourceStore } from '@bingads-webui-campaign/data-source-store';\r\nimport { connect } from '@bingads-webui-campaign/dqb-grid-datasource-connector';\r\nimport { QueryBuilderFactory } from '@bingads-webui-campaign/query-builder';\r\n/* eslint-disable */\r\nimport * as instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport _ from 'underscore';\r\n/* eslint-enable */\r\n\r\nexport function fetchDataForPerformance(serverContext, resolve, preferenceService) {\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/accounts-summary/data-fetch-config').then((dataFetchConfig) => {\r\n instrumentation.default.addScenario({\r\n scenario: [\r\n {\r\n name: 'accountsSummaryDataPrefetch',\r\n value: 'AccountsSummaryDataPrefetch',\r\n activity: [\r\n {\r\n name: 'dataQueryBuilder',\r\n value: 'DataQueryBuilder',\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n const logActivity = instrumentation\r\n .default\r\n .accountsSummaryDataPrefetch\r\n .create()\r\n .dataQueryBuilder\r\n .create();\r\n\r\n const currentHash = (window.location.hash || '').toLowerCase();\r\n const isLandingPage = currentHash.length === 0 || currentHash.indexOf('/campaign/vnext/accounts/performance') > 0;\r\n\r\n // If not landing page, resolve right away\r\n if (!isLandingPage) {\r\n resolve();\r\n }\r\n\r\n const config = dataFetchConfig.getConfig(preferenceService);\r\n const queryBuilderConfig = _.extend(config.queryBuilder, { logActivity });\r\n if (serverContext.CurrentCustomer.HasUnifiedSmartAccount) {\r\n queryBuilderConfig.commonConfig.featureName = 'SmartPerformanceGrid';\r\n }\r\n const { featureName } = queryBuilderConfig.commonConfig;\r\n const queryBuilder = QueryBuilderFactory.make(queryBuilderConfig);\r\n // Default page size has changed to 50 in new UI performance page, was 20 in old UI accounts summary page\r\n queryBuilder.getDecoratorByName('pagination').defaultPageSize = 50;\r\n // For Unified Product Phase 2, default grid type based on presence of UnifiedSmart accounts belonging to current customer\r\n if (serverContext.CurrentCustomer.HasUnifiedSmartAccount) {\r\n queryBuilder.getDecoratorByName('gridDataParameters').accountModes = ['Smart'];\r\n } else {\r\n queryBuilder.getDecoratorByName('gridDataParameters').accountModes = ['Expert'];\r\n }\r\n // Get right filter value from preferences\r\n const { filterService } = queryBuilder.getDecoratorByName('filter');\r\n\r\n let editableFilter = preferenceService.findByName(`editable-filter-storage-campaignwebui-${queryBuilderConfig.commonConfig.featureName}-undefined/EditableFilter`);\r\n editableFilter = editableFilter && editableFilter.Data ? editableFilter.Data : null;\r\n\r\n filterService.editableFilterStorage.save(editableFilter);\r\n\r\n const dataSource = connect(\r\n config.dataSource,\r\n queryBuilder,\r\n featureName,\r\n logger\r\n );\r\n\r\n // log to figure out defaultcolumns warmup cache error\r\n const { IsAvgPositionDeprecationPhase2Enabled, defaultColumns } = queryBuilder.getDecoratorByName('columnChooser');\r\n logger.logMessage([logger.constants.LOGCATEGORY.TRACE], logger.constants.LOGLEVEL.INFO, '/accounts/performance', `Default columns used in warmup query in fetch-performance-page.js: ${defaultColumns}, IsAvgPositionDeprecationPhase2Enabled: ${IsAvgPositionDeprecationPhase2Enabled}`);\r\n\r\n const { AccountSummaryFilterImprovementEnabled } = serverContext.DynamicPermissions;\r\n\r\n dataSource.query({}, {}, resolve);\r\n\r\n if (!AccountSummaryFilterImprovementEnabled) {\r\n DataSourceStore.set(featureName, dataSource);\r\n } else {\r\n const cacheableObjects = {\r\n dataSource,\r\n filterService: config.filterService,\r\n };\r\n\r\n DataSourceStore.set(featureName, cacheableObjects);\r\n }\r\n });\r\n}\r\n","import { fetchPmaxOverviewTabData } from '@bingads-webui-campaign-legacy/dashboard-page/dashboard/data-fetch-pmax-overview';\r\nimport { WaterfallFilterStorage, WaterfallFilterType } from '@bingads-webui-campaign/filter-storage';\r\n\r\nexport function fetchDataForPmaxOverview({\r\n preferenceService, serverContext, resolve, reject,\r\n}) {\r\n const waterfallFilterStorage = new WaterfallFilterStorage({\r\n preferenceService,\r\n });\r\n const filter = waterfallFilterStorage.getFilters([\r\n WaterfallFilterType.CampaignType,\r\n WaterfallFilterType.CampaignStatus,\r\n WaterfallFilterType.AdGroupStatus,\r\n ]);\r\n\r\n fetchPmaxOverviewTabData({\r\n filter, serverContext, preferenceService, resolve, reject,\r\n });\r\n}\r\n","import * as instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { getDataSource } from '@bingads-webui-campaign/positive-keywords-data';\r\n\r\nexport function fetchDataForKeywords({\r\n resolve,\r\n queryParam,\r\n preferenceService,\r\n}) {\r\n const {\r\n uid, cid, aid, campaignId, adGroupId,\r\n } = queryParam.values;\r\n const scope = {\r\n values: {\r\n uid, cid, aid, campaignId, adGroupId,\r\n },\r\n };\r\n\r\n instrumentation.default.addScenario({\r\n scenario: [\r\n {\r\n name: 'positiveKeywordsGridDataPrefetch',\r\n value: 'PositiveKeywordsGridDataPrefetch',\r\n activity: [\r\n {\r\n name: 'dataQueryBuilder',\r\n value: 'DataQueryBuilder',\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n const logActivity = instrumentation\r\n .default\r\n .positiveKeywordsGridDataPrefetch\r\n .create()\r\n .dataQueryBuilder\r\n .create();\r\n\r\n const tempDataSource = getDataSource({\r\n scope,\r\n logActivity,\r\n preferenceService,\r\n });\r\n\r\n const { dataSource } = tempDataSource;\r\n\r\n const p$dfm = dataSource.query({}, {}, resolve, true);\r\n\r\n return { dataSource, p$dfm };\r\n}\r\n","import _ from 'underscore';\r\n\r\nfunction isDFMEnabledForOverview(serverContext, campaignType) {\r\n return (campaignType === 'PerformanceMax' && serverContext.DynamicPermissions.PMaxLite)\r\n || !(window.location.search.indexOf('campaignId') > -1);\r\n}\r\n\r\nfunction getDFMEnabledPaths(serverContext, campaignType) {\r\n const DFMEnabledPaths = _.compact([\r\n '/campaign/vnext/campaigns',\r\n // TODO: enable DFM for campaign scope\r\n isDFMEnabledForOverview(serverContext, campaignType) ? '/campaign/vnext/overview' : '',\r\n '/campaign/vnext/accounts/overview',\r\n '/campaign/vnext/accounts/overview/expert',\r\n '/campaign/vnext/accounts/overview/smart',\r\n '/campaign/vnext/accounts/performance',\r\n '/campaign/vnext/createcampaign/objective',\r\n '/campaign/vnext/createcampaign/searchshopping',\r\n '/campaign/vnext/create-campaign/msstoreads',\r\n '/campaign/vnext/createcampaign/audienceshopping',\r\n // TODO: will change recommendation related routing to lower case\r\n '/campaign/vnext/recommendations/All',\r\n '/campaign/vnext/recommendations/Repairs',\r\n '/campaign/vnext/recommendations/Bids',\r\n '/campaign/vnext/recommendations/Keywords',\r\n '/campaign/vnext/recommendations/Ads',\r\n '/campaign/vnext/recommendations/Dismissed',\r\n '/campaign/vnext/recommendations/all',\r\n '/campaign/vnext/recommendations/repairs',\r\n '/campaign/vnext/recommendations/bids',\r\n '/campaign/vnext/recommendations/keywords',\r\n '/campaign/vnext/recommendations/ads',\r\n '/campaign/vnext/recommendations/dismissed',\r\n '/campaign/vnext/accounts/recommendations/All',\r\n '/campaign/vnext/accounts/recommendations/all',\r\n '/campaign/vnext/accounts/recommendations/repairs',\r\n '/campaign/vnext/accounts/recommendations/bids',\r\n '/campaign/vnext/accounts/recommendations/keywords',\r\n '/campaign/vnext/accounts/recommendations/ads',\r\n '/campaign/vnext/accounts/recommendations/dismissed',\r\n '/campaign/vnext/reports-v4/default-reports',\r\n '/campaign/vnext/reports-v4/my-reports/customized',\r\n '/campaign/vnext/reports-v4/my-reports/shared',\r\n '/campaign/vnext/reports-v4/create',\r\n '/campaign/vnext/reports-v4/edit',\r\n '/campaign/vnext/ads',\r\n '/campaign/vnext/keywords',\r\n '/campaign/vnext/adgroups',\r\n '/campaign/vnext/extensions',\r\n '/campaign/vnext/budgetcenter',\r\n ]);\r\n return DFMEnabledPaths;\r\n}\r\n\r\nexport function isDFMEnabledForPath(path, serverContext, campaignType) {\r\n return _.some(getDFMEnabledPaths(serverContext, campaignType), DFMPath => path.includes(DFMPath));\r\n}\r\n","import { isSDK } from '@bingads-webui-campaign-react/sdk-utils';\r\n\r\nexport function redirectToLogin() {\r\n if (isSDK()) {\r\n const sdkLoginPagePath = `campaign/sdk?RURL=${encodeURIComponent(window.location.href)}&sdksignup=false`;\r\n window.location.href = `${window.location.protocol}//${window.location.host}/${sdkLoginPagePath}`;\r\n } else {\r\n window.location.href = `${window.location.protocol}//${window.location.host}/default.aspx?reason=1&msg=sessionexpired`;\r\n }\r\n}\r\n\r\nexport function handleAjaxAuthFailure(data, requestUrl) {\r\n if (data && data.Error === '401') {\r\n if (requestUrl && requestUrl.indexOf(window.location.host) > -1) {\r\n redirectToLogin();\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n","/* eslint-disable no-console */\r\n\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport { TokenInfoFetcher } from '@bingads-webui/token-info-fetcher';\r\nimport { keepAliveInstance } from '@bingads-webui/keep-alive';\r\nimport { AutoRefreshToken } from '@bingads-webui/auto-refresh-token';\r\nimport componentConfigImport from '@bingads-webui-component-legacy/config/index';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { versionCheckInstance } from '@bingads-webui-campaign/version-check';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\nimport { setupQualtricsWithData } from '@bingads-webui-campaign/qualtrics';\r\nimport { setupClarity } from '@bingads-webui-universal/clarity';\r\nimport { PerfMarkerFactory } from '@bingads-webui/performance-marker';\r\nimport { PreferenceService } from '@bingads-webui/preference-service';\r\nimport { GetJsDataInfo } from '@bingads-webui-clientcenter/js-data-cc-rest-base';\r\nimport { isSDK } from '@bingads-webui-campaign-react/sdk-utils';\r\nimport { redirectToLogin } from './constants';\r\nimport { initPDL } from './omniture';\r\nimport { initWalkMe } from './walk-me';\r\n\r\nconst PROD_CLARITY_ID = '4jwlwd615c';\r\nconst TEST_CLARITY_ID = '6vo4jbalnn';\r\n\r\nconst CookieConsentActivityName = 'wcp-consent';\r\n\r\nfunction getJsData(serverContext) {\r\n const cid = _.chain(serverContext).result('CurrentCustomer').result('Id').value();\r\n const uid = _.chain(serverContext).result('CurrentUser').result('Id').value();\r\n const clientCenterBaseUrl = _.chain(serverContext).result('ServicesEndpoints').result('ClientCenterUIAPI').value();\r\n\r\n const options = {\r\n cidFetcher: () => cid,\r\n uidFetcher: () => uid,\r\n appendErrorSummary: _.noop,\r\n handleAjaxAuthFailure: _.noop,\r\n willSupportCors: true,\r\n };\r\n\r\n return GetJsDataInfo(options, clientCenterBaseUrl, []).jsDataCcRest;\r\n}\r\n\r\nfunction initOCVSurvey(serverContext, appActivity) {\r\n const activityName = 'survey-management';\r\n const isEnhancedSurveyTriggerConditionEnabled = _.result(serverContext, ['DynamicPermissions', 'EnhancedSurveyTriggerCondition']);\r\n\r\n const appPerfMarker = PerfMarkerFactory.createMarker('Survey_Management');\r\n appPerfMarker.willInit();\r\n const tokenFetchPerfMarker = appPerfMarker.createChild('Token_Fetch');\r\n tokenFetchPerfMarker.willInit();\r\n\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-react/survey-manager').then(({ setupSurveyManager }) => {\r\n const ccBaseUrl = _.chain(serverContext).result('Urls').result('ClientCenterBaseUrl').value();\r\n const IsAADUser = _.chain(serverContext).result('IsAADUser').value();\r\n const sessionId = _.chain(serverContext).result('Omniture').result('SessionId').value();\r\n const uid = _.chain(serverContext).result('CurrentUser').result('Id').value();\r\n const tokenInfoFetcher = new TokenInfoFetcher({\r\n ccBaseUrl,\r\n IsAADUser,\r\n sessionId,\r\n appActivity,\r\n shouldDoAjaxCall: true,\r\n activityName,\r\n });\r\n const ccJsData = getJsData(serverContext);\r\n\r\n const fetchTokenInfo = () => new Promise((resolve, reject) => (\r\n tokenInfoFetcher.getTokenInfo()\r\n .then((tokenInfo) => {\r\n tokenFetchPerfMarker.done();\r\n return resolve(tokenInfo);\r\n })\r\n .catch((error) => {\r\n tokenFetchPerfMarker.done();\r\n return reject(error);\r\n })\r\n ));\r\n\r\n const shouldFetchUser = isEnhancedSurveyTriggerConditionEnabled && !_.result(serverContext, ['CurrentUser', 'CreatedDateTime']);\r\n\r\n Promise.all([\r\n fetchTokenInfo(),\r\n shouldFetchUser ? ccJsData.User.find(uid) : Promise.resolve({}),\r\n ])\r\n .then(([tokenInfo, userData]) => {\r\n const { CreatedDateTime } = userData || {};\r\n const clonedServerContext = _.clone(serverContext);\r\n if (CreatedDateTime && _.isString(CreatedDateTime) && clonedServerContext && clonedServerContext.CurrentUser) {\r\n clonedServerContext.CurrentUser.FetchedCreatedDateTime = CreatedDateTime;\r\n if (shouldFetchUser) {\r\n clonedServerContext.CurrentUser.CreatedDateTime = CreatedDateTime;\r\n }\r\n }\r\n\r\n const initSurveyManagerPerfMarker = appPerfMarker.createChild('Init_Survey_Manager');\r\n initSurveyManagerPerfMarker.willInit();\r\n setupSurveyManager({\r\n i18n: window.globalLegacyI18n.main,\r\n PageContext,\r\n serverContext: clonedServerContext,\r\n PreferenceService,\r\n tokenInfo,\r\n appActivity,\r\n activityName,\r\n appPerfMarker,\r\n });\r\n window.survey.surveyManager.trigger();\r\n initSurveyManagerPerfMarker.done();\r\n })\r\n .catch((error) => {\r\n if (appActivity) {\r\n appActivity.trace(`OCV survey initialization promise failed ${JSON.stringify(error)}`, activityName);\r\n }\r\n });\r\n });\r\n}\r\n\r\nexport function initGlobalService(serverContext = {}, appActivity = {}) {\r\n try {\r\n // start keep alive\r\n keepAliveInstance.unAuthCallBack = () => redirectToLogin();\r\n keepAliveInstance.start();\r\n\r\n // knockout config\r\n // below override is needed as we don't want ko.cleanNode to clean event bindings\r\n // this is a compatibility patch when we upgrade jquery to 1.9.1\r\n ko.utils.domNodeDisposal.cleanExternalData = () => {}; // eslint-disable-line no-param-reassign\r\n\r\n // start version check\r\n versionCheckInstance.version = serverContext.Version;\r\n versionCheckInstance.start();\r\n\r\n // init an empty function to avoid customer click the help icon\r\n // before the apex loading is ready\r\n window.PopupController = { PopupJsClick: () => {} };\r\n\r\n PageReady.afterPageReady().then(() => {\r\n initWalkMe(serverContext);\r\n setupQualtricsWithData(serverContext, {\r\n PreferenceService,\r\n enableIframeCommunication: true,\r\n appActivity,\r\n });\r\n\r\n if (!isSDK()) {\r\n initOCVSurvey(serverContext, appActivity);\r\n }\r\n\r\n const init1DSAnalytics = () => {\r\n const scriptUrl = 'https://js.monitor.azure.com/scripts/c/ms.analytics-web-3.min.js';\r\n\r\n if (!_.isFunction($.ajax)) {\r\n return new Promise();\r\n }\r\n\r\n return new Promise((resolve) => {\r\n $.ajax({\r\n url: scriptUrl,\r\n dataType: 'script',\r\n crossOrigin: true,\r\n credentials: 'omit',\r\n }).always(() => resolve());\r\n });\r\n };\r\n\r\n const initAdobeTracking = () => {\r\n const trackingScriptUrl = _.chain(serverContext).result('ThirdPartConfig').result('AdobeTrackingScriptUrl', undefined).value();\r\n if (!_.isUndefined(trackingScriptUrl) && _.isFunction($.ajax)) {\r\n $.ajax({\r\n url: trackingScriptUrl,\r\n dataType: 'script',\r\n crossOrigin: true,\r\n credentials: 'omit',\r\n success: () => initPDL(serverContext),\r\n });\r\n }\r\n };\r\n\r\n const initAmplifyTracking = () => {\r\n const amplifyTrackingScriptUrl = _.chain(serverContext).result('AmplifyTrackingScriptUrl', undefined).value();\r\n if (!_.isUndefined(amplifyTrackingScriptUrl) && _.isFunction($.ajax)) {\r\n $.ajax({\r\n url: amplifyTrackingScriptUrl,\r\n dataType: 'script',\r\n crossOrigin: true,\r\n credentials: 'omit',\r\n });\r\n }\r\n };\r\n\r\n const initClarity = () => {\r\n setupClarity(\r\n serverContext.IsProdEnv ? PROD_CLARITY_ID : TEST_CLARITY_ID,\r\n {\r\n customerId: serverContext.CurrentCustomer.Id.toString(),\r\n accountId: serverContext.CurrentAccount\r\n && serverContext.CurrentAccount.Id\r\n && serverContext.CurrentAccount.Id.toString(),\r\n SessionId: serverContext.Omniture.SessionId,\r\n PageTrackingId: serverContext.PageTrackingId,\r\n },\r\n serverContext.CurrentUser.Id.toString(),\r\n serverContext.Omniture.SessionId,\r\n serverContext.PageTrackingId\r\n );\r\n };\r\n\r\n const script = document.createElement('script');\r\n script.src = 'https://wcpstatic.microsoft.com/mscc/lib/v2/wcp-consent.js';\r\n script.async = true;\r\n script.onload = () => {\r\n // Init WcpConsent before in init clarity\r\n // cookie-banner will be hidden after user sign in, we only use this element to init WCP\r\n // we depend on CCUI page to show cookie banner to users\r\n if (window.WcpConsent) {\r\n appActivity.trace('WcpConsent: initialize start', CookieConsentActivityName);\r\n window.WcpConsent.init(serverContext.CurrentLocale, 'cookie-banner', (err, _siteConsent) => {\r\n appActivity.trace('WcpConsent: initialize complete', CookieConsentActivityName);\r\n if (!err) {\r\n window.siteConsent = _siteConsent;\r\n appActivity.trace('WcpConsent: initialize succeed', CookieConsentActivityName);\r\n\r\n if (!window.WcpConsent\r\n || !window.WcpConsent.siteConsent\r\n || !window.WcpConsent.siteConsent.onConsentChanged\r\n || !window.WcpConsent.siteConsent.getConsent\r\n ) {\r\n if (appActivity && appActivity.error) {\r\n appActivity.error('WcpConsent: WcpConsent component is not initialized. Cannot read user cookie consent info');\r\n }\r\n return;\r\n }\r\n\r\n appActivity.trace('WcpConsent: read cookie consent value to see if we can init clarity', CookieConsentActivityName);\r\n\r\n const initAnalytics = ({ Analytics, Advertising }) => {\r\n if (Analytics) {\r\n init1DSAnalytics()\r\n .then(() => initAdobeTracking());\r\n\r\n initAmplifyTracking();\r\n\r\n if (Advertising) {\r\n initClarity();\r\n }\r\n }\r\n };\r\n\r\n const currentConsent = window.WcpConsent.siteConsent.getConsent();\r\n\r\n if (currentConsent.Analytics) {\r\n initAnalytics(currentConsent);\r\n } else {\r\n window.WcpConsent.siteConsent.onConsentChanged(initAnalytics);\r\n }\r\n } else {\r\n appActivity.error(`WcpConsent: initialize error: ${err}`);\r\n }\r\n });\r\n } else {\r\n appActivity.trace('WcpConsent: wcp-consent.js script has not been loaded yet', CookieConsentActivityName);\r\n }\r\n };\r\n script.onerror = () => {\r\n // ad blocker might block this script, so we only log trace here.\r\n appActivity.trace('WcpConsent: WcpConsent script didn\\'t load correctly.');\r\n };\r\n\r\n document.head.appendChild(script);\r\n\r\n const autoRefreshTokenInstance = new AutoRefreshToken({\r\n serverContext,\r\n PageContext,\r\n config: componentConfigImport,\r\n appActivity,\r\n });\r\n\r\n autoRefreshTokenInstance.start();\r\n });\r\n } catch (e) {\r\n console.error(`init global service raise exception ${e}`);\r\n appActivity.trace(`init global service raise exception ${e}`);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { scopeStore } from '@bingads-webui-campaign/global-context-store';\r\n\r\n/* eslint-disable no-underscore-dangle */\r\nexport function initPDL(serverContext) { // adobe tracking script will use window._PDL to provide info\r\n window._PDL = window._PDL || {};\r\n window._PDL.market = _.result(serverContext.Omniture, 'Market');\r\n window._PDL.pageName = _.result(serverContext.Omniture, 'PageNamePDL');\r\n window._PDL.navLevel1 = _.result(serverContext.Omniture, 'NavLevel1');\r\n window._PDL.navLevel2 = _.result(serverContext.Omniture, 'NavLevel2');\r\n window._PDL.accountNumber = _.result(serverContext.Omniture, 'CurrentAccountNumber');\r\n window._PDL.customerID = _.result(serverContext.Omniture, 'CustomerID');\r\n window._PDL.userID = _.result(serverContext.Omniture, 'UserID');\r\n window._PDL.serverName = _.result(serverContext.Omniture, 'ServerName');\r\n const permissions = _.chain(serverContext.Permissions)\r\n .pairs()\r\n .map(item => (item[1] ? item[0] : null))\r\n .compact()\r\n .value();\r\n\r\n const dynamicPermissions = _.chain(serverContext.DynamicPermissions)\r\n .pairs()\r\n .map(item => (item[1] ? item[0] : null))\r\n .compact()\r\n .value();\r\n\r\n window._PDL.permissions = [].concat(permissions).concat(dynamicPermissions).join(',');\r\n\r\n scopeStore.subscribe(() => {\r\n const { campaignId, adGroupId } = scopeStore.state.scope.values;\r\n window._PDL.campaignID = campaignId;\r\n window._PDL.adGroupID = adGroupId;\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { GetJsDataInfo } from '@bingads-webui-clientcenter/js-data-cc-rest-base';\r\n\r\nconst ccJSData = {\r\n jsDataCcRest: null,\r\n};\r\n\r\nexport const initCcJsData = ({ serverContext }) => {\r\n if (!ccJSData.jsDataCcRest) {\r\n const options = {\r\n cidFetcher: () => serverContext.CurrentCustomer.Id,\r\n uidFetcher: () => serverContext.CurrentUser.Id,\r\n appendErrorSummary: _.noop,\r\n handleAjaxAuthFailure: _.noop,\r\n willSupportCors: true,\r\n };\r\n\r\n ccJSData.jsDataCcRest = GetJsDataInfo(options, serverContext.ServicesEndpoints.ClientCenterUIAPI, []).jsDataCcRest;\r\n }\r\n\r\n return ccJSData;\r\n};\r\n","import _ from 'underscore';\r\nimport Uri from 'urijs';\r\nimport { isMultiAgencyBillingEnabled } from '@bingads-webui/multi-agency-utils';\r\n\r\nexport const getAccountLinkPermissionType = (serverContext) => {\r\n const currentUrl = new Uri(window.location.href);\r\n const queryParams = currentUrl.search(true); // Get query parameters as an object\r\n return queryParams.aid && Number(queryParams.aid) > 0 ? _.get(serverContext, 'AccountLinkPermissionType') : undefined;\r\n};\r\n\r\nexport const initSettingsContext = (serverContext, permissions) => {\r\n const settingsContext = {\r\n Urls: {\r\n ...serverContext.Urls,\r\n SmartBaseUrl: new Uri(`${serverContext.Urls.RootUIUrl}/campaign/smart/`).normalize().toString(),\r\n AdInsightBaseUrl: new Uri(`${serverContext.Urls.RootUIUrl}/research/vnext/`).normalize().toString(),\r\n UnifiedProductBaseUrl: new Uri(`${serverContext.Urls.RootUIUrl}/campaign/mca/`).normalize().toString(),\r\n },\r\n };\r\n\r\n if (isMultiAgencyBillingEnabled(permissions)) {\r\n settingsContext.AccountLinkPermissionType = getAccountLinkPermissionType(serverContext);\r\n }\r\n\r\n return settingsContext;\r\n};\r\n","import schemaVnext from '@bingads-webui-campaign/campaign-ui-schemas';\r\n\r\nwindow.globalLegacySchema = {\r\n get(schemaName) {\r\n return schemaVnext[schemaName];\r\n },\r\n};\r\n","import { initializeUiNextLegacyI18n } from '@bingads-webui-campaign/legacy-i18n/loader/ui-next/index';\r\nimport componentConfigImport from '@bingads-webui-component-legacy/config/index';\r\n/* eslint-enable */\r\n\r\nimport './shim/legacy-schema';\r\n\r\nconst config = componentConfigImport;\r\nconst { serverContext } = window;\r\nconst {\r\n CurrentAccount,\r\n CurrentCustomer,\r\n CurrentUser,\r\n CurrentLocale: Culture,\r\n} = serverContext;\r\ninitializeUiNextLegacyI18n();\r\n\r\nconfig.set({\r\n CurrentAccount,\r\n CurrentCustomer,\r\n CurrentUser,\r\n Culture,\r\n});\r\n","import _ from 'underscore';\r\nimport queryString from 'query-string';\r\n\r\nfunction findMismatches(original, expected) {\r\n return _.reduce(expected, (result, value, key) => {\r\n if (_.has(original, key) && !!value && original[key] !== `${value}`) {\r\n _.extend(result, { [key]: `${value}` });\r\n }\r\n return result;\r\n }, {});\r\n}\r\n\r\n// For fresh page load, in case user put wrong values for known query params (uid, cid, aid),\r\n// this component restores it per server context\r\nexport function checkQueryParams(serverContext) {\r\n const query = queryString.parse(window.location.search);\r\n const {\r\n CurrentUser: { Id: uid },\r\n CurrentCustomer: { Id: cid },\r\n CurrentAccount: { Id: aid },\r\n } = serverContext;\r\n\r\n const mismatches = findMismatches(query, { uid, cid, aid });\r\n\r\n if (!_.isEmpty(mismatches)) {\r\n const updatedQuery = _.extend(query, mismatches);\r\n window.history.replaceState({}, document.title, `?${queryString.stringify(updatedQuery, { sort: false })}`);\r\n }\r\n}\r\n","/* eslint-disable custom-import/dynamic-import-chunkname */\r\n/* eslint-disable no-console */\r\n\r\nimport queryString from 'query-string';\r\nimport { isSDK } from '@bingads-webui-campaign-react/sdk-utils';\r\nimport './legacy-dep-bootstrap/bootstrap.config';\r\nimport { checkQueryParams } from './global-init/query-param-checker';\r\n\r\n// if user put wrong values for known query params (uid, cid, aid), restores it per server context\r\ncheckQueryParams(window.serverContext);\r\n\r\n// remove skipcccache from URL, this should only be used once to refresh sever cache, then removed\r\nconst query = queryString.parse(window.location.search);\r\ndelete query.skipcccache;\r\nwindow.history.replaceState(\r\n {},\r\n document.title,\r\n `${window.location.pathname}?${queryString.stringify(query, { sort: false })}${window.location.hash}`\r\n);\r\n\r\nif (isSDK()) {\r\n import(/* webpackMode: 'eager' */'./sdk/sdk-bootstrap');\r\n} else {\r\n // eslint-disable-next-line no-unused-expressions\r\n import(/* webpackMode: 'eager' */'./bootstrap');\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore.string';\r\nimport { defer, findIndex } from 'underscore';\r\n\r\n// getParent and dropdownMenuKeydownHandler have similar logic of bootstrap dropdown.js.\r\n// Inside dropdownMenuKeydownHandler we have an extra check to ensure arrow keys will not take\r\n// effect on react bootstrap dropdown menu.\r\nconst KEYS = {\r\n BACKSPACE: 8,\r\n TAB: 9,\r\n ENTER: 13,\r\n ESC: 27,\r\n SPACEBAR: 32,\r\n PAGEUP: 33,\r\n PAGEDOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40,\r\n INSERT: 45,\r\n DELETE: 46,\r\n F2: 113,\r\n F10: 121,\r\n F12: 123,\r\n};\r\n\r\nfunction bindFirst(name, fn) {\r\n // bind as you normally would\r\n // don't want to miss out on any jQuery magic\r\n this.on(name, fn);\r\n\r\n // eslint-disable-next-line func-names\r\n this.each(function () {\r\n // eslint-disable-next-line no-underscore-dangle\r\n const handlers = $._data(this, 'events')[name.split('.')[0]];\r\n const handler = handlers.pop();\r\n handlers.splice(0, 0, handler);\r\n });\r\n}\r\n// function attached to jquery to bind event at top of queue.\r\n$.fn.bindFirst = bindFirst;\r\n\r\n// http://slavik.meltser.info/the-efficient-way-to-create-guid-uuid-in-javascript-with-explanation/\r\nfunction createGuid() {\r\n const p8 = (s) => {\r\n const p = (`${Math.random().toString(16)}000000000`).substr(2, 8);\r\n\r\n return s ? `-${p.substr(0, 4)}-${p.substr(4, 4)}` : p;\r\n };\r\n\r\n return p8() + p8(true) + p8(true) + p8();\r\n}\r\n\r\nfunction getParent($this) {\r\n let selector = $this.attr('data-target');\r\n\r\n if (!selector) {\r\n selector = $this.attr('href');\r\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '');\r\n }\r\n\r\n const $parent = selector && $(selector);\r\n\r\n return $parent && $parent.length ? $parent : $this.parent();\r\n}\r\n\r\nconst toggle = '[data-toggle=\"dropdown\"]';\r\n\r\nfunction dropdownMenuKeydownHandler(e) {\r\n const $this = $(this);\r\n if ($this.hasClass('react-dropdown-menu')) return;\r\n const acceptableKeysReg = new RegExp(`(${KEYS.UP}|${KEYS.DOWN}|${KEYS.ESC}|${KEYS.SPACEBAR}|${KEYS.ENTER})`);\r\n\r\n const $parent = getParent($this);\r\n if ($parent.hasClass('react-dropdown')) return;\r\n\r\n if (!acceptableKeysReg.test(e.which) || /input|textarea/i.test(e.target.tagName)) return;\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if ($this.is('.disabled, :disabled')) return;\r\n\r\n const isActive = $parent.hasClass('open');\r\n\r\n if ((!isActive && e.which !== KEYS.ESC) || (isActive && e.which === KEYS.ESC)) {\r\n if (e.which === KEYS.ESC) $parent.find(toggle).trigger('focus');\r\n\r\n // eslint-disable-next-line consistent-return\r\n return $this.trigger('click');\r\n }\r\n\r\n const desc = ' li:not(.disabled):visible';\r\n let $items = $parent.find(`.dropdown-menu${desc}`);\r\n\r\n if (!$items.length) return;\r\n\r\n let index = $items.index(e.target);\r\n\r\n if (index === -1 && e.target && e.target.getAttribute('role') === 'menuitem') {\r\n $items = $parent.find('.dropdown-menu [role~=menuitem]');\r\n index = $items.index(e.target);\r\n }\r\n\r\n if ((e.which === KEYS.ENTER || e.which === KEYS.SPACEBAR) && index !== -1) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.target.click();\r\n\r\n return;\r\n }\r\n if (e.which === KEYS.UP && index > 0) index -= 1;\r\n if (e.which === KEYS.DOWN && index < $items.length - 1) index += 1;\r\n // eslint-disable-next-line no-bitwise\r\n if (!~index) index = 0;\r\n\r\n // add logic for divider\r\n let currentItem = $items.eq(index);\r\n const itemClass = currentItem.attr('class');\r\n if (itemClass && _.contains(itemClass, 'divider')) {\r\n currentItem.attr('tabindex', '-1');\r\n if (e.which === KEYS.UP && index > 0) index -= 1;\r\n if (e.which === KEYS.DOWN && index < $items.length - 1) index += 1;\r\n\r\n currentItem = $items.eq(index);\r\n }\r\n\r\n currentItem.trigger('focus');\r\n}\r\n\r\nfunction clickableKeydownHandler(e) {\r\n const triggerKey = e.keyCode || e.which;\r\n\r\n if (triggerKey === KEYS.ENTER || triggerKey === KEYS.SPACEBAR) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.target.click();\r\n }\r\n}\r\n\r\nfunction afterKeydownFocusHandler(e) {\r\n const triggerKey = e.keyCode || e.which;\r\n\r\n if (triggerKey === KEYS.ENTER || triggerKey === KEYS.SPACEBAR) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.target.focus();\r\n }\r\n}\r\n\r\nfunction addRoleButtonHandler(e) {\r\n if (!e.target.getAttribute('role')) {\r\n e.target.setAttribute('role', 'button');\r\n }\r\n}\r\n\r\nfunction buttonFocusHandler() {\r\n const $this = $(this);\r\n const $helpPopup = $(document).find('#_helpcontainer');\r\n\r\n $this.attr('aria-haspopup', 'true');\r\n $this.attr('aria-expanded', $helpPopup.is(':visible'));\r\n}\r\n\r\nfunction helpButtonKeydownHandler(e) {\r\n if (e.keyCode === KEYS.ENTER || e.keyCode === KEYS.SPACEBAR) {\r\n $(this).attr('aria-expanded', 'true');\r\n }\r\n}\r\n\r\nfunction addRolePresentationForPaginationRow() {\r\n const $this = $(this);\r\n const $footerRows = $this.find('> tfoot.footer > tr.noborder');\r\n\r\n if (!$footerRows.length) {\r\n return;\r\n }\r\n\r\n $footerRows.each((index, element) => {\r\n const $pagers = $(element).find('form.pagination-control');\r\n\r\n if ($pagers && $pagers.length > 0) {\r\n if (!element.getAttribute('role')) {\r\n element.setAttribute('role', 'presentation');\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction patchLegacyLabelSelectorCheckbox() {\r\n const $this = $(this);\r\n\r\n // patch aria-labelledby, there will always be a sibling of checkbox which contains label name.\r\n const $siblings = $this.siblings();\r\n if ($siblings.length === 1) {\r\n const uniqueId = createGuid();\r\n\r\n $siblings.get(0).setAttribute('id', uniqueId);\r\n this.setAttribute('aria-labelledby', uniqueId);\r\n }\r\n\r\n // patch aria-checked.\r\n let ariaChecked = false;\r\n if ($this.find('.glyphicon-ok').length !== 0) {\r\n ariaChecked = true;\r\n } else if ($this.find('.glyphicon-minus').length !== 0) {\r\n ariaChecked = 'mixed';\r\n }\r\n\r\n this.setAttribute('aria-checked', ariaChecked);\r\n}\r\n\r\nfunction findClosestMenuItemsOnSameLevel($item, menuitemLocator = '> li > [role~=menuitem]:visible') {\r\n return $item.closest('[role=menu]').find(menuitemLocator).not('.separator');\r\n}\r\n\r\nfunction menuMoveUp($item, menuitemLocator) {\r\n const $menuItems = findClosestMenuItemsOnSameLevel($item, menuitemLocator);\r\n const menuIndex = $menuItems.index($item);\r\n let $newItem = $item;\r\n\r\n if (menuIndex) {\r\n $newItem = $menuItems.eq(menuIndex - 1);\r\n }\r\n $newItem.focus();\r\n}\r\n\r\nfunction menuMoveDown($item, menuitemLocator) {\r\n const $menuItems = findClosestMenuItemsOnSameLevel($item, menuitemLocator);\r\n const menuNum = $menuItems.length;\r\n const menuIndex = $menuItems.index($item);\r\n let $newItem = $item;\r\n\r\n if (menuIndex < menuNum - 1) {\r\n $newItem = $menuItems.eq(menuIndex + 1);\r\n }\r\n $newItem.focus();\r\n}\r\n\r\nfunction showSubMenu($item) {\r\n const $subMenu = $item.nextAll('[role=menu]:first');\r\n\r\n if ($subMenu.length) {\r\n const $activeItem = $('[role~=menuitem]:first', $subMenu);\r\n\r\n if ($activeItem.length) {\r\n $item.attr('aria-expanded', 'true');\r\n $subMenu.css('display', 'block');\r\n $subMenu.css('opacity', 1);\r\n $subMenu.css('visibility', 'visible');\r\n\r\n // Transition will affect focus operations.\r\n $subMenu.css('transform', 'none');\r\n $subMenu.css('transition-delay', 'unset');\r\n\r\n $activeItem.trigger('focus');\r\n }\r\n }\r\n}\r\n\r\nfunction moveToContainer($item) {\r\n const $currentSubMenu = $item.closest('.dropdown-submenu > [role=menu]');\r\n\r\n if ($currentSubMenu.length) {\r\n $currentSubMenu.attr('style', '');\r\n\r\n const $parentMenuItem = $currentSubMenu.prev('.dropdown-submenu [role~=menuitem]');\r\n if ($parentMenuItem.length) {\r\n $parentMenuItem.focus();\r\n $parentMenuItem.attr('aria-expanded', 'false');\r\n }\r\n }\r\n}\r\n\r\nfunction closeMenu($item) {\r\n let handled = false;\r\n\r\n const $currentMenu = $item.closest('[role=menu]');\r\n\r\n // in bootstrap menu\r\n const $parent = $currentMenu.parent();\r\n if ($parent.hasClass('open')) {\r\n $parent.removeClass('open');\r\n $parent.find('[data-toggle=dropdown]').attr('aria-expanded', 'false');\r\n const $triggerButton = $parent.find('[role=button]');\r\n if ($triggerButton.length > 0) {\r\n $triggerButton.focus();\r\n } else {\r\n $parent.find('button').focus();\r\n }\r\n handled = true;\r\n }\r\n\r\n // in subMenu\r\n if (!handled) {\r\n moveToContainer($item);\r\n }\r\n}\r\n\r\nfunction menuItemKeydownHandler(e, menuitemLocator) {\r\n const acceptableKeysReg = new RegExp(`(${KEYS.UP}|${KEYS.DOWN})`);\r\n const triggerKey = e.keyCode || e.which;\r\n if (!acceptableKeysReg.test(triggerKey)) return;\r\n\r\n const $this = $(e.currentTarget);\r\n\r\n switch (triggerKey) {\r\n case KEYS.UP:\r\n menuMoveUp($this, menuitemLocator);\r\n break;\r\n case KEYS.DOWN:\r\n menuMoveDown($this, menuitemLocator);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n}\r\n\r\nfunction muiltiLevelMenuItemKeydownHandler(e) {\r\n const acceptableKeysReg = new RegExp(`(${KEYS.UP}|${KEYS.DOWN}|${KEYS.LEFT}|${KEYS.RIGHT}|${KEYS.ESC})`);\r\n const triggerKey = e.keyCode || e.which;\r\n if (!acceptableKeysReg.test(triggerKey)) return;\r\n\r\n const $this = $(this);\r\n\r\n switch (triggerKey) {\r\n case KEYS.RIGHT:\r\n showSubMenu($this);\r\n break;\r\n case KEYS.LEFT:\r\n moveToContainer($this);\r\n break;\r\n case KEYS.UP:\r\n menuMoveUp($this);\r\n break;\r\n case KEYS.DOWN:\r\n menuMoveDown($this);\r\n break;\r\n case KEYS.ESC:\r\n closeMenu($this);\r\n break;\r\n default: break;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n}\r\n\r\nfunction kendoListSetTabIndex(el) {\r\n const $el = $(el);\r\n const $selectedItem = $el.find('.k-state-selected');\r\n const $items = $el.find('[role=option]');\r\n $items.find('.a11y-k-listview-button').attr('tabindex', '-1');\r\n $selectedItem.find('.a11y-k-listview-button').attr('tabindex', '0');\r\n}\r\n\r\nfunction kendoListClearTabIndex(el) {\r\n const $el = $(el);\r\n const $items = $el.find('[role=option]');\r\n $items.find('.a11y-k-listview-button').attr('tabindex', '-1');\r\n}\r\n\r\nfunction kendoListKeydownHandler(e) {\r\n switch (e.keyCode) {\r\n case KEYS.SPACEBAR:\r\n // Set tab index of buttons in selected row to 0, others to -1\r\n kendoListSetTabIndex(this);\r\n break;\r\n case KEYS.DOWN:\r\n case KEYS.LEFT:\r\n case KEYS.RIGHT:\r\n case KEYS.UP:\r\n if (this === e.target) {\r\n // Set tab index of ALL buttons to -1 when navigate through rows\r\n kendoListClearTabIndex(this);\r\n } // else: no effect since it's not navigating through rows, e.g. focused on the button\r\n break;\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nfunction menuToggleKeyup(e) {\r\n if (e.altKey || e.ctrlKey) {\r\n return;\r\n }\r\n if (e.keyCode !== KEYS.ESC && e.keyCode !== KEYS.DOWN && e.keyCode !== KEYS.ENTER && e.keyCode !== KEYS.SPACEBAR) {\r\n return;\r\n }\r\n\r\n const $this = $(this);\r\n const $menu = $this.next('[role=menu]');\r\n let $menuitems = $menu.find('[role~=menuitem]');\r\n if ($menuitems.length === 0) {\r\n $menuitems = $menu.find('> li:not(.disabled):visible');\r\n }\r\n\r\n switch (e.keyCode) {\r\n case KEYS.ESC:\r\n $menu.css('display', '');\r\n break;\r\n case KEYS.DOWN:\r\n case KEYS.ENTER:\r\n case KEYS.SPACEBAR:\r\n if ($menuitems.length) {\r\n const item = $menuitems.eq(0);\r\n item.focus();\r\n }\r\n break;\r\n default: break;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n}\r\n\r\n// Get the first and last elements that could have focus.\r\nfunction getFocusItemsAtBothEnds($root) {\r\n const $focusElements = $root.find('a[href], area[href], button, details, input, iframe, select, textarea, [tabindex]').not('[tabindex^=\"-\"]').not('[disabled]').filter(':visible');\r\n\r\n let $firstElement;\r\n let $lastElement;\r\n let lowestTabindex;\r\n let highestTabindex;\r\n let tabindex;\r\n\r\n $firstElement = $focusElements.eq(0);\r\n $lastElement = $focusElements.eq(0);\r\n\r\n if ($focusElements.length) {\r\n lowestTabindex = $firstElement.attr('tabindex') || '0';\r\n highestTabindex = lowestTabindex;\r\n\r\n $focusElements.each((index, element) => {\r\n tabindex = $(element).attr('tabindex') || '0';\r\n\r\n if (tabindex >= highestTabindex) {\r\n highestTabindex = tabindex;\r\n $lastElement = $(element);\r\n } else if (tabindex < lowestTabindex) {\r\n lowestTabindex = tabindex;\r\n $firstElement = $(element);\r\n }\r\n });\r\n }\r\n return { firstElement: $firstElement, lastElement: $lastElement };\r\n}\r\n\r\n// Trap the focus inside scope\r\nfunction handleFocusTrapping(e, $this) {\r\n if (e.keyCode !== KEYS.TAB) {\r\n return false;\r\n }\r\n\r\n const $activeElement = $(document.activeElement);\r\n const items = getFocusItemsAtBothEnds($this);\r\n\r\n if (items.firstElement.index($activeElement) === 0 && e.shiftKey) {\r\n items.lastElement.focus();\r\n } else if (items.lastElement.index($activeElement) === 0 && !e.shiftKey) {\r\n items.firstElement.focus();\r\n } else {\r\n e.stopPropagation();\r\n return true;\r\n }\r\n e.stopPropagation();\r\n return false;\r\n}\r\n\r\nfunction handleFocusTrappingDatepicker(e, items) {\r\n // console.log(document.activeElement);\r\n const focusedItemIdx = findIndex(items, item => $(item).is('.focused'));\r\n\r\n if (focusedItemIdx === -1) {\r\n items[0].focus();\r\n items[0].addClass('focused');\r\n } else {\r\n let needToFocusItem;\r\n if (focusedItemIdx === items.length - 1) {\r\n // if the last item is focused.\r\n if (e.shiftKey) {\r\n // go back one step.\r\n needToFocusItem = items[focusedItemIdx - 1];\r\n } else {\r\n // focus the first item.\r\n [needToFocusItem] = items;\r\n }\r\n } else if (focusedItemIdx === 0) {\r\n // if the first item is focused.\r\n if (e.shiftKey) {\r\n needToFocusItem = items[items.length - 1];\r\n } else {\r\n needToFocusItem = items[focusedItemIdx + 1];\r\n }\r\n } else if (e.shiftKey) {\r\n // other cases.\r\n needToFocusItem = items[focusedItemIdx - 1];\r\n } else {\r\n needToFocusItem = items[focusedItemIdx + 1];\r\n }\r\n items[focusedItemIdx].removeClass('focused');\r\n needToFocusItem.addClass('focused');\r\n needToFocusItem.focus();\r\n }\r\n e.stopPropagation();\r\n return false;\r\n}\r\n\r\nfunction kendoDialogKeydown(e) {\r\n if (e.altKey || e.ctrlKey) {\r\n return true;\r\n }\r\n\r\n if (e.keyCode !== KEYS.TAB && e.keyCode !== KEYS.ESC) {\r\n return true;\r\n }\r\n\r\n const $this = $(this);\r\n\r\n switch (e.keyCode) {\r\n case KEYS.TAB:\r\n return handleFocusTrapping(e, $this);\r\n case KEYS.ESC:\r\n $('a.k-window-action.k-link').click();\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n e.stopPropagation();\r\n return false;\r\n}\r\n\r\nfunction getKendoDatepickerKeys() {\r\n const firstItem = $('.k-nav-fast');\r\n const secondItem = $('.k-nav-prev');\r\n const thirdItem = $('.k-nav-next');\r\n const fourthItem = $('.k-content');\r\n\r\n const items = [firstItem, secondItem, thirdItem, fourthItem];\r\n return items;\r\n}\r\n\r\nconst findDatePickerAndInputFromCalendarDOMEvent = (datePickerInputsSelector, e) => {\r\n const $calendar = $(e.currentTarget).closest('.k-calendar');\r\n if ($calendar.length === 0) {\r\n return true;\r\n }\r\n\r\n const $datePickerInputs = $(datePickerInputsSelector);\r\n const $matchedPickerInputs = $datePickerInputs.filter((idx, item) => {\r\n const dp = $(item).data('kendoDatePicker');\r\n return dp && dp.dateView && dp.dateView.calendar && dp.dateView.calendar.element &&\r\n dp.dateView.calendar.element[0] === $calendar[0];\r\n });\r\n if ($matchedPickerInputs.length === 0) {\r\n return true;\r\n }\r\n const datePicker = $matchedPickerInputs.data('kendoDatePicker');\r\n return [datePicker, $matchedPickerInputs];\r\n};\r\n\r\nfunction kendoDatePickerKeydown(e) {\r\n if (e.altKey || e.ctrlKey) {\r\n return true;\r\n }\r\n\r\n if (e.keyCode !== KEYS.TAB && e.keyCode !== KEYS.ESC) {\r\n return true;\r\n }\r\n\r\n const $datePickerInput = $(e.currentTarget);\r\n const datePicker = $datePickerInput.data('kendoDatePicker');\r\n\r\n switch (e.keyCode) {\r\n case KEYS.TAB:\r\n if ($(e.currentTarget).attr('aria-expanded') === 'false') {\r\n // re enable next event.\r\n $(e.currentTarget).off('blur.disablePropogation');\r\n return true;\r\n }\r\n // disable event since the blur event closes the popup.\r\n $(e.currentTarget).bindFirst('blur.disablePropogation', (innerEvent) => {\r\n innerEvent.stopImmediatePropagation();\r\n });\r\n return handleFocusTrappingDatepicker(e, getKendoDatepickerKeys());\r\n case KEYS.ESC:\r\n datePicker.close();\r\n $datePickerInput.focus();\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n e.stopPropagation();\r\n return false;\r\n}\r\n\r\nconst kendoDatePickerCalendarKeydown = datePickerInputsSelector => (e) => {\r\n if (e.altKey || e.ctrlKey) {\r\n return true;\r\n }\r\n\r\n if (e.keyCode !== KEYS.TAB && e.keyCode !== KEYS.ESC) {\r\n return true;\r\n }\r\n\r\n const [datePicker, $datePickerInput] = findDatePickerAndInputFromCalendarDOMEvent(datePickerInputsSelector, e);\r\n\r\n switch (e.keyCode) {\r\n case KEYS.TAB:\r\n return handleFocusTrappingDatepicker(e, getKendoDatepickerKeys());\r\n case KEYS.ESC:\r\n datePicker.close();\r\n $datePickerInput.focus();\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n e.stopPropagation();\r\n return false;\r\n};\r\n\r\nfunction tablistKeydown(e) {\r\n if (e.keyCode !== KEYS.LEFT && e.keyCode !== KEYS.RIGHT && e.keyCode !== KEYS.UP && e.keyCode !== KEYS.DOWN) {\r\n return;\r\n }\r\n\r\n const $this = $(this);\r\n const $tabs = $this.closest('[role=tablist]').find('[role=tab]:not([aria-disabled=true]):visible');\r\n const index = $tabs.index($this);\r\n let $selectedTab = $this;\r\n\r\n switch (e.keyCode) {\r\n case KEYS.LEFT:\r\n case KEYS.UP:\r\n if (index > 0) {\r\n $selectedTab = $tabs.eq(index - 1);\r\n }\r\n break;\r\n case KEYS.DOWN:\r\n case KEYS.RIGHT:\r\n if (index < $tabs.length - 1) {\r\n $selectedTab = $tabs.eq(index + 1);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n $selectedTab.focus();\r\n e.stopPropagation();\r\n}\r\n\r\nfunction moveFocusTo($to, $from) {\r\n if ($from) {\r\n $from.attr('tabindex', '-1');\r\n }\r\n $to.attr('tabindex', '0');\r\n $to.focus();\r\n}\r\n\r\nfunction focusRowByDataKey($treeGrid, dataKey) {\r\n const $treeItem = $treeGrid.find(`.tree-item[data-key-hierarchy='${dataKey}']`);\r\n if ($treeItem.exists()) {\r\n const $row = $treeItem.closest('[role=row]');\r\n moveFocusTo($row);\r\n }\r\n}\r\n\r\nfunction clickRowAndFocus($row) {\r\n // click will trigger re-render, so re-focus after the node is re-rendered\r\n const $treeGrid = $row.closest('[role=treegrid]');\r\n const $treeItem = $row.find('.tree-item');\r\n const dataKey = $treeItem.attr('data-key-hierarchy');\r\n\r\n $treeItem.click();\r\n\r\n // defer twice since the re-render is also defered\r\n defer(() => defer(() => focusRowByDataKey($treeGrid, dataKey)));\r\n}\r\n\r\nfunction treeGridKeydown(e) {\r\n if (e.altKey || e.ctrlKey || (e.shiftKey && e.keyCode !== KEYS.TAB)) {\r\n return true;\r\n }\r\n\r\n const $this = $(this);\r\n\r\n switch (e.keyCode) {\r\n case KEYS.ENTER:\r\n case KEYS.SPACEBAR: {\r\n if (!$this.is(e.target)) {\r\n // return since focused on child buttons\r\n return true;\r\n }\r\n // toggle the group if it is not a leaf node\r\n if ($this.is('[aria-expanded]')) {\r\n clickRowAndFocus($this);\r\n }\r\n break;\r\n }\r\n case KEYS.LEFT: {\r\n if ($this.is('[aria-expanded=true]')) {\r\n // collapse the group\r\n clickRowAndFocus($this);\r\n } else {\r\n // set focus to the parent\r\n const level = $this.attr('aria-level');\r\n if (level > 1) {\r\n const $parentRow = $this.prev(`[aria-level=${level - 1}]`);\r\n moveFocusTo($parentRow, $this);\r\n }\r\n }\r\n break;\r\n }\r\n case KEYS.RIGHT: {\r\n if (!$this.is('[aria-expanded]')) {\r\n // do nothing for leaf node\r\n } else if ($this.is('[aria-expanded=false]')) {\r\n // expand the group\r\n clickRowAndFocus($this);\r\n } else {\r\n // move focus to the first item in the child group\r\n const $childRow = $this.next('[role=row]');\r\n if ($childRow.exists()) {\r\n moveFocusTo($childRow, $this);\r\n }\r\n }\r\n break;\r\n }\r\n case KEYS.UP: {\r\n // move focus to the nearest item above\r\n const $prevRow = $this.prev('[role=row]');\r\n if ($prevRow.exists()) {\r\n moveFocusTo($prevRow, $this);\r\n }\r\n break;\r\n }\r\n case KEYS.DOWN: {\r\n // move focus to the nearest item down\r\n const $nextRow = $this.next('[role=row]');\r\n if ($nextRow.exists()) {\r\n moveFocusTo($nextRow, $this);\r\n }\r\n break;\r\n }\r\n default:\r\n return true;\r\n }\r\n\r\n e.stopPropagation();\r\n return false;\r\n}\r\n\r\nfunction treeGridFocus(e) {\r\n const $this = $(this);\r\n // focus on the active row or the first row when focus to the tree grid\r\n if ($this.is(e.target) && !$(e.relatedTarget).is('[role=row]')) {\r\n let $activeRow = $this.find('[role=row][tabindex=0]').first();\r\n if (!$activeRow.exists()) {\r\n $activeRow = $this.find('[role=row]').first();\r\n }\r\n if ($activeRow.exists()) {\r\n moveFocusTo($activeRow);\r\n }\r\n }\r\n}\r\n\r\n// TODO: remove the temporary jquery fix after fluent v1 version upgrade\r\nfunction removeAllButtonOnLocationGridFocus() {\r\n const $firstCell = $('.bing-maps-location-targets-grid .ms-List-page > div:nth-child(1) > div');\r\n\r\n if ($firstCell) {\r\n $firstCell.attr('tabindex', '0');\r\n }\r\n}\r\n\r\nfunction overviewPageMenuToggleKeyUp(e) {\r\n if (e.keyCode !== KEYS.ENTER && e.keyCode !== KEYS.SPACEBAR) {\r\n return;\r\n }\r\n\r\n const $this = $(this);\r\n let $menu = $this.next('[role=menu]');\r\n if ($menu.length === 0) {\r\n $menu = $(this).parents(':has([role=menu])').first().find('[role=menu]');\r\n }\r\n\r\n let $menuitems = $menu.find('a[role~=menuitem]');\r\n if ($menuitems.length === 0) {\r\n $menuitems = $menu.find('> li:not(.disabled):visible');\r\n }\r\n\r\n switch (e.keyCode) {\r\n case KEYS.ENTER:\r\n case KEYS.SPACEBAR:\r\n if ($menuitems.length) {\r\n $this.attr('aria-expanded', 'true');\r\n $this.closest('.metric-picker').addClass('open');\r\n $this.closest('.multilevel-dropdown').addClass('open');\r\n const item = $menuitems.eq(0);\r\n item.focus();\r\n }\r\n break;\r\n default: break;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n}\r\n\r\nfunction overviewPageMenuItemKeyDown(e) {\r\n if (e.altKey || e.ctrlKey) {\r\n return true;\r\n }\r\n\r\n if (e.keyCode !== KEYS.TAB && e.keyCode !== KEYS.ESC) {\r\n return true;\r\n }\r\n\r\n const $this = $(this);\r\n\r\n switch (e.keyCode) {\r\n // PAGEUP and PAGEDOWN handled in function dropdownMenuKeydownHandler\r\n case KEYS.TAB:\r\n return handleFocusTrapping(e, $this);\r\n case KEYS.ESC: {\r\n const $openParent = $this.closest('.open');\r\n if ($openParent.length > 0) {\r\n $openParent.removeClass('open');\r\n const $toggleButton = $this.parents(':has(.dropdown-toggle)').first().find('.dropdown-toggle');\r\n $toggleButton.attr('aria-expanded', 'false');\r\n $toggleButton.focus();\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n\r\n e.stopPropagation();\r\n return false;\r\n}\r\n\r\nfunction scriptsQuickFiterFocusHandler(e) {\r\n const $dropdownToggle = $(e.target);\r\n const $dropdownMenu = $dropdownToggle.next();\r\n if ($dropdownToggle.length > 0) {\r\n $dropdownToggle.addClass('legacy-dropdown-toggle');\r\n $dropdownToggle.attr('aria-haspopup', 'true');\r\n }\r\n if ($dropdownMenu.length > 0) {\r\n const $items = $dropdownMenu.find('li');\r\n\r\n if (!$items.length) {\r\n return;\r\n }\r\n\r\n $items.each((index, element) => {\r\n const $link = $(element).find('a');\r\n\r\n if ($link && $link.length > 0) {\r\n if (!$link.attr('tabindex')) {\r\n $link.attr('tabindex', '-1');\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport function legacyAccessibilityHelper() {\r\n // Have a new keydown event handler on '.dropdown-menu' to ensure react bootstrap dropdown menu is not affected.\r\n $(document).off('keydown.bs.dropdown.data-api', '.dropdown-menu:not(.legacy-multi-level-dropdown-menu, .bypass-acccessibility-tweak)');\r\n $(document).on('keydown.bs.dropdown.data-api', '.dropdown-menu:not(.legacy-multi-level-dropdown-menu, .bypass-acccessibility-tweak)', dropdownMenuKeydownHandler);\r\n\r\n // Keydown event for multi-level dropdown.\r\n $(document).off('keydown', '.legacy-multi-level-dropdown-menu [role~=menuitem]');\r\n $(document).on('keydown', '.legacy-multi-level-dropdown-menu [role~=menuitem]', muiltiLevelMenuItemKeydownHandler);\r\n\r\n // Listen to keyup to let dropdown menu show up first which depeneds on keydown.\r\n $(document).off('keyup', '.react-dropdown-toggle, .legacy-dropdown-toggle[data-toggle=dropdown]');\r\n $(document).on('keyup', '.react-dropdown-toggle, .legacy-dropdown-toggle[data-toggle=dropdown]', menuToggleKeyup);\r\n\r\n // Have an enter press event handler on '.clickable' and 'input[type='checkbox']'\r\n $(document).off('keydown', '.clickable, input[type=\"checkbox\"], input[type=\"radio\"]');\r\n $(document).on('keydown', '.clickable, input[type=\"checkbox\"], input[type=\"radio\"]', clickableKeydownHandler);\r\n\r\n // Have key event handler for status column\r\n $(document).off('keydown', '.statuschangelink.clickable');\r\n $(document).on('keydown', '.statuschangelink.clickable', menuItemKeydownHandler);\r\n\r\n // Add key event handler for kendo list\r\n $(document).off('keydown', '.k-listview[role=listbox]');\r\n $(document).on('keydown', '.k-listview[role=listbox]', kendoListKeydownHandler);\r\n\r\n // Add accessibility role to helper icon\r\n $(document).off('focus', 'a.helpbutton, a[aria-expanded], a[href=\"javascript:void(0);\"]');\r\n $(document).on('focus', 'a.helpbutton, a[aria-expanded], a[href=\"javascript:void(0);\"]', addRoleButtonHandler);\r\n\r\n // Add focus state handler to help button\r\n $(document).on('focus', 'a.helpbutton', buttonFocusHandler);\r\n\r\n // Add focus state handler to help button\r\n $(document).on('focus', 'a.manage-labels-button', buttonFocusHandler);\r\n\r\n // Add key event handler for help button\r\n $(document).off('keydown', 'a.helpbutton');\r\n $(document).on('keydown', 'a.helpbutton', helpButtonKeydownHandler);\r\n\r\n // Add key event handler for manage labels button\r\n $(document).off('keydown', 'a.manage-labels-button');\r\n $(document).on('keydown', 'a.manage-labels-button', clickableKeydownHandler);\r\n\r\n // Add key event handler for labels selector checkbox\r\n $(document).off('keydown', 'td.legacy-label-selector-checkbox');\r\n $(document).on('keydown', 'td.legacy-label-selector-checkbox', afterKeydownFocusHandler);\r\n\r\n // Give tr with pagination control in footer a role presentation.\r\n $(document).off('focus', 'table');\r\n $(document).on('focus', 'table', addRolePresentationForPaginationRow);\r\n\r\n // Patch aria-checked and aria-labelledby for checkbox of legacy label selector.\r\n $(document).off('focus', 'td.legacy-label-selector-checkbox, .legacy-competitor-selector-checkbox');\r\n $(document).on('focus', 'td.legacy-label-selector-checkbox, .legacy-competitor-selector-checkbox', patchLegacyLabelSelectorCheckbox);\r\n\r\n // Handle keydown event and trap focus inside the KendoUI dialog.\r\n $(document).off('keydown', '.legacy-kendo-ui-dialog[role=dialog]');\r\n $(document).on('keydown', '.legacy-kendo-ui-dialog[role=dialog]', kendoDialogKeydown);\r\n\r\n // Handle keydown event in legacy tab list, e.g., ad preview tabs.\r\n $(document).off('keydown', '.ui-tabs.preview-nav-pills [role=tablist] [role=tab], .authoring-container .nav-pills[role=tablist] [role=tab]');\r\n $(document).on('keydown', '.ui-tabs.preview-nav-pills [role=tablist] [role=tab], .authoring-container .nav-pills[role=tablist] [role=tab]', tablistKeydown);\r\n\r\n // Have key event handler for app selector\r\n $(document).off('keydown', 'tr.appselector.applookup-results-row.clickable');\r\n $(document).on('keydown', 'tr.appselector.applookup-results-row.clickable', (e) => { menuItemKeydownHandler(e, '> tr[role~=menuitem]:visible'); });\r\n\r\n $(document).off('keyup', '.overview-page .dropdown-toggle');\r\n $(document).on('keyup', '.overview-page .dropdown-toggle', overviewPageMenuToggleKeyUp);\r\n\r\n $(document).off('keydown', '.overview-page .dropdown-menu');\r\n $(document).on('keydown', '.overview-page .dropdown-menu', overviewPageMenuItemKeyDown);\r\n // TODO: add other legacy accessibility tweaks.\r\n\r\n // Handle focus event on dropdown button and the items on scripts page.\r\n $(document).off('focus', '.scripts-home-page .toolbar .dropdown-selector .dropdown-toggle, .logs-page .toolbar .dropdown-selector .dropdown-toggle');\r\n $(document).on('focus', '.scripts-home-page .toolbar .dropdown-selector .dropdown-toggle, .logs-page .toolbar .dropdown-selector .dropdown-toggle', scriptsQuickFiterFocusHandler);\r\n\r\n // Handle keydown and focus event in legacy selectable-treeview and virtualized-treeview\r\n $(document).off('keydown', '.selectable-treeview[role=treegrid] [role=row]');\r\n $(document).on('keydown', '.selectable-treeview[role=treegrid] [role=row]', treeGridKeydown);\r\n $(document).off('focus', '.selectable-treeview[role=treegrid]');\r\n $(document).on('focus', '.selectable-treeview[role=treegrid]', treeGridFocus);\r\n\r\n $(document).off('keydown', '.k-datepicker .k-input.form-control');\r\n $(document).on('keydown', '.k-datepicker .k-input.form-control', kendoDatePickerKeydown);\r\n $(document).off('keydown', '.k-calendar-container[aria-hidden=false] .k-calendar');\r\n $(document).on('keydown', '.k-calendar-container[aria-hidden=false] .k-calendar', kendoDatePickerCalendarKeydown('.k-datepicker .k-input.form-control'));\r\n\r\n // Have key event handler for ad strength suggestions picker\r\n $(document).off('keydown', '.ad-strength-suggestion-picker-item');\r\n $(document).on('keydown', '.ad-strength-suggestion-picker-item', (e) => { menuItemKeydownHandler(e, 'ul > li > [role~=menuitem]:visible'); });\r\n\r\n // TODO: remove the temporary jquery fix after fluent v1 version upgrade\r\n $(document).off('focus', '.bing-maps-location-targets-grid .remove-all-location-targets');\r\n $(document).on('focus', '.bing-maps-location-targets-grid .remove-all-location-targets', removeAllButtonOnLocationGridFocus);\r\n}\r\n","import jQuery from 'jquery';\r\n/* eslint-disable */\r\n/* copied original from advertiser.common.js */\r\n\r\n(function ($) {\r\n\t//// begin flyoutMenu jquery widget\r\n\r\n\t$.widget && $.widget(\"ui.flyoutMenu\", {\r\n\t\t_menuContainer: null,\r\n\t\t_isRtl: false,\r\n\t\t_global: {\r\n\t\t\tnumberOfInstances: 0,\r\n\t\t\tactiveElement: null,\r\n\t\t},\r\n\r\n\t\toptions: {\r\n\t\t\tmenuTemplateId: \"flyoutMenuTemplate\",\r\n\t\t\tmenuTemplate: null,\r\n\t\t\tmenuData: {},\r\n\t\t\tmenuHtml: \"\",\r\n\t\t\tflyoutBeforeShow: null,\r\n\t\t\ttop: null,\r\n\t\t\tleft: 2,\r\n\t\t\ttopFn: null,\r\n\t\t\tshouldShowFlyout: null\r\n\t\t},\r\n\r\n\t\t_create: function () {\r\n\t\t\tthis._staticConstructor();\r\n\r\n\t\t\tthis.element.bind(\"click\", $.proxy(this._onElementClick, this));\r\n\t\t},\r\n\r\n\t\tdestroy: function () {\r\n\t\t\tthis._staticDestructor();\r\n\r\n\t\t\tthis.element.unbind(\"click\", $.proxy(this._onElementClick, this));\r\n\r\n\t\t\tthis.hide();\r\n\r\n\t\t\t// call base widget to clean up\r\n\t\t\t$.Widget.prototype.destroy.call(this);\r\n\t\t},\r\n\r\n\t\t_staticConstructor: function () {\r\n\t\t\tthis._isRtl = $('body').css(\"direction\") == \"rtl\";\r\n\t\t\tthis._global.numberOfInstances++;\r\n\t\t\tif (this._global.numberOfInstances > 1)\r\n\t\t\t\treturn;\r\n\r\n\t\t\t$('body').bind(\"click\", $.proxy(this._onBodyClick, this));\r\n\t\t},\r\n\r\n\t\t_staticDestructor: function () {\r\n\t\t\tthis._global.numberOfInstances--;\r\n\t\t\tif (this._global.numberOfInstances > 0)\r\n\t\t\t\treturn;\r\n\r\n\t\t\t$('body').unbind(\"click\", $.proxy(this._onBodyClick, this));\r\n\t\t},\r\n\r\n\t\tshow: function () {\r\n\t\t\tif ($.isFunction(this.options.shouldShowFlyout) && this.options.shouldShowFlyout(this.element) === false){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.hideAll();\r\n\r\n\t\t\tvar menuBlock;\r\n\t\t\tif (!!this.options.menuHtml) {\r\n\t\t\t\tmenuBlock = $(this.options.menuHtml);\r\n\t\t\t} else {\r\n\t\t\t\tvar menuTemplate = this.options.menuTemplate || $(\"#\" + this.options.menuTemplateId);\r\n\t\t\t\tmenuBlock = $.tmpl(menuTemplate, this.options.menuData);\r\n\t\t\t}\r\n\t\t\tvar elementWrapper = this.element;\r\n\r\n\t\t\tvar top = this.options.top;\r\n\t\t\tif (this.options.topFn == null && top == null) {\r\n\t\t\t\ttop = this.element.height;\r\n\t\t\t}\r\n\t\t\tvar left = this.options.left;\r\n\r\n\t\t\tthis._menuContainer = menuBlock\r\n\t\t\t\t.css(\"position\", \"absolute\")\r\n\t\t\t\t.css(\"display\", \"none\")\r\n\t\t\t\t.css(\"top\", top)\r\n\t\t\t\t.css(\"left\", left)\r\n\t\t\t\t.css(\"z-index\", 50)\r\n\t\t\t\t.appendTo(elementWrapper);\r\n\t\t\tthis._global.activeElement = this;\r\n\r\n\t\t\tif ($.isFunction(this.options.flyoutBeforeShow))\r\n\t\t\t\tthis.options.flyoutBeforeShow({ currentElement: this.element, menuBlock: menuBlock });\r\n\t\t\tthis._menuContainer.show();\r\n\t\t\tif (this._isRtl) {\r\n\t\t\t\tleft = left + this.element.width() - menuBlock.width() - 20;\r\n\t\t\t\tthis._menuContainer.css(\"left\", left);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.options.topFn != null) {\r\n\t\t\t\tvar height = this._menuContainer.height();\r\n\t\t\t\ttop = this.options.topFn(height);\r\n\t\t\t\tthis._menuContainer.css(\"top\", top);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\thide: function () {\r\n\t\t\tif (this._menuContainer != null) {\r\n\t\t\t\tthis._menuContainer.remove();\r\n\t\t\t\tthis._menuContainer = null;\r\n\t\t\t}\r\n\t\t\tif (this._global.activeElement === this)\r\n\t\t\t\tthis._global.activeElement = null;\r\n\t\t},\r\n\r\n\t\thideAll: function () {\r\n\t\t\tif (this._global.activeElement != null)\r\n\t\t\t\tthis._global.activeElement.hide();\r\n\t\t},\r\n\r\n\t\t_onElementClick: function (e) {\r\n\t\t\tthis.show();\r\n\t\t},\r\n\r\n\t\t_onBodyClick: function (e) {\r\n\t\t\tif (this._global.activeElement == null ||\r\n\t\t\t\tthis._global.activeElement._menuContainer == null)\r\n\t\t\t\treturn true;\r\n\r\n\t\t\tvar target = $(e.target);\r\n\t\t\tif (this._isDescendant(target, this._global.activeElement._menuContainer) ||\r\n\t\t\t\tthis._isDescendant(target, this._global.activeElement.element))\r\n\t\t\t\treturn true;\r\n\r\n\t\t\tthis.hideAll();\r\n\t\t},\r\n\r\n\t\t_isDescendant: function (child, parent) {\r\n\t\t\tif (parent.length == 0)\r\n\t\t\t\treturn false;\r\n\r\n\t\t\twhile (child.length > 0 && !child.is('html') && child[0] !== parent[0])\r\n\t\t\t\tchild = child.parent();\r\n\t\t\treturn child.length == 0 || !child.is('html');\r\n\t\t}\r\n\t});\r\n\r\n\t//// end flyoutMenu jquery widget\r\n})(jQuery);\r\n","/* eslint-disable */\r\nimport jQuery from 'jquery';\r\n\r\n/*!\r\n * jQuery 3.3.1\r\n * jQuery Migrate v3.0.1\r\n * We have some breaking scenarios during the update to 3.3.1 from 1.9.4.\r\n * To be back compatible, define some patch here.\r\n * We can replace old usage with these patches when the update is finally completed and stable.\r\n */\r\n( function( factory ) {\r\n // Browser globals\r\n factory( jQuery, window );\r\n} )( function( jQuery, window ) {\r\n\"use strict\";\r\n\r\nvar jQueryVersionParts = jQuery.fn.jquery.split('.');\r\nif (jQueryVersionParts[0] > 3 || (jQueryVersionParts[0] == 3 &&\r\n (jQueryVersionParts[1] > 3 || (jQueryVersionParts[1] == 3 && jQueryVersionParts[2] > 0)))) {\r\n\r\n // this is a work around .live/.die for apex.embed.v1.min not supporting jQuery 3\r\n var oldInit = jQuery.fn.init;\r\n\r\n jQuery.fn.init = function(arg1) {\r\n var ret = oldInit.apply(this, Array.prototype.slice.call( arguments ));\r\n if (typeof arg1 === 'string') {\r\n ret.selector = ret.selector || arg1;\r\n ret.context = ret.context || document;\r\n }\r\n return ret;\r\n }\r\n jQuery.fn.init.prototype = jQuery.fn;\r\n\r\n // package automatic-positioning-popover uses position to decide pop up over location.\r\n // workaround for elements in a td, in new jquery, position respects table, td, or th now.\r\n var oldPosition = jQuery.fn.position;\r\n jQuery.fn.position = function() {\r\n var elem = this[0];\r\n\r\n var offsetParent = elem.offsetParent;\r\n var customized = false;\r\n while(offsetParent && (offsetParent.nodeName === 'TD' || offsetParent.nodeName === 'TABLE')) {\r\n offsetParent = offsetParent.offsetParent;\r\n customized = true;\r\n }\r\n if (customized) {\r\n offsetParent = offsetParent || document.documentElement;\r\n var parentOffset = jQuery(offsetParent).offset();\r\n parentOffset.top += jQuery.css(offsetParent, \"borderTopWidth\", true);\r\n parentOffset.left += jQuery.css(offsetParent, \"borderLeftWidth\", true);\r\n var currentOffset = this.offset();\r\n return {\r\n top: currentOffset.top - parentOffset.top - jQuery.css(elem, \"marginTop\", true),\r\n left: currentOffset.left - parentOffset.left - jQuery.css(elem, \"marginTop\", true)\r\n };\r\n }\r\n return oldPosition.apply(this, Array.prototype.slice.call( arguments ));\r\n }\r\n\r\n jQuery.each(['height', 'outerHeight'], function(_, name) {\r\n var old = jQuery.fn[name];\r\n jQuery.fn[name] = function() {\r\n if (this.length) {\r\n return old.apply(this, Array.prototype.slice.call( arguments ));\r\n }\r\n return null;\r\n }\r\n });\r\n}\r\n\r\nreturn jQuery;\r\n} );\r\n","import jQuery from 'jquery';\r\n\r\n/* eslint-disable */\r\n/*!\r\n * jQuery Smart Banner\r\n * Copyright (c) 2012 Arnold Daniels \r\n * Based on 'jQuery Smart Web App Banner' by Kurt Zenisek @ kzeni.com\r\n */\r\n(function($) {\r\n var UA = navigator.userAgent;\r\n var isEdge = /Edge/i.test(UA);\r\n\r\n var SmartBanner = function(options) {\r\n // Get the original margin-top of the HTML element so we can take that into account.\r\n this.origHtmlMargin = parseFloat($('html').css('margin-top'));\r\n this.options = $.extend({}, $.smartbanner.defaults, options);\r\n\r\n // Check if it's already a standalone web app or running within a webui view of an app (not mobile safari).\r\n var standalone = navigator.standalone;\r\n\r\n // Detect banner type (iOS or Android).\r\n if (this.options.force) {\r\n this.type = this.options.force;\r\n }\r\n else if (UA.match(/Windows Phone/i) !== null && UA.match(/Edge|Touch/i) !== null) {\r\n this.type = 'windows';\r\n }\r\n else if (UA.match(/iPhone|iPod/i) !== null || (UA.match(/iPad/) && this.options.iOSUniversalApp)) {\r\n this.type = 'ios';\r\n }\r\n else if (UA.match(/\\bSilk\\/(.*\\bMobile Safari\\b)?/) || UA.match(/\\bKF\\w/) || UA.match('Kindle Fire')) {\r\n this.type = 'kindle';\r\n }\r\n else if (UA.match(/Android/i) !== null) {\r\n this.type = 'android';\r\n }\r\n // For non-modern browsers that don't support HTML5 local storage, ignore and return.\r\n if (!('localStorage' in window) || window['localStorage'] === null) {\r\n return;\r\n }\r\n // Don't show banner if device isn't iOS or Android, website is loaded in app or user dismissed banner.\r\n if (!this.type || standalone || window.localStorage.getItem('sb-closed') === 'true' || this.getCookie('sb-installed')) {\r\n return;\r\n }\r\n // Calculate scale.\r\n this.scale = this.options.scale == 'auto' ? $(window).width() / window.screen.width : this.options.scale;\r\n if (this.scale < 1) {\r\n this.scale = 1;\r\n }\r\n // Get info from meta data.\r\n var meta = $(\r\n this.type == 'android'\r\n ? 'meta[name=\"google-play-app-bingads\"]'\r\n : (this.type == 'ios'\r\n ? 'meta[name=\"apple-itunes-app-bingads\"]'\r\n : (this.type == 'kindle'\r\n ? 'meta[name=\"kindle-fire-app\"]'\r\n : 'meta[name=\"msApplication-ID\"]'\r\n )\r\n )\r\n );\r\n\r\n if (!meta.length) {\r\n return;\r\n }\r\n // For Windows Store apps, get the PackageFamilyName for protocol launch.\r\n if (this.type == 'windows') {\r\n if (isEdge) {\r\n this.appId = $('meta[name=\"msApplication-PackageEdgeName\"]').attr('content');\r\n }\r\n if (!this.appId) {\r\n this.appId = $('meta[name=\"msApplication-PackageFamilyName\"]').attr('content');\r\n }\r\n }\r\n else {\r\n // Try to pull the appId out of the meta tag and store the result.\r\n var parsedMetaContent = /app-id=([^\\s,]+)/.exec(meta.attr('content'));\r\n if (parsedMetaContent) {\r\n this.appId = parsedMetaContent[1];\r\n } else {\r\n return;\r\n }\r\n }\r\n this.title = this.options.title\r\n ? this.options.title\r\n : (meta.data('title') || $('title').text().replace(/\\s*[|\\-·].*$/, ''));\r\n\r\n this.author = this.options.author\r\n ? this.options.author\r\n : (meta.data('author') || ($('meta[name=\"author\"]').length ? $('meta[name=\"author\"]').attr('content') : window.location.hostname));\r\n\r\n this.iconUrl = meta.data('icon-url');\r\n this.price = meta.data('price');\r\n\r\n // Set default onInstall callback if not set in options.\r\n if (typeof this.options.onInstall == 'function') {\r\n this.options.onInstall = this.options.onInstall;\r\n } else {\r\n this.options.onInstall = function() {};\r\n }\r\n // Set default onClose callback if not set in options.\r\n if (typeof this.options.onClose == 'function') {\r\n this.options.onClose = this.options.onClose;\r\n } else {\r\n this.options.onClose = function() {};\r\n }\r\n // Set default onShow callback if not set in options.\r\n if (typeof this.options.onShow == 'function') {\r\n this.options.onShow = this.options.onShow;\r\n } else {\r\n this.options.onShow = function() {};\r\n }\r\n // Create banner.\r\n this.create();\r\n this.show();\r\n this.listen();\r\n };\r\n\r\n SmartBanner.prototype = {\r\n\r\n constructor: SmartBanner,\r\n\r\n create: function() {\r\n var iconURL;\r\n var price = this.price || this.options.price;\r\n\r\n var link = this.options.url || (function() {\r\n switch (this.type) {\r\n case 'android':\r\n return 'market://details?id=';\r\n case 'kindle':\r\n return 'amzn://apps/android?asin=';\r\n case 'windows':\r\n return isEdge\r\n ? 'ms-windows-store://pdp/?productid='\r\n : 'ms-windows-store:navigate?appid=';\r\n }\r\n return 'https://itunes.apple.com/' + this.options.appStoreLanguage + '/app/id';\r\n }.call(this) + this.appId);\r\n\r\n var gloss = this.options.iconGloss == null\r\n ? (this.type=='ios')\r\n : this.options.iconGloss;\r\n\r\n if (this.type == 'android' && this.options.GooglePlayParams) {\r\n link += '&referrer=' + this.options.GooglePlayParams;\r\n }\r\n var banner = (\r\n '
' + // class=\"' + this.type + '\">' +\r\n '
' +\r\n '' +\r\n '' +\r\n '
' +\r\n '' + this.options.title + '' +\r\n '' + this.options.author + '' +\r\n '' + this.options.description + '' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
'\r\n );\r\n if (this.options.layer) {\r\n $(this.options.appendToSelector).append(banner);\r\n } else {\r\n $(this.options.appendToSelector).prepend(banner);\r\n }\r\n if (this.options.icon) {\r\n iconURL = this.options.icon;\r\n } else if(this.iconUrl) {\r\n iconURL = this.iconUrl;\r\n } else if ($('link[rel=\"apple-touch-icon-precomposed\"]').length > 0) {\r\n iconURL = $('link[rel=\"apple-touch-icon-precomposed\"]').attr('href');\r\n if (this.options.iconGloss == null) {\r\n gloss = false;\r\n }\r\n } else if ($('link[rel=\"apple-touch-icon\"]').length > 0) {\r\n iconURL = $('link[rel=\"apple-touch-icon\"]').attr('href');\r\n } else if ($('meta[name=\"msApplication-TileImage\"]').length > 0) {\r\n iconURL = $('meta[name=\"msApplication-TileImage\"]').attr('content');\r\n } else if ($('meta[name=\"msapplication-TileImage\"]').length > 0) {\r\n // Redundant because ms docs show two case usages.\r\n iconURL = $('meta[name=\"msapplication-TileImage\"]').attr('content');\r\n }\r\n if (iconURL) {\r\n $('#smartbanner .sb-icon').css('background-image', 'url(' + iconURL + ')');\r\n if (gloss) {\r\n $('#smartbanner .sb-icon').addClass('gloss');\r\n }\r\n } else{\r\n $('#smartbanner').addClass('no-icon');\r\n }\r\n this.bannerHeight = $('#smartbanner').outerHeight() + 2;\r\n\r\n if (this.scale > 1) {\r\n $('#smartbanner')\r\n .css('top', parseFloat($('#smartbanner').css('top')) * this.scale)\r\n .css('height', parseFloat($('#smartbanner').css('height')) * this.scale)\r\n .hide();\r\n $('#smartbanner .sb-container')\r\n .css('-webkit-transform', 'scale(' + this.scale + ')')\r\n .css('-msie-transform', 'scale(' + this.scale + ')')\r\n .css('-moz-transform', 'scale(' + this.scale + ')')\r\n .css('width', $(window).width() / this.scale);\r\n }\r\n $('#smartbanner')\r\n .css('position', this.options.layer ? 'fixed' : 'static');\r\n },\r\n\r\n listen: function() {\r\n $('#smartbanner .sb-close').on('click', $.proxy(this.close, this));\r\n $('#smartbanner .sb-button').on('click', $.proxy(this.install, this));\r\n if (this.options.contentSelector !== undefined) {\r\n $(document).on('DOMNodeInserted', $.proxy(this.adjustOuterContent, this));\r\n }\r\n },\r\n\r\n show: function(callback) {\r\n var banner = $('#smartbanner');\r\n banner.stop();\r\n\r\n if (this.options.layer) {\r\n banner\r\n .animate({ top: 0, display: 'block' }, this.options.speedIn)\r\n .addClass('shown')\r\n .show();\r\n $(this.pushSelector)\r\n .animate({\r\n paddingTop: this.origHtmlMargin + (this.bannerHeight * this.scale)\r\n }, this.options.speedIn, 'swing', callback);\r\n if (this.options.contentSelector !== undefined) {\r\n $(this.options.contentSelector)\r\n .animate({\r\n paddingTop: this.bannerHeight * this.scale\r\n }, this.options.speedIn, 'swing');\r\n }\r\n }\r\n else {\r\n if ($.support.transition) {\r\n banner.animate({ top: 0 }, this.options.speedIn).addClass('shown');\r\n var transitionCallback = function() {\r\n $('html').removeClass('sb-animation');\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n $(this.pushSelector)\r\n .addClass('sb-animation')\r\n .one($.support.transition.end, transitionCallback)\r\n .emulateTransitionEnd(this.options.speedIn)\r\n .css('margin-top', this.origHtmlMargin + (this.bannerHeight * this.scale));\r\n }\r\n else {\r\n banner\r\n .slideDown(this.options.speedIn)\r\n .addClass('shown');\r\n }\r\n }\r\n if (this.type && UA.match(/AppleWebKit/i)) {\r\n $(window).resize(this.adjustButton);\r\n $(window).scroll(this.adjustButton);\r\n $(window).resize();\r\n }\r\n this.options.onShow();\r\n },\r\n\r\n hide: function(callback) {\r\n var banner = $('#smartbanner');\r\n banner.stop();\r\n\r\n if (this.options.layer) {\r\n banner.animate({\r\n top: -1 * this.bannerHeight * this.scale,\r\n display: 'block'\r\n }, this.options.speedIn)\r\n .removeClass('shown');\r\n\r\n $(this.pushSelector)\r\n .animate({\r\n paddingTop: this.origHtmlMargin\r\n }, this.options.speedIn, 'swing', callback);\r\n\r\n if (this.options.contentSelector !== undefined) {\r\n $(this.options.contentSelector)\r\n .animate({\r\n paddingTop: 0\r\n }, this.options.speedIn, 'swing');\r\n }\r\n }\r\n else {\r\n if ($.support.transition) {\r\n if (this.type !== 'android') {\r\n banner\r\n .css('top', -1 * this.bannerHeight * this.scale)\r\n .removeClass('shown');\r\n }\r\n else {\r\n banner\r\n .css({display:'none'})\r\n .removeClass('shown');\r\n }\r\n var transitionCallback = function() {\r\n $('html').removeClass('sb-animation');\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n $(this.pushSelector)\r\n .addClass('sb-animation')\r\n .one($.support.transition.end, transitionCallback)\r\n .emulateTransitionEnd(this.options.speedOut)\r\n .css('margin-top', this.origHtmlMargin);\r\n }\r\n else {\r\n banner.slideUp(this.options.speedOut).removeClass('shown');\r\n }\r\n }\r\n if (this.type && UA.match(/AppleWebKit/i)) {\r\n $(window).off('resize', this.adjustButton);\r\n $(window).off('scroll', this.adjustButton);\r\n }\r\n if (this.options.contentSelector !== undefined) {\r\n $(document).off('DOMNodeInserted', $.proxy(this.adjustOuterContent, this));\r\n }\r\n },\r\n\r\n close: function(e) {\r\n e.preventDefault();\r\n this.hide();\r\n // this.setCookie('sb-closed', 'true', this.options.daysHidden);\r\n try {\r\n this.window.localStorage.setItem('sb-closed', true);\r\n } catch (e) {\r\n // Private browsing mode in Safari doesn't support writing to localStorage, ignore.\r\n }\r\n this.options.onClose(e);\r\n },\r\n\r\n install: function(e) {\r\n if (this.options.hideOnInstall) {\r\n this.hide();\r\n }\r\n this.setCookie('sb-installed', 'true', this.options.daysReminder);\r\n this.options.onInstall(e);\r\n },\r\n\r\n setCookie: function(name, value, exdays) {\r\n var exdate = new Date();\r\n exdate.setDate(exdate.getDate() + exdays);\r\n value = encodeURI(value) + ((exdays == null) ? '' : '; expires=' + exdate.toUTCString());\r\n document.cookie = name + '=' + value + '; path=/;';\r\n },\r\n\r\n getCookie: function(name) {\r\n var i, x, y, ARRcookies = document.cookie.split(';');\r\n for (i = 0; i < ARRcookies.length; i++) {\r\n x = ARRcookies[i].substr(0, ARRcookies[i].indexOf('='));\r\n y = ARRcookies[i].substr(ARRcookies[i].indexOf('=') + 1);\r\n x = x.replace(/^\\s+|\\s+$/g, '');\r\n if (x == name) {\r\n return decodeURI(y);\r\n }\r\n }\r\n return null;\r\n },\r\n\r\n adjustButton: function() {\r\n if ($('article').width() > window.innerWidth) {\r\n $('.sb-button').css({\r\n right: (1 - window.scrollX / ($('article').width() - window.innerWidth)) * ($('#smartbanner').width() - window.innerWidth)\r\n });\r\n }\r\n },\r\n\r\n adjustOuterContent: function(e) {\r\n if (this.options.contentSelector !== undefined\r\n && $(this.options.contentSelector).filter(e.target || e.srcElement).length > 0) {\r\n $(this.options.contentSelector)\r\n .animate({\r\n paddingTop: this.bannerHeight * this.scale\r\n }, this.options.speedIn, 'swing');\r\n }\r\n },\r\n\r\n // Demo only.\r\n switchType: function() {\r\n var that = this;\r\n\r\n this.hide(function() {\r\n that.type = that.type == 'android' ? 'ios' : 'android';\r\n var meta = $(that.type == 'android' ? 'meta[name=\"google-play-app-bingads\"]' : 'meta[name=\"apple-itunes-app-bingads\"]').attr('content');\r\n that.appId = /app-id=([^\\s,]+)/.exec(meta)[1];\r\n\r\n $('#smartbanner').detach();\r\n that.create();\r\n that.show();\r\n });\r\n }\r\n };\r\n\r\n $.smartbanner = function(option) {\r\n var $window = $(window);\r\n var data = $window.data('smartbanner');\r\n var options = typeof option == 'object' && option;\r\n if (!data) {\r\n $window.data('smartbanner', (data = new SmartBanner(options)));\r\n }\r\n if (typeof option == 'string') {\r\n data[option]();\r\n }\r\n };\r\n\r\n // override these globally if you like (they are all optional)\r\n $.smartbanner.defaults = {\r\n title: 'SmartBanner_AppName', // What the title of the app should be in the banner (defaults to )\r\n author: 'SmartBanner_Developer', // What the author of the app should be in the banner (defaults to <meta name=\"author\"> or hostname)\r\n appStoreLanguage: '', // Language code for App Store, use default here\r\n description: 'SmartBanner_Description', // Text for the app description\r\n GooglePlayParams: null, // Aditional parameters for the market\r\n icon: null, // The URL of the icon (defaults to <meta name=\"apple-touch-icon\">)\r\n iconGloss: null, // Force gloss effect for iOS even for precomposed\r\n button: 'SmartBanner_View', // Text for the install button\r\n url: null, // The URL for the button. Keep null if you want the button to link to the app store.\r\n scale: 1, // 'auto', // Scale based on viewport size (set to 1 to disable)\r\n speedIn: 300, // Show animation speed of the banner\r\n speedOut: 400, // Close animation speed of the banner\r\n daysHidden: 0, // Duration to hide the banner after being closed (0 = always show banner)\r\n daysReminder: 10, // Duration to hide the banner after \"VIEW\" is clicked *separate from when the close button is clicked* (0 = always show banner)\r\n force: null, // Choose 'ios', 'android' or 'windows'. Don't do a browser check, just always show this banner\r\n hideOnInstall: true, // Hide the banner after \"VIEW\" is clicked.\r\n layer: true, // Display as overlay layer or slide down the page\r\n iOSUniversalApp: true, // If the iOS App is a universal app for both iPad and iPhone, display Smart Banner to iPad users, too.\r\n appendToSelector: 'body', //Append the banner to a specific selector\r\n pushSelector: 'html' // What element is going to push the site content down; this is where the banner append animation will start.\r\n };\r\n\r\n $.smartbanner.Constructor = SmartBanner;\r\n\r\n // ============================================================\r\n // Bootstrap transition\r\n // Copyright 2011-2014 Twitter, Inc.\r\n // Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n\r\n function transitionEnd () {\r\n var el = document.createElement('smartbanner');\r\n\r\n var transEndEventNames = {\r\n WebkitTransition: 'webkitTransitionEnd',\r\n MozTransition: 'transitionend',\r\n OTransition: 'oTransitionEnd otransitionend',\r\n transition: 'transitionend'\r\n };\r\n\r\n for (var name in transEndEventNames) {\r\n if (el.style[name] !== undefined) {\r\n return {end: transEndEventNames[name]};\r\n }\r\n }\r\n // Explicit for ie8.\r\n return false;\r\n }\r\n if ($.support.transition !== undefined) {\r\n // Prevent conflict with Twitter Bootstrap.\r\n return;\r\n }\r\n\r\n // http://blog.alexmaccaw.com/css-transitions\r\n $.fn.emulateTransitionEnd = function(duration) {\r\n var called = false, $el = this;\r\n $(this).one($.support.transition.end, function() {\r\n called = true;\r\n });\r\n var callback = function() {\r\n if (!called) {\r\n $($el).trigger($.support.transition.end);\r\n }\r\n };\r\n setTimeout(callback, duration);\r\n return this;\r\n };\r\n\r\n $(function() {\r\n $.support.transition = transitionEnd();\r\n });\r\n // ============================================================\r\n})(jQuery);\r\n","import jQuery from 'jquery';\r\n/* eslint-disable */\r\n/*!\r\n * jQuery UI Widget 1.8.22\r\n *\r\n * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)\r\n * Dual licensed under the MIT or GPL Version 2 licenses.\r\n * http://jquery.org/license\r\n *\r\n * http://docs.jquery.com/UI/Widget\r\n */\r\n(function( $, undefined ) {\r\n\r\n// jQuery 1.4+\r\nif ( $.cleanData ) {\r\n\tvar _cleanData = $.cleanData;\r\n\t$.cleanData = function( elems ) {\r\n\t\tfor ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {\r\n\t\t\ttry {\r\n\t\t\t\t$( elem ).triggerHandler( \"remove\" );\r\n\t\t\t// http://bugs.jquery.com/ticket/8235\r\n\t\t\t} catch( e ) {}\r\n\t\t}\r\n\t\t_cleanData( elems );\r\n\t};\r\n} else {\r\n\tvar _remove = $.fn.remove;\r\n\t$.fn.remove = function( selector, keepData ) {\r\n\t\treturn this.each(function() {\r\n\t\t\tif ( !keepData ) {\r\n\t\t\t\tif ( !selector || $.filter( selector, [ this ] ).length ) {\r\n\t\t\t\t\t$( \"*\", this ).add( [ this ] ).each(function() {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t$( this ).triggerHandler( \"remove\" );\r\n\t\t\t\t\t\t// http://bugs.jquery.com/ticket/8235\r\n\t\t\t\t\t\t} catch( e ) {}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn _remove.call( $(this), selector, keepData );\r\n\t\t});\r\n\t};\r\n}\r\n\r\n$.widget = function( name, base, prototype ) {\r\n\tvar namespace = name.split( \".\" )[ 0 ],\r\n\t\tfullName;\r\n\tname = name.split( \".\" )[ 1 ];\r\n\tfullName = namespace + \"-\" + name;\r\n\r\n\tif ( !prototype ) {\r\n\t\tprototype = base;\r\n\t\tbase = $.Widget;\r\n\t}\r\n\r\n\t// create selector for plugin\r\n\t$.expr[ \":\" ][ fullName ] = function( elem ) {\r\n\t\treturn !!$.data( elem, name );\r\n\t};\r\n\r\n\t$[ namespace ] = $[ namespace ] || {};\r\n\t$[ namespace ][ name ] = function( options, element ) {\r\n\t\t// allow instantiation without initializing for simple inheritance\r\n\t\tif ( arguments.length ) {\r\n\t\t\tthis._createWidget( options, element );\r\n\t\t}\r\n\t};\r\n\r\n\tvar basePrototype = new base();\r\n\t// we need to make the options hash a property directly on the new instance\r\n\t// otherwise we'll modify the options hash on the prototype that we're\r\n\t// inheriting from\r\n//\t$.each( basePrototype, function( key, val ) {\r\n//\t\tif ( $.isPlainObject(val) ) {\r\n//\t\t\tbasePrototype[ key ] = $.extend( {}, val );\r\n//\t\t}\r\n//\t});\r\n\tbasePrototype.options = $.extend( true, {}, basePrototype.options );\r\n\t$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {\r\n\t\tnamespace: namespace,\r\n\t\twidgetName: name,\r\n\t\twidgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,\r\n\t\twidgetBaseClass: fullName\r\n\t}, prototype );\r\n\r\n\t$.widget.bridge( name, $[ namespace ][ name ] );\r\n};\r\n\r\n$.widget.bridge = function( name, object ) {\r\n\t$.fn[ name ] = function( options ) {\r\n\t\tvar isMethodCall = typeof options === \"string\",\r\n\t\t\targs = Array.prototype.slice.call( arguments, 1 ),\r\n\t\t\treturnValue = this;\r\n\r\n\t\t// allow multiple hashes to be passed on init\r\n\t\toptions = !isMethodCall && args.length ?\r\n\t\t\t$.extend.apply( null, [ true, options ].concat(args) ) :\r\n\t\t\toptions;\r\n\r\n\t\t// prevent calls to internal methods\r\n\t\tif ( isMethodCall && options.charAt( 0 ) === \"_\" ) {\r\n\t\t\treturn returnValue;\r\n\t\t}\r\n\r\n\t\tif ( isMethodCall ) {\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar instance = $.data( this, name ),\r\n\t\t\t\t\tmethodValue = instance && $.isFunction( instance[options] ) ?\r\n\t\t\t\t\t\tinstance[ options ].apply( instance, args ) :\r\n\t\t\t\t\t\tinstance;\r\n\t\t\t\t// TODO: add this back in 1.9 and use $.error() (see #5972)\r\n//\t\t\t\tif ( !instance ) {\r\n//\t\t\t\t\tthrow \"cannot call methods on \" + name + \" prior to initialization; \" +\r\n//\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\";\r\n//\t\t\t\t}\r\n//\t\t\t\tif ( !$.isFunction( instance[options] ) ) {\r\n//\t\t\t\t\tthrow \"no such method '\" + options + \"' for \" + name + \" widget instance\";\r\n//\t\t\t\t}\r\n//\t\t\t\tvar methodValue = instance[ options ].apply( instance, args );\r\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\r\n\t\t\t\t\treturnValue = methodValue;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar instance = $.data( this, name );\r\n\t\t\t\tif ( instance ) {\r\n\t\t\t\t\tinstance.option( options || {} )._init();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$.data( this, name, new object( options, this ) );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn returnValue;\r\n\t};\r\n};\r\n\r\n$.Widget = function( options, element ) {\r\n\t// allow instantiation without initializing for simple inheritance\r\n\tif ( arguments.length ) {\r\n\t\tthis._createWidget( options, element );\r\n\t}\r\n};\r\n\r\n$.Widget.prototype = {\r\n\twidgetName: \"widget\",\r\n\twidgetEventPrefix: \"\",\r\n\toptions: {\r\n\t\tdisabled: false\r\n\t},\r\n\t_createWidget: function( options, element ) {\r\n\t\t// $.widget.bridge stores the plugin instance, but we do it anyway\r\n\t\t// so that it's stored even before the _create function runs\r\n\t\t$.data( element, this.widgetName, this );\r\n\t\tthis.element = $( element );\r\n\t\tthis.options = $.extend( true, {},\r\n\t\t\tthis.options,\r\n\t\t\tthis._getCreateOptions(),\r\n\t\t\toptions );\r\n\r\n\t\tvar self = this;\r\n\t\tthis.element.bind( \"remove.\" + this.widgetName, function() {\r\n\t\t\tself.destroy();\r\n\t\t});\r\n\r\n\t\tthis._create();\r\n\t\tthis._trigger( \"create\" );\r\n\t\tthis._init();\r\n\t},\r\n\t_getCreateOptions: function() {\r\n\t\treturn $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];\r\n\t},\r\n\t_create: function() {},\r\n\t_init: function() {},\r\n\r\n\tdestroy: function() {\r\n\t\tthis.element\r\n\t\t\t.unbind( \".\" + this.widgetName )\r\n\t\t\t.removeData( this.widgetName );\r\n\t\tthis.widget()\r\n\t\t\t.unbind( \".\" + this.widgetName )\r\n\t\t\t.removeAttr( \"aria-disabled\" )\r\n\t\t\t.removeClass(\r\n\t\t\t\tthis.widgetBaseClass + \"-disabled \" +\r\n\t\t\t\t\"ui-state-disabled\" );\r\n\t},\r\n\r\n\twidget: function() {\r\n\t\treturn this.element;\r\n\t},\r\n\r\n\toption: function( key, value ) {\r\n\t\tvar options = key;\r\n\r\n\t\tif ( arguments.length === 0 ) {\r\n\t\t\t// don't return a reference to the internal hash\r\n\t\t\treturn $.extend( {}, this.options );\r\n\t\t}\r\n\r\n\t\tif (typeof key === \"string\" ) {\r\n\t\t\tif ( value === undefined ) {\r\n\t\t\t\treturn this.options[ key ];\r\n\t\t\t}\r\n\t\t\toptions = {};\r\n\t\t\toptions[ key ] = value;\r\n\t\t}\r\n\r\n\t\tthis._setOptions( options );\r\n\r\n\t\treturn this;\r\n\t},\r\n\t_setOptions: function( options ) {\r\n\t\tvar self = this;\r\n\t\t$.each( options, function( key, value ) {\r\n\t\t\tself._setOption( key, value );\r\n\t\t});\r\n\r\n\t\treturn this;\r\n\t},\r\n\t_setOption: function( key, value ) {\r\n\t\tthis.options[ key ] = value;\r\n\r\n\t\tif ( key === \"disabled\" ) {\r\n\t\t\tthis.widget()\r\n\t\t\t\t[ value ? \"addClass\" : \"removeClass\"](\r\n\t\t\t\t\tthis.widgetBaseClass + \"-disabled\" + \" \" +\r\n\t\t\t\t\t\"ui-state-disabled\" )\r\n\t\t\t\t.attr( \"aria-disabled\", value );\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tenable: function() {\r\n\t\treturn this._setOption( \"disabled\", false );\r\n\t},\r\n\tdisable: function() {\r\n\t\treturn this._setOption( \"disabled\", true );\r\n\t},\r\n\r\n\t_trigger: function( type, event, data ) {\r\n\t\tvar prop, orig,\r\n\t\t\tcallback = this.options[ type ];\r\n\r\n\t\tdata = data || {};\r\n\t\tevent = $.Event( event );\r\n\t\tevent.type = ( type === this.widgetEventPrefix ?\r\n\t\t\ttype :\r\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\r\n\t\t// the original event may come from any element\r\n\t\t// so we need to reset the target on the new event\r\n\t\tevent.target = this.element[ 0 ];\r\n\r\n\t\t// copy original event properties over to the new event\r\n\t\torig = event.originalEvent;\r\n\t\tif ( orig ) {\r\n\t\t\tfor ( prop in orig ) {\r\n\t\t\t\tif ( !( prop in event ) ) {\r\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.element.trigger( event, data );\r\n\r\n\t\treturn !( $.isFunction(callback) &&\r\n\t\t\tcallback.call( this.element[0], event, data ) === false ||\r\n\t\t\tevent.isDefaultPrevented() );\r\n\t}\r\n};\r\n\r\n})( jQuery );\r\n","import jQuery from 'jquery';\r\n\r\n/* eslint-disable */\r\n/*!\r\n * jQuery Validation Plugin v1.16.0\r\n *\r\n * http://jqueryvalidation.org/\r\n *\r\n * Copyright (c) 2016 Jörn Zaefferer\r\n * Released under the MIT license\r\n */\r\n(function( $ ) {\r\n\r\n$.extend( $.fn, {\r\n\r\n\t// http://jqueryvalidation.org/validate/\r\n\tvalidate: function( options ) {\r\n\r\n\t\t// If nothing is selected, return nothing; can't chain anyway\r\n\t\tif ( !this.length ) {\r\n\t\t\tif ( options && options.debug && window.console ) {\r\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check if a validator for this form was already created\r\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\r\n\t\tif ( validator ) {\r\n\t\t\treturn validator;\r\n\t\t}\r\n\r\n\t\t// Add novalidate tag if HTML5.\r\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\r\n\r\n\t\tvalidator = new $.validator( options, this[ 0 ] );\r\n\t\t$.data( this[ 0 ], \"validator\", validator );\r\n\r\n\t\tif ( validator.settings.onsubmit ) {\r\n\r\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\r\n\t\t\t\tif ( validator.settings.submitHandler ) {\r\n\t\t\t\t\tvalidator.submitButton = event.target;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Allow suppressing validation by adding a cancel class to the submit button\r\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\r\n\t\t\t\t\tvalidator.cancelSubmit = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\r\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\r\n\t\t\t\t\tvalidator.cancelSubmit = true;\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\r\n\t\t\t// Validate the form on submit\r\n\t\t\tthis.on( \"submit.validate\", function( event ) {\r\n\t\t\t\tif ( validator.settings.debug ) {\r\n\r\n\t\t\t\t\t// Prevent form submit to be able to see console output\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t\tfunction handle() {\r\n\t\t\t\t\tvar hidden, result;\r\n\t\t\t\t\tif ( validator.settings.submitHandler ) {\r\n\t\t\t\t\t\tif ( validator.submitButton ) {\r\n\r\n\t\t\t\t\t\t\t// Insert a hidden input as a replacement for the missing submit button\r\n\t\t\t\t\t\t\thidden = $( \"<input type='hidden'/>\" )\r\n\t\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\r\n\t\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\r\n\t\t\t\t\t\t\t\t.appendTo( validator.currentForm );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\r\n\t\t\t\t\t\tif ( validator.submitButton ) {\r\n\r\n\t\t\t\t\t\t\t// And clean up afterwards; thanks to no-block-scope, hidden can be referenced\r\n\t\t\t\t\t\t\thidden.remove();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ( result !== undefined ) {\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Prevent submit for invalid forms or custom submit handlers\r\n\t\t\t\tif ( validator.cancelSubmit ) {\r\n\t\t\t\t\tvalidator.cancelSubmit = false;\r\n\t\t\t\t\treturn handle();\r\n\t\t\t\t}\r\n\t\t\t\tif ( validator.form() ) {\r\n\t\t\t\t\tif ( validator.pendingRequest ) {\r\n\t\t\t\t\t\tvalidator.formSubmitted = true;\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn handle();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalidator.focusInvalid();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\treturn validator;\r\n\t},\r\n\r\n\t// http://jqueryvalidation.org/valid/\r\n\tvalid: function() {\r\n\t\tvar valid, validator, errorList;\r\n\r\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\r\n\t\t\tvalid = this.validate().form();\r\n\t\t} else {\r\n\t\t\terrorList = [];\r\n\t\t\tvalid = true;\r\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\r\n\t\t\tthis.each( function() {\r\n\t\t\t\tvalid = validator.element( this ) && valid;\r\n\t\t\t\tif ( !valid ) {\r\n\t\t\t\t\terrorList = errorList.concat( validator.errorList );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t\tvalidator.errorList = errorList;\r\n\t\t}\r\n\t\treturn valid;\r\n\t},\r\n\r\n\t// http://jqueryvalidation.org/rules/\r\n\trules: function( command, argument ) {\r\n\t\tvar element = this[ 0 ],\r\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\r\n\r\n\t\t// If nothing is selected, return empty object; can't chain anyway\r\n\t\tif ( element == null || element.form == null ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( command ) {\r\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\r\n\t\t\tstaticRules = settings.rules;\r\n\t\t\texistingRules = $.validator.staticRules( element );\r\n\t\t\tswitch ( command ) {\r\n\t\t\tcase \"add\":\r\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\r\n\r\n\t\t\t\t// Remove messages from rules, but allow them to be set separately\r\n\t\t\t\tdelete existingRules.messages;\r\n\t\t\t\tstaticRules[ element.name ] = existingRules;\r\n\t\t\t\tif ( argument.messages ) {\r\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"remove\":\r\n\t\t\t\tif ( !argument ) {\r\n\t\t\t\t\tdelete staticRules[ element.name ];\r\n\t\t\t\t\treturn existingRules;\r\n\t\t\t\t}\r\n\t\t\t\tfiltered = {};\r\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\r\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\r\n\t\t\t\t\tdelete existingRules[ method ];\r\n\t\t\t\t\tif ( method === \"required\" ) {\r\n\t\t\t\t\t\t$( element ).removeAttr( \"aria-required\" );\r\n\t\t\t\t\t}\r\n\t\t\t\t} );\r\n\t\t\t\treturn filtered;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdata = $.validator.normalizeRules(\r\n\t\t$.extend(\r\n\t\t\t{},\r\n\t\t\t$.validator.classRules( element ),\r\n\t\t\t$.validator.attributeRules( element ),\r\n\t\t\t$.validator.dataRules( element ),\r\n\t\t\t$.validator.staticRules( element )\r\n\t\t), element );\r\n\r\n\t\t// Make sure required is at front\r\n\t\tif ( data.required ) {\r\n\t\t\tparam = data.required;\r\n\t\t\tdelete data.required;\r\n\t\t\tdata = $.extend( { required: param }, data );\r\n\t\t\t$( element ).attr( \"aria-required\", \"true\" );\r\n\t\t}\r\n\r\n\t\t// Make sure remote is at back\r\n\t\tif ( data.remote ) {\r\n\t\t\tparam = data.remote;\r\n\t\t\tdelete data.remote;\r\n\t\t\tdata = $.extend( data, { remote: param } );\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n} );\r\n\r\n// Custom selectors\r\n$.extend( $.expr.pseudos || $.expr[ \":\" ], {\t\t// '|| $.expr[ \":\" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support\r\n\r\n\t// http://jqueryvalidation.org/blank-selector/\r\n\tblank: function( a ) {\r\n\t\treturn !$.trim( \"\" + $( a ).val() );\r\n\t},\r\n\r\n\t// http://jqueryvalidation.org/filled-selector/\r\n\tfilled: function( a ) {\r\n\t\tvar val = $( a ).val();\r\n\t\treturn val !== null && !!$.trim( \"\" + val );\r\n\t},\r\n\r\n\t// http://jqueryvalidation.org/unchecked-selector/\r\n\tunchecked: function( a ) {\r\n\t\treturn !$( a ).prop( \"checked\" );\r\n\t}\r\n} );\r\n\r\n// Constructor for validator\r\n$.validator = function( options, form ) {\r\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\r\n\tthis.currentForm = form;\r\n\tthis.init();\r\n};\r\n\r\n// http://jqueryvalidation.org/jQuery.validator.format/\r\n$.validator.format = function( source, params ) {\r\n\tif ( arguments.length === 1 ) {\r\n\t\treturn function() {\r\n\t\t\tvar args = $.makeArray( arguments );\r\n\t\t\targs.unshift( source );\r\n\t\t\treturn $.validator.format.apply( this, args );\r\n\t\t};\r\n\t}\r\n\tif ( params === undefined ) {\r\n\t\treturn source;\r\n\t}\r\n\tif ( arguments.length > 2 && params.constructor !== Array ) {\r\n\t\tparams = $.makeArray( arguments ).slice( 1 );\r\n\t}\r\n\tif ( params.constructor !== Array ) {\r\n\t\tparams = [ params ];\r\n\t}\r\n\t$.each( params, function( i, n ) {\r\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\r\n\t\t\treturn n;\r\n\t\t} );\r\n\t} );\r\n\treturn source;\r\n};\r\n\r\n$.extend( $.validator, {\r\n\r\n\tdefaults: {\r\n\t\tmessages: {},\r\n\t\tgroups: {},\r\n\t\trules: {},\r\n\t\terrorClass: \"error\",\r\n\t\tpendingClass: \"pending\",\r\n\t\tvalidClass: \"valid\",\r\n\t\terrorElement: \"label\",\r\n\t\tfocusCleanup: false,\r\n\t\tfocusInvalid: true,\r\n\t\terrorContainer: $( [] ),\r\n\t\terrorLabelContainer: $( [] ),\r\n\t\tonsubmit: true,\r\n\t\tignore: \":hidden\",\r\n\t\tignoreTitle: false,\r\n\t\tonfocusin: function( element ) {\r\n\t\t\tthis.lastActive = element;\r\n\r\n\t\t\t// Hide error label and remove error class on focus if enabled\r\n\t\t\tif ( this.settings.focusCleanup ) {\r\n\t\t\t\tif ( this.settings.unhighlight ) {\r\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\r\n\t\t\t\t}\r\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\r\n\t\t\t}\r\n\t\t},\r\n\t\tonfocusout: function( element ) {\r\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\r\n\t\t\t\tthis.element( element );\r\n\t\t\t}\r\n\t\t},\r\n\t\tonkeyup: function( element, event ) {\r\n\r\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\r\n\t\t\t// Shift => 16\r\n\t\t\t// Ctrl => 17\r\n\t\t\t// Alt => 18\r\n\t\t\t// Caps lock => 20\r\n\t\t\t// End => 35\r\n\t\t\t// Home => 36\r\n\t\t\t// Left arrow => 37\r\n\t\t\t// Up arrow => 38\r\n\t\t\t// Right arrow => 39\r\n\t\t\t// Down arrow => 40\r\n\t\t\t// Insert => 45\r\n\t\t\t// Num lock => 144\r\n\t\t\t// AltGr key => 225\r\n\t\t\tvar excludedKeys = [\r\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\r\n\t\t\t\t38, 39, 40, 45, 144, 225\r\n\t\t\t];\r\n\r\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if ( element.name in this.submitted || element.name in this.invalid ) {\r\n\t\t\t\tthis.element( element );\r\n\t\t\t}\r\n\t\t},\r\n\t\tonclick: function( element ) {\r\n\r\n\t\t\t// Click on selects, radiobuttons and checkboxes\r\n\t\t\tif ( element.name in this.submitted ) {\r\n\t\t\t\tthis.element( element );\r\n\r\n\t\t\t// Or option elements, check parent select in that case\r\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\r\n\t\t\t\tthis.element( element.parentNode );\r\n\t\t\t}\r\n\t\t},\r\n\t\thighlight: function( element, errorClass, validClass ) {\r\n\t\t\tif ( element.type === \"radio\" ) {\r\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\r\n\t\t\t} else {\r\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\r\n\t\t\t}\r\n\t\t},\r\n\t\tunhighlight: function( element, errorClass, validClass ) {\r\n\t\t\tif ( element.type === \"radio\" ) {\r\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\r\n\t\t\t} else {\r\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// http://jqueryvalidation.org/jQuery.validator.setDefaults/\r\n\tsetDefaults: function( settings ) {\r\n\t\t$.extend( $.validator.defaults, settings );\r\n\t},\r\n\r\n\tmessages: {\r\n\t\trequired: \"This field is required.\",\r\n\t\tremote: \"Please fix this field.\",\r\n\t\temail: \"Please enter a valid email address.\",\r\n\t\turl: \"Please enter a valid URL.\",\r\n\t\tdate: \"Please enter a valid date.\",\r\n\t\tdateISO: \"Please enter a valid date (ISO).\",\r\n\t\tnumber: \"Please enter a valid number.\",\r\n\t\tdigits: \"Please enter only digits.\",\r\n\t\tequalTo: \"Please enter the same value again.\",\r\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\r\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\r\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\r\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\r\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\r\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" ),\r\n\t\tstep: $.validator.format( \"Please enter a multiple of {0}.\" )\r\n\t},\r\n\r\n\tautoCreateRanges: false,\r\n\r\n\tprototype: {\r\n\r\n\t\tinit: function() {\r\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\r\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\r\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\r\n\t\t\tthis.submitted = {};\r\n\t\t\tthis.valueCache = {};\r\n\t\t\tthis.pendingRequest = 0;\r\n\t\t\tthis.pending = {};\r\n\t\t\tthis.invalid = {};\r\n\t\t\tthis.reset();\r\n\r\n\t\t\tvar groups = ( this.groups = {} ),\r\n\t\t\t\trules;\r\n\t\t\t$.each( this.settings.groups, function( key, value ) {\r\n\t\t\t\tif ( typeof value === \"string\" ) {\r\n\t\t\t\t\tvalue = value.split( /\\s/ );\r\n\t\t\t\t}\r\n\t\t\t\t$.each( value, function( index, name ) {\r\n\t\t\t\t\tgroups[ name ] = key;\r\n\t\t\t\t} );\r\n\t\t\t} );\r\n\t\t\trules = this.settings.rules;\r\n\t\t\t$.each( rules, function( key, value ) {\r\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\r\n\t\t\t} );\r\n\r\n\t\t\tfunction delegate( event ) {\r\n\r\n\t\t\t\t// Set form expando on contenteditable\r\n\t\t\t\tif ( !this.form && this.hasAttribute( \"contenteditable\" ) ) {\r\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\r\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\r\n\t\t\t\t\tsettings = validator.settings;\r\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\r\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$( this.currentForm )\r\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\",\r\n\t\t\t\t\t\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], \" +\r\n\t\t\t\t\t\"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], \" +\r\n\t\t\t\t\t\"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], \" +\r\n\t\t\t\t\t\"[type='radio'], [type='checkbox'], [contenteditable], [type='button']\", delegate )\r\n\r\n\t\t\t\t// Support: Chrome, oldIE\r\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\r\n\t\t\t\t.on( \"click.validate\", \"select, option, [type='radio'], [type='checkbox']\", delegate );\r\n\r\n\t\t\tif ( this.settings.invalidHandler ) {\r\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\r\n\t\t\t}\r\n\r\n\t\t\t// Add aria-required to any Static/Data/Class required fields before first validation\r\n\t\t\t// Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html\r\n\t\t\t$( this.currentForm ).find( \"[required], [data-rule-required], .required\" ).attr( \"aria-required\", \"true\" );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/Validator.form/\r\n\t\tform: function() {\r\n\t\t\tthis.checkForm();\r\n\t\t\t$.extend( this.submitted, this.errorMap );\r\n\t\t\tthis.invalid = $.extend( {}, this.errorMap );\r\n\t\t\tif ( !this.valid() ) {\r\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\r\n\t\t\t}\r\n\t\t\tthis.showErrors();\r\n\t\t\treturn this.valid();\r\n\t\t},\r\n\r\n\t\tcheckForm: function() {\r\n\t\t\tthis.prepareForm();\r\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\r\n\t\t\t\tthis.check( elements[ i ] );\r\n\t\t\t}\r\n\t\t\treturn this.valid();\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/Validator.element/\r\n\t\telement: function( element ) {\r\n\t\t\tvar cleanElement = this.clean( element ),\r\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\r\n\t\t\t\tv = this,\r\n\t\t\t\tresult = true,\r\n\t\t\t\trs, group;\r\n\r\n\t\t\tif ( checkElement === undefined ) {\r\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\r\n\t\t\t} else {\r\n\t\t\t\tthis.prepareElement( checkElement );\r\n\t\t\t\tthis.currentElements = $( checkElement );\r\n\r\n\t\t\t\t// If this element is grouped, then validate all group elements already\r\n\t\t\t\t// containing a value\r\n\t\t\t\tgroup = this.groups[ checkElement.name ];\r\n\t\t\t\tif ( group ) {\r\n\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\r\n\t\t\t\t\t\tif ( testgroup === group && name !== checkElement.name ) {\r\n\t\t\t\t\t\t\tcleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );\r\n\t\t\t\t\t\t\tif ( cleanElement && cleanElement.name in v.invalid ) {\r\n\t\t\t\t\t\t\t\tv.currentElements.push( cleanElement );\r\n\t\t\t\t\t\t\t\tresult = v.check( cleanElement ) && result;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} );\r\n\t\t\t\t}\r\n\r\n\t\t\t\trs = this.check( checkElement ) !== false;\r\n\t\t\t\tresult = result && rs;\r\n\t\t\t\tif ( rs ) {\r\n\t\t\t\t\tthis.invalid[ checkElement.name ] = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( !this.numberOfInvalids() ) {\r\n\r\n\t\t\t\t\t// Hide error containers on last error\r\n\t\t\t\t\tthis.toHide = this.toHide.add( this.containers );\r\n\t\t\t\t}\r\n\t\t\t\tthis.showErrors();\r\n\r\n\t\t\t\t// Add aria-invalid status for screen readers\r\n\t\t\t\t$( element ).attr( \"aria-invalid\", !rs );\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/Validator.showErrors/\r\n\t\tshowErrors: function( errors ) {\r\n\t\t\tif ( errors ) {\r\n\t\t\t\tvar validator = this;\r\n\r\n\t\t\t\t// Add items to error list and map\r\n\t\t\t\t$.extend( this.errorMap, errors );\r\n\t\t\t\tthis.errorList = $.map( this.errorMap, function( message, name ) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tmessage: message,\r\n\t\t\t\t\t\telement: validator.findByName( name )[ 0 ]\r\n\t\t\t\t\t};\r\n\t\t\t\t} );\r\n\r\n\t\t\t\t// Remove items from success list\r\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\r\n\t\t\t\t\treturn !( element.name in errors );\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\t\t\tif ( this.settings.showErrors ) {\r\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\r\n\t\t\t} else {\r\n\t\t\t\tthis.defaultShowErrors();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/Validator.resetForm/\r\n\t\tresetForm: function() {\r\n\t\t\tif ( $.fn.resetForm ) {\r\n\t\t\t\t$( this.currentForm ).resetForm();\r\n\t\t\t}\r\n\t\t\tthis.invalid = {};\r\n\t\t\tthis.submitted = {};\r\n\t\t\tthis.prepareForm();\r\n\t\t\tthis.hideErrors();\r\n\t\t\tvar elements = this.elements()\r\n\t\t\t\t.removeData( \"previousValue\" )\r\n\t\t\t\t.removeAttr( \"aria-invalid\" );\r\n\r\n\t\t\tthis.resetElements( elements );\r\n\t\t},\r\n\r\n\t\tresetElements: function( elements ) {\r\n\t\t\tvar i;\r\n\r\n\t\t\tif ( this.settings.unhighlight ) {\r\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\r\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\r\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\r\n\t\t\t\t\tthis.findByName( elements[ i ].name ).removeClass( this.settings.validClass );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\telements\r\n\t\t\t\t\t.removeClass( this.settings.errorClass )\r\n\t\t\t\t\t.removeClass( this.settings.validClass );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tnumberOfInvalids: function() {\r\n\t\t\treturn this.objectLength( this.invalid );\r\n\t\t},\r\n\r\n\t\tobjectLength: function( obj ) {\r\n\t\t\t/* jshint unused: false */\r\n\t\t\tvar count = 0,\r\n\t\t\t\ti;\r\n\t\t\tfor ( i in obj ) {\r\n\t\t\t\tif ( obj[ i ] ) {\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn count;\r\n\t\t},\r\n\r\n\t\thideErrors: function() {\r\n\t\t\tthis.hideThese( this.toHide );\r\n\t\t},\r\n\r\n\t\thideThese: function( errors ) {\r\n\t\t\terrors.not( this.containers ).text( \"\" );\r\n\t\t\tthis.addWrapper( errors ).hide();\r\n\t\t},\r\n\r\n\t\tvalid: function() {\r\n\t\t\treturn this.size() === 0;\r\n\t\t},\r\n\r\n\t\tsize: function() {\r\n\t\t\treturn this.errorList.length;\r\n\t\t},\r\n\r\n\t\tfocusInvalid: function() {\r\n\t\t\tif ( this.settings.focusInvalid ) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )\r\n\t\t\t\t\t.filter( \":visible\" )\r\n\t\t\t\t\t.focus()\r\n\r\n\t\t\t\t\t// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\r\n\t\t\t\t\t.trigger( \"focusin\" );\r\n\t\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t\t// Ignore IE throwing errors when focusing hidden elements\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tfindLastActive: function() {\r\n\t\t\tvar lastActive = this.lastActive;\r\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\r\n\t\t\t\treturn n.element.name === lastActive.name;\r\n\t\t\t} ).length === 1 && lastActive;\r\n\t\t},\r\n\r\n\t\telements: function() {\r\n\t\t\tvar validator = this,\r\n\t\t\t\trulesCache = {};\r\n\r\n\t\t\t// Select all valid inputs inside the form (no submit or reset buttons)\r\n\t\t\treturn $( this.currentForm )\r\n\t\t\t.find( \"input, select, textarea, [contenteditable]\" )\r\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\r\n\t\t\t.not( this.settings.ignore )\r\n\t\t\t.filter( function() {\r\n\t\t\t\tvar name = this.name || $( this ).attr( \"name\" ); // For contenteditable\r\n\t\t\t\tif ( !name && validator.settings.debug && window.console ) {\r\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set form expando on contenteditable\r\n\t\t\t\tif ( this.hasAttribute( \"contenteditable\" ) ) {\r\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Select only the first element for each name, and only those with rules specified\r\n\t\t\t\tif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\trulesCache[ name ] = true;\r\n\t\t\t\treturn true;\r\n\t\t\t} );\r\n\t\t},\r\n\r\n\t\tclean: function( selector ) {\r\n\t\t\treturn $( selector )[ 0 ];\r\n\t\t},\r\n\r\n\t\terrors: function() {\r\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\r\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\r\n\t\t},\r\n\r\n\t\tresetInternals: function() {\r\n\t\t\tthis.successList = [];\r\n\t\t\tthis.errorList = [];\r\n\t\t\tthis.errorMap = {};\r\n\t\t\tthis.toShow = $( [] );\r\n\t\t\tthis.toHide = $( [] );\r\n\t\t},\r\n\r\n\t\treset: function() {\r\n\t\t\tthis.resetInternals();\r\n\t\t\tthis.currentElements = $( [] );\r\n\t\t},\r\n\r\n\t\tprepareForm: function() {\r\n\t\t\tthis.reset();\r\n\t\t\tthis.toHide = this.errors().add( this.containers );\r\n\t\t},\r\n\r\n\t\tprepareElement: function( element ) {\r\n\t\t\tthis.reset();\r\n\t\t\tthis.toHide = this.errorsFor( element );\r\n\t\t},\r\n\r\n\t\telementValue: function( element ) {\r\n\t\t\tvar $element = $( element ),\r\n\t\t\t\ttype = element.type,\r\n\t\t\t\tval, idx;\r\n\r\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\r\n\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).val();\r\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\r\n\t\t\t\treturn element.validity.badInput ? \"NaN\" : $element.val();\r\n\t\t\t}\r\n\r\n\t\t\tif ( element.hasAttribute( \"contenteditable\" ) ) {\r\n\t\t\t\tval = $element.text();\r\n\t\t\t} else {\r\n\t\t\t\tval = $element.val();\r\n\t\t\t}\r\n\r\n\t\t\tif ( type === \"file\" ) {\r\n\r\n\t\t\t\t// Modern browser (chrome & safari)\r\n\t\t\t\tif ( val.substr( 0, 12 ) === \"C:\\\\fakepath\\\\\" ) {\r\n\t\t\t\t\treturn val.substr( 12 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Legacy browsers\r\n\t\t\t\t// Unix-based path\r\n\t\t\t\tidx = val.lastIndexOf( \"/\" );\r\n\t\t\t\tif ( idx >= 0 ) {\r\n\t\t\t\t\treturn val.substr( idx + 1 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Windows-based path\r\n\t\t\t\tidx = val.lastIndexOf( \"\\\\\" );\r\n\t\t\t\tif ( idx >= 0 ) {\r\n\t\t\t\t\treturn val.substr( idx + 1 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Just the file name\r\n\t\t\t\treturn val;\r\n\t\t\t}\r\n\r\n\t\t\tif ( typeof val === \"string\" ) {\r\n\t\t\t\treturn val.replace( /\\r/g, \"\" );\r\n\t\t\t}\r\n\t\t\treturn val;\r\n\t\t},\r\n\r\n\t\tcheck: function( element ) {\r\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\r\n\r\n\t\t\tvar rules = $( element ).rules(),\r\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\r\n\t\t\t\t\treturn i;\r\n\t\t\t\t} ).length,\r\n\t\t\t\tdependencyMismatch = false,\r\n\t\t\t\tval = this.elementValue( element ),\r\n\t\t\t\tresult, method, rule;\r\n\r\n\t\t\t// If a normalizer is defined for this element, then\r\n\t\t\t// call it to retreive the changed value instead\r\n\t\t\t// of using the real one.\r\n\t\t\t// Note that `this` in the normalizer is `element`.\r\n\t\t\tif ( typeof rules.normalizer === \"function\" ) {\r\n\t\t\t\tval = rules.normalizer.call( element, val );\r\n\r\n\t\t\t\tif ( typeof val !== \"string\" ) {\r\n\t\t\t\t\tthrow new TypeError( \"The normalizer should return a string value.\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Delete the normalizer from rules to avoid treating\r\n\t\t\t\t// it as a pre-defined method.\r\n\t\t\t\tdelete rules.normalizer;\r\n\t\t\t}\r\n\r\n\t\t\tfor ( method in rules ) {\r\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\r\n\t\t\t\ttry {\r\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\r\n\r\n\t\t\t\t\t// If a method indicates that the field is optional and therefore valid,\r\n\t\t\t\t\t// don't mark it as valid when there are no other rules\r\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\r\n\t\t\t\t\t\tdependencyMismatch = true;\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdependencyMismatch = false;\r\n\r\n\t\t\t\t\tif ( result === \"pending\" ) {\r\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( !result ) {\r\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch ( e ) {\r\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\r\n\t\t\t\t\t\tconsole.log( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( e instanceof TypeError ) {\r\n\t\t\t\t\t\te.message += \". Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthrow e;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ( dependencyMismatch ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif ( this.objectLength( rules ) ) {\r\n\t\t\t\tthis.successList.push( element );\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\t// Return the custom message for the given element and validation method\r\n\t\t// specified in the element's HTML5 data attribute\r\n\t\t// return the generic message if present and no method specific message is present\r\n\t\tcustomDataMessage: function( element, method ) {\r\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\r\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\r\n\t\t},\r\n\r\n\t\t// Return the custom message for the given element name and validation method\r\n\t\tcustomMessage: function( name, method ) {\r\n\t\t\tvar m = this.settings.messages[ name ];\r\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ] );\r\n\t\t},\r\n\r\n\t\t// Return the first defined argument, allowing empty strings\r\n\t\tfindDefined: function() {\r\n\t\t\tfor ( var i = 0; i < arguments.length; i++ ) {\r\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\r\n\t\t\t\t\treturn arguments[ i ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn undefined;\r\n\t\t},\r\n\r\n\t\t// The second parameter 'rule' used to be a string, and extended to an object literal\r\n\t\t// of the following form:\r\n\t\t// rule = {\r\n\t\t// method: \"method name\",\r\n\t\t// parameters: \"the given method parameters\"\r\n\t\t// }\r\n\t\t//\r\n\t\t// The old behavior still supported, kept to maintain backward compatibility with\r\n\t\t// old code, and will be removed in the next major release.\r\n\t\tdefaultMessage: function( element, rule ) {\r\n\t\t\tif ( typeof rule === \"string\" ) {\r\n\t\t\t\trule = { method: rule };\r\n\t\t\t}\r\n\r\n\t\t\tvar message = this.findDefined(\r\n\t\t\t\t\tthis.customMessage( element.name, rule.method ),\r\n\t\t\t\t\tthis.customDataMessage( element, rule.method ),\r\n\r\n\t\t\t\t\t// 'title' is never undefined, so handle empty string as undefined\r\n\t\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\r\n\t\t\t\t\t$.validator.messages[ rule.method ],\r\n\t\t\t\t\t\"<strong>Warning: No message defined for \" + element.name + \"</strong>\"\r\n\t\t\t\t),\r\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\r\n\t\t\tif ( typeof message === \"function\" ) {\r\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\r\n\t\t\t} else if ( theregex.test( message ) ) {\r\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\r\n\t\t\t}\r\n\r\n\t\t\treturn message;\r\n\t\t},\r\n\r\n\t\tformatAndAdd: function( element, rule ) {\r\n\t\t\tvar message = this.defaultMessage( element, rule );\r\n\r\n\t\t\tthis.errorList.push( {\r\n\t\t\t\tmessage: message,\r\n\t\t\t\telement: element,\r\n\t\t\t\tmethod: rule.method\r\n\t\t\t} );\r\n\r\n\t\t\tthis.errorMap[ element.name ] = message;\r\n\t\t\tthis.submitted[ element.name ] = message;\r\n\t\t},\r\n\r\n\t\taddWrapper: function( toToggle ) {\r\n\t\t\tif ( this.settings.wrapper ) {\r\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\r\n\t\t\t}\r\n\t\t\treturn toToggle;\r\n\t\t},\r\n\r\n\t\tdefaultShowErrors: function() {\r\n\t\t\tvar i, elements, error;\r\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\r\n\t\t\t\terror = this.errorList[ i ];\r\n\t\t\t\tif ( this.settings.highlight ) {\r\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\r\n\t\t\t\t}\r\n\t\t\t\tthis.showLabel( error.element, error.message );\r\n\t\t\t}\r\n\t\t\tif ( this.errorList.length ) {\r\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\r\n\t\t\t}\r\n\t\t\tif ( this.settings.success ) {\r\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\r\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ( this.settings.unhighlight ) {\r\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\r\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\r\n\t\t\tthis.hideErrors();\r\n\t\t\tthis.addWrapper( this.toShow ).show();\r\n\t\t},\r\n\r\n\t\tvalidElements: function() {\r\n\t\t\treturn this.currentElements.not( this.invalidElements() );\r\n\t\t},\r\n\r\n\t\tinvalidElements: function() {\r\n\t\t\treturn $( this.errorList ).map( function() {\r\n\t\t\t\treturn this.element;\r\n\t\t\t} );\r\n\t\t},\r\n\r\n\t\tshowLabel: function( element, message ) {\r\n\t\t\tvar place, group, errorID, v,\r\n\t\t\t\terror = this.errorsFor( element ),\r\n\t\t\t\telementID = this.idOrName( element ),\r\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\r\n\r\n\t\t\tif ( error.length ) {\r\n\r\n\t\t\t\t// Refresh error/success class\r\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\r\n\r\n\t\t\t\t// Replace message on existing label\r\n\t\t\t\terror.html( message );\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Create error element\r\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\r\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\r\n\t\t\t\t\t.addClass( this.settings.errorClass )\r\n\t\t\t\t\t.html( message || \"\" );\r\n\r\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\r\n\t\t\t\tplace = error;\r\n\t\t\t\tif ( this.settings.wrapper ) {\r\n\r\n\t\t\t\t\t// Make sure the element is visible, even in IE\r\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\r\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\r\n\t\t\t\t}\r\n\t\t\t\tif ( this.labelContainer.length ) {\r\n\t\t\t\t\tthis.labelContainer.append( place );\r\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\r\n\t\t\t\t\tthis.settings.errorPlacement.call( this, place, $( element ) );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tplace.insertAfter( element );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Link error back to the element\r\n\t\t\t\tif ( error.is( \"label\" ) ) {\r\n\r\n\t\t\t\t\t// If the error is a label, then associate using 'for'\r\n\t\t\t\t\terror.attr( \"for\", elementID );\r\n\r\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\r\n\t\t\t\t\t// to explicitly apply aria-describedby\r\n\t\t\t\t} else if ( error.parents( \"label[for='\" + this.escapeCssMeta( elementID ) + \"']\" ).length === 0 ) {\r\n\t\t\t\t\terrorID = error.attr( \"id\" );\r\n\r\n\t\t\t\t\t// Respect existing non-error aria-describedby\r\n\t\t\t\t\tif ( !describedBy ) {\r\n\t\t\t\t\t\tdescribedBy = errorID;\r\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + this.escapeCssMeta( errorID ) + \"\\\\b\" ) ) ) {\r\n\r\n\t\t\t\t\t\t// Add to end of list if not already present\r\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\r\n\r\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\r\n\t\t\t\t\tgroup = this.groups[ element.name ];\r\n\t\t\t\t\tif ( group ) {\r\n\t\t\t\t\t\tv = this;\r\n\t\t\t\t\t\t$.each( v.groups, function( name, testgroup ) {\r\n\t\t\t\t\t\t\tif ( testgroup === group ) {\r\n\t\t\t\t\t\t\t\t$( \"[name='\" + v.escapeCssMeta( name ) + \"']\", v.currentForm )\r\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ( !message && this.settings.success ) {\r\n\t\t\t\terror.text( \"\" );\r\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\r\n\t\t\t\t\terror.addClass( this.settings.success );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.settings.success( error, element );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.toShow = this.toShow.add( error );\r\n\t\t},\r\n\r\n\t\terrorsFor: function( element ) {\r\n\t\t\tvar name = this.escapeCssMeta( this.idOrName( element ) ),\r\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\r\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\r\n\r\n\t\t\t// 'aria-describedby' should directly reference the error element\r\n\t\t\tif ( describer ) {\r\n\t\t\t\tselector = selector + \", #\" + this.escapeCssMeta( describer )\r\n\t\t\t\t\t.replace( /\\s+/g, \", #\" );\r\n\t\t\t}\r\n\r\n\t\t\treturn this\r\n\t\t\t\t.errors()\r\n\t\t\t\t.filter( selector );\r\n\t\t},\r\n\r\n\t\t// See https://api.jquery.com/category/selectors/, for CSS\r\n\t\t// meta-characters that should be escaped in order to be used with JQuery\r\n\t\t// as a literal part of a name/id or any selector.\r\n\t\tescapeCssMeta: function( string ) {\r\n\t\t\treturn string.replace( /([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g, \"\\\\$1\" );\r\n\t\t},\r\n\r\n\t\tidOrName: function( element ) {\r\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\r\n\t\t},\r\n\r\n\t\tvalidationTargetFor: function( element ) {\r\n\r\n\t\t\t// If radio/checkbox, validate first element in group instead\r\n\t\t\tif ( this.checkable( element ) ) {\r\n\t\t\t\telement = this.findByName( element.name );\r\n\t\t\t}\r\n\r\n\t\t\t// Always apply ignore filter\r\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\r\n\t\t},\r\n\r\n\t\tcheckable: function( element ) {\r\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\r\n\t\t},\r\n\r\n\t\tfindByName: function( name ) {\r\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + this.escapeCssMeta( name ) + \"']\" );\r\n\t\t},\r\n\r\n\t\tgetLength: function( value, element ) {\r\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\r\n\t\t\tcase \"select\":\r\n\t\t\t\treturn $( \"option:selected\", element ).length;\r\n\t\t\tcase \"input\":\r\n\t\t\t\tif ( this.checkable( element ) ) {\r\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn value.length;\r\n\t\t},\r\n\r\n\t\tdepend: function( param, element ) {\r\n\t\t\treturn this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;\r\n\t\t},\r\n\r\n\t\tdependTypes: {\r\n\t\t\t\"boolean\": function( param ) {\r\n\t\t\t\treturn param;\r\n\t\t\t},\r\n\t\t\t\"string\": function( param, element ) {\r\n\t\t\t\treturn !!$( param, element.form ).length;\r\n\t\t\t},\r\n\t\t\t\"function\": function( param, element ) {\r\n\t\t\t\treturn param( element );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\toptional: function( element ) {\r\n\t\t\tvar val = this.elementValue( element );\r\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\r\n\t\t},\r\n\r\n\t\tstartRequest: function( element ) {\r\n\t\t\tif ( !this.pending[ element.name ] ) {\r\n\t\t\t\tthis.pendingRequest++;\r\n\t\t\t\t$( element ).addClass( this.settings.pendingClass );\r\n\t\t\t\tthis.pending[ element.name ] = true;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tstopRequest: function( element, valid ) {\r\n\t\t\tthis.pendingRequest--;\r\n\r\n\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\r\n\t\t\tif ( this.pendingRequest < 0 ) {\r\n\t\t\t\tthis.pendingRequest = 0;\r\n\t\t\t}\r\n\t\t\tdelete this.pending[ element.name ];\r\n\t\t\t$( element ).removeClass( this.settings.pendingClass );\r\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {\r\n\t\t\t\t$( this.currentForm ).submit();\r\n\t\t\t\tthis.formSubmitted = false;\r\n\t\t\t} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {\r\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\r\n\t\t\t\tthis.formSubmitted = false;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tpreviousValue: function( element, method ) {\r\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\r\n\r\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\r\n\t\t\t\told: null,\r\n\t\t\t\tvalid: true,\r\n\t\t\t\tmessage: this.defaultMessage( element, { method: method } )\r\n\t\t\t} );\r\n\t\t},\r\n\r\n\t\t// Cleans up all forms and elements, removes validator-specific events\r\n\t\tdestroy: function() {\r\n\t\t\tthis.resetForm();\r\n\r\n\t\t\t$( this.currentForm )\r\n\t\t\t\t.off( \".validate\" )\r\n\t\t\t\t.removeData( \"validator\" )\r\n\t\t\t\t.find( \".validate-equalTo-blur\" )\r\n\t\t\t\t\t.off( \".validate-equalTo\" )\r\n\t\t\t\t\t.removeClass( \"validate-equalTo-blur\" );\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tclassRuleSettings: {\r\n\t\trequired: { required: true },\r\n\t\temail: { email: true },\r\n\t\turl: { url: true },\r\n\t\tdate: { date: true },\r\n\t\tdateISO: { dateISO: true },\r\n\t\tnumber: { number: true },\r\n\t\tdigits: { digits: true },\r\n\t\tcreditcard: { creditcard: true }\r\n\t},\r\n\r\n\taddClassRules: function( className, rules ) {\r\n\t\tif ( className.constructor === String ) {\r\n\t\t\tthis.classRuleSettings[ className ] = rules;\r\n\t\t} else {\r\n\t\t\t$.extend( this.classRuleSettings, className );\r\n\t\t}\r\n\t},\r\n\r\n\tclassRules: function( element ) {\r\n\t\tvar rules = {},\r\n\t\t\tclasses = $( element ).attr( \"class\" );\r\n\r\n\t\tif ( classes ) {\r\n\t\t\t$.each( classes.split( \" \" ), function() {\r\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\r\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ] );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\t\treturn rules;\r\n\t},\r\n\r\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\r\n\r\n\t\t// Convert the value to a number for number inputs, and for text for backwards compability\r\n\t\t// allows type=\"date\" and others to be compared as strings\r\n\t\tif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\r\n\t\t\tvalue = Number( value );\r\n\r\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\r\n\t\t\tif ( isNaN( value ) ) {\r\n\t\t\t\tvalue = undefined;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( value || value === 0 ) {\r\n\t\t\trules[ method ] = value;\r\n\t\t} else if ( type === method && type !== \"range\" ) {\r\n\r\n\t\t\t// Exception: the jquery validate 'range' method\r\n\t\t\t// does not test for the html5 'range' type\r\n\t\t\trules[ method ] = true;\r\n\t\t}\r\n\t},\r\n\r\n\tattributeRules: function( element ) {\r\n\t\tvar rules = {},\r\n\t\t\t$element = $( element ),\r\n\t\t\ttype = element.getAttribute( \"type\" ),\r\n\t\t\tmethod, value;\r\n\r\n\t\tfor ( method in $.validator.methods ) {\r\n\r\n\t\t\t// Support for <input required> in both html5 and older browsers\r\n\t\t\tif ( method === \"required\" ) {\r\n\t\t\t\tvalue = element.getAttribute( method );\r\n\r\n\t\t\t\t// Some browsers return an empty string for the required attribute\r\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\r\n\t\t\t\tif ( value === \"\" ) {\r\n\t\t\t\t\tvalue = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Force non-HTML5 browsers to return bool\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t} else {\r\n\t\t\t\tvalue = $element.attr( method );\r\n\t\t\t}\r\n\r\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\r\n\t\t}\r\n\r\n\t\t// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\r\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\r\n\t\t\tdelete rules.maxlength;\r\n\t\t}\r\n\r\n\t\treturn rules;\r\n\t},\r\n\r\n\tdataRules: function( element ) {\r\n\t\tvar rules = {},\r\n\t\t\t$element = $( element ),\r\n\t\t\ttype = element.getAttribute( \"type\" ),\r\n\t\t\tmethod, value;\r\n\r\n\t\tfor ( method in $.validator.methods ) {\r\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\r\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\r\n\t\t}\r\n\t\treturn rules;\r\n\t},\r\n\r\n\tstaticRules: function( element ) {\r\n\t\tvar rules = {},\r\n\t\t\tvalidator = $.data( element.form, \"validator\" );\r\n\r\n\t\tif ( validator.settings.rules ) {\r\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\r\n\t\t}\r\n\t\treturn rules;\r\n\t},\r\n\r\n\tnormalizeRules: function( rules, element ) {\r\n\r\n\t\t// Handle dependency check\r\n\t\t$.each( rules, function( prop, val ) {\r\n\r\n\t\t\t// Ignore rule when param is explicitly false, eg. required:false\r\n\t\t\tif ( val === false ) {\r\n\t\t\t\tdelete rules[ prop ];\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif ( val.param || val.depends ) {\r\n\t\t\t\tvar keepRule = true;\r\n\t\t\t\tswitch ( typeof val.depends ) {\r\n\t\t\t\tcase \"string\":\r\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"function\":\r\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif ( keepRule ) {\r\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$.data( element.form, \"validator\" ).resetElements( $( element ) );\r\n\t\t\t\t\tdelete rules[ prop ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\t// Evaluate parameters\r\n\t\t$.each( rules, function( rule, parameter ) {\r\n\t\t\trules[ rule ] = $.isFunction( parameter ) && rule !== \"normalizer\" ? parameter( element ) : parameter;\r\n\t\t} );\r\n\r\n\t\t// Clean number parameters\r\n\t\t$.each( [ \"minlength\", \"maxlength\" ], function() {\r\n\t\t\tif ( rules[ this ] ) {\r\n\t\t\t\trules[ this ] = Number( rules[ this ] );\r\n\t\t\t}\r\n\t\t} );\r\n\t\t$.each( [ \"rangelength\", \"range\" ], function() {\r\n\t\t\tvar parts;\r\n\t\t\tif ( rules[ this ] ) {\r\n\t\t\t\tif ( $.isArray( rules[ this ] ) ) {\r\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];\r\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\r\n\t\t\t\t\tparts = rules[ this ].replace( /[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\r\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\tif ( $.validator.autoCreateRanges ) {\r\n\r\n\t\t\t// Auto-create ranges\r\n\t\t\tif ( rules.min != null && rules.max != null ) {\r\n\t\t\t\trules.range = [ rules.min, rules.max ];\r\n\t\t\t\tdelete rules.min;\r\n\t\t\t\tdelete rules.max;\r\n\t\t\t}\r\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\r\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\r\n\t\t\t\tdelete rules.minlength;\r\n\t\t\t\tdelete rules.maxlength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn rules;\r\n\t},\r\n\r\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\r\n\tnormalizeRule: function( data ) {\r\n\t\tif ( typeof data === \"string\" ) {\r\n\t\t\tvar transformed = {};\r\n\t\t\t$.each( data.split( /\\s/ ), function() {\r\n\t\t\t\ttransformed[ this ] = true;\r\n\t\t\t} );\r\n\t\t\tdata = transformed;\r\n\t\t}\r\n\t\treturn data;\r\n\t},\r\n\r\n\t// http://jqueryvalidation.org/jQuery.validator.addMethod/\r\n\taddMethod: function( name, method, message ) {\r\n\t\t$.validator.methods[ name ] = method;\r\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\r\n\t\tif ( method.length < 3 ) {\r\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\r\n\t\t}\r\n\t},\r\n\r\n\t// http://jqueryvalidation.org/jQuery.validator.methods/\r\n\tmethods: {\r\n\r\n\t\t// http://jqueryvalidation.org/required-method/\r\n\t\trequired: function( value, element, param ) {\r\n\r\n\t\t\t// Check if dependency is met\r\n\t\t\tif ( !this.depend( param, element ) ) {\r\n\t\t\t\treturn \"dependency-mismatch\";\r\n\t\t\t}\r\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\r\n\r\n\t\t\t\t// Could be an array for select-multiple or a string, both are fine this way\r\n\t\t\t\tvar val = $( element ).val();\r\n\t\t\t\treturn val && val.length > 0;\r\n\t\t\t}\r\n\t\t\tif ( this.checkable( element ) ) {\r\n\t\t\t\treturn this.getLength( value, element ) > 0;\r\n\t\t\t}\r\n\t\t\treturn value.length > 0;\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/email-method/\r\n\t\temail: function( value, element ) {\r\n\r\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\r\n\t\t\t// Retrieved 2014-01-14\r\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\r\n\t\t\t// Or use custom methods to implement your own email validation\r\n\t\t\treturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/url-method/\r\n\t\turl: function( value, element ) {\r\n\r\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\r\n\t\t\t// https://gist.github.com/dperini/729294\r\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\r\n\t\t\t// modified to allow protocol-relative URLs\r\n\t\t\treturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test( value );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/date-method/\r\n\t\tdate: function( value, element ) {\r\n\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/dateISO-method/\r\n\t\tdateISO: function( value, element ) {\r\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/number-method/\r\n\t\tnumber: function( value, element ) {\r\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test( value );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/digits-method/\r\n\t\tdigits: function( value, element ) {\r\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/minlength-method/\r\n\t\tminlength: function( value, element, param ) {\r\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\r\n\t\t\treturn this.optional( element ) || length >= param;\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/maxlength-method/\r\n\t\tmaxlength: function( value, element, param ) {\r\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\r\n\t\t\treturn this.optional( element ) || length <= param;\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/rangelength-method/\r\n\t\trangelength: function( value, element, param ) {\r\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\r\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/min-method/\r\n\t\tmin: function( value, element, param ) {\r\n\t\t\treturn this.optional( element ) || value >= param;\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/max-method/\r\n\t\tmax: function( value, element, param ) {\r\n\t\t\treturn this.optional( element ) || value <= param;\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/range-method/\r\n\t\trange: function( value, element, param ) {\r\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/step-method/\r\n\t\tstep: function( value, element, param ) {\r\n\t\t\tvar type = $( element ).attr( \"type\" ),\r\n\t\t\t\terrorMessage = \"Step attribute on input type \" + type + \" is not supported.\",\r\n\t\t\t\tsupportedTypes = [ \"text\", \"number\", \"range\" ],\r\n\t\t\t\tre = new RegExp( \"\\\\b\" + type + \"\\\\b\" ),\r\n\t\t\t\tnotSupported = type && !re.test( supportedTypes.join() ),\r\n\t\t\t\tdecimalPlaces = function( num ) {\r\n\t\t\t\t\tvar match = ( \"\" + num ).match( /(?:\\.(\\d+))?$/ );\r\n\t\t\t\t\tif ( !match ) {\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Number of digits right of decimal point.\r\n\t\t\t\t\treturn match[ 1 ] ? match[ 1 ].length : 0;\r\n\t\t\t\t},\r\n\t\t\t\ttoInt = function( num ) {\r\n\t\t\t\t\treturn Math.round( num * Math.pow( 10, decimals ) );\r\n\t\t\t\t},\r\n\t\t\t\tvalid = true,\r\n\t\t\t\tdecimals;\r\n\r\n\t\t\t// Works only for text, number and range input types\r\n\t\t\t// TODO find a way to support input types date, datetime, datetime-local, month, time and week\r\n\t\t\tif ( notSupported ) {\r\n\t\t\t\tthrow new Error( errorMessage );\r\n\t\t\t}\r\n\r\n\t\t\tdecimals = decimalPlaces( param );\r\n\r\n\t\t\t// Value can't have too many decimals\r\n\t\t\tif ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {\r\n\t\t\t\tvalid = false;\r\n\t\t\t}\r\n\r\n\t\t\treturn this.optional( element ) || valid;\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/equalTo-method/\r\n\t\tequalTo: function( value, element, param ) {\r\n\r\n\t\t\t// Bind to the blur event of the target in order to revalidate whenever the target field is updated\r\n\t\t\tvar target = $( param );\r\n\t\t\tif ( this.settings.onfocusout && target.not( \".validate-equalTo-blur\" ).length ) {\r\n\t\t\t\ttarget.addClass( \"validate-equalTo-blur\" ).on( \"blur.validate-equalTo\", function() {\r\n\t\t\t\t\t$( element ).valid();\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\t\t\treturn value === target.val();\r\n\t\t},\r\n\r\n\t\t// http://jqueryvalidation.org/remote-method/\r\n\t\tremote: function( value, element, param, method ) {\r\n\t\t\tif ( this.optional( element ) ) {\r\n\t\t\t\treturn \"dependency-mismatch\";\r\n\t\t\t}\r\n\r\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\r\n\r\n\t\t\tvar previous = this.previousValue( element, method ),\r\n\t\t\t\tvalidator, data, optionDataString;\r\n\r\n\t\t\tif ( !this.settings.messages[ element.name ] ) {\r\n\t\t\t\tthis.settings.messages[ element.name ] = {};\r\n\t\t\t}\r\n\t\t\tprevious.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];\r\n\t\t\tthis.settings.messages[ element.name ][ method ] = previous.message;\r\n\r\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\r\n\t\t\toptionDataString = $.param( $.extend( { data: value }, param.data ) );\r\n\t\t\tif ( previous.old === optionDataString ) {\r\n\t\t\t\treturn previous.valid;\r\n\t\t\t}\r\n\r\n\t\t\tprevious.old = optionDataString;\r\n\t\t\tvalidator = this;\r\n\t\t\tthis.startRequest( element );\r\n\t\t\tdata = {};\r\n\t\t\tdata[ element.name ] = value;\r\n\t\t\t$.ajax( $.extend( true, {\r\n\t\t\t\tmode: \"abort\",\r\n\t\t\t\tport: \"validate\" + element.name,\r\n\t\t\t\tdataType: \"json\",\r\n\t\t\t\tdata: data,\r\n\t\t\t\tcontext: validator.currentForm,\r\n\t\t\t\tsuccess: function( response ) {\r\n\t\t\t\t\tvar valid = response === true || response === \"true\",\r\n\t\t\t\t\t\terrors, message, submitted;\r\n\r\n\t\t\t\t\tvalidator.settings.messages[ element.name ][ method ] = previous.originalMessage;\r\n\t\t\t\t\tif ( valid ) {\r\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\r\n\t\t\t\t\t\tvalidator.resetInternals();\r\n\t\t\t\t\t\tvalidator.toHide = validator.errorsFor( element );\r\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\r\n\t\t\t\t\t\tvalidator.successList.push( element );\r\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = false;\r\n\t\t\t\t\t\tvalidator.showErrors();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\terrors = {};\r\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, { method: method, parameters: value } );\r\n\t\t\t\t\t\terrors[ element.name ] = previous.message = message;\r\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\r\n\t\t\t\t\t\tvalidator.showErrors( errors );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tprevious.valid = valid;\r\n\t\t\t\t\tvalidator.stopRequest( element, valid );\r\n\t\t\t\t}\r\n\t\t\t}, param ) );\r\n\t\t\treturn \"pending\";\r\n\t\t}\r\n\t}\r\n\r\n} );\r\n\r\n// Ajax mode: abort\r\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\r\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\r\n\r\nvar pendingRequests = {},\r\n\tajax;\r\n\r\n// Use a prefilter if available (1.5+)\r\nif ( $.ajaxPrefilter ) {\r\n\t$.ajaxPrefilter( function( settings, _, xhr ) {\r\n\t\tvar port = settings.port;\r\n\t\tif ( settings.mode === \"abort\" ) {\r\n\t\t\tif ( pendingRequests[ port ] ) {\r\n\t\t\t\tpendingRequests[ port ].abort();\r\n\t\t\t}\r\n\t\t\tpendingRequests[ port ] = xhr;\r\n\t\t}\r\n\t} );\r\n} else {\r\n\r\n\t// Proxy ajax\r\n\tajax = $.ajax;\r\n\t$.ajax = function( settings ) {\r\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\r\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\r\n\t\tif ( mode === \"abort\" ) {\r\n\t\t\tif ( pendingRequests[ port ] ) {\r\n\t\t\t\tpendingRequests[ port ].abort();\r\n\t\t\t}\r\n\t\t\tpendingRequests[ port ] = ajax.apply( this, arguments );\r\n\t\t\treturn pendingRequests[ port ];\r\n\t\t}\r\n\t\treturn ajax.apply( this, arguments );\r\n\t};\r\n}\r\nreturn $;\r\n})(jQuery);\r\n","/* eslint-disable */\r\n/* eslint-enable no-undef */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport fileCacheHandler from '@bingads-webui-static-legacy/file-cache-handler';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport dataService from '@bingads-webui-static-legacy/data-service';\r\nimport autoPageReloader from '@bingads-webui-static-legacy/auto-page-reloader-service';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\nvar jQuery = $;\r\n$.advertiser = $.advertiser || {};\r\n\r\n$.advertiser.loadingPanel = {\r\n _i: 1,\r\n show: function () { $.advertiser.loadingPanel._i++; },\r\n hide: function () { $.advertiser.loadingPanel._i--; }\r\n};\r\n\r\n$(function () {\r\n var loadingText = $('#loadingText').val() || 'Loading...';\r\n var loadingPanelShowRequested = $.advertiser.loadingPanel._i > 0;\r\n\r\n $.advertiser.loadingPanel = new blocker(null, loadingText);\r\n if (loadingPanelShowRequested) {\r\n $.advertiser.loadingPanel.show();\r\n } else {\r\n $.advertiser.loadingPanel.hide();\r\n }\r\n});\r\n\r\n// Default beforeAjax handler that will be called by jquery.unobtrusive-ajax.js on before ajax event. jquery.unobtrusive-ajax.js only has effect on forms or links that declared on the server view using Ajax.BeginForm or Ajax.ActionLink.\r\n$.advertiser.beforeAjax = function () {\r\n $.advertiser.clearErrorSummary();\r\n $.advertiser.showLoadingPanel();\r\n};\r\n\r\n// Default on ajax error handler that will be called by jquery.unobtrusive-ajax.js on before ajax event. jquery.unobtrusive-ajax.js only has effect on forms or links that declared on the server view using Ajax.BeginForm or Ajax.ActionLink.\r\n$.advertiser.ajaxError = function (hideLoadingPanel) {\r\n hideLoadingPanel = hideLoadingPanel == undefined ? true : hideLoadingPanel;\r\n if (hideLoadingPanel) {\r\n $.advertiser.hideLoadingPanel();\r\n }\r\n var errorMessage = $('#internalErrorMsg').val();\r\n errorMessage = errorMessage ? errorMessage : 'Internal error.';\r\n $.advertiser.clearErrorSummary();\r\n $.advertiser.appendErrorSummary(errorMessage);\r\n};\r\n\r\n// Default on ajax complete handler that will be called by jquery.unobtrusive-ajax.js on before ajax event. jquery.unobtrusive-ajax.js only has effect on forms or links that declared on the server view using Ajax.BeginForm or Ajax.ActionLink.\r\n$.advertiser.ajaxComplete = function (xhr, textStatus, hideLoadingPanel) {\r\n hideLoadingPanel = hideLoadingPanel == undefined ? true : hideLoadingPanel;\r\n if (hideLoadingPanel) {\r\n $.advertiser.hideLoadingPanel();\r\n }\r\n};\r\n\r\nvar loadingPanelTimeoutID;\r\n// Shows loading panel\r\n$.advertiser.showLoadingPanel = function (hideImage, blockedElement, options) {\r\n $.advertiser.loadingPanel.show(hideImage, blockedElement);\r\n if (options && options.timeout) {\r\n loadingPanelTimeoutID = setTimeout($.advertiser.hideLoadingPanel, options.timeout);\r\n }\r\n};\r\n\r\n// Hides the loading panel\r\n$.advertiser.hideLoadingPanel = function () {\r\n $.advertiser.loadingPanel.hide();\r\n if (!_.isUndefined(loadingPanelTimeoutID)) {\r\n clearTimeout(loadingPanelTimeoutID);\r\n loadingPanelTimeoutID = undefined;\r\n }\r\n};\r\n\r\nvar alertIds = {};\r\n\r\nfunction showUnique(message) {\r\n if (alertIds[message]) {\r\n return;\r\n }\r\n\r\n alertIds[message] = window.App.views.alertCenter.showError(message);\r\n}\r\n\r\n// Clears the error summary container.\r\n$.advertiser.clearErrorSummary = function () {\r\n _.each(alertIds, function (id) {\r\n window.App.views.alertCenter.dismiss(id);\r\n });\r\n alertIds = {};\r\n};\r\n\r\n// Appends the given errors to the error summary container. The errors can be a string or an object that contains Message field(serialzed from ModelValidationResult server object), or an array of string\r\n// or an array of objects that contains Message field.\r\n$.advertiser.appendErrorSummary = function (errors) {\r\n if (errors === undefined) {\r\n return;\r\n }\r\n\r\n if (typeof (errors) === 'string') {\r\n if ($.trim(errors) !== '') {\r\n showUnique(errors);\r\n }\r\n }\r\n else if ($.isArray(errors)) {\r\n var strErrors = new Array();\r\n $.each(errors, function (index, item) {\r\n var message;\r\n if (typeof (item) === 'string' && $.trim(item) !== '') {\r\n message = item;\r\n }\r\n else if (typeof (item) === 'object' && item['Message']) {\r\n message = item['Message'];\r\n }\r\n if(!!message && $.inArray(message, strErrors) < 0) {\r\n showUnique(message);\r\n strErrors.push(message);\r\n }\r\n });\r\n }\r\n else if (typeof (errors) === 'object' && errors['Message']) {\r\n showUnique(errors.Message);\r\n }\r\n};\r\n\r\n// Makes jQuery ajax post action. dataType default is json, contentType default is application/x-www-form-urlencoded.\r\n$.advertiser.ajaxPost = function (options) {\r\n return safetyNetAjaxAction('POST', options, ['cid', 'uid', 'aid', 'mkt', 'loglevel', 'newui']);\r\n};\r\n\r\n// Makes jQuery ajax get action. dataType default is json, contentType default is application/x-www-form-urlencoded.\r\n$.advertiser.ajaxGet = function (options) {\r\n return safetyNetAjaxAction('GET', options, ['cid', 'uid', 'aid', 'mkt', 'loglevel', 'newui']);\r\n};\r\n\r\n// Gets the url parameter value by parameter name. If url is not provided use window.location.href as the url\r\n$.advertiser.getUrlParameter = function (name, url) {\r\n if (window.App && window.App.state && window.App.state.legacy_get && (url == window.location.href || !url)) {\r\n var ret = window.App.state.legacy_get(name);\r\n\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n\r\n url = url || window.location.href;\r\n name = name.replace(/[\\[]/, '\\\\\\[').replace(/[\\]]/, '\\\\\\]');\r\n var value = (RegExp('[\\\\?&]' + name + '=([^&#]*)').exec(url) || [, null])[1];\r\n\r\n if (value) {\r\n return decodeURIComponent(value);\r\n }\r\n\r\n return value;\r\n};\r\n\r\n$.advertiser.generateRequestGuid = function () {\r\n var S4 = function () {\r\n var mask = '0000';\r\n var val = Math.floor(Math.random() * 0x10000 /* 65536 */).toString(16);\r\n val = mask.substring(0, 4 - val.length) + val;\r\n return val;\r\n };\r\n\r\n var S12 = function () {\r\n var d = new Date().getTime().toString(16) + new Date().getTime().toString(16);\r\n return (d.substring(0, 8) + '-' + d.substring(8, 12));\r\n };\r\n\r\n return (\r\n S12() + '-' +\r\n S4() + '-' +\r\n S4() + '-' +\r\n S4() + S4() + S4()\r\n );\r\n};\r\n\r\n$.advertiser.setCookie = function (cName, cValue, expires, path, domain, secure) {\r\n document.cookie = cName + '=' + escape(cValue) +\r\n ((expires) ? '; expires=' + expires.toGMTString() : '') +\r\n ((path) ? '; path=' + path : '') +\r\n ((domain) ? '; domain=' + domain : '') +\r\n ((secure) ? '; secure' : '');\r\n return null;\r\n};\r\n\r\n$.advertiser.getCookie = function (cName) {\r\n var i, x, y, ARRcookies = document.cookie.split(';');\r\n for (i = 0; i < ARRcookies.length; i++) {\r\n x = ARRcookies[i].substr(0, ARRcookies[i].indexOf('='));\r\n y = ARRcookies[i].substr(ARRcookies[i].indexOf('=') + 1);\r\n x = x.replace(/^\\s+|\\s+$/g, '');\r\n if (x == cName) {\r\n return unescape(y);\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\n$.advertiser.setRequestId = function (url, isNotAjax) {\r\n if (url && url.length > 0) {\r\n if (!isNotAjax) {\r\n url = $.advertiser.setUrlParameter('__adcenterAJAX', 'true', url);\r\n }\r\n var usegenReqId = $.advertiser.getCookie('usegenReqId');\r\n var genReqId = $.advertiser.getUrlParameter('genReqId');\r\n if ((usegenReqId && usegenReqId == 'true') || (genReqId && genReqId == 'true')) {\r\n var requestId = $.advertiser.generateRequestGuid();\r\n url = $.advertiser.setUrlParameter('ReqId', requestId, url);\r\n if (genReqId && genReqId == 'true') {\r\n url = $.advertiser.setUrlParameter('genReqId', 'true', url);\r\n }\r\n }\r\n }\r\n return url;\r\n};\r\n\r\n// Sets the url parameter value. If url is not provided use window.location.href as the url\r\n$.advertiser.setUrlParameter = function (name, value, url, options) {\r\n options = options || {};\r\n var keepSqBrackets = !!options.keepSqBrackets;\r\n url = url || window.location.href;\r\n\r\n var setQueryStringParam = function (url, n, v, replaceOnly) {\r\n if (!keepSqBrackets) {\r\n n = n.replace(/[\\[]/, '\\\\\\[').replace(/[\\]]/, '\\\\\\]');\r\n };\r\n var regex = new RegExp('([\\\\?&])' + n + '=.*?(&|$|#)');\r\n if (url.match(regex)) {\r\n return url.replace(regex, '$1' + n + '=' + v + '$2');\r\n }\r\n if (!replaceOnly) {\r\n var qs = ''\r\n , position = url.indexOf('?');\r\n if (position > -1) {\r\n if (position + 1 < url.length) {\r\n qs = '&';\r\n }\r\n } else {\r\n qs = '?';\r\n };\r\n return url + qs + n + '=' + v;\r\n } else {\r\n return url;\r\n }\r\n }\r\n\r\n var pound = url.lastIndexOf('#');\r\n if (pound > -1) {\r\n return setQueryStringParam(url.slice(0, pound), name, value, false) + setQueryStringParam(url.slice(pound), name, value, true);\r\n } else {\r\n return setQueryStringParam(url, name, value, false);\r\n }\r\n};\r\n\r\nvar currentCustomerId = '';\r\nvar currentUserId = '';\r\n$.advertiser.getAccountContextQueryString = function () {\r\n currentCustomerId = currentCustomerId === '' ? $.advertiser.getUrlParameter('cid') : currentCustomerId;\r\n currentUserId = currentUserId === '' ? $.advertiser.getUrlParameter('uid') : currentUserId;\r\n var currentAccount = $('#CurrentAccount');\r\n var aid = currentAccount.length > 0 ? currentAccount.val() : $.advertiser.getUrlParameter('aid');\r\n return '?cid=' + currentCustomerId + '&uid=' + currentUserId + '&aid=' + aid;\r\n};\r\n\r\nfunction safetyNetAjaxAction(type, options, requiredParams) {\r\n if (!options || !options.url) {\r\n return;\r\n }\r\n\r\n var publishSafetyNetWarnings = function (requestedUrl, paramentersNotFound) {\r\n if (paramentersNotFound && paramentersNotFound.length > 0) {\r\n var message =\r\n 'SafetyNet: Required paramenter was not found.\\r\\n' +\r\n ' - requested url: ' + requestedUrl + '\\r\\n' +\r\n ' - paramenters:' + paramentersNotFound.join(', ');\r\n try {\r\n console.log(message);\r\n } catch (e) {\r\n try {\r\n window.opera.postError(message);\r\n } catch (e) {\r\n\r\n }\r\n }\r\n }\r\n };\r\n\r\n var requiredParamSafetyNet = function (parameterName, requestOptions, getValue) {\r\n var url = requestOptions.url,\r\n data = requestOptions.data ? requestOptions.data : {},\r\n requestParamValue = $.advertiser.getUrlParameter(parameterName, url),\r\n parameterExists = (requestParamValue && requestParamValue != '0') || data[parameterName];\r\n\r\n if (!parameterExists) {\r\n var existingUrlParamVal = $.advertiser.getUrlParameter(parameterName),\r\n val = getValue(),\r\n paramValue = (val && val != '0') ? val : existingUrlParamVal;\r\n if (paramValue) {\r\n url = $.advertiser.setUrlParameter(parameterName, paramValue, url);\r\n }\r\n }\r\n requestOptions.url = url;\r\n requestOptions.data = data;\r\n return parameterExists;\r\n };\r\n\r\n var safetyNetData = {\r\n aid: function () {\r\n var currentAccount = $('#CurrentAccount');\r\n return currentAccount.length > 0 ? currentAccount.val() : null;\r\n },\r\n cid: function () {\r\n return currentCustomerId;\r\n }\r\n };\r\n\r\n var i = 0,\r\n n = (requiredParams) ? requiredParams.length : 0,\r\n originalRequestedUrl = options.url,\r\n warnings = [];\r\n for (; i < n; i++) {\r\n var parameterWasSetInRequest = requiredParamSafetyNet(requiredParams[i], options, safetyNetData[requiredParams[i]] || function () { return null; });\r\n if (!parameterWasSetInRequest) {\r\n warnings.push(requiredParams[i]);\r\n }\r\n }\r\n\r\n //publishSafetyNetWarnings(originalRequestedUrl, warnings);\r\n return ajaxAction.call(this, type, options);\r\n}\r\n\r\nvar requestKeyPref = '_$';\r\nvar ajaxRequests = {};\r\n\r\nfunction ajaxAction(type, options) {\r\n if (!options || !options.url) {\r\n return;\r\n }\r\n if (type !== 'GET') {\r\n options = addRequestToken(options);\r\n }\r\n\r\n options.url = $.advertiser.setRequestId(options.url);\r\n options.data = options.data ? options.data : {};\r\n options.cotentType = options.contentType ? options.contentType : 'application/x-www-form-urlencoded';\r\n options.dataType = options.dataType ? options.dataType : null;\r\n options.onsuccessEventData = options.onsuccessEventData || {};\r\n options.hideLoadingPanelOnSuccess = options.hideLoadingPanelOnSuccess === undefined ? true : options.hideLoadingPanelOnSuccess;\r\n options.hideLoadingPanelOnError = options.hideLoadingPanelOnError === undefined ? true : options.hideLoadingPanelOnError;\r\n options.ignoreBeforeAjax = options.ignoreBeforeAjax == undefined ? false : options.ignoreBeforeAjax;\r\n options.traditional = options.traditional == undefined ? false : options.traditional;\r\n options.cache = (typeof options.cache) == 'undefined' ? true : options.cache;\r\n options.skipCache = (typeof options.skipCache) == 'undefined' ? true : options.skipCache;\r\n if (options.requestId) {\r\n var requestKey = requestKeyPref + options.requestId;\r\n if (ajaxRequests[requestKey]) {\r\n ajaxRequests[requestKey].abort();\r\n delete ajaxRequests[requestKey];\r\n }\r\n }\r\n\r\n var handler = {\r\n type: type,\r\n url: options.url,\r\n data: options.data,\r\n cache: options.cache,\r\n contentType: options.cotentType,\r\n xhrFields: options.xhrFields,\r\n beforeSend: function (xhr) {\r\n try {\r\n if (autoPageReloader && autoPageReloader.shouldAutoReloadPage(options.url)) {\r\n $.advertiser.showLoadingPanel(false, null, {timeout: 30000});\r\n // cancel the request\r\n return false;\r\n }\r\n } catch (e) {\r\n // do nothing\r\n }\r\n if (options.beforeSend && $.isFunction(options.beforeSend)) {\r\n return options.beforeSend(xhr);\r\n }\r\n if (!options.ignoreBeforeAjax) {\r\n $.advertiser.beforeAjax();\r\n }\r\n },\r\n success: function (data, textStatus, xhr) {\r\n if (!$.advertiser.handleAjaxAuthFailure(data, options.url)) {\r\n return;\r\n }\r\n\r\n try {\r\n if (options.success && $.isFunction(options.success)) {\r\n options.success.apply(options, arguments);\r\n }\r\n else {\r\n if (data && data.Errors && !$.isEmptyObject(data.Errors)) {\r\n if (options.onJsonError && $.isFunction(options.onJsonError)) {\r\n options.onJsonError(data, textStatus, xhr);\r\n }\r\n else {\r\n $.advertiser.appendErrorSummary(data.Errors);\r\n }\r\n }\r\n if (options.onSuccess && $.isFunction(options.onSuccess)) {\r\n options.onSuccess(data, textStatus, options.data, options.onsuccessEventData, xhr);\r\n }\r\n }\r\n }\r\n finally {\r\n if (options.hideLoadingPanelOnSuccess) {\r\n $.advertiser.hideLoadingPanel();\r\n }\r\n }\r\n },\r\n error: function (xhr, textStatus, errorThrown) {\r\n try {\r\n if (options.error && $.isFunction(options.error)) {\r\n options.error.apply(options, arguments);\r\n }\r\n if (options.onAjaxError && $.isFunction(options.onAjaxError)) {\r\n options.onAjaxError(xhr, textStatus, errorThrown);\r\n }\r\n else {\r\n if (xhr && xhr.status != 0) {\r\n $.advertiser.ajaxError();\r\n }\r\n }\r\n }\r\n finally {\r\n if (options.hideLoadingPanelOnError) {\r\n $.advertiser.hideLoadingPanel();\r\n }\r\n }\r\n },\r\n complete: function (xhr, textStatus) {\r\n if (options.requestId) {\r\n requestKey = requestKeyPref + options.requestId;\r\n delete ajaxRequests[requestKey];\r\n }\r\n\r\n if (options.onAjaxComplete && $.isFunction(options.onAjaxComplete)) {\r\n options.onAjaxComplete(xhr, textStatus);\r\n }\r\n else {\r\n $.advertiser.ajaxComplete(xhr, textStatus, false);\r\n }\r\n },\r\n dataType: options.dataType,\r\n traditional: options.traditional,\r\n skipCache: options.skipCache\r\n };\r\n\r\n if (options.timeout !== undefined) {\r\n handler.timeout = options.timeout;\r\n }\r\n\r\n validateSession(handler);\r\n addFileCacheHandler(handler);\r\n\r\n return addGridDataContextAndReturnRequest(handler, options, requestKey, ajaxRequests);\r\n}\r\n\r\nfunction addGridDataContextAndReturnRequest(handler, options, requestKey, ajaxRequests){\r\n addGridDataContext(handler);\r\n var request = sendRequest(handler);\r\n\r\n // <TODO> tengdu, remove this.\r\n // This is temporary info log to detect ads inline update\r\n if(handler.url.indexOf('/Campaign/Ads/InlineUpdate') > -1) {\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-static-legacy/instrumentation/index').then(legacyModule => legacyModule.default).then(function(instrument) {\r\n instrument.logMessage(\r\n ['ClientTrace'],\r\n {\r\n name: 'Info',\r\n value: 0\r\n },\r\n '__log_ui_err_ads_inlineupdate__',\r\n JSON.stringify({\r\n data: handler.data,\r\n url: handler.url,\r\n })\r\n );\r\n })\r\n }\r\n\r\n if (options.requestId) {\r\n requestKey = requestKeyPref + options.requestId;\r\n ajaxRequests[requestKey] = request;\r\n }\r\n return request;\r\n}\r\n\r\nfunction sendRequest(handler) {\r\n if (handler.contentType &&\r\n handler.contentType.indexOf('application/json') >= 0 &&\r\n typeof handler.data !== 'string') {\r\n handler.data = JSON.stringify(handler.data);\r\n }\r\n var request;\r\n if (window.dataServiceAvailable) {\r\n request = dataService.communicate(handler);\r\n } else {\r\n request = $.ajax(handler);\r\n }\r\n return request;\r\n}\r\n\r\nfunction validateSession(handler) {\r\n if (window.sessionValidatorAvailable) {\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-static-legacy/session-validator').then(legacyModule => legacyModule.default).then(function (sessionValidator) {\r\n if (sessionValidator) {\r\n sessionValidator.validate(handler.url);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction addGridDataContext(handler) {\r\n if (dataContextManager) {\r\n var segmentPostFix = /SegmentationTypes\\[0\\]$/;\r\n var dataFormKeys = (handler.data && typeof(handler.data) === 'object') ? _.keys(handler.data) : null;\r\n var segmentKey = dataFormKeys ? _.find(dataFormKeys, function(keys) {return segmentPostFix.test(keys)}) : null;\r\n var segmentValue = segmentKey ? handler.data[segmentKey] : null;\r\n var context = dataContextManager.getContext(handler.url, false, handler.type, segmentValue);\r\n if (context) {\r\n if (context.data){\r\n addToRequest(handler, context.data);\r\n }\r\n addBIDateRange(handler);\r\n var handlers = context.handlers;\r\n if (handlers) {\r\n var originalSuccess = handler.success;\r\n handler.success = function (data, textStatus, xhr) {\r\n for (var handler in handlers) {\r\n if (handlers.hasOwnProperty(handler) && $.isFunction(handlers[handler])) {\r\n handlers[handler](data, textStatus, xhr);\r\n }\r\n }\r\n if ($.isFunction(originalSuccess)) {\r\n originalSuccess(data, textStatus, xhr);\r\n }\r\n };\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction addBIDateRange(handler){\r\n var stateDateRange = window.App && window.App.state ? window.App.state.get('$daterange') : null;\r\n var osd = window.osd;\r\n if (osd &&\r\n osd.ui &&\r\n osd.ui.Controls &&\r\n osd.ui.Controls.DateRangeFilter &&\r\n _.isFunction(osd.ui.Controls.DateRangeFilter.getDateRange)) {\r\n //get date range from old date filter\r\n addToRequest(handler, {BiDateRange : osd.ui.Controls.DateRangeFilter.getDateRange()});\r\n } else if (stateDateRange) {\r\n var lcid = pageContext && pageContext.CurrentUser ?\r\n pageContext.CurrentUser.Locale :\r\n window.userLcid;\r\n //get date range from new date filter\r\n var dateRange = {\r\n RangeId : stateDateRange.grain,\r\n RangeStartDate : stateDateRange.formatedStart,\r\n RangeEndDate : stateDateRange.formatedEnd,\r\n Rangelcid : lcid\r\n };\r\n addToRequest(handler, {BiDateRange : dateRange});\r\n // TODO:[sjiang] need to pass compared data range as well. will work with Nick on it after the hotfix.\r\n }\r\n}\r\n\r\nfunction addFileCacheHandler(handler) {\r\n if (window.fileCacheHandlerAvailable) {\r\n if (fileCacheHandler) {\r\n var handleData = fileCacheHandler.getHandle(handler.url);\r\n if (handleData) {\r\n if (handleData.data) {\r\n addToRequest(handler, handleData.data);\r\n }\r\n if ($.isFunction(handleData.responseHandler)) {\r\n var originalSuccess = handler.success;\r\n handler.success = function (data, textStatus, xhr) {\r\n handleData.responseHandler(data, textStatus, xhr);\r\n if ($.isFunction(originalSuccess)) {\r\n originalSuccess(data, textStatus, xhr);\r\n }\r\n };\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction addToRequest(handler, dataToBeAdded) {\r\n if (typeof handler.data === 'string') {\r\n try {\r\n handler.data = JSON.parse(handler.data);\r\n handler.data = $.extend(true, handler.data, dataToBeAdded);\r\n } catch (e) {\r\n var contextParams = '';\r\n for (var key in dataToBeAdded) {\r\n if (dataToBeAdded.hasOwnProperty(key)) {\r\n contextParams += '&' + key + '=' + dataToBeAdded[key];\r\n }\r\n }\r\n handler.data += contextParams;\r\n }\r\n } else {\r\n handler.data = $.extend(true, handler.data, dataToBeAdded);\r\n }\r\n}\r\n\r\nfunction addOption(options, key, value) {\r\n var option = key + '=' + encodeURIComponent(value);\r\n if (!options.data) {\r\n options.data = option;\r\n return options;\r\n }\r\n if (typeof (options.data) === 'string') {\r\n if (options.data.indexOf(key) == -1) {\r\n options.data += '&' + option;\r\n }\r\n }\r\n else if (typeof (options.data) === 'object') {\r\n if (!options.data[key]) {\r\n options.data[key] = value;\r\n }\r\n }\r\n return options;\r\n}\r\n\r\nfunction addRequestToken(options) {\r\n var verificationToken = $('input[name=\"__RequestVerificationToken\"]').val();\r\n if (!verificationToken) {\r\n return options;\r\n }\r\n\r\n if (options.contentType && options.contentType.indexOf('application/json') >= 0) {\r\n if (typeof options.data === 'string') {\r\n options.data = JSON.parse(options.data);\r\n }\r\n options.data = $.extend(true, options.data, { __RequestVerificationToken: verificationToken });\r\n return options;\r\n } else {\r\n return addOption(options, '__RequestVerificationToken', verificationToken);\r\n }\r\n}\r\n\r\n$.advertiser.hideLayer = function (e) {\r\n if (e && e.data && e.data.targetLayerId) {\r\n var id = e.data.targetLayerId;\r\n if (e.target.id != id && $(e.target).parents('#' + id).length === 0 && checkForIds(e.target.id, e.data.additionalIds)) {\r\n var targetLayer = $('#' + id);\r\n targetLayer.hide();\r\n\r\n if (e.data.namespace) {\r\n $(document).off('click.' + e.data.namespace, $.advertiser.hideLayer);\r\n }\r\n else {\r\n $(document).off('click', $.advertiser.hideLayer);\r\n }\r\n if (e.data.callback && typeof (e.data.callback) === 'function') {\r\n e.data.callback(e);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction checkForIds(targetId, ids) {\r\n if (ids) {\r\n for (var i = 0; i < ids.length; i++) {\r\n if (ids[i] === targetId) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\n$.isJSON = function (json) {\r\n json = json.replace(/\\\\[\"\\\\\\/bfnrtu]/g, '@');\r\n json = json.replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, ']');\r\n json = json.replace(/(?:^|:|,)(?:\\s*\\[)+/g, '');\r\n return (/^[\\],:{}\\s]*$/.test(json));\r\n};\r\n\r\nString.prototype.isJSON = function () {\r\n return $.isJSON(this);\r\n};\r\n\r\n$.advertiser.redirect = function (redirectUrl) {\r\n if (redirectUrl && redirectUrl.length > 0) {\r\n var context = '';\r\n var custId = $.advertiser.getUrlParameter('cid', redirectUrl);\r\n if (!(custId && custId > 0)) {\r\n context = $.advertiser.getAccountContextQueryString();\r\n if (redirectUrl.indexOf('?') > -1) {\r\n if (context.indexOf('?') === 0) {\r\n context = '&' + context.slice(1);\r\n }\r\n }\r\n }\r\n var endUrl = $.advertiser.setRequestId(redirectUrl + context, true);\r\n var userId = $.advertiser.getUrlParameter('uid');\r\n endUrl = $.advertiser.setUrlParameter('uid', userId, endUrl);\r\n window.location.href = endUrl;\r\n }\r\n};\r\n\r\n$.advertiser.entitySeparator = '-------------------------';\r\n$.advertiser.showEntityErrors = function (errors, fieldId, errorPanelId) {\r\n if (!errors) {\r\n return;\r\n }\r\n if (fieldId && $.isArray(errors.InvalidEntities) && errors.InvalidEntities.length > 0) {\r\n var entities = $.merge([], errors.InvalidEntities);\r\n if ($.isArray(errors.ValidEntities) && errors.ValidEntities.length > 0) {\r\n entities.push($.advertiser.entitySeparator);\r\n $.merge(entities, errors.ValidEntities);\r\n }\r\n $('#' + fieldId).val(entities.join('\\n'));\r\n }\r\n if (errorPanelId && $.isArray(errors.EntityErrors) && errors.EntityErrors.length > 0) {\r\n var template = $.template('entityErrorsTemplate');\r\n if ($.isEmptyObject(template)) {\r\n template = $.template('entityErrorsTemplate', '<div class=\"error\">${Key}</div><ul>{{each Value}}<li>${$value}</li>{{/each}}</ul>');\r\n }\r\n $('#' + errorPanelId).empty().append($.tmpl(template, errors.EntityErrors)).show();\r\n }\r\n};\r\n\r\n// dynamic Hover\r\n$.gridPopup = {};\r\n\r\n$.gridPopup.Cache = new Array();\r\n$.gridPopup.Cache['Ids'] = new Array();\r\n\r\n$.gridPopup.ResetImage = function (event) {\r\n $.each($.gridPopup.Cache['Ids'], function (index, value) {\r\n $(value).removeClass('status_icon_hover').addClass('status_icon');\r\n });\r\n\r\n $.gridPopup.Cache['Ids'] = new Array();\r\n}\r\n\r\n$.gridPopup.pagePrev = function (elementPrefix, count) {\r\n\r\n var curPageEl = $('#gridPopup-Pager-cur'),\r\n curVal = parseInt(curPageEl.attr('data-val')),\r\n prevVal = curVal - 1,\r\n shouldShow;\r\n\r\n if (curVal > 1 && curVal <= count) {\r\n for (var i = 0; i < count; i++) {\r\n shouldShow = (i === curVal - 2);\r\n $('#' + elementPrefix + i).toggle(shouldShow);\r\n }\r\n curPageEl.attr('data-val', prevVal);\r\n curPageEl.html(prevVal);\r\n if (prevVal === 1) {\r\n $('#gridPopup-Pager-prev').toggleClass('grid-previous grid-previous-disabled');\r\n $('#gridPopup-Pager-prev').attr('tabindex', '-1');\r\n }\r\n $('#gridPopup-Pager-next').removeClass('grid-next-disabled').addClass('grid-next');\r\n $('#gridPopup-Pager-next').attr('tabindex', '0');\r\n }\r\n}\r\n\r\n$.gridPopup.pageNext = function (elementPrefix, count) {\r\n\r\n var curPageEl = $('#gridPopup-Pager-cur'),\r\n curVal = parseInt(curPageEl.attr('data-val')),\r\n nextVal = curVal + 1,\r\n shouldShow;\r\n\r\n if (curVal > 0 && curVal < count) {\r\n for (var i = 0; i < count; i++) {\r\n shouldShow = (i === curVal);\r\n $('#' + elementPrefix + i).toggle(shouldShow);\r\n }\r\n $('#gridPopup-Pager-cur').attr('data-val', nextVal);\r\n $('#gridPopup-Pager-cur').html(nextVal);\r\n if (nextVal === count) {\r\n $('#gridPopup-Pager-next').toggleClass('grid-next grid-next-disabled');\r\n $('#gridPopup-Pager-next').attr('tabindex', '-1');\r\n }\r\n\r\n $('#gridPopup-Pager-prev').attr('tabindex', '0');\r\n $('#gridPopup-Pager-prev').removeClass('grid-previous-disabled').addClass('grid-previous');\r\n }\r\n}\r\n\r\n$.gridPopup.Callback = function (data, status, options, eventArgs) {\r\n if (data && data.length > 0) {\r\n var container = $('#rejectionContainer');\r\n if (data.isJSON()) {\r\n $(document).trigger('click');\r\n var errorData = jQuery.parseJSON(data);\r\n if (errorData && errorData.Errors) {\r\n $.advertiser.clearErrorSummary();\r\n $.advertiser.appendErrorSummary(errorData.Errors);\r\n }\r\n }\r\n else {\r\n container.html(data);\r\n }\r\n $('#rejectionContainer .closeimage').focus();\r\n }\r\n}\r\n\r\n$.gridPopup.clickEvent = function (e, callBack, containerID, title, showLoading) {\r\n var arrow;\r\n e = e || window.event; //// debugger;\r\n if (e) { arrow = e.target || e.srcElement; }\r\n if (arrow) {\r\n var container = $('#' + containerID + '');\r\n\r\n // create the container if it doesn't exist already\r\n if (container.length === 0) {\r\n $('body').append('<div id=\\'' + containerID + '\\' role=\\'tooltip\\' class=\\'qs-Container\\'></div>');\r\n container = $('#' + containerID + '');\r\n }\r\n\r\n if (container.length != 0) {\r\n if (showLoading) {\r\n if (!$.gridPopup.Cache['imgPanelHtml']) {\r\n var loadingText = $('#loadingText').val();\r\n var imgPanelHtml = getBlockerHtml(loadingText, false);\r\n $.gridPopup.Cache['imgPanelHtml'] = imgPanelHtml;\r\n }\r\n container.html($.gridPopup.Cache['imgPanelHtml']);\r\n }\r\n\r\n if ($.isFunction(callBack)) {\r\n callBack();\r\n }\r\n\r\n var jarrow = $(arrow);\r\n var left = jarrow.parent().offset().left + jarrow.parent().width();\r\n if((left + container.outerWidth()) > $(window).width()) {\r\n left = jarrow.parent().offset().left - jarrow.parent().width() - container.outerWidth();\r\n }\r\n var top = jarrow.parents('td').offset().top - 8;\r\n\r\n container.show();\r\n container.offset({ top: top, left: left});\r\n jarrow.removeClass('status_icon').addClass('status_icon_hover');\r\n $.gridPopup.Cache['Ids'].push(arrow);\r\n $(document).on('click.' + containerID, { 'targetLayerId': containerID, 'namespace': containerID, 'additionalIds': [arrow.id], 'callback': $.gridPopup.ResetImage }, $.advertiser.hideLayer);\r\n $('#' + containerID + ' .closeimage').focus();\r\n }\r\n }\r\n}\r\n\r\n// Client center block js.\r\n//TODO: [alekseyv] Rewrite to use CSS instead of Javascript for resizing\r\nfunction blocker(targetPanel, loadingText) {\r\n var blockPanel, imgPanel;\r\n var target = targetPanel;\r\n var coveredElement;\r\n var coveredBound;\r\n var resizeCheckInterval;\r\n\r\n function getElementBound(element) {\r\n var offset = element.offset()\r\n ? element.offset()\r\n : {\r\n left: 0,\r\n top: 0\r\n };\r\n return {\r\n left : offset.left + parseInt(element.css('padding-left')),\r\n top : offset.top,\r\n width : element.width(),\r\n height: element.height()\r\n };\r\n }\r\n\r\n function areNotEqual(bound1, bound2) {\r\n return bound1.left !== bound2.left ||\r\n bound1.top !== bound2.top ||\r\n bound1.width !== bound2.width ||\r\n bound1.height !== bound2.height;\r\n }\r\n\r\n\r\n this.show = function (hideImage, element) {\r\n if (element && coveredElement && coveredElement[0] === element[0]) {\r\n return;\r\n }\r\n\r\n coveredBound = undefined;\r\n clearInterval(resizeCheckInterval);\r\n\r\n if (element && !blockPanel.is(':visible')) {\r\n coveredElement = element;\r\n coveredBound = getElementBound(element);\r\n resizeCheckInterval = setInterval(function () {\r\n var newBound = getElementBound(element);\r\n if (areNotEqual(coveredBound, newBound)) {\r\n coveredBound = newBound;\r\n setSize();\r\n }\r\n }, 50);\r\n }\r\n\r\n blockPanel.css({ display: 'block', zIndex: 1010 });\r\n if (imgPanel) imgPanel.css({ display: hideImage ? 'none' : 'block' });\r\n setSize();\r\n $(window).on('resize scroll', null, setSize);\r\n };\r\n\r\n this.hide = function () {\r\n blockPanel.hide();\r\n if (imgPanel) {\r\n imgPanel.hide();\r\n }\r\n $(window).off('resize scroll', setSize);\r\n clearInterval(resizeCheckInterval);\r\n coveredBound = undefined;\r\n coveredElement = undefined;\r\n };\r\n\r\n this.updateText = function (text) {\r\n if (!target) {\r\n $('div.blocker-text', imgPanel).html(text);\r\n setSize();\r\n }\r\n };\r\n\r\n function create() {\r\n if (!target) {\r\n blockPanel = $('<div class=\\'blocker-panel\\'></div>');\r\n loadingText = loadingText || 'Loading...';\r\n var imgPanelHtml = getBlockerHtml(loadingText, true);\r\n imgPanel = $(imgPanelHtml);\r\n var body = $('body');\r\n body.append(blockPanel);\r\n body.append(imgPanel);\r\n }\r\n else {\r\n blockPanel = target;\r\n }\r\n }\r\n\r\n function setSize() {\r\n var w = $(window);\r\n var wHeight = $.browser && $.browser.msie ? w.height() : window.innerHeight;\r\n var wWidth = w.width();\r\n var left, top;\r\n\r\n if (coveredBound) {\r\n blockPanel.css(\r\n {\r\n height: Math.max(coveredBound.height, wHeight),\r\n width: coveredBound.width,\r\n left: coveredBound.left,\r\n top: coveredBound.top\r\n });\r\n left = ((wWidth - blockPanel.offset().left - imgPanel.width()) / 2) + blockPanel.offset().left + w.scrollLeft();\r\n top = ((wHeight - blockPanel.offset().top - imgPanel.height()) / 2) + blockPanel.offset().top + w.scrollTop();\r\n } else if (target) {\r\n blockPanel.css(\r\n {\r\n left: (wWidth - blockPanel.width()) / 2,\r\n top: (wHeight - blockPanel.height()) / 2\r\n });\r\n left = ((wWidth - blockPanel.offset().left - imgPanel.width()) / 2) + blockPanel.offset().left + w.scrollLeft();\r\n top = ((wHeight - blockPanel.offset().top - imgPanel.height()) / 2) + blockPanel.offset().top + w.scrollTop();\r\n } else {\r\n blockPanel.css(\r\n {\r\n height: wHeight,\r\n width: wWidth,\r\n left: w.scrollLeft(),\r\n top: w.scrollTop()\r\n });\r\n left = ((wWidth - blockPanel.offset().left - imgPanel.width()) / 2) + w.scrollLeft();\r\n top = ((wHeight - imgPanel.height()) / 2) + w.scrollTop();\r\n }\r\n\r\n if (imgPanel) {\r\n if (left > 0 && top > 0) {\r\n imgPanel.css({\r\n left: left,\r\n top: top\r\n });\r\n }\r\n }\r\n }\r\n\r\n create();\r\n}\r\n\r\nfunction getBlockerHtml(loadingText, fixedPosition) {\r\n var imgPanelHtml, positionStyle = '';\r\n if (fixedPosition === false) {\r\n positionStyle = ' style=\"position: relative;\" ';\r\n }\r\n\r\n imgPanelHtml = '<div aria-live=\\'polite\\' aria-relevant=\\'all\\' class=\\'blocker-indicator\\'' + positionStyle + '><div class=\\'blocker-image\\'></div><div class=\\'blocker-text\\'>' + loadingText + '</div></div>';\r\n return imgPanelHtml;\r\n}\r\n","/* eslint-disable */\r\n\r\n// copied from application/scripts/module/lib/countdown.js to be used in $.advertiser\r\n// Countdown counter that updates every second\r\nexport function Countdown(options) {\r\n let timer;\r\n const instance = this;\r\n let seconds = options.seconds || 10;\r\n const updateStatus = options.onUpdateStatus || function () {};\r\n const counterEnd = options.onCounterEnd || function () {};\r\n\r\n function decrementCounter() {\r\n updateStatus(seconds);\r\n if (seconds === 0) {\r\n counterEnd();\r\n instance.stop();\r\n }\r\n seconds--;\r\n }\r\n\r\n this.start = function () {\r\n clearInterval(timer);\r\n timer = 0;\r\n seconds = options.seconds;\r\n timer = setInterval(decrementCounter, 1000);\r\n };\r\n\r\n this.stop = function () {\r\n clearInterval(timer);\r\n };\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport $ from 'jquery';\r\nimport './advertiser.common.vnext';\r\nimport * as constants from '../global-init/constants';\r\nimport { Countdown } from './countdown';\r\n\r\nconst { handleAjaxAuthFailure } = constants;\r\n\r\nexport function overrideLegacyJQuery({\r\n aid,\r\n cid,\r\n uid,\r\n campaignId,\r\n adGroupId,\r\n}) {\r\n // some functions are modified, keep them.\r\n const originalGetUrlParameter = $.advertiser.getUrlParameter;\r\n $.advertiser.getUrlParameter = (name, url) => {\r\n if (url === window.location.href || !url) {\r\n switch (name) {\r\n case 'aid':\r\n return aid;\r\n case 'cid':\r\n return cid;\r\n case 'uid':\r\n return uid;\r\n case 'cmpid':\r\n return campaignId;\r\n case 'adgid':\r\n return adGroupId;\r\n default:\r\n break;\r\n }\r\n }\r\n return originalGetUrlParameter(name, url);\r\n };\r\n\r\n $.advertiser.handleAjaxAuthFailure = (data, requestUrl) => {\r\n if (!data) {\r\n return true;\r\n }\r\n\r\n if (!handleAjaxAuthFailure(data, requestUrl)) {\r\n return false;\r\n }\r\n\r\n // copy logic from old ui advertiser.common.js\r\n if (data.AntiForgeryError) {\r\n const counter = new Countdown({\r\n seconds: 10, // number of seconds to count down before refreshing the page\r\n onUpdateStatus(second) {\r\n if (data.AntiForgeryError.Message && second) {\r\n $.advertiser.clearErrorSummary();\r\n $.advertiser.appendErrorSummary(data.AntiForgeryError.Message.replace('{0}', second));\r\n }\r\n },\r\n onCounterEnd() {\r\n window.location.reload();\r\n },\r\n });\r\n\r\n counter.start();\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n $.advertiser.beforeTabAjax = () => {\r\n $.advertiser.clearErrorSummary();\r\n $.advertiser.showLoadingPanel();\r\n };\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nimport Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport 'jquery-migrate';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport BluebirdPromise from 'bluebird';\r\nimport kendo from '@bingads-webui/kendo/kendo.data';\r\n\r\nimport * as filterStroage from '@bingads-webui-campaign/filter-storage';\r\nimport schemaVnext from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\n\r\n// This import was earlier happening on experiment subpage menu.\r\n// After we delayed subpage menu, many features are broken. Importing it during init-legacy.\r\nimport 'bootstrap';\r\n\r\n/* eslint-disable import/no-unresolved,import/extensions */\r\nimport { getBudgetRangeOld } from '@bingads-webui-campaign-legacy/common-grid-config/budget/get-budget-range';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\nimport JSData from 'js-data';\r\nimport componentConfigImport from '@bingads-webui-component-legacy/config/index';\r\nimport componentStateImport from '@bingads-webui-component-legacy/state/index';\r\nimport * as prefetchResourcesImport from '@bingads-webui-campaign-legacy/resources-prefetch/campaignui-resources-prefetch';\r\nimport dateFilterImport from '@bingads-webui-static-legacy/app/state/dateFilter';\r\nimport ajaxsetupImport from '@bingads-webui-static-legacy/app/config/ajaxsetup';\r\n// Extensions need to load:\r\nimport '@bingads-webui-component-legacy/js-data-extension/index';\r\n/* eslint-enable */\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\nimport { themes } from '../themes-config';\r\nimport { initKendo } from './kendo-bootstrap';\r\nimport { initOSD } from './osd-bootstrap';\r\nimport { legacyAccessibilityHelper } from './legacy-accessibility-shim-layer';\r\nimport './shim/jquery-shim';\r\nimport { overrideLegacyJQuery } from './override-legacy-jquery';\r\nimport * as constants from '../global-init/constants';\r\n\r\nconst pageContext = PageContext;\r\nconst config = componentConfigImport;\r\nconst state = componentStateImport;\r\nconst { redirectToLogin } = constants;\r\nlet waterfallFilterStorage;\r\nconst overrideLegacyJQueryFromWebpack = overrideLegacyJQuery;\r\n// const getCldrLocaleFunc = getCldrLocale;\r\nconst initializeKendo = initKendo;\r\nconst initializeOSD = initOSD;\r\nconst shimLegacyAccessibility = legacyAccessibilityHelper;\r\nconst ajaxsetupWebpack = ajaxsetupImport;\r\n\r\nconst BingBaseUrl = 'https://bing.com/';\r\nconst MaxSelectedImagesPerAccountDefault = 25;\r\nconst MaxSelectedImagesPerAdGroupOrCampaignForV2 = 25;\r\nconst MaxSelectedImagesPerAdGroupOrCampaign = 25;\r\nconst dateFilterFromWebpack = dateFilterImport;\r\nconst prefetchResources = prefetchResourcesImport;\r\nconst { WaterfallFilterStorage, WaterfallFilterType, waterfallDateFilterProcessor } = filterStroage;\r\n\r\n// Feature code relies on bluebird promises\r\nJSData.DSUtils.Promise = BluebirdPromise;\r\n\r\nBackbone.$ = $;\r\n\r\n/* eslint-disable no-underscore-dangle */\r\nwindow.__requirejs_packages_temp_global__ = {};\r\nwindow.__requirejs_packages_temp_global__['@bingads-webui-static-legacy/summary/SummaryDataContextManager'] = dataContextManager;\r\n\r\nfunction initDateFilter({\r\n dateFilter,\r\n preferenceService,\r\n serverContext,\r\n}) {\r\n if (_.isUndefined(preferenceService.findByName('WebApp.CampaignUI.dateFilter'))) {\r\n dateFilter\r\n .getFilterPromise()\r\n .then((dateRange) => {\r\n const lcid = serverContext && serverContext.CurrentUser ? serverContext.CurrentUser.Locale : '';\r\n const dateRangeLegacy = _.extend({\r\n RangeStartDate: dateRange.formatedStart,\r\n RangeEndDate: dateRange.formatedEnd,\r\n RangeId: dateRange.grain,\r\n Rangelcid: lcid,\r\n }, {\r\n compared: dateRange.compared,\r\n });\r\n preferenceService.setAtUserLevel({ Name: 'WebApp.CampaignUI.dateFilter', Data: dateRangeLegacy });\r\n });\r\n }\r\n}\r\n\r\nconst initPrefetch = _.memoize((Permissions) => {\r\n const newUIResources = window.serviceWorkerPreFetchUrls && window.serviceWorkerPreFetchUrls.filter(r => r.indexOf('/resources/') > -1);\r\n\r\n prefetchResources.init(Permissions, newUIResources);\r\n}, () => null);\r\n\r\nko.utils.domNodeDisposal.cleanExternalData = () => {}; // eslint-disable-line no-param-reassign\r\n\r\najaxsetupWebpack.run();\r\n\r\nfunction getLimitValue(serverContext, scope, getLimitValueById) {\r\n const perCampaign = getLimitValueById(serverContext, scope, 28);\r\n const perAdGroup = getLimitValueById(serverContext, scope, 29);\r\n const perAccount = getLimitValueById(serverContext, scope, 93);\r\n return { perCampaign, perAdGroup, perAccount };\r\n}\r\n\r\nfunction loadSystemLimit(cid, aid, serverContext, scope) {\r\n const isLegal = (val) => {\r\n if (val === null || val === undefined) { return false; }\r\n return true;\r\n };\r\n\r\n PageReady.afterPageReady().then(() => {\r\n import('../global-init/load-limit-odata-localstorage').then((item) => {\r\n const limitValue = (cid && aid) ? getLimitValue(serverContext, scope, item.getLimitValueById) : {};\r\n const MaxSelectedImagesPerCampaign = isLegal(limitValue.perCampaign) ? limitValue.perCampaign : MaxSelectedImagesPerAdGroupOrCampaignForV2;\r\n const MaxSelectedImagesPerAdGroup = isLegal(limitValue.perAdGroup) ? limitValue.perAdGroup : MaxSelectedImagesPerAdGroupOrCampaignForV2;\r\n const MaxSelectedImagesPerAccount = isLegal(limitValue.perAccount) ? limitValue.perAccount : MaxSelectedImagesPerAccountDefault;\r\n\r\n const featureConfig = config.get('Feature');\r\n config.set({\r\n Feature: {\r\n AdExtension: {\r\n MaxSelectedImagesPerCampaign,\r\n MaxSelectedImagesPerAdGroup,\r\n MaxSelectedImagesPerAccount,\r\n ...featureConfig.AdExtension,\r\n },\r\n },\r\n });\r\n });\r\n });\r\n}\r\n\r\nexport function initLegacyComponents({\r\n serverContext,\r\n scope = {},\r\n permissions: Permissions,\r\n preferenceService,\r\n curTheme,\r\n}) {\r\n const {\r\n values: {\r\n cid,\r\n aid,\r\n campaignId,\r\n adGroupId,\r\n },\r\n } = scope;\r\n const {\r\n CurrentCustomer,\r\n UserPreferences: { AccountLevelPreferences, UserLevelPreferences },\r\n CurrentAccount,\r\n CurrentAccountInActive,\r\n CurrentLocale,\r\n CurrentUser,\r\n Token,\r\n ServicesEndpoints: { CampaignAPI, AdInsightAPI, MmcAPI },\r\n CurrentLocale: Culture,\r\n KeywordBidRange,\r\n KeywordCPVBidRange,\r\n KeywordCPMBidRange,\r\n ProductGroupBidRange,\r\n VideoViewsCPVBidRange,\r\n VideoViewsCPMBidRange,\r\n RecommendCPCBid,\r\n WindowsStoreAdsBidRange,\r\n Urls: {\r\n ClientCenterBaseUrl,\r\n },\r\n DecimalFormatter,\r\n PublicPath,\r\n WelcomeStatus,\r\n UtcOffsetHours,\r\n IsAADUser,\r\n } = serverContext;\r\n\r\n\r\n const uid = CurrentUser.Id;\r\n const TemplatesPathUrl = `${PublicPath}files/templates/`;\r\n const imagePath = `${PublicPath}files/images/`;\r\n\r\n const AudienceSettings = {\r\n RemarketingPolicyLink: 'http://go.microsoft.com/fwlink/?LinkId=690341',\r\n BulkAssociationMaxLimit: 1000000,\r\n BulkAudienceCriterionMaxLimit: 3000000,\r\n };\r\n const BingPlacesTaskItemType = 'BingPlacesImport';\r\n const GMBTaskItemType = 'GoogleMyBusinessImport';\r\n const {\r\n AdvertiserCustomerID,\r\n CurrencyCode,\r\n TimeZone,\r\n } = CurrentAccount;\r\n\r\n const BudgetRange = getBudgetRangeOld(CurrencyCode);\r\n\r\n loadSystemLimit(cid, aid, serverContext, scope);\r\n\r\n overrideLegacyJQueryFromWebpack({\r\n aid,\r\n cid,\r\n uid,\r\n campaignId,\r\n adGroupId,\r\n });\r\n\r\n config.set({\r\n CurrentAccount,\r\n CurrentCustomer,\r\n CurrentUser,\r\n IsNewUI: true,\r\n });\r\n\r\n config.set({\r\n Feature: {\r\n AdExtension: {\r\n AppExtensionIconBaseUrl: BingBaseUrl,\r\n MaxSelectedImagesPerAdGroupOrCampaign,\r\n MaxSelectedImagesPerAdGroupOrCampaignForV2,\r\n },\r\n },\r\n });\r\n\r\n config.set({\r\n // if a react component is wrapped with backbone view, we could not get the theme injected in App layer.\r\n // Here inject theme to config so that legacy code can easy get it and pass to underlying react component\r\n theme: themes[curTheme],\r\n });\r\n\r\n state.set({\r\n advertisercustomer_id: AdvertiserCustomerID,\r\n customer_id: cid,\r\n user_id: uid,\r\n account_id: aid,\r\n campaign_id: campaignId,\r\n adgroup_id: adGroupId,\r\n });\r\n\r\n state.on('http.auth.error', redirectToLogin);\r\n\r\n Object.assign(pageContext, {\r\n Token,\r\n IsAADUser,\r\n BudgetRange,\r\n KeywordBidRange,\r\n KeywordCPVBidRange,\r\n KeywordCPMBidRange,\r\n ProductGroupBidRange,\r\n VideoViewsCPVBidRange,\r\n VideoViewsCPMBidRange,\r\n RecommendCPCBid,\r\n Culture,\r\n CurrentAccount,\r\n CurrentAccountInActive,\r\n CurrentCustomer,\r\n CurrentLocale,\r\n CurrentUser,\r\n ClientInstrumentation: { isEnabled: true },\r\n Permissions,\r\n UserLevelPreferences: JSON.parse(UserLevelPreferences),\r\n AccountLevelPreferences: JSON.parse(AccountLevelPreferences),\r\n BingAdsWebApiUri: CampaignAPI,\r\n BingAdsAdInsightWebApiUri: AdInsightAPI,\r\n CultureDateTimeFormat: CurrentUser.CultureDateTimeFormat,\r\n CultureName: Culture,\r\n CultureDayNames: CurrentUser.CultureDateTimeFormat.DayNames,\r\n CultureDayNamesShort: CurrentUser.CultureDateTimeFormat.AbbreviatedDayNames,\r\n CultureDayNamesMin: CurrentUser.CultureDateTimeFormat.ShortestDayNames,\r\n CultureMonthNames: CurrentUser.CultureDateTimeFormat.MonthNames,\r\n CultureMonthNamesShort: CurrentUser.CultureDateTimeFormat.AbbreviatedMonthNames,\r\n CultureFirstDay: CurrentUser.CultureDateTimeFormat.FirstDayOfWeek,\r\n DecimalFormatter,\r\n AccountCurrencyCode: CurrencyCode,\r\n AudienceSettings,\r\n GMBTaskItemType,\r\n BingPlacesTaskItemType,\r\n TemplatesPathUrl,\r\n CCBaseUrl: ClientCenterBaseUrl,\r\n WelcomeStatus,\r\n CultureLcid: CurrentUser.LocaleID,\r\n AccountsOverviewPrefetchQuery: serverContext.AccountsOverviewPrefetchQuery,\r\n UtcOffsetHours,\r\n sessionId: serverContext.Omniture && serverContext.Omniture.SessionId,\r\n });\r\n\r\n initializeKendo(kendo, pageContext, DecimalFormatter);\r\n initializeOSD();\r\n\r\n const isLocal = () => {\r\n const hostname = document.location.hostname.toLowerCase();\r\n return hostname.indexOf('ads.microsoft.com') === -1 &&\r\n hostname.indexOf('ads-int.microsoft.com') === -1;\r\n };\r\n const odataPath = isLocal() ? 'Advertiser/V2' : 'Campaign/V2';\r\n\r\n // multiPart path is inside the request POST body so can't be proxied by UI server like path\r\n const batchPath = 'Advertiser/V2';\r\n config.set({\r\n 'odata.path': odataPath,\r\n 'odata.multipart_path': batchPath,\r\n 'odata.batch_url': `${CampaignAPI}${odataPath}/$batch`,\r\n 'odata.url': CampaignAPI,\r\n 'adinsight.odata.url': AdInsightAPI,\r\n 'adinsight.odata.batch_url': `${AdInsightAPI}AdInsight/V2/$batch`,\r\n BingAdsMmcWebApiUri: MmcAPI,\r\n BudgetRange,\r\n KeywordBidRange,\r\n KeywordCPVBidRange,\r\n KeywordCPMBidRange,\r\n KeywordPercentCpcBidRange: { CeilingValue: 100, FloorValue: 0 },\r\n KeywordCommissionRateRange: { CeilingValue: 100, FloorValue: 0 },\r\n ProductGroupBidRange,\r\n VideoViewsCPVBidRange,\r\n VideoViewsCPMBidRange,\r\n RecommendCPCBid,\r\n WindowsStoreAdsBidRange,\r\n AccountTimeZone: TimeZone,\r\n audienceSettings: AudienceSettings,\r\n CurrentAccount,\r\n CurrentAccountInActive,\r\n CurrentCustomer,\r\n CurrentUser,\r\n Culture,\r\n CultureDateTimeFormat: CurrentUser.CultureDateTimeFormat,\r\n CultureName: Culture,\r\n CultureDayNames: CurrentUser.CultureDateTimeFormat.DayNames,\r\n CultureDayNamesShort: CurrentUser.CultureDateTimeFormat.AbbreviatedDayNames,\r\n CultureDayNamesMin: CurrentUser.CultureDateTimeFormat.ShortestDayNames,\r\n CultureMonthNames: CurrentUser.CultureDateTimeFormat.MonthNames,\r\n CultureMonthNamesShort: CurrentUser.CultureDateTimeFormat.AbbreviatedMonthNames,\r\n CultureFirstDay: CurrentUser.CultureDateTimeFormat.FirstDayOfWeek,\r\n AccountLevelPreferences,\r\n UserLevelPreferences,\r\n culture: Culture,\r\n AccountCurrencyCode: CurrencyCode,\r\n Permissions,\r\n permissions: Permissions, // [ericwa]duplicated permissions in legacy UI and lots of places use it as config.get('permissions'), had better to unify it to config.get('Permissions')\r\n CultureLcid: CurrentUser.LocaleID,\r\n Token,\r\n 'odata.token': Token,\r\n 'globalization.number.decimalpoint': DecimalFormatter.decimalChar,\r\n 'globalization.number.groupPoint': DecimalFormatter.groupChar,\r\n 'globalization.number.groupSize': DecimalFormatter.groupSize,\r\n 'globalization.number.percentSymbol': DecimalFormatter.percentSymbol,\r\n 'globalization.number.percentGroupSize': DecimalFormatter.percentGroupSize,\r\n 'globalization.number.percentGroupSeparator': DecimalFormatter.percentGroupSeparator,\r\n 'globalization.number.percentPositivePattern': DecimalFormatter.percentPositivePattern,\r\n 'globalization.number.numberOfDigits': DecimalFormatter.numberOfDigits,\r\n 'globalization.number.percentDecimalDigits': DecimalFormatter.percentDecimalDigits,\r\n 'globalization.number.percentDecimalSeparator': DecimalFormatter.percentDecimalSeparator,\r\n TemplatesPathUrl,\r\n CCBaseUrl: ClientCenterBaseUrl,\r\n imagePath,\r\n BingAdsAdInsightWebApiUri: AdInsightAPI,\r\n Omniture: serverContext.Omniture,\r\n });\r\n\r\n if (CurrencyCode === 'JPY') {\r\n config.set({\r\n 'globalization.number.numberOfDigits': 0,\r\n });\r\n }\r\n\r\n schemaVnext.appendDynamicInfoToSchema(config, schemaVnext.schemaVnextObj);\r\n\r\n window.App = {\r\n state,\r\n on: () => (window.App),\r\n off: () => (window.App),\r\n once: () => (window.App),\r\n views: {\r\n alertCenter: {}, // alert center will be loaded after page ready.\r\n },\r\n router_new: {\r\n on: () => (window.App),\r\n },\r\n trigger: (route, args) => {\r\n /* eslint-disable */\r\n console.log(`LEGACY:Made a call to window.App.trigger with ${route} and ${JSON.stringify(args)}`);\r\n /* eslint-enable */\r\n },\r\n context: {\r\n getContextQueryUrlParams: () => {\r\n const urlParams = `cid=${cid}&aid=${aid}`;\r\n return urlParams;\r\n },\r\n },\r\n };\r\n\r\n initDateFilter({\r\n dateFilter: dateFilterFromWebpack,\r\n preferenceService,\r\n serverContext,\r\n });\r\n\r\n if (!state.attributes.$daterange) {\r\n Object.defineProperty(state.attributes, '$daterange', {\r\n get: () => {\r\n if (_.isUndefined(waterfallFilterStorage)) {\r\n waterfallFilterStorage = new WaterfallFilterStorage({\r\n preferenceService,\r\n });\r\n }\r\n const dateRange = waterfallDateFilterProcessor(\r\n waterfallFilterStorage.getFilters([WaterfallFilterType.DateFilter]),\r\n serverContext\r\n );\r\n return _.extend({\r\n formatedEnd: dateRange.RangeEndDate,\r\n formatedStart: dateRange.RangeStartDate,\r\n }, dateRange);\r\n },\r\n });\r\n }\r\n\r\n shimLegacyAccessibility();\r\n\r\n initPrefetch(Permissions);\r\n}\r\n\r\nexport function initLegacyComponentsWithServerContext(serverContext, preferenceService, curTheme) {\r\n return initLegacyComponents({\r\n serverContext,\r\n scope: {\r\n values: {\r\n uid: serverContext.CurrentUser.Id,\r\n cid: serverContext.CurrentCustomer.Id,\r\n aid: serverContext.CurrentAccount.Id,\r\n },\r\n },\r\n permissions: {\r\n ...serverContext.Permissions,\r\n dynamic: serverContext.DynamicPermissions || {},\r\n },\r\n preferenceService,\r\n curTheme,\r\n });\r\n}\r\n","export const initKendo = (kendo, pageContext, DecimalFormatter) => {\r\n const dtFormat = pageContext.CultureDateTimeFormat;\r\n const am = dtFormat.AMDesignator || 'AM';\r\n const pm = dtFormat.PMDesignator || 'PM';\r\n\r\n const groupChar = DecimalFormatter && DecimalFormatter.groupChar ? DecimalFormatter.groupChar : ',';\r\n const decimalChar = DecimalFormatter && DecimalFormatter.decimalChar ? DecimalFormatter.decimalChar : '.';\r\n const groupSize = DecimalFormatter && DecimalFormatter.groupSize ? parseInt(DecimalFormatter.groupSize, 10) : 3;\r\n const numberOfDigits = DecimalFormatter && DecimalFormatter.numberOfDigits ? parseInt(DecimalFormatter.numberOfDigits, 10) : 2;\r\n const currency = pageContext.AccountCurrencyCode ? pageContext.AccountCurrencyCode : 'USD';\r\n\r\n // eslint-disable-next-line no-param-reassign\r\n kendo.cultures[pageContext.Culture] = {\r\n name: pageContext.CultureName,\r\n numberFormat: {\r\n pattern: ['-n'], // numberFormat has only negative pattern unline the percent and currency, negative pattern: one of (n)|-n|- n|n-|n -\r\n decimals: numberOfDigits, // number of decimal places\r\n ',': groupChar, // string that separates the number groups (1,000,000)\r\n '.': decimalChar, // string that separates a number from the fractional point\r\n groupSize: [groupSize], // the length of each number group\r\n percent: {// formatting rules for percent number\r\n pattern: ['-n %', 'n %'], // [negative pattern, positive pattern]; negativePattern: one of -n %|-n%|-%n|%-n|%n-|n-%|n%-|-% n|n %-|% n-|% -n|n- %;positivePattern: one of n %|n%|%n|% n\r\n decimals: numberOfDigits, // number of decimal places\r\n ',': groupChar, // string that separates the number groups (1,000,000 %)\r\n '.': decimalChar, // string that separates a number from the fractional point\r\n groupSize: [groupSize], // the length of each number group\r\n symbol: '%', // percent symbol\r\n },\r\n currency: {\r\n pattern: [`(${currency} n)`, `${currency} n`], // [negative pattern, positive pattern];negativePattern: one of \"($n)|-$n|$-n|$n-|(n$)|-n$|n-$|n$-|-n $|-$ n|n $-|$ n-|$ -n|n- $|($ n)|(n $)\";positivePattern: one of \"$n|n$|$ n|n $\"\r\n decimals: numberOfDigits, // number of decimal places\r\n ',': groupChar, // string that separates the number groups (1,000,000 $)\r\n '.': decimalChar, // string that separates a number from the fractional point\r\n groupSize: [groupSize], // the length of each number group\r\n symbol: currency, // currency symbol\r\n },\r\n },\r\n calendars: {\r\n standard: {\r\n days: {\r\n names: pageContext.CultureDayNames, // full day names\r\n namesAbbr: pageContext.CultureDayNamesShort, // abbreviated day names\r\n namesShort: pageContext.CultureDayNamesMin, // shortest day names\r\n },\r\n months: {\r\n names: pageContext.CultureMonthNames, // full month names\r\n namesAbbr: pageContext.CultureMonthNamesShort, // abbreviated month names\r\n },\r\n AM: [am, am.toLowerCase(), am.toUpperCase()], // [\"AM\", \"am\", \"AM\"], // AM and PM designators\r\n PM: [pm, pm.toLowerCase(), pm.toUpperCase()], // [\"PM\", \"pm\", \"PM\"], // [standard,lowercase,uppercase]\r\n patterns: { // set of predefined date and time patterns used by the culture.\r\n d: dtFormat.ShortDatePattern,\r\n D: dtFormat.LongDatePattern,\r\n F: dtFormat.FullDateTimePattern,\r\n g: `${dtFormat.ShortDatePattern} ${dtFormat.ShortTimePattern}`,\r\n G: `${dtFormat.ShortDatePattern} ${dtFormat.LongTimePattern}`,\r\n m: dtFormat.MonthDayPattern,\r\n M: dtFormat.MonthDayPattern,\r\n s: dtFormat.SortableDateTimePattern,\r\n t: dtFormat.ShortTimePattern,\r\n T: dtFormat.LongTimePattern,\r\n u: dtFormat.UniversalSortableDateTimePattern,\r\n y: dtFormat.YearMonthPattern,\r\n Y: dtFormat.YearMonthPattern,\r\n },\r\n firstDay: pageContext.CultureFirstDay, // the first day of the week (0 = Sunday, 1 = Monday, etc)\r\n },\r\n },\r\n };\r\n\r\n kendo.culture(pageContext.Culture);\r\n};\r\n","import $ from 'jquery';\r\n\r\nexport function initOSD() {\r\n window.osd = window.osd || {};\r\n window.osd.ui = window.osd.ui || {};\r\n window.osd.ui.data = window.osd.ui.data || {};\r\n\r\n // init the window.osd.ui.data.Event\r\n (function ($) { // eslint-disable-line\r\n const { inArray } = $;\r\n\r\n const event = function () {\r\n this.subscribers = [];\r\n };\r\n\r\n event.prototype = {\r\n subscribe(callback, timeout) {\r\n // eslint-disable-next-line no-param-reassign\r\n timeout = isNaN(timeout) ? 0 : (0 || timeout);\r\n if (timeout <= 0) {\r\n this.subscribers.push(callback);\r\n } else {\r\n this.subscribers.push(() => { setTimeout(callback, timeout); });\r\n }\r\n return true;\r\n },\r\n unsubscribe(callback) {\r\n const i = inArray(callback, this.subscribers);\r\n if (i >= 0) {\r\n this.subscribers.splice(i, 1);\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n unsubscribeAll() {\r\n this.subscribers = [];\r\n },\r\n publish() {\r\n const copy = this.subscribers.slice(0);\r\n let i = copy.length;\r\n while (i) {\r\n // eslint-disable-next-line\r\n try { copy[i].apply(this, arguments); } catch (err) { }\r\n i -= 1;\r\n }\r\n },\r\n };\r\n\r\n this.Event = event;\r\n }).call(window.osd.ui.data, $);\r\n}\r\n","\r\n/* eslint-disable */\r\n/*!\r\n * Note: While Microsoft is not the author of this file, Microsoft grants you\r\n * the right to use this file for the sole purpose of interacting with the\r\n * https://adcenter.microsoft.com/ using your web browser, subject to the terms\r\n * of Microsoft http://explore.live.com/microsoft-service-agreement?ref=none.\r\n * Microsoft reserves all other rights not expressly granted whether by implication,\r\n * estoppel or otherwise. The notices below are provided for informational purposes\r\n * only and are not the license terms under which Microsoft distributes this file.\r\n *\r\n *\r\n * jQuery Templates Plugin\r\n * http://github.com/jquery/jquery-tmpl\r\n *\r\n * Copyright Software Freedom Conservancy, Inc.\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n(function( jQuery, undefined ){\r\n\tvar oldManip = jQuery.fn.domManip, tmplItmAtt = \"_tmplitem\", htmlExpr = /^[^<]*(<[\\w\\W]+>)[^>]*$|\\{\\{\\! /,\r\n\t\tnewTmplItems = {}, wrappedItems = {}, appendToTmplItems, topTmplItem = { key: 0, data: {} }, itemKey = 0, cloneIndex = 0, stack = [];\r\n\r\n\tfunction newTmplItem( options, parentItem, fn, data ) {\r\n\t\t// Returns a template item data structure for a new rendered instance of a template (a 'template item').\r\n\t\t// The content field is a hierarchical array of strings and nested items (to be\r\n\t\t// removed and replaced by nodes field of dom elements, once inserted in DOM).\r\n\t\tvar newItem = {\r\n\t\t\tdata: data || (parentItem ? parentItem.data : {}),\r\n\t\t\t_wrap: parentItem ? parentItem._wrap : null,\r\n\t\t\ttmpl: null,\r\n\t\t\tparent: parentItem || null,\r\n\t\t\tnodes: [],\r\n\t\t\tcalls: tiCalls,\r\n\t\t\tnest: tiNest,\r\n\t\t\twrap: tiWrap,\r\n\t\t\thtml: tiHtml,\r\n\t\t\tupdate: tiUpdate\r\n\t\t};\r\n\t\tif ( options ) {\r\n\t\t\tjQuery.extend( newItem, options, { nodes: [], parent: parentItem } );\r\n\t\t}\r\n\t\tif ( fn ) {\r\n\t\t\t// Build the hierarchical content to be used during insertion into DOM\r\n\t\t\tnewItem.tmpl = fn;\r\n\t\t\tnewItem._ctnt = newItem._ctnt || newItem.tmpl( jQuery, newItem );\r\n\t\t\tnewItem.key = ++itemKey;\r\n\t\t\t// Keep track of new template item, until it is stored as jQuery Data on DOM element\r\n\t\t\t(stack.length ? wrappedItems : newTmplItems)[itemKey] = newItem;\r\n\t\t}\r\n\t\treturn newItem;\r\n\t}\r\n\r\n\t// Override appendTo etc., in order to provide support for targeting multiple elements. (This code would disappear if integrated in jquery core).\r\n\tjQuery.each({\r\n\t\tappendTo: \"append\",\r\n\t\tprependTo: \"prepend\",\r\n\t\tinsertBefore: \"before\",\r\n\t\tinsertAfter: \"after\",\r\n\t\treplaceAll: \"replaceWith\"\r\n\t}, function( name, original ) {\r\n\t\tjQuery.fn[ name ] = function( selector ) {\r\n\t\t\tvar ret = [], insert = jQuery( selector ), elems, i, l, tmplItems,\r\n\t\t\t\tparent = this.length === 1 && this[0].parentNode;\r\n\r\n\t\t\tappendToTmplItems = newTmplItems || {};\r\n\t\t\tif ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {\r\n\t\t\t\tinsert[ original ]( this[0] );\r\n\t\t\t\tret = this;\r\n\t\t\t} else {\r\n\t\t\t\tfor ( i = 0, l = insert.length; i < l; i++ ) {\r\n\t\t\t\t\tcloneIndex = i;\r\n\t\t\t\t\telems = (i > 0 ? this.clone(true) : this).get();\r\n\t\t\t\t\tjQuery.fn[ original ].apply( jQuery(insert[i]), elems );\r\n\t\t\t\t\tret = ret.concat( elems );\r\n\t\t\t\t}\r\n\t\t\t\tcloneIndex = 0;\r\n\t\t\t\tret = this.pushStack( ret, name, insert.selector );\r\n\t\t\t}\r\n\t\t\ttmplItems = appendToTmplItems;\r\n\t\t\tappendToTmplItems = null;\r\n\t\t\tjQuery.tmpl.complete( tmplItems );\r\n\t\t\treturn ret;\r\n\t\t};\r\n\t});\r\n\r\n\tjQuery.fn.extend({\r\n\t\t// Use first wrapped element as template markup.\r\n\t\t// Return wrapped set of template items, obtained by rendering template against data.\r\n\t\ttmpl: function( data, options, parentItem ) {\r\n\t\t\treturn jQuery.tmpl( this[0], data, options, parentItem );\r\n\t\t},\r\n\r\n\t\t// Find which rendered template item the first wrapped DOM element belongs to\r\n\t\ttmplItem: function() {\r\n\t\t\treturn jQuery.tmplItem( this[0] );\r\n\t\t},\r\n\r\n\t\t// Consider the first wrapped element as a template declaration, and get the compiled template or store it as a named template.\r\n\t\ttemplate: function( name ) {\r\n\t\t\treturn jQuery.template( name, this[0] );\r\n\t\t},\r\n\r\n\t\tdomManip: function( args, table, callback, options ) {\r\n\t\t\t// This appears to be a bug in the appendTo, etc. implementation\r\n\t\t\t// it should be doing .call() instead of .apply(). See #6227\r\n\t\t\tif ( args[0] && args[0].nodeType ) {\r\n\t\t\t\tvar dmArgs = jQuery.makeArray( arguments ), argsLength = args.length, i = 0, tmplItem;\r\n\t\t\t\twhile ( i < argsLength && !(tmplItem = jQuery.data( args[i++], \"tmplItem\" ))) {}\r\n\t\t\t\tif ( argsLength > 1 ) {\r\n\t\t\t\t\tdmArgs[0] = [jQuery.makeArray( args )];\r\n\t\t\t\t}\r\n\t\t\t\tif ( tmplItem && cloneIndex ) {\r\n\t\t\t\t\tdmArgs[2] = function( fragClone ) {\r\n\t\t\t\t\t\t// Handler called by oldManip when rendered template has been inserted into DOM.\r\n\t\t\t\t\t\tjQuery.tmpl.afterManip( this, fragClone, callback );\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\toldManip.apply( this, dmArgs );\r\n\t\t\t} else {\r\n\t\t\t\toldManip.apply( this, arguments );\r\n\t\t\t}\r\n\t\t\tcloneIndex = 0;\r\n\t\t\tif ( !appendToTmplItems ) {\r\n\t\t\t\tjQuery.tmpl.complete( newTmplItems );\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t});\r\n\r\n\tjQuery.extend({\r\n\t\t// Return wrapped set of template items, obtained by rendering template against data.\r\n\t\ttmpl: function( tmpl, data, options, parentItem ) {\r\n\t\t\tvar ret, topLevel = !parentItem;\r\n\t\t\tif ( topLevel ) {\r\n\t\t\t\t// This is a top-level tmpl call (not from a nested template using {{tmpl}})\r\n\t\t\t\tparentItem = topTmplItem;\r\n\t\t\t\ttmpl = jQuery.template[tmpl] || jQuery.template( null, tmpl );\r\n\t\t\t\twrappedItems = {}; // Any wrapped items will be rebuilt, since this is top level\r\n\t\t\t} else if ( !tmpl ) {\r\n\t\t\t\t// The template item is already associated with DOM - this is a refresh.\r\n\t\t\t\t// Re-evaluate rendered template for the parentItem\r\n\t\t\t\ttmpl = parentItem.tmpl;\r\n\t\t\t\tnewTmplItems[parentItem.key] = parentItem;\r\n\t\t\t\tparentItem.nodes = [];\r\n\t\t\t\tif ( parentItem.wrapped ) {\r\n\t\t\t\t\tupdateWrapped( parentItem, parentItem.wrapped );\r\n\t\t\t\t}\r\n\t\t\t\t// Rebuild, without creating a new template item\r\n\t\t\t\treturn jQuery( build( parentItem, null, parentItem.tmpl( jQuery, parentItem ) ));\r\n\t\t\t}\r\n\t\t\tif ( !tmpl ) {\r\n\t\t\t\treturn []; // Could throw...\r\n\t\t\t}\r\n\t\t\tif ( typeof data === \"function\" ) {\r\n\t\t\t\tdata = data.call( parentItem || {} );\r\n\t\t\t}\r\n\t\t\tif ( options && options.wrapped ) {\r\n\t\t\t\tupdateWrapped( options, options.wrapped );\r\n\t\t\t}\r\n\t\t\tret = jQuery.isArray( data ) ? \r\n\t\t\t\tjQuery.map( data, function( dataItem ) {\r\n\t\t\t\t\treturn dataItem ? newTmplItem( options, parentItem, tmpl, dataItem ) : null;\r\n\t\t\t\t}) :\r\n\t\t\t\t[ newTmplItem( options, parentItem, tmpl, data ) ];\r\n\t\t\treturn topLevel ? jQuery( build( parentItem, null, ret ) ) : ret;\r\n\t\t},\r\n\r\n\t\t// Return rendered template item for an element.\r\n\t\ttmplItem: function( elem ) {\r\n\t\t\tvar tmplItem;\r\n\t\t\tif ( elem instanceof jQuery ) {\r\n\t\t\t\telem = elem[0];\r\n\t\t\t}\r\n\t\t\twhile ( elem && elem.nodeType === 1 && !(tmplItem = jQuery.data( elem, \"tmplItem\" )) && (elem = elem.parentNode) ) {}\r\n\t\t\treturn tmplItem || topTmplItem;\r\n\t\t},\r\n\r\n\t\t// Set:\r\n\t\t// Use $.template( name, tmpl ) to cache a named template,\r\n\t\t// where tmpl is a template string, a script element or a jQuery instance wrapping a script element, etc.\r\n\t\t// Use $( \"selector\" ).template( name ) to provide access by name to a script block template declaration.\r\n\r\n\t\t// Get:\r\n\t\t// Use $.template( name ) to access a cached template.\r\n\t\t// Also $( selectorToScriptBlock ).template(), or $.template( null, templateString )\r\n\t\t// will return the compiled template, without adding a name reference.\r\n\t\t// If templateString includes at least one HTML tag, $.template( templateString ) is equivalent\r\n\t\t// to $.template( null, templateString )\r\n\t\ttemplate: function( name, tmpl ) {\r\n\t\t\tif (tmpl) {\r\n\t\t\t\t// Compile template and associate with name\r\n\t\t\t\tif ( typeof tmpl === \"string\" ) {\r\n\t\t\t\t\t// This is an HTML string being passed directly in.\r\n\t\t\t\t\ttmpl = buildTmplFn( tmpl )\r\n\t\t\t\t} else if ( tmpl instanceof jQuery ) {\r\n\t\t\t\t\ttmpl = tmpl[0] || {};\r\n\t\t\t\t}\r\n\t\t\t\tif ( tmpl.nodeType ) {\r\n\t\t\t\t\t// If this is a template block, use cached copy, or generate tmpl function and cache.\r\n\t\t\t\t\ttmpl = jQuery.data( tmpl, \"tmpl\" ) || jQuery.data( tmpl, \"tmpl\", buildTmplFn( tmpl.innerHTML ));\r\n\t\t\t\t}\r\n\t\t\t\treturn typeof name === \"string\" ? (jQuery.template[name] = tmpl) : tmpl;\r\n\t\t\t}\r\n\t\t\t// Return named compiled template\r\n\t\t\treturn name ? (typeof name !== \"string\" ? jQuery.template( null, name ): \r\n\t\t\t\t(jQuery.template[name] || \r\n\t\t\t\t\t// If not in map, treat as a selector. (If integrated with core, use quickExpr.exec) \r\n\t\t\t\t\tjQuery.template( null, htmlExpr.test( name ) ? name : jQuery( name )))) : null; \r\n\t\t},\r\n\r\n\t\tencode: function( text ) {\r\n\t\t\t// Do HTML encoding replacing < > & and ' and \" by corresponding entities.\r\n\t\t\treturn (\"\" + text).split(\"<\").join(\"<\").split(\">\").join(\">\").split('\"').join(\""\").split(\"'\").join(\"'\");\r\n\t\t}\r\n\t});\r\n\r\n\tjQuery.extend( jQuery.tmpl, {\r\n\t\ttag: {\r\n\t\t\t\"tmpl\": {\r\n\t\t\t\t_default: { $2: \"null\" },\r\n\t\t\t\topen: \"if($notnull_1){_=_.concat($item.nest($1,$2));}\"\r\n\t\t\t\t// tmpl target parameter can be of type function, so use $1, not $1a (so not auto detection of functions)\r\n\t\t\t\t// This means that {{tmpl foo}} treats foo as a template (which IS a function). \r\n\t\t\t\t// Explicit parens can be used if foo is a function that returns a template: {{tmpl foo()}}.\r\n\t\t\t},\r\n\t\t\t\"wrap\": {\r\n\t\t\t\t_default: { $2: \"null\" },\r\n\t\t\t\topen: \"$item.calls(_,$1,$2);_=[];\",\r\n\t\t\t\tclose: \"call=$item.calls();_=call._.concat($item.wrap(call,_));\"\r\n\t\t\t},\r\n\t\t\t\"each\": {\r\n\t\t\t\t_default: { $2: \"$index, $value\" },\r\n\t\t\t\topen: \"if($notnull_1){$.each($1a,function($2){with(this){\",\r\n\t\t\t\tclose: \"}});}\"\r\n\t\t\t},\r\n\t\t\t\"if\": {\r\n\t\t\t\topen: \"if(($notnull_1) && $1a){\",\r\n\t\t\t\tclose: \"}\"\r\n\t\t\t},\r\n\t\t\t\"else\": {\r\n\t\t\t\t_default: { $1: \"true\" },\r\n\t\t\t\topen: \"}else if(($notnull_1) && $1a){\"\r\n\t\t\t},\r\n\t\t\t\"html\": {\r\n\t\t\t\t// Unecoded expression evaluation. \r\n\t\t\t\topen: \"if($notnull_1){_.push($1a);}\"\r\n\t\t\t},\r\n\t\t\t\"=\": {\r\n\t\t\t\t// Encoded expression evaluation. Abbreviated form is ${}.\r\n\t\t\t\t_default: { $1: \"$data\" },\r\n\t\t\t\topen: \"if($notnull_1){_.push($.encode($1a));}\"\r\n\t\t\t},\r\n\t\t\t\"!\": {\r\n\t\t\t\t// Comment tag. Skipped by parser\r\n\t\t\t\topen: \"\"\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// This stub can be overridden, e.g. in jquery.tmplPlus for providing rendered events\r\n\t\tcomplete: function( items ) {\r\n\t\t\tnewTmplItems = {};\r\n\t\t},\r\n\r\n\t\t// Call this from code which overrides domManip, or equivalent\r\n\t\t// Manage cloning/storing template items etc.\r\n\t\tafterManip: function afterManip( elem, fragClone, callback ) {\r\n\t\t\t// Provides cloned fragment ready for fixup prior to and after insertion into DOM\r\n\t\t\tvar content = fragClone.nodeType === 11 ?\r\n\t\t\t\tjQuery.makeArray(fragClone.childNodes) :\r\n\t\t\t\tfragClone.nodeType === 1 ? [fragClone] : [];\r\n\r\n\t\t\t// Return fragment to original caller (e.g. append) for DOM insertion\r\n\t\t\tcallback.call( elem, fragClone );\r\n\r\n\t\t\t// Fragment has been inserted:- Add inserted nodes to tmplItem data structure. Replace inserted element annotations by jQuery.data.\r\n\t\t\tstoreTmplItems( content );\r\n\t\t\tcloneIndex++;\r\n\t\t}\r\n\t});\r\n\r\n\t//========================== Private helper functions, used by code above ==========================\r\n\r\n\tfunction build( tmplItem, nested, content ) {\r\n\t\t// Convert hierarchical content into flat string array \r\n\t\t// and finally return array of fragments ready for DOM insertion\r\n\t\tvar frag, ret = content ? jQuery.map( content, function( item ) {\r\n\t\t\treturn (typeof item === \"string\") ? \r\n\t\t\t\t// Insert template item annotations, to be converted to jQuery.data( \"tmplItem\" ) when elems are inserted into DOM.\r\n\t\t\t\t(tmplItem.key ? item.replace( /(<\\w+)(?=[\\s>])(?![^>]*_tmplitem)([^>]*)/g, \"$1 \" + tmplItmAtt + \"=\\\"\" + tmplItem.key + \"\\\" $2\" ) : item) :\r\n\t\t\t\t// This is a child template item. Build nested template.\r\n\t\t\t\tbuild( item, tmplItem, item._ctnt );\r\n\t\t}) : \r\n\t\t// If content is not defined, insert tmplItem directly. Not a template item. May be a string, or a string array, e.g. from {{html $item.html()}}. \r\n\t\ttmplItem;\r\n\t\tif ( nested ) {\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\t// top-level template\r\n\t\tret = ret.join(\"\");\r\n\r\n\t\t// Support templates which have initial or final text nodes, or consist only of text\r\n\t\t// Also support HTML entities within the HTML markup.\r\n\t\tret.replace( /^\\s*([^<\\s][^<]*)?(<[\\w\\W]+>)([^>]*[^>\\s])?\\s*$/, function( all, before, middle, after) {\r\n\t\t\tfrag = jQuery( middle ).get();\r\n\r\n\t\t\tstoreTmplItems( frag );\r\n\t\t\tif ( before ) {\r\n\t\t\t\tfrag = unencode( before ).concat(frag);\r\n\t\t\t}\r\n\t\t\tif ( after ) {\r\n\t\t\t\tfrag = frag.concat(unencode( after ));\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn frag ? frag : unencode( ret );\r\n\t}\r\n\r\n\tfunction unencode( text ) {\r\n\t\t// Use createElement, since createTextNode will not render HTML entities correctly\r\n\t\tvar el = document.createElement( \"div\" );\r\n\t\tel.innerHTML = text;\r\n\t\treturn jQuery.makeArray(el.childNodes);\r\n\t}\r\n\r\n\t// Generate a reusable function that will serve to render a template against data\r\n\tfunction buildTmplFn( markup ) {\r\n\t\treturn new Function(\"jQuery\",\"$item\",\r\n\t\t\t\"var $=jQuery,call,_=[],$data=$item.data;\" +\r\n\r\n\t\t\t// Introduce the data as local variables using with(){}\r\n\t\t\t\"with($data){_.push('\" +\r\n\r\n\t\t\t// Convert the template into pure JavaScript\r\n\t\t\tjQuery.trim(markup)\r\n\t\t\t\t.replace( /([\\\\'])/g, \"\\\\$1\" )\r\n\t\t\t\t.replace( /[\\r\\t\\n]/g, \" \" )\r\n\t\t\t\t.replace( /\\$\\{([^\\}]*)\\}/g, \"{{= $1}}\" )\r\n\t\t\t\t.replace( /\\{\\{(\\/?)(\\w+|.)(?:\\(((?:[^\\}]|\\}(?!\\}))*?)?\\))?(?:\\s+(.*?)?)?(\\(((?:[^\\}]|\\}(?!\\}))*?)\\))?\\s*\\}\\}/g,\r\n\t\t\t\tfunction( all, slash, type, fnargs, target, parens, args ) {\r\n\t\t\t\t\tvar tag = jQuery.tmpl.tag[ type ], def, expr, exprAutoFnDetect;\r\n\t\t\t\t\tif ( !tag ) {\r\n\t\t\t\t\t\tthrow \"Template command not found: \" + type;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdef = tag._default || [];\r\n\t\t\t\t\tif ( parens && !/\\w$/.test(target)) {\r\n\t\t\t\t\t\ttarget += parens;\r\n\t\t\t\t\t\tparens = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( target ) {\r\n\t\t\t\t\t\ttarget = unescape( target ); \r\n\t\t\t\t\t\targs = args ? (\",\" + unescape( args ) + \")\") : (parens ? \")\" : \"\");\r\n\t\t\t\t\t\t// Support for target being things like a.toLowerCase();\r\n\t\t\t\t\t\t// In that case don't call with template item as 'this' pointer. Just evaluate...\r\n\t\t\t\t\t\texpr = parens ? (target.indexOf(\".\") > -1 ? target + parens : (\"(\" + target + \").call($item\" + args)) : target;\r\n\t\t\t\t\t\texprAutoFnDetect = parens ? expr : \"(typeof(\" + target + \")==='function'?(\" + target + \").call($item):(\" + target + \"))\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\texprAutoFnDetect = expr = def.$1 || \"null\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfnargs = unescape( fnargs );\r\n\t\t\t\t\treturn \"');\" + \r\n\t\t\t\t\t\ttag[ slash ? \"close\" : \"open\" ]\r\n\t\t\t\t\t\t\t.split( \"$notnull_1\" ).join( target ? \"typeof(\" + target + \")!=='undefined' && (\" + target + \")!=null\" : \"true\" )\r\n\t\t\t\t\t\t\t.split( \"$1a\" ).join( exprAutoFnDetect )\r\n\t\t\t\t\t\t\t.split( \"$1\" ).join( expr )\r\n\t\t\t\t\t\t\t.split( \"$2\" ).join( fnargs ?\r\n\t\t\t\t\t\t\t\tfnargs.replace( /\\s*([^\\(]+)\\s*(\\((.*?)\\))?/g, function( all, name, parens, params ) {\r\n\t\t\t\t\t\t\t\t\tparams = params ? (\",\" + params + \")\") : (parens ? \")\" : \"\");\r\n\t\t\t\t\t\t\t\t\treturn params ? (\"(\" + name + \").call($item\" + params) : all;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t: (def.$2||\"\")\r\n\t\t\t\t\t\t\t) +\r\n\t\t\t\t\t\t\"_.push('\";\r\n\t\t\t\t}) +\r\n\t\t\t\"');}return _;\"\r\n\t\t);\r\n\t}\r\n\tfunction updateWrapped( options, wrapped ) {\r\n\t\t// Build the wrapped content. \r\n\t\toptions._wrap = build( options, true, \r\n\t\t\t// Suport imperative scenario in which options.wrapped can be set to a selector or an HTML string.\r\n\t\t\tjQuery.isArray( wrapped ) ? wrapped : [htmlExpr.test( wrapped ) ? wrapped : jQuery( wrapped ).html()]\r\n\t\t).join(\"\");\r\n\t}\r\n\r\n\tfunction unescape( args ) {\r\n\t\treturn args ? args.replace( /\\\\'/g, \"'\").replace(/\\\\\\\\/g, \"\\\\\" ) : null;\r\n\t}\r\n\tfunction outerHtml( elem ) {\r\n\t\tvar div = document.createElement(\"div\");\r\n\t\tdiv.appendChild( elem.cloneNode(true) );\r\n\t\treturn div.innerHTML;\r\n\t}\r\n\r\n\t// Store template items in jQuery.data(), ensuring a unique tmplItem data data structure for each rendered template instance.\r\n\tfunction storeTmplItems( content ) {\r\n\t\tvar keySuffix = \"_\" + cloneIndex, elem, elems, newClonedItems = {}, i, l, m;\r\n\t\tfor ( i = 0, l = content.length; i < l; i++ ) {\r\n\t\t\tif ( (elem = content[i]).nodeType !== 1 ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\telems = elem.getElementsByTagName(\"*\");\r\n\t\t\tfor ( m = elems.length - 1; m >= 0; m-- ) {\r\n\t\t\t\tprocessItemKey( elems[m] );\r\n\t\t\t}\r\n\t\t\tprocessItemKey( elem );\r\n\t\t}\r\n\t\tfunction processItemKey( el ) {\r\n\t\t\tvar pntKey, pntNode = el, pntItem, tmplItem, key;\r\n\t\t\t// Ensure that each rendered template inserted into the DOM has its own template item,\r\n\t\t\tif ( (key = el.getAttribute( tmplItmAtt ))) {\r\n\t\t\t\twhile ( pntNode.parentNode && (pntNode = pntNode.parentNode).nodeType === 1 && !(pntKey = pntNode.getAttribute( tmplItmAtt ))) { }\r\n\t\t\t\tif ( pntKey !== key ) {\r\n\t\t\t\t\t// The next ancestor with a _tmplitem expando is on a different key than this one.\r\n\t\t\t\t\t// So this is a top-level element within this template item\r\n\t\t\t\t\t// Set pntNode to the key of the parentNode, or to 0 if pntNode.parentNode is null, or pntNode is a fragment.\r\n\t\t\t\t\tpntNode = pntNode.parentNode ? (pntNode.nodeType === 11 ? 0 : (pntNode.getAttribute( tmplItmAtt ) || 0)) : 0;\r\n\t\t\t\t\tif ( !(tmplItem = newTmplItems[key]) ) {\r\n\t\t\t\t\t\t// The item is for wrapped content, and was copied from the temporary parent wrappedItem.\r\n\t\t\t\t\t\ttmplItem = wrappedItems[key];\r\n\t\t\t\t\t\ttmplItem = newTmplItem( tmplItem, newTmplItems[pntNode]||wrappedItems[pntNode], null, true );\r\n\t\t\t\t\t\ttmplItem.key = ++itemKey;\r\n\t\t\t\t\t\tnewTmplItems[itemKey] = tmplItem;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( cloneIndex ) {\r\n\t\t\t\t\t\tcloneTmplItem( key );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tel.removeAttribute( tmplItmAtt );\r\n\t\t\t} else if ( cloneIndex && (tmplItem = jQuery.data( el, \"tmplItem\" )) ) {\r\n\t\t\t\t// This was a rendered element, cloned during append or appendTo etc.\r\n\t\t\t\t// TmplItem stored in jQuery data has already been cloned in cloneCopyEvent. We must replace it with a fresh cloned tmplItem.\r\n\t\t\t\tcloneTmplItem( tmplItem.key );\r\n\t\t\t\tnewTmplItems[tmplItem.key] = tmplItem;\r\n\t\t\t\tpntNode = jQuery.data( el.parentNode, \"tmplItem\" );\r\n\t\t\t\tpntNode = pntNode ? pntNode.key : 0;\r\n\t\t\t}\r\n\t\t\tif ( tmplItem ) {\r\n\t\t\t\tpntItem = tmplItem;\r\n\t\t\t\t// Find the template item of the parent element. \r\n\t\t\t\t// (Using !=, not !==, since pntItem.key is number, and pntNode may be a string)\r\n\t\t\t\twhile ( pntItem && pntItem.key != pntNode ) { \r\n\t\t\t\t\t// Add this element as a top-level node for this rendered template item, as well as for any\r\n\t\t\t\t\t// ancestor items between this item and the item of its parent element\r\n\t\t\t\t\tpntItem.nodes.push( el );\r\n\t\t\t\t\tpntItem = pntItem.parent;\r\n\t\t\t\t}\r\n\t\t\t\t// Delete content built during rendering - reduce API surface area and memory use, and avoid exposing of stale data after rendering...\r\n\t\t\t\tdelete tmplItem._ctnt;\r\n\t\t\t\tdelete tmplItem._wrap;\r\n\t\t\t\t// Store template item as jQuery data on the element\r\n\t\t\t\tjQuery.data( el, \"tmplItem\", tmplItem );\r\n\t\t\t}\r\n\t\t\tfunction cloneTmplItem( key ) {\r\n\t\t\t\tkey = key + keySuffix;\r\n\t\t\t\ttmplItem = newClonedItems[key] = \r\n\t\t\t\t\t(newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent, null, true ));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//---- Helper functions for template item ----\r\n\r\n\tfunction tiCalls( content, tmpl, data, options ) {\r\n\t\tif ( !content ) {\r\n\t\t\treturn stack.pop();\r\n\t\t}\r\n\t\tstack.push({ _: content, tmpl: tmpl, item:this, data: data, options: options });\r\n\t}\r\n\r\n\tfunction tiNest( tmpl, data, options ) {\r\n\t\t// nested template, using {{tmpl}} tag\r\n\t\treturn jQuery.tmpl( jQuery.template( tmpl ), data, options, this );\r\n\t}\r\n\r\n\tfunction tiWrap( call, wrapped ) {\r\n\t\t// nested template, using {{wrap}} tag\r\n\t\tvar options = call.options || {};\r\n\t\toptions.wrapped = wrapped;\r\n\t\t// Apply the template, which may incorporate wrapped content, \r\n\t\treturn jQuery.tmpl( jQuery.template( call.tmpl ), call.data, options, call.item );\r\n\t}\r\n\r\n\tfunction tiHtml( filter, textOnly ) {\r\n\t\tvar wrapped = this._wrap;\r\n\t\treturn jQuery.map(\r\n\t\t\tjQuery( jQuery.isArray( wrapped ) ? wrapped.join(\"\") : wrapped ).filter( filter || \"*\" ),\r\n\t\t\tfunction(e) {\r\n\t\t\t\treturn textOnly ?\r\n\t\t\t\t\te.innerText || e.textContent :\r\n\t\t\t\t\te.outerHTML || outerHtml(e);\r\n\t\t\t});\r\n\t}\r\n\r\n\tfunction tiUpdate() {\r\n\t\tvar coll = this.nodes;\r\n\t\tjQuery.tmpl( null, null, null, this).insertBefore( coll[0] );\r\n\t\tjQuery( coll ).remove();\r\n\t}\r\n})( jQuery );\r\n","/* eslint-disable */\r\nwindow.__publicpath__ = window.serverContext && window.serverContext.PublicPath ?\r\n window.serverContext.PublicPath : window.location.origin + '/campaign/vnext/';\r\n__webpack_public_path__ = window.__publicpath__;","/* eslint-disable max-len */\r\nimport { getDefaultExport, importAfterPreLoad, lazyLoad } from '../components/utils';\r\n\r\nconst SDKCampaignCreationPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"sdk-campaign-creation-page\" */'../feature-bootstrap/sdk-campaign-creation').then(getDefaultExport), true);\r\n\r\nconst SDKCampaignOverviewPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"sdk-campaign-overview-page\" */'../feature-bootstrap/sdk-campaign-overview').then(getDefaultExport), true);\r\n\r\nconst SDKAssetGroupSettingsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"sdk-asset-group-settings-page\" */'../feature-bootstrap/sdk-asset-group-settings').then(getDefaultExport), true);\r\n\r\nconst SDKTargetSettingsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"sdk-target-settings-page\" */'../feature-bootstrap/sdk-target-settings').then(getDefaultExport), true);\r\n\r\nconst SDKBudgetSettingsPage = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"sdk-budget-settings-page\" */'../feature-bootstrap/sdk-budget-settings').then(getDefaultExport), true);\r\n\r\nconst SDKAppWrapper = () => importAfterPreLoad(null, () => import(/* webpackChunkName: \"sdk-app-wrapper-loader\" */'./sdk-app-wrapper-loader').then(getDefaultExport), true);\r\n\r\nexport const LazySDKAppWrapper = lazyLoad(SDKAppWrapper);\r\n\r\nexport const routes = {\r\n SDKCampaignCreationPage,\r\n SDKCampaignOverviewPage,\r\n SDKAssetGroupSettingsPage,\r\n SDKTargetSettingsPage,\r\n SDKBudgetSettingsPage,\r\n};\r\n\r\n","import '../public-path';\r\n\r\nimport(/* webpackChunkName: \"sdk-bootstrap\" */'@bingads-webui-campaign-react/sdk-bootstrap').then(({ sdkBootstrap }) => {\r\n sdkBootstrap(window.serverContext, () => import(/* webpackMode: 'eager' */'../bootstrap'));\r\n});\r\n","import {\r\n ThemeFluentComponentSettings,\r\n ThemeFluent,\r\n DarkThemeComponentSettings,\r\n DarkTheme\r\n} from '@bingads-webui-theme-2018/theme-fluent';\r\n\r\nexport const themes = {\r\n light: {\r\n components: ThemeFluentComponentSettings,\r\n core: ThemeFluent,\r\n },\r\n dark: {\r\n components: DarkThemeComponentSettings,\r\n core: DarkTheme,\r\n },\r\n};\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport { AccountsMode } from '@bingads-webui-campaign/overview-cards-common';\r\nimport { CampaignType as AccountLevelCampaignType } from '@bingads-webui-campaign/campaign-ui-common';\r\n\r\nconst CampaignLevelCampaignType = _.mapObject(AccountLevelCampaignType, (val, key) => key);\r\n\r\nconst sizeOptions = {\r\n standard: {\r\n small: {\r\n width: 12,\r\n supportedWidth: [12],\r\n },\r\n medium: {\r\n width: 6,\r\n supportedWidth: [6],\r\n },\r\n large: {\r\n width: 4,\r\n supportedWidth: [4],\r\n },\r\n },\r\n withLargerOption: {\r\n small: {\r\n width: 12,\r\n supportedWidth: [12],\r\n },\r\n medium: {\r\n width: 6,\r\n supportedWidth: [6, 12],\r\n },\r\n large: {\r\n width: 8,\r\n supportedWidth: [4, 8],\r\n },\r\n },\r\n};\r\n\r\nconst menuItems = {\r\n standard: [\r\n 'Close',\r\n 'Add',\r\n 'Divider',\r\n 'Help',\r\n ],\r\n withSizeOption: [\r\n 'SmallSize',\r\n 'LargeSize',\r\n 'Divider',\r\n 'Close',\r\n 'Add',\r\n 'Divider',\r\n 'Help',\r\n ],\r\n};\r\n\r\nexport function getCardsConfig({\r\n permissions,\r\n edm,\r\n accountsMode,\r\n}) {\r\n function getCardOptions({\r\n navigationLevel,\r\n campaignType,\r\n isKeyword = false,\r\n isSearchTerm = false,\r\n }) {\r\n let edmLevel;\r\n let entitySet;\r\n let targetNagivationLevel = navigationLevel;\r\n let extraFilter;\r\n\r\n switch (navigationLevel) {\r\n case 'account':\r\n edmLevel = edm.currentAccount;\r\n entitySet = edmLevel.Campaigns;\r\n break;\r\n case 'campaign':\r\n // For PMax and App campaign, call campaigns on account level with filter by Campaign Id to include BI data for AssetGroups, instead of AdGroups\r\n if (campaignType === CampaignLevelCampaignType.PerformanceMax || campaignType === CampaignLevelCampaignType.App) {\r\n targetNagivationLevel = 'account';\r\n edmLevel = edm.currentAccount;\r\n entitySet = edmLevel.Campaigns;\r\n extraFilter = [{\r\n filter: {\r\n key: 'CampaignId',\r\n value: {\r\n query: {\r\n Id: _.result(edm.currentCampaign, ['navigation', 'key']),\r\n },\r\n },\r\n },\r\n }];\r\n } else {\r\n edmLevel = edm.currentCampaign;\r\n entitySet = edmLevel.AdGroups;\r\n }\r\n break;\r\n case 'customer':\r\n edmLevel = edm.currentCustomer;\r\n entitySet = edmLevel.Accounts;\r\n break;\r\n default:\r\n edmLevel = undefined;\r\n }\r\n\r\n if (isKeyword) {\r\n return {\r\n constructOptions: {\r\n entitySet: edmLevel.Keywords,\r\n navigationLevel,\r\n },\r\n };\r\n }\r\n\r\n if (isSearchTerm) {\r\n return {\r\n constructOptions: {\r\n entitySet: edmLevel.SearchTerms,\r\n navigationLevel,\r\n },\r\n };\r\n }\r\n\r\n return {\r\n constructOptions: {\r\n entitySet,\r\n navigationLevel: targetNagivationLevel,\r\n extraFilter,\r\n },\r\n };\r\n }\r\n\r\n function getTopCampaignsCardOptions() {\r\n return getCardOptions({\r\n navigationLevel: 'account',\r\n });\r\n }\r\n\r\n function getTopAccountsCardOptions() {\r\n return getCardOptions({\r\n navigationLevel: 'customer',\r\n });\r\n }\r\n\r\n function getTopAdGroupCardOptions() {\r\n return getCardOptions({\r\n navigationLevel: 'campaign',\r\n });\r\n }\r\n\r\n function getTopAccountKeywordCardOptions() {\r\n return getCardOptions({\r\n navigationLevel: 'account',\r\n isKeyword: true,\r\n });\r\n }\r\n\r\n function getTopCampaignKeywordCardOptions() {\r\n return getCardOptions({\r\n navigationLevel: 'campaign',\r\n isKeyword: true,\r\n });\r\n }\r\n\r\n function getTopAccountSearchTermsCardOptions() {\r\n return getCardOptions({\r\n navigationLevel: 'account',\r\n isSearchTerm: true,\r\n });\r\n }\r\n\r\n function getTopCampaignSearchTermsCardOptions() {\r\n return getCardOptions({\r\n navigationLevel: 'campaign',\r\n isSearchTerm: true,\r\n });\r\n }\r\n\r\n const recommendationsTileTitleKey = 'Dashboard_Recommendations_Card_Title';\r\n\r\n const cardsConfig = [\r\n {\r\n // Performance card\r\n typeId: 'CardType-Performance',\r\n hideForCampaignType: permissions.dynamic && permissions.dynamic.PerformanceMaxCampaignsPhaseTwoOverviewPerf ? [] : [CampaignLevelCampaignType.PerformanceMax],\r\n name: 'PerformanceCard',\r\n cssKey: 'performance',\r\n descKey: 'Dashboard_Performance_Card_Desc',\r\n titleKey: 'Dashboard_Performance_Card_Title',\r\n addCardTitleKey: 'Dashboard_Performance_Card_Title',\r\n contentType: 'PerformanceCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.withLargerOption,\r\n preDefinedMenuItems: menuItems.withSizeOption,\r\n enabledForSmart: true,\r\n },\r\n {\r\n // Account Tips Card\r\n validFor: ['account'],\r\n typeId: 'CardType-Tips',\r\n hideForCampaignType: [AccountLevelCampaignType.Hotel, AccountLevelCampaignType.App],\r\n name: 'TipsCard',\r\n cssKey: 'tips-and-opportunities',\r\n descKey: 'Dashboard_Tips_And_Opportunities_Desc',\r\n titleKey: recommendationsTileTitleKey,\r\n addCardTitleKey: permissions.IsBAARecommendationsEnabled ? recommendationsTileTitleKey : 'Dashboard_Tips_And_Opportunities_Title',\r\n contentType: 'TipsCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // MCC Tips Card\r\n validFor: ['customer'],\r\n typeId: 'CardType-Tips',\r\n name: 'TipsCard',\r\n cssKey: 'tips-and-opportunities',\r\n descKey: 'Dashboard_Tips_And_Opportunities_Desc',\r\n titleKey: recommendationsTileTitleKey,\r\n addCardTitleKey: recommendationsTileTitleKey,\r\n contentType: 'TipsCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Campaign Tips Card\r\n validFor: ['campaign'],\r\n typeId: 'CardType-Tips',\r\n hideForCampaignType: [CampaignLevelCampaignType.Hotel, CampaignLevelCampaignType.App],\r\n name: 'TipsCard',\r\n cssKey: 'tips-and-opportunities',\r\n descKey: 'Dashboard_Tips_And_Opportunities_Desc',\r\n titleKey: 'Dashboard_Recommendations_Card_Title',\r\n addCardTitleKey: permissions.IsBAARecommendationsEnabled ? recommendationsTileTitleKey : 'Dashboard_Tips_And_Opportunities_Title',\r\n contentType: 'TipsCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Top accounts card\r\n validFor: ['customer'], // Only show this card for customer level\r\n typeId: 'CardType-TopAccounts',\r\n name: 'TopAccountsCard',\r\n cssKey: 'accounts',\r\n descKey: 'Dashboard_TopAccounts_Card_Desc',\r\n titleKey: 'Dashboard_TopAccounts_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopAccounts_Card_Title',\r\n contentType: 'GridCard',\r\n constructOptions: getTopAccountsCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n enabledForSmart: true,\r\n },\r\n {\r\n // Top campaigns card\r\n validFor: ['account'], // Only show this card for account level\r\n typeId: 'CardType-TopCampaigns',\r\n hideForCampaignType: [AccountLevelCampaignType.App],\r\n name: 'TopCampaignsCard',\r\n cssKey: 'campaigns',\r\n descKey: 'Dashboard_TopCampaigns_Card_Desc',\r\n titleKey: 'Dashboard_TopCampaigns_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopCampaigns_Card_Title',\r\n contentType: 'GridCard',\r\n constructOptions: getTopCampaignsCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Top ad groups card\r\n validFor: ['campaign'], // Only show this card for campaign level\r\n typeId: 'CardType-TopAdGroup',\r\n hideForCampaignType: [CampaignLevelCampaignType.PerformanceMax, CampaignLevelCampaignType.App],\r\n name: 'TopAdGroupCard',\r\n cssKey: 'campaigns',\r\n descKey: 'Dashboard_TopAdGroup_Card_Desc',\r\n titleKey: 'Dashboard_TopAdGroup_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopAdGroup_Card_Title',\r\n contentType: 'GridCard',\r\n constructOptions: getTopAdGroupCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Top change accounts card\r\n validFor: ['customer'],\r\n typeId: 'CardType-TopChanges-Account',\r\n name: 'TopChangesCard',\r\n cssKey: 'top-changes',\r\n descKey: 'Dashboard_TopChanges_Account_Card_Desc',\r\n titleKey: 'Dashboard_TopChanges_Account_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopChanges_Card_Title',\r\n contentType: 'TopChangesCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n enabledForSmart: true,\r\n },\r\n {\r\n // Top change campaigns card\r\n validFor: ['account'],\r\n typeId: 'CardType-TopChanges-Campaign',\r\n hideForCampaignType: [AccountLevelCampaignType.App],\r\n name: 'TopChangesCard',\r\n cssKey: 'top-changes',\r\n descKey: 'Dashboard_TopChanges_Card_Desc',\r\n titleKey: 'Dashboard_TopChanges_Campaign_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopChanges_Card_Title',\r\n contentType: 'TopChangesCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Conversion Tracking card\r\n validFor: ['account'],\r\n typeId: 'CardType-Conversion-Tracking',\r\n hideForCampaignType: [AccountLevelCampaignType.App],\r\n name: 'ConversionTrackingCard',\r\n cssKey: 'conversion',\r\n descKey: _TL_('Conversions track website actions to measure campaign performance'),\r\n titleKey: _TL_('Conversion Tracking'),\r\n addCardTitleKey: _TL_('Conversion Tracking'),\r\n contentType: 'ConversionTrackingCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n useNewI18n: true,\r\n },\r\n {\r\n // Top change ad groups card\r\n validFor: ['campaign'],\r\n typeId: 'CardType-TopChanges-AdGroup',\r\n hideForCampaignType: [CampaignLevelCampaignType.PerformanceMax, CampaignLevelCampaignType.App],\r\n name: 'TopChangesCard',\r\n cssKey: 'top-changes',\r\n descKey: 'Dashboard_TopChanges_Card_Desc',\r\n titleKey: 'Dashboard_TopChanges_AdGroup_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopChanges_Card_Title',\r\n contentType: 'TopChangesCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Top account keyword card\r\n validFor: ['account'], // Only show this card for account level\r\n typeId: 'CardType-TopAccountKeyword',\r\n hideForCampaignType: [AccountLevelCampaignType.Hotel, AccountLevelCampaignType.PerformanceMax, AccountLevelCampaignType.App, AccountLevelCampaignType.Audience],\r\n name: 'TopKeywordCard',\r\n cssKey: 'keywords',\r\n descKey: 'Dashboard_TopKeywords_Card_Desc',\r\n titleKey: 'Dashboard_TopKeywords_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopKeywords_Card_Title',\r\n contentType: 'GridCard',\r\n constructOptions: getTopAccountKeywordCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Top campaign keyword card\r\n validFor: ['campaign'], // Only show this card for campaign level\r\n typeId: 'CardType-TopCampaignKeyword',\r\n hideForCampaignType: [CampaignLevelCampaignType.Hotel, CampaignLevelCampaignType.PerformanceMax, CampaignLevelCampaignType.App, CampaignLevelCampaignType.Audience],\r\n name: 'TopKeywordCard',\r\n cssKey: 'keywords',\r\n descKey: 'Dashboard_TopKeywords_Card_Desc',\r\n titleKey: 'Dashboard_TopKeywords_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopKeywords_Card_Title',\r\n contentType: 'GridCard',\r\n constructOptions: getTopCampaignKeywordCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Top account search terms card\r\n validFor: ['account'], // Only show this card for account level\r\n typeId: 'CardType-TopAccountSearchTerms',\r\n hideForCampaignType: [AccountLevelCampaignType.Hotel, AccountLevelCampaignType.PerformanceMax, AccountLevelCampaignType.App, AccountLevelCampaignType.Audience],\r\n name: 'TopSearchTermsCard',\r\n cssKey: 'search-terms',\r\n descKey: 'Dashboard_TopSearchTerms_Card_Desc',\r\n titleKey: 'Dashboard_TopSearchTerms_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopSearchTerms_Card_Title',\r\n contentType: 'GridCard',\r\n constructOptions: getTopAccountSearchTermsCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Top campaign search terms card\r\n validFor: ['campaign'], // Only show this card for campaign level\r\n typeId: 'CardType-TopCampaignSearchTerms',\r\n hideForCampaignType: [CampaignLevelCampaignType.Hotel, CampaignLevelCampaignType.PerformanceMax, CampaignLevelCampaignType.App, CampaignLevelCampaignType.Audience],\r\n name: 'TopSearchTermsCard',\r\n cssKey: 'search-terms',\r\n descKey: 'Dashboard_TopSearchTerms_Card_Desc',\r\n titleKey: 'Dashboard_TopSearchTerms_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopSearchTerms_Card_Title',\r\n contentType: 'GridCard',\r\n constructOptions: getTopCampaignSearchTermsCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Device card\r\n typeId: 'CardType-Device',\r\n hideForCampaignType: [AccountLevelCampaignType.PerformanceMax, CampaignLevelCampaignType.PerformanceMax, AccountLevelCampaignType.App, CampaignLevelCampaignType.App],\r\n name: 'DeviceCard',\r\n cssKey: 'device',\r\n descKey: 'Dashboard_Device_Card_Desc',\r\n titleKey: 'Dashboard_Device_Card_Title',\r\n addCardTitleKey: 'Dashboard_Device_Card_Title',\r\n contentType: 'DeviceCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n }, {\r\n // Top locations card\r\n validFor: ['campaign'], // Only show this card for campaign level\r\n typeId: 'CardType-TopLocations',\r\n hideForCampaignType: [CampaignLevelCampaignType.App],\r\n name: 'TopLocationsCard',\r\n cssKey: 'top-locations',\r\n descKey: 'Dashboard_TopLocations_Card_Desc',\r\n titleKey: 'Dashboard_TopLocations_Card_Title',\r\n addCardTitleKey: 'Dashboard_TopLocations_Card_Title',\r\n contentType: 'TopLocationsCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: true,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n {\r\n // Competition card\r\n validFor: ['account', 'campaign'], // Only show this card for campaign level\r\n hideForCampaignType: [CampaignLevelCampaignType.Hotel, AccountLevelCampaignType.Hotel, CampaignLevelCampaignType.PerformanceMax, AccountLevelCampaignType.PerformanceMax, CampaignLevelCampaignType.App, AccountLevelCampaignType.App],\r\n typeId: 'CardType-Competition',\r\n name: 'CompetitionCard',\r\n cssKey: 'competition',\r\n descKey: 'Dashboard_Competition_Card_Desc',\r\n titleKey: 'Dashboard_Competition_Card_Title',\r\n addCardTitleKey: 'Dashboard_Competition_Card_Title',\r\n contentType: 'CompetitionCard',\r\n constructOptions: getCardOptions,\r\n defaultIn: true,\r\n enabled: permissions.IsBAACompetitionEnabled && !permissions.IsHideAuctionInsightsCompetitionUI,\r\n sizeOption: sizeOptions.standard,\r\n preDefinedMenuItems: menuItems.standard,\r\n },\r\n ];\r\n\r\n cardsConfig.isValidForNavigationLevel = (cardConfig, navigationLevel, campaignType) =>\r\n ((_.isFunction(cardConfig.enabled) && cardConfig.enabled()) ||\r\n (_.isBoolean(cardConfig.enabled) && cardConfig.enabled)) &&\r\n (!cardConfig.validFor || _.contains(cardConfig.validFor, navigationLevel)) &&\r\n (accountsMode !== AccountsMode.Smart || cardConfig.enabledForSmart) &&\r\n (!cardConfig.hideForCampaignType || !_.contains(cardConfig.hideForCampaignType, campaignType));\r\n\r\n cardsConfig.getContentConstructor = ({\r\n contentType,\r\n instrumentation,\r\n constants,\r\n state,\r\n pageContext,\r\n config,\r\n edmCampaign,\r\n onMounted,\r\n }) => new Promise((resolve) => {\r\n // get leagcy router shim from app leagcy bootstrap.\r\n import(/* webpackMode: 'eager' */'./cards-imports/common-imports').then(({ modules }) => {\r\n const deps = {\r\n i18n: modules.i18n,\r\n onMounted,\r\n eventDispatcher: modules.eventDispatcher.default || modules.eventDispatcher,\r\n state,\r\n jsdata: modules.jsdata,\r\n config,\r\n instrumentation,\r\n constants,\r\n pageContext,\r\n legacyRouter: modules.legacyRouter,\r\n };\r\n switch (contentType) {\r\n case 'PerformanceCard':\r\n import(/* webpackMode: 'eager' */'./cards-imports/performance-card-imports').then(({ innerModules }) => resolve({\r\n contentConstructor: innerModules.contentConstructor.default,\r\n deps: _.extend({}, deps, {\r\n metricFormatter: innerModules.metricFormatter,\r\n s$i18n: innerModules.s$i18n,\r\n dateUtil: innerModules.dateUtil,\r\n }),\r\n }));\r\n break;\r\n case 'GridCard':\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/overview-grid-card').then(({ GridCard }) => {\r\n import(/* webpackMode: 'eager' */'./cards-imports/grid-card-imports').then(({ innerModules }) => resolve({\r\n contentConstructor: GridCard,\r\n deps: _.extend({}, deps, {\r\n metricFormatter: innerModules.metricFormatter,\r\n s$i18n: innerModules.s$i18n,\r\n bingadsGridColumn: innerModules.bingadsGridColumn,\r\n scopeService: innerModules.scopeService,\r\n edmCampaign,\r\n appendLearnMoreLink: innerModules.appendLearnMoreLink,\r\n i18nErrors: innerModules.i18nErrors,\r\n createEditableFilterStorage: innerModules.createEditableFilterStorage,\r\n campaignType: innerModules.campaignType,\r\n dateUtil: innerModules.dateUtil,\r\n }),\r\n }));\r\n });\r\n break;\r\n case 'DeviceCard':\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/overview-device-card').then(({ DeviceCard }) => {\r\n import(/* webpackMode: 'eager' */'./cards-imports/device-card-imports').then(({ innerModules }) => resolve({\r\n contentConstructor: DeviceCard,\r\n deps: _.extend({}, deps, {\r\n dateUtil: innerModules.dateUtil,\r\n metricFormatter: innerModules.metricFormatter,\r\n s$i18n: innerModules.s$i18n,\r\n }),\r\n }));\r\n });\r\n break;\r\n case 'TipsCard':\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/dashboard-cards/tips-card/index').then(contentConstructor => resolve({\r\n contentConstructor: contentConstructor.default,\r\n deps,\r\n }));\r\n break;\r\n case 'TopChangesCard':\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/overview-top-changes-card').then(({ TopChangesCard }) => {\r\n import(/* webpackMode: 'eager' */'./cards-imports/device-card-imports').then(({ innerModules }) => resolve({\r\n contentConstructor: TopChangesCard,\r\n deps: _.extend({}, deps, {\r\n metricFormatter: innerModules.metricFormatter,\r\n dateUtil: innerModules.dateUtil,\r\n s$i18n: innerModules.s$i18n,\r\n }),\r\n }));\r\n });\r\n break;\r\n case 'ConversionTrackingCard':\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/overview-conversion-tracking-card').then(({ ConversionTrackingCard }) => {\r\n import(/* webpackMode: 'eager' */'./cards-imports/device-card-imports').then(({ innerModules }) => resolve({\r\n contentConstructor: ConversionTrackingCard,\r\n deps: _.extend({}, deps, {\r\n metricFormatter: innerModules.metricFormatter,\r\n dateUtil: innerModules.dateUtil,\r\n s$i18n: innerModules.s$i18n,\r\n }),\r\n }));\r\n });\r\n break;\r\n case 'TopLocationsCard':\r\n import(/* webpackMode: 'eager' */'./cards-imports/top-locations-card-import').then(({ innerModules }) => resolve({\r\n contentConstructor: innerModules.contentConstructor.default,\r\n deps: _.extend({}, deps, {\r\n metricFormatter: innerModules.metricFormatter,\r\n dateUtil: innerModules.dateUtil,\r\n s$i18n: innerModules.s$i18n,\r\n }),\r\n }));\r\n break;\r\n case 'WelcomeTipsCard':\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/dashboard-cards/welcome-tips-card/index').then(contentConstructor => resolve({\r\n contentConstructor: contentConstructor.default,\r\n deps,\r\n }));\r\n break;\r\n case 'CompetitionCard':\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/dashboard-cards/competition-card/index-new').then(contentConstructor => resolve({\r\n contentConstructor: contentConstructor.default,\r\n deps,\r\n }));\r\n break;\r\n default:\r\n resolve();\r\n instrumentation.logMessage([constants.LOGCATEGORY.ERROR], constants.LOGLEVEL.INFO, 'dashboard/dashboard-view', `Unknown card content: ${contentType}`);\r\n }\r\n });\r\n });\r\n return cardsConfig;\r\n}\r\n","/* eslint-disable import/extensions */\r\n\r\n/* eslint-disable import/no-unresolved */\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\n// eslint-disable-next-line\r\nimport _bingads_webui_component_legacy_legacy_router_index from '@bingads-webui-component-legacy/legacy-router/index';\r\n// eslint-disable-next-line\r\nconst { legacyRouter } = _bingads_webui_component_legacy_legacy_router_index;\r\n\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/dashboard-cards');\r\n\r\nexport const modules = {\r\n i18n,\r\n eventDispatcher: {\r\n default: eventDispatcher,\r\n },\r\n jsdata,\r\n legacyRouter,\r\n};\r\n","/* eslint-disable import/extensions */\r\n\r\n/* eslint-disable import/no-unresolved */\r\nimport * as metricFormatter from '@bingads-webui-campaign-legacy/performance-metric-formatter/index';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\n\r\n\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport const innerModules = {\r\n metricFormatter,\r\n s$i18n,\r\n dateUtil,\r\n};\r\n","/* eslint-disable import/extensions */\r\n\r\n/* eslint-disable import/no-unresolved */\r\nimport * as metricFormatter from '@bingads-webui-campaign-legacy/performance-metric-formatter/index';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport scopeService from '@bingads-webui-static-legacy/scope-service';\r\nimport { appendLearnMoreLink } from '@bingads-webui-component-legacy/help/index';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport { createEditableFilterStorage } from '@bingads-webui-campaign-legacy/common-grid-config/filter/filter-storage-factory';\r\nimport campaignType from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/campaignType';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\n\r\n\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport const innerModules = {\r\n metricFormatter,\r\n s$i18n,\r\n bingadsGridColumn,\r\n scopeService,\r\n appendLearnMoreLink,\r\n i18nErrors,\r\n createEditableFilterStorage,\r\n campaignType,\r\n dateUtil,\r\n};\r\n\r\n","/* eslint-disable import/extensions */\r\n\r\n/* eslint-disable import/no-unresolved */\r\nimport contentConstructor from '@bingads-webui-campaign-legacy/dashboard-cards/performance-card/index';\r\nimport * as metricFormatter from '@bingads-webui-campaign-legacy/performance-metric-formatter/index';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\n\r\n\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport const innerModules = {\r\n contentConstructor: {\r\n default: contentConstructor,\r\n },\r\n metricFormatter,\r\n s$i18n,\r\n dateUtil,\r\n};\r\n","/* eslint-disable import/extensions */\r\n\r\n/* eslint-disable import/no-unresolved */\r\nimport contentConstructor from '@bingads-webui-campaign-legacy/dashboard-cards/top-locations-card/index';\r\nimport * as metricFormatter from '@bingads-webui-campaign-legacy/performance-metric-formatter/index';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\n\r\n\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport const innerModules = {\r\n contentConstructor: {\r\n default: contentConstructor,\r\n },\r\n metricFormatter,\r\n s$i18n,\r\n dateUtil,\r\n};\r\n","import Promise from 'bluebird';\r\n\r\nexport const welcomeCardConfig = [\r\n {\r\n // Welcome Tips Card\r\n validFor: ['account'],\r\n typeId: 'CardType-WelcomeTips',\r\n name: 'WelcomeTipsCard',\r\n cssKey: 'tips-and-opportunities',\r\n titleKey: 'Dashboard_Tips_Card_Title',\r\n contentType: 'WelcomeTipsCard',\r\n sizeOption: {\r\n small: {\r\n width: 12,\r\n supportedWidth: [12],\r\n },\r\n medium: {\r\n width: 6,\r\n supportedWidth: [6],\r\n },\r\n },\r\n },\r\n];\r\n\r\nwelcomeCardConfig.getContentConstructor = ({\r\n contentType,\r\n constants,\r\n instrumentation,\r\n}) => new Promise((resolve) => {\r\n import(/* webpackMode: 'eager' */'./cards-imports/common-imports').then(({ modules }) => {\r\n const deps = {\r\n i18n: modules.i18n,\r\n eventDispatcher: modules.eventDispatcher.default || modules.eventDispatcher,\r\n };\r\n\r\n switch (contentType) {\r\n case 'WelcomeTipsCard':\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign-legacy/dashboard-cards/welcome-tips-card/index').then((contentConstructor) => {\r\n resolve({\r\n contentConstructor: contentConstructor.default,\r\n deps,\r\n });\r\n });\r\n break;\r\n default:\r\n resolve();\r\n instrumentation.logMessage(\r\n [constants.LOGCATEGORY.ERROR],\r\n constants.LOGLEVEL.INFO,\r\n 'dashboard/dashboard-view',\r\n `Unknown card content: ${contentType}`\r\n );\r\n }\r\n });\r\n});\r\n"],"names":["AccountsPage","_React$PureComponent","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","gotoPage","page","pageItem","_","props","siteMap","id","history","scope","replace","pathname","getPathName","search","location","_inherits","_createClass","key","value","this","navigate","defaultLandingPage","React","AccountsPageNavigation","withSiteMap","withScope","withDefaultLandingPage","withPreference","processor","processPath","selectors","regexPseudo","style","position","top","left","color","border","height","padding","withBingMap","WrappedComponent","ComponentWithBingMap","loadMap","then","default","catch","e","instrumentation","loadBingMapScenario","create","loadBingMapError","error","withI18nConsumer","notificationApi","showWarning","i18n","getString","_TL_","_jsx","_objectSpread","PageReady","afterPageReady","_ref","oldAlertCenterAdapter","window","App","views","alertCenter","pageContext","PageContext","state","componentStateImport","config","componentConfigImport","getRouterDep","legacyRouterDep","legacyRouter","legacyRouterImport","withLegacyContext","Component","withCustomScope","undefined","withCurrentExpandedScope","currentCampaign","currentAdGroup","_mapScopeToPageContex","str","tabId","matchLastSlash","exec","siteName","charAt","toUpperCase","slice","CurrentTabId","mapScopeToPageContext","Object","assign","_scope$values","values","uid","cid","aid","campaignId","adGroupId","_mapODataContextToPag","_ref2","CurrentCampaign","CurrentAdGroup","convertStringToEnumForCampaign","convertStringToEnumForAdGroup","mapODataContextToPageContext","set","user_id","customer_id","account_id","campaign_id","adgroup_id","defaultProps","processPermissions","processScope","DFMQueryKeys","getDFMQueryId","queryValues","queryString","queryKey","map","join","DFMContext","withDFMReady","DFMReady","_React$PureComponent2","_this3","dfmTriggered","preDFMPromise","_this4","_this$props2","dfmPromise","expectedDFMQueryId","isFirstRender","isNewDFMPromise","isExpectedDFMPromise","finally","forceUpdate","updateDFMTriggered","withPermissions","Consumer","children","withDFMConsumer","OverviewPageNoRjsShell","importAfterPreLoadHighCharts","getDefaultExport","NewOverviewPageNoRjsShell","NewOverviewPagePhase2NoRjsShell","CampaignsPageNoRjsShell","PerformancePageNoRjsShell","importAfterPreLoad","AdExtensionsShellNoRjs","AdExtensionShellWrapper","Loader","lazyLoad","c","withDynamicFeatures","withInstrumentation","withContexts","withServerContext","OverviewShellWrapper","withCampaignType","serverContext","campaignType","isAccountIdAvailable","_serverContext$Dynami","DynamicPermissions","OverviewPageFluentV2","OverviewPageFluent2","AppAdsCampaignPhaseOne","LinkedInCampaigns","PMaxLiteOverviewFluent","PMaxCampaignOverviewFluent","CustomerLevelOverviewFluent","UnifiedAppAds","overviewFluentV2","pmaxCampaignNewFluent","OverviewPageNoRjsShellToUse","withFooter","CampaignsShellWrapper","adExtensionsLoader","overviewPageLoader","campaignsPageLoader","performancePageLoader","withPageName","pageName","ComponentWithPageName","extend","DelayedPreexecuteContainer","withPageReadyAsync","StyledPreexecuteContainer","withPreexecute","PreexecuteComponents","isFulfilled","_jsxs","ChooseObjectiveWithLegacyConfig","withCcJsDataContextProvider","withFullScreenLayoutNavRefresh","withGlobalErrorView","withPagePerfMarker","r","CampaignOnboardingV2","CampaignOnboardingShell","withCampaignSiteMap","withStateStore","permissions","dynamic","DisplayPlusCampaigns","isNewOnboardingVisibleStore","store","isNewOnboardingVisible","StyledSiteExclusionListsCreate","withFullScreenWithSummaryBarNavRefresh","routes","SiteExclusionListCustomerCreationShell","StyledWebsiteExclusionListsCreateV2","WebsiteExclusionListsPage","StyledSiteExclusionListsEdit","SiteExclusionListCustomerEditPage","StyledWebsiteExclusionListsEditV2","WebsiteExclusionListsCustomerEditPage","StyledSiteExclusionListsViewLists","SiteExclusionListAccountLevelListPage","StyledWebsiteExclusionListsViewListsV2","WebsiteExclusionListsAccountLevelListPage","StyledSiteExclusionListsViewExclusions","SiteExclusionListAccountLevelExclusionsPage","StyledWebsiteExclusionListsViewExclusionsV2","WebsiteExclusionListsAccountLevelExclusionsPage","websiteExclusionListsPermissions","ComponentV1","ComponentV2","WebsiteExclusionLists","WebsiteExclusionListsCreateShell","WebsiteExclusionListsEditShell","WebsiteExclusionListsViewListsShell","WebsiteExclusionListsViewExclusionsShell","withClipchampPlayer","Wrapper","loadClipchampPlayer","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_yield$Promise$all","_yield$Promise$all2","createAssetResolver","_yield$Promise$all2$","Player","usePlayPause","usePlayerControls","usePlayerTime","useFormattedTimeAndDuration","UrlAssetFetchHandler","createHubbleAssetFetchHandler","populateSystemAssets","wrap","_context","prev","next","Promise","all","sent","_slicedToArray","abrupt","stop","apply","displayName","getDisplayName","hoistNonReactStatics","appRoutesInitPerfMarker","PerfMarkerFactory","createMarker","willInit","withContextsNoFallback","reporting","Reports","ReportsV4","Fallback","DefaultGlobalErrorView","shouldShowRefreshLink","isPageReadyResolved","firstRoute","BidStrategiesShell","StyledChangeHistory","withDefaultLayout","HotelGroupsShell","withLayout","PropertyGroupsShell","ProductGroupsShell","PerformanceTargetsShell","withLayoutNavRefresh","layoutConfigs","fullScreenWithSummaryBarAndTab","withoutNav","withoutDate","StyledCampaigns","StyledCampaignsPreexecution","StyledCampaignCreationHotel","withFullScreenLayout","HotelCampaignCreation","StyledCampaignCreationSearch","StyledCampaignCreationSearchV2","StyledCampaignCreationAudience","StyledCampaignCreationAudienceSimplified","StyledCampaignCreationAudienceVideo","StyledCampaignCreationSearchShopping","StyledCampaignCreationSearchShoppingWizard","StyledCampaignCreationAudienceShoppingWizard","StyledSponsoredCampaignCreation","SponsoredCampaignCreationPage","StyledCampaignCreationMSStoreAds","StyledCampaignCreationAudienceShopping","PerfMaxCampaignCreationPage","LinkedInCampaignCreationPage","withFullScreenWithSummaryBar","LinkedInAdEditorPage","PerfMaxNorthStarCampaignCreationPage","PerfMaxNorthStarWizard","StyledXandrVideoCampaignCreationPage","StyledXandrDisplayAdsCampaignCreationPage","StyledDisplayPlusCampaignsPage","StyledDisplayPlusCampaignsDisplayAdsPage","withProps","adsType","StyledAppAdsCampaignsPage","StyledAppAdsAssetGroupCreation","AdGroupCreationWithCampaign","withCampaign","withCampaignLegacyContext","StyledAdGroups","StyledAdGroupsPreexecution","StyledAds","withOpportunityId","StyledAdsPreexecution","StyledPositiveKeywords","StyledPositiveKeywordsPreexecution","StyledNegativeKeywords","StyledSearchTerms","StyledSearchterm","StyledBulkEdits","accountSummaryWithoutDate","StyledBulkEditsDetail","fullScreenWithSummaryBar","MCMCampaignControl","withCollapsedMenuOnly","StyledAudiencePlanner","withLayoutNavRefreshWithTab","StyledAudienceNetworkPlanner","StyledCampaignCreationSmartShoppingPage","StyledCampaignCreationSmartShopping","recommendations","RecommendationsShell","recommendationsWithPerfMarker","mccRecommendationsWithPerfMarker","StyledRecommendations","StyledMCCRecommendations","accountSummary","withHistoryButton","StyledRecommendationsWithHistoryButton","StyledRecommendationsHistoryPage","StyledMCCRecommendationsHistoryPage","StyledRecommendationRSAAsset","StyledRecommendationImageAsset","StyledRecommendationDemo","StyledRecommendationAutoApplySettinsPage","StyledRecommendationAutoApplyBulkUploadPage","StyledFeeds","StyledImportCenter","withoutMenu","StyledAuctionInsightPage","StyledCompetitionAuctionInsight","StyledAudienceAssociationPage","StyledAudiencesLibrary","StyledAudiencesLibraryV2","withSummaryBarAndTabNoDateLayoutNavRefresh","StyledAudienceSignalManagement","StyledAudienceCustomSegments","StyledAudienceCustomSegmentsPage","StyledAudienceAssociationCreation","StyledAudienceCreation","StyledAudienceEdit","StyledConversionGoalsAutoCreate","StyledConversionGoalsCreate","StyledConversionGoalsEdit","StyledConversionValueRulesCreate","StyledConversionValueRulesEdit","StyledOverviewPage","withOverviewPerfMarker","StyledUetTags","StyledUetAllTagsDashboard","tab","mode","StyledUetTagsDashboard","withDisabledDate","StyledUetDashboard","dateWithoutCompare","StyledUetWebInsights","StyledUetTestPage","StyledUetTagsCreate","StyledUetTagsEdit","StyledOfflineConversions","StyledModeledConversions","StyledConversionGoals","StyledConversionValueRules","StyledSharedBudgetEdit","StyledCustomerAcquisition","StyledHotelCenter","StyledHotelCenterV2","StyledSharedBudgetSummary","StyledSeasonalityAdjustment","StyledPortfolioBidStrategy","StyledExtensions","StyledExperiments","StyledProductFeeds","StyledProductFeedPage","StyledLinkedStorePage","StyledBusinessLocationFeed","StyledGmbImport","StyledHotelsPage","StyledHotels","StyledPropertiesPage","StyledProperties","StyledProductsPage","StyledProducts","StyledFeedsSummaryPage","StyledFeedSummaryPage","StyledMSStoreAdsSellerIdsPage","StyledDemographicsPage","DemographicsShell","StyledTargetedLocationsPage","StyledTargetedLocations","StyledExcludedLocationsPage","StyledExcludedLocations","StyledAdSchedulePage","StyledAdSchedule","StyledDevicesPage","StyledDevices","StyledBrandPage","StyledCompetitionRecommendation","StyledCompetitionRecommendations","StyledDynamicAdTarget","DynamicExclusionShell","StyledDynamicSearchTerm","StyledGoogleImport","StyledMultiAccountGoogleImport","StyledFileImport","StyledImportSchedule","withFullScreenWithSummaryBarNavRefreshNoMenu","StyledImportCredentialId","StyledAccountSettingsPage","MerchantCenterShell","ReportingFullScreen","ReportingWithNav","withMenuOnlyLayout","ReportsV4WithNav","withLayoutNavRefreshNoMenu","status","subTab","StyledCustomReportingPage","StyledBrandSafetyPage","BrandSafetyPage","StyledBrandListsPage","StyledBrandListsDetailsPage","StyledAccountLevelImportTab","StyledDimensionsShell","withSingleTabLayout","DimensionsShell","StyledDimensionsCampaignShell","CampaignDimensionShell","styledDimensionsCampaignShellWithSubTab","withSummaryBarAndTabAndSubTabLayoutNavRefresh","NegativeKeywordsLists","NegativeKeywordListsLibrary","StyledAccountsOverview","StyledAccountsPerformance","StyledAccountsPerformancePreexecution","StyledAccountsManagement","StyledManagement","StyledAccountsNotifications","StyledNotifications","StyledAccountsRequests","StyledRequests","StyledAccountsAuctionInsight","StyledAccountsCreate","AccountCreation","StyledBulkTransferAccounts","AccountsTransfer","StyledPendingTransferRequest","PendingTransferRequest","StyledSendLinkRequest","AccountLinking","StyledResendLinkRequest","StyledBulkUnlinkAccounts","AccountsUnlinking","StyledAutomatedRuleOperation","StyledAutomatedRuleHistory","StyledAutomatedRuleDetail","StyledSettingsForm","StyledNegativeKeywordsListsDetailsShell","NegativeKeywordListsDetailsPage","StyledLabels","StyledCombinations","withFullScreenWithSummaryBarAndTabLayoutNavRefresh","StyledAssets","StyledAssetsReport","StyledScripts","StyledScriptsEdit","StyledScriptsHistory","StyledScriptsLogs","BulkUploadsShell","StyledSmartGoogleImportShell","StyledSmartGoogleImport","StyledAmazonImport","StyledSmartFacebookImportShell","StyledSmartFacebookImport","StyledPinterestImport","StyledOptOutOfMinorsPage","StyledAccountOptimizationOverviewPage","StyledQueryInsightsOverviewPage","insightType","StyledAccountOptimizationDetailsPage","StyledQueryInsightsDetailsPage","StyledNewOpportunitiesOverviewPage","StyledNewOpportunitiesDetailsPage","StyledKeywordPlannerPage","StyledKeywordPlanner","StyledAdPreviewPage","StyledAdPreview","StyledAdInsightKeywordPlannerPage","StyledAdInsightKeywordPlanner","StyledAdInsightAdPreviewPage","StyledAdInsightAdPreview","StyledAppAdsAssetGroupsPage","StyledUnifiedppAdsAssetGroupsCreationPage","StyledAssetGroupsWithPerfPage","StyledAssetGroupsPage","StyledAssetGroupEditPage","StyledAssetGroupCreationPage","StyledPmaxNorthStarAssetGroupEditPage","ListingGroupsShell","StyledPmaxAssetsPage","StyledPmaxCombinationsPage","DefaultLayoutPage","SmartCampaignDefaultLayoutPage","withoutMenuLayout","AccountsOverviewPagePreexecuteContainer","withAccountsSiteMap","withAppPerfMarker","OverviewPagePreexecuteContainer","CampaignsPagePreexecuteContainer","StyledLiftMeasurementPage","fullScreen","StyledLiftMeasurementCreatePage","StyledLiftMeasurementEditPage","StyledLiftMeasurementResultsPage","CreativeStudioAssetLibraryPageWithMenu","CreativeStudioAssetLibraryPage","withMenuOnly","AdsStudioPageWithMenu","AdsStudioPage","CampaignBudgetToolPage","BudgetCenterPage","BudgetCenterPageWithMenuBar","StyledUnifiedAppAdsCampaignsPage","StyledUnifiedAppAdsCampaignPage","StyledUnifiedAppAdsAssetsPage","done","AppContent","currentRoute","toLowerCase","UnifiedProductPhase2","isLandingPage","pageIsReady","text","pseudoElements","sel","match","styleText","css","styleElement","document","createElement","appendChild","createTextNode","head","addBadgeForNewFeatures","AppContentContainer","fallback","ProgressiveLoadingBlock","Switch","Route","path","render","IsVideoAdsForCampaignEnabled","SearchShoppingWizard","IsDomesticSimplifiedChineseEnabled","PAAIMConsolidation","CTVAndDealToDisplayPlus","cmpProps","isMran","exact","IsBAARecommendationsAsyncApplyEnabled","strict","PerformanceMaxAudienceSignalManagementPage","IsSmartImportEnabled","IsSmartImportV2Enabled","tagId","UETDashboard","UETDashboardPhase2","PmaxNorthStarAssetGroupSetting","NavigationRefresh","NavigationRefreshBudgetCenter","classes","CampaignTypeUpdater","updateWaterfallFilter","campaignTypeFilter","WaterfallFilterType","CampaignType","selectedCampaignTypeFilter","useMemo","getFilteredCampaignTypeFromRawFilter","useEffect","All","CampaignTypeToStringMap","filterType","filter","convertFilteredCampaignTypeToFilter","propTypes","PropTypes","isRequired","withGlobalFilter","withCurrentExpandedScopeNoFallback","redirectMap","getNewPath","startsWith","getNewReportingUIPath","FallbackUpdater","getDefaultRedirectPageId","_this$props","tabRedirectId","tabredirectid","findPageById","findSiteMap","node","uri","Uri","route","is","gotoPageById","checkFallback","_this$props2$scope","_this$props2$scope$va","storeId","feedId","settingsContext","currentScope","getCurrentScope","isNewReportingUI","isBillingLinkPermission","validSiteMapItem","Scope","Store","isLegacyReportingUrl","redirectReportingUrl","extenionsPage","AdGroup","productGroupsPageItem","hotelGroupsPageItem","assetGroupsPageItem","keywordPageItem","Campaign","Account","scopeChanged","remove","stringify","selected","_this$props3","topTwoCampaigns","topTwoCampaignsValue","checkScopeIds","fallbackToDefaultPage","FallbackUpdaterWithDefaultLandingPage","withSettingsConsumer","processorSet","_props$scope","_useState","useState","_useState2","setTopTwoCampaigns","currentAccount","getEntityFromScope","Campaigns","get","skip","select","subscribe","ScopeProviderInternal","defaultScope","others","_objectWithoutProperties","_excluded","customerScopedItem","mapItem","indexOf","Customer","DefaultScopeProvider","ScopeProvider","usePrevious","ref","useRef","current","ScopeSwitchingReloader","useContext","ScopeContext","passing","setPassing","_scope$values2","prevCid","prevAid","URI","toString","NewVersionReloaderInternal","componentDidMount","eventDispatcher","on","setState","shouldReload","componentDidUpdate","prevProps","fullPageRefresh","reload","NewVersionReloader","withRouter","initSingleCampaign","_ref3","campaign","initOdataCache","CurrentCustomer","Id","CurrentAccount","ODataPrefetchResult","campaigns","JSON","parse","setCampaignTypes","entities","campaignTypes","$makeCall","hardResetData","split","initCampaignTypes","_ref4","initTopTwoCampaigns","campaignString","LayoutSwitch","useLocation","layout","URLSearchParams","change","LayoutContext","require","isSDKView","isSDK","displayMode","getDisplayMode","appName","shouldShowFallbackUpdater","includes","LayoutContainerWithRouter","DFMProvider","_this2","dfmPerfMarker","appPerfMarker","createChild","_history$location","prePathname","preSearch","listen","preDFMQueryId","curDFMQueryId","params","getCampaignType","Number","isDFMEnabledForPath","fetchData","preferenceService","PreferenceService","loadingPath","Provider","withDFMProvider","LayoutContainer","WrappedGlobalContextReceiver","GlobalContextReceiver","navRefreshProcessorSet","processImportCenterMode","processMixedModeAdGroup","processGlobalFilter","processCampaignType","processCampaignId","processSmartCampaign","processSmartShoppingCampaign","processHotelCampaign","processPmaxCampaignPageMenu","processPmaxRetailCampaignPageMenu","processCcuiContext","processMMCMenu","processCopilotRegionRestriction","_toConsumableArray","navRefresh","getDelayedTopBannerComponent","getTopBannerLayout","getStoreInstance","DisapprovedEntities","ImportStatus","NoEntityNotifications","PredefinedNotifications","UETNotifications","CCNotifications","ImportNotification","DraftStoreNotification","PmaxCampaignUpgradeNotification","LocationIntentUpdateNotifications","HotelCenterMigrationNotification","HotelCenterMigrationPhase2Notification","HotelCenterMigrationPhase3Notification","BroadOnlyNotification","GMCTokenExpiredNotification","DeprecateSyndicationSearchOnlyNotification","getNotifications","context","getPredefinedAlerts","getDisapprovedEntityNotifications","getImportStatusNotifications","getNoEligibleEntityNotifications","getUETNotifications","getCCNotifications","getImportNotifications","getDraftStoreNotifications","getPmaxCampaignUpgradeNotifications","getLocationIntentUpdateNotifications","getHotelCenterMigrationPhase3Notifications","getHotelCenterMigrationPhase2Notifications","getHotelCenterMigrationNotifications","getBroadOnlyNotifications","getAlerts","getDeprecateSyndicationSearchOnlyNotifications","refresh","DelayedTopBanner","DelayedMainMenu","MainMenuContainer","CampaignMainMenuPlaceholder","DelayedAfterPageReady","AfterPageReady","DelayedSummaryBarContainer","SummaryBarContainer","SummaryBarPlaceholder","DelayedPageMenuContainer","_ref5","PageMenuContainer","CampaignPageMenuPlaceholder","DelayedSubTabContainer","_ref6","SubTabContainer","DelayedSubpageMenuContainer","_ref7","SubpageMenuContainer","LazyDraft","_ref8","DraftAccountPageWraper","DelayedDraftAccountPage","DelayedNewGlobalMenuWrapper","_ref9","NewGlobalMenuWrapper","withComponentErrorLogging","NewGlobalMenueWrapperPlaceholder","DelayedMSAdsCopilotLoader","DelayedTeachingBubbleRenderer","_ref10","TeachingBubbleRenderer","jss","setup","createGenerateId","AppRoot","userContext","CurrentUser","isAccountDraft","Status","globalErrorOptions","getGlobalErrorOptions","Permissions","initSettingsContext","perfLatencies","performance","SchemaNewLatency","siteMapLatency","isProdEnv","IsProdEnv","onToggleMainMenu","toggleMainMenuObservable","Observable","observer","onHamburgerClicked","logger","popupManagement","popupManager","teachingBubbleLogger","multiStepTeachingBubble","defaultFailFast","failFast","I18nModel","setDefaultFailFast","currency","CurrencyCode","globalLegacyI18n","main","__integration_test_packages_escape_hatch__","edmImport","jsDataCampaignImport","exRepoImport","azurePayloadImport","EDMCampaign","legacyOdataImport","hotelCenterJsDataImport","hotelCenterEDMImport","legacyPreferenceImport","OdataAdapter","setupI18n","DraftAccountPage","DelayedGlobalMenuWrapper","DelayGlobalMenu","_ref11","GlobalMenuWrapper","GlobalMenueWrapperPlaceholder","_ref12","isNavRefresh","isNavigationRefreshOn","DelayedPrimaryNavigation","_ref13","PrimaryNavigation","navRefreshSiteMap","PrimaryNavigationPlaceholder","DelayedSecondaryNavigation","_ref14","SecondaryNavigation","SecondaryNavigationPlaceholder","DelayedScopePanel","_ref15","ScopePanel","ScopePanelPlaceholder","isCouponTeachingBubbleEnabled","i18nModel","theme","themes","curTheme","className","AppPerfMarker","GlobalFilterContextProvider","Router","PermissionsContext","allowedKeys","ServerContext","UserContext","SettingsContext","PopupContextProvider","isGateEnabled","ToastProvider","MultiStepTeachingBubbleContextProvider","configs","teachingBubbleConfigs","LazySDKAppWrapper","AdsCopilotContextProvider","DisplayMode","Shellless","isGridLayout","WebViewContextProvider","Layout","item","component","type","Default","role","href","customSiteMapProcessorSet","OverlayComponent","isCouponEnabled","Backbone","$","landingPagePreference","accountsLandingPagePreference","preAppStartMarker","eventName","eventStartTime","now","activeTimeBeforeEventStart","activeTime","_window","campaignODataConfigs","AdvertiserCustomerID","AccountID","devConfig","isInDevelopmentMode","interpolate","errorMappers","odataErrorMapper","OdataErrorMapper","odataErrorCodes","campaignApiErrorMapper","CampaignApiErrorMapper","campaignApiErrorCodes","urlErrorMapper","UrlErrorMapper","invalidDomains","featureName","getInstrumentation","pageTrackingId","PageTrackingId","applicationName","systemName","subSystemName","ajaxStubOptions","addScenario","InstrumentationSchema","appActivity","appScenario","perf","preAppStartLogs","activity","preInstrumentationInitializeScenario","perfActivity","forEach","message","addEventListener","trace","visibilityState","devicePixelRatio","clientWidth","documentElement","clientHeight","innerWidth","innerHeight","outerWidth","outerHeight","screenWidth","screen","width","screenHeight","screenAvailWidth","availWidth","screenAvailHeight","availHeight","IsAADUser","IsInternal","preferencePerfMarker","initSync","initialUserPreferences","UserPreferences","currentUser","currentCustomer","apiHost","ServicesEndpoints","CampaignAPI","apiPath","authToken","Token","locale","CurrentLocale","lang","cldrLocale","getCldrLocale","isDarkTheme","IsDarkThemeEnabled","isSystemDark","matchMedia","matches","themePref","findByName","themeObj","Name","Data","setAtUserLevel","getTheme","getLandingPath","preferenceData","skipRequireJSLoad","IsSkipRequireJsLoadEnabled","es6TestScript","eval","logError","appBootstrap","ReactDOM","getElementById","initGlobalService","initCacheBridge","setCampaignType","setupI18nModel","updateDateRange","landingPagePath","willFetchFile","initLegacyComponentsWithServerContext","msg","CopilotTeachingBubble","withDefaultStyles","changeLayout","ActivityContext","isPROD","useIsProdEnvironment","visible","setVisible","closeBubble","useCallback","username","localeId","isAADUser","isAppBasedAuthEnabled","toggleCopilot","toggleCopilotWithMSASignInPopup","userName","onToggleCopilot","startChatting","targetElement","TeachingBubble","title","CopilotIcon","content","_Fragment","disclaimer","MSACopilotDisclaimer","primaryButtonText","secondaryButtonText","onDone","onDismiss","onClose","directionalHint","DirectionalHint","bottomRightEdge","rightOffset","doNotLayer","fontSize","textDecoration","LazyMSAdsCopilot","UnstyledMSAdsCopilotLoader","PreferenceContext","cachedPath","setCachedPath","firstName","lastName","userid","customerId","accountId","ccSmallToken","currentLocale","dateFormat","TimeZone","ianaTimeZone","toIANATimeZone","fromLegacyTimeZone","isDegradedModeEnabled","perfMarker","isAdsCopilotLiveChatGlobalizationEnabled","isAdsCopilotUxImprovementsEnabled","getIsPilotEnabled","pilotName","useGetIsPilotEnabled","copilotLayoutConfig","copilot","hasCustomizedEvent","waterfallFilterStorage","WaterfallFilterStorage","dateRange","waterfallDateFilterProcessor","getFilters","DateFilter","handler","customizedEvent","detail","openCopilot","removeEventListener","useCopilotToggleEventListener","lwicontexts","getLwiContexts","liveAgentChatConfig","surveyContext","pilots","isCopilotLiveChatGlobalizationEnabled","onAuthPopupError","tokenExchangeFn","useTokenExchange","shouldRetry","onCopilotModeChange","newMode","onSendCustomizedEvent","newConfig","onFeedbackReaction","data","onChangeConversationId","conversationId","onCopilotClose","trigger","botServiceConfig","tokenApi","endpoint","getDirectLineEndpoint","productName","fetchOAuthToken","legacyTimeZone","resolve","token","fetchToken","fetchAppBasedChannelToken","copilotOneBoxToken","getCampaigns","fetchCampaignsData","ccToken","result","name","statusText","_useMSAConversationRe","useMSAConversationRestorationWithCookie","forceRefreshToken","onConnectionStatusChange","onInitDirectLine","_usePerfMarker","usePerfMarker","onMount","finalOnConnectionStatusChange","I18nContext","classNames","root","rootNavRefresh","onFullInsightsClick","event","replyToId","options","onFeedbackButtonClick","overlay","Mode","Expanded","InsightsPanelLoader","contentProps","i18nProviderProps","loadingView","MSAGlobalLoadingView","classname","isDynamicWidthEnabled","_useState3","_useState4","isAdsCopilotRegionRestricted","setIsAdsCopilotRegionRestricted","isCopilotRegionRestricted","feature","isCopilotReady","Suspense","bingAdsI18n","isLiveAgentOnlyMode","MSAGlobalErrorView","onRefresh","isUxImprovementsEnabled","CopilotErrorView","MSACopilotErrorView","info","errorViewProps","MSAdsCopilotLoader","renderErrorView","right","bottom","minWidth","COPILOT_WIDTH","display","flex","zIndex","MSAdsCopilotLoaderWithPermission","Scenario","Activity","urlChangeScenario","routeChangeLogger","paramChangeLogger","NewUINavigationPreferenceKey","NewUIPreferenceDialogRaw","setPreferenceAndLog","preference","preferenceSetLogger","selectNewUI","dismissDialog","selectOldUI","returnPath","getFallbackPath","openOldUI","decideLater","learnMore","helpTopicSpan","click","userSelection","showDialog","showOnlyOKButton","stopSignal","isTestEnv","isTestEnvironment","domain","_possibleConstructorReturn","newUINavigation","preferenceSet","startSignal","newUIPreference","findByNameAtUserLevel","IsLandOnNewUIEnabled","phase2PilotEnabled","NewWebUI","Dialog","hidden","newUINavigationPreferenceDialog","dialogContentProps","DialogType","close","maxWidth","modalProps","isBlocking","dragOptions","query","span","onClick","onKeyPress","tabIndex","DialogFooter","DefaultButton","PrimaryButton","NewUIPreferenceDialog","compose","getNewUiWelcomeStyles","previousRoute","previousSearch","getUrlChangeScenario","urlChange","getRouteChangeLogger","routeChange","getParamChangeLogger","paramChange","RouteChangeLoggerInternal","currentSearch","RouteChangeLogger","PREFERENCE_NAME_GOOGLE","PREFERENCE_NAME_FACEBOOK","getNavigationLinkMsg","preferenceType","url","CampaignUIAPI","queryParams","importType","_defineProperty","getImportScheduleAndHistoryLink","link","showGoogleImportNotificationMsg","inProgress","importedCampaignsCount","linkMsg","showInfo","showFacebookImportNotificationMsg","getImportTaskStatus","taskItemExecutionId","reject","odata","ErrorCode","entityStatistics","Keys","Values","campaignEntityIndex","Total","getImportedCampaignsCount","EntityStatistics","Error","err","ImportStatusCheckerInternal","isShown","setIsShown","findByNameAtAccountLevel","preferenceName","showNotificationMsg","importStatus","del","ImportStatusChecker","PageTitleUpdater","selectedNode","findSelectedNode","newTitle","siteMapPropType","wrapped","NavigationRefreshLogger","InstrumentationContext","createScenario","scenarioName","createActivity","LastDayToSwitchBack","Date","NavigationRefreshDialogPreference","OneWeek","OneMonth","Further","Past","useDialogStyles","makeStyles","navRefreshImage","backgroundImage","marginBottom","tokens","spacingVerticalXXL","button","whiteSpace","footer","justifyContent","singleButtonFooter","NavigationRefreshDialog","_React$useState","_React$useState2","open","setOpen","_React$useState3","_React$useState4","disableButtons","setDisableButtons","createScenarioAndActivity","activityName","switchBackNavRefreshPreference","SWITCH_BACK_NAV_REFRESH_KEY","switchBackNavRefresh","dialogPreference","timePeriod","MillisecondsInADay","getTimePeriod","isPastCutOff","messageTemplate","updatePreference","newDismissDialog","onRemoteSyncDone","setClarityTag","onStay","onTry","preventDefault","delAtUserLevel","modalType","DialogSurface","UiBlocker","blocking","loadingText","blockUiContainer","blockerIndicator","DialogBody","DialogTitle","DialogContent","ReactTemplate","model","b","a","target","rel","template","DialogActions","mergeClasses","fluid","DialogTrigger","disableButtonEnhancement","Button","appearance","disabled","useStyles","dialogSurface","dialogContent","shorthands","description","lineHeight","radioGroup","flexDirection","gap","paddingTop","paddingBottom","radioButton","buttonSpacing","marginLeft","emailContainer","paddingLeft","fontWeight","serverErrorMessage","marginTop","validateEmails","emailString","valid","emails","email","trim","invalidEmails","test","String","EmailInput","label","placeholder","hint","onChange","validationState","setValidationState","handleChange","newValue","validation","Field","validationMessage","Input","STEPS","DECISIONS","STEPS_CONFIG","radioList","templateModel","Link","OPTIONS_DECISIONS_MAP","agent","accept","instrumentationSchema","scenario","setting","RadioOptions","RadioGroup","radio","Radio","ConsentModeDialog","isConsentModeEnformentEnabled","isLoading","setIsLoading","shouldShowDialog","setShouldShowDialog","_useState5","_useState6","currentStep","setCurrentStep","_useState7","_useState8","agreeStatus","setAgreeStatus","_useState9","_useState10","setupMethod","setSetupMethod","_useState11","_useState12","acknowledgeStatus","setAcknowledgeStatus","_useState13","_useState14","decision","setDecision","_useState15","_useState16","setEmails","_useState17","_useState18","validateResult","setValidationResult","_useState19","_useState20","serverError","setServerError","ConsentModeEnforcementDialog","backupLogger","noop","consentModeEnforcementDialog","dialogActivity","_useMemo","_useMemo$templateMode","triggerCopilotChat","customEvent","CopilotToggleCustomEvent","eventType","eventSource","eventData","ActionId","liveAgentParameters","queue","LiveAgentQueue","ShoppingAndUET","problemDescription","dispatchEvent","onChangeEmail","makeDecision","payload","ConsentModeDecision","EmailAddresses","edmCampaign","Customers","$withKey","Accounts","toPromise","response","updateConsentModeDecision","res","onConfirmDecision","renderDescription","finalizedDescription","getConsentModeDialogStatus","NeedShowPopUp","renderOptions","MessageBar","intent","MessageBarBody","dialogActions","renderBottomBtns","apexHelpContentKey","keyVault","apexHelpContent","helpPopupKey","helpPopup","onHelpRailViewOpen","forceAcquireLock","onHelpRailViewClose","opener","releaseLock","onHelpPopupOpen","popupRootEle","rootEle","$titleEle","find","newTitleHtml","prop","$newTitle","replaceWith","replacePopupTitleTagWithH2","onHelpPopupClose","AfterPageReadyInternal","setTimeout","clearGate","isAdsCopilotFraudRestrictionEnabled","helpSearchBoxCopilotScenario","searchActivity","isExpertMode","isNewLogo","renderApexHelpSuggestionsWithi18n","suggestionData","suggestionContainer","renderSuggestionToHtml","hideSuggestionBox","renderApexHelpSuggestions","renderSearchInputIconWithi18n","container","renderSearchInputIcon","supportModalsProps","ret","supportOptions","SupportOptions","helpModel","HelpModel","resourcePath","Urls","VirtualAgentUrl","onRailViewOpen","onRailViewClose","onPopupOpen","onPopupClose","flowId","isShellless","isCopilotEnabled","CampaignHistoryRecorder","ApexUpdater","URLFilter","WrappedFloatingBannerContainer","SupportModals","HotKeyDialogWithI18n","HotKeyNavigator","WalkMeWithScopeAndContext","LightBoxDialog","contextUrl","userId","setLoading","onCancel","SmartCampaignsPopup","CalloutView","withPopupContext","DelayedNotificationsBar","getNotificationsBar","_ref2$","DraftStoreNotifications","DraftAccountPageWraperInternal","logTrace","resourceMapping","routerBundleMapping","bundles","StyledAccounts","StyledSettingsSummary","StyledGMBImport","StyleProperties","StyledOverview","DynamicAdTargets","NegativeKeywordsListsShell","NegativeKeywordListsLibraryShell","NegativeKeywordsListsDetailsShell","StyledLiftMeasurement","StyledLiftMeasurementCreate","StyledLiftMeasurementEdit","StyledLiftMeasurementResults","bundlesUseHighcharts","_bundlesUseHighcharts","importScriptsCommon","_pickManyImports","pickManyImports","_pickManyImportsWithL","pickManyImportsWithLazyInit","_pickManyImports2","StyledFacebookImport","_pickManyImports3","defaultExport","ScriptsPage","ScriptHistoryPage","ScriptsEditPage","ScriptLogsPage","StyledConversionAutoGoals","DelayedReportsV4Bar","ReportsV4DropDown","GlobalMenuWrapperInternal","onLogoClick","$current","save","onCopilotClick","_permissions$dynamic","forceOpen","AdsCopilotUxImprovements","adsCopilotLogger","copilotMode","layoutConfig","autoEnd","globalHelpRef","wrappedGlobalMenu","withSmartConfig","GlobalMenuBase","accountMode","ACCOUNT_MODE","UNIFIED_SMART","withUPConfig","GlobalMenuEmbeded","basic","DelayedAccountSelector","CustomerAccountSelectorTreeView","TreeViewWithRCIDStorage","DummyCustomerAccountSelector","DelayedCustomerSelector","CustomerSelector","DummyCustomerSelector","adsCopilotScenario","isCampaignPageAccessible","isRestricted","hotKey","count","campaignSiteMap","Omniture","globalMenuActivity","globalMenuScenario","feedbackScenario","feedbackActivity","feedbackProps","feedbackLogger","log","Email","pageId","sessionId","SessionId","hideFeedback","IsReadOnlyUser","account","AccountNumber","ParentCustomerId","supportUrl","RootUIUrl","campaignSearchEnabled","CampaignSearch","accountIdEnabled","renderSearchResults","_permissions$dynamic2","push","renderCopilotSearchWithCopilot","renderPageSearch","renderHelpLibrarySearch","renderCampaignSearch","hide","mmc","assetLibrary","getHeaderHide","showEntityBreadcrumb","entityBreadcrumbProps","EntityBreadcrumb","GlobalMenuEntityBar","NotificationsBar","ReportsV4Bar","AccountSelector","MeControl","MeControlBase","CustomMenu","CustomMenuBase","showPrideLogo","isAccountSummary","isHamburgerVisible","isMainNavPanelMode","isPanelMode","showBackToCampaignButton","withHotKeys","withLayoutContext","ShortcutType","ShowHideHelp","isHamburgerVisibleStore","GlobalFilterContext","_useContext3","GlobalMenuEmbedded","GlobalMenu","componentProps","availableComponents","available","PagePreexecute","withPageReady","ready","preexecutePerfMarker","pop","prevPageName","preexecuteContainer","NextComponent","Preexecution","pageReady","childPerfMarker","preexecuteFlag","_createElement","visibility","getStyle","ChurnModelNotificationContent","clarityTextTemplate","useDefaultStyles","content1","phoneNumber","inline","churnModelCouponNotificationFeatureName","ChurnModelCouponNotificationTeachingBubbleUIConfig","userGovernanceConfig","defaultUserGovernanceConfig","steps","rightCenter","onNext","uetTeachingBubbleUserGovernanceConfig","expirationDate","PreferenceState","INIT","cooldownDays","stateMachine","STOP_SHOWN","FIRST_DISMISS","SECOND_DISMISS","Infinity","escMigrationGovernanceConfig","escMigrationTeachingBubbleFeatureName","EscMigrationTeachingBubbleConfig","rightTopEdge","uetConsentNotificationFeatureName","UetConsentNotificationTeachingBubbleUIConfig","isSecondaryButtonHidden","bottomAutoEdge","_scope","_siteMap","languageCode","adsStudioTeachingBubbleFeatureName","AdsStudioTeachingBubbleConfig","ClickAdsStudioTeachingBubblePrimaryButton","getRoutePathById","NavigationRefreshTeachingBubbleConfig","couponTeachingBubbleConfig","couponTeachingBubbleOldUIConfig","InsertionOrderReportTeachingBubbleConfig","ReportingInsightsTeachingBubbleConfig","CustomReportBuilderTeachingBubbleConfig","ReportHomePageTeachingBubbleConfig","TeachingBubbleRendererBase","bubbleContext","MultiStepTeachingBubbleContext","hasReadMigrationFlag","setHasReadMigrationFlag","isMigrationUser","setIsMigrationUser","MigratedFromESC","triggerMultiStepTeachingBubbleWithLock","useReportingInsightsTeachingBubble","isAdsStudioMVPEnabled","ise2etest","getParameter","isselenium","showForTest","CouponTeachingBubbleRenderer","getLandingPaths","isLegacyDefineLoaded","triggerWillInit","WillInitWrapper","importHighcharts","Highcharts","highchartsMore","accessibilityModule","patternFillModule","names","moduleExport","_v","pickImport","pickImportWithLazyInit","componentFactory","applyWrappers","skipWillInitTrigger","wrapperFn","loadComponent","lazy","importLegacyDeps","modulePath","needLegacyDeps","loadHighChart","currentPath","withFallbackPage","extraProps","HoC","withPrefetch","prefetchChunks","deferPrefetchChunks","jsDataCcRest","initCcJsData","CcJsDataContextProvider","initialJsData","perfMarkerName","getNewState","dateRangePreference","DateRange","PerfMarkerWrapper","markerName","isLinkedInCampaign","PMaxLite","queryParam","QueryParam","isLimitedByBillingLink","isMultiAgencyBillingEnabled","AccountLinkPermissionType","getAccountLinkPermissionType","isOdataGetProductScopeEnabled","isPAAIMConsolidationEnabled","IsDataPreFetchForOverviewPageEnabledInVnext","fetchDataForPmaxOverview","fetchDataForFluentOverview","fetchDataForOverview","IsDataPreFetchForCampaignsPageEnabledInVnext","fetchDataForCampaigns","campaignDfm","newI18n","dataSource","p$dfm","withDFMCache","setDFMCache","IsDataPreFetchForPerformancePageEnabledInVnext","fetchDataForPerformance","fetchSearchShoppingProductScopeData","ap$dfm","fetchAudienceShoppingProductScopeData","fetchDataForShoppingCampaignCreationPage","isMranSimplificationV2Enabled","MranSimplificationV2","fetchProductDataForAudienceShoppingCampaignCreationPage","fetchHasConversionGoalData","recommendationType","_ref19","fetchSummaryDataForRecommendationPage","AdsPageDFMV2","_ref20","fetchDataForAds","adsDfm","AdGroupsPageDFMV2","_ref22","fetchDataForAdGroups","adGroupsDfm","AdExtensionsPageDFMV2","_ref23","fetchDataForAdExtensions","adExtensionsDfm","_ref25","fetchDataForDefaultReportsPage","_ref26","fetchDataForMyReportsPage","_ref27","_ref28","fetchDataForRecentReportsPage","_location$pathname$ma","_location$pathname$ma2","reportAction","reportType","fetchTaskItemCall","fetchDataForRecentReportsPageCall","fetchInsertionOrdersCall","isInternalUser","isInsertionOrderReportEnabled","InsertionOrderReport","_ref29","fetchTaskItem","fetchInsertionOrders","body","responseJSON","taskItem","_location$pathname$ma3","_location$pathname$ma4","reportId","ReportType","_ref24","fetchDataForBudgetCenter","_ref21","fetchDataForKeywords","keywordsDfm","_ref16","_ref17","_ref18","f$dfm","fetchFeedDataForAudienceShoppingCampaignCreationPage","IsEnabledForDynamicFeedCampaign","fetchDataForAccountsOverview","cardsConfig","accountsMode","AccountsMode","Expert","Smart","HasExpertAccount","modules","cardState","CardState","navigationLevel","preferences","edm","instrumentationSettings","constants","newCardsConfig","getCardsConfig","fetch","fetchMCCOverview","entitySet","jsdata","dateUtil","cards","AccountsOverviewPrefetchQuery","isPreFetch","viewportCardCount","getViewportCardCount","isMccLevel","viewPortCards","card","fetchMCCOverviewRecommendations","Page","_queryParam$values","logActivity","adGroupsGridDataPrefetch","dataQueryBuilder","getDataSource","adGridDataPrefetch","SecurityAction","Constants","PaymentOption","AccountMode","extendAccount","AccountUtils","securityActions","CampaignManagementFullControl","ForceBilling","AccountUpdate","CAMPAIGN_PAGE_SIZE","defaultCampaignBudgetSummaryGridPageSize","defaultCampaignBudgetSummaryGridPageNumber","ccJsData","cidString","aidString","campaignIdString","CurrencyType","hasPaymentOption","Legacy","isAccountScope","budgetInsightsAndAlertsId","ioAuthzId","getAccountPermission","BudgetInsightsAndAlerts","jsData","findAll","$select","$skip","$top","$orderby","hasOneOfPaymentOptions","Invoice","InsertionOrderPermission","timeZone","monthKeyString","Intl","DateTimeFormat","year","month","day","format","accountInfoDataId","campaignInfoDataId","AccountBudgetCenterInformation","monthKey","CampaignBudgetSummaryGrid","limit","offset","CampaignBudgetCenterInformation","campaignGridDataPrefetch","stub","stubI18n","parseInt","property","enum","enumMappedString","valueDescription","enumDescription","IsOptimizationScoreInCampaignsGridEnabled","legacyPreferenceService","optimizationScoreInCampaignsGridDefaultOn","appended2Column","setAtAccountLevel","campaignsGridCustomColumn","index","splice","dataSourceWithInjection","getDataSourceWithInjection","gridName","ColumnChooserPreference","customColumnPreference","SegmentationPreference","fetchPagination","fetchSortInfo","getColumnsMap","getBaseColumnsByType","appConfig","sessionStore","preferenceStoreFactory","legacyGlobalI18n","schemaI18nCampaign","cacheService","dataContextManager","CampaignFilterImprovementEnabled","DateFilterState","_ref3$","getFluentCardsConfigs","getInitSelectedCardsConfig","getViewPortCardsCount","isInViewPort","getCardPreferenceOptionsForDfm","fetchAggregatedData","initialize","p$DateRange","p$State","cardsConfigs","selectedCardsConfig","cardIds","viewPortCardSize","FluentOverviewPageDataFetchManagerCardsConfigObject","isPerformanceInViewPort","cardPerformanceId","isRecommendationInViewPort","cardRecommendationsId","isDeviceInViewPort","cardDeviceId","isTopAccountsInViewPort","cardTopAccountsId","isTopChangesAccountInViewPort","cardTopChangesAccountId","customerIdType","useAdvertiserCustomerId","console","WelcomeStatus","ShowWelcomeTips","fetchWelcomeTipData","_ref4$","getFilteredCampaignTypeFromWaterfallFilter","fetchFluentOverviewTilesData","legacyConfig","featureInstrumentation","CampaignStatus","AdGroupStatus","getCardsConfigs","getWelcomeCardsConfig","fetchOverviewTilesData","welcomeCardsConfig","welcomeCardConfig","dataFetchConfig","accountsSummaryDataPrefetch","currentHash","hash","getConfig","queryBuilderConfig","queryBuilder","HasUnifiedSmartAccount","commonConfig","QueryBuilderFactory","make","getDecoratorByName","defaultPageSize","accountModes","filterService","editableFilter","editableFilterStorage","connect","_queryBuilder$getDeco2","IsAvgPositionDeprecationPhase2Enabled","defaultColumns","logMessage","LOGCATEGORY","TRACE","LOGLEVEL","INFO","AccountSummaryFilterImprovementEnabled","cacheableObjects","DataSourceStore","fetchPmaxOverviewTabData","positiveKeywordsGridDataPrefetch","isDFMEnabledForOverview","getDFMEnabledPaths","DFMPath","redirectToLogin","sdkLoginPagePath","encodeURIComponent","protocol","host","handleAjaxAuthFailure","requestUrl","PROD_CLARITY_ID","TEST_CLARITY_ID","CookieConsentActivityName","initOCVSurvey","isEnhancedSurveyTriggerConditionEnabled","tokenFetchPerfMarker","setupSurveyManager","ccBaseUrl","tokenInfoFetcher","TokenInfoFetcher","shouldDoAjaxCall","clientCenterBaseUrl","cidFetcher","uidFetcher","appendErrorSummary","willSupportCors","GetJsDataInfo","getJsData","shouldFetchUser","getTokenInfo","tokenInfo","User","CreatedDateTime","clonedServerContext","FetchedCreatedDateTime","initSurveyManagerPerfMarker","survey","surveyManager","keepAliveInstance","unAuthCallBack","start","ko","domNodeDisposal","cleanExternalData","versionCheckInstance","version","Version","PopupController","PopupJsClick","initWalkMe","setupQualtricsWithData","enableIframeCommunication","initAdobeTracking","trackingScriptUrl","dataType","crossOrigin","credentials","success","_PDL","market","navLevel1","navLevel2","accountNumber","customerID","userID","serverName","pairs","compact","dynamicPermissions","scopeStore","_scopeStore$state$sco","campaignID","adGroupID","initPDL","script","src","async","onload","WcpConsent","init","_siteConsent","siteConsent","onConsentChanged","getConsent","initAnalytics","Analytics","Advertising","always","amplifyTrackingScriptUrl","initAmplifyTracking","setupClarity","currentConsent","onerror","AutoRefreshToken","ccJSData","ClientCenterUIAPI","SmartBaseUrl","normalize","AdInsightBaseUrl","UnifiedProductBaseUrl","globalLegacySchema","schemaName","schemaVnext","Culture","initializeUiNextLegacyI18n","original","expected","mismatches","updatedQuery","replaceState","sort","checkQueryParams","skipcccache","KEYS","bindFirst","fn","each","handlers","dropdownMenuKeydownHandler","$this","hasClass","acceptableKeysReg","RegExp","$parent","selector","attr","parent","getParent","which","tagName","stopPropagation","isActive","$items","getAttribute","currentItem","eq","itemClass","clickableKeydownHandler","triggerKey","keyCode","afterKeydownFocusHandler","focus","addRoleButtonHandler","setAttribute","buttonFocusHandler","$helpPopup","helpButtonKeydownHandler","addRolePresentationForPaginationRow","$footerRows","element","$pagers","patchLegacyLabelSelectorCheckbox","$siblings","siblings","uniqueId","p8","s","p","Math","random","substr","createGuid","ariaChecked","findClosestMenuItemsOnSameLevel","$item","menuitemLocator","closest","not","menuMoveUp","$menuItems","menuIndex","$newItem","menuMoveDown","menuNum","moveToContainer","$currentSubMenu","$parentMenuItem","menuItemKeydownHandler","currentTarget","muiltiLevelMenuItemKeydownHandler","$subMenu","nextAll","$activeItem","showSubMenu","handled","removeClass","$triggerButton","closeMenu","kendoListKeydownHandler","el","$el","$selectedItem","kendoListSetTabIndex","menuToggleKeyup","altKey","ctrlKey","$menu","$menuitems","handleFocusTrapping","$activeElement","activeElement","items","$root","$firstElement","$lastElement","lowestTabindex","highestTabindex","tabindex","$focusElements","firstElement","lastElement","getFocusItemsAtBothEnds","shiftKey","handleFocusTrappingDatepicker","focusedItemIdx","findIndex","addClass","needToFocusItem","kendoDialogKeydown","getKendoDatepickerKeys","kendoDatePickerKeydown","$datePickerInput","datePicker","off","innerEvent","stopImmediatePropagation","kendoDatePickerCalendarKeydown","datePickerInputsSelector","_findDatePickerAndInp","$calendar","$matchedPickerInputs","idx","dp","dateView","calendar","findDatePickerAndInputFromCalendarDOMEvent","_findDatePickerAndInp2","tablistKeydown","$tabs","$selectedTab","moveFocusTo","$to","$from","clickRowAndFocus","$row","$treeGrid","$treeItem","dataKey","defer","exists","focusRowByDataKey","treeGridKeydown","level","$childRow","$prevRow","$nextRow","treeGridFocus","relatedTarget","$activeRow","first","removeAllButtonOnLocationGridFocus","$firstCell","overviewPageMenuToggleKeyUp","parents","overviewPageMenuItemKeyDown","$openParent","$toggleButton","scriptsQuickFiterFocusHandler","$dropdownToggle","$dropdownMenu","$link","jQuery","jQueryVersionParts","jquery","oldInit","arg1","prototype","call","oldPosition","elem","offsetParent","customized","nodeName","parentOffset","currentOffset","old","factory","UA","navigator","userAgent","isEdge","SmartBanner","origHtmlMargin","parseFloat","smartbanner","defaults","standalone","force","iOSUniversalApp","localStorage","getItem","getCookie","scale","meta","appId","parsedMetaContent","author","hostname","iconUrl","price","onInstall","onShow","show","constructor","iconURL","appStoreLanguage","gloss","iconGloss","GooglePlayParams","banner","layer","appendToSelector","append","prepend","icon","bannerHeight","proxy","install","contentSelector","adjustOuterContent","callback","animate","speedIn","pushSelector","support","transition","one","end","emulateTransitionEnd","slideDown","resize","adjustButton","scroll","speedOut","slideUp","setItem","hideOnInstall","setCookie","daysReminder","exdays","exdate","setDate","getDate","encodeURI","toUTCString","cookie","i","x","y","ARRcookies","decodeURI","scrollX","srcElement","switchType","that","detach","option","$window","daysHidden","Constructor","duration","called","transEndEventNames","WebkitTransition","MozTransition","OTransition","transitionEnd","cleanData","_cleanData","elems","triggerHandler","_remove","keepData","add","widget","base","fullName","namespace","Widget","expr","_createWidget","basePrototype","widgetName","widgetEventPrefix","widgetBaseClass","bridge","object","isMethodCall","returnValue","instance","methodValue","isFunction","_init","_getCreateOptions","self","bind","destroy","_create","_trigger","metadata","unbind","removeData","removeAttr","_setOptions","_setOption","enable","disable","orig","Event","originalEvent","isDefaultPrevented","validate","validator","settings","onsubmit","submitHandler","submitButton","cancelSubmit","handle","val","appendTo","currentForm","debug","form","pendingRequest","formSubmitted","focusInvalid","warn","errorList","rules","command","argument","staticRules","existingRules","param","filtered","normalizeRule","messages","method","normalizeRules","classRules","attributeRules","dataRules","required","remote","pseudos","blank","filled","unchecked","source","makeArray","unshift","n","groups","errorClass","pendingClass","validClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","lastActive","unhighlight","hideThese","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","elementValue","inArray","invalid","onclick","parentNode","highlight","setDefaults","date","dateISO","number","digits","equalTo","maxlength","minlength","rangelength","range","max","min","step","autoCreateRanges","labelContainer","errorContext","containers","valueCache","pending","reset","delegate","hasAttribute","invalidHandler","checkForm","errorMap","showErrors","prepareForm","elements","currentElements","check","rs","group","cleanElement","clean","checkElement","validationTargetFor","v","prepareElement","testgroup","numberOfInvalids","toHide","errors","successList","grep","defaultShowErrors","resetForm","hideErrors","resetElements","objectLength","obj","addWrapper","size","findLastActive","rulesCache","resetInternals","toShow","$element","validity","badInput","lastIndexOf","rule","rulesCount","dependencyMismatch","normalizer","TypeError","parameters","methods","formatAndAdd","customDataMessage","substring","customMessage","m","findDefined","defaultMessage","theregex","toToggle","wrapper","showLabel","validElements","invalidElements","place","errorID","elementID","idOrName","describedBy","html","errorPlacement","insertAfter","escapeCssMeta","describer","string","getLength","depend","dependTypes","startRequest","stopRequest","submit","previousValue","classRuleSettings","creditcard","addClassRules","normalizeAttributeRule","isNaN","depends","keepRule","parameter","parts","isArray","transformed","addMethod","decimals","errorMessage","re","decimalPlaces","num","toInt","round","pow","optionDataString","previous","originalMessage","ajax","port","pendingRequests","ajaxPrefilter","xhr","abort","ajaxSettings","_menuContainer","_isRtl","_global","numberOfInstances","menuTemplateId","menuTemplate","menuData","menuHtml","flyoutBeforeShow","topFn","shouldShowFlyout","_staticConstructor","_onElementClick","_staticDestructor","_onBodyClick","menuBlock","hideAll","tmpl","elementWrapper","currentElement","_isDescendant","child","loadingPanelTimeoutID","loadingPanel","_i","loadingPanelShowRequested","blocker","beforeAjax","clearErrorSummary","showLoadingPanel","ajaxError","hideLoadingPanel","ajaxComplete","textStatus","hideImage","blockedElement","timeout","clearTimeout","alertIds","showUnique","showError","dismiss","strErrors","Message","ajaxPost","safetyNetAjaxAction","ajaxGet","getUrlParameter","legacy_get","decodeURIComponent","generateRequestGuid","S4","floor","d","getTime","S12","cName","cValue","expires","secure","escape","toGMTString","unescape","setRequestId","isNotAjax","setUrlParameter","usegenReqId","genReqId","requestId","keepSqBrackets","setQueryStringParam","replaceOnly","regex","qs","pound","currentCustomerId","currentUserId","requiredParams","requiredParamSafetyNet","parameterName","requestOptions","getValue","requestParamValue","parameterExists","existingUrlParamVal","paramValue","safetyNetData","warnings","ajaxAction","getAccountContextQueryString","requestKeyPref","ajaxRequests","verificationToken","contentType","__RequestVerificationToken","addOption","addRequestToken","cotentType","onsuccessEventData","hideLoadingPanelOnSuccess","hideLoadingPanelOnError","ignoreBeforeAjax","traditional","cache","skipCache","requestKey","xhrFields","beforeSend","autoPageReloader","shouldAutoReloadPage","Errors","onJsonError","onSuccess","errorThrown","onAjaxError","complete","onAjaxComplete","sessionValidatorAvailable","legacyModule","sessionValidator","validateSession","fileCacheHandlerAvailable","fileCacheHandler","handleData","getHandle","addToRequest","responseHandler","originalSuccess","addFileCacheHandler","segmentPostFix","dataFormKeys","segmentKey","keys","segmentValue","getContext","stateDateRange","osd","ui","Controls","DateRangeFilter","getDateRange","BiDateRange","lcid","Locale","userLcid","RangeId","grain","RangeStartDate","formatedStart","RangeEndDate","formatedEnd","Rangelcid","addBIDateRange","hasOwnProperty","addGridDataContext","request","dataServiceAvailable","dataService","communicate","sendRequest","instrument","addGridDataContextAndReturnRequest","dataToBeAdded","contextParams","targetPanel","blockPanel","imgPanel","coveredElement","coveredBound","resizeCheckInterval","getElementBound","setSize","w","wHeight","msie","wWidth","scrollLeft","scrollTop","clearInterval","setInterval","bound1","bound2","newBound","updateText","imgPanelHtml","getBlockerHtml","fixedPosition","positionStyle","hideLayer","targetLayerId","targetId","ids","checkForIds","additionalIds","json","isJSON","redirect","redirectUrl","custId","endUrl","entitySeparator","showEntityErrors","fieldId","errorPanelId","InvalidEntities","ValidEntities","EntityErrors","empty","Cache","ResetImage","pagePrev","elementPrefix","shouldShow","curPageEl","curVal","prevVal","toggle","toggleClass","pageNext","nextVal","Callback","eventArgs","errorData","parseJSON","clickEvent","callBack","containerID","showLoading","arrow","jarrow","Countdown","timer","seconds","updateStatus","onUpdateStatus","counterEnd","onCounterEnd","decrementCounter","overrideLegacyJQueryFromWebpack","originalGetUrlParameter","AntiForgeryError","second","beforeTabAjax","initializeKendo","kendo","DecimalFormatter","dtFormat","CultureDateTimeFormat","am","AMDesignator","pm","PMDesignator","groupChar","decimalChar","groupSize","numberOfDigits","AccountCurrencyCode","cultures","CultureName","numberFormat","pattern","percent","symbol","calendars","standard","days","CultureDayNames","namesAbbr","CultureDayNamesShort","namesShort","CultureDayNamesMin","months","CultureMonthNames","CultureMonthNamesShort","AM","PM","patterns","ShortDatePattern","D","LongDatePattern","F","FullDateTimePattern","g","ShortTimePattern","G","LongTimePattern","MonthDayPattern","M","SortableDateTimePattern","t","T","u","UniversalSortableDateTimePattern","YearMonthPattern","Y","firstDay","CultureFirstDay","culture","initializeOSD","subscribers","unsubscribe","unsubscribeAll","publish","copy","shimLegacyAccessibility","ajaxsetupWebpack","ajaxsetupImport","BingBaseUrl","MaxSelectedImagesPerAccountDefault","MaxSelectedImagesPerAdGroupOrCampaignForV2","MaxSelectedImagesPerAdGroupOrCampaign","dateFilterFromWebpack","dateFilterImport","prefetchResources","prefetchResourcesImport","filterStroage","JSData","BluebirdPromise","__requirejs_packages_temp_global__","initPrefetch","newUIResources","serviceWorkerPreFetchUrls","initLegacyComponents","_ref2$scope","_serverContext$UserPr","AccountLevelPreferences","UserLevelPreferences","CurrentAccountInActive","_serverContext$Servic","AdInsightAPI","MmcAPI","KeywordBidRange","KeywordCPVBidRange","KeywordCPMBidRange","ProductGroupBidRange","VideoViewsCPVBidRange","VideoViewsCPMBidRange","RecommendCPCBid","WindowsStoreAdsBidRange","ClientCenterBaseUrl","PublicPath","UtcOffsetHours","TemplatesPathUrl","imagePath","AudienceSettings","RemarketingPolicyLink","BulkAssociationMaxLimit","BulkAudienceCriterionMaxLimit","BudgetRange","getBudgetRangeOld","isLegal","limitValue","getLimitValueById","perCampaign","perAdGroup","perAccount","getLimitValue","MaxSelectedImagesPerCampaign","MaxSelectedImagesPerAdGroup","MaxSelectedImagesPerAccount","featureConfig","Feature","AdExtension","loadSystemLimit","IsNewUI","AppExtensionIconBaseUrl","advertisercustomer_id","ClientInstrumentation","isEnabled","BingAdsWebApiUri","BingAdsAdInsightWebApiUri","DayNames","AbbreviatedDayNames","ShortestDayNames","MonthNames","AbbreviatedMonthNames","FirstDayOfWeek","GMBTaskItemType","BingPlacesTaskItemType","CCBaseUrl","CultureLcid","LocaleID","odataPath","isLocal","BingAdsMmcWebApiUri","KeywordPercentCpcBidRange","CeilingValue","FloorValue","KeywordCommissionRateRange","AccountTimeZone","audienceSettings","percentSymbol","percentGroupSize","percentGroupSeparator","percentPositivePattern","percentDecimalDigits","percentDecimalSeparator","once","router_new","getContextQueryUrlParams","dateFilter","getFilterPromise","dateRangeLegacy","compared","initDateFilter","attributes","$daterange","defineProperty","run","appendToTmplItems","oldManip","domManip","tmplItmAtt","htmlExpr","newTmplItems","wrappedItems","topTmplItem","itemKey","cloneIndex","stack","newTmplItem","parentItem","newItem","_wrap","nodes","calls","tiCalls","nest","tiNest","tiWrap","tiHtml","update","tiUpdate","_ctnt","build","tmplItem","nested","frag","before","middle","after","storeTmplItems","unencode","innerHTML","childNodes","buildTmplFn","markup","Function","slash","fnargs","parens","def","exprAutoFnDetect","tag","_default","$1","$2","updateWrapped","l","keySuffix","newClonedItems","nodeType","getElementsByTagName","processItemKey","pntKey","pntItem","pntNode","cloneTmplItem","removeAttribute","textOnly","innerText","textContent","outerHTML","div","cloneNode","outerHtml","coll","insertBefore","prependTo","replaceAll","tmplItems","insert","clone","pushStack","table","dmArgs","argsLength","fragClone","afterManip","topLevel","dataItem","encode","__publicpath__","origin","__webpack_public_path__","SDKCampaignCreationPage","SDKCampaignOverviewPage","SDKAssetGroupSettingsPage","SDKTargetSettingsPage","SDKBudgetSettingsPage","sdkBootstrap","light","components","ThemeFluentComponentSettings","core","ThemeFluent","dark","DarkThemeComponentSettings","DarkTheme","CampaignLevelCampaignType","AccountLevelCampaignType","sizeOptions","small","supportedWidth","medium","large","withLargerOption","menuItems","withSizeOption","getCardOptions","edmLevel","extraFilter","_ref2$isKeyword","isKeyword","_ref2$isSearchTerm","isSearchTerm","targetNagivationLevel","PerformanceMax","AdGroups","constructOptions","Keywords","SearchTerms","recommendationsTileTitleKey","typeId","hideForCampaignType","PerformanceMaxCampaignsPhaseTwoOverviewPerf","cssKey","descKey","titleKey","addCardTitleKey","defaultIn","enabled","sizeOption","preDefinedMenuItems","enabledForSmart","validFor","Hotel","IsBAARecommendationsEnabled","useNewI18n","Audience","IsBAACompetitionEnabled","IsHideAuctionInsightsCompetitionUI","isValidForNavigationLevel","cardConfig","getContentConstructor","onMounted","deps","innerModules","contentConstructor","metricFormatter","s$i18n","GridCard","bingadsGridColumn","scopeService","appendLearnMoreLink","i18nErrors","createEditableFilterStorage","DeviceCard","TopChangesCard","ConversionTrackingCard","ERROR","_bingads_webui_component_legacy_legacy_router_index"],"sourceRoot":""}