{"version":3,"file":"static/js/application.initial~d91a9049.a8b19b44.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 Microsoft Advertising support. '),\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 Microsoft Advertising support. '),\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 Microsoft Advertising support.'),\r\n [DECISIONS.DENY_CHANGE]: _TL_('Microsoft Advertising won\\'t update your bid strategy. If you need to change your selection, please contact Microsoft Advertising support.'),\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","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 } 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 } 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 = ({ i18n, permissions, serverContext }) => {\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 {\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 }, []);\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 setIsLoading(true);\r\n\r\n return updateConsentModeDecision(payload).then(res => res)\r\n .catch(err => Promise.reject(err))\r\n .finally(() => {\r\n setIsLoading(false);\r\n });\r\n }, [decision, emails]);\r\n\r\n const onConfirmDecision = useCallback(() => {\r\n makeDecision().then(() => {\r\n setCurrentStep(STEPS.DONE_STEP);\r\n }).catch((err) => {\r\n setServerError(err);\r\n });\r\n }, [makeDecision]);\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(({ NeedShowPopUp } = {}) => {\r\n setShouldShowDialog(!!NeedShowPopUp);\r\n });\r\n }, [cid]);\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};\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 .post(payload).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 { 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 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","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","_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","post","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","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","scenario","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":""}