{"version":3,"file":"static/js/application.async.non-landing~4dfd24c2.05444d65.chunk.js","mappings":"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","sources":["../../../node_modules/@bingads-webui-campaign/amazon-import/src/page/step-config.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/repository/amazon-import-repository.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/repository/amazon-import-repository-utils.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/repository/amazon-login-repository.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/repository/permission-factory.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-account-step/prefetch.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-login-step/login-container.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-login-step/index.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-login-step/action-bar-config.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-login-step/prefetch.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-account-step/action-bar-config.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-account-step/account-selector.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-account-step/index.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/start-smart-import-step/action-bar-config.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/start-smart-import-step/smart-import-step-prefetch.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/helpers/create-schedule-runnow-job.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/start-smart-import-step/index.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-import-option-step/action-bar-config.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-import-option-step/amazon-import-option-config.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-import-option-step/import-options-step.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/start-import-advanced-step/action-bar-config.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/start-import-advanced-step/index.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-import-summary-step/save-schedule-info.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-import-summary-step/get-import-details-view.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/amazon-import-summary-step/index.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/steps/import-status-step/index.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/page/step-factory.js","../../../node_modules/@bingads-webui-campaign/amazon-import/src/page/index.js","../../../node_modules/@bingads-webui-campaign/asset-inline-edit/src/ad-helper.js","../../../node_modules/@bingads-webui-campaign/asset-inline-edit/src/instrumentation-schema.js","../../../node_modules/@bingads-webui-campaign/asset-inline-edit/src/text-asset-inline-edit-mma.js","../../../node_modules/@bingads-webui-campaign/asset-inline-edit/src/text-asset-inline-edit-rsa.js","../../../node_modules/@bingads-webui-campaign/auction-insight-popup/src/instrumentation-schema.js","../../../node_modules/@bingads-webui-campaign/auction-insight-popup/src/action-cause-container.js","../../../node_modules/@bingads-webui-campaign/auction-insight-popup/src/auction-insight-log-service.js","../../../node_modules/@bingads-webui-campaign/auction-insight-popup/src/auction-insight-popup.js","../../../node_modules/@bingads-webui-campaign/auction-insight-popup/src/auction-insight-popup-factory.js"],"sourcesContent":["/* eslint-disable no-undef */\r\n\r\nexport const StepConstants = {\r\n SignInStep: {\r\n path: 'signInStep',\r\n stepName: _TL_('Sign in to Amazon Ads'),\r\n title: _TL_('Sign in to Amazon Ads'),\r\n },\r\n ChooseAccounts: {\r\n path: 'chooseAccounts',\r\n stepName: _TL_('Choose accounts'),\r\n title: _TL_('Choose accounts'),\r\n },\r\n StartImportSmart: {\r\n path: 'startImport.smart',\r\n stepName: _TL_('Set schedule'),\r\n title: _TL_('You\\'re ready to start your import'),\r\n },\r\n AmazonCampaignStep: {\r\n path: 'amazonCampaignStep',\r\n stepName: _TL_('Choose campaigns'),\r\n title: _TL_('Which campaigns do you want to import?'),\r\n },\r\n ImportSummaryStep: {\r\n path: 'importSummaryStep',\r\n title: _TL_('Import Summary'),\r\n },\r\n ImportOptionStep: {\r\n path: 'importOptionStep',\r\n stepName: _TL_('Choose items and options'),\r\n title: _TL_('Choose which items to import and the options to set for them.'),\r\n },\r\n StartImportAdvanced: {\r\n path: 'startImport.advanced',\r\n stepName: _TL_('Set schedule'),\r\n title: _TL_('Set schedule'),\r\n },\r\n ImportStatusStep: {\r\n path: 'importStatusStep',\r\n title: _TL_('Import Status'),\r\n },\r\n};\r\n","// import Promise from 'bluebird';\r\nimport { CommonImportRepository } from '@bingads-webui-campaign/import-shared-repositories';\r\nimport Promise from 'bluebird';\r\nimport { StringPayload } from '@bingads-webui/azure-upload';\r\nimport _ from 'underscore';\r\nimport { filterAndLocalizeAmazonCampaignsUtil } from './amazon-import-repository-utils';\r\n\r\nconst startAmazonSessionUrlTmpl = '/ImportSession/StartAmazonSession(CustomerId=:customer_id,AccountId=:account_id)?authCode={{AuthCode}}&redirectUri={{redirectUri}}';\r\nconst startAmazonSessionWithTokenUrlTmpl =\r\n 'ImportSession/StartAmazonSession(CustomerId=:customer_id,AccountId=:account_id)?refreshToken={{Token}}';\r\nconst amazonAccountsUrlTmpl =\r\n '/ImportSession/AmazonAccounts(CustomerId=:customer_id,AccountId=:account_id,SessionId={{SessionId}})';\r\nconst amazonCampaignsUrlTmpl =\r\n '/ImportSession/AmazonCampaigns(CustomerId=:customer_id,AccountId=:account_id,SessionId={{SessionId}})';\r\nconst keyNameOfSessionIdInCookie = 'OAuth2_AmazonImportSessionId';\r\nconst keyNameOfLoginAccountInCookie = 'OAuth2_AmazonLoginAccount';\r\nconst amazonEntitiesBulkFileTypeNum = 17;\r\nconst importType = 'AmazonImport';\r\nconst amazonAdsEntityBulkFileType = 'GoogleAdsEntityIdFile';\r\n\r\nexport class AmazonImportRepository extends CommonImportRepository {\r\n constructor({ deps }) {\r\n super({ deps, type: 'AmazonImport', importType });\r\n this.edm = deps.edm;\r\n this.jsData = deps.jsData;\r\n if (this.edm != null) {\r\n this.taskItemOptions = {\r\n adapter: 'odata',\r\n entitySet: this.edm.currentAccount.TaskItems,\r\n };\r\n }\r\n this.ccJsData = deps.ccJsData;\r\n }\r\n\r\n getAmazonSessionIdFromCookie() {\r\n return this.getValueInSubImportCookieByAccountId(keyNameOfSessionIdInCookie)[0];\r\n }\r\n\r\n isUserLoggedIn() {\r\n return !!this.getAmazonSessionIdFromCookie();\r\n }\r\n\r\n setAmazonImportAccountInfoInCookie({ loginAccount, sessionId }) {\r\n this.addSubCookieToImportCookie({\r\n [keyNameOfLoginAccountInCookie]: loginAccount,\r\n [keyNameOfSessionIdInCookie]: sessionId,\r\n });\r\n }\r\n\r\n startAmazonSessionInternal(url, notUpdateCookie = false) {\r\n return this.odata.post(url)\r\n .then(({ AmazonSessionId: sessionId, AmazonLoginEmail: loginAccount }) => {\r\n if (sessionId && !notUpdateCookie) {\r\n this.setAmazonImportAccountInfoInCookie({\r\n sessionId,\r\n loginAccount,\r\n });\r\n return sessionId;\r\n }\r\n return sessionId;\r\n });\r\n }\r\n\r\n startAmazonSession(authCode, notUpdateCookie) {\r\n const url = startAmazonSessionUrlTmpl\r\n .replace('{{AuthCode}}', authCode)\r\n .replace(':account_id', this.aid);\r\n\r\n return this.startAmazonSessionInternal(url, notUpdateCookie);\r\n }\r\n\r\n startAmazonSessionWithToken(token) {\r\n const url = startAmazonSessionWithTokenUrlTmpl\r\n .replace('{{Token}}', token)\r\n .replace(':account_id', this.aid);\r\n\r\n return this.startAmazonSessionInternal(url);\r\n }\r\n\r\n logout() {\r\n this.removeImportCookieValue(keyNameOfSessionIdInCookie, keyNameOfLoginAccountInCookie);\r\n }\r\n\r\n getAmazonLoginAccountFromCookie() {\r\n return this.getValueInSubImportCookieByAccountId(keyNameOfLoginAccountInCookie)[0];\r\n }\r\n\r\n getAmazonAccountName() {\r\n return this.getAmazonLoginAccountFromCookie();\r\n }\r\n\r\n getAmazonAccounts() {\r\n const sessionId = this.getAmazonSessionIdFromCookie();\r\n const url = amazonAccountsUrlTmpl\r\n .replace('{{SessionId}}', sessionId);\r\n\r\n return this.odata.get(url).then(accounts => _.map(accounts, account => ({\r\n ...account,\r\n Currency: String(account.Currency).toUpperCase(),\r\n })));\r\n }\r\n\r\n getSelectionDataFromBlob(blobName) {\r\n return this.getEntitiesBlob(blobName)\r\n .then(blob =>\r\n ({\r\n selectedCampaignIds: blob.CampaignIds,\r\n }));\r\n }\r\n\r\n getEntitiesBlob(blobName) {\r\n return this.getBulkBlob(blobName, amazonEntitiesBulkFileTypeNum);\r\n }\r\n\r\n getAmazonCampaigns(amazonAccountId, marketPlace = 1) {\r\n const sessionId = this.getAmazonSessionIdFromCookie();\r\n let url = amazonCampaignsUrlTmpl.replace('{{SessionId}}', sessionId);\r\n\r\n url = this.formatUrl({\r\n url,\r\n queryParameters: {\r\n ExternalAccountId: amazonAccountId,\r\n AmazonMarketPlace: marketPlace,\r\n },\r\n });\r\n\r\n return this.odata.get(url)\r\n .then(data => filterAndLocalizeAmazonCampaignsUtil(data, this.deps.newI18n, this.logError));\r\n }\r\n\r\n prepareForCampaignSelectionStep(customerId, marketPlace, blobName) {\r\n const promises = {};\r\n promises.amazonCampaigns = this.getAmazonCampaigns(customerId, marketPlace);\r\n\r\n if (blobName) {\r\n promises.selectionData = this.getSelectionDataFromBlob(blobName)\r\n .then((selectionData) => {\r\n const finalState = {};\r\n finalState.selectedCampaignIds = selectionData.selectedCampaignIds;\r\n return finalState;\r\n });\r\n }\r\n\r\n return Promise.props(promises)\r\n .then(({ amazonCampaigns, selectionData }) => {\r\n const finalState = { amazonCampaigns };\r\n if (selectionData) {\r\n const availableIdBoolMap = _.object(_.map(amazonCampaigns, obj => [obj.Id, true]));\r\n const campaignIdFilter = ids => _.filter(ids, id => availableIdBoolMap[id]);\r\n const selectedCampaignIds = campaignIdFilter(selectionData.selectedCampaignIds);\r\n _.extend(finalState, {\r\n selectedCampaignIds: _.isEmpty(selectedCampaignIds) ? null : selectedCampaignIds,\r\n });\r\n }\r\n return finalState;\r\n });\r\n }\r\n\r\n getAmazonImportUserPreferences() {\r\n let preferences = {};\r\n\r\n return this.getImportUserPreferencesWithBMCandMinInfo('AmazonImport')\r\n .then((userPref) => {\r\n preferences = _.extend(preferences, userPref);\r\n\r\n return preferences;\r\n });\r\n }\r\n\r\n getAmazonImportInfoFromCookie() {\r\n const result = this.getValueInSubImportCookieByAccountId(\r\n keyNameOfSessionIdInCookie,\r\n keyNameOfLoginAccountInCookie\r\n );\r\n\r\n return {\r\n sessionId: result[0],\r\n amazonAccountName: result[1],\r\n };\r\n }\r\n\r\n serializeAmazonEntitiesSelectionDataToStringPayload(selectionData) {\r\n return new StringPayload({\r\n content: JSON.stringify({\r\n CampaignIds: selectionData.selectedCampaignIds,\r\n }),\r\n });\r\n }\r\n\r\n prepareAmazonImportContext({\r\n amazonCustomerId,\r\n initialAmazonAccount,\r\n amazonEntitiesSelectionData,\r\n uid,\r\n }) {\r\n let sessionId;\r\n let amazonAccountName;\r\n\r\n if (initialAmazonAccount) {\r\n ({ sessionId } = initialAmazonAccount);\r\n ({ amazonAccountName } = initialAmazonAccount);\r\n } else {\r\n const info = this.getAmazonImportInfoFromCookie();\r\n\r\n ({ sessionId } = info);\r\n ({ amazonAccountName } = info);\r\n\r\n if (!sessionId) {\r\n this.logTrace(`prepareAmazonImportContext: failed to getAmazonImportInfoFromCookie with info ${JSON.stringify(info)}`);\r\n sessionId = this.getAmazonSessionIdFromCookie();\r\n amazonAccountName = this.getAmazonAccountName();\r\n\r\n if (!sessionId) {\r\n this.logTrace(`prepareAmazonImportContext: failed to getAmazonSessionIdFromCookie with sessionId ${sessionId} amazonAccountName ${amazonAccountName}`);\r\n }\r\n }\r\n }\r\n\r\n const amazonImportContext = {\r\n '@odata.type': '#Model.AmazonImportContext',\r\n SessionId: sessionId,\r\n ProfileId: String(amazonCustomerId),\r\n AccountName: amazonAccountName,\r\n AmazonSessionUserId: String(uid),\r\n AmazonMarketPlaceType: 'NorthAmerica', // hard coded here since we only support NA for now\r\n };\r\n\r\n if (amazonEntitiesSelectionData) {\r\n return this.uploadToAzureBlobViaOdata({\r\n bulkFileType: amazonAdsEntityBulkFileType,\r\n payload:\r\n this.serializeAmazonEntitiesSelectionDataToStringPayload(amazonEntitiesSelectionData),\r\n }).then(blob =>\r\n ({\r\n ...amazonImportContext,\r\n AmazonEntitiesBlobName: blob.BlobName,\r\n }));\r\n }\r\n\r\n return Promise.resolve(amazonImportContext);\r\n }\r\n\r\n prepareAmazonImportTaskItem({\r\n importOptions,\r\n stepState,\r\n }) {\r\n const {\r\n importUserPreferences = {},\r\n notificationType,\r\n notificationEmailAddresses,\r\n timeZoneId,\r\n name,\r\n cron,\r\n taskItemState,\r\n } = importOptions;\r\n\r\n const {\r\n amazonCustomerId,\r\n initialAmazonAccount,\r\n amazonEntitiesSelectionData,\r\n } = stepState;\r\n\r\n return this.prepareAmazonImportContext({\r\n amazonCustomerId,\r\n initialAmazonAccount,\r\n amazonEntitiesSelectionData,\r\n uid: this.uid,\r\n })\r\n .then(amazonImportContext =>\r\n (_.extend(\r\n this.prepareCompleteImportTaskItem(importUserPreferences, timeZoneId), {\r\n NotificationType: notificationType,\r\n NotificationEmailAddresses: notificationEmailAddresses,\r\n AmazonImportContext: amazonImportContext,\r\n ImportType: importType,\r\n '@odata.type': '#Model.AmazonImportTaskItem',\r\n Type: `AmazonImport${this.testTypeSuffix}`,\r\n },\r\n // pass IsAutoFrequency and IsSmartImport if the properties exist\r\n _.pick(importOptions, 'IsAutoFrequency', 'IsSmartImport'),\r\n !!name && { Name: name },\r\n !!taskItemState && { State: taskItemState },\r\n !!cron && { Cron: cron }\r\n )));\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport const filterAndLocalizeAmazonCampaignsUtil = (campaigns, i18n) => {\r\n const filteredAndLocalized = _.chain(campaigns)\r\n .filter((campaign) => {\r\n const status = campaign.Status;\r\n\r\n return status !== 'Draft' && status !== 'Delete' && status !== 'Deleted';\r\n })\r\n .map(({\r\n Id,\r\n Name,\r\n Status,\r\n }) => ({\r\n Id,\r\n Name,\r\n Status,\r\n Type: i18n.getString(_TL_('Sponsored products')), // default type for Amazon campaign\r\n }))\r\n .value();\r\n\r\n return filteredAndLocalized;\r\n};\r\n","import Promise from 'bluebird';\r\nimport $ from 'jquery';\r\n\r\nexport class AmazonLoginRepository {\r\n static CLIENT_ID = 'amzn1.application-oa2-client.4aaa2dcd38834711973c9ec98eba2e74';\r\n static SCOPE = 'profile cpc_advertising:campaign_management';\r\n static isAmazonLoginReady = false;\r\n\r\n ensureAmazonLoginReady() {\r\n // we need to remove the cached iframe proxy,\r\n // or the login popup cannot be mounted in other pages\r\n // because the discrepancy of different URLs.\r\n $('#amazon-root').empty();\r\n if (!AmazonLoginRepository.isAmazonLoginReady) {\r\n return new Promise((resolve) => {\r\n window.onAmazonLoginReady = () => {\r\n window.amazon.Login.setClientId(AmazonLoginRepository.CLIENT_ID);\r\n window.amazon.Login.setUseCookie(true);\r\n AmazonLoginRepository.isAmazonLoginReady = true;\r\n resolve(window.amazon);\r\n };\r\n window.require(['https://assets.loginwithamazon.com/sdk/na/login1.js']);\r\n });\r\n }\r\n return Promise.resolve(window.amazon);\r\n }\r\n\r\n login() {\r\n return this.ensureAmazonLoginReady()\r\n .then(amazon => new Promise((resolve, reject) => {\r\n amazon.Login.authorize({\r\n interactive: 'always',\r\n popup: true,\r\n scope: AmazonLoginRepository.SCOPE,\r\n response_type: 'code',\r\n code_challenge_method: 'plain',\r\n }, (response) => {\r\n if (response.error) {\r\n reject(response.error);\r\n return;\r\n }\r\n resolve(response.code);\r\n });\r\n }));\r\n }\r\n\r\n logout() {\r\n return this.ensureAmazonLoginReady().then((amazon) => {\r\n amazon.Login.logout();\r\n });\r\n }\r\n}\r\n","import { CommonPermissionFactory } from '@bingads-webui-campaign/import-shared-repositories';\r\n\r\nexport class PermissionFactory extends CommonPermissionFactory {\r\n constructor({\r\n permissions,\r\n }) {\r\n super({\r\n permissions,\r\n });\r\n\r\n this.permissions = permissions;\r\n }\r\n\r\n // TODO: enable the pilots when implementing for Amazon\r\n IsImportSmartScheduleStepImprovementPhaseTwoEnabled = () => false;\r\n IsImportSmartScheduleStepPanelImprovementEnabled = () => false;\r\n IsImportSmartScheduleStepPanelDataRestoreImprovementEnabled = () => false;\r\n}\r\n","import _ from 'underscore';\r\nimport { withAccountSelectionStepPrefetch } from '@bingads-webui-campaign/imports-core';\r\n\r\nconst prefetchConfig = {\r\n handleError: ({\r\n err,\r\n handleGenericError,\r\n }) => {\r\n handleGenericError(err);\r\n },\r\n fetchAccounts: repository =>\r\n repository.getAmazonAccounts(),\r\n getExistingAccounts: context => context.amazonAccounts,\r\n getExistingSelectedAccount: context => context.selectedAccounts,\r\n getSelectedAccounts: (accounts, initialSettings) => {\r\n let selectedAccounts = [];\r\n if (initialSettings.AmazonImportContext && initialSettings.AmazonImportContext.ProfileId) {\r\n const { ProfileId } = initialSettings.AmazonImportContext;\r\n\r\n selectedAccounts = _.filter(accounts, item => +item.Id === +ProfileId);\r\n }\r\n return selectedAccounts;\r\n },\r\n getNewStateAfterAccountsLoaded: (accounts, __, originalState) => ({\r\n ...originalState,\r\n amazonAccounts: accounts,\r\n }),\r\n};\r\n\r\nexport const withAmazonImportAccountSelectionStepPrefetch = Step =>\r\n withAccountSelectionStepPrefetch(Step, prefetchConfig);\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { HelpLink } from '@bingads-webui-react/help-link';\r\nimport { ImportType, LoginDescription, handleAmazonLoginError } from '@bingads-webui-campaign/imports-core';\r\nimport { PrimaryButton, DefaultButton } from '@bingads-webui-react/fabric-with-signal';\r\nimport { withActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nconst logoutResetData = {\r\n // account seletor page data\r\n selectedAccounts: [],\r\n amazonAccounts: null,\r\n autoConvertCurrencyEnabled: true,\r\n\r\n // option page data\r\n importOptions: null,\r\n previousImportOptions: null,\r\n // campagin selector page data\r\n CampaignIds: null,\r\n amazonEntitiesSelectionData: null,\r\n};\r\n\r\nfunction style() {\r\n return {\r\n descriptionBox: {\r\n fontSize: 14,\r\n lineHeight: '25px',\r\n marginBottom: 80,\r\n },\r\n link: {\r\n color: '#0078D4',\r\n textDecoration: 'underline',\r\n '& a.HelpTopic:focus': {\r\n outline: '1px solid #605e5c',\r\n },\r\n },\r\n errorMessage: {\r\n color: '#d13438',\r\n marginTop: 20,\r\n },\r\n buttonMargin: {\r\n marginTop: '10px',\r\n marginRight: '10px',\r\n },\r\n };\r\n}\r\n\r\nexport class UnstyledLoginContainer extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.deps = props.context.deps;\r\n this.repository = props.context.repository;\r\n this.loginRepository = props.context.loginRepository;\r\n this.goToNextStep = props.context.goToNextStep;\r\n this.handleGenericError = props.context.handleGenericError;\r\n this.patchState = props.context.patchState;\r\n this.newI18n = this.deps.newI18n;\r\n this.perfMarker = this.deps.perfMarker;\r\n this.loginPerfMarker = this.deps.loginPerfMarker;\r\n this.state = {\r\n errorMsg: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.loginPerfMarker) {\r\n this.loginPerfMarker.done();\r\n }\r\n }\r\n\r\n loginToAmazon = () => {\r\n if (this.deps.token) {\r\n return this.repository.startAmazonSessionWithToken(this.deps.token)\r\n .then(() => this.toNextStep())\r\n .catch(this.handleError);\r\n }\r\n return this.loginRepository.login()\r\n .then(authCode => this.repository.startAmazonSession(authCode))\r\n .then(() => this.toNextStep())\r\n .catch(this.handleError);\r\n };\r\n\r\n logout = () => {\r\n this.repository.logout();\r\n this.patchState({\r\n isLoggedIn: false,\r\n ...logoutResetData,\r\n });\r\n };\r\n\r\n handleError = (res) => {\r\n this.setState({\r\n errorMsg: handleAmazonLoginError(res, this.newI18n),\r\n });\r\n };\r\n\r\n toNextStep = () => {\r\n const sessionId = this.repository.getAmazonSessionIdFromCookie();\r\n if (!sessionId) {\r\n this.logout();\r\n this.setState({\r\n errorMsg: handleAmazonLoginError({ error: 'amazon_already_signed_out' }, this.newI18n),\r\n });\r\n return;\r\n }\r\n this.goToNextStep(this.props.nextStepPath);\r\n this.patchState({\r\n isLoggedIn: true,\r\n });\r\n };\r\n\r\n isLoggedIn = () => this.repository.isUserLoggedIn();\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const isInActiveAccount = this.deps.config.get('CurrentAccountInActive');\r\n\r\n return (\r\n
\r\n
\r\n \r\n {this.newI18n.getString(_TL_('Get your campaigns up and running quickly by importing them directly from Amazon Ads into Microsoft Advertising account.'))} \r\n \r\n \r\n {this.newI18n.getString(_TL_('Before you start, make sure you understand')) } \r\n \r\n \r\n { this.newI18n.getString(_TL_('what will be imported')) }.\r\n \r\n \r\n \r\n
\r\n
\r\n {this.isLoggedIn() ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n { isInActiveAccount && { this.newI18n.getString(_TL_('Imports can only be ran from active accounts.'))}}\r\n { this.state.errorMsg }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nUnstyledLoginContainer.propTypes = {\r\n context: PropTypes.shape({\r\n loginRepository: PropTypes.shape({}).isRequired,\r\n deps: PropTypes.shape({\r\n logTrace: PropTypes.func,\r\n newI18n: PropTypes.shape({}),\r\n }).isRequired,\r\n loginErrorMessage: PropTypes.string,\r\n repository: PropTypes.shape({}).isRequired,\r\n patchState: PropTypes.func.isRequired,\r\n goToNextStep: PropTypes.func.isRequired,\r\n handleGenericError: PropTypes.func.isRequired,\r\n }).isRequired,\r\n classes: PropTypes.shape().isRequired,\r\n nextStepPath: PropTypes.string.isRequired, // eslint-disable-line\r\n};\r\n\r\nexport const LoginContainer = withDefaultStyles(\r\n withActivityContext(UnstyledLoginContainer),\r\n style\r\n);\r\n\r\nexport const renderDescription = (i18n, nextStepPath, repository) => {\r\n const signOut = (contextValues) => {\r\n const {\r\n goToNextStep,\r\n patchState,\r\n toggleImportType,\r\n } = contextValues;\r\n\r\n repository.logout();\r\n patchState({\r\n isLoggedIn: false,\r\n logOutButtonClicked: true,\r\n ...logoutResetData,\r\n });\r\n\r\n toggleImportType(ImportType.Smart);\r\n goToNextStep(nextStepPath);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Activity } from '@bingads-webui-react/hoc-with-signal';\r\nimport { ImportCoreContext, StepContainer } from '@bingads-webui-campaign/imports-core';\r\nimport { LoginContainer } from './login-container';\r\nimport { getActionBarItems } from './action-bar-config';\r\nimport { withLoginStepPrefetch } from './prefetch';\r\n\r\nfunction AmazonLoginStepWithoutPrefetch(props) {\r\n const { stepTitle, stepPrefetchHoc } = props;\r\n const WrappedLoginContainer =\r\n stepPrefetchHoc ? stepPrefetchHoc(LoginContainer) : LoginContainer;\r\n\r\n return (\r\n \r\n {\r\n (contextValues) => {\r\n const { deps } = contextValues;\r\n const { getUniqueImportGUID } = deps;\r\n const uniqueImportId = (getUniqueImportGUID && getUniqueImportGUID()) || '';\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\nAmazonLoginStepWithoutPrefetch.propTypes = {\r\n stepTitle: PropTypes.string.isRequired,\r\n nextStepPath: PropTypes.string.isRequired,\r\n stepPrefetchHoc: PropTypes.func,\r\n};\r\n\r\nAmazonLoginStepWithoutPrefetch.defaultProps = {\r\n stepPrefetchHoc: null,\r\n};\r\n\r\nexport const AmazonLoginStep = withLoginStepPrefetch(AmazonLoginStepWithoutPrefetch);\r\n\r\nexport { renderDescription } from './login-container';\r\n","export const getActionBarItems = () => {\r\n const config = [{\r\n type: 'button-cancel',\r\n }];\r\n\r\n return config;\r\n};\r\n","/* eslint-disable react-hooks/rules-of-hooks */\r\nimport React, { useContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ImportCoreContext } from '@bingads-webui-campaign/imports-core';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nimport { StepConstants } from '../../page/step-config';\r\n\r\nexport const withLoginStepPrefetch = (PreExecuteStep) => {\r\n const LoginStepPrefetch = React.memo((props) => {\r\n const importCoreContext = useContext(ImportCoreContext);\r\n\r\n const {\r\n rootContainerClassName,\r\n } = props;\r\n\r\n const {\r\n deps,\r\n repository,\r\n patchState,\r\n amazonAccounts: existingAmazonAccount,\r\n logOutButtonClicked = false,\r\n goToNextStep,\r\n } = importCoreContext;\r\n\r\n const {\r\n taskItemId,\r\n config,\r\n newI18n,\r\n scope,\r\n } = deps;\r\n\r\n if (!taskItemId) {\r\n return ;\r\n }\r\n\r\n const [loading, setLoading] = useState(true); // to notify api is loading.\r\n const [dispatchedOdataCall, setDispatchedOdataCall] = useState(false);\r\n\r\n let initialState = {};\r\n\r\n if (loading &&\r\n !dispatchedOdataCall &&\r\n (!logOutButtonClicked && !existingAmazonAccount)\r\n ) {\r\n setDispatchedOdataCall(true);\r\n repository.getImportTaskItem(deps.taskItemId)\r\n .then((taskItem) => {\r\n // in this case, if user has signed in on import schedule page, update session Id\r\n const currentUserId = _.propertyOf(config.get('CurrentUser'))('Id');\r\n\r\n if (taskItem.ModifiedBy.Id !== currentUserId) {\r\n const { cookieHelperForEditImport } = deps;\r\n const sessionId = cookieHelperForEditImport.getSessionId(deps.taskItemId);\r\n\r\n cookieHelperForEditImport.deleteCookie();\r\n if (sessionId) {\r\n taskItem.AmazonImportContext.SessionId = sessionId; // eslint-disable-line\r\n } else {\r\n repository.logTrace(`Edit task met different userid. currentUserId: ${currentUserId} and taskItem.ModifiedBy.Id:${taskItem.ModifiedBy.Id}`);\r\n repository.logout();\r\n taskItem.AmazonImportContext.SessionId = null; // eslint-disable-line\r\n }\r\n }\r\n\r\n initialState.initialSettings = taskItem;\r\n initialState.initialSettings.taskItemId = deps.taskItemId;\r\n // the name is from last import\r\n initialState.isNameEdit = true;\r\n initialState.isEditingScheduledImport = true;\r\n\r\n return taskItem;\r\n })\r\n .then((taskItem) => {\r\n const {\r\n AccountName,\r\n SessionId,\r\n } = taskItem.AmazonImportContext;\r\n\r\n if (SessionId) {\r\n repository.setAmazonImportAccountInfoInCookie({\r\n loginAccount: AccountName,\r\n sessionId: SessionId,\r\n });\r\n }\r\n })\r\n .then(() => {\r\n if (initialState && initialState.isEditingScheduledImport) {\r\n const {\r\n AmazonImportContext: {\r\n CampaignIds,\r\n AmazonEntitiesBlobName,\r\n },\r\n ImportUserPreference,\r\n IsAutoFrequency,\r\n IsSmartImport,\r\n TimeZoneId,\r\n Cron,\r\n NotificationEmailAddresses,\r\n NotificationType,\r\n Name,\r\n } = initialState.initialSettings;\r\n let autoConvertCurrencyEnabled = ImportUserPreference &&\r\n ImportUserPreference.EnableAutoCurrencyConversion;\r\n if (_.isUndefined(autoConvertCurrencyEnabled) ||\r\n _.isNull(autoConvertCurrencyEnabled)) {\r\n autoConvertCurrencyEnabled = true;\r\n }\r\n\r\n initialState = _.extend(initialState, {\r\n IsAutoFrequency: !!IsAutoFrequency,\r\n IsSmartImport: !!IsSmartImport,\r\n ImportUserPreference,\r\n TimeZoneId,\r\n Cron,\r\n NotificationEmailAddresses,\r\n NotificationType,\r\n Name,\r\n CampaignIds,\r\n AmazonEntitiesBlobName,\r\n autoConvertCurrencyEnabled,\r\n });\r\n }\r\n return StepConstants.SignInStep.path;\r\n })\r\n .then(() => {\r\n patchState(initialState);\r\n // Go directly to importStep if passed in.\r\n const { importStep } = scope.values;\r\n\r\n if (importStep) {\r\n goToNextStep(importStep);\r\n }\r\n setLoading(false);\r\n })\r\n .finally(withUiBlock($(`.${rootContainerClassName}`), newI18n.getString(_TL_('Loading'))));\r\n } else if (existingAmazonAccount || logOutButtonClicked) {\r\n return ();\r\n }\r\n\r\n return loading ? null : ;\r\n });\r\n\r\n LoginStepPrefetch.propTypes = {\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n };\r\n\r\n return LoginStepPrefetch;\r\n};\r\n","export const getActionBarItems = ({\r\n shouldGoToNextStep,\r\n prevStepName,\r\n nextStepName,\r\n nextButtonDisabled,\r\n}) => {\r\n const config = [{\r\n type: 'button-back',\r\n prevStepName,\r\n }, {\r\n type: 'button-next',\r\n validateFunction: shouldGoToNextStep,\r\n nextStepName,\r\n disabled: !!nextButtonDisabled,\r\n }, {\r\n type: 'button-cancel',\r\n extraLeftPadding: true,\r\n }];\r\n\r\n return config;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n ADD_COLUMN,\r\n REMOVE_COLUMN,\r\n AccountSelector\r\n} from '@bingads-webui-campaign/imports-core';\r\n\r\nexport function AmazonImportAccountSelector(props) {\r\n const getSelectedListColumns = i18n => ([{\r\n key: 'account-name',\r\n name: i18n.getString(_TL_('Account name')),\r\n fieldName: 'Name',\r\n }, {\r\n key: REMOVE_COLUMN,\r\n name: '',\r\n fieldName: REMOVE_COLUMN,\r\n }]);\r\n\r\n const getAccountListColumns = i18n => ([{\r\n key: 'account-name',\r\n name: i18n.getString(_TL_('Amazon Ads account name')),\r\n fieldName: 'Name',\r\n minWidth: 100,\r\n maxWidth: 600,\r\n isResizable: true,\r\n }, {\r\n key: 'profile-id',\r\n name: i18n.getString(_TL_('Amazon Ads account ID')),\r\n fieldName: 'Id',\r\n minWidth: 170,\r\n maxWidth: 170,\r\n isResizable: false,\r\n }, {\r\n key: 'currency',\r\n name: i18n.getString(_TL_('Amazon Ads currency')),\r\n fieldName: 'Currency',\r\n minWidth: 155,\r\n maxWidth: 155,\r\n isResizable: false,\r\n }, {\r\n key: ADD_COLUMN,\r\n name: i18n.getString(_TL_('Add Button')),\r\n headerClassName: 'account-selector-add-column-header',\r\n fieldName: ADD_COLUMN,\r\n minWidth: 50,\r\n maxWidth: 50,\r\n }]);\r\n\r\n const { amazonAccounts } = props.context;\r\n\r\n // will remove this condition later once we want to enable multi-single conversion scenarios.\r\n const maxSelectedItems = 1;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nAmazonImportAccountSelector.propTypes = {\r\n context: PropTypes.shape({}).isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\nimport { Activity } from '@bingads-webui-react/hoc-with-signal';\r\nimport { StepContainer, ImportCoreContext, ErrorContainer } from '@bingads-webui-campaign/imports-core';\r\n\r\nimport { getActionBarItems } from './action-bar-config';\r\nimport { AmazonImportAccountSelector as AccountSelector } from './account-selector';\r\n\r\nclass AmazonAccountStepInternal extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: false,\r\n errorMsg: '',\r\n };\r\n this.WrappedAccountSelector =\r\n props.stepPrefetchHoc ? props.stepPrefetchHoc(AccountSelector) : AccountSelector;\r\n }\r\n\r\n componentDidUpdate() {\r\n const {\r\n contextValues,\r\n } = this.props;\r\n\r\n const {\r\n accountsPageError,\r\n } = contextValues;\r\n\r\n if (accountsPageError) {\r\n this.setError(accountsPageError);\r\n }\r\n }\r\n\r\n setError = msg => (\r\n this.setState({\r\n error: true,\r\n errorMsg: msg,\r\n })\r\n );\r\n\r\n clearError = () => (\r\n this.setState({\r\n error: false,\r\n })\r\n );\r\n\r\n validate = () => {\r\n const {\r\n contextValues,\r\n } = this.props;\r\n\r\n const {\r\n deps,\r\n selectedAccounts,\r\n } = contextValues;\r\n\r\n const i18n = deps.newI18n;\r\n\r\n if (_.isEmpty(selectedAccounts) || selectedAccounts.length === 0) {\r\n this.setError(i18n.getString(_TL_('Please choose an Amazon Ads account')));\r\n return new Promise(resolve => resolve(false));\r\n }\r\n\r\n return new Promise(resolve => resolve(true));\r\n };\r\n\r\n render() {\r\n const {\r\n contextValues,\r\n stepTitle,\r\n prevStepName,\r\n nextStepName,\r\n prevStepNameIfPrefetchFail,\r\n nextStepNameIfPrefetchOnlyOneAccount,\r\n rootContainerClassName,\r\n isCurrencyConvertorDisabled,\r\n } = this.props;\r\n\r\n const { WrappedAccountSelector } = this;\r\n const { deps, accountsPageError, selectedAccounts } = contextValues;\r\n\r\n const { getUniqueImportGUID } = deps;\r\n\r\n const uniqueImportId = (getUniqueImportGUID && getUniqueImportGUID()) || '';\r\n\r\n const nextButtonDisabled = _.isEmpty(selectedAccounts);\r\n\r\n return (\r\n \r\n \r\n {/* the StepContainer asks for a single child */}\r\n \r\n \r\n {(this.state.error || accountsPageError)\r\n ? ()\r\n : null\r\n }\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nAmazonAccountStepInternal.propTypes = {\r\n contextValues: PropTypes.shape({}).isRequired,\r\n stepTitle: PropTypes.string.isRequired,\r\n prevStepName: PropTypes.string.isRequired,\r\n nextStepName: PropTypes.string.isRequired,\r\n stepPrefetchHoc: PropTypes.func,\r\n prevStepNameIfPrefetchFail: PropTypes.string.isRequired,\r\n nextStepNameIfPrefetchOnlyOneAccount: PropTypes.string.isRequired,\r\n rootContainerClassName: PropTypes.string,\r\n isCurrencyConvertorDisabled: PropTypes.bool,\r\n};\r\n\r\nAmazonAccountStepInternal.defaultProps = {\r\n stepPrefetchHoc: null,\r\n isCurrencyConvertorDisabled: false,\r\n rootContainerClassName: 'amazon-import-root',\r\n};\r\n\r\nexport const AmazonAccountStep = React.memo(props => (\r\n \r\n {\r\n contextValues => (\r\n \r\n )\r\n }\r\n \r\n));\r\n","import _ from 'underscore';\r\n\r\nexport const getActionBarItems = ({\r\n i18n,\r\n startImporting,\r\n isReadOnly,\r\n scheduleOnly,\r\n onSwitchCustomizeMode,\r\n getPrevStepName,\r\n permissionFactory,\r\n}) => {\r\n const config = _.compact([{\r\n type: 'button-back',\r\n prevStepName: getPrevStepName(),\r\n }, {\r\n type: 'button',\r\n primary: true,\r\n className: 'start-import',\r\n text: scheduleOnly ? i18n.getString(_TL_('Set schedule')) : i18n.getString(_TL_('Start import')),\r\n onClick: startImporting,\r\n disabled: isReadOnly,\r\n },\r\n !(permissionFactory && permissionFactory.IsImportSmartScheduleStepImprovementEnabled && permissionFactory.IsImportSmartScheduleStepImprovementEnabled())\r\n && onSwitchCustomizeMode ? {\r\n type: 'button-link',\r\n className: 'customize-import-button',\r\n text: i18n.getString(_TL_('Advanced import')),\r\n onClick: onSwitchCustomizeMode,\r\n } : null,\r\n ]);\r\n\r\n return config;\r\n};\r\n","/* eslint-disable max-len */\r\nimport React, { useContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport { ImportCoreContext } from '@bingads-webui-campaign/imports-core';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nexport const withSmartImportStepPrefetch = (PreExecuteComponent) => {\r\n const SmartImportStepPrefetch = React.memo((props) => {\r\n const importCoreContext = useContext(ImportCoreContext);\r\n\r\n const {\r\n rootContainerClassName,\r\n } = props;\r\n\r\n const {\r\n deps,\r\n repository,\r\n patchState,\r\n selectedAccounts,\r\n previousImportOptions,\r\n AmazonEntitiesBlobName,\r\n isEditingScheduledImport,\r\n CampaignIds,\r\n accountToCampaignsOptionsMapping = {},\r\n ImportUserPreference,\r\n IsSmartImport,\r\n } = importCoreContext;\r\n\r\n const {\r\n i18n,\r\n toggleCampaignsSelectionStep,\r\n } = deps;\r\n\r\n const doAllAccountsHaveCampaign = ({\r\n accountsToCampaign,\r\n }) => {\r\n const accountIdsWithNoCampaign = [];\r\n\r\n _.each(accountsToCampaign, (campaigns, customerId) => {\r\n // for single account we get data as: { profileId: { amazonCampaigns: [] }}\r\n // eslint-disable-next-line no-param-reassign\r\n campaigns = campaigns.amazonCampaigns;\r\n\r\n if ((campaigns && campaigns.length === 0) || _.isEmpty(campaigns)) {\r\n accountIdsWithNoCampaign.push(customerId);\r\n }\r\n });\r\n\r\n const accountWithNoCampaigns = [];\r\n\r\n if (accountIdsWithNoCampaign.length > 0) {\r\n _.each(accountIdsWithNoCampaign, (accountId) => {\r\n const accountMatchingCustomerId = _.filter(selectedAccounts, account => (account.Id === parseInt(accountId, 10)));\r\n\r\n if (accountMatchingCustomerId.length > 0) {\r\n accountWithNoCampaigns.push(accountMatchingCustomerId[0].Name);\r\n }\r\n });\r\n }\r\n\r\n // check if all the accounts have no campaings.\r\n // for single account this will always be 1.\r\n // for multiaccount all the accounts shouldn't have campaigns for us to hide the campaigns step.\r\n if (accountWithNoCampaigns.length === selectedAccounts.length) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const [loading, setLoading] = useState(true); // to notify api is loading.\r\n const [dispatchedOdataCall, setDispatchedOdataCall] = useState(false);\r\n\r\n const accountIdsToFetch = _.filter(selectedAccounts, account => !_.has(accountToCampaignsOptionsMapping, account.Id));\r\n\r\n if (loading &&\r\n !dispatchedOdataCall &&\r\n accountIdsToFetch.length !== 0\r\n ) {\r\n setDispatchedOdataCall(true);\r\n\r\n // promise object holding each\r\n // customerId : promise to getCampaigns\r\n // userPreference: promise to get options for the cid or aid.\r\n const promiseObject = {};\r\n\r\n const customerId = selectedAccounts[0].Id;\r\n const marketPlace = selectedAccounts[0].MarketPlace;\r\n\r\n promiseObject[customerId] = repository.prepareForCampaignSelectionStep(customerId, marketPlace, AmazonEntitiesBlobName);\r\n\r\n\r\n // if account change, previousImportOptions is null, we will call api to get it\r\n if (!previousImportOptions) {\r\n promiseObject.getUserPreferences = repository.getAmazonImportUserPreferences(selectedAccounts[0].Id);\r\n }\r\n\r\n Promise.props(promiseObject)\r\n // campaignState if it's editing schedule import:\r\n .then((result) => {\r\n const preferences = result.getUserPreferences;\r\n\r\n // remove the preference from promise result object\r\n // eslint-disable-next-line\r\n delete result.getUserPreferences;\r\n // already selected accounts\r\n const alreadySelectedAmazonAccounts = {};\r\n\r\n _.each(accountToCampaignsOptionsMapping, (mapping, cid) => {\r\n alreadySelectedAmazonAccounts[cid] = mapping.campaignsData;\r\n });\r\n\r\n // check if any of the accounts dont have campaigns.\r\n // if we have any accounts with no campaigns we skip the campaign selection step.\r\n const hasAccountsWithNoCampaigns = !doAllAccountsHaveCampaign({\r\n accountsToCampaign: { ...result, ...alreadySelectedAmazonAccounts },\r\n });\r\n\r\n // patch campaign selection data for editing scheduled import scenario\r\n const amazonEntitiesSelectionData = {};\r\n const { amazonCampaigns } = result[selectedAccounts[0].Id];\r\n\r\n // for single account mode we need additional data from getCampaigns call.\r\n const {\r\n selectedCampaignIds,\r\n } = result[selectedAccounts[0].Id];\r\n\r\n if (isEditingScheduledImport) {\r\n if (!selectedCampaignIds && CampaignIds) {\r\n amazonEntitiesSelectionData.selectedCampaignIds = CampaignIds;\r\n }\r\n _.extend(\r\n amazonEntitiesSelectionData,\r\n !!selectedCampaignIds && { selectedCampaignIds }\r\n );\r\n }\r\n\r\n // map each customer's customerId to their campaigns.\r\n _.each(result, (amazonCampaingsForCustomerId, cid) => {\r\n accountToCampaignsOptionsMapping[cid] = {\r\n campaignsData: {\r\n ...amazonCampaingsForCustomerId,\r\n },\r\n preference: {\r\n ...preferences,\r\n },\r\n };\r\n });\r\n\r\n let importOptions = preferences;\r\n if (isEditingScheduledImport && ImportUserPreference && !IsSmartImport) {\r\n importOptions = ImportUserPreference;\r\n }\r\n\r\n patchState({\r\n amazonCampaigns,\r\n ...previousImportOptions ? {} : {\r\n previousImportOptions: preferences,\r\n importOptions,\r\n },\r\n amazonEntitiesSelectionData,\r\n selectedAccounts,\r\n accountToCampaignsOptionsMapping,\r\n accountsPageError: null,\r\n hasAccountsWithNoCampaigns,\r\n CampaignIds: selectedCampaignIds,\r\n });\r\n\r\n if (hasAccountsWithNoCampaigns) {\r\n toggleCampaignsSelectionStep(false);\r\n } else {\r\n toggleCampaignsSelectionStep(true);\r\n }\r\n\r\n setLoading(false);\r\n })\r\n .finally(withUiBlock($(`.${rootContainerClassName}`), i18n.getString(_TL_('Loading'))));\r\n } else if (accountIdsToFetch.length === 0 && !dispatchedOdataCall) {\r\n const filteredAccountsToCampaign = {};\r\n\r\n _.each(accountToCampaignsOptionsMapping, (mapping, customerId) => {\r\n filteredAccountsToCampaign[customerId] = mapping.campaignsData;\r\n });\r\n\r\n const hasAccountsWithNoCampaigns = !doAllAccountsHaveCampaign({\r\n accountsToCampaign: filteredAccountsToCampaign,\r\n });\r\n\r\n const customerId = selectedAccounts[0].Id;\r\n\r\n const { amazonCampaigns } = accountToCampaignsOptionsMapping[customerId].campaignsData;\r\n\r\n const { preference } = accountToCampaignsOptionsMapping[customerId];\r\n\r\n let importOptions = preference;\r\n if (isEditingScheduledImport && ImportUserPreference && !IsSmartImport) {\r\n importOptions = ImportUserPreference;\r\n }\r\n\r\n patchState({\r\n accountsPageError: null,\r\n amazonCampaigns,\r\n hasAccountsWithNoCampaigns,\r\n ...previousImportOptions ? {} : {\r\n previousImportOptions: preference,\r\n importOptions,\r\n },\r\n });\r\n\r\n if (hasAccountsWithNoCampaigns) {\r\n toggleCampaignsSelectionStep(false);\r\n } else {\r\n toggleCampaignsSelectionStep(true);\r\n }\r\n\r\n return ();\r\n }\r\n\r\n return (\r\n
\r\n {\r\n loading ?
: \r\n }\r\n
\r\n );\r\n });\r\n\r\n SmartImportStepPrefetch.propTypes = {\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n };\r\n\r\n return SmartImportStepPrefetch;\r\n};\r\n\r\n","\r\nimport $ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport { first, chain } from 'underscore';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nexport const createScheduledImportAndGoNextWhenReady = (\r\n taskItemBody,\r\n state\r\n) => {\r\n const { repository } = state;\r\n let taskItemPromise;\r\n\r\n if (state.isEditingScheduledImport) {\r\n taskItemPromise = repository.updateScheduledImportTaskItem(\r\n taskItemBody,\r\n state.initialSettings.taskItemId\r\n );\r\n } else {\r\n taskItemPromise = repository.createScheduledImportTaskItem(taskItemBody);\r\n }\r\n\r\n return taskItemPromise;\r\n};\r\n\r\nconst StartImportErrorCodes = {\r\n TaskSchedulingInvalid: _TL_('An error occured while saving the import. Time chosen to schedule the import is invalid.'),\r\n AmazonSyncApiInternalError: _TL_('Amazon Advertising encountered an unexpected error. Please try restarting your import or contact Support.'),\r\n AmazonSyncThrottlingLimitReached: _TL_('Amazon Advertising is currently limiting the number of import requests that can be made. Please try your import again later.'),\r\n AmazonSyncAccessDenied: _TL_('Amazon Advertising has denied permission to import from the linked account. Please log out of Amazon and try importing again, or contact Support.'),\r\n GenericImportError: _TL_('Microsoft Ads has encountered an error. Please try again later or contact support.'),\r\n};\r\n\r\nexport const createRunNowImportAndGoNextWhenReady = (\r\n taskItemBody,\r\n state,\r\n setImportStatus,\r\n getNextStepName\r\n) => {\r\n const {\r\n repository,\r\n deps,\r\n goToNextStep,\r\n patchState,\r\n } = state;\r\n\r\n return repository.createRunNowImportTaskItem(taskItemBody)\r\n .then((response) => {\r\n deps.toggleShowImportStatusStep(true);\r\n\r\n setImportStatus({\r\n taskItemExecutionId: first(response.TaskItemExecutions).Id,\r\n });\r\n patchState({\r\n hideProgressList: true,\r\n });\r\n\r\n goToNextStep(getNextStepName({ isRunNowImport: true }));\r\n });\r\n};\r\n\r\nexport const formatTaskData = (contextValues, taskData) => {\r\n const {\r\n selectedAccounts,\r\n amazonEntitiesSelectionData,\r\n CampaignIds,\r\n } = contextValues;\r\n const scheduleStepState = {\r\n amazonCustomerId: selectedAccounts[0].Id,\r\n campaignIds: CampaignIds,\r\n amazonEntitiesSelectionData,\r\n };\r\n return {\r\n ...taskData,\r\n scheduleStepState,\r\n };\r\n};\r\n\r\nexport const createImportAndGoNextWhenReady = ({\r\n state,\r\n generateTaskData,\r\n setImportStatus,\r\n activity,\r\n getNextStepName,\r\n rootContainerClassName,\r\n showErrorMessage,\r\n}) => {\r\n const {\r\n repository,\r\n patchState,\r\n goToNextStep,\r\n deps,\r\n } = state;\r\n\r\n const {\r\n isRunNowWithScheduledImport,\r\n isRunNowImport,\r\n isScheduledImport,\r\n scheduleStepState,\r\n importOptions,\r\n importOptionsRunnow,\r\n } = generateTaskData();\r\n\r\n return Promise.resolve()\r\n .then(() => {\r\n if (isRunNowWithScheduledImport || isScheduledImport) {\r\n return repository.prepareAmazonImportTaskItem({\r\n importOptions,\r\n stepState: scheduleStepState,\r\n }).then(scheduleBody => createScheduledImportAndGoNextWhenReady(\r\n scheduleBody,\r\n state\r\n ));\r\n }\r\n\r\n return Promise.resolve(true);\r\n })\r\n .then(() => {\r\n if (isRunNowImport || isRunNowWithScheduledImport) {\r\n return repository.prepareAmazonImportTaskItem({\r\n importOptions: importOptionsRunnow,\r\n stepState: scheduleStepState,\r\n }).then(runNowBody => (\r\n createRunNowImportAndGoNextWhenReady(runNowBody, state, setImportStatus, getNextStepName) // eslint-disable-line\r\n ));\r\n }\r\n patchState({\r\n hideProgressList: true,\r\n });\r\n deps.toggleShowImportSummary(true);\r\n\r\n goToNextStep(getNextStepName({ isRunNowImport: false }));\r\n return Promise.resolve(false);\r\n })\r\n .catch((errors) => {\r\n const ODataError = chain(errors)\r\n .result('responseJSON')\r\n .result('value')\r\n .result('0')\r\n .result('Code')\r\n .value();\r\n const errorMessage = StartImportErrorCodes[ODataError] ||\r\n StartImportErrorCodes.GenericImportError;\r\n\r\n showErrorMessage(deps.newI18n.getString(errorMessage));\r\n\r\n if (activity) {\r\n activity.signal(`step wizard encountered an error while importing - ${JSON.stringify(errors)}`);\r\n }\r\n })\r\n .finally(withUiBlock($(`.${rootContainerClassName}`), deps.newI18n.getString(_TL_('Loading'))));\r\n};\r\n","import React from 'react';\r\n\r\nimport { StartImportSmartStep as GeneralStartImportStep } from '@bingads-webui-campaign/imports-core';\r\n\r\nimport { StepConstants } from '../../page/step-config';\r\nimport { getActionBarItems } from './action-bar-config';\r\nimport { withSmartImportStepPrefetch } from './smart-import-step-prefetch';\r\nimport { createImportAndGoNextWhenReady } from '../helpers/create-schedule-runnow-job';\r\n\r\nconst getAdvancedCustomizingStepName = (hasAccountsWithNoCampaigns) => {\r\n if (hasAccountsWithNoCampaigns) {\r\n return StepConstants.ImportOptionStep.path;\r\n }\r\n return StepConstants.AmazonCampaignStep.path;\r\n};\r\n\r\nconst getPrevStepName = () => StepConstants.ChooseAccounts.path;\r\n\r\nconst getNextStepName = ({ isRunNowImport }) => {\r\n if (isRunNowImport) {\r\n return StepConstants.ImportStatusStep.path;\r\n }\r\n return StepConstants.ImportSummaryStep.path;\r\n};\r\n\r\nconst formatTaskData = (contextValues, taskData) => {\r\n const {\r\n selectedAccounts,\r\n } = contextValues;\r\n const scheduleStepState = {\r\n amazonCustomerId: selectedAccounts[0].Id,\r\n campaignIds: [],\r\n amazonEntitiesSelectionData: null,\r\n };\r\n return {\r\n ...taskData,\r\n scheduleStepState,\r\n };\r\n};\r\n\r\nexport const StartImportSmartStep = props => (\r\n \r\n);\r\n","import { StepConstants } from '../../page/step-config';\r\n\r\nexport const getActionBarItems = (\r\n shouldGoToNextStep,\r\n shouldGoToPreviousStep,\r\n hasAccountsWithNoCampaigns\r\n) => {\r\n const config = [{\r\n type: 'button-back',\r\n validateFunction: shouldGoToPreviousStep,\r\n prevStepName: hasAccountsWithNoCampaigns ?\r\n StepConstants.StartImportSmart.path :\r\n StepConstants.AmazonCampaignStep.path,\r\n }, {\r\n type: 'button-next',\r\n validateFunction: shouldGoToNextStep,\r\n nextStepName: StepConstants.StartImportAdvanced.path,\r\n }, {\r\n type: 'button-cancel',\r\n extraLeftPadding: true,\r\n }];\r\n\r\n return config;\r\n};\r\n","import { getBlackList, getDefaultImportOptionFields } from '@bingads-webui-campaign/import-components';\r\n\r\nexport const getSubFieldsBlackList = (permissions) => {\r\n const subFieldsBlacklist = getBlackList(permissions);\r\n\r\n // filter out some options for P0 requirement\r\n subFieldsBlacklist.push('ImportAccountUrlOptions');\r\n subFieldsBlacklist.push('ImportDeletedEntities');\r\n subFieldsBlacklist.push('ImportUET');\r\n subFieldsBlacklist.push('AssociatedUETTagId');\r\n subFieldsBlacklist.push('ImportUpdateEntityPreference_UpdateAdGroupAndKeywordBids');\r\n subFieldsBlacklist.push('ImportUpdateEntityPreference_UpdateAdGroupAndKeywordBidStrategies');\r\n subFieldsBlacklist.push('ImportUpdateEntityPreference_UpdateCampaignBudget');\r\n subFieldsBlacklist.push('RaiseLowBidsToMinServingBidsForBsc');\r\n subFieldsBlacklist.push('AutoDeviceBidOptimization');\r\n // other options\r\n subFieldsBlacklist.push('ImportAppendDestUrlPreference_UseAppendString');\r\n subFieldsBlacklist.push('ImportAppendDestUrlPreference_AppendStringForDestinationUrl');\r\n subFieldsBlacklist.push('ImportSearchAndReplaceDestUrlPreference_UseSearchAndReplaceString');\r\n subFieldsBlacklist.push('ImportSearchAndReplaceDestUrlPreference_SearchStringForDestinationUrl');\r\n subFieldsBlacklist.push('ImportSearchAndReplaceDestUrlPreference_ReplaceStringForDestinationUrl');\r\n subFieldsBlacklist.push('AppendPreferencesForTrackingTemplate_UseAppendString');\r\n subFieldsBlacklist.push('AppendPreferencesForTrackingTemplate_AppendStringForTrackingTemplate');\r\n subFieldsBlacklist.push('SearchAndReplacePreferencesForTrackingTemplate_UseSearchAndReplaceString');\r\n subFieldsBlacklist.push('SearchAndReplacePreferencesForTrackingTemplate_SearchStringForTrackingTemplate');\r\n subFieldsBlacklist.push('SearchAndReplacePreferencesForTrackingTemplate_ReplaceStringForTrackingTemplate');\r\n subFieldsBlacklist.push('SearchAndReplaceForCustomParameters_EnableSearchAndReplace');\r\n subFieldsBlacklist.push('SearchAndReplaceForCustomParameters_SearchString');\r\n subFieldsBlacklist.push('SearchAndReplaceForCustomParameters_ReplaceString');\r\n subFieldsBlacklist.push('SearchAndReplaceForFinalURLSuffix_EnableSearchAndReplace');\r\n subFieldsBlacklist.push('SearchAndReplaceForFinalURLSuffix_SearchString');\r\n subFieldsBlacklist.push('SearchAndReplaceForFinalURLSuffix_ReplaceString');\r\n subFieldsBlacklist.push('ImportUpdateEntityPreference_UpdateNameForExistingCampaigns');\r\n subFieldsBlacklist.push('ImportNewOption_ImportNewCampaignsAndMarkAsPaused');\r\n subFieldsBlacklist.push('ImportSearchAndDsaMixedCampaignAsSearchCampaign');\r\n subFieldsBlacklist.push('ImportPrefixAndSuffixForStringProperty_EnablePrefixAndSuffix');\r\n subFieldsBlacklist.push('ImportPrefixAndSuffixForStringProperty_SuffixString');\r\n subFieldsBlacklist.push('ImportSearchAndReplaceForStringProperty_EnableSearchAndReplace');\r\n subFieldsBlacklist.push('ImportSearchAndReplaceForStringProperty_SearchString');\r\n subFieldsBlacklist.push('ImportSearchAndReplaceForStringProperty_ReplaceString');\r\n subFieldsBlacklist.push('PauseParentIfNoLocationSupported');\r\n subFieldsBlacklist.push('EnableParentLocationMapping');\r\n subFieldsBlacklist.push('StoreIdForImportedProductAdExtensionsFlag');\r\n subFieldsBlacklist.push('StoreIdForImportedProductAdExtensions');\r\n subFieldsBlacklist.push('StoreIdForImportedProductAdExtensions');\r\n subFieldsBlacklist.push('PauseAIMAdGroupIfAllAudienceCriterionNotImported');\r\n subFieldsBlacklist.push('ImportNewOption_ImportNewImageAdExtensions');\r\n subFieldsBlacklist.push('ImportUpdateEntityPreference_UpdateImageAdExtensions');\r\n subFieldsBlacklist.push('RenameCampaignNameWithSuffix');\r\n\r\n return subFieldsBlacklist;\r\n};\r\n\r\nexport const importOptionFieldHelpIds = {\r\n ImportNewEntities: 'Pop_BA_Import_FB_ItemsNotPreviouslyImported',\r\n UpdateEntityPreferences: 'Pop_BA_Import_FB_UpdateExistingItems',\r\n DefaultBidsBelowMinToAdCenterMinBid: 'pop_BA_Import_FB_SetUnknownBid',\r\n DefaultCampaignBudgetBelowMinToAdCenterMinBudget: 'pop_BA_Import_FB_IncreaseCampBudget',\r\n AdjustmentForBids_EnableAdjustment: 'Pop_BA_Import_FB_AdjustBidValue',\r\n AdjustmentForCampaignBudgets_EnableAdjustment: 'Pop_BA_Import_FB_AdjustBudgValue',\r\n ImportNewOption_ImportNewActiveEntitiesOnly: 'pop_BA_Import_FB_PauseCampaigns',\r\n};\r\n\r\nexport const getImportOptionFields = (params) => {\r\n const optionFields = getDefaultImportOptionFields({\r\n ...params,\r\n hideEntityAdvancedOptions: true,\r\n helpIds: importOptionFieldHelpIds,\r\n });\r\n optionFields.forEach((opt) => {\r\n const { fields } = opt;\r\n\r\n fields.forEach((field) => {\r\n const newField = field;\r\n if (field.property === 'ImportNewOption_ImportNewActiveEntitiesOnly') {\r\n newField.label = params.i18n.getString('Import_ImportOptions_CampaignOptionsHeader');\r\n newField.showLabel = true;\r\n }\r\n });\r\n });\r\n return optionFields;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ImportOptionsStep } from '@bingads-webui-campaign/imports-core';\r\nimport { getActionBarItems } from './action-bar-config';\r\nimport { withSmartImportStepPrefetch } from '../start-smart-import-step/smart-import-step-prefetch';\r\nimport { withAmazonImportAccountSelectionStepPrefetch } from '../amazon-account-step/prefetch';\r\nimport { StepConstants } from '../../page/step-config';\r\nimport { getImportOptionFields, getSubFieldsBlackList } from './amazon-import-option-config';\r\n\r\nconst AmazonImportOptionsStepWithoutHOCs = props => (\r\n \r\n);\r\n\r\nAmazonImportOptionsStepWithoutHOCs.propTypes = {\r\n permissions: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport const AmazonImportOptionsStep =\r\n // eslint-disable-next-line\r\n withAmazonImportAccountSelectionStepPrefetch(withSmartImportStepPrefetch(AmazonImportOptionsStepWithoutHOCs));\r\n","import { StepConstants } from '../../page/step-config';\r\n\r\nexport const getActionBarItems = (\r\n i18n,\r\n startImporting,\r\n isReadOnly,\r\n scheduleOnly\r\n) => {\r\n const config = [{\r\n type: 'button-back',\r\n prevStepName: StepConstants.ImportOptionStep.path,\r\n }, {\r\n type: 'button',\r\n primary: true,\r\n className: 'start-import',\r\n text: scheduleOnly ? i18n.getString(_TL_('Set schedule')) : i18n.getString(_TL_('Start import')),\r\n onClick: startImporting,\r\n disabled: isReadOnly,\r\n }, {\r\n type: 'button-cancel',\r\n extraLeftPadding: true,\r\n }];\r\n\r\n return config;\r\n};\r\n","import React from 'react';\r\nimport {\r\n StartImportAdvancedStep as GeneralStartImportAdvancedStep,\r\n} from '@bingads-webui-campaign/imports-core';\r\nimport { getActionBarItems } from './action-bar-config';\r\nimport { StepConstants } from '../../page/step-config';\r\nimport { formatTaskData, createImportAndGoNextWhenReady } from '../helpers/create-schedule-runnow-job';\r\n\r\nexport const getNextStepName = ({ isRunNowImport }) => (isRunNowImport\r\n ? StepConstants.ImportStatusStep.path\r\n : StepConstants.ImportSummaryStep.path);\r\n\r\nexport const StartImportAdvancedStep = props => (\r\n \r\n);\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { notificationApi, NotificationLevel } from '@bingads-webui-react/notification-center';\r\n\r\nexport const onSaveAmazonImportScheduleInfo = ({\r\n contextValues,\r\n tasks,\r\n displaystring,\r\n onEditScheduleClose,\r\n}) => {\r\n const { scheduledTaskItemBody } = tasks;\r\n const {\r\n Name,\r\n isNameEdit,\r\n getStateValue,\r\n patchState,\r\n repository,\r\n deps,\r\n IsSmartImport,\r\n importOptions: importUserPreferences,\r\n amazonEntitiesSelectionData,\r\n } = contextValues;\r\n\r\n const { i18n } = deps;\r\n\r\n const scheduleStepState = {\r\n amazonCustomerId: getStateValue('selectedAccounts')[0].Id,\r\n amazonEntitiesSelectionData: IsSmartImport ? null : amazonEntitiesSelectionData,\r\n };\r\n\r\n const importOptions = {\r\n notificationType: scheduledTaskItemBody.NotificationType,\r\n notificationEmailAddresses: scheduledTaskItemBody.NotificationEmailAddresses,\r\n timeZoneId: scheduledTaskItemBody.TimeZoneId,\r\n name: isNameEdit ? Name : scheduledTaskItemBody.defaultName,\r\n cron: scheduledTaskItemBody.Cron,\r\n IsAutoFrequency: scheduledTaskItemBody.IsAutoFrequency,\r\n IsSmartImport,\r\n importUserPreferences: IsSmartImport ? null : importUserPreferences,\r\n };\r\n\r\n if (scheduledTaskItemBody) {\r\n repository.prepareAmazonImportTaskItem({\r\n importOptions,\r\n stepState: scheduleStepState,\r\n })\r\n .then(finalBody => (\r\n repository.createScheduledImportTaskItem(finalBody)\r\n ))\r\n .then(() => {\r\n notificationApi.add({\r\n severity: NotificationLevel.Confirmation,\r\n title: '',\r\n message: i18n.get('Scheduled_Import_Summary_Header').replace('{0}', displaystring),\r\n target: 'FloatingBanner',\r\n });\r\n patchState({\r\n isRunNowImport: false,\r\n isRunNowWithScheduledImport: true,\r\n Name: isNameEdit ? Name : scheduledTaskItemBody.defaultName,\r\n scheduleSummaryString: displaystring,\r\n });\r\n onEditScheduleClose();\r\n })\r\n .finally(withUiBlock(\r\n /* target */ $('.schedule-setting-editor-panel .panel-content'),\r\n /* loadingText */ i18n.getString('Loading'),\r\n /* shouldFocus */ _,\r\n /* delayedLoading */ _,\r\n /* overlayZIndex */ '1010'\r\n ));\r\n }\r\n};\r\n","import {\r\n parseCronToDisplayString,\r\n ImportSchedulingOptions,\r\n} from '@bingads-webui-campaign/imports-core';\r\n\r\nexport const getAmazonImportDetailsView = (contextValues) => {\r\n const {\r\n deps,\r\n getStateValue,\r\n IsAutoFrequency,\r\n TimeZoneId,\r\n Cron,\r\n repository,\r\n isScheduledImport,\r\n isRunNowWithScheduledImport,\r\n selectedAccounts,\r\n } = contextValues;\r\n\r\n const importSchedulingOptions = new ImportSchedulingOptions(deps.i18n);\r\n\r\n\r\n const { config, newI18n } = deps;\r\n const scheduleSummaryString = getStateValue('scheduleSummaryString') || parseCronToDisplayString(\r\n deps.newI18n,\r\n IsAutoFrequency,\r\n Cron,\r\n TimeZoneId,\r\n importSchedulingOptions,\r\n false,\r\n deps.timeZoneMapper\r\n );\r\n\r\n const frequencyStat = scheduleSummaryString;\r\n\r\n const importDetails = [{\r\n label: newI18n.getString(_TL_('Import name')),\r\n value: getStateValue('Name'),\r\n labelClassName: 'import-name',\r\n }, {\r\n label: newI18n.getString(_TL_('Amazon account')),\r\n value: repository.getAmazonAccountName(),\r\n labelClassName: 'import-amazon-email import-email',\r\n }, {\r\n label: newI18n.getString(_TL_('Amazon Ads account')),\r\n value: selectedAccounts[0].Name,\r\n labelClassName: 'import-amazon-account-name import-account-name',\r\n }, {\r\n label: newI18n.getString(_TL_('Microsoft Advertising account')),\r\n value: config.get('CurrentAccount').Title,\r\n labelClassName: 'import-microsoft-account-name',\r\n }, (isScheduledImport || isRunNowWithScheduledImport) && {\r\n label: newI18n.getString(_TL_('Schedule and frequency')),\r\n value: frequencyStat,\r\n labelClassName: 'import-schedule-and-frequency',\r\n }];\r\n\r\n return importDetails;\r\n};\r\n","import React from 'react';\r\nimport { ImportSummaryPage as GenericImportSummaryPage } from '@bingads-webui-campaign/imports-core';\r\nimport { onSaveAmazonImportScheduleInfo } from './save-schedule-info';\r\nimport { getAmazonImportDetailsView } from './get-import-details-view';\r\n\r\nconst errorMessage = _TL_('Note: Some of your data might have been skipped or modified during import because of differences between Microsoft Advertising and Amazon Ads.');\r\nconst learnMoreText = _TL_('Learn more about importing campaigns from Amazon Ads.');\r\nconst noCampaignAlert = _TL_('We were unable to import any campaigns from this account. Going forward, we\\'ll keep your Amazon Ads account in sync with this Microsoft Advertising account.');\r\nconst cardPanelTitles = {\r\n Additions: _TL_('New items imported from Amazon Ads'),\r\n};\r\n\r\nexport const AmazonImportSummaryStep = props => (\r\n \r\n);\r\n","import React from 'react';\r\n\r\nimport {\r\n ImportStatusStep as GeneralImportStatusStep,\r\n} from '@bingads-webui-campaign/imports-core';\r\n\r\nimport { StepConstants } from '../../page/step-config';\r\n\r\nexport const ImportStatusStep = props => (\r\n \r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { VerticalSeparatedLayout } from '@bingads-webui-react/steps';\r\nimport { ImportType, CampaignSelectionStep } from '@bingads-webui-campaign/imports-core';\r\n\r\nimport { withAmazonImportAccountSelectionStepPrefetch } from '../steps/amazon-account-step/prefetch';\r\nimport { StepConstants } from './step-config';\r\nimport { AmazonLoginStep, renderDescription } from '../steps/amazon-login-step';\r\nimport { AmazonAccountStep } from '../steps/amazon-account-step';\r\nimport { StartImportSmartStep } from '../steps/start-smart-import-step';\r\nimport { AmazonImportOptionsStep } from '../steps/amazon-import-option-step';\r\nimport { StartImportAdvancedStep } from '../steps/start-import-advanced-step';\r\nimport { AmazonImportSummaryStep } from '../steps/amazon-import-summary-step';\r\nimport { ImportStatusStep } from '../steps/import-status-step';\r\n\r\nconst {\r\n Step,\r\n} = VerticalSeparatedLayout;\r\n\r\nexport const getAmazonLoginStep = ({\r\n i18n,\r\n repository,\r\n rootContainerClassName,\r\n}) => {\r\n const title = i18n.getString(StepConstants.SignInStep.stepName);\r\n const { path } = StepConstants.SignInStep;\r\n return (\r\n renderDescription(i18n, StepConstants.SignInStep.path, repository)}\r\n >\r\n \r\n \r\n );\r\n};\r\n\r\ngetAmazonLoginStep.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n repository: PropTypes.shape({}).isRequired,\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const getAmazonAccountStep = ({\r\n i18n,\r\n rootContainerClassName,\r\n}) => {\r\n const title = i18n.getString(StepConstants.ChooseAccounts.stepName);\r\n const { path } = StepConstants.ChooseAccounts;\r\n const prevStepName = StepConstants.SignInStep.path;\r\n const nextStepName = StepConstants.StartImportSmart.path;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\ngetAmazonAccountStep.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const getStartImportSmartStep = ({\r\n i18n,\r\n getImportType,\r\n setImportStatus,\r\n rootContainerClassName,\r\n}) => {\r\n const title = i18n.getString(StepConstants.StartImportSmart.stepName);\r\n const { path } = StepConstants.StartImportSmart;\r\n const isEnabled = getImportType() === ImportType.Smart;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\ngetStartImportSmartStep.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n getImportType: PropTypes.func.isRequired,\r\n setImportStatus: PropTypes.func.isRequired,\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const getAmazonCampaignStep = ({\r\n i18n,\r\n getImportType,\r\n showCampaignSelectionStep,\r\n rootContainerClassName,\r\n repository,\r\n}) => {\r\n const title = i18n.getString(StepConstants.AmazonCampaignStep.stepName);\r\n const { path } = StepConstants.AmazonCampaignStep;\r\n const isEnabled = getImportType() === ImportType.Advanced && showCampaignSelectionStep;\r\n\r\n return (\r\n \r\n \r\n repository.getAmazonCampaigns(selectedAccount.Id, selectedAccount.MarketPlace)}\r\n entitiesSelectionDataName=\"amazonEntitiesSelectionData\"\r\n />\r\n \r\n );\r\n};\r\n\r\ngetAmazonCampaignStep.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n getImportType: PropTypes.func.isRequired,\r\n showCampaignSelectionStep: PropTypes.bool.isRequired,\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n repository: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nexport const getAmazonImportOptionsStep = ({\r\n i18n,\r\n deps,\r\n getImportType,\r\n permissions,\r\n rootContainerClassName,\r\n}) => {\r\n const title = i18n.getString(StepConstants.ImportOptionStep.stepName);\r\n const { path } = StepConstants.ImportOptionStep;\r\n const isEnabled = getImportType() === ImportType.Advanced;\r\n const importAccountCurrencyTitle = i18n.getString(_TL_('Amazon Ads:'));\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\ngetAmazonImportOptionsStep.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n deps: PropTypes.shape({}).isRequired,\r\n getImportType: PropTypes.func.isRequired,\r\n permissions: PropTypes.shape({}).isRequired,\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const getStartImportAdvancedStep = ({\r\n i18n,\r\n getImportType,\r\n setImportStatus,\r\n rootContainerClassName,\r\n}) => {\r\n const title = i18n.getString(StepConstants.StartImportAdvanced.stepName);\r\n const { path } = StepConstants.StartImportAdvanced;\r\n const isEnabled = getImportType() === ImportType.Advanced;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\ngetStartImportAdvancedStep.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n getImportType: PropTypes.func.isRequired,\r\n setImportStatus: PropTypes.func.isRequired,\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const getImportSummaryStep = ({\r\n i18n,\r\n showImportSummary,\r\n}) => {\r\n const title = i18n.getString(StepConstants.ImportSummaryStep.title);\r\n const { path } = StepConstants.ImportSummaryStep;\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\ngetImportSummaryStep.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n showImportSummary: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const getImportStatusStep = ({\r\n i18n,\r\n getImportStatus,\r\n showImportStatusStep,\r\n rootContainerClassName,\r\n}) => {\r\n const title = i18n.getString(StepConstants.ImportStatusStep.title);\r\n const { path } = StepConstants.ImportStatusStep;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\ngetImportStatusStep.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n getImportStatus: PropTypes.func.isRequired,\r\n showImportStatusStep: PropTypes.bool.isRequired,\r\n rootContainerClassName: PropTypes.string.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Promise from 'bluebird';\r\n// import $ from 'jquery';\r\nimport { BaseImportCore, checkRequiredDeps, ImportType, ImportMode } from '@bingads-webui-campaign/imports-core';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\n// import { Constants as CCUIConstants } from '@bingads-webui-clientcenter/entity-utils';\r\n// import { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { Scenario } from '@bingads-webui-react/hoc-with-signal';\r\nimport { generateGuid } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nimport { StepConstants } from './step-config';\r\nimport { AmazonImportRepository, AmazonLoginRepository, PermissionFactory } from '../repository';\r\n\r\nimport {\r\n getAmazonLoginStep,\r\n getAmazonAccountStep,\r\n getStartImportSmartStep,\r\n getAmazonCampaignStep,\r\n getAmazonImportOptionsStep,\r\n getStartImportAdvancedStep,\r\n getImportSummaryStep,\r\n getImportStatusStep,\r\n} from './step-factory';\r\n\r\nfunction checkRequiredDepsForAmazonImport(deps) {\r\n checkRequiredDeps(deps);\r\n deps.check('edm');\r\n deps.check('jsData');\r\n deps.check('cookieHelperForEditImport');\r\n}\r\n\r\nconst rootContainerClassName = 'amazon-import-root';\r\n\r\nexport class AmazonImportPage extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.perfMarker = props.perfMarker;\r\n this.steps = [];\r\n this.state = {\r\n isInit: false,\r\n importType: ImportType.Smart,\r\n importMode: ImportMode.Single,\r\n showImportSummary: false, // eslint-disable-line\r\n showImportStatusStep: false, // eslint-disable-line\r\n importStatus: null,\r\n startStep: StepConstants.SignInStep, // google-login-step\r\n hideProgressList: false,\r\n showCampaignSelectionStep: true, // eslint-disable-line\r\n uniqueImportGUID: generateGuid(),\r\n };\r\n this.initialize(props);\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (prevProps.location.key !== this.props.location.key) {\r\n // eslint-disable-next-line\r\n this.setState({\r\n isInit: false,\r\n importType: ImportType.Smart,\r\n importMode: ImportMode.Single,\r\n showImportSummary: false, // eslint-disable-line\r\n showImportStatusStep: false, // eslint-disable-line\r\n importStatus: null,\r\n startStep: StepConstants.SignInStep,\r\n hideProgressList: false,\r\n showCampaignSelectionStep: true, // eslint-disable-line\r\n uniqueImportGUID: generateGuid(),\r\n });\r\n this.initialState = {};\r\n this.initialize(prevProps);\r\n }\r\n }\r\n\r\n getUniqueImportGUID = () => this.state.uniqueImportGUID;\r\n\r\n getImportType = () => this.state.importType;\r\n\r\n setImportStatus = (status) => {\r\n this.setState({\r\n importStatus: status,\r\n });\r\n }\r\n\r\n getImportStatus = () => this.state.importStatus;\r\n\r\n getImportMode = () => this.state.importMode;\r\n\r\n getImportScope = () => this.state.ImportScope;\r\n\r\n logTrace(...args) {\r\n this.repository.logTrace(...args);\r\n }\r\n\r\n initialize = (props) => {\r\n this.perfMarker.willFetchData();\r\n\r\n // don't take reject param, if coupon call fails, we will just not show the offer\r\n Promise.resolve().then(() => {\r\n checkRequiredDepsForAmazonImport(props.deps);\r\n this.deps = props.deps;\r\n\r\n // Deps.\r\n this.deps.newI18n = this.props.i18n;\r\n this.deps.importStatus = this.state.importStatus;\r\n this.deps.perfMarker = this.props.perfMarker;\r\n this.deps.scope = props.scope;\r\n this.deps.serverContext = props.serverContext;\r\n this.i18n = this.deps.i18n;\r\n this.deps.loginPerfMarker = this.props.perfMarker.createChild('Smart_Import_Login_Step');\r\n this.deps.loginPerfMarker.willInit();\r\n\r\n // Unique Import ID for substrate.\r\n this.deps.getUniqueImportGUID = this.getUniqueImportGUID;\r\n\r\n // Toggle functions.\r\n this.deps.toggleShowImportSummary = this.toggleShowImportSummary;\r\n this.deps.toggleShowImportStatusStep = this.toggleShowImportStatusStep;\r\n this.deps.toggleCampaignsSelectionStep = this.toggleCampaignsSelectionStep;\r\n\r\n // Repository init.\r\n this.repository = new AmazonImportRepository({\r\n deps: this.deps,\r\n });\r\n\r\n this.amazonLoginRepository = new AmazonLoginRepository();\r\n\r\n this.permissionFactory = this.deps.permissionFactory\r\n ? this.deps.permissionFactory\r\n : new PermissionFactory({\r\n permissions: props.permissions,\r\n importMode: props.scope.values.aid ? ImportMode.Single : ImportMode.Multi,\r\n });\r\n\r\n const initialStateFetchPromise = Promise.resolve([]);\r\n\r\n return initialStateFetchPromise.then(() => {\r\n this.setState({\r\n isInit: true,\r\n });\r\n });\r\n });\r\n }\r\n\r\n toggleShowImportSummary = (state) => {\r\n this.setState({\r\n showImportSummary: state, // eslint-disable-line\r\n });\r\n }\r\n\r\n toggleShowImportStatusStep = (state) => {\r\n this.setState({\r\n showImportStatusStep: state, // eslint-disable-line\r\n });\r\n }\r\n\r\n toggleImportType = (type) => {\r\n this.setState({\r\n importType: type,\r\n });\r\n }\r\n\r\n toggleImportMode = (mode) => {\r\n this.setState({\r\n importMode: mode,\r\n });\r\n this.permissionFactory.toggleImportMode(mode);\r\n }\r\n\r\n toggleCampaignsSelectionStep = (state) => {\r\n this.setState({\r\n showCampaignSelectionStep: state, // eslint-disable-line\r\n });\r\n }\r\n\r\n constructSteps = (i18n) => {\r\n this.steps = [];\r\n // construct base step\r\n this.steps.push(getAmazonLoginStep({\r\n i18n,\r\n repository: this.repository,\r\n rootContainerClassName,\r\n }));\r\n this.steps.push(getAmazonAccountStep({\r\n i18n,\r\n rootContainerClassName,\r\n }));\r\n this.steps.push(getStartImportSmartStep({\r\n i18n,\r\n getImportType: this.getImportType,\r\n setImportStatus: this.setImportStatus,\r\n rootContainerClassName,\r\n }));\r\n this.steps.push(getAmazonCampaignStep({\r\n i18n,\r\n getImportType: this.getImportType,\r\n showCampaignSelectionStep: this.state.showCampaignSelectionStep,\r\n rootContainerClassName,\r\n repository: this.repository,\r\n }));\r\n this.steps.push(getAmazonImportOptionsStep({\r\n i18n,\r\n deps: this.deps,\r\n getImportType: this.getImportType,\r\n permissions: this.props.permissions,\r\n rootContainerClassName,\r\n }));\r\n this.steps.push(getStartImportAdvancedStep({\r\n i18n,\r\n getImportType: this.getImportType,\r\n setImportStatus: this.setImportStatus,\r\n rootContainerClassName,\r\n }));\r\n this.steps.push(getImportSummaryStep({\r\n i18n,\r\n showImportSummary: this.state.showImportSummary,\r\n }));\r\n this.steps.push(getImportStatusStep({\r\n i18n,\r\n getImportStatus: this.getImportStatus,\r\n showImportStatusStep: this.state.showImportStatusStep,\r\n rootContainerClassName,\r\n }));\r\n }\r\n\r\n render() {\r\n const {\r\n rootClassName,\r\n i18n,\r\n } = this.props;\r\n\r\n if (this.state.isInit) {\r\n this.steps = [];\r\n this.constructSteps(i18n);\r\n } else {\r\n return null;\r\n }\r\n\r\n const handleCancelButtonClick = () => this.repository.redirectToCampaigns();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nAmazonImportPage.propTypes = {\r\n rootClassName: PropTypes.string.isRequired,\r\n perfMarker: perfMarkerPropTypes.isRequired,\r\n i18n: PropTypes.shape({}).isRequired,\r\n ccJsData: PropTypes.shape({\r\n FeatureAdoptionCoupon: PropTypes.shape({\r\n findAll: PropTypes.func,\r\n }),\r\n }),\r\n deps: PropTypes.shape({}).isRequired,\r\n location: PropTypes.shape({\r\n key: PropTypes.string,\r\n }).isRequired,\r\n permissions: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nAmazonImportPage.defaultProps = {\r\n ccJsData: null,\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport { pick } from 'underscore';\r\n\r\nexport function fetchAd({\r\n edm,\r\n jsData,\r\n scope,\r\n}) {\r\n const {\r\n adId,\r\n } = scope;\r\n const params = {\r\n query: {\r\n entitySet: edm.currentAccount\r\n .Ads['Default.GridData']\r\n .$call({\r\n gridDataParameters: {},\r\n })\r\n .toJSON(),\r\n $count: true,\r\n $top: 1,\r\n $expand: 'Campaign($select=CampaignSettings,CampaignSubType,CampaignType,ExperimentId,Id),Labels',\r\n $filter: `Id eq ${adId}`,\r\n $select: 'DeliveryStatus,DeliveryStatusDetails,DisplayUrl,FinalUrlSuffix,FinalUrls,Id,MobileFinalUrls,Model.ResponsiveAd/BusinessName,Model.ResponsiveAd/CallToAction,Model.ResponsiveAd/CallToActionLanguage,Model.ResponsiveAd/Descriptions,Model.ResponsiveAd/Headline,Model.ResponsiveAd/Headlines,Model.ResponsiveAd/HotSpots,Model.ResponsiveAd/Images,Model.ResponsiveAd/ImpressionTrackingUrls,Model.ResponsiveAd/LandscapeImageMediaId,Model.ResponsiveAd/LandscapeImageMediaUrl,Model.ResponsiveAd/LandscapeLogoMediaId,Model.ResponsiveAd/LandscapeLogoMediaUrl,Model.ResponsiveAd/LongHeadline,Model.ResponsiveAd/LongHeadlines,Model.ResponsiveAd/SquareImageMediaId,Model.ResponsiveAd/SquareImageMediaUrl,Model.ResponsiveAd/SquareLogoMediaId,Model.ResponsiveAd/SquareLogoMediaUrl,Model.ResponsiveAd/Videos,Model.ResponsiveSearchAd/Descriptions,Model.ResponsiveSearchAd/Headlines,Status,Text,TextPart2,TrackingUrlTemplate,Type,UrlCustomParameters,Path1,Path2,DestinationUrl,DevicePreference,Title,TitlePart1,TitlePart2,TitlePart3',\r\n },\r\n };\r\n const options = {\r\n cacheResponse: false,\r\n };\r\n return jsData.Ad.findAll(params, options);\r\n}\r\n\r\nexport function processAssets(ad, updated, fieldName, fieldNameMap) {\r\n const result = pick(ad, Object.values(fieldNameMap));\r\n\r\n result[fieldNameMap[fieldName]].map((item) => {\r\n if (item.Asset.IdString === updated.Id) {\r\n item.Asset.Text = updated[fieldName];\r\n }\r\n return item;\r\n });\r\n return result;\r\n}\r\n\r\n","export const instrumentationSchema = {\r\n scenario: [\r\n {\r\n name: 'assetGrid',\r\n value: 'Asset Grid',\r\n activity: [\r\n {\r\n name: 'inlineEditRSAAsset',\r\n value: 'Inline Edit',\r\n },\r\n {\r\n name: 'inlineEditMMAAsset',\r\n value: 'Inline Edit',\r\n },\r\n ],\r\n }],\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport _, { defaults } from 'underscore';\r\nimport { InlineEditableColumnPrompt } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getCharCountExcludingAdCustomizers } from '@bingads-webui-campaign/ad-customizers';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport { getODataErrors } from '@bingads-webui-campaign/api-errors';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { ResponsiveAd } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { fetchAd, processAssets } from './ad-helper';\r\nimport { instrumentationSchema } from './instrumentation-schema';\r\n\r\nexport function TextInlineEditMMA({\r\n item, newPosition, view, i18n, scope, itemToSchemaMap, schemaToItemMap,\r\n}) {\r\n const newSchema = cloneDeep(ResponsiveAd);\r\n const fieldName = itemToSchemaMap[item.AssociationType];\r\n newSchema.properties[fieldName].required = true;\r\n newSchema.properties[fieldName] = _.omit(newSchema.properties[fieldName], 'maxLength');\r\n item[fieldName] = item.Asset.Text;\r\n instrumentation.addScenario(instrumentationSchema);\r\n const logScenario = instrumentation.assetGrid.create();\r\n const activityLogger = logScenario.inlineEditMMAAsset && logScenario.inlineEditMMAAsset.create();\r\n\r\n return InlineEditableColumnPrompt({\r\n position: newPosition,\r\n item,\r\n view,\r\n i18n,\r\n fieldName,\r\n schema: newSchema,\r\n customValidators: {\r\n [fieldName]: {\r\n isValid: (value) => {\r\n const charCount = getCharCountExcludingAdCustomizers({\r\n text: value,\r\n adType: 'ResponsiveAd',\r\n deps: {\r\n i18n,\r\n countdownI18nDummy: i18n,\r\n config,\r\n instrumentation,\r\n edmCampaign,\r\n jsDataCampaign: jsdata,\r\n },\r\n });\r\n return charCount <= ResponsiveAd.properties[fieldName].maxLength;\r\n },\r\n message: i18n.getString('Validation_String_Max_Length', { maxlength: ResponsiveAd.properties[fieldName].maxLength }),\r\n },\r\n },\r\n saveModel: (updated, editorView) => {\r\n const {\r\n campaignId, adGroupId, adType, adId,\r\n } = scope.values;\r\n\r\n const callScope = {\r\n entitySet: edmCampaign.currentAccount.Campaigns.$withKey(campaignId).AdGroups.$withKey(adGroupId).Ads,\r\n cacheResponse: false,\r\n scenario: 'ads-grid',\r\n };\r\n const commonParams = {\r\n Campaign: { Id: campaignId },\r\n AdGroup: { Id: adGroupId },\r\n Type: adType,\r\n Id: adId,\r\n };\r\n\r\n fetchAd({\r\n edm: edmCampaign,\r\n jsData: jsdata,\r\n scope: scope.values,\r\n }).then((ad) => {\r\n const params = defaults(processAssets(ad[0], updated, fieldName, schemaToItemMap), commonParams);\r\n\r\n jsdata.ResponsiveAd\r\n .create(params, callScope)\r\n .then(() => {\r\n editorView.trigger('save');\r\n activityLogger.trace(`success inline edit for MMA Asset for ad ${ad[0].Id}`);\r\n view.grid.gridView.refresh(true);\r\n })\r\n .catch((response) => {\r\n activityLogger.trace(`fail inline edit for MMA Asset for ad ${ad[0].Id}: ${JSON.stringify(response)}`);\r\n if (!response || !response.errors) {\r\n editorView.setErrors({\r\n [fieldName]: i18n.getString('GenericErrorMessage_Short'),\r\n });\r\n } else {\r\n const errors = getODataErrors(response.errors, i18n);\r\n editorView.setErrors({\r\n [fieldName]: errors,\r\n });\r\n }\r\n })\r\n .finally(withUiBlock(view.grid.gridView.$el));\r\n })\r\n .catch(() => {\r\n editorView.setErrors({\r\n [fieldName]: i18n.getString('GenericErrorMessage_Short'),\r\n });\r\n })\r\n .finally(withUiBlock(view.grid.gridView.$el));\r\n },\r\n });\r\n}\r\n\r\n","/* eslint-disable no-param-reassign */\r\nimport _, { defaults } from 'underscore';\r\nimport { InlineEditableColumnPrompt } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { initializeAdCustomizer, getCharCountExcludingAdCustomizers } from '@bingads-webui-campaign/ad-customizers-next';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport { getODataErrors } from '@bingads-webui-campaign/api-errors';\r\nimport { ResponsiveSearchAd } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { fetchAd, processAssets } from './ad-helper';\r\nimport { instrumentationSchema } from './instrumentation-schema';\r\n\r\nexport function TextInlineEditRSA({\r\n item, newPosition, view, i18n, scope, itemToSchemaMap, schemaToItemMap, serverContext, permissions,\r\n}) {\r\n const newSchema = cloneDeep(ResponsiveSearchAd);\r\n const fieldName = itemToSchemaMap[item.AssociationType];\r\n newSchema.properties[fieldName].required = true;\r\n newSchema.properties[fieldName] = _.omit(newSchema.properties[fieldName], 'maxLength');\r\n item[fieldName] = item.Asset.Text;\r\n const { CurrentAccount } = serverContext;\r\n const { TimeZone } = CurrentAccount;\r\n instrumentation.addScenario(instrumentationSchema);\r\n const logScenario = instrumentation.assetGrid.create();\r\n const activityLogger = logScenario.inlineEditRSAAsset && logScenario.inlineEditRSAAsset.create();\r\n\r\n initializeAdCustomizer({\r\n deps: {\r\n i18n,\r\n permissions,\r\n instrumentation,\r\n timeZone: TimeZone,\r\n showAdCustomizers: true,\r\n edmCampaign,\r\n jsDataCampaign: jsdata,\r\n scope,\r\n },\r\n adType: 'ResponsiveSearchAd',\r\n });\r\n\r\n return InlineEditableColumnPrompt({\r\n position: newPosition,\r\n item,\r\n view,\r\n i18n,\r\n fieldName,\r\n schema: newSchema,\r\n customValidators: {\r\n [fieldName]: {\r\n isValid: (value) => {\r\n const charCount = getCharCountExcludingAdCustomizers({\r\n text: value,\r\n adType: 'ResponsiveSearchAd',\r\n field: item.AssociationType,\r\n });\r\n return charCount <= ResponsiveSearchAd.properties[fieldName].maxLength;\r\n },\r\n message: i18n.getString('Validation_String_Max_Length', { maxlength: ResponsiveSearchAd.properties[fieldName].maxLength }),\r\n },\r\n },\r\n saveModel: (updated, editorView) => {\r\n const {\r\n campaignId, adGroupId, adType, adId,\r\n } = scope.values;\r\n\r\n const callScope = {\r\n entitySet: edmCampaign.currentAccount.Campaigns.$withKey(campaignId).AdGroups.$withKey(adGroupId).Ads,\r\n cacheResponse: false,\r\n scenario: 'ads-grid',\r\n };\r\n const commonParams = {\r\n Campaign: { Id: campaignId },\r\n AdGroup: { Id: adGroupId },\r\n Type: adType,\r\n Id: adId,\r\n };\r\n\r\n fetchAd({\r\n edm: edmCampaign,\r\n jsData: jsdata,\r\n scope: scope.values,\r\n }).then((ad) => {\r\n const params = defaults(processAssets(ad[0], updated, fieldName, schemaToItemMap), commonParams);\r\n\r\n jsdata.ResponsiveSearchAd\r\n .create(params, callScope)\r\n .then(() => {\r\n if (permissions && permissions.dynamic.AdStrengthInAssetTopGrid) {\r\n view.grid.showAdStrength.refreshAdItem();\r\n }\r\n activityLogger.trace(`success inline edit for RSA Asset for ad ${ad[0].Id}`);\r\n editorView.trigger('save');\r\n view.grid.gridView.refresh(true);\r\n })\r\n .catch((response) => {\r\n activityLogger.trace(`fail inline edit for RSA Asset for ad ${ad[0].Id}: ${JSON.stringify(response)}`);\r\n if (!response || !response.errors) {\r\n editorView.setErrors({\r\n [fieldName]: i18n.getString('GenericErrorMessage_Short'),\r\n });\r\n } else {\r\n const errors = getODataErrors(response.errors, i18n);\r\n editorView.setErrors({\r\n [fieldName]: errors,\r\n });\r\n }\r\n })\r\n .finally(withUiBlock(view.grid.gridView.$el));\r\n })\r\n .catch(() => {\r\n editorView.setErrors({\r\n [fieldName]: i18n.getString('GenericErrorMessage_Short'),\r\n });\r\n })\r\n .finally(withUiBlock(view.grid.gridView.$el));\r\n },\r\n });\r\n}\r\n\r\n","export const instrumentationSchema = {\r\n scenario: [{\r\n name: 'auctionInsight',\r\n value: 'auctionInsight',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadInsightAuctionInsightPage',\r\n value: 'loadInsightAuctionInsightPage',\r\n },\r\n {\r\n name: 'auctionInsightFeedback',\r\n value: 'auctionInsightFeedback',\r\n },\r\n {\r\n name: 'userAction',\r\n value: 'userAction',\r\n },\r\n ],\r\n }],\r\n};\r\n","import React from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport URI from 'urijs';\r\nimport { getRoutePathById, allSiteMap, filterMapByRootIds } from '@bingads-webui-react/with-site-map';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { Link } from '@bingads-webui-react/fabric-control';\r\n\r\nconst getCompetitionTabUrl = ({ context, accountId }) => {\r\n const competitionSiteMap = filterMapByRootIds(allSiteMap, 'competition');\r\n\r\n return new URI(getRoutePathById(competitionSiteMap, 'auction-insights'))\r\n .addQuery({\r\n cid: context.CurrentCustomer.Id,\r\n aid: accountId,\r\n uid: context.CurrentUser.Id,\r\n recsrc: 'MCCAuctionInsight',\r\n })\r\n .toString();\r\n};\r\n\r\nexport const ActionCauseContainer = ({\r\n i18n,\r\n accountsInfo,\r\n insightData,\r\n context,\r\n isDetailDomExpanded,\r\n onDetailDomShow,\r\n onDeepLinkClick,\r\n}) => {\r\n const { accountIds } = insightData;\r\n const title = i18n.getString(_TL_('Accounts where biggest impact can be made'));\r\n\r\n const accountNumberLink = (\r\n \r\n );\r\n\r\n const expandedDetailsDom = (\r\n
\r\n {_.map(accountIds, (accountId) => {\r\n const currentAccount = _.find(accountsInfo, account => account.Id === accountId);\r\n const linkUrl = getCompetitionTabUrl({ context, accountId });\r\n const actionInfo = {\r\n link: 'competition-auctioninsight',\r\n accountId,\r\n action: 'click',\r\n };\r\n return (\r\n \r\n onDeepLinkClick(actionInfo)}\r\n >\r\n {currentAccount.Name}\r\n \r\n
);\r\n })}\r\n \r\n );\r\n\r\n\r\n return (\r\n
\r\n
{title}
\r\n
\r\n \r\n
\r\n {isDetailDomExpanded && expandedDetailsDom}\r\n
\r\n );\r\n};\r\n\r\nActionCauseContainer.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n accountsInfo: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number,\r\n Name: PropTypes.string,\r\n })).isRequired,\r\n insightData: PropTypes.shape({\r\n accountIds: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n }).isRequired,\r\n context: 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 IsInternal: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n isDetailDomExpanded: PropTypes.bool.isRequired,\r\n onDetailDomShow: PropTypes.func.isRequired,\r\n onDeepLinkClick: PropTypes.func.isRequired,\r\n};\r\n","import { instrumentationSchema } from './instrumentation-schema';\r\n\r\nexport class AuctionInsightLogService {\r\n constructor(props) {\r\n const {\r\n instrumentation,\r\n } = props;\r\n instrumentation.addScenario(instrumentationSchema);\r\n const fluctuationScenario = instrumentation.auctionInsight.create();\r\n this.activities = {\r\n userActionActivity: fluctuationScenario.userAction.create(),\r\n feedbackActivity: fluctuationScenario.auctionInsightFeedback.create(),\r\n };\r\n }\r\n\r\n composeLogObj({\r\n eventType, insightData, context, note,\r\n }) {\r\n return {\r\n eventType,\r\n insightData,\r\n userId: context.CurrentUser.Id,\r\n customerId: context.CurrentCustomer.Id,\r\n isInternal: context.CurrentUser.IsInternal,\r\n note,\r\n };\r\n }\r\n\r\n logFeedback({ insightData, context, note }) {\r\n const logObject = this.composeLogObj({\r\n insightData,\r\n eventType: 'feedback',\r\n context,\r\n note,\r\n });\r\n this.activities.feedbackActivity.trace(`AuctionInsightLog: ${JSON.stringify(logObject)}`, 'AuctionInsightFeedback');\r\n }\r\n\r\n logAction({ insightData, context, note }) {\r\n const logObject = this.composeLogObj({\r\n insightData,\r\n eventType: 'userAction',\r\n context,\r\n note,\r\n });\r\n this.activities.userActionActivity.trace(`AuctionInsightLog: ${JSON.stringify(logObject)}`, 'AuctionInsightAction');\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nimport React, { useEffect, useState, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { MetricCounter,\r\n DescriptionContainer,\r\n CalloutWithAutoPlacement,\r\n InsightAction,\r\n ActionSubPanel,\r\n} from '@bingads-webui-campaign/fluctuation-common';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\n\r\nimport { instrumentationSchema } from './instrumentation-schema';\r\nimport { ActionCauseContainer } from './action-cause-container';\r\nimport { AuctionInsightLogService } from './auction-insight-log-service';\r\n\r\nexport const AuctionInsightPopup = ({\r\n i18n,\r\n legacyI18n,\r\n instrumentation,\r\n context,\r\n insightData,\r\n accountsInfo,\r\n onDismiss,\r\n triggerButton,\r\n}) => {\r\n const {\r\n startDate, endDate, metric, domainNumber,\r\n } = insightData;\r\n const dateRange = startDate === endDate ? startDate : `${startDate} - ${endDate}`;\r\n\r\n const [currentSubPanel, setCurrentSubPanel] = useState(ActionSubPanel.None);\r\n const [isDetailDomExpanded, setIsDetailDomExpanded] = useState(false);\r\n const activities = useRef({});\r\n const logService = new AuctionInsightLogService({ instrumentation });\r\n\r\n useEffect(() => {\r\n instrumentation.addScenario(instrumentationSchema);\r\n const fluctuationScenario = instrumentation.auctionInsight.create();\r\n activities.current = {\r\n userActionActivity: fluctuationScenario.userAction.create(),\r\n feedbackActivity: fluctuationScenario.auctionInsightFeedback.create(),\r\n };\r\n }, [instrumentation]);\r\n\r\n const domainNumberString = (\r\n {i18n.getString(_TL_('{{number}} domains'), { number: domainNumber })}\r\n );\r\n\r\n const description = (\r\n );\r\n\r\n const feedbackOptions = [\r\n {\r\n key: '0',\r\n text: i18n.getString(_TL_('This was helpful.')),\r\n name: 'feedback1',\r\n }, {\r\n key: '1',\r\n text: i18n.getString(_TL_('I disagree with this assessment.')),\r\n name: 'feedback2',\r\n },\r\n ];\r\n\r\n const onFeedbackSubmit = (log) => {\r\n const feedbackData = {\r\n Comment: log.comment,\r\n Feedbacks: log.feedbacks ? log.feedbacks.map((item) => {\r\n if (item === '0') {\r\n return 'InsightIsHelpful';\r\n }\r\n return 'DisagreeTheInsight';\r\n }) : [],\r\n };\r\n logService.logFeedback({\r\n insightData,\r\n context,\r\n note: feedbackData,\r\n });\r\n };\r\n\r\n const onDeepLinkClick = (actionInfo) => {\r\n logService.logAction({\r\n insightData,\r\n context,\r\n note: actionInfo,\r\n });\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n
{dateRange}
\r\n \r\n
\r\n \r\n setIsDetailDomExpanded(!isDetailDomExpanded)}\r\n onDeepLinkClick={onDeepLinkClick}\r\n />\r\n
\r\n setCurrentSubPanel(subPanel)}\r\n subPanels={[ActionSubPanel.FeedbackPanel]}\r\n feedbackOptions={feedbackOptions}\r\n learnMoreLinkTopic=\"51126\"\r\n />\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nAuctionInsightPopup.propTypes = {\r\n instrumentation: PropTypes.shape({\r\n addScenario: PropTypes.func,\r\n fluctuation: PropTypes.shape({\r\n create: PropTypes.func,\r\n }),\r\n }).isRequired,\r\n context: 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 IsInternal: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n formatDate: PropTypes.func,\r\n }).isRequired,\r\n legacyI18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n formatDate: PropTypes.func,\r\n }).isRequired,\r\n insightData: PropTypes.shape({\r\n startDate: PropTypes.string,\r\n endDate: PropTypes.string,\r\n metric: PropTypes.shape({\r\n name: PropTypes.string,\r\n value: PropTypes.string,\r\n }),\r\n accountIds: PropTypes.arrayOf(PropTypes.number),\r\n domainNumber: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n }).isRequired,\r\n accountsInfo: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number,\r\n Name: PropTypes.string,\r\n })),\r\n onDismiss: PropTypes.func,\r\n triggerButton: PropTypes.instanceOf(Element).isRequired,\r\n};\r\n\r\nAuctionInsightPopup.defaultProps = {\r\n onDismiss: _.noop,\r\n accountsInfo: [{}],\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { withLock, keyVault } from '@bingads-webui-react/popup-manager';\r\nimport { AuctionInsightPopup } from './auction-insight-popup';\r\nimport { instrumentationSchema } from './instrumentation-schema';\r\n\r\nexport function createAuctionInsightPopupFactory(props, placeholderElement) {\r\n const {\r\n onDismiss,\r\n instrumentation,\r\n context,\r\n } = props;\r\n\r\n instrumentation.addScenario(instrumentationSchema);\r\n const auctionInsightScenario = instrumentation.auctionInsight.create();\r\n const userActionActivity = auctionInsightScenario.userAction.create();\r\n\r\n const onOutsideClick = (e, srcTarget) => {\r\n if (e.target !== srcTarget) {\r\n /* istanbul ignore next */\r\n if (onDismiss) {\r\n onDismiss();\r\n }\r\n userActionActivity\r\n .trace(\r\n `Insight popup closed. cid: ${context.CurrentCustomer.Id}, uid: ${context.CurrentUser.Id}, isInternal: ${context.CurrentUser.IsInternal ? 'true' : 'false'}`,\r\n 'AuctionInsightAction'\r\n );\r\n ReactDOM.unmountComponentAtNode(placeholderElement);\r\n }\r\n };\r\n\r\n userActionActivity\r\n .trace(\r\n `Insight popup opened. cid: ${context.CurrentCustomer.Id}, uid: ${context.CurrentUser.Id}, isInternal: ${context.CurrentUser.IsInternal ? 'true' : 'false'}`,\r\n 'AuctionInsightAction'\r\n );\r\n\r\n const AuctionInsightPopupWithLock = withLock(AuctionInsightPopup, {\r\n lockKey: keyVault.clickingPopup,\r\n force: true,\r\n });\r\n\r\n ReactDOM.render(\r\n React.createElement(AuctionInsightPopupWithLock, {\r\n ...props,\r\n onDismiss: onOutsideClick,\r\n }),\r\n placeholderElement\r\n );\r\n}\r\n"],"names":["StepConstants","SignInStep","path","stepName","_TL_","title","ChooseAccounts","StartImportSmart","AmazonCampaignStep","ImportSummaryStep","ImportOptionStep","StartImportAdvanced","ImportStatusStep","keyNameOfSessionIdInCookie","keyNameOfLoginAccountInCookie","importType","AmazonImportRepository","_CommonImportReposito","_ref","_this","deps","_classCallCheck","_callSuper","type","edm","jsData","taskItemOptions","adapter","entitySet","currentAccount","TaskItems","ccJsData","_inherits","_createClass","key","value","this","getValueInSubImportCookieByAccountId","getAmazonSessionIdFromCookie","_ref2","loginAccount","sessionId","addSubCookieToImportCookie","_defineProperty","url","_this2","notUpdateCookie","arguments","length","undefined","odata","post","then","_ref3","AmazonSessionId","AmazonLoginEmail","setAmazonImportAccountInfoInCookie","authCode","replace","aid","startAmazonSessionInternal","token","removeImportCookieValue","getAmazonLoginAccountFromCookie","get","accounts","_","account","_objectSpread","Currency","String","toUpperCase","blobName","getEntitiesBlob","blob","selectedCampaignIds","CampaignIds","getBulkBlob","amazonAccountId","_this3","marketPlace","formatUrl","queryParameters","ExternalAccountId","AmazonMarketPlace","data","campaigns","i18n","newI18n","logError","filter","campaign","status","Status","map","Id","Name","Type","getString","customerId","promises","amazonCampaigns","getAmazonCampaigns","selectionData","getSelectionDataFromBlob","finalState","Promise","_ref4","ids","availableIdBoolMap","obj","id","preferences","getImportUserPreferencesWithBMCandMinInfo","userPref","result","amazonAccountName","StringPayload","content","JSON","stringify","_ref5","amazonCustomerId","initialAmazonAccount","amazonEntitiesSelectionData","uid","info","getAmazonImportInfoFromCookie","logTrace","concat","getAmazonAccountName","amazonImportContext","SessionId","ProfileId","AccountName","AmazonSessionUserId","AmazonMarketPlaceType","uploadToAzureBlobViaOdata","bulkFileType","payload","serializeAmazonEntitiesSelectionDataToStringPayload","AmazonEntitiesBlobName","BlobName","_ref6","_this4","importOptions","stepState","_importOptions$import","importUserPreferences","notificationType","notificationEmailAddresses","timeZoneId","name","cron","taskItemState","prepareAmazonImportContext","prepareCompleteImportTaskItem","NotificationType","NotificationEmailAddresses","AmazonImportContext","ImportType","testTypeSuffix","State","Cron","CommonImportRepository","AmazonLoginRepository","$","empty","isAmazonLoginReady","window","amazon","resolve","onAmazonLoginReady","Login","setClientId","CLIENT_ID","setUseCookie","require","ensureAmazonLoginReady","reject","authorize","interactive","popup","scope","SCOPE","response_type","code_challenge_method","response","error","code","logout","PermissionFactory","_CommonPermissionFact","permissions","IsImportSmartScheduleStepImprovementPhaseTwoEnabled","IsImportSmartScheduleStepPanelImprovementEnabled","IsImportSmartScheduleStepPanelDataRestoreImprovementEnabled","CommonPermissionFactory","prefetchConfig","handleError","err","handleGenericError","fetchAccounts","repository","getAmazonAccounts","getExistingAccounts","context","amazonAccounts","getExistingSelectedAccount","selectedAccounts","getSelectedAccounts","initialSettings","item","getNewStateAfterAccountsLoaded","__","originalState","withAmazonImportAccountSelectionStepPrefetch","Step","withAccountSelectionStepPrefetch","logoutResetData","autoConvertCurrencyEnabled","previousImportOptions","UnstyledLoginContainer","_React$PureComponent","props","loginToAmazon","startAmazonSessionWithToken","toNextStep","catch","loginRepository","login","startAmazonSession","patchState","isLoggedIn","res","setState","errorMsg","handleAmazonLoginError","goToNextStep","nextStepPath","isUserLoggedIn","perfMarker","loginPerfMarker","state","done","classes","isInActiveAccount","config","_jsxs","className","children","descriptionBox","_jsx","link","HelpLink","query","PrimaryButton","buttonMargin","text","onClick","disabled","DefaultButton","classnames","errorMessage","React","LoginContainer","withDefaultStyles","withActivityContext","fontSize","lineHeight","marginBottom","color","textDecoration","outline","marginTop","marginRight","AmazonLoginStepWithoutPrefetch","stepTitle","stepPrefetchHoc","WrappedLoginContainer","ImportCoreContext","Consumer","contextValues","getUniqueImportGUID","uniqueImportId","Activity","StepContainer","actionBarConfig","defaultProps","AmazonLoginStep","PreExecuteStep","LoginStepPrefetch","importCoreContext","useContext","rootContainerClassName","existingAmazonAccount","_importCoreContext$lo","logOutButtonClicked","taskItemId","_useState","useState","_useState2","_slicedToArray","loading","setLoading","_useState3","_useState4","dispatchedOdataCall","setDispatchedOdataCall","initialState","getImportTaskItem","taskItem","currentUserId","ModifiedBy","cookieHelperForEditImport","getSessionId","deleteCookie","isNameEdit","isEditingScheduledImport","_taskItem$AmazonImpor","_initialState$initial","_initialState$initial2","ImportUserPreference","IsAutoFrequency","IsSmartImport","TimeZoneId","EnableAutoCurrencyConversion","importStep","values","finally","withUiBlock","withLoginStepPrefetch","getActionBarItems","shouldGoToNextStep","prevStepName","validateFunction","nextStepName","nextButtonDisabled","extraLeftPadding","AmazonImportAccountSelector","AccountSelector","getSelectedListColumns","fieldName","REMOVE_COLUMN","getAccountListColumns","minWidth","maxWidth","isResizable","ADD_COLUMN","headerClassName","maxSelectedItems","sortableColumns","searchableField","primaryField","description","currencyViewDescription","importAccountCurrencyTitle","AmazonAccountStepInternal","setError","msg","clearError","validate","WrappedAccountSelector","accountsPageError","_this$props","prevStepNameIfPrefetchFail","nextStepNameIfPrefetchOnlyOneAccount","isCurrencyConvertorDisabled","rootClassName","ErrorContainer","AmazonAccountStep","startImporting","isReadOnly","scheduleOnly","onSwitchCustomizeMode","getPrevStepName","permissionFactory","primary","IsImportSmartScheduleStepImprovementEnabled","withSmartImportStepPrefetch","PreExecuteComponent","SmartImportStepPrefetch","_importCoreContext$ac","accountToCampaignsOptionsMapping","toggleCampaignsSelectionStep","doAllAccountsHaveCampaign","accountsToCampaign","accountIdsWithNoCampaign","push","accountWithNoCampaigns","accountId","accountMatchingCustomerId","parseInt","accountIdsToFetch","promiseObject","MarketPlace","prepareForCampaignSelectionStep","getUserPreferences","getAmazonImportUserPreferences","alreadySelectedAmazonAccounts","mapping","cid","campaignsData","hasAccountsWithNoCampaigns","amazonCampaingsForCustomerId","preference","filteredAccountsToCampaign","StartImportErrorCodes","TaskSchedulingInvalid","AmazonSyncApiInternalError","AmazonSyncThrottlingLimitReached","AmazonSyncAccessDenied","GenericImportError","formatTaskData","taskData","scheduleStepState","campaignIds","createImportAndGoNextWhenReady","generateTaskData","setImportStatus","activity","getNextStepName","showErrorMessage","_generateTaskData","isRunNowWithScheduledImport","isRunNowImport","isScheduledImport","importOptionsRunnow","prepareAmazonImportTaskItem","scheduleBody","taskItemBody","updateScheduledImportTaskItem","createScheduledImportTaskItem","createScheduledImportAndGoNextWhenReady","runNowBody","createRunNowImportTaskItem","toggleShowImportStatusStep","taskItemExecutionId","first","TaskItemExecutions","hideProgressList","createRunNowImportAndGoNextWhenReady","toggleShowImportSummary","errors","ODataError","chain","signal","getAdvancedCustomizingStepName","StartImportSmartStep","GeneralStartImportStep","isCustomizingModeEnabled","shouldGoToPreviousStep","getSubFieldsBlackList","subFieldsBlacklist","getBlackList","importOptionFieldHelpIds","ImportNewEntities","UpdateEntityPreferences","DefaultBidsBelowMinToAdCenterMinBid","DefaultCampaignBudgetBelowMinToAdCenterMinBudget","AdjustmentForBids_EnableAdjustment","AdjustmentForCampaignBudgets_EnableAdjustment","ImportNewOption_ImportNewActiveEntitiesOnly","getImportOptionFields","params","optionFields","getDefaultImportOptionFields","hideEntityAdvancedOptions","helpIds","forEach","opt","fields","field","newField","property","label","showLabel","AmazonImportOptionsStep","ImportOptionsStep","isGoogleImport","StartImportAdvancedStep","GeneralStartImportAdvancedStep","noFacAlert","noCampaignErrorMessage","onSaveAmazonImportScheduleInfo","tasks","displaystring","onEditScheduleClose","scheduledTaskItemBody","getStateValue","defaultName","finalBody","notificationApi","add","severity","NotificationLevel","Confirmation","message","target","scheduleSummaryString","getAmazonImportDetailsView","importSchedulingOptions","ImportSchedulingOptions","frequencyStat","parseCronToDisplayString","timeZoneMapper","labelClassName","Title","cardPanelTitles","Additions","AmazonImportSummaryStep","GenericImportSummaryPage","importName","onSaveScheduleInfo","getImportDetailsView","learnMoreText","noCampaignAlert","GeneralImportStatusStep","VerticalSeparatedLayout","getAmazonLoginStep","renderDescription","LoginDescription","signOut","toggleImportType","Smart","accountName","AmazonImportPage","componentDidUpdate","prevProps","location","isInit","importMode","ImportMode","Single","showImportSummary","showImportStatusStep","importStatus","startStep","showCampaignSelectionStep","uniqueImportGUID","generateGuid","initialize","getImportType","getImportStatus","getImportMode","getImportScope","ImportScope","willFetchData","checkRequiredDeps","check","serverContext","createChild","willInit","amazonLoginRepository","Multi","toggleImportMode","mode","constructSteps","steps","getAmazonAccountStep","isEnabled","enabled","brandName","getStartImportSmartStep","Advanced","CampaignSelectionStep","campaignsName","getCampaigns","selectedAccount","entitiesSelectionDataName","getAmazonCampaignStep","getAmazonImportOptionsStep","facScheduleInvalid","facNoActiveCampaigns","getStartImportAdvancedStep","_ref7","getImportSummaryStep","_ref8","getImportStatusStep","_this$repository","apply","style","minHeight","height","display","flexDirection","Scenario","BaseImportCore","stepConstants","currentStep","handleCancelButtonClick","redirectToCampaigns","fetchAd","adId","Ads","$call","gridDataParameters","toJSON","$count","$top","$expand","$filter","$select","Ad","findAll","cacheResponse","processAssets","ad","updated","fieldNameMap","pick","Object","Asset","IdString","Text","instrumentationSchema","scenario","TextInlineEditMMA","newPosition","view","itemToSchemaMap","schemaToItemMap","newSchema","cloneDeep","ResponsiveAd","AssociationType","properties","required","instrumentation","addScenario","logScenario","assetGrid","create","activityLogger","inlineEditMMAAsset","InlineEditableColumnPrompt","position","schema","customValidators","isValid","getCharCountExcludingAdCustomizers","adType","countdownI18nDummy","edmCampaign","jsDataCampaign","jsdata","maxLength","maxlength","saveModel","editorView","_scope$values","campaignId","adGroupId","callScope","Campaigns","$withKey","AdGroups","commonParams","Campaign","AdGroup","defaults","trigger","trace","grid","gridView","refresh","getODataErrors","setErrors","$el","TextInlineEditRSA","ResponsiveSearchAd","TimeZone","CurrentAccount","inlineEditRSAAsset","initializeAdCustomizer","timeZone","showAdCustomizers","dynamic","AdStrengthInAssetTopGrid","showAdStrength","refreshAdItem","setting","ActionCauseContainer","accountsInfo","insightData","isDetailDomExpanded","onDetailDomShow","onDeepLinkClick","accountIds","accountNumberLink","number","expandedDetailsDom","linkUrl","competitionSiteMap","filterMapByRootIds","allSiteMap","URI","getRoutePathById","addQuery","CurrentCustomer","CurrentUser","recsrc","toString","getCompetitionTabUrl","actionInfo","action","Link","href","ReactTemplate","model","template","AuctionInsightLogService","fluctuationScenario","auctionInsight","activities","userActionActivity","userAction","feedbackActivity","auctionInsightFeedback","eventType","note","userId","isInternal","IsInternal","logObject","composeLogObj","AuctionInsightPopup","legacyI18n","onDismiss","triggerButton","startDate","endDate","metric","domainNumber","dateRange","ActionSubPanel","None","currentSubPanel","setCurrentSubPanel","setIsDetailDomExpanded","useRef","logService","useEffect","current","domainNumberString","feedbackOptions","CalloutWithAutoPlacement","calloutKey","MetricCounter","metrics","line","DescriptionContainer","logAction","InsightAction","onSubmit","log","feedbackData","Comment","comment","Feedbacks","feedbacks","logFeedback","activeSubPanel","onCurrentSubPanelChange","subPanel","subPanels","FeedbackPanel","learnMoreLinkTopic","createAuctionInsightPopupFactory","placeholderElement","AuctionInsightPopupWithLock","withLock","lockKey","keyVault","clickingPopup","force","ReactDOM","e","srcTarget"],"sourceRoot":""}